buble 0.1.0

Official Rust SDK for the Buble public API.
Documentation
use buble::{Client, Result};
use serde_json::json;

#[tokio::main]
async fn main() -> Result<()> {
    let client = Client::from_env()?;

    let models = client.media_models().list(Some("image")).await?;
    println!(
        "{}",
        json!({ "step": "media_models", "count": models.data.len() })
    );

    let chat = client
        .chat()
        .completions()
        .create(json!({
            "model": "openai/gpt-5.4",
            "messages": [
                { "role": "user", "content": "Reply with exactly: Buble Rust SDK live smoke OK" }
            ],
            "max_completion_tokens": 32
        }))
        .await?;

    println!(
        "{}",
        json!({
            "step": "chat",
            "message": chat
                .pointer("/choices/0/message/content")
                .and_then(serde_json::Value::as_str)
                .unwrap_or_default()
        })
    );

    Ok(())
}