@loxia-labs/loxia-autopilot-one 1.0.14 → 1.0.16

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 (123) 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/agentActivityService.js +1 -1
  76. package/src/services/aiService.js +1 -1
  77. package/src/services/apiKeyManager.js +1 -1
  78. package/src/services/benchmarkService.js +1 -1
  79. package/src/services/budgetService.js +1 -1
  80. package/src/services/contextInjectionService.js +1 -1
  81. package/src/services/conversationCompactionService.js +1 -1
  82. package/src/services/errorHandler.js +1 -1
  83. package/src/services/fileAttachmentService.js +1 -1
  84. package/src/services/modelRouterService.js +1 -1
  85. package/src/services/modelsService.js +1 -1
  86. package/src/services/qualityInspector.js +1 -1
  87. package/src/services/tokenCountingService.js +1 -1
  88. package/src/tools/agentCommunicationTool.js +1 -1
  89. package/src/tools/agentDelayTool.js +1 -1
  90. package/src/tools/asyncToolManager.js +1 -1
  91. package/src/tools/baseTool.js +1 -1
  92. package/src/tools/browserTool.js +1 -1
  93. package/src/tools/cloneDetectionTool.js +1 -1
  94. package/src/tools/dependencyResolverTool.js +1 -1
  95. package/src/tools/fileContentReplaceTool.js +1 -1
  96. package/src/tools/fileSystemTool.js +1 -1
  97. package/src/tools/fileTreeTool.js +1 -1
  98. package/src/tools/imageTool.js +1 -1
  99. package/src/tools/importAnalyzerTool.js +1 -1
  100. package/src/tools/jobDoneTool.js +1 -1
  101. package/src/tools/seekTool.js +1 -1
  102. package/src/tools/staticAnalysisTool.js +1 -1
  103. package/src/tools/taskManagerTool.js +1 -1
  104. package/src/tools/terminalTool.js +1 -1
  105. package/src/tools/webTool.js +1 -1
  106. package/src/types/agent.js +1 -1
  107. package/src/types/contextReference.js +1 -1
  108. package/src/types/conversation.js +1 -1
  109. package/src/types/toolCommand.js +1 -1
  110. package/src/utilities/attachmentValidator.js +1 -1
  111. package/src/utilities/configManager.js +1 -1
  112. package/src/utilities/constants.js +1 -1
  113. package/src/utilities/directoryAccessManager.js +1 -1
  114. package/src/utilities/fileProcessor.js +1 -1
  115. package/src/utilities/logger.js +1 -1
  116. package/src/utilities/tagParser.js +1 -1
  117. package/src/utilities/toolConstants.js +1 -1
  118. package/src/utilities/userDataDir.js +1 -1
  119. package/web-ui/build/index.html +2 -2
  120. package/web-ui/build/static/index-DFmFvOoy.css +1 -0
  121. package/web-ui/build/static/index-DOk0l6Kf.js +348 -0
  122. package/web-ui/build/static/index-DXN850Y2.js +0 -400
  123. package/web-ui/build/static/index-an-YRzUX.css +0 -1
@@ -1 +1 @@
1
- function a0_0xd075(){const _0x40d252=['B2XKzxn0t3bLCMf0Aw9U','B3bLCMf0Aw9UoNrPBwvVDxq','qxn5BMmGB3bLCMf0Aw9Uihn0yxj0zwq6ia','q2fUBM90ignHBMnLBcbJB21WBgv0zwqVzMfPBgvKig9WzxjHDgLVBJOG','rvHfq1vusu5h','Bg9Nz2vY','C2XPy2u','y2XLyxi','Bwf4sgLZDg9YEvnPEMu','q0foq0vmteve','DgLTzw91Da','Dg9VBeLK','AxntAhv0DgLUz0rVD24','C29YDa','odf1CwrOEKK','ywDLBNrjza','yMLUza','B3bLCMf0Aw9UoNjLDhj5','B3bLCMf0Aw9UoNn0yxj0zwq','z2v0vgLTzq','D2fYBG','z2v0','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rVChbLza','Bw9UAxrVCMLUz0LUDgvYDMfS','yNLbz2vUDa','AgfUzgXLt3bLCMf0Aw9UvgLTzw91Da','z2v0t3bLCMf0Aw9UsgLZDg9YEq','B3bLCMf0Aw9UCW','y2HLy2TpCgvYyxrPB25uAw1LB3v0CW','y2fSy3vSyxrLrxHLy3v0Aw9UvgLTzq','y3jLyxrLzef0','nJm2mZq0nhHiuu52tG','AgfUzgXLt3bLCMf0Aw9Uq29TCgXLDgvK','zw1PDa','CMv0CNLpCgvYyxrPB24','z2v0u3rHDgLZDgLJCW','nZa1yMzuEeLM','CMvZDwX0','mteWmZi3mK5YrxzqDW','mtbTCK91vKe','nur5BfvMsG','DMfSDwvZ','t3bLCMf0Aw9UignVBxbSzxrLzdOG','C2v0t3bLCMf0Aw9UvgLTzw91Da','q2fUBM90ihjLDhj5ig5VBI1MywLSzwqGB3bLCMf0Aw9UoIa','C3rHDhvZ','AgfUzgXLt3bLCMf0Aw9UrMfPBgvK','C3rHCNrLzef0','B3bLCMf0Aw9UoMzHAwXLza','yNLtDgf0Dxm','u3LZDgvTihnODxrKB3DU','C2v0','DxbKyxrLt3bLCMf0Aw9U','BgLTAxq','CMv0CNLdB3vUDa','Dg9ju09tDhjPBMC','zMLSDgvY','y2XLyxjpCgvYyxrPB25uAw1LB3v0','ChvZAa','ChjVz3jLC3m','mti0EMf4rxHS','y2XLyw51Ce9WzxjHDgLVBG','z2vUzxjHDgvpCgvYyxrPB25jza','Bwf4uMv0CMLLCW','DgLTzw91DeHHBMrSzq','mtqZnJmZmuz0t0HluW','z2v0qwDLBNrpCgvYyxrPB25Z','zxjYB3i','y2XLyw51CeLUDgvYDMfS','Aw5MBW','CMfUzg9T','zgvIDwC','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','rKfjteve','BgvUz3rO','ndC3mdmZntLIreHqDgi','t3bLCMf0Aw9Uihn0yxj0zwq6ia','q09nueXfveve','mtmZode3mhnwreXqBa','y2XLyw51CenVBxbSzxrLze9WzxjHDgLVBNm','t3bLCMf0Aw9Uihn0yxr1CYb1CgrHDgvKoIa','zgvMyxvSDfrPBwvVDxq','AgfUzgXLt3bLCMf0Aw9Uu3rHCNrLza','uevoreLorW','BM93','Dg9tDhjPBMC','C2L6zq','B3bLCMf0Aw9UsgLZDg9YEq','y2fUy2vSt3bLCMf0Aw9U','oteYndK0mwPxC0zJDW','y29TCgXLDgvKqxq'];a0_0xd075=function(){return _0x40d252;};return a0_0xd075();}const a0_0x580074=a0_0x3563;(function(_0x1a26ca,_0x19acf4){const _0x33f95d=a0_0x3563,_0x27d628=_0x1a26ca();while(!![]){try{const _0x296211=-parseInt(_0x33f95d(0x1c3))/0x1+-parseInt(_0x33f95d(0x1d0))/0x2+-parseInt(_0x33f95d(0x1a6))/0x3*(parseInt(_0x33f95d(0x1be))/0x4)+parseInt(_0x33f95d(0x1aa))/0x5*(parseInt(_0x33f95d(0x1a1))/0x6)+-parseInt(_0x33f95d(0x180))/0x7+-parseInt(_0x33f95d(0x1a8))/0x8*(parseInt(_0x33f95d(0x190))/0x9)+-parseInt(_0x33f95d(0x1a9))/0xa*(-parseInt(_0x33f95d(0x1cd))/0xb);if(_0x296211===_0x19acf4)break;else _0x27d628['push'](_0x27d628['shift']());}catch(_0x8d235f){_0x27d628['push'](_0x27d628['shift']());}}}(a0_0xd075,0xb49d6));import a0_0x2c54cb from'events';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x3563(_0x15520f,_0xfec5e0){_0x15520f=_0x15520f-0x17d;const _0xd0758=a0_0xd075();let _0x356379=_0xd0758[_0x15520f];if(a0_0x3563['MShAII']===undefined){var _0x1450d0=function(_0x8761d6){const _0x5d3a51='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2c54cb='',_0x43c851='';for(let _0x3c09f1=0x0,_0x23f758,_0x530d33,_0x11d115=0x0;_0x530d33=_0x8761d6['charAt'](_0x11d115++);~_0x530d33&&(_0x23f758=_0x3c09f1%0x4?_0x23f758*0x40+_0x530d33:_0x530d33,_0x3c09f1++%0x4)?_0x2c54cb+=String['fromCharCode'](0xff&_0x23f758>>(-0x2*_0x3c09f1&0x6)):0x0){_0x530d33=_0x5d3a51['indexOf'](_0x530d33);}for(let _0x4e5480=0x0,_0x2efc6c=_0x2c54cb['length'];_0x4e5480<_0x2efc6c;_0x4e5480++){_0x43c851+='%'+('00'+_0x2c54cb['charCodeAt'](_0x4e5480)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x43c851);};a0_0x3563['XPSeXF']=_0x1450d0,a0_0x3563['DfLIgW']={},a0_0x3563['MShAII']=!![];}const _0xe3f2de=_0xd0758[0x0],_0xf0e10f=_0x15520f+_0xe3f2de,_0x687673=a0_0x3563['DfLIgW'][_0xf0e10f];return!_0x687673?(_0x356379=a0_0x3563['XPSeXF'](_0x356379),a0_0x3563['DfLIgW'][_0xf0e10f]=_0x356379):_0x356379=_0x687673,_0x356379;}class AsyncToolManager extends a0_0x2c54cb{constructor(_0x43c851={},_0x3c09f1=null){const _0x15a708=a0_0x3563;super(),this['config']=_0x43c851,this['logger']=_0x3c09f1,this['operations']=new Map(),this[_0x15a708(0x17e)]=[],this['maxConcurrentOperations']=_0x43c851['maxConcurrentOperations']||0xa,this['defaultTimeout']=_0x43c851[_0x15a708(0x1d3)]||0x493e0,this[_0x15a708(0x1c6)]=_0x43c851[_0x15a708(0x1c6)]||0xea60,this[_0x15a708(0x18a)]=_0x43c851['maxHistorySize']||0x3e8,this['monitoringInterval']=null,this[_0x15a708(0x18e)]=![],this['startMonitoring'](),this['on'](_0x15a708(0x194),this[_0x15a708(0x1d4)][_0x15a708(0x192)](this)),this['on']('operation:completed',this[_0x15a708(0x1a2)][_0x15a708(0x192)](this)),this['on']('operation:failed',this[_0x15a708(0x1b0)]['bind'](this)),this['on']('operation:timeout',this['handleOperationTimeout'][_0x15a708(0x192)](this));}async['startOperation'](_0x23f758,_0x530d33,_0x11d115,_0x4e5480={}){const _0x1ea373=a0_0x3563;if(this['operations'][_0x1ea373(0x17d)]>=this[_0x1ea373(0x1ca)])throw new Error('Maximum\x20concurrent\x20operations\x20reached\x20('+this[_0x1ea373(0x1ca)]+')');const _0x2efc6c=this[_0x1ea373(0x1c0)](),_0xf80bad={'id':_0x2efc6c,'toolId':_0x23f758,'agentId':_0x530d33,'parameters':_0x11d115,'context':_0x4e5480,'status':TOOL_STATUS['PENDING'],'createdAt':new Date()['toISOString'](),'startedAt':null,'completedAt':null,'timeout':_0x4e5480['timeout']||this[_0x1ea373(0x1d3)],'result':null,'error':null,'progress':null,'retryCount':0x0,'maxRetries':_0x4e5480[_0x1ea373(0x1c1)]||0x0};return this[_0x1ea373(0x19d)][_0x1ea373(0x1b5)](_0x2efc6c,_0xf80bad),this['logger']?.[_0x1ea373(0x1c7)](_0x1ea373(0x184)+_0x2efc6c,{'toolId':_0x23f758,'agentId':_0x530d33,'parametersCount':Object['keys'](_0x11d115)['length'],'timeout':_0xf80bad[_0x1ea373(0x18c)]}),this[_0x1ea373(0x1ad)](_0x2efc6c),this['emit']('operation:started',_0xf80bad),_0x2efc6c;}[a0_0x580074(0x1b6)](_0x36fc0b,_0x13dfc8,_0x50f75a={}){const _0x174196=a0_0x580074,_0x485760=this['operations']['get'](_0x36fc0b);if(!_0x485760)return this['logger']?.['warn']('Attempted\x20to\x20update\x20unknown\x20operation:\x20'+_0x36fc0b),![];const _0x368f2b=_0x485760['status'];_0x485760[_0x174196(0x1af)]=_0x13dfc8;_0x13dfc8===TOOL_STATUS['EXECUTING']&&!_0x485760['startedAt']&&(_0x485760[_0x174196(0x1b1)]=new Date()[_0x174196(0x1b9)]());(_0x13dfc8===TOOL_STATUS[_0x174196(0x1cf)]||_0x13dfc8===TOOL_STATUS[_0x174196(0x1cb)])&&(_0x485760['completedAt']=new Date()[_0x174196(0x1b9)]());if(_0x50f75a['result']!==undefined)_0x485760['result']=_0x50f75a[_0x174196(0x1a7)];if(_0x50f75a['error']!==undefined)_0x485760['error']=_0x50f75a[_0x174196(0x1c5)];if(_0x50f75a['progress']!==undefined)_0x485760[_0x174196(0x1bd)]=_0x50f75a[_0x174196(0x1bd)];this['logger']?.[_0x174196(0x1c9)](_0x174196(0x1d2)+_0x36fc0b,{'previousStatus':_0x368f2b,'newStatus':_0x13dfc8,'hasResult':!!_0x50f75a['result'],'hasError':!!_0x50f75a['error'],'progress':_0x50f75a['progress']});switch(_0x13dfc8){case TOOL_STATUS['COMPLETED']:this['emit']('operation:completed',_0x485760);break;case TOOL_STATUS[_0x174196(0x1cb)]:this['emit'](_0x174196(0x1b2),_0x485760);break;case TOOL_STATUS[_0x174196(0x186)]:this[_0x174196(0x1a3)]('operation:progress',_0x485760);break;}return!![];}['getOperation'](_0x5b2717){const _0x502e3e=a0_0x580074,_0x47bba5=this[_0x502e3e(0x19d)][_0x502e3e(0x197)](_0x5b2717);if(!_0x47bba5)return null;return{'id':_0x47bba5['id'],'toolId':_0x47bba5['toolId'],'agentId':_0x47bba5[_0x502e3e(0x191)],'status':_0x47bba5[_0x502e3e(0x1af)],'createdAt':_0x47bba5['createdAt'],'startedAt':_0x47bba5['startedAt'],'completedAt':_0x47bba5[_0x502e3e(0x181)],'result':_0x47bba5[_0x502e3e(0x1a7)],'error':_0x47bba5[_0x502e3e(0x1c5)],'progress':_0x47bba5[_0x502e3e(0x1bd)],'retryCount':_0x47bba5[_0x502e3e(0x1b8)],'executionTime':this['calculateExecutionTime'](_0x47bba5)};}[a0_0x580074(0x1c4)](_0x315326){const _0x273638=a0_0x580074,_0x40a3d8=[];for(const _0x3ce788 of this[_0x273638(0x19d)][_0x273638(0x1ab)]()){_0x3ce788[_0x273638(0x191)]===_0x315326&&_0x40a3d8['push'](this['getOperation'](_0x3ce788['id']));}return _0x40a3d8['sort']((_0x126c47,_0x4f3c51)=>new Date(_0x4f3c51['createdAt'])-new Date(_0x126c47[_0x273638(0x1a0)]));}async[a0_0x580074(0x17f)](_0x56d141,_0x38b836='Operation\x20cancelled'){const _0x46f12b=a0_0x580074,_0x578b0c=this[_0x46f12b(0x19d)]['get'](_0x56d141);if(!_0x578b0c)return![];if(_0x578b0c[_0x46f12b(0x1af)]===TOOL_STATUS[_0x46f12b(0x1cf)]||_0x578b0c['status']===TOOL_STATUS['FAILED'])return this[_0x46f12b(0x187)]?.[_0x46f12b(0x196)](_0x46f12b(0x185)+_0x56d141),![];return this['updateOperation'](_0x56d141,TOOL_STATUS[_0x46f12b(0x18b)],{'error':_0x38b836}),this['clearOperationTimeout'](_0x56d141),this['emit']('operation:cancelled',_0x578b0c),await this['cleanupOperation'](_0x56d141),this['logger']?.['info']('Operation\x20cancelled:\x20'+_0x56d141,{'reason':_0x38b836}),!![];}async[a0_0x580074(0x1a4)](_0x48603a){const _0x2915a7=a0_0x580074,_0x4b3c80=this[_0x2915a7(0x19d)]['get'](_0x48603a);if(!_0x4b3c80)return![];if(_0x4b3c80[_0x2915a7(0x1af)]!==TOOL_STATUS['FAILED'])return this['logger']?.['warn'](_0x2915a7(0x1ae)+_0x48603a),![];if(_0x4b3c80['retryCount']>=_0x4b3c80[_0x2915a7(0x1c1)])return this['logger']?.[_0x2915a7(0x196)]('Maximum\x20retries\x20exceeded\x20for\x20operation:\x20'+_0x48603a),![];return _0x4b3c80[_0x2915a7(0x1b8)]++,_0x4b3c80[_0x2915a7(0x1af)]=TOOL_STATUS['PENDING'],_0x4b3c80[_0x2915a7(0x1b1)]=null,_0x4b3c80[_0x2915a7(0x181)]=null,_0x4b3c80[_0x2915a7(0x1c5)]=null,_0x4b3c80['result']=null,this['setOperationTimeout'](_0x48603a),this['logger']?.['info']('Operation\x20retry\x20initiated:\x20'+_0x48603a,{'retryCount':_0x4b3c80[_0x2915a7(0x1b8)],'maxRetries':_0x4b3c80[_0x2915a7(0x1c1)]}),this[_0x2915a7(0x1a3)](_0x2915a7(0x193),_0x4b3c80),!![];}[a0_0x580074(0x1a5)](){const _0x206e45=a0_0x580074,_0x33dc78={'total':this['operations'][_0x206e45(0x17d)],'byStatus':{},'byTool':{},'byAgent':{},'averageExecutionTime':0x0,'oldestOperation':null,'newestOperation':null};let _0xc5ac22=0x0,_0x23df76=0x0,_0x4dd8de=null,_0x2aa9f5=null;for(const _0x4d1fb6 of this[_0x206e45(0x19d)]['values']()){_0x33dc78[_0x206e45(0x1b3)][_0x4d1fb6['status']]=(_0x33dc78['byStatus'][_0x4d1fb6[_0x206e45(0x1af)]]||0x0)+0x1,_0x33dc78['byTool'][_0x4d1fb6[_0x206e45(0x18d)]]=(_0x33dc78['byTool'][_0x4d1fb6[_0x206e45(0x18d)]]||0x0)+0x1,_0x33dc78[_0x206e45(0x19a)][_0x4d1fb6[_0x206e45(0x191)]]=(_0x33dc78['byAgent'][_0x4d1fb6[_0x206e45(0x191)]]||0x0)+0x1;const _0x3f06b5=this['calculateExecutionTime'](_0x4d1fb6);_0x3f06b5>0x0&&(_0xc5ac22+=_0x3f06b5,_0x23df76++);const _0x2781e1=new Date(_0x4d1fb6['createdAt'])[_0x206e45(0x195)]();(!_0x4dd8de||_0x2781e1<_0x4dd8de)&&(_0x4dd8de=_0x2781e1,_0x33dc78[_0x206e45(0x182)]=_0x4d1fb6['id']),(!_0x2aa9f5||_0x2781e1>_0x2aa9f5)&&(_0x2aa9f5=_0x2781e1,_0x33dc78['newestOperation']=_0x4d1fb6['id']);}return _0x33dc78['averageExecutionTime']=_0x23df76>0x0?Math['round'](_0xc5ac22/_0x23df76):0x0,_0x33dc78;}async[a0_0x580074(0x1d1)](_0x4c0cf4=0x36ee80){const _0x26d0a2=a0_0x580074,_0x34b6d3=Date[_0x26d0a2(0x1d6)]()-_0x4c0cf4,_0xabbfdb=[];for(const _0xfb2c5c of this['operations']['values']()){(_0xfb2c5c[_0x26d0a2(0x1af)]===TOOL_STATUS['COMPLETED']||_0xfb2c5c[_0x26d0a2(0x1af)]===TOOL_STATUS[_0x26d0a2(0x1cb)]||_0xfb2c5c[_0x26d0a2(0x1af)]===TOOL_STATUS[_0x26d0a2(0x18b)])&&new Date(_0xfb2c5c[_0x26d0a2(0x181)])[_0x26d0a2(0x195)]()<_0x34b6d3&&_0xabbfdb[_0x26d0a2(0x1bc)](_0xfb2c5c['id']);}for(const _0x3fa648 of _0xabbfdb){await this[_0x26d0a2(0x1bf)](_0x3fa648);}return this['logger']?.['debug']('Cleaned\x20up\x20'+_0xabbfdb[_0x26d0a2(0x1cc)]+'\x20completed\x20operations'),_0xabbfdb['length'];}['startMonitoring'](){const _0x307b7f=a0_0x580074;this[_0x307b7f(0x199)]&&clearInterval(this[_0x307b7f(0x199)]),this[_0x307b7f(0x199)]=setInterval(()=>{const _0x62f7e3=_0x307b7f;this[_0x62f7e3(0x19e)](),this['cleanupCompletedOperations']();},this['cleanupInterval']),this[_0x307b7f(0x187)]?.[_0x307b7f(0x1c7)]('Async\x20tool\x20manager\x20monitoring\x20started');}['stopMonitoring'](){const _0xd97359=a0_0x580074;this[_0xd97359(0x199)]&&(clearInterval(this['monitoringInterval']),this['monitoringInterval']=null),this['logger']?.['info'](_0xd97359(0x198));}[a0_0x580074(0x19e)](){const _0x41080c=a0_0x580074,_0x1d5a81=Date[_0x41080c(0x1d6)]();for(const _0xd7270c of this[_0x41080c(0x19d)][_0x41080c(0x1ab)]()){if(_0xd7270c['status']===TOOL_STATUS[_0x41080c(0x186)]||_0xd7270c[_0x41080c(0x1af)]===TOOL_STATUS['PENDING']){const _0x52948c=new Date(_0xd7270c['createdAt'])['getTime']();_0x1d5a81-_0x52948c>_0xd7270c[_0x41080c(0x18c)]&&this[_0x41080c(0x19b)](_0xd7270c);}}}['setOperationTimeout'](_0x520f11){const _0x3ff594=a0_0x580074,_0xf45b1c=this[_0x3ff594(0x19d)][_0x3ff594(0x197)](_0x520f11);if(!_0xf45b1c)return;_0xf45b1c[_0x3ff594(0x1c2)]=setTimeout(()=>{const _0x1b39aa=_0x3ff594;this[_0x1b39aa(0x19b)](_0xf45b1c);},_0xf45b1c[_0x3ff594(0x18c)]);}['clearOperationTimeout'](_0x19d59e){const _0x3d9158=a0_0x580074,_0x151b2b=this['operations'][_0x3d9158(0x197)](_0x19d59e);_0x151b2b&&_0x151b2b['timeoutHandle']&&(clearTimeout(_0x151b2b['timeoutHandle']),delete _0x151b2b[_0x3d9158(0x1c2)]);}['generateOperationId'](){const _0x58dc85=a0_0x580074,_0x151ec1=Date[_0x58dc85(0x1d6)]()[_0x58dc85(0x1d7)](0x24),_0x2c394c=Math[_0x58dc85(0x1c8)]()['toString'](0x24)['substr'](0x2,0x9);return'op-'+_0x151ec1+'-'+_0x2c394c;}['calculateExecutionTime'](_0xa45e65){const _0x146b5c=a0_0x580074;if(!_0xa45e65[_0x146b5c(0x1b1)])return 0x0;const _0x3425ee=_0xa45e65['completedAt']?new Date(_0xa45e65['completedAt'])[_0x146b5c(0x195)]():Date['now']();return _0x3425ee-new Date(_0xa45e65[_0x146b5c(0x1b1)])[_0x146b5c(0x195)]();}async[a0_0x580074(0x1bf)](_0xc81afc){const _0x1c889d=a0_0x580074,_0x236275=this['operations'][_0x1c889d(0x197)](_0xc81afc);if(!_0x236275)return;this[_0x1c889d(0x1bb)](_0xc81afc),this[_0x1c889d(0x17e)][_0x1c889d(0x1bc)]({..._0x236275,'executionTime':this['calculateExecutionTime'](_0x236275),'cleanedUpAt':new Date()['toISOString']()}),this['operationHistory'][_0x1c889d(0x1cc)]>this[_0x1c889d(0x18a)]&&(this['operationHistory']=this['operationHistory']['slice'](-this[_0x1c889d(0x18a)])),this['operations']['delete'](_0xc81afc),this[_0x1c889d(0x1a3)]('operation:cleanup',{'operationId':_0xc81afc,'toolId':_0x236275['toolId']});}[a0_0x580074(0x1d4)](_0x15f757){const _0x2be92c=a0_0x580074;this['logger']?.['debug'](_0x2be92c(0x1ce)+_0x15f757['id'],{'toolId':_0x15f757['toolId'],'agentId':_0x15f757[_0x2be92c(0x191)]});}async[a0_0x580074(0x1a2)](_0x4e1f96){const _0x1fd0dd=a0_0x580074;this['logger']?.[_0x1fd0dd(0x1c7)](_0x1fd0dd(0x1ac)+_0x4e1f96['id'],{'toolId':_0x4e1f96['toolId'],'agentId':_0x4e1f96['agentId'],'executionTime':this['calculateExecutionTime'](_0x4e1f96)}),setTimeout(()=>this['cleanupOperation'](_0x4e1f96['id']),0x7530);}async[a0_0x580074(0x1b0)](_0x182d93){const _0x32eaa3=a0_0x580074;this[_0x32eaa3(0x187)]?.['error']('Operation\x20failed:\x20'+_0x182d93['id'],{'toolId':_0x182d93['toolId'],'agentId':_0x182d93[_0x32eaa3(0x191)],'error':_0x182d93[_0x32eaa3(0x1c5)],'executionTime':this[_0x32eaa3(0x19f)](_0x182d93),'retryCount':_0x182d93[_0x32eaa3(0x1b8)]}),_0x182d93['retryCount']<_0x182d93[_0x32eaa3(0x1c1)]?setTimeout(()=>this[_0x32eaa3(0x1a4)](_0x182d93['id']),0x1388):setTimeout(()=>this['cleanupOperation'](_0x182d93['id']),0xea60);}async[a0_0x580074(0x19b)](_0x3db7ea){const _0x187458=a0_0x580074;this[_0x187458(0x187)]?.['warn']('Operation\x20timed\x20out:\x20'+_0x3db7ea['id'],{'toolId':_0x3db7ea[_0x187458(0x18d)],'agentId':_0x3db7ea[_0x187458(0x191)],'timeout':_0x3db7ea['timeout'],'executionTime':this['calculateExecutionTime'](_0x3db7ea)}),this[_0x187458(0x1b6)](_0x3db7ea['id'],TOOL_STATUS['TIMEOUT'],{'error':'Operation\x20timed\x20out\x20after\x20'+_0x3db7ea[_0x187458(0x18c)]+'ms'}),this['emit'](_0x187458(0x183),_0x3db7ea),setTimeout(()=>this[_0x187458(0x1bf)](_0x3db7ea['id']),0x7530);}async['shutdown'](){const _0x33f2b7=a0_0x580074;this['isShuttingDown']=!![],this[_0x33f2b7(0x187)]?.['info']('Shutting down async tool manager...'),this['stopMonitoring']();const _0x14922c=[];for(const _0x1a3795 of this['operations']['values']()){(_0x1a3795['status']===TOOL_STATUS[_0x33f2b7(0x1d5)]||_0x1a3795['status']===TOOL_STATUS[_0x33f2b7(0x186)])&&_0x14922c['push'](_0x1a3795['id']);}for(const _0x3fdb09 of _0x14922c){await this['cancelOperation'](_0x3fdb09,_0x33f2b7(0x1b4));}this['operations'][_0x33f2b7(0x189)](),this['logger']?.[_0x33f2b7(0x1c7)]('Async\x20tool\x20manager\x20shutdown\x20complete.\x20Cancelled\x20'+_0x14922c['length']+'\x20operations.');}[a0_0x580074(0x19c)](_0x4986ca={}){const _0x1694ee=a0_0x580074;let _0x5a8bf3=[...this['operationHistory']];return _0x4986ca['agentId']&&(_0x5a8bf3=_0x5a8bf3['filter'](_0x338209=>_0x338209[_0x1694ee(0x191)]===_0x4986ca[_0x1694ee(0x191)])),_0x4986ca[_0x1694ee(0x18d)]&&(_0x5a8bf3=_0x5a8bf3['filter'](_0x240458=>_0x240458['toolId']===_0x4986ca[_0x1694ee(0x18d)])),_0x4986ca[_0x1694ee(0x1af)]&&(_0x5a8bf3=_0x5a8bf3[_0x1694ee(0x1ba)](_0x5163ad=>_0x5163ad[_0x1694ee(0x1af)]===_0x4986ca['status'])),_0x4986ca['limit']&&(_0x5a8bf3=_0x5a8bf3[_0x1694ee(0x188)](-_0x4986ca[_0x1694ee(0x1b7)])),_0x5a8bf3[_0x1694ee(0x18f)]((_0x52d3df,_0x141234)=>new Date(_0x141234['createdAt'])-new Date(_0x52d3df[_0x1694ee(0x1a0)]));}}export default AsyncToolManager;
1
+ const a0_0xed75d5=a0_0x3517;function a0_0x3844(){const _0x53f412=['zw1PDa','z2v0','y2XLyw51Ce9WzxjHDgLVBG','yMLUza','Dg9VBeLK','BM93','BgLTAxq','z2vUzxjHDgvpCgvYyxrPB25jza','CMvZDwX0','u3LZDgvTihnODxrKB3DU','C2v0','q2fUBM90ignHBMnLBcbJB21WBgv0zwqVzMfPBgvKig9WzxjHDgLVBJOG','C3rHDhvZ','y2fSy3vSyxrLrxHLy3v0Aw9UvgLTzq','mLb1zhnQrq','Dg9ju09tDhjPBMC','t3bLCMf0Aw9UihrPBwvKig91DcbHzNrLCIa','zgvMyxvSDfrPBwvVDxq','B3bLCMf0Aw9UoMzHAwXLza','ChvZAa','z2v0qwDLBNrpCgvYyxrPB25Z','yNLtDgf0Dxm','Bg9Nz2vY','y2XLyw51CeLUDgvYDMfS','B2XKzxn0t3bLCMf0Aw9U','DMfSDwvZ','ywDLBNrjza','ndi2otCWnKv2BgrwvG','B3bLCMf0Aw9UoNjLDhj5','z2v0vgLTzq','CMfUzg9T','z2v0u3rHDgLZDgLJCW','veLnru9vva','odyWEe16CfLZ','B3bLCMf0Aw9UoMnVBxbSzxrLza','ndi0nte1nNnkAgT1yW','AgfUzgXLt3bLCMf0Aw9UrMfPBgvK','BMv3zxn0t3bLCMf0Aw9U','nda4mJmXEvHYzeXH','qxn5BMmGDg9VBcbTyw5Hz2vYihnODxrKB3DUignVBxbSzxrLlIbdyw5JzwXSzwqG','C2v0t3bLCMf0Aw9UvgLTzw91Da','mtm2uuDjrvjp','y3jLyxrLzef0','nte5ouHztfHsAG','rKfjteve','y29TCgXLDgvKqxq','uevoreLorW','CMv0CNLpCgvYyxrPB24','CMv0CNLdB3vUDa','rvHfq1vusu5h','q2XLyw5Lzcb1Cca','C3rVCe1VBML0B3jPBMC','zgvSzxrL','t3bLCMf0Aw9UihrPBwvKig91DdOG','zgvIDwC','BgvUz3rO','AgfUzgXLt3bLCMf0Aw9Uu3rHCNrLza','zMLSDgvY','y2XLyxjpCgvYyxrPB25uAw1LB3v0','ndyWotbeALzkwuG','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','C3rHCNrLzef0','yNLbz2vUDa','yxzLCMfNzuv4zwn1DgLVBLrPBwu','B3bLCMf0Aw9UsgLZDg9YEq','q2fUBM90ihjLDhj5ig5VBI1MywLSzwqGB3bLCMf0Aw9UoIa','Bwf4uMv0CMLLCW','Bwf4sgLZDg9YEvnPEMu','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rHCNrLza','qxn5BMmGB3bLCMf0Aw9Uihn0yxj0zwq6ia','C3rHCNrpCgvYyxrPB24','t3bLCMf0Aw9UignHBMnLBgXLzdOG','zxjYB3i','AgfUzgXLt3bLCMf0Aw9UvgLTzw91Da','mJCXn1DpyKHquW','DxbKyxrLt3bLCMf0Aw9U','CM91BMq','D2fYBG','mZqXndi2yLzrrLz2','y29UzMLN','DgLTzw91DeHHBMrSzq','Bw9UAxrVCMLUz0LUDgvYDMfS','ChjVz3jLC3m','B3bLCMf0Aw9UCW','y2HLy2TpCgvYyxrPB25uAw1LB3v0CW','DgLTzw91Da','C2XPy2u','Aw5MBW','B3bLCMf0Aw9UoMnHBMnLBgXLza','AgfUzgXLt3bLCMf0Aw9Uq29TCgXLDgvK','y2fUy2vSt3bLCMf0Aw9U','mJK1nty4nwrjuxnqDa','C2H1DgrVD24','y2XLyw51CenVBxbSzxrLze9WzxjHDgLVBNm','t3bLCMf0Aw9UignVBxbSzxrLzdOG','q0foq0vmteve','q09nueXfveve','B3bLCMf0Aw9UoNn0yxj0zwq','C3rHCNrnB25PDg9YAw5N'];a0_0x3844=function(){return _0x53f412;};return a0_0x3844();}(function(_0x51bb0c,_0x129ad8){const _0x279fd5=a0_0x3517,_0x590a8a=_0x51bb0c();while(!![]){try{const _0x1dd300=-parseInt(_0x279fd5(0xee))/0x1*(parseInt(_0x279fd5(0x12e))/0x2)+parseInt(_0x279fd5(0x10b))/0x3*(-parseInt(_0x279fd5(0x101))/0x4)+-parseInt(_0x279fd5(0x13b))/0x5+-parseInt(_0x279fd5(0x103))/0x6+parseInt(_0x279fd5(0xfb))/0x7+parseInt(_0x279fd5(0x109))/0x8*(parseInt(_0x279fd5(0x106))/0x9)+-parseInt(_0x279fd5(0x11b))/0xa*(-parseInt(_0x279fd5(0x12a))/0xb);if(_0x1dd300===_0x129ad8)break;else _0x590a8a['push'](_0x590a8a['shift']());}catch(_0x3bbce4){_0x590a8a['push'](_0x590a8a['shift']());}}}(a0_0x3844,0x7bbb0));import a0_0x2af827 from'events';function a0_0x3517(_0x4f8f03,_0x4eeff6){_0x4f8f03=_0x4f8f03-0xeb;const _0x384490=a0_0x3844();let _0x3517c8=_0x384490[_0x4f8f03];if(a0_0x3517['YbsoyY']===undefined){var _0x2d2518=function(_0x2e4cde){const _0x5ad2f8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2af827='',_0x48578b='';for(let _0x16698a=0x0,_0x2af1d0,_0x5c6f8c,_0x28335e=0x0;_0x5c6f8c=_0x2e4cde['charAt'](_0x28335e++);~_0x5c6f8c&&(_0x2af1d0=_0x16698a%0x4?_0x2af1d0*0x40+_0x5c6f8c:_0x5c6f8c,_0x16698a++%0x4)?_0x2af827+=String['fromCharCode'](0xff&_0x2af1d0>>(-0x2*_0x16698a&0x6)):0x0){_0x5c6f8c=_0x5ad2f8['indexOf'](_0x5c6f8c);}for(let _0x41ed39=0x0,_0xc9b303=_0x2af827['length'];_0x41ed39<_0xc9b303;_0x41ed39++){_0x48578b+='%'+('00'+_0x2af827['charCodeAt'](_0x41ed39)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x48578b);};a0_0x3517['KcWxli']=_0x2d2518,a0_0x3517['gbXLuy']={},a0_0x3517['YbsoyY']=!![];}const _0x520675=_0x384490[0x0],_0x2c8049=_0x4f8f03+_0x520675,_0x41d24d=a0_0x3517['gbXLuy'][_0x2c8049];return!_0x41d24d?(_0x3517c8=a0_0x3517['KcWxli'](_0x3517c8),a0_0x3517['gbXLuy'][_0x2c8049]=_0x3517c8):_0x3517c8=_0x41d24d,_0x3517c8;}import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AsyncToolManager extends a0_0x2af827{constructor(_0x48578b={},_0x16698a=null){const _0x4ddcde=a0_0x3517;super(),this[_0x4ddcde(0x12f)]=_0x48578b,this['logger']=_0x16698a,this['operations']=new Map(),this['operationHistory']=[],this[_0x4ddcde(0x11c)]=_0x48578b['maxConcurrentOperations']||0xa,this[_0x4ddcde(0xf1)]=_0x48578b[_0x4ddcde(0xf1)]||0x493e0,this[_0x4ddcde(0xf7)]=_0x48578b['cleanupInterval']||0xea60,this[_0x4ddcde(0x123)]=_0x48578b[_0x4ddcde(0x123)]||0x3e8,this['monitoringInterval']=null,this['isShuttingDown']=![],this[_0x4ddcde(0x142)](),this['on'](_0x4ddcde(0x141),this[_0x4ddcde(0x118)]['bind'](this)),this['on']('operation:completed',this['handleOperationCompleted']['bind'](this)),this['on']('operation:failed',this[_0x4ddcde(0x104)][_0x4ddcde(0x146)](this)),this['on']('operation:timeout',this['handleOperationTimeout']['bind'](this));}async[a0_0xed75d5(0x126)](_0x2af1d0,_0x5c6f8c,_0x28335e,_0x41ed39={}){const _0x4689f5=a0_0xed75d5;if(this['operations']['size']>=this[_0x4689f5(0x11c)])throw new Error('Maximum\x20concurrent\x20operations\x20reached\x20('+this[_0x4689f5(0x11c)]+')');const _0xc9b303=this['generateOperationId'](),_0x32bb86={'id':_0xc9b303,'toolId':_0x2af1d0,'agentId':_0x5c6f8c,'parameters':_0x28335e,'context':_0x41ed39,'status':TOOL_STATUS['PENDING'],'createdAt':new Date()[_0x4689f5(0xef)](),'startedAt':null,'completedAt':null,'timeout':_0x41ed39['timeout']||this['defaultTimeout'],'result':null,'error':null,'progress':null,'retryCount':0x0,'maxRetries':_0x41ed39['maxRetries']||0x0};return this['operations'][_0x4689f5(0x14d)](_0xc9b303,_0x32bb86),this['logger']?.[_0x4689f5(0x137)](_0x4689f5(0x125)+_0xc9b303,{'toolId':_0x2af1d0,'agentId':_0x5c6f8c,'parametersCount':Object['keys'](_0x28335e)[_0x4689f5(0x117)],'timeout':_0x32bb86['timeout']}),this[_0x4689f5(0x108)](_0xc9b303),this['emit']('operation:started',_0x32bb86),_0xc9b303;}[a0_0xed75d5(0x12b)](_0xce7ff1,_0x374e65,_0x1828de={}){const _0x53dcef=a0_0xed75d5,_0x36f203=this['operations'][_0x53dcef(0x144)](_0xce7ff1);if(!_0x36f203)return this['logger']?.['warn']('Attempted\x20to\x20update\x20unknown\x20operation:\x20'+_0xce7ff1),![];const _0x55c304=_0x36f203[_0x53dcef(0xec)];_0x36f203[_0x53dcef(0xec)]=_0x374e65;_0x374e65===TOOL_STATUS['EXECUTING']&&!_0x36f203[_0x53dcef(0x11d)]&&(_0x36f203[_0x53dcef(0x11d)]=new Date()[_0x53dcef(0xef)]());(_0x374e65===TOOL_STATUS['COMPLETED']||_0x374e65===TOOL_STATUS['FAILED'])&&(_0x36f203[_0x53dcef(0x10d)]=new Date()[_0x53dcef(0xef)]());if(_0x1828de['result']!==undefined)_0x36f203['result']=_0x1828de['result'];if(_0x1828de['error']!==undefined)_0x36f203['error']=_0x1828de['error'];if(_0x1828de['progress']!==undefined)_0x36f203['progress']=_0x1828de[_0x53dcef(0x132)];this[_0x53dcef(0xf6)]?.[_0x53dcef(0x116)]('Operation\x20status\x20updated:\x20'+_0xce7ff1,{'previousStatus':_0x55c304,'newStatus':_0x374e65,'hasResult':!!_0x1828de[_0x53dcef(0x14b)],'hasError':!!_0x1828de['error'],'progress':_0x1828de['progress']});switch(_0x374e65){case TOOL_STATUS[_0x53dcef(0x140)]:this[_0x53dcef(0x143)](_0x53dcef(0x102),_0x36f203);break;case TOOL_STATUS[_0x53dcef(0x10c)]:this['emit'](_0x53dcef(0xf2),_0x36f203);break;case TOOL_STATUS['EXECUTING']:this[_0x53dcef(0x143)]('operation:progress',_0x36f203);break;}return!![];}['getOperation'](_0x229665){const _0x31341d=a0_0xed75d5,_0x39411f=this['operations'][_0x31341d(0x144)](_0x229665);if(!_0x39411f)return null;return{'id':_0x39411f['id'],'toolId':_0x39411f[_0x31341d(0x147)],'agentId':_0x39411f[_0x31341d(0xfa)],'status':_0x39411f[_0x31341d(0xec)],'createdAt':_0x39411f['createdAt'],'startedAt':_0x39411f['startedAt'],'completedAt':_0x39411f['completedAt'],'result':_0x39411f[_0x31341d(0x14b)],'error':_0x39411f[_0x31341d(0x128)],'progress':_0x39411f[_0x31341d(0x132)],'retryCount':_0x39411f[_0x31341d(0x110)],'executionTime':this[_0x31341d(0xed)](_0x39411f)};}[a0_0xed75d5(0xf4)](_0x2494e1){const _0x17efd3=a0_0xed75d5,_0x228d52=[];for(const _0xd8f476 of this[_0x17efd3(0x133)][_0x17efd3(0xf9)]()){_0xd8f476[_0x17efd3(0xfa)]===_0x2494e1&&_0x228d52['push'](this['getOperation'](_0xd8f476['id']));}return _0x228d52['sort']((_0x2f1332,_0x394fc1)=>new Date(_0x394fc1[_0x17efd3(0x10a)])-new Date(_0x2f1332['createdAt']));}async['cancelOperation'](_0x24f628,_0x243827='Operation\x20cancelled'){const _0x2fbeaa=a0_0xed75d5,_0x39eafb=this[_0x2fbeaa(0x133)][_0x2fbeaa(0x144)](_0x24f628);if(!_0x39eafb)return![];if(_0x39eafb['status']===TOOL_STATUS['COMPLETED']||_0x39eafb['status']===TOOL_STATUS[_0x2fbeaa(0x10c)])return this[_0x2fbeaa(0xf6)]?.[_0x2fbeaa(0x12d)](_0x2fbeaa(0xeb)+_0x24f628),![];return this[_0x2fbeaa(0x12b)](_0x24f628,TOOL_STATUS['CANCELLED'],{'error':_0x243827}),this[_0x2fbeaa(0x11a)](_0x24f628),this['emit'](_0x2fbeaa(0x138),_0x39eafb),await this['cleanupOperation'](_0x24f628),this[_0x2fbeaa(0xf6)]?.[_0x2fbeaa(0x137)](_0x2fbeaa(0x127)+_0x24f628,{'reason':_0x243827}),!![];}async[a0_0xed75d5(0x10f)](_0x5c2199){const _0x3482a7=a0_0xed75d5,_0x30f2ee=this[_0x3482a7(0x133)]['get'](_0x5c2199);if(!_0x30f2ee)return![];if(_0x30f2ee['status']!==TOOL_STATUS[_0x3482a7(0x10c)])return this['logger']?.[_0x3482a7(0x12d)](_0x3482a7(0x121)+_0x5c2199),![];if(_0x30f2ee[_0x3482a7(0x110)]>=_0x30f2ee['maxRetries'])return this[_0x3482a7(0xf6)]?.['warn']('Maximum\x20retries\x20exceeded\x20for\x20operation:\x20'+_0x5c2199),![];return _0x30f2ee[_0x3482a7(0x110)]++,_0x30f2ee['status']=TOOL_STATUS[_0x3482a7(0x10e)],_0x30f2ee[_0x3482a7(0x11d)]=null,_0x30f2ee['completedAt']=null,_0x30f2ee[_0x3482a7(0x128)]=null,_0x30f2ee['result']=null,this[_0x3482a7(0x108)](_0x5c2199),this['logger']?.['info']('Operation\x20retry\x20initiated:\x20'+_0x5c2199,{'retryCount':_0x30f2ee[_0x3482a7(0x110)],'maxRetries':_0x30f2ee['maxRetries']}),this[_0x3482a7(0x143)](_0x3482a7(0xfc),_0x30f2ee),!![];}[a0_0xed75d5(0xff)](){const _0x1027aa=a0_0xed75d5,_0x4222ce={'total':this['operations']['size'],'byStatus':{},'byTool':{},'byAgent':{},'averageExecutionTime':0x0,'oldestOperation':null,'newestOperation':null};let _0x1a0839=0x0,_0x5701e5=0x0,_0x795e90=null,_0x5908ff=null;for(const _0x4a67f3 of this['operations']['values']()){_0x4222ce[_0x1027aa(0xf5)][_0x4a67f3['status']]=(_0x4222ce['byStatus'][_0x4a67f3['status']]||0x0)+0x1,_0x4222ce['byTool'][_0x4a67f3[_0x1027aa(0x147)]]=(_0x4222ce['byTool'][_0x4a67f3[_0x1027aa(0x147)]]||0x0)+0x1,_0x4222ce['byAgent'][_0x4a67f3['agentId']]=(_0x4222ce[_0x1027aa(0x11e)][_0x4a67f3['agentId']]||0x0)+0x1;const _0x2fc600=this['calculateExecutionTime'](_0x4a67f3);_0x2fc600>0x0&&(_0x1a0839+=_0x2fc600,_0x5701e5++);const _0x3fc5ef=new Date(_0x4a67f3['createdAt'])['getTime']();(!_0x795e90||_0x3fc5ef<_0x795e90)&&(_0x795e90=_0x3fc5ef,_0x4222ce[_0x1027aa(0xf8)]=_0x4a67f3['id']),(!_0x5908ff||_0x3fc5ef>_0x5908ff)&&(_0x5908ff=_0x3fc5ef,_0x4222ce[_0x1027aa(0x105)]=_0x4a67f3['id']);}return _0x4222ce[_0x1027aa(0x11f)]=_0x5701e5>0x0?Math[_0x1027aa(0x12c)](_0x1a0839/_0x5701e5):0x0,_0x4222ce;}async[a0_0xed75d5(0x13d)](_0x16834e=0x36ee80){const _0x1efbb9=a0_0xed75d5,_0x2ba79d=Date[_0x1efbb9(0x148)]()-_0x16834e,_0x427ba1=[];for(const _0x5e2c2a of this['operations']['values']()){(_0x5e2c2a['status']===TOOL_STATUS[_0x1efbb9(0x140)]||_0x5e2c2a['status']===TOOL_STATUS[_0x1efbb9(0x10c)]||_0x5e2c2a['status']===TOOL_STATUS[_0x1efbb9(0x13f)])&&new Date(_0x5e2c2a['completedAt'])[_0x1efbb9(0xfd)]()<_0x2ba79d&&_0x427ba1[_0x1efbb9(0xf3)](_0x5e2c2a['id']);}for(const _0x5c9d1a of _0x427ba1){await this[_0x1efbb9(0x145)](_0x5c9d1a);}return this['logger']?.[_0x1efbb9(0x116)](_0x1efbb9(0x112)+_0x427ba1[_0x1efbb9(0x117)]+'\x20completed\x20operations'),_0x427ba1[_0x1efbb9(0x117)];}['startMonitoring'](){const _0x2f7f27=a0_0xed75d5;this[_0x2f7f27(0x131)]&&clearInterval(this['monitoringInterval']),this[_0x2f7f27(0x131)]=setInterval(()=>{const _0x6cba7f=_0x2f7f27;this[_0x6cba7f(0x134)](),this['cleanupCompletedOperations']();},this['cleanupInterval']),this['logger']?.[_0x2f7f27(0x137)](_0x2f7f27(0x124));}[a0_0xed75d5(0x113)](){const _0x1f5294=a0_0xed75d5;this[_0x1f5294(0x131)]&&(clearInterval(this['monitoringInterval']),this['monitoringInterval']=null),this[_0x1f5294(0xf6)]?.['info']('Async\x20tool\x20manager\x20monitoring\x20stopped');}[a0_0xed75d5(0x134)](){const _0x18d00a=a0_0xed75d5,_0x29a954=Date['now']();for(const _0x37f5a2 of this['operations'][_0x18d00a(0xf9)]()){if(_0x37f5a2['status']===TOOL_STATUS[_0x18d00a(0x111)]||_0x37f5a2[_0x18d00a(0xec)]===TOOL_STATUS[_0x18d00a(0x10e)]){const _0x459fac=new Date(_0x37f5a2['createdAt'])[_0x18d00a(0xfd)]();_0x29a954-_0x459fac>_0x37f5a2[_0x18d00a(0x135)]&&this['handleOperationTimeout'](_0x37f5a2);}}}['setOperationTimeout'](_0x5279f6){const _0x10dd3b=a0_0xed75d5,_0x6f9e44=this[_0x10dd3b(0x133)][_0x10dd3b(0x144)](_0x5279f6);if(!_0x6f9e44)return;_0x6f9e44[_0x10dd3b(0x130)]=setTimeout(()=>{const _0x120da5=_0x10dd3b;this[_0x120da5(0x129)](_0x6f9e44);},_0x6f9e44['timeout']);}['clearOperationTimeout'](_0x3d8513){const _0x4daa6c=a0_0xed75d5,_0x55e6c0=this[_0x4daa6c(0x133)][_0x4daa6c(0x144)](_0x3d8513);_0x55e6c0&&_0x55e6c0[_0x4daa6c(0x130)]&&(clearTimeout(_0x55e6c0[_0x4daa6c(0x130)]),delete _0x55e6c0[_0x4daa6c(0x130)]);}[a0_0xed75d5(0x14a)](){const _0x376564=a0_0xed75d5,_0x420066=Date['now']()['toString'](0x24),_0x1699ca=Math[_0x376564(0xfe)]()['toString'](0x24)['substr'](0x2,0x9);return'op-'+_0x420066+'-'+_0x1699ca;}['calculateExecutionTime'](_0xfa5a7){const _0x1bb56d=a0_0xed75d5;if(!_0xfa5a7[_0x1bb56d(0x11d)])return 0x0;const _0x4680ee=_0xfa5a7[_0x1bb56d(0x10d)]?new Date(_0xfa5a7['completedAt'])['getTime']():Date[_0x1bb56d(0x148)]();return _0x4680ee-new Date(_0xfa5a7[_0x1bb56d(0x11d)])['getTime']();}async['cleanupOperation'](_0x36c011){const _0x3469d7=a0_0xed75d5,_0x1b0877=this['operations']['get'](_0x36c011);if(!_0x1b0877)return;this[_0x3469d7(0x11a)](_0x36c011),this['operationHistory'][_0x3469d7(0xf3)]({..._0x1b0877,'executionTime':this[_0x3469d7(0xed)](_0x1b0877),'cleanedUpAt':new Date()['toISOString']()}),this[_0x3469d7(0x120)][_0x3469d7(0x117)]>this['maxHistorySize']&&(this[_0x3469d7(0x120)]=this['operationHistory'][_0x3469d7(0x136)](-this['maxHistorySize'])),this[_0x3469d7(0x133)][_0x3469d7(0x114)](_0x36c011),this['emit']('operation:cleanup',{'operationId':_0x36c011,'toolId':_0x1b0877['toolId']});}[a0_0xed75d5(0x118)](_0x287776){const _0x4ca096=a0_0xed75d5;this['logger']?.[_0x4ca096(0x116)]('Operation\x20started:\x20'+_0x287776['id'],{'toolId':_0x287776['toolId'],'agentId':_0x287776[_0x4ca096(0xfa)]});}async[a0_0xed75d5(0x139)](_0x28318e){const _0x39dc99=a0_0xed75d5;this[_0x39dc99(0xf6)]?.[_0x39dc99(0x137)](_0x39dc99(0x13e)+_0x28318e['id'],{'toolId':_0x28318e['toolId'],'agentId':_0x28318e['agentId'],'executionTime':this['calculateExecutionTime'](_0x28318e)}),setTimeout(()=>this['cleanupOperation'](_0x28318e['id']),0x7530);}async['handleOperationFailed'](_0x3ad2df){const _0x2fe94b=a0_0xed75d5;this[_0x2fe94b(0xf6)]?.['error']('Operation\x20failed:\x20'+_0x3ad2df['id'],{'toolId':_0x3ad2df[_0x2fe94b(0x147)],'agentId':_0x3ad2df[_0x2fe94b(0xfa)],'error':_0x3ad2df['error'],'executionTime':this['calculateExecutionTime'](_0x3ad2df),'retryCount':_0x3ad2df['retryCount']}),_0x3ad2df[_0x2fe94b(0x110)]<_0x3ad2df[_0x2fe94b(0x122)]?setTimeout(()=>this[_0x2fe94b(0x10f)](_0x3ad2df['id']),0x1388):setTimeout(()=>this[_0x2fe94b(0x145)](_0x3ad2df['id']),0xea60);}async['handleOperationTimeout'](_0x360e42){const _0x248a43=a0_0xed75d5;this[_0x248a43(0xf6)]?.['warn'](_0x248a43(0x115)+_0x360e42['id'],{'toolId':_0x360e42['toolId'],'agentId':_0x360e42['agentId'],'timeout':_0x360e42['timeout'],'executionTime':this[_0x248a43(0xed)](_0x360e42)}),this['updateOperation'](_0x360e42['id'],TOOL_STATUS[_0x248a43(0x100)],{'error':_0x248a43(0xf0)+_0x360e42[_0x248a43(0x135)]+'ms'}),this['emit']('operation:timeout',_0x360e42),setTimeout(()=>this['cleanupOperation'](_0x360e42['id']),0x7530);}async[a0_0xed75d5(0x13c)](){const _0x509833=a0_0xed75d5;this['isShuttingDown']=!![],this['logger']?.[_0x509833(0x137)]('Shutting down async tool manager...'),this[_0x509833(0x113)]();const _0x4e3461=[];for(const _0x1d2573 of this['operations'][_0x509833(0xf9)]()){(_0x1d2573['status']===TOOL_STATUS[_0x509833(0x10e)]||_0x1d2573[_0x509833(0xec)]===TOOL_STATUS['EXECUTING'])&&_0x4e3461['push'](_0x1d2573['id']);}for(const _0x4d4e28 of _0x4e3461){await this[_0x509833(0x13a)](_0x4d4e28,_0x509833(0x14c));}this['operations']['clear'](),this[_0x509833(0xf6)]?.['info'](_0x509833(0x107)+_0x4e3461[_0x509833(0x117)]+'\x20operations.');}['getOperationHistory'](_0x2f0495={}){const _0x340b2e=a0_0xed75d5;let _0x5f9c46=[...this[_0x340b2e(0x120)]];return _0x2f0495[_0x340b2e(0xfa)]&&(_0x5f9c46=_0x5f9c46[_0x340b2e(0x119)](_0x5dd6b1=>_0x5dd6b1[_0x340b2e(0xfa)]===_0x2f0495['agentId'])),_0x2f0495[_0x340b2e(0x147)]&&(_0x5f9c46=_0x5f9c46['filter'](_0x549439=>_0x549439[_0x340b2e(0x147)]===_0x2f0495[_0x340b2e(0x147)])),_0x2f0495['status']&&(_0x5f9c46=_0x5f9c46['filter'](_0x570fff=>_0x570fff['status']===_0x2f0495[_0x340b2e(0xec)])),_0x2f0495[_0x340b2e(0x149)]&&(_0x5f9c46=_0x5f9c46['slice'](-_0x2f0495[_0x340b2e(0x149)])),_0x5f9c46['sort']((_0x2f44c6,_0x52cf8b)=>new Date(_0x52cf8b[_0x340b2e(0x10a)])-new Date(_0x2f44c6[_0x340b2e(0x10a)]));}}export default AsyncToolManager;
@@ -1 +1 @@
1
- const a0_0x510bb4=a0_0x1933;function a0_0x1933(_0x17db54,_0x4175d6){_0x17db54=_0x17db54-0xcc;const _0x1a27f0=a0_0x1a27();let _0x1933c0=_0x1a27f0[_0x17db54];if(a0_0x1933['XNqOrv']===undefined){var _0x282e35=function(_0x1692d0){const _0x381f8f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xce4b3a='',_0x474723='';for(let _0x47c8b2=0x0,_0x10dc94,_0x15161f,_0x2551b7=0x0;_0x15161f=_0x1692d0['charAt'](_0x2551b7++);~_0x15161f&&(_0x10dc94=_0x47c8b2%0x4?_0x10dc94*0x40+_0x15161f:_0x15161f,_0x47c8b2++%0x4)?_0xce4b3a+=String['fromCharCode'](0xff&_0x10dc94>>(-0x2*_0x47c8b2&0x6)):0x0){_0x15161f=_0x381f8f['indexOf'](_0x15161f);}for(let _0x214d25=0x0,_0x582072=_0xce4b3a['length'];_0x214d25<_0x582072;_0x214d25++){_0x474723+='%'+('00'+_0xce4b3a['charCodeAt'](_0x214d25)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x474723);};a0_0x1933['qZSYwK']=_0x282e35,a0_0x1933['OxuaLL']={},a0_0x1933['XNqOrv']=!![];}const _0x1d9f22=_0x1a27f0[0x0],_0x2e7bd2=_0x17db54+_0x1d9f22,_0x3b4287=a0_0x1933['OxuaLL'][_0x2e7bd2];return!_0x3b4287?(_0x1933c0=a0_0x1933['qZSYwK'](_0x1933c0),a0_0x1933['OxuaLL'][_0x2e7bd2]=_0x1933c0):_0x1933c0=_0x3b4287,_0x1933c0;}(function(_0x14142e,_0x2bf672){const _0x32028f=a0_0x1933,_0x388c81=_0x14142e();while(!![]){try{const _0x5e2f63=-parseInt(_0x32028f(0x118))/0x1*(-parseInt(_0x32028f(0xd2))/0x2)+-parseInt(_0x32028f(0x133))/0x3*(-parseInt(_0x32028f(0x103))/0x4)+parseInt(_0x32028f(0x13d))/0x5*(-parseInt(_0x32028f(0x137))/0x6)+-parseInt(_0x32028f(0xf1))/0x7+parseInt(_0x32028f(0xd7))/0x8+-parseInt(_0x32028f(0x125))/0x9*(parseInt(_0x32028f(0x12b))/0xa)+-parseInt(_0x32028f(0x109))/0xb;if(_0x5e2f63===_0x2bf672)break;else _0x388c81['push'](_0x388c81['shift']());}catch(_0x3674f2){_0x388c81['push'](_0x388c81['shift']());}}}(a0_0x1a27,0x4dae6));import{TOOL_STATUS,OPERATION_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BaseTool{constructor(_0xce4b3a={},_0x474723=null){const _0x3a0dcb=a0_0x1933;this['id']=this[_0x3a0dcb(0xd8)]['name']['toLowerCase']()['replace'](_0x3a0dcb(0xe2),''),this['config']=_0xce4b3a,this['logger']=_0x474723,this['requiresProject']=![],this['isAsync']=![],this[_0x3a0dcb(0x130)]=_0xce4b3a[_0x3a0dcb(0x130)]||SYSTEM_DEFAULTS[_0x3a0dcb(0xf7)],this['maxConcurrentOperations']=_0xce4b3a['maxConcurrentOperations']||0x1,this[_0x3a0dcb(0xf4)]=new Map(),this[_0x3a0dcb(0xdf)]=[],this['isEnabled']=_0xce4b3a[_0x3a0dcb(0xdb)]!==![],this[_0x3a0dcb(0x142)]=null,this['usageCount']=0x0;}['getDescription'](){const _0x54954d=a0_0x1933;throw new Error(_0x54954d(0x12d)+this['id']+'\x20must\x20implement\x20getDescription()');}[a0_0x510bb4(0x11d)](_0x47c8b2){throw new Error('Tool\x20'+this['id']+'\x20must\x20implement\x20parseParameters()');}async[a0_0x510bb4(0xee)](_0x10dc94,_0x15161f){const _0x3e7bd5=a0_0x510bb4;throw new Error('Tool\x20'+this['id']+_0x3e7bd5(0x139));}['getCapabilities'](){const _0x284985=a0_0x510bb4;return{'id':this['id'],'async':this[_0x284985(0x121)],'requiresProject':this[_0x284985(0xfc)],'timeout':this['timeout'],'maxConcurrentOperations':this[_0x284985(0xda)],'enabled':this[_0x284985(0xfb)],'supportedActions':this[_0x284985(0x138)](),'parameterSchema':this[_0x284985(0x117)]()};}[a0_0x510bb4(0xea)](_0x2551b7){const _0x5a2eee=a0_0x510bb4;try{if(!_0x2551b7||typeof _0x2551b7!==_0x5a2eee(0xcf))return{'valid':![],'error':'Parameters\x20must\x20be\x20an\x20object'};const requiredParams=this['getRequiredParameters']();for(const required of requiredParams){if(!(required in _0x2551b7))return{'valid':![],'error':_0x5a2eee(0xe5)+required};}const _0x214d25=this['validateParameterTypes'](_0x2551b7);if(!_0x214d25['valid'])return _0x214d25;const _0x582072=this['customValidateParameters'](_0x2551b7);if(!_0x582072['valid'])return _0x582072;return{'valid':!![]};}catch(_0x5ee8c5){return{'valid':![],'error':'Parameter\x20validation\x20failed:\x20'+_0x5ee8c5['message']};}}async[a0_0x510bb4(0xeb)](_0x53e3e7,_0x5ca934){const _0x4fb31f=a0_0x510bb4,_0x5509e0=this['generateOperationId'](),_0xd99cb8=Date['now']();if(!this[_0x4fb31f(0xfb)])throw new Error('Tool\x20'+this['id']+'\x20is\x20disabled');if(this[_0x4fb31f(0xf4)][_0x4fb31f(0x120)]>=this['maxConcurrentOperations'])throw new Error('Tool\x20'+this['id']+_0x4fb31f(0xd1));const _0x1d00a3=this[_0x4fb31f(0xea)](_0x53e3e7);if(!_0x1d00a3[_0x4fb31f(0x119)])throw new Error(_0x4fb31f(0x100)+_0x1d00a3[_0x4fb31f(0xe4)]);const _0x58f62b={'id':_0x5509e0,'toolId':this['id'],'status':TOOL_STATUS[_0x4fb31f(0x129)],'startTime':new Date()['toISOString'](),'params':_0x53e3e7,'context':this['sanitizeContext'](_0x5ca934)};this['activeOperations'][_0x4fb31f(0x10d)](_0x5509e0,_0x58f62b);try{this['logger']?.['info']('Tool\x20execution\x20started:\x20'+this['id'],{'operationId':_0x5509e0,'toolId':this['id'],'context':_0x58f62b['context']});const _0xa8e435=await this['executeWithTimeout'](_0x53e3e7,_0x5ca934);return _0x58f62b['status']=TOOL_STATUS['COMPLETED'],_0x58f62b['result']=_0xa8e435,_0x58f62b['endTime']=new Date()[_0x4fb31f(0x13a)](),_0x58f62b[_0x4fb31f(0xec)]=Date[_0x4fb31f(0x12c)]()-_0xd99cb8,this['lastUsed']=new Date()[_0x4fb31f(0x13a)](),this[_0x4fb31f(0xe6)]++,this['logger']?.['info']('Tool\x20execution\x20completed:\x20'+this['id'],{'operationId':_0x5509e0,'executionTime':_0x58f62b['executionTime'],'success':!![]}),{'success':!![],'operationId':_0x5509e0,'result':_0xa8e435,'executionTime':_0x58f62b['executionTime'],'toolId':this['id']};}catch(_0x2ac562){_0x58f62b[_0x4fb31f(0x104)]=TOOL_STATUS['FAILED'],_0x58f62b['error']=_0x2ac562['message'],_0x58f62b['endTime']=new Date()['toISOString'](),_0x58f62b[_0x4fb31f(0xec)]=Date['now']()-_0xd99cb8,this['logger']?.[_0x4fb31f(0xe4)](_0x4fb31f(0x101)+this['id'],{'operationId':_0x5509e0,'error':_0x2ac562['message'],'executionTime':_0x58f62b[_0x4fb31f(0xec)]});throw _0x2ac562;}finally{this[_0x4fb31f(0xdf)]['push']({..._0x58f62b}),this['activeOperations']['delete'](_0x5509e0),this[_0x4fb31f(0xf8)](),await this['cleanup'](_0x5509e0);}}async[a0_0x510bb4(0xdc)](_0x8e530a){const _0x1ec264=a0_0x510bb4,_0x47172b=this[_0x1ec264(0xf4)][_0x1ec264(0xd0)](_0x8e530a);if(!_0x47172b){const _0xebd6fe=this[_0x1ec264(0xdf)]['find'](_0x3ae0dc=>_0x3ae0dc['id']===_0x8e530a);if(_0xebd6fe)return{'operationId':_0x8e530a,'status':_0xebd6fe[_0x1ec264(0x104)],'result':_0xebd6fe[_0x1ec264(0xef)],'error':_0xebd6fe[_0x1ec264(0xe4)],'executionTime':_0xebd6fe[_0x1ec264(0xec)]};return{'operationId':_0x8e530a,'status':OPERATION_STATUS['NOT_FOUND'],'error':'Operation\x20not\x20found'};}return{'operationId':_0x8e530a,'status':_0x47172b[_0x1ec264(0x104)],'startTime':_0x47172b[_0x1ec264(0xf0)],'executionTime':_0x47172b[_0x1ec264(0xe9)]?new Date(_0x47172b['endTime'])[_0x1ec264(0x134)]()-new Date(_0x47172b[_0x1ec264(0xf0)])[_0x1ec264(0x134)]():Date[_0x1ec264(0x12c)]()-new Date(_0x47172b[_0x1ec264(0xf0)])[_0x1ec264(0x134)]()};}async['cleanup'](_0x1b4d40){}['getSupportedActions'](){const _0x302d25=a0_0x510bb4;return[_0x302d25(0xee)];}[a0_0x510bb4(0x117)](){return{'type':'object','properties':{},'required':[]};}[a0_0x510bb4(0x124)](){return[];}[a0_0x510bb4(0x115)](_0x2ca62b){return{'valid':!![]};}['customValidateParameters'](_0xcc69c8){return{'valid':!![]};}async['executeWithTimeout'](_0x596939,_0x4e70a4){return new Promise(async(_0x16fede,_0x107b52)=>{const _0x292927=setTimeout(()=>{const _0x586d13=a0_0x1933;_0x107b52(new Error('Tool\x20execution\x20timed\x20out\x20after\x20'+this[_0x586d13(0x130)]+'ms'));},this['timeout']);try{const _0x3a9cd9=await this['execute'](_0x596939,_0x4e70a4);clearTimeout(_0x292927),_0x16fede(_0x3a9cd9);}catch(_0x48ba67){clearTimeout(_0x292927),_0x107b52(_0x48ba67);}});}[a0_0x510bb4(0xf2)](){const _0x2835ef=a0_0x510bb4;return this['id']+'-'+Date['now']()+'-'+Math['random']()[_0x2835ef(0x131)](0x24)[_0x2835ef(0xce)](0x2,0x9);}[a0_0x510bb4(0xf6)](_0x51374c){const _0x103fae=a0_0x510bb4,_0x59dd2c={..._0x51374c};return delete _0x59dd2c['apiKeys'],delete _0x59dd2c['secrets'],delete _0x59dd2c['passwords'],_0x59dd2c['content']&&_0x59dd2c[_0x103fae(0x112)]['length']>0x1f4&&(_0x59dd2c[_0x103fae(0x112)]=_0x59dd2c['content'][_0x103fae(0x13c)](0x0,0x1f4)+'...\x20[truncated]'),_0x59dd2c;}['cleanupHistory'](){const _0x5299fd=a0_0x510bb4,_0x5c639e=0x64;this['operationHistory']['length']>_0x5c639e&&(this[_0x5299fd(0xdf)]=this[_0x5299fd(0xdf)]['slice'](-_0x5c639e));}[a0_0x510bb4(0x10f)](){const _0x1c6d44=a0_0x510bb4;return{'toolId':this['id'],'usageCount':this['usageCount'],'lastUsed':this[_0x1c6d44(0x142)],'activeOperations':this['activeOperations']['size'],'totalOperations':this[_0x1c6d44(0xdf)][_0x1c6d44(0xd3)],'averageExecutionTime':this['calculateAverageExecutionTime'](),'successRate':this['calculateSuccessRate'](),'isEnabled':this['isEnabled']};}['calculateAverageExecutionTime'](){const _0x5e3f0e=a0_0x510bb4,_0x1655dc=this['operationHistory'][_0x5e3f0e(0x122)](_0x26fc2d=>_0x26fc2d['status']===TOOL_STATUS['COMPLETED']&&_0x26fc2d['executionTime']);if(_0x1655dc['length']===0x0)return 0x0;const _0x3fcbda=_0x1655dc['reduce']((_0xfeaa2a,_0x4f4f38)=>_0xfeaa2a+_0x4f4f38[_0x5e3f0e(0xec)],0x0);return Math[_0x5e3f0e(0xe1)](_0x3fcbda/_0x1655dc['length']);}[a0_0x510bb4(0x114)](){const _0x3c2fd0=a0_0x510bb4;if(this[_0x3c2fd0(0xdf)]['length']===0x0)return 0x0;const _0x50a821=this[_0x3c2fd0(0xdf)]['filter'](_0x56bff2=>_0x56bff2[_0x3c2fd0(0x104)]===TOOL_STATUS['COMPLETED']);return _0x50a821['length']/this[_0x3c2fd0(0xdf)][_0x3c2fd0(0xd3)]*0x64;}[a0_0x510bb4(0x132)](){const _0x12f262=a0_0x510bb4;this['isEnabled']=!![],this[_0x12f262(0x10b)]?.[_0x12f262(0x110)](_0x12f262(0x113)+this['id']);}['disable'](){this['isEnabled']=![],this['logger']?.['info']('Tool\x20disabled:\x20'+this['id']);}[a0_0x510bb4(0x102)](){const _0x27e855=a0_0x510bb4;this[_0x27e855(0xe6)]=0x0,this['lastUsed']=null,this[_0x27e855(0xdf)]=[],this['logger']?.[_0x27e855(0x110)](_0x27e855(0x141)+this['id']);}}class ToolsRegistry{constructor(_0x55987b=null){const _0x24da85=a0_0x510bb4;this['logger']=_0x55987b,this[_0x24da85(0x128)]=new Map(),this[_0x24da85(0xe8)]=new Map(),this['toolCapabilities']=new Map(),this['asyncOperations']=new Map();}async['registerTool'](_0xdf2f12){const _0x1ca4ab=a0_0x510bb4;try{const _0x45b53a=new _0xdf2f12();if(!(_0x45b53a instanceof BaseTool))throw new Error(_0x1ca4ab(0x12d)+_0xdf2f12['name']+'\x20must\x20extend\x20BaseTool');const _0x33d4d2=_0x45b53a['getCapabilities']();await this['validateTool'](_0x45b53a),this[_0x1ca4ab(0x128)][_0x1ca4ab(0x10d)](_0x45b53a['id'],_0x45b53a),this[_0x1ca4ab(0xe8)]['set'](_0x45b53a['id'],_0x45b53a[_0x1ca4ab(0x13b)]()),this[_0x1ca4ab(0x107)][_0x1ca4ab(0x10d)](_0x45b53a['id'],_0x33d4d2),this[_0x1ca4ab(0x10b)]?.['info']('Tool\x20registered:\x20'+_0x45b53a['id'],{'capabilities':_0x33d4d2[_0x1ca4ab(0xff)],'async':_0x33d4d2[_0x1ca4ab(0x10c)],'requiresProject':_0x33d4d2['requiresProject']});}catch(_0x189d43){this[_0x1ca4ab(0x10b)]?.['error']('Tool\x20registration\x20failed:\x20'+_0x189d43['message'],{'toolClass':_0xdf2f12[_0x1ca4ab(0x12f)]});throw _0x189d43;}}async['discoverTools'](_0x1dea49){return 0x0;}async['validateTool'](_0x4ae48f){const _0x52081d=a0_0x510bb4,requiredMethods=['getDescription','parseParameters','execute'];for(const _0x3bdeba of requiredMethods){if(typeof _0x4ae48f[_0x3bdeba]!==_0x52081d(0xf9))throw new Error('Tool\x20'+_0x4ae48f['id']+_0x52081d(0x105)+_0x3bdeba);}try{const _0x314bd6=_0x4ae48f['parseParameters'](_0x52081d(0xde));if(typeof _0x314bd6!==_0x52081d(0xcf))throw new Error('Tool\x20'+_0x4ae48f['id']+_0x52081d(0x108));}catch(_0x3632f9){}const _0x965cc6=_0x4ae48f['getCapabilities']();if(!_0x965cc6||typeof _0x965cc6!=='object')throw new Error(_0x52081d(0x12d)+_0x4ae48f['id']+'\x20getCapabilities\x20must\x20return\x20an\x20object');}[a0_0x510bb4(0xd9)](_0x7acf81){const _0x5b0c26=a0_0x510bb4;return this[_0x5b0c26(0x128)][_0x5b0c26(0xd0)](_0x7acf81)||null;}[a0_0x510bb4(0x136)](){const _0x302d47=a0_0x510bb4,_0x9c7a1c={};for(const [_0x77bcb0,_0x1ed69c]of this[_0x302d47(0x128)][_0x302d47(0xe0)]()){_0x1ed69c['isEnabled']&&(_0x9c7a1c[_0x77bcb0]={'description':this[_0x302d47(0xe8)][_0x302d47(0xd0)](_0x77bcb0),'capabilities':this['toolCapabilities']['get'](_0x77bcb0),'usageStats':_0x1ed69c[_0x302d47(0x10f)]()});}return _0x9c7a1c;}async['executeToolSecurely'](_0x4c2438,_0x18e4e1,_0x65d736){const _0x327da6=a0_0x510bb4,_0x44b97b=this['getTool'](_0x4c2438);if(!_0x44b97b)throw new Error('Tool\x20not\x20found:\x20'+_0x4c2438);if(!_0x44b97b['isEnabled'])throw new Error(_0x327da6(0x127)+_0x4c2438);return await _0x44b97b[_0x327da6(0xeb)](_0x18e4e1,_0x65d736);}['listTools'](){const _0x20cea9=a0_0x510bb4;return Array[_0x20cea9(0xf5)](this[_0x20cea9(0x128)]['keys']());}[a0_0x510bb4(0x116)](_0x57ddc0=[],_0x2c0746={}){const _0x547b57=a0_0x510bb4,{includeExamples:includeExamples=!![],includeUsageGuidelines:includeUsageGuidelines=!![],includeSecurityNotes:includeSecurityNotes=!![],compact:compact=![]}=_0x2c0746,_0x233edb=_0x57ddc0[_0x547b57(0xd3)]>0x0?_0x57ddc0['filter'](_0x36cf0d=>this[_0x547b57(0x128)][_0x547b57(0x12e)](_0x36cf0d)):Array['from'](this[_0x547b57(0x128)][_0x547b57(0x106)]());if(_0x233edb['length']===0x0)return'';let _0xeb57fc='\x0a##\x20AVAILABLE\x20TOOLS\x0a\x0a';_0xeb57fc+=_0x547b57(0x11a);for(const _0x33aa46 of _0x233edb){const _0x516d2f=this['tools'][_0x547b57(0xd0)](_0x33aa46);if(!_0x516d2f||!_0x516d2f['isEnabled'])continue;try{if(compact){const _0x47a8e0=_0x516d2f[_0x547b57(0x135)](),_0xfab3ec=_0x47a8e0[_0x547b57(0xff)]||[_0x547b57(0xee)];_0xeb57fc+='**'+_0x33aa46+_0x547b57(0x11f)+_0xfab3ec['join'](',\x20')+'\x0a';}else _0xeb57fc+=_0x547b57(0xcc)+_0x33aa46[_0x547b57(0xe7)]()+'\x20TOOL\x0a\x0a',_0xeb57fc+=_0x516d2f[_0x547b57(0x13b)](),_0xeb57fc+=_0x547b57(0xfa);}catch(_0x2f918c){this[_0x547b57(0x10b)]?.['warn']('Failed\x20to\x20get\x20description\x20for\x20tool:\x20'+_0x33aa46,{'error':_0x2f918c[_0x547b57(0x111)]});}}return compact&&(_0xeb57fc+='\x0aUse\x20JSON\x20format\x20in\x20markdown\x20code\x20blocks\x20to\x20invoke\x20tools.\x0a\x0a'),_0xeb57fc+=_0x547b57(0xfe),_0xeb57fc+=_0x547b57(0x10a),_0xeb57fc+='###\x20Standard\x20Format:\x20JSON\x20in\x20Markdown\x20Code\x20Block\x0a',_0xeb57fc+=_0x547b57(0x12a),_0xeb57fc+=_0x547b57(0x126),_0xeb57fc+='{\x0a',_0xeb57fc+=_0x547b57(0xf3),_0xeb57fc+=_0x547b57(0xed),_0xeb57fc+='}\x0a',_0xeb57fc+='```\x0a',_0xeb57fc+='```\x0a\x0a',_0xeb57fc+=_0x547b57(0x13f),_0xeb57fc+='-\x20Always\x20wrap\x20JSON\x20tool\x20commands\x20in\x20```json\x20...\x20```\x20blocks\x0a',_0xeb57fc+='-\x20Use\x20\x22toolId\x22\x20to\x20specify\x20the\x20tool\x20name\x0a',_0xeb57fc+=_0x547b57(0xd5),_0xeb57fc+=_0x547b57(0x11c),_0xeb57fc+=_0x547b57(0x123),_0xeb57fc;}['enhanceSystemPrompt'](_0x16c04e,_0x55bb61=[],_0x166a3f={}){const _0x26ad39=a0_0x510bb4,_0x4180b3=this['generateToolDescriptionsForPrompt'](_0x55bb61,_0x166a3f);if(!_0x4180b3['trim']())return _0x16c04e||'';const _0x52c764=_0x16c04e||'';if(_0x52c764[_0x26ad39(0xe3)](_0x26ad39(0xdd)))return _0x52c764[_0x26ad39(0xd6)](/## AVAILABLE TOOLS[\s\S]*?(?=##|$)/,_0x4180b3+'\x0a');const _0x501823='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 _0x52c764+(_0x52c764['endsWith']('\x0a')?'':'\x0a')+_0x4180b3+_0x501823+'\x0a';}['getAvailableToolsForUI'](){const _0x449d2f=a0_0x510bb4,_0x3655e6=[];for(const [_0x2f628f,_0x50f2ba]of this[_0x449d2f(0x128)]['entries']()){const _0x57595d=_0x50f2ba[_0x449d2f(0x135)](),_0x549c44=_0x50f2ba['getDescription'](),_0x2b4517=_0x549c44[_0x449d2f(0xd4)]('\x0a')[_0x449d2f(0x11e)](_0x1b5e54=>_0x1b5e54[_0x449d2f(0x11b)]()['length']>0x0)||'',_0x517f26=_0x2b4517['replace'](/^.*Tool:\s*/i,'')['replace'](/\s*-.*$/,'')['trim']();_0x3655e6['push']({'id':_0x2f628f,'name':_0x517f26||_0x2f628f['charAt'](0x0)[_0x449d2f(0xe7)]()+_0x2f628f[_0x449d2f(0xfd)](0x1),'description':_0x2b4517,'category':this['_getToolCategory'](_0x2f628f),'enabled':_0x57595d['enabled'],'async':_0x57595d[_0x449d2f(0x10c)],'requiresProject':_0x57595d['requiresProject'],'className':_0x50f2ba['constructor'][_0x449d2f(0x12f)]});}return _0x3655e6[_0x449d2f(0x140)]((_0x32abf3,_0x24db7a)=>_0x32abf3['name']['localeCompare'](_0x24db7a['name']));}['_getToolCategory'](_0x2d1aa7){const _0x30d640=a0_0x510bb4,_0x1196e3={'terminal':'System','filesystem':_0x30d640(0xcd),'web':_0x30d640(0x10e),'agentdelay':'Utility'};return _0x1196e3[_0x2d1aa7]||'Other';}[a0_0x510bb4(0x13e)](){const _0x2c4bc2=a0_0x510bb4,_0x4ad319=Array['from'](this['tools']['values']())['filter'](_0x44ee99=>_0x44ee99[_0x2c4bc2(0xfb)]),_0x45b7ee=Array['from'](this[_0x2c4bc2(0x128)]['values']())['reduce']((_0x477fca,_0x3c0479)=>_0x477fca+_0x3c0479[_0x2c4bc2(0xe6)],0x0);return{'totalTools':this['tools'][_0x2c4bc2(0x120)],'enabledTools':_0x4ad319[_0x2c4bc2(0xd3)],'totalOperations':_0x45b7ee,'activeOperations':this['asyncOperations'][_0x2c4bc2(0x120)]};}}export{BaseTool,ToolsRegistry};function a0_0x1a27(){const _0x17c344=['qwz0zxiGAw52B2TPBMCGysb0B29SlcbxquLuigzVCIb0AguGywn0DwfSihjLC3bVBNnLlIbeBYbot1qGz2vUzxjHDguGAw1Hz2LUyxj5ihjLC3bVBNnLCY4k','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','mtmXneHQsKPczW','ygbGANnVBGO','vg9VBcbPCYbKAxnHyMXLzdOG','Dg9VBhm','rvHfq1vusu5h','ygbGcG','mtq2mtbbCvfXAKe','BM93','vg9VBca','AgfZ','BMfTzq','DgLTzw91Da','Dg9tDhjPBMC','zw5HyMXL','mta5mJbjrNjVDfi','z2v0vgLTzq','z2v0q2fWywjPBgL0AwvZ','z2v0vg9VBenHCgfIAwXPDgLLCW','odrvr0TUqLe','z2v0u3vWCg9YDgvKqwn0Aw9UCW','ig11C3qGAw1WBgvTzw50igv4zwn1DguOkq','Dg9ju09tDhjPBMC','z2v0rgvZy3jPChrPB24','C3vIC3rYAw5N','mtiWmdK1rwnQEMDe','z2v0uMvNAxn0CNLtDgf0CW','kIPsDwXLCZOQkGO','C29YDa','vg9VBcbZDgf0Axn0AwnZihjLC2v0oIa','BgfZDfvZzwq','iYmJia','rMLSzsbpCgvYyxrPB25Z','C3vIC3rY','B2jQzwn0','z2v0','igHHCYbYzwfJAgvKig1HEgLTDw0Gy29Uy3vYCMvUDcbVCgvYyxrPB25ZigXPBwL0','mta2vvnxA0jT','BgvUz3rO','C3bSAxq','lsbvC2uGiNbHCMfTzxrLCNmIig9IAMvJDcbMB3iGDg9VBc1ZCgvJAwzPyYbWyxjHBwv0zxjZcG','CMvWBgfJzq','ndK2mtG2nhnMD1bdyq','y29UC3rYDwn0B3i','z2v0vg9VBa','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','zw5HyMXLza','z2v0u3rHDhvZ','iYmGqvzbsuXbqKXfifrpt0Xt','DgvZDcbJB250zw50','B3bLCMf0Aw9UsgLZDg9YEq','zw50CMLLCW','CM91BMq','Dg9VBa','Aw5JBhvKzxm','zxjYB3i','twLZC2LUzYbYzxf1AxjLzcbWyxjHBwv0zxi6ia','DxnHz2vdB3vUDa','Dg9vChbLCKnHC2u','Dg9VBerLC2nYAxb0Aw9UCW','zw5KvgLTzq','DMfSAwrHDgvqyxjHBwv0zxjZ','zxHLy3v0zvDPDgHmAwzLy3LJBgu','zxHLy3v0Aw9UvgLTzq','icaICgfYyw1LDgvYCYi6ihSGlI4Uih0k','zxHLy3v0zq','CMvZDwX0','C3rHCNruAw1L','mti1ndG1nuLREejjtq','z2vUzxjHDgvpCgvYyxrPB25jza','icaIDg9VBeLKiJOGiNrVB2XUyw1LiIWk','ywn0AxzLt3bLCMf0Aw9UCW','zNjVBq','C2fUAxrPEMvdB250zxH0','tufyx1rpt0XFrvHfq1vusu9ox1rjtuu','y2XLyw51CeHPC3rVCNK','zNvUy3rPB24','cGOTls0kcG','AxnfBMfIBgvK','CMvXDwLYzxnqCM9Qzwn0','C2XPy2u','iYmGve9ptcbjtLzpq0fusu9oifnztLrbwaOk','C3vWCg9YDgvKqwn0Aw9UCW','ugfYyw1LDgvYihzHBgLKyxrPB24GzMfPBgvKoIa','vg9VBcbLEgvJDxrPB24GzMfPBgvKoIa','CMvZzxrtDgf0CW','ndi4wKDMDNft','C3rHDhvZ','ig1PC3nPBMCGCMvXDwLYzwqGBwv0Ag9KoIa','A2v5CW','Dg9VBenHCgfIAwXPDgLLCW','ihbHCNnLugfYyw1LDgvYCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','mta1nZyYofvUrhbnua','kIPjtvbpuLrbtLqQkJOGvxnLiePtt04GzM9YBwf0igLUig1HCMTKB3DUignVzguGyMXVy2TZihrVigLUDM9Rzsb0B29SCZOkcG','Bg9Nz2vY','yxn5BMm','C2v0','qxv0B21HDgLVBG','z2v0vxnHz2vtDgf0CW','Aw5MBW','BwvZC2fNzq','y29UDgvUDa','vg9VBcbLBMfIBgvKoIa','y2fSy3vSyxrLu3vJy2vZC1jHDgu','DMfSAwrHDgvqyxjHBwv0zxjuExbLCW','z2vUzxjHDgvuB29SrgvZy3jPChrPB25ZrM9YuhjVBxb0','z2v0ugfYyw1LDgvYu2nOzw1H','mJuXofjNB2XyyG','DMfSAwq','ww91igHHDMuGywnJzxnZihrVihrOzsbMB2XSB3DPBMCGDg9VBhmGDg8GCgvYzM9YBsbVCgvYyxrPB25ZigfUzcb0yxnRCZOkcG','DhjPBq','lsbvC2uGiMfJDgLVBNmIigfYCMf5igzVCIb0B29SCYb0Agf0ihn1ChbVCNqGBxvSDgLWBguGB3bLCMf0Aw9UCWOk','CgfYC2vqyxjHBwv0zxjZ','zMLUza','kIO6ia','C2L6zq','AxnbC3LUyW','zMLSDgvY'];a0_0x1a27=function(){return _0x17c344;};return a0_0x1a27();}
1
+ function a0_0x2bc4(_0x5d644b,_0x8b6278){_0x5d644b=_0x5d644b-0xf0;const _0x52c733=a0_0x52c7();let _0x2bc4ae=_0x52c733[_0x5d644b];if(a0_0x2bc4['FftrTw']===undefined){var _0x3601ff=function(_0x28cdcb){const _0x1eda94='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1877f3='',_0x4b7e47='';for(let _0x57e093=0x0,_0x1574bb,_0x1c6cca,_0x310503=0x0;_0x1c6cca=_0x28cdcb['charAt'](_0x310503++);~_0x1c6cca&&(_0x1574bb=_0x57e093%0x4?_0x1574bb*0x40+_0x1c6cca:_0x1c6cca,_0x57e093++%0x4)?_0x1877f3+=String['fromCharCode'](0xff&_0x1574bb>>(-0x2*_0x57e093&0x6)):0x0){_0x1c6cca=_0x1eda94['indexOf'](_0x1c6cca);}for(let _0x20a4d=0x0,_0x4b6183=_0x1877f3['length'];_0x20a4d<_0x4b6183;_0x20a4d++){_0x4b7e47+='%'+('00'+_0x1877f3['charCodeAt'](_0x20a4d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4b7e47);};a0_0x2bc4['SClXlY']=_0x3601ff,a0_0x2bc4['oZznVF']={},a0_0x2bc4['FftrTw']=!![];}const _0xfd08f2=_0x52c733[0x0],_0x163440=_0x5d644b+_0xfd08f2,_0x514602=a0_0x2bc4['oZznVF'][_0x163440];return!_0x514602?(_0x2bc4ae=a0_0x2bc4['SClXlY'](_0x2bc4ae),a0_0x2bc4['oZznVF'][_0x163440]=_0x2bc4ae):_0x2bc4ae=_0x514602,_0x2bc4ae;}const a0_0x2dcebf=a0_0x2bc4;function a0_0x52c7(){const _0x42f1a2=['ygbGANnVBGO','zxHLy3v0zq','CMvNAxn0zxjuB29S','icaICgfYyw1LDgvYCYi6ihSGlI4Uih0k','DMfSAwrHDgvqyxjHBwv0zxjuExbLCW','D2fYBG','ww91igHHDMuGywnJzxnZihrVihrOzsbMB2XSB3DPBMCGDg9VBhmGDg8GCgvYzM9YBsbVCgvYyxrPB25ZigfUzcb0yxnRCZOkcG','kIO6ia','ugfYyw1LDgvYCYbTDxn0igjLigfUig9IAMvJDa','y2XLyw51CeHPC3rVCNK','Aw5JBhvKzxm','z2vUzxjHDgvpCgvYyxrPB25jza','C3bSAxq','AgfZ','DgLTzw91Da','z2v0vgLTzq','C2L6zq','y2fSy3vSyxrLu3vJy2vZC1jHDgu','DMfSAwrHDgvqyxjHBwv0zxjZ','z2v0vg9VBa','Bg9Nz2vY','BM93','ig11C3qGAw1WBgvTzw50ihbHCNnLugfYyw1LDgvYCYGP','zMLSDgvY','qwz0zxiGAw52B2TPBMCGysb0B29SlcbxquLuigzVCIb0AguGywn0DwfSihjLC3bVBNnLlIbeBYbot1qGz2vUzxjHDguGAw1Hz2LUyxj5ihjLC3bVBNnLCY4k','vg9VBcbKAxnHyMXLzdOG','y29UDgvUDa','zxHLy3v0zvDPDgHmAwzLy3LJBgu','zw5HyMXLza','tK9ux0zpvu5e','rKfjteve','CMvZDwX0','BwvZC2fNzq','z2v0vxnHz2vtDgf0CW','Dg9VBerLC2nYAxb0Aw9UCW','A2v5CW','C2XPy2u','AxnfBMfIBgvK','ChvZAa','CM91BMq','mJuZugXjrhjP','vg9VBcbUB3qGzM91BMq6ia','z2vUzxjHDgvuB29SrgvZy3jPChrPB25ZrM9YuhjVBxb0','C3rHDhvZ','lsbvC2uGiNrVB2XjzciGDg8GC3bLy2LMEsb0AguGDg9VBcbUyw1LcG','Aw5MBW','zNjVBq','z2v0qxzHAwXHyMXLvg9VBhngB3jvsq','C3vWCg9YDgvKqwn0Aw9UCW','vg9VBcbYzwDPC3rLCMvKoIa','ywn0AxzLt3bLCMf0Aw9UCW','yxn5BMm','yxbPs2v5CW','iYmGve9ptcbjtLzpq0fusu9oifnztLrbwaOk','Dg9tDhjPBMC','mteWmde1mvP4yKzSCW','DMfSDwvZ','BMfTzq','q09nueXfveve','qxv0B21HDgLVBG','C2vJCMv0CW','vg9VBcbLEgvJDxrPB24Gy29TCgXLDgvKoIa','y2fSy3vSyxrLqxzLCMfNzuv4zwn1DgLVBLrPBwu','igHHCYbYzwfJAgvKig1HEgLTDw0Gy29Uy3vYCMvUDcbVCgvYyxrPB25ZigXPBwL0','zgLZywjSzq','BgvUz3rO','Dg9mB3DLCKnHC2u','zw5HyMXL','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','mM1xsM5dua','CgfYC2vqyxjHBwv0zxjZ','x2DLDfrVB2XdyxrLz29YEq','zw5KvgLTzq','nte4mff2sKjzva','n0jXA1n3DW','DxnHz2vdB3vUDa','ig11C3qGAw1WBgvTzw50igDLDerLC2nYAxb0Aw9UkcK','rMfPBgvKihrVigDLDcbKzxnJCMLWDgLVBIbMB3iGDg9VBdOG','zxjYB3i','mZy2m0zUtfP1Ba','igLZigrPC2fIBgvK','vg9VBcbYzwDPC3rYyxrPB24GzMfPBgvKoIa','t3rOzxi','rMLSzsbpCgvYyxrPB25Z','cImJiefwquLmqujmrsbut09muWOk','CMvXDwLYzxnqCM9Qzwn0','mZa4mZqXnNDWvuTqAW','y29UC3rYDwn0B3i','ig11C3qGAw1WBgvTzw50igv4zwn1DguOkq','zxHLy3v0zvDPDgHuAw1LB3v0','Dg9ju09tDhjPBMC','z2v0ugfYyw1LDgvYu2nOzw1H','z2v0u3vWCg9YDgvKqwn0Aw9UCW','DgvZDcbJB250zw50','cGOTls0kcG','vg9VBca','zxHLy3v0Aw9UvgLTzq','C3rHCNruAw1L','C2v0','CMfUzg9T','CMvKDwnL','B2jQzwn0','DMfSAwq','vg9VBcbPCYbKAxnHyMXLzdOG','Dg9VBa','zw5Oyw5Jzvn5C3rLBvbYB21WDa','BgfZDfvZzwq','ndG3otaXuuzmr1nx','Dg9vChbLCKnHC2u','lsbbBhDHExmGD3jHCcbku09oihrVB2WGy29TBwfUzhmGAw4GygbGANnVBIaUlI4GygbGigjSB2nRCWO','AM9PBG','mJe3mJe0nhv1DgPnsa','C29YDa','z2v0u3rHDhvZ','z2v0vg9VBenHCgfIAwXPDgLLCW','u3LZDgvT','z2v0rgvZy3jPChrPB24','yxn5BMnpCgvYyxrPB25Z','vg9VBcbLEgvJDxrPB24GDgLTzwqGB3v0igfMDgvYia','C3vIC3rYAw5N','twLZC2LUzYbYzxf1AxjLzcbWyxjHBwv0zxi6ia','CMvWBgfJzq','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','AxnbC3LUyW','ugfYyw1LDgvYihzHBgLKyxrPB24GzMfPBgvKoIa','Dg9VBenHCgfIAwXPDgLLCW','lsbvC2uGiNbHCMfTzxrLCNmIig9IAMvJDcbMB3iGDg9VBc1ZCgvJAwzPyYbWyxjHBwv0zxjZcG','Dg9VBhm','tufyx1rpt0XFrvHfq1vusu9ox1rjtuu','ota3nZG4tLDvDLDX','mJa3nM9QshvWsa','CgfZC3DVCMrZ','DhjPBq','B3bLCMf0Aw9UsgLZDg9YEq','cLvZzsbku09oigzVCM1HDcbPBIbTyxjRzg93BIbJB2rLigjSB2nRCYb0BYbPBNzVA2uGDg9VBhmUcGO','mJy5nxP4BgjNCW','iYmJia','z2v0'];a0_0x52c7=function(){return _0x42f1a2;};return a0_0x52c7();}(function(_0x5545f0,_0x185e69){const _0x50fda7=a0_0x2bc4,_0x35bdbe=_0x5545f0();while(!![]){try{const _0x22658b=-parseInt(_0x50fda7(0x112))/0x1+-parseInt(_0x50fda7(0x176))/0x2*(-parseInt(_0x50fda7(0x168))/0x3)+-parseInt(_0x50fda7(0x116))/0x4+-parseInt(_0x50fda7(0x12e))/0x5*(parseInt(_0x50fda7(0x129))/0x6)+-parseInt(_0x50fda7(0xf1))/0x7*(parseInt(_0x50fda7(0xfd))/0x8)+-parseInt(_0x50fda7(0xf6))/0x9*(parseInt(_0x50fda7(0xf0))/0xa)+-parseInt(_0x50fda7(0x159))/0xb*(-parseInt(_0x50fda7(0x128))/0xc);if(_0x22658b===_0x185e69)break;else _0x35bdbe['push'](_0x35bdbe['shift']());}catch(_0x41e7e6){_0x35bdbe['push'](_0x35bdbe['shift']());}}}(a0_0x52c7,0x47860));import{TOOL_STATUS,OPERATION_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BaseTool{constructor(_0x1877f3={},_0x4b7e47=null){const _0xfd421=a0_0x2bc4;this['id']=this['constructor']['name'][_0xfd421(0x173)]()['replace'](_0xfd421(0x10f),''),this['config']=_0x1877f3,this[_0xfd421(0x145)]=_0x4b7e47,this['requiresProject']=![],this['isAsync']=![],this['timeout']=_0x1877f3[_0xfd421(0x13f)]||SYSTEM_DEFAULTS[_0xfd421(0x127)],this[_0xfd421(0x121)]=_0x1877f3[_0xfd421(0x121)]||0x1,this[_0xfd421(0x163)]=new Map(),this[_0xfd421(0x12c)]=[],this['isEnabled']=_0x1877f3['enabled']!==![],this[_0xfd421(0x111)]=null,this[_0xfd421(0xf2)]=0x0;}['getDescription'](){const _0x2ef3d3=a0_0x2bc4;throw new Error('Tool\x20'+this['id']+_0x2ef3d3(0xf3));}['parseParameters'](_0x57e093){const _0xa00ec2=a0_0x2bc4;throw new Error(_0xa00ec2(0x106)+this['id']+_0xa00ec2(0x147));}async['execute'](_0x1574bb,_0x1c6cca){const _0x3a1f26=a0_0x2bc4;throw new Error(_0x3a1f26(0x106)+this['id']+_0x3a1f26(0xff));}['getCapabilities'](){const _0x1bd82c=a0_0x2bc4;return{'id':this['id'],'async':this[_0x1bd82c(0x122)],'requiresProject':this[_0x1bd82c(0xfc)],'timeout':this[_0x1bd82c(0x13f)],'maxConcurrentOperations':this['maxConcurrentOperations'],'enabled':this['isEnabled'],'supportedActions':this['getSupportedActions'](),'parameterSchema':this['getParameterSchema']()};}[a0_0x2dcebf(0x143)](_0x310503){const _0x1ff13c=a0_0x2dcebf;try{if(!_0x310503||typeof _0x310503!=='object')return{'valid':![],'error':_0x1ff13c(0x139)};const requiredParams=this['getRequiredParameters']();for(const required of requiredParams){if(!(required in _0x310503))return{'valid':![],'error':_0x1ff13c(0x11f)+required};}const _0x20a4d=this['validateParameterTypes'](_0x310503);if(!_0x20a4d['valid'])return _0x20a4d;const _0x4b6183=this['customValidateParameters'](_0x310503);if(!_0x4b6183[_0x1ff13c(0x10d)])return _0x4b6183;return{'valid':!![]};}catch(_0x92ded9){return{'valid':![],'error':_0x1ff13c(0x123)+_0x92ded9[_0x1ff13c(0x151)]};}}async['executeWithLifecycle'](_0x3e99dd,_0x22daf0){const _0x484204=a0_0x2dcebf,_0x297784=this[_0x484204(0x13c)](),_0x2cee08=Date[_0x484204(0x146)]();if(!this[_0x484204(0x156)])throw new Error(_0x484204(0x106)+this['id']+_0x484204(0xf7));if(this['activeOperations'][_0x484204(0x141)]>=this[_0x484204(0x121)])throw new Error('Tool\x20'+this['id']+_0x484204(0x170));const _0x3bbd14=this[_0x484204(0x143)](_0x3e99dd);if(!_0x3bbd14['valid'])throw new Error('Parameter\x20validation\x20failed:\x20'+_0x3bbd14['error']);const _0x17377c={'id':_0x297784,'toolId':this['id'],'status':TOOL_STATUS['EXECUTING'],'startTime':new Date()['toISOString'](),'params':_0x3e99dd,'context':this['sanitizeContext'](_0x22daf0)};this['activeOperations'][_0x484204(0x109)](_0x297784,_0x17377c);try{this['logger']?.[_0x484204(0x15e)]('Tool\x20execution\x20started:\x20'+this['id'],{'operationId':_0x297784,'toolId':this['id'],'context':_0x17377c['context']});const _0x15e469=await this[_0x484204(0x100)](_0x3e99dd,_0x22daf0);return _0x17377c['status']=TOOL_STATUS['COMPLETED'],_0x17377c[_0x484204(0x150)]=_0x15e469,_0x17377c[_0x484204(0x179)]=new Date()['toISOString'](),_0x17377c['executionTime']=Date['now']()-_0x2cee08,this[_0x484204(0x111)]=new Date()['toISOString'](),this['usageCount']++,this['logger']?.[_0x484204(0x15e)](_0x484204(0x16e)+this['id'],{'operationId':_0x297784,'executionTime':_0x17377c['executionTime'],'success':!![]}),{'success':!![],'operationId':_0x297784,'result':_0x15e469,'executionTime':_0x17377c['executionTime'],'toolId':this['id']};}catch(_0x3acaa9){_0x17377c[_0x484204(0x15c)]=TOOL_STATUS[_0x484204(0x14f)],_0x17377c[_0x484204(0xf5)]=_0x3acaa9['message'],_0x17377c['endTime']=new Date()[_0x484204(0x101)](),_0x17377c['executionTime']=Date[_0x484204(0x146)]()-_0x2cee08,this['logger']?.[_0x484204(0xf5)]('Tool\x20execution\x20failed:\x20'+this['id'],{'operationId':_0x297784,'error':_0x3acaa9['message'],'executionTime':_0x17377c[_0x484204(0x107)]});throw _0x3acaa9;}finally{this['operationHistory']['push']({..._0x17377c}),this['activeOperations']['delete'](_0x297784),this[_0x484204(0x13a)](),await this['cleanup'](_0x297784);}}async[a0_0x2dcebf(0x118)](_0x24c526){const _0x3d8ec6=a0_0x2dcebf,_0x67a046=this['activeOperations'][_0x3d8ec6(0x130)](_0x24c526);if(!_0x67a046){const _0x572cd8=this['operationHistory']['find'](_0x3f7bee=>_0x3f7bee['id']===_0x24c526);if(_0x572cd8)return{'operationId':_0x24c526,'status':_0x572cd8[_0x3d8ec6(0x15c)],'result':_0x572cd8[_0x3d8ec6(0x150)],'error':_0x572cd8[_0x3d8ec6(0xf5)],'executionTime':_0x572cd8['executionTime']};return{'operationId':_0x24c526,'status':OPERATION_STATUS[_0x3d8ec6(0x14e)],'error':'Operation\x20not\x20found'};}return{'operationId':_0x24c526,'status':_0x67a046['status'],'startTime':_0x67a046['startTime'],'executionTime':_0x67a046[_0x3d8ec6(0x179)]?new Date(_0x67a046[_0x3d8ec6(0x179)])[_0x3d8ec6(0x140)]()-new Date(_0x67a046['startTime'])['getTime']():Date['now']()-new Date(_0x67a046[_0x3d8ec6(0x108)])[_0x3d8ec6(0x140)]()};}async['cleanup'](_0x15d8a4){}[a0_0x2dcebf(0x103)](){return['execute'];}[a0_0x2dcebf(0x102)](){const _0x3f6b78=a0_0x2dcebf;return{'type':_0x3f6b78(0x10c),'properties':{},'required':[]};}['getRequiredParameters'](){return[];}[a0_0x2dcebf(0x135)](_0x3bc1b2){return{'valid':!![]};}[a0_0x2dcebf(0x175)](_0x37a34d){return{'valid':!![]};}async['executeWithTimeout'](_0x245c75,_0x1ca3cc){return new Promise(async(_0x478529,_0x5d5e1c)=>{const _0x17717b=a0_0x2bc4,_0x1ecf7c=setTimeout(()=>{const _0x4d1beb=a0_0x2bc4;_0x5d5e1c(new Error(_0x4d1beb(0x11d)+this['timeout']+'ms'));},this[_0x17717b(0x13f)]);try{const _0x4a29eb=await this['execute'](_0x245c75,_0x1ca3cc);clearTimeout(_0x1ecf7c),_0x478529(_0x4a29eb);}catch(_0x377475){clearTimeout(_0x1ecf7c),_0x5d5e1c(_0x377475);}});}['generateOperationId'](){const _0x52e29b=a0_0x2dcebf;return this['id']+'-'+Date['now']()+'-'+Math[_0x52e29b(0x10a)]()[_0x52e29b(0x167)](0x24)['substr'](0x2,0x9);}['sanitizeContext'](_0x4293ff){const _0x35068b=a0_0x2dcebf,_0x2ecaba={..._0x4293ff};return delete _0x2ecaba[_0x35068b(0x165)],delete _0x2ecaba[_0x35068b(0x16d)],delete _0x2ecaba[_0x35068b(0x12a)],_0x2ecaba['content']&&_0x2ecaba['content']['length']>0x1f4&&(_0x2ecaba[_0x35068b(0x14b)]=_0x2ecaba['content'][_0x35068b(0x11e)](0x0,0x1f4)+'...\x20[truncated]'),_0x2ecaba;}['cleanupHistory'](){const _0x25a37e=a0_0x2dcebf,_0x1deae5=0x64;this[_0x25a37e(0x12c)][_0x25a37e(0x172)]>_0x1deae5&&(this['operationHistory']=this[_0x25a37e(0x12c)][_0x25a37e(0x155)](-_0x1deae5));}[a0_0x2dcebf(0x152)](){const _0x361273=a0_0x2dcebf;return{'toolId':this['id'],'usageCount':this['usageCount'],'lastUsed':this[_0x361273(0x111)],'activeOperations':this['activeOperations'][_0x361273(0x141)],'totalOperations':this[_0x361273(0x12c)][_0x361273(0x172)],'averageExecutionTime':this[_0x361273(0x16f)](),'successRate':this['calculateSuccessRate'](),'isEnabled':this[_0x361273(0x156)]};}['calculateAverageExecutionTime'](){const _0x5627a6=a0_0x2dcebf,_0x25ba0b=this[_0x5627a6(0x12c)][_0x5627a6(0x148)](_0x570a30=>_0x570a30[_0x5627a6(0x15c)]===TOOL_STATUS[_0x5627a6(0x16b)]&&_0x570a30['executionTime']);if(_0x25ba0b[_0x5627a6(0x172)]===0x0)return 0x0;const _0xa4b67d=_0x25ba0b[_0x5627a6(0x10b)]((_0x4ce15a,_0x4d4e4f)=>_0x4ce15a+_0x4d4e4f[_0x5627a6(0x107)],0x0);return Math[_0x5627a6(0x158)](_0xa4b67d/_0x25ba0b['length']);}[a0_0x2dcebf(0x142)](){const _0x346495=a0_0x2dcebf;if(this['operationHistory']['length']===0x0)return 0x0;const _0x210118=this[_0x346495(0x12c)][_0x346495(0x148)](_0x801344=>_0x801344[_0x346495(0x15c)]===TOOL_STATUS['COMPLETED']);return _0x210118[_0x346495(0x172)]/this[_0x346495(0x12c)]['length']*0x64;}[a0_0x2dcebf(0x174)](){const _0x3b3bb3=a0_0x2dcebf;this[_0x3b3bb3(0x156)]=!![],this['logger']?.['info']('Tool\x20enabled:\x20'+this['id']);}[a0_0x2dcebf(0x171)](){const _0x25116e=a0_0x2dcebf;this[_0x25116e(0x156)]=![],this['logger']?.[_0x25116e(0x15e)](_0x25116e(0x14a)+this['id']);}['resetStats'](){const _0x1caebb=a0_0x2dcebf;this['usageCount']=0x0,this['lastUsed']=null,this[_0x1caebb(0x12c)]=[],this[_0x1caebb(0x145)]?.['info']('Tool\x20statistics\x20reset:\x20'+this['id']);}}class ToolsRegistry{constructor(_0x3b3c80=null){const _0x294175=a0_0x2dcebf;this['logger']=_0x3b3c80,this[_0x294175(0x126)]=new Map(),this['toolDescriptions']=new Map(),this[_0x294175(0x124)]=new Map(),this['asyncOperations']=new Map();}async[a0_0x2dcebf(0x133)](_0x4c5af4){const _0x20057f=a0_0x2dcebf;try{const _0x3c6a09=new _0x4c5af4();if(!(_0x3c6a09 instanceof BaseTool))throw new Error(_0x20057f(0x106)+_0x4c5af4['name']+'\x20must\x20extend\x20BaseTool');const _0x4c0a04=_0x3c6a09['getCapabilities']();await this['validateTool'](_0x3c6a09),this[_0x20057f(0x126)]['set'](_0x3c6a09['id'],_0x3c6a09),this[_0x20057f(0x153)][_0x20057f(0x109)](_0x3c6a09['id'],_0x3c6a09['getDescription']()),this['toolCapabilities'][_0x20057f(0x109)](_0x3c6a09['id'],_0x4c0a04),this['logger']?.[_0x20057f(0x15e)](_0x20057f(0x162)+_0x3c6a09['id'],{'capabilities':_0x4c0a04['supportedActions'],'async':_0x4c0a04[_0x20057f(0x164)],'requiresProject':_0x4c0a04['requiresProject']});}catch(_0x3c8fe9){this[_0x20057f(0x145)]?.['error'](_0x20057f(0xf8)+_0x3c8fe9[_0x20057f(0x151)],{'toolClass':_0x4c5af4[_0x20057f(0x16a)]});throw _0x3c8fe9;}}async['discoverTools'](_0x3b803f){return 0x0;}async['validateTool'](_0x4d7bee){const _0x505644=a0_0x2dcebf,requiredMethods=[_0x505644(0x11b),'parseParameters','execute'];for(const _0xd11008 of requiredMethods){if(typeof _0x4d7bee[_0xd11008]!=='function')throw new Error(_0x505644(0x106)+_0x4d7bee['id']+'\x20missing\x20required\x20method:\x20'+_0xd11008);}try{const _0x20ab52=_0x4d7bee[_0x505644(0x177)](_0x505644(0x104));if(typeof _0x20ab52!==_0x505644(0x10c))throw new Error('Tool\x20'+_0x4d7bee['id']+'\x20parseParameters\x20must\x20return\x20an\x20object');}catch(_0x1a01e1){}const _0x1e6843=_0x4d7bee['getCapabilities']();if(!_0x1e6843||typeof _0x1e6843!=='object')throw new Error(_0x505644(0x106)+_0x4d7bee['id']+'\x20getCapabilities\x20must\x20return\x20an\x20object');}[a0_0x2dcebf(0x144)](_0xab60ec){const _0x9b9dbf=a0_0x2dcebf;return this[_0x9b9dbf(0x126)]['get'](_0xab60ec)||null;}[a0_0x2dcebf(0x119)](){const _0xc62654=a0_0x2dcebf,_0x2ff903={};for(const [_0x3c7c2a,_0x443c06]of this[_0xc62654(0x126)]['entries']()){_0x443c06['isEnabled']&&(_0x2ff903[_0x3c7c2a]={'description':this[_0xc62654(0x153)]['get'](_0x3c7c2a),'capabilities':this[_0xc62654(0x124)]['get'](_0x3c7c2a),'usageStats':_0x443c06[_0xc62654(0x152)]()});}return _0x2ff903;}async['executeToolSecurely'](_0xb8c8f3,_0x385d2c,_0x169723){const _0xf791d7=a0_0x2dcebf,_0x40d20d=this[_0xf791d7(0x144)](_0xb8c8f3);if(!_0x40d20d)throw new Error(_0xf791d7(0x15a)+_0xb8c8f3);if(!_0x40d20d['isEnabled'])throw new Error(_0xf791d7(0x10e)+_0xb8c8f3);return await _0x40d20d[_0xf791d7(0x14c)](_0x385d2c,_0x169723);}['listTools'](){const _0x2c22a6=a0_0x2dcebf;return Array[_0x2c22a6(0x15f)](this[_0x2c22a6(0x126)][_0x2c22a6(0x154)]());}[a0_0x2dcebf(0x15b)](_0x37a892=[],_0x30a816={}){const _0x245ddd=a0_0x2dcebf,{includeExamples:includeExamples=!![],includeUsageGuidelines:includeUsageGuidelines=!![],includeSecurityNotes:includeSecurityNotes=!![],compact:compact=![]}=_0x30a816,_0x3ca7f7=_0x37a892[_0x245ddd(0x172)]>0x0?_0x37a892['filter'](_0x3c5d89=>this['tools'][_0x245ddd(0x13e)](_0x3c5d89)):Array[_0x245ddd(0x15f)](this[_0x245ddd(0x126)][_0x245ddd(0x154)]());if(_0x3ca7f7[_0x245ddd(0x172)]===0x0)return'';let _0x1bf658=_0x245ddd(0xfb);_0x1bf658+=_0x245ddd(0x137);for(const _0x36814d of _0x3ca7f7){const _0x2111a6=this[_0x245ddd(0x126)][_0x245ddd(0x130)](_0x36814d);if(!_0x2111a6||!_0x2111a6['isEnabled'])continue;try{if(compact){const _0x4dccdd=_0x2111a6['getCapabilities'](),_0x3e0a16=_0x4dccdd[_0x245ddd(0x161)]||[_0x245ddd(0x132)];_0x1bf658+='**'+_0x36814d+_0x245ddd(0x138)+_0x3e0a16[_0x245ddd(0x115)](',\x20')+'\x0a';}else _0x1bf658+=_0x245ddd(0x12f)+_0x36814d[_0x245ddd(0x113)]()+'\x20TOOL\x0a\x0a',_0x1bf658+=_0x2111a6[_0x245ddd(0x11b)](),_0x1bf658+=_0x245ddd(0x105);}catch(_0x4a3fee){this[_0x245ddd(0x145)]?.[_0x245ddd(0x136)](_0x245ddd(0xf4)+_0x36814d,{'error':_0x4a3fee['message']});}}return compact&&(_0x1bf658+=_0x245ddd(0x12d)),_0x1bf658+=_0x245ddd(0x166),_0x1bf658+='**IMPORTANT**:\x20Use\x20JSON\x20format\x20in\x20markdown\x20code\x20blocks\x20to\x20invoke\x20tools:\x0a\x0a',_0x1bf658+='###\x20Standard\x20Format:\x20JSON\x20in\x20Markdown\x20Code\x20Block\x0a',_0x1bf658+='```\x0a',_0x1bf658+=_0x245ddd(0x131),_0x1bf658+='{\x0a',_0x1bf658+='\x20\x20\x22toolId\x22:\x20\x22toolname\x22,\x0a',_0x1bf658+=_0x245ddd(0x134),_0x1bf658+='}\x0a',_0x1bf658+='```\x0a',_0x1bf658+='```\x0a\x0a',_0x1bf658+='**Rules:**\x0a',_0x1bf658+=_0x245ddd(0x114),_0x1bf658+=_0x245ddd(0x15d),_0x1bf658+=_0x245ddd(0x125),_0x1bf658+='-\x20Use\x20\x22actions\x22\x20array\x20for\x20tools\x20that\x20support\x20multiple\x20operations\x0a\x0a',_0x1bf658+=_0x245ddd(0x149),_0x1bf658;}[a0_0x2dcebf(0x110)](_0x152975,_0x3908c7=[],_0x933aef={}){const _0x4096f8=a0_0x2dcebf,_0x3fd05f=this['generateToolDescriptionsForPrompt'](_0x3908c7,_0x933aef);if(!_0x3fd05f[_0x4096f8(0x12b)]())return _0x152975||'';const _0x2cc503=_0x152975||'';if(_0x2cc503[_0x4096f8(0x13b)]('##\x20AVAILABLE\x20TOOLS'))return _0x2cc503[_0x4096f8(0x120)](/## AVAILABLE TOOLS[\s\S]*?(?=##|$)/,_0x3fd05f+'\x0a');const _0x10f011='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 _0x2cc503+(_0x2cc503['endsWith']('\x0a')?'':'\x0a')+_0x3fd05f+_0x10f011+'\x0a';}[a0_0x2dcebf(0x160)](){const _0x2d9e4c=a0_0x2dcebf,_0x563280=[];for(const [_0x4455e4,_0x4ecb7b]of this['tools']['entries']()){const _0x4d647b=_0x4ecb7b['getCapabilities'](),_0x4e0a9b=_0x4ecb7b['getDescription'](),_0x5a74ec=_0x4e0a9b[_0x2d9e4c(0x13d)]('\x0a')['find'](_0x2bd830=>_0x2bd830['trim']()['length']>0x0)||'',_0x1f9c06=_0x5a74ec[_0x2d9e4c(0x120)](/^.*Tool:\s*/i,'')[_0x2d9e4c(0x120)](/\s*-.*$/,'')[_0x2d9e4c(0x12b)]();_0x563280[_0x2d9e4c(0x157)]({'id':_0x4455e4,'name':_0x1f9c06||_0x4455e4['charAt'](0x0)[_0x2d9e4c(0x113)]()+_0x4455e4['slice'](0x1),'description':_0x5a74ec,'category':this[_0x2d9e4c(0x178)](_0x4455e4),'enabled':_0x4d647b[_0x2d9e4c(0x14d)],'async':_0x4d647b['async'],'requiresProject':_0x4d647b[_0x2d9e4c(0xfc)],'className':_0x4ecb7b[_0x2d9e4c(0xfe)][_0x2d9e4c(0x16a)]});}return _0x563280[_0x2d9e4c(0x117)]((_0x3744b2,_0x327df3)=>_0x3744b2['name']['localeCompare'](_0x327df3['name']));}['_getToolCategory'](_0x2f37a6){const _0x464144=a0_0x2dcebf,_0x29848c={'terminal':_0x464144(0x11a),'filesystem':_0x464144(0xfa),'web':_0x464144(0x16c),'agentdelay':'Utility'};return _0x29848c[_0x2f37a6]||_0x464144(0xf9);}['getRegistryStats'](){const _0x5656f4=a0_0x2dcebf,_0x2522be=Array[_0x5656f4(0x15f)](this[_0x5656f4(0x126)]['values']())[_0x5656f4(0x148)](_0x5b3e06=>_0x5b3e06[_0x5656f4(0x156)]),_0x2e7d5d=Array['from'](this[_0x5656f4(0x126)][_0x5656f4(0x169)]())['reduce']((_0x2d9e00,_0x989986)=>_0x2d9e00+_0x989986[_0x5656f4(0xf2)],0x0);return{'totalTools':this[_0x5656f4(0x126)][_0x5656f4(0x141)],'enabledTools':_0x2522be['length'],'totalOperations':_0x2e7d5d,'activeOperations':this[_0x5656f4(0x11c)]['size']};}}export{BaseTool,ToolsRegistry};
@@ -1 +1 @@
1
- const a0_0x1c8170=a0_0x14f2;(function(_0x40dccc,_0x44272d){const _0xb604c=a0_0x14f2,_0x2b7c06=_0x40dccc();while(!![]){try{const _0x54b5a7=parseInt(_0xb604c(0x1c2))/0x1*(parseInt(_0xb604c(0x183))/0x2)+parseInt(_0xb604c(0x1a9))/0x3*(-parseInt(_0xb604c(0x1c8))/0x4)+parseInt(_0xb604c(0x1ee))/0x5*(parseInt(_0xb604c(0x1a7))/0x6)+parseInt(_0xb604c(0x1dd))/0x7*(parseInt(_0xb604c(0x1eb))/0x8)+parseInt(_0xb604c(0x1c7))/0x9*(parseInt(_0xb604c(0x1d4))/0xa)+parseInt(_0xb604c(0x1b3))/0xb+-parseInt(_0xb604c(0x1c9))/0xc;if(_0x54b5a7===_0x44272d)break;else _0x2b7c06['push'](_0x2b7c06['shift']());}catch(_0x1347b1){_0x2b7c06['push'](_0x2b7c06['shift']());}}}(a0_0x1d7b,0xd0acf));import{BaseTool}from'./baseTool.js';import a0_0x49ae88 from'../utilities/tagParser.js';import a0_0xed1e54 from'puppeteer';import a0_0x39906d from'fs/promises';import a0_0xda5703 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x14f2(_0xdf70fe,_0x53b148){_0xdf70fe=_0xdf70fe-0x178;const _0x1d7bf3=a0_0x1d7b();let _0x14f2ee=_0x1d7bf3[_0xdf70fe];if(a0_0x14f2['RmoNAm']===undefined){var _0x3ebc1f=function(_0x50fce3){const _0xd7d66='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x49ae88='',_0xed1e54='';for(let _0x39906d=0x0,_0xda5703,_0x1ec1ce,_0x33a5d6=0x0;_0x1ec1ce=_0x50fce3['charAt'](_0x33a5d6++);~_0x1ec1ce&&(_0xda5703=_0x39906d%0x4?_0xda5703*0x40+_0x1ec1ce:_0x1ec1ce,_0x39906d++%0x4)?_0x49ae88+=String['fromCharCode'](0xff&_0xda5703>>(-0x2*_0x39906d&0x6)):0x0){_0x1ec1ce=_0xd7d66['indexOf'](_0x1ec1ce);}for(let _0x4975e8=0x0,_0x2b96e6=_0x49ae88['length'];_0x4975e8<_0x2b96e6;_0x4975e8++){_0xed1e54+='%'+('00'+_0x49ae88['charCodeAt'](_0x4975e8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xed1e54);};a0_0x14f2['bDSXLo']=_0x3ebc1f,a0_0x14f2['igGuvA']={},a0_0x14f2['RmoNAm']=!![];}const _0xd361a9=_0x1d7bf3[0x0],_0x129322=_0xdf70fe+_0xd361a9,_0x4bdb71=a0_0x14f2['igGuvA'][_0x129322];return!_0x4bdb71?(_0x14f2ee=a0_0x14f2['bDSXLo'](_0x14f2ee),a0_0x14f2['igGuvA'][_0x129322]=_0x14f2ee):_0x14f2ee=_0x4bdb71,_0x14f2ee;}class BrowserTool extends BaseTool{constructor(_0x1ec1ce={},_0x33a5d6=null){const _0x4eaf47=a0_0x14f2;super(_0x1ec1ce,_0x33a5d6),this[_0x4eaf47(0x1f3)]=![],this['isAsync']=!![],this['timeout']=_0x1ec1ce[_0x4eaf47(0x189)]||0xea60,this[_0x4eaf47(0x1f5)]=_0x1ec1ce['maxConcurrentOperations']||0x2,this['browserConfig']={'headless':_0x1ec1ce[_0x4eaf47(0x185)]!==![],'viewport':_0x1ec1ce['viewport']||{'width':0x500,'height':0x2d0},'userAgent':_0x1ec1ce[_0x4eaf47(0x1d5)]||_0x4eaf47(0x1a5),'timeout':_0x1ec1ce['pageTimeout']||0x7530},this[_0x4eaf47(0x17d)]=new Map(),this[_0x4eaf47(0x1c0)]=_0x1ec1ce[_0x4eaf47(0x1c0)]||null,this['blockedDomains']=_0x1ec1ce['blockedDomains']||[],this['maxScreenshotSize']=_0x1ec1ce[_0x4eaf47(0x1a6)]||0x5*0x400*0x400,this['operationHistory']=[];}['getDescription'](){const _0xa62884=a0_0x14f2;return'\x0aBrowser\x20Tool:\x20Automate\x20web\x20browser\x20interactions,\x20navigation,\x20and\x20data\x20extraction.\x0a\x0aUSAGE:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22browser\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22navigate\x22,\x20\x22url\x22:\x20\x22https://example.com\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22wait\x22,\x20\x22waitTime\x22:\x202000},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22click\x22,\x20\x22selector\x22:\x20\x22button.submit\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22screenshot\x22,\x20\x22outputPath\x22:\x20\x22screenshot.png\x22}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aSUPPORTED\x20ACTIONS:\x0a-\x20navigate:\x20Navigate\x20to\x20URL\x20(url)\x0a-\x20click:\x20Click\x20element\x20(selector)\x0a-\x20type:\x20Type\x20text\x20(selector,\x20text)\x0a-\x20wait:\x20Wait\x20for\x20element/time\x20(waitTime\x20or\x20waitSelector)\x0a-\x20screenshot:\x20Take\x20screenshot\x20(outputPath,\x20fullPage)\x0a-\x20extract:\x20Extract\x20data\x20(selector,\x20attribute)\x0a-\x20scroll:\x20Scroll\x20page\x20(direction,\x20pixels)\x0a-\x20close:\x20Close\x20browser\x0a\x0aPARAMETERS:\x0a-\x20url:\x20Target\x20URL\x20for\x20navigation\x0a-\x20selector:\x20CSS\x20selector\x20(e.g.,\x20\x22#id\x22,\x20\x22.class\x22,\x20\x22button[type=\x27submit\x27]\x22)\x0a-\x20text:\x20Text\x20to\x20type\x0a-\x20outputPath:\x20Screenshot\x20file\x20path\x0a-\x20waitTime:\x20Wait\x20in\x20milliseconds\x20(100-30000)\x0a-\x20waitSelector:\x20Element\x20selector\x20to\x20wait\x20for\x0a-\x20attribute:\x20HTML\x20attribute\x20to\x20extract\x20(default:\x20\x22text\x22)\x0a-\x20direction:\x20\x22up\x22,\x20\x22down\x22,\x20\x22left\x22,\x20\x22right\x22\x0a-\x20pixels:\x20Scroll\x20distance\x20(default:\x20300)\x0a-\x20fullPage:\x20Full\x20page\x20screenshot\x20(true/false)\x0a\x0aEXAMPLES:\x0a\x0aScreenshot\x20a\x20page:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22browser\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22navigate\x22,\x20\x22url\x22:\x20\x22https://github.com/trending\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22wait\x22,\x20\x22waitTime\x22:\x202000},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22screenshot\x22,\x20\x22outputPath\x22:\x20\x22trending.png\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22close\x22}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aForm\x20automation:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22browser\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22navigate\x22,\x20\x22url\x22:\x20\x22https://example.com/login\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22wait\x22,\x20\x22waitSelector\x22:\x20\x22input#username\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22type\x22,\x20\x22selector\x22:\x20\x22input#username\x22,\x20\x22text\x22:\x20\x22myuser\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22type\x22,\x20\x22selector\x22:\x20\x22input#password\x22,\x20\x22text\x22:\x20\x22mypass\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22click\x22,\x20\x22selector\x22:\x20\x22button[type=\x27submit\x27]\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22close\x22}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aSECURITY:\x0a-\x20Restricted\x20to\x20allowed\x20domains\x0a-\x20Screenshot\x20size\x20limits\x20(max\x205MB)\x0a-\x20Auto-cleanup\x20after\x2010\x20minutes\x0a\x0aVIEWPORT:\x20'+this[_0xa62884(0x194)][_0xa62884(0x17c)]['width']+'x'+this['browserConfig'][_0xa62884(0x17c)]['height']+'\x0aTIMEOUT:\x20'+this['browserConfig']['timeout']+_0xa62884(0x195);}['parseParameters'](_0x4975e8){const _0x18fd6f=a0_0x14f2;try{if(_0x4975e8[_0x18fd6f(0x1b8)]()[_0x18fd6f(0x19c)]('{')){const _0xa1969=JSON[_0x18fd6f(0x1c5)](_0x4975e8);return!_0xa1969['actions']&&(_0xa1969['actions']=[]),!Array[_0x18fd6f(0x19e)](_0xa1969['actions'])&&(_0xa1969['actions']=[_0xa1969['actions']]),_0xa1969;}const _0x2b96e6={},_0x581487=[],_0x4ac677=['navigate','click',_0x18fd6f(0x19b),'wait','screenshot',_0x18fd6f(0x1e3),_0x18fd6f(0x1e2),'close'];for(const _0x2393ab of _0x4ac677){const _0x330c32=new RegExp('<'+_0x2393ab+_0x18fd6f(0x1b1),'gi');let _0x384688;while((_0x384688=_0x330c32['exec'](_0x4975e8))!==null){const _0x4dd88c=_0x384688[0x1],_0x57b474=this['parseAttributes'](_0x4dd88c),_0x3bf0bd={'type':_0x2393ab,..._0x57b474};_0x3bf0bd[_0x18fd6f(0x1ce)]&&(_0x3bf0bd[_0x18fd6f(0x1c6)]=_0x3bf0bd['output-path'],delete _0x3bf0bd['output-path']),_0x3bf0bd[_0x18fd6f(0x1de)]&&(_0x3bf0bd['waitTime']=parseInt(_0x3bf0bd[_0x18fd6f(0x1de)],0xa),delete _0x3bf0bd[_0x18fd6f(0x1de)]),_0x3bf0bd['wait-selector']&&(_0x3bf0bd[_0x18fd6f(0x1f4)]=_0x3bf0bd[_0x18fd6f(0x1bf)],delete _0x3bf0bd['wait-selector']),_0x3bf0bd[_0x18fd6f(0x1a1)]&&(_0x3bf0bd['waitType']=_0x3bf0bd[_0x18fd6f(0x1a1)],delete _0x3bf0bd['wait-type']),_0x3bf0bd[_0x18fd6f(0x1d1)]&&(_0x3bf0bd['fullPage']=_0x3bf0bd['full-page']===_0x18fd6f(0x19a),delete _0x3bf0bd[_0x18fd6f(0x1d1)]),_0x581487[_0x18fd6f(0x179)](_0x3bf0bd);}}return _0x2b96e6['actions']=Array['isArray'](_0x581487)?_0x581487:[],_0x2b96e6[_0x18fd6f(0x1e5)]=_0x4975e8[_0x18fd6f(0x1b8)](),_0x2b96e6;}catch(_0x89ada8){return this[_0x18fd6f(0x1ba)]?.[_0x18fd6f(0x1a8)](_0x18fd6f(0x1d7),{'error':_0x89ada8[_0x18fd6f(0x1a4)]}),{'actions':[],'rawContent':_0x4975e8[_0x18fd6f(0x1b8)](),'parseError':_0x89ada8['message']};}}['parseAttributes'](_0x3a0e21){const _0x53a3c0={};if(!_0x3a0e21)return _0x53a3c0;const _0x27ecf2=/([\w-]+)\s*=\s*["']([^"']*)["']/g;let _0x3274f7;while((_0x3274f7=_0x27ecf2['exec'](_0x3a0e21))!==null){const _0x1748d0=_0x3274f7[0x1],_0x255fb6=_0x3274f7[0x2];_0x53a3c0[_0x1748d0]=_0x255fb6;}return _0x53a3c0;}['getRequiredParameters'](){return['actions'];}['customValidateParameters'](_0x41f74f){const _0x484469=a0_0x14f2,_0x1fa72f=[];if(!_0x41f74f[_0x484469(0x1af)]||!Array[_0x484469(0x19e)](_0x41f74f['actions'])||_0x41f74f[_0x484469(0x1af)][_0x484469(0x191)]===0x0)_0x1fa72f['push'](_0x484469(0x1cc));else for(const [_0x139e55,_0x49e306]of _0x41f74f[_0x484469(0x1af)]['entries']()){if(!_0x49e306['type']){_0x1fa72f['push'](_0x484469(0x1a0)+(_0x139e55+0x1)+_0x484469(0x1c3));continue;}switch(_0x49e306[_0x484469(0x19b)]){case'navigate':if(!_0x49e306['url'])_0x1fa72f['push'](_0x484469(0x1a0)+(_0x139e55+0x1)+_0x484469(0x197));else!this['isAllowedUrl'](_0x49e306['url'])&&_0x1fa72f['push']('Action\x20'+(_0x139e55+0x1)+_0x484469(0x17f)+_0x49e306['url']);break;case'click':case'extract':!_0x49e306['selector']&&_0x1fa72f[_0x484469(0x179)](_0x484469(0x1a0)+(_0x139e55+0x1)+':\x20selector\x20is\x20required\x20for\x20'+_0x49e306['type']);break;case'type':!_0x49e306['selector']&&_0x1fa72f['push']('Action\x20'+(_0x139e55+0x1)+':\x20selector\x20is\x20required\x20for\x20type');!_0x49e306[_0x484469(0x198)]&&_0x49e306['text']!==''&&_0x1fa72f[_0x484469(0x179)]('Action\x20'+(_0x139e55+0x1)+':\x20text\x20is\x20required\x20for\x20type');break;case'wait':!_0x49e306['waitTime']&&!_0x49e306[_0x484469(0x1f4)]&&_0x1fa72f['push']('Action\x20'+(_0x139e55+0x1)+_0x484469(0x1e1));_0x49e306[_0x484469(0x193)]&&(_0x49e306[_0x484469(0x193)]<0x64||_0x49e306['waitTime']>0x7530)&&_0x1fa72f[_0x484469(0x179)]('Action\x20'+(_0x139e55+0x1)+_0x484469(0x186));break;case _0x484469(0x1e4):!_0x49e306['outputPath']&&_0x1fa72f['push'](_0x484469(0x1a0)+(_0x139e55+0x1)+':\x20output-path\x20is\x20required\x20for\x20screenshot');break;case'scroll':if(!_0x49e306[_0x484469(0x184)])_0x1fa72f[_0x484469(0x179)]('Action\x20'+(_0x139e55+0x1)+_0x484469(0x19d));else!['up',_0x484469(0x1b6),'left',_0x484469(0x19f)]['includes'](_0x49e306[_0x484469(0x184)])&&_0x1fa72f[_0x484469(0x179)](_0x484469(0x1a0)+(_0x139e55+0x1)+':\x20invalid\x20scroll\x20direction:\x20'+_0x49e306['direction']);break;case'close':break;default:_0x1fa72f['push']('Action\x20'+(_0x139e55+0x1)+_0x484469(0x1ca)+_0x49e306['type']);}}return{'valid':_0x1fa72f[_0x484469(0x191)]===0x0,'errors':_0x1fa72f};}async[a0_0x1c8170(0x1f0)](_0x29f371,_0x23ab92){const _0x4ffe34=a0_0x1c8170,{actions:_0x233281}=_0x29f371,{agentId:_0x2652c8,projectDir:_0x5295ac}=_0x23ab92,_0x1ce845=_0x2652c8+'-'+(_0x5295ac||'default'),_0x522ca5=[];for(const _0x18920e of _0x233281){try{let _0x3df0b7;switch(_0x18920e['type']){case _0x4ffe34(0x1ac):_0x3df0b7=await this['navigate'](_0x18920e[_0x4ffe34(0x188)],_0x1ce845);break;case'click':_0x3df0b7=await this['click'](_0x18920e[_0x4ffe34(0x1d3)],_0x1ce845);break;case _0x4ffe34(0x19b):_0x3df0b7=await this['type'](_0x18920e[_0x4ffe34(0x1d3)],_0x18920e[_0x4ffe34(0x198)],_0x1ce845);break;case'wait':_0x3df0b7=await this[_0x4ffe34(0x1cf)](_0x18920e,_0x1ce845);break;case'screenshot':_0x3df0b7=await this[_0x4ffe34(0x1e4)](_0x18920e[_0x4ffe34(0x1c6)],_0x5295ac,_0x1ce845,_0x18920e);break;case _0x4ffe34(0x1e3):_0x3df0b7=await this[_0x4ffe34(0x1e3)](_0x18920e['selector'],_0x18920e[_0x4ffe34(0x1cb)]||_0x4ffe34(0x198),_0x1ce845);break;case'scroll':_0x3df0b7=await this['scroll'](_0x18920e,_0x1ce845);break;case _0x4ffe34(0x1d2):_0x3df0b7=await this['closeBrowser'](_0x1ce845);break;default:throw new Error(_0x4ffe34(0x1e7)+_0x18920e[_0x4ffe34(0x19b)]);}_0x522ca5[_0x4ffe34(0x179)](_0x3df0b7),this[_0x4ffe34(0x1e6)](_0x18920e,_0x3df0b7,_0x2652c8);}catch(_0x1cffc6){const _0x247768={'success':![],'action':_0x18920e['type'],'error':_0x1cffc6[_0x4ffe34(0x1a4)],'selector':_0x18920e['selector']||_0x18920e[_0x4ffe34(0x188)]};_0x522ca5['push'](_0x247768),this[_0x4ffe34(0x1e6)](_0x18920e,_0x247768,_0x2652c8);}}return{'success':!![],'actions':_0x522ca5,'executedActions':_0x233281[_0x4ffe34(0x191)],'toolUsed':_0x4ffe34(0x1d8)};}async['navigate'](_0x10686e,_0x496161){const _0x1c2f07=a0_0x1c8170,_0xc1146c=await this[_0x1c2f07(0x1b5)](_0x496161),_0x542a41=await this[_0x1c2f07(0x190)](_0x496161),_0x1b525b=Date[_0x1c2f07(0x18c)]();try{await _0x542a41[_0x1c2f07(0x1bc)](_0x10686e,{'waitUntil':_0x1c2f07(0x1be),'timeout':this['browserConfig']['timeout']});const _0x2d7558=await _0x542a41[_0x1c2f07(0x1cd)](),_0xe57f1a=_0x542a41[_0x1c2f07(0x188)]();return{'success':!![],'action':_0x1c2f07(0x1ac),'url':_0xe57f1a,'originalUrl':_0x10686e,'title':_0x2d7558,'loadTime':Date[_0x1c2f07(0x18c)]()-_0x1b525b,'message':'Navigated\x20to\x20'+_0x10686e};}catch(_0x1b08ea){throw new Error(_0x1c2f07(0x18d)+_0x1b08ea[_0x1c2f07(0x1a4)]);}}async['click'](_0x1346ac,_0x59da50){const _0x353ac0=a0_0x1c8170,_0x3a4208=await this[_0x353ac0(0x190)](_0x59da50);try{return await _0x3a4208[_0x353ac0(0x1dc)](_0x1346ac,{'timeout':0x1388}),await _0x3a4208['click'](_0x1346ac),{'success':!![],'action':'click','selector':_0x1346ac,'message':_0x353ac0(0x17e)+_0x1346ac};}catch(_0x5ef680){throw new Error(_0x353ac0(0x1ec)+_0x1346ac+':\x20'+_0x5ef680[_0x353ac0(0x1a4)]);}}async['type'](_0x56e70f,_0x4fb03a,_0x521ca8){const _0x187293=a0_0x1c8170,_0x4e67e3=await this[_0x187293(0x190)](_0x521ca8);try{return await _0x4e67e3[_0x187293(0x1dc)](_0x56e70f,{'timeout':0x1388}),await _0x4e67e3['focus'](_0x56e70f),await _0x4e67e3[_0x187293(0x1b7)][_0x187293(0x18f)](),await _0x4e67e3[_0x187293(0x19b)](_0x56e70f,_0x4fb03a),{'success':!![],'action':'type','selector':_0x56e70f,'text':_0x4fb03a,'textLength':_0x4fb03a['length'],'message':'Typed\x20'+_0x4fb03a[_0x187293(0x191)]+'\x20characters\x20into\x20'+_0x56e70f};}catch(_0x293ed1){throw new Error(_0x187293(0x1d6)+_0x56e70f+':\x20'+_0x293ed1[_0x187293(0x1a4)]);}}async[a0_0x1c8170(0x1cf)](_0x292b3a,_0x1b740f){const _0x2cf34c=a0_0x1c8170,_0x26a523=await this['getPage'](_0x1b740f);try{if(_0x292b3a['waitTime'])return await new Promise(_0x216801=>setTimeout(_0x216801,_0x292b3a[_0x2cf34c(0x193)])),{'success':!![],'action':_0x2cf34c(0x1cf),'waitTime':_0x292b3a[_0x2cf34c(0x193)],'message':_0x2cf34c(0x1bb)+_0x292b3a['waitTime']+'ms'};if(_0x292b3a[_0x2cf34c(0x1f4)]){const _0x56a515=_0x292b3a[_0x2cf34c(0x1aa)]||'visible',_0x5759ee={'timeout':0x2710};return _0x56a515==='hidden'?await _0x26a523[_0x2cf34c(0x1dc)](_0x292b3a['waitSelector'],{..._0x5759ee,'hidden':!![]}):await _0x26a523[_0x2cf34c(0x1dc)](_0x292b3a[_0x2cf34c(0x1f4)],_0x5759ee),{'success':!![],'action':_0x2cf34c(0x1cf),'waitSelector':_0x292b3a[_0x2cf34c(0x1f4)],'waitType':_0x56a515,'message':'Waited\x20for\x20'+_0x292b3a['waitSelector']+_0x2cf34c(0x17a)+_0x56a515};}}catch(_0x4c07a9){throw new Error(_0x2cf34c(0x1ae)+_0x4c07a9[_0x2cf34c(0x1a4)]);}}async['screenshot'](_0x25b275,_0x2e119b,_0x1337b0,_0x43595f={}){const _0x443467=a0_0x1c8170,_0x401608=await this[_0x443467(0x190)](_0x1337b0);try{const _0x18b4ea=_0x2e119b?a0_0xda5703['resolve'](_0x2e119b,_0x25b275):a0_0xda5703['resolve'](_0x25b275),_0xc26cd3=a0_0xda5703['dirname'](_0x18b4ea);await a0_0x39906d[_0x443467(0x199)](_0xc26cd3,{'recursive':!![]});const _0x3c136a={'path':_0x18b4ea,'type':_0x443467(0x1f1)};_0x43595f[_0x443467(0x1da)]&&(_0x3c136a[_0x443467(0x1da)]=!![]);await _0x401608[_0x443467(0x1e4)](_0x3c136a);const _0x223142=await a0_0x39906d['stat'](_0x18b4ea);if(_0x223142[_0x443467(0x1e9)]>this[_0x443467(0x1a6)])throw new Error('Screenshot\x20too\x20large:\x20'+_0x223142['size']+_0x443467(0x18b)+this[_0x443467(0x1a6)]+')');return{'success':!![],'action':'screenshot','outputPath':a0_0xda5703[_0x443467(0x1ed)](_0x2e119b||process[_0x443467(0x1df)](),_0x18b4ea),'size':_0x223142[_0x443467(0x1e9)],'fullPage':!!_0x43595f['fullPage'],'message':'Screenshot\x20saved:\x20'+_0x25b275};}catch(_0x1855ea){throw new Error('Screenshot\x20failed:\x20'+_0x1855ea[_0x443467(0x1a4)]);}}async['extract'](_0x1cb954,_0x2188dc,_0x7010ac){const _0x2030ee=a0_0x1c8170,_0x2ed927=await this['getPage'](_0x7010ac);try{await _0x2ed927['waitForSelector'](_0x1cb954,{'timeout':0x1388});let _0x1aec9c;return _0x2188dc===_0x2030ee(0x198)?_0x1aec9c=await _0x2ed927['$eval'](_0x1cb954,_0x18708=>_0x18708['textContent'][_0x2030ee(0x1b8)]()):_0x1aec9c=await _0x2ed927['$eval'](_0x1cb954,(_0x27a51e,_0x4e6056)=>_0x27a51e[_0x2030ee(0x192)](_0x4e6056),_0x2188dc),{'success':!![],'action':'extract','selector':_0x1cb954,'attribute':_0x2188dc,'data':_0x1aec9c,'message':_0x2030ee(0x1e0)+_0x2188dc+'\x20from\x20'+_0x1cb954};}catch(_0x4444c5){throw new Error('Extract\x20failed\x20on\x20'+_0x1cb954+':\x20'+_0x4444c5['message']);}}async[a0_0x1c8170(0x1e2)](_0x5760ce,_0x4eba35){const _0x25e758=a0_0x1c8170,_0x447be6=await this[_0x25e758(0x190)](_0x4eba35);try{const {direction:_0x360289,pixels:pixels=0x12c,selector:_0x1c3d70}=_0x5760ce;return _0x1c3d70?await _0x447be6[_0x25e758(0x1b9)]((_0x5a2728,_0x351441,_0xb58c8b)=>{const _0x43ef4d=_0x25e758,_0x515e1a=document['querySelector'](_0x5a2728);if(_0x515e1a){if(_0x351441===_0x43ef4d(0x1b6))_0x515e1a['scrollTop']+=_0xb58c8b;else{if(_0x351441==='up')_0x515e1a[_0x43ef4d(0x1a2)]-=_0xb58c8b;else{if(_0x351441===_0x43ef4d(0x19f))_0x515e1a[_0x43ef4d(0x180)]+=_0xb58c8b;else{if(_0x351441==='left')_0x515e1a[_0x43ef4d(0x180)]-=_0xb58c8b;}}}}},_0x1c3d70,_0x360289,pixels):await _0x447be6[_0x25e758(0x1b9)]((_0x46a91d,_0x53e301)=>{const _0x3738f9=_0x25e758;if(_0x46a91d==='down')window[_0x3738f9(0x18a)](0x0,_0x53e301);else{if(_0x46a91d==='up')window['scrollBy'](0x0,-_0x53e301);else{if(_0x46a91d==='right')window['scrollBy'](_0x53e301,0x0);else{if(_0x46a91d===_0x3738f9(0x1ad))window['scrollBy'](-_0x53e301,0x0);}}}},_0x360289,pixels),{'success':!![],'action':'scroll','direction':_0x360289,'pixels':pixels,'selector':_0x1c3d70||_0x25e758(0x1b2),'message':_0x25e758(0x1b4)+_0x360289+'\x20by\x20'+pixels+'px'};}catch(_0x227255){throw new Error(_0x25e758(0x1d0)+_0x227255[_0x25e758(0x1a4)]);}}async[a0_0x1c8170(0x1b5)](_0x1e185c){const _0x1216dc=a0_0x1c8170;if(this[_0x1216dc(0x17d)][_0x1216dc(0x1c4)](_0x1e185c)){const _0x19d320=this[_0x1216dc(0x17d)]['get'](_0x1e185c);if(!_0x19d320['browser'][_0x1216dc(0x181)]())this[_0x1216dc(0x17d)][_0x1216dc(0x1f2)](_0x1e185c);else return _0x19d320['browser'];}const _0x3fcc0d=await a0_0xed1e54['launch']({'headless':this['browserConfig']['headless'],'args':[_0x1216dc(0x1bd),'--disable-setuid-sandbox','--disable-dev-shm-usage','--disable-gpu']}),_0x89e9a2=await _0x3fcc0d['newPage']();return await _0x89e9a2[_0x1216dc(0x1e8)](this[_0x1216dc(0x194)][_0x1216dc(0x17c)]),await _0x89e9a2[_0x1216dc(0x196)](this[_0x1216dc(0x194)]['userAgent']),this['browserInstances']['set'](_0x1e185c,{'browser':_0x3fcc0d,'page':_0x89e9a2,'created':Date['now']()}),setTimeout(()=>{const _0x44b815=_0x1216dc;this[_0x44b815(0x1a3)](_0x1e185c);},0xa*0x3c*0x3e8),_0x3fcc0d;}async[a0_0x1c8170(0x190)](_0x5f31b9){const _0x54b50d=a0_0x1c8170;return await this['getBrowser'](_0x5f31b9),this['browserInstances']['get'](_0x5f31b9)[_0x54b50d(0x1b2)];}async[a0_0x1c8170(0x17b)](_0x384937){const _0x5ada6f=a0_0x1c8170,_0x508c47=this['browserInstances']['get'](_0x384937);if(_0x508c47)try{return await _0x508c47['browser'][_0x5ada6f(0x1d2)](),this[_0x5ada6f(0x17d)]['delete'](_0x384937),{'success':!![],'action':'close','browserKey':_0x384937,'message':_0x5ada6f(0x1c1)};}catch(_0x329040){throw new Error('Failed\x20to\x20close\x20browser:\x20'+_0x329040['message']);}return{'success':!![],'action':_0x5ada6f(0x1d2),'browserKey':_0x384937,'message':'Browser\x20instance\x20not\x20found\x20(already\x20closed)'};}async[a0_0x1c8170(0x1a3)](_0x3fb0a5){const _0xd795ac=a0_0x1c8170,_0x10a92c=this['browserInstances']['get'](_0x3fb0a5);if(_0x10a92c)try{await _0x10a92c[_0xd795ac(0x1d8)]['close']();}catch(_0x4eea11){}finally{this[_0xd795ac(0x17d)][_0xd795ac(0x1f2)](_0x3fb0a5);}}['isAllowedUrl'](_0xb2f096){const _0x511e9b=a0_0x1c8170;try{const _0x57bb44=new URL(_0xb2f096),_0x519f4a=_0x57bb44['hostname']['toLowerCase']();if(this['blockedDomains']['some'](_0x21f9e3=>_0x519f4a['includes'](_0x21f9e3['toLowerCase']())))return![];if(this[_0x511e9b(0x1c0)]&&this[_0x511e9b(0x1c0)]['length']>0x0)return this[_0x511e9b(0x1c0)]['some'](_0x543fe9=>_0x519f4a['includes'](_0x543fe9['toLowerCase']()));return!![];}catch{return![];}}['addToHistory'](_0x51683a,_0x234843,_0x2de35c){const _0x584017=a0_0x1c8170,_0x2b6a40={'timestamp':new Date()[_0x584017(0x1ab)](),'agentId':_0x2de35c,'action':_0x51683a[_0x584017(0x19b)],'selector':_0x51683a['selector']||_0x51683a['url'],'success':_0x234843['success'],'loadTime':_0x234843['loadTime']||0x0};this['operationHistory'][_0x584017(0x179)](_0x2b6a40),this[_0x584017(0x1db)][_0x584017(0x191)]>0x64&&(this['operationHistory']=this['operationHistory']['slice'](-0x64));}['getSupportedActions'](){const _0x40ecdc=a0_0x1c8170;return['navigate',_0x40ecdc(0x1b0),_0x40ecdc(0x19b),_0x40ecdc(0x1cf),'screenshot','extract','scroll',_0x40ecdc(0x1d2)];}[a0_0x1c8170(0x182)](){const _0x35da0b=a0_0x1c8170;return{'type':_0x35da0b(0x1ea),'properties':{'actions':{'type':'array','minItems':0x1,'items':{'type':'object','properties':{'type':{'type':_0x35da0b(0x1d9),'enum':this[_0x35da0b(0x1ef)]()},'url':{'type':'string'},'selector':{'type':_0x35da0b(0x1d9)},'text':{'type':'string'},'outputPath':{'type':_0x35da0b(0x1d9)},'waitTime':{'type':_0x35da0b(0x18e)},'waitSelector':{'type':'string'},'attribute':{'type':'string'},'direction':{'type':'string'},'pixels':{'type':_0x35da0b(0x18e)}},'required':[_0x35da0b(0x19b)]}}},'required':[_0x35da0b(0x1af)]};}async['cleanup'](_0x5e2b13){const _0x3bd054=a0_0x1c8170;for(const [_0x2a11c1]of this['browserInstances']){await this[_0x3bd054(0x1a3)](_0x2a11c1);}}[a0_0x1c8170(0x187)](_0x3c4681=null){const _0x299443=a0_0x1c8170;if(_0x3c4681)return this['operationHistory'][_0x299443(0x178)](_0x2d8a93=>_0x2d8a93['agentId']===_0x3c4681);return[...this['operationHistory']];}}export default BrowserTool;function a0_0x1d7b(){const _0x34bb11=['AgfZ','CgfYC2u','B3v0Chv0ugf0Aa','nZjXvwLsAwW','mtzwv3bgwMe','mtGYmJe0mtjfv2X0u3C','oIb1BMTUB3DUigfJDgLVBIb0ExbLoIa','yxr0CMLIDxrL','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','DgL0Bgu','B3v0Chv0lxbHDgG','D2fPDa','u2nYB2XSigzHAwXLzdOG','zNvSBc1WywDL','y2XVC2u','C2vSzwn0B3i','nta4nduWsfDmrvLs','DxnLCKfNzw50','vhLWzsbMywLSzwqGB24G','rMfPBgvKihrVihbHCNnLigjYB3DZzxiGCgfYyw1LDgvYCW','yNjVD3nLCG','C3rYAw5N','zNvSBfbHz2u','B3bLCMf0Aw9UsgLZDg9YEq','D2fPDezVCLnLBgvJDg9Y','nJG4mJrRsNf4Ce8','D2fPDc10Aw1L','y3DK','rxH0CMfJDgvKia','oIbLAxrOzxiGD2fPDc10Aw1Lig9YihDHAxqTC2vSzwn0B3iGAxmGCMvXDwLYzwq','C2nYB2XS','zxH0CMfJDa','C2nYzwvUC2HVDa','CMf3q29UDgvUDa','ywrKvg9iAxn0B3j5','vw5RBM93BIbHy3rPB24GDhLWztOG','C2v0vMLLD3bVCNq','C2L6zq','B2jQzwn0','mtm2Cfz5AgnX','q2XPy2SGzMfPBgvKig9Uia','CMvSyxrPDMu','mtuWntaWs1zduhL6','z2v0u3vWCg9YDgvKqwn0Aw9UCW','zxHLy3v0zq','Cg5N','zgvSzxrL','CMvXDwLYzxnqCM9Qzwn0','D2fPDfnLBgvJDg9Y','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','zMLSDgvY','ChvZAa','ihrVigjLia','y2XVC2vcCM93C2vY','DMLLD3bVCNq','yNjVD3nLCKLUC3rHBMnLCW','q2XPy2TLzcbVBIa','oIbvuKWGBM90igfSBg93zwq6ia','C2nYB2XStgvMDa','AxndB25Uzwn0zwq','z2v0ugfYyw1LDgvYu2nOzw1H','mZH4BeX6reC','zgLYzwn0Aw9U','AgvHzgXLC3m','oIb3ywL0lxrPBwuGBxvZDcbIzsbIzxr3zwvUideWmcbHBMqGmZaWmdaGBwLSBgLZzwnVBMrZ','z2v0t3bLCMf0Aw9UsgLZDg9YEq','DxjS','DgLTzw91Da','C2nYB2XSqNK','igj5DgvZicHTyxGG','BM93','tMf2AwDHDgLVBIbMywLSzwq6ia','Aw50zwDLCG','C2vSzwn0qwXS','z2v0ugfNzq','BgvUz3rO','z2v0qxr0CMLIDxrL','D2fPDfrPBwu','yNjVD3nLCKnVBMzPzW','BxmGCgvYig9WzxjHDgLVBGOGicaG','C2v0vxnLCKfNzw50','oIb1CMWGAxmGCMvXDwLYzwqGzM9Yig5HDMLNyxrL','Dgv4Da','BwTKAxi','Dhj1zq','DhLWzq','C3rHCNrZv2L0Aa','oIbKAxjLy3rPB24GAxmGCMvXDwLYzwqGzM9YihnJCM9SBa','AxnbCNjHEq','CMLNAhq','qwn0Aw9Uia','D2fPDc10ExbL','C2nYB2XSvg9W','y2XLyw51CejYB3DZzxi','BwvZC2fNzq','tw96AwXSys81lJaGkfDPBMrVD3mGtLqGmtaUmdSGv2LUnJq7ihG2ncKGqxbWBgvxzwjlAxqVntm3lJm2','Bwf4u2nYzwvUC2HVDfnPEMu','mJa0rvf1swfm','zxjYB3i','mtiWnZy3muLzsLHita','D2fPDfr5Cgu','Dg9ju09tDhjPBMC','BMf2AwDHDgu','BgvMDa','v2fPDcbMywLSzwq6ia','ywn0Aw9UCW','y2XPy2S','xhmRkfTEpL0QpYLCCYPClZ8+','CgfNzq','mtCXmZm3nJvLANDJBxa','u2nYB2XSzwqG','z2v0qNjVD3nLCG','zg93BG','A2v5yM9HCMq','DhjPBq','zxzHBhvHDgu','Bg9Nz2vY','v2fPDgvKia','z290BW','ls1UBY1Zyw5KyM94','BMv0D29YA2LKBguW','D2fPDc1ZzwXLy3rVCG','ywXSB3DLzerVBwfPBNm','qNjVD3nLCIbPBNn0yw5JzsbJBg9Zzwq','ndm2mdvOBfH1Buq','oIb0ExbLigLZihjLCxvPCMvK'];a0_0x1d7b=function(){return _0x34bb11;};return a0_0x1d7b();}
1
+ const a0_0x207038=a0_0x2c24;function a0_0x2c24(_0x3567b1,_0x5ee422){_0x3567b1=_0x3567b1-0x1bf;const _0xa42a2=a0_0xa42a();let _0x2c246e=_0xa42a2[_0x3567b1];if(a0_0x2c24['amiCbx']===undefined){var _0x59f755=function(_0x5db5e1){const _0x4357ed='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x25f614='',_0x10db5e='';for(let _0x28983e=0x0,_0xa2b366,_0x30fb5e,_0x19d7c7=0x0;_0x30fb5e=_0x5db5e1['charAt'](_0x19d7c7++);~_0x30fb5e&&(_0xa2b366=_0x28983e%0x4?_0xa2b366*0x40+_0x30fb5e:_0x30fb5e,_0x28983e++%0x4)?_0x25f614+=String['fromCharCode'](0xff&_0xa2b366>>(-0x2*_0x28983e&0x6)):0x0){_0x30fb5e=_0x4357ed['indexOf'](_0x30fb5e);}for(let _0x3d95cd=0x0,_0x37a905=_0x25f614['length'];_0x3d95cd<_0x37a905;_0x3d95cd++){_0x10db5e+='%'+('00'+_0x25f614['charCodeAt'](_0x3d95cd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x10db5e);};a0_0x2c24['PCbSiY']=_0x59f755,a0_0x2c24['prLAET']={},a0_0x2c24['amiCbx']=!![];}const _0x1b8428=_0xa42a2[0x0],_0x3b80e7=_0x3567b1+_0x1b8428,_0x39042d=a0_0x2c24['prLAET'][_0x3b80e7];return!_0x39042d?(_0x2c246e=a0_0x2c24['PCbSiY'](_0x2c246e),a0_0x2c24['prLAET'][_0x3b80e7]=_0x2c246e):_0x2c246e=_0x39042d,_0x2c246e;}(function(_0x410687,_0x816005){const _0x2140cd=a0_0x2c24,_0x2a74f4=_0x410687();while(!![]){try{const _0x3ccb44=parseInt(_0x2140cd(0x1f5))/0x1*(-parseInt(_0x2140cd(0x1ca))/0x2)+-parseInt(_0x2140cd(0x1f9))/0x3+parseInt(_0x2140cd(0x211))/0x4*(-parseInt(_0x2140cd(0x1c5))/0x5)+parseInt(_0x2140cd(0x1fc))/0x6+parseInt(_0x2140cd(0x230))/0x7+parseInt(_0x2140cd(0x203))/0x8*(-parseInt(_0x2140cd(0x207))/0x9)+-parseInt(_0x2140cd(0x22d))/0xa*(-parseInt(_0x2140cd(0x204))/0xb);if(_0x3ccb44===_0x816005)break;else _0x2a74f4['push'](_0x2a74f4['shift']());}catch(_0x13b6f8){_0x2a74f4['push'](_0x2a74f4['shift']());}}}(a0_0xa42a,0xdbeb5));import{BaseTool}from'./baseTool.js';import a0_0x25f614 from'../utilities/tagParser.js';function a0_0xa42a(){const _0x1b44be=['DgL0Bgu','D2fPDfr5Cgu','Aw5JBhvKzxm','D2fPDc10Aw1L','ywXSB3DLzerVBwfPBNm','C3rYAw5N','CgfYC2u','jgv2ywW','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','D2fPDfrPBwu','oIbKAxjLy3rPB24GAxmGCMvXDwLYzwqGzM9YihnJCM9SBa','C2nYzwvUC2HVDa','y2XPy2S','ls1KAxnHyMXLlwDWDq','zgLYBMfTzq','C2nYB2XSvg9W','ignOyxjHy3rLCNmGAw50BYa','qwn0Aw9Uia','ihrVigjLia','DhLWzq','y2XLyw51Ca','z2v0','z2v0ugfNzq','nZe4otveqvvrtwW','z2v0qxr0CMLIDxrL','AgvPz2H0','xhmRkfTEpL0QpYLCCYPClZ8+','BM93','mNftAxDYAq','zxHLy3v0zq','DMLLD3bVCNq','qNjVD3nLCIbPBNn0yw5JzsbJBg9Zzwq','B3v0Chv0ugf0Aa','oIb0zxH0igLZihjLCxvPCMvKigzVCIb0ExbL','v2fPDcbMywLSzwq6ia','CgfYC2vqyxjHBwv0zxjZ','oIb1BMTUB3DUigfJDgLVBIb0ExbLoIa','y2XLyw51CejYB3DZzxi','zxjYB3i','C2vSzwn0B3i','CgfNzq','zNvSBfbHz2u','CxvLCNLtzwXLy3rVCG','AxnbBgXVD2vKvxjS','yxr0CMLIDxrL','q2XPy2SGzMfPBgvKig9Uia','C3vJy2vZCW','oIbLAxrOzxiGD2fPDc10Aw1Lig9YihDHAxqTC2vSzwn0B3iGAxmGCMvXDwLYzwq','ywn0Aw9UCW','B2jQzwn0','z2v0rgvZy3jPChrPB24','ywrKvg9iAxn0B3j5','B3bLCMf0Aw9UsgLZDg9YEq','D2fPDc10ExbL','u2nYB2XSzwqG','CMvXDwLYzxnqCM9Qzwn0','zMLSDgvY','z2v0t3bLCMf0Aw9UsgLZDg9YEq','y3DK','ChvZAa','D2fPDa','DgLTzw91Da','CMLNAhq','A2v5yM9HCMq','cLrjtuvpvvq6ia','C29Tzq','C2XPy2u','oIbVDxrWDxqTCgf0AcbPCYbYzxf1AxjLzcbMB3iGC2nYzwvUC2HVDa','oIb1CMWGAxmGCMvXDwLYzwqGzM9Yig5HDMLNyxrL','Bwf4u2nYzwvUC2HVDfnPEMu','zM9JDxm','ndmWmJqXuuTMr0Hb','rMfPBgvKihrVignSB3nLigjYB3DZzxi6ia','z2v0u3vWCg9YDgvKqwn0Aw9UCW','zgLYzwn0Aw9U','mta5mdi1n0vVuMPwqW','y2XVC2u','igzYB20G','nZa0nJK3nMXur0PZAG','yNjVD3nLCG','C3rHCNrZv2L0Aa','ls1UBY1Zyw5KyM94','Dhj1zq','BwvZC2fNzq','Dgv4Da','og9irNHLwq','mJKYnZf4r2PMuNu','y2XVC2vcCM93C2vY','BMv0D29YA2LKBguW','mtqWodC3odfmtwLuzu0','oIb3ywL0lxrPBwuGBxvZDcbIzsbIzxr3zwvUideWmcbHBMqGmZaWmdaGBwLSBgLZzwnVBMrZ','zgvSzxrL','C2L6zq','BMf2AwDHDgu','zg93BG','tMf2AwDHDgvKihrVia','Dg9mB3DLCKnHC2u','q2XPy2TLzcbVBIa','tw96AwXSys81lJaGkfDPBMrVD3mGtLqGmtaUmdSGv2LUnJq7ihG2ncKGqxbWBgvxzwjlAxqVntm3lJm2','mJm2DLPbsNHe','z2v0qNjVD3nLCG','D2fPDezVCLnLBgvJDg9Y','DhjPBq','zxHLyW','DxjS','D2fPDfnLBgvJDg9Y','BgvUz3rO','AgvHzgXLC3m','vhLWzsbMywLSzwqGB24G','C2vSzwn0qwXS','B3v0Chv0lxbHDgG','C2nYB2XSqNK','AxnbCNjHEq','C2nYB2XStgvMDa','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','zxzHBhvHDgu','oIb0ExbLigLZihjLCxvPCMvK','yxjYyxK','tMf2AwDHDgLVBIbMywLSzwq6ia','zxH0CMfJDa','C2nYB2XS','yNjVD3nLCKLUC3rHBMnLCW','CMvZB2X2zq','zNvSBc1WywDL','D2fPDc1ZzwXLy3rVCG','Bg9Nz2vY','qNjVD3nLCIbPBNn0yw5JzsbUB3qGzM91BMqGkgfSCMvHzhKGy2XVC2vKkq','nJu1mez2q3zcDW','Aw50zwDLCG','yNjVD3nLCKnVBMzPzW','odmZndy3nMPkCKvQqq','yMXVy2TLzerVBwfPBNm'];a0_0xa42a=function(){return _0x1b44be;};return a0_0xa42a();}import a0_0x10db5e from'puppeteer';import a0_0x28983e from'fs/promises';import a0_0xa2b366 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BrowserTool extends BaseTool{constructor(_0x30fb5e={},_0x19d7c7=null){const _0x781a02=a0_0x2c24;super(_0x30fb5e,_0x19d7c7),this[_0x781a02(0x1e5)]=![],this['isAsync']=!![],this[_0x781a02(0x1eb)]=_0x30fb5e[_0x781a02(0x1eb)]||0xea60,this['maxConcurrentOperations']=_0x30fb5e['maxConcurrentOperations']||0x2,this['browserConfig']={'headless':_0x30fb5e['headless']!==![],'viewport':_0x30fb5e['viewport']||{'width':0x500,'height':0x2d0},'userAgent':_0x30fb5e['userAgent']||_0x781a02(0x210),'timeout':_0x30fb5e['pageTimeout']||0x7530},this[_0x781a02(0x227)]=new Map(),this[_0x781a02(0x236)]=_0x30fb5e['allowedDomains']||null,this[_0x781a02(0x231)]=_0x30fb5e['blockedDomains']||[],this['maxScreenshotSize']=_0x30fb5e[_0x781a02(0x1f3)]||0x5*0x400*0x400,this[_0x781a02(0x1e2)]=[];}[a0_0x207038(0x1e0)](){const _0x4ecc7b=a0_0x207038;return'\x0aBrowser\x20Tool:\x20Automate\x20web\x20browser\x20interactions,\x20navigation,\x20and\x20data\x20extraction.\x0a\x0aUSAGE:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22browser\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22navigate\x22,\x20\x22url\x22:\x20\x22https://example.com\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22wait\x22,\x20\x22waitTime\x22:\x202000},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22click\x22,\x20\x22selector\x22:\x20\x22button.submit\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22screenshot\x22,\x20\x22outputPath\x22:\x20\x22screenshot.png\x22}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aSUPPORTED\x20ACTIONS:\x0a-\x20navigate:\x20Navigate\x20to\x20URL\x20(url)\x0a-\x20click:\x20Click\x20element\x20(selector)\x0a-\x20type:\x20Type\x20text\x20(selector,\x20text)\x0a-\x20wait:\x20Wait\x20for\x20element/time\x20(waitTime\x20or\x20waitSelector)\x0a-\x20screenshot:\x20Take\x20screenshot\x20(outputPath,\x20fullPage)\x0a-\x20extract:\x20Extract\x20data\x20(selector,\x20attribute)\x0a-\x20scroll:\x20Scroll\x20page\x20(direction,\x20pixels)\x0a-\x20close:\x20Close\x20browser\x0a\x0aPARAMETERS:\x0a-\x20url:\x20Target\x20URL\x20for\x20navigation\x0a-\x20selector:\x20CSS\x20selector\x20(e.g.,\x20\x22#id\x22,\x20\x22.class\x22,\x20\x22button[type=\x27submit\x27]\x22)\x0a-\x20text:\x20Text\x20to\x20type\x0a-\x20outputPath:\x20Screenshot\x20file\x20path\x0a-\x20waitTime:\x20Wait\x20in\x20milliseconds\x20(100-30000)\x0a-\x20waitSelector:\x20Element\x20selector\x20to\x20wait\x20for\x0a-\x20attribute:\x20HTML\x20attribute\x20to\x20extract\x20(default:\x20\x22text\x22)\x0a-\x20direction:\x20\x22up\x22,\x20\x22down\x22,\x20\x22left\x22,\x20\x22right\x22\x0a-\x20pixels:\x20Scroll\x20distance\x20(default:\x20300)\x0a-\x20fullPage:\x20Full\x20page\x20screenshot\x20(true/false)\x0a\x0aEXAMPLES:\x0a\x0aScreenshot\x20a\x20page:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22browser\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22navigate\x22,\x20\x22url\x22:\x20\x22https://github.com/trending\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22wait\x22,\x20\x22waitTime\x22:\x202000},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22screenshot\x22,\x20\x22outputPath\x22:\x20\x22trending.png\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22close\x22}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aForm\x20automation:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22browser\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22navigate\x22,\x20\x22url\x22:\x20\x22https://example.com/login\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22wait\x22,\x20\x22waitSelector\x22:\x20\x22input#username\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22type\x22,\x20\x22selector\x22:\x20\x22input#username\x22,\x20\x22text\x22:\x20\x22myuser\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22type\x22,\x20\x22selector\x22:\x20\x22input#password\x22,\x20\x22text\x22:\x20\x22mypass\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22click\x22,\x20\x22selector\x22:\x20\x22button[type=\x27submit\x27]\x22},\x0a\x20\x20\x20\x20{\x22type\x22:\x20\x22close\x22}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aSECURITY:\x0a-\x20Restricted\x20to\x20allowed\x20domains\x0a-\x20Screenshot\x20size\x20limits\x20(max\x205MB)\x0a-\x20Auto-cleanup\x20after\x2010\x20minutes\x0a\x0aVIEWPORT:\x20'+this[_0x4ecc7b(0x22f)][_0x4ecc7b(0x1cc)]['width']+'x'+this['browserConfig']['viewport'][_0x4ecc7b(0x1c7)]+_0x4ecc7b(0x1ee)+this['browserConfig']['timeout']+'ms\x20per\x20operation\x0a\x20\x20\x20\x20';}[a0_0x207038(0x1d1)](_0x3d95cd){const _0x128231=a0_0x207038;try{if(_0x3d95cd[_0x128231(0x214)]()[_0x128231(0x1fe)]('{')){const _0x46f55d=JSON[_0x128231(0x238)](_0x3d95cd);return!_0x46f55d['actions']&&(_0x46f55d['actions']=[]),!Array[_0x128231(0x21e)](_0x46f55d['actions'])&&(_0x46f55d[_0x128231(0x1de)]=[_0x46f55d['actions']]),_0x46f55d;}const _0x37a905={},_0x2194db=[],_0x11cc89=['navigate','click','type','wait',_0x128231(0x23d),_0x128231(0x225),'scroll','close'];for(const _0x16ae0a of _0x11cc89){const _0xcf6161=new RegExp('<'+_0x16ae0a+_0x128231(0x1c8),'gi');let _0x32130b;while((_0x32130b=_0xcf6161['exec'](_0x3d95cd))!==null){const _0x1cb6d5=_0x32130b[0x1],_0x2a481b=this['parseAttributes'](_0x1cb6d5),_0x3c72a9={'type':_0x16ae0a,..._0x2a481b};_0x3c72a9[_0x128231(0x21c)]&&(_0x3c72a9[_0x128231(0x1ce)]=_0x3c72a9['output-path'],delete _0x3c72a9[_0x128231(0x21c)]),_0x3c72a9['wait-time']&&(_0x3c72a9[_0x128231(0x23b)]=parseInt(_0x3c72a9['wait-time'],0xa),delete _0x3c72a9[_0x128231(0x235)]),_0x3c72a9['wait-selector']&&(_0x3c72a9['waitSelector']=_0x3c72a9[_0x128231(0x22a)],delete _0x3c72a9[_0x128231(0x22a)]),_0x3c72a9['wait-type']&&(_0x3c72a9['waitType']=_0x3c72a9[_0x128231(0x1e3)],delete _0x3c72a9['wait-type']),_0x3c72a9[_0x128231(0x229)]&&(_0x3c72a9[_0x128231(0x1d7)]=_0x3c72a9['full-page']===_0x128231(0x200),delete _0x3c72a9['full-page']),_0x2194db['push'](_0x3c72a9);}}return _0x37a905['actions']=Array[_0x128231(0x21e)](_0x2194db)?_0x2194db:[],_0x37a905['rawContent']=_0x3d95cd['trim'](),_0x37a905;}catch(_0x5146af){return this[_0x128231(0x22b)]?.[_0x128231(0x1d4)]('Failed\x20to\x20parse\x20browser\x20parameters',{'error':_0x5146af[_0x128231(0x201)]}),{'actions':[],'rawContent':_0x3d95cd['trim'](),'parseError':_0x5146af['message']};}}['parseAttributes'](_0x45db26){const _0x385f63=a0_0x207038,_0x52786e={};if(!_0x45db26)return _0x52786e;const _0x417b0e=/([\w-]+)\s*=\s*["']([^"']*)["']/g;let _0x60f309;while((_0x60f309=_0x417b0e[_0x385f63(0x215)](_0x45db26))!==null){const _0x2a5c28=_0x60f309[0x1],_0x292c59=_0x60f309[0x2];_0x52786e[_0x2a5c28]=_0x292c59;}return _0x52786e;}[a0_0x207038(0x220)](){const _0x2653a5=a0_0x207038;return[_0x2653a5(0x1de)];}[a0_0x207038(0x23a)](_0x50c05d){const _0x3114b0=a0_0x207038,_0x4b15ac=[];if(!_0x50c05d['actions']||!Array['isArray'](_0x50c05d[_0x3114b0(0x1de)])||_0x50c05d['actions'][_0x3114b0(0x218)]===0x0)_0x4b15ac['push']('At\x20least\x20one\x20action\x20is\x20required');else for(const [_0x2cb508,_0x2ad87e]of _0x50c05d[_0x3114b0(0x1de)]['entries']()){if(!_0x2ad87e[_0x3114b0(0x1c1)]){_0x4b15ac['push'](_0x3114b0(0x1bf)+(_0x2cb508+0x1)+_0x3114b0(0x222));continue;}switch(_0x2ad87e[_0x3114b0(0x1c1)]){case _0x3114b0(0x20b):if(!_0x2ad87e[_0x3114b0(0x216)])_0x4b15ac[_0x3114b0(0x1e9)](_0x3114b0(0x1bf)+(_0x2cb508+0x1)+_0x3114b0(0x1f2));else!this['isAllowedUrl'](_0x2ad87e['url'])&&_0x4b15ac['push']('Action\x20'+(_0x2cb508+0x1)+':\x20URL\x20not\x20allowed:\x20'+_0x2ad87e[_0x3114b0(0x216)]);break;case'click':case'extract':!_0x2ad87e['selector']&&_0x4b15ac[_0x3114b0(0x1e9)](_0x3114b0(0x1bf)+(_0x2cb508+0x1)+':\x20selector\x20is\x20required\x20for\x20'+_0x2ad87e['type']);break;case _0x3114b0(0x1c1):!_0x2ad87e[_0x3114b0(0x1d5)]&&_0x4b15ac['push'](_0x3114b0(0x1bf)+(_0x2cb508+0x1)+':\x20selector\x20is\x20required\x20for\x20type');!_0x2ad87e[_0x3114b0(0x202)]&&_0x2ad87e['text']!==''&&_0x4b15ac['push'](_0x3114b0(0x1bf)+(_0x2cb508+0x1)+_0x3114b0(0x1cf));break;case _0x3114b0(0x1ea):!_0x2ad87e[_0x3114b0(0x23b)]&&!_0x2ad87e[_0x3114b0(0x217)]&&_0x4b15ac['push']('Action\x20'+(_0x2cb508+0x1)+_0x3114b0(0x1dd));_0x2ad87e['waitTime']&&(_0x2ad87e['waitTime']<0x64||_0x2ad87e['waitTime']>0x7530)&&_0x4b15ac['push']('Action\x20'+(_0x2cb508+0x1)+_0x3114b0(0x208));break;case _0x3114b0(0x23d):!_0x2ad87e['outputPath']&&_0x4b15ac[_0x3114b0(0x1e9)]('Action\x20'+(_0x2cb508+0x1)+_0x3114b0(0x1f1));break;case _0x3114b0(0x226):if(!_0x2ad87e['direction'])_0x4b15ac[_0x3114b0(0x1e9)]('Action\x20'+(_0x2cb508+0x1)+_0x3114b0(0x23c));else!['up',_0x3114b0(0x20c),'left','right'][_0x3114b0(0x234)](_0x2ad87e[_0x3114b0(0x1f8)])&&_0x4b15ac['push'](_0x3114b0(0x1bf)+(_0x2cb508+0x1)+':\x20invalid\x20scroll\x20direction:\x20'+_0x2ad87e['direction']);break;case _0x3114b0(0x1fa):break;default:_0x4b15ac['push']('Action\x20'+(_0x2cb508+0x1)+_0x3114b0(0x1d2)+_0x2ad87e['type']);}}return{'valid':_0x4b15ac['length']===0x0,'errors':_0x4b15ac};}async[a0_0x207038(0x1cb)](_0xba3195,_0x3d656c){const _0x210b0a=a0_0x207038,{actions:_0x348e85}=_0xba3195,{agentId:_0x50ac9c,projectDir:_0x4cb825}=_0x3d656c,_0x558d29=_0x50ac9c+'-'+(_0x4cb825||'default'),_0x3e5c4d=[];for(const _0x3c7d14 of _0x348e85){try{let _0x1dce2f;switch(_0x3c7d14['type']){case'navigate':_0x1dce2f=await this[_0x210b0a(0x20b)](_0x3c7d14['url'],_0x558d29);break;case'click':_0x1dce2f=await this[_0x210b0a(0x23e)](_0x3c7d14[_0x210b0a(0x1d5)],_0x558d29);break;case _0x210b0a(0x1c1):_0x1dce2f=await this['type'](_0x3c7d14[_0x210b0a(0x1d5)],_0x3c7d14['text'],_0x558d29);break;case'wait':_0x1dce2f=await this['wait'](_0x3c7d14,_0x558d29);break;case'screenshot':_0x1dce2f=await this['screenshot'](_0x3c7d14[_0x210b0a(0x1ce)],_0x4cb825,_0x558d29,_0x3c7d14);break;case'extract':_0x1dce2f=await this[_0x210b0a(0x225)](_0x3c7d14['selector'],_0x3c7d14[_0x210b0a(0x1da)]||_0x210b0a(0x202),_0x558d29);break;case'scroll':_0x1dce2f=await this[_0x210b0a(0x226)](_0x3c7d14,_0x558d29);break;case _0x210b0a(0x1fa):_0x1dce2f=await this[_0x210b0a(0x205)](_0x558d29);break;default:throw new Error('Unknown\x20action\x20type:\x20'+_0x3c7d14[_0x210b0a(0x1c1)]);}_0x3e5c4d[_0x210b0a(0x1e9)](_0x1dce2f),this[_0x210b0a(0x1e1)](_0x3c7d14,_0x1dce2f,_0x50ac9c);}catch(_0x2e4ce5){const _0x529d61={'success':![],'action':_0x3c7d14[_0x210b0a(0x1c1)],'error':_0x2e4ce5['message'],'selector':_0x3c7d14['selector']||_0x3c7d14['url']};_0x3e5c4d['push'](_0x529d61),this[_0x210b0a(0x1e1)](_0x3c7d14,_0x529d61,_0x50ac9c);}}return{'success':!![],'actions':_0x3e5c4d,'executedActions':_0x348e85[_0x210b0a(0x218)],'toolUsed':_0x210b0a(0x1fd)};}async['navigate'](_0x4cfdb5,_0x42d8da){const _0x42446c=a0_0x207038,_0x426f5a=await this['getBrowser'](_0x42d8da),_0x758269=await this['getPage'](_0x42d8da),_0xc3b950=Date['now']();try{await _0x758269['goto'](_0x4cfdb5,{'waitUntil':_0x42446c(0x206),'timeout':this[_0x42446c(0x22f)]['timeout']});const _0x5e771e=await _0x758269[_0x42446c(0x232)](),_0x3b6337=_0x758269['url']();return{'success':!![],'action':'navigate','url':_0x3b6337,'originalUrl':_0x4cfdb5,'title':_0x5e771e,'loadTime':Date[_0x42446c(0x1c9)]()-_0xc3b950,'message':_0x42446c(0x20d)+_0x4cfdb5};}catch(_0x4b5b87){throw new Error(_0x42446c(0x224)+_0x4b5b87['message']);}}async[a0_0x207038(0x23e)](_0x4df623,_0x27613d){const _0x476910=a0_0x207038,_0x417174=await this[_0x476910(0x1c4)](_0x27613d);try{return await _0x417174[_0x476910(0x213)](_0x4df623,{'timeout':0x1388}),await _0x417174['click'](_0x4df623),{'success':!![],'action':'click','selector':_0x4df623,'message':_0x476910(0x20f)+_0x4df623};}catch(_0x96e96b){throw new Error(_0x476910(0x1db)+_0x4df623+':\x20'+_0x96e96b['message']);}}async[a0_0x207038(0x1c1)](_0xfb8ba2,_0x99ba10,_0x1409c3){const _0x2623cb=a0_0x207038,_0x53d6fc=await this['getPage'](_0x1409c3);try{return await _0x53d6fc[_0x2623cb(0x213)](_0xfb8ba2,{'timeout':0x1388}),await _0x53d6fc[_0x2623cb(0x1f4)](_0xfb8ba2),await _0x53d6fc[_0x2623cb(0x1ed)][_0x2623cb(0x21b)](),await _0x53d6fc[_0x2623cb(0x1c1)](_0xfb8ba2,_0x99ba10),{'success':!![],'action':_0x2623cb(0x1c1),'selector':_0xfb8ba2,'text':_0x99ba10,'textLength':_0x99ba10[_0x2623cb(0x218)],'message':'Typed\x20'+_0x99ba10[_0x2623cb(0x218)]+_0x2623cb(0x242)+_0xfb8ba2};}catch(_0x2ca59f){throw new Error(_0x2623cb(0x21a)+_0xfb8ba2+':\x20'+_0x2ca59f['message']);}}async['wait'](_0x1bb395,_0x523758){const _0x37f7a5=a0_0x207038,_0x461229=await this['getPage'](_0x523758);try{if(_0x1bb395[_0x37f7a5(0x23b)])return await new Promise(_0x41ac69=>setTimeout(_0x41ac69,_0x1bb395['waitTime'])),{'success':!![],'action':'wait','waitTime':_0x1bb395[_0x37f7a5(0x23b)],'message':'Waited\x20'+_0x1bb395['waitTime']+'ms'};if(_0x1bb395['waitSelector']){const _0x12b29c=_0x1bb395[_0x37f7a5(0x233)]||'visible',_0x513654={'timeout':0x2710};return _0x12b29c==='hidden'?await _0x461229[_0x37f7a5(0x213)](_0x1bb395['waitSelector'],{..._0x513654,'hidden':!![]}):await _0x461229['waitForSelector'](_0x1bb395['waitSelector'],_0x513654),{'success':!![],'action':_0x37f7a5(0x1ea),'waitSelector':_0x1bb395[_0x37f7a5(0x217)],'waitType':_0x12b29c,'message':'Waited\x20for\x20'+_0x1bb395[_0x37f7a5(0x217)]+_0x37f7a5(0x1c0)+_0x12b29c};}}catch(_0x182f22){throw new Error(_0x37f7a5(0x1d0)+_0x182f22['message']);}}async[a0_0x207038(0x23d)](_0x511893,_0x3af528,_0x88685a,_0x390eac={}){const _0x489d08=a0_0x207038,_0xbbe00d=await this['getPage'](_0x88685a);try{const _0x22771e=_0x3af528?a0_0xa2b366[_0x489d08(0x228)](_0x3af528,_0x511893):a0_0xa2b366['resolve'](_0x511893),_0xd33214=a0_0xa2b366[_0x489d08(0x240)](_0x22771e);await a0_0x28983e['mkdir'](_0xd33214,{'recursive':!![]});const _0x3a7068={'path':_0x22771e,'type':'png'};_0x390eac['fullPage']&&(_0x3a7068['fullPage']=!![]);await _0xbbe00d['screenshot'](_0x3a7068);const _0xc2c060=await a0_0x28983e['stat'](_0x22771e);if(_0xc2c060[_0x489d08(0x20a)]>this[_0x489d08(0x1f3)])throw new Error('Screenshot\x20too\x20large:\x20'+_0xc2c060['size']+'\x20bytes\x20(max\x20'+this['maxScreenshotSize']+')');return{'success':!![],'action':_0x489d08(0x23d),'outputPath':a0_0xa2b366['relative'](_0x3af528||process[_0x489d08(0x1e8)](),_0x22771e),'size':_0xc2c060[_0x489d08(0x20a)],'fullPage':!!_0x390eac['fullPage'],'message':'Screenshot\x20saved:\x20'+_0x511893};}catch(_0x4fe471){throw new Error('Screenshot\x20failed:\x20'+_0x4fe471[_0x489d08(0x201)]);}}async['extract'](_0x35b6c4,_0x510ad4,_0x36cd70){const _0x1d4fd3=a0_0x207038,_0x29704b=await this['getPage'](_0x36cd70);try{await _0x29704b['waitForSelector'](_0x35b6c4,{'timeout':0x1388});let _0x6140d0;return _0x510ad4==='text'?_0x6140d0=await _0x29704b[_0x1d4fd3(0x239)](_0x35b6c4,_0x34cd2a=>_0x34cd2a['textContent'][_0x1d4fd3(0x214)]()):_0x6140d0=await _0x29704b[_0x1d4fd3(0x239)](_0x35b6c4,(_0x41e925,_0x5cbdfe)=>_0x41e925[_0x1d4fd3(0x1c6)](_0x5cbdfe),_0x510ad4),{'success':!![],'action':_0x1d4fd3(0x225),'selector':_0x35b6c4,'attribute':_0x510ad4,'data':_0x6140d0,'message':'Extracted\x20'+_0x510ad4+_0x1d4fd3(0x1fb)+_0x35b6c4};}catch(_0x568a19){throw new Error('Extract\x20failed\x20on\x20'+_0x35b6c4+':\x20'+_0x568a19['message']);}}async['scroll'](_0x189ebe,_0x595fab){const _0x394c24=a0_0x207038,_0x3f2f6d=await this[_0x394c24(0x1c4)](_0x595fab);try{const {direction:_0x3c038d,pixels:pixels=0x12c,selector:_0x4c3065}=_0x189ebe;return _0x4c3065?await _0x3f2f6d[_0x394c24(0x221)]((_0x5ac5c8,_0x3a36ab,_0x5e38a3)=>{const _0x5aa2d3=_0x394c24,_0x1b62d7=document[_0x5aa2d3(0x1d8)](_0x5ac5c8);if(_0x1b62d7){if(_0x3a36ab==='down')_0x1b62d7['scrollTop']+=_0x5e38a3;else{if(_0x3a36ab==='up')_0x1b62d7[_0x5aa2d3(0x241)]-=_0x5e38a3;else{if(_0x3a36ab===_0x5aa2d3(0x1ec))_0x1b62d7[_0x5aa2d3(0x21f)]+=_0x5e38a3;else{if(_0x3a36ab==='left')_0x1b62d7['scrollLeft']-=_0x5e38a3;}}}}},_0x4c3065,_0x3c038d,pixels):await _0x3f2f6d[_0x394c24(0x221)]((_0xb09029,_0x59aded)=>{const _0x1c5c0c=_0x394c24;if(_0xb09029===_0x1c5c0c(0x20c))window['scrollBy'](0x0,_0x59aded);else{if(_0xb09029==='up')window[_0x1c5c0c(0x21d)](0x0,-_0x59aded);else{if(_0xb09029===_0x1c5c0c(0x1ec))window[_0x1c5c0c(0x21d)](_0x59aded,0x0);else{if(_0xb09029==='left')window['scrollBy'](-_0x59aded,0x0);}}}},_0x3c038d,pixels),{'success':!![],'action':_0x394c24(0x226),'direction':_0x3c038d,'pixels':pixels,'selector':_0x4c3065||_0x394c24(0x1d6),'message':_0x394c24(0x1e4)+_0x3c038d+'\x20by\x20'+pixels+'px'};}catch(_0x374d86){throw new Error('Scroll\x20failed:\x20'+_0x374d86['message']);}}async[a0_0x207038(0x212)](_0x4393a4){const _0xa3700a=a0_0x207038;if(this['browserInstances']['has'](_0x4393a4)){const _0x3d427e=this['browserInstances']['get'](_0x4393a4);if(!_0x3d427e['browser']['isConnected']())this[_0xa3700a(0x227)][_0xa3700a(0x209)](_0x4393a4);else return _0x3d427e['browser'];}const _0x48e12b=await a0_0x10db5e['launch']({'headless':this[_0xa3700a(0x22f)][_0xa3700a(0x219)],'args':[_0xa3700a(0x1ff),'--disable-setuid-sandbox','--disable-dev-shm-usage',_0xa3700a(0x23f)]}),_0x2dd91a=await _0x48e12b['newPage']();return await _0x2dd91a['setViewport'](this['browserConfig'][_0xa3700a(0x1cc)]),await _0x2dd91a['setUserAgent'](this[_0xa3700a(0x22f)]['userAgent']),this['browserInstances']['set'](_0x4393a4,{'browser':_0x48e12b,'page':_0x2dd91a,'created':Date[_0xa3700a(0x1c9)]()}),setTimeout(()=>{const _0x3163fb=_0xa3700a;this[_0x3163fb(0x1d3)](_0x4393a4);},0xa*0x3c*0x3e8),_0x48e12b;}async[a0_0x207038(0x1c4)](_0x54d3ce){const _0x5f1dba=a0_0x207038;return await this[_0x5f1dba(0x212)](_0x54d3ce),this['browserInstances'][_0x5f1dba(0x1c3)](_0x54d3ce)['page'];}async[a0_0x207038(0x205)](_0x37b450){const _0x2168ec=a0_0x207038,_0x56e07d=this[_0x2168ec(0x227)]['get'](_0x37b450);if(_0x56e07d)try{return await _0x56e07d['browser']['close'](),this[_0x2168ec(0x227)][_0x2168ec(0x209)](_0x37b450),{'success':!![],'action':'close','browserKey':_0x37b450,'message':_0x2168ec(0x1cd)};}catch(_0x119d2c){throw new Error(_0x2168ec(0x1f6)+_0x119d2c['message']);}return{'success':!![],'action':'close','browserKey':_0x37b450,'message':_0x2168ec(0x22c)};}async[a0_0x207038(0x1d3)](_0x4eb534){const _0x53e490=a0_0x207038,_0x36e407=this['browserInstances'][_0x53e490(0x1c3)](_0x4eb534);if(_0x36e407)try{await _0x36e407['browser']['close']();}catch(_0x1f283a){}finally{this[_0x53e490(0x227)][_0x53e490(0x209)](_0x4eb534);}}[a0_0x207038(0x1d9)](_0x3037a4){const _0x1d9e8b=a0_0x207038;try{const _0x6d7d5e=new URL(_0x3037a4),_0x2daed4=_0x6d7d5e['hostname'][_0x1d9e8b(0x20e)]();if(this['blockedDomains']['some'](_0xe47386=>_0x2daed4['includes'](_0xe47386['toLowerCase']())))return![];if(this['allowedDomains']&&this[_0x1d9e8b(0x236)][_0x1d9e8b(0x218)]>0x0)return this['allowedDomains'][_0x1d9e8b(0x1ef)](_0x49f3e8=>_0x2daed4['includes'](_0x49f3e8[_0x1d9e8b(0x20e)]()));return!![];}catch{return![];}}[a0_0x207038(0x1e1)](_0x358828,_0x2e5925,_0x34acdf){const _0x52f047=a0_0x207038,_0x376bb4={'timestamp':new Date()['toISOString'](),'agentId':_0x34acdf,'action':_0x358828[_0x52f047(0x1c1)],'selector':_0x358828[_0x52f047(0x1d5)]||_0x358828[_0x52f047(0x216)],'success':_0x2e5925[_0x52f047(0x1dc)],'loadTime':_0x2e5925['loadTime']||0x0};this['operationHistory'][_0x52f047(0x1e9)](_0x376bb4),this[_0x52f047(0x1e2)][_0x52f047(0x218)]>0x64&&(this['operationHistory']=this['operationHistory'][_0x52f047(0x1f0)](-0x64));}[a0_0x207038(0x1f7)](){const _0x3a73ab=a0_0x207038;return['navigate','click',_0x3a73ab(0x1c1),_0x3a73ab(0x1ea),'screenshot','extract','scroll',_0x3a73ab(0x1fa)];}['getParameterSchema'](){const _0x488210=a0_0x207038;return{'type':_0x488210(0x1df),'properties':{'actions':{'type':_0x488210(0x223),'minItems':0x1,'items':{'type':'object','properties':{'type':{'type':'string','enum':this[_0x488210(0x1f7)]()},'url':{'type':_0x488210(0x237)},'selector':{'type':_0x488210(0x237)},'text':{'type':_0x488210(0x237)},'outputPath':{'type':'string'},'waitTime':{'type':'integer'},'waitSelector':{'type':'string'},'attribute':{'type':'string'},'direction':{'type':'string'},'pixels':{'type':_0x488210(0x22e)}},'required':[_0x488210(0x1c1)]}}},'required':[_0x488210(0x1de)]};}async[a0_0x207038(0x1c2)](_0x1bac06){const _0x150459=a0_0x207038;for(const [_0x23623a]of this['browserInstances']){await this[_0x150459(0x1d3)](_0x23623a);}}[a0_0x207038(0x1e7)](_0x34e235=null){const _0x3db2dc=a0_0x207038;if(_0x34e235)return this[_0x3db2dc(0x1e2)][_0x3db2dc(0x1e6)](_0x4648a9=>_0x4648a9['agentId']===_0x34e235);return[...this['operationHistory']];}}export default BrowserTool;
@@ -1 +1 @@
1
- const a0_0x32580c=a0_0x1252;function a0_0x1252(_0x85b671,_0x259fb2){_0x85b671=_0x85b671-0x11b;const _0xf9fb91=a0_0xf9fb();let _0x12523c=_0xf9fb91[_0x85b671];if(a0_0x1252['blGgZA']===undefined){var _0x889f17=function(_0x402192){const _0x52871e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3695bc='',_0x41204a='';for(let _0x3c9886=0x0,_0x4bf5ee,_0x45dd46,_0x472f8e=0x0;_0x45dd46=_0x402192['charAt'](_0x472f8e++);~_0x45dd46&&(_0x4bf5ee=_0x3c9886%0x4?_0x4bf5ee*0x40+_0x45dd46:_0x45dd46,_0x3c9886++%0x4)?_0x3695bc+=String['fromCharCode'](0xff&_0x4bf5ee>>(-0x2*_0x3c9886&0x6)):0x0){_0x45dd46=_0x52871e['indexOf'](_0x45dd46);}for(let _0x1341bf=0x0,_0xc80e75=_0x3695bc['length'];_0x1341bf<_0xc80e75;_0x1341bf++){_0x41204a+='%'+('00'+_0x3695bc['charCodeAt'](_0x1341bf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x41204a);};a0_0x1252['FmQivW']=_0x889f17,a0_0x1252['GcnsAc']={},a0_0x1252['blGgZA']=!![];}const _0x1d9285=_0xf9fb91[0x0],_0x3696c2=_0x85b671+_0x1d9285,_0xf3e021=a0_0x1252['GcnsAc'][_0x3696c2];return!_0xf3e021?(_0x12523c=a0_0x1252['FmQivW'](_0x12523c),a0_0x1252['GcnsAc'][_0x3696c2]=_0x12523c):_0x12523c=_0xf3e021,_0x12523c;}(function(_0x2c8a67,_0x15d5d7){const _0x5df15a=a0_0x1252,_0x1dbf14=_0x2c8a67();while(!![]){try{const _0x5bdedd=parseInt(_0x5df15a(0x140))/0x1*(-parseInt(_0x5df15a(0x145))/0x2)+parseInt(_0x5df15a(0x17d))/0x3*(parseInt(_0x5df15a(0x125))/0x4)+-parseInt(_0x5df15a(0x132))/0x5*(parseInt(_0x5df15a(0x15b))/0x6)+parseInt(_0x5df15a(0x13c))/0x7+parseInt(_0x5df15a(0x15e))/0x8+-parseInt(_0x5df15a(0x15c))/0x9+parseInt(_0x5df15a(0x133))/0xa;if(_0x5bdedd===_0x15d5d7)break;else _0x1dbf14['push'](_0x1dbf14['shift']());}catch(_0x4073e0){_0x1dbf14['push'](_0x1dbf14['shift']());}}}(a0_0xf9fb,0x416dd));import{BaseTool}from'./baseTool.js';import a0_0x3695bc from'../utilities/tagParser.js';import a0_0x41204a from'../utilities/directoryAccessManager.js';import a0_0x3c9886 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class CloneDetectionTool extends BaseTool{constructor(_0x4bf5ee={},_0x45dd46=null){const _0x51605d=a0_0x1252;super(_0x4bf5ee,_0x45dd46),this[_0x51605d(0x14a)]=!![],this['isAsync']=![],this['timeout']=_0x4bf5ee[_0x51605d(0x122)]||0x1d4c0,this[_0x51605d(0x14e)]=_0x4bf5ee['maxConcurrentOperations']||0x1,this['defaultMinTokens']=_0x4bf5ee[_0x51605d(0x12f)]||0x32,this[_0x51605d(0x17b)]=_0x4bf5ee[_0x51605d(0x17b)]||0x5,this['defaultSimilarityThreshold']=_0x4bf5ee[_0x51605d(0x16b)]||0.85,this[_0x51605d(0x173)]=_0x4bf5ee[_0x51605d(0x173)]||0x7a120,this[_0x51605d(0x14d)]=new a0_0x41204a(_0x4bf5ee,_0x45dd46),this[_0x51605d(0x172)]=null;}[a0_0x32580c(0x153)](){const _0x1bd3cb=a0_0x32580c;return'\x0aCode\x20Clone\x20Detection\x20Tool:\x20Find\x20duplicated\x20code\x20for\x20refactoring\x20opportunities\x0a\x0aThis\x20tool\x20identifies\x20exact\x20and\x20similar\x20code\x20patterns\x20(code\x20clones)\x20across\x20your\x20codebase\x20to\x20help\x20reduce\x20duplication,\x20improve\x20maintainability,\x20and\x20identify\x20refactoring\x20opportunities.\x0a\x0aWHAT\x20IT\x20DETECTS:\x0a-\x20Exact\x20Clones\x20(Type\x201):\x20Identical\x20code\x20with\x20different\x20formatting/comments\x0a-\x20Similar\x20Clones\x20(Type\x202/3):\x20Structurally\x20similar\x20code\x20with\x20minor\x20variations\x0a\x0aSUPPORTED\x20LANGUAGES:\x0a-\x20JavaScript\x20(.js,\x20.jsx,\x20.mjs,\x20.cjs)\x0a-\x20TypeScript\x20(.ts,\x20.tsx)\x0a-\x20Vue\x20(.vue)\x0a\x0aUSAGE:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x22type\x22:\x20\x22detect-clones\x22,\x0a\x20\x20\x20\x20\x20\x20\x22directory\x22:\x20\x22src\x22,\x0a\x20\x20\x20\x20\x20\x20\x22minTokens\x22:\x2050,\x0a\x20\x20\x20\x20\x20\x20\x22minLines\x22:\x205,\x0a\x20\x20\x20\x20\x20\x20\x22similarityThreshold\x22:\x200.85,\x0a\x20\x20\x20\x20\x20\x20\x22priorityFilter\x22:\x20\x22high\x22,\x0a\x20\x20\x20\x20\x20\x20\x22maxResults\x22:\x2010,\x0a\x20\x20\x20\x20\x20\x20\x22outputMode\x22:\x20\x22summary\x22\x0a\x20\x20\x20\x20}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aPARAMETERS:\x0a-\x20directory:\x20Directory\x20to\x20analyze\x20(required)\x0a-\x20minTokens:\x20Minimum\x20token\x20count\x20(default:\x2050,\x20lower\x20=\x20more\x20sensitive)\x0a-\x20minLines:\x20Minimum\x20line\x20count\x20(default:\x205)\x0a-\x20similarityThreshold:\x200-1\x20similarity\x20threshold\x20(default:\x200.85)\x0a-\x20priorityFilter:\x20Filter\x20by\x20priority\x20(high/medium/low,\x20optional)\x0a-\x20maxResults:\x20Maximum\x20number\x20of\x20clones\x20to\x20return\x20(optional)\x0a-\x20outputMode:\x20summary|detailed|recommendations\x20(default:\x20detailed)\x0a\x0aEXAMPLES:\x0a\x0a1.\x20Find\x20all\x20clones\x20in\x20project:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[{\x20\x22type\x22:\x20\x22detect-clones\x22,\x20\x22directory\x22:\x20\x22.\x22\x20}]\x0a}\x0a```\x0a\x0a2.\x20High-priority\x20refactoring\x20opportunities\x20only:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[{\x20\x22type\x22:\x20\x22detect-clones\x22,\x20\x22directory\x22:\x20\x22src\x22,\x20\x22priorityFilter\x22:\x20\x22high\x22,\x20\x22maxResults\x22:\x2010\x20}]\x0a}\x0a```\x0a\x0a3.\x20More\x20sensitive\x20detection\x20(finds\x20smaller\x20clones):\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[{\x20\x22type\x22:\x20\x22detect-clones\x22,\x20\x22directory\x22:\x20\x22.\x22,\x20\x22minTokens\x22:\x2030,\x20\x22similarityThreshold\x22:\x200.80\x20}]\x0a}\x0a```\x0a\x0a4.\x20Quick\x20overview:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[{\x20\x22type\x22:\x20\x22detect-clones\x22,\x20\x22directory\x22:\x20\x22.\x22,\x20\x22outputMode\x22:\x20\x22summary\x22\x20}]\x0a}\x0a```\x0a\x0aOUTPUT\x20FORMAT:\x0aReturns\x20clone\x20detection\x20results\x20with:\x0a-\x20summary:\x20Overall\x20statistics\x20(total\x20clones,\x20duplication\x20%,\x20priority\x20breakdown)\x0a-\x20clones:\x20Array\x20of\x20detected\x20clone\x20groups\x20with:\x0a\x20\x20-\x20id,\x20type,\x20confidence,\x20instances,\x20metrics\x0a\x20\x20-\x20refactoringAdvice:\x20priority,\x20strategy,\x20suggestedName,\x20reasoning,\x20actionableSteps\x0a\x0aOUTPUT\x20MODES:\x0a-\x20summary:\x20High-level\x20overview\x20only\x20(duplication\x20%,\x20top\x205\x20clones)\x0a-\x20detailed:\x20Full\x20clone\x20details\x20with\x20code\x20snippets\x20(default)\x0a-\x20recommendations:\x20Refactoring\x20priorities\x20with\x20actionable\x20steps\x0a\x0aLIMITATIONS:\x0a-\x20Analyzes\x20JavaScript/TypeScript\x20family\x20only\x0a-\x20Maximum\x20file\x20size:\x20'+Math['round'](this['maxFileSize']/0x400)+_0x1bd3cb(0x138)+this[_0x1bd3cb(0x122)]/0x3e8+_0x1bd3cb(0x154);}[a0_0x32580c(0x13d)](_0x472f8e){const _0x4eb553=a0_0x32580c;try{const _0x1341bf={},_0xc80e75=[];this['logger']?.['debug']('CloneDetection\x20tool\x20parsing\x20parameters',{'contentLength':_0x472f8e['length'],'contentPreview':_0x472f8e[_0x4eb553(0x159)](0x0,0xc8)});const _0x38e3e8=/<detect-clones\s+(.+?)\/>/g;let _0x2a3a66;while((_0x2a3a66=_0x38e3e8[_0x4eb553(0x16c)](_0x472f8e))!==null){const _0x80cea3=_0x2a3a66[0x1]['trim'](),_0x5284c4=new a0_0x3695bc(),_0x34409f=_0x5284c4[_0x4eb553(0x137)](_0x80cea3),_0x1f9b17={'type':_0x4eb553(0x180),..._0x34409f};_0x1f9b17['min-tokens']&&(_0x1f9b17['minTokens']=parseInt(_0x1f9b17['min-tokens'],0xa),delete _0x1f9b17[_0x4eb553(0x14f)]),_0x1f9b17['min-lines']&&(_0x1f9b17['minLines']=parseInt(_0x1f9b17[_0x4eb553(0x11d)],0xa),delete _0x1f9b17['min-lines']),_0x1f9b17['similarity-threshold']&&(_0x1f9b17[_0x4eb553(0x128)]=parseFloat(_0x1f9b17['similarity-threshold']),delete _0x1f9b17['similarity-threshold']),_0x1f9b17['priority-filter']&&(_0x1f9b17[_0x4eb553(0x11f)]=_0x1f9b17['priority-filter'],delete _0x1f9b17[_0x4eb553(0x170)]),_0x1f9b17['max-results']&&(_0x1f9b17['maxResults']=parseInt(_0x1f9b17[_0x4eb553(0x124)],0xa),delete _0x1f9b17[_0x4eb553(0x124)]),_0x1f9b17['output-mode']&&(_0x1f9b17[_0x4eb553(0x16f)]=_0x1f9b17['output-mode'],delete _0x1f9b17[_0x4eb553(0x15f)]),_0xc80e75[_0x4eb553(0x134)](_0x1f9b17);}return _0x1341bf[_0x4eb553(0x160)]=_0xc80e75,_0x1341bf[_0x4eb553(0x14b)]=_0x472f8e[_0x4eb553(0x13b)](),this['logger']?.[_0x4eb553(0x123)](_0x4eb553(0x17e),{'totalActions':_0xc80e75['length'],'actionTypes':_0xc80e75[_0x4eb553(0x149)](_0x2f164b=>_0x2f164b[_0x4eb553(0x151)])}),_0x1341bf;}catch(_0x4d617c){throw new Error('Failed\x20to\x20parse\x20clone\x20detection\x20parameters:\x20'+_0x4d617c['message']);}}[a0_0x32580c(0x135)](){return['actions'];}[a0_0x32580c(0x175)](_0x4aeedc){const _0x593126=a0_0x32580c,_0x2f54d5=[];if(!_0x4aeedc['actions']||!Array[_0x593126(0x155)](_0x4aeedc[_0x593126(0x160)])||_0x4aeedc['actions'][_0x593126(0x12a)]===0x0)_0x2f54d5[_0x593126(0x134)]('At\x20least\x20one\x20action\x20is\x20required');else for(const [_0x4a5ab4,_0x5500da]of _0x4aeedc['actions'][_0x593126(0x182)]()){if(!_0x5500da['type']){_0x2f54d5[_0x593126(0x134)](_0x593126(0x17a)+(_0x4a5ab4+0x1)+':\x20type\x20is\x20required');continue;}_0x5500da[_0x593126(0x151)]===_0x593126(0x180)?(!_0x5500da['directory']&&_0x2f54d5[_0x593126(0x134)]('Action\x20'+(_0x4a5ab4+0x1)+':\x20directory\x20is\x20required\x20for\x20detect-clones'),_0x5500da[_0x593126(0x12e)]!==undefined&&(_0x5500da['minTokens']<0xa||_0x5500da['minTokens']>0x3e8)&&_0x2f54d5['push'](_0x593126(0x17a)+(_0x4a5ab4+0x1)+':\x20min-tokens\x20must\x20be\x20between\x2010\x20and\x201000'),_0x5500da[_0x593126(0x148)]!==undefined&&(_0x5500da['minLines']<0x1||_0x5500da['minLines']>0x64)&&_0x2f54d5['push']('Action\x20'+(_0x4a5ab4+0x1)+_0x593126(0x130)),_0x5500da['similarityThreshold']!==undefined&&(_0x5500da[_0x593126(0x128)]<0.5||_0x5500da['similarityThreshold']>0x1)&&_0x2f54d5['push'](_0x593126(0x17a)+(_0x4a5ab4+0x1)+_0x593126(0x179)),_0x5500da['priorityFilter']&&!['high',_0x593126(0x144),'low']['includes'](_0x5500da[_0x593126(0x11f)])&&_0x2f54d5[_0x593126(0x134)]('Action\x20'+(_0x4a5ab4+0x1)+':\x20priority-filter\x20must\x20be\x20high,\x20medium,\x20or\x20low'),_0x5500da[_0x593126(0x16f)]&&![_0x593126(0x164),'detailed',_0x593126(0x143)]['includes'](_0x5500da[_0x593126(0x16f)])&&_0x2f54d5[_0x593126(0x134)]('Action\x20'+(_0x4a5ab4+0x1)+':\x20output-mode\x20must\x20be\x20summary,\x20detailed,\x20or\x20recommendations')):_0x2f54d5[_0x593126(0x134)]('Action\x20'+(_0x4a5ab4+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x5500da[_0x593126(0x151)]);}return{'valid':_0x2f54d5[_0x593126(0x12a)]===0x0,'errors':_0x2f54d5};}async[a0_0x32580c(0x13f)](_0x5d8e20,_0x111ae5){const _0x484dc1=a0_0x32580c,{actions:_0x421783}=_0x5d8e20,{projectDir:_0x326a98,agentId:_0x2680ec,directoryAccess:_0x1d5783}=_0x111ae5,_0xe5d3d4=_0x1d5783||this[_0x484dc1(0x14d)]['createDirectoryAccess']({'workingDirectory':_0x326a98||process[_0x484dc1(0x168)](),'writeEnabledDirectories':[],'readOnlyDirectories':[_0x326a98||process[_0x484dc1(0x168)]()],'restrictToProject':!![]}),_0x9a8204=this[_0x484dc1(0x14d)]['getWorkingDirectory'](_0xe5d3d4),_0x5c268d=[];for(const _0x54ab5a of _0x421783){try{if(_0x54ab5a[_0x484dc1(0x151)]==='detect-clones'){const _0x52ef9c=await this[_0x484dc1(0x136)](_0x54ab5a['directory'],_0x9a8204,_0xe5d3d4,_0x54ab5a);_0x5c268d['push'](_0x52ef9c);}else throw new Error(_0x484dc1(0x14c)+_0x54ab5a[_0x484dc1(0x151)]);}catch(_0x4744a6){this[_0x484dc1(0x147)]?.['error'](_0x484dc1(0x15a),{'action':_0x54ab5a['type'],'error':_0x4744a6[_0x484dc1(0x142)]}),_0x5c268d[_0x484dc1(0x134)]({'directory':_0x54ab5a['directory'],'error':_0x4744a6[_0x484dc1(0x142)],'success':![]});}}return{'success':!![],'results':_0x5c268d,'toolUsed':'clonedetection'};}async[a0_0x32580c(0x136)](_0x27cfac,_0x46820f,_0x2d6ba2,_0x5c67b9={}){const _0x1a4049=a0_0x32580c,_0x275f6c=a0_0x3c9886['isAbsolute'](_0x27cfac)?a0_0x3c9886[_0x1a4049(0x176)](_0x27cfac):a0_0x3c9886['resolve'](_0x46820f,_0x27cfac),_0x29a94b=this['directoryAccessManager']['validateReadAccess'](_0x275f6c,_0x2d6ba2);if(!_0x29a94b[_0x1a4049(0x156)])throw new Error('Read\x20access\x20denied:\x20'+_0x29a94b['reason']);try{const _0x4fa609=await this['getCloneDetector'](),_0x196fba={'minTokens':_0x5c67b9[_0x1a4049(0x12e)]||this['defaultMinTokens'],'minLines':_0x5c67b9[_0x1a4049(0x148)]||this[_0x1a4049(0x17b)],'similarityThreshold':_0x5c67b9['similarityThreshold']||this[_0x1a4049(0x16b)],'include':[_0x1a4049(0x121),'**/*.jsx','**/*.mjs','**/*.cjs','**/*.ts',_0x1a4049(0x162),_0x1a4049(0x177)],'exclude':['**/node_modules/**','**/dist/**','**/build/**',_0x1a4049(0x152),'**/*.spec.js'],'maxFileSize':this['maxFileSize']};this['logger']?.[_0x1a4049(0x11e)](_0x1a4049(0x13a),{'directory':_0x275f6c,'config':_0x196fba});const _0x4176c0=await _0x4fa609[_0x1a4049(0x12d)](_0x275f6c,null);if(!_0x4176c0)return{'directory':this['directoryAccessManager']['createRelativePath'](_0x275f6c,_0x2d6ba2),'fullPath':_0x275f6c,'success':!![],'summary':{'totalFiles':0x0,'totalClones':0x0,'duplicationPercentage':0x0},'clones':[],'message':'No\x20files\x20found\x20or\x20no\x20clones\x20detected'};let _0x47deec=_0x4176c0[_0x1a4049(0x17c)];_0x5c67b9['priorityFilter']&&(_0x47deec=_0x47deec[_0x1a4049(0x16e)](_0x9eb69f=>_0x9eb69f['refactoringAdvice'][_0x1a4049(0x183)]===_0x5c67b9[_0x1a4049(0x11f)]));_0x5c67b9[_0x1a4049(0x178)]&&(_0x47deec=_0x47deec[_0x1a4049(0x141)](0x0,_0x5c67b9['maxResults']));const _0x22fff3=_0x5c67b9['outputMode']||_0x1a4049(0x161);if(_0x22fff3===_0x1a4049(0x164))return this[_0x1a4049(0x146)](_0x4176c0,_0x47deec,_0x275f6c,_0x2d6ba2);else return _0x22fff3===_0x1a4049(0x143)?this['formatRecommendationsOutput'](_0x4176c0,_0x47deec,_0x275f6c,_0x2d6ba2):this['formatDetailedOutput'](_0x4176c0,_0x47deec,_0x275f6c,_0x2d6ba2);}catch(_0xb4e408){throw new Error('Failed\x20to\x20detect\x20clones\x20in\x20'+_0x27cfac+':\x20'+_0xb4e408[_0x1a4049(0x142)]);}}[a0_0x32580c(0x146)](_0x36ae32,_0x138344,_0x430318,_0xda9a65){const _0x528475=a0_0x32580c;return{'directory':this['directoryAccessManager'][_0x528475(0x13e)](_0x430318,_0xda9a65),'fullPath':_0x430318,'success':!![],'outputMode':'summary','summary':{'totalFiles':_0x36ae32[_0x528475(0x164)][_0x528475(0x169)],'totalClones':_0x36ae32['summary'][_0x528475(0x17f)],'duplicatedLines':_0x36ae32[_0x528475(0x164)][_0x528475(0x126)],'duplicationPercentage':_0x36ae32[_0x528475(0x164)][_0x528475(0x12c)],'priorityCounts':_0x36ae32[_0x528475(0x164)]['priorityCounts'],'topClones':_0x138344['slice'](0x0,0x5)[_0x528475(0x149)](_0x6a84a1=>({'id':_0x6a84a1['id'],'type':_0x6a84a1[_0x528475(0x151)],'confidence':_0x6a84a1['confidence'],'instances':_0x6a84a1['metrics']['instanceCount'],'lines':_0x6a84a1['metrics'][_0x528475(0x167)],'priority':_0x6a84a1[_0x528475(0x166)][_0x528475(0x183)],'strategy':_0x6a84a1[_0x528475(0x166)]['strategy'],'locations':_0x6a84a1[_0x528475(0x163)]['map'](_0x2a2bde=>_0x2a2bde[_0x528475(0x120)]+':'+_0x2a2bde['startLine']+'-'+_0x2a2bde[_0x528475(0x129)])}))}};}['formatRecommendationsOutput'](_0x17b018,_0x1fc815,_0x27c09b,_0x4f1094){const _0x11a499=a0_0x32580c;return{'directory':this[_0x11a499(0x14d)]['createRelativePath'](_0x27c09b,_0x4f1094),'fullPath':_0x27c09b,'success':!![],'outputMode':_0x11a499(0x143),'summary':{'totalFiles':_0x17b018['summary'][_0x11a499(0x169)],'totalClones':_0x17b018[_0x11a499(0x164)][_0x11a499(0x17f)],'duplicationPercentage':_0x17b018[_0x11a499(0x164)][_0x11a499(0x12c)]},'recommendations':_0x1fc815['map'](_0x547f2e=>({'id':_0x547f2e['id'],'priority':_0x547f2e['refactoringAdvice'][_0x11a499(0x183)],'strategy':_0x547f2e[_0x11a499(0x166)][_0x11a499(0x157)],'suggestedName':_0x547f2e[_0x11a499(0x166)][_0x11a499(0x165)],'reasoning':_0x547f2e[_0x11a499(0x166)]['reasoning'],'effort':_0x547f2e[_0x11a499(0x166)]['estimatedEffort'],'benefits':_0x547f2e['refactoringAdvice']['benefits'],'steps':_0x547f2e[_0x11a499(0x166)]['actionableSteps'],'metrics':{'instances':_0x547f2e['metrics'][_0x11a499(0x150)],'lines':_0x547f2e['metrics'][_0x11a499(0x167)],'files':_0x547f2e[_0x11a499(0x131)]['filesCovered'],'impact':_0x547f2e[_0x11a499(0x131)][_0x11a499(0x158)]},'locations':_0x547f2e[_0x11a499(0x163)][_0x11a499(0x149)](_0x1bddb5=>({'file':_0x1bddb5[_0x11a499(0x120)],'startLine':_0x1bddb5[_0x11a499(0x181)],'endLine':_0x1bddb5['endLine']}))}))};}[a0_0x32580c(0x139)](_0x4fd50b,_0x52a70b,_0x5effff,_0x309f44){const _0x36569e=a0_0x32580c;return{'directory':this[_0x36569e(0x14d)]['createRelativePath'](_0x5effff,_0x309f44),'fullPath':_0x5effff,'success':!![],'outputMode':_0x36569e(0x161),'summary':_0x4fd50b['summary'],'clones':_0x52a70b['map'](_0x26b780=>({..._0x26b780,'instances':_0x26b780[_0x36569e(0x163)][_0x36569e(0x149)](_0x46b2b5=>({..._0x46b2b5,'code':_0x46b2b5['code']['split']('\x0a')[_0x36569e(0x141)](0x0,0xa)['join']('\x0a')+(_0x46b2b5['code'][_0x36569e(0x127)]('\x0a')['length']>0xa?'\x0a...\x20(truncated)':'')}))}))};}async['getCloneDetector'](){const _0x24f688=a0_0x32580c;if(!this['cloneDetector']){const {CloneDetectionTool:_0x31b61b}=await import('../analyzers/codeCloneDetector/index.js'),_0x719e8a={'minTokens':this['defaultMinTokens'],'minLines':this['defaultMinLines'],'similarityThreshold':this[_0x24f688(0x16b)],'include':[_0x24f688(0x121),_0x24f688(0x16d),'**/*.ts',_0x24f688(0x162),_0x24f688(0x177)],'exclude':[_0x24f688(0x174),'**/dist/**',_0x24f688(0x11c)],'maxFileSize':this['maxFileSize']};this['cloneDetector']=new _0x31b61b(_0x719e8a),this[_0x24f688(0x147)]?.['debug']('Clone\x20detector\x20initialized',{'config':_0x719e8a});}return this[_0x24f688(0x172)];}['getSupportedActions'](){const _0xde1a1f=a0_0x32580c;return[_0xde1a1f(0x180)];}[a0_0x32580c(0x15d)](){const _0x1513cb=a0_0x32580c;return{'type':'object','properties':{'actions':{'type':'array','minItems':0x1,'items':{'type':'object','properties':{'type':{'type':_0x1513cb(0x12b),'enum':this['getSupportedActions']()},'directory':{'type':'string'},'minTokens':{'type':'number','minimum':0xa,'maximum':0x3e8},'minLines':{'type':'number','minimum':0x1,'maximum':0x64},'similarityThreshold':{'type':_0x1513cb(0x171),'minimum':0.5,'maximum':0x1},'priorityFilter':{'type':_0x1513cb(0x12b),'enum':[_0x1513cb(0x11b),_0x1513cb(0x144),'low']},'maxResults':{'type':_0x1513cb(0x171),'minimum':0x1},'outputMode':{'type':'string','enum':['summary',_0x1513cb(0x161),_0x1513cb(0x143)]}},'required':['type',_0x1513cb(0x16a)]}}},'required':['actions']};}}export default CloneDetectionTool;function a0_0xf9fb(){const _0xac685=['Dg90ywXgAwXLCW','zgLYzwn0B3j5','zgvMyxvSDfnPBwLSyxjPDhLuAhjLC2HVBgq','zxHLyW','kIOVkI5QC3G','zMLSDgvY','B3v0Chv0tw9Kzq','ChjPB3jPDhKTzMLSDgvY','BNvTyMvY','y2XVBMvezxrLy3rVCG','Bwf4rMLSzvnPEMu','kIOVBM9Kzv9TB2r1BgvZlYOQ','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','BM9YBwfSAxPL','kIOVkI52Dwu','Bwf4uMvZDwX0CW','oIbZAw1PBgfYAxr5lxrOCMvZAg9SzcbTDxn0igjLigjLDhDLzw4Gmc41igfUzcaXlJa','qwn0Aw9Uia','zgvMyxvSDe1PBKXPBMvZ','y2XVBMvZ','mJf6CfLhv0i','ugfYC2vKienSB25Lrgv0zwn0Aw9UihrVB2WGCgfYyw1LDgvYCW','Dg90ywXdBg9Uzxm','zgv0zwn0lwnSB25LCW','C3rHCNrmAw5L','zw50CMLLCW','ChjPB3jPDhK','AgLNAa','kIOVyNvPBgqVkIO','BwLUlwXPBMvZ','Aw5MBW','ChjPB3jPDhLgAwX0zxi','zMLSzq','kIOVkI5QCW','DgLTzw91Da','zgvIDwC','Bwf4lxjLC3vSDhm','mtC3odyWBffOrwzN','Dg90ywXeDxbSAwnHDgvKtgLUzxm','C3bSAxq','C2LTAwXHCML0EvrOCMvZAg9Sza','zw5KtgLUzq','BgvUz3rO','C3rYAw5N','zhvWBgLJyxrPB25qzxjJzw50ywDL','CNvU','BwLUvg9Rzw5Z','zgvMyxvSDe1PBLrVA2vUCW','oIbTAw4TBgLUzxmGBxvZDcbIzsbIzxr3zwvUideGyw5KideWma','Bwv0CMLJCW','mZvhAwrhD0W','mJy4nJaZmhfuBNzxsq','ChvZAa','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','zgv0zwn0q2XVBMvZ','CgfYC2vbDhrYAwj1DgvZ','s0iGCgvYigzPBguklsbbBMfSExnPCYb0Aw1LB3v0oIa','zM9YBwf0rgv0ywLSzwrpDxrWDxq','u3rHCNrPBMCGy2XVBMuGzgv0zwn0Aw9U','DhjPBq','nty4mJm5vwrOvu1w','CgfYC2vqyxjHBwv0zxjZ','y3jLyxrLuMvSyxrPDMvqyxrO','zxHLy3v0zq','mtiWnZa4ve54BgP2','C2XPy2u','BwvZC2fNzq','CMvJB21Tzw5KyxrPB25Z','BwvKAxvT','ngfmEMzpyW','zM9YBwf0u3vTBwfYEu91Dhb1Da','Bg9Nz2vY','BwLUtgLUzxm','BwfW','CMvXDwLYzxnqCM9Qzwn0','CMf3q29UDgvUDa','vw5RBM93BIbHy3rPB24GDhLWztOG','zgLYzwn0B3j5qwnJzxnZtwfUywDLCG','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','BwLUlxrVA2vUCW','Aw5ZDgfUy2vdB3vUDa','DhLWzq','kIOVkI50zxn0lMPZ','z2v0rgvZy3jPChrPB24','ihnLy29UzhmkicaGia','AxnbCNjHEq','ywXSB3DLza','C3rYyxrLz3K','Aw1Wywn0u2nVCMu','C3vIC3rYAw5N','q2XVBMuGzgv0zwn0Aw9UigfJDgLVBIbMywLSzwq','mtmWmZC0u1vttKTf','ndi4nZy5mfDhsvLPDq','z2v0ugfYyw1LDgvYu2nOzw1H','mZGXnteYohvvq3rdta','B3v0Chv0lw1Vzgu','ywn0Aw9UCW','zgv0ywLSzwq','kIOVkI50C3G','Aw5ZDgfUy2vZ','C3vTBwfYEq','C3vNz2vZDgvKtMfTzq','CMvMywn0B3jPBMDbzhzPy2u','BgLUzunVDw50','y3DK'];a0_0xf9fb=function(){return _0xac685;};return a0_0xf9fb();}
1
+ const a0_0x58b713=a0_0x103e;(function(_0x832fa9,_0x3da77a){const _0x2ced92=a0_0x103e,_0x4976ce=_0x832fa9();while(!![]){try{const _0x5a874c=parseInt(_0x2ced92(0xdb))/0x1+parseInt(_0x2ced92(0xe6))/0x2*(-parseInt(_0x2ced92(0xb8))/0x3)+parseInt(_0x2ced92(0xe3))/0x4*(parseInt(_0x2ced92(0xf4))/0x5)+parseInt(_0x2ced92(0xbe))/0x6*(-parseInt(_0x2ced92(0xfb))/0x7)+-parseInt(_0x2ced92(0xb3))/0x8*(parseInt(_0x2ced92(0xa1))/0x9)+parseInt(_0x2ced92(0xfa))/0xa*(-parseInt(_0x2ced92(0xbb))/0xb)+parseInt(_0x2ced92(0xf3))/0xc;if(_0x5a874c===_0x3da77a)break;else _0x4976ce['push'](_0x4976ce['shift']());}catch(_0x383a3d){_0x4976ce['push'](_0x4976ce['shift']());}}}(a0_0x5482,0x84e60));import{BaseTool}from'./baseTool.js';import a0_0x4cc853 from'../utilities/tagParser.js';function a0_0x5482(){const _0x440fad=['mtGYndaYntj5Bwrns0i','nxPXDuHhDq','z2v0u3vWCg9YDgvKqwn0Aw9UCW','Bwf4rMLSzvnPEMu','AxnbC3LUyW','z2v0q2XVBMvezxrLy3rVCG','zhvWBgLJyxrPB25qzxjJzw50ywDL','mtaZodCWt1frsMnl','otm2odCZqKHfv2Lj','oIbKAxjLy3rVCNKGAxmGCMvXDwLYzwqGzM9YigrLDgvJDc1JBg9Uzxm','y3DK','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','rMfPBgvKihrVihbHCNnLignSB25LigrLDgvJDgLVBIbWyxjHBwv0zxjZoIa','B3v0Chv0tw9Kzq','ChjPB3jPDhLdB3vUDhm','CMvMywn0B3jPBMDbzhzPy2u','kIOVkI50CW','kIOVzgLZDc8QkG','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','BwLUvg9Rzw5Z','BgLUzunVDw50','zM9YBwf0uMvJB21Tzw5KyxrPB25Zt3v0Chv0','ChjPB3jPDhKTzMLSDgvY','zMLSzxndB3zLCMvK','BM9YBwfSAxPL','kIOVkI50C3G','C3vTBwfYEq','C3rHCNrmAw5L','zgLYzwn0B3j5qwnJzxnZtwfUywDLCG','BwfW','C2LTAwXHCML0EvrOCMvZAg9Sza','y29Kzq','ChjPB3jPDhLgAwX0zxi','rMfPBgvKihrVigrLDgvJDcbJBg9UzxmGAw4G','ndv6ANbotwS','zMLSDgvY','Dg90ywXgAwXLCW','Aw5ZDgfUy2vdB3vUDa','kIOVkI5ZCgvJlMPZ','Bg93','ihnLy29UzhmkicaGia','zM9YBwf0u3vTBwfYEu91Dhb1Da','q2XVBMuGzgv0zwn0Aw9UigfJDgLVBIbMywLSzwq','BNvTyMvY','Bg9Nz2vY','BwvZC2fNzq','B2jQzwn0','zgLYzwn0B3j5','BwLUtgLUzxm','cI4UlIaODhj1BMnHDgvKkq','BgvUz3rO','zM9YBwf0rgv0ywLSzwrpDxrWDxq','ntmZmdi0rfDdB0vK','zw50CMLLCW','zgvIDwC','Aw5JBhvKzxm','Bwv0CMLJCW','mty1odD4AMrcwva','C2LTAwXHCML0Es10AhjLC2HVBgq','CMvXDwLYzxnqCM9Qzwn0','mty1DMrLt3zs','vw5RBM93BIbHy3rPB24GDhLWztOG','BwvKAxvT','mtjwCLHvzLC','z2v0rgvZy3jPChrPB24','C2XPy2u','q2XVBMuGzgv0zwn0B3iGAw5PDgLHBgL6zwq','zxHLyW','z2v0v29YA2LUz0rPCMvJDg9YEq','Dg90ywXeDxbSAwnHDgvKtgLUzxm','ywn0Aw9UywjSzvn0zxbZ','CM91BMq','ugfYC2vKienSB25Lrgv0zwn0Aw9UihrVB2WGCgfYyw1LDgvYCW','BwLUlxrVA2vUCW','zgv0zwn0lwnSB25LCW','ChvZAa','DgLTzw91Da','kIOVkI5JANm','zMLSzq','u3rHCNrPBMCGy2XVBMuGzgv0zwn0Aw9U','B3v0Chv0lw1Vzgu','y2XVBMvKzxrLy3rPB24','BwLUlwXPBMvZ','zgv0ywLSzwq','AgLNAa','ChjPB3jPDhK','Aw5ZDgfUy2vZ','oIb0ExbLigLZihjLCxvPCMvK','zgvMyxvSDfnPBwLSyxjPDhLuAhjLC2HVBgq','y3jLyxrLuMvSyxrPDMvqyxrO','C3rYAw5N','zxjYB3i','mZK5otnUzxvNAw8','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','Bwf4uMvZDwX0CW','Bwf4lxjLC3vSDhm','DhjPBq','kIOVkI5QCW','kIOVBM9Kzv9TB2r1BgvZlYOQ','y2XVBMvezxrLy3rVCG','mJuYnduYmhPWrwrnwq','tM8GzMLSzxmGzM91BMqGB3iGBM8Gy2XVBMvZigrLDgvJDgvK','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','mZiYzu52CuzT','ywXSB3DLza','oIbTAw4TBgLUzxmGBxvZDcbIzsbIzxr3zwvUideGyw5KideWma','CMvHC29U','y2XVBMvZ','ywn0Aw9UCW','zgvMyxvSDe1PBKXPBMvZ','zgvMyxvSDe1PBLrVA2vUCW','zw5KtgLUzq','CMvJB21Tzw5KyxrPB25Z','DhLWzq','C3rYyxrLz3K','qwn0Aw9Uia'];a0_0x5482=function(){return _0x440fad;};return a0_0x5482();}import a0_0x293692 from'../utilities/directoryAccessManager.js';import a0_0x337cbd from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class CloneDetectionTool extends BaseTool{constructor(_0x5d4c8c={},_0x593dae=null){const _0x124cc7=a0_0x103e;super(_0x5d4c8c,_0x593dae),this[_0x124cc7(0xba)]=!![],this[_0x124cc7(0xf7)]=![],this[_0x124cc7(0xcb)]=_0x5d4c8c[_0x124cc7(0xcb)]||0x1d4c0,this[_0x124cc7(0xe5)]=_0x5d4c8c[_0x124cc7(0xe5)]||0x1,this['defaultMinTokens']=_0x5d4c8c[_0x124cc7(0xed)]||0x32,this[_0x124cc7(0xec)]=_0x5d4c8c[_0x124cc7(0xec)]||0x5,this[_0x124cc7(0xd7)]=_0x5d4c8c[_0x124cc7(0xd7)]||0.85,this['maxFileSize']=_0x5d4c8c[_0x124cc7(0xf6)]||0x7a120,this['directoryAccessManager']=new a0_0x293692(_0x5d4c8c,_0x593dae),this[_0x124cc7(0xe2)]=null;}[a0_0x58b713(0xbf)](){const _0x466bec=a0_0x58b713;return'\x0aCode\x20Clone\x20Detection\x20Tool:\x20Find\x20duplicated\x20code\x20for\x20refactoring\x20opportunities\x0a\x0aThis\x20tool\x20identifies\x20exact\x20and\x20similar\x20code\x20patterns\x20(code\x20clones)\x20across\x20your\x20codebase\x20to\x20help\x20reduce\x20duplication,\x20improve\x20maintainability,\x20and\x20identify\x20refactoring\x20opportunities.\x0a\x0aWHAT\x20IT\x20DETECTS:\x0a-\x20Exact\x20Clones\x20(Type\x201):\x20Identical\x20code\x20with\x20different\x20formatting/comments\x0a-\x20Similar\x20Clones\x20(Type\x202/3):\x20Structurally\x20similar\x20code\x20with\x20minor\x20variations\x0a\x0aSUPPORTED\x20LANGUAGES:\x0a-\x20JavaScript\x20(.js,\x20.jsx,\x20.mjs,\x20.cjs)\x0a-\x20TypeScript\x20(.ts,\x20.tsx)\x0a-\x20Vue\x20(.vue)\x0a\x0aUSAGE:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x22type\x22:\x20\x22detect-clones\x22,\x0a\x20\x20\x20\x20\x20\x20\x22directory\x22:\x20\x22src\x22,\x0a\x20\x20\x20\x20\x20\x20\x22minTokens\x22:\x2050,\x0a\x20\x20\x20\x20\x20\x20\x22minLines\x22:\x205,\x0a\x20\x20\x20\x20\x20\x20\x22similarityThreshold\x22:\x200.85,\x0a\x20\x20\x20\x20\x20\x20\x22priorityFilter\x22:\x20\x22high\x22,\x0a\x20\x20\x20\x20\x20\x20\x22maxResults\x22:\x2010,\x0a\x20\x20\x20\x20\x20\x20\x22outputMode\x22:\x20\x22summary\x22\x0a\x20\x20\x20\x20}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aPARAMETERS:\x0a-\x20directory:\x20Directory\x20to\x20analyze\x20(required)\x0a-\x20minTokens:\x20Minimum\x20token\x20count\x20(default:\x2050,\x20lower\x20=\x20more\x20sensitive)\x0a-\x20minLines:\x20Minimum\x20line\x20count\x20(default:\x205)\x0a-\x20similarityThreshold:\x200-1\x20similarity\x20threshold\x20(default:\x200.85)\x0a-\x20priorityFilter:\x20Filter\x20by\x20priority\x20(high/medium/low,\x20optional)\x0a-\x20maxResults:\x20Maximum\x20number\x20of\x20clones\x20to\x20return\x20(optional)\x0a-\x20outputMode:\x20summary|detailed|recommendations\x20(default:\x20detailed)\x0a\x0aEXAMPLES:\x0a\x0a1.\x20Find\x20all\x20clones\x20in\x20project:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[{\x20\x22type\x22:\x20\x22detect-clones\x22,\x20\x22directory\x22:\x20\x22.\x22\x20}]\x0a}\x0a```\x0a\x0a2.\x20High-priority\x20refactoring\x20opportunities\x20only:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[{\x20\x22type\x22:\x20\x22detect-clones\x22,\x20\x22directory\x22:\x20\x22src\x22,\x20\x22priorityFilter\x22:\x20\x22high\x22,\x20\x22maxResults\x22:\x2010\x20}]\x0a}\x0a```\x0a\x0a3.\x20More\x20sensitive\x20detection\x20(finds\x20smaller\x20clones):\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[{\x20\x22type\x22:\x20\x22detect-clones\x22,\x20\x22directory\x22:\x20\x22.\x22,\x20\x22minTokens\x22:\x2030,\x20\x22similarityThreshold\x22:\x200.80\x20}]\x0a}\x0a```\x0a\x0a4.\x20Quick\x20overview:\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[{\x20\x22type\x22:\x20\x22detect-clones\x22,\x20\x22directory\x22:\x20\x22.\x22,\x20\x22outputMode\x22:\x20\x22summary\x22\x20}]\x0a}\x0a```\x0a\x0aOUTPUT\x20FORMAT:\x0aReturns\x20clone\x20detection\x20results\x20with:\x0a-\x20summary:\x20Overall\x20statistics\x20(total\x20clones,\x20duplication\x20%,\x20priority\x20breakdown)\x0a-\x20clones:\x20Array\x20of\x20detected\x20clone\x20groups\x20with:\x0a\x20\x20-\x20id,\x20type,\x20confidence,\x20instances,\x20metrics\x0a\x20\x20-\x20refactoringAdvice:\x20priority,\x20strategy,\x20suggestedName,\x20reasoning,\x20actionableSteps\x0a\x0aOUTPUT\x20MODES:\x0a-\x20summary:\x20High-level\x20overview\x20only\x20(duplication\x20%,\x20top\x205\x20clones)\x0a-\x20detailed:\x20Full\x20clone\x20details\x20with\x20code\x20snippets\x20(default)\x0a-\x20recommendations:\x20Refactoring\x20priorities\x20with\x20actionable\x20steps\x0a\x0aLIMITATIONS:\x0a-\x20Analyzes\x20JavaScript/TypeScript\x20family\x20only\x0a-\x20Maximum\x20file\x20size:\x20'+Math[_0x466bec(0xc6)](this['maxFileSize']/0x400)+'KB\x20per\x20file\x0a-\x20Analysis\x20timeout:\x20'+this['timeout']/0x3e8+_0x466bec(0xa7);}['parseParameters'](_0x2ff1dc){const _0x281037=a0_0x58b713;try{const _0x2d6ede={},_0x9a37f0=[];this['logger']?.[_0x281037(0xb5)]('CloneDetection\x20tool\x20parsing\x20parameters',{'contentLength':_0x2ff1dc[_0x281037(0xb1)],'contentPreview':_0x2ff1dc['substring'](0x0,0xc8)});const _0x550609=/<detect-clones\s+(.+?)\/>/g;let _0x42cae0;while((_0x42cae0=_0x550609[_0x281037(0xc2)](_0x2ff1dc))!==null){const _0x64e1e=_0x42cae0[0x1][_0x281037(0xdf)](),_0x14e6a0=new a0_0x4cc853(),_0x1f7dde=_0x14e6a0['parseAttributes'](_0x64e1e),_0x363a06={'type':_0x281037(0xc9),..._0x1f7dde};_0x363a06['min-tokens']&&(_0x363a06['minTokens']=parseInt(_0x363a06['min-tokens'],0xa),delete _0x363a06[_0x281037(0xc8)]),_0x363a06[_0x281037(0xd1)]&&(_0x363a06[_0x281037(0xaf)]=parseInt(_0x363a06[_0x281037(0xd1)],0xa),delete _0x363a06[_0x281037(0xd1)]),_0x363a06[_0x281037(0xb9)]&&(_0x363a06[_0x281037(0x9d)]=parseFloat(_0x363a06[_0x281037(0xb9)]),delete _0x363a06['similarity-threshold']),_0x363a06[_0x281037(0x95)]&&(_0x363a06['priorityFilter']=_0x363a06[_0x281037(0x95)],delete _0x363a06[_0x281037(0x95)]),_0x363a06[_0x281037(0xde)]&&(_0x363a06['maxResults']=parseInt(_0x363a06[_0x281037(0xde)],0xa),delete _0x363a06[_0x281037(0xde)]),_0x363a06['output-mode']&&(_0x363a06['outputMode']=_0x363a06[_0x281037(0xcf)],delete _0x363a06['output-mode']),_0x9a37f0['push'](_0x363a06);}return _0x2d6ede[_0x281037(0xeb)]=_0x9a37f0,_0x2d6ede['rawContent']=_0x2ff1dc[_0x281037(0xdf)](),this['logger']?.['debug'](_0x281037(0xc7),{'totalActions':_0x9a37f0['length'],'actionTypes':_0x9a37f0[_0x281037(0x9c)](_0x27e66a=>_0x27e66a[_0x281037(0xf0)])}),_0x2d6ede;}catch(_0x5a010e){throw new Error(_0x281037(0xff)+_0x5a010e[_0x281037(0xac)]);}}[a0_0x58b713(0xfe)](){return['actions'];}[a0_0x58b713(0x105)](_0x52b65c){const _0x27ea38=a0_0x58b713,_0xe4491=[];if(!_0x52b65c['actions']||!Array['isArray'](_0x52b65c[_0x27ea38(0xeb)])||_0x52b65c[_0x27ea38(0xeb)]['length']===0x0)_0xe4491[_0x27ea38(0xca)](_0x27ea38(0xdc));else for(const [_0x41a5c2,_0x299985]of _0x52b65c['actions'][_0x27ea38(0xb4)]()){if(!_0x299985['type']){_0xe4491['push']('Action\x20'+(_0x41a5c2+0x1)+_0x27ea38(0xd6));continue;}_0x299985[_0x27ea38(0xf0)]==='detect-clones'?(!_0x299985['directory']&&_0xe4491['push'](_0x27ea38(0xf2)+(_0x41a5c2+0x1)+_0x27ea38(0xfc)),_0x299985[_0x27ea38(0x106)]!==undefined&&(_0x299985[_0x27ea38(0x106)]<0xa||_0x299985['minTokens']>0x3e8)&&_0xe4491[_0x27ea38(0xca)](_0x27ea38(0xf2)+(_0x41a5c2+0x1)+':\x20min-tokens\x20must\x20be\x20between\x2010\x20and\x201000'),_0x299985[_0x27ea38(0xaf)]!==undefined&&(_0x299985[_0x27ea38(0xaf)]<0x1||_0x299985['minLines']>0x64)&&_0xe4491[_0x27ea38(0xca)]('Action\x20'+(_0x41a5c2+0x1)+_0x27ea38(0xe8)),_0x299985['similarityThreshold']!==undefined&&(_0x299985[_0x27ea38(0x9d)]<0.5||_0x299985['similarityThreshold']>0x1)&&_0xe4491['push'](_0x27ea38(0xf2)+(_0x41a5c2+0x1)+':\x20similarity-threshold\x20must\x20be\x20between\x200.5\x20and\x201.0'),_0x299985['priorityFilter']&&![_0x27ea38(0xd3),_0x27ea38(0xbd),_0x27ea38(0xa6)]['includes'](_0x299985['priorityFilter'])&&_0xe4491['push'](_0x27ea38(0xf2)+(_0x41a5c2+0x1)+':\x20priority-filter\x20must\x20be\x20high,\x20medium,\x20or\x20low'),_0x299985[_0x27ea38(0x100)]&&!['summary',_0x27ea38(0xd2),_0x27ea38(0xef)][_0x27ea38(0xb6)](_0x299985[_0x27ea38(0x100)])&&_0xe4491['push'](_0x27ea38(0xf2)+(_0x41a5c2+0x1)+':\x20output-mode\x20must\x20be\x20summary,\x20detailed,\x20or\x20recommendations')):_0xe4491[_0x27ea38(0xca)](_0x27ea38(0xf2)+(_0x41a5c2+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x299985['type']);}return{'valid':_0xe4491['length']===0x0,'errors':_0xe4491};}async['execute'](_0x4ded6f,_0x38967f){const _0x26c25a=a0_0x58b713,{actions:_0x793ebd}=_0x4ded6f,{projectDir:_0x4cf36e,agentId:_0x25c1fa,directoryAccess:_0x558d90}=_0x38967f,_0x4c66e4=_0x558d90||this[_0x26c25a(0x9b)]['createDirectoryAccess']({'workingDirectory':_0x4cf36e||process['cwd'](),'writeEnabledDirectories':[],'readOnlyDirectories':[_0x4cf36e||process[_0x26c25a(0xfd)]()],'restrictToProject':!![]}),_0x36df72=this['directoryAccessManager'][_0x26c25a(0xc3)](_0x4c66e4),_0x1ef6f3=[];for(const _0x59aa73 of _0x793ebd){try{if(_0x59aa73[_0x26c25a(0xf0)]==='detect-clones'){const _0x229567=await this['detectClones'](_0x59aa73[_0x26c25a(0xae)],_0x36df72,_0x4c66e4,_0x59aa73);_0x1ef6f3[_0x26c25a(0xca)](_0x229567);}else throw new Error(_0x26c25a(0xbc)+_0x59aa73[_0x26c25a(0xf0)]);}catch(_0x2caedc){this[_0x26c25a(0xab)]?.[_0x26c25a(0xda)](_0x26c25a(0xa9),{'action':_0x59aa73[_0x26c25a(0xf0)],'error':_0x2caedc['message']}),_0x1ef6f3[_0x26c25a(0xca)]({'directory':_0x59aa73['directory'],'error':_0x2caedc['message'],'success':![]});}}return{'success':!![],'results':_0x1ef6f3,'toolUsed':_0x26c25a(0xd0)};}async['detectClones'](_0x14047c,_0x164d33,_0x1250e8,_0x3bdc88={}){const _0x10432c=a0_0x58b713,_0x401b6d=a0_0x337cbd['isAbsolute'](_0x14047c)?a0_0x337cbd[_0x10432c(0x97)](_0x14047c):a0_0x337cbd['resolve'](_0x164d33,_0x14047c),_0x1902cd=this[_0x10432c(0x9b)]['validateReadAccess'](_0x401b6d,_0x1250e8);if(!_0x1902cd[_0x10432c(0xe7)])throw new Error('Read\x20access\x20denied:\x20'+_0x1902cd[_0x10432c(0xe9)]);try{const _0x531c7a=await this['getCloneDetector'](),_0x936920={'minTokens':_0x3bdc88[_0x10432c(0x106)]||this[_0x10432c(0xed)],'minLines':_0x3bdc88[_0x10432c(0xaf)]||this[_0x10432c(0xec)],'similarityThreshold':_0x3bdc88['similarityThreshold']||this[_0x10432c(0xd7)],'include':['**/*.js','**/*.jsx','**/*.mjs',_0x10432c(0xcc),'**/*.ts',_0x10432c(0x98),'**/*.vue'],'exclude':[_0x10432c(0xe1),_0x10432c(0x104),'**/build/**','**/*.test.js',_0x10432c(0xa5)],'maxFileSize':this[_0x10432c(0xf6)]};this['logger']?.['info'](_0x10432c(0xce),{'directory':_0x401b6d,'config':_0x936920});const _0x2b92cf=await _0x531c7a['run'](_0x401b6d,null);if(!_0x2b92cf)return{'directory':this[_0x10432c(0x9b)][_0x10432c(0xd8)](_0x401b6d,_0x1250e8),'fullPath':_0x401b6d,'success':!![],'summary':{'totalFiles':0x0,'totalClones':0x0,'duplicationPercentage':0x0},'clones':[],'message':_0x10432c(0xe4)};let _0x150c01=_0x2b92cf[_0x10432c(0xea)];_0x3bdc88[_0x10432c(0x9f)]&&(_0x150c01=_0x150c01[_0x10432c(0xa2)](_0x47585f=>_0x47585f['refactoringAdvice']['priority']===_0x3bdc88['priorityFilter']));_0x3bdc88[_0x10432c(0xdd)]&&(_0x150c01=_0x150c01[_0x10432c(0xc0)](0x0,_0x3bdc88['maxResults']));const _0x156429=_0x3bdc88[_0x10432c(0x100)]||_0x10432c(0xd2);if(_0x156429==='summary')return this['formatSummaryOutput'](_0x2b92cf,_0x150c01,_0x401b6d,_0x1250e8);else return _0x156429==='recommendations'?this[_0x10432c(0x108)](_0x2b92cf,_0x150c01,_0x401b6d,_0x1250e8):this[_0x10432c(0xb2)](_0x2b92cf,_0x150c01,_0x401b6d,_0x1250e8);}catch(_0x50e0f3){throw new Error(_0x10432c(0xa0)+_0x14047c+':\x20'+_0x50e0f3[_0x10432c(0xac)]);}}[a0_0x58b713(0xa8)](_0x1de204,_0x3860e2,_0x171d03,_0x486dd9){const _0x21b0dd=a0_0x58b713;return{'directory':this[_0x21b0dd(0x9b)][_0x21b0dd(0xd8)](_0x171d03,_0x486dd9),'fullPath':_0x171d03,'success':!![],'outputMode':'summary','summary':{'totalFiles':_0x1de204[_0x21b0dd(0x99)][_0x21b0dd(0xa3)],'totalClones':_0x1de204['summary']['totalClones'],'duplicatedLines':_0x1de204[_0x21b0dd(0x99)][_0x21b0dd(0xc4)],'duplicationPercentage':_0x1de204[_0x21b0dd(0x99)]['duplicationPercentage'],'priorityCounts':_0x1de204['summary'][_0x21b0dd(0x101)],'topClones':_0x3860e2[_0x21b0dd(0xc0)](0x0,0x5)[_0x21b0dd(0x9c)](_0x132830=>({'id':_0x132830['id'],'type':_0x132830['type'],'confidence':_0x132830['confidence'],'instances':_0x132830['metrics'][_0x21b0dd(0xa4)],'lines':_0x132830[_0x21b0dd(0xb7)][_0x21b0dd(0x107)],'priority':_0x132830['refactoringAdvice'][_0x21b0dd(0xd4)],'strategy':_0x132830['refactoringAdvice'][_0x21b0dd(0xf1)],'locations':_0x132830[_0x21b0dd(0xd5)][_0x21b0dd(0x9c)](_0x37b662=>_0x37b662['file']+':'+_0x37b662['startLine']+'-'+_0x37b662[_0x21b0dd(0xee)])}))}};}['formatRecommendationsOutput'](_0x5564f4,_0xb6adaa,_0x5c6898,_0x56e5ce){const _0x5dcb88=a0_0x58b713;return{'directory':this['directoryAccessManager']['createRelativePath'](_0x5c6898,_0x56e5ce),'fullPath':_0x5c6898,'success':!![],'outputMode':_0x5dcb88(0xef),'summary':{'totalFiles':_0x5564f4[_0x5dcb88(0x99)][_0x5dcb88(0xa3)],'totalClones':_0x5564f4[_0x5dcb88(0x99)]['totalClones'],'duplicationPercentage':_0x5564f4[_0x5dcb88(0x99)][_0x5dcb88(0xf9)]},'recommendations':_0xb6adaa[_0x5dcb88(0x9c)](_0x21041e=>({'id':_0x21041e['id'],'priority':_0x21041e['refactoringAdvice']['priority'],'strategy':_0x21041e[_0x5dcb88(0x102)]['strategy'],'suggestedName':_0x21041e[_0x5dcb88(0x102)]['suggestedName'],'reasoning':_0x21041e['refactoringAdvice']['reasoning'],'effort':_0x21041e['refactoringAdvice']['estimatedEffort'],'benefits':_0x21041e[_0x5dcb88(0x102)]['benefits'],'steps':_0x21041e['refactoringAdvice'][_0x5dcb88(0xc5)],'metrics':{'instances':_0x21041e[_0x5dcb88(0xb7)][_0x5dcb88(0xa4)],'lines':_0x21041e['metrics'][_0x5dcb88(0x107)],'files':_0x21041e['metrics'][_0x5dcb88(0x96)],'impact':_0x21041e['metrics']['impactScore']},'locations':_0x21041e[_0x5dcb88(0xd5)][_0x5dcb88(0x9c)](_0x5a33c3=>({'file':_0x5a33c3[_0x5dcb88(0xcd)],'startLine':_0x5a33c3[_0x5dcb88(0x9a)],'endLine':_0x5a33c3[_0x5dcb88(0xee)]}))}))};}['formatDetailedOutput'](_0x20d052,_0x1eb6d5,_0x2247a0,_0xfce863){const _0xc1fa1b=a0_0x58b713;return{'directory':this[_0xc1fa1b(0x9b)][_0xc1fa1b(0xd8)](_0x2247a0,_0xfce863),'fullPath':_0x2247a0,'success':!![],'outputMode':_0xc1fa1b(0xd2),'summary':_0x20d052[_0xc1fa1b(0x99)],'clones':_0x1eb6d5['map'](_0x729200=>({..._0x729200,'instances':_0x729200['instances']['map'](_0xd1ef8c=>({..._0xd1ef8c,'code':_0xd1ef8c[_0xc1fa1b(0x9e)]['split']('\x0a')['slice'](0x0,0xa)['join']('\x0a')+(_0xd1ef8c[_0xc1fa1b(0x9e)]['split']('\x0a')[_0xc1fa1b(0xb1)]>0xa?_0xc1fa1b(0xb0):'')}))}))};}async[a0_0x58b713(0xf8)](){const _0x13aef1=a0_0x58b713;if(!this['cloneDetector']){const {CloneDetectionTool:_0x1964af}=await import('../analyzers/codeCloneDetector/index.js'),_0x3d1d14={'minTokens':this[_0x13aef1(0xed)],'minLines':this[_0x13aef1(0xec)],'similarityThreshold':this['defaultSimilarityThreshold'],'include':[_0x13aef1(0xe0),'**/*.jsx',_0x13aef1(0x103),'**/*.tsx','**/*.vue'],'exclude':[_0x13aef1(0xe1),'**/dist/**','**/build/**'],'maxFileSize':this['maxFileSize']};this[_0x13aef1(0xe2)]=new _0x1964af(_0x3d1d14),this[_0x13aef1(0xab)]?.[_0x13aef1(0xb5)](_0x13aef1(0xc1),{'config':_0x3d1d14});}return this[_0x13aef1(0xe2)];}['getSupportedActions'](){const _0x1c4146=a0_0x58b713;return[_0x1c4146(0xc9)];}['getParameterSchema'](){const _0x4ce9af=a0_0x58b713;return{'type':'object','properties':{'actions':{'type':'array','minItems':0x1,'items':{'type':_0x4ce9af(0xad),'properties':{'type':{'type':_0x4ce9af(0xd9),'enum':this[_0x4ce9af(0xf5)]()},'directory':{'type':'string'},'minTokens':{'type':'number','minimum':0xa,'maximum':0x3e8},'minLines':{'type':_0x4ce9af(0xaa),'minimum':0x1,'maximum':0x64},'similarityThreshold':{'type':'number','minimum':0.5,'maximum':0x1},'priorityFilter':{'type':'string','enum':['high','medium',_0x4ce9af(0xa6)]},'maxResults':{'type':'number','minimum':0x1},'outputMode':{'type':'string','enum':['summary','detailed','recommendations']}},'required':['type',_0x4ce9af(0xae)]}}},'required':[_0x4ce9af(0xeb)]};}}function a0_0x103e(_0x3b18b6,_0x43bf65){_0x3b18b6=_0x3b18b6-0x95;const _0x548241=a0_0x5482();let _0x103e11=_0x548241[_0x3b18b6];if(a0_0x103e['vNNhSy']===undefined){var _0x37d346=function(_0x3fd1c2){const _0x2e99e7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4cc853='',_0x293692='';for(let _0x337cbd=0x0,_0x5d4c8c,_0x593dae,_0x2ff1dc=0x0;_0x593dae=_0x3fd1c2['charAt'](_0x2ff1dc++);~_0x593dae&&(_0x5d4c8c=_0x337cbd%0x4?_0x5d4c8c*0x40+_0x593dae:_0x593dae,_0x337cbd++%0x4)?_0x4cc853+=String['fromCharCode'](0xff&_0x5d4c8c>>(-0x2*_0x337cbd&0x6)):0x0){_0x593dae=_0x2e99e7['indexOf'](_0x593dae);}for(let _0x2d6ede=0x0,_0x9a37f0=_0x4cc853['length'];_0x2d6ede<_0x9a37f0;_0x2d6ede++){_0x293692+='%'+('00'+_0x4cc853['charCodeAt'](_0x2d6ede)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x293692);};a0_0x103e['cIkNiA']=_0x37d346,a0_0x103e['MIxHAX']={},a0_0x103e['vNNhSy']=!![];}const _0xca5d90=_0x548241[0x0],_0x23cc06=_0x3b18b6+_0xca5d90,_0x4d3c01=a0_0x103e['MIxHAX'][_0x23cc06];return!_0x4d3c01?(_0x103e11=a0_0x103e['cIkNiA'](_0x103e11),a0_0x103e['MIxHAX'][_0x23cc06]=_0x103e11):_0x103e11=_0x4d3c01,_0x103e11;}export default CloneDetectionTool;