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//! zigzagzig: false,
33//! },
34//! None,
35//! )
36//! .await?;
37//! client.delete_session(&session.id, None).await?;
38//! let _ = info;
39//! # Ok(()) }
40//! ```
41//!
42//! # Features
43//!
44//! - `schema` — derive `schemars::JsonSchema` on wire types.
45
46mod auth;
47mod challenges;
48mod commands;
49mod forms;
50mod http;
51mod ids;
52mod intents;
53mod interface;
54mod jobs;
55mod outcomes;
56mod recovery;
57mod skills;
58mod state;
59
60pub use auth::*;
61pub use challenges::*;
62pub use commands::*;
63pub use forms::*;
64pub use http::*;
65pub use ids::*;
66pub use intents::*;
67pub use interface::*;
68pub use jobs::*;
69pub use outcomes::*;
70pub use recovery::*;
71pub use skills::*;
72pub use state::*;