import Browserbase from '@browserbasehq/sdk';
import { chromium } from 'playwright-core';
import { VaultClient, attachToPlaywright } from '@agent-cards/checkout';
const bb = new Browserbase({ apiKey: process.env.BROWSERBASE_API_KEY! });
const session = await bb.sessions.create({ projectId: process.env.BROWSERBASE_PROJECT_ID! });
const browser = await chromium.connectOverCDP(session.connectUrl);
// Reuse the default context and page so the session recording stays intact.
const context = browser.contexts()[0];
const page = context.pages()[0];
const vault = new VaultClient({
clientId: process.env.AGENTCARD_CLIENT_ID!,
clientSecret: process.env.AGENTCARD_CLIENT_SECRET!,
});
await vault.syncRegistry();
const checkout = await attachToPlaywright(page, {
vault,
user: 'usr_8f3k2m',
merchant: 'shop.example.com',
amount: 2306,
currency: 'usd',
onApprovalUrl: (url) => sendToUser(url),
});
// Now let the agent shop.
await page.goto('https://shop.example.com');