mubit-sdk 0.1.1

Umbrella Rust SDK for Mubit core/control planes
Documentation

mubit-sdk (Rust)

Public unified Rust SDK for Mubit.

Usage

use mubit_sdk::{Client, ClientConfig};
use serde_json::json;
use std::env;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let api_key = env::var("MUBIT_API_KEY")?;
    let client = Client::new(
        ClientConfig::default()
            .run_id("demo_run")
            .api_key(api_key)
    )?;

    let accepted = client.control.ingest(json!({
        "run_id": "demo_run",
        "agent_id": "sdk-quickstart",
        "idempotency_key": "quickstart-1",
        "parallel": false,
        "items": [{
            "item_id": "item-1",
            "content_type": "text",
            "text": "hello mubit",
            "payload_json": "",
            "hints_json": "",
            "metadata_json": "{\"source\":\"quickstart\"}",
        }],
    })).await?;

    let mut job = client.control.get_ingest_job(json!({
        "run_id": "demo_run",
        "job_id": accepted["job_id"],
    })).await?;
    while !job.get("done").and_then(|v| v.as_bool()).unwrap_or(false) {
        tokio::time::sleep(std::time::Duration::from_millis(200)).await;
        job = client.control.get_ingest_job(json!({
            "run_id": "demo_run",
            "job_id": accepted["job_id"],
        })).await?;
    }

    let _answer = client.control.query(json!({
        "run_id": "demo_run",
        "query": "what did we ingest?",
        "mode": "agent_routed",
        "direct_lane": "semantic_search",
        "include_linked_runs": false,
        "limit": 5,
    })).await?;

    Ok(())
}

transport defaults to auto (gRPC primary, HTTP fallback).
Endpoint resolution order:

  1. explicit endpoint / http_endpoint / grpc_endpoint on ClientConfig
  2. env vars MUBIT_ENDPOINT, MUBIT_HTTP_ENDPOINT, MUBIT_GRPC_ENDPOINT
  3. shared defaults https://api.mubit.ai and grpc.api.mubit.ai:443

Control-Plane Examples

From repository root:

set -a && [ -f .env ] && source .env && set +a

cargo run --manifest-path sdk/rust/mubit-sdk/Cargo.toml --example control_ingest_job_lifecycle
cargo run --manifest-path sdk/rust/mubit-sdk/Cargo.toml --example control_ingest_idempotency
cargo run --manifest-path sdk/rust/mubit-sdk/Cargo.toml --example control_batch_insert_semantic_direct
cargo run --manifest-path sdk/rust/mubit-sdk/Cargo.toml --example control_query_agent_routed
cargo run --manifest-path sdk/rust/mubit-sdk/Cargo.toml --example control_query_direct_bypass_matrix
cargo run --manifest-path sdk/rust/mubit-sdk/Cargo.toml --example core_direct_search_optional
cargo run --manifest-path sdk/rust/mubit-sdk/Cargo.toml --example control_state_structured_variables