import { chromium } from 'playwright';
import { z } from "zod";
import Anchorbrowser from "anchorbrowser";
(async () => {
const anchor_client = new Anchorbrowser();
const session = await anchor_client.sessions.create({
apiKey: process.env.ANCHORBROWSER_API_KEY,
});
const cdpUrl = session?.data?.cdp_url;
const browser = await chromium.connectOverCDP(cdpUrl);
const context = browser.contexts()[0];
const ai = context.serviceWorkers()[0];
const page = context.pages()[0];
const outputSchema = z.object({
nodes_cpu_usage: z.array(
z.object({
node: z.string(),
cluster: z.string(),
cpu_avg_percentage: z.number(),
})
)
});
const jsonSchema = z.toJSONSchema(outputSchema);
const taskPayload = {
output_schema: jsonSchema,
prompt: 'Collect the node names and their CPU average %',
};
await page.goto("https://play.grafana.org/a/grafana-k8s-app/navigation/nodes?from=now-1h&to=now&refresh=1m");
const result = await ai.evaluate(JSON.stringify(taskPayload));
console.info(result);
browser.close();
})();