import { redactValueForObservability } from "@webcompute/sdk";
function safeError(error: unknown) {
if (error && typeof error === "object") {
const value = error as { code?: unknown; name?: unknown; message?: unknown };
return redactValueForObservability({
code: value.code,
name: value.name,
message: value.message,
});
}
return { message: redactValueForObservability(String(error)) };
}
const result = await browser.playwright.execute({
code: `
await page.goto("https://example.com");
return { title: await page.title(), url: page.url() };
`,
capture: { status: true, observation: { kind: "aria", includeOn: "always" } },
});
await logBrowserStep({
jobId,
browserId: browser.id,
success: result.success,
page: result.page,
status: result.status,
observation: result.observation
? {
kind: result.observation.kind,
chars: result.observation.chars,
truncated: result.observation.truncated,
}
: undefined,
artifacts: result.artifacts,
error: result.error ? safeError(result.error) : undefined,
});