remem-ai 0.6.35

Local-first coding agent memory for Claude Code and OpenAI Codex
Documentation
use anyhow::Result;

use crate::cli::reranker_types::RerankerAction;

pub(in crate::cli) fn run_reranker(action: RerankerAction) -> Result<()> {
    match action {
        RerankerAction::Download { model, json } => {
            let report = crate::retrieval::rerank::download_reranker_model(model.as_deref())?;
            if json {
                println!("{}", serde_json::to_string_pretty(&report)?);
            } else {
                println!(
                    "Downloaded reranker model {} ({}) into {}.",
                    report.model_id, report.upstream_model, report.install_dir
                );
                println!(
                    "Verified {} model files (manifest sha256 {}).",
                    report.files_verified, report.manifest_sha256
                );
            }
            Ok(())
        }
        RerankerAction::Status { json } => {
            let report = crate::retrieval::rerank::reranker_status()?;
            if json {
                println!("{}", serde_json::to_string_pretty(&report)?);
            } else {
                println!(
                    "Rerank: enabled={} state={} preset={} top_n={} top_k={}",
                    report.enabled, report.state, report.preset, report.top_n, report.top_k
                );
                println!("Model: {} ({})", report.model_id, report.upstream_model);
                println!("Install dir: {}", report.install_dir);
                if let Some(manifest_sha256) = &report.manifest_sha256 {
                    println!("Manifest sha256: {manifest_sha256}");
                }
                if let Some(reason) = &report.disabled_reason {
                    println!("Disabled reason: {reason}");
                }
                if let Some(detail) = &report.detail {
                    println!("Detail: {detail}");
                }
            }
            Ok(())
        }
    }
}