@loxia-labs/loxia-autopilot-one 1.0.7 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/cli.js +1 -1
- package/bin/loxia-terminal-v2.js +1 -1
- package/bin/loxia-terminal.js +1 -1
- package/bin/start-with-terminal.js +1 -1
- package/package.json +1 -1
- package/scripts/install-scanners.js +1 -1
- package/src/analyzers/CSSAnalyzer.js +1 -1
- package/src/analyzers/ConfigValidator.js +1 -1
- package/src/analyzers/ESLintAnalyzer.js +1 -1
- package/src/analyzers/JavaScriptAnalyzer.js +1 -1
- package/src/analyzers/PrettierFormatter.js +1 -1
- package/src/analyzers/PythonAnalyzer.js +1 -1
- package/src/analyzers/SecurityAnalyzer.js +1 -1
- package/src/analyzers/TypeScriptAnalyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/detector.js +1 -1
- package/src/analyzers/codeCloneDetector/index.js +1 -1
- package/src/analyzers/codeCloneDetector/parser.js +1 -1
- package/src/analyzers/codeCloneDetector/reporter.js +1 -1
- package/src/analyzers/codeCloneDetector/scanner.js +1 -1
- package/src/core/agentPool.js +1 -1
- package/src/core/agentScheduler.js +1 -1
- package/src/core/contextManager.js +1 -1
- package/src/core/messageProcessor.js +1 -1
- package/src/core/orchestrator.js +1 -1
- package/src/core/stateManager.js +1 -1
- package/src/index.js +1 -1
- package/src/interfaces/cli.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
- package/src/interfaces/terminal/api/apiClient.js +1 -1
- package/src/interfaces/terminal/api/messageRouter.js +1 -1
- package/src/interfaces/terminal/api/session.js +1 -1
- package/src/interfaces/terminal/api/websocket.js +1 -1
- package/src/interfaces/terminal/components/AgentCreator.js +1 -1
- package/src/interfaces/terminal/components/AgentEditor.js +1 -1
- package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
- package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
- package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
- package/src/interfaces/terminal/components/Header.js +1 -1
- package/src/interfaces/terminal/components/HelpPanel.js +1 -1
- package/src/interfaces/terminal/components/InputBox.js +1 -1
- package/src/interfaces/terminal/components/Layout.js +1 -1
- package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
- package/src/interfaces/terminal/components/MessageList.js +1 -1
- package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
- package/src/interfaces/terminal/components/SearchPanel.js +1 -1
- package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
- package/src/interfaces/terminal/components/StatusBar.js +1 -1
- package/src/interfaces/terminal/components/TextInput.js +1 -1
- package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
- package/src/interfaces/terminal/config/constants.js +1 -1
- package/src/interfaces/terminal/index.js +1 -1
- package/src/interfaces/terminal/state/useAgentControl.js +1 -1
- package/src/interfaces/terminal/state/useAgents.js +1 -1
- package/src/interfaces/terminal/state/useConnection.js +1 -1
- package/src/interfaces/terminal/state/useMessages.js +1 -1
- package/src/interfaces/terminal/state/useTools.js +1 -1
- package/src/interfaces/terminal/utils/debugLogger.js +1 -1
- package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
- package/src/interfaces/terminal/utils/theme.js +1 -1
- package/src/interfaces/webServer.js +1 -1
- package/src/modules/fileExplorer/controller.js +1 -1
- package/src/modules/fileExplorer/index.js +1 -1
- package/src/modules/fileExplorer/middleware.js +1 -1
- package/src/modules/fileExplorer/routes.js +1 -1
- package/src/services/aiService.js +1 -1
- package/src/services/apiKeyManager.js +1 -1
- package/src/services/benchmarkService.js +1 -1
- package/src/services/budgetService.js +1 -1
- package/src/services/contextInjectionService.js +1 -1
- package/src/services/conversationCompactionService.js +1 -1
- package/src/services/errorHandler.js +1 -1
- package/src/services/fileAttachmentService.js +1 -1
- package/src/services/modelRouterService.js +1 -1
- package/src/services/modelsService.js +1 -1
- package/src/services/qualityInspector.js +1 -1
- package/src/services/tokenCountingService.js +1 -1
- package/src/tools/agentCommunicationTool.js +1 -1
- package/src/tools/agentDelayTool.js +1 -1
- package/src/tools/asyncToolManager.js +1 -1
- package/src/tools/baseTool.js +1 -1
- package/src/tools/browserTool.js +1 -1
- package/src/tools/cloneDetectionTool.js +1 -1
- package/src/tools/dependencyResolverTool.js +1 -1
- package/src/tools/fileContentReplaceTool.js +1 -1
- package/src/tools/fileSystemTool.js +1 -1
- package/src/tools/fileTreeTool.js +1 -1
- package/src/tools/imageTool.js +1 -1
- package/src/tools/importAnalyzerTool.js +1 -1
- package/src/tools/jobDoneTool.js +1 -1
- package/src/tools/seekTool.js +1 -1
- package/src/tools/staticAnalysisTool.js +1 -1
- package/src/tools/taskManagerTool.js +1 -1
- package/src/tools/terminalTool.js +1 -1
- package/src/tools/webTool.js +1 -1
- package/src/types/agent.js +1 -1
- package/src/types/contextReference.js +1 -1
- package/src/types/conversation.js +1 -1
- package/src/types/toolCommand.js +1 -1
- package/src/utilities/attachmentValidator.js +1 -1
- package/src/utilities/configManager.js +1 -1
- package/src/utilities/constants.js +1 -1
- package/src/utilities/directoryAccessManager.js +1 -1
- package/src/utilities/fileProcessor.js +1 -1
- package/src/utilities/logger.js +1 -1
- package/src/utilities/tagParser.js +1 -1
- package/src/utilities/toolConstants.js +1 -1
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/{index-BVF_10a5.css → index-BmKxmRe3.css} +1 -1
- package/web-ui/build/static/{index-DE5VFS1q.js → index-BzXbDs8z.js} +63 -63
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x5b4ed7=a0_0x47da;(function(_0x3e850a,_0x398a53){const _0x339aec=a0_0x47da,_0x54a630=_0x3e850a();while(!![]){try{const _0x5be653=parseInt(_0x339aec(0x164))/0x1+-parseInt(_0x339aec(0x18e))/0x2+-parseInt(_0x339aec(0x13d))/0x3+-parseInt(_0x339aec(0x18d))/0x4+parseInt(_0x339aec(0x145))/0x5*(parseInt(_0x339aec(0x18a))/0x6)+-parseInt(_0x339aec(0x170))/0x7*(-parseInt(_0x339aec(0x153))/0x8)+-parseInt(_0x339aec(0x183))/0x9;if(_0x5be653===_0x398a53)break;else _0x54a630['push'](_0x54a630['shift']());}catch(_0x22f313){_0x54a630['push'](_0x54a630['shift']());}}}(a0_0xe2f1,0x7426c));import a0_0x2cf819 from'events';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x47da(_0x224dcc,_0x288485){_0x224dcc=_0x224dcc-0x13c;const _0xe2f17a=a0_0xe2f1();let _0x47da13=_0xe2f17a[_0x224dcc];if(a0_0x47da['XoMNkZ']===undefined){var _0x4833f7=function(_0x169155){const _0x3bcb0d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2cf819='',_0x24d485='';for(let _0x4bea0a=0x0,_0x40ed0c,_0x337f45,_0x412bbb=0x0;_0x337f45=_0x169155['charAt'](_0x412bbb++);~_0x337f45&&(_0x40ed0c=_0x4bea0a%0x4?_0x40ed0c*0x40+_0x337f45:_0x337f45,_0x4bea0a++%0x4)?_0x2cf819+=String['fromCharCode'](0xff&_0x40ed0c>>(-0x2*_0x4bea0a&0x6)):0x0){_0x337f45=_0x3bcb0d['indexOf'](_0x337f45);}for(let _0x4ee604=0x0,_0x358ff2=_0x2cf819['length'];_0x4ee604<_0x358ff2;_0x4ee604++){_0x24d485+='%'+('00'+_0x2cf819['charCodeAt'](_0x4ee604)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x24d485);};a0_0x47da['xYYXfz']=_0x4833f7,a0_0x47da['cKNOsy']={},a0_0x47da['XoMNkZ']=!![];}const _0x1d8911=_0xe2f17a[0x0],_0x313179=_0x224dcc+_0x1d8911,_0x54ca6b=a0_0x47da['cKNOsy'][_0x313179];return!_0x54ca6b?(_0x47da13=a0_0x47da['xYYXfz'](_0x47da13),a0_0x47da['cKNOsy'][_0x313179]=_0x47da13):_0x47da13=_0x54ca6b,_0x47da13;}class AsyncToolManager extends a0_0x2cf819{constructor(_0x24d485={},_0x4bea0a=null){const _0x59cd98=a0_0x47da;super(),this['config']=_0x24d485,this['logger']=_0x4bea0a,this['operations']=new Map(),this[_0x59cd98(0x159)]=[],this[_0x59cd98(0x151)]=_0x24d485['maxConcurrentOperations']||0xa,this[_0x59cd98(0x177)]=_0x24d485['defaultTimeout']||0x493e0,this['cleanupInterval']=_0x24d485[_0x59cd98(0x143)]||0xea60,this['maxHistorySize']=_0x24d485[_0x59cd98(0x147)]||0x3e8,this[_0x59cd98(0x161)]=null,this[_0x59cd98(0x167)]=![],this['startMonitoring'](),this['on']('operation:started',this['handleOperationStarted'][_0x59cd98(0x16a)](this)),this['on']('operation:completed',this['handleOperationCompleted'][_0x59cd98(0x16a)](this)),this['on']('operation:failed',this['handleOperationFailed']['bind'](this)),this['on']('operation:timeout',this[_0x59cd98(0x15e)]['bind'](this));}async[a0_0x5b4ed7(0x15c)](_0x40ed0c,_0x337f45,_0x412bbb,_0x4ee604={}){const _0x7dd158=a0_0x5b4ed7;if(this[_0x7dd158(0x187)]['size']>=this[_0x7dd158(0x151)])throw new Error(_0x7dd158(0x142)+this[_0x7dd158(0x151)]+')');const _0x358ff2=this['generateOperationId'](),_0x14578b={'id':_0x358ff2,'toolId':_0x40ed0c,'agentId':_0x337f45,'parameters':_0x412bbb,'context':_0x4ee604,'status':TOOL_STATUS[_0x7dd158(0x168)],'createdAt':new Date()['toISOString'](),'startedAt':null,'completedAt':null,'timeout':_0x4ee604[_0x7dd158(0x14e)]||this[_0x7dd158(0x177)],'result':null,'error':null,'progress':null,'retryCount':0x0,'maxRetries':_0x4ee604['maxRetries']||0x0};return this[_0x7dd158(0x187)]['set'](_0x358ff2,_0x14578b),this['logger']?.['info'](_0x7dd158(0x148)+_0x358ff2,{'toolId':_0x40ed0c,'agentId':_0x337f45,'parametersCount':Object[_0x7dd158(0x194)](_0x412bbb)['length'],'timeout':_0x14578b['timeout']}),this[_0x7dd158(0x175)](_0x358ff2),this['emit']('operation:started',_0x14578b),_0x358ff2;}['updateOperation'](_0x5561e7,_0x44f1ce,_0x243272={}){const _0x4df299=a0_0x5b4ed7,_0x2a8b0e=this['operations']['get'](_0x5561e7);if(!_0x2a8b0e)return this['logger']?.[_0x4df299(0x155)]('Attempted\x20to\x20update\x20unknown\x20operation:\x20'+_0x5561e7),![];const _0x292853=_0x2a8b0e['status'];_0x2a8b0e['status']=_0x44f1ce;_0x44f1ce===TOOL_STATUS[_0x4df299(0x191)]&&!_0x2a8b0e['startedAt']&&(_0x2a8b0e[_0x4df299(0x179)]=new Date()['toISOString']());(_0x44f1ce===TOOL_STATUS['COMPLETED']||_0x44f1ce===TOOL_STATUS[_0x4df299(0x188)])&&(_0x2a8b0e[_0x4df299(0x185)]=new Date()['toISOString']());if(_0x243272[_0x4df299(0x17c)]!==undefined)_0x2a8b0e[_0x4df299(0x17c)]=_0x243272[_0x4df299(0x17c)];if(_0x243272[_0x4df299(0x178)]!==undefined)_0x2a8b0e['error']=_0x243272[_0x4df299(0x178)];if(_0x243272[_0x4df299(0x149)]!==undefined)_0x2a8b0e['progress']=_0x243272[_0x4df299(0x149)];this[_0x4df299(0x13f)]?.['debug'](_0x4df299(0x171)+_0x5561e7,{'previousStatus':_0x292853,'newStatus':_0x44f1ce,'hasResult':!!_0x243272[_0x4df299(0x17c)],'hasError':!!_0x243272['error'],'progress':_0x243272[_0x4df299(0x149)]});switch(_0x44f1ce){case TOOL_STATUS['COMPLETED']:this['emit']('operation:completed',_0x2a8b0e);break;case TOOL_STATUS[_0x4df299(0x188)]:this['emit'](_0x4df299(0x13c),_0x2a8b0e);break;case TOOL_STATUS['EXECUTING']:this[_0x4df299(0x181)](_0x4df299(0x166),_0x2a8b0e);break;}return!![];}[a0_0x5b4ed7(0x190)](_0x3f9977){const _0x1d927f=a0_0x5b4ed7,_0x16cb30=this[_0x1d927f(0x187)][_0x1d927f(0x14b)](_0x3f9977);if(!_0x16cb30)return null;return{'id':_0x16cb30['id'],'toolId':_0x16cb30[_0x1d927f(0x18f)],'agentId':_0x16cb30[_0x1d927f(0x152)],'status':_0x16cb30['status'],'createdAt':_0x16cb30[_0x1d927f(0x14f)],'startedAt':_0x16cb30['startedAt'],'completedAt':_0x16cb30['completedAt'],'result':_0x16cb30[_0x1d927f(0x17c)],'error':_0x16cb30['error'],'progress':_0x16cb30[_0x1d927f(0x149)],'retryCount':_0x16cb30[_0x1d927f(0x16f)],'executionTime':this['calculateExecutionTime'](_0x16cb30)};}['getAgentOperations'](_0x25114f){const _0x3de240=a0_0x5b4ed7,_0x39a1d0=[];for(const _0x477f60 of this['operations'][_0x3de240(0x146)]()){_0x477f60['agentId']===_0x25114f&&_0x39a1d0[_0x3de240(0x13e)](this['getOperation'](_0x477f60['id']));}return _0x39a1d0[_0x3de240(0x15a)]((_0x351aa5,_0x4e86b6)=>new Date(_0x4e86b6[_0x3de240(0x14f)])-new Date(_0x351aa5['createdAt']));}async['cancelOperation'](_0x303beb,_0x345328=a0_0x5b4ed7(0x174)){const _0x227898=a0_0x5b4ed7,_0xe0bc95=this['operations']['get'](_0x303beb);if(!_0xe0bc95)return![];if(_0xe0bc95[_0x227898(0x14c)]===TOOL_STATUS['COMPLETED']||_0xe0bc95['status']===TOOL_STATUS[_0x227898(0x188)])return this[_0x227898(0x13f)]?.['warn']('Cannot\x20cancel\x20completed/failed\x20operation:\x20'+_0x303beb),![];return this[_0x227898(0x158)](_0x303beb,TOOL_STATUS['CANCELLED'],{'error':_0x345328}),this[_0x227898(0x176)](_0x303beb),this[_0x227898(0x181)](_0x227898(0x172),_0xe0bc95),await this['cleanupOperation'](_0x303beb),this['logger']?.['info']('Operation\x20cancelled:\x20'+_0x303beb,{'reason':_0x345328}),!![];}async['retryOperation'](_0x4ecc66){const _0x16216c=a0_0x5b4ed7,_0x2d8c8d=this[_0x16216c(0x187)]['get'](_0x4ecc66);if(!_0x2d8c8d)return![];if(_0x2d8c8d[_0x16216c(0x14c)]!==TOOL_STATUS['FAILED'])return this[_0x16216c(0x13f)]?.[_0x16216c(0x155)]('Cannot\x20retry\x20non-failed\x20operation:\x20'+_0x4ecc66),![];if(_0x2d8c8d[_0x16216c(0x16f)]>=_0x2d8c8d['maxRetries'])return this['logger']?.[_0x16216c(0x155)](_0x16216c(0x16e)+_0x4ecc66),![];return _0x2d8c8d[_0x16216c(0x16f)]++,_0x2d8c8d['status']=TOOL_STATUS[_0x16216c(0x168)],_0x2d8c8d[_0x16216c(0x179)]=null,_0x2d8c8d[_0x16216c(0x185)]=null,_0x2d8c8d['error']=null,_0x2d8c8d[_0x16216c(0x17c)]=null,this[_0x16216c(0x175)](_0x4ecc66),this['logger']?.['info'](_0x16216c(0x14d)+_0x4ecc66,{'retryCount':_0x2d8c8d['retryCount'],'maxRetries':_0x2d8c8d[_0x16216c(0x182)]}),this['emit']('operation:retry',_0x2d8c8d),!![];}[a0_0x5b4ed7(0x17f)](){const _0x43aa5e=a0_0x5b4ed7,_0x2b0f3a={'total':this['operations'][_0x43aa5e(0x156)],'byStatus':{},'byTool':{},'byAgent':{},'averageExecutionTime':0x0,'oldestOperation':null,'newestOperation':null};let _0x573c74=0x0,_0x44014d=0x0,_0x11a48b=null,_0x4216ed=null;for(const _0x4cf011 of this[_0x43aa5e(0x187)]['values']()){_0x2b0f3a['byStatus'][_0x4cf011[_0x43aa5e(0x14c)]]=(_0x2b0f3a['byStatus'][_0x4cf011[_0x43aa5e(0x14c)]]||0x0)+0x1,_0x2b0f3a['byTool'][_0x4cf011['toolId']]=(_0x2b0f3a[_0x43aa5e(0x141)][_0x4cf011[_0x43aa5e(0x18f)]]||0x0)+0x1,_0x2b0f3a['byAgent'][_0x4cf011[_0x43aa5e(0x152)]]=(_0x2b0f3a[_0x43aa5e(0x144)][_0x4cf011['agentId']]||0x0)+0x1;const _0x34d927=this['calculateExecutionTime'](_0x4cf011);_0x34d927>0x0&&(_0x573c74+=_0x34d927,_0x44014d++);const _0x14bfbc=new Date(_0x4cf011['createdAt'])['getTime']();(!_0x11a48b||_0x14bfbc<_0x11a48b)&&(_0x11a48b=_0x14bfbc,_0x2b0f3a['oldestOperation']=_0x4cf011['id']),(!_0x4216ed||_0x14bfbc>_0x4216ed)&&(_0x4216ed=_0x14bfbc,_0x2b0f3a[_0x43aa5e(0x162)]=_0x4cf011['id']);}return _0x2b0f3a[_0x43aa5e(0x163)]=_0x44014d>0x0?Math[_0x43aa5e(0x17b)](_0x573c74/_0x44014d):0x0,_0x2b0f3a;}async['cleanupCompletedOperations'](_0x42656a=0x36ee80){const _0x2d4966=a0_0x5b4ed7,_0x333c41=Date['now']()-_0x42656a,_0x10aa32=[];for(const _0x3d7c1c of this[_0x2d4966(0x187)][_0x2d4966(0x146)]()){(_0x3d7c1c[_0x2d4966(0x14c)]===TOOL_STATUS[_0x2d4966(0x160)]||_0x3d7c1c[_0x2d4966(0x14c)]===TOOL_STATUS[_0x2d4966(0x188)]||_0x3d7c1c[_0x2d4966(0x14c)]===TOOL_STATUS[_0x2d4966(0x15d)])&&new Date(_0x3d7c1c['completedAt'])['getTime']()<_0x333c41&&_0x10aa32[_0x2d4966(0x13e)](_0x3d7c1c['id']);}for(const _0x43147a of _0x10aa32){await this['cleanupOperation'](_0x43147a);}return this[_0x2d4966(0x13f)]?.['debug'](_0x2d4966(0x16b)+_0x10aa32[_0x2d4966(0x189)]+_0x2d4966(0x16c)),_0x10aa32[_0x2d4966(0x189)];}['startMonitoring'](){const _0x510595=a0_0x5b4ed7;this[_0x510595(0x161)]&&clearInterval(this['monitoringInterval']),this[_0x510595(0x161)]=setInterval(()=>{const _0xde0158=_0x510595;this[_0xde0158(0x157)](),this[_0xde0158(0x173)]();},this['cleanupInterval']),this['logger']?.[_0x510595(0x18b)]('Async\x20tool\x20manager\x20monitoring\x20started');}['stopMonitoring'](){const _0x176570=a0_0x5b4ed7;this[_0x176570(0x161)]&&(clearInterval(this[_0x176570(0x161)]),this[_0x176570(0x161)]=null),this['logger']?.[_0x176570(0x18b)]('Async\x20tool\x20manager\x20monitoring\x20stopped');}['checkOperationTimeouts'](){const _0x573884=a0_0x5b4ed7,_0x126778=Date['now']();for(const _0x3a00af of this['operations'][_0x573884(0x146)]()){if(_0x3a00af[_0x573884(0x14c)]===TOOL_STATUS['EXECUTING']||_0x3a00af[_0x573884(0x14c)]===TOOL_STATUS[_0x573884(0x168)]){const _0x179518=new Date(_0x3a00af['createdAt'])['getTime']();_0x126778-_0x179518>_0x3a00af['timeout']&&this['handleOperationTimeout'](_0x3a00af);}}}['setOperationTimeout'](_0x2f4bc7){const _0x1be2cf=a0_0x5b4ed7,_0x21bea1=this[_0x1be2cf(0x187)]['get'](_0x2f4bc7);if(!_0x21bea1)return;_0x21bea1[_0x1be2cf(0x193)]=setTimeout(()=>{this['handleOperationTimeout'](_0x21bea1);},_0x21bea1['timeout']);}[a0_0x5b4ed7(0x176)](_0x2cf0c7){const _0x51d509=a0_0x5b4ed7,_0x2cbea7=this[_0x51d509(0x187)]['get'](_0x2cf0c7);_0x2cbea7&&_0x2cbea7['timeoutHandle']&&(clearTimeout(_0x2cbea7['timeoutHandle']),delete _0x2cbea7['timeoutHandle']);}[a0_0x5b4ed7(0x184)](){const _0x59d39d=a0_0x5b4ed7,_0x17d9c9=Date['now']()[_0x59d39d(0x17e)](0x24),_0x5afc8c=Math['random']()[_0x59d39d(0x17e)](0x24)[_0x59d39d(0x195)](0x2,0x9);return'op-'+_0x17d9c9+'-'+_0x5afc8c;}['calculateExecutionTime'](_0x562dbf){const _0x2428e6=a0_0x5b4ed7;if(!_0x562dbf['startedAt'])return 0x0;const _0x183dc8=_0x562dbf[_0x2428e6(0x185)]?new Date(_0x562dbf[_0x2428e6(0x185)])['getTime']():Date['now']();return _0x183dc8-new Date(_0x562dbf['startedAt'])[_0x2428e6(0x16d)]();}async['cleanupOperation'](_0x4d37d6){const _0x4c70d8=a0_0x5b4ed7,_0x30c89c=this['operations']['get'](_0x4d37d6);if(!_0x30c89c)return;this[_0x4c70d8(0x176)](_0x4d37d6),this['operationHistory'][_0x4c70d8(0x13e)]({..._0x30c89c,'executionTime':this['calculateExecutionTime'](_0x30c89c),'cleanedUpAt':new Date()['toISOString']()}),this[_0x4c70d8(0x159)][_0x4c70d8(0x189)]>this[_0x4c70d8(0x147)]&&(this[_0x4c70d8(0x159)]=this['operationHistory']['slice'](-this['maxHistorySize'])),this['operations'][_0x4c70d8(0x186)](_0x4d37d6),this[_0x4c70d8(0x181)]('operation:cleanup',{'operationId':_0x4d37d6,'toolId':_0x30c89c['toolId']});}[a0_0x5b4ed7(0x18c)](_0x399556){const _0xbb55e1=a0_0x5b4ed7;this['logger']?.[_0xbb55e1(0x180)]('Operation\x20started:\x20'+_0x399556['id'],{'toolId':_0x399556['toolId'],'agentId':_0x399556[_0xbb55e1(0x152)]});}async[a0_0x5b4ed7(0x150)](_0x33c369){const _0x13e390=a0_0x5b4ed7;this[_0x13e390(0x13f)]?.['info']('Operation\x20completed:\x20'+_0x33c369['id'],{'toolId':_0x33c369['toolId'],'agentId':_0x33c369['agentId'],'executionTime':this[_0x13e390(0x169)](_0x33c369)}),setTimeout(()=>this[_0x13e390(0x15f)](_0x33c369['id']),0x7530);}async[a0_0x5b4ed7(0x140)](_0x28cc22){const _0x561046=a0_0x5b4ed7;this['logger']?.['error'](_0x561046(0x14a)+_0x28cc22['id'],{'toolId':_0x28cc22['toolId'],'agentId':_0x28cc22[_0x561046(0x152)],'error':_0x28cc22['error'],'executionTime':this[_0x561046(0x169)](_0x28cc22),'retryCount':_0x28cc22['retryCount']}),_0x28cc22['retryCount']<_0x28cc22['maxRetries']?setTimeout(()=>this['retryOperation'](_0x28cc22['id']),0x1388):setTimeout(()=>this['cleanupOperation'](_0x28cc22['id']),0xea60);}async[a0_0x5b4ed7(0x15e)](_0x42e573){const _0x24da77=a0_0x5b4ed7;this[_0x24da77(0x13f)]?.[_0x24da77(0x155)]('Operation\x20timed\x20out:\x20'+_0x42e573['id'],{'toolId':_0x42e573[_0x24da77(0x18f)],'agentId':_0x42e573[_0x24da77(0x152)],'timeout':_0x42e573[_0x24da77(0x14e)],'executionTime':this['calculateExecutionTime'](_0x42e573)}),this['updateOperation'](_0x42e573['id'],TOOL_STATUS[_0x24da77(0x17a)],{'error':'Operation\x20timed\x20out\x20after\x20'+_0x42e573['timeout']+'ms'}),this['emit']('operation:timeout',_0x42e573),setTimeout(()=>this[_0x24da77(0x15f)](_0x42e573['id']),0x7530);}async[a0_0x5b4ed7(0x192)](){const _0x2af7ba=a0_0x5b4ed7;this[_0x2af7ba(0x167)]=!![],this[_0x2af7ba(0x13f)]?.[_0x2af7ba(0x18b)]('Shutting down async tool manager...'),this['stopMonitoring']();const _0x45eb7f=[];for(const _0x44fea1 of this[_0x2af7ba(0x187)][_0x2af7ba(0x146)]()){(_0x44fea1[_0x2af7ba(0x14c)]===TOOL_STATUS['PENDING']||_0x44fea1[_0x2af7ba(0x14c)]===TOOL_STATUS['EXECUTING'])&&_0x45eb7f[_0x2af7ba(0x13e)](_0x44fea1['id']);}for(const _0x2880fa of _0x45eb7f){await this['cancelOperation'](_0x2880fa,'System\x20shutdown');}this[_0x2af7ba(0x187)][_0x2af7ba(0x17d)](),this[_0x2af7ba(0x13f)]?.['info'](_0x2af7ba(0x15b)+_0x45eb7f['length']+_0x2af7ba(0x165));}['getOperationHistory'](_0x4e1571={}){const _0x84c507=a0_0x5b4ed7;let _0x1a73bb=[...this['operationHistory']];return _0x4e1571[_0x84c507(0x152)]&&(_0x1a73bb=_0x1a73bb['filter'](_0x1ccbdb=>_0x1ccbdb[_0x84c507(0x152)]===_0x4e1571[_0x84c507(0x152)])),_0x4e1571['toolId']&&(_0x1a73bb=_0x1a73bb[_0x84c507(0x154)](_0x360f49=>_0x360f49['toolId']===_0x4e1571[_0x84c507(0x18f)])),_0x4e1571['status']&&(_0x1a73bb=_0x1a73bb['filter'](_0x154df9=>_0x154df9['status']===_0x4e1571[_0x84c507(0x14c)])),_0x4e1571['limit']&&(_0x1a73bb=_0x1a73bb['slice'](-_0x4e1571['limit'])),_0x1a73bb[_0x84c507(0x15a)]((_0x459c45,_0x4e61c4)=>new Date(_0x4e61c4['createdAt'])-new Date(_0x459c45[_0x84c507(0x14f)]));}}function a0_0xe2f1(){const _0x28c614=['twf4Aw11BsbYzxrYAwvZigv4y2vLzgvKigzVCIbVCgvYyxrPB246ia','CMv0CNLdB3vUDa','mtu5ndq1m2nnr2nRrq','t3bLCMf0Aw9Uihn0yxr1CYb1CgrHDgvKoIa','B3bLCMf0Aw9UoMnHBMnLBgXLza','y2XLyw51CenVBxbSzxrLze9WzxjHDgLVBNm','t3bLCMf0Aw9UignHBMnLBgXLza','C2v0t3bLCMf0Aw9UvgLTzw91Da','y2XLyxjpCgvYyxrPB25uAw1LB3v0','zgvMyxvSDfrPBwvVDxq','zxjYB3i','C3rHCNrLzef0','veLnru9vva','CM91BMq','CMvZDwX0','y2XLyxi','Dg9tDhjPBMC','z2v0u3rHDgLZDgLJCW','zgvIDwC','zw1PDa','Bwf4uMv0CMLLCW','nJa1otGYnKXLrxLyzG','z2vUzxjHDgvpCgvYyxrPB25jza','y29TCgXLDgvKqxq','zgvSzxrL','B3bLCMf0Aw9UCW','rKfjteve','BgvUz3rO','ndCYmdeZne9Au3nYEa','Aw5MBW','AgfUzgXLt3bLCMf0Aw9Uu3rHCNrLza','mtqWodK2neLrrxrfEa','mtuWmty3nfvfqufXsG','Dg9VBeLK','z2v0t3bLCMf0Aw9U','rvHfq1vusu5h','C2H1DgrVD24','DgLTzw91DeHHBMrSzq','A2v5CW','C3vIC3rY','B3bLCMf0Aw9UoMzHAwXLza','nZm2mJK5y1vNy3PA','ChvZAa','Bg9Nz2vY','AgfUzgXLt3bLCMf0Aw9UrMfPBgvK','yNLuB29S','twf4Aw11BsbJB25JDxjYzw50ig9WzxjHDgLVBNmGCMvHy2HLzcaO','y2XLyw51CeLUDgvYDMfS','yNLbz2vUDa','nwnKr25vrW','DMfSDwvZ','Bwf4sgLZDg9YEvnPEMu','qxn5BMmGB3bLCMf0Aw9Uihn0yxj0zwq6ia','ChjVz3jLC3m','t3bLCMf0Aw9UigzHAwXLzdOG','z2v0','C3rHDhvZ','t3bLCMf0Aw9UihjLDhj5igLUAxrPyxrLzdOG','DgLTzw91Da','y3jLyxrLzef0','AgfUzgXLt3bLCMf0Aw9Uq29TCgXLDgvK','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','ywDLBNrjza','mZjkr3DeCxG','zMLSDgvY','D2fYBG','C2L6zq','y2HLy2TpCgvYyxrPB25uAw1LB3v0CW','DxbKyxrLt3bLCMf0Aw9U','B3bLCMf0Aw9UsgLZDg9YEq','C29YDa','qxn5BMmGDg9VBcbTyw5Hz2vYihnODxrKB3DUignVBxbSzxrLlIbdyw5JzwXSzwqG','C3rHCNrpCgvYyxrPB24','q0foq0vmteve','AgfUzgXLt3bLCMf0Aw9UvgLTzw91Da','y2XLyw51Ce9WzxjHDgLVBG','q09nueXfveve','Bw9UAxrVCMLUz0LUDgvYDMfS','BMv3zxn0t3bLCMf0Aw9U','yxzLCMfNzuv4zwn1DgLVBLrPBwu','nZK5nZC2zMDVt3bA','ig9WzxjHDgLVBNmU','B3bLCMf0Aw9UoNbYB2DYzxnZ','AxntAhv0DgLUz0rVD24','uevoreLorW','y2fSy3vSyxrLrxHLy3v0Aw9UvgLTzq','yMLUza','q2XLyw5Lzcb1Cca','ignVBxbSzxrLzcbVCgvYyxrPB25Z','z2v0vgLTzq'];a0_0xe2f1=function(){return _0x28c614;};return a0_0xe2f1();}export default AsyncToolManager;
|
|
1
|
+
const a0_0x5167ab=a0_0x59cb;(function(_0x24522a,_0x246748){const _0x2e5b79=a0_0x59cb,_0x29e1dc=_0x24522a();while(!![]){try{const _0x17d9f3=parseInt(_0x2e5b79(0xde))/0x1+-parseInt(_0x2e5b79(0xe2))/0x2*(parseInt(_0x2e5b79(0xa8))/0x3)+parseInt(_0x2e5b79(0xb6))/0x4+-parseInt(_0x2e5b79(0xca))/0x5+-parseInt(_0x2e5b79(0xd7))/0x6+-parseInt(_0x2e5b79(0xd2))/0x7*(-parseInt(_0x2e5b79(0xc7))/0x8)+parseInt(_0x2e5b79(0x9c))/0x9*(-parseInt(_0x2e5b79(0x9e))/0xa);if(_0x17d9f3===_0x246748)break;else _0x29e1dc['push'](_0x29e1dc['shift']());}catch(_0x30a7d8){_0x29e1dc['push'](_0x29e1dc['shift']());}}}(a0_0x40df,0x6d64a));import a0_0x176ec4 from'events';function a0_0x59cb(_0x2b8c38,_0x214379){_0x2b8c38=_0x2b8c38-0x91;const _0x40df41=a0_0x40df();let _0x59cb46=_0x40df41[_0x2b8c38];if(a0_0x59cb['qKECjs']===undefined){var _0xb67390=function(_0x2f904e){const _0x1aebe2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x176ec4='',_0x4658e2='';for(let _0x42d663=0x0,_0x2745e7,_0x5326f4,_0x4d62d4=0x0;_0x5326f4=_0x2f904e['charAt'](_0x4d62d4++);~_0x5326f4&&(_0x2745e7=_0x42d663%0x4?_0x2745e7*0x40+_0x5326f4:_0x5326f4,_0x42d663++%0x4)?_0x176ec4+=String['fromCharCode'](0xff&_0x2745e7>>(-0x2*_0x42d663&0x6)):0x0){_0x5326f4=_0x1aebe2['indexOf'](_0x5326f4);}for(let _0x56f552=0x0,_0x580a96=_0x176ec4['length'];_0x56f552<_0x580a96;_0x56f552++){_0x4658e2+='%'+('00'+_0x176ec4['charCodeAt'](_0x56f552)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4658e2);};a0_0x59cb['DACVvQ']=_0xb67390,a0_0x59cb['FiWzka']={},a0_0x59cb['qKECjs']=!![];}const _0x303482=_0x40df41[0x0],_0x29824c=_0x2b8c38+_0x303482,_0x37fb39=a0_0x59cb['FiWzka'][_0x29824c];return!_0x37fb39?(_0x59cb46=a0_0x59cb['DACVvQ'](_0x59cb46),a0_0x59cb['FiWzka'][_0x29824c]=_0x59cb46):_0x59cb46=_0x37fb39,_0x59cb46;}import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AsyncToolManager extends a0_0x176ec4{constructor(_0x4658e2={},_0x42d663=null){const _0x20f211=a0_0x59cb;super(),this['config']=_0x4658e2,this['logger']=_0x42d663,this['operations']=new Map(),this[_0x20f211(0xb8)]=[],this['maxConcurrentOperations']=_0x4658e2['maxConcurrentOperations']||0xa,this[_0x20f211(0xd4)]=_0x4658e2[_0x20f211(0xd4)]||0x493e0,this[_0x20f211(0xc9)]=_0x4658e2[_0x20f211(0xc9)]||0xea60,this['maxHistorySize']=_0x4658e2[_0x20f211(0x91)]||0x3e8,this[_0x20f211(0x9a)]=null,this['isShuttingDown']=![],this['startMonitoring'](),this['on']('operation:started',this['handleOperationStarted']['bind'](this)),this['on'](_0x20f211(0xc1),this['handleOperationCompleted'][_0x20f211(0xd5)](this)),this['on'](_0x20f211(0xb5),this[_0x20f211(0xdc)]['bind'](this)),this['on']('operation:timeout',this['handleOperationTimeout'][_0x20f211(0xd5)](this));}async['startOperation'](_0x2745e7,_0x5326f4,_0x4d62d4,_0x56f552={}){const _0x284f93=a0_0x59cb;if(this['operations']['size']>=this[_0x284f93(0xe1)])throw new Error('Maximum\x20concurrent\x20operations\x20reached\x20('+this['maxConcurrentOperations']+')');const _0x580a96=this[_0x284f93(0xda)](),_0x168d0b={'id':_0x580a96,'toolId':_0x2745e7,'agentId':_0x5326f4,'parameters':_0x4d62d4,'context':_0x56f552,'status':TOOL_STATUS[_0x284f93(0xe8)],'createdAt':new Date()['toISOString'](),'startedAt':null,'completedAt':null,'timeout':_0x56f552[_0x284f93(0xa0)]||this['defaultTimeout'],'result':null,'error':null,'progress':null,'retryCount':0x0,'maxRetries':_0x56f552[_0x284f93(0xe6)]||0x0};return this[_0x284f93(0xab)][_0x284f93(0xe5)](_0x580a96,_0x168d0b),this['logger']?.[_0x284f93(0xd6)]('Async\x20operation\x20started:\x20'+_0x580a96,{'toolId':_0x2745e7,'agentId':_0x5326f4,'parametersCount':Object['keys'](_0x4d62d4)['length'],'timeout':_0x168d0b[_0x284f93(0xa0)]}),this[_0x284f93(0xbc)](_0x580a96),this['emit'](_0x284f93(0xc2),_0x168d0b),_0x580a96;}['updateOperation'](_0x4131ca,_0x3520e5,_0x2e6664={}){const _0x8d5ed7=a0_0x59cb,_0x292516=this[_0x8d5ed7(0xab)][_0x8d5ed7(0xce)](_0x4131ca);if(!_0x292516)return this[_0x8d5ed7(0xaf)]?.[_0x8d5ed7(0x92)]('Attempted\x20to\x20update\x20unknown\x20operation:\x20'+_0x4131ca),![];const _0x4aa7d7=_0x292516['status'];_0x292516['status']=_0x3520e5;_0x3520e5===TOOL_STATUS['EXECUTING']&&!_0x292516[_0x8d5ed7(0xcc)]&&(_0x292516['startedAt']=new Date()[_0x8d5ed7(0xa1)]());(_0x3520e5===TOOL_STATUS['COMPLETED']||_0x3520e5===TOOL_STATUS[_0x8d5ed7(0xb7)])&&(_0x292516['completedAt']=new Date()[_0x8d5ed7(0xa1)]());if(_0x2e6664['result']!==undefined)_0x292516['result']=_0x2e6664[_0x8d5ed7(0xe3)];if(_0x2e6664[_0x8d5ed7(0xbe)]!==undefined)_0x292516['error']=_0x2e6664[_0x8d5ed7(0xbe)];if(_0x2e6664['progress']!==undefined)_0x292516['progress']=_0x2e6664['progress'];this[_0x8d5ed7(0xaf)]?.['debug'](_0x8d5ed7(0xa7)+_0x4131ca,{'previousStatus':_0x4aa7d7,'newStatus':_0x3520e5,'hasResult':!!_0x2e6664['result'],'hasError':!!_0x2e6664['error'],'progress':_0x2e6664['progress']});switch(_0x3520e5){case TOOL_STATUS['COMPLETED']:this[_0x8d5ed7(0xc8)]('operation:completed',_0x292516);break;case TOOL_STATUS['FAILED']:this[_0x8d5ed7(0xc8)](_0x8d5ed7(0xb5),_0x292516);break;case TOOL_STATUS['EXECUTING']:this[_0x8d5ed7(0xc8)](_0x8d5ed7(0xba),_0x292516);break;}return!![];}['getOperation'](_0x35f437){const _0x4a45e4=a0_0x59cb,_0x58ac5f=this[_0x4a45e4(0xab)][_0x4a45e4(0xce)](_0x35f437);if(!_0x58ac5f)return null;return{'id':_0x58ac5f['id'],'toolId':_0x58ac5f[_0x4a45e4(0x94)],'agentId':_0x58ac5f['agentId'],'status':_0x58ac5f['status'],'createdAt':_0x58ac5f['createdAt'],'startedAt':_0x58ac5f[_0x4a45e4(0xcc)],'completedAt':_0x58ac5f[_0x4a45e4(0xd9)],'result':_0x58ac5f[_0x4a45e4(0xe3)],'error':_0x58ac5f[_0x4a45e4(0xbe)],'progress':_0x58ac5f['progress'],'retryCount':_0x58ac5f[_0x4a45e4(0x96)],'executionTime':this[_0x4a45e4(0x98)](_0x58ac5f)};}[a0_0x5167ab(0xea)](_0x5a60c7){const _0xeb3b33=a0_0x5167ab,_0x3ba26d=[];for(const _0x3b2640 of this['operations'][_0xeb3b33(0xe0)]()){_0x3b2640[_0xeb3b33(0xd3)]===_0x5a60c7&&_0x3ba26d['push'](this['getOperation'](_0x3b2640['id']));}return _0x3ba26d[_0xeb3b33(0xe9)]((_0x36e629,_0x10a1b7)=>new Date(_0x10a1b7[_0xeb3b33(0xac)])-new Date(_0x36e629['createdAt']));}async[a0_0x5167ab(0xc6)](_0x4d0da1,_0x296c64=a0_0x5167ab(0xc3)){const _0x2b6599=a0_0x5167ab,_0x3f3933=this['operations'][_0x2b6599(0xce)](_0x4d0da1);if(!_0x3f3933)return![];if(_0x3f3933['status']===TOOL_STATUS['COMPLETED']||_0x3f3933[_0x2b6599(0x99)]===TOOL_STATUS[_0x2b6599(0xb7)])return this[_0x2b6599(0xaf)]?.['warn']('Cannot\x20cancel\x20completed/failed\x20operation:\x20'+_0x4d0da1),![];return this[_0x2b6599(0xb2)](_0x4d0da1,TOOL_STATUS['CANCELLED'],{'error':_0x296c64}),this[_0x2b6599(0xe7)](_0x4d0da1),this[_0x2b6599(0xc8)](_0x2b6599(0xe4),_0x3f3933),await this[_0x2b6599(0xb0)](_0x4d0da1),this[_0x2b6599(0xaf)]?.[_0x2b6599(0xd6)](_0x2b6599(0xc5)+_0x4d0da1,{'reason':_0x296c64}),!![];}async['retryOperation'](_0x1c944c){const _0x22d23c=a0_0x5167ab,_0x17f2d4=this['operations'][_0x22d23c(0xce)](_0x1c944c);if(!_0x17f2d4)return![];if(_0x17f2d4['status']!==TOOL_STATUS[_0x22d23c(0xb7)])return this['logger']?.[_0x22d23c(0x92)](_0x22d23c(0xc4)+_0x1c944c),![];if(_0x17f2d4[_0x22d23c(0x96)]>=_0x17f2d4['maxRetries'])return this[_0x22d23c(0xaf)]?.[_0x22d23c(0x92)]('Maximum\x20retries\x20exceeded\x20for\x20operation:\x20'+_0x1c944c),![];return _0x17f2d4['retryCount']++,_0x17f2d4['status']=TOOL_STATUS['PENDING'],_0x17f2d4['startedAt']=null,_0x17f2d4['completedAt']=null,_0x17f2d4[_0x22d23c(0xbe)]=null,_0x17f2d4['result']=null,this['setOperationTimeout'](_0x1c944c),this[_0x22d23c(0xaf)]?.[_0x22d23c(0xd6)]('Operation\x20retry\x20initiated:\x20'+_0x1c944c,{'retryCount':_0x17f2d4[_0x22d23c(0x96)],'maxRetries':_0x17f2d4['maxRetries']}),this[_0x22d23c(0xc8)]('operation:retry',_0x17f2d4),!![];}[a0_0x5167ab(0xa3)](){const _0x3c23b1=a0_0x5167ab,_0x5964b6={'total':this[_0x3c23b1(0xab)]['size'],'byStatus':{},'byTool':{},'byAgent':{},'averageExecutionTime':0x0,'oldestOperation':null,'newestOperation':null};let _0x3e3b42=0x0,_0x6bc438=0x0,_0x28471a=null,_0x5daf6d=null;for(const _0x4d78d9 of this['operations']['values']()){_0x5964b6['byStatus'][_0x4d78d9[_0x3c23b1(0x99)]]=(_0x5964b6['byStatus'][_0x4d78d9['status']]||0x0)+0x1,_0x5964b6[_0x3c23b1(0xb9)][_0x4d78d9['toolId']]=(_0x5964b6[_0x3c23b1(0xb9)][_0x4d78d9[_0x3c23b1(0x94)]]||0x0)+0x1,_0x5964b6[_0x3c23b1(0xaa)][_0x4d78d9['agentId']]=(_0x5964b6[_0x3c23b1(0xaa)][_0x4d78d9[_0x3c23b1(0xd3)]]||0x0)+0x1;const _0x2455e3=this['calculateExecutionTime'](_0x4d78d9);_0x2455e3>0x0&&(_0x3e3b42+=_0x2455e3,_0x6bc438++);const _0x34abc0=new Date(_0x4d78d9[_0x3c23b1(0xac)])[_0x3c23b1(0xbf)]();(!_0x28471a||_0x34abc0<_0x28471a)&&(_0x28471a=_0x34abc0,_0x5964b6['oldestOperation']=_0x4d78d9['id']),(!_0x5daf6d||_0x34abc0>_0x5daf6d)&&(_0x5daf6d=_0x34abc0,_0x5964b6['newestOperation']=_0x4d78d9['id']);}return _0x5964b6['averageExecutionTime']=_0x6bc438>0x0?Math[_0x3c23b1(0x95)](_0x3e3b42/_0x6bc438):0x0,_0x5964b6;}async['cleanupCompletedOperations'](_0x496cdc=0x36ee80){const _0xfc4356=a0_0x5167ab,_0x21aad9=Date['now']()-_0x496cdc,_0x1ebda7=[];for(const _0x1b76d4 of this[_0xfc4356(0xab)]['values']()){(_0x1b76d4[_0xfc4356(0x99)]===TOOL_STATUS['COMPLETED']||_0x1b76d4['status']===TOOL_STATUS['FAILED']||_0x1b76d4[_0xfc4356(0x99)]===TOOL_STATUS['CANCELLED'])&&new Date(_0x1b76d4[_0xfc4356(0xd9)])['getTime']()<_0x21aad9&&_0x1ebda7[_0xfc4356(0xcf)](_0x1b76d4['id']);}for(const _0x55d370 of _0x1ebda7){await this['cleanupOperation'](_0x55d370);}return this['logger']?.[_0xfc4356(0xa9)]('Cleaned\x20up\x20'+_0x1ebda7['length']+'\x20completed\x20operations'),_0x1ebda7['length'];}[a0_0x5167ab(0xdd)](){const _0x5213fe=a0_0x5167ab;this[_0x5213fe(0x9a)]&&clearInterval(this['monitoringInterval']),this['monitoringInterval']=setInterval(()=>{const _0x4e6a54=_0x5213fe;this['checkOperationTimeouts'](),this[_0x4e6a54(0xbd)]();},this['cleanupInterval']),this['logger']?.[_0x5213fe(0xd6)](_0x5213fe(0xa4));}[a0_0x5167ab(0xae)](){const _0x2794b4=a0_0x5167ab;this['monitoringInterval']&&(clearInterval(this[_0x2794b4(0x9a)]),this[_0x2794b4(0x9a)]=null),this[_0x2794b4(0xaf)]?.['info'](_0x2794b4(0xbb));}['checkOperationTimeouts'](){const _0x4f00da=a0_0x5167ab,_0x1c3261=Date['now']();for(const _0x2c5adc of this[_0x4f00da(0xab)][_0x4f00da(0xe0)]()){if(_0x2c5adc['status']===TOOL_STATUS['EXECUTING']||_0x2c5adc['status']===TOOL_STATUS['PENDING']){const _0x4c1338=new Date(_0x2c5adc['createdAt'])[_0x4f00da(0xbf)]();_0x1c3261-_0x4c1338>_0x2c5adc[_0x4f00da(0xa0)]&&this[_0x4f00da(0xcb)](_0x2c5adc);}}}[a0_0x5167ab(0xbc)](_0x5a0a31){const _0xd94ee9=this['operations']['get'](_0x5a0a31);if(!_0xd94ee9)return;_0xd94ee9['timeoutHandle']=setTimeout(()=>{this['handleOperationTimeout'](_0xd94ee9);},_0xd94ee9['timeout']);}[a0_0x5167ab(0xe7)](_0x5a483d){const _0x19277d=a0_0x5167ab,_0x47a941=this['operations']['get'](_0x5a483d);_0x47a941&&_0x47a941['timeoutHandle']&&(clearTimeout(_0x47a941[_0x19277d(0xb4)]),delete _0x47a941['timeoutHandle']);}[a0_0x5167ab(0xda)](){const _0x357cfe=a0_0x5167ab,_0x1bf945=Date[_0x357cfe(0xd1)]()['toString'](0x24),_0x4aaeba=Math[_0x357cfe(0xcd)]()[_0x357cfe(0xa5)](0x24)['substr'](0x2,0x9);return _0x357cfe(0x9f)+_0x1bf945+'-'+_0x4aaeba;}[a0_0x5167ab(0x98)](_0x3e60ae){const _0x4da219=a0_0x5167ab;if(!_0x3e60ae[_0x4da219(0xcc)])return 0x0;const _0x3e0b06=_0x3e60ae[_0x4da219(0xd9)]?new Date(_0x3e60ae[_0x4da219(0xd9)])[_0x4da219(0xbf)]():Date[_0x4da219(0xd1)]();return _0x3e0b06-new Date(_0x3e60ae['startedAt'])['getTime']();}async['cleanupOperation'](_0x31261c){const _0x57a529=a0_0x5167ab,_0x2f8b70=this[_0x57a529(0xab)]['get'](_0x31261c);if(!_0x2f8b70)return;this['clearOperationTimeout'](_0x31261c),this[_0x57a529(0xb8)]['push']({..._0x2f8b70,'executionTime':this['calculateExecutionTime'](_0x2f8b70),'cleanedUpAt':new Date()['toISOString']()}),this[_0x57a529(0xb8)][_0x57a529(0xa2)]>this['maxHistorySize']&&(this[_0x57a529(0xb8)]=this[_0x57a529(0xb8)][_0x57a529(0x9d)](-this[_0x57a529(0x91)])),this['operations'][_0x57a529(0x9b)](_0x31261c),this[_0x57a529(0xc8)]('operation:cleanup',{'operationId':_0x31261c,'toolId':_0x2f8b70[_0x57a529(0x94)]});}['handleOperationStarted'](_0x5a1196){const _0x206e67=a0_0x5167ab;this['logger']?.['debug'](_0x206e67(0xd0)+_0x5a1196['id'],{'toolId':_0x5a1196['toolId'],'agentId':_0x5a1196['agentId']});}async['handleOperationCompleted'](_0x1e0b1d){const _0x55b9e6=a0_0x5167ab;this['logger']?.[_0x55b9e6(0xd6)](_0x55b9e6(0xb1)+_0x1e0b1d['id'],{'toolId':_0x1e0b1d[_0x55b9e6(0x94)],'agentId':_0x1e0b1d['agentId'],'executionTime':this[_0x55b9e6(0x98)](_0x1e0b1d)}),setTimeout(()=>this[_0x55b9e6(0xb0)](_0x1e0b1d['id']),0x7530);}async['handleOperationFailed'](_0x3a1a3c){const _0x2986eb=a0_0x5167ab;this['logger']?.[_0x2986eb(0xbe)](_0x2986eb(0x97)+_0x3a1a3c['id'],{'toolId':_0x3a1a3c['toolId'],'agentId':_0x3a1a3c['agentId'],'error':_0x3a1a3c['error'],'executionTime':this[_0x2986eb(0x98)](_0x3a1a3c),'retryCount':_0x3a1a3c[_0x2986eb(0x96)]}),_0x3a1a3c['retryCount']<_0x3a1a3c['maxRetries']?setTimeout(()=>this[_0x2986eb(0xad)](_0x3a1a3c['id']),0x1388):setTimeout(()=>this['cleanupOperation'](_0x3a1a3c['id']),0xea60);}async['handleOperationTimeout'](_0x1b7199){const _0xc881ff=a0_0x5167ab;this['logger']?.[_0xc881ff(0x92)]('Operation\x20timed\x20out:\x20'+_0x1b7199['id'],{'toolId':_0x1b7199['toolId'],'agentId':_0x1b7199[_0xc881ff(0xd3)],'timeout':_0x1b7199[_0xc881ff(0xa0)],'executionTime':this['calculateExecutionTime'](_0x1b7199)}),this['updateOperation'](_0x1b7199['id'],TOOL_STATUS[_0xc881ff(0xdb)],{'error':_0xc881ff(0xdf)+_0x1b7199['timeout']+'ms'}),this['emit'](_0xc881ff(0xc0),_0x1b7199),setTimeout(()=>this['cleanupOperation'](_0x1b7199['id']),0x7530);}async['shutdown'](){const _0x427f62=a0_0x5167ab;this[_0x427f62(0xb3)]=!![],this['logger']?.['info']('Shutting down async tool manager...'),this[_0x427f62(0xae)]();const _0x4383a4=[];for(const _0x42a78b of this[_0x427f62(0xab)][_0x427f62(0xe0)]()){(_0x42a78b[_0x427f62(0x99)]===TOOL_STATUS['PENDING']||_0x42a78b[_0x427f62(0x99)]===TOOL_STATUS['EXECUTING'])&&_0x4383a4['push'](_0x42a78b['id']);}for(const _0xb4161f of _0x4383a4){await this[_0x427f62(0xc6)](_0xb4161f,'System\x20shutdown');}this['operations']['clear'](),this[_0x427f62(0xaf)]?.['info']('Async\x20tool\x20manager\x20shutdown\x20complete.\x20Cancelled\x20'+_0x4383a4['length']+_0x427f62(0x93));}['getOperationHistory'](_0x1ee441={}){const _0x480dc3=a0_0x5167ab;let _0x58ce39=[...this['operationHistory']];return _0x1ee441['agentId']&&(_0x58ce39=_0x58ce39[_0x480dc3(0xa6)](_0x4f55d7=>_0x4f55d7[_0x480dc3(0xd3)]===_0x1ee441[_0x480dc3(0xd3)])),_0x1ee441[_0x480dc3(0x94)]&&(_0x58ce39=_0x58ce39['filter'](_0x2ea529=>_0x2ea529[_0x480dc3(0x94)]===_0x1ee441[_0x480dc3(0x94)])),_0x1ee441['status']&&(_0x58ce39=_0x58ce39['filter'](_0x4e2fad=>_0x4e2fad[_0x480dc3(0x99)]===_0x1ee441[_0x480dc3(0x99)])),_0x1ee441[_0x480dc3(0xd8)]&&(_0x58ce39=_0x58ce39['slice'](-_0x1ee441['limit'])),_0x58ce39['sort']((_0x11d6e2,_0x2d2216)=>new Date(_0x2d2216['createdAt'])-new Date(_0x11d6e2['createdAt']));}}function a0_0x40df(){const _0x31a48d=['z2vUzxjHDgvpCgvYyxrPB25jza','veLnru9vva','AgfUzgXLt3bLCMf0Aw9UrMfPBgvK','C3rHCNrnB25PDg9YAw5N','mta3mdmZsgDqA0nJ','t3bLCMf0Aw9UihrPBwvKig91DcbHzNrLCIa','DMfSDwvZ','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','ndG4mdCWAvLvBfbX','CMvZDwX0','B3bLCMf0Aw9UoMnHBMnLBgXLza','C2v0','Bwf4uMv0CMLLCW','y2XLyxjpCgvYyxrPB25uAw1LB3v0','uevoreLorW','C29YDa','z2v0qwDLBNrpCgvYyxrPB25Z','Bwf4sgLZDg9YEvnPEMu','D2fYBG','ig9WzxjHDgLVBNmU','Dg9VBeLK','CM91BMq','CMv0CNLdB3vUDa','t3bLCMf0Aw9UigzHAwXLzdOG','y2fSy3vSyxrLrxHLy3v0Aw9UvgLTzq','C3rHDhvZ','Bw9UAxrVCMLUz0LUDgvYDMfS','zgvSzxrL','nZeXuNH1ve1l','C2XPy2u','mJi4mZbcy05RBgq','B3aT','DgLTzw91Da','Dg9ju09tDhjPBMC','BgvUz3rO','z2v0u3rHDgLZDgLJCW','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rHCNrLza','Dg9tDhjPBMC','zMLSDgvY','t3bLCMf0Aw9Uihn0yxr1CYb1CgrHDgvKoIa','m3HOve9puW','zgvIDwC','yNLbz2vUDa','B3bLCMf0Aw9UCW','y3jLyxrLzef0','CMv0CNLpCgvYyxrPB24','C3rVCe1VBML0B3jPBMC','Bg9Nz2vY','y2XLyw51Ce9WzxjHDgLVBG','t3bLCMf0Aw9UignVBxbSzxrLzdOG','DxbKyxrLt3bLCMf0Aw9U','AxntAhv0DgLUz0rVD24','DgLTzw91DeHHBMrSzq','B3bLCMf0Aw9UoMzHAwXLza','mtu2mtK2ngfluK9PAG','rKfjteve','B3bLCMf0Aw9UsgLZDg9YEq','yNLuB29S','B3bLCMf0Aw9UoNbYB2DYzxnZ','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rVChbLza','C2v0t3bLCMf0Aw9UvgLTzw91Da','y2XLyw51CenVBxbSzxrLze9WzxjHDgLVBNm','zxjYB3i','z2v0vgLTzq','B3bLCMf0Aw9UoNrPBwvVDxq','B3bLCMf0Aw9UoMnVBxbSzxrLza','B3bLCMf0Aw9UoNn0yxj0zwq','t3bLCMf0Aw9UignHBMnLBgXLza','q2fUBM90ihjLDhj5ig5VBI1MywLSzwqGB3bLCMf0Aw9UoIa','t3bLCMf0Aw9UignHBMnLBgXLzdOG','y2fUy2vSt3bLCMf0Aw9U','mZG4mZC2EuvzzwLN','zw1PDa','y2XLyw51CeLUDgvYDMfS','mteZodm1nxrwqujNwG','AgfUzgXLt3bLCMf0Aw9UvgLTzw91Da','C3rHCNrLzef0','CMfUzg9T','z2v0','ChvZAa','t3bLCMf0Aw9Uihn0yxj0zwq6ia','BM93','mteYvLnwtNL3','ywDLBNrjza','zgvMyxvSDfrPBwvVDxq','yMLUza','Aw5MBW','mta0ndGZnhLQyLDbAa','BgLTAxq','y29TCgXLDgvKqxq'];a0_0x40df=function(){return _0x31a48d;};return a0_0x40df();}export default AsyncToolManager;
|
package/src/tools/baseTool.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x53b30a=a0_0x38d7;(function(_0x2811be,_0x29dbed){const _0x359aeb=a0_0x38d7,_0x3c2491=_0x2811be();while(!![]){try{const _0x1d68e3=-parseInt(_0x359aeb(0x221))/0x1+parseInt(_0x359aeb(0x250))/0x2*(-parseInt(_0x359aeb(0x214))/0x3)+parseInt(_0x359aeb(0x213))/0x4*(-parseInt(_0x359aeb(0x1fb))/0x5)+parseInt(_0x359aeb(0x1f8))/0x6+-parseInt(_0x359aeb(0x20f))/0x7+parseInt(_0x359aeb(0x200))/0x8*(-parseInt(_0x359aeb(0x209))/0x9)+parseInt(_0x359aeb(0x21d))/0xa;if(_0x1d68e3===_0x29dbed)break;else _0x3c2491['push'](_0x3c2491['shift']());}catch(_0x446d8a){_0x3c2491['push'](_0x3c2491['shift']());}}}(a0_0x21ab,0x18a51));function a0_0x21ab(){const _0x3216f7=['y2fSy3vSyxrLqxzLCMfNzuv4zwn1DgLVBLrPBwu','BgvUz3rO','ndm4mtmWmfHNwK1pAq','zgLZy292zxjuB29SCW','BgLZDfrVB2XZ','z2v0q2fWywjPBgL0AwvZ','nZyYmtbnuxDXyxO','vg9VBca','zw5KvgLTzq','ica8l3rVB2W+cG','CMvWBgfJzq','q09nueXfveve','D2fYBG','Aw5MBW','CMvZzxrtDgf0CW','Dg9vChbLCKnHC2u','y29UC3rYDwn0B3i','vg9VBcbLEgvJDxrPB24GDgLTzwqGB3v0igfMDgvYia','C2vJCMv0CW','zxHLy3v0zvDPDgHuAw1LB3v0','zNjVBq','BM93','cImJiefwquLmqujmrsbut09muWOk','CMvZDwX0','z2v0u3rHDhvZ','CMvXDwLYzxnqCM9Qzwn0','su1qt1juqu5uoIb3AgvUigfZA2vKihrVihbLCMzVCM0Gyw4Gywn0Aw9Uig9Yig9WzxjHDgLVBIWGDxnLigvHy2GGCMvZCg9UC2uGDg8GAw52B2TLigeGDg9VBcbPzIbUzwvKzwqSigfUzcb1CgrHDguGDgHLihvZzxiGB24GDgHLihbYB2DYzxnZicHZyw1Lig1LC3nHz2uPlG','y29UDgvUDa','DMfSAwrHDgvqyxjHBwv0zxjZ','C3rHCNruAw1L','C3rHDhvZ','z2v0ugfYyw1LDgvYu2nOzw1H','z2v0u3vWCg9YDgvKqwn0Aw9UCW','DxnHz2vdB3vUDa','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','zxHLy3v0zq','ig11C3qGAw1WBgvTzw50ihbHCNnLugfYyw1LDgvYCYGP','CMvNAxn0zxjuB29S','igHHCYbYzwfJAgvKig1HEgLTDw0Gy29Uy3vYCMvUDcbVCgvYyxrPB25ZigXPBwL0','CMvKDwnL','Dg9VBerLC2nYAxb0Aw9UCW','ihbHCNnLugfYyw1LDgvYCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','zMLSDgvY','Dg9VBenHCgfIAwXPDgLLCW','C29YDa','ugfYyw1LDgvYihzHBgLKyxrPB24GzMfPBgvKoIa','yxbPs2v5CW','AxnbC3LUyW','zMLUza','vg9VBcbZDgf0Axn0AwnZihjLC2v0oIa','kIPxqvjosu5hkIO6ifbSywLUiePtt04GD2L0Ag91DcbTyxjRzg93BIbJB2rLigjSB2nRCYaOygbGANnVBIKGD2LSBcbot1qGyMuGzxHLy3v0zwqHcG','AxnfBMfIBgvK','ntC2uKfuBLzz','t3rOzxi','B3bLCMf0Aw9UsgLZDg9YEq','ica8Dg9VBcbPzd0IDg9VBg5HBwuIpGO','A2v5CW','cGOTls0kcG','C3bSAxq','DMfSAwrHDgvqyxjHBwv0zxjuExbLCW','zw50CMLLCW','zxHLy3v0zvDPDgHmAwzLy3LJBgu','CgfYC2vqyxjHBwv0zxjZ','Aw5JBhvKzxm','DgLTzw91Da','C3vWCg9YDgvKqwn0Aw9UCW','ywn0AxzLt3bLCMf0Aw9UCW','z2vUzxjHDgvpCgvYyxrPB25jza','Dg9ju09tDhjPBMC','BMfTzq','phrVB2WTy29TBwfUzd4k','u3LZDgvT','icaIDg9VBeLKiJOGiNrVB2XUyw1LiIWk','zw5HyMXLza','zgLZywjSzq','vg9VBcbLEgvJDxrPB24GC3rHCNrLzdOG','ChvZAa','C2v0','DMfSAwrHDgvuB29S','kIPjtvbpuLrbtLqQkJOGww91ie1vu1qGDxnLig9UzsbVzIb0AgvZzsbLEgfJDcbMB3jTyxrZihrVigLUDM9Rzsb0B29SCZOkcG','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','ig1PC3nPBMCGCMvXDwLYzwqGBwv0Ag9KoIa','vg9VBcbYzwDPC3rLCMvKoIa','nJiZnZG0z2jpyuji','ig11C3qGzxH0zw5KiejHC2vuB29S','igDLDenHCgfIAwXPDgLLCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','nZuYnwLOt0zWBq','y2fSy3vSyxrLu3vJy2vZC1jHDgu','z2v0rgvZy3jPChrPB24','vg9VBcbLBMfIBgvKoIa','BwvZC2fNzq','mtiWEvL1yLv6','z2v0vxnHz2vtDgf0CW','iYmGve9ptcbjtLzpq0fusu9oifnztLrbwaOk','tufyx1rpt0XFrvHfq1vusu9ox1rjtuu','iYmJiezVCM1HDcaXoIbcCMfJA2v0ie5VDgf0Aw9UcG','ygbGcGO','CMfUzg9T','z2vUzxjHDgvuB29SrgvZy3jPChrPB25ZrM9YuhjVBxb0','y2XLyw51CeHPC3rVCNK','nJu3ntrhy1bdyxO','DhjPBq','zxHLy3v0Aw9UvgLTzq','B2jQzwn0','Bg9Nz2vY','yxn5BMm','ndm4ndGWrMfVug5Z','zxjYB3i','zxHLy3v0zvrVB2Xtzwn1CMvSEq','iYmJiezVCM1HDcaZoIbytuWGrM9YBwf0cG','mJb1zffcsLy','mtKYowzYq09mta','pc90B29SlwnVBw1HBMq+cG','DMfSAwq','Dg9VBhm','cLvZzsbBDg9VBcbPzd0IDg9VBc1Uyw1LiL08CgfYyw1LDgvYCZ5Bl3rVB2XDig9YiePtt04GzM9YBwf0ihrVigLUDM9Rzsb0B29SCY4kcG','BgfZDfvZzwq','z2v0qxzHAwXHyMXLvg9VBhngB3jvsq'];a0_0x21ab=function(){return _0x3216f7;};return a0_0x21ab();}function a0_0x38d7(_0x39bc90,_0xa41dc8){_0x39bc90=_0x39bc90-0x1e7;const _0x21ab2e=a0_0x21ab();let _0x38d70d=_0x21ab2e[_0x39bc90];if(a0_0x38d7['riqrES']===undefined){var _0x4222c6=function(_0x51cbaf){const _0x5a961d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x351e02='',_0xb3cbbd='';for(let _0x65a7b=0x0,_0x32a2cd,_0x38c88d,_0x2ec037=0x0;_0x38c88d=_0x51cbaf['charAt'](_0x2ec037++);~_0x38c88d&&(_0x32a2cd=_0x65a7b%0x4?_0x32a2cd*0x40+_0x38c88d:_0x38c88d,_0x65a7b++%0x4)?_0x351e02+=String['fromCharCode'](0xff&_0x32a2cd>>(-0x2*_0x65a7b&0x6)):0x0){_0x38c88d=_0x5a961d['indexOf'](_0x38c88d);}for(let _0x196f6d=0x0,_0xfeffc9=_0x351e02['length'];_0x196f6d<_0xfeffc9;_0x196f6d++){_0xb3cbbd+='%'+('00'+_0x351e02['charCodeAt'](_0x196f6d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xb3cbbd);};a0_0x38d7['WQqRZu']=_0x4222c6,a0_0x38d7['MpfQen']={},a0_0x38d7['riqrES']=!![];}const _0x49c772=_0x21ab2e[0x0],_0x4b478c=_0x39bc90+_0x49c772,_0x2079c1=a0_0x38d7['MpfQen'][_0x4b478c];return!_0x2079c1?(_0x38d70d=a0_0x38d7['WQqRZu'](_0x38d70d),a0_0x38d7['MpfQen'][_0x4b478c]=_0x38d70d):_0x38d70d=_0x2079c1,_0x38d70d;}import{TOOL_STATUS,OPERATION_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BaseTool{constructor(_0x351e02={},_0xb3cbbd=null){const _0xb9a06=a0_0x38d7;this['id']=this['constructor'][_0xb9a06(0x1ea)]['toLowerCase']()[_0xb9a06(0x225)]('tool',''),this['config']=_0x351e02,this['logger']=_0xb3cbbd,this[_0xb9a06(0x234)]=![],this['isAsync']=![],this['timeout']=_0x351e02['timeout']||SYSTEM_DEFAULTS[_0xb9a06(0x203)],this[_0xb9a06(0x1f5)]=_0x351e02['maxConcurrentOperations']||0x1,this[_0xb9a06(0x1e7)]=new Map(),this[_0xb9a06(0x252)]=[],this[_0xb9a06(0x24f)]=_0x351e02[_0xb9a06(0x1ee)]!==![],this[_0xb9a06(0x219)]=null,this['usageCount']=0x0;}[a0_0x53b30a(0x1fd)](){throw new Error('Tool\x20'+this['id']+'\x20must\x20implement\x20getDescription()');}[a0_0x53b30a(0x25a)](_0x65a7b){const _0x4d83de=a0_0x53b30a;throw new Error('Tool\x20'+this['id']+_0x4d83de(0x23f));}async[a0_0x53b30a(0x23e)](_0x32a2cd,_0x38c88d){throw new Error('Tool\x20'+this['id']+'\x20must\x20implement\x20execute()');}[a0_0x53b30a(0x220)](){const _0x5b5058=a0_0x53b30a;return{'id':this['id'],'async':this[_0x5b5058(0x24b)],'requiresProject':this[_0x5b5058(0x234)],'timeout':this['timeout'],'maxConcurrentOperations':this['maxConcurrentOperations'],'enabled':this[_0x5b5058(0x24f)],'supportedActions':this['getSupportedActions'](),'parameterSchema':this[_0x5b5058(0x23a)]()};}[a0_0x53b30a(0x237)](_0x2ec037){const _0x90a4e9=a0_0x53b30a;try{if(!_0x2ec037||typeof _0x2ec037!=='object')return{'valid':![],'error':'Parameters\x20must\x20be\x20an\x20object'};const requiredParams=this[_0x90a4e9(0x245)]();for(const required of requiredParams){if(!(required in _0x2ec037))return{'valid':![],'error':'Missing\x20required\x20parameter:\x20'+required};}const _0x196f6d=this[_0x90a4e9(0x257)](_0x2ec037);if(!_0x196f6d[_0x90a4e9(0x216)])return _0x196f6d;const _0xfeffc9=this[_0x90a4e9(0x23d)](_0x2ec037);if(!_0xfeffc9[_0x90a4e9(0x216)])return _0xfeffc9;return{'valid':!![]};}catch(_0x2a2028){return{'valid':![],'error':'Parameter\x20validation\x20failed:\x20'+_0x2a2028['message']};}}async[a0_0x53b30a(0x259)](_0xea3843,_0x56502c){const _0x2d7c43=a0_0x53b30a,_0x5ed4ad=this['generateOperationId'](),_0x5db0f2=Date['now']();if(!this[_0x2d7c43(0x24f)])throw new Error('Tool\x20'+this['id']+'\x20is\x20disabled');if(this[_0x2d7c43(0x1e7)]['size']>=this['maxConcurrentOperations'])throw new Error(_0x2d7c43(0x222)+this['id']+_0x2d7c43(0x241));const _0x5b5cc8=this[_0x2d7c43(0x237)](_0xea3843);if(!_0x5b5cc8[_0x2d7c43(0x216)])throw new Error(_0x2d7c43(0x249)+_0x5b5cc8['error']);const _0xd9f274={'id':_0x5ed4ad,'toolId':this['id'],'status':TOOL_STATUS['EXECUTING'],'startTime':new Date()['toISOString'](),'params':_0xea3843,'context':this['sanitizeContext'](_0x56502c)};this[_0x2d7c43(0x1e7)][_0x2d7c43(0x1f2)](_0x5ed4ad,_0xd9f274);try{this['logger']?.['info'](_0x2d7c43(0x1f0)+this['id'],{'operationId':_0x5ed4ad,'toolId':this['id'],'context':_0xd9f274['context']});const _0x3c85f9=await this[_0x2d7c43(0x22e)](_0xea3843,_0x56502c);return _0xd9f274['status']=TOOL_STATUS[_0x2d7c43(0x226)],_0xd9f274[_0x2d7c43(0x232)]=_0x3c85f9,_0xd9f274[_0x2d7c43(0x223)]=new Date()['toISOString'](),_0xd9f274['executionTime']=Date[_0x2d7c43(0x230)]()-_0x5db0f2,this[_0x2d7c43(0x219)]=new Date()['toISOString'](),this[_0x2d7c43(0x23c)]++,this['logger']?.[_0x2d7c43(0x228)]('Tool\x20execution\x20completed:\x20'+this['id'],{'operationId':_0x5ed4ad,'executionTime':_0xd9f274[_0x2d7c43(0x20b)],'success':!![]}),{'success':!![],'operationId':_0x5ed4ad,'result':_0x3c85f9,'executionTime':_0xd9f274[_0x2d7c43(0x20b)],'toolId':this['id']};}catch(_0x4e9079){_0xd9f274[_0x2d7c43(0x239)]=TOOL_STATUS['FAILED'],_0xd9f274['error']=_0x4e9079[_0x2d7c43(0x1ff)],_0xd9f274['endTime']=new Date()[_0x2d7c43(0x1e9)](),_0xd9f274[_0x2d7c43(0x20b)]=Date['now']()-_0x5db0f2,this[_0x2d7c43(0x20d)]?.['error']('Tool\x20execution\x20failed:\x20'+this['id'],{'operationId':_0x5ed4ad,'error':_0x4e9079[_0x2d7c43(0x1ff)],'executionTime':_0xd9f274[_0x2d7c43(0x20b)]});throw _0x4e9079;}finally{this['operationHistory'][_0x2d7c43(0x1f1)]({..._0xd9f274}),this['activeOperations']['delete'](_0x5ed4ad),this[_0x2d7c43(0x208)](),await this['cleanup'](_0x5ed4ad);}}async[a0_0x53b30a(0x233)](_0x45799a){const _0x1dd97b=a0_0x53b30a,_0x3cefc4=this['activeOperations']['get'](_0x45799a);if(!_0x3cefc4){const _0x3411b3=this[_0x1dd97b(0x252)][_0x1dd97b(0x24c)](_0x4dc33f=>_0x4dc33f['id']===_0x45799a);if(_0x3411b3)return{'operationId':_0x45799a,'status':_0x3411b3[_0x1dd97b(0x239)],'result':_0x3411b3['result'],'error':_0x3411b3[_0x1dd97b(0x210)],'executionTime':_0x3411b3[_0x1dd97b(0x20b)]};return{'operationId':_0x45799a,'status':OPERATION_STATUS['NOT_FOUND'],'error':'Operation\x20not\x20found'};}return{'operationId':_0x45799a,'status':_0x3cefc4['status'],'startTime':_0x3cefc4[_0x1dd97b(0x238)],'executionTime':_0x3cefc4['endTime']?new Date(_0x3cefc4['endTime'])['getTime']()-new Date(_0x3cefc4['startTime'])['getTime']():Date[_0x1dd97b(0x230)]()-new Date(_0x3cefc4[_0x1dd97b(0x238)])['getTime']()};}async['cleanup'](_0x176d45){}[a0_0x53b30a(0x23b)](){return['execute'];}[a0_0x53b30a(0x23a)](){return{'type':'object','properties':{},'required':[]};}['getRequiredParameters'](){return[];}[a0_0x53b30a(0x257)](_0x3bd90f){return{'valid':!![]};}['customValidateParameters'](_0x2f0b71){return{'valid':!![]};}async['executeWithTimeout'](_0x269db3,_0x50b7b2){return new Promise(async(_0x47f593,_0x1f39ff)=>{const _0x2c45b7=setTimeout(()=>{const _0x154ef3=a0_0x38d7;_0x1f39ff(new Error(_0x154ef3(0x22c)+this[_0x154ef3(0x25c)]+'ms'));},this['timeout']);try{const _0x1d2a77=await this['execute'](_0x269db3,_0x50b7b2);clearTimeout(_0x2c45b7),_0x47f593(_0x1d2a77);}catch(_0x868eae){clearTimeout(_0x2c45b7),_0x1f39ff(_0x868eae);}});}[a0_0x53b30a(0x1e8)](){const _0x1e68e0=a0_0x53b30a;return this['id']+'-'+Date[_0x1e68e0(0x230)]()+'-'+Math[_0x1e68e0(0x206)]()['toString'](0x24)['substr'](0x2,0x9);}['sanitizeContext'](_0x3d771d){const _0x3b9b90=a0_0x53b30a,_0x31573a={..._0x3d771d};return delete _0x31573a[_0x3b9b90(0x24a)],delete _0x31573a[_0x3b9b90(0x22d)],delete _0x31573a['passwords'],_0x31573a[_0x3b9b90(0x236)]&&_0x31573a[_0x3b9b90(0x236)]['length']>0x1f4&&(_0x31573a['content']=_0x31573a['content']['substring'](0x0,0x1f4)+'...\x20[truncated]'),_0x31573a;}['cleanupHistory'](){const _0x1df0c4=a0_0x53b30a,_0x3afd70=0x64;this[_0x1df0c4(0x252)]['length']>_0x3afd70&&(this[_0x1df0c4(0x252)]=this['operationHistory']['slice'](-_0x3afd70));}[a0_0x53b30a(0x201)](){const _0x515d40=a0_0x53b30a;return{'toolId':this['id'],'usageCount':this['usageCount'],'lastUsed':this[_0x515d40(0x219)],'activeOperations':this[_0x515d40(0x1e7)]['size'],'totalOperations':this[_0x515d40(0x252)]['length'],'averageExecutionTime':this[_0x515d40(0x21b)](),'successRate':this[_0x515d40(0x1fc)](),'isEnabled':this[_0x515d40(0x24f)]};}[a0_0x53b30a(0x21b)](){const _0x267e90=a0_0x53b30a,_0x55fd8a=this['operationHistory'][_0x267e90(0x246)](_0x2269a3=>_0x2269a3['status']===TOOL_STATUS[_0x267e90(0x226)]&&_0x2269a3['executionTime']);if(_0x55fd8a['length']===0x0)return 0x0;const _0x408d05=_0x55fd8a['reduce']((_0x37cdb,_0x2da39f)=>_0x37cdb+_0x2da39f[_0x267e90(0x20b)],0x0);return Math['round'](_0x408d05/_0x55fd8a[_0x267e90(0x21c)]);}['calculateSuccessRate'](){const _0x6c8bbd=a0_0x53b30a;if(this[_0x6c8bbd(0x252)][_0x6c8bbd(0x21c)]===0x0)return 0x0;const _0x57901f=this[_0x6c8bbd(0x252)][_0x6c8bbd(0x246)](_0x33a5ea=>_0x33a5ea['status']===TOOL_STATUS['COMPLETED']);return _0x57901f[_0x6c8bbd(0x21c)]/this[_0x6c8bbd(0x252)][_0x6c8bbd(0x21c)]*0x64;}['enable'](){const _0x89d7ac=a0_0x53b30a;this[_0x89d7ac(0x24f)]=!![],this[_0x89d7ac(0x20d)]?.['info'](_0x89d7ac(0x1fe)+this['id']);}[a0_0x53b30a(0x1ef)](){const _0x565d4f=a0_0x53b30a;this[_0x565d4f(0x24f)]=![],this[_0x565d4f(0x20d)]?.['info']('Tool\x20disabled:\x20'+this['id']);}[a0_0x53b30a(0x229)](){const _0x4c8697=a0_0x53b30a;this[_0x4c8697(0x23c)]=0x0,this[_0x4c8697(0x219)]=null,this['operationHistory']=[],this['logger']?.[_0x4c8697(0x228)](_0x4c8697(0x24d)+this['id']);}}class ToolsRegistry{constructor(_0x4c92c0=null){const _0x166539=a0_0x53b30a;this['logger']=_0x4c92c0,this[_0x166539(0x217)]=new Map(),this['toolDescriptions']=new Map(),this['toolCapabilities']=new Map(),this['asyncOperations']=new Map();}async[a0_0x53b30a(0x240)](_0x3807f1){const _0x49e775=a0_0x53b30a;try{const _0x103be7=new _0x3807f1();if(!(_0x103be7 instanceof BaseTool))throw new Error('Tool\x20'+_0x3807f1['name']+_0x49e775(0x1f9));const _0x2ff65d=_0x103be7[_0x49e775(0x220)]();await this[_0x49e775(0x1f3)](_0x103be7),this[_0x49e775(0x217)][_0x49e775(0x1f2)](_0x103be7['id'],_0x103be7),this[_0x49e775(0x243)]['set'](_0x103be7['id'],_0x103be7['getDescription']()),this[_0x49e775(0x247)]['set'](_0x103be7['id'],_0x2ff65d),this[_0x49e775(0x20d)]?.['info'](_0x49e775(0x1f7)+_0x103be7['id'],{'capabilities':_0x2ff65d[_0x49e775(0x25d)],'async':_0x2ff65d[_0x49e775(0x20e)],'requiresProject':_0x2ff65d[_0x49e775(0x234)]});}catch(_0xff615b){this['logger']?.['error']('Tool\x20registration\x20failed:\x20'+_0xff615b['message'],{'toolClass':_0x3807f1[_0x49e775(0x1ea)]});throw _0xff615b;}}async[a0_0x53b30a(0x21e)](_0x408583){return 0x0;}async['validateTool'](_0x197331){const _0x5780f8=a0_0x53b30a,requiredMethods=[_0x5780f8(0x1fd),'parseParameters','execute'];for(const _0x35f277 of requiredMethods){if(typeof _0x197331[_0x35f277]!=='function')throw new Error('Tool\x20'+_0x197331['id']+_0x5780f8(0x1f6)+_0x35f277);}try{const _0x343f55=_0x197331[_0x5780f8(0x25a)]('test\x20content');if(typeof _0x343f55!==_0x5780f8(0x20c))throw new Error('Tool\x20'+_0x197331['id']+_0x5780f8(0x244));}catch(_0x3979ae){}const _0x5eff0e=_0x197331[_0x5780f8(0x220)]();if(!_0x5eff0e||typeof _0x5eff0e!=='object')throw new Error(_0x5780f8(0x222)+_0x197331['id']+_0x5780f8(0x1fa));}['getTool'](_0x2114f5){return this['tools']['get'](_0x2114f5)||null;}['getToolCapabilities'](){const _0x46db8d=a0_0x53b30a,_0x3c893f={};for(const [_0x5162a2,_0x395a8a]of this[_0x46db8d(0x217)]['entries']()){_0x395a8a['isEnabled']&&(_0x3c893f[_0x5162a2]={'description':this[_0x46db8d(0x243)]['get'](_0x5162a2),'capabilities':this['toolCapabilities']['get'](_0x5162a2),'usageStats':_0x395a8a['getUsageStats']()});}return _0x3c893f;}async[a0_0x53b30a(0x211)](_0x24414c,_0x58f8e4,_0x8ff2b3){const _0x3fcf51=a0_0x53b30a,_0x1319db=this['getTool'](_0x24414c);if(!_0x1319db)throw new Error('Tool\x20not\x20found:\x20'+_0x24414c);if(!_0x1319db[_0x3fcf51(0x24f)])throw new Error('Tool\x20is\x20disabled:\x20'+_0x24414c);return await _0x1319db['executeWithLifecycle'](_0x58f8e4,_0x8ff2b3);}[a0_0x53b30a(0x21f)](){const _0x34c27f=a0_0x53b30a;return Array[_0x34c27f(0x22f)](this['tools']['keys']());}[a0_0x53b30a(0x207)](_0x39077d=[],_0x4e7fb1={}){const _0x21f289=a0_0x53b30a,{includeExamples:includeExamples=!![],includeUsageGuidelines:includeUsageGuidelines=!![],includeSecurityNotes:includeSecurityNotes=!![],compact:compact=![]}=_0x4e7fb1,_0x19ebc0=_0x39077d[_0x21f289(0x21c)]>0x0?_0x39077d['filter'](_0x32edb6=>this['tools']['has'](_0x32edb6)):Array['from'](this[_0x21f289(0x217)][_0x21f289(0x254)]());if(_0x19ebc0[_0x21f289(0x21c)]===0x0)return'';let _0x48d4ac=_0x21f289(0x231);_0x48d4ac+='You\x20have\x20access\x20to\x20the\x20following\x20tools\x20to\x20perform\x20operations\x20and\x20tasks:\x0a\x0a';for(const _0x2e31ef of _0x19ebc0){const _0x4eb5c5=this[_0x21f289(0x217)]['get'](_0x2e31ef);if(!_0x4eb5c5||!_0x4eb5c5['isEnabled'])continue;try{if(compact){const _0x3be1e5=_0x4eb5c5[_0x21f289(0x220)](),_0x435998=_0x3be1e5[_0x21f289(0x25d)]||['execute'];_0x48d4ac+='**'+_0x2e31ef+'**:\x20'+_0x435998['join'](',\x20')+'\x0a';}else _0x48d4ac+='###\x20'+_0x2e31ef['toUpperCase']()+'\x20TOOL\x0a\x0a',_0x48d4ac+=_0x4eb5c5[_0x21f289(0x1fd)](),_0x48d4ac+=_0x21f289(0x255);}catch(_0x1787b3){this[_0x21f289(0x20d)]?.[_0x21f289(0x227)]('Failed\x20to\x20get\x20description\x20for\x20tool:\x20'+_0x2e31ef,{'error':_0x1787b3['message']});}}return compact&&(_0x48d4ac+=_0x21f289(0x218)),_0x48d4ac+=_0x21f289(0x202),_0x48d4ac+=_0x21f289(0x1f4),_0x48d4ac+=_0x21f289(0x204),_0x48d4ac+='```\x0a',_0x48d4ac+='[tool\x20id=\x22toolname\x22]\x0a',_0x48d4ac+='<parameters\x20here>\x0a',_0x48d4ac+='[/tool]\x0a',_0x48d4ac+=_0x21f289(0x205),_0x48d4ac+='###\x20Format\x202:\x20JSON\x20in\x20Markdown\x20Code\x20Block\x20(REQUIRED\x20for\x20JSON)\x0a',_0x48d4ac+='```\x0a',_0x48d4ac+='```json\x0a',_0x48d4ac+='{\x0a',_0x48d4ac+=_0x21f289(0x1ed),_0x48d4ac+='\x20\x20\x22parameters\x22:\x20{\x20...\x20}\x20or\x20\x22actions\x22:\x20[\x20...\x20]\x0a',_0x48d4ac+='}\x0a',_0x48d4ac+='```\x0a',_0x48d4ac+=_0x21f289(0x205),_0x48d4ac+=_0x21f289(0x24e),_0x48d4ac+='Always\x20wrap\x20JSON\x20tool\x20commands\x20in\x20```json\x20...\x20```\x20blocks.\x0a\x0a',_0x48d4ac+=_0x21f289(0x212),_0x48d4ac+='```xml\x0a',_0x48d4ac+=_0x21f289(0x1eb),_0x48d4ac+=_0x21f289(0x253),_0x48d4ac+='\x20\x20\x20\x20<parameter>value</parameter>\x0a',_0x48d4ac+=_0x21f289(0x224),_0x48d4ac+=_0x21f289(0x215),_0x48d4ac+=_0x21f289(0x205),_0x48d4ac+='After\x20invoking\x20a\x20tool,\x20WAIT\x20for\x20the\x20actual\x20response.\x20Do\x20NOT\x20generate\x20imaginary\x20responses.\x0a',_0x48d4ac;}['enhanceSystemPrompt'](_0x12a2da,_0x50548d=[],_0x4abc6f={}){const _0x15af27=a0_0x53b30a,_0x3bd8e5=this[_0x15af27(0x207)](_0x50548d,_0x4abc6f);if(!_0x3bd8e5['trim']())return _0x12a2da||'';const _0x43f609=_0x12a2da||'';if(_0x43f609[_0x15af27(0x25b)]('##\x20AVAILABLE\x20TOOLS'))return _0x43f609[_0x15af27(0x225)](/## AVAILABLE TOOLS[\s\S]*?(?=##|$)/,_0x3bd8e5+'\x0a');const _0x3a605f=_0x15af27(0x235);return _0x43f609+(_0x43f609['endsWith']('\x0a')?'':'\x0a')+_0x3bd8e5+_0x3a605f+'\x0a';}[a0_0x53b30a(0x21a)](){const _0x271265=a0_0x53b30a,_0x4ad80a=[];for(const [_0x2d1d54,_0x1eb604]of this[_0x271265(0x217)][_0x271265(0x258)]()){const _0x2ec4cf=_0x1eb604['getCapabilities'](),_0x40393b=_0x1eb604[_0x271265(0x1fd)](),_0x4b10e1=_0x40393b[_0x271265(0x256)]('\x0a')[_0x271265(0x24c)](_0x4b3aeb=>_0x4b3aeb['trim']()['length']>0x0)||'',_0x6ef326=_0x4b10e1[_0x271265(0x225)](/^.*Tool:\s*/i,'')[_0x271265(0x225)](/\s*-.*$/,'')[_0x271265(0x20a)]();_0x4ad80a['push']({'id':_0x2d1d54,'name':_0x6ef326||_0x2d1d54['charAt'](0x0)[_0x271265(0x22a)]()+_0x2d1d54['slice'](0x1),'description':_0x4b10e1,'category':this['_getToolCategory'](_0x2d1d54),'enabled':_0x2ec4cf['enabled'],'async':_0x2ec4cf[_0x271265(0x20e)],'requiresProject':_0x2ec4cf[_0x271265(0x234)],'className':_0x1eb604[_0x271265(0x22b)][_0x271265(0x1ea)]});}return _0x4ad80a[_0x271265(0x248)]((_0x32ed5b,_0x4025f4)=>_0x32ed5b[_0x271265(0x1ea)]['localeCompare'](_0x4025f4[_0x271265(0x1ea)]));}['_getToolCategory'](_0x47ec20){const _0x9a1f05=a0_0x53b30a,_0x52e3fa={'terminal':_0x9a1f05(0x1ec),'filesystem':'File\x20Operations','browser':'Automation','agentdelay':'Utility'};return _0x52e3fa[_0x47ec20]||_0x9a1f05(0x251);}['getRegistryStats'](){const _0x3e5900=a0_0x53b30a,_0x1f46d8=Array[_0x3e5900(0x22f)](this['tools']['values']())[_0x3e5900(0x246)](_0xe19050=>_0xe19050[_0x3e5900(0x24f)]),_0x368f17=Array['from'](this['tools']['values']())[_0x3e5900(0x242)]((_0x48b41f,_0x48be80)=>_0x48b41f+_0x48be80['usageCount'],0x0);return{'totalTools':this[_0x3e5900(0x217)]['size'],'enabledTools':_0x1f46d8[_0x3e5900(0x21c)],'totalOperations':_0x368f17,'activeOperations':this['asyncOperations']['size']};}}export{BaseTool,ToolsRegistry};
|
|
1
|
+
function a0_0x3433(_0x397d32,_0x12982b){_0x397d32=_0x397d32-0x14b;const _0x4b8e96=a0_0x4b8e();let _0x343380=_0x4b8e96[_0x397d32];if(a0_0x3433['rELpic']===undefined){var _0x3200fa=function(_0x2b9693){const _0x555d01='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x40f830='',_0xfb0705='';for(let _0x4fefbb=0x0,_0x4a5795,_0x264456,_0x86e46f=0x0;_0x264456=_0x2b9693['charAt'](_0x86e46f++);~_0x264456&&(_0x4a5795=_0x4fefbb%0x4?_0x4a5795*0x40+_0x264456:_0x264456,_0x4fefbb++%0x4)?_0x40f830+=String['fromCharCode'](0xff&_0x4a5795>>(-0x2*_0x4fefbb&0x6)):0x0){_0x264456=_0x555d01['indexOf'](_0x264456);}for(let _0x5a7dde=0x0,_0x57ea2a=_0x40f830['length'];_0x5a7dde<_0x57ea2a;_0x5a7dde++){_0xfb0705+='%'+('00'+_0x40f830['charCodeAt'](_0x5a7dde)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xfb0705);};a0_0x3433['DSLRpf']=_0x3200fa,a0_0x3433['SAbhMT']={},a0_0x3433['rELpic']=!![];}const _0x36e38c=_0x4b8e96[0x0],_0x184f1e=_0x397d32+_0x36e38c,_0x11dc2b=a0_0x3433['SAbhMT'][_0x184f1e];return!_0x11dc2b?(_0x343380=a0_0x3433['DSLRpf'](_0x343380),a0_0x3433['SAbhMT'][_0x184f1e]=_0x343380):_0x343380=_0x11dc2b,_0x343380;}const a0_0x24430d=a0_0x3433;function a0_0x4b8e(){const _0x30f057=['y29UDgv4Da','zxHLy3v0zvrVB2Xtzwn1CMvSEq','z2vUzxjHDgvuB29SrgvZy3jPChrPB25ZrM9YuhjVBxb0','z2v0q2fWywjPBgL0AwvZ','rvHfq1vusu5h','ica8l3rVB2W+cG','ywn0AxzLt3bLCMf0Aw9UCW','vg9VBcbLEgvJDxrPB24GC3rHCNrLzdOG','zxjYB3i','B3bLCMf0Aw9UsgLZDg9YEq','BgLZDfrVB2XZ','C3rHCNruAw1L','mtmWnu15z3bZDq','su1qt1juqu5uoIb3AgvUigfZA2vKihrVihbLCMzVCM0Gyw4Gywn0Aw9Uig9Yig9WzxjHDgLVBIWGDxnLigvHy2GGCMvZCg9UC2uGDg8GAw52B2TLigeGDg9VBcbPzIbUzwvKzwqSigfUzcb1CgrHDguGDgHLihvZzxiGB24GDgHLihbYB2DYzxnZicHZyw1Lig1LC3nHz2uPlG','Bg9Nz2vY','mZq3mJiXsLfOuMD6','zgLZywjSzq','C3vWCg9YDgvKqwn0Aw9UCW','BgfZDfvZzwq','mZbcs1rmq1u','ig11C3qGAw1WBgvTzw50igDLDerLC2nYAxb0Aw9UkcK','CgfYC2vqyxjHBwv0zxjZ','C3bSAxq','otbdzMHLvgu','zw5HyMXLza','ica8Dg9VBcbPzd0IDg9VBg5HBwuIpGO','C2L6zq','C2v0','C3rHDhvZ','BgvUz3rO','z2v0','Dg9vChbLCKnHC2u','zxHLy3v0zvDPDgHmAwzLy3LJBgu','vg9VBcbLBMfIBgvKoIa','z2v0u3vWCg9YDgvKqwn0Aw9UCW','icaIDg9VBeLKiJOGiNrVB2XUyw1LiIWk','z2v0qxzHAwXHyMXLvg9VBhngB3jvsq','kIO6ia','qwz0zxiGAw52B2TPBMCGysb0B29SlcbxquLuigzVCIb0AguGywn0DwfSihjLC3bVBNnLlIbeBYbot1qGz2vUzxjHDguGAw1Hz2LUyxj5ihjLC3bVBNnLCY4k','ihbHCNnLugfYyw1LDgvYCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','zMLSDgvY','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','z2v0ugfYyw1LDgvYu2nOzw1H','ntu2odiXmhbozw5vBa','y29UzMLN','q09nueXfveve','vg9VBcbZDgf0Axn0AwnZihjLC2v0oIa','mJG5otyWnxDfzLDVCG','ugfYyw1LDgvYihzHBgLKyxrPB24GzMfPBgvKoIa','phrVB2WTy29TBwfUzd4k','zw50CMLLCW','DMfSAwrHDgvqyxjHBwv0zxjuExbLCW','z2vUzxjHDgvpCgvYyxrPB25jza','BM93','zxHLy3v0zvDPDgHuAw1LB3v0','nteWnZe2tLvOBfLA','z2v0rgvZy3jPChrPB24','kIPjtvbpuLrbtLqQkJOGww91ie1vu1qGDxnLig9UzsbVzIb0AgvZzsbLEgfJDcbMB3jTyxrZihrVigLUDM9Rzsb0B29SCZOkcG','vg9VBcbLEgvJDxrPB24GzMfPBgvKoIa','DMfSDwvZ','z2v0vg9VBenHCgfIAwXPDgLLCW','C29YDa','ygbGANnVBGO','cLvZzsbBDg9VBcbPzd0IDg9VBc1Uyw1LiL08CgfYyw1LDgvYCZ5Bl3rVB2XDig9YiePtt04GzM9YBwf0ihrVigLUDM9Rzsb0B29SCY4kcG','CMvXDwLYzxnqCM9Qzwn0','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','Dg9VBa','y29UDgvUDa','mtKZmtjcyxD5se4','z2v0vxnHz2vtDgf0CW','zw5KvgLTzq','AxnbC3LUyW','z2v0vgLTzq','twLZC2LUzYbYzxf1AxjLzcbWyxjHBwv0zxi6ia','zNjVBq','y2fSy3vSyxrLu3vJy2vZC1jHDgu','x2DLDfrVB2XdyxrLz29YEq','C2fUAxrPEMvdB250zxH0','Bg9JywXLq29TCgfYzq','DgvZDcbJB250zw50','odmXmdeYCwDlve1T','Dg9VBenHCgfIAwXPDgLLCW','odq5otq4r0vfBLfL','vg9VBcbLEgvJDxrPB24GDgLTzwqGB3v0igfMDgvYia','iYmJiezVCM1HDcaYoIbku09oigLUie1HCMTKB3DUienVzguGqMXVy2SGkfjfuvvjuKveigzVCIbku09okqO','C2XPy2u','y2XLyw51Ca','CMvZzxrtDgf0CW','iYmGqvzbsuXbqKXfifrpt0Xt','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','BwvZC2fNzq','Dg9ju09tDhjPBMC','CM91BMq','ygbGcGO','zxHLy3v0zq','Dg9VBerLC2nYAxb0Aw9UCW','zMLUza','vg9VBcbLEgvJDxrPB24Gy29TCgXLDgvKoIa','y2fSy3vSyxrLqxzLCMfNzuv4zwn1DgLVBLrPBwu','ugfYyw1LDgvYCYbTDxn0igjLigfUig9IAMvJDa','vg9VBcbYzwDPC3rLCMvKoIa','AxnfBMfIBgvK','zw5HyMXL','B2jQzwn0','ig1PC3nPBMCGCMvXDwLYzwqGBwv0Ag9KoIa','zxHLy3v0Aw9UvgLTzq','y2XLyw51CeHPC3rVCNK','Dg9VBhm','CMvKDwnL','vg9VBca','DhjPBq','zNvUy3rPB24','Aw5MBW','DxnHz2vdB3vUDa','tufyx1rpt0XFrvHfq1vusu9ox1rjtuu','DgLTzw91Da'];a0_0x4b8e=function(){return _0x30f057;};return a0_0x4b8e();}(function(_0x4040b7,_0x3edcf5){const _0x19c448=a0_0x3433,_0x44998b=_0x4040b7();while(!![]){try{const _0x21652c=parseInt(_0x19c448(0x1b7))/0x1+parseInt(_0x19c448(0x1b9))/0x2+parseInt(_0x19c448(0x196))/0x3+parseInt(_0x19c448(0x19e))/0x4*(-parseInt(_0x19c448(0x17a))/0x5)+parseInt(_0x19c448(0x17e))/0x6*(-parseInt(_0x19c448(0x176))/0x7)+parseInt(_0x19c448(0x1ab))/0x8*(parseInt(_0x19c448(0x173))/0x9)+-parseInt(_0x19c448(0x192))/0xa;if(_0x21652c===_0x3edcf5)break;else _0x44998b['push'](_0x44998b['shift']());}catch(_0x3d38f3){_0x44998b['push'](_0x44998b['shift']());}}}(a0_0x4b8e,0x7b70b));import{TOOL_STATUS,OPERATION_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BaseTool{constructor(_0x40f830={},_0xfb0705=null){const _0x1d6903=a0_0x3433;this['id']=this['constructor']['name']['toLowerCase']()['replace'](_0x1d6903(0x1a9),''),this[_0x1d6903(0x193)]=_0x40f830,this[_0x1d6903(0x175)]=_0xfb0705,this['requiresProject']=![],this[_0x1d6903(0x1ae)]=![],this[_0x1d6903(0x166)]=_0x40f830['timeout']||SYSTEM_DEFAULTS[_0x1d6903(0x165)],this[_0x1d6903(0x190)]=_0x40f830['maxConcurrentOperations']||0x1,this['activeOperations']=new Map(),this['operationHistory']=[],this[_0x1d6903(0x158)]=_0x40f830[_0x1d6903(0x17f)]!==![],this['lastUsed']=null,this[_0x1d6903(0x164)]=0x0;}['getDescription'](){const _0x2a8624=a0_0x3433;throw new Error('Tool\x20'+this['id']+_0x2a8624(0x17b));}['parseParameters'](_0x4fefbb){throw new Error('Tool\x20'+this['id']+'\x20must\x20implement\x20parseParameters()');}async['execute'](_0x4a5795,_0x264456){throw new Error('Tool\x20'+this['id']+'\x20must\x20implement\x20execute()');}[a0_0x24430d(0x16a)](){const _0x329c79=a0_0x24430d;return{'id':this['id'],'async':this[_0x329c79(0x1ae)],'requiresProject':this[_0x329c79(0x1a7)],'timeout':this[_0x329c79(0x166)],'maxConcurrentOperations':this['maxConcurrentOperations'],'enabled':this['isEnabled'],'supportedActions':this[_0x329c79(0x189)](),'parameterSchema':this['getParameterSchema']()};}['validateParameters'](_0x86e46f){const _0xef8dc7=a0_0x24430d;try{if(!_0x86e46f||typeof _0x86e46f!=='object')return{'valid':![],'error':_0xef8dc7(0x156)};const requiredParams=this[_0xef8dc7(0x14c)]();for(const required of requiredParams){if(!(required in _0x86e46f))return{'valid':![],'error':_0xef8dc7(0x1b0)+required};}const _0x5a7dde=this[_0xef8dc7(0x19a)](_0x86e46f);if(!_0x5a7dde['valid'])return _0x5a7dde;const _0x57ea2a=this[_0xef8dc7(0x1a8)](_0x86e46f);if(!_0x57ea2a['valid'])return _0x57ea2a;return{'valid':!![]};}catch(_0x799653){return{'valid':![],'error':_0xef8dc7(0x197)+_0x799653[_0xef8dc7(0x14d)]};}}async['executeWithLifecycle'](_0x298a4d,_0x12aa19){const _0x338225=a0_0x24430d,_0x298b55=this[_0x338225(0x19b)](),_0x10477b=Date[_0x338225(0x19c)]();if(!this[_0x338225(0x158)])throw new Error(_0x338225(0x160)+this['id']+'\x20is\x20disabled');if(this[_0x338225(0x16d)]['size']>=this['maxConcurrentOperations'])throw new Error(_0x338225(0x160)+this['id']+'\x20has\x20reached\x20maximum\x20concurrent\x20operations\x20limit');const _0x3d5180=this['validateParameters'](_0x298a4d);if(!_0x3d5180['valid'])throw new Error(_0x338225(0x197)+_0x3d5180[_0x338225(0x16f)]);const _0x2ec23a={'id':_0x298b55,'toolId':this['id'],'status':TOOL_STATUS[_0x338225(0x16b)],'startTime':new Date()['toISOString'](),'params':_0x298a4d,'context':this['sanitizeContext'](_0x12aa19)};this[_0x338225(0x16d)]['set'](_0x298b55,_0x2ec23a);try{this['logger']?.[_0x338225(0x163)](_0x338225(0x16e)+this['id'],{'operationId':_0x298b55,'toolId':this['id'],'context':_0x2ec23a[_0x338225(0x167)]});const _0x20b74e=await this[_0x338225(0x19d)](_0x298a4d,_0x12aa19);return _0x2ec23a['status']=TOOL_STATUS[_0x338225(0x194)],_0x2ec23a['result']=_0x20b74e,_0x2ec23a[_0x338225(0x1ad)]=new Date()['toISOString'](),_0x2ec23a[_0x338225(0x15c)]=Date[_0x338225(0x19c)]()-_0x10477b,this['lastUsed']=new Date()['toISOString'](),this[_0x338225(0x164)]++,this['logger']?.['info'](_0x338225(0x154)+this['id'],{'operationId':_0x298b55,'executionTime':_0x2ec23a[_0x338225(0x15c)],'success':!![]}),{'success':!![],'operationId':_0x298b55,'result':_0x20b74e,'executionTime':_0x2ec23a['executionTime'],'toolId':this['id']};}catch(_0x5263be){_0x2ec23a[_0x338225(0x183)]=TOOL_STATUS['FAILED'],_0x2ec23a['error']=_0x5263be[_0x338225(0x14d)],_0x2ec23a[_0x338225(0x1ad)]=new Date()[_0x338225(0x14e)](),_0x2ec23a['executionTime']=Date['now']()-_0x10477b,this['logger']?.['error'](_0x338225(0x1a1)+this['id'],{'operationId':_0x298b55,'error':_0x5263be[_0x338225(0x14d)],'executionTime':_0x2ec23a[_0x338225(0x15c)]});throw _0x5263be;}finally{this['operationHistory']['push']({..._0x2ec23a}),this[_0x338225(0x16d)]['delete'](_0x298b55),this[_0x338225(0x15d)](),await this[_0x338225(0x1bd)](_0x298b55);}}async['getStatus'](_0x1e0987){const _0x34f5de=a0_0x24430d,_0x2dabf7=this[_0x34f5de(0x16d)][_0x34f5de(0x185)](_0x1e0987);if(!_0x2dabf7){const _0x1b8520=this[_0x34f5de(0x170)]['find'](_0x2232df=>_0x2232df['id']===_0x1e0987);if(_0x1b8520)return{'operationId':_0x1e0987,'status':_0x1b8520[_0x34f5de(0x183)],'result':_0x1b8520['result'],'error':_0x1b8520[_0x34f5de(0x16f)],'executionTime':_0x1b8520[_0x34f5de(0x15c)]};return{'operationId':_0x1e0987,'status':OPERATION_STATUS['NOT_FOUND'],'error':'Operation\x20not\x20found'};}return{'operationId':_0x1e0987,'status':_0x2dabf7[_0x34f5de(0x183)],'startTime':_0x2dabf7['startTime'],'executionTime':_0x2dabf7['endTime']?new Date(_0x2dabf7['endTime'])['getTime']()-new Date(_0x2dabf7[_0x34f5de(0x172)])['getTime']():Date['now']()-new Date(_0x2dabf7['startTime'])[_0x34f5de(0x1af)]()};}async[a0_0x24430d(0x1bd)](_0x115c7e){}[a0_0x24430d(0x189)](){const _0x3ffbe9=a0_0x24430d;return[_0x3ffbe9(0x151)];}[a0_0x24430d(0x191)](){return{'type':'object','properties':{},'required':[]};}['getRequiredParameters'](){return[];}['validateParameterTypes'](_0x2c865f){return{'valid':!![]};}['customValidateParameters'](_0x54b5d7){return{'valid':!![]};}async[a0_0x24430d(0x19d)](_0x5d40ca,_0x227a2a){return new Promise(async(_0x5bbcbc,_0x55d470)=>{const _0x17982d=a0_0x3433,_0x22b003=setTimeout(()=>{const _0x1e9164=a0_0x3433;_0x55d470(new Error(_0x1e9164(0x1ba)+this[_0x1e9164(0x166)]+'ms'));},this[_0x17982d(0x166)]);try{const _0x385f51=await this[_0x17982d(0x151)](_0x5d40ca,_0x227a2a);clearTimeout(_0x22b003),_0x5bbcbc(_0x385f51);}catch(_0x2df5f9){clearTimeout(_0x22b003),_0x55d470(_0x2df5f9);}});}['generateOperationId'](){return this['id']+'-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);}[a0_0x24430d(0x1b4)](_0x33ae2a){const _0x43eb31=a0_0x24430d,_0x59490b={..._0x33ae2a};return delete _0x59490b['apiKeys'],delete _0x59490b['secrets'],delete _0x59490b['passwords'],_0x59490b['content']&&_0x59490b['content']['length']>0x1f4&&(_0x59490b[_0x43eb31(0x1aa)]=_0x59490b[_0x43eb31(0x1aa)]['substring'](0x0,0x1f4)+'...\x20[truncated]'),_0x59490b;}[a0_0x24430d(0x15d)](){const _0x2aab0e=a0_0x24430d,_0x348418=0x64;this['operationHistory']['length']>_0x348418&&(this[_0x2aab0e(0x170)]=this[_0x2aab0e(0x170)]['slice'](-_0x348418));}['getUsageStats'](){const _0x3daff8=a0_0x24430d;return{'toolId':this['id'],'usageCount':this['usageCount'],'lastUsed':this[_0x3daff8(0x179)],'activeOperations':this['activeOperations']['size'],'totalOperations':this[_0x3daff8(0x170)][_0x3daff8(0x184)],'averageExecutionTime':this['calculateAverageExecutionTime'](),'successRate':this[_0x3daff8(0x1b2)](),'isEnabled':this[_0x3daff8(0x158)]};}[a0_0x24430d(0x155)](){const _0x2ff346=a0_0x24430d,_0x595d77=this['operationHistory']['filter'](_0x561f54=>_0x561f54[_0x2ff346(0x183)]===TOOL_STATUS['COMPLETED']&&_0x561f54[_0x2ff346(0x15c)]);if(_0x595d77[_0x2ff346(0x184)]===0x0)return 0x0;const _0xb9765c=_0x595d77['reduce']((_0x3ebc60,_0x350ee1)=>_0x3ebc60+_0x350ee1['executionTime'],0x0);return Math[_0x2ff346(0x14f)](_0xb9765c/_0x595d77[_0x2ff346(0x184)]);}[a0_0x24430d(0x1b2)](){const _0x5312ad=a0_0x24430d;if(this['operationHistory'][_0x5312ad(0x184)]===0x0)return 0x0;const _0x21291f=this[_0x5312ad(0x170)][_0x5312ad(0x18f)](_0xb5cda6=>_0xb5cda6['status']===TOOL_STATUS['COMPLETED']);return _0x21291f[_0x5312ad(0x184)]/this['operationHistory']['length']*0x64;}[a0_0x24430d(0x159)](){const _0x51fe21=a0_0x24430d;this['isEnabled']=!![],this[_0x51fe21(0x175)]?.[_0x51fe21(0x163)](_0x51fe21(0x188)+this['id']);}[a0_0x24430d(0x177)](){const _0x390156=a0_0x24430d;this[_0x390156(0x158)]=![],this['logger']?.['info']('Tool\x20disabled:\x20'+this['id']);}[a0_0x24430d(0x1be)](){const _0x46f6d6=a0_0x24430d;this[_0x46f6d6(0x164)]=0x0,this[_0x46f6d6(0x179)]=null,this['operationHistory']=[],this[_0x46f6d6(0x175)]?.[_0x46f6d6(0x163)](_0x46f6d6(0x195)+this['id']);}}class ToolsRegistry{constructor(_0x4f81ef=null){const _0x40bf09=a0_0x24430d;this[_0x40bf09(0x175)]=_0x4f81ef,this[_0x40bf09(0x15e)]=new Map(),this['toolDescriptions']=new Map(),this[_0x40bf09(0x1b8)]=new Map(),this['asyncOperations']=new Map();}async['registerTool'](_0x5404ca){const _0x2c80c9=a0_0x24430d;try{const _0x40b7c1=new _0x5404ca();if(!(_0x40b7c1 instanceof BaseTool))throw new Error(_0x2c80c9(0x160)+_0x5404ca['name']+'\x20must\x20extend\x20BaseTool');const _0x46bbfa=_0x40b7c1['getCapabilities']();await this['validateTool'](_0x40b7c1),this['tools'][_0x2c80c9(0x182)](_0x40b7c1['id'],_0x40b7c1),this[_0x2c80c9(0x152)][_0x2c80c9(0x182)](_0x40b7c1['id'],_0x40b7c1['getDescription']()),this[_0x2c80c9(0x1b8)][_0x2c80c9(0x182)](_0x40b7c1['id'],_0x46bbfa),this['logger']?.['info'](_0x2c80c9(0x157)+_0x40b7c1['id'],{'capabilities':_0x46bbfa[_0x2c80c9(0x178)],'async':_0x46bbfa['async'],'requiresProject':_0x46bbfa[_0x2c80c9(0x1a7)]});}catch(_0x3c874d){this['logger']?.[_0x2c80c9(0x16f)]('Tool\x20registration\x20failed:\x20'+_0x3c874d[_0x2c80c9(0x14d)],{'toolClass':_0x5404ca['name']});throw _0x3c874d;}}async['discoverTools'](_0x42fb48){return 0x0;}async['validateTool'](_0x10f8b8){const _0xcc0db6=a0_0x24430d,requiredMethods=[_0xcc0db6(0x19f),_0xcc0db6(0x17c),'execute'];for(const _0x37b39f of requiredMethods){if(typeof _0x10f8b8[_0x37b39f]!==_0xcc0db6(0x162))throw new Error('Tool\x20'+_0x10f8b8['id']+_0xcc0db6(0x15b)+_0x37b39f);}try{const _0x384c20=_0x10f8b8[_0xcc0db6(0x17c)](_0xcc0db6(0x1b6));if(typeof _0x384c20!==_0xcc0db6(0x15a))throw new Error(_0xcc0db6(0x160)+_0x10f8b8['id']+_0xcc0db6(0x18e));}catch(_0x7e9909){}const _0x15c985=_0x10f8b8['getCapabilities']();if(!_0x15c985||typeof _0x15c985!=='object')throw new Error(_0xcc0db6(0x160)+_0x10f8b8['id']+'\x20getCapabilities\x20must\x20return\x20an\x20object');}['getTool'](_0x278c17){const _0xe68b02=a0_0x24430d;return this['tools'][_0xe68b02(0x185)](_0x278c17)||null;}[a0_0x24430d(0x1a3)](){const _0x5c98ba=a0_0x24430d,_0x125b3a={};for(const [_0xb384b3,_0xef03a]of this['tools']['entries']()){_0xef03a['isEnabled']&&(_0x125b3a[_0xb384b3]={'description':this[_0x5c98ba(0x152)]['get'](_0xb384b3),'capabilities':this['toolCapabilities'][_0x5c98ba(0x185)](_0xb384b3),'usageStats':_0xef03a[_0x5c98ba(0x1ac)]()});}return _0x125b3a;}async[a0_0x24430d(0x168)](_0xdb2dc7,_0x89e1cd,_0x27fa7e){const _0x33921b=a0_0x24430d,_0x98a24=this['getTool'](_0xdb2dc7);if(!_0x98a24)throw new Error('Tool\x20not\x20found:\x20'+_0xdb2dc7);if(!_0x98a24[_0x33921b(0x158)])throw new Error('Tool\x20is\x20disabled:\x20'+_0xdb2dc7);return await _0x98a24[_0x33921b(0x187)](_0x89e1cd,_0x27fa7e);}[a0_0x24430d(0x171)](){return Array['from'](this['tools']['keys']());}['generateToolDescriptionsForPrompt'](_0x5ab47b=[],_0x560551={}){const _0x9049f6=a0_0x24430d,{includeExamples:includeExamples=!![],includeUsageGuidelines:includeUsageGuidelines=!![],includeSecurityNotes:includeSecurityNotes=!![],compact:compact=![]}=_0x560551,_0x3f5708=_0x5ab47b['length']>0x0?_0x5ab47b[_0x9049f6(0x18f)](_0x40a7c5=>this[_0x9049f6(0x15e)]['has'](_0x40a7c5)):Array['from'](this[_0x9049f6(0x15e)]['keys']());if(_0x3f5708[_0x9049f6(0x184)]===0x0)return'';let _0x4a569e='\x0a##\x20AVAILABLE\x20TOOLS\x0a\x0a';_0x4a569e+='You\x20have\x20access\x20to\x20the\x20following\x20tools\x20to\x20perform\x20operations\x20and\x20tasks:\x0a\x0a';for(const _0x3f618f of _0x3f5708){const _0x2ff165=this[_0x9049f6(0x15e)][_0x9049f6(0x185)](_0x3f618f);if(!_0x2ff165||!_0x2ff165[_0x9049f6(0x158)])continue;try{if(compact){const _0x3cf95a=_0x2ff165['getCapabilities'](),_0x4a562c=_0x3cf95a[_0x9049f6(0x178)]||[_0x9049f6(0x151)];_0x4a569e+='**'+_0x3f618f+_0x9049f6(0x18c)+_0x4a562c['join'](',\x20')+'\x0a';}else _0x4a569e+='###\x20'+_0x3f618f[_0x9049f6(0x186)]()+'\x20TOOL\x0a\x0a',_0x4a569e+=_0x2ff165['getDescription'](),_0x4a569e+='\x0a\x0a---\x0a\x0a';}catch(_0x1a0b09){this['logger']?.['warn']('Failed\x20to\x20get\x20description\x20for\x20tool:\x20'+_0x3f618f,{'error':_0x1a0b09[_0x9049f6(0x14d)]});}}return compact&&(_0x4a569e+=_0x9049f6(0x1a6)),_0x4a569e+='##\x20TOOL\x20INVOCATION\x20SYNTAX\x0a\x0a',_0x4a569e+=_0x9049f6(0x1a0),_0x4a569e+='###\x20Format\x201:\x20Bracket\x20Notation\x0a',_0x4a569e+='```\x0a',_0x4a569e+='[tool\x20id=\x22toolname\x22]\x0a',_0x4a569e+='<parameters\x20here>\x0a',_0x4a569e+='[/tool]\x0a',_0x4a569e+='```\x0a\x0a',_0x4a569e+=_0x9049f6(0x1bb),_0x4a569e+='```\x0a',_0x4a569e+=_0x9049f6(0x1a5),_0x4a569e+='{\x0a',_0x4a569e+=_0x9049f6(0x18a),_0x4a569e+='\x20\x20\x22parameters\x22:\x20{\x20...\x20}\x20or\x20\x22actions\x22:\x20[\x20...\x20]\x0a',_0x4a569e+='}\x0a',_0x4a569e+='```\x0a',_0x4a569e+=_0x9049f6(0x150),_0x4a569e+='**WARNING**:\x20Plain\x20JSON\x20without\x20markdown\x20code\x20blocks\x20(```json)\x20will\x20NOT\x20be\x20executed!\x0a',_0x4a569e+='Always\x20wrap\x20JSON\x20tool\x20commands\x20in\x20```json\x20...\x20```\x20blocks.\x0a\x0a',_0x4a569e+='###\x20Format\x203:\x20XML\x20Format\x0a',_0x4a569e+='```xml\x0a',_0x4a569e+=_0x9049f6(0x198),_0x4a569e+=_0x9049f6(0x180),_0x4a569e+='\x20\x20\x20\x20<parameter>value</parameter>\x0a',_0x4a569e+=_0x9049f6(0x16c),_0x4a569e+='</tool-command>\x0a',_0x4a569e+='```\x0a\x0a',_0x4a569e+=_0x9049f6(0x18d),_0x4a569e;}['enhanceSystemPrompt'](_0x43351c,_0x1f4f08=[],_0x31c470={}){const _0x4c179b=a0_0x24430d,_0x45fc9a=this[_0x4c179b(0x169)](_0x1f4f08,_0x31c470);if(!_0x45fc9a[_0x4c179b(0x161)]())return _0x43351c||'';const _0xe41670=_0x43351c||'';if(_0xe41670['includes'](_0x4c179b(0x14b)))return _0xe41670['replace'](/## AVAILABLE TOOLS[\s\S]*?(?=##|$)/,_0x45fc9a+'\x0a');const _0x2a8bb5=_0x4c179b(0x174);return _0xe41670+(_0xe41670['endsWith']('\x0a')?'':'\x0a')+_0x45fc9a+_0x2a8bb5+'\x0a';}[a0_0x24430d(0x18b)](){const _0x191b74=a0_0x24430d,_0x20c215=[];for(const [_0x252755,_0x43de25]of this[_0x191b74(0x15e)][_0x191b74(0x199)]()){const _0x548696=_0x43de25[_0x191b74(0x16a)](),_0x149e9b=_0x43de25['getDescription'](),_0x2a7866=_0x149e9b[_0x191b74(0x17d)]('\x0a')[_0x191b74(0x153)](_0x499f8a=>_0x499f8a['trim']()['length']>0x0)||'',_0xc33f2d=_0x2a7866['replace'](/^.*Tool:\s*/i,'')['replace'](/\s*-.*$/,'')['trim']();_0x20c215['push']({'id':_0x252755,'name':_0xc33f2d||_0x252755['charAt'](0x0)['toUpperCase']()+_0x252755[_0x191b74(0x1bc)](0x1),'description':_0x2a7866,'category':this['_getToolCategory'](_0x252755),'enabled':_0x548696['enabled'],'async':_0x548696['async'],'requiresProject':_0x548696[_0x191b74(0x1a7)],'className':_0x43de25['constructor']['name']});}return _0x20c215[_0x191b74(0x1a4)]((_0x1bbe1d,_0x2b5085)=>_0x1bbe1d['name'][_0x191b74(0x1b5)](_0x2b5085['name']));}[a0_0x24430d(0x1b3)](_0x4f847e){const _0x39c4bc={'terminal':'System','filesystem':'File\x20Operations','browser':'Automation','agentdelay':'Utility'};return _0x39c4bc[_0x4f847e]||'Other';}['getRegistryStats'](){const _0x481ff4=a0_0x24430d,_0x383298=Array[_0x481ff4(0x1b1)](this['tools']['values']())['filter'](_0x4d32a4=>_0x4d32a4[_0x481ff4(0x158)]),_0x4338da=Array[_0x481ff4(0x1b1)](this['tools'][_0x481ff4(0x1a2)]())[_0x481ff4(0x15f)]((_0x442b18,_0x5f1179)=>_0x442b18+_0x5f1179[_0x481ff4(0x164)],0x0);return{'totalTools':this[_0x481ff4(0x15e)][_0x481ff4(0x181)],'enabledTools':_0x383298['length'],'totalOperations':_0x4338da,'activeOperations':this['asyncOperations']['size']};}}export{BaseTool,ToolsRegistry};
|
package/src/tools/browserTool.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0xce3fde=a0_0x3cb4;(function(_0x5bb2e7,_0xb303a1){const _0x20fcd6=a0_0x3cb4,_0xf6b6f0=_0x5bb2e7();while(!![]){try{const _0x177e7e=parseInt(_0x20fcd6(0x106))/0x1+parseInt(_0x20fcd6(0x126))/0x2+-parseInt(_0x20fcd6(0x15c))/0x3+-parseInt(_0x20fcd6(0xf6))/0x4*(parseInt(_0x20fcd6(0xff))/0x5)+parseInt(_0x20fcd6(0x13b))/0x6+parseInt(_0x20fcd6(0xe2))/0x7+parseInt(_0x20fcd6(0x12c))/0x8*(-parseInt(_0x20fcd6(0x10a))/0x9);if(_0x177e7e===_0xb303a1)break;else _0xf6b6f0['push'](_0xf6b6f0['shift']());}catch(_0x525a9f){_0xf6b6f0['push'](_0xf6b6f0['shift']());}}}(a0_0x17bb,0xd23ed));import{BaseTool}from'./baseTool.js';import a0_0x58a822 from'../utilities/tagParser.js';import a0_0x498e45 from'puppeteer';import a0_0x133599 from'fs/promises';import a0_0x47d649 from'path';function a0_0x17bb(){const _0x4cc551=['Aw5JBhvKzxm','Dg9ju09tDhjPBMC','AgvPz2H0','y2XVC2u','C2nYzwvUC2HVDa','zxHLyW','DhLWzq','mtGWndqWyM9lDwvj','B3v0Chv0ugf0Aa','ls1KAxnHyMXLlwrLDI1ZAg0TDxnHz2u','Bg9Nz2vY','DxjS','CMf3q29UDgvUDa','CMLNAhq','mtG1ode5tgzKww50','zxjYB3i','D2fPDfnLBgvJDg9Y','CMvXDwLYzxnqCM9Qzwn0','owjfB2f2Eq','zNvSBfbHz2u','ywrKvg9iAxn0B3j5','Dhj1zq','C2nYB2XSqNK','D2fPDc10ExbL','D2fPDc1ZzwXLy3rVCG','C2nYB2XStgvMDa','BM93','oIbZzwXLy3rVCIbPCYbYzxf1AxjLzcbMB3iG','z2v0','z2v0qNjVD3nLCG','AxnbC3LUyW','C2vSzwn0B3i','vw5RBM93BIbHy3rPB24GDhLWztOG','AxnbBgXVD2vKvxjS','y3DK','B3v0Chv0lxbHDgG','zNvSBc1WywDL','zgvSzxrL','ywDLBNrjza','A2v5yM9HCMq','BwvZC2fNzq','C2v0','oIbVDxrWDxqTCgf0AcbPCYbYzxf1AxjLzcbMB3iGC2nYzwvUC2HVDa','v2fPDgvKia','u2nYB2XSzwqG','D2fPDezVCLnLBgvJDg9Y','mJu2mteYng5dwgf1wG','ignOyxjHy3rLCNmGAw50BYa','y2XLyw51CejYB3DZzxi','D2fPDa','ls1UBY1Zyw5KyM94','BxmGCgvYig9WzxjHDgLVBGPnqvGGv0fjvcbusu1foIaZmcbZzwnVBMrZicGZmdaWmg1ZkqOGicaG','mJKZnZKWneL1r3j5CW','u2nYzwvUC2HVDcb0B28GBgfYz2u6ia','cKjYB3DZzxiGvg9VBdOGqxv0B21HDguGD2vIigjYB3DZzxiGAw50zxjHy3rPB25ZlcbUyxzPz2f0Aw9UlcbHBMqGzgf0ysbLEhrYywn0Aw9UlGOksu1qt1juqu5uic0Gu1LovefyoIbvC2uGC2vSzI1JBg9ZAw5NihrHz3mGD2L0AcbHBMDSzsbICMfJA2v0CYa8id4Sig5VDcbZCxvHCMuGyNjHy2TLDhmGwYbDlGOkwe1mifvtquDficHszwnVBw1LBMrLzcK6cJXICM93C2vYpGOGidXUyxzPz2f0zsb1CMW9iMH0DhbZoI8VzxHHBxbSzs5JB20Iic8+cIaGphDHAxqGD2fPDc10Aw1LpsiYmdaWiIaVpGOGidXJBgLJAYbZzwXLy3rVCJ0IyNv0Dg9UlNn1yM1PDciGlZ4kica8C2nYzwvUC2HVDcbVDxrWDxqTCgf0Ad0IC2nYzwvUC2HVDc5WBMCIic8+cJWVyNjVD3nLCJ4kcKPtt04Gvvnbr0uGkefSDgvYBMf0AxzLktOkygbGANnVBGP7cIaGiNrVB2Xjzci6icjICM93C2vYiIWkicaIywn0Aw9UCYi6ifSkicaGihSGiNr5CguIoIaIBMf2AwDHDguIlcaIDxjSiJOGiMH0DhbZoI8VzxHHBxbSzs5JB20Iih0ScIaGicb7icj0ExbLiJOGiNDHAxqIlcaID2fPDfrPBwuIoIaYmdaWih0ScIaGicb7icj0ExbLiJOGiMnSAwnRiIWGiNnLBgvJDg9YiJOGiMj1DhrVBI5ZDwjTAxqIih0ScIaGicb7icj0ExbLiJOGiNnJCMvLBNnOB3qIlcaIB3v0Chv0ugf0Aci6icjZy3jLzw5ZAg90lNbUzYiGFqOGif0kFqPGygakcLnvufbpuLrfrcbbq1rjt05toGOTig5HDMLNyxrLoIboyxzPz2f0zsb0BYbHifvstcaOCMvXDwLYzxm6ihvYBcKklsbJBgLJAZOGq2XPy2SGB24Gyw4GzwXLBwvUDcaOCMvXDwLYzxm6ihnLBgvJDg9YkqOTihr5Cgu6ifr5CguGDgv4DcbPBNrVigfUigLUChv0igzPzwXKicHYzxf1AxjLCZOGC2vSzwn0B3iSihrLEhqPcI0GD2fPDdOGv2fPDcbMB3iGzwXLBwvUDcbVCIb0Aw1LicHYzxf1AxjLCZOGD2fPDc10Aw1Lie9sihDHAxqTC2vSzwn0B3iPcI0GC2nYzwvUC2HVDdOGvgfRzsbZy3jLzw5ZAg90ig9MihbHz2uGkhjLCxvPCMvZoIbVDxrWDxqTCgf0AcKklsbLEhrYywn0oIbfEhrYywn0ihrLEhqVzgf0ysbMCM9TigvSzw1LBNrZicHYzxf1AxjLCZOGC2vSzwn0B3iSigf0DhjPyNv0zsKklsbZy3jVBgW6ifnJCM9SBcbWywDLig9YigvSzw1LBNqGkhjLCxvPCMvZoIbKAxjLy3rPB24PcI0Gy2XVC2u6ienSB3nLigjYB3DZzxiGAw5ZDgfUy2uGkg5VihbHCMfTzxrLCNmPcGPqqvjbtuvurviGuKvgrvjftKnfoGOTihvYBdOGvgfYz2v0ifvstcbMB3iGBMf2AwDHDgLVBGOTihnLBgvJDg9YoIbdu1mGC2vSzwn0B3iGzM9YigvSzw1LBNqGDgfYz2v0Aw5NicHLlMCUlcaIi2LKiIWGiI5JBgfZCYiSicjIDxr0B25BDhLWzt0NC3vIBwL0j10IkqOTihrLEhq6ifrLEhqGy29UDgvUDcb0BYb0ExbLcI0GB3v0Chv0lxbHDgG6iezPBguGCgf0AcbMB3iGC2nYzwvUC2HVDhmGkgTLyMfIlwnHC2uGAw4Gwe1mlcbVDxrWDxrqyxrOigLUiePtt04PcI0GD2fPDc10Aw1LoIbuAw1LihrVihDHAxqGAw4GBwLSBgLZzwnVBMrZicGXmdaTmZaWmdaSigTLyMfIlwnHC2uGAw4Gwe1mlcb3ywL0vgLTzsbPBIbku09okqOTihDHAxqTC2vSzwn0B3i6ievSzw1LBNqGC2vSzwn0B3iGDg8GD2fPDcbMB3iGkgTLyMfIlwnHC2uGAw4Gwe1mlcb3ywL0u2vSzwn0B3iGAw4GsLnptIKklsb3ywL0lxr5Cgu6ifDHAxqGDhLWzsaTicj2AxnPyMXLiIbVCIaIAgLKzgvUiIaOzgvMyxvSDdOGiNzPC2LIBguIkqOTigf0DhjPyNv0ztOGsfrntcbHDhrYAwj1DguGDg8GzxH0CMfJDcaOzgvMyxvSDdOGiNrLEhqIkqOTigrPCMvJDgLVBJOGu2nYB2XSigrPCMvJDgLVBIaTicj1CciSicjKB3DUiIWGiMXLzNqIlcaICMLNAhqIcI0GCgL4zwXZoIbty3jVBgWGzgLZDgfUy2uGAw4GCgL4zwXZicHKzwzHDwX0oIaZmdaPcI0GzNvSBc1WywDLoIbuywTLigz1BgWGCgfNzsbZy3jLzw5ZAg90ic0GiNrYDwuIig9YicjMywXZzsikcKvyqu1qtevtoGOkrxHHBxbSzsaXic0GuMvZzwfYy2GGyw5KihnJCMvLBNnOB3q6cJXICM93C2vYpGOGidXUyxzPz2f0zsb1CMW9iMH0DhbZoI8Vz2L0AhvIlMnVBs90CMvUzgLUzYiGlZ4kica8D2fPDcb3ywL0lxrPBwu9iJiWmdaIic8+cIaGphnJCMvLBNnOB3qGB3v0Chv0lxbHDgG9iNrYzw5KAw5NlNbUzYiGlZ4kica8zxH0CMfJDcbZzwXLy3rVCJ0IAdiUAdmIigf0DhjPyNv0zt0IDgv4DciGlZ4kica8y2XVC2uGlZ4kpc9ICM93C2vYpGOkrxHHBxbSzsaYic0GrM9YBsbHDxrVBwf0Aw9UoGO8yNjVD3nLCJ4kica8BMf2AwDHDguGDxjSpsjODhrWCZOVl2v4yw1WBguUy29Tl2XVz2LUiIaVpGOGidX3ywL0ihDHAxqTC2vSzwn0B3i9iMLUChv0i3vZzxjUyw1LiIaVpGOGidX0ExbLihnLBgvJDg9YpsjPBNb1Dcn1C2vYBMfTzsiGDgv4Dd0IBxL1C2vYiIaVpGOGidX0ExbLihnLBgvJDg9YpsjPBNb1DcnWyxnZD29YzciGDgv4Dd0IBxLWyxnZiIaVpGOGidXJBgLJAYbZzwXLy3rVCJ0IyNv0Dg9Uw3r5Cgu9j3n1yM1PDcDDiIaVpGOGidX3ywL0ihDHAxqTC2vSzwn0B3i9iI5ZDwnJzxnZlw1LC3nHz2uIic8+cIaGpgnSB3nLic8+cJWVyNjVD3nLCJ4kcKv4yw1WBguGmYaTierHDgeGzxH0CMfJDgLVBJOkpgjYB3DZzxi+cIaGpg5HDMLNyxrLihvYBd0IAhr0Chm6lY9LEgfTCgXLlMnVBs9WCM9KDwn0CYiGlZ4kica8D2fPDcb3ywL0lxrPBwu9iJeWmdaIic8+cIaGpgv4DhjHy3qGC2vSzwn0B3i9iMGXlNbYB2r1y3qTDgL0BguIigf0DhjPyNv0zt0IDgv4DciGlZ4kica8zxH0CMfJDcbZzwXLy3rVCJ0IC3bHBI5WCMLJzsiGyxr0CMLIDxrLpsj0zxH0iIaVpGOGidXLEhrYywn0ihnLBgvJDg9YpsjPBwCUChjVzhvJDciGyxr0CMLIDxrLpsjZCMmIic8+cIaGpgnSB3nLic8+cJWVyNjVD3nLCJ4kcKv4yw1WBguGncaTifnJCM9SBgLUzYbHBMqGD2fPDgLUzZOkpgjYB3DZzxi+cIaGpg5HDMLNyxrLihvYBd0IAhr0Chm6lY9LEgfTCgXLlMnVBs9SB25NlxbHz2uIic8+cIaGphnJCM9SBcbKAxjLy3rPB249iMrVD24IihbPEgvSCZ0IntaWiIaVpGOGidX3ywL0ihDHAxqTDgLTzt0ImtaWmciGlZ4kica8C2nYB2XSigrPCMvJDgLVBJ0Izg93BIiGCgL4zwXZpsi1mdaIic8+cIaGphnJCMvLBNnOB3qGB3v0Chv0lxbHDgG9iNnJCM9SBgvKlNbUzYiGzNvSBc1WywDLpsj0CNvLiIaVpGOGidXJBg9ZzsaVpGO8l2jYB3DZzxi+cGPtwu5uqvGGuLvmrvm6cUkCHsbetZOGpg5HDMLNyxrLihvYBd0IlI4UiIaVpIaGkhnLBgyTy2XVC2LUzYb3AxrOic8+kqRINiuGre86idXUyxzPz2f0zsb1CMW9iI4UlIi+icaGicaOy2fUig9TAxqGlZ4GAwyGChjLzMvYCMvKkqRINyWGre9oj1q6idXUyxzPz2f0zsb1CMW9iI4UlIi+pc9UyxzPz2f0zt4GicHUBYbJBg9ZAw5NihrHzYbUzwvKzwqPcUkDJcbet04NvdOGw25HDMLNyxrLihvYBd0IlI4UiIaVxsaGkhnXDwfYzsbICMfJA2v0CYbUB3qGC3vWCg9YDgvKkqOkqvruuKLcvvrfie5btuLorZOklsbytuWGDxnLCYbRzwjHyI1JyxnLoIb3ywL0lxrPBwuSig91Dhb1Dc1WyxrOlcb3ywL0lxnLBgvJDg9YcI0GsLnptIb1C2vZignHBwvSq2fZztOGD2fPDfrPBwuSig91Dhb1DfbHDgGSihDHAxrtzwXLy3rVCGOTifbHCNnLCIbHDxrVlwnVBNzLCNrZigTLyMfIlwnHC2uGDg8Gy2fTzwXdyxnLigLUDgvYBMfSBhKkcLnfq1vssvrzoGOTifjLC3rYAwn0zwqGDg8GywXSB3DLzcbKB21HAw5ZicHPzIbJB25MAwD1CMvKkqOTiejSB2nRzwqGzg9TywLUCYbLBMzVCMnLzcbMB3iGC2vJDxjPDhKklsbty3jLzw5ZAg90ihnPEMuGBgLTAxrZigvUzM9Yy2vKicHTyxGGnu1ckqOTief1Dg9TyxrPyYbJBgvHBNvWig9MigjYB3DZzxiGAw5ZDgfUy2vZigfMDgvYideWig1PBNv0zxmklsbtyw5KyM94zwqGyNjVD3nLCIbLEgvJDxrPB24kcKjst1DtrviGu0vtu0LptJOkvgHLihrVB2WGBwfPBNrHAw5ZigjYB3DZzxiGAw5ZDgfUy2vZihbLCIbHz2vUDcbJB250zxH0lGPvC2uGpgnSB3nLic8+igfJDgLVBIb0BYbLEhbSAwnPDgX5ignSzwfUDxaSig9YigLUC3rHBMnLCYbHDxrVlwnSzwfUDxaGywz0zxiGDgLTzw91Dc4kcLzjrvDqt1juoIa','ls1KAxnHyMXLlwDWDq','CgfYC2u','tMf2AwDHDgvKihrVia','B3bLCMf0Aw9UsgLZDg9YEq','D2fPDfr5Cgu','CMvSyxrPDMu','jgv2ywW','AgLKzgvU','yNjVD3nLCG','zM9JDxm','oIb1CMWGAxmGCMvXDwLYzwqGzM9Yig5HDMLNyxrL','y2XPy2S','nJuXoduYnLHIzfjtyW','rxH0CMfJDgvKia','D2fPDc10Aw1L','C29Tzq','yMXVy2TLzerVBwfPBNm','qwn0Aw9Uia','oIb3ywL0lxrPBwuGBxvZDcbIzsbIzxr3zwvUideWmcbHBMqGmZaWmdaGBwLSBgLZzwnVBMrZ','z2v0u3vWCg9YDgvKqwn0Aw9UCW','DgLTzw91Da','C3vJy2vZCW','oIbLAxrOzxiGD2fPDc10Aw1Lig9YihDHAxqTC2vSzwn0B3iGAxmGCMvXDwLYzwq','z2v0ugfNzq','z2v0qxr0CMLIDxrL','CMvZB2X2zq','CgfNzq','C2nYB2XS','ihrVigjLia','igj5DgvZicHTyxGG','BgvMDa','v2fPDcbMywLSzwq6ia','xhmRkfTEpL0QpYLCCYPClZ8+','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','yNjVD3nLCKLUC3rHBMnLCW','oIb0zxH0igLZihjLCxvPCMvKigzVCIb0ExbL','D2fPDfrPBwu','zMLSDgvY','C2v0vxnLCKfNzw50','ywn0Aw9UCW','tw96AwXSys81lJaGkfDPBMrVD3mGtLqGmtaUmdSGv2LUnJq7ihG2ncKGqxbWBgvxzwjlAxqVntm3lJm2','Bwf4u2nYzwvUC2HVDfnPEMu','DxnLCKfNzw50','AxndB25Uzwn0zwq','zxH0CMfJDa','mZC1nZy0mwXwu1Ldta','DMLLD3bVCNq','CgfNzvrPBwvVDxq','oIb1BMTUB3DUigfJDgLVBIb0ExbLoIa','mJC4mta0nhLdwhbVvq','C2L6zq','yNjVD3nLCKnVBMzPzW','Dgv4Da','v2fPDgvKigzVCIa','zgLYzwn0Aw9U','rxH0CMfJDcbMywLSzwqGB24G','oIbvuKWGBM90igfSBg93zwq6ia','z2v0rgvZy3jPChrPB24','C2v0vMLLD3bVCNq','z2v0ugfYyw1LDgvYu2nOzw1H','zgLYBMfTzq','BgvUz3rO','ChvZAa','ywXSB3DLzerVBwfPBNm','BMf2AwDHDgu','vhLWzsbMywLSzwqGB24G','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','zxzHBhvHDgu','rMfPBgvKihrVignSB3nLigjYB3DZzxi6ia','ntjtuuzqv2K','C3rYAw5N'];a0_0x17bb=function(){return _0x4cc551;};return a0_0x17bb();}import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x3cb4(_0xbd450f,_0xa8cff8){_0xbd450f=_0xbd450f-0xe2;const _0x17bb90=a0_0x17bb();let _0x3cb4f8=_0x17bb90[_0xbd450f];if(a0_0x3cb4['JfVRGY']===undefined){var _0x2153bb=function(_0x1aa6e2){const _0x26891f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x58a822='',_0x498e45='';for(let _0x133599=0x0,_0x47d649,_0x58d49e,_0x224668=0x0;_0x58d49e=_0x1aa6e2['charAt'](_0x224668++);~_0x58d49e&&(_0x47d649=_0x133599%0x4?_0x47d649*0x40+_0x58d49e:_0x58d49e,_0x133599++%0x4)?_0x58a822+=String['fromCharCode'](0xff&_0x47d649>>(-0x2*_0x133599&0x6)):0x0){_0x58d49e=_0x26891f['indexOf'](_0x58d49e);}for(let _0x44a6fd=0x0,_0x4baa7f=_0x58a822['length'];_0x44a6fd<_0x4baa7f;_0x44a6fd++){_0x498e45+='%'+('00'+_0x58a822['charCodeAt'](_0x44a6fd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x498e45);};a0_0x3cb4['ILOgMG']=_0x2153bb,a0_0x3cb4['wDdFMA']={},a0_0x3cb4['JfVRGY']=!![];}const _0x1991a0=_0x17bb90[0x0],_0x57ce99=_0xbd450f+_0x1991a0,_0x4d02bf=a0_0x3cb4['wDdFMA'][_0x57ce99];return!_0x4d02bf?(_0x3cb4f8=a0_0x3cb4['ILOgMG'](_0x3cb4f8),a0_0x3cb4['wDdFMA'][_0x57ce99]=_0x3cb4f8):_0x3cb4f8=_0x4d02bf,_0x3cb4f8;}class BrowserTool extends BaseTool{constructor(_0x58d49e={},_0x224668=null){const _0x40f925=a0_0x3cb4;super(_0x58d49e,_0x224668),this[_0x40f925(0x109)]=![],this[_0x40f925(0x116)]=!![],this[_0x40f925(0x143)]=_0x58d49e[_0x40f925(0x143)]||0xea60,this[_0x40f925(0x150)]=_0x58d49e[_0x40f925(0x150)]||0x2,this[_0x40f925(0xe4)]={'headless':_0x58d49e['headless']!==![],'viewport':_0x58d49e[_0x40f925(0x15d)]||{'width':0x500,'height':0x2d0},'userAgent':_0x58d49e[_0x40f925(0x159)]||_0x40f925(0x157),'timeout':_0x58d49e[_0x40f925(0x15e)]||0x7530},this['browserInstances']=new Map(),this[_0x40f925(0xf0)]=_0x58d49e[_0x40f925(0xf0)]||null,this[_0x40f925(0x13f)]=_0x58d49e[_0x40f925(0x13f)]||[],this[_0x40f925(0x158)]=_0x58d49e[_0x40f925(0x158)]||0x5*0x400*0x400,this[_0x40f925(0x132)]=[];}[a0_0xce3fde(0xea)](){const _0xd23d87=a0_0xce3fde;return _0xd23d87(0x12e)+this['browserConfig'][_0xd23d87(0x15d)]['width']+'x'+this[_0xd23d87(0xe4)]['viewport'][_0xd23d87(0xfa)]+'\x0aTIMEOUT:\x20'+this['browserConfig'][_0xd23d87(0x143)]+_0xd23d87(0x12b);}['parseParameters'](_0x44a6fd){const _0x3c155e=a0_0xce3fde;try{if(_0x44a6fd['trim']()['startsWith']('{')){const _0x37432e=JSON[_0x3c155e(0x130)](_0x44a6fd);return!_0x37432e['actions']&&(_0x37432e['actions']=[]),!Array['isArray'](_0x37432e['actions'])&&(_0x37432e['actions']=[_0x37432e['actions']]),_0x37432e;}const _0x4baa7f={},_0x36db8f=[],_0x30d00f=['navigate','click','type','wait',_0x3c155e(0xfc),_0x3c155e(0x15b),_0x3c155e(0x14a),_0x3c155e(0xfb)];for(const _0x3b46ca of _0x30d00f){const _0x38541e=new RegExp('<'+_0x3b46ca+_0x3c155e(0x14f),'gi');let _0x4def7f;while((_0x4def7f=_0x38541e[_0x3c155e(0xfd)](_0x44a6fd))!==null){const _0x2cf375=_0x4def7f[0x1],_0xcfe93b=this['parseAttributes'](_0x2cf375),_0x536f5a={'type':_0x3b46ca,..._0xcfe93b};_0x536f5a[_0x3c155e(0x11b)]&&(_0x536f5a[_0x3c155e(0x100)]=_0x536f5a['output-path'],delete _0x536f5a['output-path']),_0x536f5a[_0x3c155e(0x13d)]&&(_0x536f5a['waitTime']=parseInt(_0x536f5a[_0x3c155e(0x13d)],0xa),delete _0x536f5a['wait-time']),_0x536f5a['wait-selector']&&(_0x536f5a['waitSelector']=_0x536f5a[_0x3c155e(0x110)],delete _0x536f5a[_0x3c155e(0x110)]),_0x536f5a['wait-type']&&(_0x536f5a[_0x3c155e(0x133)]=_0x536f5a['wait-type'],delete _0x536f5a[_0x3c155e(0x10f)]),_0x536f5a[_0x3c155e(0x11c)]&&(_0x536f5a[_0x3c155e(0x10b)]=_0x536f5a['full-page']===_0x3c155e(0x10d),delete _0x536f5a[_0x3c155e(0x11c)]),_0x36db8f['push'](_0x536f5a);}}return _0x4baa7f['actions']=Array['isArray'](_0x36db8f)?_0x36db8f:[],_0x4baa7f[_0x3c155e(0x104)]=_0x44a6fd['trim'](),_0x4baa7f;}catch(_0x408354){return this[_0x3c155e(0x102)]?.[_0x3c155e(0x107)]('Failed\x20to\x20parse\x20browser\x20parameters',{'error':_0x408354[_0x3c155e(0x120)]}),{'actions':[],'rawContent':_0x44a6fd['trim'](),'parseError':_0x408354['message']};}}['parseAttributes'](_0x12f881){const _0x1358f6=a0_0xce3fde,_0x39d84d={};if(!_0x12f881)return _0x39d84d;const _0x11d681=/([\w-]+)\s*=\s*["']([^"']*)["']/g;let _0x127986;while((_0x127986=_0x11d681[_0x1358f6(0xfd)](_0x12f881))!==null){const _0x49fa20=_0x127986[0x1],_0x2d9a5e=_0x127986[0x2];_0x39d84d[_0x49fa20]=_0x2d9a5e;}return _0x39d84d;}['getRequiredParameters'](){return['actions'];}[a0_0xce3fde(0xf3)](_0x4f4afa){const _0x532428=a0_0xce3fde,_0x3310d0=[];if(!_0x4f4afa['actions']||!Array['isArray'](_0x4f4afa[_0x532428(0x156)])||_0x4f4afa[_0x532428(0x156)][_0x532428(0xee)]===0x0)_0x3310d0[_0x532428(0xef)]('At\x20least\x20one\x20action\x20is\x20required');else for(const [_0x4d2207,_0xb57465]of _0x4f4afa[_0x532428(0x156)]['entries']()){if(!_0xb57465['type']){_0x3310d0[_0x532428(0xef)](_0x532428(0x140)+(_0x4d2207+0x1)+':\x20type\x20is\x20required');continue;}switch(_0xb57465['type']){case'navigate':if(!_0xb57465['url'])_0x3310d0['push']('Action\x20'+(_0x4d2207+0x1)+_0x532428(0x139));else!this[_0x532428(0x119)](_0xb57465[_0x532428(0x103)])&&_0x3310d0[_0x532428(0xef)](_0x532428(0x140)+(_0x4d2207+0x1)+_0x532428(0xe9)+_0xb57465[_0x532428(0x103)]);break;case'click':case _0x532428(0x15b):!_0xb57465[_0x532428(0x117)]&&_0x3310d0['push']('Action\x20'+(_0x4d2207+0x1)+_0x532428(0x113)+_0xb57465['type']);break;case'type':!_0xb57465[_0x532428(0x117)]&&_0x3310d0['push']('Action\x20'+(_0x4d2207+0x1)+':\x20selector\x20is\x20required\x20for\x20type');!_0xb57465[_0x532428(0xe5)]&&_0xb57465[_0x532428(0xe5)]!==''&&_0x3310d0['push']('Action\x20'+(_0x4d2207+0x1)+_0x532428(0x152));break;case _0x532428(0x129):!_0xb57465[_0x532428(0x153)]&&!_0xb57465['waitSelector']&&_0x3310d0[_0x532428(0xef)](_0x532428(0x140)+(_0x4d2207+0x1)+_0x532428(0x145));_0xb57465[_0x532428(0x153)]&&(_0xb57465[_0x532428(0x153)]<0x64||_0xb57465['waitTime']>0x7530)&&_0x3310d0[_0x532428(0xef)]('Action\x20'+(_0x4d2207+0x1)+_0x532428(0x141));break;case'screenshot':!_0xb57465[_0x532428(0x100)]&&_0x3310d0['push'](_0x532428(0x140)+(_0x4d2207+0x1)+_0x532428(0x122));break;case _0x532428(0x14a):if(!_0xb57465['direction'])_0x3310d0[_0x532428(0xef)](_0x532428(0x140)+(_0x4d2207+0x1)+':\x20direction\x20is\x20required\x20for\x20scroll');else!['up','down','left',_0x532428(0x105)][_0x532428(0xf8)](_0xb57465[_0x532428(0xe7)])&&_0x3310d0[_0x532428(0xef)](_0x532428(0x140)+(_0x4d2207+0x1)+':\x20invalid\x20scroll\x20direction:\x20'+_0xb57465[_0x532428(0xe7)]);break;case'close':break;default:_0x3310d0[_0x532428(0xef)]('Action\x20'+(_0x4d2207+0x1)+_0x532428(0x15f)+_0xb57465['type']);}}return{'valid':_0x3310d0[_0x532428(0xee)]===0x0,'errors':_0x3310d0};}async['execute'](_0x3680ee,_0x4a8e15){const _0x52a73e=a0_0xce3fde,{actions:_0x389074}=_0x3680ee,{agentId:_0x20f8e4,projectDir:_0x43f55e}=_0x4a8e15,_0x71e724=_0x20f8e4+'-'+(_0x43f55e||'default'),_0x3c4539=[];for(const _0x48b38e of _0x389074){try{let _0x165587;switch(_0x48b38e[_0x52a73e(0xfe)]){case _0x52a73e(0xf1):_0x165587=await this[_0x52a73e(0xf1)](_0x48b38e['url'],_0x71e724);break;case _0x52a73e(0x13a):_0x165587=await this[_0x52a73e(0x13a)](_0x48b38e['selector'],_0x71e724);break;case _0x52a73e(0xfe):_0x165587=await this[_0x52a73e(0xfe)](_0x48b38e[_0x52a73e(0x117)],_0x48b38e['text'],_0x71e724);break;case'wait':_0x165587=await this['wait'](_0x48b38e,_0x71e724);break;case'screenshot':_0x165587=await this['screenshot'](_0x48b38e[_0x52a73e(0x100)],_0x43f55e,_0x71e724,_0x48b38e);break;case'extract':_0x165587=await this['extract'](_0x48b38e[_0x52a73e(0x117)],_0x48b38e['attribute']||_0x52a73e(0xe5),_0x71e724);break;case'scroll':_0x165587=await this[_0x52a73e(0x14a)](_0x48b38e,_0x71e724);break;case _0x52a73e(0xfb):_0x165587=await this['closeBrowser'](_0x71e724);break;default:throw new Error(_0x52a73e(0x118)+_0x48b38e['type']);}_0x3c4539[_0x52a73e(0xef)](_0x165587),this['addToHistory'](_0x48b38e,_0x165587,_0x20f8e4);}catch(_0x2c3f93){const _0x5136d7={'success':![],'action':_0x48b38e[_0x52a73e(0xfe)],'error':_0x2c3f93[_0x52a73e(0x120)],'selector':_0x48b38e['selector']||_0x48b38e[_0x52a73e(0x103)]};_0x3c4539['push'](_0x5136d7),this['addToHistory'](_0x48b38e,_0x5136d7,_0x20f8e4);}}return{'success':!![],'actions':_0x3c4539,'executedActions':_0x389074[_0x52a73e(0xee)],'toolUsed':_0x52a73e(0x137)};}async[a0_0xce3fde(0xf1)](_0xb91480,_0x54e00f){const _0x3d3e48=a0_0xce3fde,_0x579e82=await this[_0x3d3e48(0x115)](_0x54e00f),_0x483111=await this['getPage'](_0x54e00f),_0x121668=Date[_0x3d3e48(0x112)]();try{await _0x483111['goto'](_0xb91480,{'waitUntil':'networkidle0','timeout':this[_0x3d3e48(0xe4)][_0x3d3e48(0x143)]});const _0x40f7c1=await _0x483111['title'](),_0x12664c=_0x483111['url']();return{'success':!![],'action':'navigate','url':_0x12664c,'originalUrl':_0xb91480,'title':_0x40f7c1,'loadTime':Date[_0x3d3e48(0x112)]()-_0x121668,'message':_0x3d3e48(0x131)+_0xb91480};}catch(_0x35a9dc){throw new Error('Navigation\x20failed:\x20'+_0x35a9dc['message']);}}async['click'](_0x43ac87,_0x3cbb26){const _0x4a108d=a0_0xce3fde,_0x5c2b02=await this[_0x4a108d(0x146)](_0x3cbb26);try{return await _0x5c2b02['waitForSelector'](_0x43ac87,{'timeout':0x1388}),await _0x5c2b02['click'](_0x43ac87),{'success':!![],'action':'click','selector':_0x43ac87,'message':'Clicked\x20on\x20'+_0x43ac87};}catch(_0x2d9b9f){throw new Error('Click\x20failed\x20on\x20'+_0x43ac87+':\x20'+_0x2d9b9f[_0x4a108d(0x120)]);}}async['type'](_0x831436,_0x382272,_0x7594ba){const _0x538b14=a0_0xce3fde,_0x5ad3b9=await this['getPage'](_0x7594ba);try{return await _0x5ad3b9[_0x538b14(0x125)](_0x831436,{'timeout':0x1388}),await _0x5ad3b9[_0x538b14(0x138)](_0x831436),await _0x5ad3b9[_0x538b14(0x11f)]['selectAll'](),await _0x5ad3b9[_0x538b14(0xfe)](_0x831436,_0x382272),{'success':!![],'action':'type','selector':_0x831436,'text':_0x382272,'textLength':_0x382272[_0x538b14(0xee)],'message':'Typed\x20'+_0x382272[_0x538b14(0xee)]+_0x538b14(0x127)+_0x831436};}catch(_0x2db557){throw new Error(_0x538b14(0xf2)+_0x831436+':\x20'+_0x2db557[_0x538b14(0x120)]);}}async[a0_0xce3fde(0x129)](_0x125870,_0xdd338b){const _0x879a11=a0_0xce3fde,_0x1d29fc=await this[_0x879a11(0x146)](_0xdd338b);try{if(_0x125870['waitTime'])return await _0x1d29fc['waitForTimeout'](_0x125870['waitTime']),{'success':!![],'action':_0x879a11(0x129),'waitTime':_0x125870['waitTime'],'message':_0x879a11(0x123)+_0x125870[_0x879a11(0x153)]+'ms'};if(_0x125870[_0x879a11(0x108)]){const _0x33bd60=_0x125870['waitType']||'visible',_0x4177f1={'timeout':0x2710};return _0x33bd60===_0x879a11(0x136)?await _0x1d29fc['waitForSelector'](_0x125870[_0x879a11(0x108)],{..._0x4177f1,'hidden':!![]}):await _0x1d29fc['waitForSelector'](_0x125870[_0x879a11(0x108)],_0x4177f1),{'success':!![],'action':_0x879a11(0x129),'waitSelector':_0x125870[_0x879a11(0x108)],'waitType':_0x33bd60,'message':_0x879a11(0xe6)+_0x125870[_0x879a11(0x108)]+_0x879a11(0x14b)+_0x33bd60};}}catch(_0x54f4eb){throw new Error(_0x879a11(0x14e)+_0x54f4eb[_0x879a11(0x120)]);}}async[a0_0xce3fde(0xfc)](_0x56a7b4,_0x56e91a,_0x330d98,_0x11e5c9={}){const _0xb687b=a0_0xce3fde,_0xe1e779=await this[_0xb687b(0x146)](_0x330d98);try{const _0x246e37=_0x56e91a?a0_0x47d649['resolve'](_0x56e91a,_0x56a7b4):a0_0x47d649[_0xb687b(0x148)](_0x56a7b4),_0x31f6a8=a0_0x47d649[_0xb687b(0xed)](_0x246e37);await a0_0x133599['mkdir'](_0x31f6a8,{'recursive':!![]});const _0x33358e={'path':_0x246e37,'type':'png'};_0x11e5c9[_0xb687b(0x10b)]&&(_0x33358e['fullPage']=!![]);await _0xe1e779[_0xb687b(0xfc)](_0x33358e);const _0x457bbd=await a0_0x133599['stat'](_0x246e37);if(_0x457bbd[_0xb687b(0xe3)]>this['maxScreenshotSize'])throw new Error(_0xb687b(0x12d)+_0x457bbd['size']+_0xb687b(0x14c)+this['maxScreenshotSize']+')');return{'success':!![],'action':_0xb687b(0xfc),'outputPath':a0_0x47d649[_0xb687b(0x134)](_0x56e91a||process[_0xb687b(0x11a)](),_0x246e37),'size':_0x457bbd['size'],'fullPage':!!_0x11e5c9[_0xb687b(0x10b)],'message':'Screenshot\x20saved:\x20'+_0x56a7b4};}catch(_0x210863){throw new Error('Screenshot\x20failed:\x20'+_0x210863['message']);}}async[a0_0xce3fde(0x15b)](_0x32cfe4,_0x510452,_0xccff1b){const _0x4bdae2=a0_0xce3fde,_0x3121e9=await this['getPage'](_0xccff1b);try{await _0x3121e9[_0x4bdae2(0x125)](_0x32cfe4,{'timeout':0x1388});let _0x199e5c;return _0x510452===_0x4bdae2(0xe5)?_0x199e5c=await _0x3121e9['$eval'](_0x32cfe4,_0x18076b=>_0x18076b['textContent']['trim']()):_0x199e5c=await _0x3121e9[_0x4bdae2(0x135)](_0x32cfe4,(_0x455c70,_0x1dabc7)=>_0x455c70[_0x4bdae2(0x147)](_0x1dabc7),_0x510452),{'success':!![],'action':'extract','selector':_0x32cfe4,'attribute':_0x510452,'data':_0x199e5c,'message':_0x4bdae2(0x13c)+_0x510452+'\x20from\x20'+_0x32cfe4};}catch(_0x2d432c){throw new Error(_0x4bdae2(0xe8)+_0x32cfe4+':\x20'+_0x2d432c[_0x4bdae2(0x120)]);}}async[a0_0xce3fde(0x14a)](_0x330a1e,_0x2c9f17){const _0x30924b=a0_0xce3fde,_0x58b41c=await this[_0x30924b(0x146)](_0x2c9f17);try{const {direction:_0x59741b,pixels:pixels=0x12c,selector:_0x103ee5}=_0x330a1e;return _0x103ee5?await _0x58b41c[_0x30924b(0xf4)]((_0x103eb5,_0x3bf0ac,_0x4b373f)=>{const _0x33d061=_0x30924b,_0x1be8a9=document['querySelector'](_0x103eb5);if(_0x1be8a9){if(_0x3bf0ac==='down')_0x1be8a9['scrollTop']+=_0x4b373f;else{if(_0x3bf0ac==='up')_0x1be8a9['scrollTop']-=_0x4b373f;else{if(_0x3bf0ac===_0x33d061(0x105))_0x1be8a9[_0x33d061(0x111)]+=_0x4b373f;else{if(_0x3bf0ac===_0x33d061(0x14d))_0x1be8a9['scrollLeft']-=_0x4b373f;}}}}},_0x103ee5,_0x59741b,pixels):await _0x58b41c['evaluate']((_0x138523,_0x28536e)=>{const _0x279fc8=_0x30924b;if(_0x138523==='down')window[_0x279fc8(0x10e)](0x0,_0x28536e);else{if(_0x138523==='up')window[_0x279fc8(0x10e)](0x0,-_0x28536e);else{if(_0x138523==='right')window[_0x279fc8(0x10e)](_0x28536e,0x0);else{if(_0x138523==='left')window['scrollBy'](-_0x28536e,0x0);}}}},_0x59741b,pixels),{'success':!![],'action':'scroll','direction':_0x59741b,'pixels':pixels,'selector':_0x103ee5||'page','message':_0x30924b(0x124)+_0x59741b+'\x20by\x20'+pixels+'px'};}catch(_0x1aafc6){throw new Error('Scroll\x20failed:\x20'+_0x1aafc6[_0x30924b(0x120)]);}}async[a0_0xce3fde(0x115)](_0x3e4cae){const _0x1a195b=a0_0xce3fde;if(this[_0x1a195b(0x151)]['has'](_0x3e4cae)){const _0x2bfc32=this['browserInstances'][_0x1a195b(0x114)](_0x3e4cae);if(!_0x2bfc32['browser'][_0x1a195b(0x15a)]())this['browserInstances'][_0x1a195b(0x11d)](_0x3e4cae);else return _0x2bfc32['browser'];}const _0x2e7b36=await a0_0x498e45['launch']({'headless':this['browserConfig']['headless'],'args':[_0x1a195b(0x12a),'--disable-setuid-sandbox',_0x1a195b(0x101),_0x1a195b(0x12f)]}),_0x2c1865=await _0x2e7b36['newPage']();return await _0x2c1865[_0x1a195b(0xeb)](this[_0x1a195b(0xe4)]['viewport']),await _0x2c1865[_0x1a195b(0x155)](this['browserConfig'][_0x1a195b(0x159)]),this[_0x1a195b(0x151)][_0x1a195b(0x121)](_0x3e4cae,{'browser':_0x2e7b36,'page':_0x2c1865,'created':Date[_0x1a195b(0x112)]()}),setTimeout(()=>{const _0x483174=_0x1a195b;this[_0x483174(0x128)](_0x3e4cae);},0xa*0x3c*0x3e8),_0x2e7b36;}async[a0_0xce3fde(0x146)](_0x456ada){const _0x3b5fef=a0_0xce3fde;return await this[_0x3b5fef(0x115)](_0x456ada),this[_0x3b5fef(0x151)][_0x3b5fef(0x114)](_0x456ada)[_0x3b5fef(0x149)];}async['closeBrowser'](_0x1e806f){const _0x4f7977=a0_0xce3fde,_0x537269=this[_0x4f7977(0x151)]['get'](_0x1e806f);if(_0x537269)try{return await _0x537269['browser'][_0x4f7977(0xfb)](),this[_0x4f7977(0x151)][_0x4f7977(0x11d)](_0x1e806f),{'success':!![],'action':'close','browserKey':_0x1e806f,'message':'Browser\x20instance\x20closed'};}catch(_0x155982){throw new Error(_0x4f7977(0xf5)+_0x155982[_0x4f7977(0x120)]);}return{'success':!![],'action':_0x4f7977(0xfb),'browserKey':_0x1e806f,'message':'Browser\x20instance\x20not\x20found\x20(already\x20closed)'};}async['cleanupBrowser'](_0x58eb3b){const _0x9b6fa5=a0_0xce3fde,_0x35fa44=this[_0x9b6fa5(0x151)][_0x9b6fa5(0x114)](_0x58eb3b);if(_0x35fa44)try{await _0x35fa44['browser']['close']();}catch(_0x208b2c){}finally{this[_0x9b6fa5(0x151)]['delete'](_0x58eb3b);}}['isAllowedUrl'](_0x1e6669){const _0x33a890=a0_0xce3fde;try{const _0x137b47=new URL(_0x1e6669),_0x450206=_0x137b47['hostname']['toLowerCase']();if(this['blockedDomains'][_0x33a890(0x13e)](_0x1269d8=>_0x450206['includes'](_0x1269d8['toLowerCase']())))return![];if(this['allowedDomains']&&this['allowedDomains'][_0x33a890(0xee)]>0x0)return this[_0x33a890(0xf0)][_0x33a890(0x13e)](_0x2fd4a4=>_0x450206['includes'](_0x2fd4a4['toLowerCase']()));return!![];}catch{return![];}}[a0_0xce3fde(0x10c)](_0x2efa01,_0x5a27e3,_0x41bc2a){const _0x3aaef5=a0_0xce3fde,_0x253e61={'timestamp':new Date()[_0x3aaef5(0xf9)](),'agentId':_0x41bc2a,'action':_0x2efa01['type'],'selector':_0x2efa01['selector']||_0x2efa01[_0x3aaef5(0x103)],'success':_0x5a27e3[_0x3aaef5(0x144)],'loadTime':_0x5a27e3['loadTime']||0x0};this['operationHistory'][_0x3aaef5(0xef)](_0x253e61),this[_0x3aaef5(0x132)]['length']>0x64&&(this[_0x3aaef5(0x132)]=this[_0x3aaef5(0x132)]['slice'](-0x64));}[a0_0xce3fde(0x142)](){const _0x57f829=a0_0xce3fde;return[_0x57f829(0xf1),'click',_0x57f829(0xfe),'wait','screenshot','extract',_0x57f829(0x14a),'close'];}[a0_0xce3fde(0xec)](){const _0x3dabe0=a0_0xce3fde;return{'type':'object','properties':{'actions':{'type':'array','minItems':0x1,'items':{'type':'object','properties':{'type':{'type':'string','enum':this[_0x3dabe0(0x142)]()},'url':{'type':_0x3dabe0(0xf7)},'selector':{'type':'string'},'text':{'type':'string'},'outputPath':{'type':_0x3dabe0(0xf7)},'waitTime':{'type':'integer'},'waitSelector':{'type':'string'},'attribute':{'type':_0x3dabe0(0xf7)},'direction':{'type':'string'},'pixels':{'type':'integer'}},'required':['type']}}},'required':[_0x3dabe0(0x156)]};}async['cleanup'](_0x1c2d6b){const _0x101783=a0_0xce3fde;for(const [_0x309e26]of this[_0x101783(0x151)]){await this[_0x101783(0x128)](_0x309e26);}}['getOperationHistory'](_0x2b045f=null){const _0x2c1302=a0_0xce3fde;if(_0x2b045f)return this['operationHistory'][_0x2c1302(0x154)](_0x5ef7d9=>_0x5ef7d9[_0x2c1302(0x11e)]===_0x2b045f);return[...this[_0x2c1302(0x132)]];}}export default BrowserTool;
|
|
1
|
+
const a0_0x5878b1=a0_0x35e5;(function(_0x46f06a,_0x277cb5){const _0x142d89=a0_0x35e5,_0x429d52=_0x46f06a();while(!![]){try{const _0x5184ed=-parseInt(_0x142d89(0x153))/0x1*(parseInt(_0x142d89(0x12e))/0x2)+parseInt(_0x142d89(0x129))/0x3+parseInt(_0x142d89(0x14e))/0x4+parseInt(_0x142d89(0x14a))/0x5*(-parseInt(_0x142d89(0x19b))/0x6)+parseInt(_0x142d89(0x169))/0x7+-parseInt(_0x142d89(0x172))/0x8*(-parseInt(_0x142d89(0x15c))/0x9)+-parseInt(_0x142d89(0x12a))/0xa;if(_0x5184ed===_0x277cb5)break;else _0x429d52['push'](_0x429d52['shift']());}catch(_0x50c151){_0x429d52['push'](_0x429d52['shift']());}}}(a0_0x18a5,0x52211));import{BaseTool}from'./baseTool.js';import a0_0x2fe399 from'../utilities/tagParser.js';import a0_0x547235 from'puppeteer';import a0_0xf30c49 from'fs/promises';function a0_0x35e5(_0x196db7,_0xbe2e60){_0x196db7=_0x196db7-0x122;const _0x18a50b=a0_0x18a5();let _0x35e5b7=_0x18a50b[_0x196db7];if(a0_0x35e5['YfeOsY']===undefined){var _0x2f21f7=function(_0x2af128){const _0x58f1bf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2fe399='',_0x547235='';for(let _0xf30c49=0x0,_0x136b21,_0x7f6c1e,_0x25495b=0x0;_0x7f6c1e=_0x2af128['charAt'](_0x25495b++);~_0x7f6c1e&&(_0x136b21=_0xf30c49%0x4?_0x136b21*0x40+_0x7f6c1e:_0x7f6c1e,_0xf30c49++%0x4)?_0x2fe399+=String['fromCharCode'](0xff&_0x136b21>>(-0x2*_0xf30c49&0x6)):0x0){_0x7f6c1e=_0x58f1bf['indexOf'](_0x7f6c1e);}for(let _0x4fbb5b=0x0,_0xcdc573=_0x2fe399['length'];_0x4fbb5b<_0xcdc573;_0x4fbb5b++){_0x547235+='%'+('00'+_0x2fe399['charCodeAt'](_0x4fbb5b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x547235);};a0_0x35e5['voEZKR']=_0x2f21f7,a0_0x35e5['YhAVkk']={},a0_0x35e5['YfeOsY']=!![];}const _0x5caecb=_0x18a50b[0x0],_0x5ca3a1=_0x196db7+_0x5caecb,_0x43c550=a0_0x35e5['YhAVkk'][_0x5ca3a1];return!_0x43c550?(_0x35e5b7=a0_0x35e5['voEZKR'](_0x35e5b7),a0_0x35e5['YhAVkk'][_0x5ca3a1]=_0x35e5b7):_0x35e5b7=_0x43c550,_0x35e5b7;}import a0_0x136b21 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BrowserTool extends BaseTool{constructor(_0x7f6c1e={},_0x25495b=null){const _0x1c7887=a0_0x35e5;super(_0x7f6c1e,_0x25495b),this['requiresProject']=![],this['isAsync']=!![],this['timeout']=_0x7f6c1e[_0x1c7887(0x124)]||0xea60,this['maxConcurrentOperations']=_0x7f6c1e['maxConcurrentOperations']||0x2,this[_0x1c7887(0x1a2)]={'headless':_0x7f6c1e['headless']!==![],'viewport':_0x7f6c1e['viewport']||{'width':0x500,'height':0x2d0},'userAgent':_0x7f6c1e[_0x1c7887(0x18d)]||_0x1c7887(0x150),'timeout':_0x7f6c1e[_0x1c7887(0x19a)]||0x7530},this['browserInstances']=new Map(),this[_0x1c7887(0x16d)]=_0x7f6c1e['allowedDomains']||null,this['blockedDomains']=_0x7f6c1e['blockedDomains']||[],this['maxScreenshotSize']=_0x7f6c1e['maxScreenshotSize']||0x5*0x400*0x400,this['operationHistory']=[];}[a0_0x5878b1(0x165)](){const _0x59b66e=a0_0x5878b1;return'\x0aBrowser\x20Tool:\x20Automate\x20web\x20browser\x20interactions,\x20navigation,\x20and\x20data\x20extraction.\x0a\x0aIMPORTANT\x20-\x20SYNTAX:\x20Use\x20self-closing\x20tags\x20with\x20angle\x20brackets\x20<\x20>,\x20not\x20square\x20brackets\x20[\x20].\x0a\x0aXML\x20USAGE\x20(Recommended):\x0a<browser>\x0a\x20\x20<navigate\x20url=\x22https://example.com\x22\x20/>\x0a\x20\x20<wait\x20wait-time=\x222000\x22\x20/>\x0a\x20\x20<click\x20selector=\x22button.submit\x22\x20/>\x0a\x20\x20<screenshot\x20output-path=\x22screenshot.png\x22\x20/>\x0a</browser>\x0a\x0aJSON\x20USAGE\x20(Alternative):\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22browser\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x20\x22type\x22:\x20\x22navigate\x22,\x20\x22url\x22:\x20\x22https://example.com\x22\x20},\x0a\x20\x20\x20\x20{\x20\x22type\x22:\x20\x22wait\x22,\x20\x22waitTime\x22:\x202000\x20},\x0a\x20\x20\x20\x20{\x20\x22type\x22:\x20\x22click\x22,\x20\x22selector\x22:\x20\x22button.submit\x22\x20},\x0a\x20\x20\x20\x20{\x20\x22type\x22:\x20\x22screenshot\x22,\x20\x22outputPath\x22:\x20\x22screenshot.png\x22\x20}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aSUPPORTED\x20ACTIONS:\x0a-\x20navigate:\x20Navigate\x20to\x20a\x20URL\x20(requires:\x20url)\x0a-\x20click:\x20Click\x20on\x20an\x20element\x20(requires:\x20selector)\x0a-\x20type:\x20Type\x20text\x20into\x20an\x20input\x20field\x20(requires:\x20selector,\x20text)\x0a-\x20wait:\x20Wait\x20for\x20element\x20or\x20time\x20(requires:\x20wait-time\x20OR\x20wait-selector)\x0a-\x20screenshot:\x20Take\x20screenshot\x20of\x20page\x20(requires:\x20output-path)\x0a-\x20extract:\x20Extract\x20text/data\x20from\x20elements\x20(requires:\x20selector,\x20attribute)\x0a-\x20scroll:\x20Scroll\x20page\x20or\x20element\x20(requires:\x20direction)\x0a-\x20close:\x20Close\x20browser\x20instance\x20(no\x20parameters)\x0a\x0aPARAMETER\x20REFERENCE:\x0a-\x20url:\x20Target\x20URL\x20for\x20navigation\x0a-\x20selector:\x20CSS\x20selector\x20for\x20element\x20targeting\x20(e.g.,\x20\x22#id\x22,\x20\x22.class\x22,\x20\x22button[type=\x27submit\x27]\x22)\x0a-\x20text:\x20Text\x20content\x20to\x20type\x0a-\x20output-path:\x20File\x20path\x20for\x20screenshots\x20(kebab-case\x20in\x20XML,\x20outputPath\x20in\x20JSON)\x0a-\x20wait-time:\x20Time\x20to\x20wait\x20in\x20milliseconds\x20(100-30000,\x20kebab-case\x20in\x20XML,\x20waitTime\x20in\x20JSON)\x0a-\x20wait-selector:\x20Element\x20selector\x20to\x20wait\x20for\x20(kebab-case\x20in\x20XML,\x20waitSelector\x20in\x20JSON)\x0a-\x20wait-type:\x20Wait\x20type\x20-\x20\x22visible\x22\x20or\x20\x22hidden\x22\x20(default:\x20\x22visible\x22)\x0a-\x20attribute:\x20HTML\x20attribute\x20to\x20extract\x20(default:\x20\x22text\x22)\x0a-\x20direction:\x20Scroll\x20direction\x20-\x20\x22up\x22,\x20\x22down\x22,\x20\x22left\x22,\x20\x22right\x22\x0a-\x20pixels:\x20Scroll\x20distance\x20in\x20pixels\x20(default:\x20300)\x0a-\x20full-page:\x20Take\x20full\x20page\x20screenshot\x20-\x20\x22true\x22\x20or\x20\x22false\x22\x0a\x0aEXAMPLES:\x0a\x0aExample\x201\x20-\x20Research\x20and\x20screenshot:\x0a<browser>\x0a\x20\x20<navigate\x20url=\x22https://github.com/trending\x22\x20/>\x0a\x20\x20<wait\x20wait-time=\x222000\x22\x20/>\x0a\x20\x20<screenshot\x20output-path=\x22trending.png\x22\x20/>\x0a\x20\x20<extract\x20selector=\x22h2.h3\x22\x20attribute=\x22text\x22\x20/>\x0a\x20\x20<close\x20/>\x0a</browser>\x0a\x0aExample\x202\x20-\x20Form\x20automation:\x0a<browser>\x0a\x20\x20<navigate\x20url=\x22https://example.com/login\x22\x20/>\x0a\x20\x20<wait\x20wait-selector=\x22input#username\x22\x20/>\x0a\x20\x20<type\x20selector=\x22input#username\x22\x20text=\x22myuser\x22\x20/>\x0a\x20\x20<type\x20selector=\x22input#password\x22\x20text=\x22mypass\x22\x20/>\x0a\x20\x20<click\x20selector=\x22button[type=\x27submit\x27]\x22\x20/>\x0a\x20\x20<wait\x20wait-selector=\x22.success-message\x22\x20/>\x0a\x20\x20<close\x20/>\x0a</browser>\x0a\x0aExample\x203\x20-\x20Data\x20extraction:\x0a<browser>\x0a\x20\x20<navigate\x20url=\x22https://example.com/products\x22\x20/>\x0a\x20\x20<wait\x20wait-time=\x221000\x22\x20/>\x0a\x20\x20<extract\x20selector=\x22h1.product-title\x22\x20attribute=\x22text\x22\x20/>\x0a\x20\x20<extract\x20selector=\x22span.price\x22\x20attribute=\x22text\x22\x20/>\x0a\x20\x20<extract\x20selector=\x22img.product\x22\x20attribute=\x22src\x22\x20/>\x0a\x20\x20<close\x20/>\x0a</browser>\x0a\x0aExample\x204\x20-\x20Scrolling\x20and\x20waiting:\x0a<browser>\x0a\x20\x20<navigate\x20url=\x22https://example.com/long-page\x22\x20/>\x0a\x20\x20<scroll\x20direction=\x22down\x22\x20pixels=\x22500\x22\x20/>\x0a\x20\x20<wait\x20wait-time=\x221000\x22\x20/>\x0a\x20\x20<scroll\x20direction=\x22down\x22\x20pixels=\x22500\x22\x20/>\x0a\x20\x20<screenshot\x20output-path=\x22scrolled.png\x22\x20full-page=\x22true\x22\x20/>\x0a\x20\x20<close\x20/>\x0a</browser>\x0a\x0aSYNTAX\x20RULES:\x0a✅\x20DO:\x20<navigate\x20url=\x22...\x22\x20/>\x20\x20(self-closing\x20with\x20/>)\x0a✅\x20DO:\x20<navigate\x20url=\x22...\x22>\x20\x20\x20\x20\x20(can\x20omit\x20/>\x20if\x20preferred)\x0a❌\x20DON\x27T:\x20<navigate\x20url=\x22...\x22></navigate>\x20\x20(no\x20closing\x20tag\x20needed)\x0a❌\x20DON\x27T:\x20[navigate\x20url=\x22...\x22\x20/]\x20\x20(square\x20brackets\x20not\x20supported)\x0a\x0aATTRIBUTE\x20NAMING:\x0a-\x20XML\x20uses\x20kebab-case:\x20wait-time,\x20output-path,\x20wait-selector\x0a-\x20JSON\x20uses\x20camelCase:\x20waitTime,\x20outputPath,\x20waitSelector\x0a-\x20Parser\x20auto-converts\x20kebab-case\x20to\x20camelCase\x20internally\x0a\x0aSECURITY:\x0a-\x20Restricted\x20to\x20allowed\x20domains\x20(if\x20configured)\x0a-\x20Blocked\x20domains\x20enforced\x20for\x20security\x0a-\x20Screenshot\x20size\x20limits\x20enforced\x20(max\x205MB)\x0a-\x20Automatic\x20cleanup\x20of\x20browser\x20instances\x20after\x2010\x20minutes\x0a-\x20Sandboxed\x20browser\x20execution\x0a\x0aBROWSER\x20SESSION:\x0aThe\x20tool\x20maintains\x20browser\x20instances\x20per\x20agent\x20context.\x0aUse\x20<close\x20/>\x20action\x20to\x20explicitly\x20cleanup,\x20or\x20instances\x20auto-cleanup\x20after\x20timeout.\x0a\x0aVIEWPORT:\x20'+this['browserConfig'][_0x59b66e(0x171)][_0x59b66e(0x185)]+'x'+this['browserConfig'][_0x59b66e(0x171)]['height']+_0x59b66e(0x122)+this['browserConfig'][_0x59b66e(0x124)]+_0x59b66e(0x179);}[a0_0x5878b1(0x191)](_0x4fbb5b){const _0x5a4115=a0_0x5878b1;try{if(_0x4fbb5b[_0x5a4115(0x13a)]()['startsWith']('{')){const _0x36678c=JSON[_0x5a4115(0x13d)](_0x4fbb5b);return!_0x36678c['actions']&&(_0x36678c['actions']=[]),!Array['isArray'](_0x36678c[_0x5a4115(0x137)])&&(_0x36678c[_0x5a4115(0x137)]=[_0x36678c['actions']]),_0x36678c;}const _0xcdc573={},_0x16c3dd=[],_0x9ce406=['navigate',_0x5a4115(0x170),_0x5a4115(0x162),_0x5a4115(0x131),_0x5a4115(0x139),'extract',_0x5a4115(0x12f),'close'];for(const _0x5706be of _0x9ce406){const _0x2e03c6=new RegExp('<'+_0x5706be+_0x5a4115(0x190),'gi');let _0x4036f1;while((_0x4036f1=_0x2e03c6['exec'](_0x4fbb5b))!==null){const _0x413529=_0x4036f1[0x1],_0x56aab6=this['parseAttributes'](_0x413529),_0x454bdb={'type':_0x5706be,..._0x56aab6};_0x454bdb['output-path']&&(_0x454bdb[_0x5a4115(0x133)]=_0x454bdb['output-path'],delete _0x454bdb[_0x5a4115(0x1a3)]),_0x454bdb[_0x5a4115(0x16c)]&&(_0x454bdb['waitTime']=parseInt(_0x454bdb[_0x5a4115(0x16c)],0xa),delete _0x454bdb['wait-time']),_0x454bdb[_0x5a4115(0x135)]&&(_0x454bdb['waitSelector']=_0x454bdb[_0x5a4115(0x135)],delete _0x454bdb[_0x5a4115(0x135)]),_0x454bdb[_0x5a4115(0x149)]&&(_0x454bdb['waitType']=_0x454bdb['wait-type'],delete _0x454bdb['wait-type']),_0x454bdb['full-page']&&(_0x454bdb[_0x5a4115(0x17c)]=_0x454bdb['full-page']==='true',delete _0x454bdb[_0x5a4115(0x19f)]),_0x16c3dd['push'](_0x454bdb);}}return _0xcdc573['actions']=Array['isArray'](_0x16c3dd)?_0x16c3dd:[],_0xcdc573['rawContent']=_0x4fbb5b[_0x5a4115(0x13a)](),_0xcdc573;}catch(_0x36716a){return this[_0x5a4115(0x176)]?.[_0x5a4115(0x18a)](_0x5a4115(0x17d),{'error':_0x36716a['message']}),{'actions':[],'rawContent':_0x4fbb5b['trim'](),'parseError':_0x36716a[_0x5a4115(0x18f)]};}}['parseAttributes'](_0x24cc05){const _0x2c7a54=a0_0x5878b1,_0x374f4b={};if(!_0x24cc05)return _0x374f4b;const _0x492e97=/([\w-]+)\s*=\s*["']([^"']*)["']/g;let _0x5856ba;while((_0x5856ba=_0x492e97[_0x2c7a54(0x14d)](_0x24cc05))!==null){const _0x254da5=_0x5856ba[0x1],_0x438a47=_0x5856ba[0x2];_0x374f4b[_0x254da5]=_0x438a47;}return _0x374f4b;}['getRequiredParameters'](){return['actions'];}[a0_0x5878b1(0x19c)](_0x86f9ed){const _0x6676d4=a0_0x5878b1,_0xd56660=[];if(!_0x86f9ed[_0x6676d4(0x137)]||!Array['isArray'](_0x86f9ed[_0x6676d4(0x137)])||_0x86f9ed['actions']['length']===0x0)_0xd56660['push'](_0x6676d4(0x177));else for(const [_0xb5668d,_0x4ce56e]of _0x86f9ed[_0x6676d4(0x137)]['entries']()){if(!_0x4ce56e[_0x6676d4(0x162)]){_0xd56660['push'](_0x6676d4(0x146)+(_0xb5668d+0x1)+_0x6676d4(0x134));continue;}switch(_0x4ce56e['type']){case _0x6676d4(0x159):if(!_0x4ce56e['url'])_0xd56660['push'](_0x6676d4(0x146)+(_0xb5668d+0x1)+':\x20url\x20is\x20required\x20for\x20navigate');else!this[_0x6676d4(0x158)](_0x4ce56e['url'])&&_0xd56660['push'](_0x6676d4(0x146)+(_0xb5668d+0x1)+_0x6676d4(0x184)+_0x4ce56e[_0x6676d4(0x142)]);break;case'click':case'extract':!_0x4ce56e['selector']&&_0xd56660[_0x6676d4(0x14b)](_0x6676d4(0x146)+(_0xb5668d+0x1)+':\x20selector\x20is\x20required\x20for\x20'+_0x4ce56e[_0x6676d4(0x162)]);break;case'type':!_0x4ce56e[_0x6676d4(0x130)]&&_0xd56660['push']('Action\x20'+(_0xb5668d+0x1)+_0x6676d4(0x1a1));!_0x4ce56e['text']&&_0x4ce56e[_0x6676d4(0x123)]!==''&&_0xd56660[_0x6676d4(0x14b)]('Action\x20'+(_0xb5668d+0x1)+_0x6676d4(0x195));break;case _0x6676d4(0x131):!_0x4ce56e[_0x6676d4(0x136)]&&!_0x4ce56e['waitSelector']&&_0xd56660['push']('Action\x20'+(_0xb5668d+0x1)+':\x20either\x20wait-time\x20or\x20wait-selector\x20is\x20required');_0x4ce56e['waitTime']&&(_0x4ce56e['waitTime']<0x64||_0x4ce56e[_0x6676d4(0x136)]>0x7530)&&_0xd56660['push'](_0x6676d4(0x146)+(_0xb5668d+0x1)+_0x6676d4(0x174));break;case'screenshot':!_0x4ce56e['outputPath']&&_0xd56660['push'](_0x6676d4(0x146)+(_0xb5668d+0x1)+_0x6676d4(0x17a));break;case'scroll':if(!_0x4ce56e['direction'])_0xd56660[_0x6676d4(0x14b)]('Action\x20'+(_0xb5668d+0x1)+':\x20direction\x20is\x20required\x20for\x20scroll');else!['up','down','left',_0x6676d4(0x1a0)]['includes'](_0x4ce56e[_0x6676d4(0x198)])&&_0xd56660['push']('Action\x20'+(_0xb5668d+0x1)+':\x20invalid\x20scroll\x20direction:\x20'+_0x4ce56e[_0x6676d4(0x198)]);break;case _0x6676d4(0x15b):break;default:_0xd56660[_0x6676d4(0x14b)](_0x6676d4(0x146)+(_0xb5668d+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x4ce56e['type']);}}return{'valid':_0xd56660[_0x6676d4(0x182)]===0x0,'errors':_0xd56660};}async['execute'](_0x48022a,_0x2822a8){const _0x412933=a0_0x5878b1,{actions:_0x2d134b}=_0x48022a,{agentId:_0x9e8187,projectDir:_0x451599}=_0x2822a8,_0x478ac1=_0x9e8187+'-'+(_0x451599||'default'),_0xfef5d1=[];for(const _0x4daf35 of _0x2d134b){try{let _0x2427a5;switch(_0x4daf35[_0x412933(0x162)]){case _0x412933(0x159):_0x2427a5=await this['navigate'](_0x4daf35['url'],_0x478ac1);break;case'click':_0x2427a5=await this['click'](_0x4daf35[_0x412933(0x130)],_0x478ac1);break;case _0x412933(0x162):_0x2427a5=await this['type'](_0x4daf35[_0x412933(0x130)],_0x4daf35['text'],_0x478ac1);break;case'wait':_0x2427a5=await this[_0x412933(0x131)](_0x4daf35,_0x478ac1);break;case'screenshot':_0x2427a5=await this[_0x412933(0x139)](_0x4daf35[_0x412933(0x133)],_0x451599,_0x478ac1,_0x4daf35);break;case'extract':_0x2427a5=await this['extract'](_0x4daf35[_0x412933(0x130)],_0x4daf35[_0x412933(0x14c)]||'text',_0x478ac1);break;case _0x412933(0x12f):_0x2427a5=await this['scroll'](_0x4daf35,_0x478ac1);break;case'close':_0x2427a5=await this[_0x412933(0x138)](_0x478ac1);break;default:throw new Error(_0x412933(0x141)+_0x4daf35['type']);}_0xfef5d1[_0x412933(0x14b)](_0x2427a5),this['addToHistory'](_0x4daf35,_0x2427a5,_0x9e8187);}catch(_0x555d41){const _0x16eb12={'success':![],'action':_0x4daf35[_0x412933(0x162)],'error':_0x555d41[_0x412933(0x18f)],'selector':_0x4daf35['selector']||_0x4daf35['url']};_0xfef5d1['push'](_0x16eb12),this['addToHistory'](_0x4daf35,_0x16eb12,_0x9e8187);}}return{'success':!![],'actions':_0xfef5d1,'executedActions':_0x2d134b[_0x412933(0x182)],'toolUsed':'browser'};}async[a0_0x5878b1(0x159)](_0x108636,_0x20cb78){const _0x12e20c=a0_0x5878b1,_0x5cd680=await this['getBrowser'](_0x20cb78),_0x32aeaf=await this['getPage'](_0x20cb78),_0x2da0e0=Date['now']();try{await _0x32aeaf['goto'](_0x108636,{'waitUntil':_0x12e20c(0x164),'timeout':this['browserConfig'][_0x12e20c(0x124)]});const _0x2fe0e8=await _0x32aeaf[_0x12e20c(0x143)](),_0x84893b=_0x32aeaf[_0x12e20c(0x142)]();return{'success':!![],'action':'navigate','url':_0x84893b,'originalUrl':_0x108636,'title':_0x2fe0e8,'loadTime':Date[_0x12e20c(0x199)]()-_0x2da0e0,'message':_0x12e20c(0x187)+_0x108636};}catch(_0x1a66bb){throw new Error('Navigation\x20failed:\x20'+_0x1a66bb[_0x12e20c(0x18f)]);}}async[a0_0x5878b1(0x170)](_0x2472b5,_0x3f1249){const _0x93f330=a0_0x5878b1,_0x4e02be=await this[_0x93f330(0x186)](_0x3f1249);try{return await _0x4e02be[_0x93f330(0x16f)](_0x2472b5,{'timeout':0x1388}),await _0x4e02be[_0x93f330(0x170)](_0x2472b5),{'success':!![],'action':'click','selector':_0x2472b5,'message':_0x93f330(0x193)+_0x2472b5};}catch(_0x559fe1){throw new Error(_0x93f330(0x18b)+_0x2472b5+':\x20'+_0x559fe1[_0x93f330(0x18f)]);}}async['type'](_0x5632d7,_0x33f965,_0x33b6e4){const _0x480939=a0_0x5878b1,_0x581295=await this['getPage'](_0x33b6e4);try{return await _0x581295[_0x480939(0x16f)](_0x5632d7,{'timeout':0x1388}),await _0x581295[_0x480939(0x19e)](_0x5632d7),await _0x581295[_0x480939(0x145)]['selectAll'](),await _0x581295[_0x480939(0x162)](_0x5632d7,_0x33f965),{'success':!![],'action':'type','selector':_0x5632d7,'text':_0x33f965,'textLength':_0x33f965['length'],'message':'Typed\x20'+_0x33f965['length']+_0x480939(0x152)+_0x5632d7};}catch(_0x21ff93){throw new Error(_0x480939(0x197)+_0x5632d7+':\x20'+_0x21ff93[_0x480939(0x18f)]);}}async['wait'](_0x39ed49,_0x5ccbc4){const _0x1594cd=a0_0x5878b1,_0x8c991b=await this[_0x1594cd(0x186)](_0x5ccbc4);try{if(_0x39ed49[_0x1594cd(0x136)])return await _0x8c991b[_0x1594cd(0x183)](_0x39ed49[_0x1594cd(0x136)]),{'success':!![],'action':_0x1594cd(0x131),'waitTime':_0x39ed49[_0x1594cd(0x136)],'message':_0x1594cd(0x13c)+_0x39ed49['waitTime']+'ms'};if(_0x39ed49['waitSelector']){const _0x3ee0cd=_0x39ed49[_0x1594cd(0x166)]||_0x1594cd(0x19d),_0xa5d5a0={'timeout':0x2710};return _0x3ee0cd===_0x1594cd(0x161)?await _0x8c991b[_0x1594cd(0x16f)](_0x39ed49['waitSelector'],{..._0xa5d5a0,'hidden':!![]}):await _0x8c991b[_0x1594cd(0x16f)](_0x39ed49['waitSelector'],_0xa5d5a0),{'success':!![],'action':_0x1594cd(0x131),'waitSelector':_0x39ed49['waitSelector'],'waitType':_0x3ee0cd,'message':_0x1594cd(0x14f)+_0x39ed49['waitSelector']+'\x20to\x20be\x20'+_0x3ee0cd};}}catch(_0x26e5c9){throw new Error(_0x1594cd(0x140)+_0x26e5c9['message']);}}async['screenshot'](_0x208cd0,_0x413d8a,_0x2fda7e,_0x50677d={}){const _0xe5b83b=a0_0x5878b1,_0x3bce87=await this[_0xe5b83b(0x186)](_0x2fda7e);try{const _0x3aa9fc=_0x413d8a?a0_0x136b21['resolve'](_0x413d8a,_0x208cd0):a0_0x136b21[_0xe5b83b(0x13e)](_0x208cd0),_0x5ebcc7=a0_0x136b21[_0xe5b83b(0x15a)](_0x3aa9fc);await a0_0xf30c49['mkdir'](_0x5ebcc7,{'recursive':!![]});const _0x11785c={'path':_0x3aa9fc,'type':'png'};_0x50677d['fullPage']&&(_0x11785c['fullPage']=!![]);await _0x3bce87['screenshot'](_0x11785c);const _0x38136c=await a0_0xf30c49['stat'](_0x3aa9fc);if(_0x38136c['size']>this[_0xe5b83b(0x175)])throw new Error(_0xe5b83b(0x15d)+_0x38136c['size']+_0xe5b83b(0x126)+this['maxScreenshotSize']+')');return{'success':!![],'action':'screenshot','outputPath':a0_0x136b21[_0xe5b83b(0x125)](_0x413d8a||process[_0xe5b83b(0x188)](),_0x3aa9fc),'size':_0x38136c['size'],'fullPage':!!_0x50677d[_0xe5b83b(0x17c)],'message':'Screenshot\x20saved:\x20'+_0x208cd0};}catch(_0x3586d7){throw new Error('Screenshot\x20failed:\x20'+_0x3586d7['message']);}}async[a0_0x5878b1(0x154)](_0x35edcb,_0x2ada8c,_0x206735){const _0x7099dd=a0_0x5878b1,_0x46bc=await this[_0x7099dd(0x186)](_0x206735);try{await _0x46bc['waitForSelector'](_0x35edcb,{'timeout':0x1388});let _0x5598d3;return _0x2ada8c===_0x7099dd(0x123)?_0x5598d3=await _0x46bc['$eval'](_0x35edcb,_0x45434c=>_0x45434c['textContent']['trim']()):_0x5598d3=await _0x46bc[_0x7099dd(0x18c)](_0x35edcb,(_0x40614e,_0x223d57)=>_0x40614e['getAttribute'](_0x223d57),_0x2ada8c),{'success':!![],'action':'extract','selector':_0x35edcb,'attribute':_0x2ada8c,'data':_0x5598d3,'message':_0x7099dd(0x167)+_0x2ada8c+_0x7099dd(0x13b)+_0x35edcb};}catch(_0x2975fd){throw new Error(_0x7099dd(0x12b)+_0x35edcb+':\x20'+_0x2975fd['message']);}}async['scroll'](_0xbd7196,_0x24982c){const _0x2732fc=a0_0x5878b1,_0x2d34a6=await this['getPage'](_0x24982c);try{const {direction:_0x12006d,pixels:pixels=0x12c,selector:_0x4d0059}=_0xbd7196;return _0x4d0059?await _0x2d34a6['evaluate']((_0x152ee1,_0xcbfbca,_0x207ea6)=>{const _0x5ab8b6=a0_0x35e5,_0x5b3291=document['querySelector'](_0x152ee1);if(_0x5b3291){if(_0xcbfbca===_0x5ab8b6(0x16e))_0x5b3291['scrollTop']+=_0x207ea6;else{if(_0xcbfbca==='up')_0x5b3291['scrollTop']-=_0x207ea6;else{if(_0xcbfbca==='right')_0x5b3291[_0x5ab8b6(0x180)]+=_0x207ea6;else{if(_0xcbfbca==='left')_0x5b3291[_0x5ab8b6(0x180)]-=_0x207ea6;}}}}},_0x4d0059,_0x12006d,pixels):await _0x2d34a6[_0x2732fc(0x15f)]((_0x9b992f,_0xa0e0d1)=>{const _0x2e6955=_0x2732fc;if(_0x9b992f===_0x2e6955(0x16e))window[_0x2e6955(0x128)](0x0,_0xa0e0d1);else{if(_0x9b992f==='up')window['scrollBy'](0x0,-_0xa0e0d1);else{if(_0x9b992f===_0x2e6955(0x1a0))window['scrollBy'](_0xa0e0d1,0x0);else{if(_0x9b992f==='left')window['scrollBy'](-_0xa0e0d1,0x0);}}}},_0x12006d,pixels),{'success':!![],'action':_0x2732fc(0x12f),'direction':_0x12006d,'pixels':pixels,'selector':_0x4d0059||'page','message':_0x2732fc(0x17e)+_0x12006d+'\x20by\x20'+pixels+'px'};}catch(_0x460539){throw new Error(_0x2732fc(0x132)+_0x460539[_0x2732fc(0x18f)]);}}async[a0_0x5878b1(0x155)](_0x25ad99){const _0x4d86d6=a0_0x5878b1;if(this[_0x4d86d6(0x151)]['has'](_0x25ad99)){const _0x43a2ee=this[_0x4d86d6(0x151)]['get'](_0x25ad99);if(!_0x43a2ee[_0x4d86d6(0x12d)][_0x4d86d6(0x157)]())this[_0x4d86d6(0x151)]['delete'](_0x25ad99);else return _0x43a2ee['browser'];}const _0x23a2b5=await a0_0x547235[_0x4d86d6(0x15e)]({'headless':this[_0x4d86d6(0x1a2)]['headless'],'args':[_0x4d86d6(0x16b),_0x4d86d6(0x168),'--disable-dev-shm-usage',_0x4d86d6(0x13f)]}),_0x3fac7d=await _0x23a2b5['newPage']();return await _0x3fac7d['setViewport'](this['browserConfig'][_0x4d86d6(0x171)]),await _0x3fac7d[_0x4d86d6(0x156)](this['browserConfig']['userAgent']),this[_0x4d86d6(0x151)][_0x4d86d6(0x181)](_0x25ad99,{'browser':_0x23a2b5,'page':_0x3fac7d,'created':Date['now']()}),setTimeout(()=>{this['cleanupBrowser'](_0x25ad99);},0xa*0x3c*0x3e8),_0x23a2b5;}async[a0_0x5878b1(0x186)](_0x3c14b2){const _0x249021=a0_0x5878b1;return await this['getBrowser'](_0x3c14b2),this[_0x249021(0x151)]['get'](_0x3c14b2)[_0x249021(0x127)];}async['closeBrowser'](_0x3bd4b8){const _0x2d910f=a0_0x5878b1,_0x24e0e1=this['browserInstances']['get'](_0x3bd4b8);if(_0x24e0e1)try{return await _0x24e0e1['browser'][_0x2d910f(0x15b)](),this[_0x2d910f(0x151)]['delete'](_0x3bd4b8),{'success':!![],'action':'close','browserKey':_0x3bd4b8,'message':_0x2d910f(0x173)};}catch(_0xaa344){throw new Error(_0x2d910f(0x17b)+_0xaa344['message']);}return{'success':!![],'action':_0x2d910f(0x15b),'browserKey':_0x3bd4b8,'message':_0x2d910f(0x192)};}async['cleanupBrowser'](_0xbe609a){const _0x1acfaf=a0_0x5878b1,_0x428c12=this[_0x1acfaf(0x151)]['get'](_0xbe609a);if(_0x428c12)try{await _0x428c12['browser']['close']();}catch(_0x75a273){}finally{this[_0x1acfaf(0x151)]['delete'](_0xbe609a);}}['isAllowedUrl'](_0x2868c9){const _0x3830a8=a0_0x5878b1;try{const _0x2e06ea=new URL(_0x2868c9),_0x7fd573=_0x2e06ea[_0x3830a8(0x12c)]['toLowerCase']();if(this['blockedDomains']['some'](_0x189984=>_0x7fd573['includes'](_0x189984['toLowerCase']())))return![];if(this['allowedDomains']&&this['allowedDomains']['length']>0x0)return this['allowedDomains'][_0x3830a8(0x196)](_0x16e05e=>_0x7fd573[_0x3830a8(0x163)](_0x16e05e[_0x3830a8(0x18e)]()));return!![];}catch{return![];}}['addToHistory'](_0x2f67ef,_0x2448ac,_0x1ca324){const _0x164f3b=a0_0x5878b1,_0x2f92f7={'timestamp':new Date()[_0x164f3b(0x148)](),'agentId':_0x1ca324,'action':_0x2f67ef[_0x164f3b(0x162)],'selector':_0x2f67ef[_0x164f3b(0x130)]||_0x2f67ef[_0x164f3b(0x142)],'success':_0x2448ac['success'],'loadTime':_0x2448ac['loadTime']||0x0};this[_0x164f3b(0x147)]['push'](_0x2f92f7),this['operationHistory']['length']>0x64&&(this[_0x164f3b(0x147)]=this[_0x164f3b(0x147)]['slice'](-0x64));}[a0_0x5878b1(0x160)](){const _0xe1cf53=a0_0x5878b1;return['navigate','click',_0xe1cf53(0x162),_0xe1cf53(0x131),'screenshot','extract','scroll',_0xe1cf53(0x15b)];}[a0_0x5878b1(0x178)](){const _0x5b565d=a0_0x5878b1;return{'type':_0x5b565d(0x16a),'properties':{'actions':{'type':'array','minItems':0x1,'items':{'type':_0x5b565d(0x16a),'properties':{'type':{'type':_0x5b565d(0x17f),'enum':this['getSupportedActions']()},'url':{'type':'string'},'selector':{'type':'string'},'text':{'type':'string'},'outputPath':{'type':'string'},'waitTime':{'type':_0x5b565d(0x194)},'waitSelector':{'type':_0x5b565d(0x17f)},'attribute':{'type':_0x5b565d(0x17f)},'direction':{'type':_0x5b565d(0x17f)},'pixels':{'type':'integer'}},'required':[_0x5b565d(0x162)]}}},'required':[_0x5b565d(0x137)]};}async['cleanup'](_0x2df6e2){const _0x30ea62=a0_0x5878b1;for(const [_0xfc24f3]of this['browserInstances']){await this[_0x30ea62(0x189)](_0xfc24f3);}}['getOperationHistory'](_0x3770e6=null){const _0x56c7f6=a0_0x5878b1;if(_0x3770e6)return this['operationHistory']['filter'](_0x3e0ee1=>_0x3e0ee1[_0x56c7f6(0x144)]===_0x3770e6);return[...this[_0x56c7f6(0x147)]];}}function a0_0x18a5(){const _0x25ef04=['DxnLCKfNzw50','Dg9mB3DLCKnHC2u','BwvZC2fNzq','xhmRkfTEpL0QpYLCCYPClZ8+','CgfYC2vqyxjHBwv0zxjZ','qNjVD3nLCIbPBNn0yw5JzsbUB3qGzM91BMqGkgfSCMvHzhKGy2XVC2vKkq','q2XPy2TLzcbVBIa','Aw50zwDLCG','oIb0zxH0igLZihjLCxvPCMvKigzVCIb0ExbL','C29Tzq','vhLWzsbMywLSzwqGB24G','zgLYzwn0Aw9U','BM93','CgfNzvrPBwvVDxq','mtyZmJe0nefpDhfSvG','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','DMLZAwjSzq','zM9JDxm','zNvSBc1WywDL','CMLNAhq','oIbZzwXLy3rVCIbPCYbYzxf1AxjLzcbMB3iGDhLWzq','yNjVD3nLCKnVBMzPzW','B3v0Chv0lxbHDgG','cLrjtuvpvvq6ia','Dgv4Da','DgLTzw91Da','CMvSyxrPDMu','igj5DgvZicHTyxGG','CgfNzq','C2nYB2XSqNK','mte2mtu1mKPKqwDWvW','ntG5ntiWmhnPsxf5tW','rxH0CMfJDcbMywLSzwqGB24G','Ag9ZDg5HBwu','yNjVD3nLCG','mJqZnJbir2vVsNy','C2nYB2XS','C2vSzwn0B3i','D2fPDa','u2nYB2XSigzHAwXLzdOG','B3v0Chv0ugf0Aa','oIb0ExbLigLZihjLCxvPCMvK','D2fPDc1ZzwXLy3rVCG','D2fPDfrPBwu','ywn0Aw9UCW','y2XVC2vcCM93C2vY','C2nYzwvUC2HVDa','DhjPBq','igzYB20G','v2fPDgvKia','CgfYC2u','CMvZB2X2zq','ls1KAxnHyMXLlwDWDq','v2fPDcbMywLSzwq6ia','vw5RBM93BIbHy3rPB24GDhLWztOG','DxjS','DgL0Bgu','ywDLBNrjza','A2v5yM9HCMq','qwn0Aw9Uia','B3bLCMf0Aw9UsgLZDg9YEq','Dg9ju09tDhjPBMC','D2fPDc10ExbL','mtbzz2jssgy','ChvZAa','yxr0CMLIDxrL','zxHLyW','mtu0mZi2mhb3rg5gwq','v2fPDgvKigzVCIa','tw96AwXSys81lJaGkfDPBMrVD3mGtLqGmtaUmdSGv2LUnJq7ihG2ncKGqxbWBgvxzwjlAxqVntm3lJm2','yNjVD3nLCKLUC3rHBMnLCW','ignOyxjHy3rLCNmGAw50BYa','mtbtyKXSs1a','zxH0CMfJDa','z2v0qNjVD3nLCG','C2v0vxnLCKfNzw50','AxndB25Uzwn0zwq','AxnbBgXVD2vKvxjS','BMf2AwDHDgu','zgLYBMfTzq','y2XVC2u','mZCWmduZsNvqsfrH','u2nYzwvUC2HVDcb0B28GBgfYz2u6ia','Bgf1BMnO','zxzHBhvHDgu','z2v0u3vWCg9YDgvKqwn0Aw9UCW','AgLKzgvU','DhLWzq','Aw5JBhvKzxm','BMv0D29YA2LKBguW','z2v0rgvZy3jPChrPB24','D2fPDfr5Cgu','rxH0CMfJDgvKia','ls1KAxnHyMXLlxnLDhvPzc1Zyw5KyM94','mZe0mtaXoxzouvPHrW','B2jQzwn0','ls1UBY1Zyw5KyM94','D2fPDc10Aw1L','ywXSB3DLzerVBwfPBNm','zg93BG','D2fPDezVCLnLBgvJDg9Y','y2XPy2S','DMLLD3bVCNq','nZjWEeDYq2W','qNjVD3nLCIbPBNn0yw5JzsbJBg9Zzwq','oIb3ywL0lxrPBwuGBxvZDcbIzsbIzxr3zwvUideWmcbHBMqGmZaWmdaGBwLSBgLZzwnVBMrZ','Bwf4u2nYzwvUC2HVDfnPEMu','Bg9Nz2vY','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','z2v0ugfYyw1LDgvYu2nOzw1H','BxmGCgvYig9WzxjHDgLVBGPnqvGGv0fjvcbusu1foIaZmcbZzwnVBMrZicGZmdaWmg1ZkqOGicaG','oIbVDxrWDxqTCgf0AcbPCYbYzxf1AxjLzcbMB3iGC2nYzwvUC2HVDa','rMfPBgvKihrVignSB3nLigjYB3DZzxi6ia','zNvSBfbHz2u','rMfPBgvKihrVihbHCNnLigjYB3DZzxiGCgfYyw1LDgvYCW','u2nYB2XSzwqG','C3rYAw5N','C2nYB2XStgvMDa','C2v0','BgvUz3rO','D2fPDezVCLrPBwvVDxq','oIbvuKWGBM90igfSBg93zwq6ia','D2LKDgG','z2v0ugfNzq','tMf2AwDHDgvKihrVia','y3DK','y2XLyw51CejYB3DZzxi','zxjYB3i','q2XPy2SGzMfPBgvKig9Uia','jgv2ywW'];a0_0x18a5=function(){return _0x25ef04;};return a0_0x18a5();}export default BrowserTool;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x27d552=a0_0x4a08;(function(_0x34f076,_0x2c8f9d){const _0x4466ef=a0_0x4a08,_0x775f4b=_0x34f076();while(!![]){try{const _0x370e74=parseInt(_0x4466ef(0x14a))/0x1+-parseInt(_0x4466ef(0x143))/0x2*(parseInt(_0x4466ef(0x14c))/0x3)+parseInt(_0x4466ef(0x146))/0x4*(parseInt(_0x4466ef(0x179))/0x5)+-parseInt(_0x4466ef(0x166))/0x6*(-parseInt(_0x4466ef(0x138))/0x7)+-parseInt(_0x4466ef(0x163))/0x8*(parseInt(_0x4466ef(0x15a))/0x9)+-parseInt(_0x4466ef(0x144))/0xa+-parseInt(_0x4466ef(0x14f))/0xb;if(_0x370e74===_0x2c8f9d)break;else _0x775f4b['push'](_0x775f4b['shift']());}catch(_0x1fe407){_0x775f4b['push'](_0x775f4b['shift']());}}}(a0_0x4d09,0x67d2a));import{BaseTool}from'./baseTool.js';function a0_0x4a08(_0x431924,_0x119e0b){_0x431924=_0x431924-0x11b;const _0x4d0919=a0_0x4d09();let _0x4a089f=_0x4d0919[_0x431924];if(a0_0x4a08['oUuaTX']===undefined){var _0x559317=function(_0x5bd923){const _0x2435c8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1a7b17='',_0x3e42f5='';for(let _0x64fb22=0x0,_0x5a3f40,_0x1d1586,_0x3bde0b=0x0;_0x1d1586=_0x5bd923['charAt'](_0x3bde0b++);~_0x1d1586&&(_0x5a3f40=_0x64fb22%0x4?_0x5a3f40*0x40+_0x1d1586:_0x1d1586,_0x64fb22++%0x4)?_0x1a7b17+=String['fromCharCode'](0xff&_0x5a3f40>>(-0x2*_0x64fb22&0x6)):0x0){_0x1d1586=_0x2435c8['indexOf'](_0x1d1586);}for(let _0x17e2b4=0x0,_0x90b002=_0x1a7b17['length'];_0x17e2b4<_0x90b002;_0x17e2b4++){_0x3e42f5+='%'+('00'+_0x1a7b17['charCodeAt'](_0x17e2b4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3e42f5);};a0_0x4a08['fRhnAM']=_0x559317,a0_0x4a08['nqyDms']={},a0_0x4a08['oUuaTX']=!![];}const _0x560f3b=_0x4d0919[0x0],_0x1018e6=_0x431924+_0x560f3b,_0x20e94a=a0_0x4a08['nqyDms'][_0x1018e6];return!_0x20e94a?(_0x4a089f=a0_0x4a08['fRhnAM'](_0x4a089f),a0_0x4a08['nqyDms'][_0x1018e6]=_0x4a089f):_0x4a089f=_0x20e94a,_0x4a089f;}import a0_0x1a7b17 from'../utilities/tagParser.js';import a0_0x3e42f5 from'../utilities/directoryAccessManager.js';function a0_0x4d09(){const _0x4ead4a=['C2LTAwXHCML0EvrOCMvZAg9Sza','Bg9Nz2vY','mtjNqu9lD0m','odq0ndyWmgr2AfrABq','ugfYC2vKienSB25Lrgv0zwn0Aw9UihrVB2WGCgfYyw1LDgvYCW','ndrAA21lu1a','oIbTAw4TDg9Rzw5Zig11C3qGyMuGyMv0D2vLBIaXmcbHBMqGmtaWma','ywXSB3DLza','zM9YBwf0rgv0ywLSzwrpDxrWDxq','nJm2mdu0BhfhEKzq','BwLUlwXPBMvZ','mJa4odn1r2LAugy','C2XPy2u','Bwf4lxjLC3vSDhm','mZKYotG2yMv3vxLr','DhLWzq','oIb0ExbLigLZihjLCxvPCMvK','kIOVBM9Kzv9TB2r1BgvZlYOQ','z2v0u3vWCg9YDgvKqwn0Aw9UCW','zgv0zwn0q2XVBMvZ','kIOVkI5QC3G','kIOVkI50zxn0lMPZ','ChjPB3jPDhLdB3vUDhm','uMvHzcbHy2nLC3mGzgvUAwvKoIa','zgvMyxvSDfnPBwLSyxjPDhLuAhjLC2HVBgq','owjRyuPbza','y3DK','oIbTAw4TBgLUzxmGBxvZDcbIzsbIzxr3zwvUideGyw5KideWma','AM9PBG','zgLYzwn0B3j5','Dg90ywXgAwXLCW','C3vIC3rYAw5N','DMfSAwrHDgvszwfKqwnJzxnZ','rMfPBgvKihrVigrLDgvJDcbJBg9UzxmGAw4G','mtCYnda0oeTuy1fdAG','ywn0Aw9UCW','ihnLy29UzhmkcLvtrsbdqvnfuZOklsbjzgvUDgLMEsbYzwzHy3rVCMLUzYbVChbVCNr1BML0AwvZigjLzM9YzsbJB2rLihjLDMLLDWOTifrYywnRihrLy2HUAwnHBcbKzwj0igfUzcbJB2rLigr1CgXPy2f0Aw9Uig1LDhjPy3mklsbgAw5KignHBMrPzgf0zxmGzM9YierswsaOrg9Uj3qGuMvWzwf0ifLVDxjZzwXMksbYzwzHy3rVCMLUzWOTifbYAw9YAxrPEMuGBwfPBNrLBMfUy2uGD29YAYbIEsbPBxbHy3qGC2nVCMukicaGia','odqWntr6ue5yy2m','y3jLyxrLuMvSyxrPDMvqyxrO','kIOVyNvPBgqVkIO','DhjPBq','BwLUvg9Rzw5Z','B3v0Chv0lw1Vzgu','AxnbC3LUyW','ChjPB3jPDhLgAwX0zxi','zgv0zwn0lwnSB25LCW','Bwv0CMLJCW','BgvUz3rO','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','C3vTBwfYEq','zgvIDwC','kIOVkI5TANm','zw50CMLLCW','C3rHCNrmAw5L','zw5KtgLUzq','C3rYyxrLz3K','mJGXmtiWueDbEhjn','AgLNAa','z2v0q2XVBMvezxrLy3rVCG','y29UzMLKzw5Jzq','qwn0Aw9Uia','ChvZAa','C2LTAwXHCML0Es10AhjLC2HVBgq','C3rYAw5N','ChjPB3jPDhKTzMLSDgvY','zhvWBgLJyxrPB25qzxjJzw50ywDL','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','cI4UlIaODhj1BMnHDgvKkq','BNvTyMvY','BwLUtgLUzxm','y29Kzq','ywn0Aw9UywjSzvn0zxbZ','ChjPB3jPDhK','zgvMyxvSDe1PBKXPBMvZ','B3v0Chv0tw9Kzq','kIOVkI5QCW','BgLUzunVDw50','Aw5ZDgfUy2vdB3vUDa','C3bSAxq','zgLYzwn0B3j5qwnJzxnZtwfUywDLCG','BwfW','BwvKAxvT','CNvU','Bg93','kIOVkI5ZCgvJlMPZ','DgLTzw91Da','zgv0ywLSzwq','oIbWCMLVCML0Es1MAwX0zxiGBxvZDcbIzsbOAwDOlcbTzwrPDw0Sig9YigXVDW','CMvMywn0B3jPBMDbzhzPy2u','kIOVkI50C3G','Aw5MBW','Bwf4uMvZDwX0CW','BwLUlxrVA2vUCW','zgvMyxvSDe1PBLrVA2vUCW','mtu0DM5YuhPo','zxHLy3v0zq','lI4Vyw5HBhL6zxjZl2nVzgvdBg9UzurLDgvJDg9Yl2LUzgv4lMPZ','vw5RBM93BIbHy3rPB24GDhLWztOG','Aw5JBhvKzxm','zMLSzq','kIOVkI50CW','AxnbyNnVBhv0zq','BwvZC2fNzq'];a0_0x4d09=function(){return _0x4ead4a;};return a0_0x4d09();}import a0_0x64fb22 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class CloneDetectionTool extends BaseTool{constructor(_0x5a3f40={},_0x1d1586=null){const _0xcbd29c=a0_0x4a08;super(_0x5a3f40,_0x1d1586),this['requiresProject']=!![],this[_0xcbd29c(0x16c)]=![],this['timeout']=_0x5a3f40[_0xcbd29c(0x12f)]||0x1d4c0,this[_0xcbd29c(0x171)]=_0x5a3f40['maxConcurrentOperations']||0x1,this[_0xcbd29c(0x137)]=_0x5a3f40[_0xcbd29c(0x137)]||0x32,this[_0xcbd29c(0x123)]=_0x5a3f40[_0xcbd29c(0x123)]||0x5,this['defaultSimilarityThreshold']=_0x5a3f40[_0xcbd29c(0x159)]||0.85,this['maxFileSize']=_0x5a3f40['maxFileSize']||0x7a120,this[_0xcbd29c(0x129)]=new a0_0x3e42f5(_0x5a3f40,_0x1d1586),this['cloneDetector']=null;}['getDescription'](){const _0xeea0d8=a0_0x4a08;return'\x0aCode\x20Clone\x20Detection\x20Tool:\x20Find\x20duplicated\x20code\x20for\x20refactoring\x20opportunities\x0a\x0aThis\x20tool\x20identifies\x20exact\x20and\x20similar\x20code\x20patterns\x20(code\x20clones)\x20across\x20your\x20codebase\x20to\x20help\x20reduce\x20duplication,\x20improve\x20maintainability,\x20and\x20identify\x20refactoring\x20opportunities.\x0a\x0aWHAT\x20IT\x20DETECTS:\x0a-\x20Exact\x20Clones\x20(Type\x201):\x20Identical\x20code\x20with\x20different\x20formatting/comments\x0a-\x20Similar\x20Clones\x20(Type\x202/3):\x20Structurally\x20similar\x20code\x20with\x20minor\x20variations\x0a\x0aSUPPORTED\x20LANGUAGES:\x0a-\x20JavaScript\x20(.js,\x20.jsx,\x20.mjs,\x20.cjs)\x0a-\x20TypeScript\x20(.ts,\x20.tsx)\x0a-\x20Vue\x20(.vue)\x0a\x0aUSAGE\x20-\x20XML\x20FORMAT:\x0a\x0aDetect\x20clones\x20in\x20entire\x20directory:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20/>\x0a[/tool]\x0a\x0aDetect\x20clones\x20in\x20specific\x20directory:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src/services\x22\x20/>\x0a[/tool]\x0a\x0aCustom\x20sensitivity\x20(lower\x20minTokens\x20=\x20more\x20sensitive):\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src\x22\x20min-tokens=\x2230\x22\x20min-lines=\x225\x22\x20/>\x0a[/tool]\x0a\x0aFilter\x20by\x20priority:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20priority-filter=\x22high\x22\x20max-results=\x225\x22\x20/>\x0a[/tool]\x0a\x0aGet\x20summary\x20only:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20output-mode=\x22summary\x22\x20/>\x0a[/tool]\x0a\x0aUSAGE\x20-\x20JSON\x20FORMAT:\x0a\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x22type\x22:\x20\x22detect-clones\x22,\x0a\x20\x20\x20\x20\x20\x20\x22directory\x22:\x20\x22src\x22,\x0a\x20\x20\x20\x20\x20\x20\x22minTokens\x22:\x2050,\x0a\x20\x20\x20\x20\x20\x20\x22minLines\x22:\x205,\x0a\x20\x20\x20\x20\x20\x20\x22similarityThreshold\x22:\x200.85,\x0a\x20\x20\x20\x20\x20\x20\x22priorityFilter\x22:\x20\x22high\x22,\x0a\x20\x20\x20\x20\x20\x20\x22maxResults\x22:\x2010,\x0a\x20\x20\x20\x20\x20\x20\x22outputMode\x22:\x20\x22summary\x22\x0a\x20\x20\x20\x20}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aPARAMETERS:\x0a-\x20directory:\x20Directory\x20to\x20analyze\x20(required)\x0a-\x20min-tokens:\x20Minimum\x20token\x20count\x20(default:\x2050,\x20lower\x20=\x20more\x20sensitive)\x0a-\x20min-lines:\x20Minimum\x20line\x20count\x20(default:\x205)\x0a-\x20similarity-threshold:\x200-1\x20similarity\x20threshold\x20(default:\x200.85)\x0a-\x20priority-filter:\x20Filter\x20by\x20priority\x20(high/medium/low,\x20optional)\x0a-\x20max-results:\x20Maximum\x20number\x20of\x20clones\x20to\x20return\x20(optional)\x0a-\x20output-mode:\x20summary|detailed|recommendations\x20(default:\x20detailed)\x0a\x0aOUTPUT\x20FORMAT:\x0aReturns\x20clone\x20detection\x20results\x20with:\x0a-\x20summary:\x20Overall\x20statistics\x20(total\x20clones,\x20duplication\x20%,\x20priority\x20breakdown)\x0a-\x20clones:\x20Array\x20of\x20detected\x20clone\x20groups\x0a\x20\x20-\x20id:\x20Clone\x20identifier\x0a\x20\x20-\x20type:\x20exact\x20|\x20similar\x0a\x20\x20-\x20confidence:\x20Detection\x20confidence\x20(0-1)\x0a\x20\x20-\x20instances:\x20Array\x20of\x20code\x20locations\x20with\x20file\x20paths\x20and\x20line\x20numbers\x0a\x20\x20-\x20metrics:\x20tokenCount,\x20lineCount,\x20instanceCount,\x20impactScore,\x20filesCovered\x0a\x20\x20-\x20refactoringAdvice:\x0a\x20\x20\x20\x20-\x20priority:\x20high\x20|\x20medium\x20|\x20low\x0a\x20\x20\x20\x20-\x20strategy:\x20extract-function\x20|\x20extract-class\x20|\x20extract-module\x20|\x20extract-constant\x0a\x20\x20\x20\x20-\x20suggestedName:\x20Recommended\x20name\x20for\x20extracted\x20code\x0a\x20\x20\x20\x20-\x20reasoning:\x20Why\x20this\x20refactoring\x20is\x20recommended\x0a\x20\x20\x20\x20-\x20estimatedEffort:\x20low\x20|\x20medium\x20|\x20high\x0a\x20\x20\x20\x20-\x20benefits:\x20Array\x20of\x20benefits\x0a\x20\x20\x20\x20-\x20actionableSteps:\x20Step-by-step\x20refactoring\x20instructions\x0a\x0aOUTPUT\x20MODES:\x0a-\x20summary:\x20High-level\x20overview\x20only\x20(duplication\x20%,\x20top\x205\x20clones)\x0a-\x20detailed:\x20Full\x20clone\x20details\x20with\x20code\x20snippets\x20(default)\x0a-\x20recommendations:\x20Refactoring\x20priorities\x20with\x20actionable\x20steps\x0a\x0aDETECTION\x20ALGORITHM:\x0a-\x20Uses\x20AST\x20(Abstract\x20Syntax\x20Tree)\x20parsing\x20via\x20Babel\x0a-\x20Token-based\x20similarity\x20with\x20normalization\x0a-\x20Longest\x20Common\x20Subsequence\x20(LCS)\x20algorithm\x20for\x20similarity\x0a-\x20Configurable\x20sensitivity\x20and\x20thresholds\x0a\x0aEXAMPLES:\x0a\x0aFind\x20all\x20clones\x20in\x20project:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20/>\x0a[/tool]\x0a\x0aHigh-priority\x20refactoring\x20opportunities\x20only:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src\x22\x20priority-filter=\x22high\x22\x20max-results=\x2210\x22\x20/>\x0a[/tool]\x0a\x0aMore\x20sensitive\x20detection\x20(finds\x20smaller\x20clones):\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20min-tokens=\x2230\x22\x20similarity-threshold=\x220.80\x22\x20/>\x0a[/tool]\x0a\x0aQuick\x20overview:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20output-mode=\x22summary\x22\x20/>\x0a[/tool]\x0a\x0aLIMITATIONS:\x0a-\x20Analyzes\x20JavaScript/TypeScript\x20family\x20only\x0a-\x20Performance\x20depends\x20on\x20codebase\x20size\x20(500ms\x20per\x20file\x20typical)\x0a-\x20Maximum\x20file\x20size:\x20'+Math['round'](this['maxFileSize']/0x400)+'KB\x20per\x20file\x0a-\x20Analysis\x20timeout:\x20'+this['timeout']/0x3e8+_0xeea0d8(0x165);}['parseParameters'](_0x3bde0b){const _0x3705bb=a0_0x4a08;try{const _0x17e2b4={},_0x90b002=[];this['logger']?.['debug']('CloneDetection\x20tool\x20parsing\x20parameters',{'contentLength':_0x3bde0b['length'],'contentPreview':_0x3bde0b[_0x3705bb(0x160)](0x0,0xc8)});const _0x13c8fe=/<detect-clones\s+(.+?)\/>/g;let _0x2d9f4a;while((_0x2d9f4a=_0x13c8fe['exec'](_0x3bde0b))!==null){const _0x3322e9=_0x2d9f4a[0x1][_0x3705bb(0x169)](),_0x459c21=new a0_0x1a7b17(),_0x4379f4=_0x459c21['parseAttributes'](_0x3322e9),_0x1d3410={'type':_0x3705bb(0x16e),..._0x4379f4};_0x1d3410[_0x3705bb(0x136)]&&(_0x1d3410[_0x3705bb(0x16a)]=parseInt(_0x1d3410[_0x3705bb(0x136)],0xa),delete _0x1d3410['min-tokens']),_0x1d3410[_0x3705bb(0x14b)]&&(_0x1d3410['minLines']=parseInt(_0x1d3410[_0x3705bb(0x14b)],0xa),delete _0x1d3410[_0x3705bb(0x14b)]),_0x1d3410[_0x3705bb(0x17f)]&&(_0x1d3410['similarityThreshold']=parseFloat(_0x1d3410['similarity-threshold']),delete _0x1d3410['similarity-threshold']),_0x1d3410[_0x3705bb(0x181)]&&(_0x1d3410[_0x3705bb(0x16d)]=_0x1d3410['priority-filter'],delete _0x1d3410[_0x3705bb(0x181)]),_0x1d3410[_0x3705bb(0x14e)]&&(_0x1d3410[_0x3705bb(0x135)]=parseInt(_0x1d3410[_0x3705bb(0x14e)],0xa),delete _0x1d3410['max-results']),_0x1d3410[_0x3705bb(0x16b)]&&(_0x1d3410[_0x3705bb(0x124)]=_0x1d3410['output-mode'],delete _0x1d3410['output-mode']),_0x90b002[_0x3705bb(0x17e)](_0x1d3410);}return _0x17e2b4['actions']=_0x90b002,_0x17e2b4['rawContent']=_0x3bde0b[_0x3705bb(0x169)](),this['logger']?.['debug'](_0x3705bb(0x145),{'totalActions':_0x90b002[_0x3705bb(0x170)],'actionTypes':_0x90b002['map'](_0xdc3dfe=>_0xdc3dfe[_0x3705bb(0x150)])}),_0x17e2b4;}catch(_0x5c1fa7){throw new Error('Failed\x20to\x20parse\x20clone\x20detection\x20parameters:\x20'+_0x5c1fa7['message']);}}['getRequiredParameters'](){return['actions'];}['customValidateParameters'](_0xa93f93){const _0x4c206f=a0_0x4a08,_0x5d954b=[];if(!_0xa93f93[_0x4c206f(0x164)]||!Array['isArray'](_0xa93f93[_0x4c206f(0x164)])||_0xa93f93['actions']['length']===0x0)_0x5d954b['push'](_0x4c206f(0x11c));else for(const [_0x4ed9f9,_0x542d3e]of _0xa93f93[_0x4c206f(0x164)][_0x4c206f(0x175)]()){if(!_0x542d3e['type']){_0x5d954b['push'](_0x4c206f(0x17d)+(_0x4ed9f9+0x1)+_0x4c206f(0x151));continue;}_0x542d3e[_0x4c206f(0x150)]===_0x4c206f(0x16e)?(!_0x542d3e[_0x4c206f(0x15e)]&&_0x5d954b['push'](_0x4c206f(0x17d)+(_0x4ed9f9+0x1)+':\x20directory\x20is\x20required\x20for\x20detect-clones'),_0x542d3e['minTokens']!==undefined&&(_0x542d3e[_0x4c206f(0x16a)]<0xa||_0x542d3e['minTokens']>0x3e8)&&_0x5d954b['push']('Action\x20'+(_0x4ed9f9+0x1)+_0x4c206f(0x147)),_0x542d3e[_0x4c206f(0x11f)]!==undefined&&(_0x542d3e[_0x4c206f(0x11f)]<0x1||_0x542d3e['minLines']>0x64)&&_0x5d954b['push']('Action\x20'+(_0x4ed9f9+0x1)+_0x4c206f(0x15c)),_0x542d3e[_0x4c206f(0x141)]!==undefined&&(_0x542d3e[_0x4c206f(0x141)]<0.5||_0x542d3e[_0x4c206f(0x141)]>0x1)&&_0x5d954b['push']('Action\x20'+(_0x4ed9f9+0x1)+':\x20similarity-threshold\x20must\x20be\x20between\x200.5\x20and\x201.0'),_0x542d3e[_0x4c206f(0x16d)]&&![_0x4c206f(0x17a),_0x4c206f(0x12b),_0x4c206f(0x12d)]['includes'](_0x542d3e[_0x4c206f(0x16d)])&&_0x5d954b[_0x4c206f(0x17e)]('Action\x20'+(_0x4ed9f9+0x1)+_0x4c206f(0x131)),_0x542d3e['outputMode']&&!['summary',_0x4c206f(0x130),'recommendations'][_0x4c206f(0x13c)](_0x542d3e['outputMode'])&&_0x5d954b['push']('Action\x20'+(_0x4ed9f9+0x1)+':\x20output-mode\x20must\x20be\x20summary,\x20detailed,\x20or\x20recommendations')):_0x5d954b[_0x4c206f(0x17e)]('Action\x20'+(_0x4ed9f9+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x542d3e['type']);}return{'valid':_0x5d954b[_0x4c206f(0x170)]===0x0,'errors':_0x5d954b};}async[a0_0x27d552(0x139)](_0x21b980,_0x24a757){const _0x46eb0c=a0_0x27d552,{actions:_0x3e303a}=_0x21b980,{projectDir:_0x3b0260,agentId:_0x48ea43,directoryAccess:_0x2db73b}=_0x24a757,_0x599cd7=_0x2db73b||this['directoryAccessManager']['createDirectoryAccess']({'workingDirectory':_0x3b0260||process['cwd'](),'writeEnabledDirectories':[],'readOnlyDirectories':[_0x3b0260||process[_0x46eb0c(0x15b)]()],'restrictToProject':!![]}),_0x2dbed2=this['directoryAccessManager']['getWorkingDirectory'](_0x599cd7),_0x230d7a=[];for(const _0x4bb79e of _0x3e303a){try{if(_0x4bb79e[_0x46eb0c(0x150)]===_0x46eb0c(0x16e)){const _0x28a3ed=await this[_0x46eb0c(0x154)](_0x4bb79e['directory'],_0x2dbed2,_0x599cd7,_0x4bb79e);_0x230d7a['push'](_0x28a3ed);}else throw new Error(_0x46eb0c(0x13b)+_0x4bb79e[_0x46eb0c(0x150)]);}catch(_0x10bd28){this['logger']?.['error']('Clone\x20detection\x20action\x20failed',{'action':_0x4bb79e[_0x46eb0c(0x150)],'error':_0x10bd28[_0x46eb0c(0x140)]}),_0x230d7a['push']({'directory':_0x4bb79e[_0x46eb0c(0x15e)],'error':_0x10bd28[_0x46eb0c(0x140)],'success':![]});}}return{'success':!![],'results':_0x230d7a,'toolUsed':'clonedetection'};}async[a0_0x27d552(0x154)](_0x76b3a2,_0x3febc6,_0x2d4285,_0x1207c8={}){const _0x26aa08=a0_0x27d552,_0x58e908=a0_0x64fb22[_0x26aa08(0x13f)](_0x76b3a2)?a0_0x64fb22['normalize'](_0x76b3a2):a0_0x64fb22['resolve'](_0x3febc6,_0x76b3a2),_0x4d3b5e=this[_0x26aa08(0x129)][_0x26aa08(0x161)](_0x58e908,_0x2d4285);if(!_0x4d3b5e[_0x26aa08(0x148)])throw new Error(_0x26aa08(0x158)+_0x4d3b5e['reason']);try{const _0x3ec8e2=await this[_0x26aa08(0x17b)](),_0x65a443={'minTokens':_0x1207c8[_0x26aa08(0x16a)]||this['defaultMinTokens'],'minLines':_0x1207c8[_0x26aa08(0x11f)]||this[_0x26aa08(0x123)],'similarityThreshold':_0x1207c8['similarityThreshold']||this[_0x26aa08(0x159)],'include':['**/*.js',_0x26aa08(0x155),_0x26aa08(0x174),'**/*.cjs','**/*.ts','**/*.tsx','**/*.vue'],'exclude':[_0x26aa08(0x152),'**/dist/**','**/build/**',_0x26aa08(0x156),_0x26aa08(0x12e)],'maxFileSize':this['maxFileSize']};this[_0x26aa08(0x142)]?.[_0x26aa08(0x134)]('Starting\x20clone\x20detection',{'directory':_0x58e908,'config':_0x65a443});const _0x298cda=await _0x3ec8e2[_0x26aa08(0x12c)](_0x58e908,null);if(!_0x298cda)return{'directory':this['directoryAccessManager']['createRelativePath'](_0x58e908,_0x2d4285),'fullPath':_0x58e908,'success':!![],'summary':{'totalFiles':0x0,'totalClones':0x0,'duplicationPercentage':0x0},'clones':[],'message':'No\x20files\x20found\x20or\x20no\x20clones\x20detected'};let _0x448ed9=_0x298cda['clones'];_0x1207c8[_0x26aa08(0x16d)]&&(_0x448ed9=_0x448ed9['filter'](_0x268e32=>_0x268e32['refactoringAdvice']['priority']===_0x1207c8['priorityFilter']));_0x1207c8['maxResults']&&(_0x448ed9=_0x448ed9['slice'](0x0,_0x1207c8[_0x26aa08(0x135)]));const _0x5b3fa7=_0x1207c8[_0x26aa08(0x124)]||_0x26aa08(0x130);if(_0x5b3fa7==='summary')return this['formatSummaryOutput'](_0x298cda,_0x448ed9,_0x58e908,_0x2d4285);else return _0x5b3fa7==='recommendations'?this['formatRecommendationsOutput'](_0x298cda,_0x448ed9,_0x58e908,_0x2d4285):this['formatDetailedOutput'](_0x298cda,_0x448ed9,_0x58e908,_0x2d4285);}catch(_0x13b29d){throw new Error(_0x26aa08(0x162)+_0x76b3a2+':\x20'+_0x13b29d[_0x26aa08(0x140)]);}}['formatSummaryOutput'](_0x4f0a60,_0x412d60,_0x16e9b3,_0x3e14f3){const _0xdc17de=a0_0x27d552;return{'directory':this['directoryAccessManager'][_0xdc17de(0x167)](_0x16e9b3,_0x3e14f3),'fullPath':_0x16e9b3,'success':!![],'outputMode':_0xdc17de(0x172),'summary':{'totalFiles':_0x4f0a60[_0xdc17de(0x172)][_0xdc17de(0x15f)],'totalClones':_0x4f0a60[_0xdc17de(0x172)]['totalClones'],'duplicatedLines':_0x4f0a60[_0xdc17de(0x172)]['totalDuplicatedLines'],'duplicationPercentage':_0x4f0a60[_0xdc17de(0x172)][_0xdc17de(0x11b)],'priorityCounts':_0x4f0a60[_0xdc17de(0x172)][_0xdc17de(0x157)],'topClones':_0x412d60['slice'](0x0,0x5)['map'](_0x4d51e4=>({'id':_0x4d51e4['id'],'type':_0x4d51e4['type'],'confidence':_0x4d51e4[_0xdc17de(0x17c)],'instances':_0x4d51e4['metrics'][_0xdc17de(0x127)],'lines':_0x4d51e4['metrics']['lineCount'],'priority':_0x4d51e4[_0xdc17de(0x132)][_0xdc17de(0x122)],'strategy':_0x4d51e4['refactoringAdvice']['strategy'],'locations':_0x4d51e4['instances'][_0xdc17de(0x12a)](_0x1293cc=>_0x1293cc[_0xdc17de(0x13d)]+':'+_0x1293cc[_0xdc17de(0x176)]+'-'+_0x1293cc[_0xdc17de(0x177)])}))}};}['formatRecommendationsOutput'](_0x5dd090,_0x5b737c,_0xf19973,_0x752605){const _0x3598ba=a0_0x27d552;return{'directory':this[_0x3598ba(0x129)][_0x3598ba(0x167)](_0xf19973,_0x752605),'fullPath':_0xf19973,'success':!![],'outputMode':'recommendations','summary':{'totalFiles':_0x5dd090[_0x3598ba(0x172)]['totalFiles'],'totalClones':_0x5dd090['summary']['totalClones'],'duplicationPercentage':_0x5dd090[_0x3598ba(0x172)]['duplicationPercentage']},'recommendations':_0x5b737c[_0x3598ba(0x12a)](_0x56f03f=>({'id':_0x56f03f['id'],'priority':_0x56f03f[_0x3598ba(0x132)]['priority'],'strategy':_0x56f03f[_0x3598ba(0x132)][_0x3598ba(0x178)],'suggestedName':_0x56f03f[_0x3598ba(0x132)]['suggestedName'],'reasoning':_0x56f03f['refactoringAdvice']['reasoning'],'effort':_0x56f03f[_0x3598ba(0x132)]['estimatedEffort'],'benefits':_0x56f03f['refactoringAdvice']['benefits'],'steps':_0x56f03f['refactoringAdvice'][_0x3598ba(0x121)],'metrics':{'instances':_0x56f03f[_0x3598ba(0x16f)][_0x3598ba(0x127)],'lines':_0x56f03f[_0x3598ba(0x16f)][_0x3598ba(0x126)],'files':_0x56f03f['metrics']['filesCovered'],'impact':_0x56f03f[_0x3598ba(0x16f)]['impactScore']},'locations':_0x56f03f['instances']['map'](_0x18b424=>({'file':_0x18b424[_0x3598ba(0x13d)],'startLine':_0x18b424['startLine'],'endLine':_0x18b424['endLine']}))}))};}[a0_0x27d552(0x149)](_0x388776,_0x550011,_0x2c2a1c,_0x38691f){const _0x18ffe7=a0_0x27d552;return{'directory':this['directoryAccessManager'][_0x18ffe7(0x167)](_0x2c2a1c,_0x38691f),'fullPath':_0x2c2a1c,'success':!![],'outputMode':'detailed','summary':_0x388776[_0x18ffe7(0x172)],'clones':_0x550011['map'](_0x2278f9=>({..._0x2278f9,'instances':_0x2278f9['instances'][_0x18ffe7(0x12a)](_0x4e7595=>({..._0x4e7595,'code':_0x4e7595[_0x18ffe7(0x120)][_0x18ffe7(0x128)]('\x0a')[_0x18ffe7(0x14d)](0x0,0xa)[_0x18ffe7(0x15d)]('\x0a')+(_0x4e7595['code']['split']('\x0a')['length']>0xa?_0x18ffe7(0x11d):'')}))}))};}async['getCloneDetector'](){const _0x12572b=a0_0x27d552;if(!this['cloneDetector']){const {CloneDetectionTool:_0x2dea53}=await import(_0x12572b(0x13a)),_0x4a920e={'minTokens':this[_0x12572b(0x137)],'minLines':this[_0x12572b(0x123)],'similarityThreshold':this['defaultSimilarityThreshold'],'include':[_0x12572b(0x125),'**/*.jsx',_0x12572b(0x13e),_0x12572b(0x133),'**/*.vue'],'exclude':['**/node_modules/**','**/dist/**',_0x12572b(0x168)],'maxFileSize':this['maxFileSize']};this['cloneDetector']=new _0x2dea53(_0x4a920e),this['logger']?.[_0x12572b(0x173)]('Clone\x20detector\x20initialized',{'config':_0x4a920e});}return this['cloneDetector'];}[a0_0x27d552(0x153)](){return['detect-clones'];}['getParameterSchema'](){const _0x83525e=a0_0x27d552;return{'type':'object','properties':{'actions':{'type':'array','minItems':0x1,'items':{'type':'object','properties':{'type':{'type':_0x83525e(0x180),'enum':this['getSupportedActions']()},'directory':{'type':_0x83525e(0x180)},'minTokens':{'type':_0x83525e(0x11e),'minimum':0xa,'maximum':0x3e8},'minLines':{'type':_0x83525e(0x11e),'minimum':0x1,'maximum':0x64},'similarityThreshold':{'type':'number','minimum':0.5,'maximum':0x1},'priorityFilter':{'type':_0x83525e(0x180),'enum':[_0x83525e(0x17a),_0x83525e(0x12b),'low']},'maxResults':{'type':_0x83525e(0x11e),'minimum':0x1},'outputMode':{'type':'string','enum':[_0x83525e(0x172),_0x83525e(0x130),'recommendations']}},'required':[_0x83525e(0x150),_0x83525e(0x15e)]}}},'required':[_0x83525e(0x164)]};}}export default CloneDetectionTool;
|
|
1
|
+
function a0_0x3a67(){const _0x34a95a=['Bwv0CMLJCW','ChvZAa','y2XVBMvezxrLy3rVCG','ywn0Aw9UCW','mJy1mhDbr2H6Bq','C3rHCNrmAw5L','CMvZB2X2zq','mJG4nda0nMTdtwLqsa','z2v0u3vWCg9YDgvKqwn0Aw9UCW','kIOVkI50C3G','zgvMyxvSDe1PBLrVA2vUCW','C3vTBwfYEq','ihnLy29UzhmkcLvtrsbdqvnfuZOklsbjzgvUDgLMEsbYzwzHy3rVCMLUzYbVChbVCNr1BML0AwvZigjLzM9YzsbJB2rLihjLDMLLDWOTifrYywnRihrLy2HUAwnHBcbKzwj0igfUzcbJB2rLigr1CgXPy2f0Aw9Uig1LDhjPy3mklsbgAw5KignHBMrPzgf0zxmGzM9YierswsaOrg9Uj3qGuMvWzwf0ifLVDxjZzwXMksbYzwzHy3rVCMLUzWOTifbYAw9YAxrPEMuGBwfPBNrLBMfUy2uGD29YAYbIEsbPBxbHy3qGC2nVCMukicaGia','DhLWzq','BwLUlxrVA2vUCW','mJu5mdm5AMrRsMrx','zgv0zwn0lwnSB25LCW','ChjPB3jPDhLgAwX0zxi','B3v0Chv0lw1Vzgu','ntC2ntG4qwP1BerO','AxnbC3LUyW','ChjPB3jPDhK','AxnbCNjHEq','zM9YBwf0uMvJB21Tzw5KyxrPB25Zt3v0Chv0','mtbzD0fhAfC','Bg9Nz2vY','ugfYC2vKienSB25Lrgv0zwn0Aw9UihrVB2WGCgfYyw1LDgvYCW','C3bSAxq','y2XVBMvZ','zgvIDwC','CNvU','Bwf4lxjLC3vSDhm','zgv0zwn0q2XVBMvZ','oIbZAw1PBgfYAxr5lxrOCMvZAg9SzcbTDxn0igjLigjLDhDLzw4Gmc41igfUzcaXlJa','BwLUtgLUzxm','z2v0q2XVBMvezxrLy3rVCG','mJqXntu3nhvurxfyqW','u3rHCNrPBMCGy2XVBMuGzgv0zwn0Aw9U','y29UzMLKzw5Jzq','Dg90ywXgAwXLCW','zgvMyxvSDe1PBKXPBMvZ','BNvTyMvY','zxjYB3i','oIbVDxrWDxqTBw9KzsbTDxn0igjLihn1Bw1HCNKSigrLDgfPBgvKlcbVCIbYzwnVBw1LBMrHDgLVBNm','kIOVzgLZDc8QkG','Aw5JBhvKzxm','Aw5ZDgfUy2vdB3vUDa','zM9YBwf0u3vTBwfYEu91Dhb1Da','CMvHC29U','mNf6DNbLtW','mJmXody0mfjwr2vkBq','C3rYAw5N','CgfYC2vqyxjHBwv0zxjZ','rMfPBgvKihrVigrLDgvJDcbJBg9UzxmGAw4G','BM9YBwfSAxPL','B2jQzwn0','lI4Vyw5HBhL6zxjZl2nVzgvdBg9UzurLDgvJDg9Yl2LUzgv4lMPZ','y3jLyxrLrgLYzwn0B3j5qwnJzxnZ','DgLTzw91Da','yxjYyxK','AgLNAa','zxHLy3v0zq','vw5RBM93BIbHy3rPB24GDhLWztOG','y3DK','zxn0Aw1HDgvKrwzMB3j0','zgLYzwn0B3j5','zMLSzxndB3zLCMvK','Bg93','C2LTAwXHCML0Es10AhjLC2HVBgq','yMvUzwzPDhm','zgLYzwn0B3j5qwnJzxnZtwfUywDLCG','BwfW','CMvMywn0B3jPBMDbzhzPy2u','oIbKAxjLy3rVCNKGAxmGCMvXDwLYzwqGzM9YigrLDgvJDc1JBg9Uzxm','CMvHC29UAw5N','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','C2LTAwXHCML0EvrOCMvZAg9Sza','C3vNz2vZDgvKtMfTzq','BwvKAxvT','y3jLyxrLuMvSyxrPDMvqyxrO','q2XVBMuGzgv0zwn0B3iGAw5PDgLHBgL6zwq','z2v0ugfYyw1LDgvYu2nOzw1H','zgvMyxvSDfnPBwLSyxjPDhLuAhjLC2HVBgq','Bwf4rMLSzvnPEMu','Bwf4uMvZDwX0CW','AM9PBG','qwn0Aw9Uia','nKTzAvLouG','zw5KtgLUzq','Aw5ZDgfUy2vZ','rMfPBgvKihrVihbHCNnLignSB25LigrLDgvJDgLVBIbWyxjHBwv0zxjZoIa','C2XPy2u','CMvJB21Tzw5KyxrPB25Z','BwLUlwXPBMvZ','DMfSAwrHDgvszwfKqwnJzxnZ','BgvUz3rO','B3v0Chv0tw9Kzq','kIOVyNvPBgqVkIO','ChjPB3jPDhKTzMLSDgvY','C3rYyxrLz3K','zw50CMLLCW','BwLUvg9Rzw5Z','cI4UlIaODhj1BMnHDgvKkq','Aw1Wywn0u2nVCMu','C3vIC3rYAw5N','mJe5ndiZre1cv0r0','kIOVBM9Kzv9TB2r1BgvZlYOQ','mZiZmu5vtevktq','y2XVBMvKzxrLy3rPB24','kIOVkI52Dwu','BwvZC2fNzq'];a0_0x3a67=function(){return _0x34a95a;};return a0_0x3a67();}const a0_0x5bba4a=a0_0x5383;(function(_0x39dcfa,_0x1fc01a){const _0x445a33=a0_0x5383,_0x55ef1d=_0x39dcfa();while(!![]){try{const _0x288cb6=parseInt(_0x445a33(0x109))/0x1+parseInt(_0x445a33(0x12b))/0x2*(-parseInt(_0x445a33(0x163))/0x3)+-parseInt(_0x445a33(0x10d))/0x4*(parseInt(_0x445a33(0x112))/0x5)+parseInt(_0x445a33(0x151))/0x6*(parseInt(_0x445a33(0x11e))/0x7)+parseInt(_0x445a33(0x12c))/0x8+-parseInt(_0x445a33(0x165))/0x9*(parseInt(_0x445a33(0xfe))/0xa)+-parseInt(_0x445a33(0x101))/0xb;if(_0x288cb6===_0x1fc01a)break;else _0x55ef1d['push'](_0x55ef1d['shift']());}catch(_0x150d70){_0x55ef1d['push'](_0x55ef1d['shift']());}}}(a0_0x3a67,0x2ac5b));import{BaseTool}from'./baseTool.js';import a0_0x2e2d16 from'../utilities/tagParser.js';import a0_0x908a0f from'../utilities/directoryAccessManager.js';import a0_0xbf145c from'path';function a0_0x5383(_0x3282f7,_0x2337a9){_0x3282f7=_0x3282f7-0xfc;const _0x3a6705=a0_0x3a67();let _0x538304=_0x3a6705[_0x3282f7];if(a0_0x5383['JirhPW']===undefined){var _0x5bad39=function(_0x145b6d){const _0x3ab523='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2e2d16='',_0x908a0f='';for(let _0xbf145c=0x0,_0x44aa1e,_0x235c60,_0x20893e=0x0;_0x235c60=_0x145b6d['charAt'](_0x20893e++);~_0x235c60&&(_0x44aa1e=_0xbf145c%0x4?_0x44aa1e*0x40+_0x235c60:_0x235c60,_0xbf145c++%0x4)?_0x2e2d16+=String['fromCharCode'](0xff&_0x44aa1e>>(-0x2*_0xbf145c&0x6)):0x0){_0x235c60=_0x3ab523['indexOf'](_0x235c60);}for(let _0x29c2df=0x0,_0x244c2c=_0x2e2d16['length'];_0x29c2df<_0x244c2c;_0x29c2df++){_0x908a0f+='%'+('00'+_0x2e2d16['charCodeAt'](_0x29c2df)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x908a0f);};a0_0x5383['RqbHpI']=_0x5bad39,a0_0x5383['RoKkyu']={},a0_0x5383['JirhPW']=!![];}const _0x98850d=_0x3a6705[0x0],_0x2e182c=_0x3282f7+_0x98850d,_0x3d558c=a0_0x5383['RoKkyu'][_0x2e182c];return!_0x3d558c?(_0x538304=a0_0x5383['RqbHpI'](_0x538304),a0_0x5383['RoKkyu'][_0x2e182c]=_0x538304):_0x538304=_0x3d558c,_0x538304;}import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class CloneDetectionTool extends BaseTool{constructor(_0x44aa1e={},_0x235c60=null){const _0x36455d=a0_0x5383;super(_0x44aa1e,_0x235c60),this['requiresProject']=!![],this[_0x36455d(0x10e)]=![],this[_0x36455d(0x134)]=_0x44aa1e[_0x36455d(0x134)]||0x1d4c0,this['maxConcurrentOperations']=_0x44aa1e[_0x36455d(0x145)]||0x1,this[_0x36455d(0x104)]=_0x44aa1e[_0x36455d(0x104)]||0x32,this['defaultMinLines']=_0x44aa1e['defaultMinLines']||0x5,this['defaultSimilarityThreshold']=_0x44aa1e['defaultSimilarityThreshold']||0.85,this['maxFileSize']=_0x44aa1e['maxFileSize']||0x7a120,this['directoryAccessManager']=new a0_0x908a0f(_0x44aa1e,_0x235c60),this[_0x36455d(0xfc)]=null;}['getDescription'](){const _0x4483db=a0_0x5383;return'\x0aCode\x20Clone\x20Detection\x20Tool:\x20Find\x20duplicated\x20code\x20for\x20refactoring\x20opportunities\x0a\x0aThis\x20tool\x20identifies\x20exact\x20and\x20similar\x20code\x20patterns\x20(code\x20clones)\x20across\x20your\x20codebase\x20to\x20help\x20reduce\x20duplication,\x20improve\x20maintainability,\x20and\x20identify\x20refactoring\x20opportunities.\x0a\x0aWHAT\x20IT\x20DETECTS:\x0a-\x20Exact\x20Clones\x20(Type\x201):\x20Identical\x20code\x20with\x20different\x20formatting/comments\x0a-\x20Similar\x20Clones\x20(Type\x202/3):\x20Structurally\x20similar\x20code\x20with\x20minor\x20variations\x0a\x0aSUPPORTED\x20LANGUAGES:\x0a-\x20JavaScript\x20(.js,\x20.jsx,\x20.mjs,\x20.cjs)\x0a-\x20TypeScript\x20(.ts,\x20.tsx)\x0a-\x20Vue\x20(.vue)\x0a\x0aUSAGE\x20-\x20XML\x20FORMAT:\x0a\x0aDetect\x20clones\x20in\x20entire\x20directory:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20/>\x0a[/tool]\x0a\x0aDetect\x20clones\x20in\x20specific\x20directory:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src/services\x22\x20/>\x0a[/tool]\x0a\x0aCustom\x20sensitivity\x20(lower\x20minTokens\x20=\x20more\x20sensitive):\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src\x22\x20min-tokens=\x2230\x22\x20min-lines=\x225\x22\x20/>\x0a[/tool]\x0a\x0aFilter\x20by\x20priority:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20priority-filter=\x22high\x22\x20max-results=\x225\x22\x20/>\x0a[/tool]\x0a\x0aGet\x20summary\x20only:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20output-mode=\x22summary\x22\x20/>\x0a[/tool]\x0a\x0aUSAGE\x20-\x20JSON\x20FORMAT:\x0a\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x22type\x22:\x20\x22detect-clones\x22,\x0a\x20\x20\x20\x20\x20\x20\x22directory\x22:\x20\x22src\x22,\x0a\x20\x20\x20\x20\x20\x20\x22minTokens\x22:\x2050,\x0a\x20\x20\x20\x20\x20\x20\x22minLines\x22:\x205,\x0a\x20\x20\x20\x20\x20\x20\x22similarityThreshold\x22:\x200.85,\x0a\x20\x20\x20\x20\x20\x20\x22priorityFilter\x22:\x20\x22high\x22,\x0a\x20\x20\x20\x20\x20\x20\x22maxResults\x22:\x2010,\x0a\x20\x20\x20\x20\x20\x20\x22outputMode\x22:\x20\x22summary\x22\x0a\x20\x20\x20\x20}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aPARAMETERS:\x0a-\x20directory:\x20Directory\x20to\x20analyze\x20(required)\x0a-\x20min-tokens:\x20Minimum\x20token\x20count\x20(default:\x2050,\x20lower\x20=\x20more\x20sensitive)\x0a-\x20min-lines:\x20Minimum\x20line\x20count\x20(default:\x205)\x0a-\x20similarity-threshold:\x200-1\x20similarity\x20threshold\x20(default:\x200.85)\x0a-\x20priority-filter:\x20Filter\x20by\x20priority\x20(high/medium/low,\x20optional)\x0a-\x20max-results:\x20Maximum\x20number\x20of\x20clones\x20to\x20return\x20(optional)\x0a-\x20output-mode:\x20summary|detailed|recommendations\x20(default:\x20detailed)\x0a\x0aOUTPUT\x20FORMAT:\x0aReturns\x20clone\x20detection\x20results\x20with:\x0a-\x20summary:\x20Overall\x20statistics\x20(total\x20clones,\x20duplication\x20%,\x20priority\x20breakdown)\x0a-\x20clones:\x20Array\x20of\x20detected\x20clone\x20groups\x0a\x20\x20-\x20id:\x20Clone\x20identifier\x0a\x20\x20-\x20type:\x20exact\x20|\x20similar\x0a\x20\x20-\x20confidence:\x20Detection\x20confidence\x20(0-1)\x0a\x20\x20-\x20instances:\x20Array\x20of\x20code\x20locations\x20with\x20file\x20paths\x20and\x20line\x20numbers\x0a\x20\x20-\x20metrics:\x20tokenCount,\x20lineCount,\x20instanceCount,\x20impactScore,\x20filesCovered\x0a\x20\x20-\x20refactoringAdvice:\x0a\x20\x20\x20\x20-\x20priority:\x20high\x20|\x20medium\x20|\x20low\x0a\x20\x20\x20\x20-\x20strategy:\x20extract-function\x20|\x20extract-class\x20|\x20extract-module\x20|\x20extract-constant\x0a\x20\x20\x20\x20-\x20suggestedName:\x20Recommended\x20name\x20for\x20extracted\x20code\x0a\x20\x20\x20\x20-\x20reasoning:\x20Why\x20this\x20refactoring\x20is\x20recommended\x0a\x20\x20\x20\x20-\x20estimatedEffort:\x20low\x20|\x20medium\x20|\x20high\x0a\x20\x20\x20\x20-\x20benefits:\x20Array\x20of\x20benefits\x0a\x20\x20\x20\x20-\x20actionableSteps:\x20Step-by-step\x20refactoring\x20instructions\x0a\x0aOUTPUT\x20MODES:\x0a-\x20summary:\x20High-level\x20overview\x20only\x20(duplication\x20%,\x20top\x205\x20clones)\x0a-\x20detailed:\x20Full\x20clone\x20details\x20with\x20code\x20snippets\x20(default)\x0a-\x20recommendations:\x20Refactoring\x20priorities\x20with\x20actionable\x20steps\x0a\x0aDETECTION\x20ALGORITHM:\x0a-\x20Uses\x20AST\x20(Abstract\x20Syntax\x20Tree)\x20parsing\x20via\x20Babel\x0a-\x20Token-based\x20similarity\x20with\x20normalization\x0a-\x20Longest\x20Common\x20Subsequence\x20(LCS)\x20algorithm\x20for\x20similarity\x0a-\x20Configurable\x20sensitivity\x20and\x20thresholds\x0a\x0aEXAMPLES:\x0a\x0aFind\x20all\x20clones\x20in\x20project:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20/>\x0a[/tool]\x0a\x0aHigh-priority\x20refactoring\x20opportunities\x20only:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src\x22\x20priority-filter=\x22high\x22\x20max-results=\x2210\x22\x20/>\x0a[/tool]\x0a\x0aMore\x20sensitive\x20detection\x20(finds\x20smaller\x20clones):\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20min-tokens=\x2230\x22\x20similarity-threshold=\x220.80\x22\x20/>\x0a[/tool]\x0a\x0aQuick\x20overview:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20output-mode=\x22summary\x22\x20/>\x0a[/tool]\x0a\x0aLIMITATIONS:\x0a-\x20Analyzes\x20JavaScript/TypeScript\x20family\x20only\x0a-\x20Performance\x20depends\x20on\x20codebase\x20size\x20(500ms\x20per\x20file\x20typical)\x0a-\x20Maximum\x20file\x20size:\x20'+Math['round'](this[_0x4483db(0x14d)]/0x400)+'KB\x20per\x20file\x0a-\x20Analysis\x20timeout:\x20'+this[_0x4483db(0x134)]/0x3e8+_0x4483db(0x106);}[a0_0x5bba4a(0x12e)](_0x20893e){const _0x2fa7d1=a0_0x5bba4a;try{const _0x29c2df={},_0x244c2c=[];this['logger']?.['debug']('CloneDetection\x20tool\x20parsing\x20parameters',{'contentLength':_0x20893e['length'],'contentPreview':_0x20893e[_0x2fa7d1(0x162)](0x0,0xc8)});const _0x444550=/<detect-clones\s+(.+?)\/>/g;let _0x1763c3;while((_0x1763c3=_0x444550['exec'](_0x20893e))!==null){const _0x4ec33e=_0x1763c3[0x1]['trim'](),_0x319c51=new a0_0x2e2d16(),_0x4ef45d=_0x319c51['parseAttributes'](_0x4ec33e),_0x3ff91a={'type':'detect-clones',..._0x4ef45d};_0x3ff91a['min-tokens']&&(_0x3ff91a[_0x2fa7d1(0x15f)]=parseInt(_0x3ff91a['min-tokens'],0xa),delete _0x3ff91a[_0x2fa7d1(0x108)]),_0x3ff91a['min-lines']&&(_0x3ff91a[_0x2fa7d1(0x11c)]=parseInt(_0x3ff91a['min-lines'],0xa),delete _0x3ff91a[_0x2fa7d1(0x157)]),_0x3ff91a['similarity-threshold']&&(_0x3ff91a[_0x2fa7d1(0x146)]=parseFloat(_0x3ff91a['similarity-threshold']),delete _0x3ff91a[_0x2fa7d1(0x13e)]),_0x3ff91a['priority-filter']&&(_0x3ff91a['priorityFilter']=_0x3ff91a[_0x2fa7d1(0x15c)],delete _0x3ff91a[_0x2fa7d1(0x15c)]),_0x3ff91a[_0x2fa7d1(0x119)]&&(_0x3ff91a[_0x2fa7d1(0x14e)]=parseInt(_0x3ff91a['max-results'],0xa),delete _0x3ff91a['max-results']),_0x3ff91a['output-mode']&&(_0x3ff91a[_0x2fa7d1(0x15a)]=_0x3ff91a['output-mode'],delete _0x3ff91a[_0x2fa7d1(0x10c)]),_0x244c2c['push'](_0x3ff91a);}return _0x29c2df['actions']=_0x244c2c,_0x29c2df['rawContent']=_0x20893e['trim'](),this['logger']?.[_0x2fa7d1(0x117)](_0x2fa7d1(0x114),{'totalActions':_0x244c2c[_0x2fa7d1(0x159)],'actionTypes':_0x244c2c['map'](_0x56162a=>_0x56162a[_0x2fa7d1(0x107)])}),_0x29c2df;}catch(_0x303543){throw new Error(_0x2fa7d1(0x154)+_0x303543['message']);}}['getRequiredParameters'](){return['actions'];}['customValidateParameters'](_0x362414){const _0x5baba7=a0_0x5bba4a,_0x4678db=[];if(!_0x362414['actions']||!Array[_0x5baba7(0x110)](_0x362414['actions'])||_0x362414[_0x5baba7(0xfd)][_0x5baba7(0x159)]===0x0)_0x4678db['push']('At\x20least\x20one\x20action\x20is\x20required');else for(const [_0x46faa5,_0x40861a]of _0x362414[_0x5baba7(0xfd)][_0x5baba7(0x15e)]()){if(!_0x40861a[_0x5baba7(0x107)]){_0x4678db[_0x5baba7(0x16a)]('Action\x20'+(_0x46faa5+0x1)+':\x20type\x20is\x20required');continue;}_0x40861a['type']===_0x5baba7(0x10a)?(!_0x40861a[_0x5baba7(0x13b)]&&_0x4678db['push'](_0x5baba7(0x150)+(_0x46faa5+0x1)+_0x5baba7(0x143)),_0x40861a['minTokens']!==undefined&&(_0x40861a[_0x5baba7(0x15f)]<0xa||_0x40861a[_0x5baba7(0x15f)]>0x3e8)&&_0x4678db[_0x5baba7(0x16a)]('Action\x20'+(_0x46faa5+0x1)+':\x20min-tokens\x20must\x20be\x20between\x2010\x20and\x201000'),_0x40861a['minLines']!==undefined&&(_0x40861a['minLines']<0x1||_0x40861a[_0x5baba7(0x11c)]>0x64)&&_0x4678db['push']('Action\x20'+(_0x46faa5+0x1)+':\x20min-lines\x20must\x20be\x20between\x201\x20and\x20100'),_0x40861a['similarityThreshold']!==undefined&&(_0x40861a['similarityThreshold']<0.5||_0x40861a['similarityThreshold']>0x1)&&_0x4678db['push']('Action\x20'+(_0x46faa5+0x1)+_0x5baba7(0x11b)),_0x40861a[_0x5baba7(0x10b)]&&![_0x5baba7(0x136),_0x5baba7(0x148),'low']['includes'](_0x40861a['priorityFilter'])&&_0x4678db[_0x5baba7(0x16a)](_0x5baba7(0x150)+(_0x46faa5+0x1)+':\x20priority-filter\x20must\x20be\x20high,\x20medium,\x20or\x20low'),_0x40861a[_0x5baba7(0x15a)]&&![_0x5baba7(0x105),'detailed',_0x5baba7(0x156)][_0x5baba7(0x127)](_0x40861a[_0x5baba7(0x15a)])&&_0x4678db[_0x5baba7(0x16a)]('Action\x20'+(_0x46faa5+0x1)+_0x5baba7(0x125))):_0x4678db[_0x5baba7(0x16a)]('Action\x20'+(_0x46faa5+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x40861a[_0x5baba7(0x107)]);}return{'valid':_0x4678db[_0x5baba7(0x159)]===0x0,'errors':_0x4678db};}async[a0_0x5bba4a(0x137)](_0x388ccc,_0xd0d1d0){const _0x462f0a=a0_0x5bba4a,{actions:_0x35c7bc}=_0x388ccc,{projectDir:_0x1de7e9,agentId:_0x28e4a7,directoryAccess:_0xa53967}=_0xd0d1d0,_0xfeb31c=_0xa53967||this['directoryAccessManager'][_0x462f0a(0x133)]({'workingDirectory':_0x1de7e9||process[_0x462f0a(0x139)](),'writeEnabledDirectories':[],'readOnlyDirectories':[_0x1de7e9||process['cwd']()],'restrictToProject':!![]}),_0x4ff4dc=this['directoryAccessManager']['getWorkingDirectory'](_0xfeb31c),_0x1192aa=[];for(const _0x290481 of _0x35c7bc){try{if(_0x290481[_0x462f0a(0x107)]===_0x462f0a(0x10a)){const _0x48751c=await this[_0x462f0a(0x11a)](_0x290481['directory'],_0x4ff4dc,_0xfeb31c,_0x290481);_0x1192aa[_0x462f0a(0x16a)](_0x48751c);}else throw new Error(_0x462f0a(0x138)+_0x290481['type']);}catch(_0x1842ec){this[_0x462f0a(0x113)]?.[_0x462f0a(0x124)]('Clone\x20detection\x20action\x20failed',{'action':_0x290481['type'],'error':_0x1842ec[_0x462f0a(0x168)]}),_0x1192aa[_0x462f0a(0x16a)]({'directory':_0x290481['directory'],'error':_0x1842ec['message'],'success':![]});}}return{'success':!![],'results':_0x1192aa,'toolUsed':_0x462f0a(0x166)};}async[a0_0x5bba4a(0x11a)](_0x3f4ada,_0x376593,_0x291780,_0x55b155={}){const _0x5e3127=a0_0x5bba4a,_0x459aed=a0_0xbf145c['isAbsolute'](_0x3f4ada)?a0_0xbf145c[_0x5e3127(0x130)](_0x3f4ada):a0_0xbf145c[_0x5e3127(0x100)](_0x376593,_0x3f4ada),_0x2b3694=this[_0x5e3127(0x140)][_0x5e3127(0x158)](_0x459aed,_0x291780);if(!_0x2b3694['allowed'])throw new Error('Read\x20access\x20denied:\x20'+_0x2b3694[_0x5e3127(0x12a)]);try{const _0x1f826e=await this[_0x5e3127(0x11d)](),_0x2f0b49={'minTokens':_0x55b155['minTokens']||this[_0x5e3127(0x104)],'minLines':_0x55b155[_0x5e3127(0x11c)]||this['defaultMinLines'],'similarityThreshold':_0x55b155[_0x5e3127(0x146)]||this[_0x5e3127(0x14c)],'include':['**/*.js','**/*.jsx','**/*.mjs','**/*.cjs','**/*.ts',_0x5e3127(0x103),_0x5e3127(0x167)],'exclude':['**/node_modules/**',_0x5e3127(0x126),_0x5e3127(0x15b),'**/*.test.js','**/*.spec.js'],'maxFileSize':this[_0x5e3127(0x14d)]};this['logger']?.['info'](_0x5e3127(0x11f),{'directory':_0x459aed,'config':_0x2f0b49});const _0x33ddc5=await _0x1f826e[_0x5e3127(0x118)](_0x459aed,null);if(!_0x33ddc5)return{'directory':this['directoryAccessManager'][_0x5e3127(0x149)](_0x459aed,_0x291780),'fullPath':_0x459aed,'success':!![],'summary':{'totalFiles':0x0,'totalClones':0x0,'duplicationPercentage':0x0},'clones':[],'message':'No\x20files\x20found\x20or\x20no\x20clones\x20detected'};let _0x41c7e4=_0x33ddc5[_0x5e3127(0x116)];_0x55b155['priorityFilter']&&(_0x41c7e4=_0x41c7e4['filter'](_0x51e48b=>_0x51e48b['refactoringAdvice']['priority']===_0x55b155[_0x5e3127(0x10b)]));_0x55b155['maxResults']&&(_0x41c7e4=_0x41c7e4['slice'](0x0,_0x55b155[_0x5e3127(0x14e)]));const _0x29c527=_0x55b155['outputMode']||'detailed';if(_0x29c527==='summary')return this['formatSummaryOutput'](_0x33ddc5,_0x41c7e4,_0x459aed,_0x291780);else return _0x29c527==='recommendations'?this['formatRecommendationsOutput'](_0x33ddc5,_0x41c7e4,_0x459aed,_0x291780):this['formatDetailedOutput'](_0x33ddc5,_0x41c7e4,_0x459aed,_0x291780);}catch(_0x3f2210){throw new Error(_0x5e3127(0x12f)+_0x3f4ada+':\x20'+_0x3f2210[_0x5e3127(0x168)]);}}[a0_0x5bba4a(0x129)](_0x4a3572,_0x13c976,_0x5cf3e5,_0x4fb3e0){const _0x505b74=a0_0x5bba4a;return{'directory':this['directoryAccessManager']['createRelativePath'](_0x5cf3e5,_0x4fb3e0),'fullPath':_0x5cf3e5,'success':!![],'outputMode':'summary','summary':{'totalFiles':_0x4a3572[_0x505b74(0x105)][_0x505b74(0x121)],'totalClones':_0x4a3572[_0x505b74(0x105)]['totalClones'],'duplicatedLines':_0x4a3572['summary']['totalDuplicatedLines'],'duplicationPercentage':_0x4a3572[_0x505b74(0x105)]['duplicationPercentage'],'priorityCounts':_0x4a3572[_0x505b74(0x105)]['priorityCounts'],'topClones':_0x13c976[_0x505b74(0x155)](0x0,0x5)['map'](_0x18cfa5=>({'id':_0x18cfa5['id'],'type':_0x18cfa5[_0x505b74(0x107)],'confidence':_0x18cfa5[_0x505b74(0x120)],'instances':_0x18cfa5[_0x505b74(0x169)][_0x505b74(0x128)],'lines':_0x18cfa5['metrics']['lineCount'],'priority':_0x18cfa5[_0x505b74(0x142)][_0x505b74(0x10f)],'strategy':_0x18cfa5['refactoringAdvice'][_0x505b74(0x15d)],'locations':_0x18cfa5[_0x505b74(0x153)]['map'](_0x1212a8=>_0x1212a8['file']+':'+_0x1212a8[_0x505b74(0xff)]+'-'+_0x1212a8['endLine'])}))}};}[a0_0x5bba4a(0x111)](_0x4ad265,_0x1936e1,_0x160c32,_0x4ec5f4){const _0x2478a5=a0_0x5bba4a;return{'directory':this[_0x2478a5(0x140)]['createRelativePath'](_0x160c32,_0x4ec5f4),'fullPath':_0x160c32,'success':!![],'outputMode':_0x2478a5(0x156),'summary':{'totalFiles':_0x4ad265['summary'][_0x2478a5(0x121)],'totalClones':_0x4ad265[_0x2478a5(0x105)]['totalClones'],'duplicationPercentage':_0x4ad265['summary']['duplicationPercentage']},'recommendations':_0x1936e1[_0x2478a5(0x141)](_0x564ca0=>({'id':_0x564ca0['id'],'priority':_0x564ca0[_0x2478a5(0x142)]['priority'],'strategy':_0x564ca0['refactoringAdvice'][_0x2478a5(0x15d)],'suggestedName':_0x564ca0[_0x2478a5(0x142)][_0x2478a5(0x147)],'reasoning':_0x564ca0[_0x2478a5(0x142)][_0x2478a5(0x144)],'effort':_0x564ca0['refactoringAdvice'][_0x2478a5(0x13a)],'benefits':_0x564ca0['refactoringAdvice'][_0x2478a5(0x13f)],'steps':_0x564ca0[_0x2478a5(0x142)]['actionableSteps'],'metrics':{'instances':_0x564ca0['metrics'][_0x2478a5(0x128)],'lines':_0x564ca0['metrics']['lineCount'],'files':_0x564ca0[_0x2478a5(0x169)][_0x2478a5(0x13c)],'impact':_0x564ca0[_0x2478a5(0x169)][_0x2478a5(0x161)]},'locations':_0x564ca0[_0x2478a5(0x153)][_0x2478a5(0x141)](_0x313e1f=>({'file':_0x313e1f['file'],'startLine':_0x313e1f[_0x2478a5(0xff)],'endLine':_0x313e1f[_0x2478a5(0x152)]}))}))};}['formatDetailedOutput'](_0x14e2c7,_0x1919cf,_0x5573ed,_0x3d3996){const _0xf4c3d0=a0_0x5bba4a;return{'directory':this[_0xf4c3d0(0x140)]['createRelativePath'](_0x5573ed,_0x3d3996),'fullPath':_0x5573ed,'success':!![],'outputMode':'detailed','summary':_0x14e2c7['summary'],'clones':_0x1919cf[_0xf4c3d0(0x141)](_0x211a7a=>({..._0x211a7a,'instances':_0x211a7a[_0xf4c3d0(0x153)][_0xf4c3d0(0x141)](_0x4a9c56=>({..._0x4a9c56,'code':_0x4a9c56['code']['split']('\x0a')['slice'](0x0,0xa)[_0xf4c3d0(0x14f)]('\x0a')+(_0x4a9c56['code'][_0xf4c3d0(0x115)]('\x0a')['length']>0xa?_0xf4c3d0(0x160):'')}))}))};}async[a0_0x5bba4a(0x11d)](){const _0x47e896=a0_0x5bba4a;if(!this['cloneDetector']){const {CloneDetectionTool:_0x374c11}=await import(_0x47e896(0x132)),_0x53ee20={'minTokens':this[_0x47e896(0x104)],'minLines':this[_0x47e896(0x122)],'similarityThreshold':this['defaultSimilarityThreshold'],'include':['**/*.js','**/*.jsx','**/*.ts','**/*.tsx','**/*.vue'],'exclude':[_0x47e896(0x164),_0x47e896(0x126),_0x47e896(0x15b)],'maxFileSize':this['maxFileSize']};this['cloneDetector']=new _0x374c11(_0x53ee20),this[_0x47e896(0x113)]?.['debug'](_0x47e896(0x14a),{'config':_0x53ee20});}return this['cloneDetector'];}['getSupportedActions'](){const _0x448d9d=a0_0x5bba4a;return[_0x448d9d(0x10a)];}[a0_0x5bba4a(0x14b)](){const _0x343624=a0_0x5bba4a;return{'type':_0x343624(0x131),'properties':{'actions':{'type':_0x343624(0x135),'minItems':0x1,'items':{'type':'object','properties':{'type':{'type':'string','enum':this[_0x343624(0x102)]()},'directory':{'type':'string'},'minTokens':{'type':'number','minimum':0xa,'maximum':0x3e8},'minLines':{'type':'number','minimum':0x1,'maximum':0x64},'similarityThreshold':{'type':_0x343624(0x123),'minimum':0.5,'maximum':0x1},'priorityFilter':{'type':_0x343624(0x12d),'enum':[_0x343624(0x136),_0x343624(0x148),_0x343624(0x13d)]},'maxResults':{'type':'number','minimum':0x1},'outputMode':{'type':'string','enum':['summary','detailed','recommendations']}},'required':[_0x343624(0x107),_0x343624(0x13b)]}}},'required':['actions']};}}export default CloneDetectionTool;
|