@loxia-labs/loxia-autopilot-one 1.0.12 → 1.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +1 -1
- package/bin/loxia-terminal-v2.js +1 -1
- package/bin/loxia-terminal.js +1 -1
- package/bin/start-with-terminal.js +1 -1
- package/package.json +1 -2
- package/scripts/install-scanners.js +1 -1
- package/src/analyzers/CSSAnalyzer.js +1 -1
- package/src/analyzers/ConfigValidator.js +1 -1
- package/src/analyzers/ESLintAnalyzer.js +1 -1
- package/src/analyzers/JavaScriptAnalyzer.js +1 -1
- package/src/analyzers/PrettierFormatter.js +1 -1
- package/src/analyzers/PythonAnalyzer.js +1 -1
- package/src/analyzers/SecurityAnalyzer.js +1 -1
- package/src/analyzers/TypeScriptAnalyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/detector.js +1 -1
- package/src/analyzers/codeCloneDetector/index.js +1 -1
- package/src/analyzers/codeCloneDetector/parser.js +1 -1
- package/src/analyzers/codeCloneDetector/reporter.js +1 -1
- package/src/analyzers/codeCloneDetector/scanner.js +1 -1
- package/src/core/agentPool.js +1 -1
- package/src/core/agentScheduler.js +1 -1
- package/src/core/contextManager.js +1 -1
- package/src/core/messageProcessor.js +1 -1
- package/src/core/orchestrator.js +1 -1
- package/src/core/stateManager.js +1 -1
- package/src/index.js +1 -1
- package/src/interfaces/cli.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
- package/src/interfaces/terminal/api/apiClient.js +1 -1
- package/src/interfaces/terminal/api/messageRouter.js +1 -1
- package/src/interfaces/terminal/api/session.js +1 -1
- package/src/interfaces/terminal/api/websocket.js +1 -1
- package/src/interfaces/terminal/components/AgentCreator.js +1 -1
- package/src/interfaces/terminal/components/AgentEditor.js +1 -1
- package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
- package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
- package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
- package/src/interfaces/terminal/components/Header.js +1 -1
- package/src/interfaces/terminal/components/HelpPanel.js +1 -1
- package/src/interfaces/terminal/components/InputBox.js +1 -1
- package/src/interfaces/terminal/components/Layout.js +1 -1
- package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
- package/src/interfaces/terminal/components/MessageList.js +1 -1
- package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
- package/src/interfaces/terminal/components/SearchPanel.js +1 -1
- package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
- package/src/interfaces/terminal/components/StatusBar.js +1 -1
- package/src/interfaces/terminal/components/TextInput.js +1 -1
- package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
- package/src/interfaces/terminal/config/constants.js +1 -1
- package/src/interfaces/terminal/index.js +1 -1
- package/src/interfaces/terminal/state/useAgentControl.js +1 -1
- package/src/interfaces/terminal/state/useAgents.js +1 -1
- package/src/interfaces/terminal/state/useConnection.js +1 -1
- package/src/interfaces/terminal/state/useMessages.js +1 -1
- package/src/interfaces/terminal/state/useTools.js +1 -1
- package/src/interfaces/terminal/utils/debugLogger.js +1 -1
- package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
- package/src/interfaces/terminal/utils/theme.js +1 -1
- package/src/interfaces/webServer.js +1 -1
- package/src/modules/fileExplorer/controller.js +1 -1
- package/src/modules/fileExplorer/index.js +1 -1
- package/src/modules/fileExplorer/middleware.js +1 -1
- package/src/modules/fileExplorer/routes.js +1 -1
- package/src/services/aiService.js +1 -1
- package/src/services/apiKeyManager.js +1 -1
- package/src/services/benchmarkService.js +1 -1
- package/src/services/budgetService.js +1 -1
- package/src/services/contextInjectionService.js +1 -1
- package/src/services/conversationCompactionService.js +1 -1
- package/src/services/errorHandler.js +1 -1
- package/src/services/fileAttachmentService.js +1 -1
- package/src/services/modelRouterService.js +1 -1
- package/src/services/modelsService.js +1 -1
- package/src/services/qualityInspector.js +1 -1
- package/src/services/tokenCountingService.js +1 -1
- package/src/tools/agentCommunicationTool.js +1 -1
- package/src/tools/agentDelayTool.js +1 -1
- package/src/tools/asyncToolManager.js +1 -1
- package/src/tools/baseTool.js +1 -1
- package/src/tools/browserTool.js +1 -1
- package/src/tools/cloneDetectionTool.js +1 -1
- package/src/tools/dependencyResolverTool.js +1 -1
- package/src/tools/fileContentReplaceTool.js +1 -1
- package/src/tools/fileSystemTool.js +1 -1
- package/src/tools/fileTreeTool.js +1 -1
- package/src/tools/imageTool.js +1 -1
- package/src/tools/importAnalyzerTool.js +1 -1
- package/src/tools/jobDoneTool.js +1 -1
- package/src/tools/seekTool.js +1 -1
- package/src/tools/staticAnalysisTool.js +1 -1
- package/src/tools/taskManagerTool.js +1 -1
- package/src/tools/terminalTool.js +1 -1
- package/src/tools/webTool.js +1 -1
- package/src/types/agent.js +1 -1
- package/src/types/contextReference.js +1 -1
- package/src/types/conversation.js +1 -1
- package/src/types/toolCommand.js +1 -1
- package/src/utilities/attachmentValidator.js +1 -1
- package/src/utilities/configManager.js +1 -1
- package/src/utilities/constants.js +1 -1
- package/src/utilities/directoryAccessManager.js +1 -1
- package/src/utilities/fileProcessor.js +1 -1
- package/src/utilities/logger.js +1 -1
- package/src/utilities/tagParser.js +1 -1
- package/src/utilities/toolConstants.js +1 -1
- package/src/utilities/userDataDir.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x1df474=a0_0x4017;(function(_0x160d62,_0x1f11ed){const _0x1cd6b5=a0_0x4017,_0x4890b7=_0x160d62();while(!![]){try{const _0x5c427e=parseInt(_0x1cd6b5(0x10c))/0x1+-parseInt(_0x1cd6b5(0x14e))/0x2+-parseInt(_0x1cd6b5(0x151))/0x3*(-parseInt(_0x1cd6b5(0x13d))/0x4)+parseInt(_0x1cd6b5(0x138))/0x5*(-parseInt(_0x1cd6b5(0x13c))/0x6)+parseInt(_0x1cd6b5(0x152))/0x7*(parseInt(_0x1cd6b5(0x10d))/0x8)+parseInt(_0x1cd6b5(0x10a))/0x9+-parseInt(_0x1cd6b5(0x15b))/0xa;if(_0x5c427e===_0x1f11ed)break;else _0x4890b7['push'](_0x4890b7['shift']());}catch(_0x19f012){_0x4890b7['push'](_0x4890b7['shift']());}}}(a0_0x418c,0x2f41e));function a0_0x4017(_0x123852,_0x436927){_0x123852=_0x123852-0x103;const _0x418cc1=a0_0x418c();let _0x40175c=_0x418cc1[_0x123852];if(a0_0x4017['LNzLAg']===undefined){var _0x17dcbb=function(_0x40fa96){const _0x1c107e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xcab521='',_0x5b54df='';for(let _0xc4145=0x0,_0x48ea6b,_0x4cb32d,_0x518b31=0x0;_0x4cb32d=_0x40fa96['charAt'](_0x518b31++);~_0x4cb32d&&(_0x48ea6b=_0xc4145%0x4?_0x48ea6b*0x40+_0x4cb32d:_0x4cb32d,_0xc4145++%0x4)?_0xcab521+=String['fromCharCode'](0xff&_0x48ea6b>>(-0x2*_0xc4145&0x6)):0x0){_0x4cb32d=_0x1c107e['indexOf'](_0x4cb32d);}for(let _0x154e64=0x0,_0x185355=_0xcab521['length'];_0x154e64<_0x185355;_0x154e64++){_0x5b54df+='%'+('00'+_0xcab521['charCodeAt'](_0x154e64)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5b54df);};a0_0x4017['lllOxN']=_0x17dcbb,a0_0x4017['aTAMUc']={},a0_0x4017['LNzLAg']=!![];}const _0x1dfc98=_0x418cc1[0x0],_0x27105c=_0x123852+_0x1dfc98,_0x539bc7=a0_0x4017['aTAMUc'][_0x27105c];return!_0x539bc7?(_0x40175c=a0_0x4017['lllOxN'](_0x40175c),a0_0x4017['aTAMUc'][_0x27105c]=_0x40175c):_0x40175c=_0x539bc7,_0x40175c;}import a0_0xcab521 from'events';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x418c(){const _0x30f810=['Bwf4sgLZDg9YEvnPEMu','D2fYBG','rKfjteve','C29YDa','q09nueXfveve','z2v0','zgvMyxvSDfrPBwvVDxq','Bwf4uMv0CMLLCW','yNLuB29S','q2XLyw5Lzcb1Cca','ChvZAa','C2L6zq','AgfUzgXLt3bLCMf0Aw9Uu3rHCNrLza','B3bLCMf0Aw9UoMzHAwXLza','B3aT','z2vUzxjHDgvpCgvYyxrPB25jza','B3bLCMf0Aw9UoMnVBxbSzxrLza','Aw5MBW','C2v0','Dg9tDhjPBMC','C3rHCNrLzef0','t3bLCMf0Aw9UihrPBwvKig91DcbHzNrLCIa','B2XKzxn0t3bLCMf0Aw9U','DMfSDwvZ','ChjVz3jLC3m','y29TCgXLDgvKqxq','t3bLCMf0Aw9UigzHAwXLzdOG','CMvZDwX0','B3bLCMf0Aw9UoNrPBwvVDxq','BM93','DgLTzw91DeHHBMrSzq','zgvIDwC','mJyXnuj5q1bUvq','y2XLyw51Ce9WzxjHDgLVBG','t3bLCMf0Aw9UihjLDhj5igLUAxrPyxrLzdOG','C3rHCNrnB25PDg9YAw5N','ota2zwn6sxrM','ner2AwLwsq','B3bLCMf0Aw9UoNjLDhj5','zMLSDgvY','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','zw1PDa','C2XPy2u','uevoreLorW','B3bLCMf0Aw9UoMnSzwfUDxa','rvHfq1vusu5h','BgvUz3rO','t3bLCMf0Aw9UignVBxbSzxrLzdOG','Bw9UAxrVCMLUz0LUDgvYDMfS','BgLTAxq','B3bLCMf0Aw9UCW','C3rHDhvZ','u3LZDgvTihnODxrKB3DU','CMv0CNLdB3vUDa','ndm3mtK4tMvVvMfX','zxjYB3i','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rVChbLza','ndGXnJiZCfDOyxbA','nJnVv3rAq1m','y29UzMLN','y2XLyw51CeLUDgvYDMfS','ignVBxbSzxrLzcbVCgvYyxrPB25Z','y2XLyxjpCgvYyxrPB25uAw1LB3v0','AgfUzgXLt3bLCMf0Aw9Uq29TCgXLDgvK','t3bLCMf0Aw9UignHBMnLBgXLzdOG','q2fUBM90ignHBMnLBcbJB21WBgv0zwqVzMfPBgvKig9WzxjHDgLVBJOG','y2HLy2TpCgvYyxrPB25uAw1LB3v0CW','ndaXntmXmgf4sffeDG','Dg9VBeLK','y2fUy2vSt3bLCMf0Aw9U','y2fSy3vSyxrLrxHLy3v0Aw9UvgLTzq','yNLtDgf0Dxm','q2fUBM90ihjLDhj5ig5VBI1MywLSzwqGB3bLCMf0Aw9UoIa','z2v0t3bLCMf0Aw9U','z2v0vgLTzq','y3jLyxrLzef0','A2v5CW','y2XLyw51CenVBxbSzxrLze9WzxjHDgLVBNm','zgvSzxrL','z2v0qwDLBNrpCgvYyxrPB25Z','B3bLCMf0Aw9UoNn0yxj0zwq','yMLUza','mtyYmZm1n094wfvIsW','B3bLCMf0Aw9UsgLZDg9YEq','mZm3mJy3zw9wvfH1','mtKWnJu2zffuzvDu','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rHCNrLza','yNLbz2vUDa','ywDLBNrjza','yxzLCMfNzuv4zwn1DgLVBLrPBwu','Bg9Nz2vY','C3rVCe1VBML0B3jPBMC','AgfUzgXLt3bLCMf0Aw9UvgLTzw91Da','C3rHCNrpCgvYyxrPB24','q0foq0vmteve','C3vIC3rY'];a0_0x418c=function(){return _0x30f810;};return a0_0x418c();}class AsyncToolManager extends a0_0xcab521{constructor(_0x5b54df={},_0xc4145=null){const _0x1e3221=a0_0x4017;super(),this[_0x1e3221(0x153)]=_0x5b54df,this['logger']=_0xc4145,this['operations']=new Map(),this['operationHistory']=[],this['maxConcurrentOperations']=_0x5b54df['maxConcurrentOperations']||0xa,this['defaultTimeout']=_0x5b54df['defaultTimeout']||0x493e0,this[_0x1e3221(0x154)]=_0x5b54df[_0x1e3221(0x154)]||0xea60,this['maxHistorySize']=_0x5b54df['maxHistorySize']||0x3e8,this['monitoringInterval']=null,this['isShuttingDown']=![],this[_0x1e3221(0x13b)](),this['on']('operation:started',this[_0x1e3221(0x124)][_0x1e3221(0x109)](this)),this['on'](_0x1e3221(0x128),this['handleOperationCompleted']['bind'](this)),this['on']('operation:failed',this['handleOperationFailed'][_0x1e3221(0x109)](this)),this['on'](_0x1e3221(0x134),this['handleOperationTimeout'][_0x1e3221(0x109)](this));}async[a0_0x1df474(0x115)](_0x48ea6b,_0x4cb32d,_0x518b31,_0x154e64={}){const _0x598f32=a0_0x1df474;if(this[_0x598f32(0x14a)]['size']>=this['maxConcurrentOperations'])throw new Error('Maximum\x20concurrent\x20operations\x20reached\x20('+this[_0x598f32(0x140)]+')');const _0x185355=this[_0x598f32(0x127)](),_0x199b7a={'id':_0x185355,'toolId':_0x48ea6b,'agentId':_0x4cb32d,'parameters':_0x518b31,'context':_0x154e64,'status':TOOL_STATUS['PENDING'],'createdAt':new Date()['toISOString'](),'startedAt':null,'completedAt':null,'timeout':_0x154e64['timeout']||this[_0x598f32(0x11e)],'result':null,'error':null,'progress':null,'retryCount':0x0,'maxRetries':_0x154e64[_0x598f32(0x11f)]||0x0};return this[_0x598f32(0x14a)][_0x598f32(0x12a)](_0x185355,_0x199b7a),this[_0x598f32(0x112)]?.[_0x598f32(0x129)]('Async\x20operation\x20started:\x20'+_0x185355,{'toolId':_0x48ea6b,'agentId':_0x4cb32d,'parametersCount':Object[_0x598f32(0x104)](_0x518b31)[_0x598f32(0x146)],'timeout':_0x199b7a['timeout']}),this['setOperationTimeout'](_0x185355),this['emit'](_0x598f32(0x108),_0x199b7a),_0x185355;}['updateOperation'](_0x19e344,_0x4ce488,_0x13f5b7={}){const _0x481913=a0_0x1df474,_0x4279e6=this[_0x481913(0x14a)][_0x481913(0x11d)](_0x19e344);if(!_0x4279e6)return this['logger']?.[_0x481913(0x119)]('Attempted\x20to\x20update\x20unknown\x20operation:\x20'+_0x19e344),![];const _0x8e1bf4=_0x4279e6[_0x481913(0x14b)];_0x4279e6[_0x481913(0x14b)]=_0x4ce488;_0x4ce488===TOOL_STATUS[_0x481913(0x145)]&&!_0x4279e6[_0x481913(0x12c)]&&(_0x4279e6[_0x481913(0x12c)]=new Date()['toISOString']());(_0x4ce488===TOOL_STATUS[_0x481913(0x11c)]||_0x4ce488===TOOL_STATUS[_0x481913(0x11a)])&&(_0x4279e6[_0x481913(0x131)]=new Date()['toISOString']());if(_0x13f5b7[_0x481913(0x133)]!==undefined)_0x4279e6[_0x481913(0x133)]=_0x13f5b7[_0x481913(0x133)];if(_0x13f5b7[_0x481913(0x14f)]!==undefined)_0x4279e6[_0x481913(0x14f)]=_0x13f5b7[_0x481913(0x14f)];if(_0x13f5b7[_0x481913(0x130)]!==undefined)_0x4279e6['progress']=_0x13f5b7[_0x481913(0x130)];this[_0x481913(0x112)]?.['debug']('Operation\x20status\x20updated:\x20'+_0x19e344,{'previousStatus':_0x8e1bf4,'newStatus':_0x4ce488,'hasResult':!!_0x13f5b7['result'],'hasError':!!_0x13f5b7[_0x481913(0x14f)],'progress':_0x13f5b7[_0x481913(0x130)]});switch(_0x4ce488){case TOOL_STATUS['COMPLETED']:this['emit']('operation:completed',_0x4279e6);break;case TOOL_STATUS['FAILED']:this[_0x481913(0x141)](_0x481913(0x125),_0x4279e6);break;case TOOL_STATUS['EXECUTING']:this[_0x481913(0x141)]('operation:progress',_0x4279e6);break;}return!![];}[a0_0x1df474(0x161)](_0x5cd91d){const _0x5ea567=a0_0x1df474,_0x21ce50=this['operations']['get'](_0x5cd91d);if(!_0x21ce50)return null;return{'id':_0x21ce50['id'],'toolId':_0x21ce50['toolId'],'agentId':_0x21ce50['agentId'],'status':_0x21ce50[_0x5ea567(0x14b)],'createdAt':_0x21ce50[_0x5ea567(0x103)],'startedAt':_0x21ce50[_0x5ea567(0x12c)],'completedAt':_0x21ce50[_0x5ea567(0x131)],'result':_0x21ce50['result'],'error':_0x21ce50['error'],'progress':_0x21ce50[_0x5ea567(0x130)],'retryCount':_0x21ce50['retryCount'],'executionTime':this[_0x5ea567(0x15e)](_0x21ce50)};}[a0_0x1df474(0x107)](_0x14bec6){const _0x50267e=a0_0x1df474,_0x484676=[];for(const _0x2a4eb7 of this[_0x50267e(0x14a)][_0x50267e(0x12f)]()){_0x2a4eb7[_0x50267e(0x110)]===_0x14bec6&&_0x484676[_0x50267e(0x122)](this[_0x50267e(0x161)](_0x2a4eb7['id']));}return _0x484676[_0x50267e(0x11b)]((_0x26cd87,_0x2034bb)=>new Date(_0x2034bb['createdAt'])-new Date(_0x26cd87['createdAt']));}async['cancelOperation'](_0x3e57a2,_0x5043ae='Operation\x20cancelled'){const _0x318e1a=a0_0x1df474,_0x52b93=this['operations'][_0x318e1a(0x11d)](_0x3e57a2);if(!_0x52b93)return![];if(_0x52b93[_0x318e1a(0x14b)]===TOOL_STATUS[_0x318e1a(0x11c)]||_0x52b93['status']===TOOL_STATUS['FAILED'])return this[_0x318e1a(0x112)]?.[_0x318e1a(0x119)](_0x318e1a(0x159)+_0x3e57a2),![];return this['updateOperation'](_0x3e57a2,TOOL_STATUS[_0x318e1a(0x116)],{'error':_0x5043ae}),this[_0x318e1a(0x156)](_0x3e57a2),this[_0x318e1a(0x141)]('operation:cancelled',_0x52b93),await this[_0x318e1a(0x139)](_0x3e57a2),this['logger']?.[_0x318e1a(0x129)](_0x318e1a(0x158)+_0x3e57a2,{'reason':_0x5043ae}),!![];}async['retryOperation'](_0x2cfab0){const _0x5422f0=a0_0x1df474,_0x33e688=this['operations'][_0x5422f0(0x11d)](_0x2cfab0);if(!_0x33e688)return![];if(_0x33e688[_0x5422f0(0x14b)]!==TOOL_STATUS[_0x5422f0(0x11a)])return this['logger']?.[_0x5422f0(0x119)](_0x5422f0(0x160)+_0x2cfab0),![];if(_0x33e688[_0x5422f0(0x14d)]>=_0x33e688['maxRetries'])return this['logger']?.[_0x5422f0(0x119)]('Maximum\x20retries\x20exceeded\x20for\x20operation:\x20'+_0x2cfab0),![];return _0x33e688[_0x5422f0(0x14d)]++,_0x33e688[_0x5422f0(0x14b)]=TOOL_STATUS[_0x5422f0(0x143)],_0x33e688[_0x5422f0(0x12c)]=null,_0x33e688['completedAt']=null,_0x33e688['error']=null,_0x33e688[_0x5422f0(0x133)]=null,this['setOperationTimeout'](_0x2cfab0),this[_0x5422f0(0x112)]?.[_0x5422f0(0x129)](_0x5422f0(0x13a)+_0x2cfab0,{'retryCount':_0x33e688['retryCount'],'maxRetries':_0x33e688['maxRetries']}),this['emit'](_0x5422f0(0x13e),_0x33e688),!![];}['getStatistics'](){const _0x30bf46=a0_0x1df474,_0x46d8dc={'total':this[_0x30bf46(0x14a)][_0x30bf46(0x123)],'byStatus':{},'byTool':{},'byAgent':{},'averageExecutionTime':0x0,'oldestOperation':null,'newestOperation':null};let _0x3a0426=0x0,_0xb3d710=0x0,_0x10a4de=null,_0x34cbd3=null;for(const _0x373efd of this[_0x30bf46(0x14a)][_0x30bf46(0x12f)]()){_0x46d8dc['byStatus'][_0x373efd['status']]=(_0x46d8dc[_0x30bf46(0x15f)][_0x373efd['status']]||0x0)+0x1,_0x46d8dc[_0x30bf46(0x120)][_0x373efd['toolId']]=(_0x46d8dc[_0x30bf46(0x120)][_0x373efd[_0x30bf46(0x15c)]]||0x0)+0x1,_0x46d8dc[_0x30bf46(0x10f)][_0x373efd[_0x30bf46(0x110)]]=(_0x46d8dc['byAgent'][_0x373efd[_0x30bf46(0x110)]]||0x0)+0x1;const _0x3e7b18=this[_0x30bf46(0x15e)](_0x373efd);_0x3e7b18>0x0&&(_0x3a0426+=_0x3e7b18,_0xb3d710++);const _0x4eb5a0=new Date(_0x373efd[_0x30bf46(0x103)])[_0x30bf46(0x162)]();(!_0x10a4de||_0x4eb5a0<_0x10a4de)&&(_0x10a4de=_0x4eb5a0,_0x46d8dc[_0x30bf46(0x12e)]=_0x373efd['id']),(!_0x34cbd3||_0x4eb5a0>_0x34cbd3)&&(_0x34cbd3=_0x4eb5a0,_0x46d8dc['newestOperation']=_0x373efd['id']);}return _0x46d8dc[_0x30bf46(0x111)]=_0xb3d710>0x0?Math['round'](_0x3a0426/_0xb3d710):0x0,_0x46d8dc;}async[a0_0x1df474(0x105)](_0x51eccd=0x36ee80){const _0x2f3531=a0_0x1df474,_0x53c623=Date[_0x2f3531(0x135)]()-_0x51eccd,_0x574c6e=[];for(const _0x16c080 of this['operations'][_0x2f3531(0x12f)]()){(_0x16c080[_0x2f3531(0x14b)]===TOOL_STATUS['COMPLETED']||_0x16c080[_0x2f3531(0x14b)]===TOOL_STATUS['FAILED']||_0x16c080[_0x2f3531(0x14b)]===TOOL_STATUS[_0x2f3531(0x116)])&&new Date(_0x16c080[_0x2f3531(0x131)])['getTime']()<_0x53c623&&_0x574c6e[_0x2f3531(0x122)](_0x16c080['id']);}for(const _0x3d9289 of _0x574c6e){await this['cleanupOperation'](_0x3d9289);}return this[_0x2f3531(0x112)]?.[_0x2f3531(0x137)](_0x2f3531(0x121)+_0x574c6e['length']+_0x2f3531(0x155)),_0x574c6e[_0x2f3531(0x146)];}['startMonitoring'](){const _0x4fedeb=a0_0x1df474;this['monitoringInterval']&&clearInterval(this['monitoringInterval']),this[_0x4fedeb(0x148)]=setInterval(()=>{const _0x53db65=_0x4fedeb;this[_0x53db65(0x15a)](),this['cleanupCompletedOperations']();},this[_0x4fedeb(0x154)]),this['logger']?.[_0x4fedeb(0x129)](_0x4fedeb(0x10e));}[a0_0x1df474(0x113)](){const _0x4cb05b=a0_0x1df474;this['monitoringInterval']&&(clearInterval(this[_0x4cb05b(0x148)]),this['monitoringInterval']=null),this[_0x4cb05b(0x112)]?.['info'](_0x4cb05b(0x150));}[a0_0x1df474(0x15a)](){const _0x361dea=a0_0x1df474,_0xb5dd08=Date['now']();for(const _0x534914 of this['operations'][_0x361dea(0x12f)]()){if(_0x534914[_0x361dea(0x14b)]===TOOL_STATUS[_0x361dea(0x145)]||_0x534914[_0x361dea(0x14b)]===TOOL_STATUS[_0x361dea(0x143)]){const _0x141a3d=new Date(_0x534914['createdAt'])[_0x361dea(0x162)]();_0xb5dd08-_0x141a3d>_0x534914['timeout']&&this['handleOperationTimeout'](_0x534914);}}}['setOperationTimeout'](_0x59ee87){const _0x211eb4=a0_0x1df474,_0x2c73ac=this[_0x211eb4(0x14a)][_0x211eb4(0x11d)](_0x59ee87);if(!_0x2c73ac)return;_0x2c73ac['timeoutHandle']=setTimeout(()=>{this['handleOperationTimeout'](_0x2c73ac);},_0x2c73ac['timeout']);}['clearOperationTimeout'](_0x2bddd8){const _0x3a2f08=a0_0x1df474,_0x555c7e=this[_0x3a2f08(0x14a)][_0x3a2f08(0x11d)](_0x2bddd8);_0x555c7e&&_0x555c7e['timeoutHandle']&&(clearTimeout(_0x555c7e[_0x3a2f08(0x136)]),delete _0x555c7e['timeoutHandle']);}[a0_0x1df474(0x127)](){const _0x1f0137=a0_0x1df474,_0x22e781=Date['now']()['toString'](0x24),_0x2d1c3c=Math['random']()[_0x1f0137(0x12b)](0x24)[_0x1f0137(0x117)](0x2,0x9);return _0x1f0137(0x126)+_0x22e781+'-'+_0x2d1c3c;}['calculateExecutionTime'](_0xa6137e){const _0x3a05a0=a0_0x1df474;if(!_0xa6137e[_0x3a05a0(0x12c)])return 0x0;const _0x265b2e=_0xa6137e['completedAt']?new Date(_0xa6137e['completedAt'])['getTime']():Date['now']();return _0x265b2e-new Date(_0xa6137e[_0x3a05a0(0x12c)])[_0x3a05a0(0x162)]();}async[a0_0x1df474(0x139)](_0x3fd925){const _0x1aeab7=a0_0x1df474,_0x2e6901=this[_0x1aeab7(0x14a)][_0x1aeab7(0x11d)](_0x3fd925);if(!_0x2e6901)return;this[_0x1aeab7(0x156)](_0x3fd925),this[_0x1aeab7(0x10b)][_0x1aeab7(0x122)]({..._0x2e6901,'executionTime':this[_0x1aeab7(0x15e)](_0x2e6901),'cleanedUpAt':new Date()['toISOString']()}),this['operationHistory'][_0x1aeab7(0x146)]>this[_0x1aeab7(0x118)]&&(this['operationHistory']=this['operationHistory'][_0x1aeab7(0x142)](-this[_0x1aeab7(0x118)])),this[_0x1aeab7(0x14a)][_0x1aeab7(0x106)](_0x3fd925),this[_0x1aeab7(0x141)](_0x1aeab7(0x144),{'operationId':_0x3fd925,'toolId':_0x2e6901[_0x1aeab7(0x15c)]});}['handleOperationStarted'](_0x29b037){this['logger']?.['debug']('Operation\x20started:\x20'+_0x29b037['id'],{'toolId':_0x29b037['toolId'],'agentId':_0x29b037['agentId']});}async[a0_0x1df474(0x157)](_0x2838b1){const _0x31c3b9=a0_0x1df474;this[_0x31c3b9(0x112)]?.[_0x31c3b9(0x129)](_0x31c3b9(0x147)+_0x2838b1['id'],{'toolId':_0x2838b1['toolId'],'agentId':_0x2838b1[_0x31c3b9(0x110)],'executionTime':this['calculateExecutionTime'](_0x2838b1)}),setTimeout(()=>this['cleanupOperation'](_0x2838b1['id']),0x7530);}async['handleOperationFailed'](_0x260d3d){const _0x336b5f=a0_0x1df474;this[_0x336b5f(0x112)]?.['error'](_0x336b5f(0x132)+_0x260d3d['id'],{'toolId':_0x260d3d[_0x336b5f(0x15c)],'agentId':_0x260d3d[_0x336b5f(0x110)],'error':_0x260d3d['error'],'executionTime':this['calculateExecutionTime'](_0x260d3d),'retryCount':_0x260d3d[_0x336b5f(0x14d)]}),_0x260d3d[_0x336b5f(0x14d)]<_0x260d3d[_0x336b5f(0x11f)]?setTimeout(()=>this['retryOperation'](_0x260d3d['id']),0x1388):setTimeout(()=>this['cleanupOperation'](_0x260d3d['id']),0xea60);}async[a0_0x1df474(0x114)](_0x51c6c6){const _0x1fae53=a0_0x1df474;this[_0x1fae53(0x112)]?.[_0x1fae53(0x119)]('Operation\x20timed\x20out:\x20'+_0x51c6c6['id'],{'toolId':_0x51c6c6[_0x1fae53(0x15c)],'agentId':_0x51c6c6['agentId'],'timeout':_0x51c6c6['timeout'],'executionTime':this['calculateExecutionTime'](_0x51c6c6)}),this['updateOperation'](_0x51c6c6['id'],TOOL_STATUS['TIMEOUT'],{'error':_0x1fae53(0x12d)+_0x51c6c6['timeout']+'ms'}),this[_0x1fae53(0x141)]('operation:timeout',_0x51c6c6),setTimeout(()=>this['cleanupOperation'](_0x51c6c6['id']),0x7530);}async['shutdown'](){const _0x4c6dc6=a0_0x1df474;this['isShuttingDown']=!![],this['logger']?.[_0x4c6dc6(0x129)]('Shutting down async tool manager...'),this['stopMonitoring']();const _0x3e6edd=[];for(const _0x30242f of this[_0x4c6dc6(0x14a)]['values']()){(_0x30242f['status']===TOOL_STATUS['PENDING']||_0x30242f[_0x4c6dc6(0x14b)]===TOOL_STATUS['EXECUTING'])&&_0x3e6edd['push'](_0x30242f['id']);}for(const _0xfc8543 of _0x3e6edd){await this[_0x4c6dc6(0x15d)](_0xfc8543,_0x4c6dc6(0x14c));}this[_0x4c6dc6(0x14a)]['clear'](),this[_0x4c6dc6(0x112)]?.['info']('Async\x20tool\x20manager\x20shutdown\x20complete.\x20Cancelled\x20'+_0x3e6edd['length']+'\x20operations.');}['getOperationHistory'](_0x8f38e={}){const _0x2013de=a0_0x1df474;let _0x49d7da=[...this['operationHistory']];return _0x8f38e['agentId']&&(_0x49d7da=_0x49d7da[_0x2013de(0x13f)](_0x4b1cfb=>_0x4b1cfb['agentId']===_0x8f38e['agentId'])),_0x8f38e['toolId']&&(_0x49d7da=_0x49d7da[_0x2013de(0x13f)](_0x4ea4bc=>_0x4ea4bc[_0x2013de(0x15c)]===_0x8f38e[_0x2013de(0x15c)])),_0x8f38e['status']&&(_0x49d7da=_0x49d7da['filter'](_0x4bff13=>_0x4bff13['status']===_0x8f38e[_0x2013de(0x14b)])),_0x8f38e['limit']&&(_0x49d7da=_0x49d7da['slice'](-_0x8f38e[_0x2013de(0x149)])),_0x49d7da['sort']((_0x17d0f2,_0x988abb)=>new Date(_0x988abb['createdAt'])-new Date(_0x17d0f2[_0x2013de(0x103)]));}}export default AsyncToolManager;
|
|
1
|
+
function a0_0x409f(){const _0x58c3cb=['Bg9Nz2vY','C3rHCNrLzef0','zgvIDwC','q2fUBM90ihjLDhj5ig5VBI1MywLSzwqGB3bLCMf0Aw9UoIa','zMLSDgvY','q09nueXfveve','t3bLCMf0Aw9Uihn0yxj0zwq6ia','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','B3aT','Dg9tDhjPBMC','DgLTzw91DeHHBMrSzq','B3bLCMf0Aw9UCW','AgfUzgXLt3bLCMf0Aw9UrMfPBgvK','Aw5MBW','Bwf4uMv0CMLLCW','C2L6zq','y29TCgXLDgvKqxq','oda2otq5nMP1zgjbBa','CM91BMq','B3bLCMf0Aw9UoMnSzwfUDxa','A2v5CW','oeXirMfqtW','veLnru9vva','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rVChbLza','Bw9UAxrVCMLUz0LUDgvYDMfS','y2XLyw51Ce9WzxjHDgLVBG','D2fYBG','ndvUA0XgwxK','zxjYB3i','rvHfq1vusu5h','qxn5BMmGDg9VBcbTyw5Hz2vYihnODxrKB3DUignVBxbSzxrLlIbdyw5JzwXSzwqG','ChjVz3jLC3m','ndy1odC2y0D1CM1T','C29YDa','yNLbz2vUDa','AgfUzgXLt3bLCMf0Aw9Uu3rHCNrLza','Dg9ju09tDhjPBMC','y2XLyxjpCgvYyxrPB25uAw1LB3v0','mJq5ndaYodLOy3PVBxK','rKfjteve','DMfSDwvZ','mtm3odGXnuD5zMLrvG','nta4nteZnw1uAvrVwa','y3jLyxrLzef0','C2XPy2u','DgLTzw91Da','t3bLCMf0Aw9UigzHAwXLzdOG','C3rHDhvZ','BgLTAxq','BgvUz3rO','BM93','t3bLCMf0Aw9UihjLDhj5igLUAxrPyxrLzdOG','ywDLBNrjza','y29UzMLN','B3bLCMf0Aw9UoNbYB2DYzxnZ','y2XLyw51CenVBxbSzxrLze9WzxjHDgLVBNm','BMv3zxn0t3bLCMf0Aw9U','AgfUzgXLt3bLCMf0Aw9Uq29TCgXLDgvK','zgvMyxvSDfrPBwvVDxq','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rHCNrLza','Dg9VBeLK','t3bLCMf0Aw9UignHBMnLBgXLza','z2vUzxjHDgvpCgvYyxrPB25jza','C3rHCNrpCgvYyxrPB24','AgfUzgXLt3bLCMf0Aw9UvgLTzw91Da','CMvZDwX0','zw1PDa','CMv0CNLdB3vUDa','B3bLCMf0Aw9UoMnVBxbSzxrLza','B3bLCMf0Aw9UoMnHBMnLBgXLza','yNLtDgf0Dxm','B3bLCMf0Aw9UsgLZDg9YEq','n2z6zg91tG','Bwf4sgLZDg9YEvnPEMu','qxr0zw1WDgvKihrVihvWzgf0zsb1BMTUB3DUig9WzxjHDgLVBJOG','t3bLCMf0Aw9UignVBxbSzxrLzdOG','mta2mZu4mhrKwfjYCq','ChvZAa','y2HLy2TpCgvYyxrPB25uAw1LB3v0CW','y2fSy3vSyxrLrxHLy3v0Aw9UvgLTzq','z2v0vgLTzq','mtmXodGYn1rqEe5krW','DxbKyxrLt3bLCMf0Aw9U','z2v0','C2v0t3bLCMf0Aw9UvgLTzw91Da','y2XLyw51CeLUDgvYDMfS','q2XLyw5Lzcb1Cca','mMfsrur2ta','uevoreLorW'];a0_0x409f=function(){return _0x58c3cb;};return a0_0x409f();}const a0_0x3de435=a0_0x5d93;function a0_0x5d93(_0x4d13c4,_0x43a456){_0x4d13c4=_0x4d13c4-0x108;const _0x409f9e=a0_0x409f();let _0x5d93c4=_0x409f9e[_0x4d13c4];if(a0_0x5d93['lsFkoN']===undefined){var _0x2ed071=function(_0x57c9f1){const _0x122cc9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x41cc03='',_0x22db2a='';for(let _0x274c6a=0x0,_0x4177c9,_0x1968cc,_0x19de43=0x0;_0x1968cc=_0x57c9f1['charAt'](_0x19de43++);~_0x1968cc&&(_0x4177c9=_0x274c6a%0x4?_0x4177c9*0x40+_0x1968cc:_0x1968cc,_0x274c6a++%0x4)?_0x41cc03+=String['fromCharCode'](0xff&_0x4177c9>>(-0x2*_0x274c6a&0x6)):0x0){_0x1968cc=_0x122cc9['indexOf'](_0x1968cc);}for(let _0x2ce3e4=0x0,_0x3f00de=_0x41cc03['length'];_0x2ce3e4<_0x3f00de;_0x2ce3e4++){_0x22db2a+='%'+('00'+_0x41cc03['charCodeAt'](_0x2ce3e4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22db2a);};a0_0x5d93['ywZvli']=_0x2ed071,a0_0x5d93['BxbGEe']={},a0_0x5d93['lsFkoN']=!![];}const _0x50c9d4=_0x409f9e[0x0],_0x8889c1=_0x4d13c4+_0x50c9d4,_0x2135e1=a0_0x5d93['BxbGEe'][_0x8889c1];return!_0x2135e1?(_0x5d93c4=a0_0x5d93['ywZvli'](_0x5d93c4),a0_0x5d93['BxbGEe'][_0x8889c1]=_0x5d93c4):_0x5d93c4=_0x2135e1,_0x5d93c4;}(function(_0x2c8cbb,_0x490ab6){const _0xb5e953=a0_0x5d93,_0x4f5eac=_0x2c8cbb();while(!![]){try{const _0xa3f1b=parseInt(_0xb5e953(0x14f))/0x1*(-parseInt(_0xb5e953(0x124))/0x2)+parseInt(_0xb5e953(0x11e))/0x3*(-parseInt(_0xb5e953(0x13b))/0x4)+parseInt(_0xb5e953(0x141))/0x5*(-parseInt(_0xb5e953(0x146))/0x6)+-parseInt(_0xb5e953(0x115))/0x7*(-parseInt(_0xb5e953(0x137))/0x8)+parseInt(_0xb5e953(0x150))/0x9+-parseInt(_0xb5e953(0x119))/0xa+parseInt(_0xb5e953(0x14c))/0xb;if(_0xa3f1b===_0x490ab6)break;else _0x4f5eac['push'](_0x4f5eac['shift']());}catch(_0x5cff46){_0x4f5eac['push'](_0x4f5eac['shift']());}}}(a0_0x409f,0xbde44));import a0_0x41cc03 from'events';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AsyncToolManager extends a0_0x41cc03{constructor(_0x22db2a={},_0x274c6a=null){const _0x127ac2=a0_0x5d93;super(),this[_0x127ac2(0x15b)]=_0x22db2a,this['logger']=_0x274c6a,this[_0x127ac2(0x131)]=new Map(),this['operationHistory']=[],this['maxConcurrentOperations']=_0x22db2a['maxConcurrentOperations']||0xa,this[_0x127ac2(0x160)]=_0x22db2a[_0x127ac2(0x160)]||0x493e0,this['cleanupInterval']=_0x22db2a[_0x127ac2(0x122)]||0xea60,this[_0x127ac2(0x116)]=_0x22db2a[_0x127ac2(0x116)]||0x3e8,this['monitoringInterval']=null,this['isShuttingDown']=![],this['startMonitoring'](),this['on']('operation:started',this['handleOperationStarted']['bind'](this)),this['on'](_0x127ac2(0x111),this[_0x127ac2(0x15f)]['bind'](this)),this['on']('operation:failed',this[_0x127ac2(0x132)]['bind'](this)),this['on']('operation:timeout',this['handleOperationTimeout']['bind'](this));}async[a0_0x3de435(0x10c)](_0x4177c9,_0x1968cc,_0x19de43,_0x2ce3e4={}){const _0x3f3d5c=a0_0x3de435;if(this['operations']['size']>=this[_0x3f3d5c(0x12d)])throw new Error('Maximum\x20concurrent\x20operations\x20reached\x20('+this['maxConcurrentOperations']+')');const _0x3f00de=this['generateOperationId'](),_0x427b52={'id':_0x3f00de,'toolId':_0x4177c9,'agentId':_0x1968cc,'parameters':_0x19de43,'context':_0x2ce3e4,'status':TOOL_STATUS['PENDING'],'createdAt':new Date()['toISOString'](),'startedAt':null,'completedAt':null,'timeout':_0x2ce3e4['timeout']||this['defaultTimeout'],'result':null,'error':null,'progress':null,'retryCount':0x0,'maxRetries':_0x2ce3e4[_0x3f3d5c(0x134)]||0x0};return this[_0x3f3d5c(0x131)]['set'](_0x3f00de,_0x427b52),this[_0x3f3d5c(0x126)]?.['info']('Async\x20operation\x20started:\x20'+_0x3f00de,{'toolId':_0x4177c9,'agentId':_0x1968cc,'parametersCount':Object[_0x3f3d5c(0x13a)](_0x19de43)['length'],'timeout':_0x427b52['timeout']}),this['setOperationTimeout'](_0x3f00de),this['emit']('operation:started',_0x427b52),_0x3f00de;}[a0_0x3de435(0x11f)](_0x33c778,_0x1a3f03,_0x43b209={}){const _0x5aad95=a0_0x3de435,_0x73a2cb=this['operations'][_0x5aad95(0x120)](_0x33c778);if(!_0x73a2cb)return this['logger']?.['warn'](_0x5aad95(0x117)+_0x33c778),![];const _0xb91aa6=_0x73a2cb[_0x5aad95(0x155)];_0x73a2cb['status']=_0x1a3f03;_0x1a3f03===TOOL_STATUS['EXECUTING']&&!_0x73a2cb[_0x5aad95(0x127)]&&(_0x73a2cb[_0x5aad95(0x127)]=new Date()['toISOString']());(_0x1a3f03===TOOL_STATUS[_0x5aad95(0x12b)]||_0x1a3f03===TOOL_STATUS[_0x5aad95(0x14d)])&&(_0x73a2cb['completedAt']=new Date()[_0x5aad95(0x14a)]());if(_0x43b209[_0x5aad95(0x10e)]!==undefined)_0x73a2cb[_0x5aad95(0x10e)]=_0x43b209['result'];if(_0x43b209['error']!==undefined)_0x73a2cb[_0x5aad95(0x142)]=_0x43b209[_0x5aad95(0x142)];if(_0x43b209['progress']!==undefined)_0x73a2cb['progress']=_0x43b209[_0x5aad95(0x145)];this[_0x5aad95(0x126)]?.[_0x5aad95(0x128)]('Operation\x20status\x20updated:\x20'+_0x33c778,{'previousStatus':_0xb91aa6,'newStatus':_0x1a3f03,'hasResult':!!_0x43b209['result'],'hasError':!!_0x43b209[_0x5aad95(0x142)],'progress':_0x43b209['progress']});switch(_0x1a3f03){case TOOL_STATUS[_0x5aad95(0x12b)]:this[_0x5aad95(0x10f)]('operation:completed',_0x73a2cb);break;case TOOL_STATUS[_0x5aad95(0x14d)]:this[_0x5aad95(0x10f)]('operation:failed',_0x73a2cb);break;case TOOL_STATUS[_0x5aad95(0x143)]:this['emit'](_0x5aad95(0x15c),_0x73a2cb);break;}return!![];}['getOperation'](_0xd30a27){const _0x5b0370=a0_0x3de435,_0x51c6d0=this['operations'][_0x5b0370(0x120)](_0xd30a27);if(!_0x51c6d0)return null;return{'id':_0x51c6d0['id'],'toolId':_0x51c6d0['toolId'],'agentId':_0x51c6d0[_0x5b0370(0x15a)],'status':_0x51c6d0['status'],'createdAt':_0x51c6d0[_0x5b0370(0x151)],'startedAt':_0x51c6d0['startedAt'],'completedAt':_0x51c6d0[_0x5b0370(0x136)],'result':_0x51c6d0[_0x5b0370(0x10e)],'error':_0x51c6d0['error'],'progress':_0x51c6d0[_0x5b0370(0x145)],'retryCount':_0x51c6d0[_0x5b0370(0x110)],'executionTime':this['calculateExecutionTime'](_0x51c6d0)};}['getAgentOperations'](_0x12cd0a){const _0x2889bb=a0_0x3de435,_0x30cb2b=[];for(const _0x393115 of this['operations'][_0x2889bb(0x14e)]()){_0x393115[_0x2889bb(0x15a)]===_0x12cd0a&&_0x30cb2b[_0x2889bb(0x11a)](this['getOperation'](_0x393115['id']));}return _0x30cb2b['sort']((_0xdf2042,_0x5954a7)=>new Date(_0x5954a7['createdAt'])-new Date(_0xdf2042[_0x2889bb(0x151)]));}async['cancelOperation'](_0x3e12ba,_0x57dae9=a0_0x3de435(0x10a)){const _0xef1728=a0_0x3de435,_0x470b44=this['operations'][_0xef1728(0x120)](_0x3e12ba);if(!_0x470b44)return![];if(_0x470b44[_0xef1728(0x155)]===TOOL_STATUS[_0xef1728(0x12b)]||_0x470b44['status']===TOOL_STATUS['FAILED'])return this['logger']?.['warn']('Cannot\x20cancel\x20completed/failed\x20operation:\x20'+_0x3e12ba),![];return this[_0xef1728(0x11f)](_0x3e12ba,TOOL_STATUS['CANCELLED'],{'error':_0x57dae9}),this[_0xef1728(0x14b)](_0x3e12ba),this['emit'](_0xef1728(0x112),_0x470b44),await this[_0xef1728(0x13f)](_0x3e12ba),this['logger']?.['info']('Operation\x20cancelled:\x20'+_0x3e12ba,{'reason':_0x57dae9}),!![];}async['retryOperation'](_0x5dfc09){const _0x57de44=a0_0x3de435,_0x2479df=this[_0x57de44(0x131)]['get'](_0x5dfc09);if(!_0x2479df)return![];if(_0x2479df[_0x57de44(0x155)]!==TOOL_STATUS[_0x57de44(0x14d)])return this['logger']?.[_0x57de44(0x140)](_0x57de44(0x129)+_0x5dfc09),![];if(_0x2479df['retryCount']>=_0x2479df['maxRetries'])return this['logger']?.[_0x57de44(0x140)]('Maximum\x20retries\x20exceeded\x20for\x20operation:\x20'+_0x5dfc09),![];return _0x2479df['retryCount']++,_0x2479df[_0x57de44(0x155)]=TOOL_STATUS[_0x57de44(0x125)],_0x2479df['startedAt']=null,_0x2479df['completedAt']=null,_0x2479df[_0x57de44(0x142)]=null,_0x2479df[_0x57de44(0x10e)]=null,this[_0x57de44(0x121)](_0x5dfc09),this['logger']?.['info'](_0x57de44(0x159)+_0x5dfc09,{'retryCount':_0x2479df['retryCount'],'maxRetries':_0x2479df['maxRetries']}),this['emit']('operation:retry',_0x2479df),!![];}['getStatistics'](){const _0x106481=a0_0x3de435,_0x38be1a={'total':this['operations'][_0x106481(0x135)],'byStatus':{},'byTool':{},'byAgent':{},'averageExecutionTime':0x0,'oldestOperation':null,'newestOperation':null};let _0x44a583=0x0,_0x4cdb89=0x0,_0x4a10d1=null,_0x596d7a=null;for(const _0x41ee07 of this['operations']['values']()){_0x38be1a[_0x106481(0x113)][_0x41ee07[_0x106481(0x155)]]=(_0x38be1a['byStatus'][_0x41ee07[_0x106481(0x155)]]||0x0)+0x1,_0x38be1a['byTool'][_0x41ee07['toolId']]=(_0x38be1a['byTool'][_0x41ee07[_0x106481(0x109)]]||0x0)+0x1,_0x38be1a[_0x106481(0x148)][_0x41ee07[_0x106481(0x15a)]]=(_0x38be1a[_0x106481(0x148)][_0x41ee07['agentId']]||0x0)+0x1;const _0x138f72=this['calculateExecutionTime'](_0x41ee07);_0x138f72>0x0&&(_0x44a583+=_0x138f72,_0x4cdb89++);const _0xfeb30c=new Date(_0x41ee07[_0x106481(0x151)])['getTime']();(!_0x4a10d1||_0xfeb30c<_0x4a10d1)&&(_0x4a10d1=_0xfeb30c,_0x38be1a['oldestOperation']=_0x41ee07['id']),(!_0x596d7a||_0xfeb30c>_0x596d7a)&&(_0x596d7a=_0xfeb30c,_0x38be1a[_0x106481(0x15e)]=_0x41ee07['id']);}return _0x38be1a['averageExecutionTime']=_0x4cdb89>0x0?Math[_0x106481(0x138)](_0x44a583/_0x4cdb89):0x0,_0x38be1a;}async[a0_0x3de435(0x15d)](_0x34a9ae=0x36ee80){const _0x869bf5=a0_0x3de435,_0x209398=Date[_0x869bf5(0x158)]()-_0x34a9ae,_0x4e6eab=[];for(const _0x3acd0a of this['operations']['values']()){(_0x3acd0a['status']===TOOL_STATUS[_0x869bf5(0x12b)]||_0x3acd0a[_0x869bf5(0x155)]===TOOL_STATUS['FAILED']||_0x3acd0a[_0x869bf5(0x155)]===TOOL_STATUS['CANCELLED'])&&new Date(_0x3acd0a[_0x869bf5(0x136)])[_0x869bf5(0x11d)]()<_0x209398&&_0x4e6eab[_0x869bf5(0x11a)](_0x3acd0a['id']);}for(const _0x33f4f3 of _0x4e6eab){await this[_0x869bf5(0x13f)](_0x33f4f3);}return this['logger']?.[_0x869bf5(0x128)](_0x869bf5(0x123)+_0x4e6eab['length']+'\x20completed\x20operations'),_0x4e6eab[_0x869bf5(0x157)];}['startMonitoring'](){const _0x2f5460=a0_0x3de435;this['monitoringInterval']&&clearInterval(this['monitoringInterval']),this['monitoringInterval']=setInterval(()=>{const _0x598f0b=a0_0x5d93;this[_0x598f0b(0x11b)](),this['cleanupCompletedOperations']();},this[_0x2f5460(0x122)]),this[_0x2f5460(0x126)]?.['info'](_0x2f5460(0x108));}['stopMonitoring'](){const _0xbf24a4=a0_0x3de435;this[_0xbf24a4(0x13e)]&&(clearInterval(this[_0xbf24a4(0x13e)]),this['monitoringInterval']=null),this['logger']?.[_0xbf24a4(0x133)](_0xbf24a4(0x13d));}[a0_0x3de435(0x11b)](){const _0x1a8943=a0_0x3de435,_0x1dd52e=Date[_0x1a8943(0x158)]();for(const _0x295f72 of this['operations'][_0x1a8943(0x14e)]()){if(_0x295f72[_0x1a8943(0x155)]===TOOL_STATUS[_0x1a8943(0x143)]||_0x295f72['status']===TOOL_STATUS[_0x1a8943(0x125)]){const _0x5e5b9b=new Date(_0x295f72['createdAt'])['getTime']();_0x1dd52e-_0x5e5b9b>_0x295f72[_0x1a8943(0x153)]&&this['handleOperationTimeout'](_0x295f72);}}}['setOperationTimeout'](_0x2b08b3){const _0x1aa2d8=a0_0x3de435,_0x2b4a17=this['operations'][_0x1aa2d8(0x120)](_0x2b08b3);if(!_0x2b4a17)return;_0x2b4a17['timeoutHandle']=setTimeout(()=>{const _0x501e67=_0x1aa2d8;this[_0x501e67(0x10d)](_0x2b4a17);},_0x2b4a17[_0x1aa2d8(0x153)]);}['clearOperationTimeout'](_0x9d6e9b){const _0x23c9c7=a0_0x3de435,_0x52cb43=this[_0x23c9c7(0x131)][_0x23c9c7(0x120)](_0x9d6e9b);_0x52cb43&&_0x52cb43['timeoutHandle']&&(clearTimeout(_0x52cb43[_0x23c9c7(0x130)]),delete _0x52cb43['timeoutHandle']);}[a0_0x3de435(0x10b)](){const _0xe2a041=a0_0x3de435,_0xe3821=Date[_0xe2a041(0x158)]()['toString'](0x24),_0x34408f=Math['random']()[_0xe2a041(0x12f)](0x24)['substr'](0x2,0x9);return _0xe2a041(0x12e)+_0xe3821+'-'+_0x34408f;}[a0_0x3de435(0x11c)](_0x2c7fe3){const _0x51f012=a0_0x3de435;if(!_0x2c7fe3[_0x51f012(0x127)])return 0x0;const _0x29fde6=_0x2c7fe3['completedAt']?new Date(_0x2c7fe3['completedAt'])['getTime']():Date[_0x51f012(0x158)]();return _0x29fde6-new Date(_0x2c7fe3['startedAt'])[_0x51f012(0x11d)]();}async['cleanupOperation'](_0x19f1d0){const _0x4858b9=a0_0x3de435,_0x1a7d0f=this['operations']['get'](_0x19f1d0);if(!_0x1a7d0f)return;this[_0x4858b9(0x14b)](_0x19f1d0),this['operationHistory']['push']({..._0x1a7d0f,'executionTime':this[_0x4858b9(0x11c)](_0x1a7d0f),'cleanedUpAt':new Date()['toISOString']()}),this[_0x4858b9(0x114)]['length']>this['maxHistorySize']&&(this[_0x4858b9(0x114)]=this['operationHistory']['slice'](-this['maxHistorySize'])),this[_0x4858b9(0x131)]['delete'](_0x19f1d0),this['emit'](_0x4858b9(0x139),{'operationId':_0x19f1d0,'toolId':_0x1a7d0f[_0x4858b9(0x109)]});}[a0_0x3de435(0x149)](_0x32804d){const _0x237cfe=a0_0x3de435;this['logger']?.['debug'](_0x237cfe(0x12c)+_0x32804d['id'],{'toolId':_0x32804d['toolId'],'agentId':_0x32804d['agentId']});}async[a0_0x3de435(0x15f)](_0x22310d){const _0x5abe08=a0_0x3de435;this['logger']?.['info'](_0x5abe08(0x118)+_0x22310d['id'],{'toolId':_0x22310d['toolId'],'agentId':_0x22310d[_0x5abe08(0x15a)],'executionTime':this[_0x5abe08(0x11c)](_0x22310d)}),setTimeout(()=>this['cleanupOperation'](_0x22310d['id']),0x7530);}async[a0_0x3de435(0x132)](_0x111fe0){const _0x4ac11c=a0_0x3de435;this[_0x4ac11c(0x126)]?.['error'](_0x4ac11c(0x154)+_0x111fe0['id'],{'toolId':_0x111fe0[_0x4ac11c(0x109)],'agentId':_0x111fe0['agentId'],'error':_0x111fe0[_0x4ac11c(0x142)],'executionTime':this['calculateExecutionTime'](_0x111fe0),'retryCount':_0x111fe0[_0x4ac11c(0x110)]}),_0x111fe0['retryCount']<_0x111fe0['maxRetries']?setTimeout(()=>this['retryOperation'](_0x111fe0['id']),0x1388):setTimeout(()=>this['cleanupOperation'](_0x111fe0['id']),0xea60);}async['handleOperationTimeout'](_0x53a4ae){const _0x752083=a0_0x3de435;this[_0x752083(0x126)]?.[_0x752083(0x140)]('Operation\x20timed\x20out:\x20'+_0x53a4ae['id'],{'toolId':_0x53a4ae[_0x752083(0x109)],'agentId':_0x53a4ae[_0x752083(0x15a)],'timeout':_0x53a4ae['timeout'],'executionTime':this[_0x752083(0x11c)](_0x53a4ae)}),this['updateOperation'](_0x53a4ae['id'],TOOL_STATUS[_0x752083(0x13c)],{'error':'Operation\x20timed\x20out\x20after\x20'+_0x53a4ae['timeout']+'ms'}),this[_0x752083(0x10f)]('operation:timeout',_0x53a4ae),setTimeout(()=>this[_0x752083(0x13f)](_0x53a4ae['id']),0x7530);}async['shutdown'](){const _0x6718e7=a0_0x3de435;this['isShuttingDown']=!![],this['logger']?.[_0x6718e7(0x133)]('Shutting down async tool manager...'),this['stopMonitoring']();const _0x222eb9=[];for(const _0x1261b2 of this['operations'][_0x6718e7(0x14e)]()){(_0x1261b2[_0x6718e7(0x155)]===TOOL_STATUS[_0x6718e7(0x125)]||_0x1261b2[_0x6718e7(0x155)]===TOOL_STATUS['EXECUTING'])&&_0x222eb9[_0x6718e7(0x11a)](_0x1261b2['id']);}for(const _0x3d930d of _0x222eb9){await this['cancelOperation'](_0x3d930d,'System\x20shutdown');}this[_0x6718e7(0x131)]['clear'](),this['logger']?.[_0x6718e7(0x133)](_0x6718e7(0x144)+_0x222eb9['length']+'\x20operations.');}['getOperationHistory'](_0x5d1728={}){const _0x375127=a0_0x3de435;let _0x5c0f96=[...this[_0x375127(0x114)]];return _0x5d1728[_0x375127(0x15a)]&&(_0x5c0f96=_0x5c0f96['filter'](_0x504a5b=>_0x504a5b['agentId']===_0x5d1728[_0x375127(0x15a)])),_0x5d1728[_0x375127(0x109)]&&(_0x5c0f96=_0x5c0f96['filter'](_0x2d8fb2=>_0x2d8fb2['toolId']===_0x5d1728[_0x375127(0x109)])),_0x5d1728[_0x375127(0x155)]&&(_0x5c0f96=_0x5c0f96[_0x375127(0x12a)](_0x2116cd=>_0x2116cd['status']===_0x5d1728['status'])),_0x5d1728[_0x375127(0x156)]&&(_0x5c0f96=_0x5c0f96[_0x375127(0x152)](-_0x5d1728[_0x375127(0x156)])),_0x5c0f96[_0x375127(0x147)]((_0x5e14c0,_0x147b5c)=>new Date(_0x147b5c[_0x375127(0x151)])-new Date(_0x5e14c0['createdAt']));}}export default AsyncToolManager;
|
package/src/tools/baseTool.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x4b124a=a0_0x2f35;(function(_0x14f56c,_0x1298e5){const _0x38381d=a0_0x2f35,_0x63e268=_0x14f56c();while(!![]){try{const _0x42ee0b=-parseInt(_0x38381d(0x1c2))/0x1*(parseInt(_0x38381d(0x242))/0x2)+-parseInt(_0x38381d(0x1fb))/0x3*(parseInt(_0x38381d(0x1d8))/0x4)+parseInt(_0x38381d(0x211))/0x5*(-parseInt(_0x38381d(0x1f7))/0x6)+-parseInt(_0x38381d(0x1e1))/0x7+parseInt(_0x38381d(0x1f8))/0x8+-parseInt(_0x38381d(0x244))/0x9*(parseInt(_0x38381d(0x1fe))/0xa)+-parseInt(_0x38381d(0x200))/0xb*(-parseInt(_0x38381d(0x1ec))/0xc);if(_0x42ee0b===_0x1298e5)break;else _0x63e268['push'](_0x63e268['shift']());}catch(_0x3e1244){_0x63e268['push'](_0x63e268['shift']());}}}(a0_0x57a4,0x57a59));function a0_0x57a4(){const _0x100b9e=['zxjYB3i','z2v0','y2XLyw51CeHPC3rVCNK','ChvZAa','ig1PC3nPBMCGCMvXDwLYzwqGBwv0Ag9KoIa','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','iYmGqvzbsuXbqKXfifrpt0Xt','BM93','CMvNAxn0zxjuB29S','z2v0vgLTzq','nJq1ndC1Dxn0swPp','z2v0u3vWCg9YDgvKqwn0Aw9UCW','zw5HyMXL','Dg9tDhjPBMC','zxHLy3v0zvrVB2Xtzwn1CMvSEq','DgLTzw91Da','z2v0qxzHAwXHyMXLvg9VBhngB3jvsq','y2fSy3vSyxrLqxzLCMfNzuv4zwn1DgLVBLrPBwu','zxHLy3v0zq','vg9VBca','DMfSDwvZ','B3bLCMf0Aw9UsgLZDg9YEq','Bg9Nz2vY','kIPsDwXLCZOQkGO','t3bLCMf0Aw9Uig5VDcbMB3vUza','z2v0vg9VBa','Dg9mB3DLCKnHC2u','vg9VBcbYzwDPC3rYyxrPB24GzMfPBgvKoIa','C2v0','BgLZDfrVB2XZ','Aw5JBhvKzxm','zgvSzxrL','CMvKDwnL','Dg9VBerLC2nYAxb0Aw9UCW','AxnbC3LUyW','z2v0q2fWywjPBgL0AwvZ','DgvZDcbJB250zw50','zNjVBq','zw50CMLLCW','q09nueXfveve','C3rHCNruAw1L','ihbHCNnLugfYyw1LDgvYCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','ugfYyw1LDgvYihzHBgLKyxrPB24GzMfPBgvKoIa','z2v0rgvZy3jPChrPB24','y29UDgv4Da','vg9VBcbLEgvJDxrPB24GDgLTzwqGB3v0igfMDgvYia','y29UC3rYDwn0B3i','zw5KvgLTzq','zgLZywjSzq','ywn0AxzLt3bLCMf0Aw9UCW','AxnfBMfIBgvK','CMfUzg9T','iYmJifn0yw5KyxjKiezVCM1HDdOGsLnptIbPBIbnyxjRzg93BIbdB2rLiejSB2nRcG','kIPjtvbpuLrbtLqQkJOGvxnLiePtt04GzM9YBwf0igLUig1HCMTKB3DUignVzguGyMXVy2TZihrVigLUDM9Rzsb0B29SCZOkcG','DMfSAwrHDgvuB29S','BgfZDfvZzwq','zw5Oyw5Jzvn5C3rLBvbYB21WDa','cGOTls0kcG','nezOtLjoBG','yxn5BMm','owLyvxnovG','C3vIC3rYAw5N','lsbbBhDHExmGD3jHCcbku09oihrVB2WGy29TBwfUzhmGAw4GygbGANnVBIaUlI4GygbGigjSB2nRCWO','icaICgfYyw1LDgvYCYi6ihSGlI4Uih0k','zw5HyMXLza','mtu0mJGZy1vMzeLq','CgfYC2vqyxjHBwv0zxjZ','AgfZ','lsbvC2uGiNrVB2XjzciGDg8GC3bLy2LMEsb0AguGDg9VBcbUyw1LcG','zxHLy3v0zvDPDgHmAwzLy3LJBgu','vg9VBcbUB3qGzM91BMq6ia','u3LZDgvT','lsbvC2uGiMfJDgLVBNmIigfYCMf5igzVCIb0B29SCYb0Agf0ihn1ChbVCNqGBxvSDgLWBguGB3bLCMf0Aw9UCWOk','Dg9ju09tDhjPBMC','C2L6zq','BwvZC2fNzq','vg9VBcbYzwDPC3rLCMvKoIa','zgLZy292zxjuB29SCW','C3vWCg9YDgvKqwn0Aw9UCW','ygbGcG','vxrPBgL0Eq','C2XPy2u','CMvWBgfJzq','igDLDenHCgfIAwXPDgLLCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','BMfTzq','zw5KC1DPDgG','DMfSAwq','mJa2nJy0oe1vD2Dfta','DhjPBq','vg9VBcbLEgvJDxrPB24GzMfPBgvKoIa','yxbPs2v5CW','z2vUzxjHDgvuB29SrgvZy3jPChrPB25ZrM9YuhjVBxb0','B2jQzwn0','igLZigrPC2fIBgvK','C2vJCMv0CW','vg9VBcbKAxnHyMXLzdOG','mtq0odCZnhPzwvD5CG','z2v0ugfYyw1LDgvYu2nOzw1H','zMLUza','ygbGcGO','vg9VBcbPCYbKAxnHyMXLzdOG','A2v5CW','DMfSAwrHDgvqyxjHBwv0zxjuExbLCW','y29UDgvUDa','CMvXDwLYzxnqCM9Qzwn0','BgvUz3rO','DMfSAwrHDgvqyxjHBwv0zxjZ','nda0nfLQqwDAsG','cImJiefwquLmqujmrsbut09muWOk','zxHLy3v0Aw9UvgLTzq','C3rHDhvZ','iYmJia','Aw5MBW','ig11C3qGAw1WBgvTzw50ihbHCNnLugfYyw1LDgvYCYGP','zMLSDgvY','DxnHz2vdB3vUDa','y2XLyw51Ca','CMvZDwX0','mtjpEhrdwKy','mtC4odeXmKjXzLz2qq','yxn5BMnpCgvYyxrPB25Z','rvHfq1vusu5h','m2n1s1PWzG','z2vUzxjHDgvpCgvYyxrPB25jza','cLvZzsbku09oigzVCM1HDcbPBIbTyxjRzg93BIbJB2rLigjSB2nRCYb0BYbPBNzVA2uGDg9VBhmUcGO','mJqYnJiWmgrIzwzWrG','Dg9VBhm','ntq0nJf0u1vHD1i','icaIDg9VBeLKiJOGiNrVB2XUyw1LiIWk','ig11C3qGzxH0zw5KiejHC2vuB29S','CgfZC3DVCMrZ','rMLSzsbpCgvYyxrPB25Z','x2DLDfrVB2XdyxrLz29YEq','Dg9VBenHCgfIAwXPDgLLCW'];a0_0x57a4=function(){return _0x100b9e;};return a0_0x57a4();}import{TOOL_STATUS,OPERATION_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BaseTool{constructor(_0x319d2c={},_0x1e0ae8=null){const _0x24b422=a0_0x2f35;this['id']=this['constructor']['name'][_0x24b422(0x221)]()[_0x24b422(0x1d3)]('tool',''),this['config']=_0x319d2c,this[_0x24b422(0x21d)]=_0x1e0ae8,this[_0x24b422(0x1e9)]=![],this[_0x24b422(0x229)]=![],this[_0x24b422(0x216)]=_0x319d2c[_0x24b422(0x216)]||SYSTEM_DEFAULTS['MAX_TOOL_EXECUTION_TIME'],this[_0x24b422(0x231)]=_0x319d2c['maxConcurrentOperations']||0x1,this[_0x24b422(0x239)]=new Map(),this[_0x24b422(0x21c)]=[],this['isEnabled']=_0x319d2c['enabled']!==![],this['lastUsed']=null,this['usageCount']=0x0;}[a0_0x4b124a(0x233)](){throw new Error('Tool\x20'+this['id']+'\x20must\x20implement\x20getDescription()');}['parseParameters'](_0x5ef285){const _0x2682c6=a0_0x4b124a;throw new Error(_0x2682c6(0x21a)+this['id']+_0x2682c6(0x1f2));}async[a0_0x4b124a(0x219)](_0xfb18e1,_0x1112fd){throw new Error('Tool\x20'+this['id']+'\x20must\x20implement\x20execute()');}[a0_0x4b124a(0x22a)](){const _0x469ee4=a0_0x4b124a;return{'id':this['id'],'async':this['isAsync'],'requiresProject':this['requiresProject'],'timeout':this[_0x469ee4(0x216)],'maxConcurrentOperations':this['maxConcurrentOperations'],'enabled':this['isEnabled'],'supportedActions':this[_0x469ee4(0x212)](),'parameterSchema':this['getParameterSchema']()};}[a0_0x4b124a(0x1eb)](_0x86fedd){const _0x3692be=a0_0x4b124a;try{if(!_0x86fedd||typeof _0x86fedd!==_0x3692be(0x1dd))return{'valid':![],'error':'Parameters\x20must\x20be\x20an\x20object'};const requiredParams=this[_0x3692be(0x20c)]();for(const required of requiredParams){if(!(required in _0x86fedd))return{'valid':![],'error':'Missing\x20required\x20parameter:\x20'+required};}const _0x298b0e=this['validateParameterTypes'](_0x86fedd);if(!_0x298b0e['valid'])return _0x298b0e;const _0x3ffa83=this['customValidateParameters'](_0x86fedd);if(!_0x3ffa83[_0x3692be(0x1d7)])return _0x3ffa83;return{'valid':!![]};}catch(_0x10dbda){return{'valid':![],'error':_0x3692be(0x232)+_0x10dbda[_0x3692be(0x1cc)]};}}async[a0_0x4b124a(0x1c6)](_0x5d6a63,_0x51ba4f){const _0x1009d9=a0_0x4b124a,_0x334357=this['generateOperationId'](),_0x3603b9=Date[_0x1009d9(0x20e)]();if(!this[_0x1009d9(0x23a)])throw new Error('Tool\x20'+this['id']+_0x1009d9(0x1de));if(this[_0x1009d9(0x239)][_0x1009d9(0x1cb)]>=this[_0x1009d9(0x231)])throw new Error('Tool\x20'+this['id']+'\x20has\x20reached\x20maximum\x20concurrent\x20operations\x20limit');const _0x40589a=this['validateParameters'](_0x5d6a63);if(!_0x40589a[_0x1009d9(0x1d7)])throw new Error('Parameter\x20validation\x20failed:\x20'+_0x40589a['error']);const _0x442289={'id':_0x334357,'toolId':this['id'],'status':TOOL_STATUS[_0x1009d9(0x1fa)],'startTime':new Date()['toISOString'](),'params':_0x5d6a63,'context':this['sanitizeContext'](_0x51ba4f)};this['activeOperations']['set'](_0x334357,_0x442289);try{this['logger']?.['info']('Tool\x20execution\x20started:\x20'+this['id'],{'operationId':_0x334357,'toolId':this['id'],'context':_0x442289[_0x1009d9(0x234)]});const _0x41fee3=await this['executeWithTimeout'](_0x5d6a63,_0x51ba4f);return _0x442289['status']=TOOL_STATUS['COMPLETED'],_0x442289[_0x1009d9(0x1f6)]=_0x41fee3,_0x442289[_0x1009d9(0x237)]=new Date()[_0x1009d9(0x1ca)](),_0x442289[_0x1009d9(0x1ee)]=Date[_0x1009d9(0x20e)]()-_0x3603b9,this[_0x1009d9(0x23f)]=new Date()[_0x1009d9(0x1ca)](),this['usageCount']++,this[_0x1009d9(0x21d)]?.['info']('Tool\x20execution\x20completed:\x20'+this['id'],{'operationId':_0x334357,'executionTime':_0x442289['executionTime'],'success':!![]}),{'success':!![],'operationId':_0x334357,'result':_0x41fee3,'executionTime':_0x442289[_0x1009d9(0x1ee)],'toolId':this['id']};}catch(_0x1cf6fa){_0x442289['status']=TOOL_STATUS['FAILED'],_0x442289['error']=_0x1cf6fa['message'],_0x442289['endTime']=new Date()['toISOString'](),_0x442289[_0x1009d9(0x1ee)]=Date['now']()-_0x3603b9,this['logger']?.['error'](_0x1009d9(0x1da)+this['id'],{'operationId':_0x334357,'error':_0x1cf6fa['message'],'executionTime':_0x442289[_0x1009d9(0x1ee)]});throw _0x1cf6fa;}finally{this['operationHistory'][_0x1009d9(0x20a)]({..._0x442289}),this['activeOperations'][_0x1009d9(0x226)](_0x334357),this[_0x1009d9(0x209)](),await this[_0x1009d9(0x1f5)](_0x334357);}}async['getStatus'](_0x5d9aad){const _0x4c684a=a0_0x4b124a,_0x206f09=this[_0x4c684a(0x239)]['get'](_0x5d9aad);if(!_0x206f09){const _0x139c4b=this[_0x4c684a(0x21c)]['find'](_0x208e84=>_0x208e84['id']===_0x5d9aad);if(_0x139c4b)return{'operationId':_0x5d9aad,'status':_0x139c4b[_0x4c684a(0x1ef)],'result':_0x139c4b['result'],'error':_0x139c4b[_0x4c684a(0x207)],'executionTime':_0x139c4b[_0x4c684a(0x1ee)]};return{'operationId':_0x5d9aad,'status':OPERATION_STATUS['NOT_FOUND'],'error':_0x4c684a(0x21f)};}return{'operationId':_0x5d9aad,'status':_0x206f09[_0x4c684a(0x1ef)],'startTime':_0x206f09[_0x4c684a(0x22f)],'executionTime':_0x206f09['endTime']?new Date(_0x206f09['endTime'])[_0x4c684a(0x210)]()-new Date(_0x206f09['startTime'])['getTime']():Date[_0x4c684a(0x20e)]()-new Date(_0x206f09['startTime'])['getTime']()};}async['cleanup'](_0x1f6e69){}['getSupportedActions'](){return['execute'];}[a0_0x4b124a(0x1e2)](){const _0x40b563=a0_0x4b124a;return{'type':_0x40b563(0x1dd),'properties':{},'required':[]};}['getRequiredParameters'](){return[];}[a0_0x4b124a(0x1e7)](_0x26650b){return{'valid':!![]};}['customValidateParameters'](_0x451af9){return{'valid':!![]};}async['executeWithTimeout'](_0x2e11ae,_0x122f16){return new Promise(async(_0x53215e,_0x5533f6)=>{const _0x1c6d8b=setTimeout(()=>{const _0x1f2b65=a0_0x2f35;_0x5533f6(new Error(_0x1f2b65(0x235)+this['timeout']+'ms'));},this['timeout']);try{const _0x4ff692=await this['execute'](_0x2e11ae,_0x122f16);clearTimeout(_0x1c6d8b),_0x53215e(_0x4ff692);}catch(_0x504d49){clearTimeout(_0x1c6d8b),_0x5533f6(_0x504d49);}});}[a0_0x4b124a(0x1fc)](){const _0x15cf81=a0_0x4b124a;return this['id']+'-'+Date['now']()+'-'+Math[_0x15cf81(0x23b)]()[_0x15cf81(0x214)](0x24)['substr'](0x2,0x9);}['sanitizeContext'](_0x5d8022){const _0x1aea4b=a0_0x4b124a,_0x12079a={..._0x5d8022};return delete _0x12079a[_0x1aea4b(0x1db)],delete _0x12079a[_0x1aea4b(0x1df)],delete _0x12079a[_0x1aea4b(0x203)],_0x12079a[_0x1aea4b(0x1e8)]&&_0x12079a['content'][_0x1aea4b(0x1ea)]>0x1f4&&(_0x12079a[_0x1aea4b(0x1e8)]=_0x12079a[_0x1aea4b(0x1e8)][_0x1aea4b(0x1be)](0x0,0x1f4)+'...\x20[truncated]'),_0x12079a;}[a0_0x4b124a(0x209)](){const _0x598c68=a0_0x4b124a,_0x3287e1=0x64;this[_0x598c68(0x21c)]['length']>_0x3287e1&&(this[_0x598c68(0x21c)]=this[_0x598c68(0x21c)][_0x598c68(0x1d2)](-_0x3287e1));}['getUsageStats'](){const _0x1f9142=a0_0x4b124a;return{'toolId':this['id'],'usageCount':this[_0x1f9142(0x1f4)],'lastUsed':this['lastUsed'],'activeOperations':this['activeOperations']['size'],'totalOperations':this['operationHistory']['length'],'averageExecutionTime':this[_0x1f9142(0x218)](),'successRate':this['calculateSuccessRate'](),'isEnabled':this[_0x1f9142(0x23a)]};}['calculateAverageExecutionTime'](){const _0x6e8c3=a0_0x4b124a,_0x70c738=this[_0x6e8c3(0x21c)][_0x6e8c3(0x1f3)](_0x3329f2=>_0x3329f2['status']===TOOL_STATUS[_0x6e8c3(0x22e)]&&_0x3329f2['executionTime']);if(_0x70c738[_0x6e8c3(0x1ea)]===0x0)return 0x0;const _0x3098ed=_0x70c738[_0x6e8c3(0x227)]((_0x1939c2,_0x7ce80e)=>_0x1939c2+_0x7ce80e['executionTime'],0x0);return Math['round'](_0x3098ed/_0x70c738[_0x6e8c3(0x1ea)]);}['calculateSuccessRate'](){const _0x2ca33a=a0_0x4b124a;if(this[_0x2ca33a(0x21c)][_0x2ca33a(0x1ea)]===0x0)return 0x0;const _0x49ded6=this['operationHistory'][_0x2ca33a(0x1f3)](_0x199ec=>_0x199ec['status']===TOOL_STATUS[_0x2ca33a(0x22e)]);return _0x49ded6['length']/this[_0x2ca33a(0x21c)]['length']*0x64;}[a0_0x4b124a(0x213)](){const _0x5a0021=a0_0x4b124a;this[_0x5a0021(0x23a)]=!![],this[_0x5a0021(0x21d)]?.[_0x5a0021(0x1f1)]('Tool\x20enabled:\x20'+this['id']);}[a0_0x4b124a(0x238)](){const _0x3f9f51=a0_0x4b124a;this['isEnabled']=![],this['logger']?.[_0x3f9f51(0x1f1)](_0x3f9f51(0x1e0)+this['id']);}['resetStats'](){const _0x540e61=a0_0x4b124a;this['usageCount']=0x0,this[_0x540e61(0x23f)]=null,this['operationHistory']=[],this[_0x540e61(0x21d)]?.[_0x540e61(0x1f1)]('Tool\x20statistics\x20reset:\x20'+this['id']);}}function a0_0x2f35(_0x4980e4,_0x3b2de8){_0x4980e4=_0x4980e4-0x1be;const _0x57a4a6=a0_0x57a4();let _0x2f3544=_0x57a4a6[_0x4980e4];if(a0_0x2f35['sBBBPm']===undefined){var _0x29f4f3=function(_0x17eda1){const _0x445977='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x319d2c='',_0x1e0ae8='';for(let _0x5ef285=0x0,_0xfb18e1,_0x1112fd,_0x86fedd=0x0;_0x1112fd=_0x17eda1['charAt'](_0x86fedd++);~_0x1112fd&&(_0xfb18e1=_0x5ef285%0x4?_0xfb18e1*0x40+_0x1112fd:_0x1112fd,_0x5ef285++%0x4)?_0x319d2c+=String['fromCharCode'](0xff&_0xfb18e1>>(-0x2*_0x5ef285&0x6)):0x0){_0x1112fd=_0x445977['indexOf'](_0x1112fd);}for(let _0x298b0e=0x0,_0x3ffa83=_0x319d2c['length'];_0x298b0e<_0x3ffa83;_0x298b0e++){_0x1e0ae8+='%'+('00'+_0x319d2c['charCodeAt'](_0x298b0e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1e0ae8);};a0_0x2f35['YBkPuM']=_0x29f4f3,a0_0x2f35['OdwWOo']={},a0_0x2f35['sBBBPm']=!![];}const _0x8c8bd4=_0x57a4a6[0x0],_0x29bdbe=_0x4980e4+_0x8c8bd4,_0x14e2de=a0_0x2f35['OdwWOo'][_0x29bdbe];return!_0x14e2de?(_0x2f3544=a0_0x2f35['YBkPuM'](_0x2f3544),a0_0x2f35['OdwWOo'][_0x29bdbe]=_0x2f3544):_0x2f3544=_0x14e2de,_0x2f3544;}class ToolsRegistry{constructor(_0x4f4aca=null){const _0x426c99=a0_0x4b124a;this['logger']=_0x4f4aca,this['tools']=new Map(),this['toolDescriptions']=new Map(),this[_0x426c99(0x206)]=new Map(),this['asyncOperations']=new Map();}async[a0_0x4b124a(0x20f)](_0xdb64cf){const _0x291d01=a0_0x4b124a;try{const _0x7c86de=new _0xdb64cf();if(!(_0x7c86de instanceof BaseTool))throw new Error(_0x291d01(0x21a)+_0xdb64cf[_0x291d01(0x1d5)]+_0x291d01(0x202));const _0x4f65ec=_0x7c86de[_0x291d01(0x22a)]();await this[_0x291d01(0x23e)](_0x7c86de),this[_0x291d01(0x1ff)]['set'](_0x7c86de['id'],_0x7c86de),this['toolDescriptions'][_0x291d01(0x223)](_0x7c86de['id'],_0x7c86de[_0x291d01(0x233)]()),this['toolCapabilities']['set'](_0x7c86de['id'],_0x4f65ec),this['logger']?.['info'](_0x291d01(0x1cd)+_0x7c86de['id'],{'capabilities':_0x4f65ec[_0x291d01(0x1cf)],'async':_0x4f65ec['async'],'requiresProject':_0x4f65ec[_0x291d01(0x1e9)]});}catch(_0x30036e){this[_0x291d01(0x21d)]?.[_0x291d01(0x207)](_0x291d01(0x222)+_0x30036e['message'],{'toolClass':_0xdb64cf[_0x291d01(0x1d5)]});throw _0x30036e;}}async[a0_0x4b124a(0x1ce)](_0x254931){return 0x0;}async[a0_0x4b124a(0x23e)](_0x448c9e){const _0xb017e0=a0_0x4b124a,requiredMethods=['getDescription',_0xb017e0(0x1c3),'execute'];for(const _0x4593f6 of requiredMethods){if(typeof _0x448c9e[_0x4593f6]!=='function')throw new Error(_0xb017e0(0x21a)+_0x448c9e['id']+_0xb017e0(0x20b)+_0x4593f6);}try{const _0x5f4a73=_0x448c9e[_0xb017e0(0x1c3)](_0xb017e0(0x22b));if(typeof _0x5f4a73!=='object')throw new Error(_0xb017e0(0x21a)+_0x448c9e['id']+_0xb017e0(0x230));}catch(_0x50d445){}const _0x3f4588=_0x448c9e[_0xb017e0(0x22a)]();if(!_0x3f4588||typeof _0x3f4588!==_0xb017e0(0x1dd))throw new Error(_0xb017e0(0x21a)+_0x448c9e['id']+_0xb017e0(0x1d4));}['getTool'](_0x5cd481){return this['tools']['get'](_0x5cd481)||null;}['getToolCapabilities'](){const _0x3372e1=a0_0x4b124a,_0x1e535c={};for(const [_0x2a38c3,_0x764a39]of this['tools']['entries']()){_0x764a39[_0x3372e1(0x23a)]&&(_0x1e535c[_0x2a38c3]={'description':this[_0x3372e1(0x228)]['get'](_0x2a38c3),'capabilities':this['toolCapabilities'][_0x3372e1(0x208)](_0x2a38c3),'usageStats':_0x764a39['getUsageStats']()});}return _0x1e535c;}async[a0_0x4b124a(0x215)](_0x1a1774,_0x26d2b5,_0x2b81fe){const _0x99ad77=a0_0x4b124a,_0x17553c=this[_0x99ad77(0x220)](_0x1a1774);if(!_0x17553c)throw new Error(_0x99ad77(0x1c7)+_0x1a1774);if(!_0x17553c[_0x99ad77(0x23a)])throw new Error(_0x99ad77(0x1e5)+_0x1a1774);return await _0x17553c[_0x99ad77(0x1c6)](_0x26d2b5,_0x2b81fe);}[a0_0x4b124a(0x224)](){const _0x548901=a0_0x4b124a;return Array['from'](this[_0x548901(0x1ff)]['keys']());}[a0_0x4b124a(0x1dc)](_0x405e15=[],_0x4460a4={}){const _0x3e8d1a=a0_0x4b124a,{includeExamples:includeExamples=!![],includeUsageGuidelines:includeUsageGuidelines=!![],includeSecurityNotes:includeSecurityNotes=!![],compact:compact=![]}=_0x4460a4,_0x57b19e=_0x405e15['length']>0x0?_0x405e15['filter'](_0x2d36d3=>this['tools'][_0x3e8d1a(0x1c4)](_0x2d36d3)):Array['from'](this[_0x3e8d1a(0x1ff)][_0x3e8d1a(0x1e6)]());if(_0x57b19e[_0x3e8d1a(0x1ea)]===0x0)return'';let _0x15352e=_0x3e8d1a(0x1ed);_0x15352e+='You\x20have\x20access\x20to\x20the\x20following\x20tools\x20to\x20perform\x20operations\x20and\x20tasks:\x0a\x0a';for(const _0x4118f8 of _0x57b19e){const _0x316d69=this['tools']['get'](_0x4118f8);if(!_0x316d69||!_0x316d69[_0x3e8d1a(0x23a)])continue;try{if(compact){const _0x547921=_0x316d69['getCapabilities'](),_0x3a7003=_0x547921['supportedActions']||[_0x3e8d1a(0x219)];_0x15352e+='**'+_0x4118f8+'**:\x20'+_0x3a7003['join'](',\x20')+'\x0a';}else _0x15352e+=_0x3e8d1a(0x1f0)+_0x4118f8['toUpperCase']()+'\x20TOOL\x0a\x0a',_0x15352e+=_0x316d69[_0x3e8d1a(0x233)](),_0x15352e+=_0x3e8d1a(0x241);}catch(_0x43ebe0){this[_0x3e8d1a(0x21d)]?.['warn']('Failed\x20to\x20get\x20description\x20for\x20tool:\x20'+_0x4118f8,{'error':_0x43ebe0['message']});}}return compact&&(_0x15352e+=_0x3e8d1a(0x1fd)),_0x15352e+='##\x20TOOL\x20INVOCATION\x20SYNTAX\x0a\x0a',_0x15352e+=_0x3e8d1a(0x23d),_0x15352e+=_0x3e8d1a(0x23c),_0x15352e+=_0x3e8d1a(0x1d0),_0x15352e+='```json\x0a',_0x15352e+='{\x0a',_0x15352e+=_0x3e8d1a(0x201),_0x15352e+=_0x3e8d1a(0x1c0),_0x15352e+='}\x0a',_0x15352e+='```\x0a',_0x15352e+=_0x3e8d1a(0x1e4),_0x15352e+=_0x3e8d1a(0x21e),_0x15352e+=_0x3e8d1a(0x1bf),_0x15352e+=_0x3e8d1a(0x1c5),_0x15352e+='-\x20Use\x20\x22parameters\x22\x20object\x20for\x20tool-specific\x20parameters\x0a',_0x15352e+=_0x3e8d1a(0x1c9),_0x15352e+='After\x20invoking\x20a\x20tool,\x20WAIT\x20for\x20the\x20actual\x20response.\x20Do\x20NOT\x20generate\x20imaginary\x20responses.\x0a',_0x15352e;}[a0_0x4b124a(0x240)](_0x4c6598,_0xf36dc0=[],_0x21b9b9={}){const _0x1da7ec=a0_0x4b124a,_0x50a6bf=this[_0x1da7ec(0x1dc)](_0xf36dc0,_0x21b9b9);if(!_0x50a6bf[_0x1da7ec(0x1d9)]())return _0x4c6598||'';const _0x33bc21=_0x4c6598||'';if(_0x33bc21[_0x1da7ec(0x225)](_0x1da7ec(0x20d)))return _0x33bc21['replace'](/## AVAILABLE TOOLS[\s\S]*?(?=##|$)/,_0x50a6bf+'\x0a');const _0x43dc34='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 _0x33bc21+(_0x33bc21[_0x1da7ec(0x1d6)]('\x0a')?'':'\x0a')+_0x50a6bf+_0x43dc34+'\x0a';}[a0_0x4b124a(0x217)](){const _0x25ed81=a0_0x4b124a,_0x30980f=[];for(const [_0x44eb8d,_0x545e4e]of this['tools'][_0x25ed81(0x22d)]()){const _0x41c1e0=_0x545e4e[_0x25ed81(0x22a)](),_0x552bda=_0x545e4e[_0x25ed81(0x233)](),_0x435aad=_0x552bda['split']('\x0a')[_0x25ed81(0x1e3)](_0x340d10=>_0x340d10[_0x25ed81(0x1d9)]()[_0x25ed81(0x1ea)]>0x0)||'',_0xdea3e3=_0x435aad['replace'](/^.*Tool:\s*/i,'')[_0x25ed81(0x1d3)](/\s*-.*$/,'')[_0x25ed81(0x1d9)]();_0x30980f[_0x25ed81(0x20a)]({'id':_0x44eb8d,'name':_0xdea3e3||_0x44eb8d['charAt'](0x0)['toUpperCase']()+_0x44eb8d[_0x25ed81(0x1d2)](0x1),'description':_0x435aad,'category':this['_getToolCategory'](_0x44eb8d),'enabled':_0x41c1e0[_0x25ed81(0x1c1)],'async':_0x41c1e0[_0x25ed81(0x243)],'requiresProject':_0x41c1e0['requiresProject'],'className':_0x545e4e[_0x25ed81(0x236)]['name']});}return _0x30980f['sort']((_0xc08310,_0x1cb147)=>_0xc08310[_0x25ed81(0x1d5)]['localeCompare'](_0x1cb147['name']));}[a0_0x4b124a(0x205)](_0x5cb80b){const _0x5953ca=a0_0x4b124a,_0x3e816d={'terminal':_0x5953ca(0x1c8),'filesystem':_0x5953ca(0x204),'web':'Automation','agentdelay':_0x5953ca(0x1d1)};return _0x3e816d[_0x5cb80b]||'Other';}['getRegistryStats'](){const _0x267c88=a0_0x4b124a,_0x34c371=Array['from'](this['tools']['values']())['filter'](_0x115fa2=>_0x115fa2[_0x267c88(0x23a)]),_0x33be00=Array[_0x267c88(0x22c)](this['tools'][_0x267c88(0x21b)]())[_0x267c88(0x227)]((_0x4d532f,_0x3eeb85)=>_0x4d532f+_0x3eeb85[_0x267c88(0x1f4)],0x0);return{'totalTools':this[_0x267c88(0x1ff)]['size'],'enabledTools':_0x34c371['length'],'totalOperations':_0x33be00,'activeOperations':this[_0x267c88(0x1f9)]['size']};}}export{BaseTool,ToolsRegistry};
|
|
1
|
+
const a0_0xe430ba=a0_0x2c22;(function(_0x10cbb1,_0xd4faec){const _0x5047a0=a0_0x2c22,_0x273934=_0x10cbb1();while(!![]){try{const _0x62f30d=-parseInt(_0x5047a0(0x1d8))/0x1*(parseInt(_0x5047a0(0x19e))/0x2)+-parseInt(_0x5047a0(0x198))/0x3+parseInt(_0x5047a0(0x1a7))/0x4*(parseInt(_0x5047a0(0x1f2))/0x5)+parseInt(_0x5047a0(0x1cd))/0x6*(-parseInt(_0x5047a0(0x1a0))/0x7)+parseInt(_0x5047a0(0x1c6))/0x8+parseInt(_0x5047a0(0x1be))/0x9+-parseInt(_0x5047a0(0x18d))/0xa*(-parseInt(_0x5047a0(0x1e8))/0xb);if(_0x62f30d===_0xd4faec)break;else _0x273934['push'](_0x273934['shift']());}catch(_0x3a0124){_0x273934['push'](_0x273934['shift']());}}}(a0_0x2380,0xd6430));import{TOOL_STATUS,OPERATION_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x2c22(_0x2a17ed,_0x47f52e){_0x2a17ed=_0x2a17ed-0x17d;const _0x23803b=a0_0x2380();let _0x2c229e=_0x23803b[_0x2a17ed];if(a0_0x2c22['oRvvVT']===undefined){var _0x1f73d8=function(_0x44ca98){const _0x270228='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x22039f='',_0x3eabd4='';for(let _0x4b55ac=0x0,_0x4f7487,_0x909c97,_0x26f4b6=0x0;_0x909c97=_0x44ca98['charAt'](_0x26f4b6++);~_0x909c97&&(_0x4f7487=_0x4b55ac%0x4?_0x4f7487*0x40+_0x909c97:_0x909c97,_0x4b55ac++%0x4)?_0x22039f+=String['fromCharCode'](0xff&_0x4f7487>>(-0x2*_0x4b55ac&0x6)):0x0){_0x909c97=_0x270228['indexOf'](_0x909c97);}for(let _0x2bc7f0=0x0,_0x421172=_0x22039f['length'];_0x2bc7f0<_0x421172;_0x2bc7f0++){_0x3eabd4+='%'+('00'+_0x22039f['charCodeAt'](_0x2bc7f0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3eabd4);};a0_0x2c22['DDhvGe']=_0x1f73d8,a0_0x2c22['RVfSeE']={},a0_0x2c22['oRvvVT']=!![];}const _0x567f20=_0x23803b[0x0],_0x82471e=_0x2a17ed+_0x567f20,_0x1180f0=a0_0x2c22['RVfSeE'][_0x82471e];return!_0x1180f0?(_0x2c229e=a0_0x2c22['DDhvGe'](_0x2c229e),a0_0x2c22['RVfSeE'][_0x82471e]=_0x2c229e):_0x2c229e=_0x1180f0,_0x2c229e;}function a0_0x2380(){const _0x5dd15f=['z2v0vgLTzq','yxn5BMm','Bg9Nz2vY','B2jQzwn0','CMvKDwnL','y29UzMLN','z2v0ugfYyw1LDgvYu2nOzw1H','u3LZDgvT','DMfSAwq','mJq2nJm2menQrhPxrW','q09nueXfveve','yxn5BMnpCgvYyxrPB25Z','ChvZAa','vg9VBca','zxHLy3v0Aw9UvgLTzq','mtzmzfbPuhC','ywn0AxzLt3bLCMf0Aw9UCW','n3zVq3DVCa','Dg9VBerLC2nYAxb0Aw9UCW','x2DLDfrVB2XdyxrLz29YEq','zMLSDgvY','ig11C3qGAw1WBgvTzw50ihbHCNnLugfYyw1LDgvYCYGP','y2XLyw51CeHPC3rVCNK','z2v0vxnHz2vtDgf0CW','mtjov09XDK8','BM93','lsbvC2uGiNrVB2XjzciGDg8GC3bLy2LMEsb0AguGDg9VBcbUyw1LcG','zw5Oyw5Jzvn5C3rLBvbYB21WDa','CM91BMq','z2v0','A2v5CW','zxHLy3v0zvDPDgHuAw1LB3v0','ifrpt0WkcG','B3bLCMf0Aw9UsgLZDg9YEq','Dg9VBa','icaICgfYyw1LDgvYCYi6ihSGlI4Uih0k','tK9ux0zpvu5e','z2v0q2fWywjPBgL0AwvZ','DgvZDcbJB250zw50','lsbvC2uGiNbHCMfTzxrLCNmIig9IAMvJDcbMB3iGDg9VBc1ZCgvJAwzPyYbWyxjHBwv0zxjZcG','z2v0qxzHAwXHyMXLvg9VBhngB3jvsq','BwvZC2fNzq','vg9VBcbLEgvJDxrPB24Gy29TCgXLDgvKoIa','AM9PBG','z2v0uMvNAxn0CNLtDgf0CW','lsbvC2uGiMfJDgLVBNmIigfYCMf5igzVCIb0B29SCYb0Agf0ihn1ChbVCNqGBxvSDgLWBguGB3bLCMf0Aw9UCWOk','zxHLy3v0zvDPDgHmAwzLy3LJBgu','mtq5nJmXntDpv2TfuNO','z2vUzxjHDgvuB29SrgvZy3jPChrPB25ZrM9YuhjVBxb0','igHHCYbYzwfJAgvKig1HEgLTDw0Gy29Uy3vYCMvUDcbVCgvYyxrPB25ZigXPBwL0','C2v0','ww91igHHDMuGywnJzxnZihrVihrOzsbMB2XSB3DPBMCGDg9VBhmGDg8GCgvYzM9YBsbVCgvYyxrPB25ZigfUzcb0yxnRCZOkcG','zw5KvgLTzq','zxHLy3v0zvrVB2Xtzwn1CMvSEq','C2XPy2u','mJeWnJiYnhH0vLviBa','zw5HyMXLza','z2v0vg9VBa','Dg9ju09tDhjPBMC','Dg9mB3DLCKnHC2u','CMvXDwLYzxnqCM9Qzwn0','Dg9VBhm','otG1nZyWng5JDfLcsW','DMfSAwrHDgvqyxjHBwv0zxjZ','DxnHz2vdB3vUDa','igLZigrPC2fIBgvK','ygbGcG','CMfUzg9T','CMvNAxn0zxjuB29S','z2v0u3vWCg9YDgvKqwn0Aw9UCW','C3rHDhvZ','zw5HyMXL','ugfYyw1LDgvYihzHBgLKyxrPB24GzMfPBgvKoIa','mty0mdz1tMfQyK8','vg9VBcbUB3qGzM91BMq6ia','BgfZDfvZzwq','zNjVBq','BgvUz3rO','cLvZzsbku09oigzVCM1HDcbPBIbTyxjRzg93BIbJB2rLigjSB2nRCYb0BYbPBNzVA2uGDg9VBhmUcGO','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','Aw5MBW','Aw5JBhvKzxm','ygbGANnVBGO','z2v0rgvZy3jPChrPB24','y2HHCKf0','Bg9JywXLq29TCgfYzq','vg9VBcbLEgvJDxrPB24GzMfPBgvKoIa','vg9VBcbLEgvJDxrPB24GC3rHCNrLzdOG','z2vUzxjHDgvpCgvYyxrPB25jza','mtflvwnstey','CgfYC2vqyxjHBwv0zxjZ','C2vJCMv0CW','AxnfBMfIBgvK','C2L6zq','C2fUAxrPEMvdB250zxH0','ig1PC3nPBMCGCMvXDwLYzwqGBwv0Ag9KoIa','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','vg9VBcbZDgf0Axn0AwnZihjLC2v0oIa','qwz0zxiGAw52B2TPBMCGysb0B29SlcbxquLuigzVCIb0AguGywn0DwfSihjLC3bVBNnLlIbeBYbot1qGz2vUzxjHDguGAw1Hz2LUyxj5ihjLC3bVBNnLCY4k','otyZmdmWyvzSEhLn','rMfPBgvKihrVigDLDcbKzxnJCMLWDgLVBIbMB3iGDg9VBdOG','y2fSy3vSyxrLqxzLCMfNzuv4zwn1DgLVBLrPBwu','iYmJifn0yw5KyxjKiezVCM1HDdOGsLnptIbPBIbnyxjRzg93BIbdB2rLiejSB2nRcG','y29UC3rYDwn0B3i','y2fSy3vSyxrLu3vJy2vZC1jHDgu','BgLZDfrVB2XZ','DgLTzw91Da','zxjYB3i','zgvSzxrL','kIO6ia','vg9VBcbLEgvJDxrPB24GDgLTzwqGB3v0igfMDgvYia','ig11C3qGAw1WBgvTzw50igDLDerLC2nYAxb0Aw9UkcK','BMfTzq','rKfjteve','DhjPBq','AxnbC3LUyW','zxHLy3v0zq','DMfSAwrHDgvqyxjHBwv0zxjuExbLCW','otCWmJq5mhP4tvfvra','lsbbBhDHExmGD3jHCcbku09oihrVB2WGy29TBwfUzhmGAw4GygbGANnVBIaUlI4GygbGigjSB2nRCWO'];a0_0x2380=function(){return _0x5dd15f;};return a0_0x2380();}class BaseTool{constructor(_0x22039f={},_0x3eabd4=null){const _0x4b769e=a0_0x2c22;this['id']=this['constructor']['name'][_0x4b769e(0x1ca)]()['replace'](_0x4b769e(0x1b1),''),this[_0x4b769e(0x194)]=_0x22039f,this[_0x4b769e(0x191)]=_0x3eabd4,this[_0x4b769e(0x1cb)]=![],this[_0x4b769e(0x18a)]=![],this['timeout']=_0x22039f['timeout']||SYSTEM_DEFAULTS['MAX_TOOL_EXECUTION_TIME'],this[_0x4b769e(0x1ef)]=_0x22039f[_0x4b769e(0x1ef)]||0x1,this['activeOperations']=new Map(),this[_0x4b769e(0x1b0)]=[],this[_0x4b769e(0x1eb)]=_0x22039f[_0x4b769e(0x1c7)]!==![],this['lastUsed']=null,this['usageCount']=0x0;}[a0_0xe430ba(0x1e2)](){const _0x37b507=a0_0xe430ba;throw new Error('Tool\x20'+this['id']+_0x37b507(0x186));}[a0_0xe430ba(0x1e9)](_0x4b55ac){const _0x195b73=a0_0xe430ba;throw new Error('Tool\x20'+this['id']+_0x195b73(0x1a4));}async[a0_0xe430ba(0x18b)](_0x4f7487,_0x909c97){const _0x126e2e=a0_0xe430ba;throw new Error(_0x126e2e(0x19c)+this['id']+'\x20must\x20implement\x20execute()');}[a0_0xe430ba(0x1b4)](){const _0x221406=a0_0xe430ba;return{'id':this['id'],'async':this['isAsync'],'requiresProject':this[_0x221406(0x1cb)],'timeout':this[_0x221406(0x181)],'maxConcurrentOperations':this['maxConcurrentOperations'],'enabled':this[_0x221406(0x1eb)],'supportedActions':this[_0x221406(0x1d4)](),'parameterSchema':this[_0x221406(0x195)]()};}[a0_0xe430ba(0x1ce)](_0x26f4b6){const _0x726435=a0_0xe430ba;try{if(!_0x26f4b6||typeof _0x26f4b6!=='object')return{'valid':![],'error':'Parameters\x20must\x20be\x20an\x20object'};const requiredParams=this['getRequiredParameters']();for(const required of requiredParams){if(!(required in _0x26f4b6))return{'valid':![],'error':'Missing\x20required\x20parameter:\x20'+required};}const _0x2bc7f0=this[_0x726435(0x18c)](_0x26f4b6);if(!_0x2bc7f0['valid'])return _0x2bc7f0;const _0x421172=this['customValidateParameters'](_0x26f4b6);if(!_0x421172[_0x726435(0x197)])return _0x421172;return{'valid':!![]};}catch(_0x18d767){return{'valid':![],'error':_0x726435(0x1d7)+_0x18d767[_0x726435(0x1b8)]};}}async[a0_0xe430ba(0x1bd)](_0x49a36b,_0x2edde4){const _0x1e4d61=a0_0xe430ba,_0x15632d=this[_0x1e4d61(0x1e7)](),_0x22e067=Date['now']();if(!this['isEnabled'])throw new Error(_0x1e4d61(0x19c)+this['id']+_0x1e4d61(0x1d0));if(this[_0x1e4d61(0x19f)][_0x1e4d61(0x1ec)]>=this[_0x1e4d61(0x1ef)])throw new Error(_0x1e4d61(0x19c)+this['id']+_0x1e4d61(0x1c0));const _0x4d800f=this['validateParameters'](_0x49a36b);if(!_0x4d800f['valid'])throw new Error('Parameter\x20validation\x20failed:\x20'+_0x4d800f[_0x1e4d61(0x182)]);const _0x46e2cf={'id':_0x15632d,'toolId':this['id'],'status':TOOL_STATUS['EXECUTING'],'startTime':new Date()['toISOString'](),'params':_0x49a36b,'context':this[_0x1e4d61(0x1ed)](_0x2edde4)};this[_0x1e4d61(0x19f)]['set'](_0x15632d,_0x46e2cf);try{this[_0x1e4d61(0x191)]?.[_0x1e4d61(0x1df)](_0x1e4d61(0x1e6)+this['id'],{'operationId':_0x15632d,'toolId':this['id'],'context':_0x46e2cf['context']});const _0xe2c764=await this['executeWithTimeout'](_0x49a36b,_0x2edde4);return _0x46e2cf[_0x1e4d61(0x1d5)]=TOOL_STATUS[_0x1e4d61(0x199)],_0x46e2cf['result']=_0xe2c764,_0x46e2cf[_0x1e4d61(0x1c3)]=new Date()[_0x1e4d61(0x1c9)](),_0x46e2cf['executionTime']=Date['now']()-_0x22e067,this[_0x1e4d61(0x1da)]=new Date()[_0x1e4d61(0x1c9)](),this[_0x1e4d61(0x1cf)]++,this[_0x1e4d61(0x191)]?.[_0x1e4d61(0x1df)](_0x1e4d61(0x1b9)+this['id'],{'operationId':_0x15632d,'executionTime':_0x46e2cf['executionTime'],'success':!![]}),{'success':!![],'operationId':_0x15632d,'result':_0xe2c764,'executionTime':_0x46e2cf['executionTime'],'toolId':this['id']};}catch(_0x5029a5){_0x46e2cf['status']=TOOL_STATUS[_0x1e4d61(0x188)],_0x46e2cf[_0x1e4d61(0x182)]=_0x5029a5[_0x1e4d61(0x1b8)],_0x46e2cf['endTime']=new Date()[_0x1e4d61(0x1c9)](),_0x46e2cf[_0x1e4d61(0x19d)]=Date[_0x1e4d61(0x1a8)]()-_0x22e067,this['logger']?.[_0x1e4d61(0x182)](_0x1e4d61(0x1e5)+this['id'],{'operationId':_0x15632d,'error':_0x5029a5['message'],'executionTime':_0x46e2cf['executionTime']});throw _0x5029a5;}finally{this['operationHistory']['push']({..._0x46e2cf}),this['activeOperations'][_0x1e4d61(0x183)](_0x15632d),this['cleanupHistory'](),await this['cleanup'](_0x15632d);}}async['getStatus'](_0x577473){const _0x1baa2f=a0_0xe430ba,_0x4d6b2c=this['activeOperations']['get'](_0x577473);if(!_0x4d6b2c){const _0x47b919=this[_0x1baa2f(0x1b0)]['find'](_0x33b967=>_0x33b967['id']===_0x577473);if(_0x47b919)return{'operationId':_0x577473,'status':_0x47b919['status'],'result':_0x47b919['result'],'error':_0x47b919[_0x1baa2f(0x182)],'executionTime':_0x47b919['executionTime']};return{'operationId':_0x577473,'status':OPERATION_STATUS[_0x1baa2f(0x1b3)],'error':'Operation\x20not\x20found'};}return{'operationId':_0x577473,'status':_0x4d6b2c['status'],'startTime':_0x4d6b2c['startTime'],'executionTime':_0x4d6b2c[_0x1baa2f(0x1c3)]?new Date(_0x4d6b2c['endTime'])['getTime']()-new Date(_0x4d6b2c['startTime'])['getTime']():Date[_0x1baa2f(0x1a8)]()-new Date(_0x4d6b2c['startTime'])[_0x1baa2f(0x18f)]()};}async['cleanup'](_0x5d8968){}[a0_0xe430ba(0x1d4)](){return['execute'];}[a0_0xe430ba(0x195)](){const _0x26dea6=a0_0xe430ba;return{'type':_0x26dea6(0x192),'properties':{},'required':[]};}[a0_0xe430ba(0x1de)](){return[];}['validateParameterTypes'](_0x224cbb){return{'valid':!![]};}['customValidateParameters'](_0x37cc2b){return{'valid':!![]};}async[a0_0xe430ba(0x1ae)](_0x17e17c,_0x3f1725){return new Promise(async(_0x34b3b7,_0x25fe70)=>{const _0x30f646=a0_0x2c22,_0x4de2b7=setTimeout(()=>{const _0x3b6f50=a0_0x2c22;_0x25fe70(new Error(_0x3b6f50(0x185)+this[_0x3b6f50(0x181)]+'ms'));},this['timeout']);try{const _0x87adf=await this[_0x30f646(0x18b)](_0x17e17c,_0x3f1725);clearTimeout(_0x4de2b7),_0x34b3b7(_0x87adf);}catch(_0x29544f){clearTimeout(_0x4de2b7),_0x25fe70(_0x29544f);}});}['generateOperationId'](){const _0xcd8cd=a0_0xe430ba;return this['id']+'-'+Date[_0xcd8cd(0x1a8)]()+'-'+Math[_0xcd8cd(0x1d2)]()['toString'](0x24)['substr'](0x2,0x9);}[a0_0xe430ba(0x1ed)](_0x5e1312){const _0x1101a3=a0_0xe430ba,_0x51bbb7={..._0x5e1312};return delete _0x51bbb7['apiKeys'],delete _0x51bbb7[_0x1101a3(0x1ea)],delete _0x51bbb7['passwords'],_0x51bbb7['content']&&_0x51bbb7['content'][_0x1101a3(0x1dc)]>0x1f4&&(_0x51bbb7['content']=_0x51bbb7['content']['substring'](0x0,0x1f4)+'...\x20[truncated]'),_0x51bbb7;}[a0_0xe430ba(0x1a5)](){const _0x58131c=a0_0xe430ba,_0x187bb6=0x64;this['operationHistory']['length']>_0x187bb6&&(this['operationHistory']=this[_0x58131c(0x1b0)][_0x58131c(0x1c5)](-_0x187bb6));}['getUsageStats'](){const _0x26d395=a0_0xe430ba;return{'toolId':this['id'],'usageCount':this['usageCount'],'lastUsed':this['lastUsed'],'activeOperations':this['activeOperations']['size'],'totalOperations':this['operationHistory'][_0x26d395(0x1dc)],'averageExecutionTime':this['calculateAverageExecutionTime'](),'successRate':this[_0x26d395(0x17f)](),'isEnabled':this[_0x26d395(0x1eb)]};}[a0_0xe430ba(0x1f4)](){const _0x2dbcd9=a0_0xe430ba,_0x5fec27=this[_0x2dbcd9(0x1b0)]['filter'](_0x4342b0=>_0x4342b0[_0x2dbcd9(0x1d5)]===TOOL_STATUS['COMPLETED']&&_0x4342b0[_0x2dbcd9(0x19d)]);if(_0x5fec27[_0x2dbcd9(0x1dc)]===0x0)return 0x0;const _0x43bada=_0x5fec27[_0x2dbcd9(0x193)]((_0x1547ac,_0x39836f)=>_0x1547ac+_0x39836f[_0x2dbcd9(0x19d)],0x0);return Math[_0x2dbcd9(0x1ab)](_0x43bada/_0x5fec27[_0x2dbcd9(0x1dc)]);}[a0_0xe430ba(0x17f)](){const _0x51445c=a0_0xe430ba;if(this[_0x51445c(0x1b0)][_0x51445c(0x1dc)]===0x0)return 0x0;const _0x262b7c=this[_0x51445c(0x1b0)]['filter'](_0xeae20d=>_0xeae20d[_0x51445c(0x1d5)]===TOOL_STATUS['COMPLETED']);return _0x262b7c[_0x51445c(0x1dc)]/this['operationHistory']['length']*0x64;}[a0_0xe430ba(0x1d6)](){const _0x9a386c=a0_0xe430ba;this['isEnabled']=!![],this[_0x9a386c(0x191)]?.['info']('Tool\x20enabled:\x20'+this['id']);}['disable'](){const _0x9a078a=a0_0xe430ba;this['isEnabled']=![],this[_0x9a078a(0x191)]?.['info']('Tool\x20disabled:\x20'+this['id']);}['resetStats'](){const _0x309f0e=a0_0xe430ba;this['usageCount']=0x0,this['lastUsed']=null,this['operationHistory']=[],this['logger']?.['info'](_0x309f0e(0x1f0)+this['id']);}}class ToolsRegistry{constructor(_0x4faa95=null){const _0x1f0745=a0_0xe430ba;this['logger']=_0x4faa95,this[_0x1f0745(0x1cc)]=new Map(),this[_0x1f0745(0x1a1)]=new Map(),this['toolCapabilities']=new Map(),this[_0x1f0745(0x19a)]=new Map();}async[a0_0xe430ba(0x1d3)](_0x26d03b){const _0x5df245=a0_0xe430ba;try{const _0x1e0a21=new _0x26d03b();if(!(_0x1e0a21 instanceof BaseTool))throw new Error(_0x5df245(0x19c)+_0x26d03b[_0x5df245(0x187)]+'\x20must\x20extend\x20BaseTool');const _0x1266a5=_0x1e0a21['getCapabilities']();await this['validateTool'](_0x1e0a21),this[_0x5df245(0x1cc)]['set'](_0x1e0a21['id'],_0x1e0a21),this['toolDescriptions']['set'](_0x1e0a21['id'],_0x1e0a21[_0x5df245(0x1e2)]()),this['toolCapabilities'][_0x5df245(0x1c1)](_0x1e0a21['id'],_0x1266a5),this['logger']?.['info']('Tool\x20registered:\x20'+_0x1e0a21['id'],{'capabilities':_0x1266a5['supportedActions'],'async':_0x1266a5['async'],'requiresProject':_0x1266a5['requiresProject']});}catch(_0x1ca271){this['logger']?.[_0x5df245(0x182)]('Tool\x20registration\x20failed:\x20'+_0x1ca271[_0x5df245(0x1b8)],{'toolClass':_0x26d03b[_0x5df245(0x187)]});throw _0x1ca271;}}async['discoverTools'](_0x1a0722){return 0x0;}async['validateTool'](_0x5dfd16){const _0xb708f1=a0_0xe430ba,requiredMethods=['getDescription',_0xb708f1(0x1e9),'execute'];for(const _0xcb3411 of requiredMethods){if(typeof _0x5dfd16[_0xcb3411]!=='function')throw new Error('Tool\x20'+_0x5dfd16['id']+_0xb708f1(0x1ee)+_0xcb3411);}try{const _0x1b076e=_0x5dfd16[_0xb708f1(0x1e9)](_0xb708f1(0x1b5));if(typeof _0x1b076e!=='object')throw new Error('Tool\x20'+_0x5dfd16['id']+'\x20parseParameters\x20must\x20return\x20an\x20object');}catch(_0x2fe9fc){}const _0x36d2c0=_0x5dfd16['getCapabilities']();if(!_0x36d2c0||typeof _0x36d2c0!==_0xb708f1(0x192))throw new Error('Tool\x20'+_0x5dfd16['id']+'\x20getCapabilities\x20must\x20return\x20an\x20object');}[a0_0xe430ba(0x1c8)](_0x323d4f){const _0x4f4f09=a0_0xe430ba;return this[_0x4f4f09(0x1cc)]['get'](_0x323d4f)||null;}['getToolCapabilities'](){const _0x52687c=a0_0xe430ba,_0x2069d8={};for(const [_0x186984,_0xa026db]of this['tools']['entries']()){_0xa026db['isEnabled']&&(_0x2069d8[_0x186984]={'description':this['toolDescriptions'][_0x52687c(0x1ac)](_0x186984),'capabilities':this['toolCapabilities'][_0x52687c(0x1ac)](_0x186984),'usageStats':_0xa026db[_0x52687c(0x1a6)]()});}return _0x2069d8;}async[a0_0xe430ba(0x1c4)](_0x1cf878,_0x43aba5,_0x3b5d45){const _0x33043b=a0_0xe430ba,_0x121f17=this[_0x33043b(0x1c8)](_0x1cf878);if(!_0x121f17)throw new Error(_0x33043b(0x1d9)+_0x1cf878);if(!_0x121f17[_0x33043b(0x1eb)])throw new Error('Tool\x20is\x20disabled:\x20'+_0x1cf878);return await _0x121f17[_0x33043b(0x1bd)](_0x43aba5,_0x3b5d45);}[a0_0xe430ba(0x180)](){const _0x55a2c8=a0_0xe430ba;return Array['from'](this['tools'][_0x55a2c8(0x1ad)]());}[a0_0xe430ba(0x1bf)](_0x29df12=[],_0x341269={}){const _0xf6c089=a0_0xe430ba,{includeExamples:includeExamples=!![],includeUsageGuidelines:includeUsageGuidelines=!![],includeSecurityNotes:includeSecurityNotes=!![],compact:compact=![]}=_0x341269,_0x4f46e5=_0x29df12[_0xf6c089(0x1dc)]>0x0?_0x29df12[_0xf6c089(0x1a3)](_0x176b56=>this[_0xf6c089(0x1cc)]['has'](_0x176b56)):Array['from'](this['tools'][_0xf6c089(0x1ad)]());if(_0x4f46e5['length']===0x0)return'';let _0x55c02e='\x0a##\x20AVAILABLE\x20TOOLS\x0a\x0a';_0x55c02e+=_0xf6c089(0x1c2);for(const _0x1100a7 of _0x4f46e5){const _0x2e50bd=this['tools']['get'](_0x1100a7);if(!_0x2e50bd||!_0x2e50bd[_0xf6c089(0x1eb)])continue;try{if(compact){const _0x1820cb=_0x2e50bd['getCapabilities'](),_0xa57a29=_0x1820cb['supportedActions']||['execute'];_0x55c02e+='**'+_0x1100a7+_0xf6c089(0x184)+_0xa57a29[_0xf6c089(0x1ba)](',\x20')+'\x0a';}else _0x55c02e+='###\x20'+_0x1100a7['toUpperCase']()+_0xf6c089(0x1af),_0x55c02e+=_0x2e50bd['getDescription'](),_0x55c02e+='\x0a\x0a---\x0a\x0a';}catch(_0x5b99d1){this[_0xf6c089(0x191)]?.['warn'](_0xf6c089(0x1f3)+_0x1100a7,{'error':_0x5b99d1['message']});}}return compact&&(_0x55c02e+=_0xf6c089(0x1dd)),_0x55c02e+='##\x20TOOL\x20INVOCATION\x20SYNTAX\x0a\x0a',_0x55c02e+='**IMPORTANT**:\x20Use\x20JSON\x20format\x20in\x20markdown\x20code\x20blocks\x20to\x20invoke\x20tools:\x0a\x0a',_0x55c02e+=_0xf6c089(0x17d),_0x55c02e+=_0xf6c089(0x1d1),_0x55c02e+=_0xf6c089(0x1e1),_0x55c02e+='{\x0a',_0x55c02e+='\x20\x20\x22toolId\x22:\x20\x22toolname\x22,\x0a',_0x55c02e+=_0xf6c089(0x1b2),_0x55c02e+='}\x0a',_0x55c02e+=_0xf6c089(0x1d1),_0x55c02e+='```\x0a\x0a',_0x55c02e+='**Rules:**\x0a',_0x55c02e+=_0xf6c089(0x18e),_0x55c02e+=_0xf6c089(0x1a9),_0x55c02e+=_0xf6c089(0x1b6),_0x55c02e+=_0xf6c089(0x1bc),_0x55c02e+=_0xf6c089(0x1f1),_0x55c02e;}[a0_0xe430ba(0x1aa)](_0x3e5d29,_0x6f57f5=[],_0x46a0d1={}){const _0x38e303=a0_0xe430ba,_0x57511e=this['generateToolDescriptionsForPrompt'](_0x6f57f5,_0x46a0d1);if(!_0x57511e['trim']())return _0x3e5d29||'';const _0x4608d4=_0x3e5d29||'';if(_0x4608d4[_0x38e303(0x1e0)]('##\x20AVAILABLE\x20TOOLS'))return _0x4608d4['replace'](/## AVAILABLE TOOLS[\s\S]*?(?=##|$)/,_0x57511e+'\x0a');const _0x150342='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 _0x4608d4+(_0x4608d4['endsWith']('\x0a')?'':'\x0a')+_0x57511e+_0x150342+'\x0a';}[a0_0xe430ba(0x1b7)](){const _0x52464d=a0_0xe430ba,_0x4d0de7=[];for(const [_0x42448a,_0x2315d6]of this[_0x52464d(0x1cc)]['entries']()){const _0x54dec3=_0x2315d6[_0x52464d(0x1b4)](),_0x3a4edb=_0x2315d6['getDescription'](),_0x494d14=_0x3a4edb['split']('\x0a')['find'](_0x49b138=>_0x49b138['trim']()['length']>0x0)||'',_0x2e0c8d=_0x494d14['replace'](/^.*Tool:\s*/i,'')['replace'](/\s*-.*$/,'')[_0x52464d(0x189)]();_0x4d0de7[_0x52464d(0x19b)]({'id':_0x42448a,'name':_0x2e0c8d||_0x42448a[_0x52464d(0x1e3)](0x0)['toUpperCase']()+_0x42448a['slice'](0x1),'description':_0x494d14,'category':this[_0x52464d(0x1a2)](_0x42448a),'enabled':_0x54dec3['enabled'],'async':_0x54dec3[_0x52464d(0x190)],'requiresProject':_0x54dec3[_0x52464d(0x1cb)],'className':_0x2315d6[_0x52464d(0x17e)]['name']});}return _0x4d0de7['sort']((_0x599f76,_0x20ac90)=>_0x599f76[_0x52464d(0x187)][_0x52464d(0x1e4)](_0x20ac90[_0x52464d(0x187)]));}['_getToolCategory'](_0x2e0909){const _0x91cff6=a0_0xe430ba,_0x228a07={'terminal':_0x91cff6(0x196),'filesystem':'File\x20Operations','web':'Automation','agentdelay':'Utility'};return _0x228a07[_0x2e0909]||'Other';}[a0_0xe430ba(0x1bb)](){const _0x51c168=a0_0xe430ba,_0x3123d1=Array[_0x51c168(0x1db)](this['tools']['values']())[_0x51c168(0x1a3)](_0x5ec46f=>_0x5ec46f[_0x51c168(0x1eb)]),_0x2cf8ad=Array[_0x51c168(0x1db)](this[_0x51c168(0x1cc)]['values']())[_0x51c168(0x193)]((_0x424c56,_0x26ca19)=>_0x424c56+_0x26ca19['usageCount'],0x0);return{'totalTools':this['tools']['size'],'enabledTools':_0x3123d1[_0x51c168(0x1dc)],'totalOperations':_0x2cf8ad,'activeOperations':this['asyncOperations'][_0x51c168(0x1ec)]};}}export{BaseTool,ToolsRegistry};
|
package/src/tools/browserTool.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x424adf=a0_0x548d;(function(_0x18d5df,_0x47621d){const _0x5176ec=a0_0x548d,_0x2cb047=_0x18d5df();while(!![]){try{const _0x475498=-parseInt(_0x5176ec(0xb6))/0x1+parseInt(_0x5176ec(0xba))/0x2*(parseInt(_0x5176ec(0xa7))/0x3)+-parseInt(_0x5176ec(0x9e))/0x4*(-parseInt(_0x5176ec(0xe3))/0x5)+-parseInt(_0x5176ec(0xa8))/0x6*(parseInt(_0x5176ec(0x8c))/0x7)+-parseInt(_0x5176ec(0xe9))/0x8*(parseInt(_0x5176ec(0xcb))/0x9)+parseInt(_0x5176ec(0x90))/0xa*(-parseInt(_0x5176ec(0xa9))/0xb)+-parseInt(_0x5176ec(0xc1))/0xc*(-parseInt(_0x5176ec(0xfc))/0xd);if(_0x475498===_0x47621d)break;else _0x2cb047['push'](_0x2cb047['shift']());}catch(_0x118026){_0x2cb047['push'](_0x2cb047['shift']());}}}(a0_0x292f,0x292ee));import{BaseTool}from'./baseTool.js';function a0_0x548d(_0x274bc0,_0xb5bad1){_0x274bc0=_0x274bc0-0x7d;const _0x292f5c=a0_0x292f();let _0x548dd7=_0x292f5c[_0x274bc0];if(a0_0x548d['WLFPtX']===undefined){var _0x13a19d=function(_0x325000){const _0x408a5b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x573fcd='',_0x3b9bf8='';for(let _0x5016e2=0x0,_0x460c20,_0x39836b,_0x49e301=0x0;_0x39836b=_0x325000['charAt'](_0x49e301++);~_0x39836b&&(_0x460c20=_0x5016e2%0x4?_0x460c20*0x40+_0x39836b:_0x39836b,_0x5016e2++%0x4)?_0x573fcd+=String['fromCharCode'](0xff&_0x460c20>>(-0x2*_0x5016e2&0x6)):0x0){_0x39836b=_0x408a5b['indexOf'](_0x39836b);}for(let _0x3206c9=0x0,_0x889cb2=_0x573fcd['length'];_0x3206c9<_0x889cb2;_0x3206c9++){_0x3b9bf8+='%'+('00'+_0x573fcd['charCodeAt'](_0x3206c9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b9bf8);};a0_0x548d['DZZTaB']=_0x13a19d,a0_0x548d['bVdshX']={},a0_0x548d['WLFPtX']=!![];}const _0x5347d1=_0x292f5c[0x0],_0x32b89f=_0x274bc0+_0x5347d1,_0x174685=a0_0x548d['bVdshX'][_0x32b89f];return!_0x174685?(_0x548dd7=a0_0x548d['DZZTaB'](_0x548dd7),a0_0x548d['bVdshX'][_0x32b89f]=_0x548dd7):_0x548dd7=_0x174685,_0x548dd7;}import a0_0x573fcd from'../utilities/tagParser.js';import a0_0x3b9bf8 from'puppeteer';import a0_0x5016e2 from'fs/promises';import a0_0x460c20 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BrowserTool extends BaseTool{constructor(_0x39836b={},_0x49e301=null){const _0x2b655d=a0_0x548d;super(_0x39836b,_0x49e301),this['requiresProject']=![],this[_0x2b655d(0xe2)]=!![],this[_0x2b655d(0xdf)]=_0x39836b[_0x2b655d(0xdf)]||0xea60,this['maxConcurrentOperations']=_0x39836b['maxConcurrentOperations']||0x2,this[_0x2b655d(0xca)]={'headless':_0x39836b['headless']!==![],'viewport':_0x39836b[_0x2b655d(0x9d)]||{'width':0x500,'height':0x2d0},'userAgent':_0x39836b['userAgent']||'Mozilla/5.0\x20(Windows\x20NT\x2010.0;\x20Win64;\x20x64)\x20AppleWebKit/537.36','timeout':_0x39836b[_0x2b655d(0xdc)]||0x7530},this['browserInstances']=new Map(),this[_0x2b655d(0xdd)]=_0x39836b[_0x2b655d(0xdd)]||null,this['blockedDomains']=_0x39836b['blockedDomains']||[],this['maxScreenshotSize']=_0x39836b['maxScreenshotSize']||0x5*0x400*0x400,this[_0x2b655d(0xbe)]=[];}[a0_0x424adf(0xde)](){const _0x307d5d=a0_0x424adf;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[_0x307d5d(0xca)]['viewport']['width']+'x'+this['browserConfig']['viewport']['height']+'\x0aTIMEOUT:\x20'+this[_0x307d5d(0xca)]['timeout']+_0x307d5d(0xb4);}[a0_0x424adf(0x88)](_0x3206c9){const _0x2da447=a0_0x424adf;try{if(_0x3206c9[_0x2da447(0xf2)]()[_0x2da447(0xea)]('{')){const _0x22967e=JSON[_0x2da447(0xc2)](_0x3206c9);return!_0x22967e[_0x2da447(0xff)]&&(_0x22967e['actions']=[]),!Array['isArray'](_0x22967e['actions'])&&(_0x22967e['actions']=[_0x22967e[_0x2da447(0xff)]]),_0x22967e;}const _0x889cb2={},_0x22f256=[],_0x578360=[_0x2da447(0x93),_0x2da447(0xc5),_0x2da447(0xa2),'wait',_0x2da447(0x91),'extract','scroll','close'];for(const _0x36646e of _0x578360){const _0x34128c=new RegExp('<'+_0x36646e+_0x2da447(0x86),'gi');let _0x47c699;while((_0x47c699=_0x34128c[_0x2da447(0xb9)](_0x3206c9))!==null){const _0x585f62=_0x47c699[0x1],_0x48ff7f=this['parseAttributes'](_0x585f62),_0x2d2fd9={'type':_0x36646e,..._0x48ff7f};_0x2d2fd9[_0x2da447(0x95)]&&(_0x2d2fd9[_0x2da447(0xe5)]=_0x2d2fd9['output-path'],delete _0x2d2fd9['output-path']),_0x2d2fd9[_0x2da447(0xd7)]&&(_0x2d2fd9['waitTime']=parseInt(_0x2d2fd9['wait-time'],0xa),delete _0x2d2fd9[_0x2da447(0xd7)]),_0x2d2fd9[_0x2da447(0xab)]&&(_0x2d2fd9[_0x2da447(0xe7)]=_0x2d2fd9['wait-selector'],delete _0x2d2fd9[_0x2da447(0xab)]),_0x2d2fd9[_0x2da447(0xb1)]&&(_0x2d2fd9[_0x2da447(0xed)]=_0x2d2fd9[_0x2da447(0xb1)],delete _0x2d2fd9['wait-type']),_0x2d2fd9['full-page']&&(_0x2d2fd9['fullPage']=_0x2d2fd9[_0x2da447(0xb0)]==='true',delete _0x2d2fd9[_0x2da447(0xb0)]),_0x22f256['push'](_0x2d2fd9);}}return _0x889cb2['actions']=Array[_0x2da447(0xc8)](_0x22f256)?_0x22f256:[],_0x889cb2[_0x2da447(0xbd)]=_0x3206c9[_0x2da447(0xf2)](),_0x889cb2;}catch(_0x33e889){return this['logger']?.['error'](_0x2da447(0xf7),{'error':_0x33e889['message']}),{'actions':[],'rawContent':_0x3206c9['trim'](),'parseError':_0x33e889[_0x2da447(0x8d)]};}}['parseAttributes'](_0x5e5c3d){const _0x12d48a=a0_0x424adf,_0x29bb71={};if(!_0x5e5c3d)return _0x29bb71;const _0x5b898b=/([\w-]+)\s*=\s*["']([^"']*)["']/g;let _0x4fe510;while((_0x4fe510=_0x5b898b[_0x12d48a(0xb9)](_0x5e5c3d))!==null){const _0x4c2b4e=_0x4fe510[0x1],_0x37fb7c=_0x4fe510[0x2];_0x29bb71[_0x4c2b4e]=_0x37fb7c;}return _0x29bb71;}[a0_0x424adf(0xa4)](){const _0x256d31=a0_0x424adf;return[_0x256d31(0xff)];}['customValidateParameters'](_0x417fbb){const _0x7082b4=a0_0x424adf,_0x259de0=[];if(!_0x417fbb['actions']||!Array['isArray'](_0x417fbb['actions'])||_0x417fbb[_0x7082b4(0xff)][_0x7082b4(0xb3)]===0x0)_0x259de0[_0x7082b4(0x9a)]('At\x20least\x20one\x20action\x20is\x20required');else for(const [_0x380fb1,_0x196784]of _0x417fbb[_0x7082b4(0xff)]['entries']()){if(!_0x196784[_0x7082b4(0xa2)]){_0x259de0['push']('Action\x20'+(_0x380fb1+0x1)+':\x20type\x20is\x20required');continue;}switch(_0x196784['type']){case'navigate':if(!_0x196784['url'])_0x259de0['push'](_0x7082b4(0x98)+(_0x380fb1+0x1)+_0x7082b4(0xe1));else!this['isAllowedUrl'](_0x196784[_0x7082b4(0x92)])&&_0x259de0['push']('Action\x20'+(_0x380fb1+0x1)+':\x20URL\x20not\x20allowed:\x20'+_0x196784[_0x7082b4(0x92)]);break;case'click':case'extract':!_0x196784[_0x7082b4(0xf0)]&&_0x259de0[_0x7082b4(0x9a)](_0x7082b4(0x98)+(_0x380fb1+0x1)+_0x7082b4(0xbf)+_0x196784[_0x7082b4(0xa2)]);break;case'type':!_0x196784['selector']&&_0x259de0[_0x7082b4(0x9a)](_0x7082b4(0x98)+(_0x380fb1+0x1)+_0x7082b4(0x8a));!_0x196784[_0x7082b4(0xfa)]&&_0x196784[_0x7082b4(0xfa)]!==''&&_0x259de0['push'](_0x7082b4(0x98)+(_0x380fb1+0x1)+':\x20text\x20is\x20required\x20for\x20type');break;case'wait':!_0x196784['waitTime']&&!_0x196784['waitSelector']&&_0x259de0['push'](_0x7082b4(0x98)+(_0x380fb1+0x1)+':\x20either\x20wait-time\x20or\x20wait-selector\x20is\x20required');_0x196784[_0x7082b4(0x7f)]&&(_0x196784[_0x7082b4(0x7f)]<0x64||_0x196784[_0x7082b4(0x7f)]>0x7530)&&_0x259de0['push']('Action\x20'+(_0x380fb1+0x1)+_0x7082b4(0xa0));break;case'screenshot':!_0x196784['outputPath']&&_0x259de0['push']('Action\x20'+(_0x380fb1+0x1)+_0x7082b4(0x8f));break;case _0x7082b4(0x8b):if(!_0x196784[_0x7082b4(0xd6)])_0x259de0['push']('Action\x20'+(_0x380fb1+0x1)+_0x7082b4(0xa1));else!['up','down','left',_0x7082b4(0xaa)][_0x7082b4(0xe4)](_0x196784['direction'])&&_0x259de0[_0x7082b4(0x9a)](_0x7082b4(0x98)+(_0x380fb1+0x1)+_0x7082b4(0x84)+_0x196784['direction']);break;case _0x7082b4(0x8e):break;default:_0x259de0[_0x7082b4(0x9a)](_0x7082b4(0x98)+(_0x380fb1+0x1)+_0x7082b4(0x81)+_0x196784['type']);}}return{'valid':_0x259de0[_0x7082b4(0xb3)]===0x0,'errors':_0x259de0};}async['execute'](_0x257d6c,_0x1ecad9){const _0x4dd0a2=a0_0x424adf,{actions:_0x1d92a9}=_0x257d6c,{agentId:_0x425635,projectDir:_0x93db02}=_0x1ecad9,_0x1eef51=_0x425635+'-'+(_0x93db02||'default'),_0x3f95db=[];for(const _0x5d2f66 of _0x1d92a9){try{let _0x4d8a0;switch(_0x5d2f66[_0x4dd0a2(0xa2)]){case'navigate':_0x4d8a0=await this['navigate'](_0x5d2f66[_0x4dd0a2(0x92)],_0x1eef51);break;case _0x4dd0a2(0xc5):_0x4d8a0=await this[_0x4dd0a2(0xc5)](_0x5d2f66['selector'],_0x1eef51);break;case'type':_0x4d8a0=await this[_0x4dd0a2(0xa2)](_0x5d2f66[_0x4dd0a2(0xf0)],_0x5d2f66['text'],_0x1eef51);break;case _0x4dd0a2(0x94):_0x4d8a0=await this[_0x4dd0a2(0x94)](_0x5d2f66,_0x1eef51);break;case _0x4dd0a2(0x91):_0x4d8a0=await this['screenshot'](_0x5d2f66['outputPath'],_0x93db02,_0x1eef51,_0x5d2f66);break;case'extract':_0x4d8a0=await this[_0x4dd0a2(0xb5)](_0x5d2f66[_0x4dd0a2(0xf0)],_0x5d2f66['attribute']||'text',_0x1eef51);break;case _0x4dd0a2(0x8b):_0x4d8a0=await this[_0x4dd0a2(0x8b)](_0x5d2f66,_0x1eef51);break;case'close':_0x4d8a0=await this['closeBrowser'](_0x1eef51);break;default:throw new Error('Unknown\x20action\x20type:\x20'+_0x5d2f66[_0x4dd0a2(0xa2)]);}_0x3f95db['push'](_0x4d8a0),this['addToHistory'](_0x5d2f66,_0x4d8a0,_0x425635);}catch(_0x45a81e){const _0x3397aa={'success':![],'action':_0x5d2f66['type'],'error':_0x45a81e[_0x4dd0a2(0x8d)],'selector':_0x5d2f66['selector']||_0x5d2f66['url']};_0x3f95db['push'](_0x3397aa),this['addToHistory'](_0x5d2f66,_0x3397aa,_0x425635);}}return{'success':!![],'actions':_0x3f95db,'executedActions':_0x1d92a9['length'],'toolUsed':'browser'};}async[a0_0x424adf(0x93)](_0x10591f,_0x58a633){const _0x819442=a0_0x424adf,_0x459422=await this['getBrowser'](_0x58a633),_0x338690=await this['getPage'](_0x58a633),_0x51764b=Date['now']();try{await _0x338690[_0x819442(0x9c)](_0x10591f,{'waitUntil':'networkidle0','timeout':this['browserConfig']['timeout']});const _0x1e29c1=await _0x338690[_0x819442(0xaf)](),_0x55a675=_0x338690['url']();return{'success':!![],'action':_0x819442(0x93),'url':_0x55a675,'originalUrl':_0x10591f,'title':_0x1e29c1,'loadTime':Date['now']()-_0x51764b,'message':_0x819442(0xd5)+_0x10591f};}catch(_0x308a84){throw new Error(_0x819442(0xfb)+_0x308a84['message']);}}async['click'](_0x2c22fc,_0x5e7857){const _0x50ee95=a0_0x424adf,_0x5a50d2=await this[_0x50ee95(0x97)](_0x5e7857);try{return await _0x5a50d2['waitForSelector'](_0x2c22fc,{'timeout':0x1388}),await _0x5a50d2['click'](_0x2c22fc),{'success':!![],'action':_0x50ee95(0xc5),'selector':_0x2c22fc,'message':'Clicked\x20on\x20'+_0x2c22fc};}catch(_0x15989d){throw new Error(_0x50ee95(0xdb)+_0x2c22fc+':\x20'+_0x15989d['message']);}}async['type'](_0x4afc6a,_0x2c5c42,_0x22feec){const _0x50dedf=a0_0x424adf,_0x51b504=await this['getPage'](_0x22feec);try{return await _0x51b504['waitForSelector'](_0x4afc6a,{'timeout':0x1388}),await _0x51b504[_0x50dedf(0xd0)](_0x4afc6a),await _0x51b504['keyboard']['selectAll'](),await _0x51b504[_0x50dedf(0xa2)](_0x4afc6a,_0x2c5c42),{'success':!![],'action':'type','selector':_0x4afc6a,'text':_0x2c5c42,'textLength':_0x2c5c42[_0x50dedf(0xb3)],'message':_0x50dedf(0xf6)+_0x2c5c42['length']+'\x20characters\x20into\x20'+_0x4afc6a};}catch(_0x53df40){throw new Error(_0x50dedf(0x83)+_0x4afc6a+':\x20'+_0x53df40['message']);}}async[a0_0x424adf(0x94)](_0x24120a,_0x486026){const _0x2702d6=a0_0x424adf,_0x4bfde3=await this['getPage'](_0x486026);try{if(_0x24120a[_0x2702d6(0x7f)])return await new Promise(_0x3ceb54=>setTimeout(_0x3ceb54,_0x24120a[_0x2702d6(0x7f)])),{'success':!![],'action':'wait','waitTime':_0x24120a[_0x2702d6(0x7f)],'message':'Waited\x20'+_0x24120a[_0x2702d6(0x7f)]+'ms'};if(_0x24120a[_0x2702d6(0xe7)]){const _0x5a654d=_0x24120a[_0x2702d6(0xed)]||'visible',_0xea9554={'timeout':0x2710};return _0x5a654d==='hidden'?await _0x4bfde3[_0x2702d6(0xda)](_0x24120a[_0x2702d6(0xe7)],{..._0xea9554,'hidden':!![]}):await _0x4bfde3[_0x2702d6(0xda)](_0x24120a[_0x2702d6(0xe7)],_0xea9554),{'success':!![],'action':_0x2702d6(0x94),'waitSelector':_0x24120a['waitSelector'],'waitType':_0x5a654d,'message':_0x2702d6(0xb2)+_0x24120a['waitSelector']+'\x20to\x20be\x20'+_0x5a654d};}}catch(_0x1b1488){throw new Error(_0x2702d6(0xcf)+_0x1b1488['message']);}}async['screenshot'](_0x432e64,_0x1aafef,_0x2d70d4,_0x30c022={}){const _0x37199d=a0_0x424adf,_0x2be3bf=await this[_0x37199d(0x97)](_0x2d70d4);try{const _0x54a660=_0x1aafef?a0_0x460c20['resolve'](_0x1aafef,_0x432e64):a0_0x460c20['resolve'](_0x432e64),_0x488fce=a0_0x460c20[_0x37199d(0xb7)](_0x54a660);await a0_0x5016e2['mkdir'](_0x488fce,{'recursive':!![]});const _0x193320={'path':_0x54a660,'type':_0x37199d(0xe0)};_0x30c022[_0x37199d(0xee)]&&(_0x193320['fullPage']=!![]);await _0x2be3bf[_0x37199d(0x91)](_0x193320);const _0x50fc86=await a0_0x5016e2['stat'](_0x54a660);if(_0x50fc86[_0x37199d(0x9b)]>this[_0x37199d(0xa6)])throw new Error('Screenshot\x20too\x20large:\x20'+_0x50fc86['size']+_0x37199d(0xfd)+this[_0x37199d(0xa6)]+')');return{'success':!![],'action':_0x37199d(0x91),'outputPath':a0_0x460c20['relative'](_0x1aafef||process[_0x37199d(0xae)](),_0x54a660),'size':_0x50fc86[_0x37199d(0x9b)],'fullPage':!!_0x30c022[_0x37199d(0xee)],'message':'Screenshot\x20saved:\x20'+_0x432e64};}catch(_0x268a89){throw new Error('Screenshot\x20failed:\x20'+_0x268a89['message']);}}async[a0_0x424adf(0xb5)](_0x1a1cd3,_0x2bd310,_0x22e950){const _0x21d31a=a0_0x424adf,_0x5e8fb2=await this[_0x21d31a(0x97)](_0x22e950);try{await _0x5e8fb2['waitForSelector'](_0x1a1cd3,{'timeout':0x1388});let _0x56dbd6;return _0x2bd310===_0x21d31a(0xfa)?_0x56dbd6=await _0x5e8fb2[_0x21d31a(0xd2)](_0x1a1cd3,_0x249c93=>_0x249c93['textContent']['trim']()):_0x56dbd6=await _0x5e8fb2[_0x21d31a(0xd2)](_0x1a1cd3,(_0x433702,_0x21db0e)=>_0x433702[_0x21d31a(0xc7)](_0x21db0e),_0x2bd310),{'success':!![],'action':'extract','selector':_0x1a1cd3,'attribute':_0x2bd310,'data':_0x56dbd6,'message':_0x21d31a(0xf5)+_0x2bd310+'\x20from\x20'+_0x1a1cd3};}catch(_0x78d57c){throw new Error(_0x21d31a(0xce)+_0x1a1cd3+':\x20'+_0x78d57c['message']);}}async['scroll'](_0x374c99,_0x159893){const _0x4af741=a0_0x424adf,_0x366f78=await this[_0x4af741(0x97)](_0x159893);try{const {direction:_0x516459,pixels:pixels=0x12c,selector:_0x4e0b95}=_0x374c99;return _0x4e0b95?await _0x366f78[_0x4af741(0xec)]((_0x32fa72,_0x1ac343,_0x3bf7fa)=>{const _0x334436=_0x4af741,_0x81fad4=document['querySelector'](_0x32fa72);if(_0x81fad4){if(_0x1ac343===_0x334436(0xe8))_0x81fad4[_0x334436(0xe6)]+=_0x3bf7fa;else{if(_0x1ac343==='up')_0x81fad4[_0x334436(0xe6)]-=_0x3bf7fa;else{if(_0x1ac343===_0x334436(0xaa))_0x81fad4[_0x334436(0xbb)]+=_0x3bf7fa;else{if(_0x1ac343==='left')_0x81fad4['scrollLeft']-=_0x3bf7fa;}}}}},_0x4e0b95,_0x516459,pixels):await _0x366f78['evaluate']((_0x3e7686,_0x26777b)=>{const _0x510f7e=_0x4af741;if(_0x3e7686===_0x510f7e(0xe8))window[_0x510f7e(0xa3)](0x0,_0x26777b);else{if(_0x3e7686==='up')window[_0x510f7e(0xa3)](0x0,-_0x26777b);else{if(_0x3e7686===_0x510f7e(0xaa))window[_0x510f7e(0xa3)](_0x26777b,0x0);else{if(_0x3e7686===_0x510f7e(0x87))window[_0x510f7e(0xa3)](-_0x26777b,0x0);}}}},_0x516459,pixels),{'success':!![],'action':_0x4af741(0x8b),'direction':_0x516459,'pixels':pixels,'selector':_0x4e0b95||_0x4af741(0xeb),'message':'Scrolled\x20'+_0x516459+'\x20by\x20'+pixels+'px'};}catch(_0x4b3e76){throw new Error('Scroll\x20failed:\x20'+_0x4b3e76['message']);}}async[a0_0x424adf(0xc9)](_0x58e2d6){const _0x4d2172=a0_0x424adf;if(this['browserInstances']['has'](_0x58e2d6)){const _0x23b2cd=this[_0x4d2172(0xd9)][_0x4d2172(0xc3)](_0x58e2d6);if(!_0x23b2cd[_0x4d2172(0xc0)][_0x4d2172(0xd4)]())this[_0x4d2172(0xd9)]['delete'](_0x58e2d6);else return _0x23b2cd['browser'];}const _0x416516=await a0_0x3b9bf8['launch']({'headless':this['browserConfig'][_0x4d2172(0x96)],'args':['--no-sandbox',_0x4d2172(0x89),'--disable-dev-shm-usage',_0x4d2172(0xc6)]}),_0x2754ec=await _0x416516['newPage']();return await _0x2754ec[_0x4d2172(0xa5)](this[_0x4d2172(0xca)]['viewport']),await _0x2754ec[_0x4d2172(0xf3)](this[_0x4d2172(0xca)][_0x4d2172(0x9f)]),this[_0x4d2172(0xd9)][_0x4d2172(0xf1)](_0x58e2d6,{'browser':_0x416516,'page':_0x2754ec,'created':Date[_0x4d2172(0xcd)]()}),setTimeout(()=>{const _0x4a9a78=_0x4d2172;this[_0x4a9a78(0x82)](_0x58e2d6);},0xa*0x3c*0x3e8),_0x416516;}async[a0_0x424adf(0x97)](_0xf92cbb){const _0x556598=a0_0x424adf;return await this[_0x556598(0xc9)](_0xf92cbb),this['browserInstances']['get'](_0xf92cbb)['page'];}async['closeBrowser'](_0x41662e){const _0x25d78e=a0_0x424adf,_0x178e1a=this['browserInstances']['get'](_0x41662e);if(_0x178e1a)try{return await _0x178e1a['browser'][_0x25d78e(0x8e)](),this['browserInstances'][_0x25d78e(0xd8)](_0x41662e),{'success':!![],'action':'close','browserKey':_0x41662e,'message':_0x25d78e(0xd1)};}catch(_0x4d24a5){throw new Error('Failed\x20to\x20close\x20browser:\x20'+_0x4d24a5['message']);}return{'success':!![],'action':_0x25d78e(0x8e),'browserKey':_0x41662e,'message':_0x25d78e(0x7e)};}async[a0_0x424adf(0x82)](_0x5864b9){const _0x1d019e=a0_0x424adf,_0x29cc03=this[_0x1d019e(0xd9)][_0x1d019e(0xc3)](_0x5864b9);if(_0x29cc03)try{await _0x29cc03['browser']['close']();}catch(_0x425deb){}finally{this['browserInstances']['delete'](_0x5864b9);}}[a0_0x424adf(0xad)](_0x27c1a0){const _0x38792a=a0_0x424adf;try{const _0x211196=new URL(_0x27c1a0),_0x3c9cc8=_0x211196['hostname'][_0x38792a(0xac)]();if(this['blockedDomains'][_0x38792a(0xf8)](_0x48e02e=>_0x3c9cc8[_0x38792a(0xe4)](_0x48e02e[_0x38792a(0xac)]())))return![];if(this[_0x38792a(0xdd)]&&this[_0x38792a(0xdd)][_0x38792a(0xb3)]>0x0)return this[_0x38792a(0xdd)]['some'](_0x271d70=>_0x3c9cc8[_0x38792a(0xe4)](_0x271d70[_0x38792a(0xac)]()));return!![];}catch{return![];}}[a0_0x424adf(0xb8)](_0x1fdca7,_0x4ff547,_0x277973){const _0x11d8d7=a0_0x424adf,_0x1c9dd5={'timestamp':new Date()[_0x11d8d7(0x99)](),'agentId':_0x277973,'action':_0x1fdca7[_0x11d8d7(0xa2)],'selector':_0x1fdca7['selector']||_0x1fdca7['url'],'success':_0x4ff547[_0x11d8d7(0xcc)],'loadTime':_0x4ff547[_0x11d8d7(0x7d)]||0x0};this[_0x11d8d7(0xbe)][_0x11d8d7(0x9a)](_0x1c9dd5),this['operationHistory'][_0x11d8d7(0xb3)]>0x64&&(this['operationHistory']=this['operationHistory'][_0x11d8d7(0xfe)](-0x64));}[a0_0x424adf(0xf9)](){const _0x50cbda=a0_0x424adf;return['navigate',_0x50cbda(0xc5),'type','wait',_0x50cbda(0x91),_0x50cbda(0xb5),_0x50cbda(0x8b),_0x50cbda(0x8e)];}[a0_0x424adf(0xbc)](){const _0x120418=a0_0x424adf;return{'type':_0x120418(0xf4),'properties':{'actions':{'type':'array','minItems':0x1,'items':{'type':'object','properties':{'type':{'type':_0x120418(0xc4),'enum':this['getSupportedActions']()},'url':{'type':_0x120418(0xc4)},'selector':{'type':'string'},'text':{'type':'string'},'outputPath':{'type':_0x120418(0xc4)},'waitTime':{'type':_0x120418(0x80)},'waitSelector':{'type':_0x120418(0xc4)},'attribute':{'type':_0x120418(0xc4)},'direction':{'type':'string'},'pixels':{'type':'integer'}},'required':['type']}}},'required':['actions']};}async[a0_0x424adf(0x85)](_0x30e2e2){const _0x5d47ef=a0_0x424adf;for(const [_0x3fdcca]of this[_0x5d47ef(0xd9)]){await this['cleanupBrowser'](_0x3fdcca);}}[a0_0x424adf(0xef)](_0xd53ec4=null){const _0x27a4e1=a0_0x424adf;if(_0xd53ec4)return this['operationHistory'][_0x27a4e1(0xd3)](_0x1ea655=>_0x1ea655['agentId']===_0xd53ec4);return[...this['operationHistory']];}}function a0_0x292f(){const _0x6889cb=['CMf3q29UDgvUDa','B3bLCMf0Aw9UsgLZDg9YEq','oIbZzwXLy3rVCIbPCYbYzxf1AxjLzcbMB3iG','yNjVD3nLCG','mZaWmtGWtfPor0fQ','CgfYC2u','z2v0','C3rYAw5N','y2XPy2S','ls1KAxnHyMXLlwDWDq','z2v0qxr0CMLIDxrL','AxnbCNjHEq','z2v0qNjVD3nLCG','yNjVD3nLCKnVBMzPzW','otbTqxbWD0u','C3vJy2vZCW','BM93','rxH0CMfJDcbMywLSzwqGB24G','v2fPDcbMywLSzwq6ia','zM9JDxm','qNjVD3nLCIbPBNn0yw5JzsbJBg9Zzwq','jgv2ywW','zMLSDgvY','AxndB25Uzwn0zwq','tMf2AwDHDgvKihrVia','zgLYzwn0Aw9U','D2fPDc10Aw1L','zgvSzxrL','yNjVD3nLCKLUC3rHBMnLCW','D2fPDezVCLnLBgvJDg9Y','q2XPy2SGzMfPBgvKig9Uia','CgfNzvrPBwvVDxq','ywXSB3DLzerVBwfPBNm','z2v0rgvZy3jPChrPB24','DgLTzw91Da','Cg5N','oIb1CMWGAxmGCMvXDwLYzwqGzM9Yig5HDMLNyxrL','AxnbC3LUyW','mZvZzvPbBMO','Aw5JBhvKzxm','B3v0Chv0ugf0Aa','C2nYB2XSvg9W','D2fPDfnLBgvJDg9Y','zg93BG','mZaXmdrXAhjnv0S','C3rHCNrZv2L0Aa','CgfNzq','zxzHBhvHDgu','D2fPDfr5Cgu','zNvSBfbHz2u','z2v0t3bLCMf0Aw9UsgLZDg9YEq','C2vSzwn0B3i','C2v0','DhjPBq','C2v0vxnLCKfNzw50','B2jQzwn0','rxH0CMfJDgvKia','vhLWzwqG','rMfPBgvKihrVihbHCNnLigjYB3DZzxiGCgfYyw1LDgvYCW','C29Tzq','z2v0u3vWCg9YDgvKqwn0Aw9UCW','Dgv4Da','tMf2AwDHDgLVBIbMywLSzwq6ia','mtmWANfdDurW','igj5DgvZicHTyxGG','C2XPy2u','ywn0Aw9UCW','Bg9HzfrPBwu','qNjVD3nLCIbPBNn0yw5JzsbUB3qGzM91BMqGkgfSCMvHzhKGy2XVC2vKkq','D2fPDfrPBwu','Aw50zwDLCG','oIb1BMTUB3DUigfJDgLVBIb0ExbLoIa','y2XLyw51CejYB3DZzxi','vhLWzsbMywLSzwqGB24G','oIbPBNzHBgLKihnJCM9SBcbKAxjLy3rPB246ia','y2XLyw51Ca','xhmRkfTEpL0QpYLCCYPClZ8+','BgvMDa','CgfYC2vqyxjHBwv0zxjZ','ls1KAxnHyMXLlxnLDhvPzc1Zyw5KyM94','oIbZzwXLy3rVCIbPCYbYzxf1AxjLzcbMB3iGDhLWzq','C2nYB2XS','ndjIzvLstxq','BwvZC2fNzq','y2XVC2u','oIbVDxrWDxqTCgf0AcbPCYbYzxf1AxjLzcbMB3iGC2nYzwvUC2HVDa','ndu1mgvfvwzACq','C2nYzwvUC2HVDa','DxjS','BMf2AwDHDgu','D2fPDa','B3v0Chv0lxbHDgG','AgvHzgXLC3m','z2v0ugfNzq','qwn0Aw9Uia','Dg9ju09tDhjPBMC','ChvZAa','C2L6zq','z290BW','DMLLD3bVCNq','mJq3mJbIyNzAzem','DxnLCKfNzw50','oIb3ywL0lxrPBwuGBxvZDcbIzsbIzxr3zwvUideWmcbHBMqGmZaWmdaGBwLSBgLZzwnVBMrZ','oIbKAxjLy3rPB24GAxmGCMvXDwLYzwqGzM9YihnJCM9SBa','DhLWzq','C2nYB2XSqNK','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','C2v0vMLLD3bVCNq','Bwf4u2nYzwvUC2HVDfnPEMu','mtG5qwHiDM1i','mZe0ndzgt0HgB1y','mZK0ouHSv3jJuG','CMLNAhq','D2fPDc1ZzwXLy3rVCG','Dg9mB3DLCKnHC2u','AxnbBgXVD2vKvxjS','y3DK','DgL0Bgu','zNvSBc1WywDL','D2fPDc10ExbL','v2fPDgvKigzVCIa','BgvUz3rO','BxmGCgvYig9WzxjHDgLVBGOGicaG','zxH0CMfJDa','mtCYmZjxufrSy0O','zgLYBMfTzq','ywrKvg9iAxn0B3j5','zxHLyW','mZK2nKrQsw1Ysq','C2nYB2XStgvMDa','z2v0ugfYyw1LDgvYu2nOzw1H'];a0_0x292f=function(){return _0x6889cb;};return a0_0x292f();}export default BrowserTool;
|
|
1
|
+
function a0_0x5090(_0x5074da,_0x41b9a3){_0x5074da=_0x5074da-0x1ed;const _0x5aab5b=a0_0x5aab();let _0x5090dd=_0x5aab5b[_0x5074da];if(a0_0x5090['IRiFMj']===undefined){var _0x5568b6=function(_0x52e8fd){const _0x842f2e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x473b4e='',_0x5cc6bf='';for(let _0xe0b150=0x0,_0x47439f,_0x570161,_0x6875e7=0x0;_0x570161=_0x52e8fd['charAt'](_0x6875e7++);~_0x570161&&(_0x47439f=_0xe0b150%0x4?_0x47439f*0x40+_0x570161:_0x570161,_0xe0b150++%0x4)?_0x473b4e+=String['fromCharCode'](0xff&_0x47439f>>(-0x2*_0xe0b150&0x6)):0x0){_0x570161=_0x842f2e['indexOf'](_0x570161);}for(let _0x33fca7=0x0,_0x100a34=_0x473b4e['length'];_0x33fca7<_0x100a34;_0x33fca7++){_0x5cc6bf+='%'+('00'+_0x473b4e['charCodeAt'](_0x33fca7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5cc6bf);};a0_0x5090['feWXsy']=_0x5568b6,a0_0x5090['RgIwfO']={},a0_0x5090['IRiFMj']=!![];}const _0x205ee9=_0x5aab5b[0x0],_0x299336=_0x5074da+_0x205ee9,_0x41e497=a0_0x5090['RgIwfO'][_0x299336];return!_0x41e497?(_0x5090dd=a0_0x5090['feWXsy'](_0x5090dd),a0_0x5090['RgIwfO'][_0x299336]=_0x5090dd):_0x5090dd=_0x41e497,_0x5090dd;}const a0_0x3d9da7=a0_0x5090;(function(_0xbc390,_0x42e32c){const _0xe0803b=a0_0x5090,_0xe5a5c0=_0xbc390();while(!![]){try{const _0x52b9d0=parseInt(_0xe0803b(0x1f6))/0x1+-parseInt(_0xe0803b(0x22a))/0x2*(-parseInt(_0xe0803b(0x208))/0x3)+-parseInt(_0xe0803b(0x202))/0x4*(parseInt(_0xe0803b(0x1fe))/0x5)+-parseInt(_0xe0803b(0x229))/0x6+-parseInt(_0xe0803b(0x23a))/0x7+parseInt(_0xe0803b(0x25b))/0x8*(parseInt(_0xe0803b(0x212))/0x9)+-parseInt(_0xe0803b(0x1f2))/0xa*(-parseInt(_0xe0803b(0x261))/0xb);if(_0x52b9d0===_0x42e32c)break;else _0xe5a5c0['push'](_0xe5a5c0['shift']());}catch(_0x2ca80d){_0xe5a5c0['push'](_0xe5a5c0['shift']());}}}(a0_0x5aab,0x1d1a8));import{BaseTool}from'./baseTool.js';function a0_0x5aab(){const _0x2b4e20=['Dg9ju09tDhjPBMC','ywn0Aw9UCW','D2LKDgG','y2XPy2S','CMLNAhq','Dg9mB3DLCKnHC2u','C2vSzwn0qwXS','B2jQzwn0','C2L6zq','DMLLD3bVCNq','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','igj5DgvZicHTyxGG','oIbZzwXLy3rVCIbPCYbYzxf1AxjLzcbMB3iGDhLWzq','qwn0Aw9Uia','z2v0ugfYyw1LDgvYu2nOzw1H','z2v0qNjVD3nLCG','mtmYndm4nKDrCNPiAq','ota3mfzdDwvgEq','CMvZB2X2zq','u2nYzwvUC2HVDcbZyxzLzdOG','oIbLAxrOzxiGD2fPDc10Aw1Lig9YihDHAxqTC2vSzwn0B3iGAxmGCMvXDwLYzwq','yNjVD3nLCKnVBMzPzW','y2XVC2vcCM93C2vY','C2nYzwvUC2HVDa','z2v0rgvZy3jPChrPB24','Aw50zwDLCG','oIb3ywL0lxrPBwuGBxvZDcbIzsbIzxr3zwvUideWmcbHBMqGmZaWmdaGBwLSBgLZzwnVBMrZ','AxnbCNjHEq','z2v0qxr0CMLIDxrL','D2fPDc10Aw1L','u2nYB2XSigzHAwXLzdOG','DhjPBq','DxjS','mZi1nta3vgT0y0zO','zgLYBMfTzq','yNjVD3nLCG','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','C2nYB2XS','B3bLCMf0Aw9UsgLZDg9YEq','ywXSB3DLzerVBwfPBNm','oIb1CMWGAxmGCMvXDwLYzwqGzM9Yig5HDMLNyxrL','igzYB20G','yNjVD3nLCKLUC3rHBMnLCW','ywDLBNrjza','C2v0vxnLCKfNzw50','C2vSzwn0B3i','Bwf4u2nYzwvUC2HVDfnPEMu','zxH0CMfJDa','oIbVDxrWDxqTCgf0AcbPCYbYzxf1AxjLzcbMB3iGC2nYzwvUC2HVDa','D2fPDfrPBwu','ls1KAxnHyMXLlwrLDI1ZAg0TDxnHz2u','q2XPy2SGzMfPBgvKig9Uia','D2fPDezVCLnLBgvJDg9Y','DgL0Bgu','C29Tzq','cLrjtuvpvvq6ia','BMf2AwDHDgu','zxHLy3v0zq','D2fPDfnLBgvJDg9Y','yMXVy2TLzerVBwfPBNm','C2v0vMLLD3bVCNq','CxvLCNLtzwXLy3rVCG','zg93BG','C2nYB2XStgvMDa','Dgv4Da','qNjVD3nLCIbPBNn0yw5JzsbUB3qGzM91BMqGkgfSCMvHzhKGy2XVC2vKkq','mte1ntiWsxLMBM9e','BgvUz3rO','CgfYC2vqyxjHBwv0zxjZ','B3v0Chv0ugf0Aa','BgvMDa','BxmGCgvYig9WzxjHDgLVBGOGicaG','mti0odvcq3vOAvG','CMf3q29UDgvUDa','tMf2AwDHDgLVBIbMywLSzwq6ia','zM9JDxm','C3rYAw5N','ChvZAa','CMvXDwLYzxnqCM9Qzwn0','z2v0ugfNzq','zxHLyW','mty3mg1yBufRua','D2fPDc10ExbL','zNvSBfbHz2u','y2XVC2u','mtu4mNrRwxbdyW','CgfNzvrPBwvVDxq','rxH0CMfJDgvKia','zgvSzxrL','C3vJy2vZCW','ls1KAxnHyMXLlwDWDq','Aw5JBhvKzxm','rMfPBgvKihrVihbHCNnLigjYB3DZzxiGCgfYyw1LDgvYCW','nti4oteWtMPVD2jL','DxnLCKfNzw50','zNvSBc1WywDL','B3v0Chv0lxbHDgG','neXWEwrcEq','CgfNzq','ywrKvg9iAxn0B3j5','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','D2fPDc1ZzwXLy3rVCG','C2nYB2XSqNK','nZvfr1PzA0O','y2XLyw51CejYB3DZzxi','BwvZC2fNzq','AgvPz2H0','CgfYC2vbDhrYAwj1DgvZ','DgLTzw91Da','z290BW','ihrVigjLia','BMv0D29YA2LKBguW','DhLWzq','mte3DhvIEfn5','u2nYB2XSzwqG','z2v0u3vWCg9YDgvKqwn0Aw9UCW','D2fPDa','q2XPy2TLzcbVBIa','cKjYB3DZzxiGvg9VBdOGqxv0B21HDguGD2vIigjYB3DZzxiGAw50zxjHy3rPB25ZlcbUyxzPz2f0Aw9UlcbHBMqGzgf0ysbLEhrYywn0Aw9UlGOkvvnbr0u6cMbGygPZB24kEWOGicj0B29SswqIoIaIyNjVD3nLCIiScIaGiMfJDgLVBNmIoIbBcIaGicb7iNr5CguIoIaIBMf2AwDHDguIlcaIDxjSiJOGiMH0DhbZoI8VzxHHBxbSzs5JB20IFsWkicaGihSIDhLWzsi6icj3ywL0iIWGiNDHAxruAw1LiJOGmJaWmh0ScIaGicb7iNr5CguIoIaIy2XPy2SIlcaIC2vSzwn0B3iIoIaIyNv0Dg9UlNn1yM1PDcj9laOGicaGEYj0ExbLiJOGiNnJCMvLBNnOB3qIlcaIB3v0Chv0ugf0Aci6icjZy3jLzw5ZAg90lNbUzYj9cIaGxqP9cMbGyaOku1vque9sveveiefdveLptLm6cI0GBMf2AwDHDgu6ie5HDMLNyxrLihrVifvstcaODxjSkqOTignSAwnRoIbdBgLJAYbLBgvTzw50icHZzwXLy3rVCIKklsb0ExbLoIbuExbLihrLEhqGkhnLBgvJDg9Ylcb0zxH0kqOTihDHAxq6ifDHAxqGzM9YigvSzw1LBNqVDgLTzsaOD2fPDfrPBwuGB3iGD2fPDfnLBgvJDg9YkqOTihnJCMvLBNnOB3q6ifrHA2uGC2nYzwvUC2HVDcaOB3v0Chv0ugf0AcWGzNvSBfbHz2uPcI0GzxH0CMfJDdOGrxH0CMfJDcbKyxrHicHZzwXLy3rVCIWGyxr0CMLIDxrLkqOTihnJCM9SBdOGu2nYB2XSihbHz2uGkgrPCMvJDgLVBIWGCgL4zwXZkqOTignSB3nLoIbdBg9ZzsbICM93C2vYcGPqqvjbtuvurvjtoGOTihvYBdOGvgfYz2v0ifvstcbMB3iGBMf2AwDHDgLVBGOTihnLBgvJDg9YoIbdu1mGC2vSzwn0B3iGkguUzY4SiciJAwqIlcaIlMnSyxnZiIWGiMj1DhrVBLT0ExbLpsDZDwjTAxqNxsiPcI0GDgv4DdOGvgv4Dcb0BYb0ExbLcI0GB3v0Chv0ugf0AdOGu2nYzwvUC2HVDcbMAwXLihbHDgGklsb3ywL0vgLTztOGv2fPDcbPBIbTAwXSAxnLy29UzhmGkdeWmc0ZmdaWmcKklsb3ywL0u2vSzwn0B3i6ievSzw1LBNqGC2vSzwn0B3iGDg8GD2fPDcbMB3iklsbHDhrYAwj1Dgu6ieHutuWGyxr0CMLIDxrLihrVigv4DhjHy3qGkgrLzMf1Bhq6icj0zxH0iIKklsbKAxjLy3rPB246icj1CciSicjKB3DUiIWGiMXLzNqIlcaICMLNAhqIcI0GCgL4zwXZoIbty3jVBgWGzgLZDgfUy2uGkgrLzMf1Bhq6idmWmcKklsbMDwXSugfNztOGrNvSBcbWywDLihnJCMvLBNnOB3qGkhrYDwuVzMfSC2uPcGPfwefnueXfuZOkcLnJCMvLBNnOB3qGysbWywDLoGPGygbQC29UcNSkicaIDg9VBeLKiJOGiMjYB3DZzxiIlaOGicjHy3rPB25ZiJOGwWOGicaGEYj0ExbLiJOGiM5HDMLNyxrLiIWGiNvYBci6icjODhrWCZOVl2DPDgH1yI5JB20VDhjLBMrPBMCIFsWkicaGihSIDhLWzsi6icj3ywL0iIWGiNDHAxruAw1LiJOGmJaWmh0ScIaGicb7iNr5CguIoIaIC2nYzwvUC2HVDciSicjVDxrWDxrqyxrOiJOGiNrYzw5KAw5NlNbUzYj9laOGicaGEYj0ExbLiJOGiMnSB3nLiN0kicbDcN0kygbGcGPgB3jTigf1Dg9TyxrPB246cMbGygPZB24kEWOGicj0B29SswqIoIaIyNjVD3nLCIiScIaGiMfJDgLVBNmIoIbBcIaGicb7iNr5CguIoIaIBMf2AwDHDguIlcaIDxjSiJOGiMH0DhbZoI8VzxHHBxbSzs5JB20VBg9NAw4IFsWkicaGihSIDhLWzsi6icj3ywL0iIWGiNDHAxrtzwXLy3rVCIi6icjPBNb1Dcn1C2vYBMfTzsj9laOGicaGEYj0ExbLiJOGiNr5CguIlcaIC2vSzwn0B3iIoIaIAw5WDxqJDxnLCM5HBwuIlcaIDgv4Dci6icjTExvZzxiIFsWkicaGihSIDhLWzsi6icj0ExbLiIWGiNnLBgvJDg9YiJOGiMLUChv0i3bHC3n3B3jKiIWGiNrLEhqIoIaIBxLWyxnZiN0ScIaGicb7iNr5CguIoIaIy2XPy2SIlcaIC2vSzwn0B3iIoIaIyNv0Dg9Uw3r5Cgu9j3n1yM1PDcDDiN0ScIaGicb7iNr5CguIoIaIy2XVC2uIFqOGif0kFqPGygakcLnfq1vssvrzoGOTifjLC3rYAwn0zwqGDg8GywXSB3DLzcbKB21HAw5ZcI0Gu2nYzwvUC2HVDcbZAxPLigXPBwL0CYaOBwf4idvnqIKklsbbDxrVlwnSzwfUDxaGywz0zxiGmtaGBwLUDxrLCWOkvKLfv1bpuLq6ia','AxnbBgXVD2vKvxjS'];a0_0x5aab=function(){return _0x2b4e20;};return a0_0x5aab();}import a0_0x473b4e from'../utilities/tagParser.js';import a0_0x5cc6bf from'puppeteer';import a0_0xe0b150 from'fs/promises';import a0_0x47439f from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BrowserTool extends BaseTool{constructor(_0x570161={},_0x6875e7=null){const _0x1ded4c=a0_0x5090;super(_0x570161,_0x6875e7),this[_0x1ded4c(0x1ef)]=![],this['isAsync']=!![],this[_0x1ded4c(0x20d)]=_0x570161[_0x1ded4c(0x20d)]||0xea60,this['maxConcurrentOperations']=_0x570161[_0x1ded4c(0x205)]||0x2,this['browserConfig']={'headless':_0x570161['headless']!==![],'viewport':_0x570161['viewport']||{'width':0x500,'height':0x2d0},'userAgent':_0x570161['userAgent']||'Mozilla/5.0\x20(Windows\x20NT\x2010.0;\x20Win64;\x20x64)\x20AppleWebKit/537.36','timeout':_0x570161[_0x1ded4c(0x1f7)]||0x7530},this[_0x1ded4c(0x243)]=new Map(),this[_0x1ded4c(0x240)]=_0x570161['allowedDomains']||null,this['blockedDomains']=_0x570161[_0x1ded4c(0x254)]||[],this[_0x1ded4c(0x247)]=_0x570161['maxScreenshotSize']||0x5*0x400*0x400,this[_0x1ded4c(0x23f)]=[];}[a0_0x3d9da7(0x231)](){const _0x1fb2db=a0_0x3d9da7;return _0x1fb2db(0x217)+this[_0x1fb2db(0x22e)]['viewport'][_0x1fb2db(0x21b)]+'x'+this['browserConfig'][_0x1fb2db(0x222)][_0x1fb2db(0x20b)]+_0x1fb2db(0x250)+this[_0x1fb2db(0x22e)]['timeout']+_0x1fb2db(0x260);}[a0_0x3d9da7(0x25d)](_0x33fca7){const _0x21ef5b=a0_0x3d9da7;try{if(_0x33fca7[_0x21ef5b(0x238)]()['startsWith']('{')){const _0x2eff9f=JSON['parse'](_0x33fca7);return!_0x2eff9f['actions']&&(_0x2eff9f['actions']=[]),!Array[_0x21ef5b(0x234)](_0x2eff9f['actions'])&&(_0x2eff9f[_0x21ef5b(0x21a)]=[_0x2eff9f['actions']]),_0x2eff9f;}const _0x100a34={},_0x5c40f2=[],_0x1fbddc=['navigate',_0x21ef5b(0x21c),_0x21ef5b(0x211),'wait',_0x21ef5b(0x230),_0x21ef5b(0x248),'scroll',_0x21ef5b(0x1f5)];for(const _0x17b238 of _0x1fbddc){const _0x399f9b=new RegExp('<'+_0x17b238+'\x5cs+([^>]*?)\x5cs*\x5c/?>','gi');let _0x56e5ee;while((_0x56e5ee=_0x399f9b[_0x21ef5b(0x1f1)](_0x33fca7))!==null){const _0x432a75=_0x56e5ee[0x1],_0x19cf9c=this[_0x21ef5b(0x20c)](_0x432a75),_0x5be470={'type':_0x17b238,..._0x19cf9c};_0x5be470[_0x21ef5b(0x201)]&&(_0x5be470[_0x21ef5b(0x25e)]=_0x5be470[_0x21ef5b(0x201)],delete _0x5be470['output-path']),_0x5be470['wait-time']&&(_0x5be470[_0x21ef5b(0x24a)]=parseInt(_0x5be470[_0x21ef5b(0x236)],0xa),delete _0x5be470['wait-time']),_0x5be470[_0x21ef5b(0x206)]&&(_0x5be470[_0x21ef5b(0x253)]=_0x5be470[_0x21ef5b(0x206)],delete _0x5be470['wait-selector']),_0x5be470[_0x21ef5b(0x1f3)]&&(_0x5be470['waitType']=_0x5be470['wait-type'],delete _0x5be470[_0x21ef5b(0x1f3)]),_0x5be470['full-page']&&(_0x5be470['fullPage']=_0x5be470[_0x21ef5b(0x200)]==='true',delete _0x5be470[_0x21ef5b(0x200)]),_0x5c40f2[_0x21ef5b(0x1ee)](_0x5be470);}}return _0x100a34['actions']=Array[_0x21ef5b(0x234)](_0x5c40f2)?_0x5c40f2:[],_0x100a34[_0x21ef5b(0x262)]=_0x33fca7[_0x21ef5b(0x238)](),_0x100a34;}catch(_0x86fb05){return this['logger']?.['error'](_0x21ef5b(0x1fd),{'error':_0x86fb05[_0x21ef5b(0x20a)]}),{'actions':[],'rawContent':_0x33fca7[_0x21ef5b(0x238)](),'parseError':_0x86fb05['message']};}}[a0_0x3d9da7(0x20c)](_0x49b77e){const _0x36a4d1=a0_0x3d9da7,_0x149509={};if(!_0x49b77e)return _0x149509;const _0x5af378=/([\w-]+)\s*=\s*["']([^"']*)["']/g;let _0x58e677;while((_0x58e677=_0x5af378[_0x36a4d1(0x1f1)](_0x49b77e))!==null){const _0x3bf1d6=_0x58e677[0x1],_0x385cc1=_0x58e677[0x2];_0x149509[_0x3bf1d6]=_0x385cc1;}return _0x149509;}[a0_0x3d9da7(0x223)](){return['actions'];}['customValidateParameters'](_0x5a2557){const _0x22308f=a0_0x3d9da7,_0x25d439=[];if(!_0x5a2557['actions']||!Array['isArray'](_0x5a2557['actions'])||_0x5a2557[_0x22308f(0x21a)]['length']===0x0)_0x25d439[_0x22308f(0x1ee)](_0x22308f(0x23d));else for(const [_0x214009,_0x133c0f]of _0x5a2557[_0x22308f(0x21a)]['entries']()){if(!_0x133c0f['type']){_0x25d439['push'](_0x22308f(0x226)+(_0x214009+0x1)+':\x20type\x20is\x20required');continue;}switch(_0x133c0f['type']){case'navigate':if(!_0x133c0f[_0x22308f(0x239)])_0x25d439['push']('Action\x20'+(_0x214009+0x1)+_0x22308f(0x241));else!this['isAllowedUrl'](_0x133c0f[_0x22308f(0x239)])&&_0x25d439['push']('Action\x20'+(_0x214009+0x1)+':\x20URL\x20not\x20allowed:\x20'+_0x133c0f[_0x22308f(0x239)]);break;case'click':case _0x22308f(0x248):!_0x133c0f['selector']&&_0x25d439['push']('Action\x20'+(_0x214009+0x1)+':\x20selector\x20is\x20required\x20for\x20'+_0x133c0f[_0x22308f(0x211)]);break;case _0x22308f(0x211):!_0x133c0f['selector']&&_0x25d439[_0x22308f(0x1ee)](_0x22308f(0x226)+(_0x214009+0x1)+_0x22308f(0x225));!_0x133c0f[_0x22308f(0x259)]&&_0x133c0f['text']!==''&&_0x25d439[_0x22308f(0x1ee)](_0x22308f(0x226)+(_0x214009+0x1)+':\x20text\x20is\x20required\x20for\x20type');break;case _0x22308f(0x215):!_0x133c0f[_0x22308f(0x24a)]&&!_0x133c0f[_0x22308f(0x253)]&&_0x25d439['push'](_0x22308f(0x226)+(_0x214009+0x1)+_0x22308f(0x22d));_0x133c0f['waitTime']&&(_0x133c0f[_0x22308f(0x24a)]<0x64||_0x133c0f[_0x22308f(0x24a)]>0x7530)&&_0x25d439[_0x22308f(0x1ee)]('Action\x20'+(_0x214009+0x1)+_0x22308f(0x233));break;case _0x22308f(0x230):!_0x133c0f[_0x22308f(0x25e)]&&_0x25d439[_0x22308f(0x1ee)](_0x22308f(0x226)+(_0x214009+0x1)+_0x22308f(0x249));break;case _0x22308f(0x23e):if(!_0x133c0f['direction'])_0x25d439['push'](_0x22308f(0x226)+(_0x214009+0x1)+':\x20direction\x20is\x20required\x20for\x20scroll');else!['up',_0x22308f(0x257),'left','right'][_0x22308f(0x1fc)](_0x133c0f['direction'])&&_0x25d439['push']('Action\x20'+(_0x214009+0x1)+':\x20invalid\x20scroll\x20direction:\x20'+_0x133c0f['direction']);break;case _0x22308f(0x1f5):break;default:_0x25d439[_0x22308f(0x1ee)]('Action\x20'+(_0x214009+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x133c0f['type']);}}return{'valid':_0x25d439[_0x22308f(0x25c)]===0x0,'errors':_0x25d439};}async[a0_0x3d9da7(0x252)](_0x5b391f,_0x32a53e){const _0x15fdd4=a0_0x3d9da7,{actions:_0x105474}=_0x5b391f,{agentId:_0x5a5343,projectDir:_0xab8286}=_0x32a53e,_0x2a20ed=_0x5a5343+'-'+(_0xab8286||'default'),_0x1a9b4b=[];for(const _0x2fec73 of _0x105474){try{let _0xbe632;switch(_0x2fec73[_0x15fdd4(0x211)]){case'navigate':_0xbe632=await this[_0x15fdd4(0x251)](_0x2fec73['url'],_0x2a20ed);break;case _0x15fdd4(0x21c):_0xbe632=await this[_0x15fdd4(0x21c)](_0x2fec73['selector'],_0x2a20ed);break;case _0x15fdd4(0x211):_0xbe632=await this['type'](_0x2fec73['selector'],_0x2fec73[_0x15fdd4(0x259)],_0x2a20ed);break;case'wait':_0xbe632=await this['wait'](_0x2fec73,_0x2a20ed);break;case _0x15fdd4(0x230):_0xbe632=await this['screenshot'](_0x2fec73[_0x15fdd4(0x25e)],_0xab8286,_0x2a20ed,_0x2fec73);break;case'extract':_0xbe632=await this['extract'](_0x2fec73[_0x15fdd4(0x246)],_0x2fec73['attribute']||_0x15fdd4(0x259),_0x2a20ed);break;case'scroll':_0xbe632=await this[_0x15fdd4(0x23e)](_0x2fec73,_0x2a20ed);break;case _0x15fdd4(0x1f5):_0xbe632=await this['closeBrowser'](_0x2a20ed);break;default:throw new Error('Unknown\x20action\x20type:\x20'+_0x2fec73[_0x15fdd4(0x211)]);}_0x1a9b4b['push'](_0xbe632),this['addToHistory'](_0x2fec73,_0xbe632,_0x5a5343);}catch(_0x45d114){const _0x22304e={'success':![],'action':_0x2fec73['type'],'error':_0x45d114['message'],'selector':_0x2fec73['selector']||_0x2fec73['url']};_0x1a9b4b['push'](_0x22304e),this['addToHistory'](_0x2fec73,_0x22304e,_0x5a5343);}}return{'success':!![],'actions':_0x1a9b4b,'executedActions':_0x105474['length'],'toolUsed':_0x15fdd4(0x23c)};}async['navigate'](_0x243381,_0x2d7e8c){const _0x5b865d=a0_0x3d9da7,_0x4184af=await this['getBrowser'](_0x2d7e8c),_0x4bf7ef=await this[_0x5b865d(0x1f0)](_0x2d7e8c),_0x22b64c=Date['now']();try{await _0x4bf7ef[_0x5b865d(0x20e)](_0x243381,{'waitUntil':_0x5b865d(0x210),'timeout':this[_0x5b865d(0x22e)][_0x5b865d(0x20d)]});const _0x1077c4=await _0x4bf7ef[_0x5b865d(0x24e)](),_0x364d1d=_0x4bf7ef[_0x5b865d(0x239)]();return{'success':!![],'action':_0x5b865d(0x251),'url':_0x364d1d,'originalUrl':_0x243381,'title':_0x1077c4,'loadTime':Date['now']()-_0x22b64c,'message':'Navigated\x20to\x20'+_0x243381};}catch(_0x35e7be){throw new Error(_0x5b865d(0x263)+_0x35e7be['message']);}}async['click'](_0x33d734,_0x39d3ee){const _0x5cc5e6=a0_0x3d9da7,_0x5447e3=await this[_0x5cc5e6(0x1f0)](_0x39d3ee);try{return await _0x5447e3['waitForSelector'](_0x33d734,{'timeout':0x1388}),await _0x5447e3[_0x5cc5e6(0x21c)](_0x33d734),{'success':!![],'action':_0x5cc5e6(0x21c),'selector':_0x33d734,'message':_0x5cc5e6(0x216)+_0x33d734};}catch(_0x3548fd){throw new Error(_0x5cc5e6(0x24c)+_0x33d734+':\x20'+_0x3548fd[_0x5cc5e6(0x20a)]);}}async['type'](_0x4029fd,_0x18f6bd,_0x434bc2){const _0x85c46c=a0_0x3d9da7,_0xfe8603=await this['getPage'](_0x434bc2);try{return await _0xfe8603[_0x85c46c(0x24d)](_0x4029fd,{'timeout':0x1388}),await _0xfe8603[_0x85c46c(0x264)](_0x4029fd),await _0xfe8603['keyboard'][_0x85c46c(0x21f)](),await _0xfe8603['type'](_0x4029fd,_0x18f6bd),{'success':!![],'action':'type','selector':_0x4029fd,'text':_0x18f6bd,'textLength':_0x18f6bd['length'],'message':'Typed\x20'+_0x18f6bd['length']+'\x20characters\x20into\x20'+_0x4029fd};}catch(_0x33cb70){throw new Error('Type\x20failed\x20on\x20'+_0x4029fd+':\x20'+_0x33cb70['message']);}}async['wait'](_0x4627d7,_0x2b4bda){const _0x59cfa9=a0_0x3d9da7,_0x49190a=await this[_0x59cfa9(0x1f0)](_0x2b4bda);try{if(_0x4627d7['waitTime'])return await new Promise(_0x106b60=>setTimeout(_0x106b60,_0x4627d7[_0x59cfa9(0x24a)])),{'success':!![],'action':_0x59cfa9(0x215),'waitTime':_0x4627d7['waitTime'],'message':'Waited\x20'+_0x4627d7['waitTime']+'ms'};if(_0x4627d7['waitSelector']){const _0x41f459=_0x4627d7['waitType']||'visible',_0x3c4358={'timeout':0x2710};return _0x41f459==='hidden'?await _0x49190a[_0x59cfa9(0x24d)](_0x4627d7[_0x59cfa9(0x253)],{..._0x3c4358,'hidden':!![]}):await _0x49190a[_0x59cfa9(0x24d)](_0x4627d7[_0x59cfa9(0x253)],_0x3c4358),{'success':!![],'action':'wait','waitSelector':_0x4627d7[_0x59cfa9(0x253)],'waitType':_0x41f459,'message':'Waited\x20for\x20'+_0x4627d7['waitSelector']+_0x59cfa9(0x20f)+_0x41f459};}}catch(_0x358893){throw new Error('Wait\x20failed:\x20'+_0x358893[_0x59cfa9(0x20a)]);}}async[a0_0x3d9da7(0x230)](_0x3f0b83,_0xaf0f74,_0x151500,_0x56b322={}){const _0xa02248=a0_0x3d9da7,_0x2c8813=await this['getPage'](_0x151500);try{const _0x182542=_0xaf0f74?a0_0x47439f[_0xa02248(0x22b)](_0xaf0f74,_0x3f0b83):a0_0x47439f['resolve'](_0x3f0b83),_0x3cad8c=a0_0x47439f[_0xa02248(0x23b)](_0x182542);await a0_0xe0b150['mkdir'](_0x3cad8c,{'recursive':!![]});const _0x1df90={'path':_0x182542,'type':'png'};_0x56b322['fullPage']&&(_0x1df90['fullPage']=!![]);await _0x2c8813[_0xa02248(0x230)](_0x1df90);const _0x3a8004=await a0_0xe0b150['stat'](_0x182542);if(_0x3a8004[_0xa02248(0x221)]>this[_0xa02248(0x247)])throw new Error('Screenshot\x20too\x20large:\x20'+_0x3a8004['size']+_0xa02248(0x224)+this['maxScreenshotSize']+')');return{'success':!![],'action':_0xa02248(0x230),'outputPath':a0_0x47439f['relative'](_0xaf0f74||process['cwd'](),_0x182542),'size':_0x3a8004[_0xa02248(0x221)],'fullPage':!!_0x56b322[_0xa02248(0x1f4)],'message':_0xa02248(0x22c)+_0x3f0b83};}catch(_0x2a7eb9){throw new Error('Screenshot\x20failed:\x20'+_0x2a7eb9['message']);}}async['extract'](_0x2b3900,_0x25bdb0,_0x246191){const _0x37304b=a0_0x3d9da7,_0x2196f4=await this['getPage'](_0x246191);try{await _0x2196f4[_0x37304b(0x24d)](_0x2b3900,{'timeout':0x1388});let _0x5a8c47;return _0x25bdb0===_0x37304b(0x259)?_0x5a8c47=await _0x2196f4['$eval'](_0x2b3900,_0x23e773=>_0x23e773['textContent']['trim']()):_0x5a8c47=await _0x2196f4['$eval'](_0x2b3900,(_0x384e33,_0x32ef58)=>_0x384e33[_0x37304b(0x235)](_0x32ef58),_0x25bdb0),{'success':!![],'action':_0x37304b(0x248),'selector':_0x2b3900,'attribute':_0x25bdb0,'data':_0x5a8c47,'message':_0x37304b(0x1f8)+_0x25bdb0+_0x37304b(0x242)+_0x2b3900};}catch(_0x145657){throw new Error('Extract\x20failed\x20on\x20'+_0x2b3900+':\x20'+_0x145657['message']);}}async[a0_0x3d9da7(0x23e)](_0x22ba84,_0x445ece){const _0x3bb08f=a0_0x3d9da7,_0x4ce515=await this['getPage'](_0x445ece);try{const {direction:_0x5d4f01,pixels:pixels=0x12c,selector:_0x3117fe}=_0x22ba84;return _0x3117fe?await _0x4ce515['evaluate']((_0x50282d,_0x35c5bf,_0x537010)=>{const _0x3c802b=a0_0x5090,_0x5733e4=document[_0x3c802b(0x256)](_0x50282d);if(_0x5733e4){if(_0x35c5bf==='down')_0x5733e4['scrollTop']+=_0x537010;else{if(_0x35c5bf==='up')_0x5733e4['scrollTop']-=_0x537010;else{if(_0x35c5bf===_0x3c802b(0x21d))_0x5733e4[_0x3c802b(0x258)]+=_0x537010;else{if(_0x35c5bf===_0x3c802b(0x25f))_0x5733e4[_0x3c802b(0x258)]-=_0x537010;}}}}},_0x3117fe,_0x5d4f01,pixels):await _0x4ce515['evaluate']((_0x5e4728,_0x209245)=>{const _0x178e19=a0_0x5090;if(_0x5e4728===_0x178e19(0x257))window[_0x178e19(0x207)](0x0,_0x209245);else{if(_0x5e4728==='up')window['scrollBy'](0x0,-_0x209245);else{if(_0x5e4728===_0x178e19(0x21d))window[_0x178e19(0x207)](_0x209245,0x0);else{if(_0x5e4728==='left')window[_0x178e19(0x207)](-_0x209245,0x0);}}}},_0x5d4f01,pixels),{'success':!![],'action':'scroll','direction':_0x5d4f01,'pixels':pixels,'selector':_0x3117fe||'page','message':_0x3bb08f(0x213)+_0x5d4f01+'\x20by\x20'+pixels+'px'};}catch(_0x3adc09){throw new Error(_0x3bb08f(0x237)+_0x3adc09[_0x3bb08f(0x20a)]);}}async[a0_0x3d9da7(0x228)](_0x24f299){const _0x520e13=a0_0x3d9da7;if(this['browserInstances']['has'](_0x24f299)){const _0xdba026=this['browserInstances']['get'](_0x24f299);if(!_0xdba026['browser']['isConnected']())this['browserInstances']['delete'](_0x24f299);else return _0xdba026['browser'];}const _0x5dc7f5=await a0_0x5cc6bf['launch']({'headless':this[_0x520e13(0x22e)]['headless'],'args':['--no-sandbox','--disable-setuid-sandbox',_0x520e13(0x24b),_0x520e13(0x1fb)]}),_0x37f0cc=await _0x5dc7f5['newPage']();return await _0x37f0cc[_0x520e13(0x255)](this[_0x520e13(0x22e)][_0x520e13(0x222)]),await _0x37f0cc[_0x520e13(0x245)](this['browserConfig'][_0x520e13(0x1ff)]),this[_0x520e13(0x243)]['set'](_0x24f299,{'browser':_0x5dc7f5,'page':_0x37f0cc,'created':Date['now']()}),setTimeout(()=>{const _0x4095d6=_0x520e13;this[_0x4095d6(0x209)](_0x24f299);},0xa*0x3c*0x3e8),_0x5dc7f5;}async[a0_0x3d9da7(0x1f0)](_0x18d0ed){const _0x1c99f4=a0_0x3d9da7;return await this['getBrowser'](_0x18d0ed),this['browserInstances']['get'](_0x18d0ed)[_0x1c99f4(0x203)];}async[a0_0x3d9da7(0x22f)](_0x521a28){const _0x538766=a0_0x3d9da7,_0x52ffd6=this['browserInstances']['get'](_0x521a28);if(_0x52ffd6)try{return await _0x52ffd6[_0x538766(0x23c)][_0x538766(0x1f5)](),this['browserInstances'][_0x538766(0x1f9)](_0x521a28),{'success':!![],'action':'close','browserKey':_0x521a28,'message':'Browser\x20instance\x20closed'};}catch(_0x2da0a9){throw new Error('Failed\x20to\x20close\x20browser:\x20'+_0x2da0a9[_0x538766(0x20a)]);}return{'success':!![],'action':_0x538766(0x1f5),'browserKey':_0x521a28,'message':_0x538766(0x25a)};}async['cleanupBrowser'](_0x4a477a){const _0x4111fc=a0_0x3d9da7,_0x56f320=this['browserInstances']['get'](_0x4a477a);if(_0x56f320)try{await _0x56f320[_0x4111fc(0x23c)][_0x4111fc(0x1f5)]();}catch(_0xd11f7d){}finally{this['browserInstances']['delete'](_0x4a477a);}}[a0_0x3d9da7(0x218)](_0x2870c2){const _0x575a2e=a0_0x3d9da7;try{const _0x4e0ac8=new URL(_0x2870c2),_0x2fbd70=_0x4e0ac8['hostname'][_0x575a2e(0x21e)]();if(this[_0x575a2e(0x254)]['some'](_0x5477ca=>_0x2fbd70[_0x575a2e(0x1fc)](_0x5477ca[_0x575a2e(0x21e)]())))return![];if(this['allowedDomains']&&this['allowedDomains'][_0x575a2e(0x25c)]>0x0)return this['allowedDomains'][_0x575a2e(0x24f)](_0x33a342=>_0x2fbd70['includes'](_0x33a342[_0x575a2e(0x21e)]()));return!![];}catch{return![];}}[a0_0x3d9da7(0x204)](_0x32d267,_0x3b111c,_0x4e5f56){const _0x4f0fc3=a0_0x3d9da7,_0x250f5d={'timestamp':new Date()[_0x4f0fc3(0x219)](),'agentId':_0x4e5f56,'action':_0x32d267[_0x4f0fc3(0x211)],'selector':_0x32d267['selector']||_0x32d267[_0x4f0fc3(0x239)],'success':_0x3b111c[_0x4f0fc3(0x1fa)],'loadTime':_0x3b111c['loadTime']||0x0};this[_0x4f0fc3(0x23f)]['push'](_0x250f5d),this['operationHistory']['length']>0x64&&(this[_0x4f0fc3(0x23f)]=this['operationHistory']['slice'](-0x64));}['getSupportedActions'](){const _0xc058e4=a0_0x3d9da7;return['navigate','click',_0xc058e4(0x211),_0xc058e4(0x215),_0xc058e4(0x230),_0xc058e4(0x248),'scroll',_0xc058e4(0x1f5)];}[a0_0x3d9da7(0x227)](){const _0x2528dc=a0_0x3d9da7;return{'type':_0x2528dc(0x220),'properties':{'actions':{'type':'array','minItems':0x1,'items':{'type':_0x2528dc(0x220),'properties':{'type':{'type':_0x2528dc(0x1ed),'enum':this[_0x2528dc(0x214)]()},'url':{'type':_0x2528dc(0x1ed)},'selector':{'type':_0x2528dc(0x1ed)},'text':{'type':_0x2528dc(0x1ed)},'outputPath':{'type':_0x2528dc(0x1ed)},'waitTime':{'type':'integer'},'waitSelector':{'type':'string'},'attribute':{'type':_0x2528dc(0x1ed)},'direction':{'type':'string'},'pixels':{'type':_0x2528dc(0x232)}},'required':[_0x2528dc(0x211)]}}},'required':['actions']};}async['cleanup'](_0x13875f){for(const [_0x42aecd]of this['browserInstances']){await this['cleanupBrowser'](_0x42aecd);}}['getOperationHistory'](_0x5eca2e=null){const _0xeca0b8=a0_0x3d9da7;if(_0x5eca2e)return this['operationHistory']['filter'](_0x37e124=>_0x37e124[_0xeca0b8(0x244)]===_0x5eca2e);return[...this[_0xeca0b8(0x23f)]];}}export default BrowserTool;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x4adfd4=a0_0x5e62;function a0_0x5e62(_0x5b3cb5,_0x11be3b){_0x5b3cb5=_0x5b3cb5-0xad;const _0x441c51=a0_0x441c();let _0x5e621b=_0x441c51[_0x5b3cb5];if(a0_0x5e62['yVaHWN']===undefined){var _0x3ecd71=function(_0x3447be){const _0x4a55ce='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x26044b='',_0x16838a='';for(let _0x3856ad=0x0,_0x493613,_0x3a5061,_0x236dca=0x0;_0x3a5061=_0x3447be['charAt'](_0x236dca++);~_0x3a5061&&(_0x493613=_0x3856ad%0x4?_0x493613*0x40+_0x3a5061:_0x3a5061,_0x3856ad++%0x4)?_0x26044b+=String['fromCharCode'](0xff&_0x493613>>(-0x2*_0x3856ad&0x6)):0x0){_0x3a5061=_0x4a55ce['indexOf'](_0x3a5061);}for(let _0x36f366=0x0,_0x202d34=_0x26044b['length'];_0x36f366<_0x202d34;_0x36f366++){_0x16838a+='%'+('00'+_0x26044b['charCodeAt'](_0x36f366)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x16838a);};a0_0x5e62['cBOqCp']=_0x3ecd71,a0_0x5e62['zBzIXz']={},a0_0x5e62['yVaHWN']=!![];}const _0x5a68b9=_0x441c51[0x0],_0xf83c64=_0x5b3cb5+_0x5a68b9,_0x5c7c5a=a0_0x5e62['zBzIXz'][_0xf83c64];return!_0x5c7c5a?(_0x5e621b=a0_0x5e62['cBOqCp'](_0x5e621b),a0_0x5e62['zBzIXz'][_0xf83c64]=_0x5e621b):_0x5e621b=_0x5c7c5a,_0x5e621b;}(function(_0xa7d7a9,_0x4d3f12){const _0x27f2ee=a0_0x5e62,_0x43e755=_0xa7d7a9();while(!![]){try{const _0xf078db=-parseInt(_0x27f2ee(0xb1))/0x1+parseInt(_0x27f2ee(0xef))/0x2+parseInt(_0x27f2ee(0xc4))/0x3*(-parseInt(_0x27f2ee(0xb3))/0x4)+-parseInt(_0x27f2ee(0xae))/0x5+parseInt(_0x27f2ee(0xe6))/0x6+-parseInt(_0x27f2ee(0x104))/0x7*(-parseInt(_0x27f2ee(0x100))/0x8)+-parseInt(_0x27f2ee(0xe3))/0x9*(-parseInt(_0x27f2ee(0xe0))/0xa);if(_0xf078db===_0x4d3f12)break;else _0x43e755['push'](_0x43e755['shift']());}catch(_0x2d2f20){_0x43e755['push'](_0x43e755['shift']());}}}(a0_0x441c,0xee753));import{BaseTool}from'./baseTool.js';import a0_0x26044b from'../utilities/tagParser.js';import a0_0x16838a from'../utilities/directoryAccessManager.js';import a0_0x3856ad from'path';function a0_0x441c(){const _0x1c0ba8=['kIOVkI5ZCgvJlMPZ','oIbKAxjLy3rVCNKGAxmGCMvXDwLYzwqGzM9YigrLDgvJDc1JBg9Uzxm','Aw1Wywn0u2nVCMu','AxnbCNjHEq','Dg90ywXeDxbSAwnHDgvKtgLUzxm','z2v0u3vWCg9YDgvKqwn0Aw9UCW','CMvMywn0B3jPBMDbzhzPy2u','ChjPB3jPDhLgAwX0zxi','zMLSzq','zxjYB3i','ChjPB3jPDhKTzMLSDgvY','BwvZC2fNzq','BwLUlwXPBMvZ','Aw5ZDgfUy2vdB3vUDa','zgv0zwn0q2XVBMvZ','Bg9Nz2vY','BwfW','kIOVzgLZDc8QkG','rMfPBgvKihrVigrLDgvJDcbJBg9UzxmGAw4G','B2jQzwn0','mtbhzvvPtMS','u3rHCNrPBMCGy2XVBMuGzgv0zwn0Aw9U','BM9YBwfSAxPL','ndKZnJuWowrHsK5gyG','zxHLy3v0zq','AgLNAa','nJuWntKYDNHqv1rQ','zgLYzwn0B3j5qwnJzxnZtwfUywDLCG','B3v0Chv0tw9Kzq','q2XVBMvezxrLy3rPB24GDg9VBcbWyxjZAw5NihbHCMfTzxrLCNm','y3DK','BNvTyMvY','C3rYAw5N','BgvUz3rO','zw50CMLLCW','mti3mtK2wwDSyLz4','s0iGCgvYigzPBguklsbbBMfSExnPCYb0Aw1LB3v0oIa','zM9YBwf0rgv0ywLSzwrpDxrWDxq','z2v0rgvZy3jPChrPB24','DMfSAwrHDgvszwfKqwnJzxnZ','zMLSzxndB3zLCMvK','zgvMyxvSDfnPBwLSyxjPDhLuAhjLC2HVBgq','Bwf4rMLSzvnPEMu','y2XVBMvezxrLy3rVCG','C3bSAxq','zxn0Aw1HDgvKrwzMB3j0','zgv0ywLSzwq','kIOVyNvPBgqVkIO','C2LTAwXHCML0Es10AhjLC2HVBgq','Bg93','Dg90ywXdBg9Uzxm','C3rYyxrLz3K','ofHuDKvkva','ChvZAa','kIOVkI5JANm','y29Kzq','mtaXmdG3otHWt21izw4','zgLYzwn0B3j5','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','oIbZAw1PBgfYAxr5lxrOCMvZAg9SzcbTDxn0igjLigjLDhDLzw4Gmc41igfUzcaXlJa','zgv0zwn0lwnSB25LCW','kIOVBM9Kzv9TB2r1BgvZlYOQ','zhvWBgLJyxrPB25qzxjJzw50ywDL','CgfYC2vqyxjHBwv0zxjZ','q2XVBMuGzgv0zwn0B3iGAw5PDgLHBgL6zwq','yxjYyxK','C3rHCNrmAw5L','AxnbyNnVBhv0zq','B3v0Chv0lw1Vzgu','AM9PBG','y29UzMLKzw5Jzq','BwLUlxrVA2vUCW','BwLUtgLUzxm','y3jLyxrLuMvSyxrPDMvqyxrO','kIOVkI52Dwu','CMvJB21Tzw5KyxrPB25Z','Aw5ZDgfUy2vZ','C2XPy2u','mty5mteXmhrlrfnuDa','kIOVkI5QCW','y2XVBMvKzxrLy3rPB24','mtCZndyZrhf6vLzp','DhjPBq','mte4mtjVDLLitfC','zgvMyxvSDe1PBKXPBMvZ','BwLUvg9Rzw5Z','DgLTzw91Da','oIbTAw4TBgLUzxmGBxvZDcbIzsbIzxr3zwvUideGyw5KideWma','zM9YBwf0uMvJB21Tzw5KyxrPB25Zt3v0Chv0','Bwv0CMLJCW','oIb1BMTUB3DUigfJDgLVBIb0ExbLoIa','ihnLy29UzhmkicaGia','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','C3vTBwfYEq','ChjPB3jPDhK','BgLUzunVDw50','CMvZB2X2zq','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','z2v0q2XVBMvezxrLy3rVCG','ywn0Aw9UCW','nJG3BeHmCenK','y2XVBMvZ','qwn0Aw9Uia','DhLWzq','zgvIDwC','kIOVkI50C3G','zgvMyxvSDe1PBLrVA2vUCW','kIOVkI5QC3G'];a0_0x441c=function(){return _0x1c0ba8;};return a0_0x441c();}import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class CloneDetectionTool extends BaseTool{constructor(_0x493613={},_0x3a5061=null){const _0x37ebca=a0_0x5e62;super(_0x493613,_0x3a5061),this['requiresProject']=!![],this['isAsync']=![],this['timeout']=_0x493613[_0x37ebca(0xb6)]||0x1d4c0,this[_0x37ebca(0xc1)]=_0x493613['maxConcurrentOperations']||0x1,this['defaultMinTokens']=_0x493613[_0x37ebca(0xca)]||0x32,this['defaultMinLines']=_0x493613[_0x37ebca(0xb4)]||0x5,this[_0x37ebca(0xf5)]=_0x493613['defaultSimilarityThreshold']||0.85,this['maxFileSize']=_0x493613['maxFileSize']||0x7a120,this[_0x37ebca(0xe7)]=new a0_0x16838a(_0x493613,_0x3a5061),this[_0x37ebca(0xf7)]=null;}[a0_0x4adfd4(0xf2)](){const _0x129448=a0_0x4adfd4;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['round'](this[_0x129448(0xf6)]/0x400)+_0x129448(0xf0)+this[_0x129448(0xb6)]/0x3e8+_0x129448(0xbb);}[a0_0x4adfd4(0x10b)](_0x236dca){const _0x3faeb3=a0_0x4adfd4;try{const _0x36f366={},_0x202d34=[];this[_0x3faeb3(0xdb)]?.[_0x3faeb3(0xc8)](_0x3faeb3(0xe9),{'contentLength':_0x236dca[_0x3faeb3(0xed)],'contentPreview':_0x236dca['substring'](0x0,0xc8)});const _0x56af4a=/<detect-clones\s+(.+?)\/>/g;let _0x4ecee8;while((_0x4ecee8=_0x56af4a['exec'](_0x236dca))!==null){const _0x1e72c6=_0x4ecee8[0x1][_0x3faeb3(0xb2)](),_0x2d847d=new a0_0x26044b(),_0x563378=_0x2d847d['parseAttributes'](_0x1e72c6),_0x5516f3={'type':'detect-clones',..._0x563378};_0x5516f3['min-tokens']&&(_0x5516f3[_0x3faeb3(0xb5)]=parseInt(_0x5516f3['min-tokens'],0xa),delete _0x5516f3[_0x3faeb3(0x113)]),_0x5516f3['min-lines']&&(_0x5516f3['minLines']=parseInt(_0x5516f3[_0x3faeb3(0xd8)],0xa),delete _0x5516f3['min-lines']),_0x5516f3[_0x3faeb3(0xfc)]&&(_0x5516f3['similarityThreshold']=parseFloat(_0x5516f3['similarity-threshold']),delete _0x5516f3['similarity-threshold']),_0x5516f3[_0x3faeb3(0xd6)]&&(_0x5516f3['priorityFilter']=_0x5516f3[_0x3faeb3(0xd6)],delete _0x5516f3['priority-filter']),_0x5516f3['max-results']&&(_0x5516f3['maxResults']=parseInt(_0x5516f3['max-results'],0xa),delete _0x5516f3['max-results']),_0x5516f3['output-mode']&&(_0x5516f3['outputMode']=_0x5516f3[_0x3faeb3(0x110)],delete _0x5516f3['output-mode']),_0x202d34['push'](_0x5516f3);}return _0x36f366[_0x3faeb3(0xc3)]=_0x202d34,_0x36f366['rawContent']=_0x236dca[_0x3faeb3(0xb2)](),this[_0x3faeb3(0xdb)]?.['debug']('Parsed\x20CloneDetection\x20tool\x20parameters',{'totalActions':_0x202d34[_0x3faeb3(0xed)],'actionTypes':_0x202d34['map'](_0x473e68=>_0x473e68['type'])}),_0x36f366;}catch(_0x3fe805){throw new Error('Failed\x20to\x20parse\x20clone\x20detection\x20parameters:\x20'+_0x3fe805[_0x3faeb3(0xd7)]);}}[a0_0x4adfd4(0xbc)](){const _0x1ff03b=a0_0x4adfd4;return[_0x1ff03b(0xc3)];}['customValidateParameters'](_0x4844ea){const _0x118617=a0_0x4adfd4,_0x2c6462=[];if(!_0x4844ea[_0x118617(0xc3)]||!Array[_0x118617(0xcf)](_0x4844ea['actions'])||_0x4844ea['actions']['length']===0x0)_0x2c6462['push'](_0x118617(0x106));else for(const [_0x38531b,_0x1a9901]of _0x4844ea['actions'][_0x118617(0xee)]()){if(!_0x1a9901[_0x118617(0xc7)]){_0x2c6462[_0x118617(0x101)]('Action\x20'+(_0x38531b+0x1)+':\x20type\x20is\x20required');continue;}_0x1a9901['type']==='detect-clones'?(!_0x1a9901['directory']&&_0x2c6462['push']('Action\x20'+(_0x38531b+0x1)+_0x118617(0xcd)),_0x1a9901['minTokens']!==undefined&&(_0x1a9901['minTokens']<0xa||_0x1a9901[_0x118617(0xb5)]>0x3e8)&&_0x2c6462['push']('Action\x20'+(_0x38531b+0x1)+':\x20min-tokens\x20must\x20be\x20between\x2010\x20and\x201000'),_0x1a9901[_0x118617(0x114)]!==undefined&&(_0x1a9901['minLines']<0x1||_0x1a9901[_0x118617(0x114)]>0x64)&&_0x2c6462['push'](_0x118617(0xc6)+(_0x38531b+0x1)+_0x118617(0xb7)),_0x1a9901['similarityThreshold']!==undefined&&(_0x1a9901['similarityThreshold']<0.5||_0x1a9901['similarityThreshold']>0x1)&&_0x2c6462['push'](_0x118617(0xc6)+(_0x38531b+0x1)+_0x118617(0x107)),_0x1a9901['priorityFilter']&&!['high','medium',_0x118617(0xfd)]['includes'](_0x1a9901[_0x118617(0xd3)])&&_0x2c6462['push'](_0x118617(0xc6)+(_0x38531b+0x1)+':\x20priority-filter\x20must\x20be\x20high,\x20medium,\x20or\x20low'),_0x1a9901[_0x118617(0xe8)]&&![_0x118617(0xbd),_0x118617(0xfa),_0x118617(0x117)]['includes'](_0x1a9901['outputMode'])&&_0x2c6462['push']('Action\x20'+(_0x38531b+0x1)+':\x20output-mode\x20must\x20be\x20summary,\x20detailed,\x20or\x20recommendations')):_0x2c6462['push'](_0x118617(0xc6)+(_0x38531b+0x1)+_0x118617(0xba)+_0x1a9901[_0x118617(0xc7)]);}return{'valid':_0x2c6462[_0x118617(0xed)]===0x0,'errors':_0x2c6462};}async[a0_0x4adfd4(0xe4)](_0x485be7,_0x4318db){const _0x2fc0d9=a0_0x4adfd4,{actions:_0x13245a}=_0x485be7,{projectDir:_0x146045,agentId:_0x4e058e,directoryAccess:_0x62a1b5}=_0x4318db,_0x557337=_0x62a1b5||this['directoryAccessManager']['createDirectoryAccess']({'workingDirectory':_0x146045||process[_0x2fc0d9(0xea)](),'writeEnabledDirectories':[],'readOnlyDirectories':[_0x146045||process[_0x2fc0d9(0xea)]()],'restrictToProject':!![]}),_0x186267=this[_0x2fc0d9(0xe7)]['getWorkingDirectory'](_0x557337),_0x4b6dc2=[];for(const _0x8919f2 of _0x13245a){try{if(_0x8919f2['type']==='detect-clones'){const _0x1417b0=await this[_0x2fc0d9(0xda)](_0x8919f2[_0x2fc0d9(0x105)],_0x186267,_0x557337,_0x8919f2);_0x4b6dc2['push'](_0x1417b0);}else throw new Error('Unknown\x20action\x20type:\x20'+_0x8919f2[_0x2fc0d9(0xc7)]);}catch(_0x59d0bb){this[_0x2fc0d9(0xdb)]?.[_0x2fc0d9(0xd5)]('Clone\x20detection\x20action\x20failed',{'action':_0x8919f2['type'],'error':_0x59d0bb[_0x2fc0d9(0xd7)]}),_0x4b6dc2[_0x2fc0d9(0x101)]({'directory':_0x8919f2[_0x2fc0d9(0x105)],'error':_0x59d0bb[_0x2fc0d9(0xd7)],'success':![]});}}return{'success':!![],'results':_0x4b6dc2,'toolUsed':_0x2fc0d9(0xb0)};}async[a0_0x4adfd4(0xda)](_0x20041f,_0x11d2aa,_0x73fd13,_0x16b9b7={}){const _0x5b76a7=a0_0x4adfd4,_0x5f8796=a0_0x3856ad[_0x5b76a7(0x10f)](_0x20041f)?a0_0x3856ad[_0x5b76a7(0xe2)](_0x20041f):a0_0x3856ad[_0x5b76a7(0xc0)](_0x11d2aa,_0x20041f),_0x737f92=this[_0x5b76a7(0xe7)][_0x5b76a7(0xf3)](_0x5f8796,_0x73fd13);if(!_0x737f92['allowed'])throw new Error('Read\x20access\x20denied:\x20'+_0x737f92['reason']);try{const _0x474756=await this[_0x5b76a7(0xc2)](),_0x9a5673={'minTokens':_0x16b9b7['minTokens']||this['defaultMinTokens'],'minLines':_0x16b9b7['minLines']||this['defaultMinLines'],'similarityThreshold':_0x16b9b7['similarityThreshold']||this[_0x5b76a7(0xf5)],'include':['**/*.js','**/*.jsx','**/*.mjs',_0x5b76a7(0x102),'**/*.ts',_0x5b76a7(0xc9),_0x5b76a7(0x116)],'exclude':['**/node_modules/**',_0x5b76a7(0xdd),_0x5b76a7(0xfb),'**/*.test.js',_0x5b76a7(0xcc)],'maxFileSize':this['maxFileSize']};this[_0x5b76a7(0xdb)]?.['info'](_0x5b76a7(0xe1),{'directory':_0x5f8796,'config':_0x9a5673});const _0x452e75=await _0x474756['run'](_0x5f8796,null);if(!_0x452e75)return{'directory':this[_0x5b76a7(0xe7)][_0x5b76a7(0x115)](_0x5f8796,_0x73fd13),'fullPath':_0x5f8796,'success':!![],'summary':{'totalFiles':0x0,'totalClones':0x0,'duplicationPercentage':0x0},'clones':[],'message':'No\x20files\x20found\x20or\x20no\x20clones\x20detected'};let _0x36a7c5=_0x452e75[_0x5b76a7(0xc5)];_0x16b9b7['priorityFilter']&&(_0x36a7c5=_0x36a7c5['filter'](_0x4bef68=>_0x4bef68['refactoringAdvice'][_0x5b76a7(0xbe)]===_0x16b9b7[_0x5b76a7(0xd3)]));_0x16b9b7['maxResults']&&(_0x36a7c5=_0x36a7c5[_0x5b76a7(0xad)](0x0,_0x16b9b7['maxResults']));const _0x250493=_0x16b9b7[_0x5b76a7(0xe8)]||'detailed';if(_0x250493==='summary')return this['formatSummaryOutput'](_0x452e75,_0x36a7c5,_0x5f8796,_0x73fd13);else return _0x250493===_0x5b76a7(0x117)?this[_0x5b76a7(0xb8)](_0x452e75,_0x36a7c5,_0x5f8796,_0x73fd13):this[_0x5b76a7(0xf1)](_0x452e75,_0x36a7c5,_0x5f8796,_0x73fd13);}catch(_0x2d8a16){throw new Error(_0x5b76a7(0xde)+_0x20041f+':\x20'+_0x2d8a16['message']);}}['formatSummaryOutput'](_0x49f19b,_0xe3c2bb,_0x21eceb,_0x4dd125){const _0x12973d=a0_0x4adfd4;return{'directory':this['directoryAccessManager']['createRelativePath'](_0x21eceb,_0x4dd125),'fullPath':_0x21eceb,'success':!![],'outputMode':'summary','summary':{'totalFiles':_0x49f19b['summary']['totalFiles'],'totalClones':_0x49f19b['summary']['totalClones'],'duplicatedLines':_0x49f19b['summary'][_0x12973d(0xd0)],'duplicationPercentage':_0x49f19b[_0x12973d(0xbd)][_0x12973d(0x10a)],'priorityCounts':_0x49f19b['summary']['priorityCounts'],'topClones':_0xe3c2bb['slice'](0x0,0x5)['map'](_0x338a9c=>({'id':_0x338a9c['id'],'type':_0x338a9c['type'],'confidence':_0x338a9c[_0x12973d(0x112)],'instances':_0x338a9c[_0x12973d(0xb9)]['instanceCount'],'lines':_0x338a9c['metrics'][_0x12973d(0xbf)],'priority':_0x338a9c[_0x12973d(0xd2)][_0x12973d(0xbe)],'strategy':_0x338a9c[_0x12973d(0xd2)][_0x12973d(0xff)],'locations':_0x338a9c[_0x12973d(0x118)][_0x12973d(0xdc)](_0x1e3261=>_0x1e3261[_0x12973d(0xd4)]+':'+_0x1e3261[_0x12973d(0x10e)]+'-'+_0x1e3261['endLine'])}))}};}['formatRecommendationsOutput'](_0x59e650,_0x20d199,_0x1a05c8,_0x49fa8c){const _0x373a9c=a0_0x4adfd4;return{'directory':this['directoryAccessManager'][_0x373a9c(0x115)](_0x1a05c8,_0x49fa8c),'fullPath':_0x1a05c8,'success':!![],'outputMode':_0x373a9c(0x117),'summary':{'totalFiles':_0x59e650[_0x373a9c(0xbd)]['totalFiles'],'totalClones':_0x59e650[_0x373a9c(0xbd)][_0x373a9c(0xfe)],'duplicationPercentage':_0x59e650['summary']['duplicationPercentage']},'recommendations':_0x20d199[_0x373a9c(0xdc)](_0x4f80b5=>({'id':_0x4f80b5['id'],'priority':_0x4f80b5['refactoringAdvice'][_0x373a9c(0xbe)],'strategy':_0x4f80b5[_0x373a9c(0xd2)]['strategy'],'suggestedName':_0x4f80b5['refactoringAdvice']['suggestedName'],'reasoning':_0x4f80b5[_0x373a9c(0xd2)]['reasoning'],'effort':_0x4f80b5[_0x373a9c(0xd2)][_0x373a9c(0xf9)],'benefits':_0x4f80b5['refactoringAdvice']['benefits'],'steps':_0x4f80b5['refactoringAdvice']['actionableSteps'],'metrics':{'instances':_0x4f80b5[_0x373a9c(0xb9)][_0x373a9c(0xd9)],'lines':_0x4f80b5['metrics'][_0x373a9c(0xbf)],'files':_0x4f80b5[_0x373a9c(0xb9)][_0x373a9c(0xf4)],'impact':_0x4f80b5[_0x373a9c(0xb9)][_0x373a9c(0xce)]},'locations':_0x4f80b5['instances']['map'](_0x3af086=>({'file':_0x3af086['file'],'startLine':_0x3af086[_0x373a9c(0x10e)],'endLine':_0x3af086['endLine']}))}))};}[a0_0x4adfd4(0xf1)](_0x1c3d7a,_0x3ac6a0,_0xffedd,_0x2bf04d){const _0x52451e=a0_0x4adfd4;return{'directory':this['directoryAccessManager']['createRelativePath'](_0xffedd,_0x2bf04d),'fullPath':_0xffedd,'success':!![],'outputMode':_0x52451e(0xfa),'summary':_0x1c3d7a[_0x52451e(0xbd)],'clones':_0x3ac6a0['map'](_0x57a6b1=>({..._0x57a6b1,'instances':_0x57a6b1['instances']['map'](_0x37ecbc=>({..._0x37ecbc,'code':_0x37ecbc['code']['split']('\x0a')[_0x52451e(0xad)](0x0,0xa)[_0x52451e(0x111)]('\x0a')+(_0x37ecbc[_0x52451e(0x103)][_0x52451e(0xf8)]('\x0a')[_0x52451e(0xed)]>0xa?'\x0a...\x20(truncated)':'')}))}))};}async[a0_0x4adfd4(0xc2)](){const _0xc098b9=a0_0x4adfd4;if(!this['cloneDetector']){const {CloneDetectionTool:_0xcaf3bb}=await import('../analyzers/codeCloneDetector/index.js'),_0xd07dd6={'minTokens':this['defaultMinTokens'],'minLines':this[_0xc098b9(0xb4)],'similarityThreshold':this[_0xc098b9(0xf5)],'include':[_0xc098b9(0xaf),_0xc098b9(0xcb),'**/*.ts',_0xc098b9(0xc9),_0xc098b9(0x116)],'exclude':[_0xc098b9(0x109),_0xc098b9(0xdd),'**/build/**'],'maxFileSize':this['maxFileSize']};this['cloneDetector']=new _0xcaf3bb(_0xd07dd6),this['logger']?.[_0xc098b9(0xc8)](_0xc098b9(0x10c),{'config':_0xd07dd6});}return this[_0xc098b9(0xf7)];}[a0_0x4adfd4(0xd1)](){const _0x327a8f=a0_0x4adfd4;return[_0x327a8f(0x108)];}['getParameterSchema'](){const _0x5ac80e=a0_0x4adfd4;return{'type':_0x5ac80e(0xdf),'properties':{'actions':{'type':_0x5ac80e(0x10d),'minItems':0x1,'items':{'type':'object','properties':{'type':{'type':'string','enum':this[_0x5ac80e(0xd1)]()},'directory':{'type':'string'},'minTokens':{'type':'number','minimum':0xa,'maximum':0x3e8},'minLines':{'type':'number','minimum':0x1,'maximum':0x64},'similarityThreshold':{'type':_0x5ac80e(0xeb),'minimum':0.5,'maximum':0x1},'priorityFilter':{'type':_0x5ac80e(0xec),'enum':[_0x5ac80e(0xe5),'medium',_0x5ac80e(0xfd)]},'maxResults':{'type':'number','minimum':0x1},'outputMode':{'type':_0x5ac80e(0xec),'enum':['summary','detailed','recommendations']}},'required':['type','directory']}}},'required':['actions']};}}export default CloneDetectionTool;
|
|
1
|
+
function a0_0x42d0(_0x22ccfc,_0x196d19){_0x22ccfc=_0x22ccfc-0x1ef;const _0x5e9e0f=a0_0x5e9e();let _0x42d013=_0x5e9e0f[_0x22ccfc];if(a0_0x42d0['rLBusl']===undefined){var _0x40a873=function(_0x2f300b){const _0x583ed7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1dc435='',_0x5ed1b0='';for(let _0x2042d1=0x0,_0x461057,_0x114575,_0x2b13d1=0x0;_0x114575=_0x2f300b['charAt'](_0x2b13d1++);~_0x114575&&(_0x461057=_0x2042d1%0x4?_0x461057*0x40+_0x114575:_0x114575,_0x2042d1++%0x4)?_0x1dc435+=String['fromCharCode'](0xff&_0x461057>>(-0x2*_0x2042d1&0x6)):0x0){_0x114575=_0x583ed7['indexOf'](_0x114575);}for(let _0x59204f=0x0,_0x5e0a81=_0x1dc435['length'];_0x59204f<_0x5e0a81;_0x59204f++){_0x5ed1b0+='%'+('00'+_0x1dc435['charCodeAt'](_0x59204f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5ed1b0);};a0_0x42d0['knsrkO']=_0x40a873,a0_0x42d0['gVfJnD']={},a0_0x42d0['rLBusl']=!![];}const _0x4fa8a0=_0x5e9e0f[0x0],_0x1446b7=_0x22ccfc+_0x4fa8a0,_0x592505=a0_0x42d0['gVfJnD'][_0x1446b7];return!_0x592505?(_0x42d013=a0_0x42d0['knsrkO'](_0x42d013),a0_0x42d0['gVfJnD'][_0x1446b7]=_0x42d013):_0x42d013=_0x592505,_0x42d013;}function a0_0x5e9e(){const _0x15ddd8=['y29Kzq','kIOVkI5JANm','C3rHCNrmAw5L','zgv0zwn0lwnSB25LCW','BwLUlxrVA2vUCW','ihnLy29UzhmkicaGia','zxn0Aw1HDgvKrwzMB3j0','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','zgvMyxvSDe1PBKXPBMvZ','zgv0ywLSzwq','y3jLyxrLrgLYzwn0B3j5qwnJzxnZ','z2v0ugfYyw1LDgvYu2nOzw1H','cI4UlIaODhj1BMnHDgvKkq','mJqZntiWCM1gyxrc','z2v0u3vWCg9YDgvKqwn0Aw9UCW','oIb0ExbLigLZihjLCxvPCMvK','mtK1nJaYneftsvvAua','AxnbyNnVBhv0zq','mtK5ntu4nxHqqMnfzW','B3v0Chv0tw9Kzq','zgvIDwC','CMvJB21Tzw5KyxrPB25Z','CMvHC29UAw5N','BwvZC2fNzq','Bg9Nz2vY','kIOVkI52Dwu','oIbTAw4TBgLUzxmGBxvZDcbIzsbIzxr3zwvUideGyw5KideWma','y2XVBMvezxrLy3rVCG','mti5oduZmKT2ANvfEG','Aw5MBW','qwn0Aw9Uia','ChjPB3jPDhLgAwX0zxi','zgLYzwn0B3j5','BwvKAxvT','zM9YBwf0u3vTBwfYEu91Dhb1Da','kIOVkI50C3G','y3DK','BgLUzunVDw50','zgLYzwn0B3j5qwnJzxnZtwfUywDLCG','B2jQzwn0','kIOVkI50CW','ywXSB3DLza','mti2ntm3vhH1tvjr','DhLWzq','Bwf4lxjLC3vSDhm','zM9YBwf0uMvJB21Tzw5KyxrPB25Zt3v0Chv0','C3bSAxq','y29UzMLKzw5Jzq','C3vTBwfYEq','ChvZAa','CMvMywn0B3jPBMDbzhzPy2u','Dg90ywXdBg9Uzxm','u3rHCNrPBMCGy2XVBMuGzgv0zwn0Aw9U','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','C2LTAwXHCML0EvrOCMvZAg9Sza','zMLSzq','zgvMyxvSDe1PBLrVA2vUCW','nhHSrwrMsa','mJa4mZi3qNH2zK5I','DgLTzw91Da','ChjPB3jPDhLdB3vUDhm','z2v0rgvZy3jPChrPB24','zw5KtgLUzq','C3rYAw5N','BgvUz3rO','mJrPr3bLqve','ywn0Aw9UCW','zxjYB3i','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','kIOVBM9Kzv9TB2r1BgvZlYOQ','y3jLyxrLuMvSyxrPDMvqyxrO','BwfW','z2v0q2XVBMvezxrLy3rVCG','mtq0z21jDLbP','odHfuNHiAva','B3v0Chv0lw1Vzgu','cKnVzguGq2XVBMuGrgv0zwn0Aw9UifrVB2W6iezPBMqGzhvWBgLJyxrLzcbJB2rLigzVCIbYzwzHy3rVCMLUzYbVChbVCNr1BML0AwvZcGPuAgLZihrVB2WGAwrLBNrPzMLLCYbLEgfJDcbHBMqGC2LTAwXHCIbJB2rLihbHDhrLCM5ZicHJB2rLignSB25LCYKGywnYB3nZihLVDxiGy29KzwjHC2uGDg8GAgvSCcbYzwr1y2uGzhvWBgLJyxrPB24SigLTChjVDMuGBwfPBNrHAw5HyMLSAxr5lcbHBMqGAwrLBNrPzNKGCMvMywn0B3jPBMCGB3bWB3j0Dw5PDgLLCY4kcLDiqvqGsvqGrevurunuuZOklsbfEgfJDcbdBg9UzxmGkfr5CguGmsK6ieLKzw50AwnHBcbJB2rLihDPDgGGzgLMzMvYzw50igzVCM1HDhrPBMCVy29TBwvUDhmklsbtAw1PBgfYienSB25LCYaOvhLWzsaYlZmPoIbtDhj1y3r1CMfSBhKGC2LTAwXHCIbJB2rLihDPDgGGBwLUB3iGDMfYAwf0Aw9UCWOku1vque9sveveieXbtKDvquDfuZOklsbkyxzHu2nYAxb0icGUANmSic5QC3GSic5TANmSic5JANmPcI0GvhLWzvnJCMLWDcaOlNrZlcaUDhn4kqOTifz1zsaOlNz1zsKkcLvtquDfoGPGygbQC29UcNSkicaIDg9VBeLKiJOGiMnSB25Lzgv0zwn0Aw9UiIWkicaIywn0Aw9UCYi6ifSkicaGihSkicaGicaGiNr5CguIoIaIzgv0zwn0lwnSB25LCYiScIaGicaGicjKAxjLy3rVCNKIoIaIC3jJiIWkicaGicaGiM1PBLrVA2vUCYi6iduWlaOGicaGicaIBwLUtgLUzxmIoIa1laOGicaGicaIC2LTAwXHCML0EvrOCMvZAg9Szci6idaUoduScIaGicaGicjWCMLVCML0EuzPBhrLCIi6icjOAwDOiIWkicaGicaGiM1HEfjLC3vSDhmIoIaXmcWkicaGicaGiM91Dhb1De1VzguIoIaIC3vTBwfYEsikicaGih0kicbDcN0kygbGcGPqqvjbtuvurvjtoGOTigrPCMvJDg9YEtOGrgLYzwn0B3j5ihrVigfUywX5EMuGkhjLCxvPCMvKkqOTig1PBLrVA2vUCZOGtwLUAw11Bsb0B2TLBIbJB3vUDcaOzgvMyxvSDdOGntaSigXVD2vYid0GBw9YzsbZzw5ZAxrPDMuPcI0GBwLUtgLUzxm6ie1PBMLTDw0GBgLUzsbJB3vUDcaOzgvMyxvSDdOGnsKklsbZAw1PBgfYAxr5vgHYzxnOB2XKoIaWlteGC2LTAwXHCML0Esb0AhjLC2HVBgqGkgrLzMf1Bhq6idaUoduPcI0GChjPB3jPDhLgAwX0zxi6iezPBhrLCIbIEsbWCMLVCML0EsaOAgLNAc9TzwrPDw0VBg93lcbVChrPB25HBcKklsbTyxHszxn1BhrZoIbnyxHPBxvTig51BwjLCIbVzIbJBg9UzxmGDg8GCMv0DxjUicHVChrPB25HBcKklsbVDxrWDxrnB2rLoIbZDw1Tyxj5FgrLDgfPBgvKFhjLy29TBwvUzgf0Aw9UCYaOzgvMyxvSDdOGzgv0ywLSzwqPcGPfwefnueXfuZOkcJeUiezPBMqGywXSignSB25LCYbPBIbWCM9Qzwn0oGPGygbQC29UcNSkicaIDg9VBeLKiJOGiMnSB25Lzgv0zwn0Aw9UiIWkicaIywn0Aw9UCYi6ifT7icj0ExbLiJOGiMrLDgvJDc1JBg9UzxmIlcaIzgLYzwn0B3j5iJOGiI4Iih1DcN0kygbGcGOYlIbiAwDOlxbYAw9YAxr5ihjLzMfJDg9YAw5Nig9WCg9YDhvUAxrPzxmGB25SEtOkygbGANnVBGP7cIaGiNrVB2Xjzci6icjJBg9UzwrLDgvJDgLVBIiScIaGiMfJDgLVBNmIoIbBEYaIDhLWzsi6icjKzxrLy3qTy2XVBMvZiIWGiMrPCMvJDg9YEsi6icjZCMmIlcaIChjPB3jPDhLgAwX0zxiIoIaIAgLNAciSicjTyxHszxn1BhrZiJOGmtaGFv0kFqPGygakcJmUie1VCMuGC2vUC2L0AxzLigrLDgvJDgLVBIaOzMLUzhmGC21HBgXLCIbJBg9UzxmPoGPGygbQC29UcNSkicaIDg9VBeLKiJOGiMnSB25Lzgv0zwn0Aw9UiIWkicaIywn0Aw9UCYi6ifT7icj0ExbLiJOGiMrLDgvJDc1JBg9UzxmIlcaIzgLYzwn0B3j5iJOGiI4IlcaIBwLUvg9Rzw5ZiJOGmZaSicjZAw1PBgfYAxr5vgHYzxnOB2XKiJOGmc44mcb9xqP9cMbGyaOknc4GuxvPy2SGB3zLCNzPzxC6cMbGygPZB24kEWOGicj0B29SswqIoIaIy2XVBMvKzxrLy3rPB24IlaOGicjHy3rPB25ZiJOGw3SGiNr5CguIoIaIzgv0zwn0lwnSB25LCYiSicjKAxjLy3rVCNKIoIaIlIiSicjVDxrWDxrnB2rLiJOGiNn1Bw1HCNKIih1DcN0kygbGcGPpvvrqvvqGrK9stufuoGPszxr1CM5ZignSB25LigrLDgvJDgLVBIbYzxn1BhrZihDPDgG6cI0GC3vTBwfYEtOGt3zLCMfSBcbZDgf0Axn0AwnZicH0B3rHBcbJBg9UzxmSigr1CgXPy2f0Aw9UicuSihbYAw9YAxr5igjYzwfRzg93BIKklsbJBg9Uzxm6iefYCMf5ig9MigrLDgvJDgvKignSB25LigDYB3vWCYb3AxrOoGOGic0GAwqSihr5CguSignVBMzPzgvUy2uSigLUC3rHBMnLCYWGBwv0CMLJCWOGic0GCMvMywn0B3jPBMDbzhzPy2u6ihbYAw9YAxr5lcbZDhjHDgvNEsWGC3vNz2vZDgvKtMfTzsWGCMvHC29UAw5NlcbHy3rPB25HyMXLu3rLChmkcK9vvfbvvcbnt0rfuZOklsbZDw1Tyxj5oIbiAwDOlwXLDMvSig92zxj2Awv3ig9UBhKGkgr1CgXPy2f0Aw9UicuSihrVCca1ignSB25LCYKklsbKzxrHAwXLzdOGrNvSBcbJBg9UzsbKzxrHAwXZihDPDgGGy29KzsbZBMLWCgv0CYaOzgvMyxvSDcKklsbYzwnVBw1LBMrHDgLVBNm6ifjLzMfJDg9YAw5NihbYAw9YAxrPzxmGD2L0AcbHy3rPB25HyMXLihn0zxbZcGPmsu1jvefusu9ouZOklsbbBMfSExPLCYbkyxzHu2nYAxb0l1r5Cgvty3jPChqGzMfTAwX5ig9UBhKklsbnyxHPBxvTigzPBguGC2L6ztOG','ChjPB3jPDhK','zM9YBwf0rgv0ywLSzwrpDxrWDxq','Aw5ZDgfUy2vZ','Dg90ywXgAwXLCW','kIOVyNvPBgqVkIO','C3vIC3rYAw5N','oIbVDxrWDxqTBw9KzsbTDxn0igjLihn1Bw1HCNKSigrLDgfPBgvKlcbVCIbYzwnVBw1LBMrHDgLVBNm','kIOVkI5ZCgvJlMPZ','CMvXDwLYzxnqCM9Qzwn0','ChjPB3jPDhKTzMLSDgvY','Bwf4rMLSzvnPEMu','mLbVuhLevq','vw5RBM93BIbHy3rPB24GDhLWztOG','BwLUlwXPBMvZ','y2XVBMvZ','Aw5ZDgfUy2vdB3vUDa','uMvHzcbHy2nLC3mGzgvUAwvKoIa','s0iGCgvYigzPBguklsbbBMfSExnPCYb0Aw1LB3v0oIa','CMvZB2X2zq','nZi3nJGZC3PhqMD6','Bwv0CMLJCW','BwLUtgLUzxm','kIOVkI5QC3G','BNvTyMvY','BwLUvg9Rzw5Z','rMfPBgvKihrVihbHCNnLignSB25LigrLDgvJDgLVBIbWyxjHBwv0zxjZoIa','C2XPy2u'];a0_0x5e9e=function(){return _0x15ddd8;};return a0_0x5e9e();}const a0_0x1b60b5=a0_0x42d0;(function(_0x4c445c,_0x5642d9){const _0x3e00e8=a0_0x42d0,_0x2422be=_0x4c445c();while(!![]){try{const _0x4dfaca=parseInt(_0x3e00e8(0x1f2))/0x1*(parseInt(_0x3e00e8(0x221))/0x2)+parseInt(_0x3e00e8(0x24d))/0x3+-parseInt(_0x3e00e8(0x201))/0x4*(parseInt(_0x3e00e8(0x243))/0x5)+parseInt(_0x3e00e8(0x241))/0x6+parseInt(_0x3e00e8(0x202))/0x7*(parseInt(_0x3e00e8(0x213))/0x8)+parseInt(_0x3e00e8(0x212))/0x9*(-parseInt(_0x3e00e8(0x23e))/0xa)+-parseInt(_0x3e00e8(0x229))/0xb*(parseInt(_0x3e00e8(0x209))/0xc);if(_0x4dfaca===_0x5642d9)break;else _0x2422be['push'](_0x2422be['shift']());}catch(_0x207603){_0x2422be['push'](_0x2422be['shift']());}}}(a0_0x5e9e,0x47375));import{BaseTool}from'./baseTool.js';import a0_0x1dc435 from'../utilities/tagParser.js';import a0_0x5ed1b0 from'../utilities/directoryAccessManager.js';import a0_0x2042d1 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class CloneDetectionTool extends BaseTool{constructor(_0x461057={},_0x114575=null){const _0x2b6b5a=a0_0x42d0;super(_0x461057,_0x114575),this[_0x2b6b5a(0x21e)]=!![],this['isAsync']=![],this[_0x2b6b5a(0x203)]=_0x461057['timeout']||0x1d4c0,this[_0x2b6b5a(0x20c)]=_0x461057['maxConcurrentOperations']||0x1,this[_0x2b6b5a(0x200)]=_0x461057[_0x2b6b5a(0x200)]||0x32,this[_0x2b6b5a(0x239)]=_0x461057['defaultMinLines']||0x5,this['defaultSimilarityThreshold']=_0x461057['defaultSimilarityThreshold']||0.85,this['maxFileSize']=_0x461057[_0x2b6b5a(0x220)]||0x7a120,this['directoryAccessManager']=new a0_0x5ed1b0(_0x461057,_0x114575),this[_0x2b6b5a(0x24c)]=null;}[a0_0x1b60b5(0x205)](){const _0x53ceab=a0_0x1b60b5;return _0x53ceab(0x215)+Math['round'](this[_0x53ceab(0x220)]/0x400)+_0x53ceab(0x227)+this['timeout']/0x3e8+_0x53ceab(0x236);}['parseParameters'](_0x2b13d1){const _0x7f9d9=a0_0x1b60b5;try{const _0x59204f={},_0x5e0a81=[];this[_0x7f9d9(0x249)]?.[_0x7f9d9(0x245)]('CloneDetection\x20tool\x20parsing\x20parameters',{'contentLength':_0x2b13d1[_0x7f9d9(0x208)],'contentPreview':_0x2b13d1[_0x7f9d9(0x21b)](0x0,0xc8)});const _0x2e99e0=/<detect-clones\s+(.+?)\/>/g;let _0x4ccfd0;while((_0x4ccfd0=_0x2e99e0['exec'](_0x2b13d1))!==null){const _0x1477fb=_0x4ccfd0[0x1]['trim'](),_0x491989=new a0_0x1dc435(),_0x409746=_0x491989['parseAttributes'](_0x1477fb),_0x1ec5e5={'type':_0x7f9d9(0x234),..._0x409746};_0x1ec5e5[_0x7f9d9(0x235)]&&(_0x1ec5e5['minTokens']=parseInt(_0x1ec5e5[_0x7f9d9(0x235)],0xa),delete _0x1ec5e5['min-tokens']),_0x1ec5e5[_0x7f9d9(0x223)]&&(_0x1ec5e5['minLines']=parseInt(_0x1ec5e5[_0x7f9d9(0x223)],0xa),delete _0x1ec5e5[_0x7f9d9(0x223)]),_0x1ec5e5['similarity-threshold']&&(_0x1ec5e5['similarityThreshold']=parseFloat(_0x1ec5e5['similarity-threshold']),delete _0x1ec5e5['similarity-threshold']),_0x1ec5e5['priority-filter']&&(_0x1ec5e5[_0x7f9d9(0x250)]=_0x1ec5e5['priority-filter'],delete _0x1ec5e5[_0x7f9d9(0x21f)]),_0x1ec5e5['max-results']&&(_0x1ec5e5['maxResults']=parseInt(_0x1ec5e5[_0x7f9d9(0x1f4)],0xa),delete _0x1ec5e5['max-results']),_0x1ec5e5[_0x7f9d9(0x214)]&&(_0x1ec5e5['outputMode']=_0x1ec5e5['output-mode'],delete _0x1ec5e5['output-mode']),_0x5e0a81[_0x7f9d9(0x1f9)](_0x1ec5e5);}return _0x59204f[_0x7f9d9(0x20a)]=_0x5e0a81,_0x59204f['rawContent']=_0x2b13d1['trim'](),this[_0x7f9d9(0x249)]?.[_0x7f9d9(0x245)]('Parsed\x20CloneDetection\x20tool\x20parameters',{'totalActions':_0x5e0a81['length'],'actionTypes':_0x5e0a81['map'](_0x118835=>_0x118835[_0x7f9d9(0x1f3)])}),_0x59204f;}catch(_0xd47a74){throw new Error(_0x7f9d9(0x22f)+_0xd47a74[_0x7f9d9(0x248)]);}}[a0_0x1b60b5(0x238)](){return['actions'];}[a0_0x1b60b5(0x20d)](_0x24649d){const _0x371d6a=a0_0x1b60b5,_0x378b19=[];if(!_0x24649d['actions']||!Array['isArray'](_0x24649d['actions'])||_0x24649d['actions']['length']===0x0)_0x378b19[_0x371d6a(0x1f9)](_0x371d6a(0x1fd));else for(const [_0x3bec5e,_0x2bdc41]of _0x24649d['actions']['entries']()){if(!_0x2bdc41[_0x371d6a(0x1f3)]){_0x378b19['push']('Action\x20'+(_0x3bec5e+0x1)+_0x371d6a(0x240));continue;}_0x2bdc41[_0x371d6a(0x1f3)]==='detect-clones'?(!_0x2bdc41['directory']&&_0x378b19[_0x371d6a(0x1f9)](_0x371d6a(0x24f)+(_0x3bec5e+0x1)+':\x20directory\x20is\x20required\x20for\x20detect-clones'),_0x2bdc41[_0x371d6a(0x22e)]!==undefined&&(_0x2bdc41['minTokens']<0xa||_0x2bdc41['minTokens']>0x3e8)&&_0x378b19['push']('Action\x20'+(_0x3bec5e+0x1)+':\x20min-tokens\x20must\x20be\x20between\x2010\x20and\x201000'),_0x2bdc41['minLines']!==undefined&&(_0x2bdc41['minLines']<0x1||_0x2bdc41[_0x371d6a(0x22b)]>0x64)&&_0x378b19[_0x371d6a(0x1f9)](_0x371d6a(0x24f)+(_0x3bec5e+0x1)+_0x371d6a(0x24b)),_0x2bdc41[_0x371d6a(0x1fe)]!==undefined&&(_0x2bdc41['similarityThreshold']<0.5||_0x2bdc41[_0x371d6a(0x1fe)]>0x1)&&_0x378b19['push']('Action\x20'+(_0x3bec5e+0x1)+':\x20similarity-threshold\x20must\x20be\x20between\x200.5\x20and\x201.0'),_0x2bdc41[_0x371d6a(0x250)]&&!['high',_0x371d6a(0x252),'low']['includes'](_0x2bdc41[_0x371d6a(0x250)])&&_0x378b19['push'](_0x371d6a(0x24f)+(_0x3bec5e+0x1)+':\x20priority-filter\x20must\x20be\x20high,\x20medium,\x20or\x20low'),_0x2bdc41['outputMode']&&!['summary',_0x371d6a(0x23a),_0x371d6a(0x246)]['includes'](_0x2bdc41[_0x371d6a(0x244)])&&_0x378b19[_0x371d6a(0x1f9)](_0x371d6a(0x24f)+(_0x3bec5e+0x1)+_0x371d6a(0x21c))):_0x378b19['push'](_0x371d6a(0x24f)+(_0x3bec5e+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x2bdc41[_0x371d6a(0x1f3)]);}return{'valid':_0x378b19['length']===0x0,'errors':_0x378b19};}async['execute'](_0xee0217,_0x28f113){const _0xd83deb=a0_0x1b60b5,{actions:_0xa55d28}=_0xee0217,{projectDir:_0x3b3db3,agentId:_0x284db2,directoryAccess:_0x452599}=_0x28f113,_0x2f5e15=_0x452599||this['directoryAccessManager'][_0xd83deb(0x23b)]({'workingDirectory':_0x3b3db3||process[_0xd83deb(0x255)](),'writeEnabledDirectories':[],'readOnlyDirectories':[_0x3b3db3||process['cwd']()],'restrictToProject':!![]}),_0x510039=this['directoryAccessManager']['getWorkingDirectory'](_0x2f5e15),_0x298aba=[];for(const _0x123043 of _0xa55d28){try{if(_0x123043['type']==='detect-clones'){const _0x10467a=await this['detectClones'](_0x123043['directory'],_0x510039,_0x2f5e15,_0x123043);_0x298aba['push'](_0x10467a);}else throw new Error(_0xd83deb(0x222)+_0x123043['type']);}catch(_0x20e075){this['logger']?.[_0xd83deb(0x20b)]('Clone\x20detection\x20action\x20failed',{'action':_0x123043['type'],'error':_0x20e075['message']}),_0x298aba['push']({'directory':_0x123043[_0xd83deb(0x251)],'error':_0x20e075['message'],'success':![]});}}return{'success':!![],'results':_0x298aba,'toolUsed':'clonedetection'};}async['detectClones'](_0x43a468,_0x1be665,_0x30be24,_0x1d7db={}){const _0x5158cc=a0_0x1b60b5,_0x11def9=a0_0x2042d1[_0x5158cc(0x242)](_0x43a468)?a0_0x2042d1['normalize'](_0x43a468):a0_0x2042d1[_0x5158cc(0x228)](_0x1be665,_0x43a468),_0x33565f=this[_0x5158cc(0x257)]['validateReadAccess'](_0x11def9,_0x30be24);if(!_0x33565f[_0x5158cc(0x1f1)])throw new Error(_0x5158cc(0x226)+_0x33565f['reason']);try{const _0xf9d53d=await this[_0x5158cc(0x211)](),_0x49a145={'minTokens':_0x1d7db[_0x5158cc(0x22e)]||this[_0x5158cc(0x200)],'minLines':_0x1d7db['minLines']||this[_0x5158cc(0x239)],'similarityThreshold':_0x1d7db[_0x5158cc(0x1fe)]||this['defaultSimilarityThreshold'],'include':['**/*.js',_0x5158cc(0x22c),'**/*.mjs',_0x5158cc(0x232),_0x5158cc(0x1f0),_0x5158cc(0x254),_0x5158cc(0x24a)],'exclude':[_0x5158cc(0x20e),'**/dist/**','**/build/**','**/*.test.js',_0x5158cc(0x21d)],'maxFileSize':this['maxFileSize']};this[_0x5158cc(0x249)]?.[_0x5158cc(0x24e)](_0x5158cc(0x1fc),{'directory':_0x11def9,'config':_0x49a145});const _0x4f392b=await _0xf9d53d['run'](_0x11def9,null);if(!_0x4f392b)return{'directory':this[_0x5158cc(0x257)][_0x5158cc(0x20f)](_0x11def9,_0x30be24),'fullPath':_0x11def9,'success':!![],'summary':{'totalFiles':0x0,'totalClones':0x0,'duplicationPercentage':0x0},'clones':[],'message':'No\x20files\x20found\x20or\x20no\x20clones\x20detected'};let _0x1105b5=_0x4f392b[_0x5158cc(0x224)];_0x1d7db[_0x5158cc(0x250)]&&(_0x1105b5=_0x1105b5['filter'](_0x37c7c6=>_0x37c7c6['refactoringAdvice'][_0x5158cc(0x216)]===_0x1d7db['priorityFilter']));_0x1d7db['maxResults']&&(_0x1105b5=_0x1105b5[_0x5158cc(0x230)](0x0,_0x1d7db['maxResults']));const _0x35a181=_0x1d7db['outputMode']||_0x5158cc(0x23a);if(_0x35a181==='summary')return this[_0x5158cc(0x253)](_0x4f392b,_0x1105b5,_0x11def9,_0x30be24);else return _0x35a181==='recommendations'?this[_0x5158cc(0x1f5)](_0x4f392b,_0x1105b5,_0x11def9,_0x30be24):this[_0x5158cc(0x217)](_0x4f392b,_0x1105b5,_0x11def9,_0x30be24);}catch(_0x4fc8ec){throw new Error('Failed\x20to\x20detect\x20clones\x20in\x20'+_0x43a468+':\x20'+_0x4fc8ec['message']);}}[a0_0x1b60b5(0x253)](_0xf4807d,_0x43fecf,_0x1c6c82,_0x3385c2){const _0x13037e=a0_0x1b60b5;return{'directory':this['directoryAccessManager'][_0x13037e(0x20f)](_0x1c6c82,_0x3385c2),'fullPath':_0x1c6c82,'success':!![],'outputMode':_0x13037e(0x1f8),'summary':{'totalFiles':_0xf4807d['summary'][_0x13037e(0x219)],'totalClones':_0xf4807d['summary'][_0x13037e(0x1fb)],'duplicatedLines':_0xf4807d[_0x13037e(0x1f8)]['totalDuplicatedLines'],'duplicationPercentage':_0xf4807d['summary']['duplicationPercentage'],'priorityCounts':_0xf4807d[_0x13037e(0x1f8)][_0x13037e(0x204)],'topClones':_0x43fecf['slice'](0x0,0x5)['map'](_0x1611d3=>({'id':_0x1611d3['id'],'type':_0x1611d3[_0x13037e(0x1f3)],'confidence':_0x1611d3[_0x13037e(0x1f7)],'instances':_0x1611d3[_0x13037e(0x22a)]['instanceCount'],'lines':_0x1611d3['metrics'][_0x13037e(0x256)],'priority':_0x1611d3[_0x13037e(0x1fa)][_0x13037e(0x216)],'strategy':_0x1611d3['refactoringAdvice']['strategy'],'locations':_0x1611d3[_0x13037e(0x218)][_0x13037e(0x210)](_0x3a1a23=>_0x3a1a23[_0x13037e(0x1ff)]+':'+_0x3a1a23['startLine']+'-'+_0x3a1a23[_0x13037e(0x206)])}))}};}['formatRecommendationsOutput'](_0x350cec,_0x246538,_0x520eb7,_0xabb5e0){const _0x1d916f=a0_0x1b60b5;return{'directory':this['directoryAccessManager'][_0x1d916f(0x20f)](_0x520eb7,_0xabb5e0),'fullPath':_0x520eb7,'success':!![],'outputMode':'recommendations','summary':{'totalFiles':_0x350cec['summary']['totalFiles'],'totalClones':_0x350cec['summary']['totalClones'],'duplicationPercentage':_0x350cec['summary']['duplicationPercentage']},'recommendations':_0x246538[_0x1d916f(0x210)](_0x1d3fd9=>({'id':_0x1d3fd9['id'],'priority':_0x1d3fd9['refactoringAdvice'][_0x1d916f(0x216)],'strategy':_0x1d3fd9['refactoringAdvice']['strategy'],'suggestedName':_0x1d3fd9['refactoringAdvice']['suggestedName'],'reasoning':_0x1d3fd9[_0x1d916f(0x1fa)][_0x1d916f(0x247)],'effort':_0x1d3fd9[_0x1d916f(0x1fa)][_0x1d916f(0x237)],'benefits':_0x1d3fd9['refactoringAdvice']['benefits'],'steps':_0x1d3fd9[_0x1d916f(0x1fa)]['actionableSteps'],'metrics':{'instances':_0x1d3fd9['metrics'][_0x1d916f(0x225)],'lines':_0x1d3fd9[_0x1d916f(0x22a)][_0x1d916f(0x256)],'files':_0x1d3fd9['metrics']['filesCovered'],'impact':_0x1d3fd9['metrics']['impactScore']},'locations':_0x1d3fd9[_0x1d916f(0x218)][_0x1d916f(0x210)](_0x4b36ba=>({'file':_0x4b36ba[_0x1d916f(0x1ff)],'startLine':_0x4b36ba[_0x1d916f(0x233)],'endLine':_0x4b36ba[_0x1d916f(0x206)]}))}))};}[a0_0x1b60b5(0x217)](_0x4d50e7,_0x51f7f6,_0xed6864,_0xad8e7f){const _0x4094b1=a0_0x1b60b5;return{'directory':this[_0x4094b1(0x257)]['createRelativePath'](_0xed6864,_0xad8e7f),'fullPath':_0xed6864,'success':!![],'outputMode':'detailed','summary':_0x4d50e7[_0x4094b1(0x1f8)],'clones':_0x51f7f6[_0x4094b1(0x210)](_0x47b531=>({..._0x47b531,'instances':_0x47b531['instances'][_0x4094b1(0x210)](_0xc892d9=>({..._0xc892d9,'code':_0xc892d9[_0x4094b1(0x231)]['split']('\x0a')['slice'](0x0,0xa)['join']('\x0a')+(_0xc892d9['code'][_0x4094b1(0x1f6)]('\x0a')['length']>0xa?_0x4094b1(0x23d):'')}))}))};}async['getCloneDetector'](){const _0x4985d2=a0_0x1b60b5;if(!this['cloneDetector']){const {CloneDetectionTool:_0x45595b}=await import('../analyzers/codeCloneDetector/index.js'),_0x56f505={'minTokens':this[_0x4985d2(0x200)],'minLines':this['defaultMinLines'],'similarityThreshold':this['defaultSimilarityThreshold'],'include':['**/*.js',_0x4985d2(0x22c),_0x4985d2(0x1f0),'**/*.tsx',_0x4985d2(0x24a)],'exclude':[_0x4985d2(0x20e),'**/dist/**',_0x4985d2(0x21a)],'maxFileSize':this[_0x4985d2(0x220)]};this[_0x4985d2(0x24c)]=new _0x45595b(_0x56f505),this['logger']?.[_0x4985d2(0x245)]('Clone\x20detector\x20initialized',{'config':_0x56f505});}return this['cloneDetector'];}[a0_0x1b60b5(0x23f)](){const _0x3e2399=a0_0x1b60b5;return[_0x3e2399(0x234)];}[a0_0x1b60b5(0x23c)](){const _0x1d3ce9=a0_0x1b60b5;return{'type':_0x1d3ce9(0x1ef),'properties':{'actions':{'type':'array','minItems':0x1,'items':{'type':'object','properties':{'type':{'type':'string','enum':this['getSupportedActions']()},'directory':{'type':_0x1d3ce9(0x207)},'minTokens':{'type':'number','minimum':0xa,'maximum':0x3e8},'minLines':{'type':'number','minimum':0x1,'maximum':0x64},'similarityThreshold':{'type':'number','minimum':0.5,'maximum':0x1},'priorityFilter':{'type':_0x1d3ce9(0x207),'enum':['high','medium','low']},'maxResults':{'type':_0x1d3ce9(0x22d),'minimum':0x1},'outputMode':{'type':_0x1d3ce9(0x207),'enum':[_0x1d3ce9(0x1f8),'detailed',_0x1d3ce9(0x246)]}},'required':['type',_0x1d3ce9(0x251)]}}},'required':[_0x1d3ce9(0x20a)]};}}export default CloneDetectionTool;
|