UNPKG

browse

Version:

Unified Browserbase CLI for browser automation and cloud APIs.

42 lines (41 loc) 1.76 kB
import { Args, Flags } from "@oclif/core"; import { createBrowserbaseClient, outputJson, resolveBody, withBrowserbaseApi, } from "../../../lib/cloud/api.js"; import { apiCommonFlags, toApiOptions } from "../../../lib/cloud/flags.js"; import { BrowseCommand } from "../../../base.js"; export default class SessionsUpdate extends BrowseCommand { static description = "Update a Browserbase session."; static examples = [ "browse cloud sessions update <session-id> --status REQUEST_RELEASE", `browse cloud sessions update <session-id> --body '{"status":"REQUEST_RELEASE"}'`, ]; static args = { id: Args.string({ required: true, description: "Session ID." }), }; static flags = { ...apiCommonFlags, status: Flags.string({ description: `Session status update. (choices: "REQUEST_RELEASE")`, options: ["REQUEST_RELEASE"], default: "REQUEST_RELEASE", helpValue: "<status>", }), body: Flags.string({ description: "Optional JSON request body. Merged with --status when provided.", helpValue: "<body>", }), stdin: Flags.boolean({ description: "Read JSON request body from stdin.", }), }; async run() { const { args, flags } = await this.parse(SessionsUpdate); await withBrowserbaseApi("sessions", async () => { const client = createBrowserbaseClient(toApiOptions(flags)); const body = { ...(await resolveBody({ body: flags.body, stdin: flags.stdin })), status: (flags.status ?? "REQUEST_RELEASE"), }; outputJson(await client.sessions.update(args.id, body)); }); } }