@auto-browse/auto-browse
Version:
AI-powered browser automation
40 lines (39 loc) • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.browser_snapshot = void 0;
const tools_1 = require("@langchain/core/tools");
const zod_1 = require("zod");
const test_1 = require("@playwright/test");
const context_1 = require("../browser/context");
const utils_1 = require("./utils");
/**
* Schema with dummy property to satisfy Gemini's API requirement for non-empty object properties
*/
const snapshotSchema = zod_1.z.object({
_: zod_1.z
.string()
.optional()
.describe("No parameters required for this operation"),
});
exports.browser_snapshot = (0, tools_1.tool)(async () => {
try {
console.log(`[Aria Snapshot] Starting snapshot operation`);
const result = await test_1.test.step(`Capture Accessibility Snapshot`, async () => {
return await (0, utils_1.run)(context_1.context, {
callback: async () => { }, // Empty callback since we just want the snapshot
captureSnapshot: true,
});
});
console.log(`[Aria Snapshot] Operation completed successfully`);
return result;
}
catch (error) {
const errorMessage = `Failed to capture snapshot: ${error instanceof Error ? error.message : "Unknown error"}`;
console.error(`[Aria Snapshot] Error:`, errorMessage);
return errorMessage;
}
}, {
name: "aria_snapshot",
description: "Capture accessibility snapshot of the current page for better understanding of page structure",
schema: snapshotSchema,
});