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 commands;
47mod forms;
48mod http;
49mod ids;
50mod interface;
51mod outcomes;
52mod recovery;
53mod skills;
54mod state;
55
56pub use auth::*;
57pub use commands::*;
58pub use forms::*;
59pub use http::*;
60pub use ids::*;
61pub use interface::*;
62pub use outcomes::*;
63pub use recovery::*;
64pub use skills::*;
65pub use state::*;