kiromi-ai-cli 0.2.2

Operator and developer CLI for the kiromi-ai-memory store: append, search, snapshot, regenerate, migrate-scheme, gc, audit-tail.
// SPDX-License-Identifier: Apache-2.0 OR MIT
//! `kiromi-ai-memory init` — open the store for the first time.
//!
//! Slice-1 behaviour: we just open via `Memory::builder()`. The builder
//! writes `schema_meta` on first open and validates on subsequent opens; we
//! don't need a separate "init" path.

use crate::cli::{GlobalArgs, InitArgs};
use crate::error::CliError;
use crate::runtime::Runtime;

pub(crate) async fn run(_args: InitArgs, globals: &GlobalArgs) -> Result<(), CliError> {
    let rt = Runtime::open(globals).await?;
    if rt.json {
        let payload = serde_json::json!({
            "tenant": rt.mem.tenant().as_str(),
            "scheme": rt.mem.scheme().to_string(),
            "embedder": rt.cfg.embedder.as_ref().map(|e| e.family.clone()),
        });
        println!(
            "{}",
            serde_json::to_string_pretty(&payload).unwrap_or_default()
        );
    } else {
        println!(
            "initialised tenant {:?} with scheme {:?}",
            rt.mem.tenant().as_str(),
            rt.mem.scheme().to_string()
        );
    }
    rt.mem.close().await?;
    Ok(())
}