open-pincery 1.0.1

Multi-agent platform for durable, event-driven AI agents
Documentation
use crate::api_client::ApiClient;
use crate::cli::config::{load, save};
use crate::error::AppError;

pub async fn run(client: &ApiClient, bootstrap_token: String) -> Result<(), AppError> {
    let resp = client.bootstrap(&bootstrap_token).await?;
    let token = resp["session_token"]
        .as_str()
        .ok_or_else(|| AppError::Internal("bootstrap response missing session_token".into()))?
        .to_string();

    let mut cfg = load()?;
    cfg.url = Some(client.base_url.clone());
    cfg.token = Some(token.clone());
    save(&cfg)?;

    println!("{}", serde_json::json!({"session_token": token}));
    Ok(())
}