@gui-agent/operator-browser
Version:
Native-browser operator for GUI Agent
101 lines (100 loc) • 4.19 kB
JavaScript
/**
* Copyright (c) 2025 Bytedance, Inc. and its affiliates.
* SPDX-License-Identifier: Apache-2.0
*/
;
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
LocalBrowserOperator: ()=>LocalBrowserOperator
});
const logger_namespaceObject = require("@agent-infra/logger");
const browser_namespaceObject = require("@agent-infra/browser");
const external_types_js_namespaceObject = require("./types.js");
const external_browser_operator_js_namespaceObject = require("./browser-operator.js");
function _define_property(obj, key, value) {
if (key in obj) Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
else obj[key] = value;
return obj;
}
class LocalBrowserOperator extends external_browser_operator_js_namespaceObject.BrowserOperator {
async initialize() {
this.logger.debug('initialize: start');
await this.browser.launch({
executablePath: this.browserPath,
browserType: this.browserType
});
this.logger.debug('initialize: browser launched');
const targetUrl = this.searchEngine ? external_types_js_namespaceObject.searchEngineUrlMap[this.searchEngine] : void 0;
if (targetUrl) {
var _this_browser;
const openingPage = await (null == (_this_browser = this.browser) ? void 0 : _this_browser.getActivePage());
await (null == openingPage ? void 0 : openingPage.goto(targetUrl, {
waitUntil: 'networkidle2'
}));
}
this.logger.debug('initialize: search engine opened');
await super.initialize();
}
constructor(options){
const { highlightClickableElements = false, showActionInfo = false, showWaterFlow = false, searchEngine } = options || {};
const logger = ((null == options ? void 0 : options.logger) || new logger_namespaceObject.ConsoleLogger(void 0, logger_namespaceObject.LogLevel.DEBUG)).spawn('[Local]');
const browserFinder = new browser_namespaceObject.BrowserFinder(logger.spawn('[BrowserFinder]'));
const { path, type } = browserFinder.findBrowser();
logger.debug('ctor: browserData: ', {
path,
type
});
const browser = new browser_namespaceObject.LocalBrowser({
logger: logger.spawn('[Browser]')
});
const browserOptions = {
browser: browser,
browserType: type,
logger: logger,
highlightClickableElements: highlightClickableElements,
showActionInfo: showActionInfo,
showWaterFlow: showWaterFlow
};
super(browserOptions), _define_property(this, "browserPath", void 0), _define_property(this, "browserType", void 0), _define_property(this, "searchEngine", void 0);
logger.debug('super ctor done');
this.browserPath = path;
this.browserType = type;
this.searchEngine = searchEngine;
}
}
exports.LocalBrowserOperator = __webpack_exports__.LocalBrowserOperator;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"LocalBrowserOperator"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});
//# sourceMappingURL=LocalBrowserOperator.js.map