@loxia-labs/loxia-autopilot-one 1.0.5 → 1.0.6

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.
Files changed (120) hide show
  1. package/README.md +1 -1
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/aiService.js +1 -1
  76. package/src/services/apiKeyManager.js +1 -1
  77. package/src/services/benchmarkService.js +1 -1
  78. package/src/services/budgetService.js +1 -1
  79. package/src/services/contextInjectionService.js +1 -1
  80. package/src/services/conversationCompactionService.js +1 -1
  81. package/src/services/errorHandler.js +1 -1
  82. package/src/services/fileAttachmentService.js +1 -1
  83. package/src/services/modelRouterService.js +1 -1
  84. package/src/services/modelsService.js +1 -1
  85. package/src/services/qualityInspector.js +1 -1
  86. package/src/services/tokenCountingService.js +1 -1
  87. package/src/tools/agentCommunicationTool.js +1 -1
  88. package/src/tools/agentDelayTool.js +1 -1
  89. package/src/tools/asyncToolManager.js +1 -1
  90. package/src/tools/baseTool.js +1 -1
  91. package/src/tools/browserTool.js +1 -1
  92. package/src/tools/cloneDetectionTool.js +1 -1
  93. package/src/tools/dependencyResolverTool.js +1 -1
  94. package/src/tools/fileContentReplaceTool.js +1 -1
  95. package/src/tools/fileSystemTool.js +1 -1
  96. package/src/tools/fileTreeTool.js +1 -1
  97. package/src/tools/imageTool.js +1 -1
  98. package/src/tools/importAnalyzerTool.js +1 -1
  99. package/src/tools/jobDoneTool.js +1 -1
  100. package/src/tools/seekTool.js +1 -1
  101. package/src/tools/staticAnalysisTool.js +1 -1
  102. package/src/tools/taskManagerTool.js +1 -1
  103. package/src/tools/terminalTool.js +1 -1
  104. package/src/tools/webTool.js +1 -1
  105. package/src/types/agent.js +1 -1
  106. package/src/types/contextReference.js +1 -1
  107. package/src/types/conversation.js +1 -1
  108. package/src/types/toolCommand.js +1 -1
  109. package/src/utilities/attachmentValidator.js +1 -1
  110. package/src/utilities/configManager.js +1 -1
  111. package/src/utilities/constants.js +1 -1
  112. package/src/utilities/directoryAccessManager.js +1 -1
  113. package/src/utilities/fileProcessor.js +1 -1
  114. package/src/utilities/logger.js +1 -1
  115. package/src/utilities/tagParser.js +1 -1
  116. package/src/utilities/toolConstants.js +1 -1
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/{index-lCBai6dX.js → index-CX8ZfpGw.js} +113 -60
  119. package/web-ui/build/static/index-Dwg_JrlO.css +1 -0
  120. package/web-ui/build/static/index-CClD1090.css +0 -1
@@ -1 +1 @@
1
- const a0_0x4ea30c=a0_0xb5c8;(function(_0x2fc7e4,_0x22a667){const _0x1beaa1=a0_0xb5c8,_0x2d1adc=_0x2fc7e4();while(!![]){try{const _0x5e8044=parseInt(_0x1beaa1(0x1ad))/0x1+parseInt(_0x1beaa1(0x178))/0x2*(parseInt(_0x1beaa1(0x152))/0x3)+-parseInt(_0x1beaa1(0x18a))/0x4*(parseInt(_0x1beaa1(0x1b2))/0x5)+parseInt(_0x1beaa1(0x193))/0x6*(-parseInt(_0x1beaa1(0x165))/0x7)+parseInt(_0x1beaa1(0x1aa))/0x8*(parseInt(_0x1beaa1(0x191))/0x9)+parseInt(_0x1beaa1(0x18d))/0xa*(parseInt(_0x1beaa1(0x166))/0xb)+parseInt(_0x1beaa1(0x158))/0xc*(-parseInt(_0x1beaa1(0x151))/0xd);if(_0x5e8044===_0x22a667)break;else _0x2d1adc['push'](_0x2d1adc['shift']());}catch(_0x42fb4c){_0x2d1adc['push'](_0x2d1adc['shift']());}}}(a0_0x2dc0,0x39396));function a0_0xb5c8(_0x50d9e9,_0x44dcc1){_0x50d9e9=_0x50d9e9-0x150;const _0x2dc061=a0_0x2dc0();let _0xb5c823=_0x2dc061[_0x50d9e9];if(a0_0xb5c8['jpVAqk']===undefined){var _0x43dccd=function(_0x3cfd90){const _0x347fbb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x45625a='',_0xe29a64='';for(let _0xabd9cc=0x0,_0x29b000,_0x57ac3c,_0x219c0=0x0;_0x57ac3c=_0x3cfd90['charAt'](_0x219c0++);~_0x57ac3c&&(_0x29b000=_0xabd9cc%0x4?_0x29b000*0x40+_0x57ac3c:_0x57ac3c,_0xabd9cc++%0x4)?_0x45625a+=String['fromCharCode'](0xff&_0x29b000>>(-0x2*_0xabd9cc&0x6)):0x0){_0x57ac3c=_0x347fbb['indexOf'](_0x57ac3c);}for(let _0x12e642=0x0,_0x2140ed=_0x45625a['length'];_0x12e642<_0x2140ed;_0x12e642++){_0xe29a64+='%'+('00'+_0x45625a['charCodeAt'](_0x12e642)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xe29a64);};a0_0xb5c8['vqJIXi']=_0x43dccd,a0_0xb5c8['DAZJGF']={},a0_0xb5c8['jpVAqk']=!![];}const _0x41a316=_0x2dc061[0x0],_0x58fdbd=_0x50d9e9+_0x41a316,_0x2fb2ca=a0_0xb5c8['DAZJGF'][_0x58fdbd];return!_0x2fb2ca?(_0xb5c823=a0_0xb5c8['vqJIXi'](_0xb5c823),a0_0xb5c8['DAZJGF'][_0x58fdbd]=_0xb5c823):_0xb5c823=_0x2fb2ca,_0xb5c823;}import a0_0x45625a from'events';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AsyncToolManager extends a0_0x45625a{constructor(_0xe29a64={},_0xabd9cc=null){const _0x32e6dd=a0_0xb5c8;super(),this[_0x32e6dd(0x189)]=_0xe29a64,this[_0x32e6dd(0x19a)]=_0xabd9cc,this[_0x32e6dd(0x198)]=new Map(),this['operationHistory']=[],this['maxConcurrentOperations']=_0xe29a64[_0x32e6dd(0x163)]||0xa,this[_0x32e6dd(0x181)]=_0xe29a64[_0x32e6dd(0x181)]||0x493e0,this['cleanupInterval']=_0xe29a64[_0x32e6dd(0x177)]||0xea60,this['maxHistorySize']=_0xe29a64[_0x32e6dd(0x172)]||0x3e8,this[_0x32e6dd(0x192)]=null,this[_0x32e6dd(0x17f)]=![],this[_0x32e6dd(0x199)](),this['on'](_0x32e6dd(0x1a3),this['handleOperationStarted']['bind'](this)),this['on']('operation:completed',this['handleOperationCompleted'][_0x32e6dd(0x160)](this)),this['on']('operation:failed',this['handleOperationFailed']['bind'](this)),this['on']('operation:timeout',this[_0x32e6dd(0x195)][_0x32e6dd(0x160)](this));}async['startOperation'](_0x29b000,_0x57ac3c,_0x219c0,_0x12e642={}){const _0x2847ed=a0_0xb5c8;if(this[_0x2847ed(0x198)][_0x2847ed(0x15b)]>=this[_0x2847ed(0x163)])throw new Error(_0x2847ed(0x16b)+this['maxConcurrentOperations']+')');const _0x2140ed=this['generateOperationId'](),_0x55d0a6={'id':_0x2140ed,'toolId':_0x29b000,'agentId':_0x57ac3c,'parameters':_0x219c0,'context':_0x12e642,'status':TOOL_STATUS[_0x2847ed(0x1b1)],'createdAt':new Date()[_0x2847ed(0x171)](),'startedAt':null,'completedAt':null,'timeout':_0x12e642['timeout']||this[_0x2847ed(0x181)],'result':null,'error':null,'progress':null,'retryCount':0x0,'maxRetries':_0x12e642['maxRetries']||0x0};return this[_0x2847ed(0x198)]['set'](_0x2140ed,_0x55d0a6),this[_0x2847ed(0x19a)]?.[_0x2847ed(0x1a6)](_0x2847ed(0x1a7)+_0x2140ed,{'toolId':_0x29b000,'agentId':_0x57ac3c,'parametersCount':Object['keys'](_0x219c0)[_0x2847ed(0x164)],'timeout':_0x55d0a6['timeout']}),this[_0x2847ed(0x168)](_0x2140ed),this[_0x2847ed(0x183)](_0x2847ed(0x1a3),_0x55d0a6),_0x2140ed;}['updateOperation'](_0x43bbfd,_0x5cf7eb,_0x14b993={}){const _0x1faefc=a0_0xb5c8,_0x2b7074=this[_0x1faefc(0x198)][_0x1faefc(0x157)](_0x43bbfd);if(!_0x2b7074)return this['logger']?.[_0x1faefc(0x167)](_0x1faefc(0x17a)+_0x43bbfd),![];const _0x14a985=_0x2b7074[_0x1faefc(0x197)];_0x2b7074['status']=_0x5cf7eb;_0x5cf7eb===TOOL_STATUS['EXECUTING']&&!_0x2b7074['startedAt']&&(_0x2b7074[_0x1faefc(0x15c)]=new Date()[_0x1faefc(0x171)]());(_0x5cf7eb===TOOL_STATUS['COMPLETED']||_0x5cf7eb===TOOL_STATUS[_0x1faefc(0x169)])&&(_0x2b7074['completedAt']=new Date()['toISOString']());if(_0x14b993[_0x1faefc(0x182)]!==undefined)_0x2b7074['result']=_0x14b993[_0x1faefc(0x182)];if(_0x14b993[_0x1faefc(0x173)]!==undefined)_0x2b7074[_0x1faefc(0x173)]=_0x14b993[_0x1faefc(0x173)];if(_0x14b993[_0x1faefc(0x17c)]!==undefined)_0x2b7074[_0x1faefc(0x17c)]=_0x14b993['progress'];this[_0x1faefc(0x19a)]?.[_0x1faefc(0x18e)](_0x1faefc(0x159)+_0x43bbfd,{'previousStatus':_0x14a985,'newStatus':_0x5cf7eb,'hasResult':!!_0x14b993[_0x1faefc(0x182)],'hasError':!!_0x14b993['error'],'progress':_0x14b993['progress']});switch(_0x5cf7eb){case TOOL_STATUS['COMPLETED']:this['emit']('operation:completed',_0x2b7074);break;case TOOL_STATUS[_0x1faefc(0x169)]:this['emit'](_0x1faefc(0x1a2),_0x2b7074);break;case TOOL_STATUS[_0x1faefc(0x19b)]:this[_0x1faefc(0x183)](_0x1faefc(0x18b),_0x2b7074);break;}return!![];}['getOperation'](_0x351c74){const _0x2e2de1=a0_0xb5c8,_0x35b4ae=this[_0x2e2de1(0x198)][_0x2e2de1(0x157)](_0x351c74);if(!_0x35b4ae)return null;return{'id':_0x35b4ae['id'],'toolId':_0x35b4ae['toolId'],'agentId':_0x35b4ae['agentId'],'status':_0x35b4ae['status'],'createdAt':_0x35b4ae[_0x2e2de1(0x17b)],'startedAt':_0x35b4ae[_0x2e2de1(0x15c)],'completedAt':_0x35b4ae[_0x2e2de1(0x16a)],'result':_0x35b4ae['result'],'error':_0x35b4ae['error'],'progress':_0x35b4ae[_0x2e2de1(0x17c)],'retryCount':_0x35b4ae[_0x2e2de1(0x19d)],'executionTime':this[_0x2e2de1(0x1b0)](_0x35b4ae)};}[a0_0x4ea30c(0x176)](_0x536392){const _0x3e26d3=a0_0x4ea30c,_0x4be39d=[];for(const _0x3dad2c of this['operations']['values']()){_0x3dad2c['agentId']===_0x536392&&_0x4be39d[_0x3e26d3(0x1a9)](this[_0x3e26d3(0x17d)](_0x3dad2c['id']));}return _0x4be39d[_0x3e26d3(0x174)]((_0x42aa76,_0xcaadf4)=>new Date(_0xcaadf4['createdAt'])-new Date(_0x42aa76[_0x3e26d3(0x17b)]));}async[a0_0x4ea30c(0x187)](_0x48fe84,_0x329141='Operation\x20cancelled'){const _0x396bf2=a0_0x4ea30c,_0x21bfcc=this[_0x396bf2(0x198)][_0x396bf2(0x157)](_0x48fe84);if(!_0x21bfcc)return![];if(_0x21bfcc['status']===TOOL_STATUS['COMPLETED']||_0x21bfcc['status']===TOOL_STATUS[_0x396bf2(0x169)])return this['logger']?.['warn'](_0x396bf2(0x1ae)+_0x48fe84),![];return this['updateOperation'](_0x48fe84,TOOL_STATUS[_0x396bf2(0x15f)],{'error':_0x329141}),this['clearOperationTimeout'](_0x48fe84),this['emit'](_0x396bf2(0x16c),_0x21bfcc),await this[_0x396bf2(0x184)](_0x48fe84),this['logger']?.[_0x396bf2(0x1a6)]('Operation\x20cancelled:\x20'+_0x48fe84,{'reason':_0x329141}),!![];}async[a0_0x4ea30c(0x1ab)](_0x42db97){const _0x5f012e=a0_0x4ea30c,_0x8ad3e1=this['operations']['get'](_0x42db97);if(!_0x8ad3e1)return![];if(_0x8ad3e1['status']!==TOOL_STATUS[_0x5f012e(0x169)])return this[_0x5f012e(0x19a)]?.[_0x5f012e(0x167)]('Cannot\x20retry\x20non-failed\x20operation:\x20'+_0x42db97),![];if(_0x8ad3e1[_0x5f012e(0x19d)]>=_0x8ad3e1[_0x5f012e(0x194)])return this['logger']?.[_0x5f012e(0x167)]('Maximum\x20retries\x20exceeded\x20for\x20operation:\x20'+_0x42db97),![];return _0x8ad3e1[_0x5f012e(0x19d)]++,_0x8ad3e1['status']=TOOL_STATUS['PENDING'],_0x8ad3e1['startedAt']=null,_0x8ad3e1[_0x5f012e(0x16a)]=null,_0x8ad3e1['error']=null,_0x8ad3e1[_0x5f012e(0x182)]=null,this['setOperationTimeout'](_0x42db97),this[_0x5f012e(0x19a)]?.['info']('Operation\x20retry\x20initiated:\x20'+_0x42db97,{'retryCount':_0x8ad3e1[_0x5f012e(0x19d)],'maxRetries':_0x8ad3e1['maxRetries']}),this[_0x5f012e(0x183)](_0x5f012e(0x15e),_0x8ad3e1),!![];}[a0_0x4ea30c(0x155)](){const _0xbd2b25=a0_0x4ea30c,_0x434028={'total':this['operations']['size'],'byStatus':{},'byTool':{},'byAgent':{},'averageExecutionTime':0x0,'oldestOperation':null,'newestOperation':null};let _0x1699e7=0x0,_0x3cf86e=0x0,_0x63d1d2=null,_0x355c7e=null;for(const _0x197048 of this[_0xbd2b25(0x198)]['values']()){_0x434028['byStatus'][_0x197048[_0xbd2b25(0x197)]]=(_0x434028['byStatus'][_0x197048[_0xbd2b25(0x197)]]||0x0)+0x1,_0x434028['byTool'][_0x197048['toolId']]=(_0x434028[_0xbd2b25(0x18c)][_0x197048['toolId']]||0x0)+0x1,_0x434028['byAgent'][_0x197048['agentId']]=(_0x434028['byAgent'][_0x197048[_0xbd2b25(0x19f)]]||0x0)+0x1;const _0x5c1ebe=this[_0xbd2b25(0x1b0)](_0x197048);_0x5c1ebe>0x0&&(_0x1699e7+=_0x5c1ebe,_0x3cf86e++);const _0x77f14b=new Date(_0x197048[_0xbd2b25(0x17b)])[_0xbd2b25(0x16e)]();(!_0x63d1d2||_0x77f14b<_0x63d1d2)&&(_0x63d1d2=_0x77f14b,_0x434028['oldestOperation']=_0x197048['id']),(!_0x355c7e||_0x77f14b>_0x355c7e)&&(_0x355c7e=_0x77f14b,_0x434028[_0xbd2b25(0x1b4)]=_0x197048['id']);}return _0x434028['averageExecutionTime']=_0x3cf86e>0x0?Math[_0xbd2b25(0x179)](_0x1699e7/_0x3cf86e):0x0,_0x434028;}async['cleanupCompletedOperations'](_0x5e89e1=0x36ee80){const _0x110180=a0_0x4ea30c,_0x51a705=Date[_0x110180(0x1a5)]()-_0x5e89e1,_0x35feb0=[];for(const _0x116675 of this[_0x110180(0x198)]['values']()){(_0x116675['status']===TOOL_STATUS[_0x110180(0x175)]||_0x116675[_0x110180(0x197)]===TOOL_STATUS['FAILED']||_0x116675['status']===TOOL_STATUS[_0x110180(0x15f)])&&new Date(_0x116675['completedAt'])[_0x110180(0x16e)]()<_0x51a705&&_0x35feb0[_0x110180(0x1a9)](_0x116675['id']);}for(const _0x243f96 of _0x35feb0){await this['cleanupOperation'](_0x243f96);}return this['logger']?.[_0x110180(0x18e)](_0x110180(0x196)+_0x35feb0[_0x110180(0x164)]+'\x20completed\x20operations'),_0x35feb0[_0x110180(0x164)];}[a0_0x4ea30c(0x199)](){const _0x322cbb=a0_0x4ea30c;this[_0x322cbb(0x192)]&&clearInterval(this['monitoringInterval']),this['monitoringInterval']=setInterval(()=>{const _0x254fd7=_0x322cbb;this['checkOperationTimeouts'](),this[_0x254fd7(0x190)]();},this[_0x322cbb(0x177)]),this[_0x322cbb(0x19a)]?.[_0x322cbb(0x1a6)]('Async\x20tool\x20manager\x20monitoring\x20started');}['stopMonitoring'](){const _0x368649=a0_0x4ea30c;this['monitoringInterval']&&(clearInterval(this[_0x368649(0x192)]),this['monitoringInterval']=null),this[_0x368649(0x19a)]?.[_0x368649(0x1a6)](_0x368649(0x180));}[a0_0x4ea30c(0x1a4)](){const _0x5d0d3c=a0_0x4ea30c,_0x49231a=Date[_0x5d0d3c(0x1a5)]();for(const _0x1924ee of this['operations'][_0x5d0d3c(0x19e)]()){if(_0x1924ee[_0x5d0d3c(0x197)]===TOOL_STATUS['EXECUTING']||_0x1924ee[_0x5d0d3c(0x197)]===TOOL_STATUS['PENDING']){const _0x2e32e8=new Date(_0x1924ee[_0x5d0d3c(0x17b)])['getTime']();_0x49231a-_0x2e32e8>_0x1924ee[_0x5d0d3c(0x170)]&&this['handleOperationTimeout'](_0x1924ee);}}}[a0_0x4ea30c(0x168)](_0x4117b8){const _0x350185=a0_0x4ea30c,_0x3fd31c=this['operations'][_0x350185(0x157)](_0x4117b8);if(!_0x3fd31c)return;_0x3fd31c[_0x350185(0x154)]=setTimeout(()=>{this['handleOperationTimeout'](_0x3fd31c);},_0x3fd31c['timeout']);}['clearOperationTimeout'](_0x4bbc3e){const _0x576918=a0_0x4ea30c,_0x4344ed=this[_0x576918(0x198)]['get'](_0x4bbc3e);_0x4344ed&&_0x4344ed[_0x576918(0x154)]&&(clearTimeout(_0x4344ed['timeoutHandle']),delete _0x4344ed[_0x576918(0x154)]);}[a0_0x4ea30c(0x186)](){const _0x4011fb=a0_0x4ea30c,_0x228fa9=Date[_0x4011fb(0x1a5)]()['toString'](0x24),_0x141876=Math[_0x4011fb(0x1a0)]()[_0x4011fb(0x16f)](0x24)['substr'](0x2,0x9);return _0x4011fb(0x156)+_0x228fa9+'-'+_0x141876;}[a0_0x4ea30c(0x1b0)](_0x483203){const _0x6f35ca=a0_0x4ea30c;if(!_0x483203['startedAt'])return 0x0;const _0x204c5b=_0x483203['completedAt']?new Date(_0x483203[_0x6f35ca(0x16a)])[_0x6f35ca(0x16e)]():Date['now']();return _0x204c5b-new Date(_0x483203['startedAt'])['getTime']();}async['cleanupOperation'](_0x307cdc){const _0x453ed6=a0_0x4ea30c,_0xb49897=this[_0x453ed6(0x198)]['get'](_0x307cdc);if(!_0xb49897)return;this['clearOperationTimeout'](_0x307cdc),this['operationHistory'][_0x453ed6(0x1a9)]({..._0xb49897,'executionTime':this['calculateExecutionTime'](_0xb49897),'cleanedUpAt':new Date()['toISOString']()}),this[_0x453ed6(0x16d)][_0x453ed6(0x164)]>this['maxHistorySize']&&(this[_0x453ed6(0x16d)]=this['operationHistory']['slice'](-this['maxHistorySize'])),this[_0x453ed6(0x198)]['delete'](_0x307cdc),this[_0x453ed6(0x183)](_0x453ed6(0x153),{'operationId':_0x307cdc,'toolId':_0xb49897[_0x453ed6(0x162)]});}[a0_0x4ea30c(0x1af)](_0x1a7035){const _0x2d7596=a0_0x4ea30c;this[_0x2d7596(0x19a)]?.['debug'](_0x2d7596(0x19c)+_0x1a7035['id'],{'toolId':_0x1a7035['toolId'],'agentId':_0x1a7035['agentId']});}async[a0_0x4ea30c(0x15a)](_0x3d064d){const _0x5b221d=a0_0x4ea30c;this['logger']?.['info'](_0x5b221d(0x150)+_0x3d064d['id'],{'toolId':_0x3d064d[_0x5b221d(0x162)],'agentId':_0x3d064d[_0x5b221d(0x19f)],'executionTime':this['calculateExecutionTime'](_0x3d064d)}),setTimeout(()=>this['cleanupOperation'](_0x3d064d['id']),0x7530);}async['handleOperationFailed'](_0x48fd59){const _0x4b90dc=a0_0x4ea30c;this['logger']?.['error'](_0x4b90dc(0x1a8)+_0x48fd59['id'],{'toolId':_0x48fd59['toolId'],'agentId':_0x48fd59[_0x4b90dc(0x19f)],'error':_0x48fd59[_0x4b90dc(0x173)],'executionTime':this['calculateExecutionTime'](_0x48fd59),'retryCount':_0x48fd59['retryCount']}),_0x48fd59['retryCount']<_0x48fd59[_0x4b90dc(0x194)]?setTimeout(()=>this['retryOperation'](_0x48fd59['id']),0x1388):setTimeout(()=>this['cleanupOperation'](_0x48fd59['id']),0xea60);}async[a0_0x4ea30c(0x195)](_0x4cb42f){const _0x5f311a=a0_0x4ea30c;this['logger']?.['warn']('Operation\x20timed\x20out:\x20'+_0x4cb42f['id'],{'toolId':_0x4cb42f['toolId'],'agentId':_0x4cb42f[_0x5f311a(0x19f)],'timeout':_0x4cb42f['timeout'],'executionTime':this['calculateExecutionTime'](_0x4cb42f)}),this[_0x5f311a(0x185)](_0x4cb42f['id'],TOOL_STATUS[_0x5f311a(0x188)],{'error':_0x5f311a(0x15d)+_0x4cb42f[_0x5f311a(0x170)]+'ms'}),this[_0x5f311a(0x183)]('operation:timeout',_0x4cb42f),setTimeout(()=>this['cleanupOperation'](_0x4cb42f['id']),0x7530);}async[a0_0x4ea30c(0x161)](){const _0x53468a=a0_0x4ea30c;this['isShuttingDown']=!![],this[_0x53468a(0x19a)]?.['info']('Shutting down async tool manager...'),this[_0x53468a(0x18f)]();const _0x2d6cc6=[];for(const _0x350880 of this[_0x53468a(0x198)]['values']()){(_0x350880['status']===TOOL_STATUS[_0x53468a(0x1b1)]||_0x350880['status']===TOOL_STATUS[_0x53468a(0x19b)])&&_0x2d6cc6['push'](_0x350880['id']);}for(const _0x20d558 of _0x2d6cc6){await this['cancelOperation'](_0x20d558,_0x53468a(0x1a1));}this['operations']['clear'](),this[_0x53468a(0x19a)]?.['info']('Async\x20tool\x20manager\x20shutdown\x20complete.\x20Cancelled\x20'+_0x2d6cc6['length']+_0x53468a(0x1b3));}['getOperationHistory'](_0x439d85={}){const _0x1170b3=a0_0x4ea30c;let _0x15e114=[...this['operationHistory']];return _0x439d85[_0x1170b3(0x19f)]&&(_0x15e114=_0x15e114['filter'](_0x4ca6ea=>_0x4ca6ea['agentId']===_0x439d85[_0x1170b3(0x19f)])),_0x439d85['toolId']&&(_0x15e114=_0x15e114[_0x1170b3(0x17e)](_0x5f0192=>_0x5f0192['toolId']===_0x439d85[_0x1170b3(0x162)])),_0x439d85['status']&&(_0x15e114=_0x15e114['filter'](_0x4c7d68=>_0x4c7d68[_0x1170b3(0x197)]===_0x439d85['status'])),_0x439d85[_0x1170b3(0x1ac)]&&(_0x15e114=_0x15e114['slice'](-_0x439d85[_0x1170b3(0x1ac)])),_0x15e114[_0x1170b3(0x174)]((_0x5a35cc,_0x360a13)=>new Date(_0x360a13['createdAt'])-new Date(_0x5a35cc['createdAt']));}}export default AsyncToolManager;function a0_0x2dc0(){const _0x1603e0=['mZiZnZKXChLIv0DQ','q2fUBM90ignHBMnLBcbJB21WBgv0zwqVzMfPBgvKig9WzxjHDgLVBJOG','AgfUzgXLt3bLCMf0Aw9Uu3rHCNrLza','y2fSy3vSyxrLrxHLy3v0Aw9UvgLTzq','uevoreLorW','mtv5Def6C3G','ig9WzxjHDgLVBNmU','BMv3zxn0t3bLCMf0Aw9U','t3bLCMf0Aw9UignVBxbSzxrLzdOG','mtqXntu3vfbvrwTM','m0j6vhb0tq','B3bLCMf0Aw9UoMnSzwfUDxa','DgLTzw91DeHHBMrSzq','z2v0u3rHDgLZDgLJCW','B3aT','z2v0','mJe2BgnXv2jx','t3bLCMf0Aw9Uihn0yxr1CYb1CgrHDgvKoIa','AgfUzgXLt3bLCMf0Aw9Uq29TCgXLDgvK','C2L6zq','C3rHCNrLzef0','t3bLCMf0Aw9UihrPBwvKig91DcbHzNrLCIa','B3bLCMf0Aw9UoNjLDhj5','q0foq0vmteve','yMLUza','C2H1DgrVD24','Dg9VBeLK','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','BgvUz3rO','n015vu9XEG','nta1ndK0CuHSExPT','D2fYBG','C2v0t3bLCMf0Aw9UvgLTzw91Da','rKfjteve','y29TCgXLDgvKqxq','twf4Aw11BsbJB25JDxjYzw50ig9WzxjHDgLVBNmGCMvHy2HLzcaO','B3bLCMf0Aw9UoMnHBMnLBgXLza','B3bLCMf0Aw9UsgLZDg9YEq','z2v0vgLTzq','Dg9tDhjPBMC','DgLTzw91Da','Dg9ju09tDhjPBMC','Bwf4sgLZDg9YEvnPEMu','zxjYB3i','C29YDa','q09nueXfveve','z2v0qwDLBNrpCgvYyxrPB25Z','y2XLyw51CeLUDgvYDMfS','ody4mZzpq29rvgm','CM91BMq','qxr0zw1WDgvKihrVihvWzgf0zsb1BMTUB3DUig9WzxjHDgLVBJOG','y3jLyxrLzef0','ChjVz3jLC3m','z2v0t3bLCMf0Aw9U','zMLSDgvY','AxntAhv0DgLUz0rVD24','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rVChbLza','zgvMyxvSDfrPBwvVDxq','CMvZDwX0','zw1PDa','y2XLyw51Ce9WzxjHDgLVBG','DxbKyxrLt3bLCMf0Aw9U','z2vUzxjHDgvpCgvYyxrPB25jza','y2fUy2vSt3bLCMf0Aw9U','veLnru9vva','y29UzMLN','mJaZmZjrCxjOA2W','B3bLCMf0Aw9UoNbYB2DYzxnZ','yNLuB29S','nJbAzefKvuK','zgvIDwC','C3rVCe1VBML0B3jPBMC','y2XLyw51CenVBxbSzxrLze9WzxjHDgLVBNm','mti1ndC4AKT3vMnx','Bw9UAxrVCMLUz0LUDgvYDMfS','mJuYmJe4ngXds2HsBW','Bwf4uMv0CMLLCW','AgfUzgXLt3bLCMf0Aw9UvgLTzw91Da','q2XLyw5Lzcb1Cca','C3rHDhvZ','B3bLCMf0Aw9UCW','C3rHCNrnB25PDg9YAw5N','Bg9Nz2vY','rvHfq1vusu5h','t3bLCMf0Aw9Uihn0yxj0zwq6ia','CMv0CNLdB3vUDa','DMfSDwvZ','ywDLBNrjza','CMfUzg9T','u3LZDgvTihnODxrKB3DU','B3bLCMf0Aw9UoMzHAwXLza','B3bLCMf0Aw9UoNn0yxj0zwq','y2HLy2TpCgvYyxrPB25uAw1LB3v0CW','BM93','Aw5MBW','qxn5BMmGB3bLCMf0Aw9Uihn0yxj0zwq6ia','t3bLCMf0Aw9UigzHAwXLzdOG','ChvZAa','mti4rxnHu1vr','CMv0CNLpCgvYyxrPB24','BgLTAxq'];a0_0x2dc0=function(){return _0x1603e0;};return a0_0x2dc0();}
1
+ function a0_0x3395(){const _0x3d74a1=['C29YDa','AgfUzgXLt3bLCMf0Aw9Uq29TCgXLDgvK','y2fSy3vSyxrLrxHLy3v0Aw9UvgLTzq','ChvZAa','B3bLCMf0Aw9UoMnSzwfUDxa','zxjYB3i','nteXntKWwhLsBhvl','B3bLCMf0Aw9UsgLZDg9YEq','ywDLBNrjza','AxntAhv0DgLUz0rVD24','C2v0t3bLCMf0Aw9UvgLTzw91Da','yMLUza','y2XLyxi','mZm5nZrSuNPxtfi','AgfUzgXLt3bLCMf0Aw9UvgLTzw91Da','mte5mJG3mK1bvKrgAa','q09nueXfveve','y2fUy2vSt3bLCMf0Aw9U','y2XLyw51CeLUDgvYDMfS','Dg9VBeLK','A2v5CW','u3LZDgvTihnODxrKB3DU','z2v0vgLTzq','twf4Aw11BsbJB25JDxjYzw50ig9WzxjHDgLVBNmGCMvHy2HLzcaO','AgfUzgXLt3bLCMf0Aw9UrMfPBgvK','BgvUz3rO','C3vIC3rY','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rHCNrLza','BM93','q2XLyw5Lzcb1Cca','C2L6zq','Bwf4sgLZDg9YEvnPEMu','B3aT','y29TCgXLDgvKqxq','z2vUzxjHDgvpCgvYyxrPB25jza','DMfSDwvZ','C3rHCNrLzef0','mtiYodGZBwz2BLjR','qxn5BMmGB3bLCMf0Aw9Uihn0yxj0zwq6ia','C3rHCNrnB25PDg9YAw5N','yNLuB29S','t3bLCMf0Aw9UignHBMnLBgXLzdOG','CMvZDwX0','C3rHDhvZ','B3bLCMf0Aw9UoNn0yxj0zwq','z2v0','y3jLyxrLzef0','C2XPy2u','odb1BLzyqLq','B3bLCMf0Aw9UoNjLDhj5','uevoreLorW','B3bLCMf0Aw9UoMnVBxbSzxrLza','Bg9Nz2vY','Dg9ju09tDhjPBMC','DxbKyxrLt3bLCMf0Aw9U','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','zgvMyxvSDfrPBwvVDxq','B3bLCMf0Aw9UoMnHBMnLBgXLza','q0foq0vmteve','CMv0CNLdB3vUDa','ChjVz3jLC3m','odeYmtGWAuLgDKDV','yNLbz2vUDa','rvHfq1vusu5h','y2XLyxjpCgvYyxrPB25uAw1LB3v0','rKfjteve','y2XLyw51Ce9WzxjHDgLVBG','C3rVCe1VBML0B3jPBMC','CMv0CNLpCgvYyxrPB24','Bwf4uMv0CMLLCW','ntKZmtz6u0T0CMq','zw1PDa','C2v0','B3bLCMf0Aw9UCW','ovzkuMHeqG','t3bLCMf0Aw9UignHBMnLBgXLza','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rVChbLza','nNbxyvrcza','Bw9UAxrVCMLUz0LUDgvYDMfS','zgvIDwC','otiWmZe4quftr1Do','ig9WzxjHDgLVBNmU','yNLtDgf0Dxm','Dg9tDhjPBMC','DgLTzw91DeHHBMrSzq','CMfUzg9T','zMLSDgvY','D2fYBG'];a0_0x3395=function(){return _0x3d74a1;};return a0_0x3395();}function a0_0x1d55(_0x5af221,_0x425639){_0x5af221=_0x5af221-0xfd;const _0x339533=a0_0x3395();let _0x1d55fa=_0x339533[_0x5af221];if(a0_0x1d55['eLntLA']===undefined){var _0x3b95f5=function(_0x5903d7){const _0xa667db='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5870cd='',_0x448e29='';for(let _0x126b9d=0x0,_0x4a56a1,_0x50a222,_0x5a7b49=0x0;_0x50a222=_0x5903d7['charAt'](_0x5a7b49++);~_0x50a222&&(_0x4a56a1=_0x126b9d%0x4?_0x4a56a1*0x40+_0x50a222:_0x50a222,_0x126b9d++%0x4)?_0x5870cd+=String['fromCharCode'](0xff&_0x4a56a1>>(-0x2*_0x126b9d&0x6)):0x0){_0x50a222=_0xa667db['indexOf'](_0x50a222);}for(let _0x194742=0x0,_0x588ea7=_0x5870cd['length'];_0x194742<_0x588ea7;_0x194742++){_0x448e29+='%'+('00'+_0x5870cd['charCodeAt'](_0x194742)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x448e29);};a0_0x1d55['XQjKqS']=_0x3b95f5,a0_0x1d55['rYcDzU']={},a0_0x1d55['eLntLA']=!![];}const _0x19723b=_0x339533[0x0],_0x329cbb=_0x5af221+_0x19723b,_0x168e1d=a0_0x1d55['rYcDzU'][_0x329cbb];return!_0x168e1d?(_0x1d55fa=a0_0x1d55['XQjKqS'](_0x1d55fa),a0_0x1d55['rYcDzU'][_0x329cbb]=_0x1d55fa):_0x1d55fa=_0x168e1d,_0x1d55fa;}const a0_0x547a88=a0_0x1d55;(function(_0x3b95b5,_0x1c1bd8){const _0x16dfcb=a0_0x1d55,_0x3edb75=_0x3b95b5();while(!![]){try{const _0x2225c0=-parseInt(_0x16dfcb(0x146))/0x1*(-parseInt(_0x16dfcb(0x12e))/0x2)+parseInt(_0x16dfcb(0x106))/0x3+parseInt(_0x16dfcb(0x11e))/0x4+-parseInt(_0x16dfcb(0x111))/0x5*(parseInt(_0x16dfcb(0x127))/0x6)+parseInt(_0x16dfcb(0x131))/0x7+-parseInt(_0x16dfcb(0x148))/0x8+parseInt(_0x16dfcb(0x12b))/0x9*(-parseInt(_0x16dfcb(0x13f))/0xa);if(_0x2225c0===_0x1c1bd8)break;else _0x3edb75['push'](_0x3edb75['shift']());}catch(_0x126779){_0x3edb75['push'](_0x3edb75['shift']());}}}(a0_0x3395,0x1d0ae));import a0_0x5870cd from'events';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AsyncToolManager extends a0_0x5870cd{constructor(_0x448e29={},_0x126b9d=null){const _0x18b581=a0_0x1d55;super(),this['config']=_0x448e29,this['logger']=_0x126b9d,this['operations']=new Map(),this[_0x18b581(0x140)]=[],this['maxConcurrentOperations']=_0x448e29[_0x18b581(0x118)]||0xa,this['defaultTimeout']=_0x448e29['defaultTimeout']||0x493e0,this['cleanupInterval']=_0x448e29[_0x18b581(0x14b)]||0xea60,this[_0x18b581(0x100)]=_0x448e29['maxHistorySize']||0x3e8,this['monitoringInterval']=null,this['isShuttingDown']=![],this[_0x18b581(0x108)](),this['on'](_0x18b581(0x10d),this['handleOperationStarted']['bind'](this)),this['on'](_0x18b581(0x114),this[_0x18b581(0x13a)][_0x18b581(0x144)](this)),this['on']('operation:failed',this['handleOperationFailed']['bind'](this)),this['on']('operation:timeout',this['handleOperationTimeout'][_0x18b581(0x144)](this));}async['startOperation'](_0x4a56a1,_0x50a222,_0x5a7b49,_0x194742={}){const _0x3cb22c=a0_0x1d55;if(this[_0x3cb22c(0x12a)]['size']>=this[_0x3cb22c(0x118)])throw new Error(_0x3cb22c(0x150)+this['maxConcurrentOperations']+')');const _0x588ea7=this[_0x3cb22c(0x103)](),_0x257ba4={'id':_0x588ea7,'toolId':_0x4a56a1,'agentId':_0x50a222,'parameters':_0x5a7b49,'context':_0x194742,'status':TOOL_STATUS[_0x3cb22c(0x113)],'createdAt':new Date()[_0x3cb22c(0x116)](),'startedAt':null,'completedAt':null,'timeout':_0x194742['timeout']||this[_0x3cb22c(0x119)],'result':null,'error':null,'progress':null,'retryCount':0x0,'maxRetries':_0x194742[_0x3cb22c(0x126)]||0x0};return this[_0x3cb22c(0x12a)][_0x3cb22c(0x129)](_0x588ea7,_0x257ba4),this['logger']?.['info'](_0x3cb22c(0x107)+_0x588ea7,{'toolId':_0x4a56a1,'agentId':_0x50a222,'parametersCount':Object[_0x3cb22c(0x14d)](_0x5a7b49)[_0x3cb22c(0x152)],'timeout':_0x257ba4['timeout']}),this[_0x3cb22c(0x143)](_0x588ea7),this['emit']('operation:started',_0x257ba4),_0x588ea7;}['updateOperation'](_0x232860,_0x30a4f2,_0x2d6b30={}){const _0x1b6ecd=a0_0x1d55,_0x1bd763=this[_0x1b6ecd(0x12a)][_0x1b6ecd(0x10e)](_0x232860);if(!_0x1bd763)return this['logger']?.[_0x1b6ecd(0x138)]('Attempted\x20to\x20update\x20unknown\x20operation:\x20'+_0x232860),![];const _0x1c238f=_0x1bd763['status'];_0x1bd763['status']=_0x30a4f2;_0x30a4f2===TOOL_STATUS['EXECUTING']&&!_0x1bd763[_0x1b6ecd(0x105)]&&(_0x1bd763['startedAt']=new Date()['toISOString']());(_0x30a4f2===TOOL_STATUS[_0x1b6ecd(0x149)]||_0x30a4f2===TOOL_STATUS['FAILED'])&&(_0x1bd763[_0x1b6ecd(0x102)]=new Date()['toISOString']());if(_0x2d6b30['result']!==undefined)_0x1bd763['result']=_0x2d6b30['result'];if(_0x2d6b30[_0x1b6ecd(0x13e)]!==undefined)_0x1bd763[_0x1b6ecd(0x13e)]=_0x2d6b30['error'];if(_0x2d6b30['progress']!==undefined)_0x1bd763['progress']=_0x2d6b30['progress'];this[_0x1b6ecd(0x115)]?.[_0x1b6ecd(0x130)]('Operation\x20status\x20updated:\x20'+_0x232860,{'previousStatus':_0x1c238f,'newStatus':_0x30a4f2,'hasResult':!!_0x2d6b30[_0x1b6ecd(0x10b)],'hasError':!!_0x2d6b30['error'],'progress':_0x2d6b30['progress']});switch(_0x30a4f2){case TOOL_STATUS['COMPLETED']:this[_0x1b6ecd(0x128)]('operation:completed',_0x1bd763);break;case TOOL_STATUS['FAILED']:this['emit']('operation:failed',_0x1bd763);break;case TOOL_STATUS['EXECUTING']:this[_0x1b6ecd(0x128)]('operation:progress',_0x1bd763);break;}return!![];}['getOperation'](_0x5b4a37){const _0x28e7af=a0_0x1d55,_0x589d1d=this[_0x28e7af(0x12a)][_0x28e7af(0x10e)](_0x5b4a37);if(!_0x589d1d)return null;return{'id':_0x589d1d['id'],'toolId':_0x589d1d[_0x28e7af(0x14c)],'agentId':_0x589d1d['agentId'],'status':_0x589d1d[_0x28e7af(0x10c)],'createdAt':_0x589d1d['createdAt'],'startedAt':_0x589d1d[_0x28e7af(0x105)],'completedAt':_0x589d1d['completedAt'],'result':_0x589d1d[_0x28e7af(0x10b)],'error':_0x589d1d['error'],'progress':_0x589d1d[_0x28e7af(0x11d)],'retryCount':_0x589d1d['retryCount'],'executionTime':this[_0x28e7af(0x13b)](_0x589d1d)};}['getAgentOperations'](_0x5a62d3){const _0x16f949=a0_0x1d55,_0x163860=[];for(const _0x104a47 of this['operations']['values']()){_0x104a47['agentId']===_0x5a62d3&&_0x163860[_0x16f949(0x13c)](this['getOperation'](_0x104a47['id']));}return _0x163860['sort']((_0x5a0b2b,_0x383e4c)=>new Date(_0x383e4c[_0x16f949(0x10f)])-new Date(_0x5a0b2b['createdAt']));}async[a0_0x547a88(0x14a)](_0x55bd6b,_0x7624b9=a0_0x547a88(0x12c)){const _0x1ffaee=a0_0x547a88,_0x84a529=this[_0x1ffaee(0x12a)]['get'](_0x55bd6b);if(!_0x84a529)return![];if(_0x84a529['status']===TOOL_STATUS[_0x1ffaee(0x149)]||_0x84a529['status']===TOOL_STATUS['FAILED'])return this['logger']?.[_0x1ffaee(0x138)]('Cannot\x20cancel\x20completed/failed\x20operation:\x20'+_0x55bd6b),![];return this[_0x1ffaee(0x117)](_0x55bd6b,TOOL_STATUS[_0x1ffaee(0x11b)],{'error':_0x7624b9}),this['clearOperationTimeout'](_0x55bd6b),this[_0x1ffaee(0x128)](_0x1ffaee(0x11a),_0x84a529),await this[_0x1ffaee(0x123)](_0x55bd6b),this['logger']?.['info'](_0x1ffaee(0x10a)+_0x55bd6b,{'reason':_0x7624b9}),!![];}async[a0_0x547a88(0x125)](_0x1af98c){const _0x4a7d4d=a0_0x547a88,_0x1dd5f3=this[_0x4a7d4d(0x12a)]['get'](_0x1af98c);if(!_0x1dd5f3)return![];if(_0x1dd5f3[_0x4a7d4d(0x10c)]!==TOOL_STATUS['FAILED'])return this['logger']?.['warn']('Cannot\x20retry\x20non-failed\x20operation:\x20'+_0x1af98c),![];if(_0x1dd5f3['retryCount']>=_0x1dd5f3[_0x4a7d4d(0x126)])return this[_0x4a7d4d(0x115)]?.[_0x4a7d4d(0x138)]('Maximum\x20retries\x20exceeded\x20for\x20operation:\x20'+_0x1af98c),![];return _0x1dd5f3['retryCount']++,_0x1dd5f3[_0x4a7d4d(0x10c)]=TOOL_STATUS['PENDING'],_0x1dd5f3[_0x4a7d4d(0x105)]=null,_0x1dd5f3['completedAt']=null,_0x1dd5f3[_0x4a7d4d(0x13e)]=null,_0x1dd5f3['result']=null,this['setOperationTimeout'](_0x1af98c),this['logger']?.['info']('Operation\x20retry\x20initiated:\x20'+_0x1af98c,{'retryCount':_0x1dd5f3[_0x4a7d4d(0x11c)],'maxRetries':_0x1dd5f3[_0x4a7d4d(0x126)]}),this['emit'](_0x4a7d4d(0x112),_0x1dd5f3),!![];}['getStatistics'](){const _0x3949bd=a0_0x547a88,_0x30af17={'total':this[_0x3949bd(0x12a)][_0x3949bd(0xff)],'byStatus':{},'byTool':{},'byAgent':{},'averageExecutionTime':0x0,'oldestOperation':null,'newestOperation':null};let _0xe77df7=0x0,_0xf6e795=0x0,_0x48b9b5=null,_0x469383=null;for(const _0x1c81af of this['operations']['values']()){_0x30af17[_0x3949bd(0x133)][_0x1c81af[_0x3949bd(0x10c)]]=(_0x30af17[_0x3949bd(0x133)][_0x1c81af[_0x3949bd(0x10c)]]||0x0)+0x1,_0x30af17[_0x3949bd(0x109)][_0x1c81af[_0x3949bd(0x14c)]]=(_0x30af17['byTool'][_0x1c81af['toolId']]||0x0)+0x1,_0x30af17[_0x3949bd(0x11f)][_0x1c81af[_0x3949bd(0x141)]]=(_0x30af17[_0x3949bd(0x11f)][_0x1c81af[_0x3949bd(0x141)]]||0x0)+0x1;const _0x49c2af=this[_0x3949bd(0x13b)](_0x1c81af);_0x49c2af>0x0&&(_0xe77df7+=_0x49c2af,_0xf6e795++);const _0x44848c=new Date(_0x1c81af['createdAt'])['getTime']();(!_0x48b9b5||_0x44848c<_0x48b9b5)&&(_0x48b9b5=_0x44848c,_0x30af17['oldestOperation']=_0x1c81af['id']),(!_0x469383||_0x44848c>_0x469383)&&(_0x469383=_0x44848c,_0x30af17['newestOperation']=_0x1c81af['id']);}return _0x30af17['averageExecutionTime']=_0xf6e795>0x0?Math['round'](_0xe77df7/_0xf6e795):0x0,_0x30af17;}async['cleanupCompletedOperations'](_0x2adad0=0x36ee80){const _0x41884f=a0_0x547a88,_0x46345d=Date[_0x41884f(0xfd)]()-_0x2adad0,_0xcaa032=[];for(const _0x2de151 of this['operations'][_0x41884f(0x104)]()){(_0x2de151[_0x41884f(0x10c)]===TOOL_STATUS['COMPLETED']||_0x2de151['status']===TOOL_STATUS[_0x41884f(0x122)]||_0x2de151['status']===TOOL_STATUS[_0x41884f(0x11b)])&&new Date(_0x2de151['completedAt'])['getTime']()<_0x46345d&&_0xcaa032['push'](_0x2de151['id']);}for(const _0x5bfb6d of _0xcaa032){await this['cleanupOperation'](_0x5bfb6d);}return this['logger']?.['debug'](_0x41884f(0xfe)+_0xcaa032['length']+'\x20completed\x20operations'),_0xcaa032['length'];}[a0_0x547a88(0x108)](){const _0x49af15=a0_0x547a88;this['monitoringInterval']&&clearInterval(this['monitoringInterval']),this[_0x49af15(0x12f)]=setInterval(()=>{this['checkOperationTimeouts'](),this['cleanupCompletedOperations']();},this['cleanupInterval']),this['logger']?.['info'](_0x49af15(0x154));}[a0_0x547a88(0x124)](){const _0x183611=a0_0x547a88;this[_0x183611(0x12f)]&&(clearInterval(this[_0x183611(0x12f)]),this[_0x183611(0x12f)]=null),this['logger']?.['info'](_0x183611(0x12d));}['checkOperationTimeouts'](){const _0x153af8=a0_0x547a88,_0xbce959=Date['now']();for(const _0x2a0fa9 of this[_0x153af8(0x12a)]['values']()){if(_0x2a0fa9['status']===TOOL_STATUS['EXECUTING']||_0x2a0fa9['status']===TOOL_STATUS[_0x153af8(0x113)]){const _0xf0fb03=new Date(_0x2a0fa9['createdAt'])['getTime']();_0xbce959-_0xf0fb03>_0x2a0fa9['timeout']&&this[_0x153af8(0x147)](_0x2a0fa9);}}}[a0_0x547a88(0x143)](_0x6f49c4){const _0x2ae4a4=a0_0x547a88,_0x54894e=this['operations']['get'](_0x6f49c4);if(!_0x54894e)return;_0x54894e[_0x2ae4a4(0x135)]=setTimeout(()=>{const _0x2fe92a=_0x2ae4a4;this[_0x2fe92a(0x147)](_0x54894e);},_0x54894e['timeout']);}[a0_0x547a88(0x121)](_0xb2644){const _0x354d7f=a0_0x547a88,_0x4d94e7=this['operations'][_0x354d7f(0x10e)](_0xb2644);_0x4d94e7&&_0x4d94e7[_0x354d7f(0x135)]&&(clearTimeout(_0x4d94e7['timeoutHandle']),delete _0x4d94e7['timeoutHandle']);}['generateOperationId'](){const _0x15a2de=a0_0x547a88,_0x146006=Date['now']()[_0x15a2de(0x134)](0x24),_0x21f283=Math[_0x15a2de(0x136)]()[_0x15a2de(0x134)](0x24)[_0x15a2de(0x153)](0x2,0x9);return _0x15a2de(0x101)+_0x146006+'-'+_0x21f283;}[a0_0x547a88(0x13b)](_0xbd716c){const _0x4a2af5=a0_0x547a88;if(!_0xbd716c['startedAt'])return 0x0;const _0x44ff4=_0xbd716c['completedAt']?new Date(_0xbd716c['completedAt'])[_0x4a2af5(0x14f)]():Date['now']();return _0x44ff4-new Date(_0xbd716c[_0x4a2af5(0x105)])['getTime']();}async['cleanupOperation'](_0xa97e11){const _0x25753e=a0_0x547a88,_0x2a0d0b=this['operations'][_0x25753e(0x10e)](_0xa97e11);if(!_0x2a0d0b)return;this['clearOperationTimeout'](_0xa97e11),this['operationHistory'][_0x25753e(0x13c)]({..._0x2a0d0b,'executionTime':this[_0x25753e(0x13b)](_0x2a0d0b),'cleanedUpAt':new Date()[_0x25753e(0x116)]()}),this[_0x25753e(0x140)][_0x25753e(0x152)]>this['maxHistorySize']&&(this[_0x25753e(0x140)]=this[_0x25753e(0x140)]['slice'](-this[_0x25753e(0x100)])),this['operations']['delete'](_0xa97e11),this[_0x25753e(0x128)](_0x25753e(0x13d),{'operationId':_0xa97e11,'toolId':_0x2a0d0b['toolId']});}['handleOperationStarted'](_0x5b3286){const _0x21852b=a0_0x547a88;this['logger']?.['debug']('Operation\x20started:\x20'+_0x5b3286['id'],{'toolId':_0x5b3286['toolId'],'agentId':_0x5b3286[_0x21852b(0x141)]});}async['handleOperationCompleted'](_0xe1b660){const _0x200500=a0_0x547a88;this[_0x200500(0x115)]?.['info']('Operation\x20completed:\x20'+_0xe1b660['id'],{'toolId':_0xe1b660[_0x200500(0x14c)],'agentId':_0xe1b660['agentId'],'executionTime':this[_0x200500(0x13b)](_0xe1b660)}),setTimeout(()=>this[_0x200500(0x123)](_0xe1b660['id']),0x7530);}async[a0_0x547a88(0x151)](_0x566018){const _0x35488f=a0_0x547a88;this['logger']?.[_0x35488f(0x13e)]('Operation\x20failed:\x20'+_0x566018['id'],{'toolId':_0x566018['toolId'],'agentId':_0x566018['agentId'],'error':_0x566018['error'],'executionTime':this['calculateExecutionTime'](_0x566018),'retryCount':_0x566018[_0x35488f(0x11c)]}),_0x566018[_0x35488f(0x11c)]<_0x566018[_0x35488f(0x126)]?setTimeout(()=>this[_0x35488f(0x125)](_0x566018['id']),0x1388):setTimeout(()=>this[_0x35488f(0x123)](_0x566018['id']),0xea60);}async[a0_0x547a88(0x147)](_0x4042dc){const _0x19de99=a0_0x547a88;this['logger']?.[_0x19de99(0x138)]('Operation\x20timed\x20out:\x20'+_0x4042dc['id'],{'toolId':_0x4042dc['toolId'],'agentId':_0x4042dc['agentId'],'timeout':_0x4042dc['timeout'],'executionTime':this['calculateExecutionTime'](_0x4042dc)}),this['updateOperation'](_0x4042dc['id'],TOOL_STATUS['TIMEOUT'],{'error':'Operation\x20timed\x20out\x20after\x20'+_0x4042dc['timeout']+'ms'}),this['emit']('operation:timeout',_0x4042dc),setTimeout(()=>this['cleanupOperation'](_0x4042dc['id']),0x7530);}async['shutdown'](){const _0x2d496b=a0_0x547a88;this[_0x2d496b(0x142)]=!![],this[_0x2d496b(0x115)]?.['info']('Shutting down async tool manager...'),this[_0x2d496b(0x124)]();const _0x2c42a9=[];for(const _0x1c084e of this['operations'][_0x2d496b(0x104)]()){(_0x1c084e[_0x2d496b(0x10c)]===TOOL_STATUS[_0x2d496b(0x113)]||_0x1c084e[_0x2d496b(0x10c)]===TOOL_STATUS[_0x2d496b(0x120)])&&_0x2c42a9['push'](_0x1c084e['id']);}for(const _0xc69bf7 of _0x2c42a9){await this[_0x2d496b(0x14a)](_0xc69bf7,_0x2d496b(0x14e));}this['operations'][_0x2d496b(0x145)](),this[_0x2d496b(0x115)]?.['info']('Async\x20tool\x20manager\x20shutdown\x20complete.\x20Cancelled\x20'+_0x2c42a9[_0x2d496b(0x152)]+_0x2d496b(0x132));}['getOperationHistory'](_0x23fa93={}){const _0x3a2ab3=a0_0x547a88;let _0x282e15=[...this['operationHistory']];return _0x23fa93[_0x3a2ab3(0x141)]&&(_0x282e15=_0x282e15[_0x3a2ab3(0x137)](_0x278d94=>_0x278d94[_0x3a2ab3(0x141)]===_0x23fa93['agentId'])),_0x23fa93['toolId']&&(_0x282e15=_0x282e15['filter'](_0x292990=>_0x292990[_0x3a2ab3(0x14c)]===_0x23fa93['toolId'])),_0x23fa93['status']&&(_0x282e15=_0x282e15[_0x3a2ab3(0x137)](_0x566688=>_0x566688[_0x3a2ab3(0x10c)]===_0x23fa93['status'])),_0x23fa93['limit']&&(_0x282e15=_0x282e15[_0x3a2ab3(0x110)](-_0x23fa93['limit'])),_0x282e15[_0x3a2ab3(0x139)]((_0x1d7131,_0x20749d)=>new Date(_0x20749d[_0x3a2ab3(0x10f)])-new Date(_0x1d7131['createdAt']));}}export default AsyncToolManager;
@@ -1 +1 @@
1
- function a0_0xcada(){const _0x2444dc=['CMvNAxn0zxjuB29S','C3bSAxq','BM93','DMfSAwrHDgvqyxjHBwv0zxjZ','zxHLy3v0Aw9UvgLTzq','vg9VBcbLEgvJDxrPB24GzMfPBgvKoIa','qwX3yxLZihDYyxaGsLnptIb0B29SignVBw1HBMrZigLUigbGygPZB24GlI4UigbGycbIBg9JA3mUcGO','BgvUz3rO','DhjPBq','ntCWz0zMvKfh','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','nZeZmdm3nwPQwKnLDa','cLvZzsbBDg9VBcbPzd0IDg9VBc1Uyw1LiL08CgfYyw1LDgvYCZ5Bl3rVB2XDig9YiePtt04GzM9YBwf0ihrVigLUDM9Rzsb0B29SCY4kcG','y2fSy3vSyxrLqxzLCMfNzuv4zwn1DgLVBLrPBwu','yxn5BMm','zxHLy3v0zvDPDgHuAw1LB3v0','Aw5MBW','zgLZywjSzq','vxrPBgL0Eq','CMvXDwLYzxnqCM9Qzwn0','DgLTzw91Da','iYmJia','AxnfBMfIBgvK','z2v0','icaICgfYyw1LDgvYCYi6ihSGlI4Uih0GB3iGiMfJDgLVBNmIoIbBic4UlIbDcG','DMfSDwvZ','CMvWBgfJzq','Dg9vChbLCKnHC2u','BwvZC2fNzq','phbHCMfTzxrLCNmGAgvYzt4k','Dg9mB3DLCKnHC2u','Bg9JywXLq29TCgfYzq','y29UC3rYDwn0B3i','BgLZDfrVB2XZ','ww91igHHDMuGywnJzxnZihrVihrOzsbMB2XSB3DPBMCGDg9VBhmGDg8GCgvYzM9YBsbVCgvYyxrPB25ZigfUzcb0yxnRCZOkcG','AM9PBG','x2DLDfrVB2XdyxrLz29YEq','icaIDg9VBeLKiJOGiNrVB2XUyw1LiIWk','DxnHz2vdB3vUDa','BMfTzq','y29UDgvUDa','ig1PC3nPBMCGCMvXDwLYzwqGBwv0Ag9KoIa','zxjYB3i','zMLUza','D2fYBG','zw5KC1DPDgG','CM91BMq','z2v0q2fWywjPBgL0AwvZ','vg9VBcbLBMfIBgvKoIa','Dg9VBa','nde3zgPttwXs','A2v5CW','mta2ruzOshfQ','z2v0vg9VBa','w3rVB2WGAwq9iNrVB2XUyw1LiL0k','zxHLy3v0zq','y2XLyw51CeHPC3rVCNK','ygbGcG','iYmJiezVCM1HDcaXoIbcCMfJA2v0ie5VDgf0Aw9UcG','ig11C3qGzxH0zw5KiejHC2vuB29S','rKfjteve','ugfYyw1LDgvYihzHBgLKyxrPB24GzMfPBgvKoIa','y2fSy3vSyxrLu3vJy2vZC1jHDgu','C2fUAxrPEMvdB250zxH0','vg9VBca','qxv0B21HDgLVBG','cGOTls0kcG','vg9VBcbLEgvJDxrPB24Gy29TCgXLDgvKoIa','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','iYmJiezVCM1HDcaZoIbytuWGrM9YBwf0cG','iYmGve9ptcbjtLzpq0fusu9oifnztLrbwaOk','C2L6zq','vg9VBcbPCYbKAxnHyMXLzdOG','z2v0uMvNAxn0CNLtDgf0CW','ChvZAa','z2v0u3rHDhvZ','nZG3mJqWBhLVqLfT','zw5KvgLTzq','vg9VBcbLEgvJDxrPB24GC3rHCNrLzdOG','mta4nLPpAKLPtq','C2v0','mJq4wgDswfrL','vg9VBcbKAxnHyMXLzdOG','q09nueXfveve','ig11C3qGAw1WBgvTzw50ihbHCNnLugfYyw1LDgvYCYGP','DMfSAwrHDgvqyxjHBwv0zxjuExbLCW','zw5Oyw5Jzvn5C3rLBvbYB21WDa','ndyZndrWue1qrMe','CgfZC3DVCMrZ','yxn5BMnpCgvYyxrPB25Z','z2v0ugfYyw1LDgvYu2nOzw1H','pc90B29SlwnVBw1HBMq+cG','qwz0zxiGAw52B2TPBMCGysb0B29SlcbxquLuigzVCIb0AguGywn0DwfSihjLC3bVBNnLlIbeBYbot1qGz2vUzxjHDguGAw1Hz2LUyxj5ihjLC3bVBNnLCY4k','B3bLCMf0Aw9UsgLZDg9YEq','zxHLy3v0zvDPDgHmAwzLy3LJBgu','y29UzMLN','C2vJCMv0CW','DMfSAwq','CMvZDwX0','ig11C3qGAw1WBgvTzw50igv4zwn1DguOkq','DMfSAwrHDgvuB29S','mtCYmZfTvevOt2e','Bg9Nz2vY','z2v0vgLTzq','lI4UifT0CNvUy2f0zwrD','mtCXote2odbAyNbvthG','Dg9VBhm','t3rOzxi','zw50CMLLCW','z2v0rgvZy3jPChrPB24','ygbGcGO','mJu5odaZEvzSv0zI','C3vWCg9YDgvKqwn0Aw9UCW','C2XPy2u','z2v0qxzHAwXHyMXLvg9VBhngB3jvsq','zgLZy292zxjuB29SCW','ica8l3rVB2W+cG','y2HHCKf0','B2jQzwn0','z2v0vxnHz2vtDgf0CW','u3LZDgvT','kIO6ia','ywn0AxzLt3bLCMf0Aw9UCW','iYmJiezVCM1HDcaYoIbku09oigLUie1HCMTKB3DUienVzguGqMXVy2SGkfjfuvvjuKveigzVCIbku09okqO','z2v0u3vWCg9YDgvKqwn0Aw9UCW','zNjVBq','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','Dg9tDhjPBMC','C3rHDhvZ','zw5HyMXLza','zMLSDgvY','z2vUzxjHDgvpCgvYyxrPB25jza'];a0_0xcada=function(){return _0x2444dc;};return a0_0xcada();}const a0_0x65486d=a0_0x5063;function a0_0x5063(_0x1fc52d,_0x15d411){_0x1fc52d=_0x1fc52d-0xfe;const _0xcadabd=a0_0xcada();let _0x5063f3=_0xcadabd[_0x1fc52d];if(a0_0x5063['VWBvET']===undefined){var _0x317c89=function(_0x56a557){const _0x2d900d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x44a80e='',_0x41388='';for(let _0x2cb440=0x0,_0x590421,_0x2feb9a,_0x7746c=0x0;_0x2feb9a=_0x56a557['charAt'](_0x7746c++);~_0x2feb9a&&(_0x590421=_0x2cb440%0x4?_0x590421*0x40+_0x2feb9a:_0x2feb9a,_0x2cb440++%0x4)?_0x44a80e+=String['fromCharCode'](0xff&_0x590421>>(-0x2*_0x2cb440&0x6)):0x0){_0x2feb9a=_0x2d900d['indexOf'](_0x2feb9a);}for(let _0x338f64=0x0,_0x14ccf9=_0x44a80e['length'];_0x338f64<_0x14ccf9;_0x338f64++){_0x41388+='%'+('00'+_0x44a80e['charCodeAt'](_0x338f64)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x41388);};a0_0x5063['GPgQas']=_0x317c89,a0_0x5063['yJssPX']={},a0_0x5063['VWBvET']=!![];}const _0x1036da=_0xcadabd[0x0],_0x2106bb=_0x1fc52d+_0x1036da,_0xf2318=a0_0x5063['yJssPX'][_0x2106bb];return!_0xf2318?(_0x5063f3=a0_0x5063['GPgQas'](_0x5063f3),a0_0x5063['yJssPX'][_0x2106bb]=_0x5063f3):_0x5063f3=_0xf2318,_0x5063f3;}(function(_0x296402,_0x5b99ec){const _0x66570d=a0_0x5063,_0x22c9d9=_0x296402();while(!![]){try{const _0x34e56e=-parseInt(_0x66570d(0x159))/0x1*(-parseInt(_0x66570d(0x128))/0x2)+parseInt(_0x66570d(0x126))/0x3*(parseInt(_0x66570d(0x14b))/0x4)+-parseInt(_0x66570d(0x181))/0x5*(parseInt(_0x66570d(0x143))/0x6)+parseInt(_0x66570d(0xff))/0x7+parseInt(_0x66570d(0x145))/0x8*(-parseInt(_0x66570d(0x163))/0x9)+-parseInt(_0x66570d(0x140))/0xa+-parseInt(_0x66570d(0x15d))/0xb;if(_0x34e56e===_0x5b99ec)break;else _0x22c9d9['push'](_0x22c9d9['shift']());}catch(_0x5b92d3){_0x22c9d9['push'](_0x22c9d9['shift']());}}}(a0_0xcada,0xf0877));import{TOOL_STATUS,OPERATION_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BaseTool{constructor(_0x44a80e={},_0x41388=null){const _0x5c0177=a0_0x5063;this['id']=this['constructor'][_0x5c0177(0x11b)][_0x5c0177(0x112)]()['replace'](_0x5c0177(0x125),''),this[_0x5c0177(0x153)]=_0x44a80e,this[_0x5c0177(0x15a)]=_0x41388,this[_0x5c0177(0x107)]=![],this['isAsync']=![],this['timeout']=_0x44a80e['timeout']||SYSTEM_DEFAULTS['MAX_TOOL_EXECUTION_TIME'],this['maxConcurrentOperations']=_0x44a80e['maxConcurrentOperations']||0x1,this[_0x5c0177(0x16e)]=new Map(),this[_0x5c0177(0x151)]=[],this['isEnabled']=_0x44a80e[_0x5c0177(0x175)]!==![],this['lastUsed']=null,this['usageCount']=0x0;}['getDescription'](){throw new Error('Tool\x20'+this['id']+'\x20must\x20implement\x20getDescription()');}['parseParameters'](_0x2cb440){const _0x543340=a0_0x5063;throw new Error('Tool\x20'+this['id']+_0x543340(0x148));}async[a0_0x65486d(0x12b)](_0x590421,_0x2feb9a){const _0x4eaae2=a0_0x65486d;throw new Error('Tool\x20'+this['id']+_0x4eaae2(0x157));}[a0_0x65486d(0x123)](){const _0x43d1d7=a0_0x65486d;return{'id':this['id'],'async':this['isAsync'],'requiresProject':this[_0x43d1d7(0x107)],'timeout':this['timeout'],'maxConcurrentOperations':this[_0x43d1d7(0xfe)],'enabled':this[_0x43d1d7(0x10a)],'supportedActions':this['getSupportedActions'](),'parameterSchema':this[_0x43d1d7(0x14e)]()};}['validateParameters'](_0x7746c){const _0xcaef9e=a0_0x65486d;try{if(!_0x7746c||typeof _0x7746c!==_0xcaef9e(0x16a))return{'valid':![],'error':'Parameters\x20must\x20be\x20an\x20object'};const requiredParams=this[_0xcaef9e(0x172)]();for(const required of requiredParams){if(!(required in _0x7746c))return{'valid':![],'error':'Missing\x20required\x20parameter:\x20'+required};}const _0x338f64=this[_0xcaef9e(0x149)](_0x7746c);if(!_0x338f64[_0xcaef9e(0x155)])return _0x338f64;const _0x14ccf9=this[_0xcaef9e(0x138)](_0x7746c);if(!_0x14ccf9[_0xcaef9e(0x155)])return _0x14ccf9;return{'valid':!![]};}catch(_0x83ae2f){return{'valid':![],'error':_0xcaef9e(0x131)+_0x83ae2f[_0xcaef9e(0x110)]};}}async[a0_0x65486d(0x152)](_0x4deeb3,_0x451f90){const _0x3d5ce2=a0_0x65486d,_0xdefdcd=this['generateOperationId'](),_0x4c2fd0=Date[_0x3d5ce2(0x17a)]();if(!this['isEnabled'])throw new Error(_0x3d5ce2(0x134)+this['id']+'\x20is\x20disabled');if(this[_0x3d5ce2(0x16e)][_0x3d5ce2(0x13b)]>=this[_0x3d5ce2(0xfe)])throw new Error('Tool\x20'+this['id']+'\x20has\x20reached\x20maximum\x20concurrent\x20operations\x20limit');const _0x5ff90f=this[_0x3d5ce2(0x17b)](_0x4deeb3);if(!_0x5ff90f['valid'])throw new Error('Parameter\x20validation\x20failed:\x20'+_0x5ff90f[_0x3d5ce2(0x11e)]);const _0x2f557f={'id':_0xdefdcd,'toolId':this['id'],'status':TOOL_STATUS['EXECUTING'],'startTime':new Date()['toISOString'](),'params':_0x4deeb3,'context':this[_0x3d5ce2(0x133)](_0x451f90)};this['activeOperations'][_0x3d5ce2(0x144)](_0xdefdcd,_0x2f557f);try{this['logger']?.['info'](_0x3d5ce2(0x142)+this['id'],{'operationId':_0xdefdcd,'toolId':this['id'],'context':_0x2f557f['context']});const _0x4306bb=await this['executeWithTimeout'](_0x4deeb3,_0x451f90);return _0x2f557f['status']=TOOL_STATUS['COMPLETED'],_0x2f557f[_0x3d5ce2(0x156)]=_0x4306bb,_0x2f557f[_0x3d5ce2(0x141)]=new Date()['toISOString'](),_0x2f557f[_0x3d5ce2(0x17c)]=Date[_0x3d5ce2(0x17a)]()-_0x4c2fd0,this['lastUsed']=new Date()['toISOString'](),this[_0x3d5ce2(0x11a)]++,this['logger']?.[_0x3d5ce2(0x104)](_0x3d5ce2(0x137)+this['id'],{'operationId':_0xdefdcd,'executionTime':_0x2f557f[_0x3d5ce2(0x17c)],'success':!![]}),{'success':!![],'operationId':_0xdefdcd,'result':_0x4306bb,'executionTime':_0x2f557f[_0x3d5ce2(0x17c)],'toolId':this['id']};}catch(_0x793592){_0x2f557f['status']=TOOL_STATUS[_0x3d5ce2(0x130)],_0x2f557f[_0x3d5ce2(0x11e)]=_0x793592[_0x3d5ce2(0x110)],_0x2f557f['endTime']=new Date()['toISOString'](),_0x2f557f[_0x3d5ce2(0x17c)]=Date[_0x3d5ce2(0x17a)]()-_0x4c2fd0,this['logger']?.[_0x3d5ce2(0x11e)](_0x3d5ce2(0x17d)+this['id'],{'operationId':_0xdefdcd,'error':_0x793592[_0x3d5ce2(0x110)],'executionTime':_0x2f557f[_0x3d5ce2(0x17c)]});throw _0x793592;}finally{this['operationHistory']['push']({..._0x2f557f}),this[_0x3d5ce2(0x16e)]['delete'](_0xdefdcd),this['cleanupHistory'](),await this['cleanup'](_0xdefdcd);}}async[a0_0x65486d(0x13f)](_0x308164){const _0x138a8d=a0_0x65486d,_0x5145a1=this[_0x138a8d(0x16e)][_0x138a8d(0x10b)](_0x308164);if(!_0x5145a1){const _0x22a5f8=this[_0x138a8d(0x151)][_0x138a8d(0x11f)](_0x226327=>_0x226327['id']===_0x308164);if(_0x22a5f8)return{'operationId':_0x308164,'status':_0x22a5f8['status'],'result':_0x22a5f8['result'],'error':_0x22a5f8[_0x138a8d(0x11e)],'executionTime':_0x22a5f8[_0x138a8d(0x17c)]};return{'operationId':_0x308164,'status':OPERATION_STATUS['NOT_FOUND'],'error':'Operation\x20not\x20found'};}return{'operationId':_0x308164,'status':_0x5145a1[_0x138a8d(0x174)],'startTime':_0x5145a1['startTime'],'executionTime':_0x5145a1['endTime']?new Date(_0x5145a1['endTime'])['getTime']()-new Date(_0x5145a1['startTime'])[_0x138a8d(0x15b)]():Date[_0x138a8d(0x17a)]()-new Date(_0x5145a1['startTime'])[_0x138a8d(0x15b)]()};}async['cleanup'](_0x548280){}[a0_0x65486d(0x170)](){const _0x54ac0f=a0_0x65486d;return[_0x54ac0f(0x12b)];}['getParameterSchema'](){return{'type':'object','properties':{},'required':[]};}[a0_0x65486d(0x172)](){return[];}[a0_0x65486d(0x149)](_0x43450f){return{'valid':!![]};}[a0_0x65486d(0x138)](_0x3a657f){return{'valid':!![]};}async[a0_0x65486d(0x103)](_0x3142a5,_0xc69ca3){return new Promise(async(_0xda99d7,_0x3002eb)=>{const _0x504978=a0_0x5063,_0x392266=setTimeout(()=>{const _0x335431=a0_0x5063;_0x3002eb(new Error('Tool\x20execution\x20timed\x20out\x20after\x20'+this[_0x335431(0x108)]+'ms'));},this['timeout']);try{const _0x345e9a=await this[_0x504978(0x12b)](_0x3142a5,_0xc69ca3);clearTimeout(_0x392266),_0xda99d7(_0x345e9a);}catch(_0x2b4e50){clearTimeout(_0x392266),_0x3002eb(_0x2b4e50);}});}[a0_0x65486d(0x177)](){const _0x2f53e4=a0_0x65486d;return this['id']+'-'+Date[_0x2f53e4(0x17a)]()+'-'+Math['random']()[_0x2f53e4(0x173)](0x24)['substr'](0x2,0x9);}['sanitizeContext'](_0x444115){const _0x52b6c4=a0_0x65486d,_0xd3f9f7={..._0x444115};return delete _0xd3f9f7['apiKeys'],delete _0xd3f9f7[_0x52b6c4(0x154)],delete _0xd3f9f7[_0x52b6c4(0x14c)],_0xd3f9f7[_0x52b6c4(0x11c)]&&_0xd3f9f7['content'][_0x52b6c4(0x17f)]>0x1f4&&(_0xd3f9f7['content']=_0xd3f9f7['content']['substring'](0x0,0x1f4)+_0x52b6c4(0x15c)),_0xd3f9f7;}[a0_0x65486d(0x12c)](){const _0x5450c2=a0_0x65486d,_0x3cc04b=0x64;this[_0x5450c2(0x151)][_0x5450c2(0x17f)]>_0x3cc04b&&(this['operationHistory']=this['operationHistory'][_0x5450c2(0x165)](-_0x3cc04b));}[a0_0x65486d(0x16b)](){const _0x47fba7=a0_0x65486d;return{'toolId':this['id'],'usageCount':this['usageCount'],'lastUsed':this['lastUsed'],'activeOperations':this['activeOperations'][_0x47fba7(0x13b)],'totalOperations':this['operationHistory']['length'],'averageExecutionTime':this['calculateAverageExecutionTime'](),'successRate':this[_0x47fba7(0x132)](),'isEnabled':this['isEnabled']};}[a0_0x65486d(0x101)](){const _0x1ea9fb=a0_0x65486d,_0x5bcdaa=this[_0x1ea9fb(0x151)]['filter'](_0x4afe4a=>_0x4afe4a['status']===TOOL_STATUS[_0x1ea9fb(0x147)]&&_0x4afe4a['executionTime']);if(_0x5bcdaa['length']===0x0)return 0x0;const _0x8c9301=_0x5bcdaa['reduce']((_0x4cdc49,_0x2157ef)=>_0x4cdc49+_0x2157ef[_0x1ea9fb(0x17c)],0x0);return Math[_0x1ea9fb(0x122)](_0x8c9301/_0x5bcdaa[_0x1ea9fb(0x17f)]);}['calculateSuccessRate'](){const _0x27a084=a0_0x65486d;if(this[_0x27a084(0x151)][_0x27a084(0x17f)]===0x0)return 0x0;const _0x5672be=this[_0x27a084(0x151)][_0x27a084(0x176)](_0x336215=>_0x336215['status']===TOOL_STATUS[_0x27a084(0x147)]);return _0x5672be['length']/this[_0x27a084(0x151)][_0x27a084(0x17f)]*0x64;}['enable'](){const _0x1430b6=a0_0x65486d;this['isEnabled']=!![],this[_0x1430b6(0x15a)]?.[_0x1430b6(0x104)](_0x1430b6(0x124)+this['id']);}[a0_0x65486d(0x105)](){const _0x36e6d6=a0_0x65486d;this[_0x36e6d6(0x10a)]=![],this[_0x36e6d6(0x15a)]?.['info'](_0x36e6d6(0x146)+this['id']);}['resetStats'](){const _0x3c315d=a0_0x65486d;this['usageCount']=0x0,this['lastUsed']=null,this['operationHistory']=[],this[_0x3c315d(0x15a)]?.[_0x3c315d(0x104)]('Tool\x20statistics\x20reset:\x20'+this['id']);}}class ToolsRegistry{constructor(_0xfb1a12=null){const _0x37a6ae=a0_0x65486d;this[_0x37a6ae(0x15a)]=_0xfb1a12,this[_0x37a6ae(0x15e)]=new Map(),this['toolDescriptions']=new Map(),this['toolCapabilities']=new Map(),this[_0x37a6ae(0x14d)]=new Map();}async[a0_0x65486d(0x178)](_0x34d2c6){const _0x361619=a0_0x65486d;try{const _0xbec98d=new _0x34d2c6();if(!(_0xbec98d instanceof BaseTool))throw new Error('Tool\x20'+_0x34d2c6[_0x361619(0x11b)]+_0x361619(0x12f));const _0x4ec57e=_0xbec98d['getCapabilities']();await this['validateTool'](_0xbec98d),this[_0x361619(0x15e)]['set'](_0xbec98d['id'],_0xbec98d),this['toolDescriptions'][_0x361619(0x144)](_0xbec98d['id'],_0xbec98d[_0x361619(0x161)]()),this['toolCapabilities']['set'](_0xbec98d['id'],_0x4ec57e),this['logger']?.['info']('Tool\x20registered:\x20'+_0xbec98d['id'],{'capabilities':_0x4ec57e[_0x361619(0x164)],'async':_0x4ec57e['async'],'requiresProject':_0x4ec57e[_0x361619(0x107)]});}catch(_0x53063b){this['logger']?.[_0x361619(0x11e)]('Tool\x20registration\x20failed:\x20'+_0x53063b[_0x361619(0x110)],{'toolClass':_0x34d2c6['name']});throw _0x53063b;}}async[a0_0x65486d(0x167)](_0x4978db){return 0x0;}async[a0_0x65486d(0x158)](_0x108da4){const _0x5412ae=a0_0x65486d,requiredMethods=['getDescription','parseParameters','execute'];for(const _0x39bce2 of requiredMethods){if(typeof _0x108da4[_0x39bce2]!=='function')throw new Error('Tool\x20'+_0x108da4['id']+_0x5412ae(0x11d)+_0x39bce2);}try{const _0x5d3adb=_0x108da4['parseParameters']('test\x20content');if(typeof _0x5d3adb!==_0x5412ae(0x16a))throw new Error(_0x5412ae(0x134)+_0x108da4['id']+'\x20parseParameters\x20must\x20return\x20an\x20object');}catch(_0x261133){}const _0x27b10d=_0x108da4[_0x5412ae(0x123)]();if(!_0x27b10d||typeof _0x27b10d!=='object')throw new Error('Tool\x20'+_0x108da4['id']+'\x20getCapabilities\x20must\x20return\x20an\x20object');}[a0_0x65486d(0x129)](_0x46d17f){const _0x1314b8=a0_0x65486d;return this[_0x1314b8(0x15e)]['get'](_0x46d17f)||null;}['getToolCapabilities'](){const _0x11fdc0=a0_0x65486d,_0x270c55={};for(const [_0x332917,_0xab490a]of this['tools'][_0x11fdc0(0x160)]()){_0xab490a[_0x11fdc0(0x10a)]&&(_0x270c55[_0x332917]={'description':this['toolDescriptions']['get'](_0x332917),'capabilities':this['toolCapabilities']['get'](_0x332917),'usageStats':_0xab490a['getUsageStats']()});}return _0x270c55;}async['executeToolSecurely'](_0x16bad3,_0x41a658,_0xa26006){const _0x860f44=a0_0x65486d,_0x1647a2=this[_0x860f44(0x129)](_0x16bad3);if(!_0x1647a2)throw new Error('Tool\x20not\x20found:\x20'+_0x16bad3);if(!_0x1647a2['isEnabled'])throw new Error(_0x860f44(0x13c)+_0x16bad3);return await _0x1647a2['executeWithLifecycle'](_0x41a658,_0xa26006);}[a0_0x65486d(0x115)](){const _0xa6973a=a0_0x65486d;return Array[_0xa6973a(0x171)](this[_0xa6973a(0x15e)]['keys']());}['generateToolDescriptionsForPrompt'](_0x1dab8e=[],_0x465401={}){const _0x283ebc=a0_0x65486d,{includeExamples:includeExamples=!![],includeUsageGuidelines:includeUsageGuidelines=!![],includeSecurityNotes:includeSecurityNotes=!![],compact:compact=![]}=_0x465401,_0x56e340=_0x1dab8e['length']>0x0?_0x1dab8e['filter'](_0x818043=>this['tools']['has'](_0x818043)):Array['from'](this[_0x283ebc(0x15e)][_0x283ebc(0x127)]());if(_0x56e340[_0x283ebc(0x17f)]===0x0)return'';let _0x51fa20='\x0a##\x20AVAILABLE\x20TOOLS\x0a\x0a';_0x51fa20+=_0x283ebc(0x116);for(const _0x5c582d of _0x56e340){const _0x53258a=this[_0x283ebc(0x15e)][_0x283ebc(0x10b)](_0x5c582d);if(!_0x53258a||!_0x53258a['isEnabled'])continue;try{if(compact){const _0x232a2a=_0x53258a['getCapabilities'](),_0x1eb016=_0x232a2a['supportedActions']||[_0x283ebc(0x12b)];_0x51fa20+='**'+_0x5c582d+_0x283ebc(0x16d)+_0x1eb016[_0x283ebc(0x117)](',\x20')+'\x0a';}else _0x51fa20+=_0x283ebc(0x109)+_0x5c582d[_0x283ebc(0x10f)]()+'\x20TOOL\x0a\x0a',_0x51fa20+=_0x53258a[_0x283ebc(0x161)](),_0x51fa20+=_0x283ebc(0x136);}catch(_0x42ca0a){this['logger']?.[_0x283ebc(0x120)]('Failed\x20to\x20get\x20description\x20for\x20tool:\x20'+_0x5c582d,{'error':_0x42ca0a['message']});}}return compact&&(_0x51fa20+=_0x283ebc(0x100)),_0x51fa20+=_0x283ebc(0x13a),_0x51fa20+='**IMPORTANT**:\x20You\x20MUST\x20use\x20one\x20of\x20these\x20exact\x20formats\x20to\x20invoke\x20tools:\x0a\x0a',_0x51fa20+=_0x283ebc(0x12e),_0x51fa20+='```\x0a',_0x51fa20+=_0x283ebc(0x12a),_0x51fa20+=_0x283ebc(0x111),_0x51fa20+='[/tool]\x0a',_0x51fa20+=_0x283ebc(0x162),_0x51fa20+=_0x283ebc(0x16f),_0x51fa20+=_0x283ebc(0x12d),_0x51fa20+='```json\x0a',_0x51fa20+='{\x0a',_0x51fa20+=_0x283ebc(0x119),_0x51fa20+=_0x283ebc(0x10c),_0x51fa20+='}\x0a',_0x51fa20+='```\x0a',_0x51fa20+='```\x0a\x0a',_0x51fa20+='**WARNING**:\x20Plain\x20JSON\x20without\x20markdown\x20code\x20blocks\x20(```json)\x20will\x20NOT\x20be\x20executed!\x0a',_0x51fa20+=_0x283ebc(0x17e),_0x51fa20+=_0x283ebc(0x139),_0x51fa20+='```xml\x0a',_0x51fa20+='<tool-command>\x0a',_0x51fa20+='\x20\x20<tool\x20id=\x22toolname\x22>\x0a',_0x51fa20+='\x20\x20\x20\x20<parameter>value</parameter>\x0a',_0x51fa20+=_0x283ebc(0x168),_0x51fa20+=_0x283ebc(0x14f),_0x51fa20+=_0x283ebc(0x162),_0x51fa20+=_0x283ebc(0x150),_0x51fa20;}[a0_0x65486d(0x14a)](_0x3c2e01,_0x4dbad1=[],_0x11cc88={}){const _0x1233ee=a0_0x65486d,_0x20fff7=this['generateToolDescriptionsForPrompt'](_0x4dbad1,_0x11cc88);if(!_0x20fff7[_0x1233ee(0x180)]())return _0x3c2e01||'';const _0x113f0d=_0x3c2e01||'';if(_0x113f0d['includes']('##\x20AVAILABLE\x20TOOLS'))return _0x113f0d['replace'](/## AVAILABLE TOOLS[\s\S]*?(?=##|$)/,_0x20fff7+'\x0a');const _0x1fb4ef='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 _0x113f0d+(_0x113f0d[_0x1233ee(0x121)]('\x0a')?'':'\x0a')+_0x20fff7+_0x1fb4ef+'\x0a';}[a0_0x65486d(0x166)](){const _0x2409a2=a0_0x65486d,_0x5a691d=[];for(const [_0x306814,_0x27227d]of this[_0x2409a2(0x15e)][_0x2409a2(0x160)]()){const _0x2e0b52=_0x27227d['getCapabilities'](),_0xf2e913=_0x27227d[_0x2409a2(0x161)](),_0x4d878c=_0xf2e913[_0x2409a2(0x179)]('\x0a')['find'](_0x5bb2f2=>_0x5bb2f2[_0x2409a2(0x180)]()[_0x2409a2(0x17f)]>0x0)||'',_0x114037=_0x4d878c[_0x2409a2(0x10e)](/^.*Tool:\s*/i,'')['replace'](/\s*-.*$/,'')['trim']();_0x5a691d[_0x2409a2(0x13e)]({'id':_0x306814,'name':_0x114037||_0x306814[_0x2409a2(0x169)](0x0)['toUpperCase']()+_0x306814[_0x2409a2(0x165)](0x1),'description':_0x4d878c,'category':this[_0x2409a2(0x118)](_0x306814),'enabled':_0x2e0b52['enabled'],'async':_0x2e0b52[_0x2409a2(0x102)],'requiresProject':_0x2e0b52[_0x2409a2(0x107)],'className':_0x27227d[_0x2409a2(0x114)]['name']});}return _0x5a691d['sort']((_0x3e6f28,_0x32cb51)=>_0x3e6f28['name'][_0x2409a2(0x113)](_0x32cb51['name']));}[a0_0x65486d(0x118)](_0x11c5bb){const _0x5dbc72=a0_0x65486d,_0x13d38b={'terminal':_0x5dbc72(0x16c),'filesystem':'File\x20Operations','browser':_0x5dbc72(0x135),'agentdelay':_0x5dbc72(0x106)};return _0x13d38b[_0x11c5bb]||_0x5dbc72(0x15f);}[a0_0x65486d(0x13d)](){const _0x1be33b=a0_0x65486d,_0x2f0048=Array['from'](this[_0x1be33b(0x15e)]['values']())['filter'](_0x5349ac=>_0x5349ac[_0x1be33b(0x10a)]),_0x2716ad=Array[_0x1be33b(0x171)](this['tools'][_0x1be33b(0x10d)]())['reduce']((_0x3b82cb,_0x59e67e)=>_0x3b82cb+_0x59e67e['usageCount'],0x0);return{'totalTools':this[_0x1be33b(0x15e)]['size'],'enabledTools':_0x2f0048['length'],'totalOperations':_0x2716ad,'activeOperations':this[_0x1be33b(0x14d)]['size']};}}export{BaseTool,ToolsRegistry};
1
+ const a0_0xd25c60=a0_0x1b30;(function(_0x4e35ea,_0x394c88){const _0x1440a7=a0_0x1b30,_0x4f6010=_0x4e35ea();while(!![]){try{const _0x283977=parseInt(_0x1440a7(0x1e4))/0x1+parseInt(_0x1440a7(0x1ee))/0x2+parseInt(_0x1440a7(0x1d6))/0x3+-parseInt(_0x1440a7(0x200))/0x4*(parseInt(_0x1440a7(0x245))/0x5)+-parseInt(_0x1440a7(0x1dd))/0x6*(parseInt(_0x1440a7(0x210))/0x7)+-parseInt(_0x1440a7(0x1fc))/0x8+parseInt(_0x1440a7(0x23f))/0x9;if(_0x283977===_0x394c88)break;else _0x4f6010['push'](_0x4f6010['shift']());}catch(_0x2d63c6){_0x4f6010['push'](_0x4f6010['shift']());}}}(a0_0x1c5f,0xa7d0e));import{TOOL_STATUS,OPERATION_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BaseTool{constructor(_0x521ea7={},_0x4bf382=null){const _0x123621=a0_0x1b30;this['id']=this[_0x123621(0x21a)]['name']['toLowerCase']()['replace'](_0x123621(0x1ce),''),this['config']=_0x521ea7,this['logger']=_0x4bf382,this[_0x123621(0x209)]=![],this[_0x123621(0x21e)]=![],this[_0x123621(0x226)]=_0x521ea7[_0x123621(0x226)]||SYSTEM_DEFAULTS[_0x123621(0x248)],this[_0x123621(0x1d2)]=_0x521ea7[_0x123621(0x1d2)]||0x1,this['activeOperations']=new Map(),this['operationHistory']=[],this['isEnabled']=_0x521ea7['enabled']!==![],this[_0x123621(0x1fd)]=null,this['usageCount']=0x0;}['getDescription'](){throw new Error('Tool\x20'+this['id']+'\x20must\x20implement\x20getDescription()');}[a0_0xd25c60(0x241)](_0x8c1a31){const _0x42dd03=a0_0xd25c60;throw new Error('Tool\x20'+this['id']+_0x42dd03(0x21f));}async[a0_0xd25c60(0x204)](_0x17786c,_0xdb33d5){const _0xd80d71=a0_0xd25c60;throw new Error(_0xd80d71(0x1d9)+this['id']+_0xd80d71(0x1cf));}[a0_0xd25c60(0x21c)](){const _0x44cbb6=a0_0xd25c60;return{'id':this['id'],'async':this[_0x44cbb6(0x21e)],'requiresProject':this['requiresProject'],'timeout':this['timeout'],'maxConcurrentOperations':this[_0x44cbb6(0x1d2)],'enabled':this['isEnabled'],'supportedActions':this[_0x44cbb6(0x23e)](),'parameterSchema':this[_0x44cbb6(0x1de)]()};}[a0_0xd25c60(0x22e)](_0x11820b){const _0x336aa7=a0_0xd25c60;try{if(!_0x11820b||typeof _0x11820b!==_0x336aa7(0x1e6))return{'valid':![],'error':_0x336aa7(0x242)};const requiredParams=this['getRequiredParameters']();for(const required of requiredParams){if(!(required in _0x11820b))return{'valid':![],'error':_0x336aa7(0x20a)+required};}const _0x4f508c=this[_0x336aa7(0x1fa)](_0x11820b);if(!_0x4f508c[_0x336aa7(0x1f3)])return _0x4f508c;const _0x3081f0=this[_0x336aa7(0x239)](_0x11820b);if(!_0x3081f0[_0x336aa7(0x1f3)])return _0x3081f0;return{'valid':!![]};}catch(_0x316d69){return{'valid':![],'error':_0x336aa7(0x246)+_0x316d69[_0x336aa7(0x249)]};}}async[a0_0xd25c60(0x1df)](_0x22b267,_0x4cdcd3){const _0xd9a56e=a0_0xd25c60,_0x438f21=this['generateOperationId'](),_0x313a76=Date['now']();if(!this[_0xd9a56e(0x203)])throw new Error('Tool\x20'+this['id']+_0xd9a56e(0x233));if(this['activeOperations'][_0xd9a56e(0x202)]>=this[_0xd9a56e(0x1d2)])throw new Error(_0xd9a56e(0x1d9)+this['id']+'\x20has\x20reached\x20maximum\x20concurrent\x20operations\x20limit');const _0x16f62b=this[_0xd9a56e(0x22e)](_0x22b267);if(!_0x16f62b[_0xd9a56e(0x1f3)])throw new Error('Parameter\x20validation\x20failed:\x20'+_0x16f62b['error']);const _0x1c5366={'id':_0x438f21,'toolId':this['id'],'status':TOOL_STATUS[_0xd9a56e(0x24e)],'startTime':new Date()['toISOString'](),'params':_0x22b267,'context':this['sanitizeContext'](_0x4cdcd3)};this[_0xd9a56e(0x1e9)][_0xd9a56e(0x1f7)](_0x438f21,_0x1c5366);try{this[_0xd9a56e(0x238)]?.['info']('Tool\x20execution\x20started:\x20'+this['id'],{'operationId':_0x438f21,'toolId':this['id'],'context':_0x1c5366[_0xd9a56e(0x213)]});const _0x541f0e=await this[_0xd9a56e(0x1f0)](_0x22b267,_0x4cdcd3);return _0x1c5366['status']=TOOL_STATUS[_0xd9a56e(0x1d0)],_0x1c5366[_0xd9a56e(0x24d)]=_0x541f0e,_0x1c5366['endTime']=new Date()['toISOString'](),_0x1c5366['executionTime']=Date['now']()-_0x313a76,this['lastUsed']=new Date()['toISOString'](),this[_0xd9a56e(0x231)]++,this[_0xd9a56e(0x238)]?.['info'](_0xd9a56e(0x218)+this['id'],{'operationId':_0x438f21,'executionTime':_0x1c5366['executionTime'],'success':!![]}),{'success':!![],'operationId':_0x438f21,'result':_0x541f0e,'executionTime':_0x1c5366['executionTime'],'toolId':this['id']};}catch(_0x2299af){_0x1c5366[_0xd9a56e(0x206)]=TOOL_STATUS['FAILED'],_0x1c5366[_0xd9a56e(0x230)]=_0x2299af['message'],_0x1c5366['endTime']=new Date()[_0xd9a56e(0x244)](),_0x1c5366[_0xd9a56e(0x214)]=Date['now']()-_0x313a76,this[_0xd9a56e(0x238)]?.[_0xd9a56e(0x230)]('Tool\x20execution\x20failed:\x20'+this['id'],{'operationId':_0x438f21,'error':_0x2299af[_0xd9a56e(0x249)],'executionTime':_0x1c5366['executionTime']});throw _0x2299af;}finally{this['operationHistory'][_0xd9a56e(0x247)]({..._0x1c5366}),this['activeOperations'][_0xd9a56e(0x1e3)](_0x438f21),this['cleanupHistory'](),await this[_0xd9a56e(0x1f8)](_0x438f21);}}async['getStatus'](_0x38db2d){const _0x41218d=a0_0xd25c60,_0x386550=this['activeOperations']['get'](_0x38db2d);if(!_0x386550){const _0xaa847e=this['operationHistory']['find'](_0x5e254f=>_0x5e254f['id']===_0x38db2d);if(_0xaa847e)return{'operationId':_0x38db2d,'status':_0xaa847e['status'],'result':_0xaa847e[_0x41218d(0x24d)],'error':_0xaa847e[_0x41218d(0x230)],'executionTime':_0xaa847e['executionTime']};return{'operationId':_0x38db2d,'status':OPERATION_STATUS[_0x41218d(0x1e1)],'error':_0x41218d(0x22f)};}return{'operationId':_0x38db2d,'status':_0x386550[_0x41218d(0x206)],'startTime':_0x386550['startTime'],'executionTime':_0x386550[_0x41218d(0x1ec)]?new Date(_0x386550['endTime'])['getTime']()-new Date(_0x386550['startTime'])[_0x41218d(0x212)]():Date[_0x41218d(0x22d)]()-new Date(_0x386550['startTime'])[_0x41218d(0x212)]()};}async['cleanup'](_0xb8ea55){}[a0_0xd25c60(0x23e)](){return['execute'];}[a0_0xd25c60(0x1de)](){return{'type':'object','properties':{},'required':[]};}[a0_0xd25c60(0x1d1)](){return[];}['validateParameterTypes'](_0x2ccc3f){return{'valid':!![]};}[a0_0xd25c60(0x239)](_0x2d776b){return{'valid':!![]};}async[a0_0xd25c60(0x1f0)](_0x58d001,_0x564104){return new Promise(async(_0x24625c,_0x67ae17)=>{const _0x32dbc0=a0_0x1b30,_0x499925=setTimeout(()=>{const _0x27c05d=a0_0x1b30;_0x67ae17(new Error(_0x27c05d(0x24a)+this[_0x27c05d(0x226)]+'ms'));},this['timeout']);try{const _0x220f13=await this[_0x32dbc0(0x204)](_0x58d001,_0x564104);clearTimeout(_0x499925),_0x24625c(_0x220f13);}catch(_0x311fd3){clearTimeout(_0x499925),_0x67ae17(_0x311fd3);}});}['generateOperationId'](){const _0x5eb0e6=a0_0xd25c60;return this['id']+'-'+Date[_0x5eb0e6(0x22d)]()+'-'+Math[_0x5eb0e6(0x20d)]()['toString'](0x24)[_0x5eb0e6(0x216)](0x2,0x9);}['sanitizeContext'](_0xc4c587){const _0x5cf068=a0_0xd25c60,_0x43ca18={..._0xc4c587};return delete _0x43ca18['apiKeys'],delete _0x43ca18['secrets'],delete _0x43ca18['passwords'],_0x43ca18['content']&&_0x43ca18['content']['length']>0x1f4&&(_0x43ca18[_0x5cf068(0x1f1)]=_0x43ca18[_0x5cf068(0x1f1)][_0x5cf068(0x1d7)](0x0,0x1f4)+'...\x20[truncated]'),_0x43ca18;}['cleanupHistory'](){const _0x33e660=a0_0xd25c60,_0xde34e4=0x64;this[_0x33e660(0x23d)][_0x33e660(0x215)]>_0xde34e4&&(this[_0x33e660(0x23d)]=this[_0x33e660(0x23d)][_0x33e660(0x21d)](-_0xde34e4));}['getUsageStats'](){const _0x57b177=a0_0xd25c60;return{'toolId':this['id'],'usageCount':this[_0x57b177(0x231)],'lastUsed':this['lastUsed'],'activeOperations':this['activeOperations']['size'],'totalOperations':this['operationHistory']['length'],'averageExecutionTime':this[_0x57b177(0x240)](),'successRate':this['calculateSuccessRate'](),'isEnabled':this['isEnabled']};}['calculateAverageExecutionTime'](){const _0x3655b2=a0_0xd25c60,_0xe848e4=this['operationHistory'][_0x3655b2(0x1db)](_0x56a291=>_0x56a291[_0x3655b2(0x206)]===TOOL_STATUS['COMPLETED']&&_0x56a291['executionTime']);if(_0xe848e4['length']===0x0)return 0x0;const _0x59d240=_0xe848e4['reduce']((_0x25b7e4,_0x3f17f2)=>_0x25b7e4+_0x3f17f2['executionTime'],0x0);return Math[_0x3655b2(0x20c)](_0x59d240/_0xe848e4[_0x3655b2(0x215)]);}['calculateSuccessRate'](){const _0x50b4ac=a0_0xd25c60;if(this[_0x50b4ac(0x23d)]['length']===0x0)return 0x0;const _0x5b2aae=this['operationHistory'][_0x50b4ac(0x1db)](_0x56614d=>_0x56614d['status']===TOOL_STATUS[_0x50b4ac(0x1d0)]);return _0x5b2aae[_0x50b4ac(0x215)]/this['operationHistory'][_0x50b4ac(0x215)]*0x64;}['enable'](){const _0x5c0fdd=a0_0xd25c60;this[_0x5c0fdd(0x203)]=!![],this['logger']?.['info'](_0x5c0fdd(0x1dc)+this['id']);}['disable'](){const _0x1a13b1=a0_0xd25c60;this[_0x1a13b1(0x203)]=![],this['logger']?.[_0x1a13b1(0x1e2)]('Tool\x20disabled:\x20'+this['id']);}[a0_0xd25c60(0x1f2)](){this['usageCount']=0x0,this['lastUsed']=null,this['operationHistory']=[],this['logger']?.['info']('Tool\x20statistics\x20reset:\x20'+this['id']);}}class ToolsRegistry{constructor(_0x502d84=null){const _0x9b711e=a0_0xd25c60;this[_0x9b711e(0x238)]=_0x502d84,this[_0x9b711e(0x1e0)]=new Map(),this[_0x9b711e(0x220)]=new Map(),this['toolCapabilities']=new Map(),this[_0x9b711e(0x1ea)]=new Map();}async['registerTool'](_0x58a081){const _0x4c6b38=a0_0xd25c60;try{const _0x31721f=new _0x58a081();if(!(_0x31721f instanceof BaseTool))throw new Error(_0x4c6b38(0x1d9)+_0x58a081[_0x4c6b38(0x234)]+_0x4c6b38(0x201));const _0x1b3bd8=_0x31721f[_0x4c6b38(0x21c)]();await this[_0x4c6b38(0x221)](_0x31721f),this['tools'][_0x4c6b38(0x1f7)](_0x31721f['id'],_0x31721f),this[_0x4c6b38(0x220)][_0x4c6b38(0x1f7)](_0x31721f['id'],_0x31721f['getDescription']()),this[_0x4c6b38(0x1ff)][_0x4c6b38(0x1f7)](_0x31721f['id'],_0x1b3bd8),this['logger']?.['info'](_0x4c6b38(0x22c)+_0x31721f['id'],{'capabilities':_0x1b3bd8[_0x4c6b38(0x20e)],'async':_0x1b3bd8['async'],'requiresProject':_0x1b3bd8['requiresProject']});}catch(_0x3152b9){this[_0x4c6b38(0x238)]?.[_0x4c6b38(0x230)](_0x4c6b38(0x20b)+_0x3152b9[_0x4c6b38(0x249)],{'toolClass':_0x58a081['name']});throw _0x3152b9;}}async[a0_0xd25c60(0x208)](_0x3587c5){return 0x0;}async['validateTool'](_0x2a02e7){const _0x5a0905=a0_0xd25c60,requiredMethods=['getDescription',_0x5a0905(0x241),'execute'];for(const _0x5d7792 of requiredMethods){if(typeof _0x2a02e7[_0x5d7792]!=='function')throw new Error('Tool\x20'+_0x2a02e7['id']+_0x5a0905(0x22b)+_0x5d7792);}try{const _0x29ed8e=_0x2a02e7['parseParameters']('test\x20content');if(typeof _0x29ed8e!=='object')throw new Error(_0x5a0905(0x1d9)+_0x2a02e7['id']+'\x20parseParameters\x20must\x20return\x20an\x20object');}catch(_0x408b6a){}const _0x512d22=_0x2a02e7[_0x5a0905(0x21c)]();if(!_0x512d22||typeof _0x512d22!=='object')throw new Error('Tool\x20'+_0x2a02e7['id']+_0x5a0905(0x229));}['getTool'](_0xfa6fff){const _0x402a74=a0_0xd25c60;return this[_0x402a74(0x1e0)]['get'](_0xfa6fff)||null;}[a0_0xd25c60(0x20f)](){const _0x516397=a0_0xd25c60,_0x166a99={};for(const [_0x190746,_0x57b746]of this[_0x516397(0x1e0)][_0x516397(0x1eb)]()){_0x57b746[_0x516397(0x203)]&&(_0x166a99[_0x190746]={'description':this['toolDescriptions']['get'](_0x190746),'capabilities':this[_0x516397(0x1ff)]['get'](_0x190746),'usageStats':_0x57b746[_0x516397(0x232)]()});}return _0x166a99;}async[a0_0xd25c60(0x1e7)](_0xc83d74,_0x47264d,_0x58c26f){const _0x23328e=a0_0xd25c60,_0x33a2a9=this[_0x23328e(0x22a)](_0xc83d74);if(!_0x33a2a9)throw new Error(_0x23328e(0x235)+_0xc83d74);if(!_0x33a2a9[_0x23328e(0x203)])throw new Error(_0x23328e(0x223)+_0xc83d74);return await _0x33a2a9['executeWithLifecycle'](_0x47264d,_0x58c26f);}[a0_0xd25c60(0x237)](){const _0x21d2a0=a0_0xd25c60;return Array[_0x21d2a0(0x1fe)](this['tools']['keys']());}['generateToolDescriptionsForPrompt'](_0x2bdeae=[],_0x5c23bd={}){const _0x197d7f=a0_0xd25c60,{includeExamples:includeExamples=!![],includeUsageGuidelines:includeUsageGuidelines=!![],includeSecurityNotes:includeSecurityNotes=!![],compact:compact=![]}=_0x5c23bd,_0x5a2013=_0x2bdeae['length']>0x0?_0x2bdeae[_0x197d7f(0x1db)](_0x130aa8=>this[_0x197d7f(0x1e0)][_0x197d7f(0x207)](_0x130aa8)):Array[_0x197d7f(0x1fe)](this[_0x197d7f(0x1e0)][_0x197d7f(0x1d4)]());if(_0x5a2013['length']===0x0)return'';let _0x21a502=_0x197d7f(0x24b);_0x21a502+='You\x20have\x20access\x20to\x20the\x20following\x20tools\x20to\x20perform\x20operations\x20and\x20tasks:\x0a\x0a';for(const _0x476cba of _0x5a2013){const _0x53024f=this[_0x197d7f(0x1e0)]['get'](_0x476cba);if(!_0x53024f||!_0x53024f[_0x197d7f(0x203)])continue;try{if(compact){const _0x3e1677=_0x53024f[_0x197d7f(0x21c)](),_0x526674=_0x3e1677[_0x197d7f(0x20e)]||['execute'];_0x21a502+='**'+_0x476cba+_0x197d7f(0x23c)+_0x526674[_0x197d7f(0x1fb)](',\x20')+'\x0a';}else _0x21a502+=_0x197d7f(0x1d8)+_0x476cba[_0x197d7f(0x1e8)]()+'\x20TOOL\x0a\x0a',_0x21a502+=_0x53024f[_0x197d7f(0x23b)](),_0x21a502+=_0x197d7f(0x243);}catch(_0x564cd8){this[_0x197d7f(0x238)]?.['warn'](_0x197d7f(0x205)+_0x476cba,{'error':_0x564cd8[_0x197d7f(0x249)]});}}return compact&&(_0x21a502+='\x0aUse\x20[tool\x20id=\x22tool-name\x22]<parameters>[/tool]\x20or\x20JSON\x20format\x20to\x20invoke\x20tools.\x0a\x0a'),_0x21a502+=_0x197d7f(0x211),_0x21a502+='**IMPORTANT**:\x20You\x20MUST\x20use\x20one\x20of\x20these\x20exact\x20formats\x20to\x20invoke\x20tools:\x0a\x0a',_0x21a502+='###\x20Format\x201:\x20Bracket\x20Notation\x0a',_0x21a502+='```\x0a',_0x21a502+=_0x197d7f(0x1e5),_0x21a502+=_0x197d7f(0x217),_0x21a502+='[/tool]\x0a',_0x21a502+='```\x0a\x0a',_0x21a502+='###\x20Format\x202:\x20JSON\x20in\x20Markdown\x20Code\x20Block\x20(REQUIRED\x20for\x20JSON)\x0a',_0x21a502+='```\x0a',_0x21a502+=_0x197d7f(0x1d3),_0x21a502+='{\x0a',_0x21a502+='\x20\x20\x22toolId\x22:\x20\x22toolname\x22,\x0a',_0x21a502+='\x20\x20\x22parameters\x22:\x20{\x20...\x20}\x20or\x20\x22actions\x22:\x20[\x20...\x20]\x0a',_0x21a502+='}\x0a',_0x21a502+='```\x0a',_0x21a502+=_0x197d7f(0x227),_0x21a502+=_0x197d7f(0x1ef),_0x21a502+=_0x197d7f(0x1d5),_0x21a502+='###\x20Format\x203:\x20XML\x20Format\x0a',_0x21a502+=_0x197d7f(0x1f9),_0x21a502+=_0x197d7f(0x24c),_0x21a502+='\x20\x20<tool\x20id=\x22toolname\x22>\x0a',_0x21a502+='\x20\x20\x20\x20<parameter>value</parameter>\x0a',_0x21a502+='\x20\x20</tool>\x0a',_0x21a502+='</tool-command>\x0a',_0x21a502+=_0x197d7f(0x227),_0x21a502+=_0x197d7f(0x222),_0x21a502;}['enhanceSystemPrompt'](_0x591a3a,_0x135e9e=[],_0x4814ee={}){const _0xa4b9dc=a0_0xd25c60,_0xf495b5=this['generateToolDescriptionsForPrompt'](_0x135e9e,_0x4814ee);if(!_0xf495b5[_0xa4b9dc(0x224)]())return _0x591a3a||'';const _0x3cdbcc=_0x591a3a||'';if(_0x3cdbcc[_0xa4b9dc(0x1f6)](_0xa4b9dc(0x228)))return _0x3cdbcc['replace'](/## AVAILABLE TOOLS[\s\S]*?(?=##|$)/,_0xf495b5+'\x0a');const _0x505316=_0xa4b9dc(0x236);return _0x3cdbcc+(_0x3cdbcc['endsWith']('\x0a')?'':'\x0a')+_0xf495b5+_0x505316+'\x0a';}[a0_0xd25c60(0x1f5)](){const _0x2e4ab9=a0_0xd25c60,_0x4f22a6=[];for(const [_0x2120bc,_0x3949ca]of this[_0x2e4ab9(0x1e0)]['entries']()){const _0x5d844c=_0x3949ca['getCapabilities'](),_0x1c96e7=_0x3949ca['getDescription'](),_0x1bcc6c=_0x1c96e7['split']('\x0a')['find'](_0x37c4be=>_0x37c4be['trim']()[_0x2e4ab9(0x215)]>0x0)||'',_0x27594a=_0x1bcc6c['replace'](/^.*Tool:\s*/i,'')['replace'](/\s*-.*$/,'')['trim']();_0x4f22a6['push']({'id':_0x2120bc,'name':_0x27594a||_0x2120bc[_0x2e4ab9(0x225)](0x0)[_0x2e4ab9(0x1e8)]()+_0x2120bc['slice'](0x1),'description':_0x1bcc6c,'category':this['_getToolCategory'](_0x2120bc),'enabled':_0x5d844c[_0x2e4ab9(0x21b)],'async':_0x5d844c['async'],'requiresProject':_0x5d844c[_0x2e4ab9(0x209)],'className':_0x3949ca['constructor'][_0x2e4ab9(0x234)]});}return _0x4f22a6[_0x2e4ab9(0x23a)]((_0x328e07,_0x193b36)=>_0x328e07[_0x2e4ab9(0x234)][_0x2e4ab9(0x1f4)](_0x193b36[_0x2e4ab9(0x234)]));}['_getToolCategory'](_0xe2afd2){const _0x5bb4b6=a0_0xd25c60,_0x25471e={'terminal':'System','filesystem':'File\x20Operations','browser':'Automation','agentdelay':'Utility'};return _0x25471e[_0xe2afd2]||_0x5bb4b6(0x219);}['getRegistryStats'](){const _0x5ed654=a0_0xd25c60,_0x2708b7=Array[_0x5ed654(0x1fe)](this[_0x5ed654(0x1e0)]['values']())[_0x5ed654(0x1db)](_0x32674b=>_0x32674b['isEnabled']),_0x1be8e1=Array[_0x5ed654(0x1fe)](this[_0x5ed654(0x1e0)][_0x5ed654(0x1da)]())[_0x5ed654(0x1ed)]((_0x40e74d,_0x2610a0)=>_0x40e74d+_0x2610a0[_0x5ed654(0x231)],0x0);return{'totalTools':this[_0x5ed654(0x1e0)][_0x5ed654(0x202)],'enabledTools':_0x2708b7['length'],'totalOperations':_0x1be8e1,'activeOperations':this[_0x5ed654(0x1ea)][_0x5ed654(0x202)]};}}function a0_0x1b30(_0x336373,_0x2c0e88){_0x336373=_0x336373-0x1ce;const _0x1c5f3c=a0_0x1c5f();let _0x1b300d=_0x1c5f3c[_0x336373];if(a0_0x1b30['zEyzRt']===undefined){var _0x271a5f=function(_0xbfab0d){const _0x2e0d77='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x521ea7='',_0x4bf382='';for(let _0x8c1a31=0x0,_0x17786c,_0xdb33d5,_0x11820b=0x0;_0xdb33d5=_0xbfab0d['charAt'](_0x11820b++);~_0xdb33d5&&(_0x17786c=_0x8c1a31%0x4?_0x17786c*0x40+_0xdb33d5:_0xdb33d5,_0x8c1a31++%0x4)?_0x521ea7+=String['fromCharCode'](0xff&_0x17786c>>(-0x2*_0x8c1a31&0x6)):0x0){_0xdb33d5=_0x2e0d77['indexOf'](_0xdb33d5);}for(let _0x4f508c=0x0,_0x3081f0=_0x521ea7['length'];_0x4f508c<_0x3081f0;_0x4f508c++){_0x4bf382+='%'+('00'+_0x521ea7['charCodeAt'](_0x4f508c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4bf382);};a0_0x1b30['gLkELy']=_0x271a5f,a0_0x1b30['cytwIE']={},a0_0x1b30['zEyzRt']=!![];}const _0x264da9=_0x1c5f3c[0x0],_0x4f94dd=_0x336373+_0x264da9,_0x153e9f=a0_0x1b30['cytwIE'][_0x4f94dd];return!_0x153e9f?(_0x1b300d=a0_0x1b30['gLkELy'](_0x1b300d),a0_0x1b30['cytwIE'][_0x4f94dd]=_0x1b300d):_0x1b300d=_0x153e9f,_0x1b300d;}export{BaseTool,ToolsRegistry};function a0_0x1c5f(){const _0x57a2dc=['vg9VBcbYzwDPC3rYyxrPB24GzMfPBgvKoIa','CM91BMq','CMfUzg9T','C3vWCg9YDgvKqwn0Aw9UCW','z2v0vg9VBenHCgfIAwXPDgLLCW','nJeZnJj3uNvUzLy','iYmGve9ptcbjtLzpq0fusu9oifnztLrbwaOk','z2v0vgLTzq','y29UDgv4Da','zxHLy3v0Aw9UvgLTzq','BgvUz3rO','C3vIC3rY','phbHCMfTzxrLCNmGAgvYzt4k','vg9VBcbLEgvJDxrPB24Gy29TCgXLDgvKoIa','t3rOzxi','y29UC3rYDwn0B3i','zw5HyMXLza','z2v0q2fWywjPBgL0AwvZ','C2XPy2u','AxnbC3LUyW','ig11C3qGAw1WBgvTzw50ihbHCNnLugfYyw1LDgvYCYGP','Dg9VBerLC2nYAxb0Aw9UCW','DMfSAwrHDgvuB29S','qwz0zxiGAw52B2TPBMCGysb0B29SlcbxquLuigzVCIb0AguGywn0DwfSihjLC3bVBNnLlIbeBYbot1qGz2vUzxjHDguGAw1Hz2LUyxj5ihjLC3bVBNnLCY4k','vg9VBcbPCYbKAxnHyMXLzdOG','DhjPBq','y2HHCKf0','DgLTzw91Da','ygbGcGO','iYmGqvzbsuXbqKXfifrpt0Xt','igDLDenHCgfIAwXPDgLLCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','z2v0vg9VBa','ig1PC3nPBMCGCMvXDwLYzwqGBwv0Ag9KoIa','vg9VBcbYzwDPC3rLCMvKoIa','BM93','DMfSAwrHDgvqyxjHBwv0zxjZ','t3bLCMf0Aw9Uig5VDcbMB3vUza','zxjYB3i','DxnHz2vdB3vUDa','z2v0vxnHz2vtDgf0CW','igLZigrPC2fIBgvK','BMfTzq','vg9VBcbUB3qGzM91BMq6ia','su1qt1juqu5uoIb3AgvUigfZA2vKihrVihbLCMzVCM0Gyw4Gywn0Aw9Uig9Yig9WzxjHDgLVBIWGDxnLigvHy2GGCMvZCg9UC2uGDg8GAw52B2TLigeGDg9VBcbPzIbUzwvKzwqSigfUzcb1CgrHDguGDgHLihvZzxiGB24GDgHLihbYB2DYzxnZicHZyw1Lig1LC3nHz2uPlG','BgLZDfrVB2XZ','Bg9Nz2vY','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','C29YDa','z2v0rgvZy3jPChrPB24','kIO6ia','B3bLCMf0Aw9UsgLZDg9YEq','z2v0u3vWCg9YDgvKqwn0Aw9UCW','mJaZnJi1odfKrLbJCLu','y2fSy3vSyxrLqxzLCMfNzuv4zwn1DgLVBLrPBwu','CgfYC2vqyxjHBwv0zxjZ','ugfYyw1LDgvYCYbTDxn0igjLigfUig9IAMvJDa','cGOTls0kcG','Dg9ju09tDhjPBMC','mte1mZGWnxf5wNP6AG','ugfYyw1LDgvYihzHBgLKyxrPB24GzMfPBgvKoIa','ChvZAa','tufyx1rpt0XFrvHfq1vusu9ox1rjtuu','BwvZC2fNzq','vg9VBcbLEgvJDxrPB24GDgLTzwqGB3v0igfMDgvYia','cImJiefwquLmqujmrsbut09muWOk','phrVB2WTy29TBwfUzd4k','CMvZDwX0','rvHfq1vusu5h','Dg9VBa','ig11C3qGAw1WBgvTzw50igv4zwn1DguOkq','q09nueXfveve','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','ygbGANnVBGO','A2v5CW','qwX3yxLZihDYyxaGsLnptIb0B29SignVBw1HBMrZigLUigbGygPZB24GlI4UigbGycbIBg9JA3mUcGO','ntCYnJfvBK1Wy0G','C3vIC3rYAw5N','iYmJia','vg9VBca','DMfSDwvZ','zMLSDgvY','vg9VBcbLBMfIBgvKoIa','nte2ue5UEhLR','z2v0ugfYyw1LDgvYu2nOzw1H','zxHLy3v0zvDPDgHmAwzLy3LJBgu','Dg9VBhm','tK9ux0zpvu5e','Aw5MBW','zgvSzxrL','mJeXntm5z1Ldyun0','w3rVB2WGAwq9iNrVB2XUyw1LiL0k','B2jQzwn0','zxHLy3v0zvrVB2Xtzwn1CMvSEq','Dg9vChbLCKnHC2u','ywn0AxzLt3bLCMf0Aw9UCW','yxn5BMnpCgvYyxrPB25Z','zw50CMLLCW','zw5KvgLTzq','CMvKDwnL','mtKWmJG2ngvsyM1YqG','kIPxqvjosu5hkIO6ifbSywLUiePtt04GD2L0Ag91DcbTyxjRzg93BIbJB2rLigjSB2nRCYaOygbGANnVBIKGD2LSBcbot1qGyMuGzxHLy3v0zwqHcG','zxHLy3v0zvDPDgHuAw1LB3v0','y29UDgvUDa','CMvZzxrtDgf0CW','DMfSAwq','Bg9JywXLq29TCgfYzq','z2v0qxzHAwXHyMXLvg9VBhngB3jvsq','Aw5JBhvKzxm','C2v0','y2XLyw51Ca','ygbGEg1ScG','DMfSAwrHDgvqyxjHBwv0zxjuExbLCW','AM9PBG','mta0odGYnZj2rvPPvfy','BgfZDfvZzwq','zNjVBq','Dg9VBenHCgfIAwXPDgLLCW','mtjzB05msKS','ig11C3qGzxH0zw5KiejHC2vuB29S','C2L6zq','AxnfBMfIBgvK','zxHLy3v0zq','rMfPBgvKihrVigDLDcbKzxnJCMLWDgLVBIbMB3iGDg9VBdOG','C3rHDhvZ','AgfZ','zgLZy292zxjuB29SCW','CMvXDwLYzxnqCM9Qzwn0','twLZC2LUzYbYzxf1AxjLzcbWyxjHBwv0zxi6ia'];a0_0x1c5f=function(){return _0x57a2dc;};return a0_0x1c5f();}
@@ -1 +1 @@
1
- const a0_0x4d38ca=a0_0x5f56;(function(_0x2b061c,_0x81876d){const _0x584a1a=a0_0x5f56,_0x11761e=_0x2b061c();while(!![]){try{const _0x5042cf=-parseInt(_0x584a1a(0x142))/0x1+-parseInt(_0x584a1a(0x194))/0x2*(-parseInt(_0x584a1a(0x14f))/0x3)+parseInt(_0x584a1a(0x167))/0x4*(-parseInt(_0x584a1a(0x154))/0x5)+parseInt(_0x584a1a(0x19a))/0x6+parseInt(_0x584a1a(0x19f))/0x7+-parseInt(_0x584a1a(0x1af))/0x8*(parseInt(_0x584a1a(0x171))/0x9)+-parseInt(_0x584a1a(0x193))/0xa;if(_0x5042cf===_0x81876d)break;else _0x11761e['push'](_0x11761e['shift']());}catch(_0x5be2ed){_0x11761e['push'](_0x11761e['shift']());}}}(a0_0xfc0f,0x6b001));import{BaseTool}from'./baseTool.js';import a0_0x3c5e48 from'../utilities/tagParser.js';function a0_0xfc0f(){const _0x55c7f7=['AxnbCNjHEq','C2nYB2XS','Dg9mB3DLCKnHC2u','C2nYB2XSvg9W','AgvHzgXLC3m','zgLYzwn0Aw9U','Bgf1BMnO','D2fPDc1ZzwXLy3rVCG','z290BW','odyZnZmWuhbQzxrN','oeTJtKHTwG','v2fPDgvKigzVCIa','B3bLCMf0Aw9UsgLZDg9YEq','igj5ia','rxH0CMfJDcbMywLSzwqGB24G','C2v0vMLLD3bVCNq','ndK5nJuXohDvzKXitq','C2vSzwn0B3i','y3DK','CxvLCNLtzwXLy3rVCG','y2XLyw51CejYB3DZzxi','nte1otq1nwPLwvDtDq','A2v5yM9HCMq','yNjVD3nLCKnVBMzPzW','DhLWzq','zxHLy3v0zq','C3rYAw5N','BMf2AwDHDgu','oIbLAxrOzxiGD2fPDc10Aw1Lig9YihDHAxqTC2vSzwn0B3iGAxmGCMvXDwLYzwq','CgfYC2vbDhrYAwj1DgvZ','zNvSBfbHz2u','Bwf4u2nYzwvUC2HVDfnPEMu','BMv0D29YA2LKBguW','vw5RBM93BIbHy3rPB24GDhLWztOG','BgvMDa','zM9JDxm','DMLLD3bVCNq','mJrXAw5hCeO','C3rHCNrZv2L0Aa','z2v0rgvZy3jPChrPB24','C3rHDa','DgLTzw91Da','D2fPDfnLBgvJDg9Y','mte3nZuXyxbPrNPI','D2fPDezVCLnLBgvJDg9Y','zg93BG','BwvZC2fNzq','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','D2fPDezVCLrPBwvVDxq','zxH0CMfJDa','ywn0Aw9UCW','BgvUz3rO','CgfNzq','B3v0Chv0ugf0Aa','z2v0t3bLCMf0Aw9UsgLZDg9YEq','Aw50zwDLCG','ndeWmda3wg1eze1d','v2fPDcbMywLSzwq6ia','D2LKDgG','oIb0ExbLigLZihjLCxvPCMvK','AgfZ','nZuYmtvZAu5Kt3G','zgvSzxrL','ChvZAa','ls1KAxnHyMXLlwrLDI1ZAg0TDxnHz2u','D2fPDc10Aw1L','Aw5JBhvKzxm','oIb3ywL0lxrPBwuGBxvZDcbIzsbIzxr3zwvUideWmcbHBMqGmZaWmdaGBwLSBgLZzwnVBMrZ','zNvSBc1WywDL','B2jQzwn0','C2nYzwvUC2HVDa','ywXSB3DLzerVBwfPBNm','C2v0','CgfYC2vqyxjHBwv0zxjZ','y2XPy2S','ignOyxjHy3rLCNmGAw50BYa','yNjVD3nLCG','ls1KAxnHyMXLlwDWDq','D2fPDc10ExbL','AxndB25Uzwn0zwq','mJaWs2ncDvHg','qwn0Aw9Uia','CMLNAhq','CMf3q29UDgvUDa','CgfNzvrPBwvVDxq','tMf2AwDHDgLVBIbMywLSzwq6ia','C2L6zq','Dg9ju09tDhjPBMC','oIbPBNzHBgLKihnJCM9SBcbKAxjLy3rPB246ia','yNjVD3nLCKLUC3rHBMnLCW','mJe2ntG0mvHwsunbBq','vhLWzwqG','yxjYyxK','z2v0qNjVD3nLCG','D2fPDfrPBwu','C2v0vxnLCKfNzw50','D2fPDa','rMfPBgvKihrVihbHCNnLigjYB3DZzxiGCgfYyw1LDgvYCW','yMXVy2TLzerVBwfPBNm','z2v0ugfNzq','Dhj1zq','z2v0','vhLWzsbMywLSzwqGB24G','oIbvuKWGBM90igfSBg93zwq6ia','y2XVC2u','C29Tzq','z2v0u3vWCg9YDgvKqwn0Aw9UCW','DgL0Bgu','DMLZAwjSzq','Dgv4Da','BM93','DxjS','C2nYB2XStgvMDa','B3v0Chv0lxbHDgG','C2nYB2XSqNK'];a0_0xfc0f=function(){return _0x55c7f7;};return a0_0xfc0f();}function a0_0x5f56(_0x5cc739,_0x744512){_0x5cc739=_0x5cc739-0x141;const _0xfc0f51=a0_0xfc0f();let _0x5f56a2=_0xfc0f51[_0x5cc739];if(a0_0x5f56['xHduGG']===undefined){var _0x21cc1b=function(_0x5381c8){const _0x5d0b9e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3c5e48='',_0x4a37ff='';for(let _0x207e3d=0x0,_0x36cef7,_0x137132,_0x560748=0x0;_0x137132=_0x5381c8['charAt'](_0x560748++);~_0x137132&&(_0x36cef7=_0x207e3d%0x4?_0x36cef7*0x40+_0x137132:_0x137132,_0x207e3d++%0x4)?_0x3c5e48+=String['fromCharCode'](0xff&_0x36cef7>>(-0x2*_0x207e3d&0x6)):0x0){_0x137132=_0x5d0b9e['indexOf'](_0x137132);}for(let _0x34128e=0x0,_0x168830=_0x3c5e48['length'];_0x34128e<_0x168830;_0x34128e++){_0x4a37ff+='%'+('00'+_0x3c5e48['charCodeAt'](_0x34128e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4a37ff);};a0_0x5f56['EdpSLt']=_0x21cc1b,a0_0x5f56['UobLSQ']={},a0_0x5f56['xHduGG']=!![];}const _0x1b48a1=_0xfc0f51[0x0],_0x185548=_0x5cc739+_0x1b48a1,_0x5c5a41=a0_0x5f56['UobLSQ'][_0x185548];return!_0x5c5a41?(_0x5f56a2=a0_0x5f56['EdpSLt'](_0x5f56a2),a0_0x5f56['UobLSQ'][_0x185548]=_0x5f56a2):_0x5f56a2=_0x5c5a41,_0x5f56a2;}import a0_0x4a37ff from'puppeteer';import a0_0x207e3d from'fs/promises';import a0_0x36cef7 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BrowserTool extends BaseTool{constructor(_0x137132={},_0x560748=null){const _0xb0f668=a0_0x5f56;super(_0x137132,_0x560748),this['requiresProject']=![],this['isAsync']=!![],this[_0xb0f668(0x1b3)]=_0x137132[_0xb0f668(0x1b3)]||0xea60,this['maxConcurrentOperations']=_0x137132['maxConcurrentOperations']||0x2,this['browserConfig']={'headless':_0x137132[_0xb0f668(0x18e)]!==![],'viewport':_0x137132[_0xb0f668(0x1ae)]||{'width':0x500,'height':0x2d0},'userAgent':_0x137132['userAgent']||'Mozilla/5.0\x20(Windows\x20NT\x2010.0;\x20Win64;\x20x64)\x20AppleWebKit/537.36','timeout':_0x137132[_0xb0f668(0x16b)]||0x7530},this[_0xb0f668(0x170)]=new Map(),this['allowedDomains']=_0x137132['allowedDomains']||null,this['blockedDomains']=_0x137132[_0xb0f668(0x179)]||[],this[_0xb0f668(0x1a9)]=_0x137132[_0xb0f668(0x1a9)]||0x5*0x400*0x400,this['operationHistory']=[];}[a0_0x4d38ca(0x1b1)](){const _0x4c4e5d=a0_0x4d38ca;return'\x0aBrowser\x20Tool:\x20Automate\x20web\x20browser\x20interactions,\x20navigation,\x20and\x20data\x20extraction.\x0a\x0aIMPORTANT\x20-\x20SYNTAX:\x20Use\x20self-closing\x20tags\x20with\x20angle\x20brackets\x20<\x20>,\x20not\x20square\x20brackets\x20[\x20].\x0a\x0aXML\x20USAGE\x20(Recommended):\x0a<browser>\x0a\x20\x20<navigate\x20url=\x22https://example.com\x22\x20/>\x0a\x20\x20<wait\x20wait-time=\x222000\x22\x20/>\x0a\x20\x20<click\x20selector=\x22button.submit\x22\x20/>\x0a\x20\x20<screenshot\x20output-path=\x22screenshot.png\x22\x20/>\x0a</browser>\x0a\x0aJSON\x20USAGE\x20(Alternative):\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22browser\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x20\x22type\x22:\x20\x22navigate\x22,\x20\x22url\x22:\x20\x22https://example.com\x22\x20},\x0a\x20\x20\x20\x20{\x20\x22type\x22:\x20\x22wait\x22,\x20\x22waitTime\x22:\x202000\x20},\x0a\x20\x20\x20\x20{\x20\x22type\x22:\x20\x22click\x22,\x20\x22selector\x22:\x20\x22button.submit\x22\x20},\x0a\x20\x20\x20\x20{\x20\x22type\x22:\x20\x22screenshot\x22,\x20\x22outputPath\x22:\x20\x22screenshot.png\x22\x20}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aSUPPORTED\x20ACTIONS:\x0a-\x20navigate:\x20Navigate\x20to\x20a\x20URL\x20(requires:\x20url)\x0a-\x20click:\x20Click\x20on\x20an\x20element\x20(requires:\x20selector)\x0a-\x20type:\x20Type\x20text\x20into\x20an\x20input\x20field\x20(requires:\x20selector,\x20text)\x0a-\x20wait:\x20Wait\x20for\x20element\x20or\x20time\x20(requires:\x20wait-time\x20OR\x20wait-selector)\x0a-\x20screenshot:\x20Take\x20screenshot\x20of\x20page\x20(requires:\x20output-path)\x0a-\x20extract:\x20Extract\x20text/data\x20from\x20elements\x20(requires:\x20selector,\x20attribute)\x0a-\x20scroll:\x20Scroll\x20page\x20or\x20element\x20(requires:\x20direction)\x0a-\x20close:\x20Close\x20browser\x20instance\x20(no\x20parameters)\x0a\x0aPARAMETER\x20REFERENCE:\x0a-\x20url:\x20Target\x20URL\x20for\x20navigation\x0a-\x20selector:\x20CSS\x20selector\x20for\x20element\x20targeting\x20(e.g.,\x20\x22#id\x22,\x20\x22.class\x22,\x20\x22button[type=\x27submit\x27]\x22)\x0a-\x20text:\x20Text\x20content\x20to\x20type\x0a-\x20output-path:\x20File\x20path\x20for\x20screenshots\x20(kebab-case\x20in\x20XML,\x20outputPath\x20in\x20JSON)\x0a-\x20wait-time:\x20Time\x20to\x20wait\x20in\x20milliseconds\x20(100-30000,\x20kebab-case\x20in\x20XML,\x20waitTime\x20in\x20JSON)\x0a-\x20wait-selector:\x20Element\x20selector\x20to\x20wait\x20for\x20(kebab-case\x20in\x20XML,\x20waitSelector\x20in\x20JSON)\x0a-\x20wait-type:\x20Wait\x20type\x20-\x20\x22visible\x22\x20or\x20\x22hidden\x22\x20(default:\x20\x22visible\x22)\x0a-\x20attribute:\x20HTML\x20attribute\x20to\x20extract\x20(default:\x20\x22text\x22)\x0a-\x20direction:\x20Scroll\x20direction\x20-\x20\x22up\x22,\x20\x22down\x22,\x20\x22left\x22,\x20\x22right\x22\x0a-\x20pixels:\x20Scroll\x20distance\x20in\x20pixels\x20(default:\x20300)\x0a-\x20full-page:\x20Take\x20full\x20page\x20screenshot\x20-\x20\x22true\x22\x20or\x20\x22false\x22\x0a\x0aEXAMPLES:\x0a\x0aExample\x201\x20-\x20Research\x20and\x20screenshot:\x0a<browser>\x0a\x20\x20<navigate\x20url=\x22https://github.com/trending\x22\x20/>\x0a\x20\x20<wait\x20wait-time=\x222000\x22\x20/>\x0a\x20\x20<screenshot\x20output-path=\x22trending.png\x22\x20/>\x0a\x20\x20<extract\x20selector=\x22h2.h3\x22\x20attribute=\x22text\x22\x20/>\x0a\x20\x20<close\x20/>\x0a</browser>\x0a\x0aExample\x202\x20-\x20Form\x20automation:\x0a<browser>\x0a\x20\x20<navigate\x20url=\x22https://example.com/login\x22\x20/>\x0a\x20\x20<wait\x20wait-selector=\x22input#username\x22\x20/>\x0a\x20\x20<type\x20selector=\x22input#username\x22\x20text=\x22myuser\x22\x20/>\x0a\x20\x20<type\x20selector=\x22input#password\x22\x20text=\x22mypass\x22\x20/>\x0a\x20\x20<click\x20selector=\x22button[type=\x27submit\x27]\x22\x20/>\x0a\x20\x20<wait\x20wait-selector=\x22.success-message\x22\x20/>\x0a\x20\x20<close\x20/>\x0a</browser>\x0a\x0aExample\x203\x20-\x20Data\x20extraction:\x0a<browser>\x0a\x20\x20<navigate\x20url=\x22https://example.com/products\x22\x20/>\x0a\x20\x20<wait\x20wait-time=\x221000\x22\x20/>\x0a\x20\x20<extract\x20selector=\x22h1.product-title\x22\x20attribute=\x22text\x22\x20/>\x0a\x20\x20<extract\x20selector=\x22span.price\x22\x20attribute=\x22text\x22\x20/>\x0a\x20\x20<extract\x20selector=\x22img.product\x22\x20attribute=\x22src\x22\x20/>\x0a\x20\x20<close\x20/>\x0a</browser>\x0a\x0aExample\x204\x20-\x20Scrolling\x20and\x20waiting:\x0a<browser>\x0a\x20\x20<navigate\x20url=\x22https://example.com/long-page\x22\x20/>\x0a\x20\x20<scroll\x20direction=\x22down\x22\x20pixels=\x22500\x22\x20/>\x0a\x20\x20<wait\x20wait-time=\x221000\x22\x20/>\x0a\x20\x20<scroll\x20direction=\x22down\x22\x20pixels=\x22500\x22\x20/>\x0a\x20\x20<screenshot\x20output-path=\x22scrolled.png\x22\x20full-page=\x22true\x22\x20/>\x0a\x20\x20<close\x20/>\x0a</browser>\x0a\x0aSYNTAX\x20RULES:\x0a✅\x20DO:\x20<navigate\x20url=\x22...\x22\x20/>\x20\x20(self-closing\x20with\x20/>)\x0a✅\x20DO:\x20<navigate\x20url=\x22...\x22>\x20\x20\x20\x20\x20(can\x20omit\x20/>\x20if\x20preferred)\x0a❌\x20DON\x27T:\x20<navigate\x20url=\x22...\x22></navigate>\x20\x20(no\x20closing\x20tag\x20needed)\x0a❌\x20DON\x27T:\x20[navigate\x20url=\x22...\x22\x20/]\x20\x20(square\x20brackets\x20not\x20supported)\x0a\x0aATTRIBUTE\x20NAMING:\x0a-\x20XML\x20uses\x20kebab-case:\x20wait-time,\x20output-path,\x20wait-selector\x0a-\x20JSON\x20uses\x20camelCase:\x20waitTime,\x20outputPath,\x20waitSelector\x0a-\x20Parser\x20auto-converts\x20kebab-case\x20to\x20camelCase\x20internally\x0a\x0aSECURITY:\x0a-\x20Restricted\x20to\x20allowed\x20domains\x20(if\x20configured)\x0a-\x20Blocked\x20domains\x20enforced\x20for\x20security\x0a-\x20Screenshot\x20size\x20limits\x20enforced\x20(max\x205MB)\x0a-\x20Automatic\x20cleanup\x20of\x20browser\x20instances\x20after\x2010\x20minutes\x0a-\x20Sandboxed\x20browser\x20execution\x0a\x0aBROWSER\x20SESSION:\x0aThe\x20tool\x20maintains\x20browser\x20instances\x20per\x20agent\x20context.\x0aUse\x20<close\x20/>\x20action\x20to\x20explicitly\x20cleanup,\x20or\x20instances\x20auto-cleanup\x20after\x20timeout.\x0a\x0aVIEWPORT:\x20'+this['browserConfig'][_0x4c4e5d(0x1ae)][_0x4c4e5d(0x151)]+'x'+this['browserConfig'][_0x4c4e5d(0x1ae)]['height']+'\x0aTIMEOUT:\x20'+this[_0x4c4e5d(0x1a1)][_0x4c4e5d(0x1b3)]+'ms\x20per\x20operation\x0aMAX\x20WAIT\x20TIME:\x2030\x20seconds\x20(30000ms)\x0a\x20\x20\x20\x20';}[a0_0x4d38ca(0x160)](_0x34128e){const _0x5d1657=a0_0x4d38ca;try{if(_0x34128e['trim']()[_0x5d1657(0x1b0)]('{')){const _0x20a20e=JSON['parse'](_0x34128e);return!_0x20a20e['actions']&&(_0x20a20e[_0x5d1657(0x149)]=[]),!Array[_0x5d1657(0x18a)](_0x20a20e[_0x5d1657(0x149)])&&(_0x20a20e['actions']=[_0x20a20e[_0x5d1657(0x149)]]),_0x20a20e;}const _0x168830={},_0xbe4fb8=[],_0x48e97c=['navigate','click','type',_0x5d1657(0x177),'screenshot','extract','scroll','close'];for(const _0xf14c16 of _0x48e97c){const _0x4e3821=new RegExp('<'+_0xf14c16+'\x5cs+([^>]*?)\x5cs*\x5c/?>','gi');let _0x265bb9;while((_0x265bb9=_0x4e3821['exec'](_0x34128e))!==null){const _0x5bf50a=_0x265bb9[0x1],_0x74267c=this[_0x5d1657(0x1a7)](_0x5bf50a),_0x5052db={'type':_0xf14c16,..._0x74267c};_0x5052db[_0x5d1657(0x188)]&&(_0x5052db['outputPath']=_0x5052db[_0x5d1657(0x188)],delete _0x5052db['output-path']),_0x5052db['wait-time']&&(_0x5052db[_0x5d1657(0x175)]=parseInt(_0x5052db[_0x5d1657(0x158)],0xa),delete _0x5052db['wait-time']),_0x5052db[_0x5d1657(0x191)]&&(_0x5052db[_0x5d1657(0x141)]=_0x5052db[_0x5d1657(0x191)],delete _0x5052db['wait-selector']),_0x5052db['wait-type']&&(_0x5052db['waitType']=_0x5052db[_0x5d1657(0x165)],delete _0x5052db['wait-type']),_0x5052db[_0x5d1657(0x15b)]&&(_0x5052db['fullPage']=_0x5052db[_0x5d1657(0x15b)]===_0x5d1657(0x17b),delete _0x5052db[_0x5d1657(0x15b)]),_0xbe4fb8[_0x5d1657(0x156)](_0x5052db);}}return _0x168830[_0x5d1657(0x149)]=Array[_0x5d1657(0x18a)](_0xbe4fb8)?_0xbe4fb8:[],_0x168830[_0x5d1657(0x16a)]=_0x34128e['trim'](),_0x168830;}catch(_0x15455f){return this['logger']?.['error'](_0x5d1657(0x178),{'error':_0x15455f['message']}),{'actions':[],'rawContent':_0x34128e['trim'](),'parseError':_0x15455f[_0x5d1657(0x145)]};}}[a0_0x4d38ca(0x1a7)](_0x432ce0){const _0x2f4ffb={};if(!_0x432ce0)return _0x2f4ffb;const _0x4fb87e=/([\w-]+)\s*=\s*["']([^"']*)["']/g;let _0x36fbbe;while((_0x36fbbe=_0x4fb87e['exec'](_0x432ce0))!==null){const _0x2e7048=_0x36fbbe[0x1],_0x29977d=_0x36fbbe[0x2];_0x2f4ffb[_0x2e7048]=_0x29977d;}return _0x2f4ffb;}['getRequiredParameters'](){const _0x58b69f=a0_0x4d38ca;return[_0x58b69f(0x149)];}['customValidateParameters'](_0x47d05c){const _0x1b8094=a0_0x4d38ca,_0x5c6ae8=[];if(!_0x47d05c['actions']||!Array[_0x1b8094(0x18a)](_0x47d05c[_0x1b8094(0x149)])||_0x47d05c['actions'][_0x1b8094(0x14a)]===0x0)_0x5c6ae8[_0x1b8094(0x156)](_0x1b8094(0x146));else for(const [_0x519eee,_0x3db4cb]of _0x47d05c[_0x1b8094(0x149)]['entries']()){if(!_0x3db4cb[_0x1b8094(0x1a2)]){_0x5c6ae8['push']('Action\x20'+(_0x519eee+0x1)+_0x1b8094(0x152));continue;}switch(_0x3db4cb[_0x1b8094(0x1a2)]){case'navigate':if(!_0x3db4cb['url'])_0x5c6ae8['push']('Action\x20'+(_0x519eee+0x1)+':\x20url\x20is\x20required\x20for\x20navigate');else!this['isAllowedUrl'](_0x3db4cb['url'])&&_0x5c6ae8['push']('Action\x20'+(_0x519eee+0x1)+_0x1b8094(0x17e)+_0x3db4cb[_0x1b8094(0x186)]);break;case _0x1b8094(0x161):case'extract':!_0x3db4cb['selector']&&_0x5c6ae8[_0x1b8094(0x156)]('Action\x20'+(_0x519eee+0x1)+':\x20selector\x20is\x20required\x20for\x20'+_0x3db4cb[_0x1b8094(0x1a2)]);break;case'type':!_0x3db4cb['selector']&&_0x5c6ae8[_0x1b8094(0x156)]('Action\x20'+(_0x519eee+0x1)+':\x20selector\x20is\x20required\x20for\x20type');!_0x3db4cb['text']&&_0x3db4cb[_0x1b8094(0x184)]!==''&&_0x5c6ae8['push'](_0x1b8094(0x168)+(_0x519eee+0x1)+':\x20text\x20is\x20required\x20for\x20type');break;case'wait':!_0x3db4cb['waitTime']&&!_0x3db4cb[_0x1b8094(0x141)]&&_0x5c6ae8[_0x1b8094(0x156)]('Action\x20'+(_0x519eee+0x1)+_0x1b8094(0x1a6));_0x3db4cb[_0x1b8094(0x175)]&&(_0x3db4cb[_0x1b8094(0x175)]<0x64||_0x3db4cb[_0x1b8094(0x175)]>0x7530)&&_0x5c6ae8[_0x1b8094(0x156)]('Action\x20'+(_0x519eee+0x1)+_0x1b8094(0x15a));break;case _0x1b8094(0x15d):!_0x3db4cb[_0x1b8094(0x14c)]&&_0x5c6ae8['push']('Action\x20'+(_0x519eee+0x1)+':\x20output-path\x20is\x20required\x20for\x20screenshot');break;case _0x1b8094(0x18b):if(!_0x3db4cb['direction'])_0x5c6ae8['push']('Action\x20'+(_0x519eee+0x1)+':\x20direction\x20is\x20required\x20for\x20scroll');else!['up','down',_0x1b8094(0x1ac),_0x1b8094(0x169)]['includes'](_0x3db4cb[_0x1b8094(0x18f)])&&_0x5c6ae8[_0x1b8094(0x156)]('Action\x20'+(_0x519eee+0x1)+_0x1b8094(0x16f)+_0x3db4cb[_0x1b8094(0x18f)]);break;case _0x1b8094(0x17f):break;default:_0x5c6ae8[_0x1b8094(0x156)]('Action\x20'+(_0x519eee+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x3db4cb['type']);}}return{'valid':_0x5c6ae8[_0x1b8094(0x14a)]===0x0,'errors':_0x5c6ae8};}async[a0_0x4d38ca(0x1a3)](_0x4c4cd1,_0x5c4e35){const _0x2c0fd8=a0_0x4d38ca,{actions:_0xc82a0d}=_0x4c4cd1,{agentId:_0x303a3e,projectDir:_0xde7a68}=_0x5c4e35,_0x32dda8=_0x303a3e+'-'+(_0xde7a68||'default'),_0xaf208e=[];for(const _0x12874f of _0xc82a0d){try{let _0x150eeb;switch(_0x12874f['type']){case _0x2c0fd8(0x1a5):_0x150eeb=await this['navigate'](_0x12874f['url'],_0x32dda8);break;case _0x2c0fd8(0x161):_0x150eeb=await this['click'](_0x12874f[_0x2c0fd8(0x19b)],_0x32dda8);break;case _0x2c0fd8(0x1a2):_0x150eeb=await this[_0x2c0fd8(0x1a2)](_0x12874f[_0x2c0fd8(0x19b)],_0x12874f[_0x2c0fd8(0x184)],_0x32dda8);break;case _0x2c0fd8(0x177):_0x150eeb=await this[_0x2c0fd8(0x177)](_0x12874f,_0x32dda8);break;case'screenshot':_0x150eeb=await this[_0x2c0fd8(0x15d)](_0x12874f['outputPath'],_0xde7a68,_0x32dda8,_0x12874f);break;case'extract':_0x150eeb=await this['extract'](_0x12874f[_0x2c0fd8(0x19b)],_0x12874f['attribute']||'text',_0x32dda8);break;case _0x2c0fd8(0x18b):_0x150eeb=await this['scroll'](_0x12874f,_0x32dda8);break;case _0x2c0fd8(0x17f):_0x150eeb=await this['closeBrowser'](_0x32dda8);break;default:throw new Error(_0x2c0fd8(0x1ab)+_0x12874f['type']);}_0xaf208e['push'](_0x150eeb),this['addToHistory'](_0x12874f,_0x150eeb,_0x303a3e);}catch(_0x1e5863){const _0x33f8a3={'success':![],'action':_0x12874f['type'],'error':_0x1e5863['message'],'selector':_0x12874f[_0x2c0fd8(0x19b)]||_0x12874f['url']};_0xaf208e[_0x2c0fd8(0x156)](_0x33f8a3),this['addToHistory'](_0x12874f,_0x33f8a3,_0x303a3e);}}return{'success':!![],'actions':_0xaf208e,'executedActions':_0xc82a0d[_0x2c0fd8(0x14a)],'toolUsed':_0x2c0fd8(0x163)};}async['navigate'](_0x56c948,_0x4fed37){const _0x4ca86d=a0_0x4d38ca,_0x3aa64f=await this[_0x4ca86d(0x174)](_0x4fed37),_0x141cb2=await this['getPage'](_0x4fed37),_0x539f08=Date['now']();try{await _0x141cb2[_0x4ca86d(0x192)](_0x56c948,{'waitUntil':_0x4ca86d(0x1aa),'timeout':this['browserConfig']['timeout']});const _0x576909=await _0x141cb2[_0x4ca86d(0x182)](),_0x2694a7=_0x141cb2['url']();return{'success':!![],'action':'navigate','url':_0x2694a7,'originalUrl':_0x56c948,'title':_0x576909,'loadTime':Date['now']()-_0x539f08,'message':'Navigated\x20to\x20'+_0x56c948};}catch(_0x3a7018){throw new Error(_0x4ca86d(0x16c)+_0x3a7018[_0x4ca86d(0x145)]);}}async[a0_0x4d38ca(0x161)](_0x4e4e1d,_0x4aa726){const _0x11e0f0=a0_0x4d38ca,_0xf78f65=await this['getPage'](_0x4aa726);try{return await _0xf78f65[_0x11e0f0(0x143)](_0x4e4e1d,{'timeout':0x1388}),await _0xf78f65[_0x11e0f0(0x161)](_0x4e4e1d),{'success':!![],'action':'click','selector':_0x4e4e1d,'message':'Clicked\x20on\x20'+_0x4e4e1d};}catch(_0x51c70c){throw new Error('Click\x20failed\x20on\x20'+_0x4e4e1d+':\x20'+_0x51c70c['message']);}}async[a0_0x4d38ca(0x1a2)](_0x5549b0,_0x7a159a,_0x2d2a4b){const _0x11d6c0=a0_0x4d38ca,_0x3aba6a=await this[_0x11d6c0(0x17a)](_0x2d2a4b);try{return await _0x3aba6a['waitForSelector'](_0x5549b0,{'timeout':0x1388}),await _0x3aba6a[_0x11d6c0(0x1ad)](_0x5549b0),await _0x3aba6a[_0x11d6c0(0x1a0)]['selectAll'](),await _0x3aba6a['type'](_0x5549b0,_0x7a159a),{'success':!![],'action':'type','selector':_0x5549b0,'text':_0x7a159a,'textLength':_0x7a159a['length'],'message':_0x11d6c0(0x172)+_0x7a159a[_0x11d6c0(0x14a)]+_0x11d6c0(0x162)+_0x5549b0};}catch(_0x466e67){throw new Error(_0x11d6c0(0x17d)+_0x5549b0+':\x20'+_0x466e67['message']);}}async[a0_0x4d38ca(0x177)](_0x343d83,_0x4581e8){const _0x146b77=a0_0x4d38ca,_0x3e896c=await this[_0x146b77(0x17a)](_0x4581e8);try{if(_0x343d83[_0x146b77(0x175)])return await _0x3e896c[_0x146b77(0x147)](_0x343d83[_0x146b77(0x175)]),{'success':!![],'action':_0x146b77(0x177),'waitTime':_0x343d83[_0x146b77(0x175)],'message':'Waited\x20'+_0x343d83[_0x146b77(0x175)]+'ms'};if(_0x343d83['waitSelector']){const _0x27231f=_0x343d83['waitType']||_0x146b77(0x183),_0x2cdac5={'timeout':0x2710};return _0x27231f==='hidden'?await _0x3e896c['waitForSelector'](_0x343d83['waitSelector'],{..._0x2cdac5,'hidden':!![]}):await _0x3e896c[_0x146b77(0x143)](_0x343d83[_0x146b77(0x141)],_0x2cdac5),{'success':!![],'action':_0x146b77(0x177),'waitSelector':_0x343d83['waitSelector'],'waitType':_0x27231f,'message':_0x146b77(0x195)+_0x343d83['waitSelector']+'\x20to\x20be\x20'+_0x27231f};}}catch(_0x11a297){throw new Error(_0x146b77(0x150)+_0x11a297[_0x146b77(0x145)]);}}async[a0_0x4d38ca(0x15d)](_0xb59dc5,_0x1c4dad,_0x5e85a6,_0x2a363f={}){const _0x4876e4=a0_0x4d38ca,_0xd683e=await this[_0x4876e4(0x17a)](_0x5e85a6);try{const _0x280442=_0x1c4dad?a0_0x36cef7['resolve'](_0x1c4dad,_0xb59dc5):a0_0x36cef7['resolve'](_0xb59dc5),_0x31856c=a0_0x36cef7['dirname'](_0x280442);await a0_0x207e3d['mkdir'](_0x31856c,{'recursive':!![]});const _0x383c72={'path':_0x280442,'type':'png'};_0x2a363f[_0x4876e4(0x1a8)]&&(_0x383c72[_0x4876e4(0x1a8)]=!![]);await _0xd683e['screenshot'](_0x383c72);const _0x15f6d6=await a0_0x207e3d[_0x4876e4(0x1b2)](_0x280442);if(_0x15f6d6['size']>this['maxScreenshotSize'])throw new Error('Screenshot\x20too\x20large:\x20'+_0x15f6d6[_0x4876e4(0x16d)]+'\x20bytes\x20(max\x20'+this['maxScreenshotSize']+')');return{'success':!![],'action':'screenshot','outputPath':a0_0x36cef7['relative'](_0x1c4dad||process[_0x4876e4(0x19c)](),_0x280442),'size':_0x15f6d6[_0x4876e4(0x16d)],'fullPage':!!_0x2a363f[_0x4876e4(0x1a8)],'message':'Screenshot\x20saved:\x20'+_0xb59dc5};}catch(_0x64f0c4){throw new Error('Screenshot\x20failed:\x20'+_0x64f0c4[_0x4876e4(0x145)]);}}async[a0_0x4d38ca(0x148)](_0x56f085,_0x5e04ab,_0x2eb894){const _0x1f98ea=a0_0x4d38ca,_0x352725=await this['getPage'](_0x2eb894);try{await _0x352725[_0x1f98ea(0x143)](_0x56f085,{'timeout':0x1388});let _0x470d34;return _0x5e04ab==='text'?_0x470d34=await _0x352725['$eval'](_0x56f085,_0x59d247=>_0x59d247['textContent']['trim']()):_0x470d34=await _0x352725['$eval'](_0x56f085,(_0x4c92cc,_0x343e50)=>_0x4c92cc['getAttribute'](_0x343e50),_0x5e04ab),{'success':!![],'action':_0x1f98ea(0x148),'selector':_0x56f085,'attribute':_0x5e04ab,'data':_0x470d34,'message':'Extracted\x20'+_0x5e04ab+'\x20from\x20'+_0x56f085};}catch(_0x1ea716){throw new Error(_0x1f98ea(0x198)+_0x56f085+':\x20'+_0x1ea716['message']);}}async[a0_0x4d38ca(0x18b)](_0xf9b66c,_0x3e44d5){const _0x3cbe57=a0_0x4d38ca,_0x509052=await this[_0x3cbe57(0x17a)](_0x3e44d5);try{const {direction:_0xf335c1,pixels:pixels=0x12c,selector:_0x508ec7}=_0xf9b66c;return _0x508ec7?await _0x509052['evaluate']((_0x210765,_0x338b7c,_0x44da0b)=>{const _0x1d391c=_0x3cbe57,_0x2558ba=document[_0x1d391c(0x19d)](_0x210765);if(_0x2558ba){if(_0x338b7c===_0x1d391c(0x144))_0x2558ba['scrollTop']+=_0x44da0b;else{if(_0x338b7c==='up')_0x2558ba[_0x1d391c(0x18d)]-=_0x44da0b;else{if(_0x338b7c===_0x1d391c(0x169))_0x2558ba[_0x1d391c(0x187)]+=_0x44da0b;else{if(_0x338b7c===_0x1d391c(0x1ac))_0x2558ba[_0x1d391c(0x187)]-=_0x44da0b;}}}}},_0x508ec7,_0xf335c1,pixels):await _0x509052['evaluate']((_0x5a1dc3,_0x4e7617)=>{const _0x43d93f=_0x3cbe57;if(_0x5a1dc3===_0x43d93f(0x144))window['scrollBy'](0x0,_0x4e7617);else{if(_0x5a1dc3==='up')window['scrollBy'](0x0,-_0x4e7617);else{if(_0x5a1dc3==='right')window[_0x43d93f(0x189)](_0x4e7617,0x0);else{if(_0x5a1dc3==='left')window['scrollBy'](-_0x4e7617,0x0);}}}},_0xf335c1,pixels),{'success':!![],'action':'scroll','direction':_0xf335c1,'pixels':pixels,'selector':_0x508ec7||_0x3cbe57(0x14b),'message':'Scrolled\x20'+_0xf335c1+_0x3cbe57(0x197)+pixels+'px'};}catch(_0x5a01cb){throw new Error('Scroll\x20failed:\x20'+_0x5a01cb['message']);}}async[a0_0x4d38ca(0x174)](_0x20d006){const _0x25037f=a0_0x4d38ca;if(this['browserInstances'][_0x25037f(0x153)](_0x20d006)){const _0x237f6b=this[_0x25037f(0x170)][_0x25037f(0x17c)](_0x20d006);if(!_0x237f6b['browser'][_0x25037f(0x166)]())this[_0x25037f(0x170)][_0x25037f(0x155)](_0x20d006);else return _0x237f6b[_0x25037f(0x163)];}const _0x20dee4=await a0_0x4a37ff[_0x25037f(0x190)]({'headless':this[_0x25037f(0x1a1)][_0x25037f(0x18e)],'args':['--no-sandbox','--disable-setuid-sandbox',_0x25037f(0x157),_0x25037f(0x164)]}),_0x1875a4=await _0x20dee4['newPage']();return await _0x1875a4[_0x25037f(0x199)](this[_0x25037f(0x1a1)][_0x25037f(0x1ae)]),await _0x1875a4[_0x25037f(0x176)](this['browserConfig']['userAgent']),this['browserInstances'][_0x25037f(0x15f)](_0x20d006,{'browser':_0x20dee4,'page':_0x1875a4,'created':Date[_0x25037f(0x185)]()}),setTimeout(()=>{const _0x432734=_0x25037f;this[_0x432734(0x19e)](_0x20d006);},0xa*0x3c*0x3e8),_0x20dee4;}async['getPage'](_0x43922f){const _0x2d0879=a0_0x4d38ca;return await this[_0x2d0879(0x174)](_0x43922f),this['browserInstances'][_0x2d0879(0x17c)](_0x43922f)[_0x2d0879(0x14b)];}async['closeBrowser'](_0x42c8b2){const _0x55fa3a=a0_0x4d38ca,_0x49a349=this['browserInstances'][_0x55fa3a(0x17c)](_0x42c8b2);if(_0x49a349)try{return await _0x49a349['browser']['close'](),this[_0x55fa3a(0x170)]['delete'](_0x42c8b2),{'success':!![],'action':_0x55fa3a(0x17f),'browserKey':_0x42c8b2,'message':'Browser\x20instance\x20closed'};}catch(_0x31f702){throw new Error('Failed\x20to\x20close\x20browser:\x20'+_0x31f702['message']);}return{'success':!![],'action':_0x55fa3a(0x17f),'browserKey':_0x42c8b2,'message':'Browser\x20instance\x20not\x20found\x20(already\x20closed)'};}async[a0_0x4d38ca(0x19e)](_0xbb347c){const _0x489b02=a0_0x4d38ca,_0x38fec2=this[_0x489b02(0x170)][_0x489b02(0x17c)](_0xbb347c);if(_0x38fec2)try{await _0x38fec2['browser']['close']();}catch(_0x45b52f){}finally{this[_0x489b02(0x170)]['delete'](_0xbb347c);}}['isAllowedUrl'](_0x1b81a3){const _0x3945a=a0_0x4d38ca;try{const _0x288c87=new URL(_0x1b81a3),_0x542adf=_0x288c87['hostname'][_0x3945a(0x18c)]();if(this['blockedDomains'][_0x3945a(0x180)](_0x1bad29=>_0x542adf[_0x3945a(0x159)](_0x1bad29['toLowerCase']())))return![];if(this[_0x3945a(0x15e)]&&this['allowedDomains'][_0x3945a(0x14a)]>0x0)return this[_0x3945a(0x15e)][_0x3945a(0x180)](_0x5cc842=>_0x542adf['includes'](_0x5cc842['toLowerCase']()));return!![];}catch{return![];}}['addToHistory'](_0x233c75,_0xa0fdd5,_0x2d6037){const _0x540af6=a0_0x4d38ca,_0x25e341={'timestamp':new Date()[_0x540af6(0x16e)](),'agentId':_0x2d6037,'action':_0x233c75[_0x540af6(0x1a2)],'selector':_0x233c75['selector']||_0x233c75[_0x540af6(0x186)],'success':_0xa0fdd5['success'],'loadTime':_0xa0fdd5['loadTime']||0x0};this['operationHistory']['push'](_0x25e341),this[_0x540af6(0x196)]['length']>0x64&&(this[_0x540af6(0x196)]=this[_0x540af6(0x196)]['slice'](-0x64));}[a0_0x4d38ca(0x181)](){const _0x31fa2e=a0_0x4d38ca;return[_0x31fa2e(0x1a5),_0x31fa2e(0x161),'type',_0x31fa2e(0x177),'screenshot',_0x31fa2e(0x148),_0x31fa2e(0x18b),'close'];}['getParameterSchema'](){const _0x2a9a19=a0_0x4d38ca;return{'type':_0x2a9a19(0x15c),'properties':{'actions':{'type':_0x2a9a19(0x173),'minItems':0x1,'items':{'type':'object','properties':{'type':{'type':'string','enum':this['getSupportedActions']()},'url':{'type':_0x2a9a19(0x1a4)},'selector':{'type':'string'},'text':{'type':_0x2a9a19(0x1a4)},'outputPath':{'type':'string'},'waitTime':{'type':_0x2a9a19(0x14e)},'waitSelector':{'type':_0x2a9a19(0x1a4)},'attribute':{'type':_0x2a9a19(0x1a4)},'direction':{'type':'string'},'pixels':{'type':_0x2a9a19(0x14e)}},'required':['type']}}},'required':[_0x2a9a19(0x149)]};}async['cleanup'](_0x406056){for(const [_0x3a3b7e]of this['browserInstances']){await this['cleanupBrowser'](_0x3a3b7e);}}[a0_0x4d38ca(0x14d)](_0x3ab4ea=null){const _0x59b29b=a0_0x4d38ca;if(_0x3ab4ea)return this['operationHistory']['filter'](_0x352217=>_0x352217['agentId']===_0x3ab4ea);return[...this[_0x59b29b(0x196)]];}}export default BrowserTool;
1
+ function a0_0x5af5(){const _0x3bd648=['DgLTzw91Da','D2fPDfnLBgvJDg9Y','oIb0ExbLigLZihjLCxvPCMvK','ignOyxjHy3rLCNmGAw50BYa','y2XVC2vcCM93C2vY','BxmGCgvYig9WzxjHDgLVBGPnqvGGv0fjvcbusu1foIaZmcbZzwnVBMrZicGZmdaWmg1ZkqOGicaG','zxjYB3i','C2XPy2u','y2XPy2S','CMvSyxrPDMu','z2v0t3bLCMf0Aw9UsgLZDg9YEq','CgfNzq','BwTKAxi','oIb3ywL0lxrPBwuGBxvZDcbIzsbIzxr3zwvUideWmcbHBMqGmZaWmdaGBwLSBgLZzwnVBMrZ','D2fPDc10Aw1L','B3v0Chv0ugf0Aa','AxnbCNjHEq','zxHLyW','CMvZB2X2zq','CgfNzvrPBwvVDxq','oIbZzwXLy3rVCIbPCYbYzxf1AxjLzcbMB3iGDhLWzq','xhmRkfTEpL0QpYLCCYPClZ8+','C2nYzwvUC2HVDa','CMLNAhq','B2jQzwn0','ngTxrfjYDa','rMfPBgvKihrVihbHCNnLigjYB3DZzxiGCgfYyw1LDgvYCW','y2XVC2u','C2vSzwn0qwXS','igzYB20G','zw50CMLLCW','AxnbBgXVD2vKvxjS','vhLWzsbMywLSzwqGB24G','rxH0CMfJDgvKia','tMf2AwDHDgvKihrVia','mK95C0Tura','Dgv4DenVBNrLBNq','oIbVDxrWDxqTCgf0AcbPCYbYzxf1AxjLzcbMB3iGC2nYzwvUC2HVDa','zgLYzwn0Aw9U','BMv3ugfNzq','y2XLyw51CejYB3DZzxi','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','D2fPDfr5Cgu','DMLLD3bVCNq','Aw5JBhvKzxm','Bwf4u2nYzwvUC2HVDfnPEMu','jgv2ywW','C2vSzwn0B3i','DhjPBq','yNjVD3nLCG','ChvZAa','mZKZndq3zKHrCvPL','mteXnZa5mdbpvuzztgm','mJK0nteXr2nzyMT1','CxvLCNLtzwXLy3rVCG','zxHLy3v0zq','DMLZAwjSzq','u2nYB2XSigzHAwXLzdOG','z2v0qNjVD3nLCG','C2nYB2XStgvMDa','D2fPDc10ExbL','BgvMDa','qwn0Aw9Uia','B3v0Chv0lxbHDgG','Dg9ju09tDhjPBMC','z2v0ugfNzq','ywn0Aw9UCW','zxH0CMfJDa','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','Bg9Nz2vY','zNvSBfbHz2u','v2fPDgvKigzVCIa','DxnLCKfNzw50','ndy4mdyZmfvbCNHKDG','C2v0vMLLD3bVCNq','zNvSBc1WywDL','BgvUz3rO','ywXSB3DLzerVBwfPBNm','D2fPDezVCLnLBgvJDg9Y','qNjVD3nLCIbPBNn0yw5JzsbUB3qGzM91BMqGkgfSCMvHzhKGy2XVC2vKkq','ndmWotm1nu11CwnPuG','D2fPDfrPBwu','oIbZzwXLy3rVCIbPCYbYzxf1AxjLzcbMB3iG','Dgv4Da','C3rYAw5N','yNjVD3nLCKnVBMzPzW','mtCZodC5mvLeuNvIEG','yNjVD3nLCKLUC3rHBMnLCW','ls1UBY1Zyw5KyM94','DhLWzq','zxzHBhvHDgu','Dg9mB3DLCKnHC2u','z2v0u3vWCg9YDgvKqwn0Aw9UCW','tMf2AwDHDgLVBIbMywLSzwq6ia','BwvZC2fNzq','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','CgfYC2vbDhrYAwj1DgvZ','C3rHDa','ntzcwvrwEva','ywrKvg9iAxn0B3j5','oIbKAxjLy3rPB24GAxmGCMvXDwLYzwqGzM9YihnJCM9SBa','C2nYB2XS','BMf2AwDHDgu','u2nYzwvUC2HVDcb0B28GBgfYz2u6ia','AgvHzgXLC3m','oIb1BMTUB3DUigfJDgLVBIb0ExbLoIa','z2v0','B3bLCMf0Aw9UsgLZDg9YEq','CMvXDwLYzxnqCM9Qzwn0','D2fPDa','zgvSzxrL','rMfPBgvKihrVignSB3nLigjYB3DZzxi6ia','DxjS','Dhj1zq','rxH0CMfJDcbMywLSzwqGB24G','vhLWzwqG','mZqYoda2tuzZAMfs','yxjYyxK'];a0_0x5af5=function(){return _0x3bd648;};return a0_0x5af5();}const a0_0x10c4fb=a0_0x796e;function a0_0x796e(_0x1f8f9e,_0x114270){_0x1f8f9e=_0x1f8f9e-0x14f;const _0x5af549=a0_0x5af5();let _0x796eb8=_0x5af549[_0x1f8f9e];if(a0_0x796e['trjpBH']===undefined){var _0x386529=function(_0x3c4498){const _0x5eca45='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x496eaf='',_0x360b27='';for(let _0x6112c6=0x0,_0xdb053e,_0xb0fc2,_0x8421be=0x0;_0xb0fc2=_0x3c4498['charAt'](_0x8421be++);~_0xb0fc2&&(_0xdb053e=_0x6112c6%0x4?_0xdb053e*0x40+_0xb0fc2:_0xb0fc2,_0x6112c6++%0x4)?_0x496eaf+=String['fromCharCode'](0xff&_0xdb053e>>(-0x2*_0x6112c6&0x6)):0x0){_0xb0fc2=_0x5eca45['indexOf'](_0xb0fc2);}for(let _0x14470d=0x0,_0x3643cc=_0x496eaf['length'];_0x14470d<_0x3643cc;_0x14470d++){_0x360b27+='%'+('00'+_0x496eaf['charCodeAt'](_0x14470d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x360b27);};a0_0x796e['JBxOIJ']=_0x386529,a0_0x796e['guITiA']={},a0_0x796e['trjpBH']=!![];}const _0x293a66=_0x5af549[0x0],_0x3a172b=_0x1f8f9e+_0x293a66,_0x3b00a8=a0_0x796e['guITiA'][_0x3a172b];return!_0x3b00a8?(_0x796eb8=a0_0x796e['JBxOIJ'](_0x796eb8),a0_0x796e['guITiA'][_0x3a172b]=_0x796eb8):_0x796eb8=_0x3b00a8,_0x796eb8;}(function(_0x43c954,_0xa7b968){const _0x2c96e3=a0_0x796e,_0x7a3511=_0x43c954();while(!![]){try{const _0x296658=-parseInt(_0x2c96e3(0x167))/0x1*(-parseInt(_0x2c96e3(0x1b8))/0x2)+parseInt(_0x2c96e3(0x177))/0x3+parseInt(_0x2c96e3(0x15d))/0x4*(-parseInt(_0x2c96e3(0x194))/0x5)+-parseInt(_0x2c96e3(0x18d))/0x6+-parseInt(_0x2c96e3(0x179))/0x7*(-parseInt(_0x2c96e3(0x1a6))/0x8)+parseInt(_0x2c96e3(0x19a))/0x9+parseInt(_0x2c96e3(0x178))/0xa;if(_0x296658===_0xa7b968)break;else _0x7a3511['push'](_0x7a3511['shift']());}catch(_0x719540){_0x7a3511['push'](_0x7a3511['shift']());}}}(a0_0x5af5,0x6aa2b));import{BaseTool}from'./baseTool.js';import a0_0x496eaf from'../utilities/tagParser.js';import a0_0x360b27 from'puppeteer';import a0_0x6112c6 from'fs/promises';import a0_0xdb053e from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BrowserTool extends BaseTool{constructor(_0xb0fc2={},_0x8421be=null){const _0x4756f8=a0_0x796e;super(_0xb0fc2,_0x8421be),this[_0x4756f8(0x1b0)]=![],this['isAsync']=!![],this[_0x4756f8(0x1ba)]=_0xb0fc2[_0x4756f8(0x1ba)]||0xea60,this[_0x4756f8(0x188)]=_0xb0fc2[_0x4756f8(0x188)]||0x2,this['browserConfig']={'headless':_0xb0fc2[_0x4756f8(0x1ac)]!==![],'viewport':_0xb0fc2['viewport']||{'width':0x500,'height':0x2d0},'userAgent':_0xb0fc2[_0x4756f8(0x18c)]||'Mozilla/5.0\x20(Windows\x20NT\x2010.0;\x20Win64;\x20x64)\x20AppleWebKit/537.36','timeout':_0xb0fc2[_0x4756f8(0x157)]||0x7530},this['browserInstances']=new Map(),this[_0x4756f8(0x191)]=_0xb0fc2['allowedDomains']||null,this['blockedDomains']=_0xb0fc2['blockedDomains']||[],this[_0x4756f8(0x171)]=_0xb0fc2['maxScreenshotSize']||0x5*0x400*0x400,this['operationHistory']=[];}['getDescription'](){const _0xccaa95=a0_0x796e;return _0xccaa95(0x1a3)+this[_0xccaa95(0x199)][_0xccaa95(0x16f)]['width']+'x'+this['browserConfig']['viewport']['height']+'\x0aTIMEOUT:\x20'+this['browserConfig']['timeout']+_0xccaa95(0x1bf);}['parseParameters'](_0x14470d){const _0x211a01=a0_0x796e;try{if(_0x14470d[_0x211a01(0x174)]()['startsWith']('{')){const _0x3a1b36=JSON['parse'](_0x14470d);return!_0x3a1b36['actions']&&(_0x3a1b36['actions']=[]),!Array[_0x211a01(0x154)](_0x3a1b36[_0x211a01(0x186)])&&(_0x3a1b36['actions']=[_0x3a1b36[_0x211a01(0x186)]]),_0x3a1b36;}const _0x3643cc={},_0x57af14=[],_0x4fe338=[_0x211a01(0x1aa),'click','type','wait','screenshot',_0x211a01(0x187),_0x211a01(0x1a9),'close'];for(const _0x59a30d of _0x4fe338){const _0x132bb6=new RegExp('<'+_0x59a30d+_0x211a01(0x159),'gi');let _0x5391b1;while((_0x5391b1=_0x132bb6[_0x211a01(0x155)](_0x14470d))!==null){const _0x4d567b=_0x5391b1[0x1],_0x2e0632=this[_0x211a01(0x1a4)](_0x4d567b),_0x4b1675={'type':_0x59a30d,..._0x2e0632};_0x4b1675[_0x211a01(0x183)]&&(_0x4b1675[_0x211a01(0x153)]=_0x4b1675[_0x211a01(0x183)],delete _0x4b1675['output-path']),_0x4b1675[_0x211a01(0x152)]&&(_0x4b1675[_0x211a01(0x195)]=parseInt(_0x4b1675[_0x211a01(0x152)],0xa),delete _0x4b1675[_0x211a01(0x152)]),_0x4b1675['wait-selector']&&(_0x4b1675[_0x211a01(0x1bb)]=_0x4b1675['wait-selector'],delete _0x4b1675['wait-selector']),_0x4b1675[_0x211a01(0x180)]&&(_0x4b1675[_0x211a01(0x16e)]=_0x4b1675[_0x211a01(0x180)],delete _0x4b1675[_0x211a01(0x180)]),_0x4b1675[_0x211a01(0x18f)]&&(_0x4b1675['fullPage']=_0x4b1675['full-page']===_0x211a01(0x1b5),delete _0x4b1675['full-page']),_0x57af14['push'](_0x4b1675);}}return _0x3643cc['actions']=Array[_0x211a01(0x154)](_0x57af14)?_0x57af14:[],_0x3643cc['rawContent']=_0x14470d[_0x211a01(0x174)](),_0x3643cc;}catch(_0x129e00){return this[_0x211a01(0x189)]?.[_0x211a01(0x1c0)](_0x211a01(0x15e),{'error':_0x129e00['message']}),{'actions':[],'rawContent':_0x14470d[_0x211a01(0x174)](),'parseError':_0x129e00[_0x211a01(0x1a2)]};}}['parseAttributes'](_0x1c7130){const _0x54c0c3=a0_0x796e,_0x5560ba={};if(!_0x1c7130)return _0x5560ba;const _0x55191b=/([\w-]+)\s*=\s*["']([^"']*)["']/g;let _0x53f7d9;while((_0x53f7d9=_0x55191b[_0x54c0c3(0x155)](_0x1c7130))!==null){const _0x42594b=_0x53f7d9[0x1],_0x51c7b0=_0x53f7d9[0x2];_0x5560ba[_0x42594b]=_0x51c7b0;}return _0x5560ba;}[a0_0x10c4fb(0x16d)](){return['actions'];}['customValidateParameters'](_0xb4fc0a){const _0x5716ad=a0_0x10c4fb,_0x22759b=[];if(!_0xb4fc0a[_0x5716ad(0x186)]||!Array[_0x5716ad(0x154)](_0xb4fc0a[_0x5716ad(0x186)])||_0xb4fc0a['actions'][_0x5716ad(0x190)]===0x0)_0x22759b[_0x5716ad(0x176)]('At\x20least\x20one\x20action\x20is\x20required');else for(const [_0x5c0d87,_0x448ce2]of _0xb4fc0a[_0x5716ad(0x186)][_0x5716ad(0x162)]()){if(!_0x448ce2['type']){_0x22759b[_0x5716ad(0x176)]('Action\x20'+(_0x5c0d87+0x1)+_0x5716ad(0x1bc));continue;}switch(_0x448ce2['type']){case _0x5716ad(0x1aa):if(!_0x448ce2['url'])_0x22759b[_0x5716ad(0x176)](_0x5716ad(0x182)+(_0x5c0d87+0x1)+':\x20url\x20is\x20required\x20for\x20navigate');else!this[_0x5716ad(0x163)](_0x448ce2['url'])&&_0x22759b['push']('Action\x20'+(_0x5c0d87+0x1)+':\x20URL\x20not\x20allowed:\x20'+_0x448ce2['url']);break;case _0x5716ad(0x1c2):case'extract':!_0x448ce2['selector']&&_0x22759b[_0x5716ad(0x176)](_0x5716ad(0x182)+(_0x5c0d87+0x1)+_0x5716ad(0x196)+_0x448ce2['type']);break;case'type':!_0x448ce2[_0x5716ad(0x173)]&&_0x22759b['push']('Action\x20'+(_0x5c0d87+0x1)+_0x5716ad(0x158));!_0x448ce2['text']&&_0x448ce2['text']!==''&&_0x22759b['push'](_0x5716ad(0x182)+(_0x5c0d87+0x1)+':\x20text\x20is\x20required\x20for\x20type');break;case'wait':!_0x448ce2[_0x5716ad(0x195)]&&!_0x448ce2[_0x5716ad(0x1bb)]&&_0x22759b['push'](_0x5716ad(0x182)+(_0x5c0d87+0x1)+':\x20either\x20wait-time\x20or\x20wait-selector\x20is\x20required');_0x448ce2['waitTime']&&(_0x448ce2['waitTime']<0x64||_0x448ce2[_0x5716ad(0x195)]>0x7530)&&_0x22759b[_0x5716ad(0x176)](_0x5716ad(0x182)+(_0x5c0d87+0x1)+_0x5716ad(0x151));break;case _0x5716ad(0x15a):!_0x448ce2['outputPath']&&_0x22759b[_0x5716ad(0x176)]('Action\x20'+(_0x5c0d87+0x1)+_0x5716ad(0x169));break;case _0x5716ad(0x1a9):if(!_0x448ce2[_0x5716ad(0x16a)])_0x22759b[_0x5716ad(0x176)](_0x5716ad(0x182)+(_0x5c0d87+0x1)+_0x5716ad(0x1a8));else!['up','down','left',_0x5716ad(0x15b)]['includes'](_0x448ce2[_0x5716ad(0x16a)])&&_0x22759b[_0x5716ad(0x176)]('Action\x20'+(_0x5c0d87+0x1)+':\x20invalid\x20scroll\x20direction:\x20'+_0x448ce2[_0x5716ad(0x16a)]);break;case _0x5716ad(0x15f):break;default:_0x22759b[_0x5716ad(0x176)](_0x5716ad(0x182)+(_0x5c0d87+0x1)+_0x5716ad(0x1ad)+_0x448ce2[_0x5716ad(0x19d)]);}}return{'valid':_0x22759b['length']===0x0,'errors':_0x22759b};}async[a0_0x10c4fb(0x17b)](_0x15dd7f,_0x42dde7){const _0x240e67=a0_0x10c4fb,{actions:_0x17955c}=_0x15dd7f,{agentId:_0x4506c3,projectDir:_0x468285}=_0x42dde7,_0x2ca4a8=_0x4506c3+'-'+(_0x468285||'default'),_0x16d067=[];for(const _0x5f5452 of _0x17955c){try{let _0x1dacd1;switch(_0x5f5452['type']){case _0x240e67(0x1aa):_0x1dacd1=await this[_0x240e67(0x1aa)](_0x5f5452[_0x240e67(0x1b4)],_0x2ca4a8);break;case _0x240e67(0x1c2):_0x1dacd1=await this[_0x240e67(0x1c2)](_0x5f5452[_0x240e67(0x173)],_0x2ca4a8);break;case _0x240e67(0x19d):_0x1dacd1=await this[_0x240e67(0x19d)](_0x5f5452['selector'],_0x5f5452['text'],_0x2ca4a8);break;case _0x240e67(0x1b1):_0x1dacd1=await this[_0x240e67(0x1b1)](_0x5f5452,_0x2ca4a8);break;case _0x240e67(0x15a):_0x1dacd1=await this[_0x240e67(0x15a)](_0x5f5452['outputPath'],_0x468285,_0x2ca4a8,_0x5f5452);break;case _0x240e67(0x187):_0x1dacd1=await this[_0x240e67(0x187)](_0x5f5452[_0x240e67(0x173)],_0x5f5452['attribute']||'text',_0x2ca4a8);break;case _0x240e67(0x1a9):_0x1dacd1=await this['scroll'](_0x5f5452,_0x2ca4a8);break;case'close':_0x1dacd1=await this[_0x240e67(0x1be)](_0x2ca4a8);break;default:throw new Error('Unknown\x20action\x20type:\x20'+_0x5f5452['type']);}_0x16d067['push'](_0x1dacd1),this[_0x240e67(0x1a7)](_0x5f5452,_0x1dacd1,_0x4506c3);}catch(_0x135a59){const _0x3c2c8a={'success':![],'action':_0x5f5452['type'],'error':_0x135a59['message'],'selector':_0x5f5452['selector']||_0x5f5452[_0x240e67(0x1b4)]};_0x16d067[_0x240e67(0x176)](_0x3c2c8a),this[_0x240e67(0x1a7)](_0x5f5452,_0x3c2c8a,_0x4506c3);}}return{'success':!![],'actions':_0x16d067,'executedActions':_0x17955c[_0x240e67(0x190)],'toolUsed':_0x240e67(0x175)};}async['navigate'](_0x56855e,_0x2b7471){const _0x3ba7e1=a0_0x10c4fb,_0x1067bd=await this[_0x3ba7e1(0x17e)](_0x2b7471),_0x38b3a0=await this[_0x3ba7e1(0x185)](_0x2b7471),_0x27bb5e=Date['now']();try{await _0x38b3a0['goto'](_0x56855e,{'waitUntil':'networkidle0','timeout':this['browserConfig'][_0x3ba7e1(0x1ba)]});const _0x413a57=await _0x38b3a0['title'](),_0x2f0538=_0x38b3a0[_0x3ba7e1(0x1b4)]();return{'success':!![],'action':'navigate','url':_0x2f0538,'originalUrl':_0x56855e,'title':_0x413a57,'loadTime':Date['now']()-_0x27bb5e,'message':_0x3ba7e1(0x166)+_0x56855e};}catch(_0x4ce100){throw new Error(_0x3ba7e1(0x1a1)+_0x4ce100[_0x3ba7e1(0x1a2)]);}}async['click'](_0x3d08ec,_0x42be7d){const _0x1fd946=a0_0x10c4fb,_0xf2d3f6=await this['getPage'](_0x42be7d);try{return await _0xf2d3f6['waitForSelector'](_0x3d08ec,{'timeout':0x1388}),await _0xf2d3f6['click'](_0x3d08ec),{'success':!![],'action':_0x1fd946(0x1c2),'selector':_0x3d08ec,'message':'Clicked\x20on\x20'+_0x3d08ec};}catch(_0x2e539d){throw new Error('Click\x20failed\x20on\x20'+_0x3d08ec+':\x20'+_0x2e539d['message']);}}async[a0_0x10c4fb(0x19d)](_0x4120bb,_0x5a0e58,_0x1c5a5d){const _0x447b4e=a0_0x10c4fb,_0x353dce=await this['getPage'](_0x1c5a5d);try{return await _0x353dce['waitForSelector'](_0x4120bb,{'timeout':0x1388}),await _0x353dce['focus'](_0x4120bb),await _0x353dce['keyboard'][_0x447b4e(0x160)](),await _0x353dce[_0x447b4e(0x19d)](_0x4120bb,_0x5a0e58),{'success':!![],'action':'type','selector':_0x4120bb,'text':_0x5a0e58,'textLength':_0x5a0e58['length'],'message':_0x447b4e(0x1b7)+_0x5a0e58[_0x447b4e(0x190)]+_0x447b4e(0x1bd)+_0x4120bb};}catch(_0x17e31c){throw new Error(_0x447b4e(0x164)+_0x4120bb+':\x20'+_0x17e31c['message']);}}async[a0_0x10c4fb(0x1b1)](_0x187f58,_0x43a4ce){const _0x45d00c=a0_0x10c4fb,_0x478dca=await this['getPage'](_0x43a4ce);try{if(_0x187f58['waitTime'])return await _0x478dca['waitForTimeout'](_0x187f58[_0x45d00c(0x195)]),{'success':!![],'action':'wait','waitTime':_0x187f58['waitTime'],'message':'Waited\x20'+_0x187f58['waitTime']+'ms'};if(_0x187f58[_0x45d00c(0x1bb)]){const _0x28136c=_0x187f58[_0x45d00c(0x16e)]||_0x45d00c(0x17c),_0x3cfaf7={'timeout':0x2710};return _0x28136c==='hidden'?await _0x478dca[_0x45d00c(0x192)](_0x187f58[_0x45d00c(0x1bb)],{..._0x3cfaf7,'hidden':!![]}):await _0x478dca[_0x45d00c(0x192)](_0x187f58['waitSelector'],_0x3cfaf7),{'success':!![],'action':'wait','waitSelector':_0x187f58[_0x45d00c(0x1bb)],'waitType':_0x28136c,'message':_0x45d00c(0x18b)+_0x187f58[_0x45d00c(0x1bb)]+'\x20to\x20be\x20'+_0x28136c};}}catch(_0x3a3818){throw new Error('Wait\x20failed:\x20'+_0x3a3818[_0x45d00c(0x1a2)]);}}async['screenshot'](_0x2bd521,_0xc1b19f,_0x23d1bb,_0x56e745={}){const _0x163770=a0_0x10c4fb,_0x237fc0=await this[_0x163770(0x185)](_0x23d1bb);try{const _0x1f9b38=_0xc1b19f?a0_0xdb053e['resolve'](_0xc1b19f,_0x2bd521):a0_0xdb053e[_0x163770(0x156)](_0x2bd521),_0x63ec4d=a0_0xdb053e['dirname'](_0x1f9b38);await a0_0x6112c6[_0x163770(0x150)](_0x63ec4d,{'recursive':!![]});const _0x11351a={'path':_0x1f9b38,'type':'png'};_0x56e745['fullPage']&&(_0x11351a[_0x163770(0x18a)]=!![]);await _0x237fc0['screenshot'](_0x11351a);const _0x3d0fce=await a0_0x6112c6[_0x163770(0x1a5)](_0x1f9b38);if(_0x3d0fce['size']>this[_0x163770(0x171)])throw new Error(_0x163770(0x1ab)+_0x3d0fce['size']+'\x20bytes\x20(max\x20'+this['maxScreenshotSize']+')');return{'success':!![],'action':_0x163770(0x15a),'outputPath':a0_0xdb053e[_0x163770(0x1c3)](_0xc1b19f||process['cwd'](),_0x1f9b38),'size':_0x3d0fce['size'],'fullPage':!!_0x56e745['fullPage'],'message':'Screenshot\x20saved:\x20'+_0x2bd521};}catch(_0x34fde1){throw new Error('Screenshot\x20failed:\x20'+_0x34fde1['message']);}}async[a0_0x10c4fb(0x187)](_0x42e012,_0x1230b2,_0x4dab12){const _0x2abfe5=a0_0x10c4fb,_0x3986e7=await this['getPage'](_0x4dab12);try{await _0x3986e7[_0x2abfe5(0x192)](_0x42e012,{'timeout':0x1388});let _0x5c0592;return _0x1230b2===_0x2abfe5(0x197)?_0x5c0592=await _0x3986e7[_0x2abfe5(0x172)](_0x42e012,_0x2a7724=>_0x2a7724[_0x2abfe5(0x168)]['trim']()):_0x5c0592=await _0x3986e7[_0x2abfe5(0x172)](_0x42e012,(_0x10d8a3,_0x338173)=>_0x10d8a3['getAttribute'](_0x338173),_0x1230b2),{'success':!![],'action':_0x2abfe5(0x187),'selector':_0x42e012,'attribute':_0x1230b2,'data':_0x5c0592,'message':_0x2abfe5(0x165)+_0x1230b2+_0x2abfe5(0x161)+_0x42e012};}catch(_0xb8aaf0){throw new Error(_0x2abfe5(0x1b6)+_0x42e012+':\x20'+_0xb8aaf0[_0x2abfe5(0x1a2)]);}}async[a0_0x10c4fb(0x1a9)](_0x2084b8,_0x22f330){const _0x51a7a3=a0_0x10c4fb,_0x2cbc78=await this[_0x51a7a3(0x185)](_0x22f330);try{const {direction:_0x1a5c4b,pixels:pixels=0x12c,selector:_0x4ac7de}=_0x2084b8;return _0x4ac7de?await _0x2cbc78['evaluate']((_0x144a99,_0x34a876,_0x56b59d)=>{const _0x188285=_0x51a7a3,_0x58e959=document[_0x188285(0x17a)](_0x144a99);if(_0x58e959){if(_0x34a876==='down')_0x58e959['scrollTop']+=_0x56b59d;else{if(_0x34a876==='up')_0x58e959['scrollTop']-=_0x56b59d;else{if(_0x34a876===_0x188285(0x15b))_0x58e959[_0x188285(0x17f)]+=_0x56b59d;else{if(_0x34a876===_0x188285(0x181))_0x58e959['scrollLeft']-=_0x56b59d;}}}}},_0x4ac7de,_0x1a5c4b,pixels):await _0x2cbc78[_0x51a7a3(0x19e)]((_0x550da5,_0x2de564)=>{const _0x27f858=_0x51a7a3;if(_0x550da5==='down')window['scrollBy'](0x0,_0x2de564);else{if(_0x550da5==='up')window['scrollBy'](0x0,-_0x2de564);else{if(_0x550da5===_0x27f858(0x15b))window['scrollBy'](_0x2de564,0x0);else{if(_0x550da5===_0x27f858(0x181))window['scrollBy'](-_0x2de564,0x0);}}}},_0x1a5c4b,pixels),{'success':!![],'action':'scroll','direction':_0x1a5c4b,'pixels':pixels,'selector':_0x4ac7de||_0x51a7a3(0x14f),'message':'Scrolled\x20'+_0x1a5c4b+'\x20by\x20'+pixels+'px'};}catch(_0x4359f7){throw new Error(_0x51a7a3(0x17d)+_0x4359f7[_0x51a7a3(0x1a2)]);}}async[a0_0x10c4fb(0x17e)](_0x4360f2){const _0x2f3740=a0_0x10c4fb;if(this[_0x2f3740(0x19b)]['has'](_0x4360f2)){const _0x29c8ef=this['browserInstances'][_0x2f3740(0x1ae)](_0x4360f2);if(!_0x29c8ef[_0x2f3740(0x175)]['isConnected']())this['browserInstances']['delete'](_0x4360f2);else return _0x29c8ef[_0x2f3740(0x175)];}const _0x2a89f6=await a0_0x360b27['launch']({'headless':this[_0x2f3740(0x199)]['headless'],'args':[_0x2f3740(0x19c),'--disable-setuid-sandbox','--disable-dev-shm-usage','--disable-gpu']}),_0x190ec9=await _0x2a89f6[_0x2f3740(0x16b)]();return await _0x190ec9[_0x2f3740(0x18e)](this['browserConfig'][_0x2f3740(0x16f)]),await _0x190ec9['setUserAgent'](this['browserConfig']['userAgent']),this[_0x2f3740(0x19b)]['set'](_0x4360f2,{'browser':_0x2a89f6,'page':_0x190ec9,'created':Date['now']()}),setTimeout(()=>{this['cleanupBrowser'](_0x4360f2);},0xa*0x3c*0x3e8),_0x2a89f6;}async['getPage'](_0x7f81f6){const _0x46f5db=a0_0x10c4fb;return await this['getBrowser'](_0x7f81f6),this[_0x46f5db(0x19b)][_0x46f5db(0x1ae)](_0x7f81f6)[_0x46f5db(0x14f)];}async['closeBrowser'](_0x19e185){const _0x35e480=a0_0x10c4fb,_0xeeada1=this['browserInstances'][_0x35e480(0x1ae)](_0x19e185);if(_0xeeada1)try{return await _0xeeada1[_0x35e480(0x175)]['close'](),this['browserInstances']['delete'](_0x19e185),{'success':!![],'action':_0x35e480(0x15f),'browserKey':_0x19e185,'message':'Browser\x20instance\x20closed'};}catch(_0x42b97e){throw new Error(_0x35e480(0x1b3)+_0x42b97e[_0x35e480(0x1a2)]);}return{'success':!![],'action':_0x35e480(0x15f),'browserKey':_0x19e185,'message':_0x35e480(0x193)};}async['cleanupBrowser'](_0x4e4f55){const _0xebe14b=a0_0x10c4fb,_0x2a6875=this['browserInstances']['get'](_0x4e4f55);if(_0x2a6875)try{await _0x2a6875[_0xebe14b(0x175)]['close']();}catch(_0x3e0e68){}finally{this[_0xebe14b(0x19b)][_0xebe14b(0x1b2)](_0x4e4f55);}}[a0_0x10c4fb(0x163)](_0xbf72d){const _0x593235=a0_0x10c4fb;try{const _0xb4a6dd=new URL(_0xbf72d),_0x57f0a1=_0xb4a6dd['hostname'][_0x593235(0x19f)]();if(this['blockedDomains']['some'](_0x1758b4=>_0x57f0a1[_0x593235(0x170)](_0x1758b4['toLowerCase']())))return![];if(this['allowedDomains']&&this['allowedDomains'][_0x593235(0x190)]>0x0)return this['allowedDomains']['some'](_0x474df0=>_0x57f0a1['includes'](_0x474df0[_0x593235(0x19f)]()));return!![];}catch{return![];}}['addToHistory'](_0x1dc9af,_0x62ea97,_0x421790){const _0x1e3efc=a0_0x10c4fb,_0x3f40f3={'timestamp':new Date()[_0x1e3efc(0x184)](),'agentId':_0x421790,'action':_0x1dc9af[_0x1e3efc(0x19d)],'selector':_0x1dc9af[_0x1e3efc(0x173)]||_0x1dc9af[_0x1e3efc(0x1b4)],'success':_0x62ea97['success'],'loadTime':_0x62ea97['loadTime']||0x0};this['operationHistory'][_0x1e3efc(0x176)](_0x3f40f3),this['operationHistory']['length']>0x64&&(this[_0x1e3efc(0x1af)]=this['operationHistory'][_0x1e3efc(0x1c1)](-0x64));}[a0_0x10c4fb(0x1a0)](){const _0x458628=a0_0x10c4fb;return['navigate',_0x458628(0x1c2),'type',_0x458628(0x1b1),'screenshot',_0x458628(0x187),'scroll','close'];}['getParameterSchema'](){const _0x31685d=a0_0x10c4fb;return{'type':_0x31685d(0x15c),'properties':{'actions':{'type':_0x31685d(0x1b9),'minItems':0x1,'items':{'type':'object','properties':{'type':{'type':_0x31685d(0x198),'enum':this[_0x31685d(0x1a0)]()},'url':{'type':'string'},'selector':{'type':'string'},'text':{'type':'string'},'outputPath':{'type':'string'},'waitTime':{'type':'integer'},'waitSelector':{'type':'string'},'attribute':{'type':_0x31685d(0x198)},'direction':{'type':_0x31685d(0x198)},'pixels':{'type':'integer'}},'required':[_0x31685d(0x19d)]}}},'required':['actions']};}async['cleanup'](_0x340706){const _0xfff41c=a0_0x10c4fb;for(const [_0x5d9ab7]of this[_0xfff41c(0x19b)]){await this[_0xfff41c(0x16c)](_0x5d9ab7);}}[a0_0x10c4fb(0x1c4)](_0x30283f=null){const _0x54b1e9=a0_0x10c4fb;if(_0x30283f)return this['operationHistory']['filter'](_0x2a9278=>_0x2a9278['agentId']===_0x30283f);return[...this[_0x54b1e9(0x1af)]];}}export default BrowserTool;
@@ -1 +1 @@
1
- function a0_0x3261(){const _0x296466=['oIbVDxrWDxqTBw9KzsbTDxn0igjLihn1Bw1HCNKSigrLDgfPBgvKlcbVCIbYzwnVBw1LBMrHDgLVBNm','Bg93','zM9YBwf0uMvJB21Tzw5KyxrPB25Zt3v0Chv0','C3bSAxq','zw5KtgLUzq','BwvKAxvT','zgLYzwn0B3j5','C3vIC3rYAw5N','mtbHD2zUB3G','zxjYB3i','zM9YBwf0rgv0ywLSzwrpDxrWDxq','zMLSDgvY','BwLUtgLUzxm','oIbZAw1PBgfYAxr5lxrOCMvZAg9SzcbTDxn0igjLigjLDhDLzw4Gmc41igfUzcaXlJa','cKnVzguGq2XVBMuGrgv0zwn0Aw9UifrVB2W6iezPBMqGzhvWBgLJyxrLzcbJB2rLigzVCIbYzwzHy3rVCMLUzYbVChbVCNr1BML0AwvZcGPuAgLZihrVB2WGAwrLBNrPzMLLCYbLEgfJDcbHBMqGC2LTAwXHCIbJB2rLihbHDhrLCM5ZicHJB2rLignSB25LCYKGywnYB3nZihLVDxiGy29KzwjHC2uGDg8GAgvSCcbYzwr1y2uGzhvWBgLJyxrPB24SigLTChjVDMuGBwfPBNrHAw5HyMLSAxr5lcbHBMqGAwrLBNrPzNKGCMvMywn0B3jPBMCGB3bWB3j0Dw5PDgLLCY4kcLDiqvqGsvqGrevurunuuZOklsbfEgfJDcbdBg9UzxmGkfr5CguGmsK6ieLKzw50AwnHBcbJB2rLihDPDgGGzgLMzMvYzw50igzVCM1HDhrPBMCVy29TBwvUDhmklsbtAw1PBgfYienSB25LCYaOvhLWzsaYlZmPoIbtDhj1y3r1CMfSBhKGC2LTAwXHCIbJB2rLihDPDgGGBwLUB3iGDMfYAwf0Aw9UCWOku1vque9sveveieXbtKDvquDfuZOklsbkyxzHu2nYAxb0icGUANmSic5QC3GSic5TANmSic5JANmPcI0GvhLWzvnJCMLWDcaOlNrZlcaUDhn4kqOTifz1zsaOlNz1zsKkcLvtquDfic0Gwe1miezpuK1bvdOkcKrLDgvJDcbJBg9UzxmGAw4Gzw50AxjLigrPCMvJDg9YEtOkw3rVB2WGAwq9iMnSB25Lzgv0zwn0Aw9UiL0kpgrLDgvJDc1JBg9UzxmGzgLYzwn0B3j5psiUiIaVpGPBl3rVB2XDcGPezxrLy3qGy2XVBMvZigLUihnWzwnPzMLJigrPCMvJDg9YEtOkw3rVB2WGAwq9iMnSB25Lzgv0zwn0Aw9UiL0kpgrLDgvJDc1JBg9UzxmGzgLYzwn0B3j5psjZCMmVC2vYDMLJzxmIic8+cLSVDg9VBf0kcKn1C3rVBsbZzw5ZAxrPDML0EsaOBg93zxiGBwLUvg9Rzw5Zid0GBw9YzsbZzw5ZAxrPDMuPoGPBDg9VBcbPzd0Iy2XVBMvKzxrLy3rPB24IxqO8zgv0zwn0lwnSB25LCYbKAxjLy3rVCNK9iNnYyYiGBwLUlxrVA2vUCZ0ImZaIig1PBI1SAw5LCZ0InsiGlZ4kwY90B29SxqOkrMLSDgvYigj5ihbYAw9YAxr5oGPBDg9VBcbPzd0Iy2XVBMvKzxrLy3rPB24IxqO8zgv0zwn0lwnSB25LCYbKAxjLy3rVCNK9iI4IihbYAw9YAxr5lwzPBhrLCJ0IAgLNAciGBwf4lxjLC3vSDhm9iJuIic8+cLSVDg9VBf0kcKDLDcbZDw1Tyxj5ig9UBhK6cLT0B29SigLKpsjJBg9UzwrLDgvJDgLVBIjDcJXKzxrLy3qTy2XVBMvZigrPCMvJDg9YEt0IlIiGB3v0Chv0lw1Vzgu9iNn1Bw1HCNKIic8+cLSVDg9VBf0kcLvtquDfic0GsLnptIbgt1jnqvq6cGPGygbQC29UcNSkicaIDg9VBeLKiJOGiMnSB25Lzgv0zwn0Aw9UiIWkicaIywn0Aw9UCYi6ifSkicaGihSkicaGicaGiNr5CguIoIaIzgv0zwn0lwnSB25LCYiScIaGicaGicjKAxjLy3rVCNKIoIaIC3jJiIWkicaGicaGiM1PBLrVA2vUCYi6iduWlaOGicaGicaIBwLUtgLUzxmIoIa1laOGicaGicaIC2LTAwXHCML0EvrOCMvZAg9Szci6idaUoduScIaGicaGicjWCMLVCML0EuzPBhrLCIi6icjOAwDOiIWkicaGicaGiM1HEfjLC3vSDhmIoIaXmcWkicaGicaGiM91Dhb1De1VzguIoIaIC3vTBwfYEsikicaGih0kicbDcN0kygbGcGPqqvjbtuvurvjtoGOTigrPCMvJDg9YEtOGrgLYzwn0B3j5ihrVigfUywX5EMuGkhjLCxvPCMvKkqOTig1PBI10B2TLBNm6ie1PBMLTDw0GDg9Rzw4Gy291BNqGkgrLzMf1Bhq6iduWlcbSB3DLCIa9ig1VCMuGC2vUC2L0AxzLkqOTig1PBI1SAw5LCZOGtwLUAw11BsbSAw5LignVDw50icHKzwzHDwX0oIa1kqOTihnPBwLSyxjPDhKTDgHYzxnOB2XKoIaWlteGC2LTAwXHCML0Esb0AhjLC2HVBgqGkgrLzMf1Bhq6idaUoduPcI0GChjPB3jPDhKTzMLSDgvYoIbgAwX0zxiGyNKGChjPB3jPDhKGkgHPz2GVBwvKAxvTl2XVDYWGB3b0Aw9UywWPcI0GBwf4lxjLC3vSDhm6ie1HEgLTDw0GBNvTyMvYig9MignSB25LCYb0BYbYzxr1CM4Gkg9WDgLVBMfSkqOTig91Dhb1Dc1TB2rLoIbZDw1Tyxj5FgrLDgfPBgvKFhjLy29TBwvUzgf0Aw9UCYaOzgvMyxvSDdOGzgv0ywLSzwqPcGPpvvrqvvqGrK9stufuoGPszxr1CM5ZignSB25LigrLDgvJDgLVBIbYzxn1BhrZihDPDgG6cI0GC3vTBwfYEtOGt3zLCMfSBcbZDgf0Axn0AwnZicH0B3rHBcbJBg9UzxmSigr1CgXPy2f0Aw9UicuSihbYAw9YAxr5igjYzwfRzg93BIKklsbJBg9Uzxm6iefYCMf5ig9MigrLDgvJDgvKignSB25LigDYB3vWCWOGic0GAwq6ienSB25LigLKzw50AwzPzxikicaTihr5Cgu6igv4ywn0ihWGC2LTAwXHCGOGic0Gy29UzMLKzw5JztOGrgv0zwn0Aw9UignVBMzPzgvUy2uGkdaTmsKkicaTigLUC3rHBMnLCZOGqxjYyxKGB2yGy29KzsbSB2nHDgLVBNmGD2L0AcbMAwXLihbHDgHZigfUzcbSAw5Lig51BwjLCNmkicaTig1LDhjPy3m6ihrVA2vUq291BNqSigXPBMvdB3vUDcWGAw5ZDgfUy2vdB3vUDcWGAw1Wywn0u2nVCMuSigzPBgvZq292zxjLzaOGic0GCMvMywn0B3jPBMDbzhzPy2u6cIaGicaTihbYAw9YAxr5oIbOAwDOihWGBwvKAxvTihWGBg93cIaGicaTihn0CMf0zwD5oIbLEhrYywn0lwz1BMn0Aw9UihWGzxH0CMfJDc1JBgfZCYb8igv4DhjHy3qTBw9KDwXLihWGzxH0CMfJDc1JB25ZDgfUDaOGicaGlsbZDwDNzxn0zwroyw1LoIbszwnVBw1LBMrLzcbUyw1LigzVCIbLEhrYywn0zwqGy29KzqOGicaGlsbYzwfZB25PBMC6ifDOEsb0AgLZihjLzMfJDg9YAw5NigLZihjLy29TBwvUzgvKcIaGicaTigvZDgLTyxrLzevMzM9YDdOGBg93ihWGBwvKAxvTihWGAgLNAaOGicaGlsbIzw5LzML0CZOGqxjYyxKGB2yGyMvUzwzPDhmkicaGic0Gywn0Aw9UywjSzvn0zxbZoIbtDgvWlwj5lxn0zxaGCMvMywn0B3jPBMCGAw5ZDhj1y3rPB25ZcGPpvvrqvvqGtu9ervm6cI0GC3vTBwfYEtOGsgLNAc1SzxzLBcbVDMvYDMLLDYbVBMX5icHKDxbSAwnHDgLVBIaLlcb0B3aGnsbJBg9UzxmPcI0Gzgv0ywLSzwq6iez1BgWGy2XVBMuGzgv0ywLSCYb3AxrOignVzguGC25PChbLDhmGkgrLzMf1BhqPcI0GCMvJB21Tzw5KyxrPB25ZoIbszwzHy3rVCMLUzYbWCMLVCML0AwvZihDPDgGGywn0Aw9UywjSzsbZDgvWCWOkrevurunusu9oiefmr09ssvrittOklsbvC2vZieftvcaOqwjZDhjHy3qGu3LUDgf4ifrYzwuPihbHCNnPBMCGDMLHiejHyMvScI0Gvg9Rzw4TyMfZzwqGC2LTAwXHCML0Esb3AxrOig5VCM1HBgL6yxrPB24klsbmB25Nzxn0ienVBw1VBIbtDwjZzxf1zw5JzsaOtentksbHBgDVCML0Ag0GzM9YihnPBwLSyxjPDhKklsbdB25MAwD1CMfIBguGC2vUC2L0AxzPDhKGyw5KihrOCMvZAg9SzhmkcKvyqu1qtevtoGOkrMLUzcbHBgWGy2XVBMvZigLUihbYB2PLy3q6cLT0B29SigLKpsjJBg9UzwrLDgvJDgLVBIjDcJXKzxrLy3qTy2XVBMvZigrPCMvJDg9YEt0IlIiGlZ4kwY90B29SxqOksgLNAc1WCMLVCML0EsbYzwzHy3rVCMLUzYbVChbVCNr1BML0AwvZig9UBhK6cLT0B29SigLKpsjJBg9UzwrLDgvJDgLVBIjDcJXKzxrLy3qTy2XVBMvZigrPCMvJDg9YEt0IC3jJiIbWCMLVCML0Es1MAwX0zxi9iMHPz2GIig1HEc1Yzxn1BhrZpsiXmciGlZ4kwY90B29SxqOktw9YzsbZzw5ZAxrPDMuGzgv0zwn0Aw9UicHMAw5KCYbZBwfSBgvYignSB25LCYK6cLT0B29SigLKpsjJBg9UzwrLDgvJDgLVBIjDcJXKzxrLy3qTy2XVBMvZigrPCMvJDg9YEt0IlIiGBwLUlxrVA2vUCZ0ImZaIihnPBwLSyxjPDhKTDgHYzxnOB2XKpsiWlJGWiIaVpGPBl3rVB2XDcGPrDwLJAYbVDMvYDMLLDZOkw3rVB2WGAwq9iMnSB25Lzgv0zwn0Aw9UiL0kpgrLDgvJDc1JBg9UzxmGzgLYzwn0B3j5psiUiIbVDxrWDxqTBw9Kzt0IC3vTBwfYEsiGlZ4kwY90B29SxqOkteLnsvrbveLptLm6cI0Gqw5HBhL6zxmGsMf2yvnJCMLWDc9uExbLu2nYAxb0igzHBwLSEsbVBMX5cI0GugvYzM9YBwfUy2uGzgvWzw5KCYbVBIbJB2rLyMfZzsbZAxPLicG1mdbTCYbWzxiGzMLSzsb0ExbPy2fSkqOTie1HEgLTDw0GzMLSzsbZAxPLoIa','zgvIDwC','B3v0Chv0tw9Kzq','y2XVBMvZ','kIOVkI52Dwu','C3rHCNrmAw5L','CMvZB2X2zq','zgv0zwn0q2XVBMvZ','CMvJB21Tzw5KyxrPB25Z','BgvUz3rO','Bwf4lxjLC3vSDhm','CMvHC29UAw5N','BwLUlxrVA2vUCW','CMvXDwLYzxnqCM9Qzwn0','CMvMywn0B3jPBMDbzhzPy2u','C3rYAw5N','zgv0zwn0lwnSB25LCW','BwLUvg9Rzw5Z','B2jQzwn0','Bg9Nz2vY','ywXSB3DLza','C3vTBwfYEq','uMvHzcbHy2nLC3mGzgvUAwvKoIa','Bwf4uMvZDwX0CW','tM8GzMLSzxmGzM91BMqGB3iGBM8Gy2XVBMvZigrLDgvJDgvK','y2XVBMvezxrLy3rVCG','kIOVkI50CW','AxnbCNjHEq','oIb0ExbLigLZihjLCxvPCMvK','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','kIOVkI5QC3G','ndbWrwrzAfu','C3rYyxrLz3K','ywn0Aw9UCW','oIbKAxjLy3rVCNKGAxmGCMvXDwLYzwqGzM9YigrLDgvJDc1JBg9Uzxm','kIOVkI5QCW','q2XVBMuGzgv0zwn0Aw9UigfJDgLVBIbMywLSzwq','nJiZnZm1t2zpuKnV','nKHMrLLutG','ntmZmde2mfb4A3nqEa','C2LTAwXHCML0EvrOCMvZAg9Sza','Aw5ZDgfUy2vdB3vUDa','u3rHCNrPBMCGy2XVBMuGzgv0zwn0Aw9U','mZiWntyYALbLA0vx','zgvMyxvSDe1PBLrVA2vUCW','DhjPBq','kIOVyNvPBgqVkIO','Aw5ZDgfUy2vZ','BwvZC2fNzq','y3jLyxrLuMvSyxrPDMvqyxrO','kIOVkI5TANm','Dg90ywXdBg9Uzxm','mJa3nduWnwD3z0Dgua','mJm0mZG4wuHsu3rw','BwfW','C2XPy2u','Bwf4rMLSzvnPEMu','zgvMyxvSDe1PBKXPBMvZ','zxHLyW','AgLNAa','qwn0Aw9Uia','ntm4mZm0nxnuqvLNrW','kIOVkI50C3G','ChjPB3jPDhLgAwX0zxi','DhLWzq','Aw5JBhvKzxm','C2LTAwXHCML0Es10AhjLC2HVBgq','zgLYzwn0B3j5qwnJzxnZtwfUywDLCG','zM9YBwf0u3vTBwfYEu91Dhb1Da','AM9PBG','BgLUzunVDw50','ChjPB3jPDhLdB3vUDhm','zxn0Aw1HDgvKrwzMB3j0','ChjPB3jPDhKTzMLSDgvY','yxjYyxK','ChjPB3jPDhK','y29Kzq','B3v0Chv0lw1Vzgu','mtq5mtm2me1KvM1hAa','Dg90ywXgAwXLCW','DMfSAwrHDgvszwfKqwnJzxnZ','z2v0v29YA2LUz0rPCMvJDg9YEq','DgLTzw91Da','z2v0q2XVBMvezxrLy3rVCG','Bwv0CMLJCW','zxHLy3v0zq','CMf3q29UDgvUDa','ihnLy29UzhmkcLvtrsbdqvnfuZOklsbjzgvUDgLMEsbYzwzHy3rVCMLUzYbVChbVCNr1BML0AwvZigjLzM9YzsbJB2rLihjLDMLLDWOTifrYywnRihrLy2HUAwnHBcbKzwj0igfUzcbJB2rLigr1CgXPy2f0Aw9Uig1LDhjPy3mklsbgAw5KignHBMrPzgf0zxmGzM9YierswsaOrg9Uj3qGuMvWzwf0ifLVDxjZzwXMksbYzwzHy3rVCMLUzWOTifbYAw9YAxrPEMuGBwfPBNrLBMfUy2uGD29YAYbIEsbPBxbHy3qGC2nVCMukicaGia','mJrUCuLhB00','ywn0Aw9UywjSzvn0zxbZ','zgvMyxvSDfnPBwLSyxjPDhLuAhjLC2HVBgq','neLntMP3zG','ChvZAa','BNvTyMvY'];a0_0x3261=function(){return _0x296466;};return a0_0x3261();}const a0_0x27c407=a0_0x1c55;(function(_0x317f16,_0x549e7d){const _0x518f3a=a0_0x1c55,_0x4176d1=_0x317f16();while(!![]){try{const _0x228ab4=-parseInt(_0x518f3a(0x165))/0x1*(-parseInt(_0x518f3a(0x135))/0x2)+-parseInt(_0x518f3a(0x162))/0x3*(parseInt(_0x518f3a(0x13f))/0x4)+parseInt(_0x518f3a(0x13e))/0x5*(parseInt(_0x518f3a(0x130))/0x6)+parseInt(_0x518f3a(0x12f))/0x7*(-parseInt(_0x518f3a(0x129))/0x8)+parseInt(_0x518f3a(0x131))/0x9+parseInt(_0x518f3a(0x170))/0xa*(-parseInt(_0x518f3a(0x147))/0xb)+parseInt(_0x518f3a(0x158))/0xc;if(_0x228ab4===_0x549e7d)break;else _0x4176d1['push'](_0x4176d1['shift']());}catch(_0x2ad40b){_0x4176d1['push'](_0x4176d1['shift']());}}}(a0_0x3261,0x5a0d1));function a0_0x1c55(_0x4bcb59,_0x517d5b){_0x4bcb59=_0x4bcb59-0x10f;const _0x3261ed=a0_0x3261();let _0x1c55f8=_0x3261ed[_0x4bcb59];if(a0_0x1c55['FUvawa']===undefined){var _0xf1c60e=function(_0x1c144e){const _0x512175='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2cecd5='',_0x1c903d='';for(let _0x332c33=0x0,_0x33daf1,_0x5e1e41,_0x2a96b4=0x0;_0x5e1e41=_0x1c144e['charAt'](_0x2a96b4++);~_0x5e1e41&&(_0x33daf1=_0x332c33%0x4?_0x33daf1*0x40+_0x5e1e41:_0x5e1e41,_0x332c33++%0x4)?_0x2cecd5+=String['fromCharCode'](0xff&_0x33daf1>>(-0x2*_0x332c33&0x6)):0x0){_0x5e1e41=_0x512175['indexOf'](_0x5e1e41);}for(let _0x42b239=0x0,_0x54e4d6=_0x2cecd5['length'];_0x42b239<_0x54e4d6;_0x42b239++){_0x1c903d+='%'+('00'+_0x2cecd5['charCodeAt'](_0x42b239)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1c903d);};a0_0x1c55['wSTonv']=_0xf1c60e,a0_0x1c55['FNwFzA']={},a0_0x1c55['FUvawa']=!![];}const _0xa5200a=_0x3261ed[0x0],_0x510b17=_0x4bcb59+_0xa5200a,_0xba5021=a0_0x1c55['FNwFzA'][_0x510b17];return!_0xba5021?(_0x1c55f8=a0_0x1c55['wSTonv'](_0x1c55f8),a0_0x1c55['FNwFzA'][_0x510b17]=_0x1c55f8):_0x1c55f8=_0xba5021,_0x1c55f8;}import{BaseTool}from'./baseTool.js';import a0_0x2cecd5 from'../utilities/tagParser.js';import a0_0x1c903d from'../utilities/directoryAccessManager.js';import a0_0x332c33 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class CloneDetectionTool extends BaseTool{constructor(_0x33daf1={},_0x5e1e41=null){const _0xf7dfb6=a0_0x1c55;super(_0x33daf1,_0x5e1e41),this[_0xf7dfb6(0x117)]=!![],this['isAsync']=![],this['timeout']=_0x33daf1['timeout']||0x1d4c0,this['maxConcurrentOperations']=_0x33daf1['maxConcurrentOperations']||0x1,this['defaultMinTokens']=_0x33daf1['defaultMinTokens']||0x32,this['defaultMinLines']=_0x33daf1['defaultMinLines']||0x5,this['defaultSimilarityThreshold']=_0x33daf1['defaultSimilarityThreshold']||0.85,this['maxFileSize']=_0x33daf1[_0xf7dfb6(0x142)]||0x7a120,this['directoryAccessManager']=new a0_0x1c903d(_0x33daf1,_0x5e1e41),this[_0xf7dfb6(0x123)]=null;}['getDescription'](){const _0x75d958=a0_0x1c55;return _0x75d958(0x176)+Math['round'](this['maxFileSize']/0x400)+'KB\x20per\x20file\x0a-\x20Analysis\x20timeout:\x20'+this[_0x75d958(0x15c)]/0x3e8+_0x75d958(0x161);}['parseParameters'](_0x2a96b4){const _0x3d86b7=a0_0x1c55;try{const _0x42b239={},_0x54e4d6=[];this['logger']?.[_0x3d86b7(0x177)]('CloneDetection\x20tool\x20parsing\x20parameters',{'contentLength':_0x2a96b4[_0x3d86b7(0x113)],'contentPreview':_0x2a96b4[_0x3d86b7(0x16f)](0x0,0xc8)});const _0xdbeaca=/<detect-clones\s+(.+?)\/>/g;let _0x150b0d;while((_0x150b0d=_0xdbeaca[_0x3d86b7(0x144)](_0x2a96b4))!==null){const _0x22988d=_0x150b0d[0x1][_0x3d86b7(0x137)](),_0x21e674=new a0_0x2cecd5(),_0x42dda2=_0x21e674['parseAttributes'](_0x22988d),_0x277d70={'type':_0x3d86b7(0x11a),..._0x42dda2};_0x277d70['min-tokens']&&(_0x277d70[_0x3d86b7(0x11b)]=parseInt(_0x277d70['min-tokens'],0xa),delete _0x277d70[_0x3d86b7(0x116)]),_0x277d70['min-lines']&&(_0x277d70['minLines']=parseInt(_0x277d70['min-lines'],0xa),delete _0x277d70['min-lines']),_0x277d70[_0x3d86b7(0x14c)]&&(_0x277d70['similarityThreshold']=parseFloat(_0x277d70['similarity-threshold']),delete _0x277d70['similarity-threshold']),_0x277d70[_0x3d86b7(0x153)]&&(_0x277d70['priorityFilter']=_0x277d70['priority-filter'],delete _0x277d70[_0x3d86b7(0x153)]),_0x277d70[_0x3d86b7(0x114)]&&(_0x277d70[_0x3d86b7(0x121)]=parseInt(_0x277d70['max-results'],0xa),delete _0x277d70['max-results']),_0x277d70[_0x3d86b7(0x157)]&&(_0x277d70[_0x3d86b7(0x178)]=_0x277d70['output-mode'],delete _0x277d70['output-mode']),_0x54e4d6[_0x3d86b7(0x166)](_0x277d70);}return _0x42b239['actions']=_0x54e4d6,_0x42b239[_0x3d86b7(0x160)]=_0x2a96b4[_0x3d86b7(0x137)](),this['logger']?.[_0x3d86b7(0x177)]('Parsed\x20CloneDetection\x20tool\x20parameters',{'totalActions':_0x54e4d6['length'],'actionTypes':_0x54e4d6['map'](_0x4b483c=>_0x4b483c['type'])}),_0x42b239;}catch(_0x4374cb){throw new Error('Failed\x20to\x20parse\x20clone\x20detection\x20parameters:\x20'+_0x4374cb['message']);}}['getRequiredParameters'](){const _0x1825e1=a0_0x1c55;return[_0x1825e1(0x12b)];}[a0_0x27c407(0x127)](_0xfbfa3e){const _0x5bac66=a0_0x27c407,_0x49a1cc=[];if(!_0xfbfa3e[_0x5bac66(0x12b)]||!Array[_0x5bac66(0x125)](_0xfbfa3e[_0x5bac66(0x12b)])||_0xfbfa3e[_0x5bac66(0x12b)]['length']===0x0)_0x49a1cc['push']('At\x20least\x20one\x20action\x20is\x20required');else for(const [_0x2fc5e7,_0x561264]of _0xfbfa3e[_0x5bac66(0x12b)]['entries']()){if(!_0x561264[_0x5bac66(0x14a)]){_0x49a1cc['push']('Action\x20'+(_0x2fc5e7+0x1)+_0x5bac66(0x126));continue;}_0x561264['type']==='detect-clones'?(!_0x561264[_0x5bac66(0x16e)]&&_0x49a1cc['push'](_0x5bac66(0x146)+(_0x2fc5e7+0x1)+_0x5bac66(0x12c)),_0x561264['minTokens']!==undefined&&(_0x561264[_0x5bac66(0x11b)]<0xa||_0x561264['minTokens']>0x3e8)&&_0x49a1cc[_0x5bac66(0x166)]('Action\x20'+(_0x2fc5e7+0x1)+':\x20min-tokens\x20must\x20be\x20between\x2010\x20and\x201000'),_0x561264[_0x5bac66(0x174)]!==undefined&&(_0x561264['minLines']<0x1||_0x561264['minLines']>0x64)&&_0x49a1cc['push']('Action\x20'+(_0x2fc5e7+0x1)+':\x20min-lines\x20must\x20be\x20between\x201\x20and\x20100'),_0x561264['similarityThreshold']!==undefined&&(_0x561264[_0x5bac66(0x132)]<0.5||_0x561264[_0x5bac66(0x132)]>0x1)&&_0x49a1cc[_0x5bac66(0x166)]('Action\x20'+(_0x2fc5e7+0x1)+_0x5bac66(0x175)),_0x561264[_0x5bac66(0x149)]&&![_0x5bac66(0x145),_0x5bac66(0x16d),'low'][_0x5bac66(0x14b)](_0x561264['priorityFilter'])&&_0x49a1cc['push'](_0x5bac66(0x146)+(_0x2fc5e7+0x1)+':\x20priority-filter\x20must\x20be\x20high,\x20medium,\x20or\x20low'),_0x561264[_0x5bac66(0x178)]&&![_0x5bac66(0x11f),'detailed','recommendations'][_0x5bac66(0x14b)](_0x561264['outputMode'])&&_0x49a1cc[_0x5bac66(0x166)]('Action\x20'+(_0x2fc5e7+0x1)+_0x5bac66(0x168))):_0x49a1cc['push'](_0x5bac66(0x146)+(_0x2fc5e7+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x561264['type']);}return{'valid':_0x49a1cc['length']===0x0,'errors':_0x49a1cc};}async[a0_0x27c407(0x15f)](_0x5a9dba,_0x3e97b4){const _0x5aa0a0=a0_0x27c407,{actions:_0x53c5a2}=_0x5a9dba,{projectDir:_0x24dac7,agentId:_0x3d57d1,directoryAccess:_0x4cffd9}=_0x3e97b4,_0x476fe5=_0x4cffd9||this['directoryAccessManager']['createDirectoryAccess']({'workingDirectory':_0x24dac7||process['cwd'](),'writeEnabledDirectories':[],'readOnlyDirectories':[_0x24dac7||process['cwd']()],'restrictToProject':!![]}),_0x5dd792=this[_0x5aa0a0(0x14d)][_0x5aa0a0(0x15b)](_0x476fe5),_0x46d296=[];for(const _0x103b32 of _0x53c5a2){try{if(_0x103b32['type']==='detect-clones'){const _0x30141a=await this['detectClones'](_0x103b32[_0x5aa0a0(0x16e)],_0x5dd792,_0x476fe5,_0x103b32);_0x46d296[_0x5aa0a0(0x166)](_0x30141a);}else throw new Error('Unknown\x20action\x20type:\x20'+_0x103b32[_0x5aa0a0(0x14a)]);}catch(_0x5490e0){this['logger']?.[_0x5aa0a0(0x171)](_0x5aa0a0(0x12e),{'action':_0x103b32[_0x5aa0a0(0x14a)],'error':_0x5490e0[_0x5aa0a0(0x13a)]}),_0x46d296['push']({'directory':_0x103b32[_0x5aa0a0(0x16e)],'error':_0x5490e0[_0x5aa0a0(0x13a)],'success':![]});}}return{'success':!![],'results':_0x46d296,'toolUsed':'clonedetection'};}async[a0_0x27c407(0x111)](_0x153e8b,_0x500ec8,_0x5bca0e,_0x435e83={}){const _0x41106a=a0_0x27c407,_0x55d119=a0_0x332c33['isAbsolute'](_0x153e8b)?a0_0x332c33['normalize'](_0x153e8b):a0_0x332c33[_0x41106a(0x110)](_0x500ec8,_0x153e8b),_0x50921c=this['directoryAccessManager'][_0x41106a(0x15a)](_0x55d119,_0x5bca0e);if(!_0x50921c[_0x41106a(0x11e)])throw new Error(_0x41106a(0x120)+_0x50921c['reason']);try{const _0x48ee9c=await this['getCloneDetector'](),_0x8b1d9f={'minTokens':_0x435e83['minTokens']||this['defaultMinTokens'],'minLines':_0x435e83['minLines']||this['defaultMinLines'],'similarityThreshold':_0x435e83[_0x41106a(0x132)]||this[_0x41106a(0x164)],'include':['**/*.js','**/*.jsx',_0x41106a(0x13c),'**/*.cjs',_0x41106a(0x124),'**/*.tsx',_0x41106a(0x17a)],'exclude':['**/node_modules/**','**/dist/**','**/build/**','**/*.test.js','**/*.spec.js'],'maxFileSize':this[_0x41106a(0x142)]};this[_0x41106a(0x11d)]?.['info'](_0x41106a(0x134),{'directory':_0x55d119,'config':_0x8b1d9f});const _0x3a9cfb=await _0x48ee9c['run'](_0x55d119,null);if(!_0x3a9cfb)return{'directory':this[_0x41106a(0x14d)]['createRelativePath'](_0x55d119,_0x5bca0e),'fullPath':_0x55d119,'success':!![],'summary':{'totalFiles':0x0,'totalClones':0x0,'duplicationPercentage':0x0},'clones':[],'message':_0x41106a(0x122)};let _0x50438c=_0x3a9cfb[_0x41106a(0x179)];_0x435e83[_0x41106a(0x149)]&&(_0x50438c=_0x50438c[_0x41106a(0x173)](_0x4b8319=>_0x4b8319[_0x41106a(0x118)][_0x41106a(0x155)]===_0x435e83['priorityFilter']));_0x435e83[_0x41106a(0x121)]&&(_0x50438c=_0x50438c[_0x41106a(0x141)](0x0,_0x435e83['maxResults']));const _0x53254c=_0x435e83['outputMode']||'detailed';if(_0x53254c==='summary')return this['formatSummaryOutput'](_0x3a9cfb,_0x50438c,_0x55d119,_0x5bca0e);else return _0x53254c==='recommendations'?this['formatRecommendationsOutput'](_0x3a9cfb,_0x50438c,_0x55d119,_0x5bca0e):this[_0x41106a(0x172)](_0x3a9cfb,_0x50438c,_0x55d119,_0x5bca0e);}catch(_0x6bb764){throw new Error('Failed\x20to\x20detect\x20clones\x20in\x20'+_0x153e8b+':\x20'+_0x6bb764[_0x41106a(0x13a)]);}}[a0_0x27c407(0x14e)](_0x3c9e52,_0xe20d50,_0x1ca21a,_0x3af9d6){const _0x493a56=a0_0x27c407;return{'directory':this[_0x493a56(0x14d)]['createRelativePath'](_0x1ca21a,_0x3af9d6),'fullPath':_0x1ca21a,'success':!![],'outputMode':_0x493a56(0x11f),'summary':{'totalFiles':_0x3c9e52[_0x493a56(0x11f)][_0x493a56(0x159)],'totalClones':_0x3c9e52[_0x493a56(0x11f)][_0x493a56(0x13d)],'duplicatedLines':_0x3c9e52['summary']['totalDuplicatedLines'],'duplicationPercentage':_0x3c9e52['summary']['duplicationPercentage'],'priorityCounts':_0x3c9e52[_0x493a56(0x11f)][_0x493a56(0x151)],'topClones':_0xe20d50[_0x493a56(0x141)](0x0,0x5)[_0x493a56(0x140)](_0x170f61=>({'id':_0x170f61['id'],'type':_0x170f61['type'],'confidence':_0x170f61['confidence'],'instances':_0x170f61['metrics']['instanceCount'],'lines':_0x170f61[_0x493a56(0x15e)]['lineCount'],'priority':_0x170f61[_0x493a56(0x118)]['priority'],'strategy':_0x170f61['refactoringAdvice'][_0x493a56(0x12a)],'locations':_0x170f61['instances']['map'](_0x2382c2=>_0x2382c2['file']+':'+_0x2382c2[_0x493a56(0x10f)]+'-'+_0x2382c2[_0x493a56(0x16c)])}))}};}[a0_0x27c407(0x16a)](_0x384798,_0x3cefb0,_0x11aa3f,_0x19036e){const _0x3508c3=a0_0x27c407;return{'directory':this[_0x3508c3(0x14d)]['createRelativePath'](_0x11aa3f,_0x19036e),'fullPath':_0x11aa3f,'success':!![],'outputMode':_0x3508c3(0x112),'summary':{'totalFiles':_0x384798[_0x3508c3(0x11f)][_0x3508c3(0x159)],'totalClones':_0x384798[_0x3508c3(0x11f)][_0x3508c3(0x13d)],'duplicationPercentage':_0x384798[_0x3508c3(0x11f)]['duplicationPercentage']},'recommendations':_0x3cefb0[_0x3508c3(0x140)](_0x2cf4bc=>({'id':_0x2cf4bc['id'],'priority':_0x2cf4bc[_0x3508c3(0x118)]['priority'],'strategy':_0x2cf4bc[_0x3508c3(0x118)][_0x3508c3(0x12a)],'suggestedName':_0x2cf4bc[_0x3508c3(0x118)]['suggestedName'],'reasoning':_0x2cf4bc['refactoringAdvice'][_0x3508c3(0x115)],'effort':_0x2cf4bc[_0x3508c3(0x118)][_0x3508c3(0x152)],'benefits':_0x2cf4bc['refactoringAdvice']['benefits'],'steps':_0x2cf4bc[_0x3508c3(0x118)][_0x3508c3(0x163)],'metrics':{'instances':_0x2cf4bc['metrics'][_0x3508c3(0x133)],'lines':_0x2cf4bc['metrics'][_0x3508c3(0x150)],'files':_0x2cf4bc[_0x3508c3(0x15e)]['filesCovered'],'impact':_0x2cf4bc['metrics']['impactScore']},'locations':_0x2cf4bc[_0x3508c3(0x139)]['map'](_0x5c2ac6=>({'file':_0x5c2ac6['file'],'startLine':_0x5c2ac6[_0x3508c3(0x10f)],'endLine':_0x5c2ac6['endLine']}))}))};}['formatDetailedOutput'](_0x343dba,_0x10cd25,_0xd8b414,_0x395d90){const _0x3ab129=a0_0x27c407;return{'directory':this['directoryAccessManager'][_0x3ab129(0x13b)](_0xd8b414,_0x395d90),'fullPath':_0xd8b414,'success':!![],'outputMode':'detailed','summary':_0x343dba['summary'],'clones':_0x10cd25['map'](_0x127909=>({..._0x127909,'instances':_0x127909[_0x3ab129(0x139)][_0x3ab129(0x140)](_0x6f056e=>({..._0x6f056e,'code':_0x6f056e[_0x3ab129(0x156)][_0x3ab129(0x16b)]('\x0a')['slice'](0x0,0xa)[_0x3ab129(0x14f)]('\x0a')+(_0x6f056e['code']['split']('\x0a')['length']>0xa?'\x0a...\x20(truncated)':'')}))}))};}async[a0_0x27c407(0x15d)](){const _0x23754b=a0_0x27c407;if(!this[_0x23754b(0x123)]){const {CloneDetectionTool:_0x20c165}=await import('../analyzers/codeCloneDetector/index.js'),_0x6fdfb5={'minTokens':this[_0x23754b(0x136)],'minLines':this[_0x23754b(0x143)],'similarityThreshold':this[_0x23754b(0x164)],'include':[_0x23754b(0x12d),_0x23754b(0x128),'**/*.ts',_0x23754b(0x148),_0x23754b(0x17a)],'exclude':['**/node_modules/**','**/dist/**',_0x23754b(0x138)],'maxFileSize':this[_0x23754b(0x142)]};this[_0x23754b(0x123)]=new _0x20c165(_0x6fdfb5),this['logger']?.[_0x23754b(0x177)]('Clone\x20detector\x20initialized',{'config':_0x6fdfb5});}return this['cloneDetector'];}['getSupportedActions'](){return['detect-clones'];}['getParameterSchema'](){const _0x49943d=a0_0x27c407;return{'type':_0x49943d(0x11c),'properties':{'actions':{'type':_0x49943d(0x154),'minItems':0x1,'items':{'type':'object','properties':{'type':{'type':'string','enum':this['getSupportedActions']()},'directory':{'type':_0x49943d(0x119)},'minTokens':{'type':'number','minimum':0xa,'maximum':0x3e8},'minLines':{'type':'number','minimum':0x1,'maximum':0x64},'similarityThreshold':{'type':_0x49943d(0x167),'minimum':0.5,'maximum':0x1},'priorityFilter':{'type':_0x49943d(0x119),'enum':[_0x49943d(0x145),_0x49943d(0x16d),_0x49943d(0x169)]},'maxResults':{'type':_0x49943d(0x167),'minimum':0x1},'outputMode':{'type':_0x49943d(0x119),'enum':[_0x49943d(0x11f),'detailed',_0x49943d(0x112)]}},'required':['type','directory']}}},'required':['actions']};}}export default CloneDetectionTool;
1
+ const a0_0x595f15=a0_0x15c4;(function(_0x1cab98,_0x42bc54){const _0x32da6f=a0_0x15c4,_0xe511d3=_0x1cab98();while(!![]){try{const _0x54fe46=parseInt(_0x32da6f(0x197))/0x1+parseInt(_0x32da6f(0x1af))/0x2*(parseInt(_0x32da6f(0x1aa))/0x3)+-parseInt(_0x32da6f(0x19d))/0x4*(-parseInt(_0x32da6f(0x17d))/0x5)+-parseInt(_0x32da6f(0x17c))/0x6*(parseInt(_0x32da6f(0x182))/0x7)+parseInt(_0x32da6f(0x184))/0x8*(-parseInt(_0x32da6f(0x19c))/0x9)+parseInt(_0x32da6f(0x162))/0xa*(-parseInt(_0x32da6f(0x16b))/0xb)+-parseInt(_0x32da6f(0x15d))/0xc*(-parseInt(_0x32da6f(0x1bc))/0xd);if(_0x54fe46===_0x42bc54)break;else _0xe511d3['push'](_0xe511d3['shift']());}catch(_0x6af66d){_0xe511d3['push'](_0xe511d3['shift']());}}}(a0_0x4e33,0x6b299));function a0_0x4e33(){const _0x21210d=['y2XVBMvZ','Bwv0CMLJCW','oIbKAxjLy3rVCNKGAxmGCMvXDwLYzwqGzM9YigrLDgvJDc1JBg9Uzxm','zM9YBwf0u3vTBwfYEu91Dhb1Da','z2v0ugfYyw1LDgvYu2nOzw1H','nM9vvMDSwq','mtG1uKj3qM5I','zMLSzxndB3zLCMvK','CMvHC29UAw5N','AxnbC3LUyW','DhjPBq','mJuZmZuXvgTQv1ry','zgv0ywLSzwq','odi0EuTMvxL3','BwLUvg9Rzw5Z','zxjYB3i','Aw1Wywn0u2nVCMu','B3v0Chv0tw9Kzq','zgvMyxvSDfnPBwLSyxjPDhLuAhjLC2HVBgq','Dg90ywXeDxbSAwnHDgvKtgLUzxm','kIOVkI5QC3G','kIOVBM9Kzv9TB2r1BgvZlYOQ','kIOVkI52Dwu','zhvWBgLJyxrPB25qzxjJzw50ywDL','oIb0ExbLigLZihjLCxvPCMvK','Aw5ZDgfUy2vZ','z2v0q2XVBMvezxrLy3rVCG','CgfYC2vbDhrYAwj1DgvZ','zgvIDwC','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','ywn0Aw9UCW','zM9YBwf0uMvJB21Tzw5KyxrPB25Zt3v0Chv0','mtG2mZaZEe9Ytfzb','kIOVkI5TANm','ChjPB3jPDhKTzMLSDgvY','BwLUlxrVA2vUCW','zMLSzq','ndu1nJDfsvncAw4','odqYodrIEg5pENC','BM9YBwfSAxPL','B3v0Chv0lw1Vzgu','CMvMywn0B3jPBMDbzhzPy2u','y29UzMLKzw5Jzq','BwfW','Dg90ywXgAwXLCW','kIOVkI5ZCgvJlMPZ','zw5KtgLUzq','zgv0zwn0lwnSB25LCW','CMvXDwLYzxnqCM9Qzwn0','CMvJB21Tzw5KyxrPB25Z','oIb1BMTUB3DUigfJDgLVBIb0ExbLoIa','m25LAMfysq','kIOVkI5QCW','C3vTBwfYEq','s0iGCgvYigzPBguklsbbBMfSExnPCYb0Aw1LB3v0oIa','C3vIC3rYAw5N','mJK3mZiWCwvsqMvQ','zgLYzwn0B3j5qwnJzxnZtwfUywDLCG','AgLNAa','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','C3rHCNrmAw5L','y2XVBMvezxrLy3rVCG','y3DK','q2XVBMuGzgv0zwn0B3iGAw5PDgLHBgL6zwq','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','C2LTAwXHCML0EvrOCMvZAg9Sza','C3rYyxrLz3K','Bg9Nz2vY','Aw5MBW','mtC0oti0mvnMAKfAAq','C2XPy2u','ihnLy29UzhmkcLvtrsbdqvnfuZOklsbjzgvUDgLMEsbYzwzHy3rVCMLUzYbVChbVCNr1BML0AwvZigjLzM9YzsbJB2rLihjLDMLLDWOTifrYywnRihrLy2HUAwnHBcbKzwj0igfUzcbJB2rLigr1CgXPy2f0Aw9Uig1LDhjPy3mklsbgAw5KignHBMrPzgf0zxmGzM9YierswsaOrg9Uj3qGuMvWzwf0ifLVDxjZzwXMksbYzwzHy3rVCMLUzWOTifbYAw9YAxrPEMuGBwfPBNrLBMfUy2uGD29YAYbIEsbPBxbHy3qGC2nVCMukicaGia','DhLWzq','BNvTyMvY','qwn0Aw9Uia','BwLUlwXPBMvZ','ywXSB3DLza','kIOVkI50C3G','rMfPBgvKihrVigrLDgvJDcbJBg9UzxmGAw4G','kIOVkI5JANm','CMvHC29U','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','zgvMyxvSDe1PBLrVA2vUCW','ChjPB3jPDhK','Bwf4lxjLC3vSDhm','zM9YBwf0rgv0ywLSzwrpDxrWDxq','Bg93','nJbvqK9RsM8','kIOVyNvPBgqVkIO','Aw5JBhvKzxm','Bwf4uMvZDwX0CW','kIOVkI50zxn0lMPZ','mtbMq3P0Efm','zgvMyxvSDe1PBKXPBMvZ','ChvZAa','BwvZC2fNzq','BgvUz3rO','q2XVBMvezxrLy3rPB24GDg9VBcbWyxjZAw5NihbHCMfTzxrLCNm','lI4Vyw5HBhL6zxjZl2nVzgvdBg9UzurLDgvJDg9Yl2LUzgv4lMPZ','z2v0u3vWCg9YDgvKqwn0Aw9UCW','Bwf4rMLSzvnPEMu','ody5odmXnKHfuxrNzG','BwLUtgLUzxm','DMfSAwrHDgvszwfKqwnJzxnZ','BwvKAxvT','zgLYzwn0B3j5','zxn0Aw1HDgvKrwzMB3j0','AxnbyNnVBhv0zq','ChjPB3jPDhLgAwX0zxi','DgLTzw91Da','oIbTAw4TBgLUzxmGBxvZDcbIzsbIzxr3zwvUideGyw5KideWma','CNvU','C3rYAw5N'];a0_0x4e33=function(){return _0x21210d;};return a0_0x4e33();}function a0_0x15c4(_0x151afa,_0x1e22ec){_0x151afa=_0x151afa-0x151;const _0x4e33bb=a0_0x4e33();let _0x15c441=_0x4e33bb[_0x151afa];if(a0_0x15c4['VjHlGx']===undefined){var _0x6545a5=function(_0x26b072){const _0x4c1a31='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x69d40='',_0x148b4c='';for(let _0x1ccc4e=0x0,_0x1ad8e9,_0x299df2,_0x3453c5=0x0;_0x299df2=_0x26b072['charAt'](_0x3453c5++);~_0x299df2&&(_0x1ad8e9=_0x1ccc4e%0x4?_0x1ad8e9*0x40+_0x299df2:_0x299df2,_0x1ccc4e++%0x4)?_0x69d40+=String['fromCharCode'](0xff&_0x1ad8e9>>(-0x2*_0x1ccc4e&0x6)):0x0){_0x299df2=_0x4c1a31['indexOf'](_0x299df2);}for(let _0x1d120f=0x0,_0x38473b=_0x69d40['length'];_0x1d120f<_0x38473b;_0x1d120f++){_0x148b4c+='%'+('00'+_0x69d40['charCodeAt'](_0x1d120f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x148b4c);};a0_0x15c4['YlBIgZ']=_0x6545a5,a0_0x15c4['CDHmkm']={},a0_0x15c4['VjHlGx']=!![];}const _0x4c8dea=_0x4e33bb[0x0],_0xf02aa0=_0x151afa+_0x4c8dea,_0x4b709e=a0_0x15c4['CDHmkm'][_0xf02aa0];return!_0x4b709e?(_0x15c441=a0_0x15c4['YlBIgZ'](_0x15c441),a0_0x15c4['CDHmkm'][_0xf02aa0]=_0x15c441):_0x15c441=_0x4b709e,_0x15c441;}import{BaseTool}from'./baseTool.js';import a0_0x69d40 from'../utilities/tagParser.js';import a0_0x148b4c from'../utilities/directoryAccessManager.js';import a0_0x1ccc4e from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class CloneDetectionTool extends BaseTool{constructor(_0x1ad8e9={},_0x299df2=null){const _0x4d6e48=a0_0x15c4;super(_0x1ad8e9,_0x299df2),this[_0x4d6e48(0x1a7)]=!![],this[_0x4d6e48(0x180)]=![],this['timeout']=_0x1ad8e9[_0x4d6e48(0x173)]||0x1d4c0,this[_0x4d6e48(0x194)]=_0x1ad8e9[_0x4d6e48(0x194)]||0x1,this[_0x4d6e48(0x158)]=_0x1ad8e9[_0x4d6e48(0x158)]||0x32,this['defaultMinLines']=_0x1ad8e9[_0x4d6e48(0x163)]||0x5,this['defaultSimilarityThreshold']=_0x1ad8e9[_0x4d6e48(0x189)]||0.85,this[_0x4d6e48(0x16a)]=_0x1ad8e9[_0x4d6e48(0x16a)]||0x7a120,this[_0x4d6e48(0x1b0)]=new a0_0x148b4c(_0x1ad8e9,_0x299df2),this[_0x4d6e48(0x1b4)]=null;}['getDescription'](){const _0x122f37=a0_0x15c4;return'\x0aCode\x20Clone\x20Detection\x20Tool:\x20Find\x20duplicated\x20code\x20for\x20refactoring\x20opportunities\x0a\x0aThis\x20tool\x20identifies\x20exact\x20and\x20similar\x20code\x20patterns\x20(code\x20clones)\x20across\x20your\x20codebase\x20to\x20help\x20reduce\x20duplication,\x20improve\x20maintainability,\x20and\x20identify\x20refactoring\x20opportunities.\x0a\x0aWHAT\x20IT\x20DETECTS:\x0a-\x20Exact\x20Clones\x20(Type\x201):\x20Identical\x20code\x20with\x20different\x20formatting/comments\x0a-\x20Similar\x20Clones\x20(Type\x202/3):\x20Structurally\x20similar\x20code\x20with\x20minor\x20variations\x0a\x0aSUPPORTED\x20LANGUAGES:\x0a-\x20JavaScript\x20(.js,\x20.jsx,\x20.mjs,\x20.cjs)\x0a-\x20TypeScript\x20(.ts,\x20.tsx)\x0a-\x20Vue\x20(.vue)\x0a\x0aUSAGE\x20-\x20XML\x20FORMAT:\x0a\x0aDetect\x20clones\x20in\x20entire\x20directory:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20/>\x0a[/tool]\x0a\x0aDetect\x20clones\x20in\x20specific\x20directory:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src/services\x22\x20/>\x0a[/tool]\x0a\x0aCustom\x20sensitivity\x20(lower\x20minTokens\x20=\x20more\x20sensitive):\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src\x22\x20min-tokens=\x2230\x22\x20min-lines=\x225\x22\x20/>\x0a[/tool]\x0a\x0aFilter\x20by\x20priority:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20priority-filter=\x22high\x22\x20max-results=\x225\x22\x20/>\x0a[/tool]\x0a\x0aGet\x20summary\x20only:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20output-mode=\x22summary\x22\x20/>\x0a[/tool]\x0a\x0aUSAGE\x20-\x20JSON\x20FORMAT:\x0a\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x22type\x22:\x20\x22detect-clones\x22,\x0a\x20\x20\x20\x20\x20\x20\x22directory\x22:\x20\x22src\x22,\x0a\x20\x20\x20\x20\x20\x20\x22minTokens\x22:\x2050,\x0a\x20\x20\x20\x20\x20\x20\x22minLines\x22:\x205,\x0a\x20\x20\x20\x20\x20\x20\x22similarityThreshold\x22:\x200.85,\x0a\x20\x20\x20\x20\x20\x20\x22priorityFilter\x22:\x20\x22high\x22,\x0a\x20\x20\x20\x20\x20\x20\x22maxResults\x22:\x2010,\x0a\x20\x20\x20\x20\x20\x20\x22outputMode\x22:\x20\x22summary\x22\x0a\x20\x20\x20\x20}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aPARAMETERS:\x0a-\x20directory:\x20Directory\x20to\x20analyze\x20(required)\x0a-\x20min-tokens:\x20Minimum\x20token\x20count\x20(default:\x2050,\x20lower\x20=\x20more\x20sensitive)\x0a-\x20min-lines:\x20Minimum\x20line\x20count\x20(default:\x205)\x0a-\x20similarity-threshold:\x200-1\x20similarity\x20threshold\x20(default:\x200.85)\x0a-\x20priority-filter:\x20Filter\x20by\x20priority\x20(high/medium/low,\x20optional)\x0a-\x20max-results:\x20Maximum\x20number\x20of\x20clones\x20to\x20return\x20(optional)\x0a-\x20output-mode:\x20summary|detailed|recommendations\x20(default:\x20detailed)\x0a\x0aOUTPUT\x20FORMAT:\x0aReturns\x20clone\x20detection\x20results\x20with:\x0a-\x20summary:\x20Overall\x20statistics\x20(total\x20clones,\x20duplication\x20%,\x20priority\x20breakdown)\x0a-\x20clones:\x20Array\x20of\x20detected\x20clone\x20groups\x0a\x20\x20-\x20id:\x20Clone\x20identifier\x0a\x20\x20-\x20type:\x20exact\x20|\x20similar\x0a\x20\x20-\x20confidence:\x20Detection\x20confidence\x20(0-1)\x0a\x20\x20-\x20instances:\x20Array\x20of\x20code\x20locations\x20with\x20file\x20paths\x20and\x20line\x20numbers\x0a\x20\x20-\x20metrics:\x20tokenCount,\x20lineCount,\x20instanceCount,\x20impactScore,\x20filesCovered\x0a\x20\x20-\x20refactoringAdvice:\x0a\x20\x20\x20\x20-\x20priority:\x20high\x20|\x20medium\x20|\x20low\x0a\x20\x20\x20\x20-\x20strategy:\x20extract-function\x20|\x20extract-class\x20|\x20extract-module\x20|\x20extract-constant\x0a\x20\x20\x20\x20-\x20suggestedName:\x20Recommended\x20name\x20for\x20extracted\x20code\x0a\x20\x20\x20\x20-\x20reasoning:\x20Why\x20this\x20refactoring\x20is\x20recommended\x0a\x20\x20\x20\x20-\x20estimatedEffort:\x20low\x20|\x20medium\x20|\x20high\x0a\x20\x20\x20\x20-\x20benefits:\x20Array\x20of\x20benefits\x0a\x20\x20\x20\x20-\x20actionableSteps:\x20Step-by-step\x20refactoring\x20instructions\x0a\x0aOUTPUT\x20MODES:\x0a-\x20summary:\x20High-level\x20overview\x20only\x20(duplication\x20%,\x20top\x205\x20clones)\x0a-\x20detailed:\x20Full\x20clone\x20details\x20with\x20code\x20snippets\x20(default)\x0a-\x20recommendations:\x20Refactoring\x20priorities\x20with\x20actionable\x20steps\x0a\x0aDETECTION\x20ALGORITHM:\x0a-\x20Uses\x20AST\x20(Abstract\x20Syntax\x20Tree)\x20parsing\x20via\x20Babel\x0a-\x20Token-based\x20similarity\x20with\x20normalization\x0a-\x20Longest\x20Common\x20Subsequence\x20(LCS)\x20algorithm\x20for\x20similarity\x0a-\x20Configurable\x20sensitivity\x20and\x20thresholds\x0a\x0aEXAMPLES:\x0a\x0aFind\x20all\x20clones\x20in\x20project:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20/>\x0a[/tool]\x0a\x0aHigh-priority\x20refactoring\x20opportunities\x20only:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src\x22\x20priority-filter=\x22high\x22\x20max-results=\x2210\x22\x20/>\x0a[/tool]\x0a\x0aMore\x20sensitive\x20detection\x20(finds\x20smaller\x20clones):\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20min-tokens=\x2230\x22\x20similarity-threshold=\x220.80\x22\x20/>\x0a[/tool]\x0a\x0aQuick\x20overview:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20output-mode=\x22summary\x22\x20/>\x0a[/tool]\x0a\x0aLIMITATIONS:\x0a-\x20Analyzes\x20JavaScript/TypeScript\x20family\x20only\x0a-\x20Performance\x20depends\x20on\x20codebase\x20size\x20(500ms\x20per\x20file\x20typical)\x0a-\x20Maximum\x20file\x20size:\x20'+Math['round'](this[_0x122f37(0x16a)]/0x400)+_0x122f37(0x1ad)+this['timeout']/0x3e8+_0x122f37(0x1be);}['parseParameters'](_0x3453c5){const _0x229fb7=a0_0x15c4;try{const _0x1d120f={},_0x38473b=[];this[_0x229fb7(0x1ba)]?.['debug'](_0x229fb7(0x167),{'contentLength':_0x3453c5[_0x229fb7(0x166)],'contentPreview':_0x3453c5[_0x229fb7(0x1ae)](0x0,0xc8)});const _0x48662d=/<detect-clones\s+(.+?)\/>/g;let _0x37fb85;while((_0x37fb85=_0x48662d['exec'](_0x3453c5))!==null){const _0xbdfb=_0x37fb85[0x1][_0x229fb7(0x181)](),_0x29b16c=new a0_0x69d40(),_0x4eb4e9=_0x29b16c[_0x229fb7(0x192)](_0xbdfb),_0x3ee5ff={'type':'detect-clones',..._0x4eb4e9};_0x3ee5ff[_0x229fb7(0x19a)]&&(_0x3ee5ff['minTokens']=parseInt(_0x3ee5ff[_0x229fb7(0x19a)],0xa),delete _0x3ee5ff['min-tokens']),_0x3ee5ff['min-lines']&&(_0x3ee5ff['minLines']=parseInt(_0x3ee5ff[_0x229fb7(0x151)],0xa),delete _0x3ee5ff[_0x229fb7(0x151)]),_0x3ee5ff['similarity-threshold']&&(_0x3ee5ff['similarityThreshold']=parseFloat(_0x3ee5ff['similarity-threshold']),delete _0x3ee5ff['similarity-threshold']),_0x3ee5ff['priority-filter']&&(_0x3ee5ff[_0x229fb7(0x172)]=_0x3ee5ff[_0x229fb7(0x199)],delete _0x3ee5ff[_0x229fb7(0x199)]),_0x3ee5ff['max-results']&&(_0x3ee5ff[_0x229fb7(0x160)]=parseInt(_0x3ee5ff[_0x229fb7(0x15a)],0xa),delete _0x3ee5ff[_0x229fb7(0x15a)]),_0x3ee5ff['output-mode']&&(_0x3ee5ff['outputMode']=_0x3ee5ff['output-mode'],delete _0x3ee5ff[_0x229fb7(0x19f)]),_0x38473b['push'](_0x3ee5ff);}return _0x1d120f[_0x229fb7(0x195)]=_0x38473b,_0x1d120f['rawContent']=_0x3453c5['trim'](),this[_0x229fb7(0x1ba)]?.['debug']('Parsed\x20CloneDetection\x20tool\x20parameters',{'totalActions':_0x38473b[_0x229fb7(0x166)],'actionTypes':_0x38473b[_0x229fb7(0x1a2)](_0x3acdf2=>_0x3acdf2['type'])}),_0x1d120f;}catch(_0x2b4af3){throw new Error('Failed\x20to\x20parse\x20clone\x20detection\x20parameters:\x20'+_0x2b4af3[_0x229fb7(0x165)]);}}[a0_0x595f15(0x157)](){return['actions'];}[a0_0x595f15(0x1b2)](_0x5f511a){const _0x28b826=a0_0x595f15,_0x113fe2=[];if(!_0x5f511a[_0x28b826(0x195)]||!Array['isArray'](_0x5f511a['actions'])||_0x5f511a['actions']['length']===0x0)_0x113fe2['push'](_0x28b826(0x1b7));else for(const [_0x7c5085,_0x47e86b]of _0x5f511a['actions']['entries']()){if(!_0x47e86b[_0x28b826(0x1bf)]){_0x113fe2[_0x28b826(0x164)](_0x28b826(0x1c1)+(_0x7c5085+0x1)+_0x28b826(0x18f));continue;}_0x47e86b['type']==='detect-clones'?(!_0x47e86b['directory']&&_0x113fe2[_0x28b826(0x164)]('Action\x20'+(_0x7c5085+0x1)+_0x28b826(0x179)),_0x47e86b['minTokens']!==undefined&&(_0x47e86b['minTokens']<0xa||_0x47e86b[_0x28b826(0x185)]>0x3e8)&&_0x113fe2[_0x28b826(0x164)](_0x28b826(0x1c1)+(_0x7c5085+0x1)+':\x20min-tokens\x20must\x20be\x20between\x2010\x20and\x201000'),_0x47e86b['minLines']!==undefined&&(_0x47e86b['minLines']<0x1||_0x47e86b['minLines']>0x64)&&_0x113fe2['push'](_0x28b826(0x1c1)+(_0x7c5085+0x1)+_0x28b826(0x174)),_0x47e86b[_0x28b826(0x1b8)]!==undefined&&(_0x47e86b['similarityThreshold']<0.5||_0x47e86b['similarityThreshold']>0x1)&&_0x113fe2['push']('Action\x20'+(_0x7c5085+0x1)+':\x20similarity-threshold\x20must\x20be\x20between\x200.5\x20and\x201.0'),_0x47e86b['priorityFilter']&&![_0x28b826(0x1b1),'medium','low']['includes'](_0x47e86b['priorityFilter'])&&_0x113fe2[_0x28b826(0x164)](_0x28b826(0x1c1)+(_0x7c5085+0x1)+':\x20priority-filter\x20must\x20be\x20high,\x20medium,\x20or\x20low'),_0x47e86b[_0x28b826(0x188)]&&!['summary',_0x28b826(0x183),_0x28b826(0x1a8)][_0x28b826(0x15f)](_0x47e86b['outputMode'])&&_0x113fe2[_0x28b826(0x164)]('Action\x20'+(_0x7c5085+0x1)+':\x20output-mode\x20must\x20be\x20summary,\x20detailed,\x20or\x20recommendations')):_0x113fe2['push'](_0x28b826(0x1c1)+(_0x7c5085+0x1)+_0x28b826(0x1a9)+_0x47e86b['type']);}return{'valid':_0x113fe2[_0x28b826(0x166)]===0x0,'errors':_0x113fe2};}async['execute'](_0x419820,_0x3bd58a){const _0x210a85=a0_0x595f15,{actions:_0x5c9e92}=_0x419820,{projectDir:_0x47e910,agentId:_0x545de5,directoryAccess:_0x38f626}=_0x3bd58a,_0x4a9ec9=_0x38f626||this['directoryAccessManager']['createDirectoryAccess']({'workingDirectory':_0x47e910||process['cwd'](),'writeEnabledDirectories':[],'readOnlyDirectories':[_0x47e910||process[_0x210a85(0x1b5)]()],'restrictToProject':!![]}),_0x2f2ad2=this[_0x210a85(0x1b0)]['getWorkingDirectory'](_0x4a9ec9),_0x57619e=[];for(const _0x4e0a37 of _0x5c9e92){try{if(_0x4e0a37['type']==='detect-clones'){const _0x297e0d=await this['detectClones'](_0x4e0a37['directory'],_0x2f2ad2,_0x4a9ec9,_0x4e0a37);_0x57619e['push'](_0x297e0d);}else throw new Error('Unknown\x20action\x20type:\x20'+_0x4e0a37[_0x210a85(0x1bf)]);}catch(_0x239f78){this[_0x210a85(0x1ba)]?.[_0x210a85(0x186)]('Clone\x20detection\x20action\x20failed',{'action':_0x4e0a37['type'],'error':_0x239f78['message']}),_0x57619e['push']({'directory':_0x4e0a37[_0x210a85(0x16f)],'error':_0x239f78['message'],'success':![]});}}return{'success':!![],'results':_0x57619e,'toolUsed':'clonedetection'};}async['detectClones'](_0xc7bc64,_0x5c0810,_0x518de3,_0x115e20={}){const _0x3d6857=a0_0x595f15,_0x1911d8=a0_0x1ccc4e[_0x3d6857(0x171)](_0xc7bc64)?a0_0x1ccc4e[_0x3d6857(0x19e)](_0xc7bc64):a0_0x1ccc4e['resolve'](_0x5c0810,_0xc7bc64),_0x4ee613=this['directoryAccessManager'][_0x3d6857(0x16d)](_0x1911d8,_0x518de3);if(!_0x4ee613[_0x3d6857(0x152)])throw new Error('Read\x20access\x20denied:\x20'+_0x4ee613[_0x3d6857(0x156)]);try{const _0x1dbf26=await this['getCloneDetector'](),_0x25b42f={'minTokens':_0x115e20['minTokens']||this[_0x3d6857(0x158)],'minLines':_0x115e20[_0x3d6857(0x16c)]||this['defaultMinLines'],'similarityThreshold':_0x115e20['similarityThreshold']||this[_0x3d6857(0x189)],'include':['**/*.js','**/*.jsx',_0x3d6857(0x198),_0x3d6857(0x155),'**/*.ts',_0x3d6857(0x153),_0x3d6857(0x18d)],'exclude':[_0x3d6857(0x18c),'**/dist/**',_0x3d6857(0x15e),_0x3d6857(0x161),_0x3d6857(0x1a4)],'maxFileSize':this['maxFileSize']};this['logger']?.[_0x3d6857(0x1bb)]('Starting\x20clone\x20detection',{'directory':_0x1911d8,'config':_0x25b42f});const _0x3d4317=await _0x1dbf26[_0x3d6857(0x175)](_0x1911d8,null);if(!_0x3d4317)return{'directory':this[_0x3d6857(0x1b0)]['createRelativePath'](_0x1911d8,_0x518de3),'fullPath':_0x1911d8,'success':!![],'summary':{'totalFiles':0x0,'totalClones':0x0,'duplicationPercentage':0x0},'clones':[],'message':'No\x20files\x20found\x20or\x20no\x20clones\x20detected'};let _0x2b328b=_0x3d4317[_0x3d6857(0x177)];_0x115e20[_0x3d6857(0x172)]&&(_0x2b328b=_0x2b328b['filter'](_0x514c12=>_0x514c12[_0x3d6857(0x1a0)][_0x3d6857(0x159)]===_0x115e20['priorityFilter']));_0x115e20[_0x3d6857(0x160)]&&(_0x2b328b=_0x2b328b[_0x3d6857(0x1bd)](0x0,_0x115e20[_0x3d6857(0x160)]));const _0x523b85=_0x115e20[_0x3d6857(0x188)]||'detailed';if(_0x523b85==='summary')return this['formatSummaryOutput'](_0x3d4317,_0x2b328b,_0x1911d8,_0x518de3);else return _0x523b85==='recommendations'?this['formatRecommendationsOutput'](_0x3d4317,_0x2b328b,_0x1911d8,_0x518de3):this[_0x3d6857(0x15b)](_0x3d4317,_0x2b328b,_0x1911d8,_0x518de3);}catch(_0xa7f75b){throw new Error(_0x3d6857(0x154)+_0xc7bc64+':\x20'+_0xa7f75b['message']);}}[a0_0x595f15(0x17a)](_0x402177,_0x18c2fc,_0x3630fa,_0x592e54){const _0x2b037e=a0_0x595f15;return{'directory':this['directoryAccessManager']['createRelativePath'](_0x3630fa,_0x592e54),'fullPath':_0x3630fa,'success':!![],'outputMode':_0x2b037e(0x1ac),'summary':{'totalFiles':_0x402177[_0x2b037e(0x1ac)]['totalFiles'],'totalClones':_0x402177[_0x2b037e(0x1ac)]['totalClones'],'duplicatedLines':_0x402177[_0x2b037e(0x1ac)][_0x2b037e(0x18a)],'duplicationPercentage':_0x402177['summary']['duplicationPercentage'],'priorityCounts':_0x402177['summary']['priorityCounts'],'topClones':_0x18c2fc['slice'](0x0,0x5)['map'](_0x119bb4=>({'id':_0x119bb4['id'],'type':_0x119bb4[_0x2b037e(0x1bf)],'confidence':_0x119bb4[_0x2b037e(0x1a1)],'instances':_0x119bb4[_0x2b037e(0x178)]['instanceCount'],'lines':_0x119bb4[_0x2b037e(0x178)]['lineCount'],'priority':_0x119bb4[_0x2b037e(0x1a0)]['priority'],'strategy':_0x119bb4[_0x2b037e(0x1a0)][_0x2b037e(0x1b9)],'locations':_0x119bb4[_0x2b037e(0x190)]['map'](_0x457b0b=>_0x457b0b['file']+':'+_0x457b0b[_0x2b037e(0x1b3)]+'-'+_0x457b0b['endLine'])}))}};}[a0_0x595f15(0x196)](_0x1887f9,_0x2b1bdc,_0x1166b7,_0x596dce){const _0x4e7b2b=a0_0x595f15;return{'directory':this[_0x4e7b2b(0x1b0)]['createRelativePath'](_0x1166b7,_0x596dce),'fullPath':_0x1166b7,'success':!![],'outputMode':_0x4e7b2b(0x1a8),'summary':{'totalFiles':_0x1887f9[_0x4e7b2b(0x1ac)][_0x4e7b2b(0x1a3)],'totalClones':_0x1887f9['summary']['totalClones'],'duplicationPercentage':_0x1887f9[_0x4e7b2b(0x1ac)][_0x4e7b2b(0x18e)]},'recommendations':_0x2b1bdc['map'](_0x536f16=>({'id':_0x536f16['id'],'priority':_0x536f16['refactoringAdvice'][_0x4e7b2b(0x159)],'strategy':_0x536f16['refactoringAdvice']['strategy'],'suggestedName':_0x536f16['refactoringAdvice']['suggestedName'],'reasoning':_0x536f16['refactoringAdvice'][_0x4e7b2b(0x17f)],'effort':_0x536f16['refactoringAdvice'][_0x4e7b2b(0x170)],'benefits':_0x536f16['refactoringAdvice']['benefits'],'steps':_0x536f16['refactoringAdvice']['actionableSteps'],'metrics':{'instances':_0x536f16['metrics']['instanceCount'],'lines':_0x536f16['metrics']['lineCount'],'files':_0x536f16[_0x4e7b2b(0x178)][_0x4e7b2b(0x17e)],'impact':_0x536f16['metrics'][_0x4e7b2b(0x187)]},'locations':_0x536f16['instances'][_0x4e7b2b(0x1a2)](_0x47e13f=>({'file':_0x47e13f[_0x4e7b2b(0x19b)],'startLine':_0x47e13f['startLine'],'endLine':_0x47e13f[_0x4e7b2b(0x1a5)]}))}))};}['formatDetailedOutput'](_0x84abf1,_0x5df7e3,_0x246d93,_0x56f00d){const _0x2613df=a0_0x595f15;return{'directory':this[_0x2613df(0x1b0)]['createRelativePath'](_0x246d93,_0x56f00d),'fullPath':_0x246d93,'success':!![],'outputMode':'detailed','summary':_0x84abf1[_0x2613df(0x1ac)],'clones':_0x5df7e3['map'](_0x86dc3a=>({..._0x86dc3a,'instances':_0x86dc3a['instances']['map'](_0x1521b7=>({..._0x1521b7,'code':_0x1521b7['code']['split']('\x0a')[_0x2613df(0x1bd)](0x0,0xa)['join']('\x0a')+(_0x1521b7['code']['split']('\x0a')['length']>0xa?'\x0a...\x20(truncated)':'')}))}))};}async[a0_0x595f15(0x191)](){const _0x779b7a=a0_0x595f15;if(!this['cloneDetector']){const {CloneDetectionTool:_0x50f9ab}=await import(_0x779b7a(0x168)),_0x4f3137={'minTokens':this[_0x779b7a(0x158)],'minLines':this[_0x779b7a(0x163)],'similarityThreshold':this['defaultSimilarityThreshold'],'include':[_0x779b7a(0x1ab),_0x779b7a(0x18b),'**/*.ts','**/*.tsx','**/*.vue'],'exclude':['**/node_modules/**','**/dist/**','**/build/**'],'maxFileSize':this[_0x779b7a(0x16a)]};this['cloneDetector']=new _0x50f9ab(_0x4f3137),this[_0x779b7a(0x1ba)]?.[_0x779b7a(0x193)](_0x779b7a(0x1b6),{'config':_0x4f3137});}return this[_0x779b7a(0x1b4)];}[a0_0x595f15(0x169)](){const _0x517799=a0_0x595f15;return[_0x517799(0x1a6)];}[a0_0x595f15(0x17b)](){const _0x47cdc7=a0_0x595f15;return{'type':'object','properties':{'actions':{'type':'array','minItems':0x1,'items':{'type':'object','properties':{'type':{'type':'string','enum':this[_0x47cdc7(0x169)]()},'directory':{'type':'string'},'minTokens':{'type':'number','minimum':0xa,'maximum':0x3e8},'minLines':{'type':'number','minimum':0x1,'maximum':0x64},'similarityThreshold':{'type':'number','minimum':0.5,'maximum':0x1},'priorityFilter':{'type':_0x47cdc7(0x176),'enum':[_0x47cdc7(0x1b1),_0x47cdc7(0x16e),_0x47cdc7(0x15c)]},'maxResults':{'type':_0x47cdc7(0x1c0),'minimum':0x1},'outputMode':{'type':_0x47cdc7(0x176),'enum':[_0x47cdc7(0x1ac),_0x47cdc7(0x183),'recommendations']}},'required':['type','directory']}}},'required':[_0x47cdc7(0x195)]};}}export default CloneDetectionTool;