@loxia-labs/loxia-autopilot-one 1.0.3 → 1.0.4
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/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 +2 -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
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x43050a=a0_0x33f1;(function(_0x255cfa,_0x230a73){const _0x1d87f7=a0_0x33f1,_0x1c6f76=_0x255cfa();while(!![]){try{const _0x142280=-parseInt(_0x1d87f7(0x247))/0x1+-parseInt(_0x1d87f7(0x249))/0x2*(parseInt(_0x1d87f7(0x24b))/0x3)+parseInt(_0x1d87f7(0x237))/0x4*(parseInt(_0x1d87f7(0x1f2))/0x5)+-parseInt(_0x1d87f7(0x1f1))/0x6*(-parseInt(_0x1d87f7(0x241))/0x7)+-parseInt(_0x1d87f7(0x1fb))/0x8+-parseInt(_0x1d87f7(0x232))/0x9+-parseInt(_0x1d87f7(0x228))/0xa*(-parseInt(_0x1d87f7(0x203))/0xb);if(_0x142280===_0x230a73)break;else _0x1c6f76['push'](_0x1c6f76['shift']());}catch(_0x5041ff){_0x1c6f76['push'](_0x1c6f76['shift']());}}}(a0_0x532f,0x38c5c));function a0_0x532f(){const _0x54c506=['AgfUzgXLt3bLCMf0Aw9UvgLTzw91Da','zw1PDa','BM93','Aw5MBW','BMv3zxn0t3bLCMf0Aw9U','Dg9VBeLK','t3bLCMf0Aw9UihrPBwvKig91DcbHzNrLCIa','z2v0u3rHDgLZDgLJCW','B3bLCMf0Aw9UsgLZDg9YEq','B3bLCMf0Aw9UoNn0yxj0zwq','yNLtDgf0Dxm','ndmXote0mgfxAwzHAq','Bwf4uMv0CMLLCW','Dg9tDhjPBMC','qxn5BMmGB3bLCMf0Aw9Uihn0yxj0zwq6ia','B2XKzxn0t3bLCMf0Aw9U','CMfUzg9T','rKfjteve','t3bLCMf0Aw9UihrPBwvKig91DdOG','t3bLCMf0Aw9Uihn0yxj0zwq6ia','ywDLBNrjza','mZCZndiZnu1HEhLjDa','y2XLyw51CeLUDgvYDMfS','t3bLCMf0Aw9UignHBMnLBgXLza','z2v0t3bLCMf0Aw9UsgLZDg9YEq','C3rHCNrLzef0','ne16y1L5wq','Dg9ju09tDhjPBMC','B3bLCMf0Aw9UoNrPBwvVDxq','q2fUBM90ignHBMnLBcbJB21WBgv0zwqVzMfPBgvKig9WzxjHDgLVBJOG','qxr0zw1WDgvKihrVihvWzgf0zsb1BMTUB3DUig9WzxjHDgLVBJOG','yNLuB29S','D2fYBG','y29TCgXLDgvKqxq','zgvMyxvSDfrPBwvVDxq','C2v0t3bLCMf0Aw9UvgLTzw91Da','mtrmrfjMy08','BgLTAxq','zMLSDgvY','ChvZAa','DgLTzw91Da','C3rVCe1VBML0B3jPBMC','mZu1mtG4uwvVrw9I','B3bLCMf0Aw9UoMnHBMnLBgXLza','nda0ndCWANfTCeDT','t3bLCMf0Aw9Uihn0yxr1CYb1CgrHDgvKoIa','nNLZDgL2ua','DgLTzw91DeHHBMrSzq','nJiXmZmWD25JCenc','mJaZmJu1CM9iuhLN','y2fSy3vSyxrLrxHLy3v0Aw9UvgLTzq','yMLUza','CMvZDwX0','ignVBxbSzxrLzcbVCgvYyxrPB25Z','z2v0','DMfSDwvZ','yNLbz2vUDa','t3bLCMf0Aw9UignVBxbSzxrLzdOG','mta5mteYmfLAvffMBa','zxjYB3i','ChjVz3jLC3m','BgvUz3rO','q09nueXfveve','y3jLyxrLzef0','AxntAhv0DgLUz0rVD24','CMv0CNLdB3vUDa','mZnICgLxtKO','AgfUzgXLt3bLCMf0Aw9UrMfPBgvK','zgvIDwC','twf4Aw11BsbYzxrYAwvZigv4y2vLzgvKigzVCIbVCgvYyxrPB246ia','y29UzMLN','DxbKyxrLt3bLCMf0Aw9U','y2XLyxjpCgvYyxrPB25uAw1LB3v0','z2vUzxjHDgvpCgvYyxrPB25jza','C3vIC3rY','B3bLCMf0Aw9UoMnVBxbSzxrLza','y2fUy2vSt3bLCMf0Aw9U','C2XPy2u','AgfUzgXLt3bLCMf0Aw9Uu3rHCNrLza','B3bLCMf0Aw9UCW','Bg9Nz2vY','C3rHDhvZ','u3LZDgvTihnODxrKB3DU','rvHfq1vusu5h','q0foq0vmteve','Bw9UAxrVCMLUz0LUDgvYDMfS','C3rHCNrnB25PDg9YAw5N','y2XLyw51Ce9WzxjHDgLVBG','AgfUzgXLt3bLCMf0Aw9Uq29TCgXLDgvK','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rHCNrLza','CMv0CNLpCgvYyxrPB24','z2v0vgLTzq'];a0_0x532f=function(){return _0x54c506;};return a0_0x532f();}import a0_0x357292 from'events';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x33f1(_0x3905b7,_0x3ca26b){_0x3905b7=_0x3905b7-0x1f0;const _0x532f07=a0_0x532f();let _0x33f1f8=_0x532f07[_0x3905b7];if(a0_0x33f1['lifagL']===undefined){var _0x1e53fd=function(_0x27a077){const _0x350ccb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x357292='',_0x1b61be='';for(let _0x201868=0x0,_0x5aa482,_0x486746,_0x3d01c5=0x0;_0x486746=_0x27a077['charAt'](_0x3d01c5++);~_0x486746&&(_0x5aa482=_0x201868%0x4?_0x5aa482*0x40+_0x486746:_0x486746,_0x201868++%0x4)?_0x357292+=String['fromCharCode'](0xff&_0x5aa482>>(-0x2*_0x201868&0x6)):0x0){_0x486746=_0x350ccb['indexOf'](_0x486746);}for(let _0x526019=0x0,_0x3fc7d0=_0x357292['length'];_0x526019<_0x3fc7d0;_0x526019++){_0x1b61be+='%'+('00'+_0x357292['charCodeAt'](_0x526019)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1b61be);};a0_0x33f1['jNmgub']=_0x1e53fd,a0_0x33f1['ISxPoY']={},a0_0x33f1['lifagL']=!![];}const _0x2e9c16=_0x532f07[0x0],_0xe76ce3=_0x3905b7+_0x2e9c16,_0x4cb498=a0_0x33f1['ISxPoY'][_0xe76ce3];return!_0x4cb498?(_0x33f1f8=a0_0x33f1['jNmgub'](_0x33f1f8),a0_0x33f1['ISxPoY'][_0xe76ce3]=_0x33f1f8):_0x33f1f8=_0x4cb498,_0x33f1f8;}class AsyncToolManager extends a0_0x357292{constructor(_0x1b61be={},_0x201868=null){const _0x42c7d1=a0_0x33f1;super(),this[_0x42c7d1(0x207)]=_0x1b61be,this['logger']=_0x201868,this[_0x42c7d1(0x210)]=new Map(),this[_0x42c7d1(0x225)]=[],this['maxConcurrentOperations']=_0x1b61be['maxConcurrentOperations']||0xa,this[_0x42c7d1(0x23f)]=_0x1b61be[_0x42c7d1(0x23f)]||0x493e0,this[_0x42c7d1(0x233)]=_0x1b61be['cleanupInterval']||0xea60,this['maxHistorySize']=_0x1b61be['maxHistorySize']||0x3e8,this['monitoringInterval']=null,this[_0x42c7d1(0x201)]=![],this['startMonitoring'](),this['on']('operation:started',this['handleOperationStarted']['bind'](this)),this['on']('operation:completed',this[_0x42c7d1(0x219)][_0x42c7d1(0x1f4)](this)),this['on']('operation:failed',this[_0x42c7d1(0x204)]['bind'](this)),this['on']('operation:timeout',this[_0x42c7d1(0x21d)][_0x42c7d1(0x1f4)](this));}async['startOperation'](_0x5aa482,_0x486746,_0x3d01c5,_0x526019={}){const _0x203c58=a0_0x33f1;if(this['operations']['size']>=this['maxConcurrentOperations'])throw new Error('Maximum\x20concurrent\x20operations\x20reached\x20('+this['maxConcurrentOperations']+')');const _0x3fc7d0=this[_0x203c58(0x20a)](),_0x3a20a7={'id':_0x3fc7d0,'toolId':_0x5aa482,'agentId':_0x486746,'parameters':_0x3d01c5,'context':_0x526019,'status':TOOL_STATUS['PENDING'],'createdAt':new Date()['toISOString'](),'startedAt':null,'completedAt':null,'timeout':_0x526019[_0x203c58(0x245)]||this[_0x203c58(0x23f)],'result':null,'error':null,'progress':null,'retryCount':0x0,'maxRetries':_0x526019['maxRetries']||0x0};return this['operations']['set'](_0x3fc7d0,_0x3a20a7),this['logger']?.[_0x203c58(0x220)](_0x203c58(0x22b)+_0x3fc7d0,{'toolId':_0x5aa482,'agentId':_0x486746,'parametersCount':Object['keys'](_0x3d01c5)[_0x203c58(0x1fe)],'timeout':_0x3a20a7['timeout']}),this[_0x203c58(0x240)](_0x3fc7d0),this[_0x203c58(0x21e)](_0x203c58(0x226),_0x3a20a7),_0x3fc7d0;}[a0_0x43050a(0x208)](_0x4de540,_0x1ede1b,_0x423c6f={}){const _0x59911b=a0_0x43050a,_0x7647f2=this['operations'][_0x59911b(0x1f7)](_0x4de540);if(!_0x7647f2)return this['logger']?.[_0x59911b(0x23d)](_0x59911b(0x23b)+_0x4de540),![];const _0xb91183=_0x7647f2[_0x59911b(0x212)];_0x7647f2[_0x59911b(0x212)]=_0x1ede1b;_0x1ede1b===TOOL_STATUS[_0x59911b(0x214)]&&!_0x7647f2[_0x59911b(0x236)]&&(_0x7647f2['startedAt']=new Date()[_0x59911b(0x238)]());(_0x1ede1b===TOOL_STATUS[_0x59911b(0x1ff)]||_0x1ede1b===TOOL_STATUS['FAILED'])&&(_0x7647f2[_0x59911b(0x23e)]=new Date()['toISOString']());if(_0x423c6f[_0x59911b(0x1f5)]!==undefined)_0x7647f2[_0x59911b(0x1f5)]=_0x423c6f['result'];if(_0x423c6f[_0x59911b(0x1fc)]!==undefined)_0x7647f2[_0x59911b(0x1fc)]=_0x423c6f['error'];if(_0x423c6f[_0x59911b(0x1fd)]!==undefined)_0x7647f2['progress']=_0x423c6f[_0x59911b(0x1fd)];this['logger']?.[_0x59911b(0x205)](_0x59911b(0x24a)+_0x4de540,{'previousStatus':_0xb91183,'newStatus':_0x1ede1b,'hasResult':!!_0x423c6f[_0x59911b(0x1f5)],'hasError':!!_0x423c6f[_0x59911b(0x1fc)],'progress':_0x423c6f['progress']});switch(_0x1ede1b){case TOOL_STATUS['COMPLETED']:this[_0x59911b(0x21e)](_0x59911b(0x20c),_0x7647f2);break;case TOOL_STATUS[_0x59911b(0x22e)]:this['emit']('operation:failed',_0x7647f2);break;case TOOL_STATUS[_0x59911b(0x214)]:this['emit']('operation:progress',_0x7647f2);break;}return!![];}['getOperation'](_0x49dae3){const _0x57ccd4=a0_0x43050a,_0x3b0d01=this[_0x57ccd4(0x210)][_0x57ccd4(0x1f7)](_0x49dae3);if(!_0x3b0d01)return null;return{'id':_0x3b0d01['id'],'toolId':_0x3b0d01['toolId'],'agentId':_0x3b0d01[_0x57ccd4(0x231)],'status':_0x3b0d01[_0x57ccd4(0x212)],'createdAt':_0x3b0d01['createdAt'],'startedAt':_0x3b0d01[_0x57ccd4(0x236)],'completedAt':_0x3b0d01['completedAt'],'result':_0x3b0d01[_0x57ccd4(0x1f5)],'error':_0x3b0d01[_0x57ccd4(0x1fc)],'progress':_0x3b0d01[_0x57ccd4(0x1fd)],'retryCount':_0x3b0d01['retryCount'],'executionTime':this[_0x57ccd4(0x1f3)](_0x3b0d01)};}['getAgentOperations'](_0x5e50fd){const _0x5675ce=a0_0x43050a,_0x2dc182=[];for(const _0x1cc194 of this[_0x5675ce(0x210)][_0x5675ce(0x1f8)]()){_0x1cc194['agentId']===_0x5e50fd&&_0x2dc182[_0x5675ce(0x244)](this['getOperation'](_0x1cc194['id']));}return _0x2dc182['sort']((_0x1d1924,_0xe41a63)=>new Date(_0xe41a63['createdAt'])-new Date(_0x1d1924[_0x5675ce(0x200)]));}async['cancelOperation'](_0x3878d6,_0x1a0b25=a0_0x43050a(0x234)){const _0x587846=a0_0x43050a,_0x4edd7c=this[_0x587846(0x210)]['get'](_0x3878d6);if(!_0x4edd7c)return![];if(_0x4edd7c[_0x587846(0x212)]===TOOL_STATUS['COMPLETED']||_0x4edd7c['status']===TOOL_STATUS[_0x587846(0x22e)])return this['logger']?.[_0x587846(0x23d)](_0x587846(0x23a)+_0x3878d6),![];return this[_0x587846(0x208)](_0x3878d6,TOOL_STATUS[_0x587846(0x215)],{'error':_0x1a0b25}),this['clearOperationTimeout'](_0x3878d6),this[_0x587846(0x21e)](_0x587846(0x248),_0x4edd7c),await this[_0x587846(0x218)](_0x3878d6),this[_0x587846(0x211)]?.[_0x587846(0x220)]('Operation\x20cancelled:\x20'+_0x3878d6,{'reason':_0x1a0b25}),!![];}async['retryOperation'](_0x292b63){const _0x5416b3=a0_0x43050a,_0x2f1cd6=this['operations']['get'](_0x292b63);if(!_0x2f1cd6)return![];if(_0x2f1cd6[_0x5416b3(0x212)]!==TOOL_STATUS['FAILED'])return this['logger']?.['warn']('Cannot\x20retry\x20non-failed\x20operation:\x20'+_0x292b63),![];if(_0x2f1cd6[_0x5416b3(0x202)]>=_0x2f1cd6[_0x5416b3(0x229)])return this['logger']?.['warn'](_0x5416b3(0x206)+_0x292b63),![];return _0x2f1cd6['retryCount']++,_0x2f1cd6['status']=TOOL_STATUS['PENDING'],_0x2f1cd6[_0x5416b3(0x236)]=null,_0x2f1cd6[_0x5416b3(0x23e)]=null,_0x2f1cd6['error']=null,_0x2f1cd6[_0x5416b3(0x1f5)]=null,this['setOperationTimeout'](_0x292b63),this['logger']?.['info']('Operation\x20retry\x20initiated:\x20'+_0x292b63,{'retryCount':_0x2f1cd6[_0x5416b3(0x202)],'maxRetries':_0x2f1cd6[_0x5416b3(0x229)]}),this[_0x5416b3(0x21e)]('operation:retry',_0x2f1cd6),!![];}[a0_0x43050a(0x224)](){const _0x33c65d=a0_0x43050a,_0x172dd6={'total':this[_0x33c65d(0x210)]['size'],'byStatus':{},'byTool':{},'byAgent':{},'averageExecutionTime':0x0,'oldestOperation':null,'newestOperation':null};let _0x3a28bc=0x0,_0x1267fe=0x0,_0x201716=null,_0x284cdb=null;for(const _0x2b45bf of this['operations'][_0x33c65d(0x1f8)]()){_0x172dd6['byStatus'][_0x2b45bf[_0x33c65d(0x212)]]=(_0x172dd6[_0x33c65d(0x227)][_0x2b45bf[_0x33c65d(0x212)]]||0x0)+0x1,_0x172dd6['byTool'][_0x2b45bf[_0x33c65d(0x222)]]=(_0x172dd6[_0x33c65d(0x23c)][_0x2b45bf['toolId']]||0x0)+0x1,_0x172dd6[_0x33c65d(0x1f9)][_0x2b45bf[_0x33c65d(0x231)]]=(_0x172dd6[_0x33c65d(0x1f9)][_0x2b45bf[_0x33c65d(0x231)]]||0x0)+0x1;const _0x2276c5=this[_0x33c65d(0x1f3)](_0x2b45bf);_0x2276c5>0x0&&(_0x3a28bc+=_0x2276c5,_0x1267fe++);const _0x1f44da=new Date(_0x2b45bf['createdAt'])['getTime']();(!_0x201716||_0x1f44da<_0x201716)&&(_0x201716=_0x1f44da,_0x172dd6[_0x33c65d(0x22c)]=_0x2b45bf['id']),(!_0x284cdb||_0x1f44da>_0x284cdb)&&(_0x284cdb=_0x1f44da,_0x172dd6[_0x33c65d(0x221)]=_0x2b45bf['id']);}return _0x172dd6['averageExecutionTime']=_0x1267fe>0x0?Math['round'](_0x3a28bc/_0x1267fe):0x0,_0x172dd6;}async['cleanupCompletedOperations'](_0x141fb4=0x36ee80){const _0x3c5686=a0_0x43050a,_0x5d9c4f=Date['now']()-_0x141fb4,_0x476178=[];for(const _0x24bb0d of this[_0x3c5686(0x210)][_0x3c5686(0x1f8)]()){(_0x24bb0d['status']===TOOL_STATUS[_0x3c5686(0x1ff)]||_0x24bb0d['status']===TOOL_STATUS['FAILED']||_0x24bb0d['status']===TOOL_STATUS['CANCELLED'])&&new Date(_0x24bb0d[_0x3c5686(0x23e)])[_0x3c5686(0x21c)]()<_0x5d9c4f&&_0x476178['push'](_0x24bb0d['id']);}for(const _0x229e37 of _0x476178){await this['cleanupOperation'](_0x229e37);}return this[_0x3c5686(0x211)]?.[_0x3c5686(0x205)]('Cleaned\x20up\x20'+_0x476178['length']+_0x3c5686(0x1f6)),_0x476178[_0x3c5686(0x1fe)];}[a0_0x43050a(0x217)](){const _0x585640=a0_0x43050a;this['monitoringInterval']&&clearInterval(this['monitoringInterval']),this['monitoringInterval']=setInterval(()=>{this['checkOperationTimeouts'](),this['cleanupCompletedOperations']();},this['cleanupInterval']),this['logger']?.[_0x585640(0x220)](_0x585640(0x21a));}[a0_0x43050a(0x246)](){const _0x15bcb9=a0_0x43050a;this['monitoringInterval']&&(clearInterval(this['monitoringInterval']),this[_0x15bcb9(0x216)]=null),this['logger']?.['info']('Async\x20tool\x20manager\x20monitoring\x20stopped');}['checkOperationTimeouts'](){const _0x532192=a0_0x43050a,_0x2a812d=Date[_0x532192(0x21f)]();for(const _0x1b8696 of this['operations']['values']()){if(_0x1b8696['status']===TOOL_STATUS['EXECUTING']||_0x1b8696['status']===TOOL_STATUS['PENDING']){const _0x14e707=new Date(_0x1b8696['createdAt'])['getTime']();_0x2a812d-_0x14e707>_0x1b8696[_0x532192(0x245)]&&this['handleOperationTimeout'](_0x1b8696);}}}[a0_0x43050a(0x240)](_0x5b3f19){const _0xb0f040=a0_0x43050a,_0x4f681d=this[_0xb0f040(0x210)]['get'](_0x5b3f19);if(!_0x4f681d)return;_0x4f681d['timeoutHandle']=setTimeout(()=>{this['handleOperationTimeout'](_0x4f681d);},_0x4f681d[_0xb0f040(0x245)]);}[a0_0x43050a(0x209)](_0x37b318){const _0x361822=a0_0x43050a,_0x25eb44=this['operations'][_0x361822(0x1f7)](_0x37b318);_0x25eb44&&_0x25eb44[_0x361822(0x1f0)]&&(clearTimeout(_0x25eb44['timeoutHandle']),delete _0x25eb44['timeoutHandle']);}[a0_0x43050a(0x20a)](){const _0x3a3d1c=a0_0x43050a,_0x16a408=Date['now']()[_0x3a3d1c(0x22a)](0x24),_0x9acdbe=Math[_0x3a3d1c(0x22d)]()['toString'](0x24)[_0x3a3d1c(0x20b)](0x2,0x9);return'op-'+_0x16a408+'-'+_0x9acdbe;}[a0_0x43050a(0x1f3)](_0xc5d50e){const _0x404e4d=a0_0x43050a;if(!_0xc5d50e['startedAt'])return 0x0;const _0x160d4d=_0xc5d50e[_0x404e4d(0x23e)]?new Date(_0xc5d50e['completedAt'])[_0x404e4d(0x21c)]():Date[_0x404e4d(0x21f)]();return _0x160d4d-new Date(_0xc5d50e[_0x404e4d(0x236)])['getTime']();}async['cleanupOperation'](_0x5d7c70){const _0x8a9a90=a0_0x43050a,_0x8aa98a=this['operations']['get'](_0x5d7c70);if(!_0x8aa98a)return;this['clearOperationTimeout'](_0x5d7c70),this[_0x8a9a90(0x225)]['push']({..._0x8aa98a,'executionTime':this['calculateExecutionTime'](_0x8aa98a),'cleanedUpAt':new Date()[_0x8a9a90(0x238)]()}),this['operationHistory'][_0x8a9a90(0x1fe)]>this['maxHistorySize']&&(this[_0x8a9a90(0x225)]=this[_0x8a9a90(0x225)][_0x8a9a90(0x20e)](-this['maxHistorySize'])),this[_0x8a9a90(0x210)]['delete'](_0x5d7c70),this['emit']('operation:cleanup',{'operationId':_0x5d7c70,'toolId':_0x8aa98a['toolId']});}[a0_0x43050a(0x20f)](_0x21ad0c){const _0x3ded2e=a0_0x43050a;this['logger']?.[_0x3ded2e(0x205)](_0x3ded2e(0x230)+_0x21ad0c['id'],{'toolId':_0x21ad0c['toolId'],'agentId':_0x21ad0c['agentId']});}async['handleOperationCompleted'](_0x30cc1d){const _0x8b9ec2=a0_0x43050a;this[_0x8b9ec2(0x211)]?.[_0x8b9ec2(0x220)](_0x8b9ec2(0x1fa)+_0x30cc1d['id'],{'toolId':_0x30cc1d[_0x8b9ec2(0x222)],'agentId':_0x30cc1d['agentId'],'executionTime':this[_0x8b9ec2(0x1f3)](_0x30cc1d)}),setTimeout(()=>this[_0x8b9ec2(0x218)](_0x30cc1d['id']),0x7530);}async[a0_0x43050a(0x204)](_0x1213a4){const _0x40e59b=a0_0x43050a;this[_0x40e59b(0x211)]?.['error']('Operation\x20failed:\x20'+_0x1213a4['id'],{'toolId':_0x1213a4[_0x40e59b(0x222)],'agentId':_0x1213a4['agentId'],'error':_0x1213a4['error'],'executionTime':this['calculateExecutionTime'](_0x1213a4),'retryCount':_0x1213a4[_0x40e59b(0x202)]}),_0x1213a4['retryCount']<_0x1213a4[_0x40e59b(0x229)]?setTimeout(()=>this[_0x40e59b(0x21b)](_0x1213a4['id']),0x1388):setTimeout(()=>this['cleanupOperation'](_0x1213a4['id']),0xea60);}async['handleOperationTimeout'](_0x8b84c0){const _0xe6d17a=a0_0x43050a;this['logger']?.[_0xe6d17a(0x23d)](_0xe6d17a(0x22f)+_0x8b84c0['id'],{'toolId':_0x8b84c0['toolId'],'agentId':_0x8b84c0[_0xe6d17a(0x231)],'timeout':_0x8b84c0['timeout'],'executionTime':this[_0xe6d17a(0x1f3)](_0x8b84c0)}),this[_0xe6d17a(0x208)](_0x8b84c0['id'],TOOL_STATUS['TIMEOUT'],{'error':_0xe6d17a(0x223)+_0x8b84c0['timeout']+'ms'}),this['emit'](_0xe6d17a(0x239),_0x8b84c0),setTimeout(()=>this[_0xe6d17a(0x218)](_0x8b84c0['id']),0x7530);}async['shutdown'](){const _0x1d2515=a0_0x43050a;this['isShuttingDown']=!![],this['logger']?.[_0x1d2515(0x220)]('Shutting down async tool manager...'),this[_0x1d2515(0x246)]();const _0x11d0b1=[];for(const _0x2f6a8f of this[_0x1d2515(0x210)]['values']()){(_0x2f6a8f[_0x1d2515(0x212)]===TOOL_STATUS['PENDING']||_0x2f6a8f['status']===TOOL_STATUS[_0x1d2515(0x214)])&&_0x11d0b1['push'](_0x2f6a8f['id']);}for(const _0x1c6ce5 of _0x11d0b1){await this[_0x1d2515(0x20d)](_0x1c6ce5,_0x1d2515(0x213));}this['operations']['clear'](),this[_0x1d2515(0x211)]?.[_0x1d2515(0x220)]('Async\x20tool\x20manager\x20shutdown\x20complete.\x20Cancelled\x20'+_0x11d0b1['length']+'\x20operations.');}[a0_0x43050a(0x235)](_0x2619ab={}){const _0x5d4257=a0_0x43050a;let _0x3e679f=[...this[_0x5d4257(0x225)]];return _0x2619ab['agentId']&&(_0x3e679f=_0x3e679f['filter'](_0x14559b=>_0x14559b[_0x5d4257(0x231)]===_0x2619ab[_0x5d4257(0x231)])),_0x2619ab[_0x5d4257(0x222)]&&(_0x3e679f=_0x3e679f[_0x5d4257(0x243)](_0x11660a=>_0x11660a['toolId']===_0x2619ab['toolId'])),_0x2619ab[_0x5d4257(0x212)]&&(_0x3e679f=_0x3e679f['filter'](_0x86a4e1=>_0x86a4e1['status']===_0x2619ab[_0x5d4257(0x212)])),_0x2619ab[_0x5d4257(0x242)]&&(_0x3e679f=_0x3e679f['slice'](-_0x2619ab[_0x5d4257(0x242)])),_0x3e679f['sort']((_0x4261cb,_0x2ab38e)=>new Date(_0x2ab38e['createdAt'])-new Date(_0x4261cb[_0x5d4257(0x200)]));}}export default AsyncToolManager;
|
|
1
|
+
const a0_0x2a463a=a0_0x22d3;(function(_0x4549ff,_0x5849a2){const _0x35757a=a0_0x22d3,_0x37e4cf=_0x4549ff();while(!![]){try{const _0x3d93a1=parseInt(_0x35757a(0x167))/0x1*(-parseInt(_0x35757a(0x148))/0x2)+parseInt(_0x35757a(0x132))/0x3*(parseInt(_0x35757a(0x136))/0x4)+-parseInt(_0x35757a(0x11c))/0x5+-parseInt(_0x35757a(0x131))/0x6+-parseInt(_0x35757a(0x157))/0x7+parseInt(_0x35757a(0x11d))/0x8+parseInt(_0x35757a(0x135))/0x9*(parseInt(_0x35757a(0x12c))/0xa);if(_0x3d93a1===_0x5849a2)break;else _0x37e4cf['push'](_0x37e4cf['shift']());}catch(_0x3caddb){_0x37e4cf['push'](_0x37e4cf['shift']());}}}(a0_0x4f19,0x62d20));import a0_0x30d4c2 from'events';function a0_0x4f19(){const _0x3e833e=['y2fUy2vSt3bLCMf0Aw9U','yNLtDgf0Dxm','zgvMyxvSDfrPBwvVDxq','Dg9ju09tDhjPBMC','y29UzMLN','A2v5CW','D2fYBG','B3bLCMf0Aw9UsgLZDg9YEq','C2XPy2u','C3rVCe1VBML0B3jPBMC','t3bLCMf0Aw9UihrPBwvKig91DdOG','twf4Aw11BsbJB25JDxjYzw50ig9WzxjHDgLVBNmGCMvHy2HLzcaO','AgfUzgXLt3bLCMf0Aw9UvgLTzw91Da','Bw9UAxrVCMLUz0LUDgvYDMfS','q2fUBM90ignHBMnLBcbJB21WBgv0zwqVzMfPBgvKig9WzxjHDgLVBJOG','q09nueXfveve','ywDLBNrjza','twf4Aw11BsbYzxrYAwvZigv4y2vLzgvKigzVCIbVCgvYyxrPB246ia','DgLTzw91DeHHBMrSzq','mJG0ndmYnunusMHoBW','mZK0nduZnNb0zMrjyq','B2XKzxn0t3bLCMf0Aw9U','z2v0','AgfUzgXLt3bLCMf0Aw9UrMfPBgvK','yNLuB29S','qxr0zw1WDgvKihrVihvWzgf0zsb1BMTUB3DUig9WzxjHDgLVBJOG','Bg9Nz2vY','C2v0','qxn5BMmGB3bLCMf0Aw9Uihn0yxj0zwq6ia','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','Dg9VBeLK','z2v0vgLTzq','B3bLCMf0Aw9UoNjLDhj5','AgfUzgXLt3bLCMf0Aw9Uq29TCgXLDgvK','B3bLCMf0Aw9UoNrPBwvVDxq','nZy5mg9uyM10AW','DxbKyxrLt3bLCMf0Aw9U','Bwf4uMv0CMLLCW','Aw5MBW','y2fSy3vSyxrLrxHLy3v0Aw9UvgLTzq','ndaZmtCWnLHIsev5rG','mZuXChvrr3zu','B3bLCMf0Aw9UCW','yxzLCMfNzuv4zwn1DgLVBLrPBwu','mtG2mZLjtw9Yrfq','mtGWmJrouKvQC3e','C3rHCNrnB25PDg9YAw5N','q0foq0vmteve','zxjYB3i','ChvZAa','t3bLCMf0Aw9UihjLDhj5igLUAxrPyxrLzdOG','z2v0qwDLBNrpCgvYyxrPB25Z','C3vIC3rY','C3rHCNrLzef0','rvHfq1vusu5h','z2vUzxjHDgvpCgvYyxrPB25jza','y2XLyxjpCgvYyxrPB25uAw1LB3v0','DgLTzw91Da','y2XLyw51Ce9WzxjHDgLVBG','ignVBxbSzxrLzcbVCgvYyxrPB25Z','ChjVz3jLC3m','y29TCgXLDgvKqxq','AxntAhv0DgLUz0rVD24','mNH2AMvpAa','BM93','BgLTAxq','t3bLCMf0Aw9UignVBxbSzxrLzdOG','q2fUBM90ihjLDhj5ig5VBI1MywLSzwqGB3bLCMf0Aw9UoIa','t3bLCMf0Aw9Uihn0yxr1CYb1CgrHDgvKoIa','DMfSDwvZ','B3bLCMf0Aw9UoNn0yxj0zwq','B3bLCMf0Aw9UoNbYB2DYzxnZ','CMvZDwX0','C2v0t3bLCMf0Aw9UvgLTzw91Da','t3bLCMf0Aw9Uihn0yxj0zwq6ia','zMLSDgvY','C29YDa','BgvUz3rO','mtmZnde3ow9uEhbpBW','zw1PDa','CMv0CNLdB3vUDa','CMv0CNLpCgvYyxrPB24','Bwf4sgLZDg9YEvnPEMu','AgfUzgXLt3bLCMf0Aw9Uu3rHCNrLza','y2XLyw51CenVBxbSzxrLze9WzxjHDgLVBNm','rKfjteve','C3rHDhvZ','CM91BMq','B3bLCMf0Aw9UoMnVBxbSzxrLza','y3jLyxrLzef0','Dg9tDhjPBMC','y2XLyw51CeLUDgvYDMfS','uevoreLorW','ig9WzxjHDgLVBNmU','nZC2nJG3BenZywrY'];a0_0x4f19=function(){return _0x3e833e;};return a0_0x4f19();}import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AsyncToolManager extends a0_0x30d4c2{constructor(_0x4ce289={},_0x57e89d=null){const _0x41b4f6=a0_0x22d3;super(),this[_0x41b4f6(0x16c)]=_0x4ce289,this[_0x41b4f6(0x123)]=_0x57e89d,this[_0x41b4f6(0x133)]=new Map(),this['operationHistory']=[],this['maxConcurrentOperations']=_0x4ce289[_0x41b4f6(0x126)]||0xa,this[_0x41b4f6(0x16a)]=_0x4ce289['defaultTimeout']||0x493e0,this['cleanupInterval']=_0x4ce289[_0x41b4f6(0x164)]||0xea60,this['maxHistorySize']=_0x4ce289[_0x41b4f6(0x15b)]||0x3e8,this['monitoringInterval']=null,this['isShuttingDown']=![],this[_0x41b4f6(0x137)](),this['on'](_0x41b4f6(0x14f),this[_0x41b4f6(0x15c)]['bind'](this)),this['on'](_0x41b4f6(0x161),this['handleOperationCompleted']['bind'](this)),this['on']('operation:failed',this['handleOperationFailed']['bind'](this)),this['on'](_0x41b4f6(0x12b),this[_0x41b4f6(0x174)]['bind'](this));}async['startOperation'](_0x5db5f6,_0x221108,_0x59faf1,_0x1d39d5={}){const _0x25e261=a0_0x22d3;if(this['operations']['size']>=this['maxConcurrentOperations'])throw new Error(_0x25e261(0x173)+this[_0x25e261(0x126)]+')');const _0x598eeb=this[_0x25e261(0x140)](),_0xc26fca={'id':_0x598eeb,'toolId':_0x5db5f6,'agentId':_0x221108,'parameters':_0x59faf1,'context':_0x1d39d5,'status':TOOL_STATUS[_0x25e261(0x165)],'createdAt':new Date()[_0x25e261(0x16b)](),'startedAt':null,'completedAt':null,'timeout':_0x1d39d5['timeout']||this['defaultTimeout'],'result':null,'error':null,'progress':null,'retryCount':0x0,'maxRetries':_0x1d39d5[_0x25e261(0x12e)]||0x0};return this[_0x25e261(0x133)][_0x25e261(0x124)](_0x598eeb,_0xc26fca),this[_0x25e261(0x123)]?.[_0x25e261(0x12f)](_0x25e261(0x125)+_0x598eeb,{'toolId':_0x5db5f6,'agentId':_0x221108,'parametersCount':Object[_0x25e261(0x16d)](_0x59faf1)[_0x25e261(0x156)],'timeout':_0xc26fca['timeout']}),this[_0x25e261(0x152)](_0x598eeb),this['emit']('operation:started',_0xc26fca),_0x598eeb;}[a0_0x2a463a(0x12d)](_0x1f9937,_0x5ad332,_0x5b29c5={}){const _0x231885=a0_0x2a463a,_0x19cfbe=this[_0x231885(0x133)]['get'](_0x1f9937);if(!_0x19cfbe)return this['logger']?.[_0x231885(0x16e)](_0x231885(0x122)+_0x1f9937),![];const _0x3ede3a=_0x19cfbe[_0x231885(0x15f)];_0x19cfbe[_0x231885(0x15f)]=_0x5ad332;_0x5ad332===TOOL_STATUS[_0x231885(0x13f)]&&!_0x19cfbe['startedAt']&&(_0x19cfbe['startedAt']=new Date()[_0x231885(0x16b)]());(_0x5ad332===TOOL_STATUS[_0x231885(0x177)]||_0x5ad332===TOOL_STATUS[_0x231885(0x15e)])&&(_0x19cfbe[_0x231885(0x146)]=new Date()[_0x231885(0x16b)]());if(_0x5b29c5['result']!==undefined)_0x19cfbe[_0x231885(0x151)]=_0x5b29c5['result'];if(_0x5b29c5['error']!==undefined)_0x19cfbe[_0x231885(0x139)]=_0x5b29c5[_0x231885(0x139)];if(_0x5b29c5['progress']!==undefined)_0x19cfbe['progress']=_0x5b29c5[_0x231885(0x145)];this[_0x231885(0x123)]?.['debug'](_0x231885(0x14d)+_0x1f9937,{'previousStatus':_0x3ede3a,'newStatus':_0x5ad332,'hasResult':!!_0x5b29c5[_0x231885(0x151)],'hasError':!!_0x5b29c5[_0x231885(0x139)],'progress':_0x5b29c5[_0x231885(0x145)]});switch(_0x5ad332){case TOOL_STATUS['COMPLETED']:this['emit'](_0x231885(0x161),_0x19cfbe);break;case TOOL_STATUS['FAILED']:this['emit']('operation:failed',_0x19cfbe);break;case TOOL_STATUS[_0x231885(0x13f)]:this[_0x231885(0x158)](_0x231885(0x150),_0x19cfbe);break;}return!![];}['getOperation'](_0x477e51){const _0x122aca=a0_0x2a463a,_0x55b4f0=this['operations'][_0x122aca(0x11f)](_0x477e51);if(!_0x55b4f0)return null;return{'id':_0x55b4f0['id'],'toolId':_0x55b4f0[_0x122aca(0x127)],'agentId':_0x55b4f0['agentId'],'status':_0x55b4f0[_0x122aca(0x15f)],'createdAt':_0x55b4f0['createdAt'],'startedAt':_0x55b4f0[_0x122aca(0x13e)],'completedAt':_0x55b4f0[_0x122aca(0x146)],'result':_0x55b4f0['result'],'error':_0x55b4f0['error'],'progress':_0x55b4f0[_0x122aca(0x145)],'retryCount':_0x55b4f0[_0x122aca(0x159)],'executionTime':this[_0x122aca(0x130)](_0x55b4f0)};}[a0_0x2a463a(0x13c)](_0x1249e6){const _0x505497=a0_0x2a463a,_0x422aa1=[];for(const _0x57ac42 of this[_0x505497(0x133)][_0x505497(0x14e)]()){_0x57ac42[_0x505497(0x119)]===_0x1249e6&&_0x422aa1[_0x505497(0x13a)](this['getOperation'](_0x57ac42['id']));}return _0x422aa1[_0x505497(0x155)]((_0x38d3f7,_0x138e8c)=>new Date(_0x138e8c['createdAt'])-new Date(_0x38d3f7['createdAt']));}async[a0_0x2a463a(0x168)](_0x52c898,_0xb91094='Operation\x20cancelled'){const _0x41359b=a0_0x2a463a,_0x3ceaeb=this[_0x41359b(0x133)][_0x41359b(0x11f)](_0x52c898);if(!_0x3ceaeb)return![];if(_0x3ceaeb[_0x41359b(0x15f)]===TOOL_STATUS[_0x41359b(0x177)]||_0x3ceaeb['status']===TOOL_STATUS['FAILED'])return this['logger']?.['warn'](_0x41359b(0x176)+_0x52c898),![];return this['updateOperation'](_0x52c898,TOOL_STATUS['CANCELLED'],{'error':_0xb91094}),this[_0x41359b(0x141)](_0x52c898),this['emit']('operation:cancelled',_0x3ceaeb),await this[_0x41359b(0x143)](_0x52c898),this[_0x41359b(0x123)]?.[_0x41359b(0x12f)]('Operation\x20cancelled:\x20'+_0x52c898,{'reason':_0xb91094}),!![];}async[a0_0x2a463a(0x15a)](_0x450aae){const _0xbecd57=a0_0x2a463a,_0x227e23=this[_0xbecd57(0x133)]['get'](_0x450aae);if(!_0x227e23)return![];if(_0x227e23['status']!==TOOL_STATUS[_0xbecd57(0x15e)])return this[_0xbecd57(0x123)]?.['warn'](_0xbecd57(0x14c)+_0x450aae),![];if(_0x227e23[_0xbecd57(0x159)]>=_0x227e23['maxRetries'])return this[_0xbecd57(0x123)]?.[_0xbecd57(0x16e)](_0xbecd57(0x11a)+_0x450aae),![];return _0x227e23[_0xbecd57(0x159)]++,_0x227e23['status']=TOOL_STATUS[_0xbecd57(0x165)],_0x227e23[_0xbecd57(0x13e)]=null,_0x227e23[_0xbecd57(0x146)]=null,_0x227e23[_0xbecd57(0x139)]=null,_0x227e23['result']=null,this['setOperationTimeout'](_0x450aae),this['logger']?.['info'](_0xbecd57(0x13b)+_0x450aae,{'retryCount':_0x227e23[_0xbecd57(0x159)],'maxRetries':_0x227e23[_0xbecd57(0x12e)]}),this['emit'](_0xbecd57(0x129),_0x227e23),!![];}['getStatistics'](){const _0x2d0f54=a0_0x2a463a,_0x2944d0={'total':this['operations']['size'],'byStatus':{},'byTool':{},'byAgent':{},'averageExecutionTime':0x0,'oldestOperation':null,'newestOperation':null};let _0x2c730=0x0,_0x54c050=0x0,_0x33bb0f=null,_0x1b3988=null;for(const _0x486f9f of this[_0x2d0f54(0x133)]['values']()){_0x2944d0['byStatus'][_0x486f9f[_0x2d0f54(0x15f)]]=(_0x2944d0[_0x2d0f54(0x169)][_0x486f9f['status']]||0x0)+0x1,_0x2944d0[_0x2d0f54(0x121)][_0x486f9f[_0x2d0f54(0x127)]]=(_0x2944d0[_0x2d0f54(0x121)][_0x486f9f['toolId']]||0x0)+0x1,_0x2944d0['byAgent'][_0x486f9f['agentId']]=(_0x2944d0['byAgent'][_0x486f9f['agentId']]||0x0)+0x1;const _0x412914=this[_0x2d0f54(0x130)](_0x486f9f);_0x412914>0x0&&(_0x2c730+=_0x412914,_0x54c050++);const _0x18042d=new Date(_0x486f9f[_0x2d0f54(0x162)])[_0x2d0f54(0x128)]();(!_0x33bb0f||_0x18042d<_0x33bb0f)&&(_0x33bb0f=_0x18042d,_0x2944d0[_0x2d0f54(0x11e)]=_0x486f9f['id']),(!_0x1b3988||_0x18042d>_0x1b3988)&&(_0x1b3988=_0x18042d,_0x2944d0['newestOperation']=_0x486f9f['id']);}return _0x2944d0[_0x2d0f54(0x134)]=_0x54c050>0x0?Math[_0x2d0f54(0x160)](_0x2c730/_0x54c050):0x0,_0x2944d0;}async[a0_0x2a463a(0x15d)](_0x38bdd1=0x36ee80){const _0x885b68=a0_0x2a463a,_0x370d81=Date[_0x885b68(0x149)]()-_0x38bdd1,_0x47d6ba=[];for(const _0x218ff8 of this[_0x885b68(0x133)]['values']()){(_0x218ff8[_0x885b68(0x15f)]===TOOL_STATUS['COMPLETED']||_0x218ff8['status']===TOOL_STATUS[_0x885b68(0x15e)]||_0x218ff8[_0x885b68(0x15f)]===TOOL_STATUS[_0x885b68(0x138)])&&new Date(_0x218ff8[_0x885b68(0x146)])[_0x885b68(0x128)]()<_0x370d81&&_0x47d6ba[_0x885b68(0x13a)](_0x218ff8['id']);}for(const _0x56d907 of _0x47d6ba){await this['cleanupOperation'](_0x56d907);}return this[_0x885b68(0x123)]?.['debug']('Cleaned\x20up\x20'+_0x47d6ba['length']+_0x885b68(0x144)),_0x47d6ba[_0x885b68(0x156)];}['startMonitoring'](){const _0x260557=a0_0x2a463a;this['monitoringInterval']&&clearInterval(this['monitoringInterval']),this[_0x260557(0x175)]=setInterval(()=>{const _0x3845a1=_0x260557;this['checkOperationTimeouts'](),this[_0x3845a1(0x15d)]();},this[_0x260557(0x164)]),this[_0x260557(0x123)]?.[_0x260557(0x12f)]('Async\x20tool\x20manager\x20monitoring\x20started');}[a0_0x2a463a(0x171)](){const _0x576117=a0_0x2a463a;this[_0x576117(0x175)]&&(clearInterval(this[_0x576117(0x175)]),this['monitoringInterval']=null),this[_0x576117(0x123)]?.[_0x576117(0x12f)]('Async\x20tool\x20manager\x20monitoring\x20stopped');}['checkOperationTimeouts'](){const _0x16683=a0_0x2a463a,_0x5b4299=Date[_0x16683(0x149)]();for(const _0x261460 of this[_0x16683(0x133)][_0x16683(0x14e)]()){if(_0x261460[_0x16683(0x15f)]===TOOL_STATUS['EXECUTING']||_0x261460['status']===TOOL_STATUS[_0x16683(0x165)]){const _0x9429eb=new Date(_0x261460[_0x16683(0x162)])['getTime']();_0x5b4299-_0x9429eb>_0x261460[_0x16683(0x142)]&&this['handleOperationTimeout'](_0x261460);}}}['setOperationTimeout'](_0x2eb7ab){const _0x1805a3=a0_0x2a463a,_0x105645=this['operations']['get'](_0x2eb7ab);if(!_0x105645)return;_0x105645[_0x1805a3(0x11b)]=setTimeout(()=>{const _0x419dc9=_0x1805a3;this[_0x419dc9(0x174)](_0x105645);},_0x105645[_0x1805a3(0x142)]);}['clearOperationTimeout'](_0x451966){const _0x34364d=a0_0x2a463a,_0x549909=this['operations'][_0x34364d(0x11f)](_0x451966);_0x549909&&_0x549909['timeoutHandle']&&(clearTimeout(_0x549909[_0x34364d(0x11b)]),delete _0x549909['timeoutHandle']);}[a0_0x2a463a(0x140)](){const _0x173234=a0_0x2a463a,_0x57df2e=Date[_0x173234(0x149)]()[_0x173234(0x163)](0x24),_0x1e71d3=Math['random']()['toString'](0x24)[_0x173234(0x13d)](0x2,0x9);return'op-'+_0x57df2e+'-'+_0x1e71d3;}[a0_0x2a463a(0x130)](_0x6cb10a){const _0xb09dd4=a0_0x2a463a;if(!_0x6cb10a[_0xb09dd4(0x13e)])return 0x0;const _0x4cd410=_0x6cb10a['completedAt']?new Date(_0x6cb10a[_0xb09dd4(0x146)])[_0xb09dd4(0x128)]():Date['now']();return _0x4cd410-new Date(_0x6cb10a['startedAt'])['getTime']();}async[a0_0x2a463a(0x143)](_0x1c4d03){const _0x21332b=a0_0x2a463a,_0x5b930a=this[_0x21332b(0x133)][_0x21332b(0x11f)](_0x1c4d03);if(!_0x5b930a)return;this[_0x21332b(0x141)](_0x1c4d03),this['operationHistory']['push']({..._0x5b930a,'executionTime':this[_0x21332b(0x130)](_0x5b930a),'cleanedUpAt':new Date()[_0x21332b(0x16b)]()}),this[_0x21332b(0x16f)][_0x21332b(0x156)]>this['maxHistorySize']&&(this['operationHistory']=this['operationHistory']['slice'](-this['maxHistorySize'])),this['operations']['delete'](_0x1c4d03),this[_0x21332b(0x158)]('operation:cleanup',{'operationId':_0x1c4d03,'toolId':_0x5b930a['toolId']});}['handleOperationStarted'](_0x48c3c9){const _0x2411ce=a0_0x2a463a;this['logger']?.['debug'](_0x2411ce(0x153)+_0x48c3c9['id'],{'toolId':_0x48c3c9['toolId'],'agentId':_0x48c3c9['agentId']});}async[a0_0x2a463a(0x12a)](_0x416ccc){const _0x390cee=a0_0x2a463a;this[_0x390cee(0x123)]?.[_0x390cee(0x12f)](_0x390cee(0x14b)+_0x416ccc['id'],{'toolId':_0x416ccc['toolId'],'agentId':_0x416ccc['agentId'],'executionTime':this['calculateExecutionTime'](_0x416ccc)}),setTimeout(()=>this['cleanupOperation'](_0x416ccc['id']),0x7530);}async[a0_0x2a463a(0x120)](_0x919c8a){const _0x40de55=a0_0x2a463a;this[_0x40de55(0x123)]?.[_0x40de55(0x139)]('Operation\x20failed:\x20'+_0x919c8a['id'],{'toolId':_0x919c8a[_0x40de55(0x127)],'agentId':_0x919c8a[_0x40de55(0x119)],'error':_0x919c8a[_0x40de55(0x139)],'executionTime':this['calculateExecutionTime'](_0x919c8a),'retryCount':_0x919c8a['retryCount']}),_0x919c8a[_0x40de55(0x159)]<_0x919c8a[_0x40de55(0x12e)]?setTimeout(()=>this['retryOperation'](_0x919c8a['id']),0x1388):setTimeout(()=>this['cleanupOperation'](_0x919c8a['id']),0xea60);}async['handleOperationTimeout'](_0x116c86){const _0x7b7f2b=a0_0x2a463a;this['logger']?.['warn'](_0x7b7f2b(0x172)+_0x116c86['id'],{'toolId':_0x116c86['toolId'],'agentId':_0x116c86[_0x7b7f2b(0x119)],'timeout':_0x116c86['timeout'],'executionTime':this['calculateExecutionTime'](_0x116c86)}),this['updateOperation'](_0x116c86['id'],TOOL_STATUS['TIMEOUT'],{'error':'Operation\x20timed\x20out\x20after\x20'+_0x116c86['timeout']+'ms'}),this[_0x7b7f2b(0x158)](_0x7b7f2b(0x12b),_0x116c86),setTimeout(()=>this['cleanupOperation'](_0x116c86['id']),0x7530);}async['shutdown'](){const _0x128202=a0_0x2a463a;this[_0x128202(0x147)]=!![],this['logger']?.['info']('Shutting down async tool manager...'),this['stopMonitoring']();const _0xd01576=[];for(const _0x5be672 of this['operations'][_0x128202(0x14e)]()){(_0x5be672['status']===TOOL_STATUS[_0x128202(0x165)]||_0x5be672['status']===TOOL_STATUS['EXECUTING'])&&_0xd01576[_0x128202(0x13a)](_0x5be672['id']);}for(const _0x5a3ef3 of _0xd01576){await this[_0x128202(0x168)](_0x5a3ef3,'System\x20shutdown');}this[_0x128202(0x133)]['clear'](),this[_0x128202(0x123)]?.[_0x128202(0x12f)]('Async\x20tool\x20manager\x20shutdown\x20complete.\x20Cancelled\x20'+_0xd01576['length']+_0x128202(0x166));}['getOperationHistory'](_0x12638a={}){const _0x360b72=a0_0x2a463a;let _0x5077b9=[...this['operationHistory']];return _0x12638a[_0x360b72(0x119)]&&(_0x5077b9=_0x5077b9[_0x360b72(0x154)](_0x30714a=>_0x30714a[_0x360b72(0x119)]===_0x12638a[_0x360b72(0x119)])),_0x12638a[_0x360b72(0x127)]&&(_0x5077b9=_0x5077b9[_0x360b72(0x154)](_0x35cac5=>_0x35cac5['toolId']===_0x12638a[_0x360b72(0x127)])),_0x12638a['status']&&(_0x5077b9=_0x5077b9[_0x360b72(0x154)](_0x4bff51=>_0x4bff51[_0x360b72(0x15f)]===_0x12638a['status'])),_0x12638a[_0x360b72(0x14a)]&&(_0x5077b9=_0x5077b9[_0x360b72(0x170)](-_0x12638a[_0x360b72(0x14a)])),_0x5077b9[_0x360b72(0x155)]((_0x50081a,_0x5a6868)=>new Date(_0x5a6868[_0x360b72(0x162)])-new Date(_0x50081a['createdAt']));}}function a0_0x22d3(_0x4ad014,_0x5062e0){_0x4ad014=_0x4ad014-0x119;const _0x4f1907=a0_0x4f19();let _0x22d392=_0x4f1907[_0x4ad014];if(a0_0x22d3['WuIxUJ']===undefined){var _0x31ac92=function(_0x4147ca){const _0x1c2dc2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x30d4c2='',_0x4ce289='';for(let _0x57e89d=0x0,_0x5db5f6,_0x221108,_0x59faf1=0x0;_0x221108=_0x4147ca['charAt'](_0x59faf1++);~_0x221108&&(_0x5db5f6=_0x57e89d%0x4?_0x5db5f6*0x40+_0x221108:_0x221108,_0x57e89d++%0x4)?_0x30d4c2+=String['fromCharCode'](0xff&_0x5db5f6>>(-0x2*_0x57e89d&0x6)):0x0){_0x221108=_0x1c2dc2['indexOf'](_0x221108);}for(let _0x1d39d5=0x0,_0x598eeb=_0x30d4c2['length'];_0x1d39d5<_0x598eeb;_0x1d39d5++){_0x4ce289+='%'+('00'+_0x30d4c2['charCodeAt'](_0x1d39d5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4ce289);};a0_0x22d3['RgTrGL']=_0x31ac92,a0_0x22d3['xBLjzc']={},a0_0x22d3['WuIxUJ']=!![];}const _0x2b3330=_0x4f1907[0x0],_0x5e61cc=_0x4ad014+_0x2b3330,_0x91a75b=a0_0x22d3['xBLjzc'][_0x5e61cc];return!_0x91a75b?(_0x22d392=a0_0x22d3['RgTrGL'](_0x22d392),a0_0x22d3['xBLjzc'][_0x5e61cc]=_0x22d392):_0x22d392=_0x91a75b,_0x22d392;}export default AsyncToolManager;
|
package/src/tools/baseTool.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0xd8f2b7=a0_0x4677;(function(_0x4619c8,_0xfefa44){const _0x278202=a0_0x4677,_0x4f8c8b=_0x4619c8();while(!![]){try{const _0x37984a=-parseInt(_0x278202(0x241))/0x1+parseInt(_0x278202(0x25f))/0x2+parseInt(_0x278202(0x1f0))/0x3*(parseInt(_0x278202(0x249))/0x4)+-parseInt(_0x278202(0x1ee))/0x5*(parseInt(_0x278202(0x1f5))/0x6)+-parseInt(_0x278202(0x22c))/0x7+-parseInt(_0x278202(0x1e9))/0x8*(parseInt(_0x278202(0x25c))/0x9)+parseInt(_0x278202(0x1ff))/0xa;if(_0x37984a===_0xfefa44)break;else _0x4f8c8b['push'](_0x4f8c8b['shift']());}catch(_0x477492){_0x4f8c8b['push'](_0x4f8c8b['shift']());}}}(a0_0x499d,0x3d4db));import{TOOL_STATUS,OPERATION_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BaseTool{constructor(_0x11d65a={},_0x1df1c6=null){const _0x1e116b=a0_0x4677;this['id']=this[_0x1e116b(0x214)]['name']['toLowerCase']()[_0x1e116b(0x24f)](_0x1e116b(0x1e8),''),this[_0x1e116b(0x238)]=_0x11d65a,this[_0x1e116b(0x252)]=_0x1df1c6,this[_0x1e116b(0x259)]=![],this['isAsync']=![],this[_0x1e116b(0x205)]=_0x11d65a['timeout']||SYSTEM_DEFAULTS['MAX_TOOL_EXECUTION_TIME'],this[_0x1e116b(0x222)]=_0x11d65a[_0x1e116b(0x222)]||0x1,this[_0x1e116b(0x1e6)]=new Map(),this['operationHistory']=[],this['isEnabled']=_0x11d65a[_0x1e116b(0x240)]!==![],this[_0x1e116b(0x250)]=null,this['usageCount']=0x0;}[a0_0xd8f2b7(0x21c)](){const _0x28f815=a0_0xd8f2b7;throw new Error(_0x28f815(0x200)+this['id']+'\x20must\x20implement\x20getDescription()');}[a0_0xd8f2b7(0x242)](_0x23bd6b){const _0x14b83b=a0_0xd8f2b7;throw new Error(_0x14b83b(0x200)+this['id']+_0x14b83b(0x229));}async['execute'](_0x169d47,_0x4553f9){throw new Error('Tool\x20'+this['id']+'\x20must\x20implement\x20execute()');}['getCapabilities'](){const _0x7d1681=a0_0xd8f2b7;return{'id':this['id'],'async':this[_0x7d1681(0x256)],'requiresProject':this['requiresProject'],'timeout':this[_0x7d1681(0x205)],'maxConcurrentOperations':this['maxConcurrentOperations'],'enabled':this['isEnabled'],'supportedActions':this[_0x7d1681(0x263)](),'parameterSchema':this[_0x7d1681(0x21f)]()};}[a0_0xd8f2b7(0x20a)](_0x4f80cc){const _0x3f85e2=a0_0xd8f2b7;try{if(!_0x4f80cc||typeof _0x4f80cc!=='object')return{'valid':![],'error':_0x3f85e2(0x26a)};const requiredParams=this['getRequiredParameters']();for(const required of requiredParams){if(!(required in _0x4f80cc))return{'valid':![],'error':_0x3f85e2(0x267)+required};}const _0x4f0ca5=this['validateParameterTypes'](_0x4f80cc);if(!_0x4f0ca5[_0x3f85e2(0x247)])return _0x4f0ca5;const _0x1879ef=this[_0x3f85e2(0x21a)](_0x4f80cc);if(!_0x1879ef[_0x3f85e2(0x247)])return _0x1879ef;return{'valid':!![]};}catch(_0x8a68fa){return{'valid':![],'error':_0x3f85e2(0x1e7)+_0x8a68fa['message']};}}async['executeWithLifecycle'](_0x7526f4,_0x1d872c){const _0x459130=a0_0xd8f2b7,_0x5b916f=this[_0x459130(0x23a)](),_0x3ed533=Date[_0x459130(0x22a)]();if(!this['isEnabled'])throw new Error('Tool\x20'+this['id']+'\x20is\x20disabled');if(this['activeOperations'][_0x459130(0x266)]>=this['maxConcurrentOperations'])throw new Error('Tool\x20'+this['id']+_0x459130(0x20b));const _0x306a66=this['validateParameters'](_0x7526f4);if(!_0x306a66[_0x459130(0x247)])throw new Error('Parameter\x20validation\x20failed:\x20'+_0x306a66[_0x459130(0x236)]);const _0x899c2f={'id':_0x5b916f,'toolId':this['id'],'status':TOOL_STATUS['EXECUTING'],'startTime':new Date()[_0x459130(0x228)](),'params':_0x7526f4,'context':this['sanitizeContext'](_0x1d872c)};this[_0x459130(0x1e6)][_0x459130(0x1f3)](_0x5b916f,_0x899c2f);try{this[_0x459130(0x252)]?.['info']('Tool\x20execution\x20started:\x20'+this['id'],{'operationId':_0x5b916f,'toolId':this['id'],'context':_0x899c2f[_0x459130(0x212)]});const _0x1896a7=await this[_0x459130(0x1f1)](_0x7526f4,_0x1d872c);return _0x899c2f[_0x459130(0x227)]=TOOL_STATUS[_0x459130(0x244)],_0x899c2f['result']=_0x1896a7,_0x899c2f[_0x459130(0x20e)]=new Date()[_0x459130(0x228)](),_0x899c2f['executionTime']=Date[_0x459130(0x22a)]()-_0x3ed533,this['lastUsed']=new Date()[_0x459130(0x228)](),this['usageCount']++,this['logger']?.[_0x459130(0x25d)](_0x459130(0x264)+this['id'],{'operationId':_0x5b916f,'executionTime':_0x899c2f['executionTime'],'success':!![]}),{'success':!![],'operationId':_0x5b916f,'result':_0x1896a7,'executionTime':_0x899c2f[_0x459130(0x209)],'toolId':this['id']};}catch(_0x4dbe41){_0x899c2f[_0x459130(0x227)]=TOOL_STATUS[_0x459130(0x260)],_0x899c2f['error']=_0x4dbe41['message'],_0x899c2f[_0x459130(0x20e)]=new Date()[_0x459130(0x228)](),_0x899c2f[_0x459130(0x209)]=Date['now']()-_0x3ed533,this['logger']?.['error'](_0x459130(0x232)+this['id'],{'operationId':_0x5b916f,'error':_0x4dbe41['message'],'executionTime':_0x899c2f[_0x459130(0x209)]});throw _0x4dbe41;}finally{this[_0x459130(0x254)]['push']({..._0x899c2f}),this[_0x459130(0x1e6)]['delete'](_0x5b916f),this[_0x459130(0x217)](),await this['cleanup'](_0x5b916f);}}async['getStatus'](_0x23021b){const _0x2b55a8=a0_0xd8f2b7,_0x2879e0=this[_0x2b55a8(0x1e6)][_0x2b55a8(0x258)](_0x23021b);if(!_0x2879e0){const _0x4fe1bc=this[_0x2b55a8(0x254)][_0x2b55a8(0x1f7)](_0x223606=>_0x223606['id']===_0x23021b);if(_0x4fe1bc)return{'operationId':_0x23021b,'status':_0x4fe1bc[_0x2b55a8(0x227)],'result':_0x4fe1bc[_0x2b55a8(0x22d)],'error':_0x4fe1bc['error'],'executionTime':_0x4fe1bc[_0x2b55a8(0x209)]};return{'operationId':_0x23021b,'status':OPERATION_STATUS[_0x2b55a8(0x1e5)],'error':_0x2b55a8(0x25a)};}return{'operationId':_0x23021b,'status':_0x2879e0['status'],'startTime':_0x2879e0['startTime'],'executionTime':_0x2879e0[_0x2b55a8(0x20e)]?new Date(_0x2879e0[_0x2b55a8(0x20e)])['getTime']()-new Date(_0x2879e0['startTime'])['getTime']():Date['now']()-new Date(_0x2879e0[_0x2b55a8(0x223)])['getTime']()};}async[a0_0xd8f2b7(0x24a)](_0xa2b8b){}['getSupportedActions'](){const _0x35d5e9=a0_0xd8f2b7;return[_0x35d5e9(0x1f8)];}[a0_0xd8f2b7(0x21f)](){return{'type':'object','properties':{},'required':[]};}['getRequiredParameters'](){return[];}['validateParameterTypes'](_0x4c41c8){return{'valid':!![]};}['customValidateParameters'](_0x5e1f9c){return{'valid':!![]};}async['executeWithTimeout'](_0x4f9ba9,_0x54a029){return new Promise(async(_0x356491,_0xb3353c)=>{const _0x285be7=setTimeout(()=>{const _0x1149ea=a0_0x4677;_0xb3353c(new Error(_0x1149ea(0x1fa)+this['timeout']+'ms'));},this['timeout']);try{const _0x21bdfd=await this['execute'](_0x4f9ba9,_0x54a029);clearTimeout(_0x285be7),_0x356491(_0x21bdfd);}catch(_0x2894fe){clearTimeout(_0x285be7),_0xb3353c(_0x2894fe);}});}['generateOperationId'](){const _0x35eb75=a0_0xd8f2b7;return this['id']+'-'+Date[_0x35eb75(0x22a)]()+'-'+Math[_0x35eb75(0x231)]()['toString'](0x24)[_0x35eb75(0x251)](0x2,0x9);}[a0_0xd8f2b7(0x230)](_0x4eef31){const _0x3d4772=a0_0xd8f2b7,_0x1044c8={..._0x4eef31};return delete _0x1044c8[_0x3d4772(0x204)],delete _0x1044c8['secrets'],delete _0x1044c8['passwords'],_0x1044c8[_0x3d4772(0x20f)]&&_0x1044c8['content'][_0x3d4772(0x1e4)]>0x1f4&&(_0x1044c8['content']=_0x1044c8[_0x3d4772(0x20f)][_0x3d4772(0x22e)](0x0,0x1f4)+_0x3d4772(0x220)),_0x1044c8;}[a0_0xd8f2b7(0x217)](){const _0x57a196=a0_0xd8f2b7,_0x107e92=0x64;this[_0x57a196(0x254)][_0x57a196(0x1e4)]>_0x107e92&&(this[_0x57a196(0x254)]=this['operationHistory']['slice'](-_0x107e92));}[a0_0xd8f2b7(0x201)](){const _0x3b7daf=a0_0xd8f2b7;return{'toolId':this['id'],'usageCount':this['usageCount'],'lastUsed':this['lastUsed'],'activeOperations':this['activeOperations'][_0x3b7daf(0x266)],'totalOperations':this['operationHistory'][_0x3b7daf(0x1e4)],'averageExecutionTime':this[_0x3b7daf(0x257)](),'successRate':this['calculateSuccessRate'](),'isEnabled':this[_0x3b7daf(0x25b)]};}['calculateAverageExecutionTime'](){const _0x148817=a0_0xd8f2b7,_0x342058=this[_0x148817(0x254)][_0x148817(0x22b)](_0x7081a8=>_0x7081a8['status']===TOOL_STATUS['COMPLETED']&&_0x7081a8[_0x148817(0x209)]);if(_0x342058[_0x148817(0x1e4)]===0x0)return 0x0;const _0x37e809=_0x342058['reduce']((_0x298473,_0x57228c)=>_0x298473+_0x57228c[_0x148817(0x209)],0x0);return Math['round'](_0x37e809/_0x342058[_0x148817(0x1e4)]);}[a0_0xd8f2b7(0x1f2)](){const _0x49b8b9=a0_0xd8f2b7;if(this['operationHistory']['length']===0x0)return 0x0;const _0x1f5199=this['operationHistory']['filter'](_0x140e45=>_0x140e45['status']===TOOL_STATUS[_0x49b8b9(0x244)]);return _0x1f5199[_0x49b8b9(0x1e4)]/this['operationHistory']['length']*0x64;}[a0_0xd8f2b7(0x255)](){const _0x8e1e26=a0_0xd8f2b7;this[_0x8e1e26(0x25b)]=!![],this['logger']?.['info'](_0x8e1e26(0x234)+this['id']);}['disable'](){const _0x4af0f0=a0_0xd8f2b7;this['isEnabled']=![],this[_0x4af0f0(0x252)]?.[_0x4af0f0(0x25d)]('Tool\x20disabled:\x20'+this['id']);}[a0_0xd8f2b7(0x261)](){const _0xaf8395=a0_0xd8f2b7;this['usageCount']=0x0,this['lastUsed']=null,this['operationHistory']=[],this[_0xaf8395(0x252)]?.['info']('Tool\x20statistics\x20reset:\x20'+this['id']);}}class ToolsRegistry{constructor(_0x5b7a5d=null){const _0x1a66cb=a0_0xd8f2b7;this['logger']=_0x5b7a5d,this[_0x1a66cb(0x239)]=new Map(),this['toolDescriptions']=new Map(),this['toolCapabilities']=new Map(),this['asyncOperations']=new Map();}async['registerTool'](_0x3e7b20){const _0x8e1268=a0_0xd8f2b7;try{const _0x2af115=new _0x3e7b20();if(!(_0x2af115 instanceof BaseTool))throw new Error('Tool\x20'+_0x3e7b20[_0x8e1268(0x210)]+'\x20must\x20extend\x20BaseTool');const _0xe57ab0=_0x2af115['getCapabilities']();await this[_0x8e1268(0x20d)](_0x2af115),this['tools'][_0x8e1268(0x1f3)](_0x2af115['id'],_0x2af115),this[_0x8e1268(0x25e)]['set'](_0x2af115['id'],_0x2af115[_0x8e1268(0x21c)]()),this['toolCapabilities']['set'](_0x2af115['id'],_0xe57ab0),this['logger']?.[_0x8e1268(0x25d)]('Tool\x20registered:\x20'+_0x2af115['id'],{'capabilities':_0xe57ab0['supportedActions'],'async':_0xe57ab0[_0x8e1268(0x1fc)],'requiresProject':_0xe57ab0[_0x8e1268(0x259)]});}catch(_0x592b4c){this[_0x8e1268(0x252)]?.[_0x8e1268(0x236)](_0x8e1268(0x1fb)+_0x592b4c['message'],{'toolClass':_0x3e7b20['name']});throw _0x592b4c;}}async['discoverTools'](_0x3e2e2f){return 0x0;}async[a0_0xd8f2b7(0x20d)](_0x42a035){const _0x379ab3=a0_0xd8f2b7,requiredMethods=['getDescription','parseParameters','execute'];for(const _0x1b788b of requiredMethods){if(typeof _0x42a035[_0x1b788b]!==_0x379ab3(0x262))throw new Error('Tool\x20'+_0x42a035['id']+_0x379ab3(0x24e)+_0x1b788b);}try{const _0x21c448=_0x42a035[_0x379ab3(0x242)](_0x379ab3(0x23d));if(typeof _0x21c448!==_0x379ab3(0x1ea))throw new Error('Tool\x20'+_0x42a035['id']+_0x379ab3(0x1ed));}catch(_0x367659){}const _0x304cc0=_0x42a035['getCapabilities']();if(!_0x304cc0||typeof _0x304cc0!==_0x379ab3(0x1ea))throw new Error('Tool\x20'+_0x42a035['id']+'\x20getCapabilities\x20must\x20return\x20an\x20object');}[a0_0xd8f2b7(0x21d)](_0x4d2530){return this['tools']['get'](_0x4d2530)||null;}['getToolCapabilities'](){const _0x33b9e9=a0_0xd8f2b7,_0x338212={};for(const [_0xeb7bb9,_0x20e61c]of this['tools'][_0x33b9e9(0x216)]()){_0x20e61c[_0x33b9e9(0x25b)]&&(_0x338212[_0xeb7bb9]={'description':this['toolDescriptions'][_0x33b9e9(0x258)](_0xeb7bb9),'capabilities':this[_0x33b9e9(0x26b)]['get'](_0xeb7bb9),'usageStats':_0x20e61c['getUsageStats']()});}return _0x338212;}async[a0_0xd8f2b7(0x1f9)](_0x7de624,_0x3db6e7,_0x11e966){const _0x16cf4f=a0_0xd8f2b7,_0x19bfab=this['getTool'](_0x7de624);if(!_0x19bfab)throw new Error('Tool\x20not\x20found:\x20'+_0x7de624);if(!_0x19bfab[_0x16cf4f(0x25b)])throw new Error('Tool\x20is\x20disabled:\x20'+_0x7de624);return await _0x19bfab['executeWithLifecycle'](_0x3db6e7,_0x11e966);}['listTools'](){const _0x3fa833=a0_0xd8f2b7;return Array['from'](this[_0x3fa833(0x239)][_0x3fa833(0x23f)]());}['generateToolDescriptionsForPrompt'](_0x28885e=[],_0x2bca10={}){const _0x5bf9f1=a0_0xd8f2b7,{includeExamples:includeExamples=!![],includeUsageGuidelines:includeUsageGuidelines=!![],includeSecurityNotes:includeSecurityNotes=!![],compact:compact=![]}=_0x2bca10,_0x4cb9e9=_0x28885e['length']>0x0?_0x28885e['filter'](_0x29f8e8=>this['tools']['has'](_0x29f8e8)):Array[_0x5bf9f1(0x1e3)](this[_0x5bf9f1(0x239)][_0x5bf9f1(0x23f)]());if(_0x4cb9e9[_0x5bf9f1(0x1e4)]===0x0)return'';let _0x14a788=_0x5bf9f1(0x26d);_0x14a788+=_0x5bf9f1(0x253);for(const _0x181558 of _0x4cb9e9){const _0x4ab7ad=this['tools']['get'](_0x181558);if(!_0x4ab7ad||!_0x4ab7ad['isEnabled'])continue;try{if(compact){const _0x4df9f9=_0x4ab7ad['getCapabilities'](),_0x44c519=_0x4df9f9[_0x5bf9f1(0x1f6)]||['execute'];_0x14a788+='**'+_0x181558+_0x5bf9f1(0x1fe)+_0x44c519[_0x5bf9f1(0x225)](',\x20')+'\x0a';}else _0x14a788+=_0x5bf9f1(0x218)+_0x181558['toUpperCase']()+_0x5bf9f1(0x208),_0x14a788+=_0x4ab7ad[_0x5bf9f1(0x21c)](),_0x14a788+=_0x5bf9f1(0x23e);}catch(_0xc1bf9d){this['logger']?.[_0x5bf9f1(0x219)](_0x5bf9f1(0x202)+_0x181558,{'error':_0xc1bf9d[_0x5bf9f1(0x1ef)]});}}return compact&&(_0x14a788+=_0x5bf9f1(0x24b)),_0x14a788+=_0x5bf9f1(0x243),_0x14a788+='**IMPORTANT**:\x20You\x20MUST\x20use\x20one\x20of\x20these\x20exact\x20formats\x20to\x20invoke\x20tools:\x0a\x0a',_0x14a788+='###\x20Format\x201:\x20Bracket\x20Notation\x0a',_0x14a788+='```\x0a',_0x14a788+=_0x5bf9f1(0x22f),_0x14a788+=_0x5bf9f1(0x211),_0x14a788+=_0x5bf9f1(0x20c),_0x14a788+='```\x0a\x0a',_0x14a788+='###\x20Format\x202:\x20JSON\x20in\x20Markdown\x20Code\x20Block\x20(REQUIRED\x20for\x20JSON)\x0a',_0x14a788+='```\x0a',_0x14a788+='```json\x0a',_0x14a788+='{\x0a',_0x14a788+=_0x5bf9f1(0x221),_0x14a788+=_0x5bf9f1(0x21e),_0x14a788+='}\x0a',_0x14a788+=_0x5bf9f1(0x268),_0x14a788+=_0x5bf9f1(0x1ec),_0x14a788+='**WARNING**:\x20Plain\x20JSON\x20without\x20markdown\x20code\x20blocks\x20(```json)\x20will\x20NOT\x20be\x20executed!\x0a',_0x14a788+=_0x5bf9f1(0x203),_0x14a788+='###\x20Format\x203:\x20XML\x20Format\x0a',_0x14a788+=_0x5bf9f1(0x245),_0x14a788+=_0x5bf9f1(0x224),_0x14a788+='\x20\x20<tool\x20id=\x22toolname\x22>\x0a',_0x14a788+=_0x5bf9f1(0x207),_0x14a788+='\x20\x20</tool>\x0a',_0x14a788+='</tool-command>\x0a',_0x14a788+=_0x5bf9f1(0x1ec),_0x14a788+='After\x20invoking\x20a\x20tool,\x20WAIT\x20for\x20the\x20actual\x20response.\x20Do\x20NOT\x20generate\x20imaginary\x20responses.\x0a',_0x14a788;}['enhanceSystemPrompt'](_0x300249,_0x4d8db2=[],_0x4f7cf8={}){const _0x943c89=a0_0xd8f2b7,_0xc85d14=this[_0x943c89(0x215)](_0x4d8db2,_0x4f7cf8);if(!_0xc85d14['trim']())return _0x300249||'';const _0x62322b=_0x300249||'';if(_0x62322b['includes'](_0x943c89(0x24c)))return _0x62322b['replace'](/## AVAILABLE TOOLS[\s\S]*?(?=##|$)/,_0xc85d14+'\x0a');const _0x502a68=_0x943c89(0x246);return _0x62322b+(_0x62322b['endsWith']('\x0a')?'':'\x0a')+_0xc85d14+_0x502a68+'\x0a';}['getAvailableToolsForUI'](){const _0x21b588=a0_0xd8f2b7,_0x72f194=[];for(const [_0x3f56a3,_0x502760]of this[_0x21b588(0x239)]['entries']()){const _0x3b174f=_0x502760[_0x21b588(0x269)](),_0xb4be27=_0x502760[_0x21b588(0x21c)](),_0x3153b3=_0xb4be27[_0x21b588(0x1fd)]('\x0a')['find'](_0x4bf7f3=>_0x4bf7f3['trim']()[_0x21b588(0x1e4)]>0x0)||'',_0x2a3564=_0x3153b3['replace'](/^.*Tool:\s*/i,'')['replace'](/\s*-.*$/,'')[_0x21b588(0x206)]();_0x72f194[_0x21b588(0x1eb)]({'id':_0x3f56a3,'name':_0x2a3564||_0x3f56a3[_0x21b588(0x213)](0x0)['toUpperCase']()+_0x3f56a3[_0x21b588(0x23b)](0x1),'description':_0x3153b3,'category':this['_getToolCategory'](_0x3f56a3),'enabled':_0x3b174f[_0x21b588(0x240)],'async':_0x3b174f['async'],'requiresProject':_0x3b174f[_0x21b588(0x259)],'className':_0x502760['constructor']['name']});}return _0x72f194[_0x21b588(0x23c)]((_0x2bcfcf,_0x5aa895)=>_0x2bcfcf['name'][_0x21b588(0x248)](_0x5aa895[_0x21b588(0x210)]));}[a0_0xd8f2b7(0x26c)](_0x169d6e){const _0x46f2c7=a0_0xd8f2b7,_0x34e1a7={'terminal':_0x46f2c7(0x265),'filesystem':_0x46f2c7(0x24d),'browser':_0x46f2c7(0x226),'agentdelay':'Utility'};return _0x34e1a7[_0x169d6e]||'Other';}[a0_0xd8f2b7(0x21b)](){const _0x4025ab=a0_0xd8f2b7,_0x224190=Array['from'](this[_0x4025ab(0x239)]['values']())['filter'](_0x13e613=>_0x13e613[_0x4025ab(0x25b)]),_0x8e454f=Array[_0x4025ab(0x1e3)](this['tools'][_0x4025ab(0x233)]())[_0x4025ab(0x235)]((_0x1f6fc4,_0x58ba8a)=>_0x1f6fc4+_0x58ba8a[_0x4025ab(0x237)],0x0);return{'totalTools':this[_0x4025ab(0x239)][_0x4025ab(0x266)],'enabledTools':_0x224190['length'],'totalOperations':_0x8e454f,'activeOperations':this[_0x4025ab(0x1f4)][_0x4025ab(0x266)]};}}function a0_0x499d(){const _0x24c348=['C3bSAxq','kIO6ia','nZu0mdu2mg5my0nVta','vg9VBca','z2v0vxnHz2vtDgf0CW','rMfPBgvKihrVigDLDcbKzxnJCMLWDgLVBIbMB3iGDg9VBdOG','qwX3yxLZihDYyxaGsLnptIb0B29SignVBw1HBMrZigLUigbGygPZB24GlI4UigbGycbIBg9JA3mUcGO','yxbPs2v5CW','DgLTzw91Da','DhjPBq','icaGidXWyxjHBwv0zxi+DMfSDwu8l3bHCMfTzxrLCJ4k','ifrpt0WkcG','zxHLy3v0Aw9UvgLTzq','DMfSAwrHDgvqyxjHBwv0zxjZ','igHHCYbYzwfJAgvKig1HEgLTDw0Gy29Uy3vYCMvUDcbVCgvYyxrPB25ZigXPBwL0','wY90B29SxqO','DMfSAwrHDgvuB29S','zw5KvgLTzq','y29UDgvUDa','BMfTzq','phbHCMfTzxrLCNmGAgvYzt4k','y29UDgv4Da','y2HHCKf0','y29UC3rYDwn0B3i','z2vUzxjHDgvuB29SrgvZy3jPChrPB25ZrM9YuhjVBxb0','zw50CMLLCW','y2XLyw51CeHPC3rVCNK','iYmJia','D2fYBG','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','z2v0uMvNAxn0CNLtDgf0CW','z2v0rgvZy3jPChrPB24','z2v0vg9VBa','icaICgfYyw1LDgvYCYi6ihSGlI4Uih0GB3iGiMfJDgLVBNmIoIbBic4UlIbDcG','z2v0ugfYyw1LDgvYu2nOzw1H','lI4UifT0CNvUy2f0zwrD','icaIDg9VBeLKiJOGiNrVB2XUyw1LiIWk','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','C3rHCNruAw1L','phrVB2WTy29TBwfUzd4k','AM9PBG','qxv0B21HDgLVBG','C3rHDhvZ','Dg9ju09tDhjPBMC','ig11C3qGAw1WBgvTzw50ihbHCNnLugfYyw1LDgvYCYGP','BM93','zMLSDgvY','mZe3nZq2mwziDwnTBa','CMvZDwX0','C3vIC3rYAw5N','w3rVB2WGAwq9iNrVB2XUyw1LiL0k','C2fUAxrPEMvdB250zxH0','CMfUzg9T','vg9VBcbLEgvJDxrPB24GzMfPBgvKoIa','DMfSDwvZ','vg9VBcbLBMfIBgvKoIa','CMvKDwnL','zxjYB3i','DxnHz2vdB3vUDa','y29UzMLN','Dg9VBhm','z2vUzxjHDgvpCgvYyxrPB25jza','C2XPy2u','C29YDa','DgvZDcbJB250zw50','cGOTls0kcG','A2v5CW','zw5HyMXLza','mJm0ntCYvLbtAwD6','CgfYC2vqyxjHBwv0zxjZ','iYmGve9ptcbjtLzpq0fusu9oifnztLrbwaOk','q09nueXfveve','ygbGEg1ScG','su1qt1juqu5uoIb3AgvUigfZA2vKihrVihbLCMzVCM0Gyw4Gywn0Aw9Uig9Yig9WzxjHDgLVBIWGDxnLigvHy2GGCMvZCg9UC2uGDg8GAw52B2TLigeGDg9VBcbPzIbUzwvKzwqSigfUzcb1CgrHDguGDgHLihvZzxiGB24GDgHLihbYB2DYzxnZicHZyw1Lig1LC3nHz2uPlG','DMfSAwq','Bg9JywXLq29TCgfYzq','ntCWofbXqMPKta','y2XLyw51Ca','cLvZzsbBDg9VBcbPzd0IDg9VBc1Uyw1LiL08CgfYyw1LDgvYCZ5Bl3rVB2XDig9YiePtt04GzM9YBwf0ihrVigLUDM9Rzsb0B29SCY4kcG','iYmGqvzbsuXbqKXfifrpt0Xt','rMLSzsbpCgvYyxrPB25Z','ig1PC3nPBMCGCMvXDwLYzwqGBwv0Ag9KoIa','CMvWBgfJzq','BgfZDfvZzwq','C3vIC3rY','Bg9Nz2vY','ww91igHHDMuGywnJzxnZihrVihrOzsbMB2XSB3DPBMCGDg9VBhmGDg8GCgvYzM9YBsbVCgvYyxrPB25ZigfUzcb0yxnRCZOkcG','B3bLCMf0Aw9UsgLZDg9YEq','zw5HyMXL','AxnbC3LUyW','y2fSy3vSyxrLqxzLCMfNzuv4zwn1DgLVBLrPBwu','z2v0','CMvXDwLYzxnqCM9Qzwn0','t3bLCMf0Aw9Uig5VDcbMB3vUza','AxnfBMfIBgvK','mZC3nJy3tgTLuend','Aw5MBW','Dg9VBerLC2nYAxb0Aw9UCW','mZm5otyYBuvms0jS','rKfjteve','CMvZzxrtDgf0CW','zNvUy3rPB24','z2v0u3vWCg9YDgvKqwn0Aw9UCW','vg9VBcbLEgvJDxrPB24Gy29TCgXLDgvKoIa','u3LZDgvT','C2L6zq','twLZC2LUzYbYzxf1AxjLzcbWyxjHBwv0zxi6ia','ygbGcG','z2v0q2fWywjPBgL0AwvZ','ugfYyw1LDgvYCYbTDxn0igjLigfUig9IAMvJDa','Dg9VBenHCgfIAwXPDgLLCW','x2DLDfrVB2XdyxrLz29YEq','cImJiefwquLmqujmrsbut09muWOk','zNjVBq','BgvUz3rO','tK9ux0zpvu5e','ywn0AxzLt3bLCMf0Aw9UCW','ugfYyw1LDgvYihzHBgLKyxrPB24GzMfPBgvKoIa','Dg9VBa','ndbwr21XwhK','B2jQzwn0','ChvZAa','ygbGcGO','ihbHCNnLugfYyw1LDgvYCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','mtKYodGWCg5fy21S','BwvZC2fNzq','nJm2ze5QC3bs','zxHLy3v0zvDPDgHuAw1LB3v0','y2fSy3vSyxrLu3vJy2vZC1jHDgu','C2v0','yxn5BMnpCgvYyxrPB25Z','mtj0DunsuK0','C3vWCg9YDgvKqwn0Aw9UCW','zMLUza','zxHLy3v0zq','zxHLy3v0zvrVB2Xtzwn1CMvSEq','vg9VBcbLEgvJDxrPB24GDgLTzwqGB3v0igfMDgvYia','vg9VBcbYzwDPC3rYyxrPB24GzMfPBgvKoIa','yxn5BMm'];a0_0x499d=function(){return _0x24c348;};return a0_0x499d();}function a0_0x4677(_0x13853e,_0x474b76){_0x13853e=_0x13853e-0x1e3;const _0x499d1d=a0_0x499d();let _0x467781=_0x499d1d[_0x13853e];if(a0_0x4677['JituRh']===undefined){var _0x273277=function(_0x44f234){const _0x284b2e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x11d65a='',_0x1df1c6='';for(let _0x23bd6b=0x0,_0x169d47,_0x4553f9,_0x4f80cc=0x0;_0x4553f9=_0x44f234['charAt'](_0x4f80cc++);~_0x4553f9&&(_0x169d47=_0x23bd6b%0x4?_0x169d47*0x40+_0x4553f9:_0x4553f9,_0x23bd6b++%0x4)?_0x11d65a+=String['fromCharCode'](0xff&_0x169d47>>(-0x2*_0x23bd6b&0x6)):0x0){_0x4553f9=_0x284b2e['indexOf'](_0x4553f9);}for(let _0x4f0ca5=0x0,_0x1879ef=_0x11d65a['length'];_0x4f0ca5<_0x1879ef;_0x4f0ca5++){_0x1df1c6+='%'+('00'+_0x11d65a['charCodeAt'](_0x4f0ca5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1df1c6);};a0_0x4677['lOWLEq']=_0x273277,a0_0x4677['pgtFbb']={},a0_0x4677['JituRh']=!![];}const _0x42694c=_0x499d1d[0x0],_0x1be5d9=_0x13853e+_0x42694c,_0x1c1991=a0_0x4677['pgtFbb'][_0x1be5d9];return!_0x1c1991?(_0x467781=a0_0x4677['lOWLEq'](_0x467781),a0_0x4677['pgtFbb'][_0x1be5d9]=_0x467781):_0x467781=_0x1c1991,_0x467781;}export{BaseTool,ToolsRegistry};
|
|
1
|
+
const a0_0x2a701a=a0_0x5e6a;function a0_0x2cea(){const _0x43913f=['ww91igHHDMuGywnJzxnZihrVihrOzsbMB2XSB3DPBMCGDg9VBhmGDg8GCgvYzM9YBsbVCgvYyxrPB25ZigfUzcb0yxnRCZOkcG','mZa1oda4mgTHuuvxEq','BgvUz3rO','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','CMvWBgfJzq','Aw5MBW','x2DLDfrVB2XdyxrLz29YEq','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','z2v0q2fWywjPBgL0AwvZ','ndiWnZiYmxzlz2fkEa','t3bLCMf0Aw9Uig5VDcbMB3vUza','iYmGve9ptcbjtLzpq0fusu9oifnztLrbwaOk','C3vIC3rY','zgLZywjSzq','vg9VBcbUB3qGzM91BMq6ia','zgvSzxrL','Dg9mB3DLCKnHC2u','vg9VBcbYzwDPC3rLCMvKoIa','ifrpt0WkcG','C3vIC3rYAw5N','ygbGANnVBGO','C3rHDhvZ','y29UzMLN','Dg9tDhjPBMC','vg9VBcbLBMfIBgvKoIa','q09nueXfveve','yxn5BMm','C2L6zq','AgfZ','zxHLy3v0zvrVB2Xtzwn1CMvSEq','zNjVBq','ihbHCNnLugfYyw1LDgvYCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','vg9VBcbZDgf0Axn0AwnZihjLC2v0oIa','mJCWmZu4rgPyrxPJ','mtiWotyYnerABefbDa','z2v0','Dg9VBerLC2nYAxb0Aw9UCW','Dg9VBhm','ica8Dg9VBcbPzd0IDg9VBg5HBwuIpGO','zxHLy3v0Aw9UvgLTzq','BM93','zMLSDgvY','u3LZDgvT','y2fSy3vSyxrLu3vJy2vZC1jHDgu','y29UC3rYDwn0B3i','DhjPBq','z2v0rgvZy3jPChrPB24','Bg9Nz2vY','DMfSAwq','qxv0B21HDgLVBG','CMvXDwLYzxnqCM9Qzwn0','y29UDgv4Da','zxHLy3v0zq','z2v0vxnHz2vtDgf0CW','y29UDgvUDa','ygbGcG','kIPjtvbpuLrbtLqQkJOGww91ie1vu1qGDxnLig9UzsbVzIb0AgvZzsbLEgfJDcbMB3jTyxrZihrVigLUDM9Rzsb0B29SCZOkcG','kIO6ia','zNvUy3rPB24','z2v0vgLTzq','BgfZDfvZzwq','z2v0uMvNAxn0CNLtDgf0CW','Dg9vChbLCKnHC2u','y2XLyw51CeHPC3rVCNK','phrVB2WTy29TBwfUzd4k','tufyx1rpt0XFrvHfq1vusu9ox1rjtuu','iYmJia','yxn5BMnpCgvYyxrPB25Z','Dg9VBenHCgfIAwXPDgLLCW','rKfjteve','zxHLy3v0zvDPDgHmAwzLy3LJBgu','mZG4ndjTsfPnuvC','CgfYC2vqyxjHBwv0zxjZ','nZu1CKLczvHh','DMfSAwrHDgvqyxjHBwv0zxjZ','BwvZC2fNzq','Dg9ju09tDhjPBMC','mZu4mdK2BxHAvvrL','AxnfBMfIBgvK','DMfSAwrHDgvuB29S','tK9ux0zpvu5e','igDLDenHCgfIAwXPDgLLCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','CMvKDwnL','iYmJiezVCM1HDcaZoIbytuWGrM9YBwf0cG','vg9VBca','B3bLCMf0Aw9UsgLZDg9YEq','DMfSAwrHDgvqyxjHBwv0zxjuExbLCW','ugfYyw1LDgvYihzHBgLKyxrPB24GzMfPBgvKoIa','CMvZzxrtDgf0CW','C2v0','ChvZAa','iYmGqvzbsuXbqKXfifrpt0Xt','otuZmKv4C1jqEa','ygbGEg1ScG','icaIDg9VBeLKiJOGiNrVB2XUyw1LiIWk','Bg9JywXLq29TCgfYzq','t3rOzxi','ygbGcGO','A2v5CW','z2vUzxjHDgvpCgvYyxrPB25jza','twLZC2LUzYbYzxf1AxjLzcbWyxjHBwv0zxi6ia','igHHCYbYzwfJAgvKig1HEgLTDw0Gy29Uy3vYCMvUDcbVCgvYyxrPB25ZigXPBwL0','nJnpEMTAqw4','ig11C3qGzxH0zw5KiejHC2vuB29S','zMLUza','C2fUAxrPEMvdB250zxH0','C2XPy2u','y2fSy3vSyxrLqxzLCMfNzuv4zwn1DgLVBLrPBwu','z2v0ugfYyw1LDgvYu2nOzw1H','rvHfq1vusu5h','DxnHz2vdB3vUDa','y2XLyw51Ca','ntCWyvPzANzM','ugfYyw1LDgvYCYbTDxn0igjLigfUig9IAMvJDa','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','AxnbC3LUyW','BMfTzq','zw5KC1DPDgG','zxjYB3i','zw5KvgLTzq','igLZigrPC2fIBgvK','C3rHCNruAw1L','C3vWCg9YDgvKqwn0Aw9UCW','mtbjtwnnC0G','zw5HyMXLza','C2vJCMv0CW','rMfPBgvKihrVigDLDcbKzxnJCMLWDgLVBIbMB3iGDg9VBdOG','su1qt1juqu5uoIb3AgvUigfZA2vKihrVihbLCMzVCM0Gyw4Gywn0Aw9Uig9Yig9WzxjHDgLVBIWGDxnLigvHy2GGCMvZCg9UC2uGDg8GAw52B2TLigeGDg9VBcbPzIbUzwvKzwqSigfUzcb1CgrHDguGDgHLihvZzxiGB24GDgHLihbYB2DYzxnZicHZyw1Lig1LC3nHz2uPlG','ywn0AxzLt3bLCMf0Aw9UCW'];a0_0x2cea=function(){return _0x43913f;};return a0_0x2cea();}function a0_0x5e6a(_0x1fbd7f,_0x40e05e){_0x1fbd7f=_0x1fbd7f-0x1cf;const _0x2ceab0=a0_0x2cea();let _0x5e6a26=_0x2ceab0[_0x1fbd7f];if(a0_0x5e6a['eSCRuS']===undefined){var _0x1bd0b4=function(_0x3ee6b3){const _0x46cae2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x181af8='',_0x3e8586='';for(let _0x1b9452=0x0,_0x4644fd,_0x53c8e3,_0x482f46=0x0;_0x53c8e3=_0x3ee6b3['charAt'](_0x482f46++);~_0x53c8e3&&(_0x4644fd=_0x1b9452%0x4?_0x4644fd*0x40+_0x53c8e3:_0x53c8e3,_0x1b9452++%0x4)?_0x181af8+=String['fromCharCode'](0xff&_0x4644fd>>(-0x2*_0x1b9452&0x6)):0x0){_0x53c8e3=_0x46cae2['indexOf'](_0x53c8e3);}for(let _0xe07fa7=0x0,_0x110841=_0x181af8['length'];_0xe07fa7<_0x110841;_0xe07fa7++){_0x3e8586+='%'+('00'+_0x181af8['charCodeAt'](_0xe07fa7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3e8586);};a0_0x5e6a['yqYOqC']=_0x1bd0b4,a0_0x5e6a['TPDciZ']={},a0_0x5e6a['eSCRuS']=!![];}const _0x2c1aa9=_0x2ceab0[0x0],_0x1d3006=_0x1fbd7f+_0x2c1aa9,_0x2c10ed=a0_0x5e6a['TPDciZ'][_0x1d3006];return!_0x2c10ed?(_0x5e6a26=a0_0x5e6a['yqYOqC'](_0x5e6a26),a0_0x5e6a['TPDciZ'][_0x1d3006]=_0x5e6a26):_0x5e6a26=_0x2c10ed,_0x5e6a26;}(function(_0x3ae6f4,_0x6551ce){const _0x28fa6e=a0_0x5e6a,_0x343291=_0x3ae6f4();while(!![]){try{const _0x1d67b4=parseInt(_0x28fa6e(0x231))/0x1*(parseInt(_0x28fa6e(0x1e4))/0x2)+-parseInt(_0x28fa6e(0x20c))/0x3+-parseInt(_0x28fa6e(0x246))/0x4*(parseInt(_0x28fa6e(0x233))/0x5)+-parseInt(_0x28fa6e(0x1eb))/0x6+-parseInt(_0x28fa6e(0x1cf))/0x7*(-parseInt(_0x28fa6e(0x237))/0x8)+-parseInt(_0x28fa6e(0x1f3))/0x9+-parseInt(_0x28fa6e(0x1d9))/0xa*(-parseInt(_0x28fa6e(0x20b))/0xb);if(_0x1d67b4===_0x6551ce)break;else _0x343291['push'](_0x343291['shift']());}catch(_0x124b4e){_0x343291['push'](_0x343291['shift']());}}}(a0_0x2cea,0x3ef20));import{TOOL_STATUS,OPERATION_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BaseTool{constructor(_0x181af8={},_0x3e8586=null){const _0x570752=a0_0x5e6a;this['id']=this[_0x570752(0x216)][_0x570752(0x1dd)][_0x570752(0x1fa)]()[_0x570752(0x1ee)]('tool',''),this[_0x570752(0x200)]=_0x181af8,this['logger']=_0x3e8586,this[_0x570752(0x21c)]=![],this['isAsync']=![],this['timeout']=_0x181af8['timeout']||SYSTEM_DEFAULTS[_0x570752(0x22b)],this['maxConcurrentOperations']=_0x181af8[_0x570752(0x1db)]||0x1,this['activeOperations']=new Map(),this[_0x570752(0x23f)]=[],this[_0x570752(0x238)]=_0x181af8[_0x570752(0x1e5)]!==![],this['lastUsed']=null,this[_0x570752(0x1d7)]=0x0;}['getDescription'](){const _0x27d551=a0_0x5e6a;throw new Error(_0x27d551(0x23e)+this['id']+'\x20must\x20implement\x20getDescription()');}['parseParameters'](_0x1b9452){throw new Error('Tool\x20'+this['id']+'\x20must\x20implement\x20parseParameters()');}async[a0_0x2a701a(0x21e)](_0x4644fd,_0x53c8e3){const _0x59f10b=a0_0x2a701a;throw new Error(_0x59f10b(0x23e)+this['id']+'\x20must\x20implement\x20execute()');}[a0_0x2a701a(0x1f2)](){const _0x323888=a0_0x2a701a;return{'id':this['id'],'async':this[_0x323888(0x1dc)],'requiresProject':this['requiresProject'],'timeout':this['timeout'],'maxConcurrentOperations':this['maxConcurrentOperations'],'enabled':this[_0x323888(0x238)],'supportedActions':this['getSupportedActions'](),'parameterSchema':this[_0x323888(0x1d5)]()};}[a0_0x2a701a(0x234)](_0x482f46){const _0x3702a8=a0_0x2a701a;try{if(!_0x482f46||typeof _0x482f46!=='object')return{'valid':![],'error':_0x3702a8(0x1da)};const requiredParams=this[_0x3702a8(0x1f1)]();for(const required of requiredParams){if(!(required in _0x482f46))return{'valid':![],'error':_0x3702a8(0x24e)+required};}const _0xe07fa7=this['validateParameterTypes'](_0x482f46);if(!_0xe07fa7['valid'])return _0xe07fa7;const _0x110841=this[_0x3702a8(0x1ed)](_0x482f46);if(!_0x110841[_0x3702a8(0x21a)])return _0x110841;return{'valid':!![]};}catch(_0x8bb48c){return{'valid':![],'error':_0x3702a8(0x241)+_0x8bb48c['message']};}}async[a0_0x2a701a(0x230)](_0x33a899,_0x49aaab){const _0x5dfeb6=a0_0x2a701a,_0x2b62e0=this[_0x5dfeb6(0x24d)](),_0x2c9ae0=Date['now']();if(!this['isEnabled'])throw new Error('Tool\x20'+this['id']+_0x5dfeb6(0x1e1));if(this['activeOperations']['size']>=this['maxConcurrentOperations'])throw new Error('Tool\x20'+this['id']+_0x5dfeb6(0x24f));const _0x57b534=this['validateParameters'](_0x33a899);if(!_0x57b534['valid'])throw new Error(_0x5dfeb6(0x241)+_0x57b534['error']);const _0x5ad226={'id':_0x2b62e0,'toolId':this['id'],'status':TOOL_STATUS[_0x5dfeb6(0x1d6)],'startTime':new Date()['toISOString'](),'params':_0x33a899,'context':this['sanitizeContext'](_0x49aaab)};this[_0x5dfeb6(0x1e9)][_0x5dfeb6(0x243)](_0x2b62e0,_0x5ad226);try{this['logger']?.[_0x5dfeb6(0x1ef)]('Tool\x20execution\x20started:\x20'+this['id'],{'operationId':_0x2b62e0,'toolId':this['id'],'context':_0x5ad226[_0x5dfeb6(0x21d)]});const _0xc9a465=await this['executeWithTimeout'](_0x33a899,_0x49aaab);return _0x5ad226['status']=TOOL_STATUS[_0x5dfeb6(0x203)],_0x5ad226['result']=_0xc9a465,_0x5ad226['endTime']=new Date()['toISOString'](),_0x5ad226[_0x5dfeb6(0x211)]=Date['now']()-_0x2c9ae0,this['lastUsed']=new Date()['toISOString'](),this['usageCount']++,this['logger']?.[_0x5dfeb6(0x1ef)]('Tool\x20execution\x20completed:\x20'+this['id'],{'operationId':_0x2b62e0,'executionTime':_0x5ad226['executionTime'],'success':!![]}),{'success':!![],'operationId':_0x2b62e0,'result':_0xc9a465,'executionTime':_0x5ad226['executionTime'],'toolId':this['id']};}catch(_0x212644){_0x5ad226['status']=TOOL_STATUS[_0x5dfeb6(0x22f)],_0x5ad226[_0x5dfeb6(0x1df)]=_0x212644['message'],_0x5ad226['endTime']=new Date()[_0x5dfeb6(0x236)](),_0x5ad226[_0x5dfeb6(0x211)]=Date[_0x5dfeb6(0x212)]()-_0x2c9ae0,this['logger']?.[_0x5dfeb6(0x1df)]('Tool\x20execution\x20failed:\x20'+this['id'],{'operationId':_0x2b62e0,'error':_0x212644['message'],'executionTime':_0x5ad226[_0x5dfeb6(0x211)]});throw _0x212644;}finally{this['operationHistory']['push']({..._0x5ad226}),this[_0x5dfeb6(0x1e9)][_0x5dfeb6(0x1f9)](_0x2b62e0),this[_0x5dfeb6(0x229)](),await this[_0x5dfeb6(0x1d8)](_0x2b62e0);}}async['getStatus'](_0x4233b9){const _0x46349e=a0_0x2a701a,_0x2ce568=this[_0x46349e(0x1e9)][_0x46349e(0x20d)](_0x4233b9);if(!_0x2ce568){const _0xd813c3=this[_0x46349e(0x23f)][_0x46349e(0x1d1)](_0x10cea3=>_0x10cea3['id']===_0x4233b9);if(_0xd813c3)return{'operationId':_0x4233b9,'status':_0xd813c3['status'],'result':_0xd813c3['result'],'error':_0xd813c3[_0x46349e(0x1df)],'executionTime':_0xd813c3['executionTime']};return{'operationId':_0x4233b9,'status':OPERATION_STATUS[_0x46349e(0x23a)],'error':_0x46349e(0x1f4)};}return{'operationId':_0x4233b9,'status':_0x2ce568['status'],'startTime':_0x2ce568[_0x46349e(0x1e2)],'executionTime':_0x2ce568[_0x46349e(0x1e0)]?new Date(_0x2ce568[_0x46349e(0x1e0)])[_0x46349e(0x225)]()-new Date(_0x2ce568['startTime'])[_0x46349e(0x225)]():Date[_0x46349e(0x212)]()-new Date(_0x2ce568['startTime'])['getTime']()};}async['cleanup'](_0x37aa3e){}['getSupportedActions'](){const _0x2c65a5=a0_0x2a701a;return[_0x2c65a5(0x21e)];}['getParameterSchema'](){return{'type':'object','properties':{},'required':[]};}[a0_0x2a701a(0x1f1)](){return[];}[a0_0x2a701a(0x240)](_0x1c9dab){return{'valid':!![]};}[a0_0x2a701a(0x1ed)](_0x136820){return{'valid':!![]};}async['executeWithTimeout'](_0x59eac3,_0x4f902c){return new Promise(async(_0x37f119,_0xad8e99)=>{const _0x523da4=a0_0x5e6a,_0x353b69=setTimeout(()=>{_0xad8e99(new Error('Tool\x20execution\x20timed\x20out\x20after\x20'+this['timeout']+'ms'));},this['timeout']);try{const _0x198bfa=await this[_0x523da4(0x21e)](_0x59eac3,_0x4f902c);clearTimeout(_0x353b69),_0x37f119(_0x198bfa);}catch(_0x50d0f9){clearTimeout(_0x353b69),_0xad8e99(_0x50d0f9);}});}['generateOperationId'](){const _0x185558=a0_0x2a701a;return this['id']+'-'+Date['now']()+'-'+Math['random']()[_0x185558(0x201)](0x24)[_0x185558(0x1f6)](0x2,0x9);}[a0_0x2a701a(0x1d2)](_0x409080){const _0x10b622=a0_0x2a701a,_0x17f4ff={..._0x409080};return delete _0x17f4ff['apiKeys'],delete _0x17f4ff[_0x10b622(0x1e6)],delete _0x17f4ff['passwords'],_0x17f4ff[_0x10b622(0x220)]&&_0x17f4ff['content'][_0x10b622(0x1ec)]>0x1f4&&(_0x17f4ff[_0x10b622(0x220)]=_0x17f4ff[_0x10b622(0x220)][_0x10b622(0x1fd)](0x0,0x1f4)+'...\x20[truncated]'),_0x17f4ff;}['cleanupHistory'](){const _0x4b6674=a0_0x2a701a,_0x521ca9=0x64;this[_0x4b6674(0x23f)][_0x4b6674(0x1ec)]>_0x521ca9&&(this['operationHistory']=this['operationHistory'][_0x4b6674(0x1d3)](-_0x521ca9));}[a0_0x2a701a(0x21f)](){const _0x4ff097=a0_0x2a701a;return{'toolId':this['id'],'usageCount':this['usageCount'],'lastUsed':this[_0x4ff097(0x226)],'activeOperations':this['activeOperations']['size'],'totalOperations':this[_0x4ff097(0x23f)][_0x4ff097(0x1ec)],'averageExecutionTime':this[_0x4ff097(0x1d4)](),'successRate':this['calculateSuccessRate'](),'isEnabled':this['isEnabled']};}[a0_0x2a701a(0x1d4)](){const _0x3ee6fa=a0_0x2a701a,_0x5ff78f=this['operationHistory'][_0x3ee6fa(0x213)](_0x482d92=>_0x482d92['status']===TOOL_STATUS['COMPLETED']&&_0x482d92['executionTime']);if(_0x5ff78f['length']===0x0)return 0x0;const _0x1369a0=_0x5ff78f['reduce']((_0x2b8963,_0x11427b)=>_0x2b8963+_0x11427b['executionTime'],0x0);return Math['round'](_0x1369a0/_0x5ff78f[_0x3ee6fa(0x1ec)]);}[a0_0x2a701a(0x215)](){const _0x43b3e3=a0_0x2a701a;if(this[_0x43b3e3(0x23f)][_0x43b3e3(0x1ec)]===0x0)return 0x0;const _0x2a9bab=this['operationHistory']['filter'](_0x13639d=>_0x13639d[_0x43b3e3(0x1ff)]===TOOL_STATUS['COMPLETED']);return _0x2a9bab[_0x43b3e3(0x1ec)]/this[_0x43b3e3(0x23f)]['length']*0x64;}['enable'](){const _0x55a521=a0_0x2a701a;this['isEnabled']=!![],this[_0x55a521(0x219)]?.['info'](_0x55a521(0x202)+this['id']);}[a0_0x2a701a(0x1f7)](){const _0x1bbc5d=a0_0x2a701a;this[_0x1bbc5d(0x238)]=![],this['logger']?.['info']('Tool\x20disabled:\x20'+this['id']);}[a0_0x2a701a(0x242)](){const _0x59a875=a0_0x2a701a;this[_0x59a875(0x1d7)]=0x0,this['lastUsed']=null,this['operationHistory']=[],this[_0x59a875(0x219)]?.['info'](_0x59a875(0x20a)+this['id']);}}class ToolsRegistry{constructor(_0x46f8c5=null){const _0x27ffeb=a0_0x2a701a;this['logger']=_0x46f8c5,this['tools']=new Map(),this['toolDescriptions']=new Map(),this[_0x27ffeb(0x22e)]=new Map(),this['asyncOperations']=new Map();}async['registerTool'](_0x145683){const _0x258b43=a0_0x2a701a;try{const _0x46ce21=new _0x145683();if(!(_0x46ce21 instanceof BaseTool))throw new Error('Tool\x20'+_0x145683[_0x258b43(0x1dd)]+_0x258b43(0x1d0));const _0xabda3f=_0x46ce21[_0x258b43(0x1f2)]();await this[_0x258b43(0x239)](_0x46ce21),this[_0x258b43(0x20f)]['set'](_0x46ce21['id'],_0x46ce21),this['toolDescriptions'][_0x258b43(0x243)](_0x46ce21['id'],_0x46ce21['getDescription']()),this[_0x258b43(0x22e)][_0x258b43(0x243)](_0x46ce21['id'],_0xabda3f),this['logger']?.[_0x258b43(0x1ef)](_0x258b43(0x1fb)+_0x46ce21['id'],{'capabilities':_0xabda3f['supportedActions'],'async':_0xabda3f[_0x258b43(0x204)],'requiresProject':_0xabda3f[_0x258b43(0x21c)]});}catch(_0x448bd4){this['logger']?.[_0x258b43(0x1df)]('Tool\x20registration\x20failed:\x20'+_0x448bd4[_0x258b43(0x235)],{'toolClass':_0x145683[_0x258b43(0x1dd)]});throw _0x448bd4;}}async['discoverTools'](_0x5b6129){return 0x0;}async[a0_0x2a701a(0x239)](_0x234db8){const _0x51ba9d=a0_0x2a701a,requiredMethods=[_0x51ba9d(0x218),_0x51ba9d(0x232),'execute'];for(const _0x187b50 of requiredMethods){if(typeof _0x234db8[_0x187b50]!==_0x51ba9d(0x224))throw new Error('Tool\x20'+_0x234db8['id']+'\x20missing\x20required\x20method:\x20'+_0x187b50);}try{const _0x1bb962=_0x234db8['parseParameters']('test\x20content');if(typeof _0x1bb962!=='object')throw new Error(_0x51ba9d(0x23e)+_0x234db8['id']+_0x51ba9d(0x209));}catch(_0x150bca){}const _0x577426=_0x234db8['getCapabilities']();if(!_0x577426||typeof _0x577426!=='object')throw new Error('Tool\x20'+_0x234db8['id']+_0x51ba9d(0x23b));}['getTool'](_0x1878d1){const _0x501026=a0_0x2a701a;return this[_0x501026(0x20f)]['get'](_0x1878d1)||null;}['getToolCapabilities'](){const _0x32224d=a0_0x2a701a,_0xf4a954={};for(const [_0x1bc28e,_0x1b7fa4]of this['tools']['entries']()){_0x1b7fa4['isEnabled']&&(_0xf4a954[_0x1bc28e]={'description':this[_0x32224d(0x20e)][_0x32224d(0x20d)](_0x1bc28e),'capabilities':this['toolCapabilities']['get'](_0x1bc28e),'usageStats':_0x1b7fa4['getUsageStats']()});}return _0xf4a954;}async[a0_0x2a701a(0x207)](_0x4c7032,_0x5d22de,_0x157d28){const _0x38efc6=a0_0x2a701a,_0x6f6a9=this['getTool'](_0x4c7032);if(!_0x6f6a9)throw new Error(_0x38efc6(0x1f8)+_0x4c7032);if(!_0x6f6a9['isEnabled'])throw new Error('Tool\x20is\x20disabled:\x20'+_0x4c7032);return await _0x6f6a9['executeWithLifecycle'](_0x5d22de,_0x157d28);}['listTools'](){const _0x5b6de0=a0_0x2a701a;return Array['from'](this[_0x5b6de0(0x20f)]['keys']());}['generateToolDescriptionsForPrompt'](_0x529691=[],_0x12e609={}){const _0xae4230=a0_0x2a701a,{includeExamples:includeExamples=!![],includeUsageGuidelines:includeUsageGuidelines=!![],includeSecurityNotes:includeSecurityNotes=!![],compact:compact=![]}=_0x12e609,_0x54fa51=_0x529691[_0xae4230(0x1ec)]>0x0?_0x529691[_0xae4230(0x213)](_0x1bf2a9=>this[_0xae4230(0x20f)][_0xae4230(0x206)](_0x1bf2a9)):Array['from'](this[_0xae4230(0x20f)][_0xae4230(0x24c)]());if(_0x54fa51['length']===0x0)return'';let _0x4ae7a2='\x0a##\x20AVAILABLE\x20TOOLS\x0a\x0a';_0x4ae7a2+=_0xae4230(0x1ea);for(const _0x5db326 of _0x54fa51){const _0x547de9=this[_0xae4230(0x20f)]['get'](_0x5db326);if(!_0x547de9||!_0x547de9['isEnabled'])continue;try{if(compact){const _0x23bfa8=_0x547de9[_0xae4230(0x1f2)](),_0x142656=_0x23bfa8[_0xae4230(0x1e3)]||[_0xae4230(0x21e)];_0x4ae7a2+='**'+_0x5db326+_0xae4230(0x223)+_0x142656['join'](',\x20')+'\x0a';}else _0x4ae7a2+=_0xae4230(0x22c)+_0x5db326[_0xae4230(0x228)]()+_0xae4230(0x1fc),_0x4ae7a2+=_0x547de9['getDescription'](),_0x4ae7a2+='\x0a\x0a---\x0a\x0a';}catch(_0x4e9d25){this['logger']?.['warn'](_0xae4230(0x1e7)+_0x5db326,{'error':_0x4e9d25['message']});}}return compact&&(_0x4ae7a2+='\x0aUse\x20[tool\x20id=\x22tool-name\x22]<parameters>[/tool]\x20or\x20JSON\x20format\x20to\x20invoke\x20tools.\x0a\x0a'),_0x4ae7a2+=_0xae4230(0x1f5),_0x4ae7a2+=_0xae4230(0x222),_0x4ae7a2+='###\x20Format\x201:\x20Bracket\x20Notation\x0a',_0x4ae7a2+=_0xae4230(0x221),_0x4ae7a2+='[tool\x20id=\x22toolname\x22]\x0a',_0x4ae7a2+='<parameters\x20here>\x0a',_0x4ae7a2+='[/tool]\x0a',_0x4ae7a2+='```\x0a\x0a',_0x4ae7a2+='###\x20Format\x202:\x20JSON\x20in\x20Markdown\x20Code\x20Block\x20(REQUIRED\x20for\x20JSON)\x0a',_0x4ae7a2+='```\x0a',_0x4ae7a2+=_0xae4230(0x1fe),_0x4ae7a2+='{\x0a',_0x4ae7a2+=_0xae4230(0x248),_0x4ae7a2+='\x20\x20\x22parameters\x22:\x20{\x20...\x20}\x20or\x20\x22actions\x22:\x20[\x20...\x20]\x0a',_0x4ae7a2+='}\x0a',_0x4ae7a2+='```\x0a',_0x4ae7a2+=_0xae4230(0x24b),_0x4ae7a2+='**WARNING**:\x20Plain\x20JSON\x20without\x20markdown\x20code\x20blocks\x20(```json)\x20will\x20NOT\x20be\x20executed!\x0a',_0x4ae7a2+='Always\x20wrap\x20JSON\x20tool\x20commands\x20in\x20```json\x20...\x20```\x20blocks.\x0a\x0a',_0x4ae7a2+=_0xae4230(0x23d),_0x4ae7a2+=_0xae4230(0x247),_0x4ae7a2+=_0xae4230(0x22a),_0x4ae7a2+=_0xae4230(0x210),_0x4ae7a2+='\x20\x20\x20\x20<parameter>value</parameter>\x0a',_0x4ae7a2+='\x20\x20</tool>\x0a',_0x4ae7a2+='</tool-command>\x0a',_0x4ae7a2+=_0xae4230(0x24b),_0x4ae7a2+='After\x20invoking\x20a\x20tool,\x20WAIT\x20for\x20the\x20actual\x20response.\x20Do\x20NOT\x20generate\x20imaginary\x20responses.\x0a',_0x4ae7a2;}['enhanceSystemPrompt'](_0x86f4d0,_0x223aae=[],_0x354fc6={}){const _0xd2a83f=a0_0x2a701a,_0x457e2f=this['generateToolDescriptionsForPrompt'](_0x223aae,_0x354fc6);if(!_0x457e2f['trim']())return _0x86f4d0||'';const _0x527852=_0x86f4d0||'';if(_0x527852['includes'](_0xd2a83f(0x245)))return _0x527852['replace'](/## AVAILABLE TOOLS[\s\S]*?(?=##|$)/,_0x457e2f+'\x0a');const _0x3a97d1=_0xd2a83f(0x1e8);return _0x527852+(_0x527852[_0xd2a83f(0x1de)]('\x0a')?'':'\x0a')+_0x457e2f+_0x3a97d1+'\x0a';}['getAvailableToolsForUI'](){const _0x88908c=a0_0x2a701a,_0x465a99=[];for(const [_0x35cf9d,_0x676019]of this[_0x88908c(0x20f)]['entries']()){const _0x548f02=_0x676019[_0x88908c(0x1f2)](),_0x59dd17=_0x676019['getDescription'](),_0x369f2c=_0x59dd17['split']('\x0a')[_0x88908c(0x1d1)](_0x2b6c16=>_0x2b6c16[_0x88908c(0x217)]()['length']>0x0)||'',_0x1097d5=_0x369f2c[_0x88908c(0x1ee)](/^.*Tool:\s*/i,'')[_0x88908c(0x1ee)](/\s*-.*$/,'')['trim']();_0x465a99[_0x88908c(0x244)]({'id':_0x35cf9d,'name':_0x1097d5||_0x35cf9d['charAt'](0x0)[_0x88908c(0x228)]()+_0x35cf9d[_0x88908c(0x1d3)](0x1),'description':_0x369f2c,'category':this[_0x88908c(0x1f0)](_0x35cf9d),'enabled':_0x548f02[_0x88908c(0x1e5)],'async':_0x548f02[_0x88908c(0x204)],'requiresProject':_0x548f02['requiresProject'],'className':_0x676019['constructor']['name']});}return _0x465a99['sort']((_0x5b2404,_0x52887f)=>_0x5b2404['name'][_0x88908c(0x249)](_0x52887f['name']));}['_getToolCategory'](_0x503f8c){const _0x445faa=a0_0x2a701a,_0x5d8c3c={'terminal':_0x445faa(0x214),'filesystem':'File\x20Operations','browser':_0x445faa(0x21b),'agentdelay':'Utility'};return _0x5d8c3c[_0x503f8c]||_0x445faa(0x24a);}[a0_0x2a701a(0x227)](){const _0x469982=a0_0x2a701a,_0x45e2a1=Array[_0x469982(0x208)](this[_0x469982(0x20f)]['values']())['filter'](_0x2211e6=>_0x2211e6['isEnabled']),_0x5d84dc=Array['from'](this['tools']['values']())[_0x469982(0x23c)]((_0x35ff73,_0x4b8976)=>_0x35ff73+_0x4b8976['usageCount'],0x0);return{'totalTools':this['tools']['size'],'enabledTools':_0x45e2a1['length'],'totalOperations':_0x5d84dc,'activeOperations':this[_0x469982(0x22d)][_0x469982(0x205)]};}}export{BaseTool,ToolsRegistry};
|
package/src/tools/browserTool.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x26aab3=a0_0x4cbd;(function(_0x1490e4,_0x498d3c){const _0x352f5a=a0_0x4cbd,_0x1ba6b0=_0x1490e4();while(!![]){try{const _0x583a4a=parseInt(_0x352f5a(0x191))/0x1*(parseInt(_0x352f5a(0x16c))/0x2)+-parseInt(_0x352f5a(0x165))/0x3+-parseInt(_0x352f5a(0x186))/0x4+parseInt(_0x352f5a(0x16b))/0x5*(parseInt(_0x352f5a(0x162))/0x6)+-parseInt(_0x352f5a(0x1c2))/0x7*(-parseInt(_0x352f5a(0x1ae))/0x8)+parseInt(_0x352f5a(0x169))/0x9+parseInt(_0x352f5a(0x1b0))/0xa*(-parseInt(_0x352f5a(0x1bc))/0xb);if(_0x583a4a===_0x498d3c)break;else _0x1ba6b0['push'](_0x1ba6b0['shift']());}catch(_0x1a40ae){_0x1ba6b0['push'](_0x1ba6b0['shift']());}}}(a0_0x1f06,0x9aedb));import{BaseTool}from'./baseTool.js';function a0_0x1f06(){const _0x533863=['vhLWzwqG','CMLNAhq','y2XVC2vcCM93C2vY','u2nYzwvUC2HVDcbZyxzLzdOG','Bg9Nz2vY','ywrKvg9iAxn0B3j5','u2nYB2XSzwqG','C2v0vxnLCKfNzw50','C2XPy2u','Dg9ju09tDhjPBMC','AxndB25Uzwn0zwq','zNvSBc1WywDL','ihrVigjLia','zgLYBMfTzq','zxHLy3v0zq','AxnbCNjHEq','ywXSB3DLzerVBwfPBNm','DhLWzq','oIbKAxjLy3rPB24GAxmGCMvXDwLYzwqGzM9YihnJCM9SBa','zg93BG','B3v0Chv0ugf0Aa','yNjVD3nLCG','zgLYzwn0Aw9U','y2XLyw51CejYB3DZzxi','z2v0ugfYyw1LDgvYu2nOzw1H','oda4sw1zAgfs','D2fPDfnLBgvJDg9Y','nZa2nZi2mfbXtNn2zW','DhjPBq','BM93','C2v0vMLLD3bVCNq','zNvSBfbHz2u','C2vSzwn0qwXS','ls1KAxnHyMXLlxnLDhvPzc1Zyw5KyM94','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','C3rYAw5N','D2fPDfr5Cgu','qwn0Aw9Uia','rMfPBgvKihrVignSB3nLigjYB3DZzxi6ia','mJj2vKvwzLC','CgfYC2vqyxjHBwv0zxjZ','zgvSzxrL','D2fPDezVCLnLBgvJDg9Y','igzYB20G','z2v0rgvZy3jPChrPB24','odm1mdnQELnTBxm','yxr0CMLIDxrL','CxvLCNLtzwXLy3rVCG','Bg9HzfrPBwu','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','DMLLD3bVCNq','igj5DgvZicHTyxGG','DxnLCKfNzw50','tMf2AwDHDgvKihrVia','D2fPDc1ZzwXLy3rVCG','AgfZ','oIbLAxrOzxiGD2fPDc10Aw1Lig9YihDHAxqTC2vSzwn0B3iGAxmGCMvXDwLYzwq','A2v5yM9HCMq','C2nYB2XSqNK','Aw5JBhvKzxm','z290BW','D2fPDc10ExbL','z2v0ugfNzq','C2L6zq','y2XVC2u','D2fPDc10Aw1L','zxzHBhvHDgu','CMvXDwLYzxnqCM9Qzwn0','C29Tzq','BwvZC2fNzq','C2vSzwn0B3i','ChvZAa','Bwf4u2nYzwvUC2HVDfnPEMu','D2fPDfrPBwu','zM9JDxm','Dgv4Da','y2XPy2S','CgfNzq','vhLWzsbMywLSzwqGB24G','AgvHzgXLC3m','oIbPBNzHBgLKihnJCM9SBcbKAxjLy3rPB246ia','yNjVD3nLCKLUC3rHBMnLCW','C2nYB2XS','ywn0Aw9UCW','yxjYyxK','zxH0CMfJDa','rxH0CMfJDgvKia','mtjyvwj5A0y','tMf2AwDHDgLVBIbMywLSzwq6ia','CMvSyxrPDMu','mtq4odyWnLDwwK9KyW','C2nYB2XStgvMDa','AxnbBgXVD2vKvxjS','D2fPDa','oti3nJK2nK9uvK15tG','qNjVD3nLCIbPBNn0yw5JzsbJBg9Zzwq','ndq0mtqWweHWBKjp','mty0ChnSrgLk','Cg5N','Dgv4DenVBNrLBNq','z2v0','oIbVDxrWDxqTCgf0AcbPCYbYzxf1AxjLzcbMB3iGC2nYzwvUC2HVDa','AxnbC3LUyW','zxHLyW','C2nYzwvUC2HVDa','DgLTzw91Da','oIb0zxH0igLZihjLCxvPCMvKigzVCIb0ExbL','Dg9mB3DLCKnHC2u','B3bLCMf0Aw9UsgLZDg9YEq','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','Dhj1zq','oIb0ExbLigLZihjLCxvPCMvK','zw50CMLLCW','AgvPz2H0','BwTKAxi','AgLKzgvU','BgvMDa','CMf3q29UDgvUDa','yNjVD3nLCKnVBMzPzW','ls1KAxnHyMXLlwDWDq','ls1UBY1Zyw5KyM94','CMvZB2X2zq','D2LKDgG','mJu1nZi4wfHRBwXI','qNjVD3nLCIbPBNn0yw5JzsbUB3qGzM91BMqGkgfSCMvHzhKGy2XVC2vKkq','vw5RBM93BIbHy3rPB24GDhLWztOG','zxjYB3i','C3rHCNrZv2L0Aa','DMLZAwjSzq','BMv0D29YA2LKBguW','B3v0Chv0lxbHDgG','z2v0qNjVD3nLCG','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','BgvUz3rO','mJm3n2PXCM1xEG','yMXVy2TLzerVBwfPBNm','BMf2AwDHDgu','DxjS'];a0_0x1f06=function(){return _0x533863;};return a0_0x1f06();}import a0_0x8d43c4 from'../utilities/tagParser.js';import a0_0x469b6e from'puppeteer';function a0_0x4cbd(_0x2d1771,_0x5e1cca){_0x2d1771=_0x2d1771-0x14e;const _0x1f06f5=a0_0x1f06();let _0x4cbdca=_0x1f06f5[_0x2d1771];if(a0_0x4cbd['AFieWr']===undefined){var _0x268ba1=function(_0x4fb485){const _0x555399='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x8d43c4='',_0x469b6e='';for(let _0x1ca9bb=0x0,_0x29d635,_0xe88967,_0xffa158=0x0;_0xe88967=_0x4fb485['charAt'](_0xffa158++);~_0xe88967&&(_0x29d635=_0x1ca9bb%0x4?_0x29d635*0x40+_0xe88967:_0xe88967,_0x1ca9bb++%0x4)?_0x8d43c4+=String['fromCharCode'](0xff&_0x29d635>>(-0x2*_0x1ca9bb&0x6)):0x0){_0xe88967=_0x555399['indexOf'](_0xe88967);}for(let _0x448648=0x0,_0x41e8eb=_0x8d43c4['length'];_0x448648<_0x41e8eb;_0x448648++){_0x469b6e+='%'+('00'+_0x8d43c4['charCodeAt'](_0x448648)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x469b6e);};a0_0x4cbd['TAvHHF']=_0x268ba1,a0_0x4cbd['rvbawh']={},a0_0x4cbd['AFieWr']=!![];}const _0x34d446=_0x1f06f5[0x0],_0x5eaad4=_0x2d1771+_0x34d446,_0x2d8ddb=a0_0x4cbd['rvbawh'][_0x5eaad4];return!_0x2d8ddb?(_0x4cbdca=a0_0x4cbd['TAvHHF'](_0x4cbdca),a0_0x4cbd['rvbawh'][_0x5eaad4]=_0x4cbdca):_0x4cbdca=_0x2d8ddb,_0x4cbdca;}import a0_0x1ca9bb from'fs/promises';import a0_0x29d635 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BrowserTool extends BaseTool{constructor(_0xe88967={},_0xffa158=null){const _0x79f755=a0_0x4cbd;super(_0xe88967,_0xffa158),this[_0x79f755(0x14e)]=![],this[_0x79f755(0x171)]=!![],this[_0x79f755(0x174)]=_0xe88967['timeout']||0xea60,this['maxConcurrentOperations']=_0xe88967[_0x79f755(0x178)]||0x2,this[_0x79f755(0x181)]={'headless':_0xe88967[_0x79f755(0x15a)]!==![],'viewport':_0xe88967[_0x79f755(0x1c7)]||{'width':0x500,'height':0x2d0},'userAgent':_0xe88967[_0x79f755(0x1c9)]||'Mozilla/5.0\x20(Windows\x20NT\x2010.0;\x20Win64;\x20x64)\x20AppleWebKit/537.36','timeout':_0xe88967['pageTimeout']||0x7530},this[_0x79f755(0x15c)]=new Map(),this[_0x79f755(0x1a5)]=_0xe88967[_0x79f755(0x1a5)]||null,this[_0x79f755(0x192)]=_0xe88967['blockedDomains']||[],this['maxScreenshotSize']=_0xe88967[_0x79f755(0x153)]||0x5*0x400*0x400,this[_0x79f755(0x177)]=[];}[a0_0x26aab3(0x1c1)](){const _0x35c1e7=a0_0x26aab3;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[_0x35c1e7(0x181)][_0x35c1e7(0x1c7)][_0x35c1e7(0x185)]+'x'+this['browserConfig'][_0x35c1e7(0x1c7)][_0x35c1e7(0x17c)]+'\x0aTIMEOUT:\x20'+this[_0x35c1e7(0x181)][_0x35c1e7(0x174)]+'ms\x20per\x20operation\x0aMAX\x20WAIT\x20TIME:\x2030\x20seconds\x20(30000ms)\x0a\x20\x20\x20\x20';}[a0_0x26aab3(0x1bd)](_0x448648){const _0x5cb4a1=a0_0x26aab3;try{if(_0x448648[_0x5cb4a1(0x1b1)]()[_0x5cb4a1(0x18a)]('{')){const _0x25b7b9=JSON['parse'](_0x448648);return!_0x25b7b9['actions']&&(_0x25b7b9[_0x5cb4a1(0x15e)]=[]),!Array[_0x5cb4a1(0x1a4)](_0x25b7b9['actions'])&&(_0x25b7b9['actions']=[_0x25b7b9[_0x5cb4a1(0x15e)]]),_0x25b7b9;}const _0x41e8eb={},_0x2b43a4=[],_0x5cc2dd=[_0x5cb4a1(0x193),_0x5cb4a1(0x157),_0x5cb4a1(0x1a6),'wait',_0x5cb4a1(0x173),_0x5cb4a1(0x160),_0x5cb4a1(0x15d),'close'];for(const _0x105601 of _0x5cc2dd){const _0x332511=new RegExp('<'+_0x105601+'\x5cs+([^>]*?)\x5cs*\x5c/?>','gi');let _0x274fe9;while((_0x274fe9=_0x332511[_0x5cb4a1(0x172)](_0x448648))!==null){const _0x448983=_0x274fe9[0x1],_0x5c9a9a=this['parseAttributes'](_0x448983),_0x495bea={'type':_0x105601,..._0x5c9a9a};_0x495bea[_0x5cb4a1(0x18d)]&&(_0x495bea['outputPath']=_0x495bea[_0x5cb4a1(0x18d)],delete _0x495bea[_0x5cb4a1(0x18d)]),_0x495bea['wait-time']&&(_0x495bea['waitTime']=parseInt(_0x495bea[_0x5cb4a1(0x1d6)],0xa),delete _0x495bea[_0x5cb4a1(0x1d6)]),_0x495bea['wait-selector']&&(_0x495bea['waitSelector']=_0x495bea[_0x5cb4a1(0x1cb)],delete _0x495bea[_0x5cb4a1(0x1cb)]),_0x495bea[_0x5cb4a1(0x1d2)]&&(_0x495bea['waitType']=_0x495bea['wait-type'],delete _0x495bea['wait-type']),_0x495bea['full-page']&&(_0x495bea[_0x5cb4a1(0x1b4)]=_0x495bea[_0x5cb4a1(0x1a0)]===_0x5cb4a1(0x179),delete _0x495bea['full-page']),_0x2b43a4['push'](_0x495bea);}}return _0x41e8eb[_0x5cb4a1(0x15e)]=Array[_0x5cb4a1(0x1a4)](_0x2b43a4)?_0x2b43a4:[],_0x41e8eb[_0x5cb4a1(0x180)]=_0x448648[_0x5cb4a1(0x1b1)](),_0x41e8eb;}catch(_0x19a875){return this[_0x5cb4a1(0x199)]?.[_0x5cb4a1(0x189)]('Failed\x20to\x20parse\x20browser\x20parameters',{'error':_0x19a875['message']}),{'actions':[],'rawContent':_0x448648['trim'](),'parseError':_0x19a875['message']};}}['parseAttributes'](_0x5140f0){const _0x947b0={};if(!_0x5140f0)return _0x947b0;const _0x2bc92d=/([\w-]+)\s*=\s*["']([^"']*)["']/g;let _0x1d4608;while((_0x1d4608=_0x2bc92d['exec'](_0x5140f0))!==null){const _0x4b2a45=_0x1d4608[0x1],_0x5ccdf7=_0x1d4608[0x2];_0x947b0[_0x4b2a45]=_0x5ccdf7;}return _0x947b0;}[a0_0x26aab3(0x1c6)](){return['actions'];}[a0_0x26aab3(0x18f)](_0x466147){const _0x50b16d=a0_0x26aab3,_0x5bfece=[];if(!_0x466147['actions']||!Array['isArray'](_0x466147[_0x50b16d(0x15e)])||_0x466147['actions']['length']===0x0)_0x5bfece['push'](_0x50b16d(0x1b7));else for(const [_0x1c61ed,_0xb6d3de]of _0x466147['actions'][_0x50b16d(0x17b)]()){if(!_0xb6d3de[_0x50b16d(0x1a6)]){_0x5bfece[_0x50b16d(0x152)]('Action\x20'+(_0x1c61ed+0x1)+_0x50b16d(0x17a));continue;}switch(_0xb6d3de[_0x50b16d(0x1a6)]){case _0x50b16d(0x193):if(!_0xb6d3de[_0x50b16d(0x194)])_0x5bfece['push']('Action\x20'+(_0x1c61ed+0x1)+':\x20url\x20is\x20required\x20for\x20navigate');else!this['isAllowedUrl'](_0xb6d3de['url'])&&_0x5bfece['push'](_0x50b16d(0x1ba)+(_0x1c61ed+0x1)+':\x20URL\x20not\x20allowed:\x20'+_0xb6d3de['url']);break;case'click':case _0x50b16d(0x160):!_0xb6d3de['selector']&&_0x5bfece[_0x50b16d(0x152)]('Action\x20'+(_0x1c61ed+0x1)+':\x20selector\x20is\x20required\x20for\x20'+_0xb6d3de[_0x50b16d(0x1a6)]);break;case'type':!_0xb6d3de[_0x50b16d(0x151)]&&_0x5bfece[_0x50b16d(0x152)]('Action\x20'+(_0x1c61ed+0x1)+':\x20selector\x20is\x20required\x20for\x20type');!_0xb6d3de['text']&&_0xb6d3de['text']!==''&&_0x5bfece['push'](_0x50b16d(0x1ba)+(_0x1c61ed+0x1)+_0x50b16d(0x175));break;case'wait':!_0xb6d3de[_0x50b16d(0x154)]&&!_0xb6d3de[_0x50b16d(0x1af)]&&_0x5bfece[_0x50b16d(0x152)](_0x50b16d(0x1ba)+(_0x1c61ed+0x1)+_0x50b16d(0x1cd));_0xb6d3de[_0x50b16d(0x154)]&&(_0xb6d3de['waitTime']<0x64||_0xb6d3de['waitTime']>0x7530)&&_0x5bfece[_0x50b16d(0x152)](_0x50b16d(0x1ba)+(_0x1c61ed+0x1)+':\x20wait-time\x20must\x20be\x20between\x20100\x20and\x2030000\x20milliseconds');break;case _0x50b16d(0x173):!_0xb6d3de[_0x50b16d(0x1a9)]&&_0x5bfece['push']('Action\x20'+(_0x1c61ed+0x1)+_0x50b16d(0x170));break;case'scroll':if(!_0xb6d3de['direction'])_0x5bfece[_0x50b16d(0x152)]('Action\x20'+(_0x1c61ed+0x1)+_0x50b16d(0x1a7));else!['up','down','left',_0x50b16d(0x196)]['includes'](_0xb6d3de[_0x50b16d(0x1ab)])&&_0x5bfece['push']('Action\x20'+(_0x1c61ed+0x1)+_0x50b16d(0x15b)+_0xb6d3de['direction']);break;case'close':break;default:_0x5bfece[_0x50b16d(0x152)](_0x50b16d(0x1ba)+(_0x1c61ed+0x1)+':\x20unknown\x20action\x20type:\x20'+_0xb6d3de[_0x50b16d(0x1a6)]);}}return{'valid':_0x5bfece[_0x50b16d(0x190)]===0x0,'errors':_0x5bfece};}async[a0_0x26aab3(0x1a3)](_0x129e25,_0x343fe4){const _0x4bb0a4=a0_0x26aab3,{actions:_0x341bd6}=_0x129e25,{agentId:_0x400717,projectDir:_0x305cbe}=_0x343fe4,_0x24cf8f=_0x400717+'-'+(_0x305cbe||'default'),_0x25cc99=[];for(const _0x5af6a2 of _0x341bd6){try{let _0x3b8ffe;switch(_0x5af6a2['type']){case _0x4bb0a4(0x193):_0x3b8ffe=await this['navigate'](_0x5af6a2[_0x4bb0a4(0x194)],_0x24cf8f);break;case _0x4bb0a4(0x157):_0x3b8ffe=await this['click'](_0x5af6a2['selector'],_0x24cf8f);break;case _0x4bb0a4(0x1a6):_0x3b8ffe=await this[_0x4bb0a4(0x1a6)](_0x5af6a2['selector'],_0x5af6a2[_0x4bb0a4(0x156)],_0x24cf8f);break;case'wait':_0x3b8ffe=await this[_0x4bb0a4(0x168)](_0x5af6a2,_0x24cf8f);break;case'screenshot':_0x3b8ffe=await this['screenshot'](_0x5af6a2['outputPath'],_0x305cbe,_0x24cf8f,_0x5af6a2);break;case _0x4bb0a4(0x160):_0x3b8ffe=await this['extract'](_0x5af6a2['selector'],_0x5af6a2[_0x4bb0a4(0x1c3)]||'text',_0x24cf8f);break;case'scroll':_0x3b8ffe=await this['scroll'](_0x5af6a2,_0x24cf8f);break;case _0x4bb0a4(0x1d5):_0x3b8ffe=await this[_0x4bb0a4(0x197)](_0x24cf8f);break;default:throw new Error(_0x4bb0a4(0x188)+_0x5af6a2[_0x4bb0a4(0x1a6)]);}_0x25cc99['push'](_0x3b8ffe),this['addToHistory'](_0x5af6a2,_0x3b8ffe,_0x400717);}catch(_0x19a811){const _0x3b1d55={'success':![],'action':_0x5af6a2[_0x4bb0a4(0x1a6)],'error':_0x19a811['message'],'selector':_0x5af6a2['selector']||_0x5af6a2[_0x4bb0a4(0x194)]};_0x25cc99[_0x4bb0a4(0x152)](_0x3b1d55),this['addToHistory'](_0x5af6a2,_0x3b1d55,_0x400717);}}return{'success':!![],'actions':_0x25cc99,'executedActions':_0x341bd6[_0x4bb0a4(0x190)],'toolUsed':'browser'};}async[a0_0x26aab3(0x193)](_0x1b3346,_0x26c671){const _0x49b93f=a0_0x26aab3,_0x4e98d0=await this['getBrowser'](_0x26c671),_0x358e8b=await this[_0x49b93f(0x1d3)](_0x26c671),_0x2c700e=Date[_0x49b93f(0x1b2)]();try{await _0x358e8b[_0x49b93f(0x1d1)](_0x1b3346,{'waitUntil':_0x49b93f(0x18c),'timeout':this['browserConfig']['timeout']});const _0x36e202=await _0x358e8b['title'](),_0x1cf153=_0x358e8b['url']();return{'success':!![],'action':_0x49b93f(0x193),'url':_0x1cf153,'originalUrl':_0x1b3346,'title':_0x36e202,'loadTime':Date['now']()-_0x2c700e,'message':_0x49b93f(0x1ca)+_0x1b3346};}catch(_0x4e0bec){throw new Error(_0x49b93f(0x163)+_0x4e0bec['message']);}}async[a0_0x26aab3(0x157)](_0x2f6aec,_0x2e1e73){const _0x2db8a1=a0_0x26aab3,_0x5eeb0c=await this[_0x2db8a1(0x1d3)](_0x2e1e73);try{return await _0x5eeb0c[_0x2db8a1(0x1bf)](_0x2f6aec,{'timeout':0x1388}),await _0x5eeb0c[_0x2db8a1(0x157)](_0x2f6aec),{'success':!![],'action':_0x2db8a1(0x157),'selector':_0x2f6aec,'message':'Clicked\x20on\x20'+_0x2f6aec};}catch(_0xc495b6){throw new Error('Click\x20failed\x20on\x20'+_0x2f6aec+':\x20'+_0xc495b6['message']);}}async['type'](_0x2ed0ab,_0x101436,_0x3697dc){const _0x2c9586=a0_0x26aab3,_0x20c069=await this['getPage'](_0x3697dc);try{return await _0x20c069['waitForSelector'](_0x2ed0ab,{'timeout':0x1388}),await _0x20c069[_0x2c9586(0x155)](_0x2ed0ab),await _0x20c069[_0x2c9586(0x1ce)][_0x2c9586(0x1b5)](),await _0x20c069[_0x2c9586(0x1a6)](_0x2ed0ab,_0x101436),{'success':!![],'action':'type','selector':_0x2ed0ab,'text':_0x101436,'textLength':_0x101436['length'],'message':_0x2c9586(0x195)+_0x101436['length']+'\x20characters\x20into\x20'+_0x2ed0ab};}catch(_0x20e52d){throw new Error(_0x2c9586(0x159)+_0x2ed0ab+':\x20'+_0x20e52d['message']);}}async[a0_0x26aab3(0x168)](_0x31adbe,_0x36a39d){const _0x3e9cff=a0_0x26aab3,_0x199dd0=await this[_0x3e9cff(0x1d3)](_0x36a39d);try{if(_0x31adbe['waitTime'])return await _0x199dd0['waitForTimeout'](_0x31adbe['waitTime']),{'success':!![],'action':'wait','waitTime':_0x31adbe['waitTime'],'message':'Waited\x20'+_0x31adbe[_0x3e9cff(0x154)]+'ms'};if(_0x31adbe[_0x3e9cff(0x1af)]){const _0x2c8b8b=_0x31adbe[_0x3e9cff(0x1b9)]||_0x3e9cff(0x18b),_0x3a5272={'timeout':0x2710};return _0x2c8b8b===_0x3e9cff(0x17e)?await _0x199dd0['waitForSelector'](_0x31adbe[_0x3e9cff(0x1af)],{..._0x3a5272,'hidden':!![]}):await _0x199dd0['waitForSelector'](_0x31adbe['waitSelector'],_0x3a5272),{'success':!![],'action':'wait','waitSelector':_0x31adbe[_0x3e9cff(0x1af)],'waitType':_0x2c8b8b,'message':'Waited\x20for\x20'+_0x31adbe['waitSelector']+_0x3e9cff(0x1a1)+_0x2c8b8b};}}catch(_0x329c61){throw new Error('Wait\x20failed:\x20'+_0x329c61['message']);}}async[a0_0x26aab3(0x173)](_0x2772c8,_0x5867dd,_0x11c7e3,_0x5f11ae={}){const _0x18bfa8=a0_0x26aab3,_0x581c40=await this['getPage'](_0x11c7e3);try{const _0x14c67f=_0x5867dd?a0_0x29d635[_0x18bfa8(0x184)](_0x5867dd,_0x2772c8):a0_0x29d635[_0x18bfa8(0x184)](_0x2772c8),_0x4a423a=a0_0x29d635[_0x18bfa8(0x1a2)](_0x14c67f);await a0_0x1ca9bb[_0x18bfa8(0x17d)](_0x4a423a,{'recursive':!![]});const _0x34c769={'path':_0x14c67f,'type':_0x18bfa8(0x16d)};_0x5f11ae['fullPage']&&(_0x34c769['fullPage']=!![]);await _0x581c40[_0x18bfa8(0x173)](_0x34c769);const _0x17281b=await a0_0x1ca9bb['stat'](_0x14c67f);if(_0x17281b[_0x18bfa8(0x1d4)]>this[_0x18bfa8(0x153)])throw new Error('Screenshot\x20too\x20large:\x20'+_0x17281b[_0x18bfa8(0x1d4)]+_0x18bfa8(0x1c8)+this[_0x18bfa8(0x153)]+')');return{'success':!![],'action':_0x18bfa8(0x173),'outputPath':a0_0x29d635[_0x18bfa8(0x164)](_0x5867dd||process['cwd'](),_0x14c67f),'size':_0x17281b[_0x18bfa8(0x1d4)],'fullPage':!!_0x5f11ae[_0x18bfa8(0x1b4)],'message':_0x18bfa8(0x198)+_0x2772c8};}catch(_0x4c84b8){throw new Error('Screenshot\x20failed:\x20'+_0x4c84b8['message']);}}async['extract'](_0x1993d0,_0x2193ad,_0x30e8c9){const _0x279352=a0_0x26aab3,_0x12ce22=await this['getPage'](_0x30e8c9);try{await _0x12ce22['waitForSelector'](_0x1993d0,{'timeout':0x1388});let _0x376f97;return _0x2193ad==='text'?_0x376f97=await _0x12ce22['$eval'](_0x1993d0,_0x4359f9=>_0x4359f9[_0x279352(0x16e)]['trim']()):_0x376f97=await _0x12ce22['$eval'](_0x1993d0,(_0x5b28c2,_0x1b46c0)=>_0x5b28c2['getAttribute'](_0x1b46c0),_0x2193ad),{'success':!![],'action':_0x279352(0x160),'selector':_0x1993d0,'attribute':_0x2193ad,'data':_0x376f97,'message':_0x279352(0x161)+_0x2193ad+_0x279352(0x1c0)+_0x1993d0};}catch(_0x48bef9){throw new Error('Extract\x20failed\x20on\x20'+_0x1993d0+':\x20'+_0x48bef9['message']);}}async[a0_0x26aab3(0x15d)](_0x39e0cd,_0xbde1e3){const _0x2d954b=a0_0x26aab3,_0x1dbb6c=await this['getPage'](_0xbde1e3);try{const {direction:_0x5c5625,pixels:pixels=0x12c,selector:_0xbb5adb}=_0x39e0cd;return _0xbb5adb?await _0x1dbb6c[_0x2d954b(0x1d7)]((_0x3b53cd,_0x816d44,_0xbe560b)=>{const _0x3ebcd3=_0x2d954b,_0x10332b=document[_0x3ebcd3(0x1c4)](_0x3b53cd);if(_0x10332b){if(_0x816d44===_0x3ebcd3(0x1a8))_0x10332b['scrollTop']+=_0xbe560b;else{if(_0x816d44==='up')_0x10332b['scrollTop']-=_0xbe560b;else{if(_0x816d44==='right')_0x10332b[_0x3ebcd3(0x166)]+=_0xbe560b;else{if(_0x816d44===_0x3ebcd3(0x17f))_0x10332b['scrollLeft']-=_0xbe560b;}}}}},_0xbb5adb,_0x5c5625,pixels):await _0x1dbb6c[_0x2d954b(0x1d7)]((_0x9c1fce,_0x21414e)=>{const _0x630fa4=_0x2d954b;if(_0x9c1fce==='down')window[_0x630fa4(0x1cf)](0x0,_0x21414e);else{if(_0x9c1fce==='up')window['scrollBy'](0x0,-_0x21414e);else{if(_0x9c1fce===_0x630fa4(0x196))window['scrollBy'](_0x21414e,0x0);else{if(_0x9c1fce===_0x630fa4(0x17f))window[_0x630fa4(0x1cf)](-_0x21414e,0x0);}}}},_0x5c5625,pixels),{'success':!![],'action':_0x2d954b(0x15d),'direction':_0x5c5625,'pixels':pixels,'selector':_0xbb5adb||'page','message':_0x2d954b(0x19b)+_0x5c5625+'\x20by\x20'+pixels+'px'};}catch(_0x25310b){throw new Error('Scroll\x20failed:\x20'+_0x25310b[_0x2d954b(0x150)]);}}async[a0_0x26aab3(0x18e)](_0x22ebfc){const _0x24ede5=a0_0x26aab3;if(this['browserInstances'][_0x24ede5(0x1cc)](_0x22ebfc)){const _0x289e5d=this[_0x24ede5(0x15c)]['get'](_0x22ebfc);if(!_0x289e5d[_0x24ede5(0x1aa)][_0x24ede5(0x19f)]())this[_0x24ede5(0x15c)]['delete'](_0x22ebfc);else return _0x289e5d['browser'];}const _0x37a9ec=await a0_0x469b6e['launch']({'headless':this[_0x24ede5(0x181)][_0x24ede5(0x15a)],'args':[_0x24ede5(0x183),_0x24ede5(0x1b6),'--disable-dev-shm-usage',_0x24ede5(0x182)]}),_0x2f863b=await _0x37a9ec['newPage']();return await _0x2f863b[_0x24ede5(0x1b3)](this['browserConfig']['viewport']),await _0x2f863b[_0x24ede5(0x19c)](this[_0x24ede5(0x181)][_0x24ede5(0x1c9)]),this[_0x24ede5(0x15c)]['set'](_0x22ebfc,{'browser':_0x37a9ec,'page':_0x2f863b,'created':Date[_0x24ede5(0x1b2)]()}),setTimeout(()=>{this['cleanupBrowser'](_0x22ebfc);},0xa*0x3c*0x3e8),_0x37a9ec;}async['getPage'](_0x9ba9d5){const _0x4bb0e7=a0_0x26aab3;return await this[_0x4bb0e7(0x18e)](_0x9ba9d5),this['browserInstances']['get'](_0x9ba9d5)[_0x4bb0e7(0x158)];}async['closeBrowser'](_0x49bdb7){const _0x3bf325=a0_0x26aab3,_0x1af2e3=this['browserInstances'][_0x3bf325(0x16f)](_0x49bdb7);if(_0x1af2e3)try{return await _0x1af2e3[_0x3bf325(0x1aa)][_0x3bf325(0x1d5)](),this[_0x3bf325(0x15c)]['delete'](_0x49bdb7),{'success':!![],'action':'close','browserKey':_0x49bdb7,'message':_0x3bf325(0x16a)};}catch(_0x26fe9f){throw new Error(_0x3bf325(0x1bb)+_0x26fe9f['message']);}return{'success':!![],'action':'close','browserKey':_0x49bdb7,'message':_0x3bf325(0x187)};}async[a0_0x26aab3(0x1ac)](_0x19f920){const _0x360d60=a0_0x26aab3,_0xa9d346=this[_0x360d60(0x15c)][_0x360d60(0x16f)](_0x19f920);if(_0xa9d346)try{await _0xa9d346[_0x360d60(0x1aa)]['close']();}catch(_0x1569d7){}finally{this['browserInstances'][_0x360d60(0x1be)](_0x19f920);}}[a0_0x26aab3(0x167)](_0x474614){const _0x2c30ba=a0_0x26aab3;try{const _0x3607be=new URL(_0x474614),_0x440f39=_0x3607be['hostname'][_0x2c30ba(0x176)]();if(this['blockedDomains']['some'](_0x485c2a=>_0x440f39['includes'](_0x485c2a['toLowerCase']())))return![];if(this['allowedDomains']&&this['allowedDomains']['length']>0x0)return this[_0x2c30ba(0x1a5)][_0x2c30ba(0x14f)](_0x30f1b4=>_0x440f39[_0x2c30ba(0x1d0)](_0x30f1b4['toLowerCase']()));return!![];}catch{return![];}}[a0_0x26aab3(0x19a)](_0x513560,_0x213284,_0x5411ae){const _0x596d97=a0_0x26aab3,_0x4a9aef={'timestamp':new Date()[_0x596d97(0x19e)](),'agentId':_0x5411ae,'action':_0x513560['type'],'selector':_0x513560['selector']||_0x513560[_0x596d97(0x194)],'success':_0x213284['success'],'loadTime':_0x213284[_0x596d97(0x1c5)]||0x0};this['operationHistory'][_0x596d97(0x152)](_0x4a9aef),this[_0x596d97(0x177)][_0x596d97(0x190)]>0x64&&(this[_0x596d97(0x177)]=this['operationHistory'][_0x596d97(0x19d)](-0x64));}['getSupportedActions'](){const _0x17259e=a0_0x26aab3;return['navigate','click',_0x17259e(0x1a6),'wait','screenshot','extract',_0x17259e(0x15d),'close'];}[a0_0x26aab3(0x1ad)](){const _0x5ed5d6=a0_0x26aab3;return{'type':'object','properties':{'actions':{'type':_0x5ed5d6(0x15f),'minItems':0x1,'items':{'type':'object','properties':{'type':{'type':_0x5ed5d6(0x1b8),'enum':this['getSupportedActions']()},'url':{'type':_0x5ed5d6(0x1b8)},'selector':{'type':_0x5ed5d6(0x1b8)},'text':{'type':'string'},'outputPath':{'type':_0x5ed5d6(0x1b8)},'waitTime':{'type':'integer'},'waitSelector':{'type':_0x5ed5d6(0x1b8)},'attribute':{'type':_0x5ed5d6(0x1b8)},'direction':{'type':_0x5ed5d6(0x1b8)},'pixels':{'type':'integer'}},'required':[_0x5ed5d6(0x1a6)]}}},'required':['actions']};}async['cleanup'](_0x8a7248){const _0x45bbce=a0_0x26aab3;for(const [_0x40b98e]of this['browserInstances']){await this[_0x45bbce(0x1ac)](_0x40b98e);}}['getOperationHistory'](_0x3d7e9c=null){if(_0x3d7e9c)return this['operationHistory']['filter'](_0x4a17d6=>_0x4a17d6['agentId']===_0x3d7e9c);return[...this['operationHistory']];}}export default BrowserTool;
|
|
1
|
+
const a0_0x546e41=a0_0x2727;(function(_0x3e69fa,_0x5d5338){const _0x54db74=a0_0x2727,_0x15bfb0=_0x3e69fa();while(!![]){try{const _0xb9983c=-parseInt(_0x54db74(0xff))/0x1*(-parseInt(_0x54db74(0x12d))/0x2)+parseInt(_0x54db74(0x100))/0x3*(parseInt(_0x54db74(0x114))/0x4)+-parseInt(_0x54db74(0x125))/0x5*(parseInt(_0x54db74(0xdc))/0x6)+parseInt(_0x54db74(0xd3))/0x7+parseInt(_0x54db74(0x13d))/0x8+-parseInt(_0x54db74(0x119))/0x9*(-parseInt(_0x54db74(0x103))/0xa)+-parseInt(_0x54db74(0xf5))/0xb;if(_0xb9983c===_0x5d5338)break;else _0x15bfb0['push'](_0x15bfb0['shift']());}catch(_0x4ba9ad){_0x15bfb0['push'](_0x15bfb0['shift']());}}}(a0_0x5638,0xbb214));import{BaseTool}from'./baseTool.js';import a0_0x4bf1a5 from'../utilities/tagParser.js';import a0_0x367d2a from'puppeteer';import a0_0x2a2cf4 from'fs/promises';import a0_0x5aa45f from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BrowserTool extends BaseTool{constructor(_0x4b9f5a={},_0x4959b9=null){const _0x15ccb8=a0_0x2727;super(_0x4b9f5a,_0x4959b9),this[_0x15ccb8(0x123)]=![],this[_0x15ccb8(0xe8)]=!![],this['timeout']=_0x4b9f5a[_0x15ccb8(0xd4)]||0xea60,this[_0x15ccb8(0xd8)]=_0x4b9f5a['maxConcurrentOperations']||0x2,this[_0x15ccb8(0xf4)]={'headless':_0x4b9f5a['headless']!==![],'viewport':_0x4b9f5a['viewport']||{'width':0x500,'height':0x2d0},'userAgent':_0x4b9f5a['userAgent']||_0x15ccb8(0xf1),'timeout':_0x4b9f5a[_0x15ccb8(0x107)]||0x7530},this['browserInstances']=new Map(),this[_0x15ccb8(0x10d)]=_0x4b9f5a['allowedDomains']||null,this[_0x15ccb8(0x137)]=_0x4b9f5a['blockedDomains']||[],this['maxScreenshotSize']=_0x4b9f5a[_0x15ccb8(0x11d)]||0x5*0x400*0x400,this[_0x15ccb8(0xe9)]=[];}['getDescription'](){const _0x2e1350=a0_0x2727;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']['viewport']['width']+'x'+this[_0x2e1350(0xf4)]['viewport'][_0x2e1350(0x14a)]+'\x0aTIMEOUT:\x20'+this['browserConfig'][_0x2e1350(0xd4)]+_0x2e1350(0x118);}[a0_0x546e41(0x143)](_0x5d497c){const _0x1c771c=a0_0x546e41;try{if(_0x5d497c['trim']()[_0x1c771c(0x112)]('{')){const _0x27116a=JSON[_0x1c771c(0xde)](_0x5d497c);return!_0x27116a['actions']&&(_0x27116a['actions']=[]),!Array['isArray'](_0x27116a[_0x1c771c(0x12e)])&&(_0x27116a[_0x1c771c(0x12e)]=[_0x27116a['actions']]),_0x27116a;}const _0x3ff084={},_0x351b2d=[],_0x27873c=[_0x1c771c(0x12c),_0x1c771c(0x134),_0x1c771c(0x148),'wait','screenshot','extract',_0x1c771c(0x147),'close'];for(const _0x271972 of _0x27873c){const _0x1c83de=new RegExp('<'+_0x271972+'\x5cs+([^>]*?)\x5cs*\x5c/?>','gi');let _0x1689b4;while((_0x1689b4=_0x1c83de[_0x1c771c(0x129)](_0x5d497c))!==null){const _0x5dd8dc=_0x1689b4[0x1],_0x638b0=this['parseAttributes'](_0x5dd8dc),_0x59b467={'type':_0x271972,..._0x638b0};_0x59b467['output-path']&&(_0x59b467[_0x1c771c(0x13e)]=_0x59b467['output-path'],delete _0x59b467[_0x1c771c(0x10c)]),_0x59b467['wait-time']&&(_0x59b467['waitTime']=parseInt(_0x59b467[_0x1c771c(0x141)],0xa),delete _0x59b467[_0x1c771c(0x141)]),_0x59b467['wait-selector']&&(_0x59b467[_0x1c771c(0x14b)]=_0x59b467[_0x1c771c(0xe1)],delete _0x59b467[_0x1c771c(0xe1)]),_0x59b467[_0x1c771c(0x138)]&&(_0x59b467['waitType']=_0x59b467['wait-type'],delete _0x59b467['wait-type']),_0x59b467[_0x1c771c(0xf8)]&&(_0x59b467[_0x1c771c(0xf6)]=_0x59b467[_0x1c771c(0xf8)]===_0x1c771c(0x13a),delete _0x59b467[_0x1c771c(0xf8)]),_0x351b2d['push'](_0x59b467);}}return _0x3ff084[_0x1c771c(0x12e)]=Array['isArray'](_0x351b2d)?_0x351b2d:[],_0x3ff084[_0x1c771c(0xfd)]=_0x5d497c['trim'](),_0x3ff084;}catch(_0x54dd84){return this['logger']?.['error'](_0x1c771c(0x14c),{'error':_0x54dd84['message']}),{'actions':[],'rawContent':_0x5d497c['trim'](),'parseError':_0x54dd84[_0x1c771c(0x117)]};}}[a0_0x546e41(0xd7)](_0x18217d){const _0x1ab79c={};if(!_0x18217d)return _0x1ab79c;const _0x4281d3=/([\w-]+)\s*=\s*["']([^"']*)["']/g;let _0x1e5ab5;while((_0x1e5ab5=_0x4281d3['exec'](_0x18217d))!==null){const _0x31d910=_0x1e5ab5[0x1],_0x473867=_0x1e5ab5[0x2];_0x1ab79c[_0x31d910]=_0x473867;}return _0x1ab79c;}['getRequiredParameters'](){const _0x37b9b3=a0_0x546e41;return[_0x37b9b3(0x12e)];}[a0_0x546e41(0x146)](_0x343812){const _0x4ed62e=a0_0x546e41,_0x53d6cd=[];if(!_0x343812['actions']||!Array['isArray'](_0x343812['actions'])||_0x343812['actions']['length']===0x0)_0x53d6cd['push']('At\x20least\x20one\x20action\x20is\x20required');else for(const [_0x21ac65,_0xc8a1a7]of _0x343812['actions'][_0x4ed62e(0xf2)]()){if(!_0xc8a1a7['type']){_0x53d6cd[_0x4ed62e(0x127)]('Action\x20'+(_0x21ac65+0x1)+':\x20type\x20is\x20required');continue;}switch(_0xc8a1a7['type']){case'navigate':if(!_0xc8a1a7[_0x4ed62e(0xf3)])_0x53d6cd['push'](_0x4ed62e(0xd5)+(_0x21ac65+0x1)+_0x4ed62e(0x126));else!this[_0x4ed62e(0xe6)](_0xc8a1a7['url'])&&_0x53d6cd['push']('Action\x20'+(_0x21ac65+0x1)+_0x4ed62e(0x110)+_0xc8a1a7[_0x4ed62e(0xf3)]);break;case _0x4ed62e(0x134):case'extract':!_0xc8a1a7[_0x4ed62e(0x128)]&&_0x53d6cd[_0x4ed62e(0x127)]('Action\x20'+(_0x21ac65+0x1)+':\x20selector\x20is\x20required\x20for\x20'+_0xc8a1a7[_0x4ed62e(0x148)]);break;case _0x4ed62e(0x148):!_0xc8a1a7['selector']&&_0x53d6cd[_0x4ed62e(0x127)](_0x4ed62e(0xd5)+(_0x21ac65+0x1)+_0x4ed62e(0x11a));!_0xc8a1a7[_0x4ed62e(0x106)]&&_0xc8a1a7[_0x4ed62e(0x106)]!==''&&_0x53d6cd['push']('Action\x20'+(_0x21ac65+0x1)+':\x20text\x20is\x20required\x20for\x20type');break;case'wait':!_0xc8a1a7[_0x4ed62e(0x11f)]&&!_0xc8a1a7[_0x4ed62e(0x14b)]&&_0x53d6cd[_0x4ed62e(0x127)]('Action\x20'+(_0x21ac65+0x1)+_0x4ed62e(0xed));_0xc8a1a7['waitTime']&&(_0xc8a1a7[_0x4ed62e(0x11f)]<0x64||_0xc8a1a7['waitTime']>0x7530)&&_0x53d6cd['push']('Action\x20'+(_0x21ac65+0x1)+_0x4ed62e(0x130));break;case _0x4ed62e(0x108):!_0xc8a1a7[_0x4ed62e(0x13e)]&&_0x53d6cd[_0x4ed62e(0x127)]('Action\x20'+(_0x21ac65+0x1)+_0x4ed62e(0xe3));break;case _0x4ed62e(0x147):if(!_0xc8a1a7[_0x4ed62e(0x11c)])_0x53d6cd[_0x4ed62e(0x127)]('Action\x20'+(_0x21ac65+0x1)+_0x4ed62e(0x113));else!['up','down',_0x4ed62e(0x14e),_0x4ed62e(0x104)][_0x4ed62e(0xe4)](_0xc8a1a7[_0x4ed62e(0x11c)])&&_0x53d6cd['push']('Action\x20'+(_0x21ac65+0x1)+':\x20invalid\x20scroll\x20direction:\x20'+_0xc8a1a7['direction']);break;case'close':break;default:_0x53d6cd['push']('Action\x20'+(_0x21ac65+0x1)+_0x4ed62e(0xfe)+_0xc8a1a7['type']);}}return{'valid':_0x53d6cd[_0x4ed62e(0x140)]===0x0,'errors':_0x53d6cd};}async[a0_0x546e41(0x13f)](_0x10265a,_0x4be34b){const _0x56ec34=a0_0x546e41,{actions:_0x126887}=_0x10265a,{agentId:_0x424058,projectDir:_0x137034}=_0x4be34b,_0xaf52fe=_0x424058+'-'+(_0x137034||'default'),_0x1ebc5d=[];for(const _0x41b421 of _0x126887){try{let _0x3eb3de;switch(_0x41b421['type']){case _0x56ec34(0x12c):_0x3eb3de=await this[_0x56ec34(0x12c)](_0x41b421[_0x56ec34(0xf3)],_0xaf52fe);break;case _0x56ec34(0x134):_0x3eb3de=await this[_0x56ec34(0x134)](_0x41b421[_0x56ec34(0x128)],_0xaf52fe);break;case _0x56ec34(0x148):_0x3eb3de=await this['type'](_0x41b421['selector'],_0x41b421[_0x56ec34(0x106)],_0xaf52fe);break;case'wait':_0x3eb3de=await this[_0x56ec34(0x109)](_0x41b421,_0xaf52fe);break;case'screenshot':_0x3eb3de=await this[_0x56ec34(0x108)](_0x41b421['outputPath'],_0x137034,_0xaf52fe,_0x41b421);break;case'extract':_0x3eb3de=await this[_0x56ec34(0x150)](_0x41b421[_0x56ec34(0x128)],_0x41b421['attribute']||_0x56ec34(0x106),_0xaf52fe);break;case'scroll':_0x3eb3de=await this[_0x56ec34(0x147)](_0x41b421,_0xaf52fe);break;case _0x56ec34(0x12b):_0x3eb3de=await this['closeBrowser'](_0xaf52fe);break;default:throw new Error('Unknown\x20action\x20type:\x20'+_0x41b421[_0x56ec34(0x148)]);}_0x1ebc5d['push'](_0x3eb3de),this['addToHistory'](_0x41b421,_0x3eb3de,_0x424058);}catch(_0x216c88){const _0xfcf1ba={'success':![],'action':_0x41b421['type'],'error':_0x216c88['message'],'selector':_0x41b421['selector']||_0x41b421[_0x56ec34(0xf3)]};_0x1ebc5d[_0x56ec34(0x127)](_0xfcf1ba),this['addToHistory'](_0x41b421,_0xfcf1ba,_0x424058);}}return{'success':!![],'actions':_0x1ebc5d,'executedActions':_0x126887[_0x56ec34(0x140)],'toolUsed':_0x56ec34(0xef)};}async[a0_0x546e41(0x12c)](_0x2fbab5,_0x191722){const _0x52e862=a0_0x546e41,_0xdb8a50=await this[_0x52e862(0xd9)](_0x191722),_0x5822b9=await this['getPage'](_0x191722),_0x5c1f4b=Date[_0x52e862(0x111)]();try{await _0x5822b9[_0x52e862(0x12f)](_0x2fbab5,{'waitUntil':'networkidle0','timeout':this['browserConfig'][_0x52e862(0xd4)]});const _0x3a3377=await _0x5822b9['title'](),_0x4ffbcd=_0x5822b9['url']();return{'success':!![],'action':_0x52e862(0x12c),'url':_0x4ffbcd,'originalUrl':_0x2fbab5,'title':_0x3a3377,'loadTime':Date['now']()-_0x5c1f4b,'message':_0x52e862(0xfc)+_0x2fbab5};}catch(_0x1c849e){throw new Error('Navigation\x20failed:\x20'+_0x1c849e['message']);}}async[a0_0x546e41(0x134)](_0xb44d68,_0x5646b3){const _0xf9354e=a0_0x546e41,_0x1c4dd1=await this[_0xf9354e(0x13c)](_0x5646b3);try{return await _0x1c4dd1[_0xf9354e(0xf9)](_0xb44d68,{'timeout':0x1388}),await _0x1c4dd1['click'](_0xb44d68),{'success':!![],'action':'click','selector':_0xb44d68,'message':'Clicked\x20on\x20'+_0xb44d68};}catch(_0x3e9292){throw new Error(_0xf9354e(0x11e)+_0xb44d68+':\x20'+_0x3e9292[_0xf9354e(0x117)]);}}async['type'](_0x311bed,_0x199a4a,_0x2ec704){const _0x343bf3=a0_0x546e41,_0xc5a2ba=await this['getPage'](_0x2ec704);try{return await _0xc5a2ba['waitForSelector'](_0x311bed,{'timeout':0x1388}),await _0xc5a2ba[_0x343bf3(0xee)](_0x311bed),await _0xc5a2ba['keyboard'][_0x343bf3(0x11b)](),await _0xc5a2ba['type'](_0x311bed,_0x199a4a),{'success':!![],'action':'type','selector':_0x311bed,'text':_0x199a4a,'textLength':_0x199a4a['length'],'message':'Typed\x20'+_0x199a4a['length']+_0x343bf3(0xdb)+_0x311bed};}catch(_0x1633be){throw new Error('Type\x20failed\x20on\x20'+_0x311bed+':\x20'+_0x1633be['message']);}}async['wait'](_0x26c69f,_0x3e602d){const _0x50250e=a0_0x546e41,_0x5c91a7=await this[_0x50250e(0x13c)](_0x3e602d);try{if(_0x26c69f['waitTime'])return await _0x5c91a7['waitForTimeout'](_0x26c69f[_0x50250e(0x11f)]),{'success':!![],'action':'wait','waitTime':_0x26c69f[_0x50250e(0x11f)],'message':_0x50250e(0xd2)+_0x26c69f[_0x50250e(0x11f)]+'ms'};if(_0x26c69f[_0x50250e(0x14b)]){const _0x48f0d3=_0x26c69f[_0x50250e(0x12a)]||'visible',_0xb92b5b={'timeout':0x2710};return _0x48f0d3==='hidden'?await _0x5c91a7[_0x50250e(0xf9)](_0x26c69f['waitSelector'],{..._0xb92b5b,'hidden':!![]}):await _0x5c91a7['waitForSelector'](_0x26c69f[_0x50250e(0x14b)],_0xb92b5b),{'success':!![],'action':_0x50250e(0x109),'waitSelector':_0x26c69f[_0x50250e(0x14b)],'waitType':_0x48f0d3,'message':_0x50250e(0x14d)+_0x26c69f['waitSelector']+'\x20to\x20be\x20'+_0x48f0d3};}}catch(_0x48cbad){throw new Error(_0x50250e(0x10f)+_0x48cbad['message']);}}async[a0_0x546e41(0x108)](_0x2d0807,_0x3ce0b0,_0x4b7b81,_0x25b3bb={}){const _0x525591=a0_0x546e41,_0x19e568=await this[_0x525591(0x13c)](_0x4b7b81);try{const _0x408a9d=_0x3ce0b0?a0_0x5aa45f[_0x525591(0xfb)](_0x3ce0b0,_0x2d0807):a0_0x5aa45f[_0x525591(0xfb)](_0x2d0807),_0x228a61=a0_0x5aa45f['dirname'](_0x408a9d);await a0_0x2a2cf4[_0x525591(0x142)](_0x228a61,{'recursive':!![]});const _0x2669d0={'path':_0x408a9d,'type':'png'};_0x25b3bb[_0x525591(0xf6)]&&(_0x2669d0[_0x525591(0xf6)]=!![]);await _0x19e568['screenshot'](_0x2669d0);const _0x8b74ec=await a0_0x2a2cf4['stat'](_0x408a9d);if(_0x8b74ec['size']>this['maxScreenshotSize'])throw new Error(_0x525591(0xe0)+_0x8b74ec['size']+_0x525591(0x145)+this[_0x525591(0x11d)]+')');return{'success':!![],'action':'screenshot','outputPath':a0_0x5aa45f[_0x525591(0x116)](_0x3ce0b0||process['cwd'](),_0x408a9d),'size':_0x8b74ec['size'],'fullPage':!!_0x25b3bb[_0x525591(0xf6)],'message':'Screenshot\x20saved:\x20'+_0x2d0807};}catch(_0x177b5d){throw new Error(_0x525591(0x10b)+_0x177b5d[_0x525591(0x117)]);}}async['extract'](_0x53a689,_0x222996,_0x3074de){const _0x556ccc=a0_0x546e41,_0x44e409=await this[_0x556ccc(0x13c)](_0x3074de);try{await _0x44e409[_0x556ccc(0xf9)](_0x53a689,{'timeout':0x1388});let _0x417c30;return _0x222996==='text'?_0x417c30=await _0x44e409[_0x556ccc(0x133)](_0x53a689,_0x588fa6=>_0x588fa6[_0x556ccc(0x135)][_0x556ccc(0x14f)]()):_0x417c30=await _0x44e409['$eval'](_0x53a689,(_0x1093d0,_0x3827e8)=>_0x1093d0['getAttribute'](_0x3827e8),_0x222996),{'success':!![],'action':_0x556ccc(0x150),'selector':_0x53a689,'attribute':_0x222996,'data':_0x417c30,'message':_0x556ccc(0x10e)+_0x222996+'\x20from\x20'+_0x53a689};}catch(_0x4bc559){throw new Error('Extract\x20failed\x20on\x20'+_0x53a689+':\x20'+_0x4bc559['message']);}}async[a0_0x546e41(0x147)](_0x19debc,_0x1c31e3){const _0x4c4d6c=a0_0x546e41,_0x2508da=await this['getPage'](_0x1c31e3);try{const {direction:_0x200632,pixels:pixels=0x12c,selector:_0x135371}=_0x19debc;return _0x135371?await _0x2508da[_0x4c4d6c(0xdf)]((_0x33171e,_0x175c47,_0x108a4)=>{const _0x437428=_0x4c4d6c,_0x25a976=document['querySelector'](_0x33171e);if(_0x25a976){if(_0x175c47===_0x437428(0x131))_0x25a976[_0x437428(0xd6)]+=_0x108a4;else{if(_0x175c47==='up')_0x25a976['scrollTop']-=_0x108a4;else{if(_0x175c47==='right')_0x25a976[_0x437428(0xdd)]+=_0x108a4;else{if(_0x175c47==='left')_0x25a976['scrollLeft']-=_0x108a4;}}}}},_0x135371,_0x200632,pixels):await _0x2508da['evaluate']((_0x37ede1,_0x2911fa)=>{const _0xd734b8=_0x4c4d6c;if(_0x37ede1==='down')window['scrollBy'](0x0,_0x2911fa);else{if(_0x37ede1==='up')window[_0xd734b8(0xe7)](0x0,-_0x2911fa);else{if(_0x37ede1===_0xd734b8(0x104))window['scrollBy'](_0x2911fa,0x0);else{if(_0x37ede1===_0xd734b8(0x14e))window['scrollBy'](-_0x2911fa,0x0);}}}},_0x200632,pixels),{'success':!![],'action':'scroll','direction':_0x200632,'pixels':pixels,'selector':_0x135371||'page','message':_0x4c4d6c(0xec)+_0x200632+'\x20by\x20'+pixels+'px'};}catch(_0x5c1a6d){throw new Error(_0x4c4d6c(0xe5)+_0x5c1a6d[_0x4c4d6c(0x117)]);}}async[a0_0x546e41(0xd9)](_0x17275b){const _0x56fa6f=a0_0x546e41;if(this['browserInstances']['has'](_0x17275b)){const _0x588dd4=this[_0x56fa6f(0x121)]['get'](_0x17275b);if(!_0x588dd4[_0x56fa6f(0xef)]['isConnected']())this['browserInstances'][_0x56fa6f(0xda)](_0x17275b);else return _0x588dd4[_0x56fa6f(0xef)];}const _0x3b81a0=await a0_0x367d2a['launch']({'headless':this[_0x56fa6f(0xf4)]['headless'],'args':['--no-sandbox','--disable-setuid-sandbox',_0x56fa6f(0x105),'--disable-gpu']}),_0x5903e1=await _0x3b81a0['newPage']();return await _0x5903e1[_0x56fa6f(0x115)](this[_0x56fa6f(0xf4)][_0x56fa6f(0xe2)]),await _0x5903e1[_0x56fa6f(0x13b)](this[_0x56fa6f(0xf4)][_0x56fa6f(0x10a)]),this[_0x56fa6f(0x121)]['set'](_0x17275b,{'browser':_0x3b81a0,'page':_0x5903e1,'created':Date['now']()}),setTimeout(()=>{this['cleanupBrowser'](_0x17275b);},0xa*0x3c*0x3e8),_0x3b81a0;}async['getPage'](_0x5186fa){const _0x496eda=a0_0x546e41;return await this[_0x496eda(0xd9)](_0x5186fa),this['browserInstances']['get'](_0x5186fa)[_0x496eda(0x132)];}async['closeBrowser'](_0x171d6d){const _0x35d495=a0_0x546e41,_0x37d502=this['browserInstances'][_0x35d495(0x149)](_0x171d6d);if(_0x37d502)try{return await _0x37d502['browser']['close'](),this[_0x35d495(0x121)][_0x35d495(0xda)](_0x171d6d),{'success':!![],'action':_0x35d495(0x12b),'browserKey':_0x171d6d,'message':_0x35d495(0x144)};}catch(_0x523ecc){throw new Error('Failed\x20to\x20close\x20browser:\x20'+_0x523ecc['message']);}return{'success':!![],'action':_0x35d495(0x12b),'browserKey':_0x171d6d,'message':'Browser\x20instance\x20not\x20found\x20(already\x20closed)'};}async[a0_0x546e41(0xfa)](_0x2099c5){const _0x37964c=a0_0x546e41,_0x244f96=this[_0x37964c(0x121)][_0x37964c(0x149)](_0x2099c5);if(_0x244f96)try{await _0x244f96['browser']['close']();}catch(_0x570416){}finally{this['browserInstances']['delete'](_0x2099c5);}}['isAllowedUrl'](_0x4c2a2c){const _0x377066=a0_0x546e41;try{const _0x3d9085=new URL(_0x4c2a2c),_0x317a7d=_0x3d9085['hostname'][_0x377066(0x122)]();if(this['blockedDomains'][_0x377066(0x139)](_0x4f74fd=>_0x317a7d[_0x377066(0xe4)](_0x4f74fd[_0x377066(0x122)]())))return![];if(this[_0x377066(0x10d)]&&this[_0x377066(0x10d)][_0x377066(0x140)]>0x0)return this['allowedDomains']['some'](_0x342a98=>_0x317a7d['includes'](_0x342a98['toLowerCase']()));return!![];}catch{return![];}}['addToHistory'](_0x47332b,_0x1c26dc,_0x205eef){const _0x4be336=a0_0x546e41,_0x1286e3={'timestamp':new Date()[_0x4be336(0x101)](),'agentId':_0x205eef,'action':_0x47332b['type'],'selector':_0x47332b['selector']||_0x47332b['url'],'success':_0x1c26dc[_0x4be336(0xea)],'loadTime':_0x1c26dc['loadTime']||0x0};this[_0x4be336(0xe9)]['push'](_0x1286e3),this[_0x4be336(0xe9)]['length']>0x64&&(this['operationHistory']=this['operationHistory']['slice'](-0x64));}[a0_0x546e41(0x102)](){const _0x1d2ff5=a0_0x546e41;return['navigate',_0x1d2ff5(0x134),_0x1d2ff5(0x148),'wait','screenshot',_0x1d2ff5(0x150),_0x1d2ff5(0x147),_0x1d2ff5(0x12b)];}['getParameterSchema'](){const _0x29383b=a0_0x546e41;return{'type':'object','properties':{'actions':{'type':_0x29383b(0x151),'minItems':0x1,'items':{'type':_0x29383b(0x136),'properties':{'type':{'type':'string','enum':this['getSupportedActions']()},'url':{'type':'string'},'selector':{'type':'string'},'text':{'type':'string'},'outputPath':{'type':'string'},'waitTime':{'type':_0x29383b(0xf0)},'waitSelector':{'type':_0x29383b(0xeb)},'attribute':{'type':'string'},'direction':{'type':_0x29383b(0xeb)},'pixels':{'type':'integer'}},'required':[_0x29383b(0x148)]}}},'required':['actions']};}async[a0_0x546e41(0x120)](_0x2d7278){const _0x14acfc=a0_0x546e41;for(const [_0xfda46d]of this[_0x14acfc(0x121)]){await this['cleanupBrowser'](_0xfda46d);}}['getOperationHistory'](_0xd73f3c=null){const _0x43ac60=a0_0x546e41;if(_0xd73f3c)return this[_0x43ac60(0xe9)][_0x43ac60(0x124)](_0x29f5ad=>_0x29f5ad[_0x43ac60(0xf7)]===_0xd73f3c);return[...this['operationHistory']];}}export default BrowserTool;function a0_0x2727(_0x1075b3,_0x51b8c3){_0x1075b3=_0x1075b3-0xd2;const _0x5638c5=a0_0x5638();let _0x2727b7=_0x5638c5[_0x1075b3];if(a0_0x2727['nLQFuE']===undefined){var _0x5dc962=function(_0x1815f7){const _0x2e0b63='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4bf1a5='',_0x367d2a='';for(let _0x2a2cf4=0x0,_0x5aa45f,_0x4b9f5a,_0x4959b9=0x0;_0x4b9f5a=_0x1815f7['charAt'](_0x4959b9++);~_0x4b9f5a&&(_0x5aa45f=_0x2a2cf4%0x4?_0x5aa45f*0x40+_0x4b9f5a:_0x4b9f5a,_0x2a2cf4++%0x4)?_0x4bf1a5+=String['fromCharCode'](0xff&_0x5aa45f>>(-0x2*_0x2a2cf4&0x6)):0x0){_0x4b9f5a=_0x2e0b63['indexOf'](_0x4b9f5a);}for(let _0x5d497c=0x0,_0x3ff084=_0x4bf1a5['length'];_0x5d497c<_0x3ff084;_0x5d497c++){_0x367d2a+='%'+('00'+_0x4bf1a5['charCodeAt'](_0x5d497c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x367d2a);};a0_0x2727['laZPWy']=_0x5dc962,a0_0x2727['vPgXZq']={},a0_0x2727['nLQFuE']=!![];}const _0x40b4e0=_0x5638c5[0x0],_0x125a44=_0x1075b3+_0x40b4e0,_0x266b4a=a0_0x2727['vPgXZq'][_0x125a44];return!_0x266b4a?(_0x2727b7=a0_0x2727['laZPWy'](_0x2727b7),a0_0x2727['vPgXZq'][_0x125a44]=_0x2727b7):_0x2727b7=_0x266b4a,_0x2727b7;}function a0_0x5638(){const _0x1943f6=['D2fPDa','DxnLCKfNzw50','u2nYzwvUC2HVDcbMywLSzwq6ia','B3v0Chv0lxbHDgG','ywXSB3DLzerVBwfPBNm','rxH0CMfJDgvKia','v2fPDcbMywLSzwq6ia','oIbvuKWGBM90igfSBg93zwq6ia','BM93','C3rHCNrZv2L0Aa','oIbKAxjLy3rPB24GAxmGCMvXDwLYzwqGzM9YihnJCM9SBa','mZu5nLzYDMHSvW','C2v0vMLLD3bVCNq','CMvSyxrPDMu','BwvZC2fNzq','BxmGCgvYig9WzxjHDgLVBGPnqvGGv0fjvcbusu1foIaZmcbZzwnVBMrZicGZmdaWmg1ZkqOGicaG','mJaZodvPtwftAhm','oIbZzwXLy3rVCIbPCYbYzxf1AxjLzcbMB3iGDhLWzq','C2vSzwn0qwXS','zgLYzwn0Aw9U','Bwf4u2nYzwvUC2HVDfnPEMu','q2XPy2SGzMfPBgvKig9Uia','D2fPDfrPBwu','y2XLyw51Ca','yNjVD3nLCKLUC3rHBMnLCW','Dg9mB3DLCKnHC2u','CMvXDwLYzxnqCM9Qzwn0','zMLSDgvY','mtq0mZbPshDcuKK','oIb1CMWGAxmGCMvXDwLYzwqGzM9Yig5HDMLNyxrL','ChvZAa','C2vSzwn0B3i','zxHLyW','D2fPDfr5Cgu','y2XVC2u','BMf2AwDHDgu','ofvTBfryqq','ywn0Aw9UCW','z290BW','oIb3ywL0lxrPBwuGBxvZDcbIzsbIzxr3zwvUideWmcbHBMqGmZaWmdaGBwLSBgLZzwnVBMrZ','zg93BG','CgfNzq','jgv2ywW','y2XPy2S','Dgv4DenVBNrLBNq','B2jQzwn0','yMXVy2TLzerVBwfPBNm','D2fPDc10ExbL','C29Tzq','Dhj1zq','C2v0vxnLCKfNzw50','z2v0ugfNzq','ote2odHhBwnpqu0','B3v0Chv0ugf0Aa','zxHLy3v0zq','BgvUz3rO','D2fPDc10Aw1L','BwTKAxi','CgfYC2vqyxjHBwv0zxjZ','qNjVD3nLCIbPBNn0yw5JzsbJBg9Zzwq','igj5DgvZicHTyxGG','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','C2nYB2XS','DhLWzq','z2v0','AgvPz2H0','D2fPDfnLBgvJDg9Y','rMfPBgvKihrVihbHCNnLigjYB3DZzxiGCgfYyw1LDgvYCW','v2fPDgvKigzVCIa','BgvMDa','DhjPBq','zxH0CMfJDa','yxjYyxK','v2fPDgvKia','mtK5mdq3ogDJDNHWEa','DgLTzw91Da','qwn0Aw9Uia','C2nYB2XSvg9W','CgfYC2vbDhrYAwj1DgvZ','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','z2v0qNjVD3nLCG','zgvSzxrL','ignOyxjHy3rLCNmGAw50BYa','odGYEu5hBMPY','C2nYB2XStgvMDa','CgfYC2u','zxzHBhvHDgu','u2nYzwvUC2HVDcb0B28GBgfYz2u6ia','D2fPDc1ZzwXLy3rVCG','DMLLD3bVCNq','oIbVDxrWDxqTCgf0AcbPCYbYzxf1AxjLzcbMB3iGC2nYzwvUC2HVDa','Aw5JBhvKzxm','u2nYB2XSigzHAwXLzdOG','AxnbBgXVD2vKvxjS','C2nYB2XSqNK','AxnbC3LUyW','B3bLCMf0Aw9UsgLZDg9YEq','C3vJy2vZCW','C3rYAw5N','u2nYB2XSzwqG','oIbLAxrOzxiGD2fPDc10Aw1Lig9YihDHAxqTC2vSzwn0B3iGAxmGCMvXDwLYzwq','zM9JDxm','yNjVD3nLCG','Aw50zwDLCG','tw96AwXSys81lJaGkfDPBMrVD3mGtLqGmtaUmdSGv2LUnJq7ihG2ncKGqxbWBgvxzwjlAxqVntm3lJm2','zw50CMLLCW','DxjS','yNjVD3nLCKnVBMzPzW','mZKXntu2menVEeXOyW','zNvSBfbHz2u','ywDLBNrjza','zNvSBc1WywDL','D2fPDezVCLnLBgvJDg9Y','y2XLyw51CejYB3DZzxi','CMvZB2X2zq','tMf2AwDHDgvKihrVia','CMf3q29UDgvUDa','oIb1BMTUB3DUigfJDgLVBIb0ExbLoIa','ote3ngvurxHIqG','mZGYnuLPswjQrW','Dg9ju09tDhjPBMC','z2v0u3vWCg9YDgvKqwn0Aw9UCW','mZaWtMXWy2Dt','CMLNAhq','ls1KAxnHyMXLlwrLDI1ZAg0TDxnHz2u','Dgv4Da','CgfNzvrPBwvVDxq','C2nYzwvUC2HVDa'];a0_0x5638=function(){return _0x1943f6;};return a0_0x5638();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x24898f=a0_0x1c8b;(function(_0x20bb6f,_0x176874){const _0x11afe0=a0_0x1c8b,_0x354aff=_0x20bb6f();while(!![]){try{const _0x3e0894=parseInt(_0x11afe0(0x241))/0x1+parseInt(_0x11afe0(0x1f9))/0x2+parseInt(_0x11afe0(0x236))/0x3*(parseInt(_0x11afe0(0x1e2))/0x4)+-parseInt(_0x11afe0(0x1dc))/0x5+parseInt(_0x11afe0(0x208))/0x6+parseInt(_0x11afe0(0x1ec))/0x7*(parseInt(_0x11afe0(0x1e4))/0x8)+-parseInt(_0x11afe0(0x23f))/0x9*(parseInt(_0x11afe0(0x218))/0xa);if(_0x3e0894===_0x176874)break;else _0x354aff['push'](_0x354aff['shift']());}catch(_0x5954b5){_0x354aff['push'](_0x354aff['shift']());}}}(a0_0x2058,0x7dac6));function a0_0x2058(){const _0x2d19d3=['y3DK','zMLSzq','mJm2mdm2nZbqzuzov0q','Bg9Nz2vY','mtaXmtqYme5fzhHSvq','zgvMyxvSDe1PBKXPBMvZ','kIOVkI5TANm','z2v0rgvZy3jPChrPB24','ndyWodKYnuTWEunvBa','C3vNz2vZDgvKtMfTzq','BwLUlxrVA2vUCW','vw5RBM93BIbHy3rPB24GDhLWztOG','AgLNAa','Aw5JBhvKzxm','mtm0nZK5nNPswLPZqG','oIbKAxjLy3rVCNKGAxmGCMvXDwLYzwqGzM9YigrLDgvJDc1JBg9Uzxm','nZm1nZi4yKL0AMnw','ChjPB3jPDhK','kIOVyNvPBgqVkIO','BwvZC2fNzq','kIOVkI52Dwu','oIb1BMTUB3DUigfJDgLVBIb0ExbLoIa','zxn0Aw1HDgvKrwzMB3j0','CMvJB21Tzw5KyxrPB25Z','ntzAuvPLtNe','zgvMyxvSDe1PBLrVA2vUCW','B3v0Chv0tw9Kzq','CMvMywn0B3jPBMDbzhzPy2u','BNvTyMvY','BwLUvg9Rzw5Z','Bg93','tM8GzMLSzxmGzM91BMqGB3iGBM8Gy2XVBMvZigrLDgvJDgvK','AxnbCNjHEq','y29UzMLKzw5Jzq','ChjPB3jPDhLgAwX0zxi','yMvUzwzPDhm','lI4Vyw5HBhL6zxjZl2nVzgvdBg9UzurLDgvJDg9Yl2LUzgv4lMPZ','mtq1mdGZnLPTC1DhCG','zgv0zwn0q2XVBMvZ','uMvHzcbHy2nLC3mGzgvUAwvKoIa','rMfPBgvKihrVihbHCNnLignSB25LigrLDgvJDgLVBIbWyxjHBwv0zxjZoIa','kIOVzgLZDc8QkG','C2LTAwXHCML0Es10AhjLC2HVBgq','Dg90ywXeDxbSAwnHDgvKtgLUzxm','ihnLy29UzhmkcLvtrsbdqvnfuZOklsbjzgvUDgLMEsbYzwzHy3rVCMLUzYbVChbVCNr1BML0AwvZigjLzM9YzsbJB2rLihjLDMLLDWOTifrYywnRihrLy2HUAwnHBcbKzwj0igfUzcbJB2rLigr1CgXPy2f0Aw9Uig1LDhjPy3mklsbgAw5KignHBMrPzgf0zxmGzM9YierswsaOrg9Uj3qGuMvWzwf0ifLVDxjZzwXMksbYzwzHy3rVCMLUzWOTifbYAw9YAxrPEMuGBwfPBNrLBMfUy2uGD29YAYbIEsbPBxbHy3qGC2nVCMukicaGia','C2XPy2u','kIOVkI5QCW','oIbWCMLVCML0Es1MAwX0zxiGBxvZDcbIzsbOAwDOlcbTzwrPDw0Sig9YigXVDW','C3vTBwfYEq','BgvUz3rO','kIOVkI50CW','B2jQzwn0','ntq3nty1nhrsC012uG','C2LTAwXHCML0EvrOCMvZAg9Sza','y29Kzq','y3jLyxrLuMvSyxrPDMvqyxrO','zMLSDgvY','zM9YBwf0rgv0ywLSzwrpDxrWDxq','BwfW','Aw5MBW','C3bSAxq','zgvMyxvSDfnPBwLSyxjPDhLuAhjLC2HVBgq','ywn0Aw9UCW','BwLUtgLUzxm','zgv0ywLSzwq','zw50CMLLCW','Bwf4uMvZDwX0CW','zgLYzwn0B3j5qwnJzxnZtwfUywDLCG','mtbeD2Piu04','AxnbC3LUyW','DgLTzw91Da','zM9YBwf0uMvJB21Tzw5KyxrPB25Zt3v0Chv0','C3rYAw5N','Bwf4lxjLC3vSDhm','oIbTAw4TBgLUzxmGBxvZDcbIzsbIzxr3zwvUideGyw5KideWma','zM9YBwf0u3vTBwfYEu91Dhb1Da','Bwv0CMLJCW','Aw5ZDgfUy2vdB3vUDa','zhvWBgLJyxrPB25qzxjJzw50ywDL','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','z2v0u3vWCg9YDgvKqwn0Aw9UCW','CMvXDwLYzxnqCM9Qzwn0','kIOVkI50C3G','ChvZAa','s0iGCgvYigzPBguklsbbBMfSExnPCYb0Aw1LB3v0oIa','Aw5ZDgfUy2vZ','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','y2XVBMvKzxrLy3rPB24','zgv0zwn0lwnSB25LCW','BwvKAxvT','Dg90ywXdBg9Uzxm','BgLUzunVDw50','kIOVkI50zxn0lMPZ','y2XVBMvezxrLy3rVCG','DhLWzq','DhjPBq','AM9PBG','zgvIDwC','nNLIChn4wa','z2v0v29YA2LUz0rPCMvJDg9YEq','zgLYzwn0B3j5','yxjYyxK','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','Bwf4rMLSzvnPEMu','qwn0Aw9Uia'];a0_0x2058=function(){return _0x2d19d3;};return a0_0x2058();}import{BaseTool}from'./baseTool.js';import a0_0x18adee from'../utilities/tagParser.js';import a0_0x441f97 from'../utilities/directoryAccessManager.js';function a0_0x1c8b(_0x1ca11e,_0xd89da1){_0x1ca11e=_0x1ca11e-0x1da;const _0x205836=a0_0x2058();let _0x1c8b2d=_0x205836[_0x1ca11e];if(a0_0x1c8b['AAJgmy']===undefined){var _0x1edb14=function(_0x4bdf68){const _0x461482='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x18adee='',_0x441f97='';for(let _0x16124f=0x0,_0x53c5a0,_0x37ec95,_0x207271=0x0;_0x37ec95=_0x4bdf68['charAt'](_0x207271++);~_0x37ec95&&(_0x53c5a0=_0x16124f%0x4?_0x53c5a0*0x40+_0x37ec95:_0x37ec95,_0x16124f++%0x4)?_0x18adee+=String['fromCharCode'](0xff&_0x53c5a0>>(-0x2*_0x16124f&0x6)):0x0){_0x37ec95=_0x461482['indexOf'](_0x37ec95);}for(let _0x38e7d2=0x0,_0x3c33c2=_0x18adee['length'];_0x38e7d2<_0x3c33c2;_0x38e7d2++){_0x441f97+='%'+('00'+_0x18adee['charCodeAt'](_0x38e7d2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x441f97);};a0_0x1c8b['rntKeQ']=_0x1edb14,a0_0x1c8b['BlypLX']={},a0_0x1c8b['AAJgmy']=!![];}const _0x215938=_0x205836[0x0],_0x6ee9e5=_0x1ca11e+_0x215938,_0x4af88c=a0_0x1c8b['BlypLX'][_0x6ee9e5];return!_0x4af88c?(_0x1c8b2d=a0_0x1c8b['rntKeQ'](_0x1c8b2d),a0_0x1c8b['BlypLX'][_0x6ee9e5]=_0x1c8b2d):_0x1c8b2d=_0x4af88c,_0x1c8b2d;}import a0_0x16124f from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class CloneDetectionTool extends BaseTool{constructor(_0x53c5a0={},_0x37ec95=null){const _0x4eec16=a0_0x1c8b;super(_0x53c5a0,_0x37ec95),this[_0x4eec16(0x225)]=!![],this[_0x4eec16(0x219)]=![],this['timeout']=_0x53c5a0[_0x4eec16(0x21a)]||0x1d4c0,this['maxConcurrentOperations']=_0x53c5a0[_0x4eec16(0x23a)]||0x1,this[_0x4eec16(0x1ed)]=_0x53c5a0['defaultMinTokens']||0x32,this['defaultMinLines']=_0x53c5a0['defaultMinLines']||0x5,this['defaultSimilarityThreshold']=_0x53c5a0[_0x4eec16(0x211)]||0.85,this[_0x4eec16(0x23b)]=_0x53c5a0['maxFileSize']||0x7a120,this['directoryAccessManager']=new a0_0x441f97(_0x53c5a0,_0x37ec95),this['cloneDetector']=null;}[a0_0x24898f(0x1db)](){const _0x5a4506=a0_0x24898f;return _0x5a4506(0x22a)+Math['round'](this['maxFileSize']/0x400)+_0x5a4506(0x228)+this['timeout']/0x3e8+_0x5a4506(0x200);}['parseParameters'](_0x207271){const _0x4d0831=a0_0x24898f;try{const _0x38e7d2={},_0x3c33c2=[];this[_0x4d0831(0x240)]?.[_0x4d0831(0x235)]('CloneDetection\x20tool\x20parsing\x20parameters',{'contentLength':_0x207271['length'],'contentPreview':_0x207271['substring'](0x0,0xc8)});const _0xe2568e=/<detect-clones\s+(.+?)\/>/g;let _0x55ab34;while((_0x55ab34=_0xe2568e['exec'](_0x207271))!==null){const _0x78ff65=_0x55ab34[0x1]['trim'](),_0x89f67a=new a0_0x18adee(),_0x231f56=_0x89f67a['parseAttributes'](_0x78ff65),_0xbb4837={'type':'detect-clones',..._0x231f56};_0xbb4837['min-tokens']&&(_0xbb4837[_0x4d0831(0x1f1)]=parseInt(_0xbb4837[_0x4d0831(0x1de)],0xa),delete _0xbb4837['min-tokens']),_0xbb4837['min-lines']&&(_0xbb4837[_0x4d0831(0x213)]=parseInt(_0xbb4837['min-lines'],0xa),delete _0xbb4837['min-lines']),_0xbb4837['similarity-threshold']&&(_0xbb4837['similarityThreshold']=parseFloat(_0xbb4837[_0x4d0831(0x1fe)]),delete _0xbb4837['similarity-threshold']),_0xbb4837['priority-filter']&&(_0xbb4837['priorityFilter']=_0xbb4837['priority-filter'],delete _0xbb4837['priority-filter']),_0xbb4837['max-results']&&(_0xbb4837['maxResults']=parseInt(_0xbb4837[_0x4d0831(0x21d)],0xa),delete _0xbb4837['max-results']),_0xbb4837['output-mode']&&(_0xbb4837[_0x4d0831(0x1ee)]=_0xbb4837['output-mode'],delete _0xbb4837['output-mode']),_0x3c33c2['push'](_0xbb4837);}return _0x38e7d2[_0x4d0831(0x212)]=_0x3c33c2,_0x38e7d2['rawContent']=_0x207271[_0x4d0831(0x233)](),this[_0x4d0831(0x240)]?.[_0x4d0831(0x235)]('Parsed\x20CloneDetection\x20tool\x20parameters',{'totalActions':_0x3c33c2['length'],'actionTypes':_0x3c33c2['map'](_0x39b362=>_0x39b362[_0x4d0831(0x232)])}),_0x38e7d2;}catch(_0x423c3e){throw new Error(_0x4d0831(0x1fc)+_0x423c3e[_0x4d0831(0x1e7)]);}}['getRequiredParameters'](){return['actions'];}['customValidateParameters'](_0x47482d){const _0x4e6337=a0_0x24898f,_0x40c453=[];if(!_0x47482d[_0x4e6337(0x212)]||!Array[_0x4e6337(0x1f4)](_0x47482d['actions'])||_0x47482d['actions']['length']===0x0)_0x40c453[_0x4e6337(0x227)](_0x4e6337(0x223));else for(const [_0x1ecb52,_0x526955]of _0x47482d[_0x4e6337(0x212)][_0x4e6337(0x215)]()){if(!_0x526955['type']){_0x40c453['push'](_0x4e6337(0x23c)+(_0x1ecb52+0x1)+':\x20type\x20is\x20required');continue;}_0x526955[_0x4e6337(0x232)]===_0x4e6337(0x22c)?(!_0x526955['directory']&&_0x40c453['push'](_0x4e6337(0x23c)+(_0x1ecb52+0x1)+_0x4e6337(0x1e3)),_0x526955['minTokens']!==undefined&&(_0x526955[_0x4e6337(0x1f1)]<0xa||_0x526955['minTokens']>0x3e8)&&_0x40c453[_0x4e6337(0x227)](_0x4e6337(0x23c)+(_0x1ecb52+0x1)+':\x20min-tokens\x20must\x20be\x20between\x2010\x20and\x201000'),_0x526955[_0x4e6337(0x213)]!==undefined&&(_0x526955['minLines']<0x1||_0x526955[_0x4e6337(0x213)]>0x64)&&_0x40c453[_0x4e6337(0x227)]('Action\x20'+(_0x1ecb52+0x1)+_0x4e6337(0x21e)),_0x526955[_0x4e6337(0x209)]!==undefined&&(_0x526955['similarityThreshold']<0.5||_0x526955['similarityThreshold']>0x1)&&_0x40c453['push'](_0x4e6337(0x23c)+(_0x1ecb52+0x1)+':\x20similarity-threshold\x20must\x20be\x20between\x200.5\x20and\x201.0'),_0x526955['priorityFilter']&&![_0x4e6337(0x1e0),_0x4e6337(0x22d),_0x4e6337(0x1f2)]['includes'](_0x526955[_0x4e6337(0x1f6)])&&_0x40c453[_0x4e6337(0x227)](_0x4e6337(0x23c)+(_0x1ecb52+0x1)+_0x4e6337(0x203)),_0x526955['outputMode']&&![_0x4e6337(0x204),'detailed','recommendations'][_0x4e6337(0x1e1)](_0x526955[_0x4e6337(0x1ee)])&&_0x40c453['push']('Action\x20'+(_0x1ecb52+0x1)+':\x20output-mode\x20must\x20be\x20summary,\x20detailed,\x20or\x20recommendations')):_0x40c453[_0x4e6337(0x227)]('Action\x20'+(_0x1ecb52+0x1)+_0x4e6337(0x1e9)+_0x526955[_0x4e6337(0x232)]);}return{'valid':_0x40c453[_0x4e6337(0x205)]===0x0,'errors':_0x40c453};}async['execute'](_0xfc7191,_0x2bf144){const _0x13f086=a0_0x24898f,{actions:_0x3d38bd}=_0xfc7191,{projectDir:_0x24c018,agentId:_0x2eda08,directoryAccess:_0x6ef149}=_0x2bf144,_0x5757d6=_0x6ef149||this[_0x13f086(0x217)]['createDirectoryAccess']({'workingDirectory':_0x24c018||process[_0x13f086(0x23d)](),'writeEnabledDirectories':[],'readOnlyDirectories':[_0x24c018||process[_0x13f086(0x23d)]()],'restrictToProject':!![]}),_0x24dbb9=this['directoryAccessManager'][_0x13f086(0x237)](_0x5757d6),_0x57e110=[];for(const _0x4da63c of _0x3d38bd){try{if(_0x4da63c[_0x13f086(0x232)]==='detect-clones'){const _0x1c70aa=await this[_0x13f086(0x1fa)](_0x4da63c[_0x13f086(0x238)],_0x24dbb9,_0x5757d6,_0x4da63c);_0x57e110['push'](_0x1c70aa);}else throw new Error(_0x13f086(0x1df)+_0x4da63c[_0x13f086(0x232)]);}catch(_0x5e8419){this[_0x13f086(0x240)]?.['error']('Clone\x20detection\x20action\x20failed',{'action':_0x4da63c[_0x13f086(0x232)],'error':_0x5e8419[_0x13f086(0x1e7)]}),_0x57e110[_0x13f086(0x227)]({'directory':_0x4da63c['directory'],'error':_0x5e8419[_0x13f086(0x1e7)],'success':![]});}}return{'success':!![],'results':_0x57e110,'toolUsed':_0x13f086(0x22b)};}async['detectClones'](_0x8e25b2,_0x1bbdf5,_0xd8905d,_0x232289={}){const _0x1798a4=a0_0x24898f,_0x546864=a0_0x16124f['isAbsolute'](_0x8e25b2)?a0_0x16124f['normalize'](_0x8e25b2):a0_0x16124f['resolve'](_0x1bbdf5,_0x8e25b2),_0x43bf6d=this['directoryAccessManager']['validateReadAccess'](_0x546864,_0xd8905d);if(!_0x43bf6d['allowed'])throw new Error(_0x1798a4(0x1fb)+_0x43bf6d['reason']);try{const _0x2a5327=await this['getCloneDetector'](),_0x2736ba={'minTokens':_0x232289['minTokens']||this[_0x1798a4(0x1ed)],'minLines':_0x232289['minLines']||this['defaultMinLines'],'similarityThreshold':_0x232289['similarityThreshold']||this[_0x1798a4(0x211)],'include':[_0x1798a4(0x202),'**/*.jsx',_0x1798a4(0x1da),'**/*.cjs',_0x1798a4(0x206),_0x1798a4(0x226),'**/*.vue'],'exclude':['**/node_modules/**',_0x1798a4(0x1fd),_0x1798a4(0x1e6),_0x1798a4(0x230),'**/*.spec.js'],'maxFileSize':this[_0x1798a4(0x23b)]};this['logger']?.[_0x1798a4(0x20f)]('Starting\x20clone\x20detection',{'directory':_0x546864,'config':_0x2736ba});const _0x7d5c69=await _0x2a5327['run'](_0x546864,null);if(!_0x7d5c69)return{'directory':this['directoryAccessManager']['createRelativePath'](_0x546864,_0xd8905d),'fullPath':_0x546864,'success':!![],'summary':{'totalFiles':0x0,'totalClones':0x0,'duplicationPercentage':0x0},'clones':[],'message':_0x1798a4(0x1f3)};let _0x35dd89=_0x7d5c69['clones'];_0x232289['priorityFilter']&&(_0x35dd89=_0x35dd89[_0x1798a4(0x20c)](_0x161884=>_0x161884['refactoringAdvice'][_0x1798a4(0x1e5)]===_0x232289['priorityFilter']));_0x232289[_0x1798a4(0x216)]&&(_0x35dd89=_0x35dd89['slice'](0x0,_0x232289[_0x1798a4(0x216)]));const _0x4bfd3d=_0x232289['outputMode']||'detailed';if(_0x4bfd3d===_0x1798a4(0x204))return this[_0x1798a4(0x21f)](_0x7d5c69,_0x35dd89,_0x546864,_0xd8905d);else return _0x4bfd3d==='recommendations'?this['formatRecommendationsOutput'](_0x7d5c69,_0x35dd89,_0x546864,_0xd8905d):this[_0x1798a4(0x20d)](_0x7d5c69,_0x35dd89,_0x546864,_0xd8905d);}catch(_0x3168cd){throw new Error('Failed\x20to\x20detect\x20clones\x20in\x20'+_0x8e25b2+':\x20'+_0x3168cd[_0x1798a4(0x1e7)]);}}['formatSummaryOutput'](_0x4af6f6,_0x480fb5,_0x3b6a59,_0x34bfd1){const _0x2c8062=a0_0x24898f;return{'directory':this[_0x2c8062(0x217)]['createRelativePath'](_0x3b6a59,_0x34bfd1),'fullPath':_0x3b6a59,'success':!![],'outputMode':'summary','summary':{'totalFiles':_0x4af6f6['summary']['totalFiles'],'totalClones':_0x4af6f6[_0x2c8062(0x204)]['totalClones'],'duplicatedLines':_0x4af6f6['summary'][_0x2c8062(0x1ff)],'duplicationPercentage':_0x4af6f6[_0x2c8062(0x204)][_0x2c8062(0x222)],'priorityCounts':_0x4af6f6['summary']['priorityCounts'],'topClones':_0x480fb5[_0x2c8062(0x201)](0x0,0x5)['map'](_0x8e18ad=>({'id':_0x8e18ad['id'],'type':_0x8e18ad[_0x2c8062(0x232)],'confidence':_0x8e18ad[_0x2c8062(0x1f5)],'instances':_0x8e18ad['metrics'][_0x2c8062(0x221)],'lines':_0x8e18ad[_0x2c8062(0x220)][_0x2c8062(0x22f)],'priority':_0x8e18ad[_0x2c8062(0x1ef)]['priority'],'strategy':_0x8e18ad['refactoringAdvice']['strategy'],'locations':_0x8e18ad[_0x2c8062(0x229)]['map'](_0x1bc0e4=>_0x1bc0e4[_0x2c8062(0x23e)]+':'+_0x1bc0e4['startLine']+'-'+_0x1bc0e4['endLine'])}))}};}[a0_0x24898f(0x21b)](_0x561b9d,_0x3b14f5,_0x9d1b52,_0x4cb81a){const _0x1cf90d=a0_0x24898f;return{'directory':this[_0x1cf90d(0x217)][_0x1cf90d(0x20b)](_0x9d1b52,_0x4cb81a),'fullPath':_0x9d1b52,'success':!![],'outputMode':_0x1cf90d(0x1eb),'summary':{'totalFiles':_0x561b9d['summary']['totalFiles'],'totalClones':_0x561b9d[_0x1cf90d(0x204)][_0x1cf90d(0x22e)],'duplicationPercentage':_0x561b9d['summary'][_0x1cf90d(0x222)]},'recommendations':_0x3b14f5[_0x1cf90d(0x20e)](_0x3b2ec0=>({'id':_0x3b2ec0['id'],'priority':_0x3b2ec0[_0x1cf90d(0x1ef)][_0x1cf90d(0x1e5)],'strategy':_0x3b2ec0[_0x1cf90d(0x1ef)]['strategy'],'suggestedName':_0x3b2ec0['refactoringAdvice'][_0x1cf90d(0x1dd)],'reasoning':_0x3b2ec0[_0x1cf90d(0x1ef)]['reasoning'],'effort':_0x3b2ec0['refactoringAdvice'][_0x1cf90d(0x1ea)],'benefits':_0x3b2ec0['refactoringAdvice'][_0x1cf90d(0x1f7)],'steps':_0x3b2ec0[_0x1cf90d(0x1ef)]['actionableSteps'],'metrics':{'instances':_0x3b2ec0[_0x1cf90d(0x220)][_0x1cf90d(0x221)],'lines':_0x3b2ec0['metrics'][_0x1cf90d(0x22f)],'files':_0x3b2ec0['metrics']['filesCovered'],'impact':_0x3b2ec0['metrics']['impactScore']},'locations':_0x3b2ec0['instances'][_0x1cf90d(0x20e)](_0x3d2b3a=>({'file':_0x3d2b3a['file'],'startLine':_0x3d2b3a['startLine'],'endLine':_0x3d2b3a['endLine']}))}))};}[a0_0x24898f(0x20d)](_0x1d40d1,_0x4ac694,_0x228067,_0x2b3071){const _0x2a380a=a0_0x24898f;return{'directory':this['directoryAccessManager']['createRelativePath'](_0x228067,_0x2b3071),'fullPath':_0x228067,'success':!![],'outputMode':_0x2a380a(0x214),'summary':_0x1d40d1['summary'],'clones':_0x4ac694['map'](_0x50bf13=>({..._0x50bf13,'instances':_0x50bf13['instances'][_0x2a380a(0x20e)](_0x24116e=>({..._0x24116e,'code':_0x24116e[_0x2a380a(0x20a)][_0x2a380a(0x210)]('\x0a')['slice'](0x0,0xa)[_0x2a380a(0x234)]('\x0a')+(_0x24116e['code']['split']('\x0a')[_0x2a380a(0x205)]>0xa?'\x0a...\x20(truncated)':'')}))}))};}async['getCloneDetector'](){const _0x55b1fd=a0_0x24898f;if(!this['cloneDetector']){const {CloneDetectionTool:_0x4b2be2}=await import(_0x55b1fd(0x1f8)),_0x4ed9fc={'minTokens':this[_0x55b1fd(0x1ed)],'minLines':this[_0x55b1fd(0x242)],'similarityThreshold':this[_0x55b1fd(0x211)],'include':['**/*.js','**/*.jsx','**/*.ts',_0x55b1fd(0x226),_0x55b1fd(0x1e8)],'exclude':['**/node_modules/**','**/dist/**','**/build/**'],'maxFileSize':this[_0x55b1fd(0x23b)]};this[_0x55b1fd(0x231)]=new _0x4b2be2(_0x4ed9fc),this['logger']?.[_0x55b1fd(0x235)]('Clone\x20detector\x20initialized',{'config':_0x4ed9fc});}return this[_0x55b1fd(0x231)];}[a0_0x24898f(0x224)](){const _0x306d93=a0_0x24898f;return[_0x306d93(0x22c)];}['getParameterSchema'](){const _0x51796=a0_0x24898f;return{'type':_0x51796(0x207),'properties':{'actions':{'type':_0x51796(0x239),'minItems':0x1,'items':{'type':_0x51796(0x207),'properties':{'type':{'type':_0x51796(0x21c),'enum':this['getSupportedActions']()},'directory':{'type':'string'},'minTokens':{'type':_0x51796(0x1f0),'minimum':0xa,'maximum':0x3e8},'minLines':{'type':_0x51796(0x1f0),'minimum':0x1,'maximum':0x64},'similarityThreshold':{'type':'number','minimum':0.5,'maximum':0x1},'priorityFilter':{'type':'string','enum':[_0x51796(0x1e0),_0x51796(0x22d),_0x51796(0x1f2)]},'maxResults':{'type':_0x51796(0x1f0),'minimum':0x1},'outputMode':{'type':'string','enum':[_0x51796(0x204),_0x51796(0x214),_0x51796(0x1eb)]}},'required':[_0x51796(0x232),_0x51796(0x238)]}}},'required':[_0x51796(0x212)]};}}export default CloneDetectionTool;
|
|
1
|
+
const a0_0x2c0b6f=a0_0x4457;(function(_0x584ecf,_0x3d0be4){const _0x37ddff=a0_0x4457,_0x49daeb=_0x584ecf();while(!![]){try{const _0x712b2c=-parseInt(_0x37ddff(0x184))/0x1*(parseInt(_0x37ddff(0x137))/0x2)+-parseInt(_0x37ddff(0x12e))/0x3+-parseInt(_0x37ddff(0x160))/0x4*(parseInt(_0x37ddff(0x161))/0x5)+-parseInt(_0x37ddff(0x14a))/0x6+parseInt(_0x37ddff(0x162))/0x7*(parseInt(_0x37ddff(0x152))/0x8)+-parseInt(_0x37ddff(0x180))/0x9+-parseInt(_0x37ddff(0x132))/0xa*(-parseInt(_0x37ddff(0x191))/0xb);if(_0x712b2c===_0x3d0be4)break;else _0x49daeb['push'](_0x49daeb['shift']());}catch(_0x2a8162){_0x49daeb['push'](_0x49daeb['shift']());}}}(a0_0x1aad,0xa8340));function a0_0x4457(_0x390d4e,_0x405f92){_0x390d4e=_0x390d4e-0x12d;const _0x1aad17=a0_0x1aad();let _0x445739=_0x1aad17[_0x390d4e];if(a0_0x4457['zORiEN']===undefined){var _0xc7e861=function(_0x4c6cb5){const _0x30c5ed='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4eb062='',_0x615f6b='';for(let _0x5b31de=0x0,_0x4fc9d3,_0x14963b,_0x13c821=0x0;_0x14963b=_0x4c6cb5['charAt'](_0x13c821++);~_0x14963b&&(_0x4fc9d3=_0x5b31de%0x4?_0x4fc9d3*0x40+_0x14963b:_0x14963b,_0x5b31de++%0x4)?_0x4eb062+=String['fromCharCode'](0xff&_0x4fc9d3>>(-0x2*_0x5b31de&0x6)):0x0){_0x14963b=_0x30c5ed['indexOf'](_0x14963b);}for(let _0x282279=0x0,_0x2513f1=_0x4eb062['length'];_0x282279<_0x2513f1;_0x282279++){_0x615f6b+='%'+('00'+_0x4eb062['charCodeAt'](_0x282279)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x615f6b);};a0_0x4457['ZHmoZJ']=_0xc7e861,a0_0x4457['zJQyoW']={},a0_0x4457['zORiEN']=!![];}const _0x3bd8a7=_0x1aad17[0x0],_0x54acd1=_0x390d4e+_0x3bd8a7,_0x563bd4=a0_0x4457['zJQyoW'][_0x54acd1];return!_0x563bd4?(_0x445739=a0_0x4457['ZHmoZJ'](_0x445739),a0_0x4457['zJQyoW'][_0x54acd1]=_0x445739):_0x445739=_0x563bd4,_0x445739;}import{BaseTool}from'./baseTool.js';import a0_0x4eb062 from'../utilities/tagParser.js';function a0_0x1aad(){const _0x14fd9c=['nZqZmJm1nwTqq3fIsa','ChjPB3jPDhKTzMLSDgvY','oIbKAxjLy3rVCNKGAxmGCMvXDwLYzwqGzM9YigrLDgvJDc1JBg9Uzxm','kIOVzgLZDc8QkG','C2LTAwXHCML0Es10AhjLC2HVBgq','kIOVkI5QCW','ChvZAa','oIbZAw1PBgfYAxr5lxrOCMvZAg9SzcbTDxn0igjLigjLDhDLzw4Gmc41igfUzcaXlJa','BwvZC2fNzq','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','zgv0zwn0q2XVBMvZ','kIOVkI5ZCgvJlMPZ','zgv0zwn0lwnSB25LCW','vw5RBM93BIbHy3rPB24GDhLWztOG','Bwf4uMvZDwX0CW','Bwv0CMLJCW','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','zgvMyxvSDe1PBKXPBMvZ','BwLUvg9Rzw5Z','zMLSzq','zMLSDgvY','CgfYC2vbDhrYAwj1DgvZ','q2XVBMvezxrLy3rPB24GDg9VBcbWyxjZAw5NihbHCMfTzxrLCNm','z2v0v29YA2LUz0rPCMvJDg9YEq','C3rHCNrmAw5L','zw5KtgLUzq','DhLWzq','Dg90ywXdBg9Uzxm','BgLUzunVDw50','B3v0Chv0lw1Vzgu','ntm1ndiWohDlvgDLva','z2v0u3vWCg9YDgvKqwn0Aw9UCW','qwn0Aw9Uia','CNvU','mJGXotKXCK1gz3bT','z2v0q2XVBMvezxrLy3rVCG','ChjPB3jPDhLgAwX0zxi','BwLUlxrVA2vUCW','Bwf4rMLSzvnPEMu','C3vTBwfYEq','kIOVkI52Dwu','zM9YBwf0rgv0ywLSzwrpDxrWDxq','Bg9Nz2vY','CgfYC2vqyxjHBwv0zxjZ','AxnbC3LUyW','y3jLyxrLrgLYzwn0B3j5qwnJzxnZ','Dg90ywXeDxbSAwnHDgvKtgLUzxm','mJKWmZe4mJDWu2DbvLq','BwvKAxvT','BgvUz3rO','Dg90ywXgAwXLCW','kIOVyNvPBgqVkIO','C2XPy2u','zgLYzwn0B3j5qwnJzxnZtwfUywDLCG','C2LTAwXHCML0EvrOCMvZAg9Sza','kIOVBM9Kzv9TB2r1BgvZlYOQ','zMLSzxndB3zLCMvK','C3bSAxq','mJG3mdq4muX1Eu5Ysq','tM8GzMLSzxmGzM91BMqGB3iGBM8Gy2XVBMvZigrLDgvJDgvK','zgLYzwn0B3j5','ywn0Aw9UCW','mtbvuvvrCgG','kIOVkI5JANm','B3v0Chv0tw9Kzq','zM9YBwf0u3vTBwfYEu91Dhb1Da','ChjPB3jPDhK','nhbZq1joAa','Aw5ZDgfUy2vdB3vUDa','zxjYB3i','y2XVBMvezxrLy3rVCG','zgvIDwC','BwfW','CMvJB21Tzw5KyxrPB25Z','Aw5ZDgfUy2vZ','y3DK','DhjPBq','y3jLyxrLuMvSyxrPDMvqyxrO','C3vNz2vZDgvKtMfTzq','z2v0rgvZy3jPChrPB24','C3vIC3rYAw5N','z2v0ugfYyw1LDgvYu2nOzw1H','B2jQzwn0','yMvUzwzPDhm','cKnVzguGq2XVBMuGrgv0zwn0Aw9UifrVB2W6iezPBMqGzhvWBgLJyxrLzcbJB2rLigzVCIbYzwzHy3rVCMLUzYbVChbVCNr1BML0AwvZcGPuAgLZihrVB2WGAwrLBNrPzMLLCYbLEgfJDcbHBMqGC2LTAwXHCIbJB2rLihbHDhrLCM5ZicHJB2rLignSB25LCYKGywnYB3nZihLVDxiGy29KzwjHC2uGDg8GAgvSCcbYzwr1y2uGzhvWBgLJyxrPB24SigLTChjVDMuGBwfPBNrHAw5HyMLSAxr5lcbHBMqGAwrLBNrPzNKGCMvMywn0B3jPBMCGB3bWB3j0Dw5PDgLLCY4kcLDiqvqGsvqGrevurunuuZOklsbfEgfJDcbdBg9UzxmGkfr5CguGmsK6ieLKzw50AwnHBcbJB2rLihDPDgGGzgLMzMvYzw50igzVCM1HDhrPBMCVy29TBwvUDhmklsbtAw1PBgfYienSB25LCYaOvhLWzsaYlZmPoIbtDhj1y3r1CMfSBhKGC2LTAwXHCIbJB2rLihDPDgGGBwLUB3iGDMfYAwf0Aw9UCWOku1vque9sveveieXbtKDvquDfuZOklsbkyxzHu2nYAxb0icGUANmSic5QC3GSic5TANmSic5JANmPcI0GvhLWzvnJCMLWDcaOlNrZlcaUDhn4kqOTifz1zsaOlNz1zsKkcLvtquDfic0Gwe1miezpuK1bvdOkcKrLDgvJDcbJBg9UzxmGAw4Gzw50AxjLigrPCMvJDg9YEtOkw3rVB2WGAwq9iMnSB25Lzgv0zwn0Aw9UiL0kpgrLDgvJDc1JBg9UzxmGzgLYzwn0B3j5psiUiIaVpGPBl3rVB2XDcGPezxrLy3qGy2XVBMvZigLUihnWzwnPzMLJigrPCMvJDg9YEtOkw3rVB2WGAwq9iMnSB25Lzgv0zwn0Aw9UiL0kpgrLDgvJDc1JBg9UzxmGzgLYzwn0B3j5psjZCMmVC2vYDMLJzxmIic8+cLSVDg9VBf0kcKn1C3rVBsbZzw5ZAxrPDML0EsaOBg93zxiGBwLUvg9Rzw5Zid0GBw9YzsbZzw5ZAxrPDMuPoGPBDg9VBcbPzd0Iy2XVBMvKzxrLy3rPB24IxqO8zgv0zwn0lwnSB25LCYbKAxjLy3rVCNK9iNnYyYiGBwLUlxrVA2vUCZ0ImZaIig1PBI1SAw5LCZ0InsiGlZ4kwY90B29SxqOkrMLSDgvYigj5ihbYAw9YAxr5oGPBDg9VBcbPzd0Iy2XVBMvKzxrLy3rPB24IxqO8zgv0zwn0lwnSB25LCYbKAxjLy3rVCNK9iI4IihbYAw9YAxr5lwzPBhrLCJ0IAgLNAciGBwf4lxjLC3vSDhm9iJuIic8+cLSVDg9VBf0kcKDLDcbZDw1Tyxj5ig9UBhK6cLT0B29SigLKpsjJBg9UzwrLDgvJDgLVBIjDcJXKzxrLy3qTy2XVBMvZigrPCMvJDg9YEt0IlIiGB3v0Chv0lw1Vzgu9iNn1Bw1HCNKIic8+cLSVDg9VBf0kcLvtquDfic0GsLnptIbgt1jnqvq6cGPGygbQC29UcNSkicaIDg9VBeLKiJOGiMnSB25Lzgv0zwn0Aw9UiIWkicaIywn0Aw9UCYi6ifSkicaGihSkicaGicaGiNr5CguIoIaIzgv0zwn0lwnSB25LCYiScIaGicaGicjKAxjLy3rVCNKIoIaIC3jJiIWkicaGicaGiM1PBLrVA2vUCYi6iduWlaOGicaGicaIBwLUtgLUzxmIoIa1laOGicaGicaIC2LTAwXHCML0EvrOCMvZAg9Szci6idaUoduScIaGicaGicjWCMLVCML0EuzPBhrLCIi6icjOAwDOiIWkicaGicaGiM1HEfjLC3vSDhmIoIaXmcWkicaGicaGiM91Dhb1De1VzguIoIaIC3vTBwfYEsikicaGih0kicbDcN0kygbGcGPqqvjbtuvurvjtoGOTigrPCMvJDg9YEtOGrgLYzwn0B3j5ihrVigfUywX5EMuGkhjLCxvPCMvKkqOTig1PBI10B2TLBNm6ie1PBMLTDw0GDg9Rzw4Gy291BNqGkgrLzMf1Bhq6iduWlcbSB3DLCIa9ig1VCMuGC2vUC2L0AxzLkqOTig1PBI1SAw5LCZOGtwLUAw11BsbSAw5LignVDw50icHKzwzHDwX0oIa1kqOTihnPBwLSyxjPDhKTDgHYzxnOB2XKoIaWlteGC2LTAwXHCML0Esb0AhjLC2HVBgqGkgrLzMf1Bhq6idaUoduPcI0GChjPB3jPDhKTzMLSDgvYoIbgAwX0zxiGyNKGChjPB3jPDhKGkgHPz2GVBwvKAxvTl2XVDYWGB3b0Aw9UywWPcI0GBwf4lxjLC3vSDhm6ie1HEgLTDw0GBNvTyMvYig9MignSB25LCYb0BYbYzxr1CM4Gkg9WDgLVBMfSkqOTig91Dhb1Dc1TB2rLoIbZDw1Tyxj5FgrLDgfPBgvKFhjLy29TBwvUzgf0Aw9UCYaOzgvMyxvSDdOGzgv0ywLSzwqPcGPpvvrqvvqGrK9stufuoGPszxr1CM5ZignSB25LigrLDgvJDgLVBIbYzxn1BhrZihDPDgG6cI0GC3vTBwfYEtOGt3zLCMfSBcbZDgf0Axn0AwnZicH0B3rHBcbJBg9UzxmSigr1CgXPy2f0Aw9UicuSihbYAw9YAxr5igjYzwfRzg93BIKklsbJBg9Uzxm6iefYCMf5ig9MigrLDgvJDgvKignSB25LigDYB3vWCWOGic0GAwq6ienSB25LigLKzw50AwzPzxikicaTihr5Cgu6igv4ywn0ihWGC2LTAwXHCGOGic0Gy29UzMLKzw5JztOGrgv0zwn0Aw9UignVBMzPzgvUy2uGkdaTmsKkicaTigLUC3rHBMnLCZOGqxjYyxKGB2yGy29KzsbSB2nHDgLVBNmGD2L0AcbMAwXLihbHDgHZigfUzcbSAw5Lig51BwjLCNmkicaTig1LDhjPy3m6ihrVA2vUq291BNqSigXPBMvdB3vUDcWGAw5ZDgfUy2vdB3vUDcWGAw1Wywn0u2nVCMuSigzPBgvZq292zxjLzaOGic0GCMvMywn0B3jPBMDbzhzPy2u6cIaGicaTihbYAw9YAxr5oIbOAwDOihWGBwvKAxvTihWGBg93cIaGicaTihn0CMf0zwD5oIbLEhrYywn0lwz1BMn0Aw9UihWGzxH0CMfJDc1JBgfZCYb8igv4DhjHy3qTBw9KDwXLihWGzxH0CMfJDc1JB25ZDgfUDaOGicaGlsbZDwDNzxn0zwroyw1LoIbszwnVBw1LBMrLzcbUyw1LigzVCIbLEhrYywn0zwqGy29KzqOGicaGlsbYzwfZB25PBMC6ifDOEsb0AgLZihjLzMfJDg9YAw5NigLZihjLy29TBwvUzgvKcIaGicaTigvZDgLTyxrLzevMzM9YDdOGBg93ihWGBwvKAxvTihWGAgLNAaOGicaGlsbIzw5LzML0CZOGqxjYyxKGB2yGyMvUzwzPDhmkicaGic0Gywn0Aw9UywjSzvn0zxbZoIbtDgvWlwj5lxn0zxaGCMvMywn0B3jPBMCGAw5ZDhj1y3rPB25ZcGPpvvrqvvqGtu9ervm6cI0GC3vTBwfYEtOGsgLNAc1SzxzLBcbVDMvYDMLLDYbVBMX5icHKDxbSAwnHDgLVBIaLlcb0B3aGnsbJBg9UzxmPcI0Gzgv0ywLSzwq6iez1BgWGy2XVBMuGzgv0ywLSCYb3AxrOignVzguGC25PChbLDhmGkgrLzMf1BhqPcI0GCMvJB21Tzw5KyxrPB25ZoIbszwzHy3rVCMLUzYbWCMLVCML0AwvZihDPDgGGywn0Aw9UywjSzsbZDgvWCWOkrevurunusu9oiefmr09ssvrittOklsbvC2vZieftvcaOqwjZDhjHy3qGu3LUDgf4ifrYzwuPihbHCNnPBMCGDMLHiejHyMvScI0Gvg9Rzw4TyMfZzwqGC2LTAwXHCML0Esb3AxrOig5VCM1HBgL6yxrPB24klsbmB25Nzxn0ienVBw1VBIbtDwjZzxf1zw5JzsaOtentksbHBgDVCML0Ag0GzM9YihnPBwLSyxjPDhKklsbdB25MAwD1CMfIBguGC2vUC2L0AxzPDhKGyw5KihrOCMvZAg9SzhmkcKvyqu1qtevtoGOkrMLUzcbHBgWGy2XVBMvZigLUihbYB2PLy3q6cLT0B29SigLKpsjJBg9UzwrLDgvJDgLVBIjDcJXKzxrLy3qTy2XVBMvZigrPCMvJDg9YEt0IlIiGlZ4kwY90B29SxqOksgLNAc1WCMLVCML0EsbYzwzHy3rVCMLUzYbVChbVCNr1BML0AwvZig9UBhK6cLT0B29SigLKpsjJBg9UzwrLDgvJDgLVBIjDcJXKzxrLy3qTy2XVBMvZigrPCMvJDg9YEt0IC3jJiIbWCMLVCML0Es1MAwX0zxi9iMHPz2GIig1HEc1Yzxn1BhrZpsiXmciGlZ4kwY90B29SxqOktw9YzsbZzw5ZAxrPDMuGzgv0zwn0Aw9UicHMAw5KCYbZBwfSBgvYignSB25LCYK6cLT0B29SigLKpsjJBg9UzwrLDgvJDgLVBIjDcJXKzxrLy3qTy2XVBMvZigrPCMvJDg9YEt0IlIiGBwLUlxrVA2vUCZ0ImZaIihnPBwLSyxjPDhKTDgHYzxnOB2XKpsiWlJGWiIaVpGPBl3rVB2XDcGPrDwLJAYbVDMvYDMLLDZOkw3rVB2WGAwq9iMnSB25Lzgv0zwn0Aw9UiL0kpgrLDgvJDc1JBg9UzxmGzgLYzwn0B3j5psiUiIbVDxrWDxqTBw9Kzt0IC3vTBwfYEsiGlZ4kwY90B29SxqOkteLnsvrbveLptLm6cI0Gqw5HBhL6zxmGsMf2yvnJCMLWDc9uExbLu2nYAxb0igzHBwLSEsbVBMX5cI0GugvYzM9YBwfUy2uGzgvWzw5KCYbVBIbJB2rLyMfZzsbZAxPLicG1mdbTCYbWzxiGzMLSzsb0ExbPy2fSkqOTie1HEgLTDw0GzMLSzsbZAxPLoIa','ywXSB3DLza','mZm0ode3nhnMDeXSyG','DMfSAwrHDgvszwfKqwnJzxnZ','zw50CMLLCW','Bwf4lxjLC3vSDhm','CMvMywn0B3jPBMDbzhzPy2u','BNvTyMvY','lI4Vyw5HBhL6zxjZl2nVzgvdBg9UzurLDgvJDg9Yl2LUzgv4lMPZ','CMvHC29UAw5N','oerlquLVCG','zgv0ywLSzwq','zgvMyxvSDfnPBwLSyxjPDhLuAhjLC2HVBgq','zM9YBwf0uMvJB21Tzw5KyxrPB25Zt3v0Chv0','rMfPBgvKihrVigrLDgvJDcbJBg9UzxmGAw4G','CMvZB2X2zq','Aw5JBhvKzxm','q2XVBMuGzgv0zwn0Aw9UigfJDgLVBIbMywLSzwq','Bg93','u3rHCNrPBMCGy2XVBMuGzgv0zwn0Aw9U','oIbTAw4TBgLUzxmGBxvZDcbIzsbIzxr3zwvUideGyw5KideWma','uMvHzcbHy2nLC3mGzgvUAwvKoIa','BwLUlwXPBMvZ','C3rYAw5N','ntiWndHntvHwzeu','mtmWvNLRs1rO'];a0_0x1aad=function(){return _0x14fd9c;};return a0_0x1aad();}import a0_0x615f6b from'../utilities/directoryAccessManager.js';import a0_0x5b31de from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class CloneDetectionTool extends BaseTool{constructor(_0x4fc9d3={},_0x14963b=null){const _0x22dd55=a0_0x4457;super(_0x4fc9d3,_0x14963b),this['requiresProject']=!![],this[_0x22dd55(0x18e)]=![],this['timeout']=_0x4fc9d3['timeout']||0x1d4c0,this['maxConcurrentOperations']=_0x4fc9d3[_0x22dd55(0x172)]||0x1,this['defaultMinTokens']=_0x4fc9d3['defaultMinTokens']||0x32,this[_0x22dd55(0x173)]=_0x4fc9d3[_0x22dd55(0x173)]||0x5,this['defaultSimilarityThreshold']=_0x4fc9d3[_0x22dd55(0x154)]||0.85,this[_0x22dd55(0x188)]=_0x4fc9d3[_0x22dd55(0x188)]||0x7a120,this['directoryAccessManager']=new a0_0x615f6b(_0x4fc9d3,_0x14963b),this[_0x22dd55(0x13a)]=null;}[a0_0x2c0b6f(0x143)](){const _0x125d43=a0_0x2c0b6f;return _0x125d43(0x148)+Math['round'](this['maxFileSize']/0x400)+'KB\x20per\x20file\x0a-\x20Analysis\x20timeout:\x20'+this['timeout']/0x3e8+'\x20seconds\x0a\x0aUSE\x20CASES:\x0a-\x20Identify\x20refactoring\x20opportunities\x20before\x20code\x20review\x0a-\x20Track\x20technical\x20debt\x20and\x20code\x20duplication\x20metrics\x0a-\x20Find\x20candidates\x20for\x20DRY\x20(Don\x27t\x20Repeat\x20Yourself)\x20refactoring\x0a-\x20Prioritize\x20maintenance\x20work\x20by\x20impact\x20score\x0a\x20\x20\x20\x20';}[a0_0x2c0b6f(0x18d)](_0x13c821){const _0x4848fb=a0_0x2c0b6f;try{const _0x282279={},_0x2513f1=[];this[_0x4848fb(0x18c)]?.['debug'](_0x4848fb(0x178),{'contentLength':_0x13c821['length'],'contentPreview':_0x13c821[_0x4848fb(0x144)](0x0,0xc8)});const _0x52b69d=/<detect-clones\s+(.+?)\/>/g;let _0x341150;while((_0x341150=_0x52b69d['exec'](_0x13c821))!==null){const _0x2a66d5=_0x341150[0x1]['trim'](),_0x2d4d19=new a0_0x4eb062(),_0x1275fe=_0x2d4d19[_0x4848fb(0x177)](_0x2a66d5),_0x35db75={'type':'detect-clones',..._0x1275fe};_0x35db75[_0x4848fb(0x187)]&&(_0x35db75[_0x4848fb(0x174)]=parseInt(_0x35db75[_0x4848fb(0x187)],0xa),delete _0x35db75['min-tokens']),_0x35db75['min-lines']&&(_0x35db75['minLines']=parseInt(_0x35db75[_0x4848fb(0x15e)],0xa),delete _0x35db75[_0x4848fb(0x15e)]),_0x35db75['similarity-threshold']&&(_0x35db75['similarityThreshold']=parseFloat(_0x35db75['similarity-threshold']),delete _0x35db75[_0x4848fb(0x166)]),_0x35db75[_0x4848fb(0x163)]&&(_0x35db75[_0x4848fb(0x186)]=_0x35db75['priority-filter'],delete _0x35db75['priority-filter']),_0x35db75['max-results']&&(_0x35db75['maxResults']=parseInt(_0x35db75['max-results'],0xa),delete _0x35db75[_0x4848fb(0x14d)]),_0x35db75['output-mode']&&(_0x35db75[_0x4848fb(0x134)]=_0x35db75[_0x4848fb(0x17f)],delete _0x35db75['output-mode']),_0x2513f1['push'](_0x35db75);}return _0x282279[_0x4848fb(0x131)]=_0x2513f1,_0x282279['rawContent']=_0x13c821[_0x4848fb(0x140)](),this['logger']?.[_0x4848fb(0x13b)]('Parsed\x20CloneDetection\x20tool\x20parameters',{'totalActions':_0x2513f1['length'],'actionTypes':_0x2513f1[_0x4848fb(0x13c)](_0x2310db=>_0x2310db['type'])}),_0x282279;}catch(_0x10f581){throw new Error('Failed\x20to\x20parse\x20clone\x20detection\x20parameters:\x20'+_0x10f581['message']);}}['getRequiredParameters'](){const _0x5d15ed=a0_0x2c0b6f;return[_0x5d15ed(0x131)];}[a0_0x2c0b6f(0x16b)](_0x3517a9){const _0x4d428c=a0_0x2c0b6f,_0x5f59f6=[];if(!_0x3517a9[_0x4d428c(0x131)]||!Array['isArray'](_0x3517a9['actions'])||_0x3517a9['actions'][_0x4d428c(0x193)]===0x0)_0x5f59f6['push']('At\x20least\x20one\x20action\x20is\x20required');else for(const [_0x49bf9b,_0x3b17c5]of _0x3517a9['actions'][_0x4d428c(0x14c)]()){if(!_0x3b17c5[_0x4d428c(0x17c)]){_0x5f59f6['push']('Action\x20'+(_0x49bf9b+0x1)+':\x20type\x20is\x20required');continue;}_0x3b17c5[_0x4d428c(0x17c)]===_0x4d428c(0x16e)?(!_0x3b17c5[_0x4d428c(0x130)]&&_0x5f59f6[_0x4d428c(0x168)]('Action\x20'+(_0x49bf9b+0x1)+_0x4d428c(0x164)),_0x3b17c5['minTokens']!==undefined&&(_0x3b17c5[_0x4d428c(0x174)]<0xa||_0x3b17c5['minTokens']>0x3e8)&&_0x5f59f6[_0x4d428c(0x168)](_0x4d428c(0x182)+(_0x49bf9b+0x1)+':\x20min-tokens\x20must\x20be\x20between\x2010\x20and\x201000'),_0x3b17c5['minLines']!==undefined&&(_0x3b17c5['minLines']<0x1||_0x3b17c5['minLines']>0x64)&&_0x5f59f6['push']('Action\x20'+(_0x49bf9b+0x1)+_0x4d428c(0x15c)),_0x3b17c5[_0x4d428c(0x198)]!==undefined&&(_0x3b17c5['similarityThreshold']<0.5||_0x3b17c5[_0x4d428c(0x198)]>0x1)&&_0x5f59f6['push']('Action\x20'+(_0x49bf9b+0x1)+_0x4d428c(0x169)),_0x3b17c5['priorityFilter']&&!['high','medium','low']['includes'](_0x3b17c5['priorityFilter'])&&_0x5f59f6['push'](_0x4d428c(0x182)+(_0x49bf9b+0x1)+':\x20priority-filter\x20must\x20be\x20high,\x20medium,\x20or\x20low'),_0x3b17c5['outputMode']&&!['summary','detailed',_0x4d428c(0x13d)][_0x4d428c(0x158)](_0x3b17c5[_0x4d428c(0x134)])&&_0x5f59f6['push']('Action\x20'+(_0x49bf9b+0x1)+':\x20output-mode\x20must\x20be\x20summary,\x20detailed,\x20or\x20recommendations')):_0x5f59f6['push'](_0x4d428c(0x182)+(_0x49bf9b+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x3b17c5[_0x4d428c(0x17c)]);}return{'valid':_0x5f59f6['length']===0x0,'errors':_0x5f59f6};}async['execute'](_0x1bc002,_0x544828){const _0x5cb8a6=a0_0x2c0b6f,{actions:_0x1aca22}=_0x1bc002,{projectDir:_0x3dd534,agentId:_0x36a02d,directoryAccess:_0x7de7ec}=_0x544828,_0x5e4136=_0x7de7ec||this[_0x5cb8a6(0x197)][_0x5cb8a6(0x18f)]({'workingDirectory':_0x3dd534||process[_0x5cb8a6(0x13f)](),'writeEnabledDirectories':[],'readOnlyDirectories':[_0x3dd534||process[_0x5cb8a6(0x13f)]()],'restrictToProject':!![]}),_0x2d0096=this['directoryAccessManager'][_0x5cb8a6(0x179)](_0x5e4136),_0xf5ef7c=[];for(const _0x5a8361 of _0x1aca22){try{if(_0x5a8361[_0x5cb8a6(0x17c)]==='detect-clones'){const _0x2fb6d0=await this['detectClones'](_0x5a8361['directory'],_0x2d0096,_0x5e4136,_0x5a8361);_0xf5ef7c['push'](_0x2fb6d0);}else throw new Error(_0x5cb8a6(0x16f)+_0x5a8361[_0x5cb8a6(0x17c)]);}catch(_0x4984cb){this['logger']?.[_0x5cb8a6(0x139)](_0x5cb8a6(0x159),{'action':_0x5a8361[_0x5cb8a6(0x17c)],'error':_0x4984cb['message']}),_0xf5ef7c['push']({'directory':_0x5a8361['directory'],'error':_0x4984cb[_0x5cb8a6(0x16a)],'success':![]});}}return{'success':!![],'results':_0xf5ef7c,'toolUsed':'clonedetection'};}async[a0_0x2c0b6f(0x16c)](_0x2e7cc5,_0x1d682b,_0x2839be,_0x39aab5={}){const _0x105807=a0_0x2c0b6f,_0x3b54ba=a0_0x5b31de['isAbsolute'](_0x2e7cc5)?a0_0x5b31de['normalize'](_0x2e7cc5):a0_0x5b31de[_0x105807(0x157)](_0x1d682b,_0x2e7cc5),_0x37e70d=this[_0x105807(0x197)][_0x105807(0x14b)](_0x3b54ba,_0x2839be);if(!_0x37e70d[_0x105807(0x149)])throw new Error(_0x105807(0x15d)+_0x37e70d['reason']);try{const _0x23e63f=await this[_0x105807(0x185)](),_0x220f2a={'minTokens':_0x39aab5[_0x105807(0x174)]||this['defaultMinTokens'],'minLines':_0x39aab5['minLines']||this[_0x105807(0x173)],'similarityThreshold':_0x39aab5[_0x105807(0x198)]||this['defaultSimilarityThreshold'],'include':[_0x105807(0x167),'**/*.jsx','**/*.mjs',_0x105807(0x133),'**/*.ts','**/*.tsx',_0x105807(0x18a)],'exclude':[_0x105807(0x199),_0x105807(0x165),_0x105807(0x195),'**/*.test.js',_0x105807(0x16d)],'maxFileSize':this['maxFileSize']};this['logger']?.['info'](_0x105807(0x15b),{'directory':_0x3b54ba,'config':_0x220f2a});const _0x13d6ef=await _0x23e63f[_0x105807(0x183)](_0x3b54ba,null);if(!_0x13d6ef)return{'directory':this[_0x105807(0x197)]['createRelativePath'](_0x3b54ba,_0x2839be),'fullPath':_0x3b54ba,'success':!![],'summary':{'totalFiles':0x0,'totalClones':0x0,'duplicationPercentage':0x0},'clones':[],'message':_0x105807(0x12f)};let _0x3b88dc=_0x13d6ef['clones'];_0x39aab5[_0x105807(0x186)]&&(_0x3b88dc=_0x3b88dc[_0x105807(0x176)](_0x9550ae=>_0x9550ae['refactoringAdvice'][_0x105807(0x136)]===_0x39aab5[_0x105807(0x186)]));_0x39aab5[_0x105807(0x170)]&&(_0x3b88dc=_0x3b88dc[_0x105807(0x196)](0x0,_0x39aab5['maxResults']));const _0x34471e=_0x39aab5['outputMode']||_0x105807(0x153);if(_0x34471e===_0x105807(0x189))return this['formatSummaryOutput'](_0x13d6ef,_0x3b88dc,_0x3b54ba,_0x2839be);else return _0x34471e===_0x105807(0x13d)?this[_0x105807(0x155)](_0x13d6ef,_0x3b88dc,_0x3b54ba,_0x2839be):this[_0x105807(0x18b)](_0x13d6ef,_0x3b88dc,_0x3b54ba,_0x2839be);}catch(_0x14ef05){throw new Error(_0x105807(0x156)+_0x2e7cc5+':\x20'+_0x14ef05[_0x105807(0x16a)]);}}[a0_0x2c0b6f(0x135)](_0x532d1c,_0x5f587d,_0x1faf2d,_0xc5d728){const _0x5397b7=a0_0x2c0b6f;return{'directory':this[_0x5397b7(0x197)][_0x5397b7(0x141)](_0x1faf2d,_0xc5d728),'fullPath':_0x1faf2d,'success':!![],'outputMode':'summary','summary':{'totalFiles':_0x532d1c[_0x5397b7(0x189)]['totalFiles'],'totalClones':_0x532d1c[_0x5397b7(0x189)][_0x5397b7(0x17d)],'duplicatedLines':_0x532d1c[_0x5397b7(0x189)][_0x5397b7(0x190)],'duplicationPercentage':_0x532d1c[_0x5397b7(0x189)]['duplicationPercentage'],'priorityCounts':_0x532d1c['summary']['priorityCounts'],'topClones':_0x5f587d['slice'](0x0,0x5)['map'](_0x117304=>({'id':_0x117304['id'],'type':_0x117304['type'],'confidence':_0x117304['confidence'],'instances':_0x117304['metrics'][_0x5397b7(0x138)],'lines':_0x117304[_0x5397b7(0x171)][_0x5397b7(0x17e)],'priority':_0x117304['refactoringAdvice']['priority'],'strategy':_0x117304['refactoringAdvice']['strategy'],'locations':_0x117304['instances'][_0x5397b7(0x13c)](_0x37b449=>_0x37b449[_0x5397b7(0x175)]+':'+_0x37b449['startLine']+'-'+_0x37b449[_0x5397b7(0x17b)])}))}};}[a0_0x2c0b6f(0x155)](_0x31b11a,_0x535d21,_0x5d1777,_0x2bf557){const _0x5e4ec8=a0_0x2c0b6f;return{'directory':this['directoryAccessManager']['createRelativePath'](_0x5d1777,_0x2bf557),'fullPath':_0x5d1777,'success':!![],'outputMode':_0x5e4ec8(0x13d),'summary':{'totalFiles':_0x31b11a['summary'][_0x5e4ec8(0x194)],'totalClones':_0x31b11a[_0x5e4ec8(0x189)][_0x5e4ec8(0x17d)],'duplicationPercentage':_0x31b11a[_0x5e4ec8(0x189)]['duplicationPercentage']},'recommendations':_0x535d21[_0x5e4ec8(0x13c)](_0x50d989=>({'id':_0x50d989['id'],'priority':_0x50d989[_0x5e4ec8(0x14e)]['priority'],'strategy':_0x50d989[_0x5e4ec8(0x14e)]['strategy'],'suggestedName':_0x50d989['refactoringAdvice'][_0x5e4ec8(0x142)],'reasoning':_0x50d989['refactoringAdvice'][_0x5e4ec8(0x151)],'effort':_0x50d989['refactoringAdvice']['estimatedEffort'],'benefits':_0x50d989['refactoringAdvice'][_0x5e4ec8(0x147)],'steps':_0x50d989['refactoringAdvice']['actionableSteps'],'metrics':{'instances':_0x50d989['metrics'][_0x5e4ec8(0x138)],'lines':_0x50d989['metrics'][_0x5e4ec8(0x17e)],'files':_0x50d989['metrics'][_0x5e4ec8(0x19a)],'impact':_0x50d989[_0x5e4ec8(0x171)]['impactScore']},'locations':_0x50d989['instances'][_0x5e4ec8(0x13c)](_0x42da76=>({'file':_0x42da76[_0x5e4ec8(0x175)],'startLine':_0x42da76[_0x5e4ec8(0x17a)],'endLine':_0x42da76['endLine']}))}))};}['formatDetailedOutput'](_0x53da4f,_0x32ff6a,_0x1de0d0,_0x2294ca){const _0x4ac3a7=a0_0x2c0b6f;return{'directory':this[_0x4ac3a7(0x197)]['createRelativePath'](_0x1de0d0,_0x2294ca),'fullPath':_0x1de0d0,'success':!![],'outputMode':'detailed','summary':_0x53da4f[_0x4ac3a7(0x189)],'clones':_0x32ff6a['map'](_0x37e89f=>({..._0x37e89f,'instances':_0x37e89f[_0x4ac3a7(0x13e)][_0x4ac3a7(0x13c)](_0x348dae=>({..._0x348dae,'code':_0x348dae['code'][_0x4ac3a7(0x12d)]('\x0a')['slice'](0x0,0xa)['join']('\x0a')+(_0x348dae['code']['split']('\x0a')['length']>0xa?'\x0a...\x20(truncated)':'')}))}))};}async[a0_0x2c0b6f(0x185)](){const _0x1750e3=a0_0x2c0b6f;if(!this['cloneDetector']){const {CloneDetectionTool:_0x55a204}=await import(_0x1750e3(0x150)),_0x3e6cd2={'minTokens':this['defaultMinTokens'],'minLines':this[_0x1750e3(0x173)],'similarityThreshold':this['defaultSimilarityThreshold'],'include':['**/*.js','**/*.jsx','**/*.ts','**/*.tsx','**/*.vue'],'exclude':[_0x1750e3(0x199),'**/dist/**',_0x1750e3(0x195)],'maxFileSize':this['maxFileSize']};this['cloneDetector']=new _0x55a204(_0x3e6cd2),this[_0x1750e3(0x18c)]?.['debug']('Clone\x20detector\x20initialized',{'config':_0x3e6cd2});}return this[_0x1750e3(0x13a)];}[a0_0x2c0b6f(0x181)](){const _0x1ea9b6=a0_0x2c0b6f;return[_0x1ea9b6(0x16e)];}[a0_0x2c0b6f(0x145)](){const _0x1b6eda=a0_0x2c0b6f;return{'type':'object','properties':{'actions':{'type':'array','minItems':0x1,'items':{'type':_0x1b6eda(0x146),'properties':{'type':{'type':_0x1b6eda(0x15f),'enum':this['getSupportedActions']()},'directory':{'type':_0x1b6eda(0x15f)},'minTokens':{'type':_0x1b6eda(0x14f),'minimum':0xa,'maximum':0x3e8},'minLines':{'type':'number','minimum':0x1,'maximum':0x64},'similarityThreshold':{'type':'number','minimum':0.5,'maximum':0x1},'priorityFilter':{'type':'string','enum':['high',_0x1b6eda(0x192),_0x1b6eda(0x15a)]},'maxResults':{'type':'number','minimum':0x1},'outputMode':{'type':_0x1b6eda(0x15f),'enum':['summary',_0x1b6eda(0x153),_0x1b6eda(0x13d)]}},'required':[_0x1b6eda(0x17c),'directory']}}},'required':['actions']};}}export default CloneDetectionTool;
|