@loxia-labs/loxia-autopilot-one 1.0.18 → 1.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/cli.js +1 -1
- package/bin/loxia-terminal-v2.js +1 -1
- package/bin/loxia-terminal.js +1 -1
- package/bin/start-with-terminal.js +1 -1
- package/package.json +1 -1
- package/scripts/install-scanners.js +1 -1
- package/src/analyzers/CSSAnalyzer.js +1 -1
- package/src/analyzers/ConfigValidator.js +1 -1
- package/src/analyzers/ESLintAnalyzer.js +1 -1
- package/src/analyzers/JavaScriptAnalyzer.js +1 -1
- package/src/analyzers/PrettierFormatter.js +1 -1
- package/src/analyzers/PythonAnalyzer.js +1 -1
- package/src/analyzers/SecurityAnalyzer.js +1 -1
- package/src/analyzers/TypeScriptAnalyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/detector.js +1 -1
- package/src/analyzers/codeCloneDetector/index.js +1 -1
- package/src/analyzers/codeCloneDetector/parser.js +1 -1
- package/src/analyzers/codeCloneDetector/reporter.js +1 -1
- package/src/analyzers/codeCloneDetector/scanner.js +1 -1
- package/src/core/agentPool.js +1 -1
- package/src/core/agentScheduler.js +1 -1
- package/src/core/contextManager.js +1 -1
- package/src/core/messageProcessor.js +1 -1
- package/src/core/orchestrator.js +1 -1
- package/src/core/stateManager.js +1 -1
- package/src/index.js +1 -1
- package/src/interfaces/cli.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
- package/src/interfaces/terminal/api/apiClient.js +1 -1
- package/src/interfaces/terminal/api/messageRouter.js +1 -1
- package/src/interfaces/terminal/api/session.js +1 -1
- package/src/interfaces/terminal/api/websocket.js +1 -1
- package/src/interfaces/terminal/components/AgentCreator.js +1 -1
- package/src/interfaces/terminal/components/AgentEditor.js +1 -1
- package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
- package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
- package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
- package/src/interfaces/terminal/components/Header.js +1 -1
- package/src/interfaces/terminal/components/HelpPanel.js +1 -1
- package/src/interfaces/terminal/components/InputBox.js +1 -1
- package/src/interfaces/terminal/components/Layout.js +1 -1
- package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
- package/src/interfaces/terminal/components/MessageList.js +1 -1
- package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
- package/src/interfaces/terminal/components/SearchPanel.js +1 -1
- package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
- package/src/interfaces/terminal/components/StatusBar.js +1 -1
- package/src/interfaces/terminal/components/TextInput.js +1 -1
- package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
- package/src/interfaces/terminal/config/constants.js +1 -1
- package/src/interfaces/terminal/index.js +1 -1
- package/src/interfaces/terminal/state/useAgentControl.js +1 -1
- package/src/interfaces/terminal/state/useAgents.js +1 -1
- package/src/interfaces/terminal/state/useConnection.js +1 -1
- package/src/interfaces/terminal/state/useMessages.js +1 -1
- package/src/interfaces/terminal/state/useTools.js +1 -1
- package/src/interfaces/terminal/utils/debugLogger.js +1 -1
- package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
- package/src/interfaces/terminal/utils/theme.js +1 -1
- package/src/interfaces/webServer.js +1 -1
- package/src/modules/fileExplorer/controller.js +1 -1
- package/src/modules/fileExplorer/index.js +1 -1
- package/src/modules/fileExplorer/middleware.js +1 -1
- package/src/modules/fileExplorer/routes.js +1 -1
- package/src/services/agentActivityService.js +1 -1
- package/src/services/aiService.js +1 -1
- package/src/services/apiKeyManager.js +1 -1
- package/src/services/benchmarkService.js +1 -1
- package/src/services/budgetService.js +1 -1
- package/src/services/contextInjectionService.js +1 -1
- package/src/services/conversationCompactionService.js +1 -1
- package/src/services/errorHandler.js +1 -1
- package/src/services/fileAttachmentService.js +1 -1
- package/src/services/modelRouterService.js +1 -1
- package/src/services/modelsService.js +1 -1
- package/src/services/qualityInspector.js +1 -1
- package/src/services/tokenCountingService.js +1 -1
- package/src/tools/agentCommunicationTool.js +1 -1
- package/src/tools/agentDelayTool.js +1 -1
- package/src/tools/asyncToolManager.js +1 -1
- package/src/tools/baseTool.js +1 -1
- package/src/tools/browserTool.js +1 -1
- package/src/tools/cloneDetectionTool.js +1 -1
- package/src/tools/dependencyResolverTool.js +1 -1
- package/src/tools/fileContentReplaceTool.js +1 -1
- package/src/tools/fileSystemTool.js +1 -1
- package/src/tools/fileTreeTool.js +1 -1
- package/src/tools/imageTool.js +1 -1
- package/src/tools/importAnalyzerTool.js +1 -1
- package/src/tools/jobDoneTool.js +1 -1
- package/src/tools/seekTool.js +1 -1
- package/src/tools/staticAnalysisTool.js +1 -1
- package/src/tools/taskManagerTool.js +1 -1
- package/src/tools/terminalTool.js +1 -1
- package/src/tools/webTool.js +1 -1
- package/src/types/agent.js +1 -1
- package/src/types/contextReference.js +1 -1
- package/src/types/conversation.js +1 -1
- package/src/types/toolCommand.js +1 -1
- package/src/utilities/attachmentValidator.js +1 -1
- package/src/utilities/configManager.js +1 -1
- package/src/utilities/constants.js +1 -1
- package/src/utilities/directoryAccessManager.js +1 -1
- package/src/utilities/fileProcessor.js +1 -1
- package/src/utilities/logger.js +1 -1
- package/src/utilities/tagParser.js +1 -1
- package/src/utilities/toolConstants.js +1 -1
- package/src/utilities/userDataDir.js +1 -1
- package/web-ui/build/index.html +1 -1
- package/web-ui/build/static/{index-DL2-PyNX.js → index-CcwO7jS4.js} +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x4a9573=a0_0x1e8c;(function(_0x3ab1bd,_0xda044f){const _0x417526=a0_0x1e8c,_0x16cd88=_0x3ab1bd();while(!![]){try{const _0x56f2e3=-parseInt(_0x417526(0x1ea))/0x1+parseInt(_0x417526(0x19e))/0x2*(parseInt(_0x417526(0x1b7))/0x3)+parseInt(_0x417526(0x1c7))/0x4+parseInt(_0x417526(0x1d6))/0x5+-parseInt(_0x417526(0x1b8))/0x6+-parseInt(_0x417526(0x1c4))/0x7+-parseInt(_0x417526(0x1d7))/0x8;if(_0x56f2e3===_0xda044f)break;else _0x16cd88['push'](_0x16cd88['shift']());}catch(_0x4f8128){_0x16cd88['push'](_0x16cd88['shift']());}}}(a0_0x36bf,0x9a489));function a0_0x1e8c(_0x566dbc,_0x40bde4){_0x566dbc=_0x566dbc-0x197;const _0x36bf7c=a0_0x36bf();let _0x1e8c9f=_0x36bf7c[_0x566dbc];if(a0_0x1e8c['XtEJzb']===undefined){var _0x1aa2cf=function(_0x54f3af){const _0x3905ae='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2ac3f9='',_0x2f8ba8='';for(let _0x54eb85=0x0,_0x60c3e6,_0xb5a0ea,_0x562fda=0x0;_0xb5a0ea=_0x54f3af['charAt'](_0x562fda++);~_0xb5a0ea&&(_0x60c3e6=_0x54eb85%0x4?_0x60c3e6*0x40+_0xb5a0ea:_0xb5a0ea,_0x54eb85++%0x4)?_0x2ac3f9+=String['fromCharCode'](0xff&_0x60c3e6>>(-0x2*_0x54eb85&0x6)):0x0){_0xb5a0ea=_0x3905ae['indexOf'](_0xb5a0ea);}for(let _0x5ee7ab=0x0,_0x5ed98a=_0x2ac3f9['length'];_0x5ee7ab<_0x5ed98a;_0x5ee7ab++){_0x2f8ba8+='%'+('00'+_0x2ac3f9['charCodeAt'](_0x5ee7ab)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2f8ba8);};a0_0x1e8c['TxSzVk']=_0x1aa2cf,a0_0x1e8c['CzYybU']={},a0_0x1e8c['XtEJzb']=!![];}const _0x484399=_0x36bf7c[0x0],_0x182bb4=_0x566dbc+_0x484399,_0x5b75a0=a0_0x1e8c['CzYybU'][_0x182bb4];return!_0x5b75a0?(_0x1e8c9f=a0_0x1e8c['TxSzVk'](_0x1e8c9f),a0_0x1e8c['CzYybU'][_0x182bb4]=_0x1e8c9f):_0x1e8c9f=_0x5b75a0,_0x1e8c9f;}import a0_0x2ac3f9 from'events';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x36bf(){const _0x58cc95=['yxzLCMfNzuv4zwn1DgLVBLrPBwu','B3bLCMf0Aw9UoMnVBxbSzxrLza','B3bLCMf0Aw9UCW','q2XLyw5Lzcb1Cca','ywDLBNrjza','z2v0vgLTzq','nZG0mZmZAvvAtKPJ','C2v0','zgvMyxvSDfrPBwvVDxq','BgvUz3rO','CMv0CNLpCgvYyxrPB24','Aw5MBW','ignVBxbSzxrLzcbVCgvYyxrPB25Z','y29TCgXLDgvKqxq','zMLSDgvY','B3aT','B3bLCMf0Aw9UoNbYB2DYzxnZ','AgfUzgXLt3bLCMf0Aw9UvgLTzw91Da','DgLTzw91Da','C29YDa','Bwf4sgLZDg9YEvnPEMu','B3bLCMf0Aw9UoNrPBwvVDxq','mM5iDLfsvG','y2HLy2TpCgvYyxrPB25uAw1LB3v0CW','C2v0t3bLCMf0Aw9UvgLTzw91Da','q09nueXfveve','Dg9VBeLK','C2XPy2u','zw1PDa','yMLUza','ChjVz3jLC3m','u3LZDgvTihnODxrKB3DU','AgfUzgXLt3bLCMf0Aw9UrMfPBgvK','rvHfq1vusu5h','Dg9ju09tDhjPBMC','y2fUy2vSt3bLCMf0Aw9U','Bw9UAxrVCMLUz0LUDgvYDMfS','uevoreLorW','q2fUBM90ignHBMnLBcbJB21WBgv0zwqVzMfPBgvKig9WzxjHDgLVBJOG','B3bLCMf0Aw9UoMzHAwXLza','y2XLyxi','y2XLyw51Ce9WzxjHDgLVBG','BgLTAxq','C3rHDhvZ','Bg9Nz2vY','veLnru9vva','D2fYBG','mZC2ndu4owjkDwfbtW','ote4mJC2CKj3v1Lw','yNLbz2vUDa','CMvZDwX0','C3rHCNrnB25PDg9YAw5N','BMv3zxn0t3bLCMf0Aw9U','y2fSy3vSyxrLrxHLy3v0Aw9UvgLTzq','zgvSzxrL','B3bLCMf0Aw9UsgLZDg9YEq','zxjYB3i','CMv0CNLdB3vUDa','B3bLCMf0Aw9UoNn0yxj0zwq','q0foq0vmteve','mJm0ndGZmKzJt05wua','z2v0u3rHDgLZDgLJCW','C3rHCNrpCgvYyxrPB24','mJy2otCZmLHjqNLYAa','ChvZAa','AgfUzgXLt3bLCMf0Aw9Uq29TCgXLDgvK','zgvIDwC','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rHCNrLza','y3jLyxrLzef0','ig9WzxjHDgLVBNmU','z2v0','B3bLCMf0Aw9UoMnSzwfUDxa','Bwf4uMv0CMLLCW','C3rHCNrLzef0','BM93','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','y2XLyw51CenVBxbSzxrLze9WzxjHDgLVBNm','C2H1DgrVD24','mtu5nZe1mg1esNDswG','mJy5otqWohvKDfLHzW','z2v0t3bLCMf0Aw9U','DxbKyxrLt3bLCMf0Aw9U','rKfjteve','y2XLyw51CeLUDgvYDMfS','Dg9tDhjPBMC','CMfUzg9T','DMfSDwvZ','y2XLyxjpCgvYyxrPB25uAw1LB3v0','t3bLCMf0Aw9Uihn0yxj0zwq6ia','DgLTzw91DeHHBMrSzq','yNLuB29S','t3bLCMf0Aw9UigzHAwXLzdOG'];a0_0x36bf=function(){return _0x58cc95;};return a0_0x36bf();}class AsyncToolManager extends a0_0x2ac3f9{constructor(_0x2f8ba8={},_0x54eb85=null){const _0xdb38ad=a0_0x1e8c;super(),this['config']=_0x2f8ba8,this[_0xdb38ad(0x1b4)]=_0x54eb85,this['operations']=new Map(),this['operationHistory']=[],this[_0xdb38ad(0x1d3)]=_0x2f8ba8['maxConcurrentOperations']||0xa,this[_0xdb38ad(0x1ec)]=_0x2f8ba8[_0xdb38ad(0x1ec)]||0x493e0,this['cleanupInterval']=_0x2f8ba8[_0xdb38ad(0x1db)]||0xea60,this['maxHistorySize']=_0x2f8ba8[_0xdb38ad(0x19c)]||0x3e8,this['monitoringInterval']=null,this['isShuttingDown']=![],this['startMonitoring'](),this['on']('operation:started',this['handleOperationStarted'][_0xdb38ad(0x1a5)](this)),this['on']('operation:completed',this[_0xdb38ad(0x1c9)]['bind'](this)),this['on'](_0xdb38ad(0x1af),this[_0xdb38ad(0x1a8)]['bind'](this)),this['on'](_0xdb38ad(0x19d),this['handleOperationTimeout']['bind'](this));}async[a0_0x4a9573(0x1c6)](_0x60c3e6,_0xb5a0ea,_0x562fda,_0x5ee7ab={}){const _0x46c515=a0_0x4a9573;if(this[_0x46c515(0x1e6)]['size']>=this['maxConcurrentOperations'])throw new Error('Maximum\x20concurrent\x20operations\x20reached\x20('+this['maxConcurrentOperations']+')');const _0x5ed98a=this['generateOperationId'](),_0x441b3a={'id':_0x5ed98a,'toolId':_0x60c3e6,'agentId':_0xb5a0ea,'parameters':_0x562fda,'context':_0x5ee7ab,'status':TOOL_STATUS[_0x46c515(0x1ad)],'createdAt':new Date()[_0x46c515(0x1aa)](),'startedAt':null,'completedAt':null,'timeout':_0x5ee7ab[_0x46c515(0x19a)]||this[_0x46c515(0x1ec)],'result':null,'error':null,'progress':null,'retryCount':0x0,'maxRetries':_0x5ee7ab[_0x46c515(0x1d0)]||0x0};return this['operations'][_0x46c515(0x1eb)](_0x5ed98a,_0x441b3a),this[_0x46c515(0x1b4)]?.['info']('Async\x20operation\x20started:\x20'+_0x5ed98a,{'toolId':_0x60c3e6,'agentId':_0xb5a0ea,'parametersCount':Object['keys'](_0x562fda)['length'],'timeout':_0x441b3a[_0x46c515(0x19a)]}),this[_0x46c515(0x1a0)](_0x5ed98a),this['emit'](_0x46c515(0x1c2),_0x441b3a),_0x5ed98a;}[a0_0x4a9573(0x1d9)](_0x693992,_0x1c1a09,_0x5bbf7e={}){const _0x521ae8=a0_0x4a9573,_0x40336d=this['operations'][_0x521ae8(0x1ce)](_0x693992);if(!_0x40336d)return this[_0x521ae8(0x1b4)]?.[_0x521ae8(0x1b6)]('Attempted\x20to\x20update\x20unknown\x20operation:\x20'+_0x693992),![];const _0x2337be=_0x40336d['status'];_0x40336d[_0x521ae8(0x1b3)]=_0x1c1a09;_0x1c1a09===TOOL_STATUS[_0x521ae8(0x1a9)]&&!_0x40336d[_0x521ae8(0x1d1)]&&(_0x40336d['startedAt']=new Date()['toISOString']());(_0x1c1a09===TOOL_STATUS['COMPLETED']||_0x1c1a09===TOOL_STATUS[_0x521ae8(0x1da)])&&(_0x40336d[_0x521ae8(0x1f1)]=new Date()[_0x521ae8(0x1aa)]());if(_0x5bbf7e[_0x521ae8(0x1ba)]!==undefined)_0x40336d['result']=_0x5bbf7e['result'];if(_0x5bbf7e[_0x521ae8(0x1c0)]!==undefined)_0x40336d[_0x521ae8(0x1c0)]=_0x5bbf7e[_0x521ae8(0x1c0)];if(_0x5bbf7e[_0x521ae8(0x1a6)]!==undefined)_0x40336d['progress']=_0x5bbf7e['progress'];this['logger']?.['debug']('Operation\x20status\x20updated:\x20'+_0x693992,{'previousStatus':_0x2337be,'newStatus':_0x1c1a09,'hasResult':!!_0x5bbf7e[_0x521ae8(0x1ba)],'hasError':!!_0x5bbf7e['error'],'progress':_0x5bbf7e['progress']});switch(_0x1c1a09){case TOOL_STATUS[_0x521ae8(0x1a1)]:this[_0x521ae8(0x1a4)](_0x521ae8(0x1e5),_0x40336d);break;case TOOL_STATUS['FAILED']:this['emit'](_0x521ae8(0x1af),_0x40336d);break;case TOOL_STATUS['EXECUTING']:this[_0x521ae8(0x1a4)](_0x521ae8(0x198),_0x40336d);break;}return!![];}[a0_0x4a9573(0x1d8)](_0x12d501){const _0x539382=a0_0x4a9573,_0x3d9bcf=this[_0x539382(0x1e6)][_0x539382(0x1ce)](_0x12d501);if(!_0x3d9bcf)return null;return{'id':_0x3d9bcf['id'],'toolId':_0x3d9bcf[_0x539382(0x1a2)],'agentId':_0x3d9bcf['agentId'],'status':_0x3d9bcf['status'],'createdAt':_0x3d9bcf[_0x539382(0x1cc)],'startedAt':_0x3d9bcf[_0x539382(0x1d1)],'completedAt':_0x3d9bcf['completedAt'],'result':_0x3d9bcf[_0x539382(0x1ba)],'error':_0x3d9bcf[_0x539382(0x1c0)],'progress':_0x3d9bcf['progress'],'retryCount':_0x3d9bcf['retryCount'],'executionTime':this[_0x539382(0x1bd)](_0x3d9bcf)};}['getAgentOperations'](_0x3a94cd){const _0x202644=a0_0x4a9573,_0x29bb69=[];for(const _0x3f1934 of this[_0x202644(0x1e6)][_0x202644(0x1de)]()){_0x3f1934[_0x202644(0x1e8)]===_0x3a94cd&&_0x29bb69[_0x202644(0x1c8)](this[_0x202644(0x1d8)](_0x3f1934['id']));}return _0x29bb69[_0x202644(0x19b)]((_0x1d93ce,_0xbe04be)=>new Date(_0xbe04be['createdAt'])-new Date(_0x1d93ce['createdAt']));}async[a0_0x4a9573(0x1ab)](_0x1d9866,_0x5a88b7='Operation\x20cancelled'){const _0x3bb91c=a0_0x4a9573,_0x3699a2=this['operations'][_0x3bb91c(0x1ce)](_0x1d9866);if(!_0x3699a2)return![];if(_0x3699a2[_0x3bb91c(0x1b3)]===TOOL_STATUS['COMPLETED']||_0x3699a2['status']===TOOL_STATUS['FAILED'])return this['logger']?.['warn'](_0x3bb91c(0x1ae)+_0x1d9866),![];return this['updateOperation'](_0x1d9866,TOOL_STATUS['CANCELLED'],{'error':_0x5a88b7}),this['clearOperationTimeout'](_0x1d9866),this['emit']('operation:cancelled',_0x3699a2),await this[_0x3bb91c(0x1b1)](_0x1d9866),this[_0x3bb91c(0x1b4)]?.['info']('Operation\x20cancelled:\x20'+_0x1d9866,{'reason':_0x5a88b7}),!![];}async['retryOperation'](_0x3eb69a){const _0x119227=a0_0x4a9573,_0x138a64=this[_0x119227(0x1e6)][_0x119227(0x1ce)](_0x3eb69a);if(!_0x138a64)return![];if(_0x138a64[_0x119227(0x1b3)]!==TOOL_STATUS['FAILED'])return this['logger']?.[_0x119227(0x1b6)]('Cannot\x20retry\x20non-failed\x20operation:\x20'+_0x3eb69a),![];if(_0x138a64['retryCount']>=_0x138a64[_0x119227(0x1d0)])return this['logger']?.[_0x119227(0x1b6)]('Maximum\x20retries\x20exceeded\x20for\x20operation:\x20'+_0x3eb69a),![];return _0x138a64[_0x119227(0x1c1)]++,_0x138a64[_0x119227(0x1b3)]=TOOL_STATUS[_0x119227(0x1ad)],_0x138a64['startedAt']=null,_0x138a64[_0x119227(0x1f1)]=null,_0x138a64['error']=null,_0x138a64['result']=null,this['setOperationTimeout'](_0x3eb69a),this[_0x119227(0x1b4)]?.['info']('Operation\x20retry\x20initiated:\x20'+_0x3eb69a,{'retryCount':_0x138a64[_0x119227(0x1c1)],'maxRetries':_0x138a64[_0x119227(0x1d0)]}),this[_0x119227(0x1a4)]('operation:retry',_0x138a64),!![];}[a0_0x4a9573(0x1c5)](){const _0x204b94=a0_0x4a9573,_0x370003={'total':this['operations']['size'],'byStatus':{},'byTool':{},'byAgent':{},'averageExecutionTime':0x0,'oldestOperation':null,'newestOperation':null};let _0xc79ea3=0x0,_0x2f81bb=0x0,_0x546550=null,_0x435dfe=null;for(const _0x463fc5 of this['operations']['values']()){_0x370003['byStatus'][_0x463fc5['status']]=(_0x370003['byStatus'][_0x463fc5['status']]||0x0)+0x1,_0x370003[_0x204b94(0x1e2)][_0x463fc5[_0x204b94(0x1a2)]]=(_0x370003['byTool'][_0x463fc5[_0x204b94(0x1a2)]]||0x0)+0x1,_0x370003['byAgent'][_0x463fc5[_0x204b94(0x1e8)]]=(_0x370003[_0x204b94(0x1b9)][_0x463fc5['agentId']]||0x0)+0x1;const _0x3a6b81=this['calculateExecutionTime'](_0x463fc5);_0x3a6b81>0x0&&(_0xc79ea3+=_0x3a6b81,_0x2f81bb++);const _0x4610b5=new Date(_0x463fc5['createdAt'])[_0x204b94(0x1e9)]();(!_0x546550||_0x4610b5<_0x546550)&&(_0x546550=_0x4610b5,_0x370003['oldestOperation']=_0x463fc5['id']),(!_0x435dfe||_0x4610b5>_0x435dfe)&&(_0x435dfe=_0x4610b5,_0x370003[_0x204b94(0x1bc)]=_0x463fc5['id']);}return _0x370003[_0x204b94(0x1e4)]=_0x2f81bb>0x0?Math['round'](_0xc79ea3/_0x2f81bb):0x0,_0x370003;}async[a0_0x4a9573(0x1d4)](_0x514806=0x36ee80){const _0x9162c1=a0_0x4a9573,_0x47d3df=Date[_0x9162c1(0x1d2)]()-_0x514806,_0x19dddd=[];for(const _0x167480 of this['operations'][_0x9162c1(0x1de)]()){(_0x167480[_0x9162c1(0x1b3)]===TOOL_STATUS[_0x9162c1(0x1a1)]||_0x167480[_0x9162c1(0x1b3)]===TOOL_STATUS['FAILED']||_0x167480['status']===TOOL_STATUS[_0x9162c1(0x1c3)])&&new Date(_0x167480[_0x9162c1(0x1f1)])[_0x9162c1(0x1e9)]()<_0x47d3df&&_0x19dddd[_0x9162c1(0x1c8)](_0x167480['id']);}for(const _0x2438f7 of _0x19dddd){await this['cleanupOperation'](_0x2438f7);}return this['logger']?.[_0x9162c1(0x1ca)](_0x9162c1(0x1e7)+_0x19dddd['length']+_0x9162c1(0x1f0)),_0x19dddd['length'];}[a0_0x4a9573(0x1bb)](){const _0x8ae83c=a0_0x4a9573;this[_0x8ae83c(0x1ac)]&&clearInterval(this[_0x8ae83c(0x1ac)]),this['monitoringInterval']=setInterval(()=>{const _0xd2f0f9=_0x8ae83c;this[_0xd2f0f9(0x19f)](),this['cleanupCompletedOperations']();},this['cleanupInterval']),this['logger']?.[_0x8ae83c(0x1ef)](_0x8ae83c(0x1cb));}['stopMonitoring'](){const _0x3583d5=a0_0x4a9573;this[_0x3583d5(0x1ac)]&&(clearInterval(this[_0x3583d5(0x1ac)]),this['monitoringInterval']=null),this['logger']?.['info']('Async\x20tool\x20manager\x20monitoring\x20stopped');}['checkOperationTimeouts'](){const _0x4e0067=a0_0x4a9573,_0x35048c=Date[_0x4e0067(0x1d2)]();for(const _0x1679cb of this[_0x4e0067(0x1e6)][_0x4e0067(0x1de)]()){if(_0x1679cb[_0x4e0067(0x1b3)]===TOOL_STATUS['EXECUTING']||_0x1679cb[_0x4e0067(0x1b3)]===TOOL_STATUS['PENDING']){const _0x6a8c66=new Date(_0x1679cb[_0x4e0067(0x1cc)])[_0x4e0067(0x1e9)]();_0x35048c-_0x6a8c66>_0x1679cb[_0x4e0067(0x19a)]&&this[_0x4e0067(0x199)](_0x1679cb);}}}[a0_0x4a9573(0x1a0)](_0x540cb2){const _0x3b4714=this['operations']['get'](_0x540cb2);if(!_0x3b4714)return;_0x3b4714['timeoutHandle']=setTimeout(()=>{this['handleOperationTimeout'](_0x3b4714);},_0x3b4714['timeout']);}['clearOperationTimeout'](_0x106f68){const _0x3a23a2=a0_0x4a9573,_0x4704c9=this[_0x3a23a2(0x1e6)]['get'](_0x106f68);_0x4704c9&&_0x4704c9[_0x3a23a2(0x1e1)]&&(clearTimeout(_0x4704c9['timeoutHandle']),delete _0x4704c9[_0x3a23a2(0x1e1)]);}['generateOperationId'](){const _0x5a84f9=a0_0x4a9573,_0x402e64=Date['now']()[_0x5a84f9(0x1dc)](0x24),_0x45a336=Math[_0x5a84f9(0x1dd)]()[_0x5a84f9(0x1dc)](0x24)['substr'](0x2,0x9);return _0x5a84f9(0x197)+_0x402e64+'-'+_0x45a336;}['calculateExecutionTime'](_0x8bb214){const _0x3a6631=a0_0x4a9573;if(!_0x8bb214['startedAt'])return 0x0;const _0x1d179e=_0x8bb214[_0x3a6631(0x1f1)]?new Date(_0x8bb214['completedAt'])[_0x3a6631(0x1e9)]():Date['now']();return _0x1d179e-new Date(_0x8bb214['startedAt'])[_0x3a6631(0x1e9)]();}async[a0_0x4a9573(0x1b1)](_0x254f1a){const _0x23b682=a0_0x4a9573,_0x56c7af=this[_0x23b682(0x1e6)]['get'](_0x254f1a);if(!_0x56c7af)return;this[_0x23b682(0x1df)](_0x254f1a),this['operationHistory'][_0x23b682(0x1c8)]({..._0x56c7af,'executionTime':this['calculateExecutionTime'](_0x56c7af),'cleanedUpAt':new Date()[_0x23b682(0x1aa)]()}),this['operationHistory']['length']>this['maxHistorySize']&&(this[_0x23b682(0x1bf)]=this['operationHistory'][_0x23b682(0x1a3)](-this['maxHistorySize'])),this['operations'][_0x23b682(0x1be)](_0x254f1a),this[_0x23b682(0x1a4)](_0x23b682(0x1cf),{'operationId':_0x254f1a,'toolId':_0x56c7af[_0x23b682(0x1a2)]});}['handleOperationStarted'](_0x1f4354){const _0x40d261=a0_0x4a9573;this[_0x40d261(0x1b4)]?.[_0x40d261(0x1ca)](_0x40d261(0x1e0)+_0x1f4354['id'],{'toolId':_0x1f4354['toolId'],'agentId':_0x1f4354[_0x40d261(0x1e8)]});}async['handleOperationCompleted'](_0x3bcda6){const _0xf38bd8=a0_0x4a9573;this[_0xf38bd8(0x1b4)]?.[_0xf38bd8(0x1ef)]('Operation\x20completed:\x20'+_0x3bcda6['id'],{'toolId':_0x3bcda6['toolId'],'agentId':_0x3bcda6[_0xf38bd8(0x1e8)],'executionTime':this['calculateExecutionTime'](_0x3bcda6)}),setTimeout(()=>this['cleanupOperation'](_0x3bcda6['id']),0x7530);}async['handleOperationFailed'](_0x35f31d){const _0x5e2f0f=a0_0x4a9573;this[_0x5e2f0f(0x1b4)]?.['error'](_0x5e2f0f(0x1e3)+_0x35f31d['id'],{'toolId':_0x35f31d['toolId'],'agentId':_0x35f31d['agentId'],'error':_0x35f31d['error'],'executionTime':this[_0x5e2f0f(0x1bd)](_0x35f31d),'retryCount':_0x35f31d['retryCount']}),_0x35f31d['retryCount']<_0x35f31d[_0x5e2f0f(0x1d0)]?setTimeout(()=>this[_0x5e2f0f(0x1ee)](_0x35f31d['id']),0x1388):setTimeout(()=>this[_0x5e2f0f(0x1b1)](_0x35f31d['id']),0xea60);}async['handleOperationTimeout'](_0x27e13c){const _0x34c1c0=a0_0x4a9573;this[_0x34c1c0(0x1b4)]?.[_0x34c1c0(0x1b6)]('Operation\x20timed\x20out:\x20'+_0x27e13c['id'],{'toolId':_0x27e13c[_0x34c1c0(0x1a2)],'agentId':_0x27e13c[_0x34c1c0(0x1e8)],'timeout':_0x27e13c[_0x34c1c0(0x19a)],'executionTime':this[_0x34c1c0(0x1bd)](_0x27e13c)}),this[_0x34c1c0(0x1d9)](_0x27e13c['id'],TOOL_STATUS[_0x34c1c0(0x1b5)],{'error':'Operation\x20timed\x20out\x20after\x20'+_0x27e13c[_0x34c1c0(0x19a)]+'ms'}),this[_0x34c1c0(0x1a4)]('operation:timeout',_0x27e13c),setTimeout(()=>this['cleanupOperation'](_0x27e13c['id']),0x7530);}async[a0_0x4a9573(0x1d5)](){const _0x44f16f=a0_0x4a9573;this['isShuttingDown']=!![],this[_0x44f16f(0x1b4)]?.['info']('Shutting down async tool manager...'),this['stopMonitoring']();const _0x5dac5f=[];for(const _0x27553b of this['operations']['values']()){(_0x27553b['status']===TOOL_STATUS['PENDING']||_0x27553b['status']===TOOL_STATUS[_0x44f16f(0x1a9)])&&_0x5dac5f['push'](_0x27553b['id']);}for(const _0x50bf62 of _0x5dac5f){await this['cancelOperation'](_0x50bf62,_0x44f16f(0x1a7));}this['operations'][_0x44f16f(0x1b0)](),this[_0x44f16f(0x1b4)]?.[_0x44f16f(0x1ef)]('Async\x20tool\x20manager\x20shutdown\x20complete.\x20Cancelled\x20'+_0x5dac5f[_0x44f16f(0x1ed)]+_0x44f16f(0x1cd));}['getOperationHistory'](_0x3a3a2d={}){const _0x155263=a0_0x4a9573;let _0xbdfb17=[...this[_0x155263(0x1bf)]];return _0x3a3a2d['agentId']&&(_0xbdfb17=_0xbdfb17[_0x155263(0x1f2)](_0x155cbb=>_0x155cbb['agentId']===_0x3a3a2d['agentId'])),_0x3a3a2d['toolId']&&(_0xbdfb17=_0xbdfb17['filter'](_0x2731c5=>_0x2731c5['toolId']===_0x3a3a2d[_0x155263(0x1a2)])),_0x3a3a2d[_0x155263(0x1b3)]&&(_0xbdfb17=_0xbdfb17['filter'](_0x176bfa=>_0x176bfa[_0x155263(0x1b3)]===_0x3a3a2d['status'])),_0x3a3a2d[_0x155263(0x1b2)]&&(_0xbdfb17=_0xbdfb17[_0x155263(0x1a3)](-_0x3a3a2d[_0x155263(0x1b2)])),_0xbdfb17['sort']((_0x2e7d6f,_0x2deba8)=>new Date(_0x2deba8['createdAt'])-new Date(_0x2e7d6f[_0x155263(0x1cc)]));}}export default AsyncToolManager;
|
|
1
|
+
const a0_0x1d4e1a=a0_0x5369;function a0_0x5369(_0x3b6ddf,_0x581c7f){_0x3b6ddf=_0x3b6ddf-0x1b7;const _0x479ce1=a0_0x479c();let _0x5369f4=_0x479ce1[_0x3b6ddf];if(a0_0x5369['REgpYx']===undefined){var _0x569a55=function(_0x56b863){const _0xe2bb64='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1e35bf='',_0xfd55e8='';for(let _0x48e3e0=0x0,_0x38b4da,_0x5a25de,_0x187f94=0x0;_0x5a25de=_0x56b863['charAt'](_0x187f94++);~_0x5a25de&&(_0x38b4da=_0x48e3e0%0x4?_0x38b4da*0x40+_0x5a25de:_0x5a25de,_0x48e3e0++%0x4)?_0x1e35bf+=String['fromCharCode'](0xff&_0x38b4da>>(-0x2*_0x48e3e0&0x6)):0x0){_0x5a25de=_0xe2bb64['indexOf'](_0x5a25de);}for(let _0x913d20=0x0,_0x28a755=_0x1e35bf['length'];_0x913d20<_0x28a755;_0x913d20++){_0xfd55e8+='%'+('00'+_0x1e35bf['charCodeAt'](_0x913d20)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xfd55e8);};a0_0x5369['OLJloq']=_0x569a55,a0_0x5369['dvxXse']={},a0_0x5369['REgpYx']=!![];}const _0x567937=_0x479ce1[0x0],_0x2be39e=_0x3b6ddf+_0x567937,_0x3b65e3=a0_0x5369['dvxXse'][_0x2be39e];return!_0x3b65e3?(_0x5369f4=a0_0x5369['OLJloq'](_0x5369f4),a0_0x5369['dvxXse'][_0x2be39e]=_0x5369f4):_0x5369f4=_0x3b65e3,_0x5369f4;}(function(_0x5c1089,_0x5682fa){const _0x3a5b91=a0_0x5369,_0x43a280=_0x5c1089();while(!![]){try{const _0x1df4bb=-parseInt(_0x3a5b91(0x1dd))/0x1+parseInt(_0x3a5b91(0x1da))/0x2+parseInt(_0x3a5b91(0x1d4))/0x3+-parseInt(_0x3a5b91(0x1fb))/0x4+parseInt(_0x3a5b91(0x1c7))/0x5*(parseInt(_0x3a5b91(0x1c3))/0x6)+parseInt(_0x3a5b91(0x1c4))/0x7+parseInt(_0x3a5b91(0x1d5))/0x8;if(_0x1df4bb===_0x5682fa)break;else _0x43a280['push'](_0x43a280['shift']());}catch(_0x59ad0f){_0x43a280['push'](_0x43a280['shift']());}}}(a0_0x479c,0x80cc1));import a0_0x1e35bf from'events';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AsyncToolManager extends a0_0x1e35bf{constructor(_0xfd55e8={},_0x48e3e0=null){const _0x3eebad=a0_0x5369;super(),this['config']=_0xfd55e8,this[_0x3eebad(0x1f7)]=_0x48e3e0,this[_0x3eebad(0x20d)]=new Map(),this[_0x3eebad(0x202)]=[],this['maxConcurrentOperations']=_0xfd55e8[_0x3eebad(0x1cf)]||0xa,this['defaultTimeout']=_0xfd55e8['defaultTimeout']||0x493e0,this['cleanupInterval']=_0xfd55e8[_0x3eebad(0x205)]||0xea60,this[_0x3eebad(0x1f5)]=_0xfd55e8[_0x3eebad(0x1f5)]||0x3e8,this['monitoringInterval']=null,this['isShuttingDown']=![],this['startMonitoring'](),this['on']('operation:started',this['handleOperationStarted'][_0x3eebad(0x1d6)](this)),this['on'](_0x3eebad(0x1df),this[_0x3eebad(0x1bf)]['bind'](this)),this['on']('operation:failed',this['handleOperationFailed'][_0x3eebad(0x1d6)](this)),this['on'](_0x3eebad(0x1ba),this['handleOperationTimeout'][_0x3eebad(0x1d6)](this));}async[a0_0x1d4e1a(0x1ea)](_0x38b4da,_0x5a25de,_0x187f94,_0x913d20={}){const _0xe2f6fc=a0_0x1d4e1a;if(this['operations']['size']>=this[_0xe2f6fc(0x1cf)])throw new Error('Maximum\x20concurrent\x20operations\x20reached\x20('+this[_0xe2f6fc(0x1cf)]+')');const _0x28a755=this['generateOperationId'](),_0x4030a1={'id':_0x28a755,'toolId':_0x38b4da,'agentId':_0x5a25de,'parameters':_0x187f94,'context':_0x913d20,'status':TOOL_STATUS['PENDING'],'createdAt':new Date()[_0xe2f6fc(0x1fa)](),'startedAt':null,'completedAt':null,'timeout':_0x913d20['timeout']||this['defaultTimeout'],'result':null,'error':null,'progress':null,'retryCount':0x0,'maxRetries':_0x913d20['maxRetries']||0x0};return this['operations']['set'](_0x28a755,_0x4030a1),this[_0xe2f6fc(0x1f7)]?.[_0xe2f6fc(0x206)](_0xe2f6fc(0x1c9)+_0x28a755,{'toolId':_0x38b4da,'agentId':_0x5a25de,'parametersCount':Object['keys'](_0x187f94)[_0xe2f6fc(0x1d3)],'timeout':_0x4030a1['timeout']}),this['setOperationTimeout'](_0x28a755),this['emit']('operation:started',_0x4030a1),_0x28a755;}['updateOperation'](_0x5c77ae,_0xe974db,_0xfde890={}){const _0x321150=a0_0x1d4e1a,_0x47472b=this[_0x321150(0x20d)]['get'](_0x5c77ae);if(!_0x47472b)return this['logger']?.[_0x321150(0x1ee)]('Attempted\x20to\x20update\x20unknown\x20operation:\x20'+_0x5c77ae),![];const _0x488264=_0x47472b['status'];_0x47472b[_0x321150(0x1d2)]=_0xe974db;_0xe974db===TOOL_STATUS[_0x321150(0x1f1)]&&!_0x47472b['startedAt']&&(_0x47472b['startedAt']=new Date()['toISOString']());(_0xe974db===TOOL_STATUS[_0x321150(0x1bb)]||_0xe974db===TOOL_STATUS[_0x321150(0x20a)])&&(_0x47472b['completedAt']=new Date()['toISOString']());if(_0xfde890[_0x321150(0x1e2)]!==undefined)_0x47472b[_0x321150(0x1e2)]=_0xfde890['result'];if(_0xfde890[_0x321150(0x1be)]!==undefined)_0x47472b[_0x321150(0x1be)]=_0xfde890['error'];if(_0xfde890['progress']!==undefined)_0x47472b[_0x321150(0x207)]=_0xfde890[_0x321150(0x207)];this['logger']?.[_0x321150(0x1de)](_0x321150(0x20e)+_0x5c77ae,{'previousStatus':_0x488264,'newStatus':_0xe974db,'hasResult':!!_0xfde890['result'],'hasError':!!_0xfde890['error'],'progress':_0xfde890['progress']});switch(_0xe974db){case TOOL_STATUS[_0x321150(0x1bb)]:this['emit'](_0x321150(0x1df),_0x47472b);break;case TOOL_STATUS['FAILED']:this['emit']('operation:failed',_0x47472b);break;case TOOL_STATUS[_0x321150(0x1f1)]:this['emit'](_0x321150(0x1e7),_0x47472b);break;}return!![];}[a0_0x1d4e1a(0x20b)](_0x43cf1c){const _0x1f71e1=a0_0x1d4e1a,_0x2975aa=this['operations'][_0x1f71e1(0x1eb)](_0x43cf1c);if(!_0x2975aa)return null;return{'id':_0x2975aa['id'],'toolId':_0x2975aa[_0x1f71e1(0x1c1)],'agentId':_0x2975aa['agentId'],'status':_0x2975aa['status'],'createdAt':_0x2975aa[_0x1f71e1(0x1fe)],'startedAt':_0x2975aa[_0x1f71e1(0x1b9)],'completedAt':_0x2975aa[_0x1f71e1(0x1ed)],'result':_0x2975aa[_0x1f71e1(0x1e2)],'error':_0x2975aa['error'],'progress':_0x2975aa[_0x1f71e1(0x207)],'retryCount':_0x2975aa['retryCount'],'executionTime':this[_0x1f71e1(0x1ff)](_0x2975aa)};}[a0_0x1d4e1a(0x1ca)](_0x32beef){const _0x3edc96=a0_0x1d4e1a,_0x11ec1c=[];for(const _0x139a08 of this['operations'][_0x3edc96(0x1c2)]()){_0x139a08['agentId']===_0x32beef&&_0x11ec1c[_0x3edc96(0x1f9)](this['getOperation'](_0x139a08['id']));}return _0x11ec1c['sort']((_0x746b38,_0x419cd5)=>new Date(_0x419cd5['createdAt'])-new Date(_0x746b38[_0x3edc96(0x1fe)]));}async['cancelOperation'](_0x2fa03d,_0x3e68d3='Operation\x20cancelled'){const _0xee2265=a0_0x1d4e1a,_0x18680e=this['operations']['get'](_0x2fa03d);if(!_0x18680e)return![];if(_0x18680e['status']===TOOL_STATUS[_0xee2265(0x1bb)]||_0x18680e['status']===TOOL_STATUS['FAILED'])return this['logger']?.['warn']('Cannot\x20cancel\x20completed/failed\x20operation:\x20'+_0x2fa03d),![];return this['updateOperation'](_0x2fa03d,TOOL_STATUS[_0xee2265(0x1b7)],{'error':_0x3e68d3}),this[_0xee2265(0x1ec)](_0x2fa03d),this[_0xee2265(0x1f0)](_0xee2265(0x1cb),_0x18680e),await this['cleanupOperation'](_0x2fa03d),this['logger']?.[_0xee2265(0x206)]('Operation\x20cancelled:\x20'+_0x2fa03d,{'reason':_0x3e68d3}),!![];}async[a0_0x1d4e1a(0x20f)](_0x57d4aa){const _0x25bcdb=a0_0x1d4e1a,_0x458b1c=this['operations'][_0x25bcdb(0x1eb)](_0x57d4aa);if(!_0x458b1c)return![];if(_0x458b1c[_0x25bcdb(0x1d2)]!==TOOL_STATUS['FAILED'])return this[_0x25bcdb(0x1f7)]?.[_0x25bcdb(0x1ee)](_0x25bcdb(0x1e1)+_0x57d4aa),![];if(_0x458b1c[_0x25bcdb(0x1e0)]>=_0x458b1c[_0x25bcdb(0x1ef)])return this['logger']?.['warn']('Maximum\x20retries\x20exceeded\x20for\x20operation:\x20'+_0x57d4aa),![];return _0x458b1c[_0x25bcdb(0x1e0)]++,_0x458b1c[_0x25bcdb(0x1d2)]=TOOL_STATUS['PENDING'],_0x458b1c[_0x25bcdb(0x1b9)]=null,_0x458b1c[_0x25bcdb(0x1ed)]=null,_0x458b1c['error']=null,_0x458b1c['result']=null,this[_0x25bcdb(0x1e4)](_0x57d4aa),this[_0x25bcdb(0x1f7)]?.['info']('Operation\x20retry\x20initiated:\x20'+_0x57d4aa,{'retryCount':_0x458b1c[_0x25bcdb(0x1e0)],'maxRetries':_0x458b1c[_0x25bcdb(0x1ef)]}),this['emit'](_0x25bcdb(0x1fd),_0x458b1c),!![];}['getStatistics'](){const _0x1ad573=a0_0x1d4e1a,_0x3d1804={'total':this[_0x1ad573(0x20d)]['size'],'byStatus':{},'byTool':{},'byAgent':{},'averageExecutionTime':0x0,'oldestOperation':null,'newestOperation':null};let _0x3c0c37=0x0,_0x1449b8=0x0,_0x48a6ad=null,_0x2d826d=null;for(const _0x1d48d6 of this[_0x1ad573(0x20d)]['values']()){_0x3d1804['byStatus'][_0x1d48d6[_0x1ad573(0x1d2)]]=(_0x3d1804['byStatus'][_0x1d48d6['status']]||0x0)+0x1,_0x3d1804['byTool'][_0x1d48d6['toolId']]=(_0x3d1804['byTool'][_0x1d48d6[_0x1ad573(0x1c1)]]||0x0)+0x1,_0x3d1804[_0x1ad573(0x1bc)][_0x1d48d6['agentId']]=(_0x3d1804['byAgent'][_0x1d48d6['agentId']]||0x0)+0x1;const _0x516171=this[_0x1ad573(0x1ff)](_0x1d48d6);_0x516171>0x0&&(_0x3c0c37+=_0x516171,_0x1449b8++);const _0x50cd47=new Date(_0x1d48d6['createdAt'])[_0x1ad573(0x1f6)]();(!_0x48a6ad||_0x50cd47<_0x48a6ad)&&(_0x48a6ad=_0x50cd47,_0x3d1804[_0x1ad573(0x1f3)]=_0x1d48d6['id']),(!_0x2d826d||_0x50cd47>_0x2d826d)&&(_0x2d826d=_0x50cd47,_0x3d1804[_0x1ad573(0x1bd)]=_0x1d48d6['id']);}return _0x3d1804['averageExecutionTime']=_0x1449b8>0x0?Math[_0x1ad573(0x209)](_0x3c0c37/_0x1449b8):0x0,_0x3d1804;}async[a0_0x1d4e1a(0x1b8)](_0x3af784=0x36ee80){const _0x526cfc=a0_0x1d4e1a,_0x2ebb00=Date[_0x526cfc(0x1e8)]()-_0x3af784,_0x4fbd71=[];for(const _0x3e775e of this['operations']['values']()){(_0x3e775e[_0x526cfc(0x1d2)]===TOOL_STATUS['COMPLETED']||_0x3e775e['status']===TOOL_STATUS[_0x526cfc(0x20a)]||_0x3e775e[_0x526cfc(0x1d2)]===TOOL_STATUS['CANCELLED'])&&new Date(_0x3e775e['completedAt'])['getTime']()<_0x2ebb00&&_0x4fbd71['push'](_0x3e775e['id']);}for(const _0x57bd47 of _0x4fbd71){await this[_0x526cfc(0x1fc)](_0x57bd47);}return this['logger']?.['debug'](_0x526cfc(0x1e3)+_0x4fbd71[_0x526cfc(0x1d3)]+_0x526cfc(0x203)),_0x4fbd71['length'];}['startMonitoring'](){const _0x50b064=a0_0x1d4e1a;this[_0x50b064(0x1c0)]&&clearInterval(this['monitoringInterval']),this['monitoringInterval']=setInterval(()=>{const _0x3684e4=_0x50b064;this[_0x3684e4(0x1cd)](),this[_0x3684e4(0x1b8)]();},this['cleanupInterval']),this['logger']?.[_0x50b064(0x206)]('Async\x20tool\x20manager\x20monitoring\x20started');}['stopMonitoring'](){const _0x3506c6=a0_0x1d4e1a;this['monitoringInterval']&&(clearInterval(this[_0x3506c6(0x1c0)]),this['monitoringInterval']=null),this[_0x3506c6(0x1f7)]?.['info'](_0x3506c6(0x1e5));}[a0_0x1d4e1a(0x1cd)](){const _0x386a41=a0_0x1d4e1a,_0x3f57e8=Date[_0x386a41(0x1e8)]();for(const _0x28a40a of this[_0x386a41(0x20d)][_0x386a41(0x1c2)]()){if(_0x28a40a[_0x386a41(0x1d2)]===TOOL_STATUS['EXECUTING']||_0x28a40a[_0x386a41(0x1d2)]===TOOL_STATUS[_0x386a41(0x1f4)]){const _0xaac98f=new Date(_0x28a40a[_0x386a41(0x1fe)])['getTime']();_0x3f57e8-_0xaac98f>_0x28a40a[_0x386a41(0x208)]&&this[_0x386a41(0x1d8)](_0x28a40a);}}}[a0_0x1d4e1a(0x1e4)](_0x33de5f){const _0x3adfa6=a0_0x1d4e1a,_0x1fca75=this['operations']['get'](_0x33de5f);if(!_0x1fca75)return;_0x1fca75[_0x3adfa6(0x1d1)]=setTimeout(()=>{this['handleOperationTimeout'](_0x1fca75);},_0x1fca75[_0x3adfa6(0x208)]);}[a0_0x1d4e1a(0x1ec)](_0x2af85c){const _0x437e7d=a0_0x1d4e1a,_0x3a5b80=this[_0x437e7d(0x20d)][_0x437e7d(0x1eb)](_0x2af85c);_0x3a5b80&&_0x3a5b80[_0x437e7d(0x1d1)]&&(clearTimeout(_0x3a5b80['timeoutHandle']),delete _0x3a5b80['timeoutHandle']);}[a0_0x1d4e1a(0x1db)](){const _0x39f241=a0_0x1d4e1a,_0x58458d=Date[_0x39f241(0x1e8)]()[_0x39f241(0x1cc)](0x24),_0x3da11f=Math['random']()['toString'](0x24)[_0x39f241(0x1e6)](0x2,0x9);return'op-'+_0x58458d+'-'+_0x3da11f;}[a0_0x1d4e1a(0x1ff)](_0xf34a4b){const _0x593ee7=a0_0x1d4e1a;if(!_0xf34a4b[_0x593ee7(0x1b9)])return 0x0;const _0x3214e5=_0xf34a4b[_0x593ee7(0x1ed)]?new Date(_0xf34a4b['completedAt'])[_0x593ee7(0x1f6)]():Date['now']();return _0x3214e5-new Date(_0xf34a4b[_0x593ee7(0x1b9)])[_0x593ee7(0x1f6)]();}async[a0_0x1d4e1a(0x1fc)](_0x1aeb32){const _0x3cd0c5=a0_0x1d4e1a,_0x4c2c3a=this['operations']['get'](_0x1aeb32);if(!_0x4c2c3a)return;this['clearOperationTimeout'](_0x1aeb32),this['operationHistory'][_0x3cd0c5(0x1f9)]({..._0x4c2c3a,'executionTime':this[_0x3cd0c5(0x1ff)](_0x4c2c3a),'cleanedUpAt':new Date()['toISOString']()}),this['operationHistory'][_0x3cd0c5(0x1d3)]>this['maxHistorySize']&&(this['operationHistory']=this['operationHistory'][_0x3cd0c5(0x201)](-this['maxHistorySize'])),this[_0x3cd0c5(0x20d)]['delete'](_0x1aeb32),this[_0x3cd0c5(0x1f0)](_0x3cd0c5(0x1f2),{'operationId':_0x1aeb32,'toolId':_0x4c2c3a['toolId']});}['handleOperationStarted'](_0x5b03b3){const _0x26df65=a0_0x1d4e1a;this[_0x26df65(0x1f7)]?.['debug'](_0x26df65(0x200)+_0x5b03b3['id'],{'toolId':_0x5b03b3['toolId'],'agentId':_0x5b03b3['agentId']});}async[a0_0x1d4e1a(0x1bf)](_0x5b4c50){const _0x5d310a=a0_0x1d4e1a;this[_0x5d310a(0x1f7)]?.['info']('Operation\x20completed:\x20'+_0x5b4c50['id'],{'toolId':_0x5b4c50[_0x5d310a(0x1c1)],'agentId':_0x5b4c50['agentId'],'executionTime':this[_0x5d310a(0x1ff)](_0x5b4c50)}),setTimeout(()=>this[_0x5d310a(0x1fc)](_0x5b4c50['id']),0x7530);}async[a0_0x1d4e1a(0x1c8)](_0x4e0a99){const _0x8192af=a0_0x1d4e1a;this['logger']?.['error'](_0x8192af(0x1d9)+_0x4e0a99['id'],{'toolId':_0x4e0a99[_0x8192af(0x1c1)],'agentId':_0x4e0a99[_0x8192af(0x1ce)],'error':_0x4e0a99[_0x8192af(0x1be)],'executionTime':this['calculateExecutionTime'](_0x4e0a99),'retryCount':_0x4e0a99['retryCount']}),_0x4e0a99[_0x8192af(0x1e0)]<_0x4e0a99['maxRetries']?setTimeout(()=>this['retryOperation'](_0x4e0a99['id']),0x1388):setTimeout(()=>this['cleanupOperation'](_0x4e0a99['id']),0xea60);}async['handleOperationTimeout'](_0x4aec0a){const _0x1984cd=a0_0x1d4e1a;this[_0x1984cd(0x1f7)]?.['warn'](_0x1984cd(0x1dc)+_0x4aec0a['id'],{'toolId':_0x4aec0a[_0x1984cd(0x1c1)],'agentId':_0x4aec0a['agentId'],'timeout':_0x4aec0a['timeout'],'executionTime':this[_0x1984cd(0x1ff)](_0x4aec0a)}),this[_0x1984cd(0x20c)](_0x4aec0a['id'],TOOL_STATUS['TIMEOUT'],{'error':'Operation\x20timed\x20out\x20after\x20'+_0x4aec0a[_0x1984cd(0x208)]+'ms'}),this[_0x1984cd(0x1f0)]('operation:timeout',_0x4aec0a),setTimeout(()=>this['cleanupOperation'](_0x4aec0a['id']),0x7530);}async['shutdown'](){const _0x41954d=a0_0x1d4e1a;this['isShuttingDown']=!![],this[_0x41954d(0x1f7)]?.['info']('Shutting down async tool manager...'),this['stopMonitoring']();const _0x4a6b6e=[];for(const _0x4354e9 of this[_0x41954d(0x20d)]['values']()){(_0x4354e9['status']===TOOL_STATUS['PENDING']||_0x4354e9['status']===TOOL_STATUS['EXECUTING'])&&_0x4a6b6e['push'](_0x4354e9['id']);}for(const _0x420d56 of _0x4a6b6e){await this[_0x41954d(0x1c6)](_0x420d56,'System\x20shutdown');}this[_0x41954d(0x20d)][_0x41954d(0x204)](),this[_0x41954d(0x1f7)]?.['info']('Async\x20tool\x20manager\x20shutdown\x20complete.\x20Cancelled\x20'+_0x4a6b6e['length']+_0x41954d(0x1e9));}[a0_0x1d4e1a(0x1c5)](_0x1513c6={}){const _0x33a34c=a0_0x1d4e1a;let _0xfce59a=[...this[_0x33a34c(0x202)]];return _0x1513c6['agentId']&&(_0xfce59a=_0xfce59a[_0x33a34c(0x1d0)](_0x45a1dd=>_0x45a1dd['agentId']===_0x1513c6[_0x33a34c(0x1ce)])),_0x1513c6['toolId']&&(_0xfce59a=_0xfce59a[_0x33a34c(0x1d0)](_0x175fb7=>_0x175fb7[_0x33a34c(0x1c1)]===_0x1513c6['toolId'])),_0x1513c6['status']&&(_0xfce59a=_0xfce59a[_0x33a34c(0x1d0)](_0x58fade=>_0x58fade['status']===_0x1513c6['status'])),_0x1513c6[_0x33a34c(0x1d7)]&&(_0xfce59a=_0xfce59a[_0x33a34c(0x201)](-_0x1513c6[_0x33a34c(0x1d7)])),_0xfce59a[_0x33a34c(0x1f8)]((_0xbc7e0,_0x562b39)=>new Date(_0x562b39[_0x33a34c(0x1fe)])-new Date(_0xbc7e0['createdAt']));}}function a0_0x479c(){const _0x24367e=['ndiWmteXm1v0yuLIDq','z2v0t3bLCMf0Aw9UsgLZDg9YEq','y2fUy2vSt3bLCMf0Aw9U','mtbPv1rNwMi','AgfUzgXLt3bLCMf0Aw9UrMfPBgvK','qxn5BMmGB3bLCMf0Aw9Uihn0yxj0zwq6ia','z2v0qwDLBNrpCgvYyxrPB25Z','B3bLCMf0Aw9UoMnHBMnLBgXLza','Dg9tDhjPBMC','y2HLy2TpCgvYyxrPB25uAw1LB3v0CW','ywDLBNrjza','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','zMLSDgvY','DgLTzw91DeHHBMrSzq','C3rHDhvZ','BgvUz3rO','mtq4nJq5n1nnC3nyBq','mtm4otu2meToANPrza','yMLUza','BgLTAxq','AgfUzgXLt3bLCMf0Aw9UvgLTzw91Da','t3bLCMf0Aw9UigzHAwXLzdOG','odiWndu0zNvrvNnT','z2vUzxjHDgvpCgvYyxrPB25jza','t3bLCMf0Aw9UihrPBwvKig91DdOG','odu3mduYsgzQwhPS','zgvIDwC','B3bLCMf0Aw9UoMnVBxbSzxrLza','CMv0CNLdB3vUDa','q2fUBM90ihjLDhj5ig5VBI1MywLSzwqGB3bLCMf0Aw9UoIa','CMvZDwX0','q2XLyw5Lzcb1Cca','C2v0t3bLCMf0Aw9UvgLTzw91Da','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rVChbLza','C3vIC3rY','B3bLCMf0Aw9UoNbYB2DYzxnZ','BM93','ig9WzxjHDgLVBNmU','C3rHCNrpCgvYyxrPB24','z2v0','y2XLyxjpCgvYyxrPB25uAw1LB3v0','y29TCgXLDgvKqxq','D2fYBG','Bwf4uMv0CMLLCW','zw1PDa','rvHfq1vusu5h','B3bLCMf0Aw9UoMnSzwfUDxa','B2XKzxn0t3bLCMf0Aw9U','uevoreLorW','Bwf4sgLZDg9YEvnPEMu','z2v0vgLTzq','Bg9Nz2vY','C29YDa','ChvZAa','Dg9ju09tDhjPBMC','mtyZnZiWnhPlAvffyq','y2XLyw51Ce9WzxjHDgLVBG','B3bLCMf0Aw9UoNjLDhj5','y3jLyxrLzef0','y2fSy3vSyxrLrxHLy3v0Aw9UvgLTzq','t3bLCMf0Aw9Uihn0yxj0zwq6ia','C2XPy2u','B3bLCMf0Aw9UsgLZDg9YEq','ignVBxbSzxrLzcbVCgvYyxrPB25Z','y2XLyxi','y2XLyw51CeLUDgvYDMfS','Aw5MBW','ChjVz3jLC3m','DgLTzw91Da','CM91BMq','rKfjteve','z2v0t3bLCMf0Aw9U','DxbKyxrLt3bLCMf0Aw9U','B3bLCMf0Aw9UCW','t3bLCMf0Aw9Uihn0yxr1CYb1CgrHDgvKoIa','CMv0CNLpCgvYyxrPB24','q0foq0vmteve','y2XLyw51CenVBxbSzxrLze9WzxjHDgLVBNm','C3rHCNrLzef0','B3bLCMf0Aw9UoNrPBwvVDxq','q09nueXfveve','yNLbz2vUDa','BMv3zxn0t3bLCMf0Aw9U','zxjYB3i','AgfUzgXLt3bLCMf0Aw9Uq29TCgXLDgvK','Bw9UAxrVCMLUz0LUDgvYDMfS','Dg9VBeLK','DMfSDwvZ','mZqYotC4B2nfug13'];a0_0x479c=function(){return _0x24367e;};return a0_0x479c();}export default AsyncToolManager;
|
package/src/tools/baseTool.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x3cf952=a0_0x220a;(function(_0x1c5663,_0x11db62){const _0x2e348e=a0_0x220a,_0x81e799=_0x1c5663();while(!![]){try{const _0xc13965=parseInt(_0x2e348e(0x17c))/0x1+parseInt(_0x2e348e(0x174))/0x2+-parseInt(_0x2e348e(0x1a7))/0x3*(parseInt(_0x2e348e(0x1b6))/0x4)+parseInt(_0x2e348e(0x1ab))/0x5*(parseInt(_0x2e348e(0x1b7))/0x6)+-parseInt(_0x2e348e(0x1d1))/0x7*(parseInt(_0x2e348e(0x1cd))/0x8)+-parseInt(_0x2e348e(0x1c5))/0x9+parseInt(_0x2e348e(0x1c3))/0xa*(-parseInt(_0x2e348e(0x158))/0xb);if(_0xc13965===_0x11db62)break;else _0x81e799['push'](_0x81e799['shift']());}catch(_0x127d62){_0x81e799['push'](_0x81e799['shift']());}}}(a0_0x3d10,0x354a7));import{TOOL_STATUS,OPERATION_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x220a(_0x3f76bb,_0x162a07){_0x3f76bb=_0x3f76bb-0x155;const _0x3d1045=a0_0x3d10();let _0x220a53=_0x3d1045[_0x3f76bb];if(a0_0x220a['sBIqPt']===undefined){var _0x3e837b=function(_0x90ba9b){const _0x18d777='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4d6230='',_0x66ae0e='';for(let _0x510f27=0x0,_0x2bbe67,_0x358c92,_0x2550b6=0x0;_0x358c92=_0x90ba9b['charAt'](_0x2550b6++);~_0x358c92&&(_0x2bbe67=_0x510f27%0x4?_0x2bbe67*0x40+_0x358c92:_0x358c92,_0x510f27++%0x4)?_0x4d6230+=String['fromCharCode'](0xff&_0x2bbe67>>(-0x2*_0x510f27&0x6)):0x0){_0x358c92=_0x18d777['indexOf'](_0x358c92);}for(let _0x3b8b58=0x0,_0x1ae71f=_0x4d6230['length'];_0x3b8b58<_0x1ae71f;_0x3b8b58++){_0x66ae0e+='%'+('00'+_0x4d6230['charCodeAt'](_0x3b8b58)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x66ae0e);};a0_0x220a['jYMapD']=_0x3e837b,a0_0x220a['RoIgCb']={},a0_0x220a['sBIqPt']=!![];}const _0x3c5266=_0x3d1045[0x0],_0x24150c=_0x3f76bb+_0x3c5266,_0x42679e=a0_0x220a['RoIgCb'][_0x24150c];return!_0x42679e?(_0x220a53=a0_0x220a['jYMapD'](_0x220a53),a0_0x220a['RoIgCb'][_0x24150c]=_0x220a53):_0x220a53=_0x42679e,_0x220a53;}function a0_0x3d10(){const _0x4e38e8=['Bg9Nz2vY','Dg9VBhm','q09nueXfveve','CMvZzxrtDgf0CW','C3rHDhvZ','ww91igHHDMuGywnJzxnZihrVihrOzsbMB2XSB3DPBMCGDg9VBhmGDg8GCgvYzM9YBsbVCgvYyxrPB25ZigfUzcb0yxnRCZOkcG','DxnHz2vdB3vUDa','odeZnZG4D2XNsLjX','BMfTzq','Dg9VBerLC2nYAxb0Aw9UCW','CMvKDwnL','C2v0','C2XPy2u','rMLSzsbpCgvYyxrPB25Z','y2fSy3vSyxrLu3vJy2vZC1jHDgu','mZG3mdy2vgz4B0vP','ig11C3qGAw1WBgvTzw50igDLDerLC2nYAxb0Aw9UkcK','igLZigrPC2fIBgvK','z2v0uMvNAxn0CNLtDgf0CW','zNjVBq','zw50CMLLCW','DMfSAwrHDgvqyxjHBwv0zxjZ','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','z2v0u3vWCg9YDgvKqwn0Aw9UCW','vg9VBcbUB3qGzM91BMq6ia','zxHLy3v0zvDPDgHuAw1LB3v0','y29UDgvUDa','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','AM9PBG','y29UC3rYDwn0B3i','zgLZy292zxjuB29SCW','C3vIC3rYAw5N','qwz0zxiGAw52B2TPBMCGysb0B29SlcbxquLuigzVCIb0AguGywn0DwfSihjLC3bVBNnLlIbeBYbot1qGz2vUzxjHDguGAw1Hz2LUyxj5ihjLC3bVBNnLCY4k','vg9VBcbYzwDPC3rYyxrPB24GzMfPBgvKoIa','qxv0B21HDgLVBG','kIPjtvbpuLrbtLqQkJOGvxnLiePtt04GzM9YBwf0igLUig1HCMTKB3DUignVzguGyMXVy2TZihrVigLUDM9Rzsb0B29SCZOkcG','BgfZDfvZzwq','zxHLy3v0zvDPDgHmAwzLy3LJBgu','z2v0ugfYyw1LDgvYu2nOzw1H','AxnbC3LUyW','BgLZDfrVB2XZ','zxjYB3i','CgfYC2vqyxjHBwv0zxjZ','ChvZAa','zMLSDgvY','BgvUz3rO','ugfYyw1LDgvYihzHBgLKyxrPB24GzMfPBgvKoIa','zw5KC1DPDgG','DgvZDcbJB250zw50','igDLDenHCgfIAwXPDgLLCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','zxHLy3v0zvrVB2Xtzwn1CMvSEq','vxrPBgL0Eq','vg9VBcbLEgvJDxrPB24GC3rHCNrLzdOG','cGOTls0kcG','y2HHCKf0','yxn5BMm','Dg9ju09tDhjPBMC','ywn0AxzLt3bLCMf0Aw9UCW','nJn0sMfXtvK','B3bLCMf0Aw9UsgLZDg9YEq','C3bSAxq','CMvXDwLYzxnqCM9Qzwn0','ndq4nZy1BfzADfHf','zxHLy3v0Aw9UvgLTzq','CMfUzg9T','z2v0vgLTzq','twLZC2LUzYbYzxf1AxjLzcbWyxjHBwv0zxi6ia','ihbHCNnLugfYyw1LDgvYCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','x2DLDfrVB2XdyxrLz29YEq','zNvUy3rPB24','A2v5CW','cLvZzsbku09oigzVCM1HDcbPBIbTyxjRzg93BIbJB2rLigjSB2nRCYb0BYbPBNzVA2uGDg9VBhmUcGO','ygbGANnVBGO','ndeZotjHy2PTCey','mtHlzu5Jr1u','rvHfq1vusu5h','yxbPs2v5CW','DMfSAwrHDgvuB29S','BwvZC2fNzq','C2L6zq','CMvWBgfJzq','DMfSAwq','z2vUzxjHDgvuB29SrgvZy3jPChrPB25ZrM9YuhjVBxb0','zw5KvgLTzq','C3rHCNruAw1L','zxHLy3v0zq','ndCWywfbDvLe','z2v0rgvZy3jPChrPB24','mtq4ntCYrvDAthbt','ygbGcG','vg9VBcbLEgvJDxrPB24GzMfPBgvKoIa','vg9VBca','lsbvC2uGiMfJDgLVBNmIigfYCMf5igzVCIb0B29SCYb0Agf0ihn1ChbVCNqGBxvSDgLWBguGB3bLCMf0Aw9UCWOk','DgLTzw91Da','tK9ux0zpvu5e','CMvNAxn0zxjuB29S','mZa4mJmXmMDvCLbXBq','kIO6ia','z2v0','C2fUAxrPEMvdB250zxH0','n2nJr2zXua','tufyx1rpt0XFrvHfq1vusu9ox1rjtuu','lsbbBhDHExmGD3jHCcbku09oihrVB2WGy29TBwfUzhmGAw4GygbGANnVBIaUlI4GygbGigjSB2nRCWO','vg9VBcbZDgf0Axn0AwnZihjLC2v0oIa','nti4ntvfq2nVEge','Aw5JBhvKzxm','Aw5MBW','icaICgfYyw1LDgvYCYi6ihSGlI4Uih0k','ygbGcGO','CgfZC3DVCMrZ','DhjPBq','vg9VBcbLEgvJDxrPB24GDgLTzwqGB3v0igfMDgvYia','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','y2fSy3vSyxrLqxzLCMfNzuv4zwn1DgLVBLrPBwu','BM93','lsbvC2uGiNbHCMfTzxrLCNmIig9IAMvJDcbMB3iGDg9VBc1ZCgvJAwzPyYbWyxjHBwv0zxjZcG','C3vWCg9YDgvKqwn0Aw9UCW','AgfZ','B2jQzwn0','Dg9VBenHCgfIAwXPDgLLCW','Dg9vChbLCKnHC2u','AxnfBMfIBgvK','zMLUza','vg9VBcbYzwDPC3rLCMvKoIa','yxn5BMnpCgvYyxrPB25Z'];a0_0x3d10=function(){return _0x4e38e8;};return a0_0x3d10();}class BaseTool{constructor(_0x4d6230={},_0x66ae0e=null){const _0x154fe7=a0_0x220a;this['id']=this['constructor'][_0x154fe7(0x175)]['toLowerCase']()['replace']('tool',''),this['config']=_0x4d6230,this[_0x154fe7(0x16d)]=_0x66ae0e,this['requiresProject']=![],this[_0x154fe7(0x194)]=![],this[_0x154fe7(0x1ca)]=_0x4d6230[_0x154fe7(0x1ca)]||SYSTEM_DEFAULTS[_0x154fe7(0x155)],this['maxConcurrentOperations']=_0x4d6230[_0x154fe7(0x183)]||0x1,this[_0x154fe7(0x1a6)]=new Map(),this[_0x154fe7(0x1a8)]=[],this[_0x154fe7(0x169)]=_0x4d6230['enabled']!==![],this['lastUsed']=null,this[_0x154fe7(0x173)]=0x0;}[a0_0x3cf952(0x1c4)](){const _0x1b02eb=a0_0x3cf952;throw new Error(_0x1b02eb(0x1c8)+this['id']+_0x1b02eb(0x17d));}[a0_0x3cf952(0x197)](_0x510f27){throw new Error('Tool\x20'+this['id']+'\x20must\x20implement\x20parseParameters()');}async['execute'](_0x2bbe67,_0x358c92){const _0x3de1d5=a0_0x3cf952;throw new Error(_0x3de1d5(0x1c8)+this['id']+'\x20must\x20implement\x20execute()');}['getCapabilities'](){const _0x168be9=a0_0x3cf952;return{'id':this['id'],'async':this['isAsync'],'requiresProject':this[_0x168be9(0x1aa)],'timeout':this[_0x168be9(0x1ca)],'maxConcurrentOperations':this[_0x168be9(0x183)],'enabled':this['isEnabled'],'supportedActions':this[_0x168be9(0x184)](),'parameterSchema':this['getParameterSchema']()};}['validateParameters'](_0x2550b6){const _0x1c0c69=a0_0x3cf952;try{if(!_0x2550b6||typeof _0x2550b6!=='object')return{'valid':![],'error':'Parameters\x20must\x20be\x20an\x20object'};const requiredParams=this['getRequiredParameters']();for(const required of requiredParams){if(!(required in _0x2550b6))return{'valid':![],'error':_0x1c0c69(0x1af)+required};}const _0x3b8b58=this['validateParameterTypes'](_0x2550b6);if(!_0x3b8b58[_0x1c0c69(0x1be)])return _0x3b8b58;const _0x1ae71f=this[_0x1c0c69(0x160)](_0x2550b6);if(!_0x1ae71f['valid'])return _0x1ae71f;return{'valid':!![]};}catch(_0x2228d3){return{'valid':![],'error':_0x1c0c69(0x19b)+_0x2228d3['message']};}}async[a0_0x3cf952(0x192)](_0x25ec39,_0x13c97b){const _0x2f12d6=a0_0x3cf952,_0x282b4c=this['generateOperationId'](),_0x18c769=Date[_0x2f12d6(0x162)]();if(!this['isEnabled'])throw new Error(_0x2f12d6(0x1c8)+this['id']+_0x2f12d6(0x17e));if(this['activeOperations'][_0x2f12d6(0x1bc)]>=this[_0x2f12d6(0x183)])throw new Error('Tool\x20'+this['id']+'\x20has\x20reached\x20maximum\x20concurrent\x20operations\x20limit');const _0x10d30b=this[_0x2f12d6(0x182)](_0x25ec39);if(!_0x10d30b['valid'])throw new Error(_0x2f12d6(0x19b)+_0x10d30b[_0x2f12d6(0x196)]);const _0x164171={'id':_0x282b4c,'toolId':this['id'],'status':TOOL_STATUS[_0x2f12d6(0x1b8)],'startTime':new Date()[_0x2f12d6(0x1a5)](),'params':_0x25ec39,'context':this[_0x2f12d6(0x1d0)](_0x13c97b)};this['activeOperations']['set'](_0x282b4c,_0x164171);try{this['logger']?.['info'](_0x2f12d6(0x1a1)+this['id'],{'operationId':_0x282b4c,'toolId':this['id'],'context':_0x164171['context']});const _0x883620=await this['executeWithTimeout'](_0x25ec39,_0x13c97b);return _0x164171['status']=TOOL_STATUS[_0x2f12d6(0x16f)],_0x164171['result']=_0x883620,_0x164171['endTime']=new Date()['toISOString'](),_0x164171['executionTime']=Date['now']()-_0x18c769,this[_0x2f12d6(0x191)]=new Date()['toISOString'](),this[_0x2f12d6(0x173)]++,this['logger']?.[_0x2f12d6(0x15a)]('Tool\x20execution\x20completed:\x20'+this['id'],{'operationId':_0x282b4c,'executionTime':_0x164171['executionTime'],'success':!![]}),{'success':!![],'operationId':_0x282b4c,'result':_0x883620,'executionTime':_0x164171['executionTime'],'toolId':this['id']};}catch(_0x4f39af){_0x164171[_0x2f12d6(0x171)]=TOOL_STATUS['FAILED'],_0x164171['error']=_0x4f39af[_0x2f12d6(0x1bb)],_0x164171[_0x2f12d6(0x1c0)]=new Date()[_0x2f12d6(0x1a5)](),_0x164171['executionTime']=Date['now']()-_0x18c769,this['logger']?.[_0x2f12d6(0x196)](_0x2f12d6(0x1c7)+this['id'],{'operationId':_0x282b4c,'error':_0x4f39af['message'],'executionTime':_0x164171[_0x2f12d6(0x1ac)]});throw _0x4f39af;}finally{this[_0x2f12d6(0x1a8)][_0x2f12d6(0x198)]({..._0x164171}),this[_0x2f12d6(0x1a6)]['delete'](_0x282b4c),this['cleanupHistory'](),await this['cleanup'](_0x282b4c);}}async['getStatus'](_0x4afb2e){const _0x541519=a0_0x3cf952,_0x2ecbb2=this[_0x541519(0x1a6)]['get'](_0x4afb2e);if(!_0x2ecbb2){const _0x5aa184=this['operationHistory'][_0x541519(0x16a)](_0x1bd42f=>_0x1bd42f['id']===_0x4afb2e);if(_0x5aa184)return{'operationId':_0x4afb2e,'status':_0x5aa184['status'],'result':_0x5aa184['result'],'error':_0x5aa184[_0x541519(0x196)],'executionTime':_0x5aa184['executionTime']};return{'operationId':_0x4afb2e,'status':OPERATION_STATUS[_0x541519(0x1cb)],'error':'Operation\x20not\x20found'};}return{'operationId':_0x4afb2e,'status':_0x2ecbb2[_0x541519(0x171)],'startTime':_0x2ecbb2[_0x541519(0x1c1)],'executionTime':_0x2ecbb2[_0x541519(0x1c0)]?new Date(_0x2ecbb2[_0x541519(0x1c0)])['getTime']()-new Date(_0x2ecbb2[_0x541519(0x1c1)])[_0x541519(0x1ae)]():Date['now']()-new Date(_0x2ecbb2['startTime'])['getTime']()};}async['cleanup'](_0x5016cc){}[a0_0x3cf952(0x184)](){return['execute'];}[a0_0x3cf952(0x193)](){const _0xdb82b3=a0_0x3cf952;return{'type':_0xdb82b3(0x166),'properties':{},'required':[]};}[a0_0x3cf952(0x188)](){return[];}['validateParameterTypes'](_0x1a118d){return{'valid':!![]};}[a0_0x3cf952(0x160)](_0x4fd55c){return{'valid':!![]};}async[a0_0x3cf952(0x186)](_0x1ebef4,_0x2754ab){return new Promise(async(_0x2c254e,_0xb731b6)=>{const _0xbf2c28=a0_0x220a,_0x523c83=setTimeout(()=>{const _0x439a7b=a0_0x220a;_0xb731b6(new Error(_0x439a7b(0x15f)+this[_0x439a7b(0x1ca)]+'ms'));},this[_0xbf2c28(0x1ca)]);try{const _0x57dd7b=await this['execute'](_0x1ebef4,_0x2754ab);clearTimeout(_0x523c83),_0x2c254e(_0x57dd7b);}catch(_0x4b9e93){clearTimeout(_0x523c83),_0xb731b6(_0x4b9e93);}});}['generateOperationId'](){const _0xe6e2a2=a0_0x3cf952;return this['id']+'-'+Date['now']()+'-'+Math[_0xe6e2a2(0x1ad)]()['toString'](0x24)['substr'](0x2,0x9);}[a0_0x3cf952(0x1d0)](_0x38db7d){const _0x137049=a0_0x3cf952,_0x399652={..._0x38db7d};return delete _0x399652[_0x137049(0x1b9)],delete _0x399652['secrets'],delete _0x399652[_0x137049(0x15d)],_0x399652[_0x137049(0x187)]&&_0x399652[_0x137049(0x187)][_0x137049(0x19a)]>0x1f4&&(_0x399652['content']=_0x399652[_0x137049(0x187)][_0x137049(0x18c)](0x0,0x1f4)+'...\x20[truncated]'),_0x399652;}['cleanupHistory'](){const _0x4bc847=a0_0x3cf952,_0x5c30bb=0x64;this['operationHistory'][_0x4bc847(0x19a)]>_0x5c30bb&&(this['operationHistory']=this[_0x4bc847(0x1a8)][_0x4bc847(0x179)](-_0x5c30bb));}['getUsageStats'](){const _0x5dadd5=a0_0x3cf952;return{'toolId':this['id'],'usageCount':this[_0x5dadd5(0x173)],'lastUsed':this[_0x5dadd5(0x191)],'activeOperations':this['activeOperations']['size'],'totalOperations':this['operationHistory'][_0x5dadd5(0x19a)],'averageExecutionTime':this['calculateAverageExecutionTime'](),'successRate':this[_0x5dadd5(0x17b)](),'isEnabled':this[_0x5dadd5(0x169)]};}[a0_0x3cf952(0x161)](){const _0x42cd0c=a0_0x3cf952,_0x30b40c=this[_0x42cd0c(0x1a8)]['filter'](_0x4117d5=>_0x4117d5[_0x42cd0c(0x171)]===TOOL_STATUS[_0x42cd0c(0x16f)]&&_0x4117d5['executionTime']);if(_0x30b40c['length']===0x0)return 0x0;const _0x454cea=_0x30b40c[_0x42cd0c(0x177)]((_0x303b6d,_0xe8289e)=>_0x303b6d+_0xe8289e[_0x42cd0c(0x1ac)],0x0);return Math['round'](_0x454cea/_0x30b40c[_0x42cd0c(0x19a)]);}['calculateSuccessRate'](){const _0x165729=a0_0x3cf952;if(this['operationHistory'][_0x165729(0x19a)]===0x0)return 0x0;const _0x25eb3f=this['operationHistory'][_0x165729(0x199)](_0x488802=>_0x488802[_0x165729(0x171)]===TOOL_STATUS['COMPLETED']);return _0x25eb3f['length']/this[_0x165729(0x1a8)]['length']*0x64;}['enable'](){const _0x1ef225=a0_0x3cf952;this['isEnabled']=!![],this[_0x1ef225(0x16d)]?.['info']('Tool\x20enabled:\x20'+this['id']);}['disable'](){const _0x4e3a06=a0_0x3cf952;this[_0x4e3a06(0x169)]=![],this[_0x4e3a06(0x16d)]?.[_0x4e3a06(0x15a)]('Tool\x20disabled:\x20'+this['id']);}[a0_0x3cf952(0x170)](){const _0x16ee72=a0_0x3cf952;this['usageCount']=0x0,this[_0x16ee72(0x191)]=null,this[_0x16ee72(0x1a8)]=[],this['logger']?.['info'](_0x16ee72(0x157)+this['id']);}}class ToolsRegistry{constructor(_0x14a28e=null){const _0x39f783=a0_0x3cf952;this['logger']=_0x14a28e,this[_0x39f783(0x16e)]=new Map(),this[_0x39f783(0x176)]=new Map(),this[_0x39f783(0x167)]=new Map(),this[_0x39f783(0x16c)]=new Map();}async[a0_0x3cf952(0x1cc)](_0x67a6a){const _0x22b96f=a0_0x3cf952;try{const _0x4e576a=new _0x67a6a();if(!(_0x4e576a instanceof BaseTool))throw new Error('Tool\x20'+_0x67a6a['name']+'\x20must\x20extend\x20BaseTool');const _0x8449c5=_0x4e576a['getCapabilities']();await this['validateTool'](_0x4e576a),this[_0x22b96f(0x16e)][_0x22b96f(0x178)](_0x4e576a['id'],_0x4e576a),this['toolDescriptions'][_0x22b96f(0x178)](_0x4e576a['id'],_0x4e576a['getDescription']()),this[_0x22b96f(0x167)][_0x22b96f(0x178)](_0x4e576a['id'],_0x8449c5),this[_0x22b96f(0x16d)]?.[_0x22b96f(0x15a)](_0x22b96f(0x16b)+_0x4e576a['id'],{'capabilities':_0x8449c5['supportedActions'],'async':_0x8449c5['async'],'requiresProject':_0x8449c5['requiresProject']});}catch(_0x35425f){this[_0x22b96f(0x16d)]?.[_0x22b96f(0x196)](_0x22b96f(0x18e)+_0x35425f[_0x22b96f(0x1bb)],{'toolClass':_0x67a6a['name']});throw _0x35425f;}}async[a0_0x3cf952(0x18b)](_0x770439){return 0x0;}async[a0_0x3cf952(0x1ba)](_0x1d4b8a){const _0x6d0375=a0_0x3cf952,requiredMethods=['getDescription','parseParameters',_0x6d0375(0x1c2)];for(const _0xa9ca12 of requiredMethods){if(typeof _0x1d4b8a[_0xa9ca12]!==_0x6d0375(0x1b2))throw new Error(_0x6d0375(0x1c8)+_0x1d4b8a['id']+'\x20missing\x20required\x20method:\x20'+_0xa9ca12);}try{const _0x42ff5f=_0x1d4b8a[_0x6d0375(0x197)](_0x6d0375(0x19d));if(typeof _0x42ff5f!==_0x6d0375(0x166))throw new Error('Tool\x20'+_0x1d4b8a['id']+_0x6d0375(0x1b0));}catch(_0x207080){}const _0x461888=_0x1d4b8a['getCapabilities']();if(!_0x461888||typeof _0x461888!==_0x6d0375(0x166))throw new Error(_0x6d0375(0x1c8)+_0x1d4b8a['id']+_0x6d0375(0x19e));}['getTool'](_0xfe1bf2){return this['tools']['get'](_0xfe1bf2)||null;}['getToolCapabilities'](){const _0x8be327=a0_0x3cf952,_0x29de5a={};for(const [_0x1156a5,_0x2768d3]of this[_0x8be327(0x16e)][_0x8be327(0x181)]()){_0x2768d3['isEnabled']&&(_0x29de5a[_0x1156a5]={'description':this['toolDescriptions'][_0x8be327(0x1cf)](_0x1156a5),'capabilities':this[_0x8be327(0x167)][_0x8be327(0x1cf)](_0x1156a5),'usageStats':_0x2768d3['getUsageStats']()});}return _0x29de5a;}async[a0_0x3cf952(0x19f)](_0x5b6672,_0x310288,_0x5c72fb){const _0x589e9c=a0_0x3cf952,_0xa44369=this['getTool'](_0x5b6672);if(!_0xa44369)throw new Error(_0x589e9c(0x185)+_0x5b6672);if(!_0xa44369['isEnabled'])throw new Error('Tool\x20is\x20disabled:\x20'+_0x5b6672);return await _0xa44369[_0x589e9c(0x192)](_0x310288,_0x5c72fb);}[a0_0x3cf952(0x195)](){const _0x33501d=a0_0x3cf952;return Array['from'](this['tools'][_0x33501d(0x1b3)]());}['generateToolDescriptionsForPrompt'](_0x155048=[],_0x42b20a={}){const _0x3ec9f4=a0_0x3cf952,{includeExamples:includeExamples=!![],includeUsageGuidelines:includeUsageGuidelines=!![],includeSecurityNotes:includeSecurityNotes=!![],compact:compact=![]}=_0x42b20a,_0x5e730b=_0x155048['length']>0x0?_0x155048[_0x3ec9f4(0x199)](_0x5f4c9a=>this['tools'][_0x3ec9f4(0x165)](_0x5f4c9a)):Array[_0x3ec9f4(0x180)](this['tools']['keys']());if(_0x5e730b['length']===0x0)return'';let _0x88baf3='\x0a##\x20AVAILABLE\x20TOOLS\x0a\x0a';_0x88baf3+=_0x3ec9f4(0x172);for(const _0x43ae54 of _0x5e730b){const _0x591690=this['tools']['get'](_0x43ae54);if(!_0x591690||!_0x591690['isEnabled'])continue;try{if(compact){const _0xaa5b7b=_0x591690['getCapabilities'](),_0x29168e=_0xaa5b7b[_0x3ec9f4(0x164)]||['execute'];_0x88baf3+='**'+_0x43ae54+_0x3ec9f4(0x1ce)+_0x29168e[_0x3ec9f4(0x189)](',\x20')+'\x0a';}else _0x88baf3+='###\x20'+_0x43ae54[_0x3ec9f4(0x168)]()+'\x20TOOL\x0a\x0a',_0x88baf3+=_0x591690['getDescription'](),_0x88baf3+=_0x3ec9f4(0x1a2);}catch(_0x3a0c93){this[_0x3ec9f4(0x16d)]?.['warn']('Failed\x20to\x20get\x20description\x20for\x20tool:\x20'+_0x43ae54,{'error':_0x3a0c93[_0x3ec9f4(0x1bb)]});}}return compact&&(_0x88baf3+=_0x3ec9f4(0x1b4)),_0x88baf3+='##\x20TOOL\x20INVOCATION\x20SYNTAX\x0a\x0a',_0x88baf3+=_0x3ec9f4(0x190),_0x88baf3+='###\x20Standard\x20Format:\x20JSON\x20in\x20Markdown\x20Code\x20Block\x0a',_0x88baf3+=_0x3ec9f4(0x1c6),_0x88baf3+=_0x3ec9f4(0x1b5),_0x88baf3+='{\x0a',_0x88baf3+='\x20\x20\x22toolId\x22:\x20\x22toolname\x22,\x0a',_0x88baf3+=_0x3ec9f4(0x15b),_0x88baf3+='}\x0a',_0x88baf3+=_0x3ec9f4(0x1c6),_0x88baf3+=_0x3ec9f4(0x15c),_0x88baf3+='**Rules:**\x0a',_0x88baf3+=_0x3ec9f4(0x156),_0x88baf3+='-\x20Use\x20\x22toolId\x22\x20to\x20specify\x20the\x20tool\x20name\x0a',_0x88baf3+=_0x3ec9f4(0x163),_0x88baf3+=_0x3ec9f4(0x1c9),_0x88baf3+=_0x3ec9f4(0x18d),_0x88baf3;}['enhanceSystemPrompt'](_0x498686,_0x1c120e=[],_0x1e8a7b={}){const _0x1e34fb=a0_0x3cf952,_0xfeecfe=this[_0x1e34fb(0x1bf)](_0x1c120e,_0x1e8a7b);if(!_0xfeecfe['trim']())return _0x498686||'';const _0x5c3e0e=_0x498686||'';if(_0x5c3e0e[_0x1e34fb(0x159)]('##\x20AVAILABLE\x20TOOLS'))return _0x5c3e0e[_0x1e34fb(0x1bd)](/## AVAILABLE TOOLS[\s\S]*?(?=##|$)/,_0xfeecfe+'\x0a');const _0x48d88c='IMPORTANT:\x20when\x20asked\x20to\x20perform\x20an\x20action\x20or\x20operation,\x20use\x20each\x20response\x20to\x20invoke\x20a\x20tool\x20if\x20needed,\x20and\x20update\x20the\x20user\x20on\x20the\x20progress\x20(same\x20message).';return _0x5c3e0e+(_0x5c3e0e[_0x1e34fb(0x19c)]('\x0a')?'':'\x0a')+_0xfeecfe+_0x48d88c+'\x0a';}['getAvailableToolsForUI'](){const _0x2bebc0=a0_0x3cf952,_0x22b3af=[];for(const [_0x4a649,_0x21bacd]of this['tools'][_0x2bebc0(0x181)]()){const _0x35c1de=_0x21bacd['getCapabilities'](),_0x2d2440=_0x21bacd[_0x2bebc0(0x1c4)](),_0x33164c=_0x2d2440[_0x2bebc0(0x1a9)]('\x0a')[_0x2bebc0(0x16a)](_0x2239c9=>_0x2239c9[_0x2bebc0(0x15e)]()[_0x2bebc0(0x19a)]>0x0)||'',_0x4012b5=_0x33164c[_0x2bebc0(0x1bd)](/^.*Tool:\s*/i,'')['replace'](/\s*-.*$/,'')[_0x2bebc0(0x15e)]();_0x22b3af['push']({'id':_0x4a649,'name':_0x4012b5||_0x4a649[_0x2bebc0(0x1a3)](0x0)[_0x2bebc0(0x168)]()+_0x4a649['slice'](0x1),'description':_0x33164c,'category':this['_getToolCategory'](_0x4a649),'enabled':_0x35c1de['enabled'],'async':_0x35c1de[_0x2bebc0(0x1a4)],'requiresProject':_0x35c1de[_0x2bebc0(0x1aa)],'className':_0x21bacd[_0x2bebc0(0x18a)][_0x2bebc0(0x175)]});}return _0x22b3af['sort']((_0x41304c,_0x3478ac)=>_0x41304c['name']['localeCompare'](_0x3478ac['name']));}[a0_0x3cf952(0x1b1)](_0x52140a){const _0x16275b=a0_0x3cf952,_0x30f3e7={'terminal':'System','filesystem':_0x16275b(0x17a),'web':_0x16275b(0x18f),'agentdelay':_0x16275b(0x1a0)};return _0x30f3e7[_0x52140a]||'Other';}[a0_0x3cf952(0x17f)](){const _0x1c40b5=a0_0x3cf952,_0x12a124=Array['from'](this[_0x1c40b5(0x16e)]['values']())[_0x1c40b5(0x199)](_0x407710=>_0x407710['isEnabled']),_0x3aad28=Array['from'](this[_0x1c40b5(0x16e)]['values']())[_0x1c40b5(0x177)]((_0x2fa7b3,_0x423121)=>_0x2fa7b3+_0x423121['usageCount'],0x0);return{'totalTools':this[_0x1c40b5(0x16e)]['size'],'enabledTools':_0x12a124['length'],'totalOperations':_0x3aad28,'activeOperations':this['asyncOperations']['size']};}}export{BaseTool,ToolsRegistry};
|
|
1
|
+
const a0_0x4314ff=a0_0x339c;(function(_0x2bdf7b,_0xa9c1a3){const _0x34ff6d=a0_0x339c,_0x17519d=_0x2bdf7b();while(!![]){try{const _0xaa0dd1=parseInt(_0x34ff6d(0x12d))/0x1+parseInt(_0x34ff6d(0x133))/0x2+parseInt(_0x34ff6d(0x157))/0x3+-parseInt(_0x34ff6d(0x147))/0x4*(parseInt(_0x34ff6d(0x140))/0x5)+parseInt(_0x34ff6d(0x10a))/0x6+parseInt(_0x34ff6d(0x177))/0x7*(parseInt(_0x34ff6d(0x165))/0x8)+parseInt(_0x34ff6d(0x110))/0x9*(-parseInt(_0x34ff6d(0x12c))/0xa);if(_0xaa0dd1===_0xa9c1a3)break;else _0x17519d['push'](_0x17519d['shift']());}catch(_0x4cf7cf){_0x17519d['push'](_0x17519d['shift']());}}}(a0_0x3d19,0x39da1));import{TOOL_STATUS,OPERATION_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x339c(_0x3f8159,_0x27f1ff){_0x3f8159=_0x3f8159-0x106;const _0x3d1980=a0_0x3d19();let _0x339ca6=_0x3d1980[_0x3f8159];if(a0_0x339c['TpMzVX']===undefined){var _0xfb0674=function(_0xbeeb24){const _0x179bfd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4fd0ef='',_0x11e00a='';for(let _0x5b5882=0x0,_0x506fd9,_0x430d1c,_0x451a1c=0x0;_0x430d1c=_0xbeeb24['charAt'](_0x451a1c++);~_0x430d1c&&(_0x506fd9=_0x5b5882%0x4?_0x506fd9*0x40+_0x430d1c:_0x430d1c,_0x5b5882++%0x4)?_0x4fd0ef+=String['fromCharCode'](0xff&_0x506fd9>>(-0x2*_0x5b5882&0x6)):0x0){_0x430d1c=_0x179bfd['indexOf'](_0x430d1c);}for(let _0x1564a9=0x0,_0x22fbe2=_0x4fd0ef['length'];_0x1564a9<_0x22fbe2;_0x1564a9++){_0x11e00a+='%'+('00'+_0x4fd0ef['charCodeAt'](_0x1564a9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x11e00a);};a0_0x339c['bbXIdX']=_0xfb0674,a0_0x339c['vohADv']={},a0_0x339c['TpMzVX']=!![];}const _0x2f2046=_0x3d1980[0x0],_0x251153=_0x3f8159+_0x2f2046,_0x158252=a0_0x339c['vohADv'][_0x251153];return!_0x158252?(_0x339ca6=a0_0x339c['bbXIdX'](_0x339ca6),a0_0x339c['vohADv'][_0x251153]=_0x339ca6):_0x339ca6=_0x158252,_0x339ca6;}class BaseTool{constructor(_0x4fd0ef={},_0x11e00a=null){const _0x2eba32=a0_0x339c;this['id']=this[_0x2eba32(0x169)][_0x2eba32(0x115)]['toLowerCase']()[_0x2eba32(0x15b)]('tool',''),this[_0x2eba32(0x13a)]=_0x4fd0ef,this[_0x2eba32(0x143)]=_0x11e00a,this[_0x2eba32(0x11e)]=![],this['isAsync']=![],this[_0x2eba32(0x161)]=_0x4fd0ef[_0x2eba32(0x161)]||SYSTEM_DEFAULTS[_0x2eba32(0x11a)],this['maxConcurrentOperations']=_0x4fd0ef[_0x2eba32(0x172)]||0x1,this['activeOperations']=new Map(),this['operationHistory']=[],this[_0x2eba32(0x17d)]=_0x4fd0ef[_0x2eba32(0x16d)]!==![],this[_0x2eba32(0x170)]=null,this['usageCount']=0x0;}[a0_0x4314ff(0x14d)](){const _0x305e1e=a0_0x4314ff;throw new Error('Tool\x20'+this['id']+_0x305e1e(0x179));}[a0_0x4314ff(0x12e)](_0x5b5882){const _0x2ff49c=a0_0x4314ff;throw new Error(_0x2ff49c(0x158)+this['id']+_0x2ff49c(0x123));}async[a0_0x4314ff(0x119)](_0x506fd9,_0x430d1c){const _0x19b1c2=a0_0x4314ff;throw new Error(_0x19b1c2(0x158)+this['id']+'\x20must\x20implement\x20execute()');}['getCapabilities'](){const _0x4cf802=a0_0x4314ff;return{'id':this['id'],'async':this['isAsync'],'requiresProject':this[_0x4cf802(0x11e)],'timeout':this[_0x4cf802(0x161)],'maxConcurrentOperations':this['maxConcurrentOperations'],'enabled':this[_0x4cf802(0x17d)],'supportedActions':this['getSupportedActions'](),'parameterSchema':this[_0x4cf802(0x160)]()};}['validateParameters'](_0x451a1c){const _0x38c698=a0_0x4314ff;try{if(!_0x451a1c||typeof _0x451a1c!=='object')return{'valid':![],'error':'Parameters\x20must\x20be\x20an\x20object'};const requiredParams=this[_0x38c698(0x180)]();for(const required of requiredParams){if(!(required in _0x451a1c))return{'valid':![],'error':_0x38c698(0x14b)+required};}const _0x1564a9=this[_0x38c698(0x168)](_0x451a1c);if(!_0x1564a9[_0x38c698(0x16c)])return _0x1564a9;const _0x22fbe2=this['customValidateParameters'](_0x451a1c);if(!_0x22fbe2[_0x38c698(0x16c)])return _0x22fbe2;return{'valid':!![]};}catch(_0x331bca){return{'valid':![],'error':_0x38c698(0x155)+_0x331bca['message']};}}async['executeWithLifecycle'](_0x5b5a09,_0x24bdc1){const _0x55541f=a0_0x4314ff,_0x40ce5d=this['generateOperationId'](),_0x2ddf0d=Date[_0x55541f(0x15d)]();if(!this['isEnabled'])throw new Error('Tool\x20'+this['id']+_0x55541f(0x14a));if(this[_0x55541f(0x126)]['size']>=this[_0x55541f(0x172)])throw new Error(_0x55541f(0x158)+this['id']+_0x55541f(0x10c));const _0x37062f=this['validateParameters'](_0x5b5a09);if(!_0x37062f['valid'])throw new Error(_0x55541f(0x155)+_0x37062f['error']);const _0x525d78={'id':_0x40ce5d,'toolId':this['id'],'status':TOOL_STATUS['EXECUTING'],'startTime':new Date()[_0x55541f(0x125)](),'params':_0x5b5a09,'context':this[_0x55541f(0x108)](_0x24bdc1)};this['activeOperations']['set'](_0x40ce5d,_0x525d78);try{this['logger']?.[_0x55541f(0x120)](_0x55541f(0x156)+this['id'],{'operationId':_0x40ce5d,'toolId':this['id'],'context':_0x525d78[_0x55541f(0x131)]});const _0x306859=await this[_0x55541f(0x112)](_0x5b5a09,_0x24bdc1);return _0x525d78['status']=TOOL_STATUS[_0x55541f(0x164)],_0x525d78[_0x55541f(0x17b)]=_0x306859,_0x525d78['endTime']=new Date()['toISOString'](),_0x525d78[_0x55541f(0x16b)]=Date[_0x55541f(0x15d)]()-_0x2ddf0d,this['lastUsed']=new Date()['toISOString'](),this[_0x55541f(0x167)]++,this[_0x55541f(0x143)]?.['info'](_0x55541f(0x146)+this['id'],{'operationId':_0x40ce5d,'executionTime':_0x525d78[_0x55541f(0x16b)],'success':!![]}),{'success':!![],'operationId':_0x40ce5d,'result':_0x306859,'executionTime':_0x525d78['executionTime'],'toolId':this['id']};}catch(_0x2db6c8){_0x525d78['status']=TOOL_STATUS['FAILED'],_0x525d78[_0x55541f(0x153)]=_0x2db6c8[_0x55541f(0x173)],_0x525d78['endTime']=new Date()['toISOString'](),_0x525d78[_0x55541f(0x16b)]=Date[_0x55541f(0x15d)]()-_0x2ddf0d,this[_0x55541f(0x143)]?.['error'](_0x55541f(0x11b)+this['id'],{'operationId':_0x40ce5d,'error':_0x2db6c8[_0x55541f(0x173)],'executionTime':_0x525d78['executionTime']});throw _0x2db6c8;}finally{this[_0x55541f(0x121)]['push']({..._0x525d78}),this[_0x55541f(0x126)]['delete'](_0x40ce5d),this['cleanupHistory'](),await this['cleanup'](_0x40ce5d);}}async[a0_0x4314ff(0x176)](_0x1d2ed6){const _0x17dfef=a0_0x4314ff,_0xc09edc=this[_0x17dfef(0x126)][_0x17dfef(0x150)](_0x1d2ed6);if(!_0xc09edc){const _0xc3c6e=this['operationHistory']['find'](_0x59db74=>_0x59db74['id']===_0x1d2ed6);if(_0xc3c6e)return{'operationId':_0x1d2ed6,'status':_0xc3c6e['status'],'result':_0xc3c6e['result'],'error':_0xc3c6e['error'],'executionTime':_0xc3c6e['executionTime']};return{'operationId':_0x1d2ed6,'status':OPERATION_STATUS[_0x17dfef(0x14e)],'error':'Operation\x20not\x20found'};}return{'operationId':_0x1d2ed6,'status':_0xc09edc[_0x17dfef(0x145)],'startTime':_0xc09edc[_0x17dfef(0x149)],'executionTime':_0xc09edc[_0x17dfef(0x163)]?new Date(_0xc09edc[_0x17dfef(0x163)])[_0x17dfef(0x17a)]()-new Date(_0xc09edc[_0x17dfef(0x149)])['getTime']():Date[_0x17dfef(0x15d)]()-new Date(_0xc09edc[_0x17dfef(0x149)])['getTime']()};}async['cleanup'](_0x72ba4b){}[a0_0x4314ff(0x138)](){return['execute'];}['getParameterSchema'](){return{'type':'object','properties':{},'required':[]};}['getRequiredParameters'](){return[];}[a0_0x4314ff(0x168)](_0x480ab2){return{'valid':!![]};}[a0_0x4314ff(0x10e)](_0x1189dc){return{'valid':!![]};}async['executeWithTimeout'](_0x5a7f5c,_0x38bf63){return new Promise(async(_0x2cf200,_0x5d9984)=>{const _0x557b02=a0_0x339c,_0x48d324=setTimeout(()=>{const _0x2530de=a0_0x339c;_0x5d9984(new Error(_0x2530de(0x171)+this[_0x2530de(0x161)]+'ms'));},this[_0x557b02(0x161)]);try{const _0x36f282=await this['execute'](_0x5a7f5c,_0x38bf63);clearTimeout(_0x48d324),_0x2cf200(_0x36f282);}catch(_0x3633ec){clearTimeout(_0x48d324),_0x5d9984(_0x3633ec);}});}[a0_0x4314ff(0x16f)](){return this['id']+'-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);}['sanitizeContext'](_0x1a5fe9){const _0x14333c=a0_0x4314ff,_0x7e6adb={..._0x1a5fe9};return delete _0x7e6adb[_0x14333c(0x14f)],delete _0x7e6adb['secrets'],delete _0x7e6adb['passwords'],_0x7e6adb[_0x14333c(0x11c)]&&_0x7e6adb[_0x14333c(0x11c)]['length']>0x1f4&&(_0x7e6adb['content']=_0x7e6adb[_0x14333c(0x11c)]['substring'](0x0,0x1f4)+'...\x20[truncated]'),_0x7e6adb;}[a0_0x4314ff(0x129)](){const _0x371e23=a0_0x4314ff,_0x4b2f45=0x64;this['operationHistory']['length']>_0x4b2f45&&(this[_0x371e23(0x121)]=this['operationHistory'][_0x371e23(0x151)](-_0x4b2f45));}[a0_0x4314ff(0x154)](){const _0x3316fb=a0_0x4314ff;return{'toolId':this['id'],'usageCount':this['usageCount'],'lastUsed':this[_0x3316fb(0x170)],'activeOperations':this['activeOperations']['size'],'totalOperations':this[_0x3316fb(0x121)]['length'],'averageExecutionTime':this['calculateAverageExecutionTime'](),'successRate':this[_0x3316fb(0x111)](),'isEnabled':this[_0x3316fb(0x17d)]};}['calculateAverageExecutionTime'](){const _0x4d6d9d=a0_0x4314ff,_0x2251ef=this['operationHistory']['filter'](_0x5ce130=>_0x5ce130['status']===TOOL_STATUS[_0x4d6d9d(0x164)]&&_0x5ce130[_0x4d6d9d(0x16b)]);if(_0x2251ef['length']===0x0)return 0x0;const _0x1cac8d=_0x2251ef[_0x4d6d9d(0x144)]((_0x4247c4,_0x16a625)=>_0x4247c4+_0x16a625['executionTime'],0x0);return Math['round'](_0x1cac8d/_0x2251ef['length']);}[a0_0x4314ff(0x111)](){const _0x21110f=a0_0x4314ff;if(this[_0x21110f(0x121)][_0x21110f(0x106)]===0x0)return 0x0;const _0x536061=this['operationHistory']['filter'](_0x1bf6c6=>_0x1bf6c6['status']===TOOL_STATUS['COMPLETED']);return _0x536061[_0x21110f(0x106)]/this['operationHistory']['length']*0x64;}[a0_0x4314ff(0x178)](){const _0x4e0e42=a0_0x4314ff;this['isEnabled']=!![],this[_0x4e0e42(0x143)]?.[_0x4e0e42(0x120)]('Tool\x20enabled:\x20'+this['id']);}[a0_0x4314ff(0x134)](){const _0x4aee54=a0_0x4314ff;this['isEnabled']=![],this['logger']?.[_0x4aee54(0x120)](_0x4aee54(0x162)+this['id']);}['resetStats'](){const _0x52ce2a=a0_0x4314ff;this[_0x52ce2a(0x167)]=0x0,this[_0x52ce2a(0x170)]=null,this[_0x52ce2a(0x121)]=[],this[_0x52ce2a(0x143)]?.['info']('Tool\x20statistics\x20reset:\x20'+this['id']);}}class ToolsRegistry{constructor(_0xa1d798=null){const _0x4617bf=a0_0x4314ff;this[_0x4617bf(0x143)]=_0xa1d798,this[_0x4617bf(0x10d)]=new Map(),this[_0x4617bf(0x17c)]=new Map(),this[_0x4617bf(0x13f)]=new Map(),this[_0x4617bf(0x12a)]=new Map();}async[a0_0x4314ff(0x152)](_0xca45ef){const _0xfab6af=a0_0x4314ff;try{const _0x11c60c=new _0xca45ef();if(!(_0x11c60c instanceof BaseTool))throw new Error('Tool\x20'+_0xca45ef['name']+_0xfab6af(0x13e));const _0xe468d6=_0x11c60c[_0xfab6af(0x122)]();await this[_0xfab6af(0x135)](_0x11c60c),this[_0xfab6af(0x10d)]['set'](_0x11c60c['id'],_0x11c60c),this['toolDescriptions'][_0xfab6af(0x127)](_0x11c60c['id'],_0x11c60c['getDescription']()),this['toolCapabilities'][_0xfab6af(0x127)](_0x11c60c['id'],_0xe468d6),this[_0xfab6af(0x143)]?.['info']('Tool\x20registered:\x20'+_0x11c60c['id'],{'capabilities':_0xe468d6['supportedActions'],'async':_0xe468d6[_0xfab6af(0x14c)],'requiresProject':_0xe468d6['requiresProject']});}catch(_0x592a6c){this[_0xfab6af(0x143)]?.['error'](_0xfab6af(0x174)+_0x592a6c['message'],{'toolClass':_0xca45ef['name']});throw _0x592a6c;}}async[a0_0x4314ff(0x159)](_0xed5951){return 0x0;}async[a0_0x4314ff(0x135)](_0x32b884){const _0x28629c=a0_0x4314ff,requiredMethods=[_0x28629c(0x14d),'parseParameters','execute'];for(const _0x4e8bb4 of requiredMethods){if(typeof _0x32b884[_0x4e8bb4]!=='function')throw new Error('Tool\x20'+_0x32b884['id']+'\x20missing\x20required\x20method:\x20'+_0x4e8bb4);}try{const _0x1e1787=_0x32b884['parseParameters']('test\x20content');if(typeof _0x1e1787!=='object')throw new Error('Tool\x20'+_0x32b884['id']+_0x28629c(0x109));}catch(_0x49c33f){}const _0x240226=_0x32b884[_0x28629c(0x122)]();if(!_0x240226||typeof _0x240226!==_0x28629c(0x175))throw new Error(_0x28629c(0x158)+_0x32b884['id']+_0x28629c(0x13c));}[a0_0x4314ff(0x17e)](_0x8f8d39){const _0x226f6b=a0_0x4314ff;return this[_0x226f6b(0x10d)]['get'](_0x8f8d39)||null;}[a0_0x4314ff(0x10f)](){const _0x44a1f2=a0_0x4314ff,_0x334bd1={};for(const [_0x4c0665,_0x2b960a]of this[_0x44a1f2(0x10d)]['entries']()){_0x2b960a[_0x44a1f2(0x17d)]&&(_0x334bd1[_0x4c0665]={'description':this[_0x44a1f2(0x17c)][_0x44a1f2(0x150)](_0x4c0665),'capabilities':this[_0x44a1f2(0x13f)][_0x44a1f2(0x150)](_0x4c0665),'usageStats':_0x2b960a[_0x44a1f2(0x154)]()});}return _0x334bd1;}async['executeToolSecurely'](_0x14517f,_0x451e11,_0x484822){const _0x1b9d59=a0_0x4314ff,_0x4664b1=this[_0x1b9d59(0x17e)](_0x14517f);if(!_0x4664b1)throw new Error('Tool\x20not\x20found:\x20'+_0x14517f);if(!_0x4664b1[_0x1b9d59(0x17d)])throw new Error('Tool\x20is\x20disabled:\x20'+_0x14517f);return await _0x4664b1[_0x1b9d59(0x16a)](_0x451e11,_0x484822);}[a0_0x4314ff(0x11f)](){return Array['from'](this['tools']['keys']());}[a0_0x4314ff(0x15c)](_0x3e36ea=[],_0x11f85d={}){const _0x5103eb=a0_0x4314ff,{includeExamples:includeExamples=!![],includeUsageGuidelines:includeUsageGuidelines=!![],includeSecurityNotes:includeSecurityNotes=!![],compact:compact=![]}=_0x11f85d,_0x1b2d6b=_0x3e36ea[_0x5103eb(0x106)]>0x0?_0x3e36ea[_0x5103eb(0x15a)](_0x443000=>this['tools'][_0x5103eb(0x12f)](_0x443000)):Array[_0x5103eb(0x15e)](this['tools']['keys']());if(_0x1b2d6b['length']===0x0)return'';let _0x42699d='\x0a##\x20AVAILABLE\x20TOOLS\x0a\x0a';_0x42699d+='You\x20have\x20access\x20to\x20the\x20following\x20tools\x20to\x20perform\x20operations\x20and\x20tasks:\x0a\x0a';for(const _0x5765c1 of _0x1b2d6b){const _0x8ed453=this[_0x5103eb(0x10d)]['get'](_0x5765c1);if(!_0x8ed453||!_0x8ed453['isEnabled'])continue;try{if(compact){const _0x184102=_0x8ed453['getCapabilities'](),_0x52cc92=_0x184102['supportedActions']||[_0x5103eb(0x119)];_0x42699d+='**'+_0x5765c1+'**:\x20'+_0x52cc92['join'](',\x20')+'\x0a';}else _0x42699d+='###\x20'+_0x5765c1['toUpperCase']()+_0x5103eb(0x128),_0x42699d+=_0x8ed453[_0x5103eb(0x14d)](),_0x42699d+=_0x5103eb(0x13b);}catch(_0x5ce07c){this[_0x5103eb(0x143)]?.['warn']('Failed\x20to\x20get\x20description\x20for\x20tool:\x20'+_0x5765c1,{'error':_0x5ce07c[_0x5103eb(0x173)]});}}return compact&&(_0x42699d+=_0x5103eb(0x13d)),_0x42699d+='##\x20TOOL\x20INVOCATION\x20SYNTAX\x0a\x0a',_0x42699d+=_0x5103eb(0x166),_0x42699d+='###\x20Standard\x20Format:\x20JSON\x20in\x20Markdown\x20Code\x20Block\x0a',_0x42699d+='```\x0a',_0x42699d+='```json\x0a',_0x42699d+='{\x0a',_0x42699d+=_0x5103eb(0x15f),_0x42699d+='\x20\x20\x22parameters\x22:\x20{\x20...\x20}\x0a',_0x42699d+='}\x0a',_0x42699d+=_0x5103eb(0x141),_0x42699d+=_0x5103eb(0x10b),_0x42699d+='**Rules:**\x0a',_0x42699d+='-\x20Always\x20wrap\x20JSON\x20tool\x20commands\x20in\x20```json\x20...\x20```\x20blocks\x0a',_0x42699d+=_0x5103eb(0x148),_0x42699d+='-\x20Use\x20\x22parameters\x22\x20object\x20for\x20tool-specific\x20parameters\x0a',_0x42699d+='-\x20Use\x20\x22actions\x22\x20array\x20for\x20tools\x20that\x20support\x20multiple\x20operations\x0a\x0a',_0x42699d+=_0x5103eb(0x114),_0x42699d;}['enhanceSystemPrompt'](_0xe15885,_0x404c9c=[],_0x216609={}){const _0x12fa9b=a0_0x4314ff,_0x4dc9e2=this['generateToolDescriptionsForPrompt'](_0x404c9c,_0x216609);if(!_0x4dc9e2['trim']())return _0xe15885||'';const _0x1ea28f=_0xe15885||'';if(_0x1ea28f[_0x12fa9b(0x113)](_0x12fa9b(0x130)))return _0x1ea28f[_0x12fa9b(0x15b)](/## AVAILABLE TOOLS[\s\S]*?(?=##|$)/,_0x4dc9e2+'\x0a');const _0x1aa2aa='IMPORTANT:\x20when\x20asked\x20to\x20perform\x20an\x20action\x20or\x20operation,\x20use\x20each\x20response\x20to\x20invoke\x20a\x20tool\x20if\x20needed,\x20and\x20update\x20the\x20user\x20on\x20the\x20progress\x20(same\x20message).';return _0x1ea28f+(_0x1ea28f[_0x12fa9b(0x12b)]('\x0a')?'':'\x0a')+_0x4dc9e2+_0x1aa2aa+'\x0a';}[a0_0x4314ff(0x137)](){const _0x16842f=a0_0x4314ff,_0x37a740=[];for(const [_0xf958c3,_0x57a4ea]of this['tools'][_0x16842f(0x132)]()){const _0x550b1d=_0x57a4ea['getCapabilities'](),_0x4122d1=_0x57a4ea[_0x16842f(0x14d)](),_0x167a17=_0x4122d1[_0x16842f(0x117)]('\x0a')['find'](_0x267eaf=>_0x267eaf['trim']()[_0x16842f(0x106)]>0x0)||'',_0x27e86b=_0x167a17['replace'](/^.*Tool:\s*/i,'')[_0x16842f(0x15b)](/\s*-.*$/,'')[_0x16842f(0x107)]();_0x37a740['push']({'id':_0xf958c3,'name':_0x27e86b||_0xf958c3[_0x16842f(0x116)](0x0)[_0x16842f(0x118)]()+_0xf958c3[_0x16842f(0x151)](0x1),'description':_0x167a17,'category':this['_getToolCategory'](_0xf958c3),'enabled':_0x550b1d[_0x16842f(0x16d)],'async':_0x550b1d['async'],'requiresProject':_0x550b1d['requiresProject'],'className':_0x57a4ea[_0x16842f(0x169)]['name']});}return _0x37a740['sort']((_0x1a540e,_0x3d453c)=>_0x1a540e['name']['localeCompare'](_0x3d453c['name']));}[a0_0x4314ff(0x124)](_0x5b675c){const _0x59b2ec=a0_0x4314ff,_0x16f07b={'terminal':_0x59b2ec(0x17f),'filesystem':_0x59b2ec(0x142),'web':_0x59b2ec(0x11d),'agentdelay':'Utility'};return _0x16f07b[_0x5b675c]||_0x59b2ec(0x16e);}['getRegistryStats'](){const _0x2f4cd6=a0_0x4314ff,_0x485a2d=Array['from'](this[_0x2f4cd6(0x10d)]['values']())[_0x2f4cd6(0x15a)](_0x11e2c3=>_0x11e2c3['isEnabled']),_0x51b76a=Array[_0x2f4cd6(0x15e)](this[_0x2f4cd6(0x10d)][_0x2f4cd6(0x139)]())[_0x2f4cd6(0x144)]((_0x5adfda,_0x142897)=>_0x5adfda+_0x142897['usageCount'],0x0);return{'totalTools':this['tools']['size'],'enabledTools':_0x485a2d[_0x2f4cd6(0x106)],'totalOperations':_0x51b76a,'activeOperations':this[_0x2f4cd6(0x12a)][_0x2f4cd6(0x136)]};}}function a0_0x3d19(){const _0x3a0ec6=['zxjYB3i','z2v0vxnHz2vtDgf0CW','ugfYyw1LDgvYihzHBgLKyxrPB24GzMfPBgvKoIa','vg9VBcbLEgvJDxrPB24GC3rHCNrLzdOG','nZqWntjTsNDOr0u','vg9VBca','zgLZy292zxjuB29SCW','zMLSDgvY','CMvWBgfJzq','z2vUzxjHDgvuB29SrgvZy3jPChrPB25ZrM9YuhjVBxb0','BM93','zNjVBq','icaIDg9VBeLKiJOGiNrVB2XUyw1LiIWk','z2v0ugfYyw1LDgvYu2nOzw1H','DgLTzw91Da','vg9VBcbKAxnHyMXLzdOG','zw5KvgLTzq','q09nueXfveve','mtu3ndK2og1it0Hhsa','kIPjtvbpuLrbtLqQkJOGvxnLiePtt04GzM9YBwf0igLUig1HCMTKB3DUignVzguGyMXVy2TZihrVigLUDM9Rzsb0B29SCZOkcG','DxnHz2vdB3vUDa','DMfSAwrHDgvqyxjHBwv0zxjuExbLCW','y29UC3rYDwn0B3i','zxHLy3v0zvDPDgHmAwzLy3LJBgu','zxHLy3v0Aw9UvgLTzq','DMfSAwq','zw5HyMXLza','t3rOzxi','z2vUzxjHDgvpCgvYyxrPB25jza','BgfZDfvZzwq','vg9VBcbLEgvJDxrPB24GDgLTzwqGB3v0igfMDgvYia','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','BwvZC2fNzq','vg9VBcbYzwDPC3rYyxrPB24GzMfPBgvKoIa','B2jQzwn0','z2v0u3rHDhvZ','n0XyvMHLEG','zw5HyMXL','ig11C3qGAw1WBgvTzw50igDLDerLC2nYAxb0Aw9UkcK','z2v0vgLTzq','CMvZDwX0','Dg9VBerLC2nYAxb0Aw9UCW','AxnfBMfIBgvK','z2v0vg9VBa','u3LZDgvT','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','BgvUz3rO','DhjPBq','C2fUAxrPEMvdB250zxH0','ihbHCNnLugfYyw1LDgvYCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','mtmZnZq2meHrCwHiua','ygbGcGO','igHHCYbYzwfJAgvKig1HEgLTDw0Gy29Uy3vYCMvUDcbVCgvYyxrPB25ZigXPBwL0','Dg9VBhm','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','z2v0vg9VBenHCgfIAwXPDgLLCW','mtK3mdfyDhHvueu','y2fSy3vSyxrLu3vJy2vZC1jHDgu','zxHLy3v0zvDPDgHuAw1LB3v0','Aw5JBhvKzxm','qwz0zxiGAw52B2TPBMCGysb0B29SlcbxquLuigzVCIb0AguGywn0DwfSihjLC3bVBNnLlIbeBYbot1qGz2vUzxjHDguGAw1Hz2LUyxj5ihjLC3bVBNnLCY4k','BMfTzq','y2HHCKf0','C3bSAxq','Dg9vChbLCKnHC2u','zxHLy3v0zq','tufyx1rpt0XFrvHfq1vusu9ox1rjtuu','vg9VBcbLEgvJDxrPB24GzMfPBgvKoIa','y29UDgvUDa','qxv0B21HDgLVBG','CMvXDwLYzxnqCM9Qzwn0','BgLZDfrVB2XZ','Aw5MBW','B3bLCMf0Aw9UsgLZDg9YEq','z2v0q2fWywjPBgL0AwvZ','ig11C3qGAw1WBgvTzw50ihbHCNnLugfYyw1LDgvYCYGP','x2DLDfrVB2XdyxrLz29YEq','Dg9ju09tDhjPBMC','ywn0AxzLt3bLCMf0Aw9UCW','C2v0','ifrpt0WkcG','y2XLyw51CeHPC3rVCNK','yxn5BMnpCgvYyxrPB25Z','zw5KC1DPDgG','mtm3mhfsALfcza','mJy5mteYvu13rfzw','CgfYC2vqyxjHBwv0zxjZ','AgfZ','iYmGqvzbsuXbqKXfifrpt0Xt','y29UDgv4Da','zw50CMLLCW','ntm2mZq2qvLKrMPH','zgLZywjSzq','DMfSAwrHDgvuB29S','C2L6zq','z2v0qxzHAwXHyMXLvg9VBhngB3jvsq','z2v0u3vWCg9YDgvKqwn0Aw9UCW','DMfSDwvZ','y29UzMLN','cGOTls0kcG','igDLDenHCgfIAwXPDgLLCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','cLvZzsbku09oigzVCM1HDcbPBIbTyxjRzg93BIbJB2rLigjSB2nRCYb0BYbPBNzVA2uGDg9VBhmUcGO','ig11C3qGzxH0zw5KiejHC2vuB29S','Dg9VBenHCgfIAwXPDgLLCW','mJC4mdyWtenXqxLv','ygbGcG','rMLSzsbpCgvYyxrPB25Z','Bg9Nz2vY','CMvKDwnL','C3rHDhvZ','vg9VBcbLEgvJDxrPB24Gy29TCgXLDgvKoIa','mZj4CMjqvee','lsbvC2uGiNrVB2XjzciGDg8GC3bLy2LMEsb0AguGDg9VBcbUyw1LcG','C3rHCNruAw1L','igLZigrPC2fIBgvK','twLZC2LUzYbYzxf1AxjLzcbWyxjHBwv0zxi6ia','yxn5BMm','z2v0rgvZy3jPChrPB24','tK9ux0zpvu5e','yxbPs2v5CW','z2v0','C2XPy2u','CMvNAxn0zxjuB29S'];a0_0x3d19=function(){return _0x3a0ec6;};return a0_0x3d19();}export{BaseTool,ToolsRegistry};
|
package/src/tools/browserTool.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x4530a1=a0_0x3f59;(function(_0x22b302,_0x5936df){const _0x407ec3=a0_0x3f59,_0x33eda4=_0x22b302();while(!![]){try{const _0x5d31e0=parseInt(_0x407ec3(0x201))/0x1*(parseInt(_0x407ec3(0x1ff))/0x2)+parseInt(_0x407ec3(0x1f4))/0x3+-parseInt(_0x407ec3(0x214))/0x4*(-parseInt(_0x407ec3(0x1c7))/0x5)+parseInt(_0x407ec3(0x1f8))/0x6+-parseInt(_0x407ec3(0x1c3))/0x7*(-parseInt(_0x407ec3(0x1c9))/0x8)+parseInt(_0x407ec3(0x1cd))/0x9*(-parseInt(_0x407ec3(0x226))/0xa)+-parseInt(_0x407ec3(0x1bf))/0xb*(parseInt(_0x407ec3(0x1b4))/0xc);if(_0x5d31e0===_0x5936df)break;else _0x33eda4['push'](_0x33eda4['shift']());}catch(_0x22bbbe){_0x33eda4['push'](_0x33eda4['shift']());}}}(a0_0x2bdc,0x76215));import{BaseTool}from'./baseTool.js';function a0_0x2bdc(){const _0x3b5011=['zxjYB3i','ndu5ntq5nKHYBuzoBq','Bgf1BMnO','vhLWzwqG','jgv2ywW','z2v0ugfNzq','rxH0CMfJDcbMywLSzwqGB24G','D2fPDc1ZzwXLy3rVCG','mtmWmty4nhrSuwHSra','ihrVigjLia','mwLktwPNBG','ywrKvg9iAxn0B3j5','zgLYBMfTzq','zM9JDxm','z2v0qNjVD3nLCG','oIbvuKWGBM90igfSBg93zwq6ia','y2XVC2u','rMfPBgvKihrVignSB3nLigjYB3DZzxi6ia','DhjPBq','zgLYzwn0Aw9U','yNjVD3nLCKnVBMzPzW','zxHLy3v0zq','CxvLCNLtzwXLy3rVCG','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','D2fPDa','D2fPDc10Aw1L','z2v0t3bLCMf0Aw9UsgLZDg9YEq','qwn0Aw9Uia','ywn0Aw9UCW','nhbQAfjKtW','D2fPDfr5Cgu','z2v0ugfYyw1LDgvYu2nOzw1H','v2fPDgvKigzVCIa','C3rHCNrZv2L0Aa','Aw50zwDLCG','B3v0Chv0lxbHDgG','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','Cg5N','CMvXDwLYzxnqCM9Qzwn0','zxH0CMfJDa','oIb1CMWGAxmGCMvXDwLYzwqGzM9Yig5HDMLNyxrL','CgfYC2vqyxjHBwv0zxjZ','Ag9ZDg5HBwu','AxnbC3LUyW','BMf2AwDHDgu','zNvSBfbHz2u','yxjYyxK','mZmWDfrHy2nh','DxnLCKfNzw50','D2fPDfnLBgvJDg9Y','AxnbCNjHEq','Dgv4DenVBNrLBNq','CMf3q29UDgvUDa','BwTKAxi','oIbPBNzHBgLKihnJCM9SBcbKAxjLy3rPB246ia','Dgv4Da','C2nYB2XSvg9W','v2fPDgvKia','mZaZotG1mLbys2fRBa','oIb0zxH0igLZihjLCxvPCMvKigzVCIb0ExbL','zw50CMLLCW','AgfZ','y2XLyw51CejYB3DZzxi','D2fPDezVCLnLBgvJDg9Y','DgLTzw91Da','Bg9Nz2vY','u2nYzwvUC2HVDcbZyxzLzdOG','oIbZzwXLy3rVCIbPCYbYzxf1AxjLzcbMB3iGDhLWzq','D2fPDfrPBwu','nZDnENzbuum','B3bLCMf0Aw9UsgLZDg9YEq','vhLWzsbMywLSzwqGB24G','CgfNzq','ntm4mZq5n0T3ANfKva','C29Tzq','yNjVD3nLCKLUC3rHBMnLCW','DMLZAwjSzq','mZK4nZuZnu5tAejvwG','CgfYC2vbDhrYAwj1DgvZ','oeX5C1fSEq','yNjVD3nLCG','C3rYAw5N','CMvZB2X2zq','mJa1nJC3AK5QwKjP','AgvHzgXLC3m','BM93','zg93BG','z2v0','BgvUz3rO','Bwf4u2nYzwvUC2HVDfnPEMu','AxnbBgXVD2vKvxjS','q2XPy2SGzMfPBgvKig9Uia','C2nYB2XSqNK','tMf2AwDHDgvKihrVia','zxzHBhvHDgu','C2L6zq','oIbLAxrOzxiGD2fPDc10Aw1Lig9YihDHAxqTC2vSzwn0B3iGAxmGCMvXDwLYzwq','C2XPy2u','zgvSzxrL','CMLNAhq','C2nYB2XS','oIbKAxjLy3rPB24GAxmGCMvXDwLYzwqGzM9YihnJCM9SBa','zNvSBc1WywDL','ls1KAxnHyMXLlwDWDq','DhLWzq','y2XLyw51Ca','Aw5JBhvKzxm','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','yMXVy2TLzerVBwfPBNm','tMf2AwDHDgLVBIbMywLSzwq6ia','y2XPy2S','C2nYB2XStgvMDa','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','D2fPDc10ExbL','DxjS','BwvZC2fNzq','B3v0Chv0ugf0Aa','BgvMDa','C2vSzwn0B3i','u2nYzwvUC2HVDcb0B28GBgfYz2u6ia','ChvZAa','C2nYzwvUC2HVDa','odm3nJnKChPRque','ywXSB3DLzerVBwfPBNm','DMLLD3bVCNq'];a0_0x2bdc=function(){return _0x3b5011;};return a0_0x2bdc();}import a0_0x71f6f3 from'../utilities/tagParser.js';import a0_0x17499c from'puppeteer';import a0_0x59c952 from'fs/promises';import a0_0xf8c69d from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x3f59(_0x15dce5,_0x5c67e1){_0x15dce5=_0x15dce5-0x1b3;const _0x2bdc84=a0_0x2bdc();let _0x3f593b=_0x2bdc84[_0x15dce5];if(a0_0x3f59['kCioJO']===undefined){var _0x33e6c6=function(_0x4fa499){const _0x213da5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x71f6f3='',_0x17499c='';for(let _0x59c952=0x0,_0xf8c69d,_0x2184f4,_0x104c1d=0x0;_0x2184f4=_0x4fa499['charAt'](_0x104c1d++);~_0x2184f4&&(_0xf8c69d=_0x59c952%0x4?_0xf8c69d*0x40+_0x2184f4:_0x2184f4,_0x59c952++%0x4)?_0x71f6f3+=String['fromCharCode'](0xff&_0xf8c69d>>(-0x2*_0x59c952&0x6)):0x0){_0x2184f4=_0x213da5['indexOf'](_0x2184f4);}for(let _0xbf63d5=0x0,_0x1b9dff=_0x71f6f3['length'];_0xbf63d5<_0x1b9dff;_0xbf63d5++){_0x17499c+='%'+('00'+_0x71f6f3['charCodeAt'](_0xbf63d5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x17499c);};a0_0x3f59['FkpaGU']=_0x33e6c6,a0_0x3f59['eKpmSn']={},a0_0x3f59['kCioJO']=!![];}const _0x14c21a=_0x2bdc84[0x0],_0x435a77=_0x15dce5+_0x14c21a,_0x42ada2=a0_0x3f59['eKpmSn'][_0x435a77];return!_0x42ada2?(_0x3f593b=a0_0x3f59['FkpaGU'](_0x3f593b),a0_0x3f59['eKpmSn'][_0x435a77]=_0x3f593b):_0x3f593b=_0x42ada2,_0x3f593b;}class BrowserTool extends BaseTool{constructor(_0x2184f4={},_0x104c1d=null){const _0x3b766c=a0_0x3f59;super(_0x2184f4,_0x104c1d),this[_0x3b766c(0x21d)]=![],this[_0x3b766c(0x222)]=!![],this['timeout']=_0x2184f4[_0x3b766c(0x1ba)]||0xea60,this['maxConcurrentOperations']=_0x2184f4[_0x3b766c(0x1e5)]||0x2,this['browserConfig']={'headless':_0x2184f4[_0x3b766c(0x1ce)]!==![],'viewport':_0x2184f4[_0x3b766c(0x1f6)]||{'width':0x500,'height':0x2d0},'userAgent':_0x2184f4[_0x3b766c(0x227)]||'Mozilla/5.0\x20(Windows\x20NT\x2010.0;\x20Win64;\x20x64)\x20AppleWebKit/537.36','timeout':_0x2184f4['pageTimeout']||0x7530},this[_0x3b766c(0x1c5)]=new Map(),this[_0x3b766c(0x1f5)]=_0x2184f4['allowedDomains']||null,this[_0x3b766c(0x1e6)]=_0x2184f4[_0x3b766c(0x1e6)]||[],this[_0x3b766c(0x1d3)]=_0x2184f4[_0x3b766c(0x1d3)]||0x5*0x400*0x400,this[_0x3b766c(0x1c0)]=[];}['getDescription'](){const _0x2224e3=a0_0x3f59;return'\x0aBrowser\x20Tool:\x20Automate\x20web\x20browser\x20interactions,\x20navigation,\x20and\x20data\x20extraction.\x0a\x0aUSAGE:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22browser\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22navigate\x22,\x20\x22url\x22:\x20\x22https://example.com\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22wait\x22,\x20\x22waitTime\x22:\x202000},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22click\x22,\x20\x22selector\x22:\x20\x22button.submit\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22screenshot\x22,\x20\x22outputPath\x22:\x20\x22screenshot.png\x22}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aSUPPORTED\x20ACTIONS:\x0a-\x20navigate:\x20Navigate\x20to\x20URL\x20(url)\x0a-\x20click:\x20Click\x20element\x20(selector)\x0a-\x20type:\x20Type\x20text\x20(selector,\x20text)\x0a-\x20wait:\x20Wait\x20for\x20element/time\x20(waitTime\x20or\x20waitSelector)\x0a-\x20screenshot:\x20Take\x20screenshot\x20(outputPath,\x20fullPage)\x0a-\x20extract:\x20Extract\x20data\x20(selector,\x20attribute)\x0a-\x20scroll:\x20Scroll\x20page\x20(direction,\x20pixels)\x0a-\x20close:\x20Close\x20browser\x0a\x0aPARAMETERS:\x0a-\x20url:\x20Target\x20URL\x20for\x20navigation\x0a-\x20selector:\x20CSS\x20selector\x20(e.g.,\x20\x22#id\x22,\x20\x22.class\x22,\x20\x22button[type=\x27submit\x27]\x22)\x0a-\x20text:\x20Text\x20to\x20type\x0a-\x20outputPath:\x20Screenshot\x20file\x20path\x0a-\x20waitTime:\x20Wait\x20in\x20milliseconds\x20(100-30000)\x0a-\x20waitSelector:\x20Element\x20selector\x20to\x20wait\x20for\x0a-\x20attribute:\x20HTML\x20attribute\x20to\x20extract\x20(default:\x20\x22text\x22)\x0a-\x20direction:\x20\x22up\x22,\x20\x22down\x22,\x20\x22left\x22,\x20\x22right\x22\x0a-\x20pixels:\x20Scroll\x20distance\x20(default:\x20300)\x0a-\x20fullPage:\x20Full\x20page\x20screenshot\x20(true/false)\x0a\x0aEXAMPLES:\x0a\x0aScreenshot\x20a\x20page:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22browser\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22navigate\x22,\x20\x22url\x22:\x20\x22https://github.com/trending\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22wait\x22,\x20\x22waitTime\x22:\x202000},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22screenshot\x22,\x20\x22outputPath\x22:\x20\x22trending.png\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22close\x22}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aForm\x20automation:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22browser\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22navigate\x22,\x20\x22url\x22:\x20\x22https://example.com/login\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22wait\x22,\x20\x22waitSelector\x22:\x20\x22input#username\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22type\x22,\x20\x22selector\x22:\x20\x22input#username\x22,\x20\x22text\x22:\x20\x22myuser\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22type\x22,\x20\x22selector\x22:\x20\x22input#password\x22,\x20\x22text\x22:\x20\x22mypass\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22click\x22,\x20\x22selector\x22:\x20\x22button[type=\x27submit\x27]\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22close\x22}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aSECURITY:\x0a-\x20Restricted\x20to\x20allowed\x20domains\x0a-\x20Screenshot\x20size\x20limits\x20(max\x205MB)\x0a-\x20Auto-cleanup\x20after\x2010\x20minutes\x0a\x0aVIEWPORT:\x20'+this[_0x2224e3(0x20b)]['viewport']['width']+'x'+this['browserConfig']['viewport']['height']+'\x0aTIMEOUT:\x20'+this['browserConfig'][_0x2224e3(0x1ba)]+'ms\x20per\x20operation\x0a\x20\x20\x20\x20';}[a0_0x4530a1(0x220)](_0xbf63d5){const _0x4388f3=a0_0x4530a1;try{if(_0xbf63d5['trim']()[_0x4388f3(0x218)]('{')){const _0x5f4796=JSON['parse'](_0xbf63d5);return!_0x5f4796[_0x4388f3(0x213)]&&(_0x5f4796['actions']=[]),!Array['isArray'](_0x5f4796['actions'])&&(_0x5f4796[_0x4388f3(0x213)]=[_0x5f4796['actions']]),_0x5f4796;}const _0x1b9dff={},_0x14065a=[],_0x119d4c=['navigate',_0x4388f3(0x1e8),'type','wait',_0x4388f3(0x1f3),_0x4388f3(0x21e),_0x4388f3(0x1de),'close'];for(const _0x40bcf6 of _0x119d4c){const _0x512c40=new RegExp('<'+_0x40bcf6+'\x5cs+([^>]*?)\x5cs*\x5c/?>','gi');let _0x39002d;while((_0x39002d=_0x512c40['exec'](_0xbf63d5))!==null){const _0x45bea6=_0x39002d[0x1],_0xd04ecd=this[_0x4388f3(0x1c8)](_0x45bea6),_0x506b84={'type':_0x40bcf6,..._0xd04ecd};_0x506b84[_0x4388f3(0x21a)]&&(_0x506b84['outputPath']=_0x506b84['output-path'],delete _0x506b84[_0x4388f3(0x21a)]),_0x506b84['wait-time']&&(_0x506b84[_0x4388f3(0x1be)]=parseInt(_0x506b84[_0x4388f3(0x210)],0xa),delete _0x506b84[_0x4388f3(0x210)]),_0x506b84['wait-selector']&&(_0x506b84[_0x4388f3(0x228)]=_0x506b84[_0x4388f3(0x1fe)],delete _0x506b84['wait-selector']),_0x506b84[_0x4388f3(0x1eb)]&&(_0x506b84[_0x4388f3(0x215)]=_0x506b84[_0x4388f3(0x1eb)],delete _0x506b84['wait-type']),_0x506b84['full-page']&&(_0x506b84[_0x4388f3(0x224)]=_0x506b84[_0x4388f3(0x1e0)]==='true',delete _0x506b84[_0x4388f3(0x1e0)]),_0x14065a['push'](_0x506b84);}}return _0x1b9dff['actions']=Array['isArray'](_0x14065a)?_0x14065a:[],_0x1b9dff[_0x4388f3(0x22b)]=_0xbf63d5[_0x4388f3(0x209)](),_0x1b9dff;}catch(_0x11197c){return this[_0x4388f3(0x1bb)]?.[_0x4388f3(0x1f7)]('Failed\x20to\x20parse\x20browser\x20parameters',{'error':_0x11197c[_0x4388f3(0x1ed)]}),{'actions':[],'rawContent':_0xbf63d5['trim'](),'parseError':_0x11197c['message']};}}['parseAttributes'](_0x42002e){const _0xeddbc2={};if(!_0x42002e)return _0xeddbc2;const _0x370df4=/([\w-]+)\s*=\s*["']([^"']*)["']/g;let _0x1b1951;while((_0x1b1951=_0x370df4['exec'](_0x42002e))!==null){const _0x4e2f57=_0x1b1951[0x1],_0x4522ba=_0x1b1951[0x2];_0xeddbc2[_0x4e2f57]=_0x4522ba;}return _0xeddbc2;}[a0_0x4530a1(0x20e)](){return['actions'];}[a0_0x4530a1(0x1ea)](_0x3601b2){const _0x2ed5b7=a0_0x4530a1,_0xeaaaee=[];if(!_0x3601b2[_0x2ed5b7(0x213)]||!Array[_0x2ed5b7(0x229)](_0x3601b2['actions'])||_0x3601b2[_0x2ed5b7(0x213)][_0x2ed5b7(0x1d2)]===0x0)_0xeaaaee[_0x2ed5b7(0x1f2)](_0x2ed5b7(0x21b));else for(const [_0x5dc15a,_0x3c2f0f]of _0x3601b2[_0x2ed5b7(0x213)][_0x2ed5b7(0x1b6)]()){if(!_0x3c2f0f['type']){_0xeaaaee['push']('Action\x20'+(_0x5dc15a+0x1)+':\x20type\x20is\x20required');continue;}switch(_0x3c2f0f[_0x2ed5b7(0x1e2)]){case _0x2ed5b7(0x223):if(!_0x3c2f0f['url'])_0xeaaaee['push']('Action\x20'+(_0x5dc15a+0x1)+_0x2ed5b7(0x21f));else!this[_0x2ed5b7(0x1d4)](_0x3c2f0f['url'])&&_0xeaaaee[_0x2ed5b7(0x1f2)]('Action\x20'+(_0x5dc15a+0x1)+_0x2ed5b7(0x206)+_0x3c2f0f['url']);break;case'click':case'extract':!_0x3c2f0f['selector']&&_0xeaaaee['push'](_0x2ed5b7(0x212)+(_0x5dc15a+0x1)+':\x20selector\x20is\x20required\x20for\x20'+_0x3c2f0f[_0x2ed5b7(0x1e2)]);break;case'type':!_0x3c2f0f[_0x2ed5b7(0x1f0)]&&_0xeaaaee['push']('Action\x20'+(_0x5dc15a+0x1)+_0x2ed5b7(0x1bd));!_0x3c2f0f['text']&&_0x3c2f0f['text']!==''&&_0xeaaaee['push'](_0x2ed5b7(0x212)+(_0x5dc15a+0x1)+_0x2ed5b7(0x1b5));break;case'wait':!_0x3c2f0f['waitTime']&&!_0x3c2f0f['waitSelector']&&_0xeaaaee[_0x2ed5b7(0x1f2)]('Action\x20'+(_0x5dc15a+0x1)+_0x2ed5b7(0x1da));_0x3c2f0f[_0x2ed5b7(0x1be)]&&(_0x3c2f0f[_0x2ed5b7(0x1be)]<0x64||_0x3c2f0f['waitTime']>0x7530)&&_0xeaaaee[_0x2ed5b7(0x1f2)]('Action\x20'+(_0x5dc15a+0x1)+':\x20wait-time\x20must\x20be\x20between\x20100\x20and\x2030000\x20milliseconds');break;case _0x2ed5b7(0x1f3):!_0x3c2f0f[_0x2ed5b7(0x1ee)]&&_0xeaaaee[_0x2ed5b7(0x1f2)](_0x2ed5b7(0x212)+(_0x5dc15a+0x1)+':\x20output-path\x20is\x20required\x20for\x20screenshot');break;case _0x2ed5b7(0x1de):if(!_0x3c2f0f[_0x2ed5b7(0x20a)])_0xeaaaee['push']('Action\x20'+(_0x5dc15a+0x1)+_0x2ed5b7(0x1df));else!['up','down','left','right'][_0x2ed5b7(0x1e4)](_0x3c2f0f['direction'])&&_0xeaaaee[_0x2ed5b7(0x1f2)](_0x2ed5b7(0x212)+(_0x5dc15a+0x1)+_0x2ed5b7(0x22d)+_0x3c2f0f[_0x2ed5b7(0x20a)]);break;case'close':break;default:_0xeaaaee[_0x2ed5b7(0x1f2)](_0x2ed5b7(0x212)+(_0x5dc15a+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x3c2f0f[_0x2ed5b7(0x1e2)]);}}return{'valid':_0xeaaaee[_0x2ed5b7(0x1d2)]===0x0,'errors':_0xeaaaee};}async[a0_0x4530a1(0x20c)](_0x1ce189,_0x2b6169){const _0x4b9f14=a0_0x4530a1,{actions:_0x4d9819}=_0x1ce189,{agentId:_0x5da3c2,projectDir:_0x3e4252}=_0x2b6169,_0x1758a0=_0x5da3c2+'-'+(_0x3e4252||'default'),_0x44410a=[];for(const _0x47c0e8 of _0x4d9819){try{let _0x205b38;switch(_0x47c0e8[_0x4b9f14(0x1e2)]){case _0x4b9f14(0x223):_0x205b38=await this[_0x4b9f14(0x223)](_0x47c0e8[_0x4b9f14(0x1ec)],_0x1758a0);break;case'click':_0x205b38=await this[_0x4b9f14(0x1e8)](_0x47c0e8['selector'],_0x1758a0);break;case'type':_0x205b38=await this['type'](_0x47c0e8[_0x4b9f14(0x1f0)],_0x47c0e8[_0x4b9f14(0x22e)],_0x1758a0);break;case'wait':_0x205b38=await this['wait'](_0x47c0e8,_0x1758a0);break;case'screenshot':_0x205b38=await this[_0x4b9f14(0x1f3)](_0x47c0e8['outputPath'],_0x3e4252,_0x1758a0,_0x47c0e8);break;case'extract':_0x205b38=await this[_0x4b9f14(0x21e)](_0x47c0e8[_0x4b9f14(0x1f0)],_0x47c0e8['attribute']||'text',_0x1758a0);break;case _0x4b9f14(0x1de):_0x205b38=await this['scroll'](_0x47c0e8,_0x1758a0);break;case _0x4b9f14(0x207):_0x205b38=await this['closeBrowser'](_0x1758a0);break;default:throw new Error('Unknown\x20action\x20type:\x20'+_0x47c0e8[_0x4b9f14(0x1e2)]);}_0x44410a[_0x4b9f14(0x1f2)](_0x205b38),this[_0x4b9f14(0x202)](_0x47c0e8,_0x205b38,_0x5da3c2);}catch(_0x20a873){const _0x36c3ff={'success':![],'action':_0x47c0e8[_0x4b9f14(0x1e2)],'error':_0x20a873[_0x4b9f14(0x1ed)],'selector':_0x47c0e8['selector']||_0x47c0e8[_0x4b9f14(0x1ec)]};_0x44410a[_0x4b9f14(0x1f2)](_0x36c3ff),this[_0x4b9f14(0x202)](_0x47c0e8,_0x36c3ff,_0x5da3c2);}}return{'success':!![],'actions':_0x44410a,'executedActions':_0x4d9819[_0x4b9f14(0x1d2)],'toolUsed':'browser'};}async[a0_0x4530a1(0x223)](_0x5d1d48,_0x1948f8){const _0x2961fd=a0_0x4530a1,_0x332a3a=await this[_0x2961fd(0x205)](_0x1948f8),_0x125d6d=await this['getPage'](_0x1948f8),_0x3880f8=Date[_0x2961fd(0x1cf)]();try{await _0x125d6d['goto'](_0x5d1d48,{'waitUntil':'networkidle0','timeout':this['browserConfig'][_0x2961fd(0x1ba)]});const _0x4477da=await _0x125d6d['title'](),_0x390f0d=_0x125d6d['url']();return{'success':!![],'action':'navigate','url':_0x390f0d,'originalUrl':_0x5d1d48,'title':_0x4477da,'loadTime':Date['now']()-_0x3880f8,'message':_0x2961fd(0x1d7)+_0x5d1d48};}catch(_0x327995){throw new Error(_0x2961fd(0x1e7)+_0x327995['message']);}}async['click'](_0x4f6de8,_0x5375ae){const _0x2d3478=a0_0x4530a1,_0x1c7460=await this['getPage'](_0x5375ae);try{return await _0x1c7460[_0x2d3478(0x1b9)](_0x4f6de8,{'timeout':0x1388}),await _0x1c7460['click'](_0x4f6de8),{'success':!![],'action':'click','selector':_0x4f6de8,'message':'Clicked\x20on\x20'+_0x4f6de8};}catch(_0x42c911){throw new Error(_0x2d3478(0x1d5)+_0x4f6de8+':\x20'+_0x42c911[_0x2d3478(0x1ed)]);}}async[a0_0x4530a1(0x1e2)](_0x319480,_0x306b31,_0x15eebb){const _0x5c1bf1=a0_0x4530a1,_0x305451=await this['getPage'](_0x15eebb);try{return await _0x305451[_0x5c1bf1(0x1b9)](_0x319480,{'timeout':0x1388}),await _0x305451[_0x5c1bf1(0x204)](_0x319480),await _0x305451['keyboard']['selectAll'](),await _0x305451[_0x5c1bf1(0x1e2)](_0x319480,_0x306b31),{'success':!![],'action':'type','selector':_0x319480,'text':_0x306b31,'textLength':_0x306b31[_0x5c1bf1(0x1d2)],'message':_0x5c1bf1(0x1fa)+_0x306b31[_0x5c1bf1(0x1d2)]+'\x20characters\x20into\x20'+_0x319480};}catch(_0xb28c9a){throw new Error(_0x5c1bf1(0x1c1)+_0x319480+':\x20'+_0xb28c9a['message']);}}async[a0_0x4530a1(0x20f)](_0x1235bd,_0x1af8ec){const _0x1ad76c=a0_0x4530a1,_0x1c733c=await this[_0x1ad76c(0x1fc)](_0x1af8ec);try{if(_0x1235bd[_0x1ad76c(0x1be)])return await new Promise(_0xcff0cf=>setTimeout(_0xcff0cf,_0x1235bd['waitTime'])),{'success':!![],'action':_0x1ad76c(0x20f),'waitTime':_0x1235bd[_0x1ad76c(0x1be)],'message':_0x1ad76c(0x1b3)+_0x1235bd['waitTime']+'ms'};if(_0x1235bd['waitSelector']){const _0x3ecf2c=_0x1235bd[_0x1ad76c(0x215)]||_0x1ad76c(0x1c6),_0x396aa8={'timeout':0x2710};return _0x3ecf2c==='hidden'?await _0x1c733c['waitForSelector'](_0x1235bd['waitSelector'],{..._0x396aa8,'hidden':!![]}):await _0x1c733c['waitForSelector'](_0x1235bd[_0x1ad76c(0x228)],_0x396aa8),{'success':!![],'action':_0x1ad76c(0x20f),'waitSelector':_0x1235bd[_0x1ad76c(0x228)],'waitType':_0x3ecf2c,'message':_0x1ad76c(0x217)+_0x1235bd['waitSelector']+_0x1ad76c(0x200)+_0x3ecf2c};}}catch(_0x5ca2b2){throw new Error('Wait\x20failed:\x20'+_0x5ca2b2[_0x1ad76c(0x1ed)]);}}async[a0_0x4530a1(0x1f3)](_0x2c5f13,_0x167fcd,_0x3b0102,_0x505c2f={}){const _0x1fdb07=a0_0x4530a1,_0x58b73d=await this[_0x1fdb07(0x1fc)](_0x3b0102);try{const _0x1c008a=_0x167fcd?a0_0xf8c69d[_0x1fdb07(0x1cc)](_0x167fcd,_0x2c5f13):a0_0xf8c69d['resolve'](_0x2c5f13),_0x26d7e2=a0_0xf8c69d[_0x1fdb07(0x203)](_0x1c008a);await a0_0x59c952[_0x1fdb07(0x22c)](_0x26d7e2,{'recursive':!![]});const _0x9d73ee={'path':_0x1c008a,'type':_0x1fdb07(0x21c)};_0x505c2f['fullPage']&&(_0x9d73ee['fullPage']=!![]);await _0x58b73d[_0x1fdb07(0x1f3)](_0x9d73ee);const _0x1969e4=await a0_0x59c952['stat'](_0x1c008a);if(_0x1969e4[_0x1fdb07(0x1d9)]>this['maxScreenshotSize'])throw new Error(_0x1fdb07(0x1f1)+_0x1969e4['size']+'\x20bytes\x20(max\x20'+this[_0x1fdb07(0x1d3)]+')');return{'success':!![],'action':_0x1fdb07(0x1f3),'outputPath':a0_0xf8c69d['relative'](_0x167fcd||process['cwd'](),_0x1c008a),'size':_0x1969e4['size'],'fullPage':!!_0x505c2f[_0x1fdb07(0x224)],'message':_0x1fdb07(0x1bc)+_0x2c5f13};}catch(_0x167d2a){throw new Error('Screenshot\x20failed:\x20'+_0x167d2a['message']);}}async['extract'](_0x2fba77,_0x30887b,_0x29bf49){const _0x340f87=a0_0x4530a1,_0x180062=await this[_0x340f87(0x1fc)](_0x29bf49);try{await _0x180062['waitForSelector'](_0x2fba77,{'timeout':0x1388});let _0x3936ac;return _0x30887b===_0x340f87(0x22e)?_0x3936ac=await _0x180062['$eval'](_0x2fba77,_0x584050=>_0x584050[_0x340f87(0x22a)][_0x340f87(0x209)]()):_0x3936ac=await _0x180062[_0x340f87(0x1fb)](_0x2fba77,(_0x48267e,_0x97cf93)=>_0x48267e['getAttribute'](_0x97cf93),_0x30887b),{'success':!![],'action':'extract','selector':_0x2fba77,'attribute':_0x30887b,'data':_0x3936ac,'message':'Extracted\x20'+_0x30887b+'\x20from\x20'+_0x2fba77};}catch(_0x3dc31c){throw new Error(_0x340f87(0x1fd)+_0x2fba77+':\x20'+_0x3dc31c[_0x340f87(0x1ed)]);}}async['scroll'](_0x4d3cec,_0x160698){const _0x2a1fae=a0_0x4530a1,_0x2d4913=await this['getPage'](_0x160698);try{const {direction:_0x442eec,pixels:pixels=0x12c,selector:_0x4978dc}=_0x4d3cec;return _0x4978dc?await _0x2d4913['evaluate']((_0x1c83d6,_0x55b3b8,_0x55bf2f)=>{const _0x23b060=a0_0x3f59,_0x307489=document[_0x23b060(0x20d)](_0x1c83d6);if(_0x307489){if(_0x55b3b8==='down')_0x307489[_0x23b060(0x22f)]+=_0x55bf2f;else{if(_0x55b3b8==='up')_0x307489[_0x23b060(0x22f)]-=_0x55bf2f;else{if(_0x55b3b8===_0x23b060(0x1dd))_0x307489[_0x23b060(0x1e9)]+=_0x55bf2f;else{if(_0x55b3b8==='left')_0x307489['scrollLeft']-=_0x55bf2f;}}}}},_0x4978dc,_0x442eec,pixels):await _0x2d4913[_0x2a1fae(0x1d8)]((_0x3dd2b9,_0x50937c)=>{const _0x4ed6e6=_0x2a1fae;if(_0x3dd2b9===_0x4ed6e6(0x1d0))window[_0x4ed6e6(0x1d6)](0x0,_0x50937c);else{if(_0x3dd2b9==='up')window[_0x4ed6e6(0x1d6)](0x0,-_0x50937c);else{if(_0x3dd2b9==='right')window['scrollBy'](_0x50937c,0x0);else{if(_0x3dd2b9===_0x4ed6e6(0x1ef))window[_0x4ed6e6(0x1d6)](-_0x50937c,0x0);}}}},_0x442eec,pixels),{'success':!![],'action':'scroll','direction':_0x442eec,'pixels':pixels,'selector':_0x4978dc||_0x2a1fae(0x1c2),'message':'Scrolled\x20'+_0x442eec+'\x20by\x20'+pixels+'px'};}catch(_0x597f8d){throw new Error('Scroll\x20failed:\x20'+_0x597f8d['message']);}}async[a0_0x4530a1(0x205)](_0x6ad1d8){const _0x34d581=a0_0x4530a1;if(this['browserInstances'][_0x34d581(0x1b7)](_0x6ad1d8)){const _0x429695=this[_0x34d581(0x1c5)]['get'](_0x6ad1d8);if(!_0x429695[_0x34d581(0x1ca)]['isConnected']())this['browserInstances']['delete'](_0x6ad1d8);else return _0x429695[_0x34d581(0x1ca)];}const _0x4685f3=await a0_0x17499c[_0x34d581(0x1f9)]({'headless':this['browserConfig'][_0x34d581(0x1ce)],'args':['--no-sandbox','--disable-setuid-sandbox','--disable-dev-shm-usage',_0x34d581(0x1e1)]}),_0x23e43a=await _0x4685f3['newPage']();return await _0x23e43a['setViewport'](this['browserConfig']['viewport']),await _0x23e43a['setUserAgent'](this['browserConfig']['userAgent']),this[_0x34d581(0x1c5)]['set'](_0x6ad1d8,{'browser':_0x4685f3,'page':_0x23e43a,'created':Date['now']()}),setTimeout(()=>{const _0x348022=_0x34d581;this[_0x348022(0x1b8)](_0x6ad1d8);},0xa*0x3c*0x3e8),_0x4685f3;}async[a0_0x4530a1(0x1fc)](_0x20d9ee){const _0x54620a=a0_0x4530a1;return await this['getBrowser'](_0x20d9ee),this['browserInstances']['get'](_0x20d9ee)[_0x54620a(0x1c2)];}async['closeBrowser'](_0x3f96ad){const _0x9a4a76=a0_0x4530a1,_0x4914b4=this['browserInstances'][_0x9a4a76(0x1d1)](_0x3f96ad);if(_0x4914b4)try{return await _0x4914b4[_0x9a4a76(0x1ca)][_0x9a4a76(0x207)](),this[_0x9a4a76(0x1c5)]['delete'](_0x3f96ad),{'success':!![],'action':'close','browserKey':_0x3f96ad,'message':'Browser\x20instance\x20closed'};}catch(_0x2e706b){throw new Error(_0x9a4a76(0x208)+_0x2e706b[_0x9a4a76(0x1ed)]);}return{'success':!![],'action':_0x9a4a76(0x207),'browserKey':_0x3f96ad,'message':'Browser\x20instance\x20not\x20found\x20(already\x20closed)'};}async['cleanupBrowser'](_0x1a503e){const _0x28bc43=a0_0x4530a1,_0x425290=this['browserInstances']['get'](_0x1a503e);if(_0x425290)try{await _0x425290['browser']['close']();}catch(_0x2aa6fd){}finally{this['browserInstances'][_0x28bc43(0x1dc)](_0x1a503e);}}[a0_0x4530a1(0x1d4)](_0x3bcf15){const _0x2566b7=a0_0x4530a1;try{const _0x5de3cd=new URL(_0x3bcf15),_0x514207=_0x5de3cd[_0x2566b7(0x221)]['toLowerCase']();if(this['blockedDomains']['some'](_0x36c34c=>_0x514207['includes'](_0x36c34c['toLowerCase']())))return![];if(this['allowedDomains']&&this[_0x2566b7(0x1f5)][_0x2566b7(0x1d2)]>0x0)return this[_0x2566b7(0x1f5)][_0x2566b7(0x1c4)](_0x5acb25=>_0x514207[_0x2566b7(0x1e4)](_0x5acb25['toLowerCase']()));return!![];}catch{return![];}}[a0_0x4530a1(0x202)](_0x3505fc,_0x580f20,_0x22a4bb){const _0xb78894=a0_0x4530a1,_0x489b3a={'timestamp':new Date()['toISOString'](),'agentId':_0x22a4bb,'action':_0x3505fc[_0xb78894(0x1e2)],'selector':_0x3505fc[_0xb78894(0x1f0)]||_0x3505fc['url'],'success':_0x580f20['success'],'loadTime':_0x580f20['loadTime']||0x0};this[_0xb78894(0x1c0)]['push'](_0x489b3a),this['operationHistory'][_0xb78894(0x1d2)]>0x64&&(this['operationHistory']=this[_0xb78894(0x1c0)][_0xb78894(0x1db)](-0x64));}['getSupportedActions'](){const _0x28d592=a0_0x4530a1;return[_0x28d592(0x223),_0x28d592(0x1e8),'type','wait',_0x28d592(0x1f3),_0x28d592(0x21e),'scroll',_0x28d592(0x207)];}[a0_0x4530a1(0x216)](){const _0x246989=a0_0x4530a1;return{'type':'object','properties':{'actions':{'type':_0x246989(0x225),'minItems':0x1,'items':{'type':'object','properties':{'type':{'type':_0x246989(0x1cb),'enum':this['getSupportedActions']()},'url':{'type':_0x246989(0x1cb)},'selector':{'type':_0x246989(0x1cb)},'text':{'type':_0x246989(0x1cb)},'outputPath':{'type':'string'},'waitTime':{'type':_0x246989(0x219)},'waitSelector':{'type':_0x246989(0x1cb)},'attribute':{'type':'string'},'direction':{'type':_0x246989(0x1cb)},'pixels':{'type':'integer'}},'required':[_0x246989(0x1e2)]}}},'required':[_0x246989(0x213)]};}async[a0_0x4530a1(0x1e3)](_0x4bd6e7){const _0x38884e=a0_0x4530a1;for(const [_0x3b7299]of this[_0x38884e(0x1c5)]){await this[_0x38884e(0x1b8)](_0x3b7299);}}[a0_0x4530a1(0x211)](_0xbd8ea6=null){if(_0xbd8ea6)return this['operationHistory']['filter'](_0x28a98e=>_0x28a98e['agentId']===_0xbd8ea6);return[...this['operationHistory']];}}export default BrowserTool;
|
|
1
|
+
function a0_0x56e8(){const _0x3f7e1f=['D2fPDfr5Cgu','u2nYB2XSigzHAwXLzdOG','Dgv4Da','oIb1CMWGAxmGCMvXDwLYzwqGzM9Yig5HDMLNyxrL','BgvMDa','yNjVD3nLCKLUC3rHBMnLCW','D2fPDc1ZzwXLy3rVCG','mJqZntaZnwvHC1jgrG','qNjVD3nLCIbPBNn0yw5JzsbJBg9Zzwq','mtmWzwzosgXm','D2fPDc10ExbL','tMf2AwDHDgLVBIbMywLSzwq6ia','tw96AwXSys81lJaGkfDPBMrVD3mGtLqGmtaUmdSGv2LUnJq7ihG2ncKGqxbWBgvxzwjlAxqVntm3lJm2','z2v0ugfYyw1LDgvYu2nOzw1H','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','BMv3ugfNzq','AgvPz2H0','ywXSB3DLzerVBwfPBNm','AgvHzgXLC3m','C2nYB2XS','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','Bgf1BMnO','Bwf4u2nYzwvUC2HVDfnPEMu','ywrKvg9iAxn0B3j5','BgvUz3rO','rxH0CMfJDcbMywLSzwqGB24G','mtm5mZq3AeX2r3fR','mJa1otuXmLzmr1rrDG','AgLKzgvU','CMLNAhq','y2XVC2u','D2fPDfnLBgvJDg9Y','C2v0vxnLCKfNzw50','ndeZmZzYDvrbyKC','vw5RBM93BIbHy3rPB24GDhLWztOG','BMv0D29YA2LKBguW','z2v0ugfNzq','Dhj1zq','D2fPDc10Aw1L','BMf2AwDHDgu','zxHLyW','oIb0ExbLigLZihjLCxvPCMvK','cLrjtuvpvvq6ia','z2v0t3bLCMf0Aw9UsgLZDg9YEq','v2fPDgvKia','CgfNzq','yNjVD3nLCKnVBMzPzW','zgLYBMfTzq','z2v0','AxnbCNjHEq','C2L6zq','mJuYnZy0C0jesKf3','Bg9HzfrPBwu','q2XPy2TLzcbVBIa','zw50CMLLCW','B3v0Chv0lxbHDgG','Aw5JBhvKzxm','Aw50zwDLCG','C2vSzwn0B3i','BxmGCgvYig9WzxjHDgLVBGOGicaG','ls1KAxnHyMXLlxnLDhvPzc1Zyw5KyM94','v2fPDcbMywLSzwq6ia','AxndB25Uzwn0zwq','y2XPy2S','jgv2ywW','cKjYB3DZzxiGvg9VBdOGqxv0B21HDguGD2vIigjYB3DZzxiGAw50zxjHy3rPB25ZlcbUyxzPz2f0Aw9UlcbHBMqGzgf0ysbLEhrYywn0Aw9UlGOkvvnbr0u6cMbGygPZB24kEWOGicj0B29SswqIoIaIyNjVD3nLCIiScIaGiMfJDgLVBNmIoIbBcIaGicb7iNr5CguIoIaIBMf2AwDHDguIlcaIDxjSiJOGiMH0DhbZoI8VzxHHBxbSzs5JB20IFsWkicaGihSIDhLWzsi6icj3ywL0iIWGiNDHAxruAw1LiJOGmJaWmh0ScIaGicb7iNr5CguIoIaIy2XPy2SIlcaIC2vSzwn0B3iIoIaIyNv0Dg9UlNn1yM1PDcj9laOGicaGEYj0ExbLiJOGiNnJCMvLBNnOB3qIlcaIB3v0Chv0ugf0Aci6icjZy3jLzw5ZAg90lNbUzYj9cIaGxqP9cMbGyaOku1vque9sveveiefdveLptLm6cI0GBMf2AwDHDgu6ie5HDMLNyxrLihrVifvstcaODxjSkqOTignSAwnRoIbdBgLJAYbLBgvTzw50icHZzwXLy3rVCIKklsb0ExbLoIbuExbLihrLEhqGkhnLBgvJDg9Ylcb0zxH0kqOTihDHAxq6ifDHAxqGzM9YigvSzw1LBNqVDgLTzsaOD2fPDfrPBwuGB3iGD2fPDfnLBgvJDg9YkqOTihnJCMvLBNnOB3q6ifrHA2uGC2nYzwvUC2HVDcaOB3v0Chv0ugf0AcWGzNvSBfbHz2uPcI0GzxH0CMfJDdOGrxH0CMfJDcbKyxrHicHZzwXLy3rVCIWGyxr0CMLIDxrLkqOTihnJCM9SBdOGu2nYB2XSihbHz2uGkgrPCMvJDgLVBIWGCgL4zwXZkqOTignSB3nLoIbdBg9ZzsbICM93C2vYcGPqqvjbtuvurvjtoGOTihvYBdOGvgfYz2v0ifvstcbMB3iGBMf2AwDHDgLVBGOTihnLBgvJDg9YoIbdu1mGC2vSzwn0B3iGkguUzY4SiciJAwqIlcaIlMnSyxnZiIWGiMj1DhrVBLT0ExbLpsDZDwjTAxqNxsiPcI0GDgv4DdOGvgv4Dcb0BYb0ExbLcI0GB3v0Chv0ugf0AdOGu2nYzwvUC2HVDcbMAwXLihbHDgGklsb3ywL0vgLTztOGv2fPDcbPBIbTAwXSAxnLy29UzhmGkdeWmc0ZmdaWmcKklsb3ywL0u2vSzwn0B3i6ievSzw1LBNqGC2vSzwn0B3iGDg8GD2fPDcbMB3iklsbHDhrYAwj1Dgu6ieHutuWGyxr0CMLIDxrLihrVigv4DhjHy3qGkgrLzMf1Bhq6icj0zxH0iIKklsbKAxjLy3rPB246icj1CciSicjKB3DUiIWGiMXLzNqIlcaICMLNAhqIcI0GCgL4zwXZoIbty3jVBgWGzgLZDgfUy2uGkgrLzMf1Bhq6idmWmcKklsbMDwXSugfNztOGrNvSBcbWywDLihnJCMvLBNnOB3qGkhrYDwuVzMfSC2uPcGPfwefnueXfuZOkcLnJCMvLBNnOB3qGysbWywDLoGPGygbQC29UcNSkicaIDg9VBeLKiJOGiMjYB3DZzxiIlaOGicjHy3rPB25ZiJOGwWOGicaGEYj0ExbLiJOGiM5HDMLNyxrLiIWGiNvYBci6icjODhrWCZOVl2DPDgH1yI5JB20VDhjLBMrPBMCIFsWkicaGihSIDhLWzsi6icj3ywL0iIWGiNDHAxruAw1LiJOGmJaWmh0ScIaGicb7iNr5CguIoIaIC2nYzwvUC2HVDciSicjVDxrWDxrqyxrOiJOGiNrYzw5KAw5NlNbUzYj9laOGicaGEYj0ExbLiJOGiMnSB3nLiN0kicbDcN0kygbGcGPgB3jTigf1Dg9TyxrPB246cMbGygPZB24kEWOGicj0B29SswqIoIaIyNjVD3nLCIiScIaGiMfJDgLVBNmIoIbBcIaGicb7iNr5CguIoIaIBMf2AwDHDguIlcaIDxjSiJOGiMH0DhbZoI8VzxHHBxbSzs5JB20VBg9NAw4IFsWkicaGihSIDhLWzsi6icj3ywL0iIWGiNDHAxrtzwXLy3rVCIi6icjPBNb1Dcn1C2vYBMfTzsj9laOGicaGEYj0ExbLiJOGiNr5CguIlcaIC2vSzwn0B3iIoIaIAw5WDxqJDxnLCM5HBwuIlcaIDgv4Dci6icjTExvZzxiIFsWkicaGihSIDhLWzsi6icj0ExbLiIWGiNnLBgvJDg9YiJOGiMLUChv0i3bHC3n3B3jKiIWGiNrLEhqIoIaIBxLWyxnZiN0ScIaGicb7iNr5CguIoIaIy2XPy2SIlcaIC2vSzwn0B3iIoIaIyNv0Dg9Uw3r5Cgu9j3n1yM1PDcDDiN0ScIaGicb7iNr5CguIoIaIy2XVC2uIFqOGif0kFqPGygakcLnfq1vssvrzoGOTifjLC3rYAwn0zwqGDg8GywXSB3DLzcbKB21HAw5ZcI0Gu2nYzwvUC2HVDcbZAxPLigXPBwL0CYaOBwf4idvnqIKklsbbDxrVlwnSzwfUDxaGywz0zxiGmtaGBwLUDxrLCWOkvKLfv1bpuLq6ia','D2LKDgG','v2fPDgvKigzVCIa','DMLZAwjSzq','DgLTzw91Da','ndu4mu5hEfbYqq','otKZnJzgD1v1Exq','D2fPDa','C3rHCNrZv2L0Aa','z290BW','DxjS','y2XLyw51Ca','zxH0CMfJDa','mJG3AxjtvuP2','zg93BG','oIbvuKWGBM90igfSBg93zwq6ia','CMf3q29UDgvUDa','zNvSBc1WywDL','AxnbC3LUyW','Cg5N','z2v0qNjVD3nLCG','oIb0zxH0igLZihjLCxvPCMvKigzVCIb0ExbL','BM93','A2v5yM9HCMq','AgfZ','B3bLCMf0Aw9UsgLZDg9YEq','igj5DgvZicHTyxGG','C2nYB2XSvg9W','C2nYzwvUC2HVDa','y2XLyw51CejYB3DZzxi','zNvSBfbHz2u','yNjVD3nLCG','oIbZzwXLy3rVCIbPCYbYzxf1AxjLzcbMB3iG','rMfPBgvKihrVignSB3nLigjYB3DZzxi6ia','zxzHBhvHDgu','D2fPDfrPBwu','C2nYB2XStgvMDa','zgvSzxrL','z2v0u3vWCg9YDgvKqwn0Aw9UCW','yxr0CMLIDxrL','mujvrLPtBG','ignOyxjHy3rLCNmGAw50BYa','DMLLD3bVCNq','C2nYB2XSqNK','z2v0qxr0CMLIDxrL','CMvZB2X2zq','ChvZAa','u2nYB2XSzwqG','yMXVy2TLzerVBwfPBNm','B3v0Chv0ugf0Aa','C2v0vMLLD3bVCNq','CMvSyxrPDMu','oIb3ywL0lxrPBwuGBxvZDcbIzsbIzxr3zwvUideWmcbHBMqGmZaWmdaGBwLSBgLZzwnVBMrZ','rxH0CMfJDgvKia','Dg9mB3DLCKnHC2u','C3rYAw5N','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','CgfYC2vbDhrYAwj1DgvZ','AxnbBgXVD2vKvxjS','qwn0Aw9Uia','D2fPDezVCLnLBgvJDg9Y','ihrVigjLia','DhjPBq','DhLWzq','CgfYC2vqyxjHBwv0zxjZ','oIbLAxrOzxiGD2fPDc10Aw1Lig9YihDHAxqTC2vSzwn0B3iGAxmGCMvXDwLYzwq','BwvZC2fNzq','ywn0Aw9UCW'];a0_0x56e8=function(){return _0x3f7e1f;};return a0_0x56e8();}const a0_0x256d1f=a0_0x3650;(function(_0x59eba3,_0x2d3146){const _0x567d4f=a0_0x3650,_0x17c365=_0x59eba3();while(!![]){try{const _0x5d35b2=parseInt(_0x567d4f(0x11e))/0x1*(parseInt(_0x567d4f(0x181))/0x2)+parseInt(_0x567d4f(0x154))/0x3+-parseInt(_0x567d4f(0x16d))/0x4+parseInt(_0x567d4f(0x141))/0x5+-parseInt(_0x567d4f(0x155))/0x6+-parseInt(_0x567d4f(0x188))/0x7*(-parseInt(_0x567d4f(0x15b))/0x8)+parseInt(_0x567d4f(0x180))/0x9*(parseInt(_0x567d4f(0x143))/0xa);if(_0x5d35b2===_0x2d3146)break;else _0x17c365['push'](_0x17c365['shift']());}catch(_0x5307f0){_0x17c365['push'](_0x17c365['shift']());}}}(a0_0x56e8,0x60798));import{BaseTool}from'./baseTool.js';import a0_0x437ab0 from'../utilities/tagParser.js';import a0_0x13a424 from'puppeteer';import a0_0x220684 from'fs/promises';import a0_0x4ac18c from'path';function a0_0x3650(_0x2fdd30,_0x30c6a8){_0x2fdd30=_0x2fdd30-0x11e;const _0x56e834=a0_0x56e8();let _0x365014=_0x56e834[_0x2fdd30];if(a0_0x3650['kzbRvB']===undefined){var _0x1d2370=function(_0x390415){const _0xf26f4b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x437ab0='',_0x13a424='';for(let _0x220684=0x0,_0x4ac18c,_0x2adb34,_0x419334=0x0;_0x2adb34=_0x390415['charAt'](_0x419334++);~_0x2adb34&&(_0x4ac18c=_0x220684%0x4?_0x4ac18c*0x40+_0x2adb34:_0x2adb34,_0x220684++%0x4)?_0x437ab0+=String['fromCharCode'](0xff&_0x4ac18c>>(-0x2*_0x220684&0x6)):0x0){_0x2adb34=_0xf26f4b['indexOf'](_0x2adb34);}for(let _0x7980c=0x0,_0x45ef52=_0x437ab0['length'];_0x7980c<_0x45ef52;_0x7980c++){_0x13a424+='%'+('00'+_0x437ab0['charCodeAt'](_0x7980c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x13a424);};a0_0x3650['qyjCeI']=_0x1d2370,a0_0x3650['YudXoL']={},a0_0x3650['kzbRvB']=!![];}const _0x4fc358=_0x56e834[0x0],_0x5eab1f=_0x2fdd30+_0x4fc358,_0x459d87=a0_0x3650['YudXoL'][_0x5eab1f];return!_0x459d87?(_0x365014=a0_0x3650['qyjCeI'](_0x365014),a0_0x3650['YudXoL'][_0x5eab1f]=_0x365014):_0x365014=_0x459d87,_0x365014;}import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BrowserTool extends BaseTool{constructor(_0x2adb34={},_0x419334=null){const _0x254965=a0_0x3650;super(_0x2adb34,_0x419334),this['requiresProject']=![],this[_0x254965(0x18d)]=!![],this['timeout']=_0x2adb34[_0x254965(0x17f)]||0xea60,this['maxConcurrentOperations']=_0x2adb34[_0x254965(0x12e)]||0x2,this['browserConfig']={'headless':_0x2adb34[_0x254965(0x14c)]!==![],'viewport':_0x2adb34[_0x254965(0x120)]||{'width':0x500,'height':0x2d0},'userAgent':_0x2adb34['userAgent']||_0x254965(0x146),'timeout':_0x2adb34['pageTimeout']||0x7530},this['browserInstances']=new Map(),this['allowedDomains']=_0x2adb34[_0x254965(0x14b)]||null,this['blockedDomains']=_0x2adb34[_0x254965(0x126)]||[],this['maxScreenshotSize']=_0x2adb34[_0x254965(0x150)]||0x5*0x400*0x400,this[_0x254965(0x194)]=[];}['getDescription'](){const _0xdb6dc7=a0_0x3650;return _0xdb6dc7(0x17b)+this['browserConfig'][_0xdb6dc7(0x120)][_0xdb6dc7(0x17c)]+'x'+this[_0xdb6dc7(0x168)][_0xdb6dc7(0x120)][_0xdb6dc7(0x14a)]+_0xdb6dc7(0x164)+this[_0xdb6dc7(0x168)][_0xdb6dc7(0x17f)]+_0xdb6dc7(0x175);}[a0_0x256d1f(0x136)](_0x7980c){const _0x110dba=a0_0x256d1f;try{if(_0x7980c[_0x110dba(0x134)]()[_0x110dba(0x183)]('{')){const _0x2a1131=JSON['parse'](_0x7980c);return!_0x2a1131[_0x110dba(0x139)]&&(_0x2a1131[_0x110dba(0x139)]=[]),!Array[_0x110dba(0x16b)](_0x2a1131[_0x110dba(0x139)])&&(_0x2a1131['actions']=[_0x2a1131[_0x110dba(0x139)]]),_0x2a1131;}const _0x45ef52={},_0x444afe=[],_0xddfff0=['navigate',_0x110dba(0x179),'type',_0x110dba(0x182),_0x110dba(0x197),_0x110dba(0x187),_0x110dba(0x14d),'close'];for(const _0x3b8b09 of _0xddfff0){const _0x35c0c9=new RegExp('<'+_0x3b8b09+'\x5cs+([^>]*?)\x5cs*\x5c/?>','gi');let _0x147a8c;while((_0x147a8c=_0x35c0c9['exec'](_0x7980c))!==null){const _0x6fbabe=_0x147a8c[0x1],_0x398bdf=this[_0x110dba(0x12f)](_0x6fbabe),_0x5de9f9={'type':_0x3b8b09,..._0x398bdf};_0x5de9f9[_0x110dba(0x171)]&&(_0x5de9f9['outputPath']=_0x5de9f9['output-path'],delete _0x5de9f9[_0x110dba(0x171)]),_0x5de9f9[_0x110dba(0x160)]&&(_0x5de9f9['waitTime']=parseInt(_0x5de9f9['wait-time'],0xa),delete _0x5de9f9[_0x110dba(0x160)]),_0x5de9f9['wait-selector']&&(_0x5de9f9[_0x110dba(0x159)]=_0x5de9f9[_0x110dba(0x140)],delete _0x5de9f9['wait-selector']),_0x5de9f9[_0x110dba(0x144)]&&(_0x5de9f9[_0x110dba(0x13a)]=_0x5de9f9['wait-type'],delete _0x5de9f9[_0x110dba(0x144)]),_0x5de9f9[_0x110dba(0x18c)]&&(_0x5de9f9[_0x110dba(0x199)]=_0x5de9f9['full-page']===_0x110dba(0x15f),delete _0x5de9f9[_0x110dba(0x18c)]),_0x444afe[_0x110dba(0x124)](_0x5de9f9);}}return _0x45ef52[_0x110dba(0x139)]=Array[_0x110dba(0x16b)](_0x444afe)?_0x444afe:[],_0x45ef52[_0x110dba(0x18b)]=_0x7980c['trim'](),_0x45ef52;}catch(_0x382356){return this['logger']?.['error']('Failed\x20to\x20parse\x20browser\x20parameters',{'error':_0x382356['message']}),{'actions':[],'rawContent':_0x7980c['trim'](),'parseError':_0x382356[_0x110dba(0x138)]};}}['parseAttributes'](_0x367db6){const _0x50d0a6=a0_0x256d1f,_0x143e44={};if(!_0x367db6)return _0x143e44;const _0x37e255=/([\w-]+)\s*=\s*["']([^"']*)["']/g;let _0x58d1ee;while((_0x58d1ee=_0x37e255[_0x50d0a6(0x162)](_0x367db6))!==null){const _0x265959=_0x58d1ee[0x1],_0x222993=_0x58d1ee[0x2];_0x143e44[_0x265959]=_0x222993;}return _0x143e44;}[a0_0x256d1f(0x14e)](){const _0x33b037=a0_0x256d1f;return[_0x33b037(0x139)];}['customValidateParameters'](_0x296433){const _0x390b81=a0_0x256d1f,_0x372d07=[];if(!_0x296433['actions']||!Array[_0x390b81(0x16b)](_0x296433[_0x390b81(0x139)])||_0x296433[_0x390b81(0x139)]['length']===0x0)_0x372d07[_0x390b81(0x124)](_0x390b81(0x148));else for(const [_0xa4959e,_0x3a2b05]of _0x296433['actions'][_0x390b81(0x170)]()){if(!_0x3a2b05['type']){_0x372d07[_0x390b81(0x124)]('Action\x20'+(_0xa4959e+0x1)+_0x390b81(0x163));continue;}switch(_0x3a2b05['type']){case _0x390b81(0x161):if(!_0x3a2b05['url'])_0x372d07[_0x390b81(0x124)](_0x390b81(0x131)+(_0xa4959e+0x1)+_0x390b81(0x13d));else!this['isAllowedUrl'](_0x3a2b05['url'])&&_0x372d07['push']('Action\x20'+(_0xa4959e+0x1)+_0x390b81(0x18a)+_0x3a2b05['url']);break;case _0x390b81(0x179):case'extract':!_0x3a2b05['selector']&&_0x372d07[_0x390b81(0x124)](_0x390b81(0x131)+(_0xa4959e+0x1)+_0x390b81(0x19b)+_0x3a2b05[_0x390b81(0x135)]);break;case'type':!_0x3a2b05[_0x390b81(0x174)]&&_0x372d07[_0x390b81(0x124)](_0x390b81(0x131)+(_0xa4959e+0x1)+':\x20selector\x20is\x20required\x20for\x20type');!_0x3a2b05[_0x390b81(0x13c)]&&_0x3a2b05[_0x390b81(0x13c)]!==''&&_0x372d07[_0x390b81(0x124)](_0x390b81(0x131)+(_0xa4959e+0x1)+_0x390b81(0x190));break;case _0x390b81(0x182):!_0x3a2b05[_0x390b81(0x19e)]&&!_0x3a2b05['waitSelector']&&_0x372d07[_0x390b81(0x124)](_0x390b81(0x131)+(_0xa4959e+0x1)+_0x390b81(0x137));_0x3a2b05[_0x390b81(0x19e)]&&(_0x3a2b05['waitTime']<0x64||_0x3a2b05['waitTime']>0x7530)&&_0x372d07['push']('Action\x20'+(_0xa4959e+0x1)+_0x390b81(0x12a));break;case _0x390b81(0x197):!_0x3a2b05['outputPath']&&_0x372d07['push'](_0x390b81(0x131)+(_0xa4959e+0x1)+':\x20output-path\x20is\x20required\x20for\x20screenshot');break;case'scroll':if(!_0x3a2b05['direction'])_0x372d07['push']('Action\x20'+(_0xa4959e+0x1)+':\x20direction\x20is\x20required\x20for\x20scroll');else!['up',_0x390b81(0x189),_0x390b81(0x13e),_0x390b81(0x157)][_0x390b81(0x172)](_0x3a2b05['direction'])&&_0x372d07['push']('Action\x20'+(_0xa4959e+0x1)+':\x20invalid\x20scroll\x20direction:\x20'+_0x3a2b05['direction']);break;case _0x390b81(0x158):break;default:_0x372d07['push']('Action\x20'+(_0xa4959e+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x3a2b05[_0x390b81(0x135)]);}}return{'valid':_0x372d07['length']===0x0,'errors':_0x372d07};}async['execute'](_0x1d7a3c,_0x3d0ab2){const _0x475ae5=a0_0x256d1f,{actions:_0x31479e}=_0x1d7a3c,{agentId:_0x1c56bb,projectDir:_0x87615e}=_0x3d0ab2,_0x16e2f3=_0x1c56bb+'-'+(_0x87615e||'default'),_0x473340=[];for(const _0x66df82 of _0x31479e){try{let _0x1088f7;switch(_0x66df82['type']){case _0x475ae5(0x161):_0x1088f7=await this['navigate'](_0x66df82[_0x475ae5(0x185)],_0x16e2f3);break;case'click':_0x1088f7=await this['click'](_0x66df82[_0x475ae5(0x174)],_0x16e2f3);break;case'type':_0x1088f7=await this['type'](_0x66df82['selector'],_0x66df82[_0x475ae5(0x13c)],_0x16e2f3);break;case _0x475ae5(0x182):_0x1088f7=await this[_0x475ae5(0x182)](_0x66df82,_0x16e2f3);break;case'screenshot':_0x1088f7=await this['screenshot'](_0x66df82[_0x475ae5(0x127)],_0x87615e,_0x16e2f3,_0x66df82);break;case _0x475ae5(0x187):_0x1088f7=await this[_0x475ae5(0x187)](_0x66df82[_0x475ae5(0x174)],_0x66df82[_0x475ae5(0x1a2)]||'text',_0x16e2f3);break;case'scroll':_0x1088f7=await this[_0x475ae5(0x14d)](_0x66df82,_0x16e2f3);break;case'close':_0x1088f7=await this['closeBrowser'](_0x16e2f3);break;default:throw new Error(_0x475ae5(0x15c)+_0x66df82['type']);}_0x473340[_0x475ae5(0x124)](_0x1088f7),this[_0x475ae5(0x151)](_0x66df82,_0x1088f7,_0x1c56bb);}catch(_0x4da939){const _0xb99ba6={'success':![],'action':_0x66df82[_0x475ae5(0x135)],'error':_0x4da939[_0x475ae5(0x138)],'selector':_0x66df82[_0x475ae5(0x174)]||_0x66df82[_0x475ae5(0x185)]};_0x473340[_0x475ae5(0x124)](_0xb99ba6),this[_0x475ae5(0x151)](_0x66df82,_0xb99ba6,_0x1c56bb);}}return{'success':!![],'actions':_0x473340,'executedActions':_0x31479e['length'],'toolUsed':'browser'};}async['navigate'](_0xd1fa8,_0x80c351){const _0xfefe69=a0_0x256d1f,_0x5a99bd=await this[_0xfefe69(0x18f)](_0x80c351),_0x4a6ef7=await this['getPage'](_0x80c351),_0x14e62a=Date[_0xfefe69(0x191)]();try{await _0x4a6ef7[_0xfefe69(0x184)](_0xd1fa8,{'waitUntil':_0xfefe69(0x15d),'timeout':this['browserConfig'][_0xfefe69(0x17f)]});const _0x3f638b=await _0x4a6ef7['title'](),_0x350916=_0x4a6ef7['url']();return{'success':!![],'action':_0xfefe69(0x161),'url':_0x350916,'originalUrl':_0xd1fa8,'title':_0x3f638b,'loadTime':Date['now']()-_0x14e62a,'message':'Navigated\x20to\x20'+_0xd1fa8};}catch(_0x107f89){throw new Error(_0xfefe69(0x145)+_0x107f89[_0xfefe69(0x138)]);}}async['click'](_0x2056f0,_0x482bb2){const _0x1307ce=a0_0x256d1f,_0x33ee32=await this['getPage'](_0x482bb2);try{return await _0x33ee32[_0x1307ce(0x132)](_0x2056f0,{'timeout':0x1388}),await _0x33ee32[_0x1307ce(0x179)](_0x2056f0),{'success':!![],'action':_0x1307ce(0x179),'selector':_0x2056f0,'message':_0x1307ce(0x16f)+_0x2056f0};}catch(_0x530ffd){throw new Error('Click\x20failed\x20on\x20'+_0x2056f0+':\x20'+_0x530ffd['message']);}}async['type'](_0x1b1fac,_0x283b58,_0x3062a9){const _0x6a0664=a0_0x256d1f,_0x1bf002=await this[_0x6a0664(0x15e)](_0x3062a9);try{return await _0x1bf002[_0x6a0664(0x132)](_0x1b1fac,{'timeout':0x1388}),await _0x1bf002['focus'](_0x1b1fac),await _0x1bf002[_0x6a0664(0x192)]['selectAll'](),await _0x1bf002['type'](_0x1b1fac,_0x283b58),{'success':!![],'action':_0x6a0664(0x135),'selector':_0x1b1fac,'text':_0x283b58,'textLength':_0x283b58[_0x6a0664(0x152)],'message':'Typed\x20'+_0x283b58[_0x6a0664(0x152)]+_0x6a0664(0x11f)+_0x1b1fac};}catch(_0x13cd6b){throw new Error('Type\x20failed\x20on\x20'+_0x1b1fac+':\x20'+_0x13cd6b[_0x6a0664(0x138)]);}}async[a0_0x256d1f(0x182)](_0x334943,_0x469c05){const _0x309805=a0_0x256d1f,_0x453a06=await this['getPage'](_0x469c05);try{if(_0x334943[_0x309805(0x19e)])return await new Promise(_0x5eeee0=>setTimeout(_0x5eeee0,_0x334943['waitTime'])),{'success':!![],'action':'wait','waitTime':_0x334943['waitTime'],'message':_0x309805(0x166)+_0x334943[_0x309805(0x19e)]+'ms'};if(_0x334943['waitSelector']){const _0x1d0919=_0x334943['waitType']||_0x309805(0x17e),_0x4c09ce={'timeout':0x2710};return _0x1d0919===_0x309805(0x156)?await _0x453a06['waitForSelector'](_0x334943[_0x309805(0x159)],{..._0x4c09ce,'hidden':!![]}):await _0x453a06['waitForSelector'](_0x334943[_0x309805(0x159)],_0x4c09ce),{'success':!![],'action':_0x309805(0x182),'waitSelector':_0x334943['waitSelector'],'waitType':_0x1d0919,'message':_0x309805(0x17d)+_0x334943['waitSelector']+_0x309805(0x133)+_0x1d0919};}}catch(_0x1bbfb0){throw new Error(_0x309805(0x177)+_0x1bbfb0['message']);}}async['screenshot'](_0x288ea4,_0x2240df,_0x6e5e21,_0x53104e={}){const _0x4db0c7=a0_0x256d1f,_0x3d77ac=await this[_0x4db0c7(0x15e)](_0x6e5e21);try{const _0x148a58=_0x2240df?a0_0x4ac18c[_0x4db0c7(0x123)](_0x2240df,_0x288ea4):a0_0x4ac18c['resolve'](_0x288ea4),_0x4526bf=a0_0x4ac18c[_0x4db0c7(0x169)](_0x148a58);await a0_0x220684['mkdir'](_0x4526bf,{'recursive':!![]});const _0x10eb61={'path':_0x148a58,'type':_0x4db0c7(0x18e)};_0x53104e[_0x4db0c7(0x199)]&&(_0x10eb61['fullPage']=!![]);await _0x3d77ac['screenshot'](_0x10eb61);const _0x4eec75=await a0_0x220684['stat'](_0x148a58);if(_0x4eec75[_0x4db0c7(0x16c)]>this[_0x4db0c7(0x150)])throw new Error('Screenshot\x20too\x20large:\x20'+_0x4eec75['size']+_0x4db0c7(0x195)+this['maxScreenshotSize']+')');return{'success':!![],'action':'screenshot','outputPath':a0_0x4ac18c[_0x4db0c7(0x129)](_0x2240df||process['cwd'](),_0x148a58),'size':_0x4eec75[_0x4db0c7(0x16c)],'fullPage':!!_0x53104e[_0x4db0c7(0x199)],'message':'Screenshot\x20saved:\x20'+_0x288ea4};}catch(_0x4bc00f){throw new Error('Screenshot\x20failed:\x20'+_0x4bc00f[_0x4db0c7(0x138)]);}}async['extract'](_0x2d4448,_0x3347f4,_0x47e535){const _0x14c28a=a0_0x256d1f,_0x2d4a27=await this[_0x14c28a(0x15e)](_0x47e535);try{await _0x2d4a27[_0x14c28a(0x132)](_0x2d4448,{'timeout':0x1388});let _0x4c406f;return _0x3347f4===_0x14c28a(0x13c)?_0x4c406f=await _0x2d4a27['$eval'](_0x2d4448,_0x3ca9e3=>_0x3ca9e3['textContent']['trim']()):_0x4c406f=await _0x2d4a27[_0x14c28a(0x17a)](_0x2d4448,(_0x10517c,_0x591d2d)=>_0x10517c[_0x14c28a(0x122)](_0x591d2d),_0x3347f4),{'success':!![],'action':_0x14c28a(0x187),'selector':_0x2d4448,'attribute':_0x3347f4,'data':_0x4c406f,'message':_0x14c28a(0x12b)+_0x3347f4+'\x20from\x20'+_0x2d4448};}catch(_0x52de9a){throw new Error(_0x14c28a(0x153)+_0x2d4448+':\x20'+_0x52de9a[_0x14c28a(0x138)]);}}async['scroll'](_0x45eaa5,_0x10077c){const _0x350787=a0_0x256d1f,_0x102ca8=await this[_0x350787(0x15e)](_0x10077c);try{const {direction:_0x4359dc,pixels:pixels=0x12c,selector:_0x3a4681}=_0x45eaa5;return _0x3a4681?await _0x102ca8[_0x350787(0x19d)]((_0x2640f7,_0x28b1d3,_0x289510)=>{const _0x468415=_0x350787,_0x5f3332=document['querySelector'](_0x2640f7);if(_0x5f3332){if(_0x28b1d3==='down')_0x5f3332['scrollTop']+=_0x289510;else{if(_0x28b1d3==='up')_0x5f3332[_0x468415(0x196)]-=_0x289510;else{if(_0x28b1d3==='right')_0x5f3332['scrollLeft']+=_0x289510;else{if(_0x28b1d3===_0x468415(0x13e))_0x5f3332[_0x468415(0x19f)]-=_0x289510;}}}}},_0x3a4681,_0x4359dc,pixels):await _0x102ca8['evaluate']((_0x3d7254,_0x3a1104)=>{const _0x36f4eb=_0x350787;if(_0x3d7254===_0x36f4eb(0x189))window[_0x36f4eb(0x121)](0x0,_0x3a1104);else{if(_0x3d7254==='up')window[_0x36f4eb(0x121)](0x0,-_0x3a1104);else{if(_0x3d7254==='right')window['scrollBy'](_0x3a1104,0x0);else{if(_0x3d7254===_0x36f4eb(0x13e))window[_0x36f4eb(0x121)](-_0x3a1104,0x0);}}}},_0x4359dc,pixels),{'success':!![],'action':'scroll','direction':_0x4359dc,'pixels':pixels,'selector':_0x3a4681||'page','message':_0x350787(0x125)+_0x4359dc+'\x20by\x20'+pixels+'px'};}catch(_0x5cb9c7){throw new Error(_0x350787(0x13b)+_0x5cb9c7[_0x350787(0x138)]);}}async['getBrowser'](_0x420b0c){const _0x2ec18b=a0_0x256d1f;if(this['browserInstances'][_0x2ec18b(0x193)](_0x420b0c)){const _0x32659c=this['browserInstances'][_0x2ec18b(0x16a)](_0x420b0c);if(!_0x32659c[_0x2ec18b(0x19a)][_0x2ec18b(0x178)]())this['browserInstances'][_0x2ec18b(0x1a0)](_0x420b0c);else return _0x32659c[_0x2ec18b(0x19a)];}const _0x432959=await a0_0x13a424[_0x2ec18b(0x14f)]({'headless':this[_0x2ec18b(0x168)][_0x2ec18b(0x14c)],'args':['--no-sandbox',_0x2ec18b(0x176),'--disable-dev-shm-usage','--disable-gpu']}),_0x5772f9=await _0x432959[_0x2ec18b(0x149)]();return await _0x5772f9[_0x2ec18b(0x128)](this[_0x2ec18b(0x168)]['viewport']),await _0x5772f9[_0x2ec18b(0x15a)](this[_0x2ec18b(0x168)]['userAgent']),this['browserInstances']['set'](_0x420b0c,{'browser':_0x432959,'page':_0x5772f9,'created':Date['now']()}),setTimeout(()=>{const _0x54c7af=_0x2ec18b;this[_0x54c7af(0x198)](_0x420b0c);},0xa*0x3c*0x3e8),_0x432959;}async[a0_0x256d1f(0x15e)](_0x38dce5){const _0x23a766=a0_0x256d1f;return await this['getBrowser'](_0x38dce5),this[_0x23a766(0x13f)]['get'](_0x38dce5)[_0x23a766(0x167)];}async['closeBrowser'](_0x566388){const _0x36f023=a0_0x256d1f,_0x399281=this[_0x36f023(0x13f)]['get'](_0x566388);if(_0x399281)try{return await _0x399281['browser']['close'](),this['browserInstances']['delete'](_0x566388),{'success':!![],'action':'close','browserKey':_0x566388,'message':_0x36f023(0x142)};}catch(_0x1f0136){throw new Error(_0x36f023(0x19c)+_0x1f0136['message']);}return{'success':!![],'action':_0x36f023(0x158),'browserKey':_0x566388,'message':'Browser\x20instance\x20not\x20found\x20(already\x20closed)'};}async[a0_0x256d1f(0x198)](_0x24c4e0){const _0x509b2b=a0_0x256d1f,_0x37df7e=this[_0x509b2b(0x13f)]['get'](_0x24c4e0);if(_0x37df7e)try{await _0x37df7e[_0x509b2b(0x19a)][_0x509b2b(0x158)]();}catch(_0x41c61e){}finally{this[_0x509b2b(0x13f)]['delete'](_0x24c4e0);}}[a0_0x256d1f(0x130)](_0x35e95d){const _0x4b4c2f=a0_0x256d1f;try{const _0x5e07b1=new URL(_0x35e95d),_0x1693bc=_0x5e07b1['hostname'][_0x4b4c2f(0x12c)]();if(this['blockedDomains']['some'](_0x4d4cf6=>_0x1693bc['includes'](_0x4d4cf6[_0x4b4c2f(0x12c)]())))return![];if(this[_0x4b4c2f(0x14b)]&&this[_0x4b4c2f(0x14b)]['length']>0x0)return this['allowedDomains']['some'](_0x259191=>_0x1693bc[_0x4b4c2f(0x172)](_0x259191[_0x4b4c2f(0x12c)]()));return!![];}catch{return![];}}['addToHistory'](_0x27338f,_0x422a88,_0xc90b0a){const _0x1202d3=a0_0x256d1f,_0x1792e9={'timestamp':new Date()['toISOString'](),'agentId':_0xc90b0a,'action':_0x27338f['type'],'selector':_0x27338f['selector']||_0x27338f['url'],'success':_0x422a88['success'],'loadTime':_0x422a88[_0x1202d3(0x16e)]||0x0};this[_0x1202d3(0x194)][_0x1202d3(0x124)](_0x1792e9),this['operationHistory']['length']>0x64&&(this[_0x1202d3(0x194)]=this['operationHistory']['slice'](-0x64));}[a0_0x256d1f(0x1a1)](){const _0x594259=a0_0x256d1f;return['navigate',_0x594259(0x179),'type',_0x594259(0x182),_0x594259(0x197),'extract','scroll','close'];}[a0_0x256d1f(0x147)](){const _0x806c6e=a0_0x256d1f;return{'type':'object','properties':{'actions':{'type':'array','minItems':0x1,'items':{'type':'object','properties':{'type':{'type':'string','enum':this['getSupportedActions']()},'url':{'type':_0x806c6e(0x12d)},'selector':{'type':_0x806c6e(0x12d)},'text':{'type':_0x806c6e(0x12d)},'outputPath':{'type':'string'},'waitTime':{'type':_0x806c6e(0x173)},'waitSelector':{'type':_0x806c6e(0x12d)},'attribute':{'type':_0x806c6e(0x12d)},'direction':{'type':'string'},'pixels':{'type':_0x806c6e(0x173)}},'required':[_0x806c6e(0x135)]}}},'required':[_0x806c6e(0x139)]};}async[a0_0x256d1f(0x186)](_0x5dc662){const _0x4e9368=a0_0x256d1f;for(const [_0x2f34ed]of this[_0x4e9368(0x13f)]){await this['cleanupBrowser'](_0x2f34ed);}}[a0_0x256d1f(0x165)](_0x54d824=null){const _0x278a55=a0_0x256d1f;if(_0x54d824)return this['operationHistory']['filter'](_0x5d9637=>_0x5d9637['agentId']===_0x54d824);return[...this[_0x278a55(0x194)]];}}export default BrowserTool;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x27177b=a0_0x4034;(function(_0x516bbd,_0x69d8fd){const _0x16d01e=a0_0x4034,_0x39fc6e=_0x516bbd();while(!![]){try{const _0x34c745=-parseInt(_0x16d01e(0x11c))/0x1*(parseInt(_0x16d01e(0x130))/0x2)+-parseInt(_0x16d01e(0x160))/0x3+parseInt(_0x16d01e(0x180))/0x4*(parseInt(_0x16d01e(0x136))/0x5)+parseInt(_0x16d01e(0x128))/0x6+-parseInt(_0x16d01e(0x181))/0x7+-parseInt(_0x16d01e(0x150))/0x8*(parseInt(_0x16d01e(0x11e))/0x9)+parseInt(_0x16d01e(0x165))/0xa;if(_0x34c745===_0x69d8fd)break;else _0x39fc6e['push'](_0x39fc6e['shift']());}catch(_0x3a7ad0){_0x39fc6e['push'](_0x39fc6e['shift']());}}}(a0_0x5111,0x1a733));import{BaseTool}from'./baseTool.js';import a0_0x1b15d5 from'../utilities/tagParser.js';function a0_0x5111(){const _0xa71be0=['Bg93','ndK2mJy2menlzhLIva','oIbKAxjLy3rVCNKGAxmGCMvXDwLYzwqGzM9YigrLDgvJDc1JBg9Uzxm','zMLSzq','BNvTyMvY','zgvMyxvSDfnPBwLSyxjPDhLuAhjLC2HVBgq','ihnLy29UzhmkicaGia','zxjYB3i','Bg9Nz2vY','kIOVyNvPBgqVkIO','AxnbC3LUyW','AxnbCNjHEq','kIOVkI5QCW','Bwf4uMvZDwX0CW','CMvMywn0B3jPBMDbzhzPy2u','Bwv0CMLJCW','ywXSB3DLza','C3rYyxrLz3K','CMvJB21Tzw5KyxrPB25Z','BgLUzunVDw50','zgv0ywLSzwq','oIbTAw4TDg9Rzw5Zig11C3qGyMuGyMv0D2vLBIaXmcbHBMqGmtaWma','Aw5ZDgfUy2vZ','Aw5ZDgfUy2vdB3vUDa','DgLTzw91Da','zhvWBgLJyxrPB25qzxjJzw50ywDL','z2v0u3vWCg9YDgvKqwn0Aw9UCW','C2XPy2u','mtu5mJrJA1zJDMe','nJG3mdaXAK1pyM9s','CNvU','BgvUz3rO','ChjPB3jPDhK','ndK0qvvRAKDX','zM9YBwf0rgv0ywLSzwrpDxrWDxq','mJK2mZDWAwr3t3e','BwfW','Dg90ywXdBg9Uzxm','C3bSAxq','kIOVzgLZDc8QkG','ChjPB3jPDhLgAwX0zxi','BwLUtgLUzxm','y3jLyxrLuMvSyxrPDMvqyxrO','ywn0Aw9UywjSzvn0zxbZ','zM9YBwf0uMvJB21Tzw5KyxrPB25Zt3v0Chv0','mJy1mZC0CKncrwvW','C3rYAw5N','Bwf4rMLSzvnPEMu','B3v0Chv0lw1Vzgu','kIOVkI5JANm','y2XVBMvZ','y29Kzq','ywn0Aw9UCW','mJz3yMHfufq','BwLUvg9Rzw5Z','zgvMyxvSDe1PBLrVA2vUCW','BwLUlwXPBMvZ','y2XVBMvezxrLy3rVCG','kIOVkI50CW','mJbNDNH6Cgq','kIOVkI50zxn0lMPZ','ugfYC2vKienSB25Lrgv0zwn0Aw9UihrVB2WGCgfYyw1LDgvYCW','q2XVBMvezxrLy3rPB24GDg9VBcbWyxjZAw5NihbHCMfTzxrLCNm','cI4UlIaODhj1BMnHDgvKkq','zgv0zwn0q2XVBMvZ','CM91BMq','oIbZAw1PBgfYAxr5lxrOCMvZAg9SzcbTDxn0igjLigjLDhDLzw4Gmc41igfUzcaXlJa','Aw5JBhvKzxm','s0iGCgvYigzPBguklsbbBMfSExnPCYb0Aw1LB3v0oIa','ChjPB3jPDhLdB3vUDhm','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','y3jLyxrLrgLYzwn0B3j5qwnJzxnZ','Dg90ywXgAwXLCW','BwvZC2fNzq','AM9PBG','BwLUlxrVA2vUCW','kIOVkI52Dwu','zw5KtgLUzq','C3vTBwfYEq','oIb0ExbLigLZihjLCxvPCMvK','Bwf4lxjLC3vSDhm','oIbWCMLVCML0Es1MAwX0zxiGBxvZDcbIzsbOAwDOlcbTzwrPDw0Sig9YigXVDW','yxjYyxK','zxHLyW','DhLWzq','mZC2zwLpv2vg','C2LTAwXHCML0EvrOCMvZAg9Sza','BwvKAxvT','AgLNAa','rMfPBgvKihrVihbHCNnLignSB25LigrLDgvJDgLVBIbWyxjHBwv0zxjZoIa','qwn0Aw9Uia','C2LTAwXHCML0Es10AhjLC2HVBgq','zgv0zwn0lwnSB25LCW','zgvMyxvSDe1PBKXPBMvZ','B3v0Chv0tw9Kzq','yMvUzwzPDhm','q2XVBMuGzgv0zwn0B3iGAw5PDgLHBgL6zwq','CMf3q29UDgvUDa','ChjPB3jPDhKTzMLSDgvY','zgLYzwn0B3j5qwnJzxnZtwfUywDLCG','C3rHCNrmAw5L','nty2mJmYu3r2Afnu','ChvZAa','u3rHCNrPBMCGy2XVBMuGzgv0zwn0Aw9U','CMvXDwLYzxnqCM9Qzwn0'];a0_0x5111=function(){return _0xa71be0;};return a0_0x5111();}function a0_0x4034(_0x15e765,_0x273195){_0x15e765=_0x15e765-0x119;const _0x5111d0=a0_0x5111();let _0x403478=_0x5111d0[_0x15e765];if(a0_0x4034['vFBWaY']===undefined){var _0x3fa1b6=function(_0x3ad61d){const _0x59049f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1b15d5='',_0x5e483f='';for(let _0x15c3c7=0x0,_0x99e6e9,_0x2395bb,_0x49c224=0x0;_0x2395bb=_0x3ad61d['charAt'](_0x49c224++);~_0x2395bb&&(_0x99e6e9=_0x15c3c7%0x4?_0x99e6e9*0x40+_0x2395bb:_0x2395bb,_0x15c3c7++%0x4)?_0x1b15d5+=String['fromCharCode'](0xff&_0x99e6e9>>(-0x2*_0x15c3c7&0x6)):0x0){_0x2395bb=_0x59049f['indexOf'](_0x2395bb);}for(let _0x34fec1=0x0,_0x169475=_0x1b15d5['length'];_0x34fec1<_0x169475;_0x34fec1++){_0x5e483f+='%'+('00'+_0x1b15d5['charCodeAt'](_0x34fec1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5e483f);};a0_0x4034['bIMfbq']=_0x3fa1b6,a0_0x4034['emDage']={},a0_0x4034['vFBWaY']=!![];}const _0x36d685=_0x5111d0[0x0],_0xe9512f=_0x15e765+_0x36d685,_0x261123=a0_0x4034['emDage'][_0xe9512f];return!_0x261123?(_0x403478=a0_0x4034['bIMfbq'](_0x403478),a0_0x4034['emDage'][_0xe9512f]=_0x403478):_0x403478=_0x261123,_0x403478;}import a0_0x5e483f from'../utilities/directoryAccessManager.js';import a0_0x15c3c7 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class CloneDetectionTool extends BaseTool{constructor(_0x99e6e9={},_0x2395bb=null){const _0x463043=a0_0x4034;super(_0x99e6e9,_0x2395bb),this[_0x463043(0x163)]=!![],this[_0x463043(0x16e)]=![],this[_0x463043(0x17c)]=_0x99e6e9['timeout']||0x1d4c0,this[_0x463043(0x141)]=_0x99e6e9[_0x463043(0x141)]||0x1,this[_0x463043(0x132)]=_0x99e6e9[_0x463043(0x132)]||0x32,this[_0x463043(0x158)]=_0x99e6e9['defaultMinLines']||0x5,this[_0x463043(0x169)]=_0x99e6e9[_0x463043(0x169)]||0.85,this['maxFileSize']=_0x99e6e9['maxFileSize']||0x7a120,this['directoryAccessManager']=new a0_0x5e483f(_0x99e6e9,_0x2395bb),this['cloneDetector']=null;}['getDescription'](){const _0x3c145c=a0_0x4034;return'\x0aCode\x20Clone\x20Detection\x20Tool:\x20Find\x20duplicated\x20code\x20for\x20refactoring\x20opportunities\x0a\x0aThis\x20tool\x20identifies\x20exact\x20and\x20similar\x20code\x20patterns\x20(code\x20clones)\x20across\x20your\x20codebase\x20to\x20help\x20reduce\x20duplication,\x20improve\x20maintainability,\x20and\x20identify\x20refactoring\x20opportunities.\x0a\x0aWHAT\x20IT\x20DETECTS:\x0a-\x20Exact\x20Clones\x20(Type\x201):\x20Identical\x20code\x20with\x20different\x20formatting/comments\x0a-\x20Similar\x20Clones\x20(Type\x202/3):\x20Structurally\x20similar\x20code\x20with\x20minor\x20variations\x0a\x0aSUPPORTED\x20LANGUAGES:\x0a-\x20JavaScript\x20(.js,\x20.jsx,\x20.mjs,\x20.cjs)\x0a-\x20TypeScript\x20(.ts,\x20.tsx)\x0a-\x20Vue\x20(.vue)\x0a\x0aUSAGE:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x22type\x22:\x20\x22detect-clones\x22,\x0a\x20\x20\x20\x20\x20\x20\x22directory\x22:\x20\x22src\x22,\x0a\x20\x20\x20\x20\x20\x20\x22minTokens\x22:\x2050,\x0a\x20\x20\x20\x20\x20\x20\x22minLines\x22:\x205,\x0a\x20\x20\x20\x20\x20\x20\x22similarityThreshold\x22:\x200.85,\x0a\x20\x20\x20\x20\x20\x20\x22priorityFilter\x22:\x20\x22high\x22,\x0a\x20\x20\x20\x20\x20\x20\x22maxResults\x22:\x2010,\x0a\x20\x20\x20\x20\x20\x20\x22outputMode\x22:\x20\x22summary\x22\x0a\x20\x20\x20\x20}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aPARAMETERS:\x0a-\x20directory:\x20Directory\x20to\x20analyze\x20(required)\x0a-\x20minTokens:\x20Minimum\x20token\x20count\x20(default:\x2050,\x20lower\x20=\x20more\x20sensitive)\x0a-\x20minLines:\x20Minimum\x20line\x20count\x20(default:\x205)\x0a-\x20similarityThreshold:\x200-1\x20similarity\x20threshold\x20(default:\x200.85)\x0a-\x20priorityFilter:\x20Filter\x20by\x20priority\x20(high/medium/low,\x20optional)\x0a-\x20maxResults:\x20Maximum\x20number\x20of\x20clones\x20to\x20return\x20(optional)\x0a-\x20outputMode:\x20summary|detailed|recommendations\x20(default:\x20detailed)\x0a\x0aEXAMPLES:\x0a\x0a1.\x20Find\x20all\x20clones\x20in\x20project:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[{\x20\x22type\x22:\x20\x22detect-clones\x22,\x20\x22directory\x22:\x20\x22.\x22\x20}]\x0a}\x0a```\x0a\x0a2.\x20High-priority\x20refactoring\x20opportunities\x20only:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[{\x20\x22type\x22:\x20\x22detect-clones\x22,\x20\x22directory\x22:\x20\x22src\x22,\x20\x22priorityFilter\x22:\x20\x22high\x22,\x20\x22maxResults\x22:\x2010\x20}]\x0a}\x0a```\x0a\x0a3.\x20More\x20sensitive\x20detection\x20(finds\x20smaller\x20clones):\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[{\x20\x22type\x22:\x20\x22detect-clones\x22,\x20\x22directory\x22:\x20\x22.\x22,\x20\x22minTokens\x22:\x2030,\x20\x22similarityThreshold\x22:\x200.80\x20}]\x0a}\x0a```\x0a\x0a4.\x20Quick\x20overview:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[{\x20\x22type\x22:\x20\x22detect-clones\x22,\x20\x22directory\x22:\x20\x22.\x22,\x20\x22outputMode\x22:\x20\x22summary\x22\x20}]\x0a}\x0a```\x0a\x0aOUTPUT\x20FORMAT:\x0aReturns\x20clone\x20detection\x20results\x20with:\x0a-\x20summary:\x20Overall\x20statistics\x20(total\x20clones,\x20duplication\x20%,\x20priority\x20breakdown)\x0a-\x20clones:\x20Array\x20of\x20detected\x20clone\x20groups\x20with:\x0a\x20\x20-\x20id,\x20type,\x20confidence,\x20instances,\x20metrics\x0a\x20\x20-\x20refactoringAdvice:\x20priority,\x20strategy,\x20suggestedName,\x20reasoning,\x20actionableSteps\x0a\x0aOUTPUT\x20MODES:\x0a-\x20summary:\x20High-level\x20overview\x20only\x20(duplication\x20%,\x20top\x205\x20clones)\x0a-\x20detailed:\x20Full\x20clone\x20details\x20with\x20code\x20snippets\x20(default)\x0a-\x20recommendations:\x20Refactoring\x20priorities\x20with\x20actionable\x20steps\x0a\x0aLIMITATIONS:\x0a-\x20Analyzes\x20JavaScript/TypeScript\x20family\x20only\x0a-\x20Maximum\x20file\x20size:\x20'+Math[_0x3c145c(0x13c)](this[_0x3c145c(0x12a)]/0x400)+_0x3c145c(0x13f)+this['timeout']/0x3e8+_0x3c145c(0x16a);}['parseParameters'](_0x49c224){const _0x272c7b=a0_0x4034;try{const _0x34fec1={},_0x169475=[];this['logger']?.['debug'](_0x272c7b(0x139),{'contentLength':_0x49c224['length'],'contentPreview':_0x49c224['substring'](0x0,0xc8)});const _0x1eee2b=/<detect-clones\s+(.+?)\/>/g;let _0x598ad7;while((_0x598ad7=_0x1eee2b[_0x272c7b(0x14e)](_0x49c224))!==null){const _0x2042f9=_0x598ad7[0x1]['trim'](),_0x367fe7=new a0_0x1b15d5(),_0x477743=_0x367fe7['parseAttributes'](_0x2042f9),_0x44258a={'type':_0x272c7b(0x157),..._0x477743};_0x44258a[_0x272c7b(0x146)]&&(_0x44258a['minTokens']=parseInt(_0x44258a[_0x272c7b(0x146)],0xa),delete _0x44258a[_0x272c7b(0x146)]),_0x44258a['min-lines']&&(_0x44258a['minLines']=parseInt(_0x44258a[_0x272c7b(0x133)],0xa),delete _0x44258a['min-lines']),_0x44258a[_0x272c7b(0x156)]&&(_0x44258a['similarityThreshold']=parseFloat(_0x44258a['similarity-threshold']),delete _0x44258a[_0x272c7b(0x156)]),_0x44258a['priority-filter']&&(_0x44258a['priorityFilter']=_0x44258a['priority-filter'],delete _0x44258a[_0x272c7b(0x15d)]),_0x44258a[_0x272c7b(0x14b)]&&(_0x44258a['maxResults']=parseInt(_0x44258a['max-results'],0xa),delete _0x44258a['max-results']),_0x44258a[_0x272c7b(0x12b)]&&(_0x44258a[_0x272c7b(0x159)]=_0x44258a['output-mode'],delete _0x44258a['output-mode']),_0x169475['push'](_0x44258a);}return _0x34fec1[_0x272c7b(0x12f)]=_0x169475,_0x34fec1[_0x272c7b(0x15c)]=_0x49c224['trim'](),this['logger']?.['debug'](_0x272c7b(0x138),{'totalActions':_0x169475['length'],'actionTypes':_0x169475[_0x272c7b(0x11f)](_0x2be416=>_0x2be416['type'])}),_0x34fec1;}catch(_0x3718ba){throw new Error(_0x272c7b(0x154)+_0x3718ba['message']);}}['getRequiredParameters'](){const _0x107f5a=a0_0x4034;return[_0x107f5a(0x12f)];}['customValidateParameters'](_0x48360b){const _0x526577=a0_0x4034,_0x7ab422=[];if(!_0x48360b[_0x526577(0x12f)]||!Array[_0x526577(0x16f)](_0x48360b[_0x526577(0x12f)])||_0x48360b['actions'][_0x526577(0x11a)]===0x0)_0x7ab422[_0x526577(0x161)]('At\x20least\x20one\x20action\x20is\x20required');else for(const [_0x44d929,_0x2be108]of _0x48360b[_0x526577(0x12f)]['entries']()){if(!_0x2be108[_0x526577(0x14f)]){_0x7ab422[_0x526577(0x161)]('Action\x20'+(_0x44d929+0x1)+_0x526577(0x14a));continue;}_0x2be108['type']===_0x526577(0x157)?(!_0x2be108['directory']&&_0x7ab422[_0x526577(0x161)](_0x526577(0x155)+(_0x44d929+0x1)+_0x526577(0x166)),_0x2be108['minTokens']!==undefined&&(_0x2be108['minTokens']<0xa||_0x2be108[_0x526577(0x131)]>0x3e8)&&_0x7ab422[_0x526577(0x161)](_0x526577(0x155)+(_0x44d929+0x1)+_0x526577(0x179)),_0x2be108['minLines']!==undefined&&(_0x2be108[_0x526577(0x124)]<0x1||_0x2be108['minLines']>0x64)&&_0x7ab422[_0x526577(0x161)]('Action\x20'+(_0x44d929+0x1)+':\x20min-lines\x20must\x20be\x20between\x201\x20and\x20100'),_0x2be108['similarityThreshold']!==undefined&&(_0x2be108[_0x526577(0x151)]<0.5||_0x2be108[_0x526577(0x151)]>0x1)&&_0x7ab422[_0x526577(0x161)](_0x526577(0x155)+(_0x44d929+0x1)+_0x526577(0x13d)),_0x2be108[_0x526577(0x123)]&&![_0x526577(0x153),_0x526577(0x152),_0x526577(0x164)]['includes'](_0x2be108['priorityFilter'])&&_0x7ab422['push'](_0x526577(0x155)+(_0x44d929+0x1)+_0x526577(0x14c)),_0x2be108['outputMode']&&![_0x526577(0x149),'detailed',_0x526577(0x176)][_0x526577(0x13e)](_0x2be108[_0x526577(0x159)])&&_0x7ab422[_0x526577(0x161)](_0x526577(0x155)+(_0x44d929+0x1)+':\x20output-mode\x20must\x20be\x20summary,\x20detailed,\x20or\x20recommendations')):_0x7ab422['push'](_0x526577(0x155)+(_0x44d929+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x2be108[_0x526577(0x14f)]);}return{'valid':_0x7ab422[_0x526577(0x11a)]===0x0,'errors':_0x7ab422};}async['execute'](_0x3ee212,_0x252fd5){const _0x2015f4=a0_0x4034,{actions:_0x521ee1}=_0x3ee212,{projectDir:_0x2d3067,agentId:_0x113eae,directoryAccess:_0x45aae5}=_0x252fd5,_0x5443fb=_0x45aae5||this[_0x2015f4(0x15e)][_0x2015f4(0x142)]({'workingDirectory':_0x2d3067||process['cwd'](),'writeEnabledDirectories':[],'readOnlyDirectories':[_0x2d3067||process['cwd']()],'restrictToProject':!![]}),_0x2ec3ee=this['directoryAccessManager']['getWorkingDirectory'](_0x5443fb),_0x711ff5=[];for(const _0x55976e of _0x521ee1){try{if(_0x55976e['type']==='detect-clones'){const _0xc980c9=await this[_0x2015f4(0x13b)](_0x55976e['directory'],_0x2ec3ee,_0x5443fb,_0x55976e);_0x711ff5[_0x2015f4(0x161)](_0xc980c9);}else throw new Error('Unknown\x20action\x20type:\x20'+_0x55976e['type']);}catch(_0x380b58){this['logger']?.[_0x2015f4(0x16b)]('Clone\x20detection\x20action\x20failed',{'action':_0x55976e['type'],'error':_0x380b58[_0x2015f4(0x144)]}),_0x711ff5['push']({'directory':_0x55976e['directory'],'error':_0x380b58['message'],'success':![]});}}return{'success':!![],'results':_0x711ff5,'toolUsed':'clonedetection'};}async['detectClones'](_0x4355d5,_0x37d5ee,_0xe2d73c,_0x16f8f8={}){const _0x2bb8d9=a0_0x4034,_0x4add66=a0_0x15c3c7['isAbsolute'](_0x4355d5)?a0_0x15c3c7['normalize'](_0x4355d5):a0_0x15c3c7['resolve'](_0x37d5ee,_0x4355d5),_0x1e6935=this['directoryAccessManager']['validateReadAccess'](_0x4add66,_0xe2d73c);if(!_0x1e6935[_0x2bb8d9(0x174)])throw new Error('Read\x20access\x20denied:\x20'+_0x1e6935['reason']);try{const _0x5a9c55=await this['getCloneDetector'](),_0x402d1a={'minTokens':_0x16f8f8['minTokens']||this['defaultMinTokens'],'minLines':_0x16f8f8['minLines']||this['defaultMinLines'],'similarityThreshold':_0x16f8f8['similarityThreshold']||this[_0x2bb8d9(0x169)],'include':['**/*.js','**/*.jsx','**/*.mjs',_0x2bb8d9(0x12c),_0x2bb8d9(0x135),'**/*.tsx','**/*.vue'],'exclude':['**/node_modules/**','**/dist/**','**/build/**',_0x2bb8d9(0x137),'**/*.spec.js'],'maxFileSize':this[_0x2bb8d9(0x12a)]};this['logger']?.['info'](_0x2bb8d9(0x162),{'directory':_0x4add66,'config':_0x402d1a});const _0x33573e=await _0x5a9c55[_0x2bb8d9(0x119)](_0x4add66,null);if(!_0x33573e)return{'directory':this[_0x2bb8d9(0x15e)][_0x2bb8d9(0x125)](_0x4add66,_0xe2d73c),'fullPath':_0x4add66,'success':!![],'summary':{'totalFiles':0x0,'totalClones':0x0,'duplicationPercentage':0x0},'clones':[],'message':'No\x20files\x20found\x20or\x20no\x20clones\x20detected'};let _0x164f70=_0x33573e[_0x2bb8d9(0x12d)];_0x16f8f8[_0x2bb8d9(0x123)]&&(_0x164f70=_0x164f70['filter'](_0x1109ea=>_0x1109ea[_0x2bb8d9(0x172)][_0x2bb8d9(0x11b)]===_0x16f8f8['priorityFilter']));_0x16f8f8['maxResults']&&(_0x164f70=_0x164f70[_0x2bb8d9(0x17f)](0x0,_0x16f8f8[_0x2bb8d9(0x171)]));const _0x523756=_0x16f8f8[_0x2bb8d9(0x159)]||_0x2bb8d9(0x178);if(_0x523756==='summary')return this['formatSummaryOutput'](_0x33573e,_0x164f70,_0x4add66,_0xe2d73c);else return _0x523756==='recommendations'?this['formatRecommendationsOutput'](_0x33573e,_0x164f70,_0x4add66,_0xe2d73c):this['formatDetailedOutput'](_0x33573e,_0x164f70,_0x4add66,_0xe2d73c);}catch(_0x172864){throw new Error('Failed\x20to\x20detect\x20clones\x20in\x20'+_0x4355d5+':\x20'+_0x172864['message']);}}['formatSummaryOutput'](_0x4c3209,_0x3ab670,_0x109d38,_0x2fd527){const _0x18ba16=a0_0x4034;return{'directory':this['directoryAccessManager'][_0x18ba16(0x125)](_0x109d38,_0x2fd527),'fullPath':_0x109d38,'success':!![],'outputMode':_0x18ba16(0x149),'summary':{'totalFiles':_0x4c3209[_0x18ba16(0x149)]['totalFiles'],'totalClones':_0x4c3209['summary'][_0x18ba16(0x120)],'duplicatedLines':_0x4c3209['summary']['totalDuplicatedLines'],'duplicationPercentage':_0x4c3209[_0x18ba16(0x149)]['duplicationPercentage'],'priorityCounts':_0x4c3209[_0x18ba16(0x149)][_0x18ba16(0x140)],'topClones':_0x3ab670[_0x18ba16(0x17f)](0x0,0x5)['map'](_0x54dfd3=>({'id':_0x54dfd3['id'],'type':_0x54dfd3[_0x18ba16(0x14f)],'confidence':_0x54dfd3['confidence'],'instances':_0x54dfd3['metrics']['instanceCount'],'lines':_0x54dfd3[_0x18ba16(0x173)]['lineCount'],'priority':_0x54dfd3[_0x18ba16(0x172)]['priority'],'strategy':_0x54dfd3[_0x18ba16(0x172)][_0x18ba16(0x175)],'locations':_0x54dfd3[_0x18ba16(0x17a)]['map'](_0x1c3842=>_0x1c3842[_0x18ba16(0x167)]+':'+_0x1c3842[_0x18ba16(0x15f)]+'-'+_0x1c3842['endLine'])}))}};}[a0_0x27177b(0x127)](_0x8a703c,_0x270905,_0x4151df,_0x542d55){const _0x6330a3=a0_0x27177b;return{'directory':this[_0x6330a3(0x15e)]['createRelativePath'](_0x4151df,_0x542d55),'fullPath':_0x4151df,'success':!![],'outputMode':'recommendations','summary':{'totalFiles':_0x8a703c['summary'][_0x6330a3(0x143)],'totalClones':_0x8a703c[_0x6330a3(0x149)][_0x6330a3(0x120)],'duplicationPercentage':_0x8a703c[_0x6330a3(0x149)][_0x6330a3(0x17d)]},'recommendations':_0x270905[_0x6330a3(0x11f)](_0x373fbe=>({'id':_0x373fbe['id'],'priority':_0x373fbe[_0x6330a3(0x172)][_0x6330a3(0x11b)],'strategy':_0x373fbe[_0x6330a3(0x172)][_0x6330a3(0x175)],'suggestedName':_0x373fbe['refactoringAdvice']['suggestedName'],'reasoning':_0x373fbe['refactoringAdvice']['reasoning'],'effort':_0x373fbe['refactoringAdvice']['estimatedEffort'],'benefits':_0x373fbe[_0x6330a3(0x172)][_0x6330a3(0x15a)],'steps':_0x373fbe[_0x6330a3(0x172)][_0x6330a3(0x126)],'metrics':{'instances':_0x373fbe[_0x6330a3(0x173)][_0x6330a3(0x17b)],'lines':_0x373fbe['metrics'][_0x6330a3(0x177)],'files':_0x373fbe[_0x6330a3(0x173)]['filesCovered'],'impact':_0x373fbe[_0x6330a3(0x173)]['impactScore']},'locations':_0x373fbe['instances']['map'](_0xfe973=>({'file':_0xfe973[_0x6330a3(0x167)],'startLine':_0xfe973['startLine'],'endLine':_0xfe973[_0x6330a3(0x148)]}))}))};}[a0_0x27177b(0x11d)](_0x1ad534,_0x4a9ac1,_0x1322d5,_0x48ba0f){const _0x277d70=a0_0x27177b;return{'directory':this['directoryAccessManager']['createRelativePath'](_0x1322d5,_0x48ba0f),'fullPath':_0x1322d5,'success':!![],'outputMode':'detailed','summary':_0x1ad534['summary'],'clones':_0x4a9ac1['map'](_0x566f24=>({..._0x566f24,'instances':_0x566f24['instances'][_0x277d70(0x11f)](_0x5e9dc0=>({..._0x5e9dc0,'code':_0x5e9dc0[_0x277d70(0x12e)][_0x277d70(0x121)]('\x0a')['slice'](0x0,0xa)[_0x277d70(0x145)]('\x0a')+(_0x5e9dc0['code'][_0x277d70(0x121)]('\x0a')['length']>0xa?_0x277d70(0x13a):'')}))}))};}async['getCloneDetector'](){const _0x16038d=a0_0x27177b;if(!this['cloneDetector']){const {CloneDetectionTool:_0x4b991b}=await import('../analyzers/codeCloneDetector/index.js'),_0xafde26={'minTokens':this[_0x16038d(0x132)],'minLines':this[_0x16038d(0x158)],'similarityThreshold':this['defaultSimilarityThreshold'],'include':[_0x16038d(0x170),'**/*.jsx',_0x16038d(0x135),'**/*.tsx',_0x16038d(0x147)],'exclude':['**/node_modules/**',_0x16038d(0x122),_0x16038d(0x16d)],'maxFileSize':this[_0x16038d(0x12a)]};this[_0x16038d(0x134)]=new _0x4b991b(_0xafde26),this[_0x16038d(0x16c)]?.['debug'](_0x16038d(0x15b),{'config':_0xafde26});}return this[_0x16038d(0x134)];}[a0_0x27177b(0x17e)](){const _0x284075=a0_0x27177b;return[_0x284075(0x157)];}['getParameterSchema'](){const _0x1e7c09=a0_0x27177b;return{'type':'object','properties':{'actions':{'type':_0x1e7c09(0x14d),'minItems':0x1,'items':{'type':'object','properties':{'type':{'type':'string','enum':this['getSupportedActions']()},'directory':{'type':_0x1e7c09(0x129)},'minTokens':{'type':'number','minimum':0xa,'maximum':0x3e8},'minLines':{'type':_0x1e7c09(0x168),'minimum':0x1,'maximum':0x64},'similarityThreshold':{'type':'number','minimum':0.5,'maximum':0x1},'priorityFilter':{'type':_0x1e7c09(0x129),'enum':[_0x1e7c09(0x153),'medium','low']},'maxResults':{'type':'number','minimum':0x1},'outputMode':{'type':_0x1e7c09(0x129),'enum':['summary',_0x1e7c09(0x178),'recommendations']}},'required':[_0x1e7c09(0x14f),'directory']}}},'required':[_0x1e7c09(0x12f)]};}}export default CloneDetectionTool;
|
|
1
|
+
const a0_0xa378c8=a0_0x49b7;(function(_0x383ad7,_0x544c2e){const _0x1bf340=a0_0x49b7,_0x18e7c5=_0x383ad7();while(!![]){try{const _0x338240=parseInt(_0x1bf340(0x1dc))/0x1*(parseInt(_0x1bf340(0x1b6))/0x2)+-parseInt(_0x1bf340(0x195))/0x3+parseInt(_0x1bf340(0x1a3))/0x4*(-parseInt(_0x1bf340(0x1fa))/0x5)+parseInt(_0x1bf340(0x1fc))/0x6+parseInt(_0x1bf340(0x1f2))/0x7+parseInt(_0x1bf340(0x194))/0x8*(-parseInt(_0x1bf340(0x1da))/0x9)+parseInt(_0x1bf340(0x18f))/0xa*(parseInt(_0x1bf340(0x1a2))/0xb);if(_0x338240===_0x544c2e)break;else _0x18e7c5['push'](_0x18e7c5['shift']());}catch(_0x781b65){_0x18e7c5['push'](_0x18e7c5['shift']());}}}(a0_0x29be,0xcce59));import{BaseTool}from'./baseTool.js';import a0_0x20a14e from'../utilities/tagParser.js';import a0_0x27b065 from'../utilities/directoryAccessManager.js';function a0_0x49b7(_0x4b9c65,_0x265649){_0x4b9c65=_0x4b9c65-0x18f;const _0x29be26=a0_0x29be();let _0x49b7ee=_0x29be26[_0x4b9c65];if(a0_0x49b7['jJmCBE']===undefined){var _0x159bfb=function(_0x3ce5fe){const _0x124ccd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x20a14e='',_0x27b065='';for(let _0x1610a4=0x0,_0x593985,_0x161d0c,_0x127e6d=0x0;_0x161d0c=_0x3ce5fe['charAt'](_0x127e6d++);~_0x161d0c&&(_0x593985=_0x1610a4%0x4?_0x593985*0x40+_0x161d0c:_0x161d0c,_0x1610a4++%0x4)?_0x20a14e+=String['fromCharCode'](0xff&_0x593985>>(-0x2*_0x1610a4&0x6)):0x0){_0x161d0c=_0x124ccd['indexOf'](_0x161d0c);}for(let _0x3a0d48=0x0,_0x45a5be=_0x20a14e['length'];_0x3a0d48<_0x45a5be;_0x3a0d48++){_0x27b065+='%'+('00'+_0x20a14e['charCodeAt'](_0x3a0d48)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x27b065);};a0_0x49b7['YZhzDX']=_0x159bfb,a0_0x49b7['PjcsSs']={},a0_0x49b7['jJmCBE']=!![];}const _0x2312e4=_0x29be26[0x0],_0xb08382=_0x4b9c65+_0x2312e4,_0x541fb6=a0_0x49b7['PjcsSs'][_0xb08382];return!_0x541fb6?(_0x49b7ee=a0_0x49b7['YZhzDX'](_0x49b7ee),a0_0x49b7['PjcsSs'][_0xb08382]=_0x49b7ee):_0x49b7ee=_0x541fb6,_0x49b7ee;}import a0_0x1610a4 from'path';function a0_0x29be(){const _0x35c74a=['y2XVBMvKzxrLy3rPB24','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','C2LTAwXHCML0EvrOCMvZAg9Sza','ChjPB3jPDhKTzMLSDgvY','y2XVBMvezxrLy3rVCG','yxjYyxK','mtiXvvrlDwfX','odu5oty0Cufdwhfo','ywXSB3DLza','BwLUtgLUzxm','tM8GzMLSzxmGzM91BMqGB3iGBM8Gy2XVBMvZigrLDgvJDgvK','y3DK','Bwv0CMLJCW','Bg9Nz2vY','C3bSAxq','B2jQzwn0','cKnVzguGq2XVBMuGrgv0zwn0Aw9UifrVB2W6iezPBMqGzhvWBgLJyxrLzcbJB2rLigzVCIbYzwzHy3rVCMLUzYbVChbVCNr1BML0AwvZcGPuAgLZihrVB2WGAwrLBNrPzMLLCYbLEgfJDcbHBMqGC2LTAwXHCIbJB2rLihbHDhrLCM5ZicHJB2rLignSB25LCYKGywnYB3nZihLVDxiGy29KzwjHC2uGDg8GAgvSCcbYzwr1y2uGzhvWBgLJyxrPB24SigLTChjVDMuGBwfPBNrHAw5HyMLSAxr5lcbHBMqGAwrLBNrPzNKGCMvMywn0B3jPBMCGB3bWB3j0Dw5PDgLLCY4kcLDiqvqGsvqGrevurunuuZOklsbfEgfJDcbdBg9UzxmGkfr5CguGmsK6ieLKzw50AwnHBcbJB2rLihDPDgGGzgLMzMvYzw50igzVCM1HDhrPBMCVy29TBwvUDhmklsbtAw1PBgfYienSB25LCYaOvhLWzsaYlZmPoIbtDhj1y3r1CMfSBhKGC2LTAwXHCIbJB2rLihDPDgGGBwLUB3iGDMfYAwf0Aw9UCWOku1vque9sveveieXbtKDvquDfuZOklsbkyxzHu2nYAxb0icGUANmSic5QC3GSic5TANmSic5JANmPcI0GvhLWzvnJCMLWDcaOlNrZlcaUDhn4kqOTifz1zsaOlNz1zsKkcLvtquDfoGPGygbQC29UcNSkicaIDg9VBeLKiJOGiMnSB25Lzgv0zwn0Aw9UiIWkicaIywn0Aw9UCYi6ifSkicaGihSkicaGicaGiNr5CguIoIaIzgv0zwn0lwnSB25LCYiScIaGicaGicjKAxjLy3rVCNKIoIaIC3jJiIWkicaGicaGiM1PBLrVA2vUCYi6iduWlaOGicaGicaIBwLUtgLUzxmIoIa1laOGicaGicaIC2LTAwXHCML0EvrOCMvZAg9Szci6idaUoduScIaGicaGicjWCMLVCML0EuzPBhrLCIi6icjOAwDOiIWkicaGicaGiM1HEfjLC3vSDhmIoIaXmcWkicaGicaGiM91Dhb1De1VzguIoIaIC3vTBwfYEsikicaGih0kicbDcN0kygbGcGPqqvjbtuvurvjtoGOTigrPCMvJDg9YEtOGrgLYzwn0B3j5ihrVigfUywX5EMuGkhjLCxvPCMvKkqOTig1PBLrVA2vUCZOGtwLUAw11Bsb0B2TLBIbJB3vUDcaOzgvMyxvSDdOGntaSigXVD2vYid0GBw9YzsbZzw5ZAxrPDMuPcI0GBwLUtgLUzxm6ie1PBMLTDw0GBgLUzsbJB3vUDcaOzgvMyxvSDdOGnsKklsbZAw1PBgfYAxr5vgHYzxnOB2XKoIaWlteGC2LTAwXHCML0Esb0AhjLC2HVBgqGkgrLzMf1Bhq6idaUoduPcI0GChjPB3jPDhLgAwX0zxi6iezPBhrLCIbIEsbWCMLVCML0EsaOAgLNAc9TzwrPDw0VBg93lcbVChrPB25HBcKklsbTyxHszxn1BhrZoIbnyxHPBxvTig51BwjLCIbVzIbJBg9UzxmGDg8GCMv0DxjUicHVChrPB25HBcKklsbVDxrWDxrnB2rLoIbZDw1Tyxj5FgrLDgfPBgvKFhjLy29TBwvUzgf0Aw9UCYaOzgvMyxvSDdOGzgv0ywLSzwqPcGPfwefnueXfuZOkcJeUiezPBMqGywXSignSB25LCYbPBIbWCM9Qzwn0oGPGygbQC29UcNSkicaIDg9VBeLKiJOGiMnSB25Lzgv0zwn0Aw9UiIWkicaIywn0Aw9UCYi6ifT7icj0ExbLiJOGiMrLDgvJDc1JBg9UzxmIlcaIzgLYzwn0B3j5iJOGiI4Iih1DcN0kygbGcGOYlIbiAwDOlxbYAw9YAxr5ihjLzMfJDg9YAw5Nig9WCg9YDhvUAxrPzxmGB25SEtOkygbGANnVBGP7cIaGiNrVB2Xjzci6icjJBg9UzwrLDgvJDgLVBIiScIaGiMfJDgLVBNmIoIbBEYaIDhLWzsi6icjKzxrLy3qTy2XVBMvZiIWGiMrPCMvJDg9YEsi6icjZCMmIlcaIChjPB3jPDhLgAwX0zxiIoIaIAgLNAciSicjTyxHszxn1BhrZiJOGmtaGFv0kFqPGygakcJmUie1VCMuGC2vUC2L0AxzLigrLDgvJDgLVBIaOzMLUzhmGC21HBgXLCIbJBg9UzxmPoGPGygbQC29UcNSkicaIDg9VBeLKiJOGiMnSB25Lzgv0zwn0Aw9UiIWkicaIywn0Aw9UCYi6ifT7icj0ExbLiJOGiMrLDgvJDc1JBg9UzxmIlcaIzgLYzwn0B3j5iJOGiI4IlcaIBwLUvg9Rzw5ZiJOGmZaSicjZAw1PBgfYAxr5vgHYzxnOB2XKiJOGmc44mcb9xqP9cMbGyaOknc4GuxvPy2SGB3zLCNzPzxC6cMbGygPZB24kEWOGicj0B29SswqIoIaIy2XVBMvKzxrLy3rPB24IlaOGicjHy3rPB25ZiJOGw3SGiNr5CguIoIaIzgv0zwn0lwnSB25LCYiSicjKAxjLy3rVCNKIoIaIlIiSicjVDxrWDxrnB2rLiJOGiNn1Bw1HCNKIih1DcN0kygbGcGPpvvrqvvqGrK9stufuoGPszxr1CM5ZignSB25LigrLDgvJDgLVBIbYzxn1BhrZihDPDgG6cI0GC3vTBwfYEtOGt3zLCMfSBcbZDgf0Axn0AwnZicH0B3rHBcbJBg9UzxmSigr1CgXPy2f0Aw9UicuSihbYAw9YAxr5igjYzwfRzg93BIKklsbJBg9Uzxm6iefYCMf5ig9MigrLDgvJDgvKignSB25LigDYB3vWCYb3AxrOoGOGic0GAwqSihr5CguSignVBMzPzgvUy2uSigLUC3rHBMnLCYWGBwv0CMLJCWOGic0GCMvMywn0B3jPBMDbzhzPy2u6ihbYAw9YAxr5lcbZDhjHDgvNEsWGC3vNz2vZDgvKtMfTzsWGCMvHC29UAw5NlcbHy3rPB25HyMXLu3rLChmkcK9vvfbvvcbnt0rfuZOklsbZDw1Tyxj5oIbiAwDOlwXLDMvSig92zxj2Awv3ig9UBhKGkgr1CgXPy2f0Aw9UicuSihrVCca1ignSB25LCYKklsbKzxrHAwXLzdOGrNvSBcbJBg9UzsbKzxrHAwXZihDPDgGGy29KzsbZBMLWCgv0CYaOzgvMyxvSDcKklsbYzwnVBw1LBMrHDgLVBNm6ifjLzMfJDg9YAw5NihbYAw9YAxrPzxmGD2L0AcbHy3rPB25HyMXLihn0zxbZcGPmsu1jvefusu9ouZOklsbbBMfSExPLCYbkyxzHu2nYAxb0l1r5Cgvty3jPChqGzMfTAwX5ig9UBhKklsbnyxHPBxvTigzPBguGC2L6ztOG','BwLUlwXPBMvZ','oIbTAw4TBgLUzxmGBxvZDcbIzsbIzxr3zwvUideGyw5KideWma','Aw5ZDgfUy2vZ','BwLUlxrVA2vUCW','zM9YBwf0uMvJB21Tzw5KyxrPB25Zt3v0Chv0','AgLNAa','kIOVkI5QCW','zgvMyxvSDfnPBwLSyxjPDhLuAhjLC2HVBgq','zgLYzwn0B3j5qwnJzxnZtwfUywDLCG','mtz4y1H6uLe','CMvXDwLYzxnqCM9Qzwn0','CMvHC29UAw5N','ChjPB3jPDhK','CMvMywn0B3jPBMDbzhzPy2u','zw50CMLLCW','Bg93','oIbZAw1PBgfYAxr5lxrOCMvZAg9SzcbTDxn0igjLigjLDhDLzw4Gmc41igfUzcaXlJa','z2v0q2XVBMvezxrLy3rVCG','DhLWzq','zMLSzq','Bwf4rMLSzvnPEMu','kIOVBM9Kzv9TB2r1BgvZlYOQ','BwvKAxvT','DgLTzw91Da','zxn0Aw1HDgvKrwzMB3j0','ChvZAa','zgvIDwC','y3jLyxrLuMvSyxrPDMvqyxrO','CgfYC2vbDhrYAwj1DgvZ','C3rHCNrmAw5L','BwvZC2fNzq','oIbTAw4TDg9Rzw5Zig11C3qGyMuGyMv0D2vLBIaXmcbHBMqGmtaWma','CNvU','z2v0u3vWCg9YDgvKqwn0Aw9UCW','zxHLy3v0zq','zgv0zwn0q2XVBMvZ','q2XVBMvezxrLy3rPB24GDg9VBcbWyxjZAw5NihbHCMfTzxrLCNm','C3vNz2vZDgvKtMfTzq','oIbKAxjLy3rVCNKGAxmGCMvXDwLYzwqGzM9YigrLDgvJDc1JBg9Uzxm','Bwf4uMvZDwX0CW','BgvUz3rO','zgvMyxvSDe1PBLrVA2vUCW','zgLYzwn0B3j5','ihnLy29UzhmkicaGia','kIOVzgLZDc8QkG','odeXmdHIDer2EKS','CgfYC2vqyxjHBwv0zxjZ','mtG3nty3EgrituvN','C3rYAw5N','ywn0Aw9UCW','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','kIOVkI5QC3G','Dg90ywXgAwXLCW','BwfW','zgv0zwn0lwnSB25LCW','Bwf4lxjLC3vSDhm','CMf3q29UDgvUDa','kIOVkI52Dwu','kIOVkI50zxn0lMPZ','kIOVkI50C3G','CMvJB21Tzw5KyxrPB25Z','ugfYC2vKienSB25Lrgv0zwn0Aw9UihrVB2WGCgfYyw1LDgvYCW','zMLSDgvY','C2XPy2u','DhjPBq','BgLUzunVDw50','ChjPB3jPDhLgAwX0zxi','rMfPBgvKihrVihbHCNnLignSB25LigrLDgvJDgLVBIbWyxjHBwv0zxjZoIa','C3vIC3rYAw5N','ntGXoteWn1jbD2zKsW','u3rHCNrPBMCGy2XVBMuGzgv0zwn0Aw9U','BwLUvg9Rzw5Z','C2LTAwXHCML0Es10AhjLC2HVBgq','qwn0Aw9Uia','zMLSzxndB3zLCMvK','kIOVkI50CW','zgv0ywLSzwq','nuzkwKvTrq','BNvTyMvY','ntu2mZq0nKzMyMj3Ea','zgvMyxvSDe1PBKXPBMvZ','Aw5ZDgfUy2vdB3vUDa','y2XVBMvZ','Dg90ywXeDxbSAwnHDgvKtgLUzxm','C3rYyxrLz3K','Aw5MBW','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','ndqWnJmWsNjdC0ne','z2v0ugfYyw1LDgvYu2nOzw1H','C3vTBwfYEq','zw5KtgLUzq','B3v0Chv0tw9Kzq','mteZnKXmvujqCW','ndiYotq1n3LuAK1IAG','oIb1BMTUB3DUigfJDgLVBIb0ExbLoIa','Aw5JBhvKzxm','BM9YBwfSAxPL','kIOVkI5ZCgvJlMPZ','oIbWCMLVCML0Es1MAwX0zxiGBxvZDcbIzsbOAwDOlcbTzwrPDw0Sig9YigXVDW','CMvZB2X2zq'];a0_0x29be=function(){return _0x35c74a;};return a0_0x29be();}import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class CloneDetectionTool extends BaseTool{constructor(_0x593985={},_0x161d0c=null){const _0x110dc0=a0_0x49b7;super(_0x593985,_0x161d0c),this[_0x110dc0(0x1b7)]=!![],this['isAsync']=![],this['timeout']=_0x593985[_0x110dc0(0x1c4)]||0x1d4c0,this[_0x110dc0(0x1df)]=_0x593985[_0x110dc0(0x1df)]||0x1,this[_0x110dc0(0x1d6)]=_0x593985['defaultMinTokens']||0x32,this[_0x110dc0(0x1fd)]=_0x593985['defaultMinLines']||0x5,this[_0x110dc0(0x1b4)]=_0x593985['defaultSimilarityThreshold']||0.85,this[_0x110dc0(0x1c1)]=_0x593985['maxFileSize']||0x7a120,this[_0x110dc0(0x1b5)]=new a0_0x27b065(_0x593985,_0x161d0c),this[_0x110dc0(0x1a0)]=null;}['getDescription'](){const _0x1dfec2=a0_0x49b7;return _0x1dfec2(0x1ac)+Math['round'](this['maxFileSize']/0x400)+'KB\x20per\x20file\x0a-\x20Analysis\x20timeout:\x20'+this[_0x1dfec2(0x1c4)]/0x3e8+_0x1dfec2(0x1d8);}[a0_0xa378c8(0x1db)](_0x127e6d){const _0x3dd5d8=a0_0xa378c8;try{const _0x3a0d48={},_0x45a5be=[];this[_0x3dd5d8(0x1a9)]?.[_0x3dd5d8(0x1c7)](_0x3dd5d8(0x1d1),{'contentLength':_0x127e6d['length'],'contentPreview':_0x127e6d[_0x3dd5d8(0x1f1)](0x0,0xc8)});const _0x332963=/<detect-clones\s+(.+?)\/>/g;let _0x3b8df6;while((_0x3b8df6=_0x332963['exec'](_0x127e6d))!==null){const _0x2243bc=_0x3b8df6[0x1][_0x3dd5d8(0x1ed)](),_0x2326c5=new a0_0x20a14e(),_0x3592a7=_0x2326c5[_0x3dd5d8(0x1c9)](_0x2243bc),_0x481474={'type':_0x3dd5d8(0x1e3),..._0x3592a7};_0x481474['min-tokens']&&(_0x481474[_0x3dd5d8(0x1f4)]=parseInt(_0x481474[_0x3dd5d8(0x1b0)],0xa),delete _0x481474[_0x3dd5d8(0x1b0)]),_0x481474[_0x3dd5d8(0x1ad)]&&(_0x481474['minLines']=parseInt(_0x481474[_0x3dd5d8(0x1ad)],0xa),delete _0x481474['min-lines']),_0x481474[_0x3dd5d8(0x1f5)]&&(_0x481474['similarityThreshold']=parseFloat(_0x481474[_0x3dd5d8(0x1f5)]),delete _0x481474['similarity-threshold']),_0x481474[_0x3dd5d8(0x19f)]&&(_0x481474['priorityFilter']=_0x481474[_0x3dd5d8(0x19f)],delete _0x481474[_0x3dd5d8(0x19f)]),_0x481474[_0x3dd5d8(0x1e4)]&&(_0x481474['maxResults']=parseInt(_0x481474['max-results'],0xa),delete _0x481474[_0x3dd5d8(0x1e4)]),_0x481474['output-mode']&&(_0x481474[_0x3dd5d8(0x193)]=_0x481474['output-mode'],delete _0x481474['output-mode']),_0x45a5be['push'](_0x481474);}return _0x3a0d48['actions']=_0x45a5be,_0x3a0d48[_0x3dd5d8(0x1e5)]=_0x127e6d[_0x3dd5d8(0x1ed)](),this[_0x3dd5d8(0x1a9)]?.[_0x3dd5d8(0x1c7)](_0x3dd5d8(0x1ea),{'totalActions':_0x45a5be[_0x3dd5d8(0x1d5)],'actionTypes':_0x45a5be['map'](_0x226910=>_0x226910[_0x3dd5d8(0x1bf)])}),_0x3a0d48;}catch(_0x2ba149){throw new Error(_0x3dd5d8(0x1f0)+_0x2ba149['message']);}}['getRequiredParameters'](){return['actions'];}[a0_0xa378c8(0x19d)](_0x1a9088){const _0x14bae4=a0_0xa378c8,_0xbbcbad=[];if(!_0x1a9088['actions']||!Array['isArray'](_0x1a9088[_0x14bae4(0x1de)])||_0x1a9088['actions'][_0x14bae4(0x1d5)]===0x0)_0xbbcbad[_0x14bae4(0x1c6)](_0x14bae4(0x203));else for(const [_0x4572ea,_0x1989bd]of _0x1a9088[_0x14bae4(0x1de)][_0x14bae4(0x1bb)]()){if(!_0x1989bd['type']){_0xbbcbad['push']('Action\x20'+(_0x4572ea+0x1)+':\x20type\x20is\x20required');continue;}_0x1989bd['type']===_0x14bae4(0x1e3)?(!_0x1989bd['directory']&&_0xbbcbad['push']('Action\x20'+(_0x4572ea+0x1)+_0x14bae4(0x1d3)),_0x1989bd[_0x14bae4(0x1f4)]!==undefined&&(_0x1989bd['minTokens']<0xa||_0x1989bd[_0x14bae4(0x1f4)]>0x3e8)&&_0xbbcbad['push']('Action\x20'+(_0x4572ea+0x1)+_0x14bae4(0x1cc)),_0x1989bd['minLines']!==undefined&&(_0x1989bd[_0x14bae4(0x1a5)]<0x1||_0x1989bd['minLines']>0x64)&&_0xbbcbad['push'](_0x14bae4(0x1f6)+(_0x4572ea+0x1)+_0x14bae4(0x1ae)),_0x1989bd['similarityThreshold']!==undefined&&(_0x1989bd[_0x14bae4(0x19e)]<0.5||_0x1989bd['similarityThreshold']>0x1)&&_0xbbcbad['push'](_0x14bae4(0x1f6)+(_0x4572ea+0x1)+_0x14bae4(0x1bd)),_0x1989bd['priorityFilter']&&![_0x14bae4(0x1b2),'medium','low'][_0x14bae4(0x197)](_0x1989bd['priorityFilter'])&&_0xbbcbad[_0x14bae4(0x1c6)]('Action\x20'+(_0x4572ea+0x1)+_0x14bae4(0x19a)),_0x1989bd[_0x14bae4(0x193)]&&![_0x14bae4(0x191),'detailed','recommendations'][_0x14bae4(0x197)](_0x1989bd[_0x14bae4(0x193)])&&_0xbbcbad[_0x14bae4(0x1c6)](_0x14bae4(0x1f6)+(_0x4572ea+0x1)+':\x20output-mode\x20must\x20be\x20summary,\x20detailed,\x20or\x20recommendations')):_0xbbcbad['push'](_0x14bae4(0x1f6)+(_0x4572ea+0x1)+_0x14bae4(0x196)+_0x1989bd[_0x14bae4(0x1bf)]);}return{'valid':_0xbbcbad[_0x14bae4(0x1d5)]===0x0,'errors':_0xbbcbad};}async[a0_0xa378c8(0x1cf)](_0x49ef2e,_0x52f225){const _0xd32ff3=a0_0xa378c8,{actions:_0x29b541}=_0x49ef2e,{projectDir:_0x25f375,agentId:_0x185404,directoryAccess:_0xd38511}=_0x52f225,_0x368e08=_0xd38511||this[_0xd32ff3(0x1b5)]['createDirectoryAccess']({'workingDirectory':_0x25f375||process[_0xd32ff3(0x1a7)](),'writeEnabledDirectories':[],'readOnlyDirectories':[_0x25f375||process[_0xd32ff3(0x1a7)]()],'restrictToProject':!![]}),_0x1b11cd=this['directoryAccessManager']['getWorkingDirectory'](_0x368e08),_0x5b08b7=[];for(const _0x214353 of _0x29b541){try{if(_0x214353[_0xd32ff3(0x1bf)]===_0xd32ff3(0x1e3)){const _0x86ac92=await this[_0xd32ff3(0x1d0)](_0x214353[_0xd32ff3(0x1d7)],_0x1b11cd,_0x368e08,_0x214353);_0x5b08b7['push'](_0x86ac92);}else throw new Error('Unknown\x20action\x20type:\x20'+_0x214353[_0xd32ff3(0x1bf)]);}catch(_0x5c42e9){this['logger']?.['error']('Clone\x20detection\x20action\x20failed',{'action':_0x214353['type'],'error':_0x5c42e9[_0xd32ff3(0x1cb)]}),_0x5b08b7[_0xd32ff3(0x1c6)]({'directory':_0x214353[_0xd32ff3(0x1d7)],'error':_0x5c42e9[_0xd32ff3(0x1cb)],'success':![]});}}return{'success':!![],'results':_0x5b08b7,'toolUsed':_0xd32ff3(0x19c)};}async[a0_0xa378c8(0x1d0)](_0x45c75d,_0x20de61,_0x1cb95c,_0xe4b7fe={}){const _0x497a6b=a0_0xa378c8,_0x3e7e53=a0_0x1610a4['isAbsolute'](_0x45c75d)?a0_0x1610a4[_0x497a6b(0x198)](_0x45c75d):a0_0x1610a4[_0x497a6b(0x19b)](_0x20de61,_0x45c75d),_0x7f6cc9=this[_0x497a6b(0x1b5)]['validateReadAccess'](_0x3e7e53,_0x1cb95c);if(!_0x7f6cc9[_0x497a6b(0x1a4)])throw new Error('Read\x20access\x20denied:\x20'+_0x7f6cc9['reason']);try{const _0x46e5b1=await this[_0x497a6b(0x1be)](),_0x1f9ca6={'minTokens':_0xe4b7fe['minTokens']||this[_0x497a6b(0x1d6)],'minLines':_0xe4b7fe[_0x497a6b(0x1a5)]||this[_0x497a6b(0x1fd)],'similarityThreshold':_0xe4b7fe['similarityThreshold']||this['defaultSimilarityThreshold'],'include':[_0x497a6b(0x1b3),_0x497a6b(0x1e0),'**/*.mjs','**/*.cjs',_0x497a6b(0x1f8),'**/*.tsx',_0x497a6b(0x1e6)],'exclude':['**/node_modules/**',_0x497a6b(0x1d9),'**/build/**',_0x497a6b(0x1e7),_0x497a6b(0x199)],'maxFileSize':this[_0x497a6b(0x1c1)]};this[_0x497a6b(0x1a9)]?.[_0x497a6b(0x202)](_0x497a6b(0x1f3),{'directory':_0x3e7e53,'config':_0x1f9ca6});const _0x595a7a=await _0x46e5b1[_0x497a6b(0x1cd)](_0x3e7e53,null);if(!_0x595a7a)return{'directory':this[_0x497a6b(0x1b5)]['createRelativePath'](_0x3e7e53,_0x1cb95c),'fullPath':_0x3e7e53,'success':!![],'summary':{'totalFiles':0x0,'totalClones':0x0,'duplicationPercentage':0x0},'clones':[],'message':_0x497a6b(0x1a6)};let _0x19b46e=_0x595a7a[_0x497a6b(0x1ff)];_0xe4b7fe[_0x497a6b(0x1ef)]&&(_0x19b46e=_0x19b46e[_0x497a6b(0x1eb)](_0x1404f9=>_0x1404f9['refactoringAdvice']['priority']===_0xe4b7fe[_0x497a6b(0x1ef)]));_0xe4b7fe[_0x497a6b(0x1d4)]&&(_0x19b46e=_0x19b46e[_0x497a6b(0x1ec)](0x0,_0xe4b7fe[_0x497a6b(0x1d4)]));const _0x181660=_0xe4b7fe['outputMode']||_0x497a6b(0x1f9);if(_0x181660===_0x497a6b(0x191))return this['formatSummaryOutput'](_0x595a7a,_0x19b46e,_0x3e7e53,_0x1cb95c);else return _0x181660==='recommendations'?this[_0x497a6b(0x1b1)](_0x595a7a,_0x19b46e,_0x3e7e53,_0x1cb95c):this['formatDetailedOutput'](_0x595a7a,_0x19b46e,_0x3e7e53,_0x1cb95c);}catch(_0x4b5fa6){throw new Error('Failed\x20to\x20detect\x20clones\x20in\x20'+_0x45c75d+':\x20'+_0x4b5fa6['message']);}}['formatSummaryOutput'](_0x741355,_0x1fdf23,_0x3af72f,_0x3287a7){const _0x22a227=a0_0xa378c8;return{'directory':this['directoryAccessManager']['createRelativePath'](_0x3af72f,_0x3287a7),'fullPath':_0x3af72f,'success':!![],'outputMode':'summary','summary':{'totalFiles':_0x741355['summary']['totalFiles'],'totalClones':_0x741355['summary']['totalClones'],'duplicatedLines':_0x741355['summary'][_0x22a227(0x200)],'duplicationPercentage':_0x741355[_0x22a227(0x191)]['duplicationPercentage'],'priorityCounts':_0x741355['summary']['priorityCounts'],'topClones':_0x1fdf23['slice'](0x0,0x5)[_0x22a227(0x1e2)](_0x2fa61d=>({'id':_0x2fa61d['id'],'type':_0x2fa61d[_0x22a227(0x1bf)],'confidence':_0x2fa61d['confidence'],'instances':_0x2fa61d[_0x22a227(0x1a8)][_0x22a227(0x1fe)],'lines':_0x2fa61d['metrics']['lineCount'],'priority':_0x2fa61d[_0x22a227(0x1ba)][_0x22a227(0x1b9)],'strategy':_0x2fa61d[_0x22a227(0x1ba)]['strategy'],'locations':_0x2fa61d['instances'][_0x22a227(0x1e2)](_0x5c08fd=>_0x5c08fd[_0x22a227(0x1c0)]+':'+_0x5c08fd[_0x22a227(0x1ca)]+'-'+_0x5c08fd[_0x22a227(0x192)])}))}};}[a0_0xa378c8(0x1b1)](_0x221ddf,_0x288d71,_0x218eed,_0x3642e5){const _0x4d0141=a0_0xa378c8;return{'directory':this[_0x4d0141(0x1b5)][_0x4d0141(0x1c8)](_0x218eed,_0x3642e5),'fullPath':_0x218eed,'success':!![],'outputMode':'recommendations','summary':{'totalFiles':_0x221ddf['summary'][_0x4d0141(0x1e1)],'totalClones':_0x221ddf[_0x4d0141(0x191)]['totalClones'],'duplicationPercentage':_0x221ddf['summary']['duplicationPercentage']},'recommendations':_0x288d71[_0x4d0141(0x1e2)](_0x4d402c=>({'id':_0x4d402c['id'],'priority':_0x4d402c[_0x4d0141(0x1ba)][_0x4d0141(0x1b9)],'strategy':_0x4d402c[_0x4d0141(0x1ba)][_0x4d0141(0x201)],'suggestedName':_0x4d402c[_0x4d0141(0x1ba)][_0x4d0141(0x1d2)],'reasoning':_0x4d402c['refactoringAdvice'][_0x4d0141(0x1b8)],'effort':_0x4d402c[_0x4d0141(0x1ba)][_0x4d0141(0x1c5)],'benefits':_0x4d402c['refactoringAdvice']['benefits'],'steps':_0x4d402c['refactoringAdvice']['actionableSteps'],'metrics':{'instances':_0x4d402c['metrics'][_0x4d0141(0x1fe)],'lines':_0x4d402c[_0x4d0141(0x1a8)][_0x4d0141(0x1ee)],'files':_0x4d402c[_0x4d0141(0x1a8)][_0x4d0141(0x1f7)],'impact':_0x4d402c[_0x4d0141(0x1a8)]['impactScore']},'locations':_0x4d402c[_0x4d0141(0x1af)]['map'](_0x5e6fb9=>({'file':_0x5e6fb9['file'],'startLine':_0x5e6fb9[_0x4d0141(0x1ca)],'endLine':_0x5e6fb9['endLine']}))}))};}['formatDetailedOutput'](_0x29bea9,_0x9da2e3,_0x237eb2,_0x40b058){const _0x13fa69=a0_0xa378c8;return{'directory':this['directoryAccessManager'][_0x13fa69(0x1c8)](_0x237eb2,_0x40b058),'fullPath':_0x237eb2,'success':!![],'outputMode':_0x13fa69(0x1f9),'summary':_0x29bea9[_0x13fa69(0x191)],'clones':_0x9da2e3[_0x13fa69(0x1e2)](_0x1915ba=>({..._0x1915ba,'instances':_0x1915ba[_0x13fa69(0x1af)]['map'](_0x3282d9=>({..._0x3282d9,'code':_0x3282d9['code'][_0x13fa69(0x1aa)]('\x0a')['slice'](0x0,0xa)['join']('\x0a')+(_0x3282d9['code'][_0x13fa69(0x1aa)]('\x0a')['length']>0xa?'\x0a...\x20(truncated)':'')}))}))};}async[a0_0xa378c8(0x1be)](){const _0x312811=a0_0xa378c8;if(!this[_0x312811(0x1a0)]){const {CloneDetectionTool:_0x187a8d}=await import('../analyzers/codeCloneDetector/index.js'),_0x16ec0a={'minTokens':this[_0x312811(0x1d6)],'minLines':this['defaultMinLines'],'similarityThreshold':this[_0x312811(0x1b4)],'include':[_0x312811(0x1b3),'**/*.jsx',_0x312811(0x1f8),_0x312811(0x1e8),'**/*.vue'],'exclude':[_0x312811(0x1c2),_0x312811(0x1d9),'**/build/**'],'maxFileSize':this['maxFileSize']};this[_0x312811(0x1a0)]=new _0x187a8d(_0x16ec0a),this['logger']?.[_0x312811(0x1c7)]('Clone\x20detector\x20initialized',{'config':_0x16ec0a});}return this[_0x312811(0x1a0)];}[a0_0xa378c8(0x1ce)](){return['detect-clones'];}[a0_0xa378c8(0x190)](){const _0xf04b20=a0_0xa378c8;return{'type':_0xf04b20(0x1ab),'properties':{'actions':{'type':_0xf04b20(0x1a1),'minItems':0x1,'items':{'type':_0xf04b20(0x1ab),'properties':{'type':{'type':_0xf04b20(0x1dd),'enum':this[_0xf04b20(0x1ce)]()},'directory':{'type':'string'},'minTokens':{'type':_0xf04b20(0x1fb),'minimum':0xa,'maximum':0x3e8},'minLines':{'type':'number','minimum':0x1,'maximum':0x64},'similarityThreshold':{'type':_0xf04b20(0x1fb),'minimum':0.5,'maximum':0x1},'priorityFilter':{'type':'string','enum':[_0xf04b20(0x1b2),_0xf04b20(0x1c3),_0xf04b20(0x1bc)]},'maxResults':{'type':_0xf04b20(0x1fb),'minimum':0x1},'outputMode':{'type':'string','enum':[_0xf04b20(0x191),_0xf04b20(0x1f9),_0xf04b20(0x1e9)]}},'required':['type',_0xf04b20(0x1d7)]}}},'required':[_0xf04b20(0x1de)]};}}export default CloneDetectionTool;
|