use browserbase::{
Browserbase,
models::{ListSessionsParams, UpdateSessionRequest},
};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let api_key = std::env::var("BROWSERBASE_API_KEY")?;
let project_id = std::env::var("BROWSERBASE_PROJECT_ID")?;
let bb = Browserbase::new(api_key)?;
println!("Listing all sessions...");
let sessions = bb.sessions().list(ListSessionsParams::new()).await?;
for session in &sessions {
println!(
"ID={} Status={}",
session.id,
session.status.as_deref().unwrap_or("?")
);
if session.status.as_deref() == Some("RUNNING")
|| session.status.as_deref() == Some("CREATED")
{
println!(" -> Releasing session...");
bb.sessions()
.update(
&session.id,
UpdateSessionRequest::new(&project_id, "REQUEST_RELEASE"),
)
.await?;
println!(" -> Released");
} else {
println!(" -> Deleting session...");
bb.sessions().delete(&session.id).await?;
println!(" -> Deleted");
}
}
println!("\nAll sessions cleaned up!");
Ok(())
}