@auto-browse/auto-browse
Version:
AI-powered browser automation
37 lines (36 loc) • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.browser_choose_file = void 0;
const tools_1 = require("@langchain/core/tools");
const zod_1 = require("zod");
const utils_1 = require("./utils");
const context_1 = require("../browser/context");
/**
* Schema for choosing files to upload
*/
const chooseFileSchema = zod_1.z.object({
paths: zod_1.z
.array(zod_1.z.string())
.describe("The absolute paths to the files to upload. Can be a single file or multiple files."),
});
exports.browser_choose_file = (0, tools_1.tool)(async ({ paths }) => {
try {
console.log(`[Choose File Tool] Starting operation:`, { paths });
const result = await (0, utils_1.runAndWait)(context_1.context, `Chose files ${paths.join(", ")}`, async () => {
console.log(`[Choose File Tool] Submitting file chooser`);
await context_1.context.submitFileChooser(paths);
console.log(`[Choose File Tool] Operation successful`);
}, true);
console.log(`[Choose File Tool] Operation completed`);
return result;
}
catch (error) {
const errorMessage = `Failed to choose files: ${error instanceof Error ? error.message : "Unknown error"}`;
console.error(`[Choose File Tool] Error:`, errorMessage);
return errorMessage;
}
}, {
name: "chooseFile",
description: "Choose one or multiple files to upload",
schema: chooseFileSchema,
});