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::*;