Skip to main content

bobby_browser_client/
lib.rs

1//! Typed HTTP client and `/v1` wire types for Bobby Browser.
2//!
3//! The single crates.io Rust SDK package. Mirrors
4//! [`@cavi-ai/bobby-browser`](https://www.npmjs.com/package/@cavi-ai/bobby-browser)
5//! for Rust callers.
6//!
7//! # Auth headers
8//!
9//! Every request includes:
10//! - `Authorization: Bearer <token>`
11//! - `x-interface-version`
12//! - `x-correlation-id`
13//! - `x-deadline`
14//!
15//! # Example
16//!
17//! ```rust,no_run
18//! use bobby_browser_client::{BrowserRuntimeClient, CreateSessionRequest};
19//!
20//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
21//! let client = BrowserRuntimeClient::new(
22//!     "http://127.0.0.1:7777",
23//!     std::env::var("AUTOMATION_RUNTIME_TOKEN")?,
24//! )?;
25//! let info = client.runtime_info(None).await?;
26//! let session = client
27//!     .create_session(
28//!         &CreateSessionRequest {
29//!             profile: "default".into(),
30//!             proxy: None,
31//!             execution_policy: Default::default(),
32//!         },
33//!         None,
34//!     )
35//!     .await?;
36//! client.delete_session(&session.id, None).await?;
37//! let _ = info;
38//! # Ok(()) }
39//! ```
40//!
41//! # Features
42//!
43//! - `schema` — derive `schemars::JsonSchema` on wire types.
44
45mod auth;
46mod challenges;
47mod commands;
48mod forms;
49mod http;
50mod ids;
51mod interface;
52mod outcomes;
53mod recovery;
54mod skills;
55mod state;
56
57pub use auth::*;
58pub use challenges::*;
59pub use commands::*;
60pub use forms::*;
61pub use http::*;
62pub use ids::*;
63pub use interface::*;
64pub use outcomes::*;
65pub use recovery::*;
66pub use skills::*;
67pub use state::*;