@loxia-labs/loxia-autopilot-one 1.0.10 → 1.0.11

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 +2 -2
  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-CoRE46V-.js → index-C5X7qBNF.js} +63 -63
  119. package/web-ui/build/static/index-g2UFuTwG.css +1 -0
  120. package/web-ui/build/static/index-P281Rusr.css +0 -1
@@ -1 +1 @@
1
- const a0_0x52ae65=a0_0xfdea;(function(_0x27e90c,_0x44c5f8){const _0x57c901=a0_0xfdea,_0x3fc9f7=_0x27e90c();while(!![]){try{const _0x2b900e=-parseInt(_0x57c901(0x1ae))/0x1*(parseInt(_0x57c901(0x1b8))/0x2)+parseInt(_0x57c901(0x1b4))/0x3+-parseInt(_0x57c901(0x1db))/0x4*(-parseInt(_0x57c901(0x1b1))/0x5)+parseInt(_0x57c901(0x191))/0x6*(-parseInt(_0x57c901(0x1a5))/0x7)+-parseInt(_0x57c901(0x1eb))/0x8*(parseInt(_0x57c901(0x1e0))/0x9)+-parseInt(_0x57c901(0x1d2))/0xa+parseInt(_0x57c901(0x197))/0xb;if(_0x2b900e===_0x44c5f8)break;else _0x3fc9f7['push'](_0x3fc9f7['shift']());}catch(_0x1c5902){_0x3fc9f7['push'](_0x3fc9f7['shift']());}}}(a0_0x3769,0x7a1b0));import a0_0x35a870 from'events';function a0_0xfdea(_0x8b0c0b,_0x5e6445){_0x8b0c0b=_0x8b0c0b-0x18d;const _0x376966=a0_0x3769();let _0xfdea2f=_0x376966[_0x8b0c0b];if(a0_0xfdea['CbtipN']===undefined){var _0x51eea9=function(_0x5d0a5f){const _0x443732='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x35a870='',_0x8696d5='';for(let _0x27cbbd=0x0,_0x4f2de2,_0x155928,_0x3fe2d7=0x0;_0x155928=_0x5d0a5f['charAt'](_0x3fe2d7++);~_0x155928&&(_0x4f2de2=_0x27cbbd%0x4?_0x4f2de2*0x40+_0x155928:_0x155928,_0x27cbbd++%0x4)?_0x35a870+=String['fromCharCode'](0xff&_0x4f2de2>>(-0x2*_0x27cbbd&0x6)):0x0){_0x155928=_0x443732['indexOf'](_0x155928);}for(let _0x5040c7=0x0,_0x26e31f=_0x35a870['length'];_0x5040c7<_0x26e31f;_0x5040c7++){_0x8696d5+='%'+('00'+_0x35a870['charCodeAt'](_0x5040c7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x8696d5);};a0_0xfdea['FNnrMY']=_0x51eea9,a0_0xfdea['ElUivo']={},a0_0xfdea['CbtipN']=!![];}const _0x33d00c=_0x376966[0x0],_0x147d38=_0x8b0c0b+_0x33d00c,_0x4b03a0=a0_0xfdea['ElUivo'][_0x147d38];return!_0x4b03a0?(_0xfdea2f=a0_0xfdea['FNnrMY'](_0xfdea2f),a0_0xfdea['ElUivo'][_0x147d38]=_0xfdea2f):_0xfdea2f=_0x4b03a0,_0xfdea2f;}import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AsyncToolManager extends a0_0x35a870{constructor(_0x8696d5={},_0x27cbbd=null){const _0x5717d8=a0_0xfdea;super(),this['config']=_0x8696d5,this['logger']=_0x27cbbd,this[_0x5717d8(0x1a0)]=new Map(),this[_0x5717d8(0x1e4)]=[],this[_0x5717d8(0x1ca)]=_0x8696d5[_0x5717d8(0x1ca)]||0xa,this[_0x5717d8(0x1a9)]=_0x8696d5['defaultTimeout']||0x493e0,this[_0x5717d8(0x1de)]=_0x8696d5[_0x5717d8(0x1de)]||0xea60,this[_0x5717d8(0x1c2)]=_0x8696d5['maxHistorySize']||0x3e8,this[_0x5717d8(0x1a4)]=null,this[_0x5717d8(0x1c3)]=![],this['startMonitoring'](),this['on'](_0x5717d8(0x1b7),this[_0x5717d8(0x1bf)]['bind'](this)),this['on']('operation:completed',this['handleOperationCompleted'][_0x5717d8(0x1cf)](this)),this['on'](_0x5717d8(0x1e6),this['handleOperationFailed'][_0x5717d8(0x1cf)](this)),this['on'](_0x5717d8(0x1c4),this['handleOperationTimeout']['bind'](this));}async['startOperation'](_0x4f2de2,_0x155928,_0x3fe2d7,_0x5040c7={}){const _0x1c0887=a0_0xfdea;if(this['operations'][_0x1c0887(0x1b5)]>=this[_0x1c0887(0x1ca)])throw new Error(_0x1c0887(0x1b0)+this['maxConcurrentOperations']+')');const _0x26e31f=this[_0x1c0887(0x1b9)](),_0xa8e057={'id':_0x26e31f,'toolId':_0x4f2de2,'agentId':_0x155928,'parameters':_0x3fe2d7,'context':_0x5040c7,'status':TOOL_STATUS['PENDING'],'createdAt':new Date()['toISOString'](),'startedAt':null,'completedAt':null,'timeout':_0x5040c7['timeout']||this[_0x1c0887(0x1a9)],'result':null,'error':null,'progress':null,'retryCount':0x0,'maxRetries':_0x5040c7['maxRetries']||0x0};return this[_0x1c0887(0x1a0)]['set'](_0x26e31f,_0xa8e057),this[_0x1c0887(0x1c9)]?.['info'](_0x1c0887(0x198)+_0x26e31f,{'toolId':_0x4f2de2,'agentId':_0x155928,'parametersCount':Object['keys'](_0x3fe2d7)[_0x1c0887(0x199)],'timeout':_0xa8e057['timeout']}),this['setOperationTimeout'](_0x26e31f),this['emit']('operation:started',_0xa8e057),_0x26e31f;}[a0_0x52ae65(0x1c0)](_0x53ce71,_0x115b97,_0x5b41ea={}){const _0x207e15=a0_0x52ae65,_0x144883=this['operations'][_0x207e15(0x1c7)](_0x53ce71);if(!_0x144883)return this[_0x207e15(0x1c9)]?.['warn']('Attempted\x20to\x20update\x20unknown\x20operation:\x20'+_0x53ce71),![];const _0x461062=_0x144883[_0x207e15(0x1d3)];_0x144883[_0x207e15(0x1d3)]=_0x115b97;_0x115b97===TOOL_STATUS['EXECUTING']&&!_0x144883['startedAt']&&(_0x144883['startedAt']=new Date()['toISOString']());(_0x115b97===TOOL_STATUS['COMPLETED']||_0x115b97===TOOL_STATUS['FAILED'])&&(_0x144883['completedAt']=new Date()[_0x207e15(0x1b2)]());if(_0x5b41ea['result']!==undefined)_0x144883[_0x207e15(0x1c5)]=_0x5b41ea['result'];if(_0x5b41ea[_0x207e15(0x1e5)]!==undefined)_0x144883[_0x207e15(0x1e5)]=_0x5b41ea[_0x207e15(0x1e5)];if(_0x5b41ea['progress']!==undefined)_0x144883['progress']=_0x5b41ea[_0x207e15(0x192)];this['logger']?.['debug'](_0x207e15(0x1e7)+_0x53ce71,{'previousStatus':_0x461062,'newStatus':_0x115b97,'hasResult':!!_0x5b41ea[_0x207e15(0x1c5)],'hasError':!!_0x5b41ea['error'],'progress':_0x5b41ea[_0x207e15(0x192)]});switch(_0x115b97){case TOOL_STATUS[_0x207e15(0x1be)]:this['emit'](_0x207e15(0x1cc),_0x144883);break;case TOOL_STATUS[_0x207e15(0x1a2)]:this[_0x207e15(0x1e8)](_0x207e15(0x1e6),_0x144883);break;case TOOL_STATUS['EXECUTING']:this[_0x207e15(0x1e8)]('operation:progress',_0x144883);break;}return!![];}['getOperation'](_0x14853e){const _0x63c5c1=a0_0x52ae65,_0x33ff79=this['operations'][_0x63c5c1(0x1c7)](_0x14853e);if(!_0x33ff79)return null;return{'id':_0x33ff79['id'],'toolId':_0x33ff79[_0x63c5c1(0x1ce)],'agentId':_0x33ff79['agentId'],'status':_0x33ff79[_0x63c5c1(0x1d3)],'createdAt':_0x33ff79[_0x63c5c1(0x1bc)],'startedAt':_0x33ff79['startedAt'],'completedAt':_0x33ff79[_0x63c5c1(0x190)],'result':_0x33ff79['result'],'error':_0x33ff79['error'],'progress':_0x33ff79[_0x63c5c1(0x192)],'retryCount':_0x33ff79[_0x63c5c1(0x19e)],'executionTime':this['calculateExecutionTime'](_0x33ff79)};}['getAgentOperations'](_0x589116){const _0x2e19ad=a0_0x52ae65,_0x53d5ab=[];for(const _0x186b36 of this['operations'][_0x2e19ad(0x1ad)]()){_0x186b36['agentId']===_0x589116&&_0x53d5ab[_0x2e19ad(0x1e3)](this[_0x2e19ad(0x195)](_0x186b36['id']));}return _0x53d5ab['sort']((_0xf71abe,_0x552dfd)=>new Date(_0x552dfd['createdAt'])-new Date(_0xf71abe[_0x2e19ad(0x1bc)]));}async[a0_0x52ae65(0x1ea)](_0x294b13,_0x158b9c=a0_0x52ae65(0x1c1)){const _0x3458f6=a0_0x52ae65,_0x2345fe=this['operations'][_0x3458f6(0x1c7)](_0x294b13);if(!_0x2345fe)return![];if(_0x2345fe[_0x3458f6(0x1d3)]===TOOL_STATUS[_0x3458f6(0x1be)]||_0x2345fe[_0x3458f6(0x1d3)]===TOOL_STATUS['FAILED'])return this['logger']?.['warn']('Cannot\x20cancel\x20completed/failed\x20operation:\x20'+_0x294b13),![];return this[_0x3458f6(0x1c0)](_0x294b13,TOOL_STATUS['CANCELLED'],{'error':_0x158b9c}),this[_0x3458f6(0x1a3)](_0x294b13),this['emit'](_0x3458f6(0x1d8),_0x2345fe),await this[_0x3458f6(0x196)](_0x294b13),this['logger']?.['info'](_0x3458f6(0x1c8)+_0x294b13,{'reason':_0x158b9c}),!![];}async[a0_0x52ae65(0x1aa)](_0xe33c8b){const _0x4f9bac=a0_0x52ae65,_0x239d2a=this['operations']['get'](_0xe33c8b);if(!_0x239d2a)return![];if(_0x239d2a['status']!==TOOL_STATUS[_0x4f9bac(0x1a2)])return this[_0x4f9bac(0x1c9)]?.['warn'](_0x4f9bac(0x19f)+_0xe33c8b),![];if(_0x239d2a['retryCount']>=_0x239d2a[_0x4f9bac(0x1d7)])return this['logger']?.[_0x4f9bac(0x1b6)](_0x4f9bac(0x1a8)+_0xe33c8b),![];return _0x239d2a['retryCount']++,_0x239d2a[_0x4f9bac(0x1d3)]=TOOL_STATUS['PENDING'],_0x239d2a[_0x4f9bac(0x1dd)]=null,_0x239d2a['completedAt']=null,_0x239d2a['error']=null,_0x239d2a['result']=null,this[_0x4f9bac(0x1d1)](_0xe33c8b),this[_0x4f9bac(0x1c9)]?.['info']('Operation\x20retry\x20initiated:\x20'+_0xe33c8b,{'retryCount':_0x239d2a[_0x4f9bac(0x19e)],'maxRetries':_0x239d2a[_0x4f9bac(0x1d7)]}),this['emit'](_0x4f9bac(0x1a6),_0x239d2a),!![];}['getStatistics'](){const _0x3d2192=a0_0x52ae65,_0x13edc2={'total':this[_0x3d2192(0x1a0)][_0x3d2192(0x1b5)],'byStatus':{},'byTool':{},'byAgent':{},'averageExecutionTime':0x0,'oldestOperation':null,'newestOperation':null};let _0x4f5693=0x0,_0x284ebf=0x0,_0x579d90=null,_0x343e7b=null;for(const _0x1e74e4 of this['operations'][_0x3d2192(0x1ad)]()){_0x13edc2['byStatus'][_0x1e74e4[_0x3d2192(0x1d3)]]=(_0x13edc2[_0x3d2192(0x1ab)][_0x1e74e4[_0x3d2192(0x1d3)]]||0x0)+0x1,_0x13edc2['byTool'][_0x1e74e4[_0x3d2192(0x1ce)]]=(_0x13edc2[_0x3d2192(0x1cb)][_0x1e74e4[_0x3d2192(0x1ce)]]||0x0)+0x1,_0x13edc2[_0x3d2192(0x1d9)][_0x1e74e4[_0x3d2192(0x1ec)]]=(_0x13edc2['byAgent'][_0x1e74e4['agentId']]||0x0)+0x1;const _0xb16715=this[_0x3d2192(0x1e2)](_0x1e74e4);_0xb16715>0x0&&(_0x4f5693+=_0xb16715,_0x284ebf++);const _0x8ddec8=new Date(_0x1e74e4[_0x3d2192(0x1bc)])['getTime']();(!_0x579d90||_0x8ddec8<_0x579d90)&&(_0x579d90=_0x8ddec8,_0x13edc2['oldestOperation']=_0x1e74e4['id']),(!_0x343e7b||_0x8ddec8>_0x343e7b)&&(_0x343e7b=_0x8ddec8,_0x13edc2[_0x3d2192(0x1ac)]=_0x1e74e4['id']);}return _0x13edc2['averageExecutionTime']=_0x284ebf>0x0?Math[_0x3d2192(0x1da)](_0x4f5693/_0x284ebf):0x0,_0x13edc2;}async['cleanupCompletedOperations'](_0xc03f64=0x36ee80){const _0xa49593=a0_0x52ae65,_0x19ee82=Date['now']()-_0xc03f64,_0x4dbb7b=[];for(const _0x225885 of this['operations']['values']()){(_0x225885['status']===TOOL_STATUS['COMPLETED']||_0x225885[_0xa49593(0x1d3)]===TOOL_STATUS[_0xa49593(0x1a2)]||_0x225885[_0xa49593(0x1d3)]===TOOL_STATUS[_0xa49593(0x19b)])&&new Date(_0x225885['completedAt'])[_0xa49593(0x18d)]()<_0x19ee82&&_0x4dbb7b[_0xa49593(0x1e3)](_0x225885['id']);}for(const _0x2db9a0 of _0x4dbb7b){await this[_0xa49593(0x196)](_0x2db9a0);}return this[_0xa49593(0x1c9)]?.['debug']('Cleaned\x20up\x20'+_0x4dbb7b['length']+_0xa49593(0x1d4)),_0x4dbb7b['length'];}[a0_0x52ae65(0x1b3)](){const _0x7ae95f=a0_0x52ae65;this[_0x7ae95f(0x1a4)]&&clearInterval(this['monitoringInterval']),this['monitoringInterval']=setInterval(()=>{const _0x516aa1=_0x7ae95f;this['checkOperationTimeouts'](),this[_0x516aa1(0x1a1)]();},this[_0x7ae95f(0x1de)]),this['logger']?.[_0x7ae95f(0x1a7)]('Async\x20tool\x20manager\x20monitoring\x20started');}[a0_0x52ae65(0x1cd)](){const _0x415f5a=a0_0x52ae65;this[_0x415f5a(0x1a4)]&&(clearInterval(this['monitoringInterval']),this[_0x415f5a(0x1a4)]=null),this[_0x415f5a(0x1c9)]?.[_0x415f5a(0x1a7)](_0x415f5a(0x19a));}[a0_0x52ae65(0x18f)](){const _0x133123=a0_0x52ae65,_0x12d914=Date[_0x133123(0x194)]();for(const _0x359203 of this['operations']['values']()){if(_0x359203['status']===TOOL_STATUS[_0x133123(0x1af)]||_0x359203['status']===TOOL_STATUS[_0x133123(0x18e)]){const _0x377f8b=new Date(_0x359203[_0x133123(0x1bc)])['getTime']();_0x12d914-_0x377f8b>_0x359203['timeout']&&this['handleOperationTimeout'](_0x359203);}}}['setOperationTimeout'](_0x158c33){const _0x3334a2=a0_0x52ae65,_0x1ee5fe=this[_0x3334a2(0x1a0)]['get'](_0x158c33);if(!_0x1ee5fe)return;_0x1ee5fe['timeoutHandle']=setTimeout(()=>{this['handleOperationTimeout'](_0x1ee5fe);},_0x1ee5fe['timeout']);}[a0_0x52ae65(0x1a3)](_0x58a758){const _0x3fa4cd=a0_0x52ae65,_0x2d9664=this[_0x3fa4cd(0x1a0)]['get'](_0x58a758);_0x2d9664&&_0x2d9664['timeoutHandle']&&(clearTimeout(_0x2d9664['timeoutHandle']),delete _0x2d9664[_0x3fa4cd(0x1bb)]);}[a0_0x52ae65(0x1b9)](){const _0x39161f=a0_0x52ae65,_0xd6e6b3=Date[_0x39161f(0x194)]()['toString'](0x24),_0x2edc9b=Math[_0x39161f(0x19d)]()[_0x39161f(0x193)](0x24)['substr'](0x2,0x9);return'op-'+_0xd6e6b3+'-'+_0x2edc9b;}[a0_0x52ae65(0x1e2)](_0x44fb4f){const _0x4c8d6=a0_0x52ae65;if(!_0x44fb4f['startedAt'])return 0x0;const _0x24aa8a=_0x44fb4f[_0x4c8d6(0x190)]?new Date(_0x44fb4f['completedAt'])['getTime']():Date['now']();return _0x24aa8a-new Date(_0x44fb4f[_0x4c8d6(0x1dd)])[_0x4c8d6(0x18d)]();}async['cleanupOperation'](_0x3578ad){const _0x29991f=a0_0x52ae65,_0x41baba=this[_0x29991f(0x1a0)][_0x29991f(0x1c7)](_0x3578ad);if(!_0x41baba)return;this[_0x29991f(0x1a3)](_0x3578ad),this['operationHistory']['push']({..._0x41baba,'executionTime':this[_0x29991f(0x1e2)](_0x41baba),'cleanedUpAt':new Date()['toISOString']()}),this[_0x29991f(0x1e4)]['length']>this['maxHistorySize']&&(this[_0x29991f(0x1e4)]=this[_0x29991f(0x1e4)]['slice'](-this[_0x29991f(0x1c2)])),this[_0x29991f(0x1a0)]['delete'](_0x3578ad),this['emit']('operation:cleanup',{'operationId':_0x3578ad,'toolId':_0x41baba['toolId']});}[a0_0x52ae65(0x1bf)](_0x47a563){const _0x4a9409=a0_0x52ae65;this['logger']?.['debug'](_0x4a9409(0x1bd)+_0x47a563['id'],{'toolId':_0x47a563[_0x4a9409(0x1ce)],'agentId':_0x47a563['agentId']});}async['handleOperationCompleted'](_0x2d4e08){const _0x41e70b=a0_0x52ae65;this['logger']?.['info'](_0x41e70b(0x1d5)+_0x2d4e08['id'],{'toolId':_0x2d4e08[_0x41e70b(0x1ce)],'agentId':_0x2d4e08['agentId'],'executionTime':this[_0x41e70b(0x1e2)](_0x2d4e08)}),setTimeout(()=>this['cleanupOperation'](_0x2d4e08['id']),0x7530);}async['handleOperationFailed'](_0x4d47bd){const _0x4253de=a0_0x52ae65;this[_0x4253de(0x1c9)]?.['error'](_0x4253de(0x1df)+_0x4d47bd['id'],{'toolId':_0x4d47bd[_0x4253de(0x1ce)],'agentId':_0x4d47bd['agentId'],'error':_0x4d47bd[_0x4253de(0x1e5)],'executionTime':this[_0x4253de(0x1e2)](_0x4d47bd),'retryCount':_0x4d47bd['retryCount']}),_0x4d47bd['retryCount']<_0x4d47bd[_0x4253de(0x1d7)]?setTimeout(()=>this[_0x4253de(0x1aa)](_0x4d47bd['id']),0x1388):setTimeout(()=>this['cleanupOperation'](_0x4d47bd['id']),0xea60);}async['handleOperationTimeout'](_0x2f51b1){const _0x107e9c=a0_0x52ae65;this['logger']?.['warn']('Operation\x20timed\x20out:\x20'+_0x2f51b1['id'],{'toolId':_0x2f51b1['toolId'],'agentId':_0x2f51b1['agentId'],'timeout':_0x2f51b1[_0x107e9c(0x1dc)],'executionTime':this['calculateExecutionTime'](_0x2f51b1)}),this[_0x107e9c(0x1c0)](_0x2f51b1['id'],TOOL_STATUS['TIMEOUT'],{'error':_0x107e9c(0x1e1)+_0x2f51b1[_0x107e9c(0x1dc)]+'ms'}),this['emit']('operation:timeout',_0x2f51b1),setTimeout(()=>this['cleanupOperation'](_0x2f51b1['id']),0x7530);}async['shutdown'](){const _0x24b2a6=a0_0x52ae65;this['isShuttingDown']=!![],this['logger']?.['info']('Shutting down async tool manager...'),this[_0x24b2a6(0x1cd)]();const _0x105e2b=[];for(const _0x528e6c of this['operations'][_0x24b2a6(0x1ad)]()){(_0x528e6c['status']===TOOL_STATUS[_0x24b2a6(0x18e)]||_0x528e6c['status']===TOOL_STATUS['EXECUTING'])&&_0x105e2b[_0x24b2a6(0x1e3)](_0x528e6c['id']);}for(const _0x2dcf2f of _0x105e2b){await this['cancelOperation'](_0x2dcf2f,'System\x20shutdown');}this[_0x24b2a6(0x1a0)]['clear'](),this['logger']?.[_0x24b2a6(0x1a7)](_0x24b2a6(0x1ba)+_0x105e2b['length']+_0x24b2a6(0x1d6));}[a0_0x52ae65(0x1d0)](_0x35dbd6={}){const _0x3c1a50=a0_0x52ae65;let _0x57cc5d=[...this['operationHistory']];return _0x35dbd6[_0x3c1a50(0x1ec)]&&(_0x57cc5d=_0x57cc5d[_0x3c1a50(0x1c6)](_0xc27ac6=>_0xc27ac6[_0x3c1a50(0x1ec)]===_0x35dbd6[_0x3c1a50(0x1ec)])),_0x35dbd6['toolId']&&(_0x57cc5d=_0x57cc5d['filter'](_0x3fd638=>_0x3fd638[_0x3c1a50(0x1ce)]===_0x35dbd6['toolId'])),_0x35dbd6[_0x3c1a50(0x1d3)]&&(_0x57cc5d=_0x57cc5d['filter'](_0x3de5f8=>_0x3de5f8['status']===_0x35dbd6[_0x3c1a50(0x1d3)])),_0x35dbd6['limit']&&(_0x57cc5d=_0x57cc5d[_0x3c1a50(0x1e9)](-_0x35dbd6['limit'])),_0x57cc5d[_0x3c1a50(0x19c)]((_0x3d10ab,_0x58b831)=>new Date(_0x58b831['createdAt'])-new Date(_0x3d10ab['createdAt']));}}function a0_0x3769(){const _0x19281f=['z2v0','t3bLCMf0Aw9UignHBMnLBgXLzdOG','Bg9Nz2vY','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','yNLuB29S','B3bLCMf0Aw9UoMnVBxbSzxrLza','C3rVCe1VBML0B3jPBMC','Dg9VBeLK','yMLUza','z2v0t3bLCMf0Aw9UsgLZDg9YEq','C2v0t3bLCMf0Aw9UvgLTzw91Da','mtKXotqWDxPTsM5t','C3rHDhvZ','ignVBxbSzxrLzcbVCgvYyxrPB25Z','t3bLCMf0Aw9UignVBxbSzxrLzdOG','ig9WzxjHDgLVBNmU','Bwf4uMv0CMLLCW','B3bLCMf0Aw9UoMnHBMnLBgXLza','yNLbz2vUDa','CM91BMq','mtC0ogfwr3P3tq','DgLTzw91Da','C3rHCNrLzef0','y2XLyw51CeLUDgvYDMfS','t3bLCMf0Aw9UigzHAwXLzdOG','mZzUveTtBhK','t3bLCMf0Aw9UihrPBwvKig91DcbHzNrLCIa','y2fSy3vSyxrLrxHLy3v0Aw9UvgLTzq','ChvZAa','B3bLCMf0Aw9UsgLZDg9YEq','zxjYB3i','B3bLCMf0Aw9UoMzHAwXLza','t3bLCMf0Aw9Uihn0yxr1CYb1CgrHDgvKoIa','zw1PDa','C2XPy2u','y2fUy2vSt3bLCMf0Aw9U','nty2mda4sgn3zwTp','ywDLBNrjza','z2v0vgLTzq','uevoreLorW','y2HLy2TpCgvYyxrPB25uAw1LB3v0CW','y29TCgXLDgvKqxq','mZe1mtaYC0f5Dw1y','ChjVz3jLC3m','Dg9tDhjPBMC','BM93','z2v0t3bLCMf0Aw9U','y2XLyw51Ce9WzxjHDgLVBG','otGZotG3ng5nvNfWqG','qxn5BMmGB3bLCMf0Aw9Uihn0yxj0zwq6ia','BgvUz3rO','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rVChbLza','q0foq0vmteve','C29YDa','CMfUzg9T','CMv0CNLdB3vUDa','q2fUBM90ihjLDhj5ig5VBI1MywLSzwqGB3bLCMf0Aw9UoIa','B3bLCMf0Aw9UCW','y2XLyw51CenVBxbSzxrLze9WzxjHDgLVBNm','rKfjteve','y2XLyxjpCgvYyxrPB25uAw1LB3v0','Bw9UAxrVCMLUz0LUDgvYDMfS','n25rDxHiqG','B3bLCMf0Aw9UoNjLDhj5','Aw5MBW','twf4Aw11BsbYzxrYAwvZigv4y2vLzgvKigzVCIbVCgvYyxrPB246ia','zgvMyxvSDfrPBwvVDxq','CMv0CNLpCgvYyxrPB24','yNLtDgf0Dxm','BMv3zxn0t3bLCMf0Aw9U','DMfSDwvZ','muP3qMPIwG','rvHfq1vusu5h','twf4Aw11BsbJB25JDxjYzw50ig9WzxjHDgLVBNmGCMvHy2HLzcaO','mZq1C3n2rLr3','Dg9ju09tDhjPBMC','C3rHCNrnB25PDg9YAw5N','mtm1mtu2nLPxwhPcsa','C2L6zq','D2fYBG','B3bLCMf0Aw9UoNn0yxj0zwq','mta0mdCWmfb6u2DjBa','z2vUzxjHDgvpCgvYyxrPB25jza','qxn5BMmGDg9VBcbTyw5Hz2vYihnODxrKB3DUignVBxbSzxrLlIbdyw5JzwXSzwqG','DgLTzw91DeHHBMrSzq','y3jLyxrLzef0','t3bLCMf0Aw9Uihn0yxj0zwq6ia','q09nueXfveve','AgfUzgXLt3bLCMf0Aw9Uu3rHCNrLza','DxbKyxrLt3bLCMf0Aw9U','t3bLCMf0Aw9UignHBMnLBgXLza','Bwf4sgLZDg9YEvnPEMu','AxntAhv0DgLUz0rVD24','B3bLCMf0Aw9UoNrPBwvVDxq','CMvZDwX0','zMLSDgvY'];a0_0x3769=function(){return _0x19281f;};return a0_0x3769();}export default AsyncToolManager;
1
+ function a0_0x1e04(){const _0x2459d6=['rvHfq1vusu5h','DxbKyxrLt3bLCMf0Aw9U','z2vUzxjHDgvpCgvYyxrPB25jza','t3bLCMf0Aw9UignHBMnLBgXLza','Dg9ju09tDhjPBMC','mZiZoty4nxDUq1L5sq','y2fSy3vSyxrLrxHLy3v0Aw9UvgLTzq','y3jLyxrLzef0','t3bLCMf0Aw9UihjLDhj5igLUAxrPyxrLzdOG','yMLUza','otm4ody5mMrKrgrXEG','y2XLyw51CeLUDgvYDMfS','B2XKzxn0t3bLCMf0Aw9U','y2fUy2vSt3bLCMf0Aw9U','C2v0t3bLCMf0Aw9UvgLTzw91Da','Dg9VBeLK','C2XPy2u','A2v5CW','z2v0vgLTzq','veLnru9vva','zgvSzxrL','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','CMv0CNLdB3vUDa','Aw5MBW','y2XLyxi','DMfSDwvZ','odq0odqZz0L2yNzw','y2XLyw51Ce9WzxjHDgLVBG','y2XLyxjpCgvYyxrPB25uAw1LB3v0','t3bLCMf0Aw9Uihn0yxj0zwq6ia','AxntAhv0DgLUz0rVD24','mZe5mtG5mNHrrNvxEG','C3rVCe1VBML0B3jPBMC','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rHCNrLza','CMvZDwX0','zgvMyxvSDfrPBwvVDxq','z2v0t3bLCMf0Aw9U','Bwf4sgLZDg9YEvnPEMu','nwfgrvvRsW','C2L6zq','z2v0','B3bLCMf0Aw9UsgLZDg9YEq','AgfUzgXLt3bLCMf0Aw9UvgLTzw91Da','mJu2mJyWmgH1qvz2qG','C3rHCNrpCgvYyxrPB24','BgvUz3rO','yNLtDgf0Dxm','n01ts0npzG','zxjYB3i','t3bLCMf0Aw9Uihn0yxr1CYb1CgrHDgvKoIa','mtm2nZe5mMj6sM9bsa','B3bLCMf0Aw9UoMzHAwXLza','uevoreLorW','Dg9tDhjPBMC','mta2ndG4nKnZB21Xyq','t3bLCMf0Aw9UignHBMnLBgXLzdOG','C2v0','DgLTzw91DeHHBMrSzq','y29TCgXLDgvKqxq','Bwf4uMv0CMLLCW','ChvZAa','C3rHCNrLzef0','AgfUzgXLt3bLCMf0Aw9Uq29TCgXLDgvK','B3bLCMf0Aw9UCW','AgfUzgXLt3bLCMf0Aw9Uu3rHCNrLza','z2v0u3rHDgLZDgLJCW','t3bLCMf0Aw9UihrPBwvKig91DcbHzNrLCIa','t3bLCMf0Aw9UignVBxbSzxrLzdOG','rKfjteve','qxn5BMmGB3bLCMf0Aw9Uihn0yxj0zwq6ia','u3LZDgvTihnODxrKB3DU','zw1PDa','BM93','C3rHCNrnB25PDg9YAw5N','yNLuB29S','B3bLCMf0Aw9UoNrPBwvVDxq','B3bLCMf0Aw9UoNn0yxj0zwq','yxzLCMfNzuv4zwn1DgLVBLrPBwu','ywDLBNrjza','y2HLy2TpCgvYyxrPB25uAw1LB3v0CW','D2fYBG','C3rHDhvZ','AgfUzgXLt3bLCMf0Aw9UrMfPBgvK','ChjVz3jLC3m','qxr0zw1WDgvKihrVihvWzgf0zsb1BMTUB3DUig9WzxjHDgLVBJOG','CMv0CNLpCgvYyxrPB24','DgLTzw91Da','Bg9Nz2vY','y2XLyw51CenVBxbSzxrLze9WzxjHDgLVBNm','q09nueXfveve','t3bLCMf0Aw9UigzHAwXLzdOG','Bw9UAxrVCMLUz0LUDgvYDMfS','zgvIDwC'];a0_0x1e04=function(){return _0x2459d6;};return a0_0x1e04();}const a0_0x4cc60f=a0_0x3fa0;(function(_0x1269e9,_0x3112be){const _0x695b08=a0_0x3fa0,_0x1831af=_0x1269e9();while(!![]){try{const _0x1eeac3=parseInt(_0x695b08(0x1cc))/0x1+parseInt(_0x695b08(0x1dd))/0x2+-parseInt(_0x695b08(0x1b7))/0x3+parseInt(_0x695b08(0x1d1))/0x4+-parseInt(_0x695b08(0x1d8))/0x5*(-parseInt(_0x695b08(0x1e8))/0x6)+-parseInt(_0x695b08(0x1e1))/0x7*(parseInt(_0x695b08(0x1e4))/0x8)+-parseInt(_0x695b08(0x1bc))/0x9;if(_0x1eeac3===_0x3112be)break;else _0x1831af['push'](_0x1831af['shift']());}catch(_0x33eceb){_0x1831af['push'](_0x1831af['shift']());}}}(a0_0x1e04,0xc52bf));import a0_0x24d918 from'events';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AsyncToolManager extends a0_0x24d918{constructor(_0xccb156={},_0x361544=null){const _0x3ce6fa=a0_0x3fa0;super(),this['config']=_0xccb156,this['logger']=_0x361544,this['operations']=new Map(),this[_0x3ce6fa(0x1db)]=[],this['maxConcurrentOperations']=_0xccb156['maxConcurrentOperations']||0xa,this['defaultTimeout']=_0xccb156[_0x3ce6fa(0x1d5)]||0x493e0,this[_0x3ce6fa(0x1bd)]=_0xccb156['cleanupInterval']||0xea60,this[_0x3ce6fa(0x1d7)]=_0xccb156[_0x3ce6fa(0x1d7)]||0x3e8,this['monitoringInterval']=null,this['isShuttingDown']=![],this[_0x3ce6fa(0x19e)](),this['on'](_0x3ce6fa(0x1a1),this[_0x3ce6fa(0x1f2)]['bind'](this)),this['on']('operation:completed',this[_0x3ce6fa(0x1f0)]['bind'](this)),this['on'](_0x3ce6fa(0x1e5),this['handleOperationFailed'][_0x3ce6fa(0x1bb)](this)),this['on'](_0x3ce6fa(0x1a0),this['handleOperationTimeout']['bind'](this));}async[a0_0x4cc60f(0x1de)](_0x142154,_0x30d7e1,_0x4275b9,_0x1fd107={}){const _0x55565a=a0_0x4cc60f;if(this['operations'][_0x55565a(0x1d9)]>=this[_0x55565a(0x1c7)])throw new Error('Maximum\x20concurrent\x20operations\x20reached\x20('+this[_0x55565a(0x1c7)]+')');const _0x7be507=this[_0x55565a(0x1b4)](),_0x5689e6={'id':_0x7be507,'toolId':_0x142154,'agentId':_0x30d7e1,'parameters':_0x4275b9,'context':_0x1fd107,'status':TOOL_STATUS[_0x55565a(0x1e6)],'createdAt':new Date()['toISOString'](),'startedAt':null,'completedAt':null,'timeout':_0x1fd107[_0x55565a(0x1ab)]||this[_0x55565a(0x1d5)],'result':null,'error':null,'progress':null,'retryCount':0x0,'maxRetries':_0x1fd107['maxRetries']||0x0};return this[_0x55565a(0x1f1)][_0x55565a(0x1ea)](_0x7be507,_0x5689e6),this['logger']?.['info'](_0x55565a(0x19a)+_0x7be507,{'toolId':_0x142154,'agentId':_0x30d7e1,'parametersCount':Object[_0x55565a(0x1c3)](_0x4275b9)[_0x55565a(0x1df)],'timeout':_0x5689e6['timeout']}),this[_0x55565a(0x1c0)](_0x7be507),this[_0x55565a(0x19c)](_0x55565a(0x1a1),_0x5689e6),_0x7be507;}[a0_0x4cc60f(0x1b3)](_0x4619d8,_0xea289b,_0x152ba6={}){const _0x55f309=a0_0x4cc60f,_0x3ad206=this['operations']['get'](_0x4619d8);if(!_0x3ad206)return this[_0x55f309(0x1ac)]?.['warn'](_0x55f309(0x1a9)+_0x4619d8),![];const _0x239ece=_0x3ad206['status'];_0x3ad206['status']=_0xea289b;_0xea289b===TOOL_STATUS['EXECUTING']&&!_0x3ad206[_0x55f309(0x1ef)]&&(_0x3ad206['startedAt']=new Date()[_0x55f309(0x1b6)]());(_0xea289b===TOOL_STATUS[_0x55f309(0x1ae)]||_0xea289b===TOOL_STATUS[_0x55f309(0x1f6)])&&(_0x3ad206[_0x55f309(0x1ec)]=new Date()[_0x55f309(0x1b6)]());if(_0x152ba6[_0x55f309(0x1d4)]!==undefined)_0x3ad206['result']=_0x152ba6['result'];if(_0x152ba6['error']!==undefined)_0x3ad206['error']=_0x152ba6[_0x55f309(0x1e2)];if(_0x152ba6[_0x55f309(0x1a8)]!==undefined)_0x3ad206['progress']=_0x152ba6['progress'];this['logger']?.[_0x55f309(0x1b1)](_0x55f309(0x1e3)+_0x4619d8,{'previousStatus':_0x239ece,'newStatus':_0xea289b,'hasResult':!!_0x152ba6['result'],'hasError':!!_0x152ba6['error'],'progress':_0x152ba6['progress']});switch(_0xea289b){case TOOL_STATUS['COMPLETED']:this[_0x55f309(0x19c)]('operation:completed',_0x3ad206);break;case TOOL_STATUS['FAILED']:this[_0x55f309(0x19c)]('operation:failed',_0x3ad206);break;case TOOL_STATUS['EXECUTING']:this['emit']('operation:progress',_0x3ad206);break;}return!![];}[a0_0x4cc60f(0x1d6)](_0x128a7b){const _0x3f49be=a0_0x4cc60f,_0x1a8f8d=this['operations']['get'](_0x128a7b);if(!_0x1a8f8d)return null;return{'id':_0x1a8f8d['id'],'toolId':_0x1a8f8d['toolId'],'agentId':_0x1a8f8d['agentId'],'status':_0x1a8f8d['status'],'createdAt':_0x1a8f8d[_0x3f49be(0x1b9)],'startedAt':_0x1a8f8d['startedAt'],'completedAt':_0x1a8f8d[_0x3f49be(0x1ec)],'result':_0x1a8f8d['result'],'error':_0x1a8f8d['error'],'progress':_0x1a8f8d[_0x3f49be(0x1a8)],'retryCount':_0x1a8f8d[_0x3f49be(0x1c8)],'executionTime':this['calculateExecutionTime'](_0x1a8f8d)};}['getAgentOperations'](_0x21cd82){const _0x288bc3=a0_0x4cc60f,_0x378554=[];for(const _0x163f9c of this[_0x288bc3(0x1f1)][_0x288bc3(0x1cb)]()){_0x163f9c[_0x288bc3(0x1a3)]===_0x21cd82&&_0x378554['push'](this['getOperation'](_0x163f9c['id']));}return _0x378554['sort']((_0x1a1e34,_0xdd39ce)=>new Date(_0xdd39ce[_0x288bc3(0x1b9)])-new Date(_0x1a1e34['createdAt']));}async[a0_0x4cc60f(0x1bf)](_0x32bca6,_0x11f3b7=a0_0x4cc60f(0x1b5)){const _0x1e2ea4=a0_0x4cc60f,_0x337b6c=this[_0x1e2ea4(0x1f1)]['get'](_0x32bca6);if(!_0x337b6c)return![];if(_0x337b6c['status']===TOOL_STATUS['COMPLETED']||_0x337b6c[_0x1e2ea4(0x1a6)]===TOOL_STATUS['FAILED'])return this['logger']?.[_0x1e2ea4(0x1a5)]('Cannot\x20cancel\x20completed/failed\x20operation:\x20'+_0x32bca6),![];return this[_0x1e2ea4(0x1b3)](_0x32bca6,TOOL_STATUS['CANCELLED'],{'error':_0x11f3b7}),this[_0x1e2ea4(0x1ce)](_0x32bca6),this['emit']('operation:cancelled',_0x337b6c),await this['cleanupOperation'](_0x32bca6),this[_0x1e2ea4(0x1ac)]?.['info'](_0x1e2ea4(0x1e9)+_0x32bca6,{'reason':_0x11f3b7}),!![];}async[a0_0x4cc60f(0x1aa)](_0x9dd0e5){const _0x4d4903=a0_0x4cc60f,_0x13f7a4=this['operations'][_0x4d4903(0x1da)](_0x9dd0e5);if(!_0x13f7a4)return![];if(_0x13f7a4[_0x4d4903(0x1a6)]!==TOOL_STATUS[_0x4d4903(0x1f6)])return this['logger']?.[_0x4d4903(0x1a5)]('Cannot\x20retry\x20non-failed\x20operation:\x20'+_0x9dd0e5),![];if(_0x13f7a4['retryCount']>=_0x13f7a4['maxRetries'])return this['logger']?.['warn']('Maximum\x20retries\x20exceeded\x20for\x20operation:\x20'+_0x9dd0e5),![];return _0x13f7a4['retryCount']++,_0x13f7a4[_0x4d4903(0x1a6)]=TOOL_STATUS[_0x4d4903(0x1e6)],_0x13f7a4[_0x4d4903(0x1ef)]=null,_0x13f7a4[_0x4d4903(0x1ec)]=null,_0x13f7a4[_0x4d4903(0x1e2)]=null,_0x13f7a4[_0x4d4903(0x1d4)]=null,this['setOperationTimeout'](_0x9dd0e5),this[_0x4d4903(0x1ac)]?.[_0x4d4903(0x1c9)](_0x4d4903(0x1ba)+_0x9dd0e5,{'retryCount':_0x13f7a4['retryCount'],'maxRetries':_0x13f7a4['maxRetries']}),this['emit']('operation:retry',_0x13f7a4),!![];}[a0_0x4cc60f(0x1f3)](){const _0x192cc2=a0_0x4cc60f,_0x2a9b50={'total':this['operations']['size'],'byStatus':{},'byTool':{},'byAgent':{},'averageExecutionTime':0x0,'oldestOperation':null,'newestOperation':null};let _0x544960=0x0,_0x2a92e9=0x0,_0x4f27d1=null,_0xd067a=null;for(const _0x5799ef of this['operations'][_0x192cc2(0x1cb)]()){_0x2a9b50[_0x192cc2(0x1e0)][_0x5799ef['status']]=(_0x2a9b50[_0x192cc2(0x1e0)][_0x5799ef[_0x192cc2(0x1a6)]]||0x0)+0x1,_0x2a9b50[_0x192cc2(0x19f)][_0x5799ef['toolId']]=(_0x2a9b50['byTool'][_0x5799ef['toolId']]||0x0)+0x1,_0x2a9b50['byAgent'][_0x5799ef[_0x192cc2(0x1a3)]]=(_0x2a9b50['byAgent'][_0x5799ef[_0x192cc2(0x1a3)]]||0x0)+0x1;const _0x4ecf78=this[_0x192cc2(0x1b8)](_0x5799ef);_0x4ecf78>0x0&&(_0x544960+=_0x4ecf78,_0x2a92e9++);const _0x54dd8f=new Date(_0x5799ef[_0x192cc2(0x1b9)])['getTime']();(!_0x4f27d1||_0x54dd8f<_0x4f27d1)&&(_0x4f27d1=_0x54dd8f,_0x2a9b50[_0x192cc2(0x1be)]=_0x5799ef['id']),(!_0xd067a||_0x54dd8f>_0xd067a)&&(_0xd067a=_0x54dd8f,_0x2a9b50['newestOperation']=_0x5799ef['id']);}return _0x2a9b50[_0x192cc2(0x1a2)]=_0x2a92e9>0x0?Math['round'](_0x544960/_0x2a92e9):0x0,_0x2a9b50;}async['cleanupCompletedOperations'](_0x20419c=0x36ee80){const _0xc81a7f=a0_0x4cc60f,_0x104c6d=Date[_0xc81a7f(0x19d)]()-_0x20419c,_0x228c0=[];for(const _0x2d76c5 of this['operations']['values']()){(_0x2d76c5['status']===TOOL_STATUS['COMPLETED']||_0x2d76c5[_0xc81a7f(0x1a6)]===TOOL_STATUS[_0xc81a7f(0x1f6)]||_0x2d76c5['status']===TOOL_STATUS['CANCELLED'])&&new Date(_0x2d76c5[_0xc81a7f(0x1ec)])['getTime']()<_0x104c6d&&_0x228c0[_0xc81a7f(0x1ee)](_0x2d76c5['id']);}for(const _0x3ba404 of _0x228c0){await this[_0xc81a7f(0x1cd)](_0x3ba404);}return this[_0xc81a7f(0x1ac)]?.['debug']('Cleaned\x20up\x20'+_0x228c0[_0xc81a7f(0x1df)]+'\x20completed\x20operations'),_0x228c0['length'];}[a0_0x4cc60f(0x19e)](){const _0x5dbc5b=a0_0x4cc60f;this[_0x5dbc5b(0x1b0)]&&clearInterval(this['monitoringInterval']),this['monitoringInterval']=setInterval(()=>{const _0x101072=_0x5dbc5b;this['checkOperationTimeouts'](),this[_0x101072(0x1ad)]();},this['cleanupInterval']),this['logger']?.['info'](_0x5dbc5b(0x1d3));}[a0_0x4cc60f(0x1d2)](){const _0x2d0aa2=a0_0x4cc60f;this[_0x2d0aa2(0x1b0)]&&(clearInterval(this['monitoringInterval']),this[_0x2d0aa2(0x1b0)]=null),this['logger']?.[_0x2d0aa2(0x1c9)]('Async\x20tool\x20manager\x20monitoring\x20stopped');}[a0_0x4cc60f(0x1a4)](){const _0x4cabad=a0_0x4cc60f,_0x109c10=Date[_0x4cabad(0x19d)]();for(const _0x55470c of this['operations']['values']()){if(_0x55470c[_0x4cabad(0x1a6)]===TOOL_STATUS[_0x4cabad(0x1b2)]||_0x55470c[_0x4cabad(0x1a6)]===TOOL_STATUS['PENDING']){const _0x4fe232=new Date(_0x55470c['createdAt'])[_0x4cabad(0x1c4)]();_0x109c10-_0x4fe232>_0x55470c['timeout']&&this[_0x4cabad(0x1dc)](_0x55470c);}}}['setOperationTimeout'](_0x3a54b7){const _0x5b287d=a0_0x4cc60f,_0x32173f=this['operations'][_0x5b287d(0x1da)](_0x3a54b7);if(!_0x32173f)return;_0x32173f['timeoutHandle']=setTimeout(()=>{const _0x13a446=_0x5b287d;this[_0x13a446(0x1dc)](_0x32173f);},_0x32173f['timeout']);}[a0_0x4cc60f(0x1ce)](_0x3ab1c2){const _0x50424c=a0_0x4cc60f,_0xf52e03=this['operations'][_0x50424c(0x1da)](_0x3ab1c2);_0xf52e03&&_0xf52e03[_0x50424c(0x1eb)]&&(clearTimeout(_0xf52e03['timeoutHandle']),delete _0xf52e03[_0x50424c(0x1eb)]);}[a0_0x4cc60f(0x1b4)](){const _0x244082=a0_0x4cc60f,_0x59b213=Date['now']()[_0x244082(0x1e7)](0x24),_0x5c4a42=Math['random']()['toString'](0x24)['substr'](0x2,0x9);return'op-'+_0x59b213+'-'+_0x5c4a42;}[a0_0x4cc60f(0x1b8)](_0xae46d8){const _0x373496=a0_0x4cc60f;if(!_0xae46d8[_0x373496(0x1ef)])return 0x0;const _0x508b14=_0xae46d8['completedAt']?new Date(_0xae46d8[_0x373496(0x1ec)])[_0x373496(0x1c4)]():Date['now']();return _0x508b14-new Date(_0xae46d8['startedAt'])[_0x373496(0x1c4)]();}async['cleanupOperation'](_0x231045){const _0x3ef1db=a0_0x4cc60f,_0x4163f8=this[_0x3ef1db(0x1f1)]['get'](_0x231045);if(!_0x4163f8)return;this[_0x3ef1db(0x1ce)](_0x231045),this[_0x3ef1db(0x1db)][_0x3ef1db(0x1ee)]({..._0x4163f8,'executionTime':this[_0x3ef1db(0x1b8)](_0x4163f8),'cleanedUpAt':new Date()[_0x3ef1db(0x1b6)]()}),this[_0x3ef1db(0x1db)]['length']>this['maxHistorySize']&&(this['operationHistory']=this['operationHistory'][_0x3ef1db(0x1c2)](-this['maxHistorySize'])),this[_0x3ef1db(0x1f1)][_0x3ef1db(0x1c6)](_0x231045),this[_0x3ef1db(0x19c)]('operation:cleanup',{'operationId':_0x231045,'toolId':_0x4163f8['toolId']});}[a0_0x4cc60f(0x1f2)](_0x212908){const _0x211fd6=a0_0x4cc60f;this['logger']?.[_0x211fd6(0x1b1)](_0x211fd6(0x1cf)+_0x212908['id'],{'toolId':_0x212908['toolId'],'agentId':_0x212908['agentId']});}async['handleOperationCompleted'](_0x310d83){const _0x430015=a0_0x4cc60f;this[_0x430015(0x1ac)]?.[_0x430015(0x1c9)](_0x430015(0x1f5)+_0x310d83['id'],{'toolId':_0x310d83[_0x430015(0x1c1)],'agentId':_0x310d83[_0x430015(0x1a3)],'executionTime':this['calculateExecutionTime'](_0x310d83)}),setTimeout(()=>this[_0x430015(0x1cd)](_0x310d83['id']),0x7530);}async[a0_0x4cc60f(0x1a7)](_0x55dcea){const _0x3910cc=a0_0x4cc60f;this['logger']?.['error'](_0x3910cc(0x1af)+_0x55dcea['id'],{'toolId':_0x55dcea[_0x3910cc(0x1c1)],'agentId':_0x55dcea['agentId'],'error':_0x55dcea['error'],'executionTime':this[_0x3910cc(0x1b8)](_0x55dcea),'retryCount':_0x55dcea['retryCount']}),_0x55dcea['retryCount']<_0x55dcea[_0x3910cc(0x1ed)]?setTimeout(()=>this['retryOperation'](_0x55dcea['id']),0x1388):setTimeout(()=>this['cleanupOperation'](_0x55dcea['id']),0xea60);}async[a0_0x4cc60f(0x1dc)](_0x15085b){const _0xff7984=a0_0x4cc60f;this[_0xff7984(0x1ac)]?.[_0xff7984(0x1a5)]('Operation\x20timed\x20out:\x20'+_0x15085b['id'],{'toolId':_0x15085b[_0xff7984(0x1c1)],'agentId':_0x15085b['agentId'],'timeout':_0x15085b[_0xff7984(0x1ab)],'executionTime':this['calculateExecutionTime'](_0x15085b)}),this['updateOperation'](_0x15085b['id'],TOOL_STATUS[_0xff7984(0x1c5)],{'error':_0xff7984(0x1f4)+_0x15085b['timeout']+'ms'}),this['emit'](_0xff7984(0x1a0),_0x15085b),setTimeout(()=>this[_0xff7984(0x1cd)](_0x15085b['id']),0x7530);}async['shutdown'](){const _0x3e1e0d=a0_0x4cc60f;this[_0x3e1e0d(0x1d0)]=!![],this['logger']?.[_0x3e1e0d(0x1c9)]('Shutting down async tool manager...'),this[_0x3e1e0d(0x1d2)]();const _0x21d6e6=[];for(const _0x6f1d78 of this[_0x3e1e0d(0x1f1)][_0x3e1e0d(0x1cb)]()){(_0x6f1d78['status']===TOOL_STATUS['PENDING']||_0x6f1d78['status']===TOOL_STATUS['EXECUTING'])&&_0x21d6e6['push'](_0x6f1d78['id']);}for(const _0x2379e0 of _0x21d6e6){await this['cancelOperation'](_0x2379e0,_0x3e1e0d(0x19b));}this['operations'][_0x3e1e0d(0x1ca)](),this[_0x3e1e0d(0x1ac)]?.[_0x3e1e0d(0x1c9)]('Async\x20tool\x20manager\x20shutdown\x20complete.\x20Cancelled\x20'+_0x21d6e6['length']+'\x20operations.');}['getOperationHistory'](_0xcec962={}){const _0x4bcc76=a0_0x4cc60f;let _0x5cc1e2=[...this[_0x4bcc76(0x1db)]];return _0xcec962['agentId']&&(_0x5cc1e2=_0x5cc1e2['filter'](_0x4aaf79=>_0x4aaf79[_0x4bcc76(0x1a3)]===_0xcec962['agentId'])),_0xcec962['toolId']&&(_0x5cc1e2=_0x5cc1e2['filter'](_0x4c6373=>_0x4c6373['toolId']===_0xcec962['toolId'])),_0xcec962[_0x4bcc76(0x1a6)]&&(_0x5cc1e2=_0x5cc1e2['filter'](_0x44bcdb=>_0x44bcdb['status']===_0xcec962['status'])),_0xcec962['limit']&&(_0x5cc1e2=_0x5cc1e2[_0x4bcc76(0x1c2)](-_0xcec962['limit'])),_0x5cc1e2['sort']((_0x2b33d2,_0x41dd8c)=>new Date(_0x41dd8c[_0x4bcc76(0x1b9)])-new Date(_0x2b33d2[_0x4bcc76(0x1b9)]));}}function a0_0x3fa0(_0x18d7f1,_0x20116b){_0x18d7f1=_0x18d7f1-0x19a;const _0x1e0413=a0_0x1e04();let _0x3fa0c1=_0x1e0413[_0x18d7f1];if(a0_0x3fa0['NlCvJq']===undefined){var _0xeb0b11=function(_0x16b6c8){const _0x5a26e3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x24d918='',_0xccb156='';for(let _0x361544=0x0,_0x142154,_0x30d7e1,_0x4275b9=0x0;_0x30d7e1=_0x16b6c8['charAt'](_0x4275b9++);~_0x30d7e1&&(_0x142154=_0x361544%0x4?_0x142154*0x40+_0x30d7e1:_0x30d7e1,_0x361544++%0x4)?_0x24d918+=String['fromCharCode'](0xff&_0x142154>>(-0x2*_0x361544&0x6)):0x0){_0x30d7e1=_0x5a26e3['indexOf'](_0x30d7e1);}for(let _0x1fd107=0x0,_0x7be507=_0x24d918['length'];_0x1fd107<_0x7be507;_0x1fd107++){_0xccb156+='%'+('00'+_0x24d918['charCodeAt'](_0x1fd107)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xccb156);};a0_0x3fa0['HPKSdu']=_0xeb0b11,a0_0x3fa0['YdXTKp']={},a0_0x3fa0['NlCvJq']=!![];}const _0x3d51ed=_0x1e0413[0x0],_0x3f8b57=_0x18d7f1+_0x3d51ed,_0x4432d4=a0_0x3fa0['YdXTKp'][_0x3f8b57];return!_0x4432d4?(_0x3fa0c1=a0_0x3fa0['HPKSdu'](_0x3fa0c1),a0_0x3fa0['YdXTKp'][_0x3f8b57]=_0x3fa0c1):_0x3fa0c1=_0x4432d4,_0x3fa0c1;}export default AsyncToolManager;
@@ -1 +1 @@
1
- const a0_0x291dff=a0_0x3b98;function a0_0x3b98(_0x6e1454,_0x5be36a){_0x6e1454=_0x6e1454-0x157;const _0x4d7077=a0_0x4d70();let _0x3b981b=_0x4d7077[_0x6e1454];if(a0_0x3b98['VkMZLp']===undefined){var _0xd4c57f=function(_0x115c67){const _0x58ce08='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5a705b='',_0x4eff92='';for(let _0x38be32=0x0,_0x3c7142,_0x1f559a,_0x5beb41=0x0;_0x1f559a=_0x115c67['charAt'](_0x5beb41++);~_0x1f559a&&(_0x3c7142=_0x38be32%0x4?_0x3c7142*0x40+_0x1f559a:_0x1f559a,_0x38be32++%0x4)?_0x5a705b+=String['fromCharCode'](0xff&_0x3c7142>>(-0x2*_0x38be32&0x6)):0x0){_0x1f559a=_0x58ce08['indexOf'](_0x1f559a);}for(let _0x2e2fc6=0x0,_0x4b2282=_0x5a705b['length'];_0x2e2fc6<_0x4b2282;_0x2e2fc6++){_0x4eff92+='%'+('00'+_0x5a705b['charCodeAt'](_0x2e2fc6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4eff92);};a0_0x3b98['MzYLWq']=_0xd4c57f,a0_0x3b98['EXzFsA']={},a0_0x3b98['VkMZLp']=!![];}const _0x4c994f=_0x4d7077[0x0],_0x9525cb=_0x6e1454+_0x4c994f,_0x324496=a0_0x3b98['EXzFsA'][_0x9525cb];return!_0x324496?(_0x3b981b=a0_0x3b98['MzYLWq'](_0x3b981b),a0_0x3b98['EXzFsA'][_0x9525cb]=_0x3b981b):_0x3b981b=_0x324496,_0x3b981b;}(function(_0x45b9f3,_0x37dfef){const _0x4dd4b4=a0_0x3b98,_0x5c9a15=_0x45b9f3();while(!![]){try{const _0x11c18b=-parseInt(_0x4dd4b4(0x186))/0x1*(parseInt(_0x4dd4b4(0x1d1))/0x2)+-parseInt(_0x4dd4b4(0x1ce))/0x3*(parseInt(_0x4dd4b4(0x1c2))/0x4)+-parseInt(_0x4dd4b4(0x1c0))/0x5+parseInt(_0x4dd4b4(0x167))/0x6+-parseInt(_0x4dd4b4(0x1b8))/0x7+parseInt(_0x4dd4b4(0x170))/0x8+-parseInt(_0x4dd4b4(0x1c6))/0x9*(-parseInt(_0x4dd4b4(0x19c))/0xa);if(_0x11c18b===_0x37dfef)break;else _0x5c9a15['push'](_0x5c9a15['shift']());}catch(_0x5e19ad){_0x5c9a15['push'](_0x5c9a15['shift']());}}}(a0_0x4d70,0xefd8b));import{TOOL_STATUS,OPERATION_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BaseTool{constructor(_0x5a705b={},_0x4eff92=null){const _0x1829df=a0_0x3b98;this['id']=this['constructor']['name'][_0x1829df(0x181)]()[_0x1829df(0x18c)]('tool',''),this['config']=_0x5a705b,this[_0x1829df(0x18d)]=_0x4eff92,this[_0x1829df(0x160)]=![],this['isAsync']=![],this['timeout']=_0x5a705b['timeout']||SYSTEM_DEFAULTS['MAX_TOOL_EXECUTION_TIME'],this['maxConcurrentOperations']=_0x5a705b[_0x1829df(0x188)]||0x1,this[_0x1829df(0x1a9)]=new Map(),this[_0x1829df(0x1c8)]=[],this[_0x1829df(0x183)]=_0x5a705b[_0x1829df(0x171)]!==![],this['lastUsed']=null,this[_0x1829df(0x179)]=0x0;}['getDescription'](){const _0x1797b2=a0_0x3b98;throw new Error(_0x1797b2(0x1ba)+this['id']+_0x1797b2(0x19a));}[a0_0x291dff(0x1d2)](_0x38be32){const _0x282ea4=a0_0x291dff;throw new Error('Tool\x20'+this['id']+_0x282ea4(0x182));}async[a0_0x291dff(0x17a)](_0x3c7142,_0x1f559a){throw new Error('Tool\x20'+this['id']+'\x20must\x20implement\x20execute()');}['getCapabilities'](){const _0x3f2c1e=a0_0x291dff;return{'id':this['id'],'async':this['isAsync'],'requiresProject':this['requiresProject'],'timeout':this['timeout'],'maxConcurrentOperations':this[_0x3f2c1e(0x188)],'enabled':this['isEnabled'],'supportedActions':this['getSupportedActions'](),'parameterSchema':this[_0x3f2c1e(0x158)]()};}[a0_0x291dff(0x191)](_0x5beb41){const _0x1e8be0=a0_0x291dff;try{if(!_0x5beb41||typeof _0x5beb41!==_0x1e8be0(0x1cf))return{'valid':![],'error':_0x1e8be0(0x1b0)};const requiredParams=this[_0x1e8be0(0x15a)]();for(const required of requiredParams){if(!(required in _0x5beb41))return{'valid':![],'error':'Missing\x20required\x20parameter:\x20'+required};}const _0x2e2fc6=this[_0x1e8be0(0x15c)](_0x5beb41);if(!_0x2e2fc6['valid'])return _0x2e2fc6;const _0x4b2282=this['customValidateParameters'](_0x5beb41);if(!_0x4b2282['valid'])return _0x4b2282;return{'valid':!![]};}catch(_0x22e3de){return{'valid':![],'error':_0x1e8be0(0x1af)+_0x22e3de[_0x1e8be0(0x1b6)]};}}async[a0_0x291dff(0x1a6)](_0x378691,_0x42572d){const _0x117342=a0_0x291dff,_0x3f8736=this['generateOperationId'](),_0x443fd1=Date[_0x117342(0x1a0)]();if(!this['isEnabled'])throw new Error(_0x117342(0x1ba)+this['id']+_0x117342(0x162));if(this[_0x117342(0x1a9)][_0x117342(0x198)]>=this[_0x117342(0x188)])throw new Error('Tool\x20'+this['id']+_0x117342(0x1a5));const _0x583f0e=this[_0x117342(0x191)](_0x378691);if(!_0x583f0e['valid'])throw new Error('Parameter\x20validation\x20failed:\x20'+_0x583f0e['error']);const _0x5d6534={'id':_0x3f8736,'toolId':this['id'],'status':TOOL_STATUS[_0x117342(0x1ca)],'startTime':new Date()['toISOString'](),'params':_0x378691,'context':this[_0x117342(0x1a7)](_0x42572d)};this[_0x117342(0x1a9)]['set'](_0x3f8736,_0x5d6534);try{this[_0x117342(0x18d)]?.[_0x117342(0x1b4)]('Tool\x20execution\x20started:\x20'+this['id'],{'operationId':_0x3f8736,'toolId':this['id'],'context':_0x5d6534['context']});const _0x3d9c44=await this['executeWithTimeout'](_0x378691,_0x42572d);return _0x5d6534[_0x117342(0x178)]=TOOL_STATUS[_0x117342(0x1d3)],_0x5d6534['result']=_0x3d9c44,_0x5d6534['endTime']=new Date()[_0x117342(0x16d)](),_0x5d6534[_0x117342(0x1bf)]=Date['now']()-_0x443fd1,this[_0x117342(0x15e)]=new Date()['toISOString'](),this['usageCount']++,this[_0x117342(0x18d)]?.['info']('Tool\x20execution\x20completed:\x20'+this['id'],{'operationId':_0x3f8736,'executionTime':_0x5d6534[_0x117342(0x1bf)],'success':!![]}),{'success':!![],'operationId':_0x3f8736,'result':_0x3d9c44,'executionTime':_0x5d6534[_0x117342(0x1bf)],'toolId':this['id']};}catch(_0x9afa14){_0x5d6534['status']=TOOL_STATUS[_0x117342(0x1c9)],_0x5d6534['error']=_0x9afa14['message'],_0x5d6534[_0x117342(0x1bb)]=new Date()[_0x117342(0x16d)](),_0x5d6534[_0x117342(0x1bf)]=Date['now']()-_0x443fd1,this[_0x117342(0x18d)]?.[_0x117342(0x1b2)](_0x117342(0x187)+this['id'],{'operationId':_0x3f8736,'error':_0x9afa14[_0x117342(0x1b6)],'executionTime':_0x5d6534['executionTime']});throw _0x9afa14;}finally{this['operationHistory'][_0x117342(0x18e)]({..._0x5d6534}),this[_0x117342(0x1a9)][_0x117342(0x1ab)](_0x3f8736),this[_0x117342(0x1d0)](),await this[_0x117342(0x1cb)](_0x3f8736);}}async[a0_0x291dff(0x1aa)](_0x1b6cf2){const _0x10fc3e=a0_0x291dff,_0x2d4144=this['activeOperations'][_0x10fc3e(0x1a8)](_0x1b6cf2);if(!_0x2d4144){const _0x375935=this[_0x10fc3e(0x1c8)]['find'](_0x54402f=>_0x54402f['id']===_0x1b6cf2);if(_0x375935)return{'operationId':_0x1b6cf2,'status':_0x375935[_0x10fc3e(0x178)],'result':_0x375935[_0x10fc3e(0x164)],'error':_0x375935['error'],'executionTime':_0x375935[_0x10fc3e(0x1bf)]};return{'operationId':_0x1b6cf2,'status':OPERATION_STATUS[_0x10fc3e(0x18b)],'error':_0x10fc3e(0x1ae)};}return{'operationId':_0x1b6cf2,'status':_0x2d4144['status'],'startTime':_0x2d4144['startTime'],'executionTime':_0x2d4144[_0x10fc3e(0x1bb)]?new Date(_0x2d4144['endTime'])['getTime']()-new Date(_0x2d4144[_0x10fc3e(0x199)])['getTime']():Date['now']()-new Date(_0x2d4144['startTime'])[_0x10fc3e(0x19d)]()};}async[a0_0x291dff(0x1cb)](_0x5b6039){}['getSupportedActions'](){return['execute'];}[a0_0x291dff(0x158)](){const _0x96a42a=a0_0x291dff;return{'type':_0x96a42a(0x1cf),'properties':{},'required':[]};}[a0_0x291dff(0x15a)](){return[];}[a0_0x291dff(0x15c)](_0x2b4994){return{'valid':!![]};}[a0_0x291dff(0x17e)](_0x502d65){return{'valid':!![]};}async['executeWithTimeout'](_0x4e2ad4,_0x587c50){return new Promise(async(_0x401428,_0x12b515)=>{const _0x603a57=a0_0x3b98,_0x3addf5=setTimeout(()=>{const _0x1fa657=a0_0x3b98;_0x12b515(new Error('Tool\x20execution\x20timed\x20out\x20after\x20'+this[_0x1fa657(0x17b)]+'ms'));},this[_0x603a57(0x17b)]);try{const _0x53ed55=await this[_0x603a57(0x17a)](_0x4e2ad4,_0x587c50);clearTimeout(_0x3addf5),_0x401428(_0x53ed55);}catch(_0x34d6c0){clearTimeout(_0x3addf5),_0x12b515(_0x34d6c0);}});}[a0_0x291dff(0x157)](){const _0x5e3b79=a0_0x291dff;return this['id']+'-'+Date[_0x5e3b79(0x1a0)]()+'-'+Math[_0x5e3b79(0x1a4)]()['toString'](0x24)['substr'](0x2,0x9);}[a0_0x291dff(0x1a7)](_0x3b0eeb){const _0x48e729=a0_0x291dff,_0x259f68={..._0x3b0eeb};return delete _0x259f68[_0x48e729(0x168)],delete _0x259f68['secrets'],delete _0x259f68['passwords'],_0x259f68[_0x48e729(0x1a1)]&&_0x259f68[_0x48e729(0x1a1)]['length']>0x1f4&&(_0x259f68[_0x48e729(0x1a1)]=_0x259f68['content']['substring'](0x0,0x1f4)+'...\x20[truncated]'),_0x259f68;}['cleanupHistory'](){const _0xb1b2c9=a0_0x291dff,_0x2dbba9=0x64;this['operationHistory']['length']>_0x2dbba9&&(this[_0xb1b2c9(0x1c8)]=this[_0xb1b2c9(0x1c8)][_0xb1b2c9(0x1c1)](-_0x2dbba9));}['getUsageStats'](){const _0x176dcc=a0_0x291dff;return{'toolId':this['id'],'usageCount':this['usageCount'],'lastUsed':this[_0x176dcc(0x15e)],'activeOperations':this[_0x176dcc(0x1a9)]['size'],'totalOperations':this['operationHistory'][_0x176dcc(0x184)],'averageExecutionTime':this[_0x176dcc(0x1b9)](),'successRate':this['calculateSuccessRate'](),'isEnabled':this['isEnabled']};}['calculateAverageExecutionTime'](){const _0x178f54=a0_0x291dff,_0x29e5e1=this[_0x178f54(0x1c8)]['filter'](_0x27352a=>_0x27352a['status']===TOOL_STATUS[_0x178f54(0x1d3)]&&_0x27352a['executionTime']);if(_0x29e5e1[_0x178f54(0x184)]===0x0)return 0x0;const _0x17becb=_0x29e5e1[_0x178f54(0x177)]((_0xf92d81,_0x46c6dd)=>_0xf92d81+_0x46c6dd[_0x178f54(0x1bf)],0x0);return Math['round'](_0x17becb/_0x29e5e1[_0x178f54(0x184)]);}['calculateSuccessRate'](){const _0x221cc2=a0_0x291dff;if(this['operationHistory']['length']===0x0)return 0x0;const _0xc109e0=this[_0x221cc2(0x1c8)]['filter'](_0x441b9b=>_0x441b9b['status']===TOOL_STATUS['COMPLETED']);return _0xc109e0['length']/this['operationHistory'][_0x221cc2(0x184)]*0x64;}[a0_0x291dff(0x17f)](){const _0xe273a0=a0_0x291dff;this[_0xe273a0(0x183)]=!![],this['logger']?.[_0xe273a0(0x1b4)]('Tool\x20enabled:\x20'+this['id']);}[a0_0x291dff(0x196)](){const _0x1132c9=a0_0x291dff;this['isEnabled']=![],this[_0x1132c9(0x18d)]?.['info']('Tool\x20disabled:\x20'+this['id']);}['resetStats'](){const _0x1ace64=a0_0x291dff;this['usageCount']=0x0,this['lastUsed']=null,this[_0x1ace64(0x1c8)]=[],this[_0x1ace64(0x18d)]?.[_0x1ace64(0x1b4)]('Tool\x20statistics\x20reset:\x20'+this['id']);}}class ToolsRegistry{constructor(_0x3c8271=null){const _0x1840a2=a0_0x291dff;this[_0x1840a2(0x18d)]=_0x3c8271,this['tools']=new Map(),this[_0x1840a2(0x193)]=new Map(),this[_0x1840a2(0x19e)]=new Map(),this[_0x1840a2(0x185)]=new Map();}async[a0_0x291dff(0x195)](_0x24049f){const _0x3e3cb4=a0_0x291dff;try{const _0x3a4533=new _0x24049f();if(!(_0x3a4533 instanceof BaseTool))throw new Error('Tool\x20'+_0x24049f['name']+_0x3e3cb4(0x161));const _0x1a69fd=_0x3a4533[_0x3e3cb4(0x1b5)]();await this[_0x3e3cb4(0x1c4)](_0x3a4533),this[_0x3e3cb4(0x1a3)]['set'](_0x3a4533['id'],_0x3a4533),this['toolDescriptions'][_0x3e3cb4(0x180)](_0x3a4533['id'],_0x3a4533['getDescription']()),this[_0x3e3cb4(0x19e)][_0x3e3cb4(0x180)](_0x3a4533['id'],_0x1a69fd),this['logger']?.['info']('Tool\x20registered:\x20'+_0x3a4533['id'],{'capabilities':_0x1a69fd[_0x3e3cb4(0x1bd)],'async':_0x1a69fd['async'],'requiresProject':_0x1a69fd[_0x3e3cb4(0x160)]});}catch(_0x2c36a0){this[_0x3e3cb4(0x18d)]?.[_0x3e3cb4(0x1b2)]('Tool\x20registration\x20failed:\x20'+_0x2c36a0['message'],{'toolClass':_0x24049f[_0x3e3cb4(0x1c5)]});throw _0x2c36a0;}}async['discoverTools'](_0x43215b){return 0x0;}async[a0_0x291dff(0x1c4)](_0x5ba966){const _0xa9ccea=a0_0x291dff,requiredMethods=[_0xa9ccea(0x175),_0xa9ccea(0x1d2),_0xa9ccea(0x17a)];for(const _0x4f45f1 of requiredMethods){if(typeof _0x5ba966[_0x4f45f1]!=='function')throw new Error(_0xa9ccea(0x1ba)+_0x5ba966['id']+_0xa9ccea(0x1cc)+_0x4f45f1);}try{const _0x18aae3=_0x5ba966['parseParameters'](_0xa9ccea(0x163));if(typeof _0x18aae3!=='object')throw new Error('Tool\x20'+_0x5ba966['id']+'\x20parseParameters\x20must\x20return\x20an\x20object');}catch(_0x45aca5){}const _0x2bd6b4=_0x5ba966[_0xa9ccea(0x1b5)]();if(!_0x2bd6b4||typeof _0x2bd6b4!=='object')throw new Error('Tool\x20'+_0x5ba966['id']+'\x20getCapabilities\x20must\x20return\x20an\x20object');}['getTool'](_0x313fc6){const _0x4ab4cf=a0_0x291dff;return this[_0x4ab4cf(0x1a3)]['get'](_0x313fc6)||null;}[a0_0x291dff(0x159)](){const _0x2c372b=a0_0x291dff,_0x5c1045={};for(const [_0x1d518c,_0x19774a]of this[_0x2c372b(0x1a3)][_0x2c372b(0x15f)]()){_0x19774a[_0x2c372b(0x183)]&&(_0x5c1045[_0x1d518c]={'description':this[_0x2c372b(0x193)][_0x2c372b(0x1a8)](_0x1d518c),'capabilities':this[_0x2c372b(0x19e)][_0x2c372b(0x1a8)](_0x1d518c),'usageStats':_0x19774a['getUsageStats']()});}return _0x5c1045;}async[a0_0x291dff(0x176)](_0x1ca0bf,_0x285463,_0x177001){const _0x10a51e=a0_0x291dff,_0x263a90=this['getTool'](_0x1ca0bf);if(!_0x263a90)throw new Error('Tool\x20not\x20found:\x20'+_0x1ca0bf);if(!_0x263a90['isEnabled'])throw new Error('Tool\x20is\x20disabled:\x20'+_0x1ca0bf);return await _0x263a90[_0x10a51e(0x1a6)](_0x285463,_0x177001);}[a0_0x291dff(0x1cd)](){const _0x4214f7=a0_0x291dff;return Array['from'](this['tools'][_0x4214f7(0x172)]());}['generateToolDescriptionsForPrompt'](_0xc7bda9=[],_0x4dca5a={}){const _0x4a9bd8=a0_0x291dff,{includeExamples:includeExamples=!![],includeUsageGuidelines:includeUsageGuidelines=!![],includeSecurityNotes:includeSecurityNotes=!![],compact:compact=![]}=_0x4dca5a,_0x223f60=_0xc7bda9['length']>0x0?_0xc7bda9['filter'](_0x2a2abd=>this[_0x4a9bd8(0x1a3)]['has'](_0x2a2abd)):Array['from'](this[_0x4a9bd8(0x1a3)][_0x4a9bd8(0x172)]());if(_0x223f60['length']===0x0)return'';let _0x2d1f91='\x0a##\x20AVAILABLE\x20TOOLS\x0a\x0a';_0x2d1f91+='You\x20have\x20access\x20to\x20the\x20following\x20tools\x20to\x20perform\x20operations\x20and\x20tasks:\x0a\x0a';for(const _0x1cc3c2 of _0x223f60){const _0x151d54=this[_0x4a9bd8(0x1a3)][_0x4a9bd8(0x1a8)](_0x1cc3c2);if(!_0x151d54||!_0x151d54['isEnabled'])continue;try{if(compact){const _0x27ca86=_0x151d54[_0x4a9bd8(0x1b5)](),_0x52b9cd=_0x27ca86['supportedActions']||['execute'];_0x2d1f91+='**'+_0x1cc3c2+_0x4a9bd8(0x17c)+_0x52b9cd[_0x4a9bd8(0x17d)](',\x20')+'\x0a';}else _0x2d1f91+='###\x20'+_0x1cc3c2[_0x4a9bd8(0x169)]()+_0x4a9bd8(0x19f),_0x2d1f91+=_0x151d54[_0x4a9bd8(0x175)](),_0x2d1f91+='\x0a\x0a---\x0a\x0a';}catch(_0x5d7055){this['logger']?.[_0x4a9bd8(0x1ac)]('Failed\x20to\x20get\x20description\x20for\x20tool:\x20'+_0x1cc3c2,{'error':_0x5d7055[_0x4a9bd8(0x1b6)]});}}return compact&&(_0x2d1f91+='\x0aUse\x20[tool\x20id=\x22tool-name\x22]<parameters>[/tool]\x20or\x20JSON\x20format\x20to\x20invoke\x20tools.\x0a\x0a'),_0x2d1f91+='##\x20TOOL\x20INVOCATION\x20SYNTAX\x0a\x0a',_0x2d1f91+='**IMPORTANT**:\x20You\x20MUST\x20use\x20one\x20of\x20these\x20exact\x20formats\x20to\x20invoke\x20tools:\x0a\x0a',_0x2d1f91+=_0x4a9bd8(0x16f),_0x2d1f91+='```\x0a',_0x2d1f91+='[tool\x20id=\x22toolname\x22]\x0a',_0x2d1f91+=_0x4a9bd8(0x194),_0x2d1f91+=_0x4a9bd8(0x19b),_0x2d1f91+=_0x4a9bd8(0x1d4),_0x2d1f91+=_0x4a9bd8(0x1c3),_0x2d1f91+='```\x0a',_0x2d1f91+=_0x4a9bd8(0x1c7),_0x2d1f91+='{\x0a',_0x2d1f91+=_0x4a9bd8(0x1d5),_0x2d1f91+=_0x4a9bd8(0x197),_0x2d1f91+='}\x0a',_0x2d1f91+='```\x0a',_0x2d1f91+='```\x0a\x0a',_0x2d1f91+=_0x4a9bd8(0x1b1),_0x2d1f91+=_0x4a9bd8(0x1b3),_0x2d1f91+='###\x20Format\x203:\x20XML\x20Format\x0a',_0x2d1f91+=_0x4a9bd8(0x16e),_0x2d1f91+='<tool-command>\x0a',_0x2d1f91+='\x20\x20<tool\x20id=\x22toolname\x22>\x0a',_0x2d1f91+='\x20\x20\x20\x20<parameter>value</parameter>\x0a',_0x2d1f91+='\x20\x20</tool>\x0a',_0x2d1f91+=_0x4a9bd8(0x1b7),_0x2d1f91+='```\x0a\x0a',_0x2d1f91+=_0x4a9bd8(0x1a2),_0x2d1f91;}[a0_0x291dff(0x16a)](_0x2a292e,_0xa0e50=[],_0xf2339c={}){const _0x2cab6f=a0_0x291dff,_0x2a0197=this[_0x2cab6f(0x1ad)](_0xa0e50,_0xf2339c);if(!_0x2a0197[_0x2cab6f(0x1bc)]())return _0x2a292e||'';const _0x1fa9b9=_0x2a292e||'';if(_0x1fa9b9[_0x2cab6f(0x165)](_0x2cab6f(0x18f)))return _0x1fa9b9['replace'](/## AVAILABLE TOOLS[\s\S]*?(?=##|$)/,_0x2a0197+'\x0a');const _0x21dd9c=_0x2cab6f(0x1be);return _0x1fa9b9+(_0x1fa9b9[_0x2cab6f(0x16c)]('\x0a')?'':'\x0a')+_0x2a0197+_0x21dd9c+'\x0a';}['getAvailableToolsForUI'](){const _0x464135=a0_0x291dff,_0x4c24d3=[];for(const [_0x330e12,_0x33812d]of this[_0x464135(0x1a3)][_0x464135(0x15f)]()){const _0x2cf474=_0x33812d[_0x464135(0x1b5)](),_0x12c718=_0x33812d[_0x464135(0x175)](),_0x15aaa4=_0x12c718[_0x464135(0x15b)]('\x0a')[_0x464135(0x192)](_0x27b817=>_0x27b817['trim']()['length']>0x0)||'',_0x5b39c6=_0x15aaa4[_0x464135(0x18c)](/^.*Tool:\s*/i,'')['replace'](/\s*-.*$/,'')[_0x464135(0x1bc)]();_0x4c24d3[_0x464135(0x18e)]({'id':_0x330e12,'name':_0x5b39c6||_0x330e12['charAt'](0x0)['toUpperCase']()+_0x330e12[_0x464135(0x1c1)](0x1),'description':_0x15aaa4,'category':this['_getToolCategory'](_0x330e12),'enabled':_0x2cf474[_0x464135(0x171)],'async':_0x2cf474['async'],'requiresProject':_0x2cf474['requiresProject'],'className':_0x33812d[_0x464135(0x18a)]['name']});}return _0x4c24d3['sort']((_0x20e3e9,_0x296577)=>_0x20e3e9[_0x464135(0x1c5)][_0x464135(0x174)](_0x296577[_0x464135(0x1c5)]));}['_getToolCategory'](_0x13a8c5){const _0x546d21=a0_0x291dff,_0x508b7e={'terminal':_0x546d21(0x15d),'filesystem':_0x546d21(0x190),'browser':_0x546d21(0x173),'agentdelay':_0x546d21(0x16b)};return _0x508b7e[_0x13a8c5]||'Other';}[a0_0x291dff(0x189)](){const _0xd69c6e=a0_0x291dff,_0x41905b=Array['from'](this['tools']['values']())['filter'](_0x30dd18=>_0x30dd18[_0xd69c6e(0x183)]),_0x44daa4=Array['from'](this['tools'][_0xd69c6e(0x166)]())[_0xd69c6e(0x177)]((_0x6964ac,_0x562331)=>_0x6964ac+_0x562331[_0xd69c6e(0x179)],0x0);return{'totalTools':this['tools']['size'],'enabledTools':_0x41905b['length'],'totalOperations':_0x44daa4,'activeOperations':this['asyncOperations']['size']};}}export{BaseTool,ToolsRegistry};function a0_0x4d70(){const _0x822d8c=['iYmJiezVCM1HDcaXoIbcCMfJA2v0ie5VDgf0Aw9UcG','mtqYmZa4mdHrBfngAxG','zw5HyMXLza','A2v5CW','qxv0B21HDgLVBG','Bg9JywXLq29TCgfYzq','z2v0rgvZy3jPChrPB24','zxHLy3v0zvrVB2Xtzwn1CMvSEq','CMvKDwnL','C3rHDhvZ','DxnHz2vdB3vUDa','zxHLy3v0zq','DgLTzw91Da','kIO6ia','AM9PBG','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','zw5HyMXL','C2v0','Dg9mB3DLCKnHC2u','ig11C3qGAw1WBgvTzw50ihbHCNnLugfYyw1LDgvYCYGP','AxnfBMfIBgvK','BgvUz3rO','yxn5BMnpCgvYyxrPB25Z','mu9fuhHKtq','vg9VBcbLEgvJDxrPB24GzMfPBgvKoIa','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','z2v0uMvNAxn0CNLtDgf0CW','y29UC3rYDwn0B3i','tK9ux0zpvu5e','CMvWBgfJzq','Bg9Nz2vY','ChvZAa','iYmGqvzbsuXbqKXfifrpt0Xt','rMLSzsbpCgvYyxrPB25Z','DMfSAwrHDgvqyxjHBwv0zxjZ','zMLUza','Dg9VBerLC2nYAxb0Aw9UCW','phbHCMfTzxrLCNmGAgvYzt4k','CMvNAxn0zxjuB29S','zgLZywjSzq','icaICgfYyw1LDgvYCYi6ihSGlI4Uih0GB3iGiMfJDgLVBNmIoIbBic4UlIbDcG','C2L6zq','C3rHCNruAw1L','ig11C3qGAw1WBgvTzw50igDLDerLC2nYAxb0Aw9UkcK','wY90B29SxqO','ndq0mtb0tvzNCfG','z2v0vgLTzq','Dg9VBenHCgfIAwXPDgLLCW','ifrpt0WkcG','BM93','y29UDgvUDa','qwz0zxiGAw52B2TPBMCGysb0B29SlcbxquLuigzVCIb0AguGywn0DwfSihjLC3bVBNnLlIbeBYbot1qGz2vUzxjHDguGAw1Hz2LUyxj5ihjLC3bVBNnLCY4k','Dg9VBhm','CMfUzg9T','igHHCYbYzwfJAgvKig1HEgLTDw0Gy29Uy3vYCMvUDcbVCgvYyxrPB25ZigXPBwL0','zxHLy3v0zvDPDgHmAwzLy3LJBgu','C2fUAxrPEMvdB250zxH0','z2v0','ywn0AxzLt3bLCMf0Aw9UCW','z2v0u3rHDhvZ','zgvSzxrL','D2fYBG','z2vUzxjHDgvuB29SrgvZy3jPChrPB25ZrM9YuhjVBxb0','t3bLCMf0Aw9Uig5VDcbMB3vUza','ugfYyw1LDgvYihzHBgLKyxrPB24GzMfPBgvKoIa','ugfYyw1LDgvYCYbTDxn0igjLigfUig9IAMvJDa','kIPxqvjosu5hkIO6ifbSywLUiePtt04GD2L0Ag91DcbTyxjRzg93BIbJB2rLigjSB2nRCYaOygbGANnVBIKGD2LSBcbot1qGyMuGzxHLy3v0zwqHcG','zxjYB3i','qwX3yxLZihDYyxaGsLnptIb0B29SignVBw1HBMrZigLUigbGygPZB24GlI4UigbGycbIBg9JA3mUcGO','Aw5MBW','z2v0q2fWywjPBgL0AwvZ','BwvZC2fNzq','pc90B29SlwnVBw1HBMq+cG','oduXmJuYnvrgvw9SAG','y2fSy3vSyxrLqxzLCMfNzuv4zwn1DgLVBLrPBwu','vg9VBca','zw5KvgLTzq','DhjPBq','C3vWCg9YDgvKqwn0Aw9UCW','su1qt1juqu5uoIb3AgvUigfZA2vKihrVihbLCMzVCM0Gyw4Gywn0Aw9Uig9Yig9WzxjHDgLVBIWGDxnLigvHy2GGCMvZCg9UC2uGDg8GAw52B2TLigeGDg9VBcbPzIbUzwvKzwqSigfUzcb1CgrHDguGDgHLihvZzxiGB24GDgHLihbYB2DYzxnZicHZyw1Lig1LC3nHz2uPlG','zxHLy3v0Aw9UvgLTzq','nZy2ndG2nu56r3r2Aa','C2XPy2u','mtu2v2TTDw1u','iYmJiezVCM1HDcaYoIbku09oigLUie1HCMTKB3DUienVzguGqMXVy2SGkfjfuvvjuKveigzVCIbku09okqO','DMfSAwrHDgvuB29S','BMfTzq','nZeWmxfxy3r5rW','ygbGANnVBGO','B3bLCMf0Aw9UsgLZDg9YEq','rKfjteve','rvHfq1vusu5h','y2XLyw51Ca','ig1PC3nPBMCGCMvXDwLYzwqGBwv0Ag9KoIa','BgLZDfrVB2XZ','mtiYndq4qxLnzvr5','B2jQzwn0','y2XLyw51CeHPC3rVCNK','mZeWodGYnKLmzwzxEG','CgfYC2vqyxjHBwv0zxjZ','q09nueXfveve','ygbGcGO','icaIDg9VBeLKiJOGiNrVB2XUyw1LiIWk','z2vUzxjHDgvpCgvYyxrPB25jza','z2v0ugfYyw1LDgvYu2nOzw1H','z2v0vg9VBenHCgfIAwXPDgLLCW','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','C3bSAxq','DMfSAwrHDgvqyxjHBwv0zxjuExbLCW','u3LZDgvT','BgfZDfvZzwq','zw50CMLLCW','CMvXDwLYzxnqCM9Qzwn0','ig11C3qGzxH0zw5KiejHC2vuB29S','igLZigrPC2fIBgvK','DgvZDcbJB250zw50','CMvZDwX0','Aw5JBhvKzxm','DMfSDwvZ','otu2otm3nLLmA3PmEa','yxbPs2v5CW','Dg9vChbLCKnHC2u','zw5Oyw5Jzvn5C3rLBvbYB21WDa','vxrPBgL0Eq','zw5KC1DPDgG','Dg9ju09tDhjPBMC','ygbGEg1ScG'];a0_0x4d70=function(){return _0x822d8c;};return a0_0x4d70();}
1
+ const a0_0xb4b815=a0_0x32d2;(function(_0x43daa1,_0x424112){const _0x2e34dd=a0_0x32d2,_0xa653cc=_0x43daa1();while(!![]){try{const _0x10c487=-parseInt(_0x2e34dd(0x17f))/0x1+parseInt(_0x2e34dd(0x19d))/0x2*(parseInt(_0x2e34dd(0x1b5))/0x3)+parseInt(_0x2e34dd(0x18e))/0x4*(parseInt(_0x2e34dd(0x14c))/0x5)+-parseInt(_0x2e34dd(0x179))/0x6*(-parseInt(_0x2e34dd(0x181))/0x7)+parseInt(_0x2e34dd(0x1ae))/0x8*(parseInt(_0x2e34dd(0x1ab))/0x9)+parseInt(_0x2e34dd(0x170))/0xa+-parseInt(_0x2e34dd(0x175))/0xb;if(_0x10c487===_0x424112)break;else _0xa653cc['push'](_0xa653cc['shift']());}catch(_0x492537){_0xa653cc['push'](_0xa653cc['shift']());}}}(a0_0xb5e2,0x56d39));import{TOOL_STATUS,OPERATION_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BaseTool{constructor(_0xca3c23={},_0x42cf4d=null){const _0x227693=a0_0x32d2;this['id']=this['constructor'][_0x227693(0x17c)]['toLowerCase']()[_0x227693(0x169)](_0x227693(0x197),''),this['config']=_0xca3c23,this['logger']=_0x42cf4d,this['requiresProject']=![],this['isAsync']=![],this['timeout']=_0xca3c23[_0x227693(0x186)]||SYSTEM_DEFAULTS['MAX_TOOL_EXECUTION_TIME'],this['maxConcurrentOperations']=_0xca3c23[_0x227693(0x185)]||0x1,this[_0x227693(0x17d)]=new Map(),this[_0x227693(0x1a1)]=[],this[_0x227693(0x187)]=_0xca3c23['enabled']!==![],this[_0x227693(0x152)]=null,this[_0x227693(0x15c)]=0x0;}['getDescription'](){const _0x5d5825=a0_0x32d2;throw new Error(_0x5d5825(0x149)+this['id']+_0x5d5825(0x18a));}[a0_0xb4b815(0x198)](_0x2c36a9){const _0x5e9622=a0_0xb4b815;throw new Error(_0x5e9622(0x149)+this['id']+'\x20must\x20implement\x20parseParameters()');}async['execute'](_0x13c3e9,_0x3c482e){throw new Error('Tool\x20'+this['id']+'\x20must\x20implement\x20execute()');}[a0_0xb4b815(0x172)](){const _0x350614=a0_0xb4b815;return{'id':this['id'],'async':this['isAsync'],'requiresProject':this[_0x350614(0x1a3)],'timeout':this[_0x350614(0x186)],'maxConcurrentOperations':this[_0x350614(0x185)],'enabled':this[_0x350614(0x187)],'supportedActions':this['getSupportedActions'](),'parameterSchema':this[_0x350614(0x158)]()};}['validateParameters'](_0x282fb7){const _0x508868=a0_0xb4b815;try{if(!_0x282fb7||typeof _0x282fb7!==_0x508868(0x19f))return{'valid':![],'error':'Parameters\x20must\x20be\x20an\x20object'};const requiredParams=this[_0x508868(0x13f)]();for(const required of requiredParams){if(!(required in _0x282fb7))return{'valid':![],'error':_0x508868(0x1b2)+required};}const _0x42140b=this[_0x508868(0x168)](_0x282fb7);if(!_0x42140b[_0x508868(0x18f)])return _0x42140b;const _0xd4dfab=this[_0x508868(0x17e)](_0x282fb7);if(!_0xd4dfab[_0x508868(0x18f)])return _0xd4dfab;return{'valid':!![]};}catch(_0xf57d7b){return{'valid':![],'error':_0x508868(0x14e)+_0xf57d7b['message']};}}async[a0_0xb4b815(0x1ad)](_0x4764b5,_0x5481d1){const _0x4d4a19=a0_0xb4b815,_0x1bd82c=this[_0x4d4a19(0x194)](),_0x62db27=Date[_0x4d4a19(0x140)]();if(!this[_0x4d4a19(0x187)])throw new Error(_0x4d4a19(0x149)+this['id']+'\x20is\x20disabled');if(this['activeOperations']['size']>=this['maxConcurrentOperations'])throw new Error('Tool\x20'+this['id']+'\x20has\x20reached\x20maximum\x20concurrent\x20operations\x20limit');const _0x1684fd=this[_0x4d4a19(0x16a)](_0x4764b5);if(!_0x1684fd[_0x4d4a19(0x18f)])throw new Error(_0x4d4a19(0x14e)+_0x1684fd['error']);const _0x265044={'id':_0x1bd82c,'toolId':this['id'],'status':TOOL_STATUS[_0x4d4a19(0x188)],'startTime':new Date()[_0x4d4a19(0x1b1)](),'params':_0x4764b5,'context':this[_0x4d4a19(0x160)](_0x5481d1)};this[_0x4d4a19(0x17d)]['set'](_0x1bd82c,_0x265044);try{this['logger']?.[_0x4d4a19(0x15a)]('Tool\x20execution\x20started:\x20'+this['id'],{'operationId':_0x1bd82c,'toolId':this['id'],'context':_0x265044[_0x4d4a19(0x195)]});const _0x57109e=await this['executeWithTimeout'](_0x4764b5,_0x5481d1);return _0x265044['status']=TOOL_STATUS[_0x4d4a19(0x144)],_0x265044['result']=_0x57109e,_0x265044[_0x4d4a19(0x176)]=new Date()[_0x4d4a19(0x1b1)](),_0x265044['executionTime']=Date['now']()-_0x62db27,this['lastUsed']=new Date()['toISOString'](),this['usageCount']++,this['logger']?.[_0x4d4a19(0x15a)](_0x4d4a19(0x19c)+this['id'],{'operationId':_0x1bd82c,'executionTime':_0x265044['executionTime'],'success':!![]}),{'success':!![],'operationId':_0x1bd82c,'result':_0x57109e,'executionTime':_0x265044['executionTime'],'toolId':this['id']};}catch(_0xf24827){_0x265044['status']=TOOL_STATUS[_0x4d4a19(0x13e)],_0x265044[_0x4d4a19(0x183)]=_0xf24827[_0x4d4a19(0x19a)],_0x265044[_0x4d4a19(0x176)]=new Date()[_0x4d4a19(0x1b1)](),_0x265044['executionTime']=Date['now']()-_0x62db27,this[_0x4d4a19(0x14f)]?.[_0x4d4a19(0x183)]('Tool\x20execution\x20failed:\x20'+this['id'],{'operationId':_0x1bd82c,'error':_0xf24827[_0x4d4a19(0x19a)],'executionTime':_0x265044['executionTime']});throw _0xf24827;}finally{this[_0x4d4a19(0x1a1)]['push']({..._0x265044}),this['activeOperations']['delete'](_0x1bd82c),this[_0x4d4a19(0x180)](),await this[_0x4d4a19(0x1a6)](_0x1bd82c);}}async['getStatus'](_0x4414fb){const _0x248664=a0_0xb4b815,_0x461f1e=this[_0x248664(0x17d)][_0x248664(0x18b)](_0x4414fb);if(!_0x461f1e){const _0x411ed2=this[_0x248664(0x1a1)]['find'](_0x132b01=>_0x132b01['id']===_0x4414fb);if(_0x411ed2)return{'operationId':_0x4414fb,'status':_0x411ed2[_0x248664(0x16c)],'result':_0x411ed2['result'],'error':_0x411ed2['error'],'executionTime':_0x411ed2[_0x248664(0x174)]};return{'operationId':_0x4414fb,'status':OPERATION_STATUS[_0x248664(0x14b)],'error':'Operation\x20not\x20found'};}return{'operationId':_0x4414fb,'status':_0x461f1e['status'],'startTime':_0x461f1e[_0x248664(0x159)],'executionTime':_0x461f1e[_0x248664(0x176)]?new Date(_0x461f1e[_0x248664(0x176)])[_0x248664(0x190)]()-new Date(_0x461f1e[_0x248664(0x159)])[_0x248664(0x190)]():Date['now']()-new Date(_0x461f1e[_0x248664(0x159)])[_0x248664(0x190)]()};}async['cleanup'](_0x4f422c){}['getSupportedActions'](){return['execute'];}['getParameterSchema'](){return{'type':'object','properties':{},'required':[]};}['getRequiredParameters'](){return[];}[a0_0xb4b815(0x168)](_0x3a0b92){return{'valid':!![]};}[a0_0xb4b815(0x17e)](_0x48f9e3){return{'valid':!![]};}async[a0_0xb4b815(0x18c)](_0x15e132,_0x2be128){return new Promise(async(_0x1a3d2a,_0x2dfe6d)=>{const _0x1ae4bc=a0_0x32d2,_0x1027f4=setTimeout(()=>{const _0xef7429=a0_0x32d2;_0x2dfe6d(new Error(_0xef7429(0x171)+this['timeout']+'ms'));},this[_0x1ae4bc(0x186)]);try{const _0x3934ec=await this[_0x1ae4bc(0x182)](_0x15e132,_0x2be128);clearTimeout(_0x1027f4),_0x1a3d2a(_0x3934ec);}catch(_0x257d29){clearTimeout(_0x1027f4),_0x2dfe6d(_0x257d29);}});}['generateOperationId'](){const _0x3ae6f3=a0_0xb4b815;return this['id']+'-'+Date[_0x3ae6f3(0x140)]()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);}[a0_0xb4b815(0x160)](_0x194df5){const _0x141596=a0_0xb4b815,_0x5608f0={..._0x194df5};return delete _0x5608f0[_0x141596(0x1af)],delete _0x5608f0[_0x141596(0x193)],delete _0x5608f0['passwords'],_0x5608f0['content']&&_0x5608f0['content'][_0x141596(0x16f)]>0x1f4&&(_0x5608f0[_0x141596(0x1aa)]=_0x5608f0['content'][_0x141596(0x15e)](0x0,0x1f4)+'...\x20[truncated]'),_0x5608f0;}[a0_0xb4b815(0x180)](){const _0x50ec06=a0_0xb4b815,_0x6416f=0x64;this['operationHistory']['length']>_0x6416f&&(this[_0x50ec06(0x1a1)]=this['operationHistory'][_0x50ec06(0x142)](-_0x6416f));}[a0_0xb4b815(0x163)](){const _0x464cc6=a0_0xb4b815;return{'toolId':this['id'],'usageCount':this['usageCount'],'lastUsed':this['lastUsed'],'activeOperations':this[_0x464cc6(0x17d)]['size'],'totalOperations':this[_0x464cc6(0x1a1)]['length'],'averageExecutionTime':this[_0x464cc6(0x196)](),'successRate':this['calculateSuccessRate'](),'isEnabled':this[_0x464cc6(0x187)]};}['calculateAverageExecutionTime'](){const _0x3150c2=a0_0xb4b815,_0x4c675a=this[_0x3150c2(0x1a1)][_0x3150c2(0x17b)](_0x2bb176=>_0x2bb176[_0x3150c2(0x16c)]===TOOL_STATUS[_0x3150c2(0x144)]&&_0x2bb176['executionTime']);if(_0x4c675a['length']===0x0)return 0x0;const _0x3549b4=_0x4c675a[_0x3150c2(0x1b3)]((_0x3e3567,_0x1ac3d)=>_0x3e3567+_0x1ac3d['executionTime'],0x0);return Math['round'](_0x3549b4/_0x4c675a['length']);}['calculateSuccessRate'](){const _0x3bb986=a0_0xb4b815;if(this['operationHistory'][_0x3bb986(0x16f)]===0x0)return 0x0;const _0x142ad1=this[_0x3bb986(0x1a1)]['filter'](_0x251f20=>_0x251f20['status']===TOOL_STATUS['COMPLETED']);return _0x142ad1[_0x3bb986(0x16f)]/this[_0x3bb986(0x1a1)]['length']*0x64;}['enable'](){const _0x309d77=a0_0xb4b815;this[_0x309d77(0x187)]=!![],this[_0x309d77(0x14f)]?.['info']('Tool\x20enabled:\x20'+this['id']);}[a0_0xb4b815(0x1b4)](){const _0x106eb4=a0_0xb4b815;this['isEnabled']=![],this['logger']?.[_0x106eb4(0x15a)]('Tool\x20disabled:\x20'+this['id']);}['resetStats'](){const _0xa02438=a0_0xb4b815;this['usageCount']=0x0,this[_0xa02438(0x152)]=null,this[_0xa02438(0x1a1)]=[],this[_0xa02438(0x14f)]?.['info'](_0xa02438(0x191)+this['id']);}}class ToolsRegistry{constructor(_0x3dfac9=null){const _0xf5faa6=a0_0xb4b815;this['logger']=_0x3dfac9,this['tools']=new Map(),this['toolDescriptions']=new Map(),this[_0xf5faa6(0x1a9)]=new Map(),this['asyncOperations']=new Map();}async['registerTool'](_0x303358){const _0x5baeb7=a0_0xb4b815;try{const _0x1085d5=new _0x303358();if(!(_0x1085d5 instanceof BaseTool))throw new Error('Tool\x20'+_0x303358['name']+'\x20must\x20extend\x20BaseTool');const _0xc843e7=_0x1085d5[_0x5baeb7(0x172)]();await this['validateTool'](_0x1085d5),this[_0x5baeb7(0x148)][_0x5baeb7(0x164)](_0x1085d5['id'],_0x1085d5),this['toolDescriptions']['set'](_0x1085d5['id'],_0x1085d5[_0x5baeb7(0x1a8)]()),this['toolCapabilities']['set'](_0x1085d5['id'],_0xc843e7),this['logger']?.['info'](_0x5baeb7(0x19e)+_0x1085d5['id'],{'capabilities':_0xc843e7['supportedActions'],'async':_0xc843e7[_0x5baeb7(0x157)],'requiresProject':_0xc843e7['requiresProject']});}catch(_0xf02d6f){this[_0x5baeb7(0x14f)]?.['error']('Tool\x20registration\x20failed:\x20'+_0xf02d6f[_0x5baeb7(0x19a)],{'toolClass':_0x303358[_0x5baeb7(0x17c)]});throw _0xf02d6f;}}async[a0_0xb4b815(0x14a)](_0x389207){return 0x0;}async[a0_0xb4b815(0x154)](_0x2bde42){const _0x3e48ad=a0_0xb4b815,requiredMethods=[_0x3e48ad(0x1a8),'parseParameters',_0x3e48ad(0x182)];for(const _0x4a5d6e of requiredMethods){if(typeof _0x2bde42[_0x4a5d6e]!==_0x3e48ad(0x19b))throw new Error(_0x3e48ad(0x149)+_0x2bde42['id']+_0x3e48ad(0x15f)+_0x4a5d6e);}try{const _0x5da11f=_0x2bde42[_0x3e48ad(0x198)](_0x3e48ad(0x166));if(typeof _0x5da11f!=='object')throw new Error('Tool\x20'+_0x2bde42['id']+_0x3e48ad(0x165));}catch(_0x1fd15e){}const _0x1fe86e=_0x2bde42[_0x3e48ad(0x172)]();if(!_0x1fe86e||typeof _0x1fe86e!==_0x3e48ad(0x19f))throw new Error('Tool\x20'+_0x2bde42['id']+_0x3e48ad(0x16e));}[a0_0xb4b815(0x15d)](_0x2bd1a6){return this['tools']['get'](_0x2bd1a6)||null;}['getToolCapabilities'](){const _0x49f20b=a0_0xb4b815,_0x3034bc={};for(const [_0xd1521e,_0x302079]of this['tools']['entries']()){_0x302079[_0x49f20b(0x187)]&&(_0x3034bc[_0xd1521e]={'description':this['toolDescriptions']['get'](_0xd1521e),'capabilities':this[_0x49f20b(0x1a9)]['get'](_0xd1521e),'usageStats':_0x302079[_0x49f20b(0x163)]()});}return _0x3034bc;}async['executeToolSecurely'](_0x3e4eac,_0x26e77a,_0x158d81){const _0x3340f0=a0_0xb4b815,_0x55e4cc=this['getTool'](_0x3e4eac);if(!_0x55e4cc)throw new Error(_0x3340f0(0x15b)+_0x3e4eac);if(!_0x55e4cc[_0x3340f0(0x187)])throw new Error('Tool\x20is\x20disabled:\x20'+_0x3e4eac);return await _0x55e4cc[_0x3340f0(0x1ad)](_0x26e77a,_0x158d81);}[a0_0xb4b815(0x1a0)](){const _0x167f47=a0_0xb4b815;return Array[_0x167f47(0x161)](this['tools'][_0x167f47(0x1a5)]());}[a0_0xb4b815(0x14d)](_0x4807e9=[],_0x325375={}){const _0x57f736=a0_0xb4b815,{includeExamples:includeExamples=!![],includeUsageGuidelines:includeUsageGuidelines=!![],includeSecurityNotes:includeSecurityNotes=!![],compact:compact=![]}=_0x325375,_0x456a15=_0x4807e9[_0x57f736(0x16f)]>0x0?_0x4807e9['filter'](_0xa47b6e=>this['tools']['has'](_0xa47b6e)):Array[_0x57f736(0x161)](this[_0x57f736(0x148)]['keys']());if(_0x456a15['length']===0x0)return'';let _0x4ae0f3='\x0a##\x20AVAILABLE\x20TOOLS\x0a\x0a';_0x4ae0f3+='You\x20have\x20access\x20to\x20the\x20following\x20tools\x20to\x20perform\x20operations\x20and\x20tasks:\x0a\x0a';for(const _0x40665d of _0x456a15){const _0x2a9b10=this['tools']['get'](_0x40665d);if(!_0x2a9b10||!_0x2a9b10[_0x57f736(0x187)])continue;try{if(compact){const _0x268c78=_0x2a9b10['getCapabilities'](),_0x157c03=_0x268c78['supportedActions']||['execute'];_0x4ae0f3+='**'+_0x40665d+'**:\x20'+_0x157c03[_0x57f736(0x16d)](',\x20')+'\x0a';}else _0x4ae0f3+=_0x57f736(0x189)+_0x40665d['toUpperCase']()+'\x20TOOL\x0a\x0a',_0x4ae0f3+=_0x2a9b10['getDescription'](),_0x4ae0f3+=_0x57f736(0x141);}catch(_0x6187c8){this['logger']?.['warn'](_0x57f736(0x146)+_0x40665d,{'error':_0x6187c8[_0x57f736(0x19a)]});}}return compact&&(_0x4ae0f3+=_0x57f736(0x1a4)),_0x4ae0f3+=_0x57f736(0x1a7),_0x4ae0f3+=_0x57f736(0x145),_0x4ae0f3+=_0x57f736(0x151),_0x4ae0f3+=_0x57f736(0x1b0),_0x4ae0f3+=_0x57f736(0x147),_0x4ae0f3+=_0x57f736(0x150),_0x4ae0f3+=_0x57f736(0x192),_0x4ae0f3+='```\x0a\x0a',_0x4ae0f3+='###\x20Format\x202:\x20JSON\x20in\x20Markdown\x20Code\x20Block\x20(REQUIRED\x20for\x20JSON)\x0a',_0x4ae0f3+=_0x57f736(0x1b0),_0x4ae0f3+='```json\x0a',_0x4ae0f3+='{\x0a',_0x4ae0f3+='\x20\x20\x22toolId\x22:\x20\x22toolname\x22,\x0a',_0x4ae0f3+='\x20\x20\x22parameters\x22:\x20{\x20...\x20}\x20or\x20\x22actions\x22:\x20[\x20...\x20]\x0a',_0x4ae0f3+='}\x0a',_0x4ae0f3+=_0x57f736(0x1b0),_0x4ae0f3+='```\x0a\x0a',_0x4ae0f3+=_0x57f736(0x199),_0x4ae0f3+=_0x57f736(0x173),_0x4ae0f3+=_0x57f736(0x155),_0x4ae0f3+='```xml\x0a',_0x4ae0f3+='<tool-command>\x0a',_0x4ae0f3+='\x20\x20<tool\x20id=\x22toolname\x22>\x0a',_0x4ae0f3+='\x20\x20\x20\x20<parameter>value</parameter>\x0a',_0x4ae0f3+='\x20\x20</tool>\x0a',_0x4ae0f3+='</tool-command>\x0a',_0x4ae0f3+=_0x57f736(0x16b),_0x4ae0f3+='After\x20invoking\x20a\x20tool,\x20WAIT\x20for\x20the\x20actual\x20response.\x20Do\x20NOT\x20generate\x20imaginary\x20responses.\x0a',_0x4ae0f3;}[a0_0xb4b815(0x162)](_0x508d6d,_0x43ed81=[],_0x76ae54={}){const _0x3b73f8=a0_0xb4b815,_0x135874=this[_0x3b73f8(0x14d)](_0x43ed81,_0x76ae54);if(!_0x135874['trim']())return _0x508d6d||'';const _0x2dc805=_0x508d6d||'';if(_0x2dc805['includes'](_0x3b73f8(0x143)))return _0x2dc805['replace'](/## AVAILABLE TOOLS[\s\S]*?(?=##|$)/,_0x135874+'\x0a');const _0x10fece='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 _0x2dc805+(_0x2dc805[_0x3b73f8(0x18d)]('\x0a')?'':'\x0a')+_0x135874+_0x10fece+'\x0a';}[a0_0xb4b815(0x178)](){const _0x491b27=a0_0xb4b815,_0x2528a4=[];for(const [_0x5b6e2e,_0x251674]of this['tools'][_0x491b27(0x177)]()){const _0x44458f=_0x251674['getCapabilities'](),_0x8e92f2=_0x251674['getDescription'](),_0x3e9ecf=_0x8e92f2['split']('\x0a')[_0x491b27(0x153)](_0x65b91c=>_0x65b91c[_0x491b27(0x156)]()['length']>0x0)||'',_0x2861c2=_0x3e9ecf[_0x491b27(0x169)](/^.*Tool:\s*/i,'')[_0x491b27(0x169)](/\s*-.*$/,'')['trim']();_0x2528a4['push']({'id':_0x5b6e2e,'name':_0x2861c2||_0x5b6e2e[_0x491b27(0x184)](0x0)['toUpperCase']()+_0x5b6e2e[_0x491b27(0x142)](0x1),'description':_0x3e9ecf,'category':this['_getToolCategory'](_0x5b6e2e),'enabled':_0x44458f['enabled'],'async':_0x44458f[_0x491b27(0x157)],'requiresProject':_0x44458f[_0x491b27(0x1a3)],'className':_0x251674['constructor'][_0x491b27(0x17c)]});}return _0x2528a4['sort']((_0x4ac484,_0x2efb78)=>_0x4ac484[_0x491b27(0x17c)]['localeCompare'](_0x2efb78['name']));}['_getToolCategory'](_0x192a57){const _0x4509fa=a0_0xb4b815,_0x5005e7={'terminal':'System','filesystem':'File\x20Operations','browser':'Automation','agentdelay':_0x4509fa(0x17a)};return _0x5005e7[_0x192a57]||'Other';}[a0_0xb4b815(0x1a2)](){const _0x20e721=a0_0xb4b815,_0x399e3b=Array['from'](this['tools']['values']())[_0x20e721(0x17b)](_0x454ab6=>_0x454ab6['isEnabled']),_0x436115=Array['from'](this[_0x20e721(0x148)]['values']())[_0x20e721(0x1b3)]((_0x5bcf57,_0x55f117)=>_0x5bcf57+_0x55f117[_0x20e721(0x15c)],0x0);return{'totalTools':this['tools'][_0x20e721(0x167)],'enabledTools':_0x399e3b[_0x20e721(0x16f)],'totalOperations':_0x436115,'activeOperations':this[_0x20e721(0x1ac)][_0x20e721(0x167)]};}}export{BaseTool,ToolsRegistry};function a0_0x32d2(_0x52b854,_0x59f0cf){_0x52b854=_0x52b854-0x13e;const _0xb5e238=a0_0xb5e2();let _0x32d2af=_0xb5e238[_0x52b854];if(a0_0x32d2['aLDeun']===undefined){var _0xf1a9d9=function(_0x39848e){const _0x408db2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xca3c23='',_0x42cf4d='';for(let _0x2c36a9=0x0,_0x13c3e9,_0x3c482e,_0x282fb7=0x0;_0x3c482e=_0x39848e['charAt'](_0x282fb7++);~_0x3c482e&&(_0x13c3e9=_0x2c36a9%0x4?_0x13c3e9*0x40+_0x3c482e:_0x3c482e,_0x2c36a9++%0x4)?_0xca3c23+=String['fromCharCode'](0xff&_0x13c3e9>>(-0x2*_0x2c36a9&0x6)):0x0){_0x3c482e=_0x408db2['indexOf'](_0x3c482e);}for(let _0x42140b=0x0,_0xd4dfab=_0xca3c23['length'];_0x42140b<_0xd4dfab;_0x42140b++){_0x42cf4d+='%'+('00'+_0xca3c23['charCodeAt'](_0x42140b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x42cf4d);};a0_0x32d2['niGXgN']=_0xf1a9d9,a0_0x32d2['xcwRxl']={},a0_0x32d2['aLDeun']=!![];}const _0x242653=_0xb5e238[0x0],_0x38cb29=_0x52b854+_0x242653,_0x153a9d=a0_0x32d2['xcwRxl'][_0x38cb29];return!_0x153a9d?(_0x32d2af=a0_0x32d2['niGXgN'](_0x32d2af),a0_0x32d2['xcwRxl'][_0x38cb29]=_0x32d2af):_0x32d2af=_0x153a9d,_0x32d2af;}function a0_0xb5e2(){const _0x166d10=['BM93','cGOTls0kcG','C2XPy2u','iYmGqvzbsuXbqKXfifrpt0Xt','q09nueXfveve','kIPjtvbpuLrbtLqQkJOGww91ie1vu1qGDxnLig9UzsbVzIb0AgvZzsbLEgfJDcbMB3jTyxrZihrVigLUDM9Rzsb0B29SCZOkcG','rMfPBgvKihrVigDLDcbKzxnJCMLWDgLVBIbMB3iGDg9VBdOG','w3rVB2WGAwq9iNrVB2XUyw1LiL0k','Dg9VBhm','vg9VBca','zgLZy292zxjuB29SCW','tK9ux0zpvu5e','ntK1ndm1rhn5rgfs','z2vUzxjHDgvuB29SrgvZy3jPChrPB25ZrM9YuhjVBxb0','ugfYyw1LDgvYihzHBgLKyxrPB24GzMfPBgvKoIa','Bg9Nz2vY','phbHCMfTzxrLCNmGAgvYzt4k','iYmJiezVCM1HDcaXoIbcCMfJA2v0ie5VDgf0Aw9UcG','BgfZDfvZzwq','zMLUza','DMfSAwrHDgvuB29S','iYmJiezVCM1HDcaZoIbytuWGrM9YBwf0cG','DhjPBq','yxn5BMm','z2v0ugfYyw1LDgvYu2nOzw1H','C3rHCNruAw1L','Aw5MBW','vg9VBcbUB3qGzM91BMq6ia','DxnHz2vdB3vUDa','z2v0vg9VBa','C3vIC3rYAw5N','ig1PC3nPBMCGCMvXDwLYzwqGBwv0Ag9KoIa','C2fUAxrPEMvdB250zxH0','zNjVBq','zw5Oyw5Jzvn5C3rLBvbYB21WDa','z2v0vxnHz2vtDgf0CW','C2v0','ihbHCNnLugfYyw1LDgvYCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','DgvZDcbJB250zw50','C2L6zq','DMfSAwrHDgvqyxjHBwv0zxjuExbLCW','CMvWBgfJzq','DMfSAwrHDgvqyxjHBwv0zxjZ','ygbGcGO','C3rHDhvZ','AM9PBG','igDLDenHCgfIAwXPDgLLCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','BgvUz3rO','ndq0mJyZmgXeqLnZAG','vg9VBcbLEgvJDxrPB24GDgLTzwqGB3v0igfMDgvYia','z2v0q2fWywjPBgL0AwvZ','qwX3yxLZihDYyxaGsLnptIb0B29SignVBw1HBMrZigLUigbGygPZB24GlI4UigbGycbIBg9JA3mUcGO','zxHLy3v0Aw9UvgLTzq','mtKZndG4otbgvvzLr0G','zw5KvgLTzq','zw50CMLLCW','z2v0qxzHAwXHyMXLvg9VBhngB3jvsq','nNDUvxrUuW','vxrPBgL0Eq','zMLSDgvY','BMfTzq','ywn0AxzLt3bLCMf0Aw9UCW','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','mJmWmZn4DLfevwO','y2XLyw51CeHPC3rVCNK','mZmWmdy0n05bzvjuqq','zxHLy3v0zq','zxjYB3i','y2HHCKf0','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','DgLTzw91Da','AxnfBMfIBgvK','rvHfq1vusu5h','iYmJia','ig11C3qGAw1WBgvTzw50igDLDerLC2nYAxb0Aw9UkcK','z2v0','zxHLy3v0zvDPDgHuAw1LB3v0','zw5KC1DPDgG','mJbrv2z0yKK','DMfSAwq','z2v0vgLTzq','vg9VBcbZDgf0Axn0AwnZihjLC2v0oIa','wY90B29SxqO','C2vJCMv0CW','z2vUzxjHDgvpCgvYyxrPB25jza','y29UDgv4Da','y2fSy3vSyxrLqxzLCMfNzuv4zwn1DgLVBLrPBwu','Dg9VBa','CgfYC2vqyxjHBwv0zxjZ','kIPxqvjosu5hkIO6ifbSywLUiePtt04GD2L0Ag91DcbTyxjRzg93BIbJB2rLigjSB2nRCYaOygbGANnVBIKGD2LSBcbot1qGyMuGzxHLy3v0zwqHcG','BwvZC2fNzq','zNvUy3rPB24','vg9VBcbLEgvJDxrPB24Gy29TCgXLDgvKoIa','ngDbzvjNsa','vg9VBcbYzwDPC3rLCMvKoIa','B2jQzwn0','BgLZDfrVB2XZ','B3bLCMf0Aw9UsgLZDg9YEq','z2v0uMvNAxn0CNLtDgf0CW','CMvXDwLYzxnqCM9Qzwn0','cLvZzsbBDg9VBcbPzd0IDg9VBc1Uyw1LiL08CgfYyw1LDgvYCZ5Bl3rVB2XDig9YiePtt04GzM9YBwf0ihrVigLUDM9Rzsb0B29SCY4kcG','A2v5CW','y2XLyw51Ca','iYmGve9ptcbjtLzpq0fusu9oifnztLrbwaOk','z2v0rgvZy3jPChrPB24','Dg9VBenHCgfIAwXPDgLLCW','y29UDgvUDa','mtaXn2XkvMj4rq','yxn5BMnpCgvYyxrPB25Z','zxHLy3v0zvDPDgHmAwzLy3LJBgu','mJmZodr4CwzAyLi','yxbPs2v5CW','ygbGcG','Dg9ju09tDhjPBMC','twLZC2LUzYbYzxf1AxjLzcbWyxjHBwv0zxi6ia','CMvKDwnL','zgLZywjSzq','ndq0mJe5rgL6Bgz0','rKfjteve','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ'];a0_0xb5e2=function(){return _0x166d10;};return a0_0xb5e2();}
@@ -1 +1 @@
1
- const a0_0x256ef9=a0_0x8d37;(function(_0x29fd08,_0x23443d){const _0x41d2f7=a0_0x8d37,_0x9a8816=_0x29fd08();while(!![]){try{const _0x1b108e=parseInt(_0x41d2f7(0x111))/0x1+parseInt(_0x41d2f7(0x133))/0x2*(-parseInt(_0x41d2f7(0x13d))/0x3)+-parseInt(_0x41d2f7(0xed))/0x4+parseInt(_0x41d2f7(0x126))/0x5+parseInt(_0x41d2f7(0xfd))/0x6*(parseInt(_0x41d2f7(0x149))/0x7)+-parseInt(_0x41d2f7(0x12b))/0x8+parseInt(_0x41d2f7(0x10a))/0x9*(-parseInt(_0x41d2f7(0x159))/0xa);if(_0x1b108e===_0x23443d)break;else _0x9a8816['push'](_0x9a8816['shift']());}catch(_0x6fe709){_0x9a8816['push'](_0x9a8816['shift']());}}}(a0_0x7e4a,0xed899));import{BaseTool}from'./baseTool.js';import a0_0x387dac from'../utilities/tagParser.js';import a0_0x5159b4 from'puppeteer';import a0_0x9d85c6 from'fs/promises';import a0_0x4c40d7 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x8d37(_0x184acd,_0x53b2cc){_0x184acd=_0x184acd-0xea;const _0x7e4a69=a0_0x7e4a();let _0x8d377e=_0x7e4a69[_0x184acd];if(a0_0x8d37['NcjVtH']===undefined){var _0x28fe04=function(_0x2a6f5f){const _0x12a8f4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x387dac='',_0x5159b4='';for(let _0x9d85c6=0x0,_0x4c40d7,_0x40b8f9,_0x232f40=0x0;_0x40b8f9=_0x2a6f5f['charAt'](_0x232f40++);~_0x40b8f9&&(_0x4c40d7=_0x9d85c6%0x4?_0x4c40d7*0x40+_0x40b8f9:_0x40b8f9,_0x9d85c6++%0x4)?_0x387dac+=String['fromCharCode'](0xff&_0x4c40d7>>(-0x2*_0x9d85c6&0x6)):0x0){_0x40b8f9=_0x12a8f4['indexOf'](_0x40b8f9);}for(let _0x81e1=0x0,_0x2a4a42=_0x387dac['length'];_0x81e1<_0x2a4a42;_0x81e1++){_0x5159b4+='%'+('00'+_0x387dac['charCodeAt'](_0x81e1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5159b4);};a0_0x8d37['pxbHLq']=_0x28fe04,a0_0x8d37['BOilCt']={},a0_0x8d37['NcjVtH']=!![];}const _0x1962cc=_0x7e4a69[0x0],_0x408a98=_0x184acd+_0x1962cc,_0x3e1b0c=a0_0x8d37['BOilCt'][_0x408a98];return!_0x3e1b0c?(_0x8d377e=a0_0x8d37['pxbHLq'](_0x8d377e),a0_0x8d37['BOilCt'][_0x408a98]=_0x8d377e):_0x8d377e=_0x3e1b0c,_0x8d377e;}class BrowserTool extends BaseTool{constructor(_0x40b8f9={},_0x232f40=null){const _0x350f04=a0_0x8d37;super(_0x40b8f9,_0x232f40),this['requiresProject']=![],this[_0x350f04(0x15d)]=!![],this['timeout']=_0x40b8f9['timeout']||0xea60,this[_0x350f04(0x122)]=_0x40b8f9[_0x350f04(0x122)]||0x2,this[_0x350f04(0x13c)]={'headless':_0x40b8f9[_0x350f04(0xff)]!==![],'viewport':_0x40b8f9['viewport']||{'width':0x500,'height':0x2d0},'userAgent':_0x40b8f9[_0x350f04(0xf4)]||'Mozilla/5.0\x20(Windows\x20NT\x2010.0;\x20Win64;\x20x64)\x20AppleWebKit/537.36','timeout':_0x40b8f9['pageTimeout']||0x7530},this['browserInstances']=new Map(),this[_0x350f04(0xf9)]=_0x40b8f9[_0x350f04(0xf9)]||null,this['blockedDomains']=_0x40b8f9[_0x350f04(0x125)]||[],this[_0x350f04(0x12e)]=_0x40b8f9[_0x350f04(0x12e)]||0x5*0x400*0x400,this['operationHistory']=[];}[a0_0x256ef9(0x121)](){const _0x24cf48=a0_0x256ef9;return _0x24cf48(0x118)+this['browserConfig']['viewport'][_0x24cf48(0x117)]+'x'+this['browserConfig'][_0x24cf48(0xeb)]['height']+'\x0aTIMEOUT:\x20'+this['browserConfig']['timeout']+'ms\x20per\x20operation\x0aMAX\x20WAIT\x20TIME:\x2030\x20seconds\x20(30000ms)\x0a\x20\x20\x20\x20';}['parseParameters'](_0x81e1){const _0x2db63a=a0_0x256ef9;try{if(_0x81e1[_0x2db63a(0x134)]()['startsWith']('{')){const _0x6a09e5=JSON[_0x2db63a(0x119)](_0x81e1);return!_0x6a09e5[_0x2db63a(0x11d)]&&(_0x6a09e5[_0x2db63a(0x11d)]=[]),!Array[_0x2db63a(0x113)](_0x6a09e5[_0x2db63a(0x11d)])&&(_0x6a09e5[_0x2db63a(0x11d)]=[_0x6a09e5['actions']]),_0x6a09e5;}const _0x2a4a42={},_0x285c5f=[],_0x4379d7=['navigate','click','type',_0x2db63a(0x112),'screenshot','extract',_0x2db63a(0x139),'close'];for(const _0xad4ca8 of _0x4379d7){const _0x1adf0d=new RegExp('<'+_0xad4ca8+_0x2db63a(0x103),'gi');let _0x1aa7dd;while((_0x1aa7dd=_0x1adf0d[_0x2db63a(0x108)](_0x81e1))!==null){const _0x2879c3=_0x1aa7dd[0x1],_0x39b1bf=this['parseAttributes'](_0x2879c3),_0x486237={'type':_0xad4ca8,..._0x39b1bf};_0x486237['output-path']&&(_0x486237['outputPath']=_0x486237['output-path'],delete _0x486237[_0x2db63a(0x148)]),_0x486237['wait-time']&&(_0x486237['waitTime']=parseInt(_0x486237['wait-time'],0xa),delete _0x486237[_0x2db63a(0x11b)]),_0x486237[_0x2db63a(0xfb)]&&(_0x486237['waitSelector']=_0x486237[_0x2db63a(0xfb)],delete _0x486237['wait-selector']),_0x486237[_0x2db63a(0xfa)]&&(_0x486237[_0x2db63a(0x12f)]=_0x486237[_0x2db63a(0xfa)],delete _0x486237['wait-type']),_0x486237['full-page']&&(_0x486237[_0x2db63a(0x135)]=_0x486237['full-page']==='true',delete _0x486237['full-page']),_0x285c5f['push'](_0x486237);}}return _0x2a4a42['actions']=Array[_0x2db63a(0x113)](_0x285c5f)?_0x285c5f:[],_0x2a4a42['rawContent']=_0x81e1[_0x2db63a(0x134)](),_0x2a4a42;}catch(_0x5e66c3){return this['logger']?.[_0x2db63a(0x146)](_0x2db63a(0x14e),{'error':_0x5e66c3['message']}),{'actions':[],'rawContent':_0x81e1[_0x2db63a(0x134)](),'parseError':_0x5e66c3['message']};}}[a0_0x256ef9(0x104)](_0x2acea8){const _0x36af9f={};if(!_0x2acea8)return _0x36af9f;const _0x2fd3ab=/([\w-]+)\s*=\s*["']([^"']*)["']/g;let _0x5c6ea5;while((_0x5c6ea5=_0x2fd3ab['exec'](_0x2acea8))!==null){const _0xcb7e4=_0x5c6ea5[0x1],_0x5c9ebc=_0x5c6ea5[0x2];_0x36af9f[_0xcb7e4]=_0x5c9ebc;}return _0x36af9f;}[a0_0x256ef9(0xf3)](){return['actions'];}['customValidateParameters'](_0x52047d){const _0x15727f=a0_0x256ef9,_0x28b497=[];if(!_0x52047d['actions']||!Array['isArray'](_0x52047d['actions'])||_0x52047d['actions'][_0x15727f(0x143)]===0x0)_0x28b497[_0x15727f(0x14f)](_0x15727f(0x145));else for(const [_0xf9cde4,_0x5262d8]of _0x52047d['actions']['entries']()){if(!_0x5262d8[_0x15727f(0x106)]){_0x28b497[_0x15727f(0x14f)]('Action\x20'+(_0xf9cde4+0x1)+_0x15727f(0x140));continue;}switch(_0x5262d8['type']){case _0x15727f(0x15c):if(!_0x5262d8[_0x15727f(0x154)])_0x28b497[_0x15727f(0x14f)]('Action\x20'+(_0xf9cde4+0x1)+':\x20url\x20is\x20required\x20for\x20navigate');else!this[_0x15727f(0x147)](_0x5262d8[_0x15727f(0x154)])&&_0x28b497['push'](_0x15727f(0x13f)+(_0xf9cde4+0x1)+':\x20URL\x20not\x20allowed:\x20'+_0x5262d8[_0x15727f(0x154)]);break;case'click':case'extract':!_0x5262d8['selector']&&_0x28b497[_0x15727f(0x14f)](_0x15727f(0x13f)+(_0xf9cde4+0x1)+':\x20selector\x20is\x20required\x20for\x20'+_0x5262d8[_0x15727f(0x106)]);break;case'type':!_0x5262d8['selector']&&_0x28b497['push'](_0x15727f(0x13f)+(_0xf9cde4+0x1)+_0x15727f(0x102));!_0x5262d8[_0x15727f(0x114)]&&_0x5262d8['text']!==''&&_0x28b497['push'](_0x15727f(0x13f)+(_0xf9cde4+0x1)+_0x15727f(0x164));break;case'wait':!_0x5262d8['waitTime']&&!_0x5262d8[_0x15727f(0x160)]&&_0x28b497['push'](_0x15727f(0x13f)+(_0xf9cde4+0x1)+_0x15727f(0x127));_0x5262d8[_0x15727f(0x152)]&&(_0x5262d8['waitTime']<0x64||_0x5262d8[_0x15727f(0x152)]>0x7530)&&_0x28b497[_0x15727f(0x14f)]('Action\x20'+(_0xf9cde4+0x1)+_0x15727f(0x10b));break;case _0x15727f(0x128):!_0x5262d8['outputPath']&&_0x28b497[_0x15727f(0x14f)]('Action\x20'+(_0xf9cde4+0x1)+':\x20output-path\x20is\x20required\x20for\x20screenshot');break;case _0x15727f(0x139):if(!_0x5262d8[_0x15727f(0x157)])_0x28b497[_0x15727f(0x14f)](_0x15727f(0x13f)+(_0xf9cde4+0x1)+':\x20direction\x20is\x20required\x20for\x20scroll');else!['up',_0x15727f(0x141),_0x15727f(0x15e),_0x15727f(0x15f)][_0x15727f(0x150)](_0x5262d8[_0x15727f(0x157)])&&_0x28b497[_0x15727f(0x14f)]('Action\x20'+(_0xf9cde4+0x1)+':\x20invalid\x20scroll\x20direction:\x20'+_0x5262d8[_0x15727f(0x157)]);break;case _0x15727f(0x107):break;default:_0x28b497[_0x15727f(0x14f)]('Action\x20'+(_0xf9cde4+0x1)+_0x15727f(0x10e)+_0x5262d8['type']);}}return{'valid':_0x28b497[_0x15727f(0x143)]===0x0,'errors':_0x28b497};}async[a0_0x256ef9(0x156)](_0x38beb7,_0x1a5dec){const _0x36b496=a0_0x256ef9,{actions:_0x3f22ae}=_0x38beb7,{agentId:_0x3457df,projectDir:_0x18329a}=_0x1a5dec,_0x2fda77=_0x3457df+'-'+(_0x18329a||'default'),_0x5648e6=[];for(const _0x343fd3 of _0x3f22ae){try{let _0x411e34;switch(_0x343fd3[_0x36b496(0x106)]){case _0x36b496(0x15c):_0x411e34=await this[_0x36b496(0x15c)](_0x343fd3[_0x36b496(0x154)],_0x2fda77);break;case'click':_0x411e34=await this['click'](_0x343fd3[_0x36b496(0x110)],_0x2fda77);break;case'type':_0x411e34=await this['type'](_0x343fd3[_0x36b496(0x110)],_0x343fd3[_0x36b496(0x114)],_0x2fda77);break;case'wait':_0x411e34=await this['wait'](_0x343fd3,_0x2fda77);break;case _0x36b496(0x128):_0x411e34=await this[_0x36b496(0x128)](_0x343fd3[_0x36b496(0x12c)],_0x18329a,_0x2fda77,_0x343fd3);break;case'extract':_0x411e34=await this['extract'](_0x343fd3[_0x36b496(0x110)],_0x343fd3['attribute']||'text',_0x2fda77);break;case'scroll':_0x411e34=await this[_0x36b496(0x139)](_0x343fd3,_0x2fda77);break;case'close':_0x411e34=await this[_0x36b496(0xef)](_0x2fda77);break;default:throw new Error(_0x36b496(0x161)+_0x343fd3['type']);}_0x5648e6[_0x36b496(0x14f)](_0x411e34),this['addToHistory'](_0x343fd3,_0x411e34,_0x3457df);}catch(_0x20fa4a){const _0x380451={'success':![],'action':_0x343fd3[_0x36b496(0x106)],'error':_0x20fa4a['message'],'selector':_0x343fd3[_0x36b496(0x110)]||_0x343fd3['url']};_0x5648e6[_0x36b496(0x14f)](_0x380451),this['addToHistory'](_0x343fd3,_0x380451,_0x3457df);}}return{'success':!![],'actions':_0x5648e6,'executedActions':_0x3f22ae['length'],'toolUsed':'browser'};}async['navigate'](_0x2f6be3,_0x4cb0bc){const _0x3a7284=a0_0x256ef9,_0xb071d0=await this[_0x3a7284(0xf0)](_0x4cb0bc),_0x3722af=await this[_0x3a7284(0x11c)](_0x4cb0bc),_0x4dd691=Date['now']();try{await _0x3722af[_0x3a7284(0xf2)](_0x2f6be3,{'waitUntil':'networkidle0','timeout':this[_0x3a7284(0x13c)]['timeout']});const _0x278c76=await _0x3722af['title'](),_0x3ac3db=_0x3722af['url']();return{'success':!![],'action':_0x3a7284(0x15c),'url':_0x3ac3db,'originalUrl':_0x2f6be3,'title':_0x278c76,'loadTime':Date['now']()-_0x4dd691,'message':_0x3a7284(0x11a)+_0x2f6be3};}catch(_0xde1f18){throw new Error(_0x3a7284(0x10d)+_0xde1f18['message']);}}async['click'](_0x128b54,_0x35623c){const _0x5f2f8e=a0_0x256ef9,_0x32ac7b=await this[_0x5f2f8e(0x11c)](_0x35623c);try{return await _0x32ac7b['waitForSelector'](_0x128b54,{'timeout':0x1388}),await _0x32ac7b['click'](_0x128b54),{'success':!![],'action':_0x5f2f8e(0x13e),'selector':_0x128b54,'message':'Clicked\x20on\x20'+_0x128b54};}catch(_0x21979c){throw new Error(_0x5f2f8e(0x155)+_0x128b54+':\x20'+_0x21979c['message']);}}async['type'](_0x3e4e70,_0x343a1f,_0x4702ec){const _0x5f4097=a0_0x256ef9,_0x533c89=await this[_0x5f4097(0x11c)](_0x4702ec);try{return await _0x533c89['waitForSelector'](_0x3e4e70,{'timeout':0x1388}),await _0x533c89[_0x5f4097(0xf6)](_0x3e4e70),await _0x533c89[_0x5f4097(0xfe)]['selectAll'](),await _0x533c89[_0x5f4097(0x106)](_0x3e4e70,_0x343a1f),{'success':!![],'action':'type','selector':_0x3e4e70,'text':_0x343a1f,'textLength':_0x343a1f[_0x5f4097(0x143)],'message':_0x5f4097(0x137)+_0x343a1f['length']+_0x5f4097(0x11f)+_0x3e4e70};}catch(_0x34046b){throw new Error(_0x5f4097(0x12a)+_0x3e4e70+':\x20'+_0x34046b[_0x5f4097(0x136)]);}}async[a0_0x256ef9(0x112)](_0x16b5b8,_0x42294f){const _0x49bdbb=a0_0x256ef9,_0x578929=await this['getPage'](_0x42294f);try{if(_0x16b5b8[_0x49bdbb(0x152)])return await _0x578929['waitForTimeout'](_0x16b5b8[_0x49bdbb(0x152)]),{'success':!![],'action':_0x49bdbb(0x112),'waitTime':_0x16b5b8['waitTime'],'message':_0x49bdbb(0x105)+_0x16b5b8['waitTime']+'ms'};if(_0x16b5b8['waitSelector']){const _0x43b995=_0x16b5b8['waitType']||'visible',_0x4dc5f3={'timeout':0x2710};return _0x43b995==='hidden'?await _0x578929[_0x49bdbb(0x116)](_0x16b5b8[_0x49bdbb(0x160)],{..._0x4dc5f3,'hidden':!![]}):await _0x578929[_0x49bdbb(0x116)](_0x16b5b8[_0x49bdbb(0x160)],_0x4dc5f3),{'success':!![],'action':_0x49bdbb(0x112),'waitSelector':_0x16b5b8[_0x49bdbb(0x160)],'waitType':_0x43b995,'message':'Waited\x20for\x20'+_0x16b5b8['waitSelector']+'\x20to\x20be\x20'+_0x43b995};}}catch(_0x4c2dfc){throw new Error('Wait\x20failed:\x20'+_0x4c2dfc[_0x49bdbb(0x136)]);}}async['screenshot'](_0x7232bc,_0x982433,_0x242730,_0x4e9a97={}){const _0x5bb378=a0_0x256ef9,_0x3153e6=await this['getPage'](_0x242730);try{const _0x1a529c=_0x982433?a0_0x4c40d7['resolve'](_0x982433,_0x7232bc):a0_0x4c40d7[_0x5bb378(0xf5)](_0x7232bc),_0x560d75=a0_0x4c40d7['dirname'](_0x1a529c);await a0_0x9d85c6['mkdir'](_0x560d75,{'recursive':!![]});const _0x46591c={'path':_0x1a529c,'type':'png'};_0x4e9a97['fullPage']&&(_0x46591c['fullPage']=!![]);await _0x3153e6[_0x5bb378(0x128)](_0x46591c);const _0x381899=await a0_0x9d85c6['stat'](_0x1a529c);if(_0x381899['size']>this['maxScreenshotSize'])throw new Error(_0x5bb378(0x10f)+_0x381899['size']+'\x20bytes\x20(max\x20'+this[_0x5bb378(0x12e)]+')');return{'success':!![],'action':'screenshot','outputPath':a0_0x4c40d7[_0x5bb378(0x109)](_0x982433||process['cwd'](),_0x1a529c),'size':_0x381899[_0x5bb378(0x130)],'fullPage':!!_0x4e9a97['fullPage'],'message':_0x5bb378(0x151)+_0x7232bc};}catch(_0x53e38b){throw new Error(_0x5bb378(0x144)+_0x53e38b[_0x5bb378(0x136)]);}}async['extract'](_0x306d42,_0x241859,_0x42b159){const _0x3b5779=a0_0x256ef9,_0x28cb36=await this['getPage'](_0x42b159);try{await _0x28cb36['waitForSelector'](_0x306d42,{'timeout':0x1388});let _0x153c03;return _0x241859===_0x3b5779(0x114)?_0x153c03=await _0x28cb36[_0x3b5779(0xfc)](_0x306d42,_0x1e9423=>_0x1e9423[_0x3b5779(0x165)][_0x3b5779(0x134)]()):_0x153c03=await _0x28cb36['$eval'](_0x306d42,(_0x28dcc2,_0x27bfc3)=>_0x28dcc2[_0x3b5779(0x162)](_0x27bfc3),_0x241859),{'success':!![],'action':'extract','selector':_0x306d42,'attribute':_0x241859,'data':_0x153c03,'message':_0x3b5779(0x11e)+_0x241859+'\x20from\x20'+_0x306d42};}catch(_0x4db7a3){throw new Error(_0x3b5779(0x163)+_0x306d42+':\x20'+_0x4db7a3[_0x3b5779(0x136)]);}}async['scroll'](_0x54d9c0,_0x6356b6){const _0x56d32d=a0_0x256ef9,_0x9ab833=await this['getPage'](_0x6356b6);try{const {direction:_0x18424b,pixels:pixels=0x12c,selector:_0x2fdec3}=_0x54d9c0;return _0x2fdec3?await _0x9ab833[_0x56d32d(0x158)]((_0x51393a,_0xbe97c4,_0xca0aa4)=>{const _0x1b63d5=_0x56d32d,_0x340b07=document['querySelector'](_0x51393a);if(_0x340b07){if(_0xbe97c4===_0x1b63d5(0x141))_0x340b07['scrollTop']+=_0xca0aa4;else{if(_0xbe97c4==='up')_0x340b07['scrollTop']-=_0xca0aa4;else{if(_0xbe97c4===_0x1b63d5(0x15f))_0x340b07['scrollLeft']+=_0xca0aa4;else{if(_0xbe97c4===_0x1b63d5(0x15e))_0x340b07['scrollLeft']-=_0xca0aa4;}}}}},_0x2fdec3,_0x18424b,pixels):await _0x9ab833['evaluate']((_0x4a5ee4,_0x17aefe)=>{const _0x21d80d=_0x56d32d;if(_0x4a5ee4===_0x21d80d(0x141))window[_0x21d80d(0xec)](0x0,_0x17aefe);else{if(_0x4a5ee4==='up')window['scrollBy'](0x0,-_0x17aefe);else{if(_0x4a5ee4===_0x21d80d(0x15f))window['scrollBy'](_0x17aefe,0x0);else{if(_0x4a5ee4==='left')window[_0x21d80d(0xec)](-_0x17aefe,0x0);}}}},_0x18424b,pixels),{'success':!![],'action':_0x56d32d(0x139),'direction':_0x18424b,'pixels':pixels,'selector':_0x2fdec3||'page','message':_0x56d32d(0xf7)+_0x18424b+'\x20by\x20'+pixels+'px'};}catch(_0x41ba17){throw new Error(_0x56d32d(0x120)+_0x41ba17['message']);}}async[a0_0x256ef9(0xf0)](_0xb5b7d6){const _0x11970f=a0_0x256ef9;if(this['browserInstances']['has'](_0xb5b7d6)){const _0x36d9c8=this['browserInstances']['get'](_0xb5b7d6);if(!_0x36d9c8[_0x11970f(0x14c)][_0x11970f(0x14b)]())this['browserInstances'][_0x11970f(0x167)](_0xb5b7d6);else return _0x36d9c8['browser'];}const _0x5d2e46=await a0_0x5159b4[_0x11970f(0x12d)]({'headless':this['browserConfig']['headless'],'args':['--no-sandbox','--disable-setuid-sandbox','--disable-dev-shm-usage',_0x11970f(0x166)]}),_0x2a968c=await _0x5d2e46[_0x11970f(0x153)]();return await _0x2a968c[_0x11970f(0x13b)](this['browserConfig']['viewport']),await _0x2a968c[_0x11970f(0x15a)](this[_0x11970f(0x13c)]['userAgent']),this['browserInstances'][_0x11970f(0x131)](_0xb5b7d6,{'browser':_0x5d2e46,'page':_0x2a968c,'created':Date[_0x11970f(0x124)]()}),setTimeout(()=>{const _0x2537de=_0x11970f;this[_0x2537de(0x14a)](_0xb5b7d6);},0xa*0x3c*0x3e8),_0x5d2e46;}async['getPage'](_0x583ac1){const _0x514a8a=a0_0x256ef9;return await this['getBrowser'](_0x583ac1),this['browserInstances']['get'](_0x583ac1)[_0x514a8a(0x129)];}async[a0_0x256ef9(0xef)](_0x6a310a){const _0x55c53d=a0_0x256ef9,_0x603211=this[_0x55c53d(0x138)][_0x55c53d(0x15b)](_0x6a310a);if(_0x603211)try{return await _0x603211[_0x55c53d(0x14c)][_0x55c53d(0x107)](),this[_0x55c53d(0x138)]['delete'](_0x6a310a),{'success':!![],'action':'close','browserKey':_0x6a310a,'message':_0x55c53d(0x115)};}catch(_0x19c406){throw new Error(_0x55c53d(0xee)+_0x19c406['message']);}return{'success':!![],'action':'close','browserKey':_0x6a310a,'message':'Browser\x20instance\x20not\x20found\x20(already\x20closed)'};}async['cleanupBrowser'](_0x5e07da){const _0x5450d8=a0_0x256ef9,_0x1e2226=this['browserInstances']['get'](_0x5e07da);if(_0x1e2226)try{await _0x1e2226['browser'][_0x5450d8(0x107)]();}catch(_0x429547){}finally{this[_0x5450d8(0x138)]['delete'](_0x5e07da);}}['isAllowedUrl'](_0x5d7592){const _0x42ab18=a0_0x256ef9;try{const _0x3b1359=new URL(_0x5d7592),_0xd8328d=_0x3b1359['hostname']['toLowerCase']();if(this[_0x42ab18(0x125)][_0x42ab18(0x123)](_0x243b2a=>_0xd8328d['includes'](_0x243b2a['toLowerCase']())))return![];if(this[_0x42ab18(0xf9)]&&this[_0x42ab18(0xf9)]['length']>0x0)return this['allowedDomains'][_0x42ab18(0x123)](_0x31f6e6=>_0xd8328d['includes'](_0x31f6e6[_0x42ab18(0x101)]()));return!![];}catch{return![];}}['addToHistory'](_0x333d4a,_0x16d942,_0x56fd50){const _0x5b5748=a0_0x256ef9,_0x4ebbe0={'timestamp':new Date()['toISOString'](),'agentId':_0x56fd50,'action':_0x333d4a['type'],'selector':_0x333d4a[_0x5b5748(0x110)]||_0x333d4a['url'],'success':_0x16d942['success'],'loadTime':_0x16d942[_0x5b5748(0x132)]||0x0};this[_0x5b5748(0x142)]['push'](_0x4ebbe0),this[_0x5b5748(0x142)][_0x5b5748(0x143)]>0x64&&(this['operationHistory']=this[_0x5b5748(0x142)][_0x5b5748(0xea)](-0x64));}[a0_0x256ef9(0x14d)](){const _0x1ea8de=a0_0x256ef9;return['navigate',_0x1ea8de(0x13e),'type','wait','screenshot','extract','scroll',_0x1ea8de(0x107)];}[a0_0x256ef9(0xf1)](){const _0x38b218=a0_0x256ef9;return{'type':_0x38b218(0x100),'properties':{'actions':{'type':_0x38b218(0x10c),'minItems':0x1,'items':{'type':_0x38b218(0x100),'properties':{'type':{'type':_0x38b218(0x13a),'enum':this[_0x38b218(0x14d)]()},'url':{'type':_0x38b218(0x13a)},'selector':{'type':'string'},'text':{'type':_0x38b218(0x13a)},'outputPath':{'type':'string'},'waitTime':{'type':_0x38b218(0xf8)},'waitSelector':{'type':_0x38b218(0x13a)},'attribute':{'type':_0x38b218(0x13a)},'direction':{'type':_0x38b218(0x13a)},'pixels':{'type':_0x38b218(0xf8)}},'required':['type']}}},'required':[_0x38b218(0x11d)]};}async['cleanup'](_0x1ef3ad){const _0xe925c6=a0_0x256ef9;for(const [_0x3afee3]of this[_0xe925c6(0x138)]){await this['cleanupBrowser'](_0x3afee3);}}['getOperationHistory'](_0x13e882=null){const _0x117dc7=a0_0x256ef9;if(_0x13e882)return this['operationHistory']['filter'](_0x50672a=>_0x50672a['agentId']===_0x13e882);return[...this[_0x117dc7(0x142)]];}}function a0_0x7e4a(){const _0x44905f=['DxnLCKfNzw50','CMvZB2X2zq','zM9JDxm','u2nYB2XSzwqG','Aw50zwDLCG','ywXSB3DLzerVBwfPBNm','D2fPDc10ExbL','D2fPDc1ZzwXLy3rVCG','jgv2ywW','nZC0D0v4s0jR','A2v5yM9HCMq','AgvHzgXLC3m','B2jQzwn0','Dg9mB3DLCKnHC2u','oIbZzwXLy3rVCIbPCYbYzxf1AxjLzcbMB3iGDhLWzq','xhmRkfTEpL0QpYLCCYPClZ8+','CgfYC2vbDhrYAwj1DgvZ','v2fPDgvKia','DhLWzq','y2XVC2u','zxHLyW','CMvSyxrPDMu','ou9ty1PJva','oIb3ywL0lxrPBwuGBxvZDcbIzsbIzxr3zwvUideWmcbHBMqGmZaWmdaGBwLSBgLZzwnVBMrZ','yxjYyxK','tMf2AwDHDgLVBIbMywLSzwq6ia','oIb1BMTUB3DUigfJDgLVBIb0ExbLoIa','u2nYzwvUC2HVDcb0B28GBgfYz2u6ia','C2vSzwn0B3i','mtu3nJm4ouLMuM5Uza','D2fPDa','AxnbCNjHEq','Dgv4Da','qNjVD3nLCIbPBNn0yw5JzsbJBg9Zzwq','D2fPDezVCLnLBgvJDg9Y','D2LKDgG','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','CgfYC2u','tMf2AwDHDgvKihrVia','D2fPDc10Aw1L','z2v0ugfNzq','ywn0Aw9UCW','rxH0CMfJDgvKia','ignOyxjHy3rLCNmGAw50BYa','u2nYB2XSigzHAwXLzdOG','z2v0rgvZy3jPChrPB24','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','C29Tzq','BM93','yMXVy2TLzerVBwfPBNm','mZe3mZG2meTvtxbzsq','oIbLAxrOzxiGD2fPDc10Aw1Lig9YihDHAxqTC2vSzwn0B3iGAxmGCMvXDwLYzwq','C2nYzwvUC2HVDa','CgfNzq','vhLWzsbMywLSzwqGB24G','nZy4nJe5mMzyvw1XsW','B3v0Chv0ugf0Aa','Bgf1BMnO','Bwf4u2nYzwvUC2HVDfnPEMu','D2fPDfr5Cgu','C2L6zq','C2v0','Bg9HzfrPBwu','ndzfB0DgCKi','DhjPBq','zNvSBfbHz2u','BwvZC2fNzq','vhLWzwqG','yNjVD3nLCKLUC3rHBMnLCW','C2nYB2XS','C3rYAw5N','C2v0vMLLD3bVCNq','yNjVD3nLCKnVBMzPzW','mtuXnJC3zNvdvNvd','y2XPy2S','qwn0Aw9Uia','oIb0ExbLigLZihjLCxvPCMvK','zg93BG','B3bLCMf0Aw9UsgLZDg9YEq','BgvUz3rO','u2nYzwvUC2HVDcbMywLSzwq6ia','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','zxjYB3i','AxnbBgXVD2vKvxjS','B3v0Chv0lxbHDgG','nJGZmJDbAgjKALy','y2XLyw51CejYB3DZzxi','AxndB25Uzwn0zwq','yNjVD3nLCG','z2v0u3vWCg9YDgvKqwn0Aw9UCW','rMfPBgvKihrVihbHCNnLigjYB3DZzxiGCgfYyw1LDgvYCW','ChvZAa','Aw5JBhvKzxm','u2nYzwvUC2HVDcbZyxzLzdOG','D2fPDfrPBwu','BMv3ugfNzq','DxjS','q2XPy2SGzMfPBgvKig9Uia','zxHLy3v0zq','zgLYzwn0Aw9U','zxzHBhvHDgu','mty4mtqZmeLpwNnIsa','C2v0vxnLCKfNzw50','z2v0','BMf2AwDHDgu','AxnbC3LUyW','BgvMDa','CMLNAhq','D2fPDfnLBgvJDg9Y','vw5RBM93BIbHy3rPB24GDhLWztOG','z2v0qxr0CMLIDxrL','rxH0CMfJDcbMywLSzwqGB24G','oIb0zxH0igLZihjLCxvPCMvKigzVCIb0ExbL','Dgv4DenVBNrLBNq','ls1KAxnHyMXLlwDWDq','zgvSzxrL','C2XPy2u','DMLLD3bVCNq','C2nYB2XSqNK','odiYndeYBw5kqwz4','rMfPBgvKihrVignSB3nLigjYB3DZzxi6ia','y2XVC2vcCM93C2vY','z2v0qNjVD3nLCG','z2v0ugfYyw1LDgvYu2nOzw1H','z290BW','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ'];a0_0x7e4a=function(){return _0x44905f;};return a0_0x7e4a();}export default BrowserTool;
1
+ const a0_0x11210d=a0_0x1f60;(function(_0x28c8ea,_0x2b315b){const _0x4a6366=a0_0x1f60,_0x447cad=_0x28c8ea();while(!![]){try{const _0x2b0cba=parseInt(_0x4a6366(0x1f5))/0x1+parseInt(_0x4a6366(0x209))/0x2+-parseInt(_0x4a6366(0x206))/0x3+-parseInt(_0x4a6366(0x1e6))/0x4+-parseInt(_0x4a6366(0x20f))/0x5+parseInt(_0x4a6366(0x21f))/0x6*(-parseInt(_0x4a6366(0x231))/0x7)+-parseInt(_0x4a6366(0x222))/0x8*(-parseInt(_0x4a6366(0x1dc))/0x9);if(_0x2b0cba===_0x2b315b)break;else _0x447cad['push'](_0x447cad['shift']());}catch(_0x5a0671){_0x447cad['push'](_0x447cad['shift']());}}}(a0_0x33c5,0x57d8a));import{BaseTool}from'./baseTool.js';import a0_0x5cc65e from'../utilities/tagParser.js';function a0_0x33c5(){const _0x48f19b=['D2fPDc1ZzwXLy3rVCG','y2XVC2vcCM93C2vY','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','z2v0','DMLZAwjSzq','yxr0CMLIDxrL','q2XPy2SGzMfPBgvKig9Uia','D2fPDfr5Cgu','yxjYyxK','BwvZC2fNzq','Dgv4Da','Aw5JBhvKzxm','ls1KAxnHyMXLlwDWDq','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','Dg9mB3DLCKnHC2u','ywn0Aw9UCW','zxHLyW','z290BW','C2v0vMLLD3bVCNq','z2v0u3vWCg9YDgvKqwn0Aw9UCW','jgv2ywW','mtKWnJe5ntvOruXsrfu','DhjPBq','y3DK','C3rYAw5N','rMfPBgvKihrVihbHCNnLigjYB3DZzxiGCgfYyw1LDgvYCW','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','y2XLyw51CejYB3DZzxi','igj5DgvZicHTyxGG','qwn0Aw9Uia','C2L6zq','mJq5nda2oeDNu1nlBG','yNjVD3nLCG','C2nYB2XStgvMDa','zgLYzwn0Aw9U','Dgv4DenVBNrLBNq','AxnbBgXVD2vKvxjS','D2fPDc10Aw1L','B3v0Chv0lxbHDgG','B2jQzwn0','ChvZAa','q2XPy2TLzcbVBIa','C2vSzwn0qwXS','C2nYB2XS','zxH0CMfJDa','D2fPDfnLBgvJDg9Y','mte4nZa3q3vIweHz','D2fPDfrPBwu','AxnbCNjHEq','xhmRkfTEpL0QpYLCCYPClZ8+','vw5RBM93BIbHy3rPB24GDhLWztOG','C2nYzwvUC2HVDa','D2fPDezVCLrPBwvVDxq','C2nYB2XSqNK','DMLLD3bVCNq','CxvLCNLtzwXLy3rVCG','zNvSBc1WywDL','BwTKAxi','BgvUz3rO','ls1KAxnHyMXLlwrLDI1ZAg0TDxnHz2u','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','ywrKvg9iAxn0B3j5','cLrjtuvpvvq6ia','nZeWnJaXDxbjDfDA','C2XPy2u','zg93BG','mJuXmJKYvMvMuNbi','DxnLCKfNzw50','u2nYzwvUC2HVDcbZyxzLzdOG','DgLTzw91Da','B3bLCMf0Aw9UsgLZDg9YEq','BM93','mZaYodyYnw1HsLbwqG','C2nYB2XSvg9W','D2fPDa','DhLWzq','DxjS','BgvMDa','AgLKzgvU','tw96AwXSys81lJaGkfDPBMrVD3mGtLqGmtaUmdSGv2LUnJq7ihG2ncKGqxbWBgvxzwjlAxqVntm3lJm2','z2v0ugfNzq','vhLWzwqG','C29Tzq','y2XVC2u','D2LKDgG','ywDLBNrjza','v2fPDcbMywLSzwq6ia','CgfNzq','mtHewvbpB20','zxjYB3i','rxH0CMfJDcbMywLSzwqGB24G','ohL2BMjQwa','yNjVD3nLCKLUC3rHBMnLCW','zNvSBfbHz2u','y2XPy2S','Bg9Nz2vY','CgfYC2vbDhrYAwj1DgvZ','zxHLy3v0zq','Bwf4u2nYzwvUC2HVDfnPEMu','oIb1CMWGAxmGCMvXDwLYzwqGzM9Yig5HDMLNyxrL','z2v0t3bLCMf0Aw9UsgLZDg9YEq','tMf2AwDHDgLVBIbMywLSzwq6ia','D2fPDc10ExbL','D2fPDezVCLnLBgvJDg9Y','z2v0qNjVD3nLCG','u2nYzwvUC2HVDcb0B28GBgfYz2u6ia','mti1mty0oxDkq2XIrq','oIbKAxjLy3rPB24GAxmGCMvXDwLYzwqGzM9YihnJCM9SBa','oIb0ExbLigLZihjLCxvPCMvK','AgvHzgXLC3m','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','C2vSzwn0B3i','yNjVD3nLCKnVBMzPzW','CMvZB2X2zq','z2v0qxr0CMLIDxrL','BMf2AwDHDgu','zgvSzxrL'];a0_0x33c5=function(){return _0x48f19b;};return a0_0x33c5();}import a0_0x97542c from'puppeteer';import a0_0x12bb68 from'fs/promises';function a0_0x1f60(_0x25659b,_0xb7261a){_0x25659b=_0x25659b-0x1db;const _0x33c51e=a0_0x33c5();let _0x1f607e=_0x33c51e[_0x25659b];if(a0_0x1f60['GgzFoh']===undefined){var _0x1cf370=function(_0x33b006){const _0x17aae4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5cc65e='',_0x97542c='';for(let _0x12bb68=0x0,_0x212c90,_0x4e215e,_0x3950a7=0x0;_0x4e215e=_0x33b006['charAt'](_0x3950a7++);~_0x4e215e&&(_0x212c90=_0x12bb68%0x4?_0x212c90*0x40+_0x4e215e:_0x4e215e,_0x12bb68++%0x4)?_0x5cc65e+=String['fromCharCode'](0xff&_0x212c90>>(-0x2*_0x12bb68&0x6)):0x0){_0x4e215e=_0x17aae4['indexOf'](_0x4e215e);}for(let _0x43249c=0x0,_0x3c1896=_0x5cc65e['length'];_0x43249c<_0x3c1896;_0x43249c++){_0x97542c+='%'+('00'+_0x5cc65e['charCodeAt'](_0x43249c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x97542c);};a0_0x1f60['ZYKfzE']=_0x1cf370,a0_0x1f60['jxDoTM']={},a0_0x1f60['GgzFoh']=!![];}const _0x5c5545=_0x33c51e[0x0],_0xbd0ec7=_0x25659b+_0x5c5545,_0xc39c1a=a0_0x1f60['jxDoTM'][_0xbd0ec7];return!_0xc39c1a?(_0x1f607e=a0_0x1f60['ZYKfzE'](_0x1f607e),a0_0x1f60['jxDoTM'][_0xbd0ec7]=_0x1f607e):_0x1f607e=_0xc39c1a,_0x1f607e;}import a0_0x212c90 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BrowserTool extends BaseTool{constructor(_0x4e215e={},_0x3950a7=null){const _0x497f63=a0_0x1f60;super(_0x4e215e,_0x3950a7),this['requiresProject']=![],this['isAsync']=!![],this[_0x497f63(0x20c)]=_0x4e215e['timeout']||0xea60,this[_0x497f63(0x249)]=_0x4e215e['maxConcurrentOperations']||0x2,this['browserConfig']={'headless':_0x4e215e[_0x497f63(0x234)]!==![],'viewport':_0x4e215e['viewport']||{'width':0x500,'height':0x2d0},'userAgent':_0x4e215e[_0x497f63(0x20a)]||_0x497f63(0x216),'timeout':_0x4e215e['pageTimeout']||0x7530},this[_0x497f63(0x223)]=new Map(),this['allowedDomains']=_0x4e215e['allowedDomains']||null,this['blockedDomains']=_0x4e215e['blockedDomains']||[],this['maxScreenshotSize']=_0x4e215e['maxScreenshotSize']||0x5*0x400*0x400,this['operationHistory']=[];}['getDescription'](){const _0x34e251=a0_0x1f60;return _0x34e251(0x235)+this['browserConfig'][_0x34e251(0x1fd)][_0x34e251(0x21b)]+'x'+this[_0x34e251(0x237)][_0x34e251(0x1fd)]['height']+_0x34e251(0x205)+this['browserConfig'][_0x34e251(0x20c)]+'ms\x20per\x20operation\x0aMAX\x20WAIT\x20TIME:\x2030\x20seconds\x20(30000ms)\x0a\x20\x20\x20\x20';}['parseParameters'](_0x43249c){const _0x256030=a0_0x1f60;try{if(_0x43249c[_0x256030(0x1dd)]()['startsWith']('{')){const _0x53d800=JSON['parse'](_0x43249c);return!_0x53d800['actions']&&(_0x53d800['actions']=[]),!Array['isArray'](_0x53d800['actions'])&&(_0x53d800[_0x256030(0x24b)]=[_0x53d800['actions']]),_0x53d800;}const _0x3c1896={},_0x474227=[],_0x8ed263=['navigate',_0x256030(0x225),'type',_0x256030(0x211),_0x256030(0x1fa),_0x256030(0x1f3),_0x256030(0x1f2),'close'];for(const _0x5d3513 of _0x8ed263){const _0xf6a3fe=new RegExp('<'+_0x5d3513+_0x256030(0x1f8),'gi');let _0xecbadb;while((_0xecbadb=_0xf6a3fe[_0x256030(0x24c)](_0x43249c))!==null){const _0x1eec39=_0xecbadb[0x1],_0x545684=this[_0x256030(0x227)](_0x1eec39),_0x588d1a={'type':_0x5d3513,..._0x545684};_0x588d1a['output-path']&&(_0x588d1a['outputPath']=_0x588d1a['output-path'],delete _0x588d1a[_0x256030(0x1ed)]),_0x588d1a[_0x256030(0x1ec)]&&(_0x588d1a[_0x256030(0x1f6)]=parseInt(_0x588d1a['wait-time'],0xa),delete _0x588d1a['wait-time']),_0x588d1a[_0x256030(0x23c)]&&(_0x588d1a[_0x256030(0x1f4)]=_0x588d1a['wait-selector'],delete _0x588d1a[_0x256030(0x23c)]),_0x588d1a['wait-type']&&(_0x588d1a['waitType']=_0x588d1a[_0x256030(0x22d)],delete _0x588d1a['wait-type']),_0x588d1a['full-page']&&(_0x588d1a[_0x256030(0x224)]=_0x588d1a['full-page']==='true',delete _0x588d1a[_0x256030(0x1ff)]),_0x474227[_0x256030(0x1ef)](_0x588d1a);}}return _0x3c1896['actions']=Array[_0x256030(0x1f7)](_0x474227)?_0x474227:[],_0x3c1896['rawContent']=_0x43249c[_0x256030(0x1dd)](),_0x3c1896;}catch(_0xd3d613){return this[_0x256030(0x226)]?.[_0x256030(0x220)](_0x256030(0x1e0),{'error':_0xd3d613[_0x256030(0x245)]}),{'actions':[],'rawContent':_0x43249c[_0x256030(0x1dd)](),'parseError':_0xd3d613[_0x256030(0x245)]};}}['parseAttributes'](_0x29968b){const _0x5c15f0={};if(!_0x29968b)return _0x5c15f0;const _0x236b4b=/([\w-]+)\s*=\s*["']([^"']*)["']/g;let _0x35b6f3;while((_0x35b6f3=_0x236b4b['exec'](_0x29968b))!==null){const _0x3bb027=_0x35b6f3[0x1],_0x577a35=_0x35b6f3[0x2];_0x5c15f0[_0x3bb027]=_0x577a35;}return _0x5c15f0;}[a0_0x11210d(0x203)](){const _0x118218=a0_0x11210d;return[_0x118218(0x24b)];}[a0_0x11210d(0x23e)](_0x23a412){const _0x101dfd=a0_0x11210d,_0x4976b8=[];if(!_0x23a412[_0x101dfd(0x24b)]||!Array[_0x101dfd(0x1f7)](_0x23a412[_0x101dfd(0x24b)])||_0x23a412['actions']['length']===0x0)_0x4976b8['push'](_0x101dfd(0x1e1));else for(const [_0xd8666,_0x5672ca]of _0x23a412[_0x101dfd(0x24b)]['entries']()){if(!_0x5672ca[_0x101dfd(0x212)]){_0x4976b8[_0x101dfd(0x1ef)](_0x101dfd(0x1e4)+(_0xd8666+0x1)+_0x101dfd(0x233));continue;}switch(_0x5672ca[_0x101dfd(0x212)]){case _0x101dfd(0x23a):if(!_0x5672ca[_0x101dfd(0x213)])_0x4976b8['push'](_0x101dfd(0x1e4)+(_0xd8666+0x1)+_0x101dfd(0x22a));else!this[_0x101dfd(0x1eb)](_0x5672ca[_0x101dfd(0x213)])&&_0x4976b8['push'](_0x101dfd(0x1e4)+(_0xd8666+0x1)+':\x20URL\x20not\x20allowed:\x20'+_0x5672ca[_0x101dfd(0x213)]);break;case _0x101dfd(0x225):case _0x101dfd(0x1f3):!_0x5672ca['selector']&&_0x4976b8[_0x101dfd(0x1ef)]('Action\x20'+(_0xd8666+0x1)+':\x20selector\x20is\x20required\x20for\x20'+_0x5672ca['type']);break;case'type':!_0x5672ca['selector']&&_0x4976b8[_0x101dfd(0x1ef)]('Action\x20'+(_0xd8666+0x1)+':\x20selector\x20is\x20required\x20for\x20type');!_0x5672ca[_0x101dfd(0x246)]&&_0x5672ca['text']!==''&&_0x4976b8[_0x101dfd(0x1ef)](_0x101dfd(0x1e4)+(_0xd8666+0x1)+':\x20text\x20is\x20required\x20for\x20type');break;case _0x101dfd(0x211):!_0x5672ca[_0x101dfd(0x1f6)]&&!_0x5672ca[_0x101dfd(0x1f4)]&&_0x4976b8['push']('Action\x20'+(_0xd8666+0x1)+':\x20either\x20wait-time\x20or\x20wait-selector\x20is\x20required');_0x5672ca[_0x101dfd(0x1f6)]&&(_0x5672ca[_0x101dfd(0x1f6)]<0x64||_0x5672ca['waitTime']>0x7530)&&_0x4976b8[_0x101dfd(0x1ef)]('Action\x20'+(_0xd8666+0x1)+':\x20wait-time\x20must\x20be\x20between\x20100\x20and\x2030000\x20milliseconds');break;case _0x101dfd(0x1fa):!_0x5672ca['outputPath']&&_0x4976b8['push']('Action\x20'+(_0xd8666+0x1)+':\x20output-path\x20is\x20required\x20for\x20screenshot');break;case'scroll':if(!_0x5672ca['direction'])_0x4976b8['push']('Action\x20'+(_0xd8666+0x1)+_0x101dfd(0x232));else!['up','down','left','right'][_0x101dfd(0x247)](_0x5672ca['direction'])&&_0x4976b8['push']('Action\x20'+(_0xd8666+0x1)+':\x20invalid\x20scroll\x20direction:\x20'+_0x5672ca[_0x101dfd(0x1e9)]);break;case _0x101dfd(0x21a):break;default:_0x4976b8['push']('Action\x20'+(_0xd8666+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x5672ca['type']);}}return{'valid':_0x4976b8['length']===0x0,'errors':_0x4976b8};}async[a0_0x11210d(0x228)](_0x3da569,_0x109fd3){const _0x2efea3=a0_0x11210d,{actions:_0x496fc2}=_0x3da569,{agentId:_0x234faf,projectDir:_0x413997}=_0x109fd3,_0x54319c=_0x234faf+'-'+(_0x413997||'default'),_0x4a5ab4=[];for(const _0x26a96e of _0x496fc2){try{let _0x530e90;switch(_0x26a96e['type']){case'navigate':_0x530e90=await this['navigate'](_0x26a96e['url'],_0x54319c);break;case _0x2efea3(0x225):_0x530e90=await this[_0x2efea3(0x225)](_0x26a96e[_0x2efea3(0x236)],_0x54319c);break;case _0x2efea3(0x212):_0x530e90=await this['type'](_0x26a96e['selector'],_0x26a96e[_0x2efea3(0x246)],_0x54319c);break;case _0x2efea3(0x211):_0x530e90=await this['wait'](_0x26a96e,_0x54319c);break;case'screenshot':_0x530e90=await this['screenshot'](_0x26a96e['outputPath'],_0x413997,_0x54319c,_0x26a96e);break;case _0x2efea3(0x1f3):_0x530e90=await this[_0x2efea3(0x1f3)](_0x26a96e['selector'],_0x26a96e[_0x2efea3(0x241)]||_0x2efea3(0x246),_0x54319c);break;case'scroll':_0x530e90=await this['scroll'](_0x26a96e,_0x54319c);break;case _0x2efea3(0x21a):_0x530e90=await this[_0x2efea3(0x23d)](_0x54319c);break;default:throw new Error(_0x2efea3(0x1f9)+_0x26a96e[_0x2efea3(0x212)]);}_0x4a5ab4[_0x2efea3(0x1ef)](_0x530e90),this['addToHistory'](_0x26a96e,_0x530e90,_0x234faf);}catch(_0xc85846){const _0x52dc74={'success':![],'action':_0x26a96e[_0x2efea3(0x212)],'error':_0xc85846[_0x2efea3(0x245)],'selector':_0x26a96e['selector']||_0x26a96e[_0x2efea3(0x213)]};_0x4a5ab4[_0x2efea3(0x1ef)](_0x52dc74),this[_0x2efea3(0x204)](_0x26a96e,_0x52dc74,_0x234faf);}}return{'success':!![],'actions':_0x4a5ab4,'executedActions':_0x496fc2[_0x2efea3(0x201)],'toolUsed':_0x2efea3(0x1e7)};}async[a0_0x11210d(0x23a)](_0x387190,_0x1a2ff0){const _0x31dcb0=a0_0x11210d,_0x223406=await this['getBrowser'](_0x1a2ff0),_0x2033f3=await this[_0x31dcb0(0x217)](_0x1a2ff0),_0x357d5c=Date[_0x31dcb0(0x20e)]();try{await _0x2033f3[_0x31dcb0(0x24d)](_0x387190,{'waitUntil':'networkidle0','timeout':this[_0x31dcb0(0x237)]['timeout']});const _0x72afd5=await _0x2033f3['title'](),_0xfa706a=_0x2033f3[_0x31dcb0(0x213)]();return{'success':!![],'action':'navigate','url':_0xfa706a,'originalUrl':_0x387190,'title':_0x72afd5,'loadTime':Date['now']()-_0x357d5c,'message':'Navigated\x20to\x20'+_0x387190};}catch(_0x1c0798){throw new Error(_0x31dcb0(0x22c)+_0x1c0798['message']);}}async[a0_0x11210d(0x225)](_0x1c6793,_0x56c0d1){const _0x1fd64e=a0_0x11210d,_0x3e8e12=await this[_0x1fd64e(0x217)](_0x56c0d1);try{return await _0x3e8e12['waitForSelector'](_0x1c6793,{'timeout':0x1388}),await _0x3e8e12[_0x1fd64e(0x225)](_0x1c6793),{'success':!![],'action':'click','selector':_0x1c6793,'message':_0x1fd64e(0x1f0)+_0x1c6793};}catch(_0x5f1cc8){throw new Error(_0x1fd64e(0x242)+_0x1c6793+':\x20'+_0x5f1cc8['message']);}}async[a0_0x11210d(0x212)](_0x3486b5,_0x2f05d7,_0x28d87b){const _0x19d50d=a0_0x11210d,_0xceb35=await this[_0x19d50d(0x217)](_0x28d87b);try{return await _0xceb35[_0x19d50d(0x22e)](_0x3486b5,{'timeout':0x1388}),await _0xceb35['focus'](_0x3486b5),await _0xceb35['keyboard'][_0x19d50d(0x1f1)](),await _0xceb35[_0x19d50d(0x212)](_0x3486b5,_0x2f05d7),{'success':!![],'action':'type','selector':_0x3486b5,'text':_0x2f05d7,'textLength':_0x2f05d7[_0x19d50d(0x201)],'message':_0x19d50d(0x218)+_0x2f05d7['length']+'\x20characters\x20into\x20'+_0x3486b5};}catch(_0x53dcba){throw new Error('Type\x20failed\x20on\x20'+_0x3486b5+':\x20'+_0x53dcba['message']);}}async[a0_0x11210d(0x211)](_0x3c0c30,_0x26fe51){const _0x2b6778=a0_0x11210d,_0x45f786=await this['getPage'](_0x26fe51);try{if(_0x3c0c30['waitTime'])return await _0x45f786[_0x2b6778(0x1fb)](_0x3c0c30[_0x2b6778(0x1f6)]),{'success':!![],'action':'wait','waitTime':_0x3c0c30[_0x2b6778(0x1f6)],'message':'Waited\x20'+_0x3c0c30[_0x2b6778(0x1f6)]+'ms'};if(_0x3c0c30['waitSelector']){const _0x59a62b=_0x3c0c30[_0x2b6778(0x243)]||_0x2b6778(0x240),_0xf633c6={'timeout':0x2710};return _0x59a62b===_0x2b6778(0x215)?await _0x45f786['waitForSelector'](_0x3c0c30['waitSelector'],{..._0xf633c6,'hidden':!![]}):await _0x45f786['waitForSelector'](_0x3c0c30['waitSelector'],_0xf633c6),{'success':!![],'action':_0x2b6778(0x211),'waitSelector':_0x3c0c30['waitSelector'],'waitType':_0x59a62b,'message':'Waited\x20for\x20'+_0x3c0c30['waitSelector']+'\x20to\x20be\x20'+_0x59a62b};}}catch(_0x4c6827){throw new Error(_0x2b6778(0x21d)+_0x4c6827['message']);}}async['screenshot'](_0x1ae61f,_0xcf4a11,_0x4892bc,_0x4e565d={}){const _0x3695a3=a0_0x11210d,_0x2303f4=await this[_0x3695a3(0x217)](_0x4892bc);try{const _0xb3f41e=_0xcf4a11?a0_0x212c90[_0x3695a3(0x238)](_0xcf4a11,_0x1ae61f):a0_0x212c90['resolve'](_0x1ae61f),_0x284fa3=a0_0x212c90['dirname'](_0xb3f41e);await a0_0x12bb68[_0x3695a3(0x200)](_0x284fa3,{'recursive':!![]});const _0x3dbf4c={'path':_0xb3f41e,'type':'png'};_0x4e565d[_0x3695a3(0x224)]&&(_0x3dbf4c['fullPage']=!![]);await _0x2303f4[_0x3695a3(0x1fa)](_0x3dbf4c);const _0x51167c=await a0_0x12bb68['stat'](_0xb3f41e);if(_0x51167c['size']>this[_0x3695a3(0x229)])throw new Error(_0x3695a3(0x230)+_0x51167c[_0x3695a3(0x1e5)]+_0x3695a3(0x1e3)+this['maxScreenshotSize']+')');return{'success':!![],'action':_0x3695a3(0x1fa),'outputPath':a0_0x212c90['relative'](_0xcf4a11||process[_0x3695a3(0x1de)](),_0xb3f41e),'size':_0x51167c['size'],'fullPage':!!_0x4e565d[_0x3695a3(0x224)],'message':_0x3695a3(0x20b)+_0x1ae61f};}catch(_0x7d2da0){throw new Error('Screenshot\x20failed:\x20'+_0x7d2da0[_0x3695a3(0x245)]);}}async[a0_0x11210d(0x1f3)](_0x25dd62,_0x3cc65a,_0x10d073){const _0x32f4b2=a0_0x11210d,_0x38fde7=await this['getPage'](_0x10d073);try{await _0x38fde7['waitForSelector'](_0x25dd62,{'timeout':0x1388});let _0x45f118;return _0x3cc65a==='text'?_0x45f118=await _0x38fde7[_0x32f4b2(0x1db)](_0x25dd62,_0x53f2d5=>_0x53f2d5[_0x32f4b2(0x1ea)]['trim']()):_0x45f118=await _0x38fde7[_0x32f4b2(0x1db)](_0x25dd62,(_0x402bc3,_0x2fdaa7)=>_0x402bc3[_0x32f4b2(0x239)](_0x2fdaa7),_0x3cc65a),{'success':!![],'action':'extract','selector':_0x25dd62,'attribute':_0x3cc65a,'data':_0x45f118,'message':'Extracted\x20'+_0x3cc65a+'\x20from\x20'+_0x25dd62};}catch(_0x1b2a8e){throw new Error(_0x32f4b2(0x221)+_0x25dd62+':\x20'+_0x1b2a8e[_0x32f4b2(0x245)]);}}async[a0_0x11210d(0x1f2)](_0x277ad1,_0x205421){const _0x5979cd=a0_0x11210d,_0x155841=await this['getPage'](_0x205421);try{const {direction:_0x238faa,pixels:pixels=0x12c,selector:_0xad82f}=_0x277ad1;return _0xad82f?await _0x155841['evaluate']((_0x21ee3b,_0x396ec8,_0x2791a3)=>{const _0x15f9c6=a0_0x1f60,_0x50efa1=document[_0x15f9c6(0x1fe)](_0x21ee3b);if(_0x50efa1){if(_0x396ec8==='down')_0x50efa1['scrollTop']+=_0x2791a3;else{if(_0x396ec8==='up')_0x50efa1[_0x15f9c6(0x210)]-=_0x2791a3;else{if(_0x396ec8==='right')_0x50efa1[_0x15f9c6(0x1e8)]+=_0x2791a3;else{if(_0x396ec8===_0x15f9c6(0x214))_0x50efa1[_0x15f9c6(0x1e8)]-=_0x2791a3;}}}}},_0xad82f,_0x238faa,pixels):await _0x155841['evaluate']((_0x19422b,_0x5d333d)=>{const _0x36f3aa=a0_0x1f60;if(_0x19422b===_0x36f3aa(0x208))window['scrollBy'](0x0,_0x5d333d);else{if(_0x19422b==='up')window['scrollBy'](0x0,-_0x5d333d);else{if(_0x19422b==='right')window[_0x36f3aa(0x1fc)](_0x5d333d,0x0);else{if(_0x19422b===_0x36f3aa(0x214))window['scrollBy'](-_0x5d333d,0x0);}}}},_0x238faa,pixels),{'success':!![],'action':'scroll','direction':_0x238faa,'pixels':pixels,'selector':_0xad82f||_0x5979cd(0x21e),'message':'Scrolled\x20'+_0x238faa+'\x20by\x20'+pixels+'px'};}catch(_0x31b42e){throw new Error('Scroll\x20failed:\x20'+_0x31b42e[_0x5979cd(0x245)]);}}async[a0_0x11210d(0x22f)](_0x4652e8){const _0x35511c=a0_0x11210d;if(this[_0x35511c(0x223)]['has'](_0x4652e8)){const _0x37bd59=this['browserInstances'][_0x35511c(0x23f)](_0x4652e8);if(!_0x37bd59[_0x35511c(0x1e7)]['isConnected']())this['browserInstances']['delete'](_0x4652e8);else return _0x37bd59[_0x35511c(0x1e7)];}const _0x3627ab=await a0_0x97542c['launch']({'headless':this['browserConfig']['headless'],'args':['--no-sandbox','--disable-setuid-sandbox',_0x35511c(0x202),_0x35511c(0x248)]}),_0x2b3b34=await _0x3627ab['newPage']();return await _0x2b3b34[_0x35511c(0x24e)](this[_0x35511c(0x237)]['viewport']),await _0x2b3b34['setUserAgent'](this['browserConfig']['userAgent']),this[_0x35511c(0x223)]['set'](_0x4652e8,{'browser':_0x3627ab,'page':_0x2b3b34,'created':Date[_0x35511c(0x20e)]()}),setTimeout(()=>{const _0x1bca76=_0x35511c;this[_0x1bca76(0x1e2)](_0x4652e8);},0xa*0x3c*0x3e8),_0x3627ab;}async['getPage'](_0x4ebaed){const _0x5a087a=a0_0x11210d;return await this[_0x5a087a(0x22f)](_0x4ebaed),this[_0x5a087a(0x223)]['get'](_0x4ebaed)[_0x5a087a(0x21e)];}async['closeBrowser'](_0x10e555){const _0x4c337b=a0_0x11210d,_0x175ae5=this['browserInstances']['get'](_0x10e555);if(_0x175ae5)try{return await _0x175ae5['browser']['close'](),this[_0x4c337b(0x223)][_0x4c337b(0x23b)](_0x10e555),{'success':!![],'action':'close','browserKey':_0x10e555,'message':'Browser\x20instance\x20closed'};}catch(_0x34477a){throw new Error('Failed\x20to\x20close\x20browser:\x20'+_0x34477a[_0x4c337b(0x245)]);}return{'success':!![],'action':_0x4c337b(0x21a),'browserKey':_0x10e555,'message':'Browser\x20instance\x20not\x20found\x20(already\x20closed)'};}async['cleanupBrowser'](_0x1905a9){const _0x2ab891=a0_0x11210d,_0x2effe7=this['browserInstances']['get'](_0x1905a9);if(_0x2effe7)try{await _0x2effe7['browser'][_0x2ab891(0x21a)]();}catch(_0x6e1a5c){}finally{this['browserInstances'][_0x2ab891(0x23b)](_0x1905a9);}}[a0_0x11210d(0x1eb)](_0x59f3f6){const _0x4092ec=a0_0x11210d;try{const _0x47fd7d=new URL(_0x59f3f6),_0x3feaf3=_0x47fd7d['hostname']['toLowerCase']();if(this['blockedDomains'][_0x4092ec(0x219)](_0x5e69d2=>_0x3feaf3[_0x4092ec(0x247)](_0x5e69d2[_0x4092ec(0x24a)]())))return![];if(this['allowedDomains']&&this['allowedDomains']['length']>0x0)return this['allowedDomains']['some'](_0x4b8735=>_0x3feaf3['includes'](_0x4b8735[_0x4092ec(0x24a)]()));return!![];}catch{return![];}}['addToHistory'](_0x3a321d,_0xcd2b4f,_0x48fa2f){const _0x35b6cd=a0_0x11210d,_0x2d97c9={'timestamp':new Date()['toISOString'](),'agentId':_0x48fa2f,'action':_0x3a321d['type'],'selector':_0x3a321d[_0x35b6cd(0x236)]||_0x3a321d['url'],'success':_0xcd2b4f['success'],'loadTime':_0xcd2b4f['loadTime']||0x0};this[_0x35b6cd(0x20d)]['push'](_0x2d97c9),this['operationHistory']['length']>0x64&&(this[_0x35b6cd(0x20d)]=this[_0x35b6cd(0x20d)][_0x35b6cd(0x207)](-0x64));}[a0_0x11210d(0x24f)](){const _0x517321=a0_0x11210d;return['navigate',_0x517321(0x225),'type','wait',_0x517321(0x1fa),_0x517321(0x1f3),'scroll',_0x517321(0x21a)];}['getParameterSchema'](){const _0x3a1a56=a0_0x11210d;return{'type':_0x3a1a56(0x1ee),'properties':{'actions':{'type':_0x3a1a56(0x244),'minItems':0x1,'items':{'type':'object','properties':{'type':{'type':'string','enum':this[_0x3a1a56(0x24f)]()},'url':{'type':'string'},'selector':{'type':'string'},'text':{'type':_0x3a1a56(0x1df)},'outputPath':{'type':_0x3a1a56(0x1df)},'waitTime':{'type':'integer'},'waitSelector':{'type':_0x3a1a56(0x1df)},'attribute':{'type':_0x3a1a56(0x1df)},'direction':{'type':'string'},'pixels':{'type':'integer'}},'required':['type']}}},'required':[_0x3a1a56(0x24b)]};}async['cleanup'](_0xd99fdb){const _0x1a91e9=a0_0x11210d;for(const [_0x5da74d]of this['browserInstances']){await this[_0x1a91e9(0x1e2)](_0x5da74d);}}[a0_0x11210d(0x22b)](_0x579aca=null){const _0x2cd5a6=a0_0x11210d;if(_0x579aca)return this['operationHistory']['filter'](_0x50a3e9=>_0x50a3e9[_0x2cd5a6(0x21c)]===_0x579aca);return[...this['operationHistory']];}}export default BrowserTool;
@@ -1 +1 @@
1
- const a0_0x2992b2=a0_0xb65c;(function(_0x4c0f20,_0x2f4e95){const _0x30aa18=a0_0xb65c,_0x4a4a79=_0x4c0f20();while(!![]){try{const _0x8acd44=parseInt(_0x30aa18(0x158))/0x1*(-parseInt(_0x30aa18(0x16c))/0x2)+-parseInt(_0x30aa18(0x167))/0x3+-parseInt(_0x30aa18(0x179))/0x4+parseInt(_0x30aa18(0x193))/0x5*(-parseInt(_0x30aa18(0x13a))/0x6)+-parseInt(_0x30aa18(0x157))/0x7*(parseInt(_0x30aa18(0x156))/0x8)+parseInt(_0x30aa18(0x150))/0x9*(-parseInt(_0x30aa18(0x19e))/0xa)+parseInt(_0x30aa18(0x14e))/0xb;if(_0x8acd44===_0x2f4e95)break;else _0x4a4a79['push'](_0x4a4a79['shift']());}catch(_0x3be4c8){_0x4a4a79['push'](_0x4a4a79['shift']());}}}(a0_0x536d,0xadfea));import{BaseTool}from'./baseTool.js';import a0_0x88ea6f from'../utilities/tagParser.js';function a0_0xb65c(_0x480d02,_0x54d01e){_0x480d02=_0x480d02-0x13a;const _0x536dfa=a0_0x536d();let _0xb65c3e=_0x536dfa[_0x480d02];if(a0_0xb65c['MfUcNF']===undefined){var _0x237e42=function(_0x2d1ab1){const _0x2a159d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x88ea6f='',_0x106143='';for(let _0x4184a1=0x0,_0x243c60,_0x664fec,_0x4489cd=0x0;_0x664fec=_0x2d1ab1['charAt'](_0x4489cd++);~_0x664fec&&(_0x243c60=_0x4184a1%0x4?_0x243c60*0x40+_0x664fec:_0x664fec,_0x4184a1++%0x4)?_0x88ea6f+=String['fromCharCode'](0xff&_0x243c60>>(-0x2*_0x4184a1&0x6)):0x0){_0x664fec=_0x2a159d['indexOf'](_0x664fec);}for(let _0x4771dd=0x0,_0x1ccad6=_0x88ea6f['length'];_0x4771dd<_0x1ccad6;_0x4771dd++){_0x106143+='%'+('00'+_0x88ea6f['charCodeAt'](_0x4771dd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x106143);};a0_0xb65c['PbCBCq']=_0x237e42,a0_0xb65c['DuNqxk']={},a0_0xb65c['MfUcNF']=!![];}const _0x3de8b7=_0x536dfa[0x0],_0x3b707a=_0x480d02+_0x3de8b7,_0x285f05=a0_0xb65c['DuNqxk'][_0x3b707a];return!_0x285f05?(_0xb65c3e=a0_0xb65c['PbCBCq'](_0xb65c3e),a0_0xb65c['DuNqxk'][_0x3b707a]=_0xb65c3e):_0xb65c3e=_0x285f05,_0xb65c3e;}function a0_0x536d(){const _0x577231=['oIbVDxrWDxqTBw9KzsbTDxn0igjLihn1Bw1HCNKSigrLDgfPBgvKlcbVCIbYzwnVBw1LBMrHDgLVBNm','rMfPBgvKihrVihbHCNnLignSB25LigrLDgvJDgLVBIbWyxjHBwv0zxjZoIa','ywn0Aw9UCW','B2jQzwn0','kIOVkI5ZCgvJlMPZ','DMfSAwrHDgvszwfKqwnJzxnZ','BgLUzunVDw50','q2XVBMuGzgv0zwn0B3iGAw5PDgLHBgL6zwq','Aw5ZDgfUy2vdB3vUDa','zgvIDwC','BwLUlxrVA2vUCW','u3rHCNrPBMCGy2XVBMuGzgv0zwn0Aw9U','Bg9Nz2vY','nvn0DfvTvq','y2XVBMvezxrLy3rVCG','ChjPB3jPDhKTzMLSDgvY','zgvMyxvSDfnPBwLSyxjPDhLuAhjLC2HVBgq','y3DK','zgvMyxvSDe1PBLrVA2vUCW','qwn0Aw9Uia','C3bSAxq','CMvMywn0B3jPBMDbzhzPy2u','C3vTBwfYEq','zM9YBwf0u3vTBwfYEu91Dhb1Da','mti4oty1meH5Dxn2AG','BwfW','DhjPBq','z2v0u3vWCg9YDgvKqwn0Aw9UCW','zMLSzq','ntC1ntaYy0vPBK1d','y3jLyxrLuMvSyxrPDMvqyxrO','B3v0Chv0tw9Kzq','Bwf4lxjLC3vSDhm','rMfPBgvKihrVigrLDgvJDcbJBg9UzxmGAw4G','C3rYyxrLz3K','C2LTAwXHCML0Es10AhjLC2HVBgq','Bwv0CMLJCW','B3v0Chv0lw1Vzgu','CMvJB21Tzw5KyxrPB25Z','BNvTyMvY','zgv0zwn0q2XVBMvZ','C3rHCNrmAw5L','C2XPy2u','kIOVkI5JANm','Dg90ywXgAwXLCW','BwLUvg9Rzw5Z','Bwf4uMvZDwX0CW','Aw5JBhvKzxm','oIbTAw4TBgLUzxmGBxvZDcbIzsbIzxr3zwvUideGyw5KideWma','ndGZotKWndn4Eer0qwm','kIOVyNvPBgqVkIO','oxHZC0zPCa','AM9PBG','kIOVkI50C3G','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','ChjPB3jPDhLgAwX0zxi','CMvHC29U','mtKZndm3nLHeD3fMBG','mJHNvffdENK','mtKXBhfpBw9j','CMvXDwLYzxnqCM9Qzwn0','BwvKAxvT','zgLYzwn0B3j5qwnJzxnZtwfUywDLCG','Aw5ZDgfUy2vZ','BgvUz3rO','tM8GzMLSzxmGzM91BMqGB3iGBM8Gy2XVBMvZigrLDgvJDgvK','kIOVBM9Kzv9TB2r1BgvZlYOQ','ChjPB3jPDhLdB3vUDhm','zxjYB3i','AxnbyNnVBhv0zq','ChvZAa','Bg93','lI4Vyw5HBhL6zxjZl2nVzgvdBg9UzurLDgvJDg9Yl2LUzgv4lMPZ','q2XVBMvezxrLy3rPB24GDg9VBcbWyxjZAw5NihbHCMfTzxrLCNm','mZe4mZa4mvHPu3vzrq','BwLUtgLUzxm','DgLTzw91Da','BwLUlwXPBMvZ','kIOVkI5QCW','mtqZodz6CxHtteu','C3rYAw5N','C2LTAwXHCML0EvrOCMvZAg9Sza','z2v0q2XVBMvezxrLy3rVCG','Bwf4rMLSzvnPEMu','y2XVBMvZ','z2v0rgvZy3jPChrPB24','zgLYzwn0B3j5','Aw1Wywn0u2nVCMu','zM9YBwf0rgv0ywLSzwrpDxrWDxq','kIOVkI50CW','kIOVzgLZDc8QkG','Dg90ywXdBg9Uzxm','mJqXmdG0vM95EMXd','y29Kzq','BwvZC2fNzq','zw5KtgLUzq','kIOVkI5TANm','DhLWzq','zgv0ywLSzwq','s0iGCgvYigzPBguklsbbBMfSExnPCYb0Aw1LB3v0oIa','zgv0zwn0lwnSB25LCW','zgvMyxvSDe1PBKXPBMvZ','ChjPB3jPDhK','CNvU','C3vNz2vZDgvKtMfTzq'];a0_0x536d=function(){return _0x577231;};return a0_0x536d();}import a0_0x106143 from'../utilities/directoryAccessManager.js';import a0_0x4184a1 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class CloneDetectionTool extends BaseTool{constructor(_0x243c60={},_0x664fec=null){const _0x1fd5ad=a0_0xb65c;super(_0x243c60,_0x664fec),this[_0x1fd5ad(0x159)]=!![],this['isAsync']=![],this[_0x1fd5ad(0x169)]=_0x243c60['timeout']||0x1d4c0,this['maxConcurrentOperations']=_0x243c60['maxConcurrentOperations']||0x1,this[_0x1fd5ad(0x198)]=_0x243c60[_0x1fd5ad(0x198)]||0x32,this[_0x1fd5ad(0x182)]=_0x243c60['defaultMinLines']||0x5,this[_0x1fd5ad(0x196)]=_0x243c60[_0x1fd5ad(0x196)]||0.85,this['maxFileSize']=_0x243c60[_0x1fd5ad(0x170)]||0x7a120,this['directoryAccessManager']=new a0_0x106143(_0x243c60,_0x664fec),this['cloneDetector']=null;}[a0_0x2992b2(0x172)](){const _0x32aa17=a0_0x2992b2;return'\x0aCode\x20Clone\x20Detection\x20Tool:\x20Find\x20duplicated\x20code\x20for\x20refactoring\x20opportunities\x0a\x0aThis\x20tool\x20identifies\x20exact\x20and\x20similar\x20code\x20patterns\x20(code\x20clones)\x20across\x20your\x20codebase\x20to\x20help\x20reduce\x20duplication,\x20improve\x20maintainability,\x20and\x20identify\x20refactoring\x20opportunities.\x0a\x0aWHAT\x20IT\x20DETECTS:\x0a-\x20Exact\x20Clones\x20(Type\x201):\x20Identical\x20code\x20with\x20different\x20formatting/comments\x0a-\x20Similar\x20Clones\x20(Type\x202/3):\x20Structurally\x20similar\x20code\x20with\x20minor\x20variations\x0a\x0aSUPPORTED\x20LANGUAGES:\x0a-\x20JavaScript\x20(.js,\x20.jsx,\x20.mjs,\x20.cjs)\x0a-\x20TypeScript\x20(.ts,\x20.tsx)\x0a-\x20Vue\x20(.vue)\x0a\x0aUSAGE\x20-\x20XML\x20FORMAT:\x0a\x0aDetect\x20clones\x20in\x20entire\x20directory:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20/>\x0a[/tool]\x0a\x0aDetect\x20clones\x20in\x20specific\x20directory:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src/services\x22\x20/>\x0a[/tool]\x0a\x0aCustom\x20sensitivity\x20(lower\x20minTokens\x20=\x20more\x20sensitive):\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src\x22\x20min-tokens=\x2230\x22\x20min-lines=\x225\x22\x20/>\x0a[/tool]\x0a\x0aFilter\x20by\x20priority:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20priority-filter=\x22high\x22\x20max-results=\x225\x22\x20/>\x0a[/tool]\x0a\x0aGet\x20summary\x20only:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20output-mode=\x22summary\x22\x20/>\x0a[/tool]\x0a\x0aUSAGE\x20-\x20JSON\x20FORMAT:\x0a\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x22type\x22:\x20\x22detect-clones\x22,\x0a\x20\x20\x20\x20\x20\x20\x22directory\x22:\x20\x22src\x22,\x0a\x20\x20\x20\x20\x20\x20\x22minTokens\x22:\x2050,\x0a\x20\x20\x20\x20\x20\x20\x22minLines\x22:\x205,\x0a\x20\x20\x20\x20\x20\x20\x22similarityThreshold\x22:\x200.85,\x0a\x20\x20\x20\x20\x20\x20\x22priorityFilter\x22:\x20\x22high\x22,\x0a\x20\x20\x20\x20\x20\x20\x22maxResults\x22:\x2010,\x0a\x20\x20\x20\x20\x20\x20\x22outputMode\x22:\x20\x22summary\x22\x0a\x20\x20\x20\x20}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aPARAMETERS:\x0a-\x20directory:\x20Directory\x20to\x20analyze\x20(required)\x0a-\x20min-tokens:\x20Minimum\x20token\x20count\x20(default:\x2050,\x20lower\x20=\x20more\x20sensitive)\x0a-\x20min-lines:\x20Minimum\x20line\x20count\x20(default:\x205)\x0a-\x20similarity-threshold:\x200-1\x20similarity\x20threshold\x20(default:\x200.85)\x0a-\x20priority-filter:\x20Filter\x20by\x20priority\x20(high/medium/low,\x20optional)\x0a-\x20max-results:\x20Maximum\x20number\x20of\x20clones\x20to\x20return\x20(optional)\x0a-\x20output-mode:\x20summary|detailed|recommendations\x20(default:\x20detailed)\x0a\x0aOUTPUT\x20FORMAT:\x0aReturns\x20clone\x20detection\x20results\x20with:\x0a-\x20summary:\x20Overall\x20statistics\x20(total\x20clones,\x20duplication\x20%,\x20priority\x20breakdown)\x0a-\x20clones:\x20Array\x20of\x20detected\x20clone\x20groups\x0a\x20\x20-\x20id:\x20Clone\x20identifier\x0a\x20\x20-\x20type:\x20exact\x20|\x20similar\x0a\x20\x20-\x20confidence:\x20Detection\x20confidence\x20(0-1)\x0a\x20\x20-\x20instances:\x20Array\x20of\x20code\x20locations\x20with\x20file\x20paths\x20and\x20line\x20numbers\x0a\x20\x20-\x20metrics:\x20tokenCount,\x20lineCount,\x20instanceCount,\x20impactScore,\x20filesCovered\x0a\x20\x20-\x20refactoringAdvice:\x0a\x20\x20\x20\x20-\x20priority:\x20high\x20|\x20medium\x20|\x20low\x0a\x20\x20\x20\x20-\x20strategy:\x20extract-function\x20|\x20extract-class\x20|\x20extract-module\x20|\x20extract-constant\x0a\x20\x20\x20\x20-\x20suggestedName:\x20Recommended\x20name\x20for\x20extracted\x20code\x0a\x20\x20\x20\x20-\x20reasoning:\x20Why\x20this\x20refactoring\x20is\x20recommended\x0a\x20\x20\x20\x20-\x20estimatedEffort:\x20low\x20|\x20medium\x20|\x20high\x0a\x20\x20\x20\x20-\x20benefits:\x20Array\x20of\x20benefits\x0a\x20\x20\x20\x20-\x20actionableSteps:\x20Step-by-step\x20refactoring\x20instructions\x0a\x0aOUTPUT\x20MODES:\x0a-\x20summary:\x20High-level\x20overview\x20only\x20(duplication\x20%,\x20top\x205\x20clones)\x0a-\x20detailed:\x20Full\x20clone\x20details\x20with\x20code\x20snippets\x20(default)\x0a-\x20recommendations:\x20Refactoring\x20priorities\x20with\x20actionable\x20steps\x0a\x0aDETECTION\x20ALGORITHM:\x0a-\x20Uses\x20AST\x20(Abstract\x20Syntax\x20Tree)\x20parsing\x20via\x20Babel\x0a-\x20Token-based\x20similarity\x20with\x20normalization\x0a-\x20Longest\x20Common\x20Subsequence\x20(LCS)\x20algorithm\x20for\x20similarity\x0a-\x20Configurable\x20sensitivity\x20and\x20thresholds\x0a\x0aEXAMPLES:\x0a\x0aFind\x20all\x20clones\x20in\x20project:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20/>\x0a[/tool]\x0a\x0aHigh-priority\x20refactoring\x20opportunities\x20only:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src\x22\x20priority-filter=\x22high\x22\x20max-results=\x2210\x22\x20/>\x0a[/tool]\x0a\x0aMore\x20sensitive\x20detection\x20(finds\x20smaller\x20clones):\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20min-tokens=\x2230\x22\x20similarity-threshold=\x220.80\x22\x20/>\x0a[/tool]\x0a\x0aQuick\x20overview:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20output-mode=\x22summary\x22\x20/>\x0a[/tool]\x0a\x0aLIMITATIONS:\x0a-\x20Analyzes\x20JavaScript/TypeScript\x20family\x20only\x0a-\x20Performance\x20depends\x20on\x20codebase\x20size\x20(500ms\x20per\x20file\x20typical)\x0a-\x20Maximum\x20file\x20size:\x20'+Math['round'](this['maxFileSize']/0x400)+_0x32aa17(0x180)+this[_0x32aa17(0x169)]/0x3e8+'\x20seconds\x0a\x0aUSE\x20CASES:\x0a-\x20Identify\x20refactoring\x20opportunities\x20before\x20code\x20review\x0a-\x20Track\x20technical\x20debt\x20and\x20code\x20duplication\x20metrics\x0a-\x20Find\x20candidates\x20for\x20DRY\x20(Don\x27t\x20Repeat\x20Yourself)\x20refactoring\x0a-\x20Prioritize\x20maintenance\x20work\x20by\x20impact\x20score\x0a\x20\x20\x20\x20';}['parseParameters'](_0x4489cd){const _0x3eda7e=a0_0x2992b2;try{const _0x4771dd={},_0x1ccad6=[];this[_0x3eda7e(0x192)]?.[_0x3eda7e(0x18f)](_0x3eda7e(0x166),{'contentLength':_0x4489cd['length'],'contentPreview':_0x4489cd['substring'](0x0,0xc8)});const _0x123377=/<detect-clones\s+(.+?)\/>/g;let _0x221ae8;while((_0x221ae8=_0x123377['exec'](_0x4489cd))!==null){const _0x148b93=_0x221ae8[0x1]['trim'](),_0x3f4b43=new a0_0x88ea6f(),_0x3ff14c=_0x3f4b43['parseAttributes'](_0x148b93),_0x28f4d2={'type':'detect-clones',..._0x3ff14c};_0x28f4d2[_0x3eda7e(0x190)]&&(_0x28f4d2['minTokens']=parseInt(_0x28f4d2[_0x3eda7e(0x190)],0xa),delete _0x28f4d2['min-tokens']),_0x28f4d2[_0x3eda7e(0x16a)]&&(_0x28f4d2[_0x3eda7e(0x168)]=parseInt(_0x28f4d2['min-lines'],0xa),delete _0x28f4d2['min-lines']),_0x28f4d2[_0x3eda7e(0x140)]&&(_0x28f4d2['similarityThreshold']=parseFloat(_0x28f4d2[_0x3eda7e(0x140)]),delete _0x28f4d2['similarity-threshold']),_0x28f4d2[_0x3eda7e(0x195)]&&(_0x28f4d2['priorityFilter']=_0x28f4d2[_0x3eda7e(0x195)],delete _0x28f4d2[_0x3eda7e(0x195)]),_0x28f4d2['max-results']&&(_0x28f4d2[_0x3eda7e(0x14b)]=parseInt(_0x28f4d2[_0x3eda7e(0x13d)],0xa),delete _0x28f4d2['max-results']),_0x28f4d2[_0x3eda7e(0x142)]&&(_0x28f4d2['outputMode']=_0x28f4d2[_0x3eda7e(0x142)],delete _0x28f4d2[_0x3eda7e(0x142)]),_0x1ccad6['push'](_0x28f4d2);}return _0x4771dd['actions']=_0x1ccad6,_0x4771dd['rawContent']=_0x4489cd[_0x3eda7e(0x1a0)](),this[_0x3eda7e(0x192)]?.['debug']('Parsed\x20CloneDetection\x20tool\x20parameters',{'totalActions':_0x1ccad6['length'],'actionTypes':_0x1ccad6['map'](_0x4a0c69=>_0x4a0c69['type'])}),_0x4771dd;}catch(_0x16736d){throw new Error(_0x3eda7e(0x187)+_0x16736d[_0x3eda7e(0x17b)]);}}[a0_0x2992b2(0x153)](){const _0x5a5688=a0_0x2992b2;return[_0x5a5688(0x188)];}['customValidateParameters'](_0x1a5120){const _0x460044=a0_0x2992b2,_0x10205d=[];if(!_0x1a5120[_0x460044(0x188)]||!Array['isArray'](_0x1a5120[_0x460044(0x188)])||_0x1a5120[_0x460044(0x188)]['length']===0x0)_0x10205d[_0x460044(0x163)]('At\x20least\x20one\x20action\x20is\x20required');else for(const [_0x18050e,_0x5daceb]of _0x1a5120['actions']['entries']()){if(!_0x5daceb['type']){_0x10205d['push'](_0x460044(0x199)+(_0x18050e+0x1)+':\x20type\x20is\x20required');continue;}_0x5daceb['type']==='detect-clones'?(!_0x5daceb['directory']&&_0x10205d[_0x460044(0x163)](_0x460044(0x199)+(_0x18050e+0x1)+':\x20directory\x20is\x20required\x20for\x20detect-clones'),_0x5daceb[_0x460044(0x14a)]!==undefined&&(_0x5daceb[_0x460044(0x14a)]<0xa||_0x5daceb['minTokens']>0x3e8)&&_0x10205d[_0x460044(0x163)](_0x460044(0x199)+(_0x18050e+0x1)+':\x20min-tokens\x20must\x20be\x20between\x2010\x20and\x201000'),_0x5daceb[_0x460044(0x168)]!==undefined&&(_0x5daceb['minLines']<0x1||_0x5daceb['minLines']>0x64)&&_0x10205d['push'](_0x460044(0x199)+(_0x18050e+0x1)+_0x460044(0x14d)),_0x5daceb[_0x460044(0x16e)]!==undefined&&(_0x5daceb['similarityThreshold']<0.5||_0x5daceb['similarityThreshold']>0x1)&&_0x10205d['push']('Action\x20'+(_0x18050e+0x1)+':\x20similarity-threshold\x20must\x20be\x20between\x200.5\x20and\x201.0'),_0x5daceb[_0x460044(0x154)]&&!['high',_0x460044(0x15a),_0x460044(0x164)][_0x460044(0x14c)](_0x5daceb['priorityFilter'])&&_0x10205d[_0x460044(0x163)]('Action\x20'+(_0x18050e+0x1)+':\x20priority-filter\x20must\x20be\x20high,\x20medium,\x20or\x20low'),_0x5daceb[_0x460044(0x13c)]&&!['summary',_0x460044(0x17f),_0x460044(0x143)][_0x460044(0x14c)](_0x5daceb['outputMode'])&&_0x10205d[_0x460044(0x163)](_0x460044(0x199)+(_0x18050e+0x1)+_0x460044(0x186))):_0x10205d[_0x460044(0x163)](_0x460044(0x199)+(_0x18050e+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x5daceb[_0x460044(0x17e)]);}return{'valid':_0x10205d[_0x460044(0x15d)]===0x0,'errors':_0x10205d};}async['execute'](_0x27cd7c,_0x1668bb){const _0x56816d=a0_0x2992b2,{actions:_0x3440bc}=_0x27cd7c,{projectDir:_0x54e421,agentId:_0x477006,directoryAccess:_0x3cf7b0}=_0x1668bb,_0x2288c1=_0x3cf7b0||this['directoryAccessManager']['createDirectoryAccess']({'workingDirectory':_0x54e421||process['cwd'](),'writeEnabledDirectories':[],'readOnlyDirectories':[_0x54e421||process[_0x56816d(0x197)]()],'restrictToProject':!![]}),_0x1d7f58=this['directoryAccessManager']['getWorkingDirectory'](_0x2288c1),_0x25336f=[];for(const _0x1fea95 of _0x3440bc){try{if(_0x1fea95[_0x56816d(0x17e)]==='detect-clones'){const _0x1b56dc=await this[_0x56816d(0x145)](_0x1fea95['directory'],_0x1d7f58,_0x2288c1,_0x1fea95);_0x25336f[_0x56816d(0x163)](_0x1b56dc);}else throw new Error('Unknown\x20action\x20type:\x20'+_0x1fea95[_0x56816d(0x17e)]);}catch(_0x5128d3){this['logger']?.[_0x56816d(0x161)]('Clone\x20detection\x20action\x20failed',{'action':_0x1fea95['type'],'error':_0x5128d3[_0x56816d(0x17b)]}),_0x25336f[_0x56816d(0x163)]({'directory':_0x1fea95[_0x56816d(0x173)],'error':_0x5128d3['message'],'success':![]});}}return{'success':!![],'results':_0x25336f,'toolUsed':'clonedetection'};}async['detectClones'](_0x40a5a9,_0x4c2e15,_0x25542f,_0x468127={}){const _0x14e33f=a0_0x2992b2,_0x5f27b9=a0_0x4184a1[_0x14e33f(0x162)](_0x40a5a9)?a0_0x4184a1['normalize'](_0x40a5a9):a0_0x4184a1['resolve'](_0x4c2e15,_0x40a5a9),_0x552924=this[_0x14e33f(0x15b)][_0x14e33f(0x18b)](_0x5f27b9,_0x25542f);if(!_0x552924['allowed'])throw new Error('Read\x20access\x20denied:\x20'+_0x552924[_0x14e33f(0x155)]);try{const _0x4630b2=await this['getCloneDetector'](),_0x52bf59={'minTokens':_0x468127[_0x14e33f(0x14a)]||this['defaultMinTokens'],'minLines':_0x468127[_0x14e33f(0x168)]||this['defaultMinLines'],'similarityThreshold':_0x468127[_0x14e33f(0x16e)]||this['defaultSimilarityThreshold'],'include':['**/*.js','**/*.jsx',_0x14e33f(0x17d),_0x14e33f(0x148),_0x14e33f(0x176),_0x14e33f(0x152),'**/*.vue'],'exclude':[_0x14e33f(0x15f),_0x14e33f(0x177),_0x14e33f(0x14f),'**/*.test.js',_0x14e33f(0x18a)],'maxFileSize':this['maxFileSize']};this[_0x14e33f(0x192)]?.['info'](_0x14e33f(0x191),{'directory':_0x5f27b9,'config':_0x52bf59});const _0x5c9650=await _0x4630b2[_0x14e33f(0x184)](_0x5f27b9,null);if(!_0x5c9650)return{'directory':this[_0x14e33f(0x15b)][_0x14e33f(0x13b)](_0x5f27b9,_0x25542f),'fullPath':_0x5f27b9,'success':!![],'summary':{'totalFiles':0x0,'totalClones':0x0,'duplicationPercentage':0x0},'clones':[],'message':_0x14e33f(0x15e)};let _0x1cf37b=_0x5c9650[_0x14e33f(0x171)];_0x468127[_0x14e33f(0x154)]&&(_0x1cf37b=_0x1cf37b['filter'](_0x213dd7=>_0x213dd7[_0x14e33f(0x19b)][_0x14e33f(0x183)]===_0x468127['priorityFilter']));_0x468127[_0x14e33f(0x14b)]&&(_0x1cf37b=_0x1cf37b[_0x14e33f(0x147)](0x0,_0x468127[_0x14e33f(0x14b)]));const _0x1ccd6b=_0x468127[_0x14e33f(0x13c)]||_0x14e33f(0x17f);if(_0x1ccd6b===_0x14e33f(0x19c))return this[_0x14e33f(0x19d)](_0x5c9650,_0x1cf37b,_0x5f27b9,_0x25542f);else return _0x1ccd6b===_0x14e33f(0x143)?this['formatRecommendationsOutput'](_0x5c9650,_0x1cf37b,_0x5f27b9,_0x25542f):this[_0x14e33f(0x175)](_0x5c9650,_0x1cf37b,_0x5f27b9,_0x25542f);}catch(_0x237723){throw new Error(_0x14e33f(0x13e)+_0x40a5a9+':\x20'+_0x237723['message']);}}['formatSummaryOutput'](_0x178808,_0x172087,_0x26bdf9,_0x3cec0b){const _0x308e4a=a0_0x2992b2;return{'directory':this['directoryAccessManager']['createRelativePath'](_0x26bdf9,_0x3cec0b),'fullPath':_0x26bdf9,'success':!![],'outputMode':'summary','summary':{'totalFiles':_0x178808['summary'][_0x308e4a(0x149)],'totalClones':_0x178808['summary'][_0x308e4a(0x178)],'duplicatedLines':_0x178808['summary']['totalDuplicatedLines'],'duplicationPercentage':_0x178808['summary']['duplicationPercentage'],'priorityCounts':_0x178808['summary'][_0x308e4a(0x160)],'topClones':_0x172087['slice'](0x0,0x5)[_0x308e4a(0x19f)](_0x580135=>({'id':_0x580135['id'],'type':_0x580135[_0x308e4a(0x17e)],'confidence':_0x580135['confidence'],'instances':_0x580135['metrics'][_0x308e4a(0x18e)],'lines':_0x580135['metrics'][_0x308e4a(0x18c)],'priority':_0x580135['refactoringAdvice']['priority'],'strategy':_0x580135['refactoringAdvice']['strategy'],'locations':_0x580135['instances']['map'](_0x5bd754=>_0x5bd754[_0x308e4a(0x1a2)]+':'+_0x5bd754['startLine']+'-'+_0x5bd754['endLine'])}))}};}['formatRecommendationsOutput'](_0x2f3b10,_0x21939a,_0x1a240f,_0x511f2a){const _0x42c871=a0_0x2992b2;return{'directory':this['directoryAccessManager']['createRelativePath'](_0x1a240f,_0x511f2a),'fullPath':_0x1a240f,'success':!![],'outputMode':'recommendations','summary':{'totalFiles':_0x2f3b10[_0x42c871(0x19c)]['totalFiles'],'totalClones':_0x2f3b10[_0x42c871(0x19c)]['totalClones'],'duplicationPercentage':_0x2f3b10[_0x42c871(0x19c)]['duplicationPercentage']},'recommendations':_0x21939a[_0x42c871(0x19f)](_0x311ee7=>({'id':_0x311ee7['id'],'priority':_0x311ee7['refactoringAdvice'][_0x42c871(0x183)],'strategy':_0x311ee7['refactoringAdvice'][_0x42c871(0x13f)],'suggestedName':_0x311ee7[_0x42c871(0x19b)][_0x42c871(0x185)],'reasoning':_0x311ee7[_0x42c871(0x19b)]['reasoning'],'effort':_0x311ee7['refactoringAdvice']['estimatedEffort'],'benefits':_0x311ee7[_0x42c871(0x19b)]['benefits'],'steps':_0x311ee7['refactoringAdvice']['actionableSteps'],'metrics':{'instances':_0x311ee7['metrics']['instanceCount'],'lines':_0x311ee7['metrics'][_0x42c871(0x18c)],'files':_0x311ee7['metrics']['filesCovered'],'impact':_0x311ee7[_0x42c871(0x141)][_0x42c871(0x174)]},'locations':_0x311ee7['instances']['map'](_0x1407a0=>({'file':_0x1407a0['file'],'startLine':_0x1407a0[_0x42c871(0x146)],'endLine':_0x1407a0[_0x42c871(0x17c)]}))}))};}[a0_0x2992b2(0x175)](_0x24630d,_0x5d8418,_0x48f070,_0x17a5fe){const _0x3d91c3=a0_0x2992b2;return{'directory':this[_0x3d91c3(0x15b)][_0x3d91c3(0x13b)](_0x48f070,_0x17a5fe),'fullPath':_0x48f070,'success':!![],'outputMode':_0x3d91c3(0x17f),'summary':_0x24630d[_0x3d91c3(0x19c)],'clones':_0x5d8418['map'](_0xa9b600=>({..._0xa9b600,'instances':_0xa9b600[_0x3d91c3(0x15c)]['map'](_0x2e5af9=>({..._0x2e5af9,'code':_0x2e5af9[_0x3d91c3(0x17a)][_0x3d91c3(0x19a)]('\x0a')[_0x3d91c3(0x147)](0x0,0xa)[_0x3d91c3(0x151)]('\x0a')+(_0x2e5af9[_0x3d91c3(0x17a)]['split']('\x0a')[_0x3d91c3(0x15d)]>0xa?'\x0a...\x20(truncated)':'')}))}))};}async[a0_0x2992b2(0x16f)](){const _0x2a8c33=a0_0x2992b2;if(!this['cloneDetector']){const {CloneDetectionTool:_0x26bcad}=await import(_0x2a8c33(0x165)),_0x25ca68={'minTokens':this[_0x2a8c33(0x198)],'minLines':this[_0x2a8c33(0x182)],'similarityThreshold':this['defaultSimilarityThreshold'],'include':[_0x2a8c33(0x16b),'**/*.jsx',_0x2a8c33(0x176),_0x2a8c33(0x152),'**/*.vue'],'exclude':[_0x2a8c33(0x15f),'**/dist/**','**/build/**'],'maxFileSize':this['maxFileSize']};this['cloneDetector']=new _0x26bcad(_0x25ca68),this['logger']?.[_0x2a8c33(0x18f)](_0x2a8c33(0x18d),{'config':_0x25ca68});}return this[_0x2a8c33(0x194)];}[a0_0x2992b2(0x1a1)](){const _0x220d3f=a0_0x2992b2;return[_0x220d3f(0x181)];}['getParameterSchema'](){const _0x1617c9=a0_0x2992b2;return{'type':_0x1617c9(0x189),'properties':{'actions':{'type':'array','minItems':0x1,'items':{'type':'object','properties':{'type':{'type':'string','enum':this[_0x1617c9(0x1a1)]()},'directory':{'type':_0x1617c9(0x16d)},'minTokens':{'type':_0x1617c9(0x144),'minimum':0xa,'maximum':0x3e8},'minLines':{'type':'number','minimum':0x1,'maximum':0x64},'similarityThreshold':{'type':'number','minimum':0.5,'maximum':0x1},'priorityFilter':{'type':'string','enum':['high','medium','low']},'maxResults':{'type':_0x1617c9(0x144),'minimum':0x1},'outputMode':{'type':_0x1617c9(0x16d),'enum':[_0x1617c9(0x19c),'detailed',_0x1617c9(0x143)]}},'required':[_0x1617c9(0x17e),'directory']}}},'required':['actions']};}}export default CloneDetectionTool;
1
+ const a0_0x3e3a8d=a0_0x27db;(function(_0x9d10d7,_0x457a02){const _0x21d9ec=a0_0x27db,_0x1f2ee4=_0x9d10d7();while(!![]){try{const _0x1508fa=parseInt(_0x21d9ec(0x154))/0x1*(parseInt(_0x21d9ec(0x13c))/0x2)+-parseInt(_0x21d9ec(0x13b))/0x3*(parseInt(_0x21d9ec(0x145))/0x4)+parseInt(_0x21d9ec(0x151))/0x5*(-parseInt(_0x21d9ec(0x10c))/0x6)+-parseInt(_0x21d9ec(0x15a))/0x7*(parseInt(_0x21d9ec(0x10a))/0x8)+-parseInt(_0x21d9ec(0x104))/0x9+-parseInt(_0x21d9ec(0x10d))/0xa+parseInt(_0x21d9ec(0x10f))/0xb;if(_0x1508fa===_0x457a02)break;else _0x1f2ee4['push'](_0x1f2ee4['shift']());}catch(_0x32e99b){_0x1f2ee4['push'](_0x1f2ee4['shift']());}}}(a0_0x5cf6,0x81483));import{BaseTool}from'./baseTool.js';function a0_0x27db(_0x37897e,_0xef7287){_0x37897e=_0x37897e-0x104;const _0x5cf61b=a0_0x5cf6();let _0x27db12=_0x5cf61b[_0x37897e];if(a0_0x27db['vXtkQt']===undefined){var _0x10dd38=function(_0x232c89){const _0x277a18='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xd6fad2='',_0x7bfa27='';for(let _0x25cffc=0x0,_0x1e521d,_0x356588,_0x228814=0x0;_0x356588=_0x232c89['charAt'](_0x228814++);~_0x356588&&(_0x1e521d=_0x25cffc%0x4?_0x1e521d*0x40+_0x356588:_0x356588,_0x25cffc++%0x4)?_0xd6fad2+=String['fromCharCode'](0xff&_0x1e521d>>(-0x2*_0x25cffc&0x6)):0x0){_0x356588=_0x277a18['indexOf'](_0x356588);}for(let _0x57de56=0x0,_0x2c9557=_0xd6fad2['length'];_0x57de56<_0x2c9557;_0x57de56++){_0x7bfa27+='%'+('00'+_0xd6fad2['charCodeAt'](_0x57de56)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x7bfa27);};a0_0x27db['tFObpG']=_0x10dd38,a0_0x27db['xplhHS']={},a0_0x27db['vXtkQt']=!![];}const _0x5eece5=_0x5cf61b[0x0],_0x3701d7=_0x37897e+_0x5eece5,_0x337f17=a0_0x27db['xplhHS'][_0x3701d7];return!_0x337f17?(_0x27db12=a0_0x27db['tFObpG'](_0x27db12),a0_0x27db['xplhHS'][_0x3701d7]=_0x27db12):_0x27db12=_0x337f17,_0x27db12;}function a0_0x5cf6(){const _0x12904c=['C3vNz2vZDgvKtMfTzq','Dg90ywXeDxbSAwnHDgvKtgLUzxm','zgvMyxvSDe1PBLrVA2vUCW','kIOVkI5JANm','CMvMywn0B3jPBMDbzhzPy2u','C3rYAw5N','y3jLyxrLuMvSyxrPDMvqyxrO','ChvZAa','B3v0Chv0lw1Vzgu','BM9YBwfSAxPL','kIOVkI5QCW','CMvHC29U','DgLTzw91Da','ChjPB3jPDhLdB3vUDhm','C3rHCNrmAw5L','y3DK','zxHLyW','BwLUlxrVA2vUCW','zhvWBgLJyxrPB25qzxjJzw50ywDL','Aw5MBW','oIb1BMTUB3DUigfJDgLVBIb0ExbLoIa','Aw5ZDgfUy2vdB3vUDa','BwLUtgLUzxm','zgvMyxvSDfnPBwLSyxjPDhLuAhjLC2HVBgq','mJq5Eg9vzNj5','mZKWohDtrLLwuq','AxnbC3LUyW','zxjYB3i','kIOVkI5TANm','Bg93','C2LTAwXHCML0EvrOCMvZAg9Sza','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','qwn0Aw9Uia','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','mJa2odrZrMDzBgS','BgvUz3rO','BNvTyMvY','Aw5ZDgfUy2vZ','y29UzMLKzw5Jzq','CMvHC29UAw5N','B3v0Chv0tw9Kzq','z2v0ugfYyw1LDgvYu2nOzw1H','ChjPB3jPDhLgAwX0zxi','Bwf4rMLSzvnPEMu','zgvIDwC','Bwf4uMvZDwX0CW','mZvpAgPYwNK','zgLYzwn0B3j5qwnJzxnZtwfUywDLCG','CNvU','ndi2y3bXvMfA','oIbTAw4TBgLUzxmGBxvZDcbIzsbIzxr3zwvUideGyw5KideWma','BwvZC2fNzq','ywn0Aw9UywjSzvn0zxbZ','C2LTAwXHCML0Es10AhjLC2HVBgq','zgv0zwn0q2XVBMvZ','mJyXmw1ZALnNzW','q2XVBMuGzgv0zwn0Aw9UigfJDgLVBIbMywLSzwq','lI4Vyw5HBhL6zxjZl2nVzgvdBg9UzurLDgvJDg9Yl2LUzgv4lMPZ','u3rHCNrPBMCGy2XVBMuGzgv0zwn0Aw9U','zMLSzq','ywXSB3DLza','Bwf4lxjLC3vSDhm','ChjPB3jPDhKTzMLSDgvY','DMfSAwrHDgvszwfKqwnJzxnZ','Aw1Wywn0u2nVCMu','BwLUlwXPBMvZ','C3vTBwfYEq','kIOVkI5QC3G','BwLUvg9Rzw5Z','DhjPBq','ugfYC2vKienSB25Lrgv0zwn0Aw9UihrVB2WGCgfYyw1LDgvYCW','kIOVBM9Kzv9TB2r1BgvZlYOQ','ntm0mti2nLLIAu15rG','zM9YBwf0u3vTBwfYEu91Dhb1Da','kIOVkI50C3G','kIOVkI50CW','zgvMyxvSDe1PBKXPBMvZ','CMvZB2X2zq','mte2mdbbq0H4s08','C3rYyxrLz3K','mJC0mdm4DMDMwMXN','otKZnJGWmfLbq1LYrG','C3bSAxq','mJGZmtq0nZnsru5nDgK','zgv0zwn0lwnSB25LCW','zM9YBwf0rgv0ywLSzwrpDxrWDxq','yMvUzwzPDhm','y2XVBMvZ','z2v0u3vWCg9YDgvKqwn0Aw9UCW','Bwv0CMLJCW','Bg9Nz2vY','CMvJB21Tzw5KyxrPB25Z','zgv0ywLSzwq','zw5KtgLUzq','zxn0Aw1HDgvKrwzMB3j0','ywn0Aw9UCW','zgLYzwn0B3j5','oIbVDxrWDxqTBw9KzsbTDxn0igjLihn1Bw1HCNKSigrLDgfPBgvKlcbVCIbYzwnVBw1LBMrHDgLVBNm','zxHLy3v0zq','BwfW','y2XVBMvezxrLy3rVCG','DhLWzq','kIOVkI52Dwu'];a0_0x5cf6=function(){return _0x12904c;};return a0_0x5cf6();}import a0_0xd6fad2 from'../utilities/tagParser.js';import a0_0x7bfa27 from'../utilities/directoryAccessManager.js';import a0_0x25cffc from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class CloneDetectionTool extends BaseTool{constructor(_0x1e521d={},_0x356588=null){const _0x446de2=a0_0x27db;super(_0x1e521d,_0x356588),this['requiresProject']=!![],this[_0x446de2(0x13d)]=![],this['timeout']=_0x1e521d['timeout']||0x1d4c0,this[_0x446de2(0x142)]=_0x1e521d['maxConcurrentOperations']||0x1,this[_0x446de2(0x125)]=_0x1e521d[_0x446de2(0x125)]||0x32,this[_0x446de2(0x108)]=_0x1e521d[_0x446de2(0x108)]||0x5,this[_0x446de2(0x13a)]=_0x1e521d['defaultSimilarityThreshold']||0.85,this[_0x446de2(0x14e)]=_0x1e521d['maxFileSize']||0x7a120,this[_0x446de2(0x152)]=new a0_0x7bfa27(_0x1e521d,_0x356588),this['cloneDetector']=null;}['getDescription'](){const _0x3b3c54=a0_0x27db;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[_0x3b3c54(0x14e)]/0x400)+'KB\x20per\x20file\x0a-\x20Analysis\x20timeout:\x20'+this[_0x3b3c54(0x12f)]/0x3e8+'\x20seconds\x0a\x0aUSE\x20CASES:\x0a-\x20Identify\x20refactoring\x20opportunities\x20before\x20code\x20review\x0a-\x20Track\x20technical\x20debt\x20and\x20code\x20duplication\x20metrics\x0a-\x20Find\x20candidates\x20for\x20DRY\x20(Don\x27t\x20Repeat\x20Yourself)\x20refactoring\x0a-\x20Prioritize\x20maintenance\x20work\x20by\x20impact\x20score\x0a\x20\x20\x20\x20';}['parseParameters'](_0x228814){const _0xaf5ab9=a0_0x27db;try{const _0x57de56={},_0x2c9557=[];this['logger']?.[_0xaf5ab9(0x14f)]('CloneDetection\x20tool\x20parsing\x20parameters',{'contentLength':_0x228814[_0xaf5ab9(0x146)],'contentPreview':_0x228814['substring'](0x0,0xc8)});const _0x39cef6=/<detect-clones\s+(.+?)\/>/g;let _0x125c7f;while((_0x125c7f=_0x39cef6[_0xaf5ab9(0x133)](_0x228814))!==null){const _0x2446bf=_0x125c7f[0x1][_0xaf5ab9(0x168)](),_0x32b5f3=new a0_0xd6fad2(),_0x421c36=_0x32b5f3['parseAttributes'](_0x2446bf),_0x37c3ca={'type':'detect-clones',..._0x421c36};_0x37c3ca[_0xaf5ab9(0x134)]&&(_0x37c3ca['minTokens']=parseInt(_0x37c3ca['min-tokens'],0xa),delete _0x37c3ca[_0xaf5ab9(0x134)]),_0x37c3ca[_0xaf5ab9(0x164)]&&(_0x37c3ca['minLines']=parseInt(_0x37c3ca['min-lines'],0xa),delete _0x37c3ca['min-lines']),_0x37c3ca[_0xaf5ab9(0x158)]&&(_0x37c3ca['similarityThreshold']=parseFloat(_0x37c3ca[_0xaf5ab9(0x158)]),delete _0x37c3ca[_0xaf5ab9(0x158)]),_0x37c3ca['priority-filter']&&(_0x37c3ca[_0xaf5ab9(0x14d)]=_0x37c3ca[_0xaf5ab9(0x161)],delete _0x37c3ca[_0xaf5ab9(0x161)]),_0x37c3ca[_0xaf5ab9(0x160)]&&(_0x37c3ca[_0xaf5ab9(0x150)]=parseInt(_0x37c3ca[_0xaf5ab9(0x160)],0xa),delete _0x37c3ca['max-results']),_0x37c3ca[_0xaf5ab9(0x12b)]&&(_0x37c3ca['outputMode']=_0x37c3ca[_0xaf5ab9(0x12b)],delete _0x37c3ca['output-mode']),_0x2c9557[_0xaf5ab9(0x12a)](_0x37c3ca);}return _0x57de56['actions']=_0x2c9557,_0x57de56['rawContent']=_0x228814[_0xaf5ab9(0x168)](),this[_0xaf5ab9(0x116)]?.['debug'](_0xaf5ab9(0x169),{'totalActions':_0x2c9557['length'],'actionTypes':_0x2c9557[_0xaf5ab9(0x11f)](_0x57eaab=>_0x57eaab[_0xaf5ab9(0x121)])}),_0x57de56;}catch(_0x552854){throw new Error('Failed\x20to\x20parse\x20clone\x20detection\x20parameters:\x20'+_0x552854[_0xaf5ab9(0x156)]);}}['getRequiredParameters'](){return['actions'];}['customValidateParameters'](_0x495346){const _0x417275=a0_0x27db,_0x30baa7=[];if(!_0x495346[_0x417275(0x11b)]||!Array['isArray'](_0x495346['actions'])||_0x495346[_0x417275(0x11b)]['length']===0x0)_0x30baa7['push'](_0x417275(0x144));else for(const [_0x4a8000,_0x4e3db1]of _0x495346['actions']['entries']()){if(!_0x4e3db1['type']){_0x30baa7[_0x417275(0x12a)](_0x417275(0x143)+(_0x4a8000+0x1)+':\x20type\x20is\x20required');continue;}_0x4e3db1[_0x417275(0x121)]==='detect-clones'?(!_0x4e3db1[_0x417275(0x11c)]&&_0x30baa7[_0x417275(0x12a)]('Action\x20'+(_0x4a8000+0x1)+':\x20directory\x20is\x20required\x20for\x20detect-clones'),_0x4e3db1[_0x417275(0x167)]!==undefined&&(_0x4e3db1[_0x417275(0x167)]<0xa||_0x4e3db1[_0x417275(0x167)]>0x3e8)&&_0x30baa7['push']('Action\x20'+(_0x4a8000+0x1)+':\x20min-tokens\x20must\x20be\x20between\x2010\x20and\x201000'),_0x4e3db1[_0x417275(0x139)]!==undefined&&(_0x4e3db1[_0x417275(0x139)]<0x1||_0x4e3db1['minLines']>0x64)&&_0x30baa7[_0x417275(0x12a)]('Action\x20'+(_0x4a8000+0x1)+_0x417275(0x155)),_0x4e3db1['similarityThreshold']!==undefined&&(_0x4e3db1[_0x417275(0x141)]<0.5||_0x4e3db1['similarityThreshold']>0x1)&&_0x30baa7[_0x417275(0x12a)](_0x417275(0x143)+(_0x4a8000+0x1)+':\x20similarity-threshold\x20must\x20be\x20between\x200.5\x20and\x201.0'),_0x4e3db1['priorityFilter']&&!['high','medium','low']['includes'](_0x4e3db1['priorityFilter'])&&_0x30baa7['push']('Action\x20'+(_0x4a8000+0x1)+':\x20priority-filter\x20must\x20be\x20high,\x20medium,\x20or\x20low'),_0x4e3db1[_0x417275(0x14b)]&&![_0x417275(0x165),'detailed','recommendations']['includes'](_0x4e3db1['outputMode'])&&_0x30baa7['push'](_0x417275(0x143)+(_0x4a8000+0x1)+_0x417275(0x11d))):_0x30baa7[_0x417275(0x12a)]('Action\x20'+(_0x4a8000+0x1)+_0x417275(0x137)+_0x4e3db1['type']);}return{'valid':_0x30baa7['length']===0x0,'errors':_0x30baa7};}async[a0_0x3e3a8d(0x11e)](_0x11c6f8,_0x482c2c){const _0x54372f=a0_0x3e3a8d,{actions:_0x45cd74}=_0x11c6f8,{projectDir:_0x529a92,agentId:_0x4bc9d4,directoryAccess:_0x4207e0}=_0x482c2c,_0x2e7a82=_0x4207e0||this[_0x54372f(0x152)]['createDirectoryAccess']({'workingDirectory':_0x529a92||process['cwd'](),'writeEnabledDirectories':[],'readOnlyDirectories':[_0x529a92||process[_0x54372f(0x132)]()],'restrictToProject':!![]}),_0x3906ae=this[_0x54372f(0x152)]['getWorkingDirectory'](_0x2e7a82),_0x4034e8=[];for(const _0x28f228 of _0x45cd74){try{if(_0x28f228[_0x54372f(0x121)]===_0x54372f(0x110)){const _0x4b641b=await this[_0x54372f(0x159)](_0x28f228['directory'],_0x3906ae,_0x2e7a82,_0x28f228);_0x4034e8[_0x54372f(0x12a)](_0x4b641b);}else throw new Error('Unknown\x20action\x20type:\x20'+_0x28f228['type']);}catch(_0x3ad91c){this[_0x54372f(0x116)]?.[_0x54372f(0x13e)](_0x54372f(0x15b),{'action':_0x28f228['type'],'error':_0x3ad91c['message']}),_0x4034e8['push']({'directory':_0x28f228[_0x54372f(0x11c)],'error':_0x3ad91c['message'],'success':![]});}}return{'success':!![],'results':_0x4034e8,'toolUsed':'clonedetection'};}async[a0_0x3e3a8d(0x159)](_0x2bce26,_0x381dbf,_0x490f02,_0x248461={}){const _0x100547=a0_0x3e3a8d,_0xd02aaf=a0_0x25cffc['isAbsolute'](_0x2bce26)?a0_0x25cffc[_0x100547(0x12c)](_0x2bce26):a0_0x25cffc[_0x100547(0x109)](_0x381dbf,_0x2bce26),_0x14dd69=this['directoryAccessManager'][_0x100547(0x162)](_0xd02aaf,_0x490f02);if(!_0x14dd69[_0x100547(0x15f)])throw new Error('Read\x20access\x20denied:\x20'+_0x14dd69[_0x100547(0x12e)]);try{const _0x31b91f=await this['getCloneDetector'](),_0xb8f206={'minTokens':_0x248461[_0x100547(0x167)]||this[_0x100547(0x125)],'minLines':_0x248461[_0x100547(0x139)]||this['defaultMinLines'],'similarityThreshold':_0x248461['similarityThreshold']||this[_0x100547(0x13a)],'include':['**/*.js',_0x100547(0x166),_0x100547(0x13f),_0x100547(0x126),_0x100547(0x107),'**/*.tsx','**/*.vue'],'exclude':[_0x100547(0x16a),'**/dist/**','**/build/**','**/*.test.js','**/*.spec.js'],'maxFileSize':this['maxFileSize']};this[_0x100547(0x116)]?.[_0x100547(0x136)](_0x100547(0x15d),{'directory':_0xd02aaf,'config':_0xb8f206});const _0x16c361=await _0x31b91f[_0x100547(0x153)](_0xd02aaf,null);if(!_0x16c361)return{'directory':this['directoryAccessManager'][_0x100547(0x129)](_0xd02aaf,_0x490f02),'fullPath':_0xd02aaf,'success':!![],'summary':{'totalFiles':0x0,'totalClones':0x0,'duplicationPercentage':0x0},'clones':[],'message':'No\x20files\x20found\x20or\x20no\x20clones\x20detected'};let _0xb258cc=_0x16c361[_0x100547(0x113)];_0x248461[_0x100547(0x14d)]&&(_0xb258cc=_0xb258cc['filter'](_0x18c9be=>_0x18c9be['refactoringAdvice']['priority']===_0x248461[_0x100547(0x14d)]));_0x248461['maxResults']&&(_0xb258cc=_0xb258cc['slice'](0x0,_0x248461['maxResults']));const _0x237f9d=_0x248461[_0x100547(0x14b)]||'detailed';if(_0x237f9d==='summary')return this[_0x100547(0x105)](_0x16c361,_0xb258cc,_0xd02aaf,_0x490f02);else return _0x237f9d==='recommendations'?this['formatRecommendationsOutput'](_0x16c361,_0xb258cc,_0xd02aaf,_0x490f02):this[_0x100547(0x111)](_0x16c361,_0xb258cc,_0xd02aaf,_0x490f02);}catch(_0x21653d){throw new Error('Failed\x20to\x20detect\x20clones\x20in\x20'+_0x2bce26+':\x20'+_0x21653d[_0x100547(0x156)]);}}['formatSummaryOutput'](_0x549298,_0xb7270b,_0x22cb33,_0x413748){const _0x17fd9b=a0_0x3e3a8d;return{'directory':this[_0x17fd9b(0x152)][_0x17fd9b(0x129)](_0x22cb33,_0x413748),'fullPath':_0x22cb33,'success':!![],'outputMode':'summary','summary':{'totalFiles':_0x549298[_0x17fd9b(0x165)]['totalFiles'],'totalClones':_0x549298[_0x17fd9b(0x165)]['totalClones'],'duplicatedLines':_0x549298['summary'][_0x17fd9b(0x124)],'duplicationPercentage':_0x549298[_0x17fd9b(0x165)]['duplicationPercentage'],'priorityCounts':_0x549298['summary'][_0x17fd9b(0x130)],'topClones':_0xb7270b['slice'](0x0,0x5)[_0x17fd9b(0x11f)](_0x1f7d40=>({'id':_0x1f7d40['id'],'type':_0x1f7d40[_0x17fd9b(0x121)],'confidence':_0x1f7d40[_0x17fd9b(0x149)],'instances':_0x1f7d40['metrics'][_0x17fd9b(0x138)],'lines':_0x1f7d40[_0x17fd9b(0x115)]['lineCount'],'priority':_0x1f7d40[_0x17fd9b(0x127)]['priority'],'strategy':_0x1f7d40[_0x17fd9b(0x127)]['strategy'],'locations':_0x1f7d40['instances']['map'](_0x5dcb1d=>_0x5dcb1d[_0x17fd9b(0x15e)]+':'+_0x5dcb1d[_0x17fd9b(0x131)]+'-'+_0x5dcb1d[_0x17fd9b(0x119)])}))}};}['formatRecommendationsOutput'](_0x1367ab,_0xfffd2,_0x434f6a,_0x49614a){const _0x186ae8=a0_0x3e3a8d;return{'directory':this['directoryAccessManager'][_0x186ae8(0x129)](_0x434f6a,_0x49614a),'fullPath':_0x434f6a,'success':!![],'outputMode':'recommendations','summary':{'totalFiles':_0x1367ab[_0x186ae8(0x165)]['totalFiles'],'totalClones':_0x1367ab['summary']['totalClones'],'duplicationPercentage':_0x1367ab[_0x186ae8(0x165)][_0x186ae8(0x135)]},'recommendations':_0xfffd2[_0x186ae8(0x11f)](_0x3e672d=>({'id':_0x3e672d['id'],'priority':_0x3e672d[_0x186ae8(0x127)]['priority'],'strategy':_0x3e672d[_0x186ae8(0x127)][_0x186ae8(0x10b)],'suggestedName':_0x3e672d[_0x186ae8(0x127)][_0x186ae8(0x123)],'reasoning':_0x3e672d['refactoringAdvice'][_0x186ae8(0x14a)],'effort':_0x3e672d[_0x186ae8(0x127)][_0x186ae8(0x11a)],'benefits':_0x3e672d['refactoringAdvice'][_0x186ae8(0x112)],'steps':_0x3e672d['refactoringAdvice'][_0x186ae8(0x157)],'metrics':{'instances':_0x3e672d['metrics']['instanceCount'],'lines':_0x3e672d['metrics']['lineCount'],'files':_0x3e672d[_0x186ae8(0x115)]['filesCovered'],'impact':_0x3e672d['metrics'][_0x186ae8(0x163)]},'locations':_0x3e672d[_0x186ae8(0x148)]['map'](_0x12240a=>({'file':_0x12240a['file'],'startLine':_0x12240a['startLine'],'endLine':_0x12240a['endLine']}))}))};}[a0_0x3e3a8d(0x111)](_0x261312,_0x788d02,_0xe7a67,_0x33d9ae){const _0x503c2e=a0_0x3e3a8d;return{'directory':this['directoryAccessManager']['createRelativePath'](_0xe7a67,_0x33d9ae),'fullPath':_0xe7a67,'success':!![],'outputMode':'detailed','summary':_0x261312['summary'],'clones':_0x788d02[_0x503c2e(0x11f)](_0x439ca4=>({..._0x439ca4,'instances':_0x439ca4[_0x503c2e(0x148)]['map'](_0xf0fef4=>({..._0xf0fef4,'code':_0xf0fef4['code']['split']('\x0a')['slice'](0x0,0xa)['join']('\x0a')+(_0xf0fef4['code'][_0x503c2e(0x10e)]('\x0a')['length']>0xa?'\x0a...\x20(truncated)':'')}))}))};}async['getCloneDetector'](){const _0x38b65b=a0_0x3e3a8d;if(!this['cloneDetector']){const {CloneDetectionTool:_0xfe6cb5}=await import(_0x38b65b(0x15c)),_0x2eb848={'minTokens':this['defaultMinTokens'],'minLines':this['defaultMinLines'],'similarityThreshold':this[_0x38b65b(0x13a)],'include':[_0x38b65b(0x12d),_0x38b65b(0x166),'**/*.ts',_0x38b65b(0x106),_0x38b65b(0x122)],'exclude':[_0x38b65b(0x16a),'**/dist/**','**/build/**'],'maxFileSize':this['maxFileSize']};this[_0x38b65b(0x120)]=new _0xfe6cb5(_0x2eb848),this[_0x38b65b(0x116)]?.[_0x38b65b(0x14f)]('Clone\x20detector\x20initialized',{'config':_0x2eb848});}return this['cloneDetector'];}['getSupportedActions'](){const _0x1e5834=a0_0x3e3a8d;return[_0x1e5834(0x110)];}[a0_0x3e3a8d(0x14c)](){const _0xa89a1d=a0_0x3e3a8d;return{'type':'object','properties':{'actions':{'type':'array','minItems':0x1,'items':{'type':'object','properties':{'type':{'type':'string','enum':this[_0xa89a1d(0x114)]()},'directory':{'type':_0xa89a1d(0x128)},'minTokens':{'type':_0xa89a1d(0x147),'minimum':0xa,'maximum':0x3e8},'minLines':{'type':'number','minimum':0x1,'maximum':0x64},'similarityThreshold':{'type':_0xa89a1d(0x147),'minimum':0.5,'maximum':0x1},'priorityFilter':{'type':'string','enum':['high','medium',_0xa89a1d(0x140)]},'maxResults':{'type':_0xa89a1d(0x147),'minimum':0x1},'outputMode':{'type':_0xa89a1d(0x128),'enum':['summary',_0xa89a1d(0x118),_0xa89a1d(0x117)]}},'required':[_0xa89a1d(0x121),_0xa89a1d(0x11c)]}}},'required':[_0xa89a1d(0x11b)]};}}export default CloneDetectionTool;