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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +2 -2
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/aiService.js +1 -1
  76. package/src/services/apiKeyManager.js +1 -1
  77. package/src/services/benchmarkService.js +1 -1
  78. package/src/services/budgetService.js +1 -1
  79. package/src/services/contextInjectionService.js +1 -1
  80. package/src/services/conversationCompactionService.js +1 -1
  81. package/src/services/errorHandler.js +1 -1
  82. package/src/services/fileAttachmentService.js +1 -1
  83. package/src/services/modelRouterService.js +1 -1
  84. package/src/services/modelsService.js +1 -1
  85. package/src/services/qualityInspector.js +1 -1
  86. package/src/services/tokenCountingService.js +1 -1
  87. package/src/tools/agentCommunicationTool.js +1 -1
  88. package/src/tools/agentDelayTool.js +1 -1
  89. package/src/tools/asyncToolManager.js +1 -1
  90. package/src/tools/baseTool.js +1 -1
  91. package/src/tools/browserTool.js +1 -1
  92. package/src/tools/cloneDetectionTool.js +1 -1
  93. package/src/tools/dependencyResolverTool.js +1 -1
  94. package/src/tools/fileContentReplaceTool.js +1 -1
  95. package/src/tools/fileSystemTool.js +1 -1
  96. package/src/tools/fileTreeTool.js +1 -1
  97. package/src/tools/imageTool.js +1 -1
  98. package/src/tools/importAnalyzerTool.js +1 -1
  99. package/src/tools/jobDoneTool.js +1 -1
  100. package/src/tools/seekTool.js +1 -1
  101. package/src/tools/staticAnalysisTool.js +1 -1
  102. package/src/tools/taskManagerTool.js +1 -1
  103. package/src/tools/terminalTool.js +1 -1
  104. package/src/tools/webTool.js +1 -1
  105. package/src/types/agent.js +1 -1
  106. package/src/types/contextReference.js +1 -1
  107. package/src/types/conversation.js +1 -1
  108. package/src/types/toolCommand.js +1 -1
  109. package/src/utilities/attachmentValidator.js +1 -1
  110. package/src/utilities/configManager.js +1 -1
  111. package/src/utilities/constants.js +1 -1
  112. package/src/utilities/directoryAccessManager.js +1 -1
  113. package/src/utilities/fileProcessor.js +1 -1
  114. package/src/utilities/logger.js +1 -1
  115. package/src/utilities/tagParser.js +1 -1
  116. package/src/utilities/toolConstants.js +1 -1
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/{index-BzXbDs8z.js → index-CoRE46V-.js} +28 -28
  119. package/web-ui/build/static/index-P281Rusr.css +1 -0
  120. package/web-ui/build/static/index-BmKxmRe3.css +0 -1
@@ -1 +1 @@
1
- const a0_0x5167ab=a0_0x59cb;(function(_0x24522a,_0x246748){const _0x2e5b79=a0_0x59cb,_0x29e1dc=_0x24522a();while(!![]){try{const _0x17d9f3=parseInt(_0x2e5b79(0xde))/0x1+-parseInt(_0x2e5b79(0xe2))/0x2*(parseInt(_0x2e5b79(0xa8))/0x3)+parseInt(_0x2e5b79(0xb6))/0x4+-parseInt(_0x2e5b79(0xca))/0x5+-parseInt(_0x2e5b79(0xd7))/0x6+-parseInt(_0x2e5b79(0xd2))/0x7*(-parseInt(_0x2e5b79(0xc7))/0x8)+parseInt(_0x2e5b79(0x9c))/0x9*(-parseInt(_0x2e5b79(0x9e))/0xa);if(_0x17d9f3===_0x246748)break;else _0x29e1dc['push'](_0x29e1dc['shift']());}catch(_0x30a7d8){_0x29e1dc['push'](_0x29e1dc['shift']());}}}(a0_0x40df,0x6d64a));import a0_0x176ec4 from'events';function a0_0x59cb(_0x2b8c38,_0x214379){_0x2b8c38=_0x2b8c38-0x91;const _0x40df41=a0_0x40df();let _0x59cb46=_0x40df41[_0x2b8c38];if(a0_0x59cb['qKECjs']===undefined){var _0xb67390=function(_0x2f904e){const _0x1aebe2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x176ec4='',_0x4658e2='';for(let _0x42d663=0x0,_0x2745e7,_0x5326f4,_0x4d62d4=0x0;_0x5326f4=_0x2f904e['charAt'](_0x4d62d4++);~_0x5326f4&&(_0x2745e7=_0x42d663%0x4?_0x2745e7*0x40+_0x5326f4:_0x5326f4,_0x42d663++%0x4)?_0x176ec4+=String['fromCharCode'](0xff&_0x2745e7>>(-0x2*_0x42d663&0x6)):0x0){_0x5326f4=_0x1aebe2['indexOf'](_0x5326f4);}for(let _0x56f552=0x0,_0x580a96=_0x176ec4['length'];_0x56f552<_0x580a96;_0x56f552++){_0x4658e2+='%'+('00'+_0x176ec4['charCodeAt'](_0x56f552)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4658e2);};a0_0x59cb['DACVvQ']=_0xb67390,a0_0x59cb['FiWzka']={},a0_0x59cb['qKECjs']=!![];}const _0x303482=_0x40df41[0x0],_0x29824c=_0x2b8c38+_0x303482,_0x37fb39=a0_0x59cb['FiWzka'][_0x29824c];return!_0x37fb39?(_0x59cb46=a0_0x59cb['DACVvQ'](_0x59cb46),a0_0x59cb['FiWzka'][_0x29824c]=_0x59cb46):_0x59cb46=_0x37fb39,_0x59cb46;}import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AsyncToolManager extends a0_0x176ec4{constructor(_0x4658e2={},_0x42d663=null){const _0x20f211=a0_0x59cb;super(),this['config']=_0x4658e2,this['logger']=_0x42d663,this['operations']=new Map(),this[_0x20f211(0xb8)]=[],this['maxConcurrentOperations']=_0x4658e2['maxConcurrentOperations']||0xa,this[_0x20f211(0xd4)]=_0x4658e2[_0x20f211(0xd4)]||0x493e0,this[_0x20f211(0xc9)]=_0x4658e2[_0x20f211(0xc9)]||0xea60,this['maxHistorySize']=_0x4658e2[_0x20f211(0x91)]||0x3e8,this[_0x20f211(0x9a)]=null,this['isShuttingDown']=![],this['startMonitoring'](),this['on']('operation:started',this['handleOperationStarted']['bind'](this)),this['on'](_0x20f211(0xc1),this['handleOperationCompleted'][_0x20f211(0xd5)](this)),this['on'](_0x20f211(0xb5),this[_0x20f211(0xdc)]['bind'](this)),this['on']('operation:timeout',this['handleOperationTimeout'][_0x20f211(0xd5)](this));}async['startOperation'](_0x2745e7,_0x5326f4,_0x4d62d4,_0x56f552={}){const _0x284f93=a0_0x59cb;if(this['operations']['size']>=this[_0x284f93(0xe1)])throw new Error('Maximum\x20concurrent\x20operations\x20reached\x20('+this['maxConcurrentOperations']+')');const _0x580a96=this[_0x284f93(0xda)](),_0x168d0b={'id':_0x580a96,'toolId':_0x2745e7,'agentId':_0x5326f4,'parameters':_0x4d62d4,'context':_0x56f552,'status':TOOL_STATUS[_0x284f93(0xe8)],'createdAt':new Date()['toISOString'](),'startedAt':null,'completedAt':null,'timeout':_0x56f552[_0x284f93(0xa0)]||this['defaultTimeout'],'result':null,'error':null,'progress':null,'retryCount':0x0,'maxRetries':_0x56f552[_0x284f93(0xe6)]||0x0};return this[_0x284f93(0xab)][_0x284f93(0xe5)](_0x580a96,_0x168d0b),this['logger']?.[_0x284f93(0xd6)]('Async\x20operation\x20started:\x20'+_0x580a96,{'toolId':_0x2745e7,'agentId':_0x5326f4,'parametersCount':Object['keys'](_0x4d62d4)['length'],'timeout':_0x168d0b[_0x284f93(0xa0)]}),this[_0x284f93(0xbc)](_0x580a96),this['emit'](_0x284f93(0xc2),_0x168d0b),_0x580a96;}['updateOperation'](_0x4131ca,_0x3520e5,_0x2e6664={}){const _0x8d5ed7=a0_0x59cb,_0x292516=this[_0x8d5ed7(0xab)][_0x8d5ed7(0xce)](_0x4131ca);if(!_0x292516)return this[_0x8d5ed7(0xaf)]?.[_0x8d5ed7(0x92)]('Attempted\x20to\x20update\x20unknown\x20operation:\x20'+_0x4131ca),![];const _0x4aa7d7=_0x292516['status'];_0x292516['status']=_0x3520e5;_0x3520e5===TOOL_STATUS['EXECUTING']&&!_0x292516[_0x8d5ed7(0xcc)]&&(_0x292516['startedAt']=new Date()[_0x8d5ed7(0xa1)]());(_0x3520e5===TOOL_STATUS['COMPLETED']||_0x3520e5===TOOL_STATUS[_0x8d5ed7(0xb7)])&&(_0x292516['completedAt']=new Date()[_0x8d5ed7(0xa1)]());if(_0x2e6664['result']!==undefined)_0x292516['result']=_0x2e6664[_0x8d5ed7(0xe3)];if(_0x2e6664[_0x8d5ed7(0xbe)]!==undefined)_0x292516['error']=_0x2e6664[_0x8d5ed7(0xbe)];if(_0x2e6664['progress']!==undefined)_0x292516['progress']=_0x2e6664['progress'];this[_0x8d5ed7(0xaf)]?.['debug'](_0x8d5ed7(0xa7)+_0x4131ca,{'previousStatus':_0x4aa7d7,'newStatus':_0x3520e5,'hasResult':!!_0x2e6664['result'],'hasError':!!_0x2e6664['error'],'progress':_0x2e6664['progress']});switch(_0x3520e5){case TOOL_STATUS['COMPLETED']:this[_0x8d5ed7(0xc8)]('operation:completed',_0x292516);break;case TOOL_STATUS['FAILED']:this[_0x8d5ed7(0xc8)](_0x8d5ed7(0xb5),_0x292516);break;case TOOL_STATUS['EXECUTING']:this[_0x8d5ed7(0xc8)](_0x8d5ed7(0xba),_0x292516);break;}return!![];}['getOperation'](_0x35f437){const _0x4a45e4=a0_0x59cb,_0x58ac5f=this[_0x4a45e4(0xab)][_0x4a45e4(0xce)](_0x35f437);if(!_0x58ac5f)return null;return{'id':_0x58ac5f['id'],'toolId':_0x58ac5f[_0x4a45e4(0x94)],'agentId':_0x58ac5f['agentId'],'status':_0x58ac5f['status'],'createdAt':_0x58ac5f['createdAt'],'startedAt':_0x58ac5f[_0x4a45e4(0xcc)],'completedAt':_0x58ac5f[_0x4a45e4(0xd9)],'result':_0x58ac5f[_0x4a45e4(0xe3)],'error':_0x58ac5f[_0x4a45e4(0xbe)],'progress':_0x58ac5f['progress'],'retryCount':_0x58ac5f[_0x4a45e4(0x96)],'executionTime':this[_0x4a45e4(0x98)](_0x58ac5f)};}[a0_0x5167ab(0xea)](_0x5a60c7){const _0xeb3b33=a0_0x5167ab,_0x3ba26d=[];for(const _0x3b2640 of this['operations'][_0xeb3b33(0xe0)]()){_0x3b2640[_0xeb3b33(0xd3)]===_0x5a60c7&&_0x3ba26d['push'](this['getOperation'](_0x3b2640['id']));}return _0x3ba26d[_0xeb3b33(0xe9)]((_0x36e629,_0x10a1b7)=>new Date(_0x10a1b7[_0xeb3b33(0xac)])-new Date(_0x36e629['createdAt']));}async[a0_0x5167ab(0xc6)](_0x4d0da1,_0x296c64=a0_0x5167ab(0xc3)){const _0x2b6599=a0_0x5167ab,_0x3f3933=this['operations'][_0x2b6599(0xce)](_0x4d0da1);if(!_0x3f3933)return![];if(_0x3f3933['status']===TOOL_STATUS['COMPLETED']||_0x3f3933[_0x2b6599(0x99)]===TOOL_STATUS[_0x2b6599(0xb7)])return this[_0x2b6599(0xaf)]?.['warn']('Cannot\x20cancel\x20completed/failed\x20operation:\x20'+_0x4d0da1),![];return this[_0x2b6599(0xb2)](_0x4d0da1,TOOL_STATUS['CANCELLED'],{'error':_0x296c64}),this[_0x2b6599(0xe7)](_0x4d0da1),this[_0x2b6599(0xc8)](_0x2b6599(0xe4),_0x3f3933),await this[_0x2b6599(0xb0)](_0x4d0da1),this[_0x2b6599(0xaf)]?.[_0x2b6599(0xd6)](_0x2b6599(0xc5)+_0x4d0da1,{'reason':_0x296c64}),!![];}async['retryOperation'](_0x1c944c){const _0x22d23c=a0_0x5167ab,_0x17f2d4=this['operations'][_0x22d23c(0xce)](_0x1c944c);if(!_0x17f2d4)return![];if(_0x17f2d4['status']!==TOOL_STATUS[_0x22d23c(0xb7)])return this['logger']?.[_0x22d23c(0x92)](_0x22d23c(0xc4)+_0x1c944c),![];if(_0x17f2d4[_0x22d23c(0x96)]>=_0x17f2d4['maxRetries'])return this[_0x22d23c(0xaf)]?.[_0x22d23c(0x92)]('Maximum\x20retries\x20exceeded\x20for\x20operation:\x20'+_0x1c944c),![];return _0x17f2d4['retryCount']++,_0x17f2d4['status']=TOOL_STATUS['PENDING'],_0x17f2d4['startedAt']=null,_0x17f2d4['completedAt']=null,_0x17f2d4[_0x22d23c(0xbe)]=null,_0x17f2d4['result']=null,this['setOperationTimeout'](_0x1c944c),this[_0x22d23c(0xaf)]?.[_0x22d23c(0xd6)]('Operation\x20retry\x20initiated:\x20'+_0x1c944c,{'retryCount':_0x17f2d4[_0x22d23c(0x96)],'maxRetries':_0x17f2d4['maxRetries']}),this[_0x22d23c(0xc8)]('operation:retry',_0x17f2d4),!![];}[a0_0x5167ab(0xa3)](){const _0x3c23b1=a0_0x5167ab,_0x5964b6={'total':this[_0x3c23b1(0xab)]['size'],'byStatus':{},'byTool':{},'byAgent':{},'averageExecutionTime':0x0,'oldestOperation':null,'newestOperation':null};let _0x3e3b42=0x0,_0x6bc438=0x0,_0x28471a=null,_0x5daf6d=null;for(const _0x4d78d9 of this['operations']['values']()){_0x5964b6['byStatus'][_0x4d78d9[_0x3c23b1(0x99)]]=(_0x5964b6['byStatus'][_0x4d78d9['status']]||0x0)+0x1,_0x5964b6[_0x3c23b1(0xb9)][_0x4d78d9['toolId']]=(_0x5964b6[_0x3c23b1(0xb9)][_0x4d78d9[_0x3c23b1(0x94)]]||0x0)+0x1,_0x5964b6[_0x3c23b1(0xaa)][_0x4d78d9['agentId']]=(_0x5964b6[_0x3c23b1(0xaa)][_0x4d78d9[_0x3c23b1(0xd3)]]||0x0)+0x1;const _0x2455e3=this['calculateExecutionTime'](_0x4d78d9);_0x2455e3>0x0&&(_0x3e3b42+=_0x2455e3,_0x6bc438++);const _0x34abc0=new Date(_0x4d78d9[_0x3c23b1(0xac)])[_0x3c23b1(0xbf)]();(!_0x28471a||_0x34abc0<_0x28471a)&&(_0x28471a=_0x34abc0,_0x5964b6['oldestOperation']=_0x4d78d9['id']),(!_0x5daf6d||_0x34abc0>_0x5daf6d)&&(_0x5daf6d=_0x34abc0,_0x5964b6['newestOperation']=_0x4d78d9['id']);}return _0x5964b6['averageExecutionTime']=_0x6bc438>0x0?Math[_0x3c23b1(0x95)](_0x3e3b42/_0x6bc438):0x0,_0x5964b6;}async['cleanupCompletedOperations'](_0x496cdc=0x36ee80){const _0xfc4356=a0_0x5167ab,_0x21aad9=Date['now']()-_0x496cdc,_0x1ebda7=[];for(const _0x1b76d4 of this[_0xfc4356(0xab)]['values']()){(_0x1b76d4[_0xfc4356(0x99)]===TOOL_STATUS['COMPLETED']||_0x1b76d4['status']===TOOL_STATUS['FAILED']||_0x1b76d4[_0xfc4356(0x99)]===TOOL_STATUS['CANCELLED'])&&new Date(_0x1b76d4[_0xfc4356(0xd9)])['getTime']()<_0x21aad9&&_0x1ebda7[_0xfc4356(0xcf)](_0x1b76d4['id']);}for(const _0x55d370 of _0x1ebda7){await this['cleanupOperation'](_0x55d370);}return this['logger']?.[_0xfc4356(0xa9)]('Cleaned\x20up\x20'+_0x1ebda7['length']+'\x20completed\x20operations'),_0x1ebda7['length'];}[a0_0x5167ab(0xdd)](){const _0x5213fe=a0_0x5167ab;this[_0x5213fe(0x9a)]&&clearInterval(this['monitoringInterval']),this['monitoringInterval']=setInterval(()=>{const _0x4e6a54=_0x5213fe;this['checkOperationTimeouts'](),this[_0x4e6a54(0xbd)]();},this['cleanupInterval']),this['logger']?.[_0x5213fe(0xd6)](_0x5213fe(0xa4));}[a0_0x5167ab(0xae)](){const _0x2794b4=a0_0x5167ab;this['monitoringInterval']&&(clearInterval(this[_0x2794b4(0x9a)]),this[_0x2794b4(0x9a)]=null),this[_0x2794b4(0xaf)]?.['info'](_0x2794b4(0xbb));}['checkOperationTimeouts'](){const _0x4f00da=a0_0x5167ab,_0x1c3261=Date['now']();for(const _0x2c5adc of this[_0x4f00da(0xab)][_0x4f00da(0xe0)]()){if(_0x2c5adc['status']===TOOL_STATUS['EXECUTING']||_0x2c5adc['status']===TOOL_STATUS['PENDING']){const _0x4c1338=new Date(_0x2c5adc['createdAt'])[_0x4f00da(0xbf)]();_0x1c3261-_0x4c1338>_0x2c5adc[_0x4f00da(0xa0)]&&this[_0x4f00da(0xcb)](_0x2c5adc);}}}[a0_0x5167ab(0xbc)](_0x5a0a31){const _0xd94ee9=this['operations']['get'](_0x5a0a31);if(!_0xd94ee9)return;_0xd94ee9['timeoutHandle']=setTimeout(()=>{this['handleOperationTimeout'](_0xd94ee9);},_0xd94ee9['timeout']);}[a0_0x5167ab(0xe7)](_0x5a483d){const _0x19277d=a0_0x5167ab,_0x47a941=this['operations']['get'](_0x5a483d);_0x47a941&&_0x47a941['timeoutHandle']&&(clearTimeout(_0x47a941[_0x19277d(0xb4)]),delete _0x47a941['timeoutHandle']);}[a0_0x5167ab(0xda)](){const _0x357cfe=a0_0x5167ab,_0x1bf945=Date[_0x357cfe(0xd1)]()['toString'](0x24),_0x4aaeba=Math[_0x357cfe(0xcd)]()[_0x357cfe(0xa5)](0x24)['substr'](0x2,0x9);return _0x357cfe(0x9f)+_0x1bf945+'-'+_0x4aaeba;}[a0_0x5167ab(0x98)](_0x3e60ae){const _0x4da219=a0_0x5167ab;if(!_0x3e60ae[_0x4da219(0xcc)])return 0x0;const _0x3e0b06=_0x3e60ae[_0x4da219(0xd9)]?new Date(_0x3e60ae[_0x4da219(0xd9)])[_0x4da219(0xbf)]():Date[_0x4da219(0xd1)]();return _0x3e0b06-new Date(_0x3e60ae['startedAt'])['getTime']();}async['cleanupOperation'](_0x31261c){const _0x57a529=a0_0x5167ab,_0x2f8b70=this[_0x57a529(0xab)]['get'](_0x31261c);if(!_0x2f8b70)return;this['clearOperationTimeout'](_0x31261c),this[_0x57a529(0xb8)]['push']({..._0x2f8b70,'executionTime':this['calculateExecutionTime'](_0x2f8b70),'cleanedUpAt':new Date()['toISOString']()}),this[_0x57a529(0xb8)][_0x57a529(0xa2)]>this['maxHistorySize']&&(this[_0x57a529(0xb8)]=this[_0x57a529(0xb8)][_0x57a529(0x9d)](-this[_0x57a529(0x91)])),this['operations'][_0x57a529(0x9b)](_0x31261c),this[_0x57a529(0xc8)]('operation:cleanup',{'operationId':_0x31261c,'toolId':_0x2f8b70[_0x57a529(0x94)]});}['handleOperationStarted'](_0x5a1196){const _0x206e67=a0_0x5167ab;this['logger']?.['debug'](_0x206e67(0xd0)+_0x5a1196['id'],{'toolId':_0x5a1196['toolId'],'agentId':_0x5a1196['agentId']});}async['handleOperationCompleted'](_0x1e0b1d){const _0x55b9e6=a0_0x5167ab;this['logger']?.[_0x55b9e6(0xd6)](_0x55b9e6(0xb1)+_0x1e0b1d['id'],{'toolId':_0x1e0b1d[_0x55b9e6(0x94)],'agentId':_0x1e0b1d['agentId'],'executionTime':this[_0x55b9e6(0x98)](_0x1e0b1d)}),setTimeout(()=>this[_0x55b9e6(0xb0)](_0x1e0b1d['id']),0x7530);}async['handleOperationFailed'](_0x3a1a3c){const _0x2986eb=a0_0x5167ab;this['logger']?.[_0x2986eb(0xbe)](_0x2986eb(0x97)+_0x3a1a3c['id'],{'toolId':_0x3a1a3c['toolId'],'agentId':_0x3a1a3c['agentId'],'error':_0x3a1a3c['error'],'executionTime':this[_0x2986eb(0x98)](_0x3a1a3c),'retryCount':_0x3a1a3c[_0x2986eb(0x96)]}),_0x3a1a3c['retryCount']<_0x3a1a3c['maxRetries']?setTimeout(()=>this[_0x2986eb(0xad)](_0x3a1a3c['id']),0x1388):setTimeout(()=>this['cleanupOperation'](_0x3a1a3c['id']),0xea60);}async['handleOperationTimeout'](_0x1b7199){const _0xc881ff=a0_0x5167ab;this['logger']?.[_0xc881ff(0x92)]('Operation\x20timed\x20out:\x20'+_0x1b7199['id'],{'toolId':_0x1b7199['toolId'],'agentId':_0x1b7199[_0xc881ff(0xd3)],'timeout':_0x1b7199[_0xc881ff(0xa0)],'executionTime':this['calculateExecutionTime'](_0x1b7199)}),this['updateOperation'](_0x1b7199['id'],TOOL_STATUS[_0xc881ff(0xdb)],{'error':_0xc881ff(0xdf)+_0x1b7199['timeout']+'ms'}),this['emit'](_0xc881ff(0xc0),_0x1b7199),setTimeout(()=>this['cleanupOperation'](_0x1b7199['id']),0x7530);}async['shutdown'](){const _0x427f62=a0_0x5167ab;this[_0x427f62(0xb3)]=!![],this['logger']?.['info']('Shutting down async tool manager...'),this[_0x427f62(0xae)]();const _0x4383a4=[];for(const _0x42a78b of this[_0x427f62(0xab)][_0x427f62(0xe0)]()){(_0x42a78b[_0x427f62(0x99)]===TOOL_STATUS['PENDING']||_0x42a78b[_0x427f62(0x99)]===TOOL_STATUS['EXECUTING'])&&_0x4383a4['push'](_0x42a78b['id']);}for(const _0xb4161f of _0x4383a4){await this[_0x427f62(0xc6)](_0xb4161f,'System\x20shutdown');}this['operations']['clear'](),this[_0x427f62(0xaf)]?.['info']('Async\x20tool\x20manager\x20shutdown\x20complete.\x20Cancelled\x20'+_0x4383a4['length']+_0x427f62(0x93));}['getOperationHistory'](_0x1ee441={}){const _0x480dc3=a0_0x5167ab;let _0x58ce39=[...this['operationHistory']];return _0x1ee441['agentId']&&(_0x58ce39=_0x58ce39[_0x480dc3(0xa6)](_0x4f55d7=>_0x4f55d7[_0x480dc3(0xd3)]===_0x1ee441[_0x480dc3(0xd3)])),_0x1ee441[_0x480dc3(0x94)]&&(_0x58ce39=_0x58ce39['filter'](_0x2ea529=>_0x2ea529[_0x480dc3(0x94)]===_0x1ee441[_0x480dc3(0x94)])),_0x1ee441['status']&&(_0x58ce39=_0x58ce39['filter'](_0x4e2fad=>_0x4e2fad[_0x480dc3(0x99)]===_0x1ee441[_0x480dc3(0x99)])),_0x1ee441[_0x480dc3(0xd8)]&&(_0x58ce39=_0x58ce39['slice'](-_0x1ee441['limit'])),_0x58ce39['sort']((_0x11d6e2,_0x2d2216)=>new Date(_0x2d2216['createdAt'])-new Date(_0x11d6e2['createdAt']));}}function a0_0x40df(){const _0x31a48d=['z2vUzxjHDgvpCgvYyxrPB25jza','veLnru9vva','AgfUzgXLt3bLCMf0Aw9UrMfPBgvK','C3rHCNrnB25PDg9YAw5N','mta3mdmZsgDqA0nJ','t3bLCMf0Aw9UihrPBwvKig91DcbHzNrLCIa','DMfSDwvZ','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','ndG4mdCWAvLvBfbX','CMvZDwX0','B3bLCMf0Aw9UoMnHBMnLBgXLza','C2v0','Bwf4uMv0CMLLCW','y2XLyxjpCgvYyxrPB25uAw1LB3v0','uevoreLorW','C29YDa','z2v0qwDLBNrpCgvYyxrPB25Z','Bwf4sgLZDg9YEvnPEMu','D2fYBG','ig9WzxjHDgLVBNmU','Dg9VBeLK','CM91BMq','CMv0CNLdB3vUDa','t3bLCMf0Aw9UigzHAwXLzdOG','y2fSy3vSyxrLrxHLy3v0Aw9UvgLTzq','C3rHDhvZ','Bw9UAxrVCMLUz0LUDgvYDMfS','zgvSzxrL','nZeXuNH1ve1l','C2XPy2u','mJi4mZbcy05RBgq','B3aT','DgLTzw91Da','Dg9ju09tDhjPBMC','BgvUz3rO','z2v0u3rHDgLZDgLJCW','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rHCNrLza','Dg9tDhjPBMC','zMLSDgvY','t3bLCMf0Aw9Uihn0yxr1CYb1CgrHDgvKoIa','m3HOve9puW','zgvIDwC','yNLbz2vUDa','B3bLCMf0Aw9UCW','y3jLyxrLzef0','CMv0CNLpCgvYyxrPB24','C3rVCe1VBML0B3jPBMC','Bg9Nz2vY','y2XLyw51Ce9WzxjHDgLVBG','t3bLCMf0Aw9UignVBxbSzxrLzdOG','DxbKyxrLt3bLCMf0Aw9U','AxntAhv0DgLUz0rVD24','DgLTzw91DeHHBMrSzq','B3bLCMf0Aw9UoMzHAwXLza','mtu2mtK2ngfluK9PAG','rKfjteve','B3bLCMf0Aw9UsgLZDg9YEq','yNLuB29S','B3bLCMf0Aw9UoNbYB2DYzxnZ','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rVChbLza','C2v0t3bLCMf0Aw9UvgLTzw91Da','y2XLyw51CenVBxbSzxrLze9WzxjHDgLVBNm','zxjYB3i','z2v0vgLTzq','B3bLCMf0Aw9UoNrPBwvVDxq','B3bLCMf0Aw9UoMnVBxbSzxrLza','B3bLCMf0Aw9UoNn0yxj0zwq','t3bLCMf0Aw9UignHBMnLBgXLza','q2fUBM90ihjLDhj5ig5VBI1MywLSzwqGB3bLCMf0Aw9UoIa','t3bLCMf0Aw9UignHBMnLBgXLzdOG','y2fUy2vSt3bLCMf0Aw9U','mZG4mZC2EuvzzwLN','zw1PDa','y2XLyw51CeLUDgvYDMfS','mteZodm1nxrwqujNwG','AgfUzgXLt3bLCMf0Aw9UvgLTzw91Da','C3rHCNrLzef0','CMfUzg9T','z2v0','ChvZAa','t3bLCMf0Aw9Uihn0yxj0zwq6ia','BM93','mteYvLnwtNL3','ywDLBNrjza','zgvMyxvSDfrPBwvVDxq','yMLUza','Aw5MBW','mta0ndGZnhLQyLDbAa','BgLTAxq','y29TCgXLDgvKqxq'];a0_0x40df=function(){return _0x31a48d;};return a0_0x40df();}export default AsyncToolManager;
1
+ const a0_0x52ae65=a0_0xfdea;(function(_0x27e90c,_0x44c5f8){const _0x57c901=a0_0xfdea,_0x3fc9f7=_0x27e90c();while(!![]){try{const _0x2b900e=-parseInt(_0x57c901(0x1ae))/0x1*(parseInt(_0x57c901(0x1b8))/0x2)+parseInt(_0x57c901(0x1b4))/0x3+-parseInt(_0x57c901(0x1db))/0x4*(-parseInt(_0x57c901(0x1b1))/0x5)+parseInt(_0x57c901(0x191))/0x6*(-parseInt(_0x57c901(0x1a5))/0x7)+-parseInt(_0x57c901(0x1eb))/0x8*(parseInt(_0x57c901(0x1e0))/0x9)+-parseInt(_0x57c901(0x1d2))/0xa+parseInt(_0x57c901(0x197))/0xb;if(_0x2b900e===_0x44c5f8)break;else _0x3fc9f7['push'](_0x3fc9f7['shift']());}catch(_0x1c5902){_0x3fc9f7['push'](_0x3fc9f7['shift']());}}}(a0_0x3769,0x7a1b0));import a0_0x35a870 from'events';function a0_0xfdea(_0x8b0c0b,_0x5e6445){_0x8b0c0b=_0x8b0c0b-0x18d;const _0x376966=a0_0x3769();let _0xfdea2f=_0x376966[_0x8b0c0b];if(a0_0xfdea['CbtipN']===undefined){var _0x51eea9=function(_0x5d0a5f){const _0x443732='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x35a870='',_0x8696d5='';for(let _0x27cbbd=0x0,_0x4f2de2,_0x155928,_0x3fe2d7=0x0;_0x155928=_0x5d0a5f['charAt'](_0x3fe2d7++);~_0x155928&&(_0x4f2de2=_0x27cbbd%0x4?_0x4f2de2*0x40+_0x155928:_0x155928,_0x27cbbd++%0x4)?_0x35a870+=String['fromCharCode'](0xff&_0x4f2de2>>(-0x2*_0x27cbbd&0x6)):0x0){_0x155928=_0x443732['indexOf'](_0x155928);}for(let _0x5040c7=0x0,_0x26e31f=_0x35a870['length'];_0x5040c7<_0x26e31f;_0x5040c7++){_0x8696d5+='%'+('00'+_0x35a870['charCodeAt'](_0x5040c7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x8696d5);};a0_0xfdea['FNnrMY']=_0x51eea9,a0_0xfdea['ElUivo']={},a0_0xfdea['CbtipN']=!![];}const _0x33d00c=_0x376966[0x0],_0x147d38=_0x8b0c0b+_0x33d00c,_0x4b03a0=a0_0xfdea['ElUivo'][_0x147d38];return!_0x4b03a0?(_0xfdea2f=a0_0xfdea['FNnrMY'](_0xfdea2f),a0_0xfdea['ElUivo'][_0x147d38]=_0xfdea2f):_0xfdea2f=_0x4b03a0,_0xfdea2f;}import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AsyncToolManager extends a0_0x35a870{constructor(_0x8696d5={},_0x27cbbd=null){const _0x5717d8=a0_0xfdea;super(),this['config']=_0x8696d5,this['logger']=_0x27cbbd,this[_0x5717d8(0x1a0)]=new Map(),this[_0x5717d8(0x1e4)]=[],this[_0x5717d8(0x1ca)]=_0x8696d5[_0x5717d8(0x1ca)]||0xa,this[_0x5717d8(0x1a9)]=_0x8696d5['defaultTimeout']||0x493e0,this[_0x5717d8(0x1de)]=_0x8696d5[_0x5717d8(0x1de)]||0xea60,this[_0x5717d8(0x1c2)]=_0x8696d5['maxHistorySize']||0x3e8,this[_0x5717d8(0x1a4)]=null,this[_0x5717d8(0x1c3)]=![],this['startMonitoring'](),this['on'](_0x5717d8(0x1b7),this[_0x5717d8(0x1bf)]['bind'](this)),this['on']('operation:completed',this['handleOperationCompleted'][_0x5717d8(0x1cf)](this)),this['on'](_0x5717d8(0x1e6),this['handleOperationFailed'][_0x5717d8(0x1cf)](this)),this['on'](_0x5717d8(0x1c4),this['handleOperationTimeout']['bind'](this));}async['startOperation'](_0x4f2de2,_0x155928,_0x3fe2d7,_0x5040c7={}){const _0x1c0887=a0_0xfdea;if(this['operations'][_0x1c0887(0x1b5)]>=this[_0x1c0887(0x1ca)])throw new Error(_0x1c0887(0x1b0)+this['maxConcurrentOperations']+')');const _0x26e31f=this[_0x1c0887(0x1b9)](),_0xa8e057={'id':_0x26e31f,'toolId':_0x4f2de2,'agentId':_0x155928,'parameters':_0x3fe2d7,'context':_0x5040c7,'status':TOOL_STATUS['PENDING'],'createdAt':new Date()['toISOString'](),'startedAt':null,'completedAt':null,'timeout':_0x5040c7['timeout']||this[_0x1c0887(0x1a9)],'result':null,'error':null,'progress':null,'retryCount':0x0,'maxRetries':_0x5040c7['maxRetries']||0x0};return this[_0x1c0887(0x1a0)]['set'](_0x26e31f,_0xa8e057),this[_0x1c0887(0x1c9)]?.['info'](_0x1c0887(0x198)+_0x26e31f,{'toolId':_0x4f2de2,'agentId':_0x155928,'parametersCount':Object['keys'](_0x3fe2d7)[_0x1c0887(0x199)],'timeout':_0xa8e057['timeout']}),this['setOperationTimeout'](_0x26e31f),this['emit']('operation:started',_0xa8e057),_0x26e31f;}[a0_0x52ae65(0x1c0)](_0x53ce71,_0x115b97,_0x5b41ea={}){const _0x207e15=a0_0x52ae65,_0x144883=this['operations'][_0x207e15(0x1c7)](_0x53ce71);if(!_0x144883)return this[_0x207e15(0x1c9)]?.['warn']('Attempted\x20to\x20update\x20unknown\x20operation:\x20'+_0x53ce71),![];const _0x461062=_0x144883[_0x207e15(0x1d3)];_0x144883[_0x207e15(0x1d3)]=_0x115b97;_0x115b97===TOOL_STATUS['EXECUTING']&&!_0x144883['startedAt']&&(_0x144883['startedAt']=new Date()['toISOString']());(_0x115b97===TOOL_STATUS['COMPLETED']||_0x115b97===TOOL_STATUS['FAILED'])&&(_0x144883['completedAt']=new Date()[_0x207e15(0x1b2)]());if(_0x5b41ea['result']!==undefined)_0x144883[_0x207e15(0x1c5)]=_0x5b41ea['result'];if(_0x5b41ea[_0x207e15(0x1e5)]!==undefined)_0x144883[_0x207e15(0x1e5)]=_0x5b41ea[_0x207e15(0x1e5)];if(_0x5b41ea['progress']!==undefined)_0x144883['progress']=_0x5b41ea[_0x207e15(0x192)];this['logger']?.['debug'](_0x207e15(0x1e7)+_0x53ce71,{'previousStatus':_0x461062,'newStatus':_0x115b97,'hasResult':!!_0x5b41ea[_0x207e15(0x1c5)],'hasError':!!_0x5b41ea['error'],'progress':_0x5b41ea[_0x207e15(0x192)]});switch(_0x115b97){case TOOL_STATUS[_0x207e15(0x1be)]:this['emit'](_0x207e15(0x1cc),_0x144883);break;case TOOL_STATUS[_0x207e15(0x1a2)]:this[_0x207e15(0x1e8)](_0x207e15(0x1e6),_0x144883);break;case TOOL_STATUS['EXECUTING']:this[_0x207e15(0x1e8)]('operation:progress',_0x144883);break;}return!![];}['getOperation'](_0x14853e){const _0x63c5c1=a0_0x52ae65,_0x33ff79=this['operations'][_0x63c5c1(0x1c7)](_0x14853e);if(!_0x33ff79)return null;return{'id':_0x33ff79['id'],'toolId':_0x33ff79[_0x63c5c1(0x1ce)],'agentId':_0x33ff79['agentId'],'status':_0x33ff79[_0x63c5c1(0x1d3)],'createdAt':_0x33ff79[_0x63c5c1(0x1bc)],'startedAt':_0x33ff79['startedAt'],'completedAt':_0x33ff79[_0x63c5c1(0x190)],'result':_0x33ff79['result'],'error':_0x33ff79['error'],'progress':_0x33ff79[_0x63c5c1(0x192)],'retryCount':_0x33ff79[_0x63c5c1(0x19e)],'executionTime':this['calculateExecutionTime'](_0x33ff79)};}['getAgentOperations'](_0x589116){const _0x2e19ad=a0_0x52ae65,_0x53d5ab=[];for(const _0x186b36 of this['operations'][_0x2e19ad(0x1ad)]()){_0x186b36['agentId']===_0x589116&&_0x53d5ab[_0x2e19ad(0x1e3)](this[_0x2e19ad(0x195)](_0x186b36['id']));}return _0x53d5ab['sort']((_0xf71abe,_0x552dfd)=>new Date(_0x552dfd['createdAt'])-new Date(_0xf71abe[_0x2e19ad(0x1bc)]));}async[a0_0x52ae65(0x1ea)](_0x294b13,_0x158b9c=a0_0x52ae65(0x1c1)){const _0x3458f6=a0_0x52ae65,_0x2345fe=this['operations'][_0x3458f6(0x1c7)](_0x294b13);if(!_0x2345fe)return![];if(_0x2345fe[_0x3458f6(0x1d3)]===TOOL_STATUS[_0x3458f6(0x1be)]||_0x2345fe[_0x3458f6(0x1d3)]===TOOL_STATUS['FAILED'])return this['logger']?.['warn']('Cannot\x20cancel\x20completed/failed\x20operation:\x20'+_0x294b13),![];return this[_0x3458f6(0x1c0)](_0x294b13,TOOL_STATUS['CANCELLED'],{'error':_0x158b9c}),this[_0x3458f6(0x1a3)](_0x294b13),this['emit'](_0x3458f6(0x1d8),_0x2345fe),await this[_0x3458f6(0x196)](_0x294b13),this['logger']?.['info'](_0x3458f6(0x1c8)+_0x294b13,{'reason':_0x158b9c}),!![];}async[a0_0x52ae65(0x1aa)](_0xe33c8b){const _0x4f9bac=a0_0x52ae65,_0x239d2a=this['operations']['get'](_0xe33c8b);if(!_0x239d2a)return![];if(_0x239d2a['status']!==TOOL_STATUS[_0x4f9bac(0x1a2)])return this[_0x4f9bac(0x1c9)]?.['warn'](_0x4f9bac(0x19f)+_0xe33c8b),![];if(_0x239d2a['retryCount']>=_0x239d2a[_0x4f9bac(0x1d7)])return this['logger']?.[_0x4f9bac(0x1b6)](_0x4f9bac(0x1a8)+_0xe33c8b),![];return _0x239d2a['retryCount']++,_0x239d2a[_0x4f9bac(0x1d3)]=TOOL_STATUS['PENDING'],_0x239d2a[_0x4f9bac(0x1dd)]=null,_0x239d2a['completedAt']=null,_0x239d2a['error']=null,_0x239d2a['result']=null,this[_0x4f9bac(0x1d1)](_0xe33c8b),this[_0x4f9bac(0x1c9)]?.['info']('Operation\x20retry\x20initiated:\x20'+_0xe33c8b,{'retryCount':_0x239d2a[_0x4f9bac(0x19e)],'maxRetries':_0x239d2a[_0x4f9bac(0x1d7)]}),this['emit'](_0x4f9bac(0x1a6),_0x239d2a),!![];}['getStatistics'](){const _0x3d2192=a0_0x52ae65,_0x13edc2={'total':this[_0x3d2192(0x1a0)][_0x3d2192(0x1b5)],'byStatus':{},'byTool':{},'byAgent':{},'averageExecutionTime':0x0,'oldestOperation':null,'newestOperation':null};let _0x4f5693=0x0,_0x284ebf=0x0,_0x579d90=null,_0x343e7b=null;for(const _0x1e74e4 of this['operations'][_0x3d2192(0x1ad)]()){_0x13edc2['byStatus'][_0x1e74e4[_0x3d2192(0x1d3)]]=(_0x13edc2[_0x3d2192(0x1ab)][_0x1e74e4[_0x3d2192(0x1d3)]]||0x0)+0x1,_0x13edc2['byTool'][_0x1e74e4[_0x3d2192(0x1ce)]]=(_0x13edc2[_0x3d2192(0x1cb)][_0x1e74e4[_0x3d2192(0x1ce)]]||0x0)+0x1,_0x13edc2[_0x3d2192(0x1d9)][_0x1e74e4[_0x3d2192(0x1ec)]]=(_0x13edc2['byAgent'][_0x1e74e4['agentId']]||0x0)+0x1;const _0xb16715=this[_0x3d2192(0x1e2)](_0x1e74e4);_0xb16715>0x0&&(_0x4f5693+=_0xb16715,_0x284ebf++);const _0x8ddec8=new Date(_0x1e74e4[_0x3d2192(0x1bc)])['getTime']();(!_0x579d90||_0x8ddec8<_0x579d90)&&(_0x579d90=_0x8ddec8,_0x13edc2['oldestOperation']=_0x1e74e4['id']),(!_0x343e7b||_0x8ddec8>_0x343e7b)&&(_0x343e7b=_0x8ddec8,_0x13edc2[_0x3d2192(0x1ac)]=_0x1e74e4['id']);}return _0x13edc2['averageExecutionTime']=_0x284ebf>0x0?Math[_0x3d2192(0x1da)](_0x4f5693/_0x284ebf):0x0,_0x13edc2;}async['cleanupCompletedOperations'](_0xc03f64=0x36ee80){const _0xa49593=a0_0x52ae65,_0x19ee82=Date['now']()-_0xc03f64,_0x4dbb7b=[];for(const _0x225885 of this['operations']['values']()){(_0x225885['status']===TOOL_STATUS['COMPLETED']||_0x225885[_0xa49593(0x1d3)]===TOOL_STATUS[_0xa49593(0x1a2)]||_0x225885[_0xa49593(0x1d3)]===TOOL_STATUS[_0xa49593(0x19b)])&&new Date(_0x225885['completedAt'])[_0xa49593(0x18d)]()<_0x19ee82&&_0x4dbb7b[_0xa49593(0x1e3)](_0x225885['id']);}for(const _0x2db9a0 of _0x4dbb7b){await this[_0xa49593(0x196)](_0x2db9a0);}return this[_0xa49593(0x1c9)]?.['debug']('Cleaned\x20up\x20'+_0x4dbb7b['length']+_0xa49593(0x1d4)),_0x4dbb7b['length'];}[a0_0x52ae65(0x1b3)](){const _0x7ae95f=a0_0x52ae65;this[_0x7ae95f(0x1a4)]&&clearInterval(this['monitoringInterval']),this['monitoringInterval']=setInterval(()=>{const _0x516aa1=_0x7ae95f;this['checkOperationTimeouts'](),this[_0x516aa1(0x1a1)]();},this[_0x7ae95f(0x1de)]),this['logger']?.[_0x7ae95f(0x1a7)]('Async\x20tool\x20manager\x20monitoring\x20started');}[a0_0x52ae65(0x1cd)](){const _0x415f5a=a0_0x52ae65;this[_0x415f5a(0x1a4)]&&(clearInterval(this['monitoringInterval']),this[_0x415f5a(0x1a4)]=null),this[_0x415f5a(0x1c9)]?.[_0x415f5a(0x1a7)](_0x415f5a(0x19a));}[a0_0x52ae65(0x18f)](){const _0x133123=a0_0x52ae65,_0x12d914=Date[_0x133123(0x194)]();for(const _0x359203 of this['operations']['values']()){if(_0x359203['status']===TOOL_STATUS[_0x133123(0x1af)]||_0x359203['status']===TOOL_STATUS[_0x133123(0x18e)]){const _0x377f8b=new Date(_0x359203[_0x133123(0x1bc)])['getTime']();_0x12d914-_0x377f8b>_0x359203['timeout']&&this['handleOperationTimeout'](_0x359203);}}}['setOperationTimeout'](_0x158c33){const _0x3334a2=a0_0x52ae65,_0x1ee5fe=this[_0x3334a2(0x1a0)]['get'](_0x158c33);if(!_0x1ee5fe)return;_0x1ee5fe['timeoutHandle']=setTimeout(()=>{this['handleOperationTimeout'](_0x1ee5fe);},_0x1ee5fe['timeout']);}[a0_0x52ae65(0x1a3)](_0x58a758){const _0x3fa4cd=a0_0x52ae65,_0x2d9664=this[_0x3fa4cd(0x1a0)]['get'](_0x58a758);_0x2d9664&&_0x2d9664['timeoutHandle']&&(clearTimeout(_0x2d9664['timeoutHandle']),delete _0x2d9664[_0x3fa4cd(0x1bb)]);}[a0_0x52ae65(0x1b9)](){const _0x39161f=a0_0x52ae65,_0xd6e6b3=Date[_0x39161f(0x194)]()['toString'](0x24),_0x2edc9b=Math[_0x39161f(0x19d)]()[_0x39161f(0x193)](0x24)['substr'](0x2,0x9);return'op-'+_0xd6e6b3+'-'+_0x2edc9b;}[a0_0x52ae65(0x1e2)](_0x44fb4f){const _0x4c8d6=a0_0x52ae65;if(!_0x44fb4f['startedAt'])return 0x0;const _0x24aa8a=_0x44fb4f[_0x4c8d6(0x190)]?new Date(_0x44fb4f['completedAt'])['getTime']():Date['now']();return _0x24aa8a-new Date(_0x44fb4f[_0x4c8d6(0x1dd)])[_0x4c8d6(0x18d)]();}async['cleanupOperation'](_0x3578ad){const _0x29991f=a0_0x52ae65,_0x41baba=this[_0x29991f(0x1a0)][_0x29991f(0x1c7)](_0x3578ad);if(!_0x41baba)return;this[_0x29991f(0x1a3)](_0x3578ad),this['operationHistory']['push']({..._0x41baba,'executionTime':this[_0x29991f(0x1e2)](_0x41baba),'cleanedUpAt':new Date()['toISOString']()}),this[_0x29991f(0x1e4)]['length']>this['maxHistorySize']&&(this[_0x29991f(0x1e4)]=this[_0x29991f(0x1e4)]['slice'](-this[_0x29991f(0x1c2)])),this[_0x29991f(0x1a0)]['delete'](_0x3578ad),this['emit']('operation:cleanup',{'operationId':_0x3578ad,'toolId':_0x41baba['toolId']});}[a0_0x52ae65(0x1bf)](_0x47a563){const _0x4a9409=a0_0x52ae65;this['logger']?.['debug'](_0x4a9409(0x1bd)+_0x47a563['id'],{'toolId':_0x47a563[_0x4a9409(0x1ce)],'agentId':_0x47a563['agentId']});}async['handleOperationCompleted'](_0x2d4e08){const _0x41e70b=a0_0x52ae65;this['logger']?.['info'](_0x41e70b(0x1d5)+_0x2d4e08['id'],{'toolId':_0x2d4e08[_0x41e70b(0x1ce)],'agentId':_0x2d4e08['agentId'],'executionTime':this[_0x41e70b(0x1e2)](_0x2d4e08)}),setTimeout(()=>this['cleanupOperation'](_0x2d4e08['id']),0x7530);}async['handleOperationFailed'](_0x4d47bd){const _0x4253de=a0_0x52ae65;this[_0x4253de(0x1c9)]?.['error'](_0x4253de(0x1df)+_0x4d47bd['id'],{'toolId':_0x4d47bd[_0x4253de(0x1ce)],'agentId':_0x4d47bd['agentId'],'error':_0x4d47bd[_0x4253de(0x1e5)],'executionTime':this[_0x4253de(0x1e2)](_0x4d47bd),'retryCount':_0x4d47bd['retryCount']}),_0x4d47bd['retryCount']<_0x4d47bd[_0x4253de(0x1d7)]?setTimeout(()=>this[_0x4253de(0x1aa)](_0x4d47bd['id']),0x1388):setTimeout(()=>this['cleanupOperation'](_0x4d47bd['id']),0xea60);}async['handleOperationTimeout'](_0x2f51b1){const _0x107e9c=a0_0x52ae65;this['logger']?.['warn']('Operation\x20timed\x20out:\x20'+_0x2f51b1['id'],{'toolId':_0x2f51b1['toolId'],'agentId':_0x2f51b1['agentId'],'timeout':_0x2f51b1[_0x107e9c(0x1dc)],'executionTime':this['calculateExecutionTime'](_0x2f51b1)}),this[_0x107e9c(0x1c0)](_0x2f51b1['id'],TOOL_STATUS['TIMEOUT'],{'error':_0x107e9c(0x1e1)+_0x2f51b1[_0x107e9c(0x1dc)]+'ms'}),this['emit']('operation:timeout',_0x2f51b1),setTimeout(()=>this['cleanupOperation'](_0x2f51b1['id']),0x7530);}async['shutdown'](){const _0x24b2a6=a0_0x52ae65;this['isShuttingDown']=!![],this['logger']?.['info']('Shutting down async tool manager...'),this[_0x24b2a6(0x1cd)]();const _0x105e2b=[];for(const _0x528e6c of this['operations'][_0x24b2a6(0x1ad)]()){(_0x528e6c['status']===TOOL_STATUS[_0x24b2a6(0x18e)]||_0x528e6c['status']===TOOL_STATUS['EXECUTING'])&&_0x105e2b[_0x24b2a6(0x1e3)](_0x528e6c['id']);}for(const _0x2dcf2f of _0x105e2b){await this['cancelOperation'](_0x2dcf2f,'System\x20shutdown');}this[_0x24b2a6(0x1a0)]['clear'](),this['logger']?.[_0x24b2a6(0x1a7)](_0x24b2a6(0x1ba)+_0x105e2b['length']+_0x24b2a6(0x1d6));}[a0_0x52ae65(0x1d0)](_0x35dbd6={}){const _0x3c1a50=a0_0x52ae65;let _0x57cc5d=[...this['operationHistory']];return _0x35dbd6[_0x3c1a50(0x1ec)]&&(_0x57cc5d=_0x57cc5d[_0x3c1a50(0x1c6)](_0xc27ac6=>_0xc27ac6[_0x3c1a50(0x1ec)]===_0x35dbd6[_0x3c1a50(0x1ec)])),_0x35dbd6['toolId']&&(_0x57cc5d=_0x57cc5d['filter'](_0x3fd638=>_0x3fd638[_0x3c1a50(0x1ce)]===_0x35dbd6['toolId'])),_0x35dbd6[_0x3c1a50(0x1d3)]&&(_0x57cc5d=_0x57cc5d['filter'](_0x3de5f8=>_0x3de5f8['status']===_0x35dbd6[_0x3c1a50(0x1d3)])),_0x35dbd6['limit']&&(_0x57cc5d=_0x57cc5d[_0x3c1a50(0x1e9)](-_0x35dbd6['limit'])),_0x57cc5d[_0x3c1a50(0x19c)]((_0x3d10ab,_0x58b831)=>new Date(_0x58b831['createdAt'])-new Date(_0x3d10ab['createdAt']));}}function a0_0x3769(){const _0x19281f=['z2v0','t3bLCMf0Aw9UignHBMnLBgXLzdOG','Bg9Nz2vY','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','yNLuB29S','B3bLCMf0Aw9UoMnVBxbSzxrLza','C3rVCe1VBML0B3jPBMC','Dg9VBeLK','yMLUza','z2v0t3bLCMf0Aw9UsgLZDg9YEq','C2v0t3bLCMf0Aw9UvgLTzw91Da','mtKXotqWDxPTsM5t','C3rHDhvZ','ignVBxbSzxrLzcbVCgvYyxrPB25Z','t3bLCMf0Aw9UignVBxbSzxrLzdOG','ig9WzxjHDgLVBNmU','Bwf4uMv0CMLLCW','B3bLCMf0Aw9UoMnHBMnLBgXLza','yNLbz2vUDa','CM91BMq','mtC0ogfwr3P3tq','DgLTzw91Da','C3rHCNrLzef0','y2XLyw51CeLUDgvYDMfS','t3bLCMf0Aw9UigzHAwXLzdOG','mZzUveTtBhK','t3bLCMf0Aw9UihrPBwvKig91DcbHzNrLCIa','y2fSy3vSyxrLrxHLy3v0Aw9UvgLTzq','ChvZAa','B3bLCMf0Aw9UsgLZDg9YEq','zxjYB3i','B3bLCMf0Aw9UoMzHAwXLza','t3bLCMf0Aw9Uihn0yxr1CYb1CgrHDgvKoIa','zw1PDa','C2XPy2u','y2fUy2vSt3bLCMf0Aw9U','nty2mda4sgn3zwTp','ywDLBNrjza','z2v0vgLTzq','uevoreLorW','y2HLy2TpCgvYyxrPB25uAw1LB3v0CW','y29TCgXLDgvKqxq','mZe1mtaYC0f5Dw1y','ChjVz3jLC3m','Dg9tDhjPBMC','BM93','z2v0t3bLCMf0Aw9U','y2XLyw51Ce9WzxjHDgLVBG','otGZotG3ng5nvNfWqG','qxn5BMmGB3bLCMf0Aw9Uihn0yxj0zwq6ia','BgvUz3rO','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rVChbLza','q0foq0vmteve','C29YDa','CMfUzg9T','CMv0CNLdB3vUDa','q2fUBM90ihjLDhj5ig5VBI1MywLSzwqGB3bLCMf0Aw9UoIa','B3bLCMf0Aw9UCW','y2XLyw51CenVBxbSzxrLze9WzxjHDgLVBNm','rKfjteve','y2XLyxjpCgvYyxrPB25uAw1LB3v0','Bw9UAxrVCMLUz0LUDgvYDMfS','n25rDxHiqG','B3bLCMf0Aw9UoNjLDhj5','Aw5MBW','twf4Aw11BsbYzxrYAwvZigv4y2vLzgvKigzVCIbVCgvYyxrPB246ia','zgvMyxvSDfrPBwvVDxq','CMv0CNLpCgvYyxrPB24','yNLtDgf0Dxm','BMv3zxn0t3bLCMf0Aw9U','DMfSDwvZ','muP3qMPIwG','rvHfq1vusu5h','twf4Aw11BsbJB25JDxjYzw50ig9WzxjHDgLVBNmGCMvHy2HLzcaO','mZq1C3n2rLr3','Dg9ju09tDhjPBMC','C3rHCNrnB25PDg9YAw5N','mtm1mtu2nLPxwhPcsa','C2L6zq','D2fYBG','B3bLCMf0Aw9UoNn0yxj0zwq','mta0mdCWmfb6u2DjBa','z2vUzxjHDgvpCgvYyxrPB25jza','qxn5BMmGDg9VBcbTyw5Hz2vYihnODxrKB3DUignVBxbSzxrLlIbdyw5JzwXSzwqG','DgLTzw91DeHHBMrSzq','y3jLyxrLzef0','t3bLCMf0Aw9Uihn0yxj0zwq6ia','q09nueXfveve','AgfUzgXLt3bLCMf0Aw9Uu3rHCNrLza','DxbKyxrLt3bLCMf0Aw9U','t3bLCMf0Aw9UignHBMnLBgXLza','Bwf4sgLZDg9YEvnPEMu','AxntAhv0DgLUz0rVD24','B3bLCMf0Aw9UoNrPBwvVDxq','CMvZDwX0','zMLSDgvY'];a0_0x3769=function(){return _0x19281f;};return a0_0x3769();}export default AsyncToolManager;
@@ -1 +1 @@
1
- function a0_0x3433(_0x397d32,_0x12982b){_0x397d32=_0x397d32-0x14b;const _0x4b8e96=a0_0x4b8e();let _0x343380=_0x4b8e96[_0x397d32];if(a0_0x3433['rELpic']===undefined){var _0x3200fa=function(_0x2b9693){const _0x555d01='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x40f830='',_0xfb0705='';for(let _0x4fefbb=0x0,_0x4a5795,_0x264456,_0x86e46f=0x0;_0x264456=_0x2b9693['charAt'](_0x86e46f++);~_0x264456&&(_0x4a5795=_0x4fefbb%0x4?_0x4a5795*0x40+_0x264456:_0x264456,_0x4fefbb++%0x4)?_0x40f830+=String['fromCharCode'](0xff&_0x4a5795>>(-0x2*_0x4fefbb&0x6)):0x0){_0x264456=_0x555d01['indexOf'](_0x264456);}for(let _0x5a7dde=0x0,_0x57ea2a=_0x40f830['length'];_0x5a7dde<_0x57ea2a;_0x5a7dde++){_0xfb0705+='%'+('00'+_0x40f830['charCodeAt'](_0x5a7dde)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xfb0705);};a0_0x3433['DSLRpf']=_0x3200fa,a0_0x3433['SAbhMT']={},a0_0x3433['rELpic']=!![];}const _0x36e38c=_0x4b8e96[0x0],_0x184f1e=_0x397d32+_0x36e38c,_0x11dc2b=a0_0x3433['SAbhMT'][_0x184f1e];return!_0x11dc2b?(_0x343380=a0_0x3433['DSLRpf'](_0x343380),a0_0x3433['SAbhMT'][_0x184f1e]=_0x343380):_0x343380=_0x11dc2b,_0x343380;}const a0_0x24430d=a0_0x3433;function a0_0x4b8e(){const _0x30f057=['y29UDgv4Da','zxHLy3v0zvrVB2Xtzwn1CMvSEq','z2vUzxjHDgvuB29SrgvZy3jPChrPB25ZrM9YuhjVBxb0','z2v0q2fWywjPBgL0AwvZ','rvHfq1vusu5h','ica8l3rVB2W+cG','ywn0AxzLt3bLCMf0Aw9UCW','vg9VBcbLEgvJDxrPB24GC3rHCNrLzdOG','zxjYB3i','B3bLCMf0Aw9UsgLZDg9YEq','BgLZDfrVB2XZ','C3rHCNruAw1L','mtmWnu15z3bZDq','su1qt1juqu5uoIb3AgvUigfZA2vKihrVihbLCMzVCM0Gyw4Gywn0Aw9Uig9Yig9WzxjHDgLVBIWGDxnLigvHy2GGCMvZCg9UC2uGDg8GAw52B2TLigeGDg9VBcbPzIbUzwvKzwqSigfUzcb1CgrHDguGDgHLihvZzxiGB24GDgHLihbYB2DYzxnZicHZyw1Lig1LC3nHz2uPlG','Bg9Nz2vY','mZq3mJiXsLfOuMD6','zgLZywjSzq','C3vWCg9YDgvKqwn0Aw9UCW','BgfZDfvZzwq','mZbcs1rmq1u','ig11C3qGAw1WBgvTzw50igDLDerLC2nYAxb0Aw9UkcK','CgfYC2vqyxjHBwv0zxjZ','C3bSAxq','otbdzMHLvgu','zw5HyMXLza','ica8Dg9VBcbPzd0IDg9VBg5HBwuIpGO','C2L6zq','C2v0','C3rHDhvZ','BgvUz3rO','z2v0','Dg9vChbLCKnHC2u','zxHLy3v0zvDPDgHmAwzLy3LJBgu','vg9VBcbLBMfIBgvKoIa','z2v0u3vWCg9YDgvKqwn0Aw9UCW','icaIDg9VBeLKiJOGiNrVB2XUyw1LiIWk','z2v0qxzHAwXHyMXLvg9VBhngB3jvsq','kIO6ia','qwz0zxiGAw52B2TPBMCGysb0B29SlcbxquLuigzVCIb0AguGywn0DwfSihjLC3bVBNnLlIbeBYbot1qGz2vUzxjHDguGAw1Hz2LUyxj5ihjLC3bVBNnLCY4k','ihbHCNnLugfYyw1LDgvYCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','zMLSDgvY','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','z2v0ugfYyw1LDgvYu2nOzw1H','ntu2odiXmhbozw5vBa','y29UzMLN','q09nueXfveve','vg9VBcbZDgf0Axn0AwnZihjLC2v0oIa','mJG5otyWnxDfzLDVCG','ugfYyw1LDgvYihzHBgLKyxrPB24GzMfPBgvKoIa','phrVB2WTy29TBwfUzd4k','zw50CMLLCW','DMfSAwrHDgvqyxjHBwv0zxjuExbLCW','z2vUzxjHDgvpCgvYyxrPB25jza','BM93','zxHLy3v0zvDPDgHuAw1LB3v0','nteWnZe2tLvOBfLA','z2v0rgvZy3jPChrPB24','kIPjtvbpuLrbtLqQkJOGww91ie1vu1qGDxnLig9UzsbVzIb0AgvZzsbLEgfJDcbMB3jTyxrZihrVigLUDM9Rzsb0B29SCZOkcG','vg9VBcbLEgvJDxrPB24GzMfPBgvKoIa','DMfSDwvZ','z2v0vg9VBenHCgfIAwXPDgLLCW','C29YDa','ygbGANnVBGO','cLvZzsbBDg9VBcbPzd0IDg9VBc1Uyw1LiL08CgfYyw1LDgvYCZ5Bl3rVB2XDig9YiePtt04GzM9YBwf0ihrVigLUDM9Rzsb0B29SCY4kcG','CMvXDwLYzxnqCM9Qzwn0','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','Dg9VBa','y29UDgvUDa','mtKZmtjcyxD5se4','z2v0vxnHz2vtDgf0CW','zw5KvgLTzq','AxnbC3LUyW','z2v0vgLTzq','twLZC2LUzYbYzxf1AxjLzcbWyxjHBwv0zxi6ia','zNjVBq','y2fSy3vSyxrLu3vJy2vZC1jHDgu','x2DLDfrVB2XdyxrLz29YEq','C2fUAxrPEMvdB250zxH0','Bg9JywXLq29TCgfYzq','DgvZDcbJB250zw50','odmXmdeYCwDlve1T','Dg9VBenHCgfIAwXPDgLLCW','odq5otq4r0vfBLfL','vg9VBcbLEgvJDxrPB24GDgLTzwqGB3v0igfMDgvYia','iYmJiezVCM1HDcaYoIbku09oigLUie1HCMTKB3DUienVzguGqMXVy2SGkfjfuvvjuKveigzVCIbku09okqO','C2XPy2u','y2XLyw51Ca','CMvZzxrtDgf0CW','iYmGqvzbsuXbqKXfifrpt0Xt','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','BwvZC2fNzq','Dg9ju09tDhjPBMC','CM91BMq','ygbGcGO','zxHLy3v0zq','Dg9VBerLC2nYAxb0Aw9UCW','zMLUza','vg9VBcbLEgvJDxrPB24Gy29TCgXLDgvKoIa','y2fSy3vSyxrLqxzLCMfNzuv4zwn1DgLVBLrPBwu','ugfYyw1LDgvYCYbTDxn0igjLigfUig9IAMvJDa','vg9VBcbYzwDPC3rLCMvKoIa','AxnfBMfIBgvK','zw5HyMXL','B2jQzwn0','ig1PC3nPBMCGCMvXDwLYzwqGBwv0Ag9KoIa','zxHLy3v0Aw9UvgLTzq','y2XLyw51CeHPC3rVCNK','Dg9VBhm','CMvKDwnL','vg9VBca','DhjPBq','zNvUy3rPB24','Aw5MBW','DxnHz2vdB3vUDa','tufyx1rpt0XFrvHfq1vusu9ox1rjtuu','DgLTzw91Da'];a0_0x4b8e=function(){return _0x30f057;};return a0_0x4b8e();}(function(_0x4040b7,_0x3edcf5){const _0x19c448=a0_0x3433,_0x44998b=_0x4040b7();while(!![]){try{const _0x21652c=parseInt(_0x19c448(0x1b7))/0x1+parseInt(_0x19c448(0x1b9))/0x2+parseInt(_0x19c448(0x196))/0x3+parseInt(_0x19c448(0x19e))/0x4*(-parseInt(_0x19c448(0x17a))/0x5)+parseInt(_0x19c448(0x17e))/0x6*(-parseInt(_0x19c448(0x176))/0x7)+parseInt(_0x19c448(0x1ab))/0x8*(parseInt(_0x19c448(0x173))/0x9)+-parseInt(_0x19c448(0x192))/0xa;if(_0x21652c===_0x3edcf5)break;else _0x44998b['push'](_0x44998b['shift']());}catch(_0x3d38f3){_0x44998b['push'](_0x44998b['shift']());}}}(a0_0x4b8e,0x7b70b));import{TOOL_STATUS,OPERATION_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BaseTool{constructor(_0x40f830={},_0xfb0705=null){const _0x1d6903=a0_0x3433;this['id']=this['constructor']['name']['toLowerCase']()['replace'](_0x1d6903(0x1a9),''),this[_0x1d6903(0x193)]=_0x40f830,this[_0x1d6903(0x175)]=_0xfb0705,this['requiresProject']=![],this[_0x1d6903(0x1ae)]=![],this[_0x1d6903(0x166)]=_0x40f830['timeout']||SYSTEM_DEFAULTS[_0x1d6903(0x165)],this[_0x1d6903(0x190)]=_0x40f830['maxConcurrentOperations']||0x1,this['activeOperations']=new Map(),this['operationHistory']=[],this[_0x1d6903(0x158)]=_0x40f830[_0x1d6903(0x17f)]!==![],this['lastUsed']=null,this[_0x1d6903(0x164)]=0x0;}['getDescription'](){const _0x2a8624=a0_0x3433;throw new Error('Tool\x20'+this['id']+_0x2a8624(0x17b));}['parseParameters'](_0x4fefbb){throw new Error('Tool\x20'+this['id']+'\x20must\x20implement\x20parseParameters()');}async['execute'](_0x4a5795,_0x264456){throw new Error('Tool\x20'+this['id']+'\x20must\x20implement\x20execute()');}[a0_0x24430d(0x16a)](){const _0x329c79=a0_0x24430d;return{'id':this['id'],'async':this[_0x329c79(0x1ae)],'requiresProject':this[_0x329c79(0x1a7)],'timeout':this[_0x329c79(0x166)],'maxConcurrentOperations':this['maxConcurrentOperations'],'enabled':this['isEnabled'],'supportedActions':this[_0x329c79(0x189)](),'parameterSchema':this['getParameterSchema']()};}['validateParameters'](_0x86e46f){const _0xef8dc7=a0_0x24430d;try{if(!_0x86e46f||typeof _0x86e46f!=='object')return{'valid':![],'error':_0xef8dc7(0x156)};const requiredParams=this[_0xef8dc7(0x14c)]();for(const required of requiredParams){if(!(required in _0x86e46f))return{'valid':![],'error':_0xef8dc7(0x1b0)+required};}const _0x5a7dde=this[_0xef8dc7(0x19a)](_0x86e46f);if(!_0x5a7dde['valid'])return _0x5a7dde;const _0x57ea2a=this[_0xef8dc7(0x1a8)](_0x86e46f);if(!_0x57ea2a['valid'])return _0x57ea2a;return{'valid':!![]};}catch(_0x799653){return{'valid':![],'error':_0xef8dc7(0x197)+_0x799653[_0xef8dc7(0x14d)]};}}async['executeWithLifecycle'](_0x298a4d,_0x12aa19){const _0x338225=a0_0x24430d,_0x298b55=this[_0x338225(0x19b)](),_0x10477b=Date[_0x338225(0x19c)]();if(!this[_0x338225(0x158)])throw new Error(_0x338225(0x160)+this['id']+'\x20is\x20disabled');if(this[_0x338225(0x16d)]['size']>=this['maxConcurrentOperations'])throw new Error(_0x338225(0x160)+this['id']+'\x20has\x20reached\x20maximum\x20concurrent\x20operations\x20limit');const _0x3d5180=this['validateParameters'](_0x298a4d);if(!_0x3d5180['valid'])throw new Error(_0x338225(0x197)+_0x3d5180[_0x338225(0x16f)]);const _0x2ec23a={'id':_0x298b55,'toolId':this['id'],'status':TOOL_STATUS[_0x338225(0x16b)],'startTime':new Date()['toISOString'](),'params':_0x298a4d,'context':this['sanitizeContext'](_0x12aa19)};this[_0x338225(0x16d)]['set'](_0x298b55,_0x2ec23a);try{this['logger']?.[_0x338225(0x163)](_0x338225(0x16e)+this['id'],{'operationId':_0x298b55,'toolId':this['id'],'context':_0x2ec23a[_0x338225(0x167)]});const _0x20b74e=await this[_0x338225(0x19d)](_0x298a4d,_0x12aa19);return _0x2ec23a['status']=TOOL_STATUS[_0x338225(0x194)],_0x2ec23a['result']=_0x20b74e,_0x2ec23a[_0x338225(0x1ad)]=new Date()['toISOString'](),_0x2ec23a[_0x338225(0x15c)]=Date[_0x338225(0x19c)]()-_0x10477b,this['lastUsed']=new Date()['toISOString'](),this[_0x338225(0x164)]++,this['logger']?.['info'](_0x338225(0x154)+this['id'],{'operationId':_0x298b55,'executionTime':_0x2ec23a[_0x338225(0x15c)],'success':!![]}),{'success':!![],'operationId':_0x298b55,'result':_0x20b74e,'executionTime':_0x2ec23a['executionTime'],'toolId':this['id']};}catch(_0x5263be){_0x2ec23a[_0x338225(0x183)]=TOOL_STATUS['FAILED'],_0x2ec23a['error']=_0x5263be[_0x338225(0x14d)],_0x2ec23a[_0x338225(0x1ad)]=new Date()[_0x338225(0x14e)](),_0x2ec23a['executionTime']=Date['now']()-_0x10477b,this['logger']?.['error'](_0x338225(0x1a1)+this['id'],{'operationId':_0x298b55,'error':_0x5263be[_0x338225(0x14d)],'executionTime':_0x2ec23a[_0x338225(0x15c)]});throw _0x5263be;}finally{this['operationHistory']['push']({..._0x2ec23a}),this[_0x338225(0x16d)]['delete'](_0x298b55),this[_0x338225(0x15d)](),await this[_0x338225(0x1bd)](_0x298b55);}}async['getStatus'](_0x1e0987){const _0x34f5de=a0_0x24430d,_0x2dabf7=this[_0x34f5de(0x16d)][_0x34f5de(0x185)](_0x1e0987);if(!_0x2dabf7){const _0x1b8520=this[_0x34f5de(0x170)]['find'](_0x2232df=>_0x2232df['id']===_0x1e0987);if(_0x1b8520)return{'operationId':_0x1e0987,'status':_0x1b8520[_0x34f5de(0x183)],'result':_0x1b8520['result'],'error':_0x1b8520[_0x34f5de(0x16f)],'executionTime':_0x1b8520[_0x34f5de(0x15c)]};return{'operationId':_0x1e0987,'status':OPERATION_STATUS['NOT_FOUND'],'error':'Operation\x20not\x20found'};}return{'operationId':_0x1e0987,'status':_0x2dabf7[_0x34f5de(0x183)],'startTime':_0x2dabf7['startTime'],'executionTime':_0x2dabf7['endTime']?new Date(_0x2dabf7['endTime'])['getTime']()-new Date(_0x2dabf7[_0x34f5de(0x172)])['getTime']():Date['now']()-new Date(_0x2dabf7['startTime'])[_0x34f5de(0x1af)]()};}async[a0_0x24430d(0x1bd)](_0x115c7e){}[a0_0x24430d(0x189)](){const _0x3ffbe9=a0_0x24430d;return[_0x3ffbe9(0x151)];}[a0_0x24430d(0x191)](){return{'type':'object','properties':{},'required':[]};}['getRequiredParameters'](){return[];}['validateParameterTypes'](_0x2c865f){return{'valid':!![]};}['customValidateParameters'](_0x54b5d7){return{'valid':!![]};}async[a0_0x24430d(0x19d)](_0x5d40ca,_0x227a2a){return new Promise(async(_0x5bbcbc,_0x55d470)=>{const _0x17982d=a0_0x3433,_0x22b003=setTimeout(()=>{const _0x1e9164=a0_0x3433;_0x55d470(new Error(_0x1e9164(0x1ba)+this[_0x1e9164(0x166)]+'ms'));},this[_0x17982d(0x166)]);try{const _0x385f51=await this[_0x17982d(0x151)](_0x5d40ca,_0x227a2a);clearTimeout(_0x22b003),_0x5bbcbc(_0x385f51);}catch(_0x2df5f9){clearTimeout(_0x22b003),_0x55d470(_0x2df5f9);}});}['generateOperationId'](){return this['id']+'-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);}[a0_0x24430d(0x1b4)](_0x33ae2a){const _0x43eb31=a0_0x24430d,_0x59490b={..._0x33ae2a};return delete _0x59490b['apiKeys'],delete _0x59490b['secrets'],delete _0x59490b['passwords'],_0x59490b['content']&&_0x59490b['content']['length']>0x1f4&&(_0x59490b[_0x43eb31(0x1aa)]=_0x59490b[_0x43eb31(0x1aa)]['substring'](0x0,0x1f4)+'...\x20[truncated]'),_0x59490b;}[a0_0x24430d(0x15d)](){const _0x2aab0e=a0_0x24430d,_0x348418=0x64;this['operationHistory']['length']>_0x348418&&(this[_0x2aab0e(0x170)]=this[_0x2aab0e(0x170)]['slice'](-_0x348418));}['getUsageStats'](){const _0x3daff8=a0_0x24430d;return{'toolId':this['id'],'usageCount':this['usageCount'],'lastUsed':this[_0x3daff8(0x179)],'activeOperations':this['activeOperations']['size'],'totalOperations':this[_0x3daff8(0x170)][_0x3daff8(0x184)],'averageExecutionTime':this['calculateAverageExecutionTime'](),'successRate':this[_0x3daff8(0x1b2)](),'isEnabled':this[_0x3daff8(0x158)]};}[a0_0x24430d(0x155)](){const _0x2ff346=a0_0x24430d,_0x595d77=this['operationHistory']['filter'](_0x561f54=>_0x561f54[_0x2ff346(0x183)]===TOOL_STATUS['COMPLETED']&&_0x561f54[_0x2ff346(0x15c)]);if(_0x595d77[_0x2ff346(0x184)]===0x0)return 0x0;const _0xb9765c=_0x595d77['reduce']((_0x3ebc60,_0x350ee1)=>_0x3ebc60+_0x350ee1['executionTime'],0x0);return Math[_0x2ff346(0x14f)](_0xb9765c/_0x595d77[_0x2ff346(0x184)]);}[a0_0x24430d(0x1b2)](){const _0x5312ad=a0_0x24430d;if(this['operationHistory'][_0x5312ad(0x184)]===0x0)return 0x0;const _0x21291f=this[_0x5312ad(0x170)][_0x5312ad(0x18f)](_0xb5cda6=>_0xb5cda6['status']===TOOL_STATUS['COMPLETED']);return _0x21291f[_0x5312ad(0x184)]/this['operationHistory']['length']*0x64;}[a0_0x24430d(0x159)](){const _0x51fe21=a0_0x24430d;this['isEnabled']=!![],this[_0x51fe21(0x175)]?.[_0x51fe21(0x163)](_0x51fe21(0x188)+this['id']);}[a0_0x24430d(0x177)](){const _0x390156=a0_0x24430d;this[_0x390156(0x158)]=![],this['logger']?.['info']('Tool\x20disabled:\x20'+this['id']);}[a0_0x24430d(0x1be)](){const _0x46f6d6=a0_0x24430d;this[_0x46f6d6(0x164)]=0x0,this[_0x46f6d6(0x179)]=null,this['operationHistory']=[],this[_0x46f6d6(0x175)]?.[_0x46f6d6(0x163)](_0x46f6d6(0x195)+this['id']);}}class ToolsRegistry{constructor(_0x4f81ef=null){const _0x40bf09=a0_0x24430d;this[_0x40bf09(0x175)]=_0x4f81ef,this[_0x40bf09(0x15e)]=new Map(),this['toolDescriptions']=new Map(),this[_0x40bf09(0x1b8)]=new Map(),this['asyncOperations']=new Map();}async['registerTool'](_0x5404ca){const _0x2c80c9=a0_0x24430d;try{const _0x40b7c1=new _0x5404ca();if(!(_0x40b7c1 instanceof BaseTool))throw new Error(_0x2c80c9(0x160)+_0x5404ca['name']+'\x20must\x20extend\x20BaseTool');const _0x46bbfa=_0x40b7c1['getCapabilities']();await this['validateTool'](_0x40b7c1),this['tools'][_0x2c80c9(0x182)](_0x40b7c1['id'],_0x40b7c1),this[_0x2c80c9(0x152)][_0x2c80c9(0x182)](_0x40b7c1['id'],_0x40b7c1['getDescription']()),this[_0x2c80c9(0x1b8)][_0x2c80c9(0x182)](_0x40b7c1['id'],_0x46bbfa),this['logger']?.['info'](_0x2c80c9(0x157)+_0x40b7c1['id'],{'capabilities':_0x46bbfa[_0x2c80c9(0x178)],'async':_0x46bbfa['async'],'requiresProject':_0x46bbfa[_0x2c80c9(0x1a7)]});}catch(_0x3c874d){this['logger']?.[_0x2c80c9(0x16f)]('Tool\x20registration\x20failed:\x20'+_0x3c874d[_0x2c80c9(0x14d)],{'toolClass':_0x5404ca['name']});throw _0x3c874d;}}async['discoverTools'](_0x42fb48){return 0x0;}async['validateTool'](_0x10f8b8){const _0xcc0db6=a0_0x24430d,requiredMethods=[_0xcc0db6(0x19f),_0xcc0db6(0x17c),'execute'];for(const _0x37b39f of requiredMethods){if(typeof _0x10f8b8[_0x37b39f]!==_0xcc0db6(0x162))throw new Error('Tool\x20'+_0x10f8b8['id']+_0xcc0db6(0x15b)+_0x37b39f);}try{const _0x384c20=_0x10f8b8[_0xcc0db6(0x17c)](_0xcc0db6(0x1b6));if(typeof _0x384c20!==_0xcc0db6(0x15a))throw new Error(_0xcc0db6(0x160)+_0x10f8b8['id']+_0xcc0db6(0x18e));}catch(_0x7e9909){}const _0x15c985=_0x10f8b8['getCapabilities']();if(!_0x15c985||typeof _0x15c985!=='object')throw new Error(_0xcc0db6(0x160)+_0x10f8b8['id']+'\x20getCapabilities\x20must\x20return\x20an\x20object');}['getTool'](_0x278c17){const _0xe68b02=a0_0x24430d;return this['tools'][_0xe68b02(0x185)](_0x278c17)||null;}[a0_0x24430d(0x1a3)](){const _0x5c98ba=a0_0x24430d,_0x125b3a={};for(const [_0xb384b3,_0xef03a]of this['tools']['entries']()){_0xef03a['isEnabled']&&(_0x125b3a[_0xb384b3]={'description':this[_0x5c98ba(0x152)]['get'](_0xb384b3),'capabilities':this['toolCapabilities'][_0x5c98ba(0x185)](_0xb384b3),'usageStats':_0xef03a[_0x5c98ba(0x1ac)]()});}return _0x125b3a;}async[a0_0x24430d(0x168)](_0xdb2dc7,_0x89e1cd,_0x27fa7e){const _0x33921b=a0_0x24430d,_0x98a24=this['getTool'](_0xdb2dc7);if(!_0x98a24)throw new Error('Tool\x20not\x20found:\x20'+_0xdb2dc7);if(!_0x98a24[_0x33921b(0x158)])throw new Error('Tool\x20is\x20disabled:\x20'+_0xdb2dc7);return await _0x98a24[_0x33921b(0x187)](_0x89e1cd,_0x27fa7e);}[a0_0x24430d(0x171)](){return Array['from'](this['tools']['keys']());}['generateToolDescriptionsForPrompt'](_0x5ab47b=[],_0x560551={}){const _0x9049f6=a0_0x24430d,{includeExamples:includeExamples=!![],includeUsageGuidelines:includeUsageGuidelines=!![],includeSecurityNotes:includeSecurityNotes=!![],compact:compact=![]}=_0x560551,_0x3f5708=_0x5ab47b['length']>0x0?_0x5ab47b[_0x9049f6(0x18f)](_0x40a7c5=>this[_0x9049f6(0x15e)]['has'](_0x40a7c5)):Array['from'](this[_0x9049f6(0x15e)]['keys']());if(_0x3f5708[_0x9049f6(0x184)]===0x0)return'';let _0x4a569e='\x0a##\x20AVAILABLE\x20TOOLS\x0a\x0a';_0x4a569e+='You\x20have\x20access\x20to\x20the\x20following\x20tools\x20to\x20perform\x20operations\x20and\x20tasks:\x0a\x0a';for(const _0x3f618f of _0x3f5708){const _0x2ff165=this[_0x9049f6(0x15e)][_0x9049f6(0x185)](_0x3f618f);if(!_0x2ff165||!_0x2ff165[_0x9049f6(0x158)])continue;try{if(compact){const _0x3cf95a=_0x2ff165['getCapabilities'](),_0x4a562c=_0x3cf95a[_0x9049f6(0x178)]||[_0x9049f6(0x151)];_0x4a569e+='**'+_0x3f618f+_0x9049f6(0x18c)+_0x4a562c['join'](',\x20')+'\x0a';}else _0x4a569e+='###\x20'+_0x3f618f[_0x9049f6(0x186)]()+'\x20TOOL\x0a\x0a',_0x4a569e+=_0x2ff165['getDescription'](),_0x4a569e+='\x0a\x0a---\x0a\x0a';}catch(_0x1a0b09){this['logger']?.['warn']('Failed\x20to\x20get\x20description\x20for\x20tool:\x20'+_0x3f618f,{'error':_0x1a0b09[_0x9049f6(0x14d)]});}}return compact&&(_0x4a569e+=_0x9049f6(0x1a6)),_0x4a569e+='##\x20TOOL\x20INVOCATION\x20SYNTAX\x0a\x0a',_0x4a569e+=_0x9049f6(0x1a0),_0x4a569e+='###\x20Format\x201:\x20Bracket\x20Notation\x0a',_0x4a569e+='```\x0a',_0x4a569e+='[tool\x20id=\x22toolname\x22]\x0a',_0x4a569e+='<parameters\x20here>\x0a',_0x4a569e+='[/tool]\x0a',_0x4a569e+='```\x0a\x0a',_0x4a569e+=_0x9049f6(0x1bb),_0x4a569e+='```\x0a',_0x4a569e+=_0x9049f6(0x1a5),_0x4a569e+='{\x0a',_0x4a569e+=_0x9049f6(0x18a),_0x4a569e+='\x20\x20\x22parameters\x22:\x20{\x20...\x20}\x20or\x20\x22actions\x22:\x20[\x20...\x20]\x0a',_0x4a569e+='}\x0a',_0x4a569e+='```\x0a',_0x4a569e+=_0x9049f6(0x150),_0x4a569e+='**WARNING**:\x20Plain\x20JSON\x20without\x20markdown\x20code\x20blocks\x20(```json)\x20will\x20NOT\x20be\x20executed!\x0a',_0x4a569e+='Always\x20wrap\x20JSON\x20tool\x20commands\x20in\x20```json\x20...\x20```\x20blocks.\x0a\x0a',_0x4a569e+='###\x20Format\x203:\x20XML\x20Format\x0a',_0x4a569e+='```xml\x0a',_0x4a569e+=_0x9049f6(0x198),_0x4a569e+=_0x9049f6(0x180),_0x4a569e+='\x20\x20\x20\x20<parameter>value</parameter>\x0a',_0x4a569e+=_0x9049f6(0x16c),_0x4a569e+='</tool-command>\x0a',_0x4a569e+='```\x0a\x0a',_0x4a569e+=_0x9049f6(0x18d),_0x4a569e;}['enhanceSystemPrompt'](_0x43351c,_0x1f4f08=[],_0x31c470={}){const _0x4c179b=a0_0x24430d,_0x45fc9a=this[_0x4c179b(0x169)](_0x1f4f08,_0x31c470);if(!_0x45fc9a[_0x4c179b(0x161)]())return _0x43351c||'';const _0xe41670=_0x43351c||'';if(_0xe41670['includes'](_0x4c179b(0x14b)))return _0xe41670['replace'](/## AVAILABLE TOOLS[\s\S]*?(?=##|$)/,_0x45fc9a+'\x0a');const _0x2a8bb5=_0x4c179b(0x174);return _0xe41670+(_0xe41670['endsWith']('\x0a')?'':'\x0a')+_0x45fc9a+_0x2a8bb5+'\x0a';}[a0_0x24430d(0x18b)](){const _0x191b74=a0_0x24430d,_0x20c215=[];for(const [_0x252755,_0x43de25]of this[_0x191b74(0x15e)][_0x191b74(0x199)]()){const _0x548696=_0x43de25[_0x191b74(0x16a)](),_0x149e9b=_0x43de25['getDescription'](),_0x2a7866=_0x149e9b[_0x191b74(0x17d)]('\x0a')[_0x191b74(0x153)](_0x499f8a=>_0x499f8a['trim']()['length']>0x0)||'',_0xc33f2d=_0x2a7866['replace'](/^.*Tool:\s*/i,'')['replace'](/\s*-.*$/,'')['trim']();_0x20c215['push']({'id':_0x252755,'name':_0xc33f2d||_0x252755['charAt'](0x0)['toUpperCase']()+_0x252755[_0x191b74(0x1bc)](0x1),'description':_0x2a7866,'category':this['_getToolCategory'](_0x252755),'enabled':_0x548696['enabled'],'async':_0x548696['async'],'requiresProject':_0x548696[_0x191b74(0x1a7)],'className':_0x43de25['constructor']['name']});}return _0x20c215[_0x191b74(0x1a4)]((_0x1bbe1d,_0x2b5085)=>_0x1bbe1d['name'][_0x191b74(0x1b5)](_0x2b5085['name']));}[a0_0x24430d(0x1b3)](_0x4f847e){const _0x39c4bc={'terminal':'System','filesystem':'File\x20Operations','browser':'Automation','agentdelay':'Utility'};return _0x39c4bc[_0x4f847e]||'Other';}['getRegistryStats'](){const _0x481ff4=a0_0x24430d,_0x383298=Array[_0x481ff4(0x1b1)](this['tools']['values']())['filter'](_0x4d32a4=>_0x4d32a4[_0x481ff4(0x158)]),_0x4338da=Array[_0x481ff4(0x1b1)](this['tools'][_0x481ff4(0x1a2)]())[_0x481ff4(0x15f)]((_0x442b18,_0x5f1179)=>_0x442b18+_0x5f1179[_0x481ff4(0x164)],0x0);return{'totalTools':this[_0x481ff4(0x15e)][_0x481ff4(0x181)],'enabledTools':_0x383298['length'],'totalOperations':_0x4338da,'activeOperations':this['asyncOperations']['size']};}}export{BaseTool,ToolsRegistry};
1
+ const a0_0x291dff=a0_0x3b98;function a0_0x3b98(_0x6e1454,_0x5be36a){_0x6e1454=_0x6e1454-0x157;const _0x4d7077=a0_0x4d70();let _0x3b981b=_0x4d7077[_0x6e1454];if(a0_0x3b98['VkMZLp']===undefined){var _0xd4c57f=function(_0x115c67){const _0x58ce08='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5a705b='',_0x4eff92='';for(let _0x38be32=0x0,_0x3c7142,_0x1f559a,_0x5beb41=0x0;_0x1f559a=_0x115c67['charAt'](_0x5beb41++);~_0x1f559a&&(_0x3c7142=_0x38be32%0x4?_0x3c7142*0x40+_0x1f559a:_0x1f559a,_0x38be32++%0x4)?_0x5a705b+=String['fromCharCode'](0xff&_0x3c7142>>(-0x2*_0x38be32&0x6)):0x0){_0x1f559a=_0x58ce08['indexOf'](_0x1f559a);}for(let _0x2e2fc6=0x0,_0x4b2282=_0x5a705b['length'];_0x2e2fc6<_0x4b2282;_0x2e2fc6++){_0x4eff92+='%'+('00'+_0x5a705b['charCodeAt'](_0x2e2fc6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4eff92);};a0_0x3b98['MzYLWq']=_0xd4c57f,a0_0x3b98['EXzFsA']={},a0_0x3b98['VkMZLp']=!![];}const _0x4c994f=_0x4d7077[0x0],_0x9525cb=_0x6e1454+_0x4c994f,_0x324496=a0_0x3b98['EXzFsA'][_0x9525cb];return!_0x324496?(_0x3b981b=a0_0x3b98['MzYLWq'](_0x3b981b),a0_0x3b98['EXzFsA'][_0x9525cb]=_0x3b981b):_0x3b981b=_0x324496,_0x3b981b;}(function(_0x45b9f3,_0x37dfef){const _0x4dd4b4=a0_0x3b98,_0x5c9a15=_0x45b9f3();while(!![]){try{const _0x11c18b=-parseInt(_0x4dd4b4(0x186))/0x1*(parseInt(_0x4dd4b4(0x1d1))/0x2)+-parseInt(_0x4dd4b4(0x1ce))/0x3*(parseInt(_0x4dd4b4(0x1c2))/0x4)+-parseInt(_0x4dd4b4(0x1c0))/0x5+parseInt(_0x4dd4b4(0x167))/0x6+-parseInt(_0x4dd4b4(0x1b8))/0x7+parseInt(_0x4dd4b4(0x170))/0x8+-parseInt(_0x4dd4b4(0x1c6))/0x9*(-parseInt(_0x4dd4b4(0x19c))/0xa);if(_0x11c18b===_0x37dfef)break;else _0x5c9a15['push'](_0x5c9a15['shift']());}catch(_0x5e19ad){_0x5c9a15['push'](_0x5c9a15['shift']());}}}(a0_0x4d70,0xefd8b));import{TOOL_STATUS,OPERATION_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BaseTool{constructor(_0x5a705b={},_0x4eff92=null){const _0x1829df=a0_0x3b98;this['id']=this['constructor']['name'][_0x1829df(0x181)]()[_0x1829df(0x18c)]('tool',''),this['config']=_0x5a705b,this[_0x1829df(0x18d)]=_0x4eff92,this[_0x1829df(0x160)]=![],this['isAsync']=![],this['timeout']=_0x5a705b['timeout']||SYSTEM_DEFAULTS['MAX_TOOL_EXECUTION_TIME'],this['maxConcurrentOperations']=_0x5a705b[_0x1829df(0x188)]||0x1,this[_0x1829df(0x1a9)]=new Map(),this[_0x1829df(0x1c8)]=[],this[_0x1829df(0x183)]=_0x5a705b[_0x1829df(0x171)]!==![],this['lastUsed']=null,this[_0x1829df(0x179)]=0x0;}['getDescription'](){const _0x1797b2=a0_0x3b98;throw new Error(_0x1797b2(0x1ba)+this['id']+_0x1797b2(0x19a));}[a0_0x291dff(0x1d2)](_0x38be32){const _0x282ea4=a0_0x291dff;throw new Error('Tool\x20'+this['id']+_0x282ea4(0x182));}async[a0_0x291dff(0x17a)](_0x3c7142,_0x1f559a){throw new Error('Tool\x20'+this['id']+'\x20must\x20implement\x20execute()');}['getCapabilities'](){const _0x3f2c1e=a0_0x291dff;return{'id':this['id'],'async':this['isAsync'],'requiresProject':this['requiresProject'],'timeout':this['timeout'],'maxConcurrentOperations':this[_0x3f2c1e(0x188)],'enabled':this['isEnabled'],'supportedActions':this['getSupportedActions'](),'parameterSchema':this[_0x3f2c1e(0x158)]()};}[a0_0x291dff(0x191)](_0x5beb41){const _0x1e8be0=a0_0x291dff;try{if(!_0x5beb41||typeof _0x5beb41!==_0x1e8be0(0x1cf))return{'valid':![],'error':_0x1e8be0(0x1b0)};const requiredParams=this[_0x1e8be0(0x15a)]();for(const required of requiredParams){if(!(required in _0x5beb41))return{'valid':![],'error':'Missing\x20required\x20parameter:\x20'+required};}const _0x2e2fc6=this[_0x1e8be0(0x15c)](_0x5beb41);if(!_0x2e2fc6['valid'])return _0x2e2fc6;const _0x4b2282=this['customValidateParameters'](_0x5beb41);if(!_0x4b2282['valid'])return _0x4b2282;return{'valid':!![]};}catch(_0x22e3de){return{'valid':![],'error':_0x1e8be0(0x1af)+_0x22e3de[_0x1e8be0(0x1b6)]};}}async[a0_0x291dff(0x1a6)](_0x378691,_0x42572d){const _0x117342=a0_0x291dff,_0x3f8736=this['generateOperationId'](),_0x443fd1=Date[_0x117342(0x1a0)]();if(!this['isEnabled'])throw new Error(_0x117342(0x1ba)+this['id']+_0x117342(0x162));if(this[_0x117342(0x1a9)][_0x117342(0x198)]>=this[_0x117342(0x188)])throw new Error('Tool\x20'+this['id']+_0x117342(0x1a5));const _0x583f0e=this[_0x117342(0x191)](_0x378691);if(!_0x583f0e['valid'])throw new Error('Parameter\x20validation\x20failed:\x20'+_0x583f0e['error']);const _0x5d6534={'id':_0x3f8736,'toolId':this['id'],'status':TOOL_STATUS[_0x117342(0x1ca)],'startTime':new Date()['toISOString'](),'params':_0x378691,'context':this[_0x117342(0x1a7)](_0x42572d)};this[_0x117342(0x1a9)]['set'](_0x3f8736,_0x5d6534);try{this[_0x117342(0x18d)]?.[_0x117342(0x1b4)]('Tool\x20execution\x20started:\x20'+this['id'],{'operationId':_0x3f8736,'toolId':this['id'],'context':_0x5d6534['context']});const _0x3d9c44=await this['executeWithTimeout'](_0x378691,_0x42572d);return _0x5d6534[_0x117342(0x178)]=TOOL_STATUS[_0x117342(0x1d3)],_0x5d6534['result']=_0x3d9c44,_0x5d6534['endTime']=new Date()[_0x117342(0x16d)](),_0x5d6534[_0x117342(0x1bf)]=Date['now']()-_0x443fd1,this[_0x117342(0x15e)]=new Date()['toISOString'](),this['usageCount']++,this[_0x117342(0x18d)]?.['info']('Tool\x20execution\x20completed:\x20'+this['id'],{'operationId':_0x3f8736,'executionTime':_0x5d6534[_0x117342(0x1bf)],'success':!![]}),{'success':!![],'operationId':_0x3f8736,'result':_0x3d9c44,'executionTime':_0x5d6534[_0x117342(0x1bf)],'toolId':this['id']};}catch(_0x9afa14){_0x5d6534['status']=TOOL_STATUS[_0x117342(0x1c9)],_0x5d6534['error']=_0x9afa14['message'],_0x5d6534[_0x117342(0x1bb)]=new Date()[_0x117342(0x16d)](),_0x5d6534[_0x117342(0x1bf)]=Date['now']()-_0x443fd1,this[_0x117342(0x18d)]?.[_0x117342(0x1b2)](_0x117342(0x187)+this['id'],{'operationId':_0x3f8736,'error':_0x9afa14[_0x117342(0x1b6)],'executionTime':_0x5d6534['executionTime']});throw _0x9afa14;}finally{this['operationHistory'][_0x117342(0x18e)]({..._0x5d6534}),this[_0x117342(0x1a9)][_0x117342(0x1ab)](_0x3f8736),this[_0x117342(0x1d0)](),await this[_0x117342(0x1cb)](_0x3f8736);}}async[a0_0x291dff(0x1aa)](_0x1b6cf2){const _0x10fc3e=a0_0x291dff,_0x2d4144=this['activeOperations'][_0x10fc3e(0x1a8)](_0x1b6cf2);if(!_0x2d4144){const _0x375935=this[_0x10fc3e(0x1c8)]['find'](_0x54402f=>_0x54402f['id']===_0x1b6cf2);if(_0x375935)return{'operationId':_0x1b6cf2,'status':_0x375935[_0x10fc3e(0x178)],'result':_0x375935[_0x10fc3e(0x164)],'error':_0x375935['error'],'executionTime':_0x375935[_0x10fc3e(0x1bf)]};return{'operationId':_0x1b6cf2,'status':OPERATION_STATUS[_0x10fc3e(0x18b)],'error':_0x10fc3e(0x1ae)};}return{'operationId':_0x1b6cf2,'status':_0x2d4144['status'],'startTime':_0x2d4144['startTime'],'executionTime':_0x2d4144[_0x10fc3e(0x1bb)]?new Date(_0x2d4144['endTime'])['getTime']()-new Date(_0x2d4144[_0x10fc3e(0x199)])['getTime']():Date['now']()-new Date(_0x2d4144['startTime'])[_0x10fc3e(0x19d)]()};}async[a0_0x291dff(0x1cb)](_0x5b6039){}['getSupportedActions'](){return['execute'];}[a0_0x291dff(0x158)](){const _0x96a42a=a0_0x291dff;return{'type':_0x96a42a(0x1cf),'properties':{},'required':[]};}[a0_0x291dff(0x15a)](){return[];}[a0_0x291dff(0x15c)](_0x2b4994){return{'valid':!![]};}[a0_0x291dff(0x17e)](_0x502d65){return{'valid':!![]};}async['executeWithTimeout'](_0x4e2ad4,_0x587c50){return new Promise(async(_0x401428,_0x12b515)=>{const _0x603a57=a0_0x3b98,_0x3addf5=setTimeout(()=>{const _0x1fa657=a0_0x3b98;_0x12b515(new Error('Tool\x20execution\x20timed\x20out\x20after\x20'+this[_0x1fa657(0x17b)]+'ms'));},this[_0x603a57(0x17b)]);try{const _0x53ed55=await this[_0x603a57(0x17a)](_0x4e2ad4,_0x587c50);clearTimeout(_0x3addf5),_0x401428(_0x53ed55);}catch(_0x34d6c0){clearTimeout(_0x3addf5),_0x12b515(_0x34d6c0);}});}[a0_0x291dff(0x157)](){const _0x5e3b79=a0_0x291dff;return this['id']+'-'+Date[_0x5e3b79(0x1a0)]()+'-'+Math[_0x5e3b79(0x1a4)]()['toString'](0x24)['substr'](0x2,0x9);}[a0_0x291dff(0x1a7)](_0x3b0eeb){const _0x48e729=a0_0x291dff,_0x259f68={..._0x3b0eeb};return delete _0x259f68[_0x48e729(0x168)],delete _0x259f68['secrets'],delete _0x259f68['passwords'],_0x259f68[_0x48e729(0x1a1)]&&_0x259f68[_0x48e729(0x1a1)]['length']>0x1f4&&(_0x259f68[_0x48e729(0x1a1)]=_0x259f68['content']['substring'](0x0,0x1f4)+'...\x20[truncated]'),_0x259f68;}['cleanupHistory'](){const _0xb1b2c9=a0_0x291dff,_0x2dbba9=0x64;this['operationHistory']['length']>_0x2dbba9&&(this[_0xb1b2c9(0x1c8)]=this[_0xb1b2c9(0x1c8)][_0xb1b2c9(0x1c1)](-_0x2dbba9));}['getUsageStats'](){const _0x176dcc=a0_0x291dff;return{'toolId':this['id'],'usageCount':this['usageCount'],'lastUsed':this[_0x176dcc(0x15e)],'activeOperations':this[_0x176dcc(0x1a9)]['size'],'totalOperations':this['operationHistory'][_0x176dcc(0x184)],'averageExecutionTime':this[_0x176dcc(0x1b9)](),'successRate':this['calculateSuccessRate'](),'isEnabled':this['isEnabled']};}['calculateAverageExecutionTime'](){const _0x178f54=a0_0x291dff,_0x29e5e1=this[_0x178f54(0x1c8)]['filter'](_0x27352a=>_0x27352a['status']===TOOL_STATUS[_0x178f54(0x1d3)]&&_0x27352a['executionTime']);if(_0x29e5e1[_0x178f54(0x184)]===0x0)return 0x0;const _0x17becb=_0x29e5e1[_0x178f54(0x177)]((_0xf92d81,_0x46c6dd)=>_0xf92d81+_0x46c6dd[_0x178f54(0x1bf)],0x0);return Math['round'](_0x17becb/_0x29e5e1[_0x178f54(0x184)]);}['calculateSuccessRate'](){const _0x221cc2=a0_0x291dff;if(this['operationHistory']['length']===0x0)return 0x0;const _0xc109e0=this[_0x221cc2(0x1c8)]['filter'](_0x441b9b=>_0x441b9b['status']===TOOL_STATUS['COMPLETED']);return _0xc109e0['length']/this['operationHistory'][_0x221cc2(0x184)]*0x64;}[a0_0x291dff(0x17f)](){const _0xe273a0=a0_0x291dff;this[_0xe273a0(0x183)]=!![],this['logger']?.[_0xe273a0(0x1b4)]('Tool\x20enabled:\x20'+this['id']);}[a0_0x291dff(0x196)](){const _0x1132c9=a0_0x291dff;this['isEnabled']=![],this[_0x1132c9(0x18d)]?.['info']('Tool\x20disabled:\x20'+this['id']);}['resetStats'](){const _0x1ace64=a0_0x291dff;this['usageCount']=0x0,this['lastUsed']=null,this[_0x1ace64(0x1c8)]=[],this[_0x1ace64(0x18d)]?.[_0x1ace64(0x1b4)]('Tool\x20statistics\x20reset:\x20'+this['id']);}}class ToolsRegistry{constructor(_0x3c8271=null){const _0x1840a2=a0_0x291dff;this[_0x1840a2(0x18d)]=_0x3c8271,this['tools']=new Map(),this[_0x1840a2(0x193)]=new Map(),this[_0x1840a2(0x19e)]=new Map(),this[_0x1840a2(0x185)]=new Map();}async[a0_0x291dff(0x195)](_0x24049f){const _0x3e3cb4=a0_0x291dff;try{const _0x3a4533=new _0x24049f();if(!(_0x3a4533 instanceof BaseTool))throw new Error('Tool\x20'+_0x24049f['name']+_0x3e3cb4(0x161));const _0x1a69fd=_0x3a4533[_0x3e3cb4(0x1b5)]();await this[_0x3e3cb4(0x1c4)](_0x3a4533),this[_0x3e3cb4(0x1a3)]['set'](_0x3a4533['id'],_0x3a4533),this['toolDescriptions'][_0x3e3cb4(0x180)](_0x3a4533['id'],_0x3a4533['getDescription']()),this[_0x3e3cb4(0x19e)][_0x3e3cb4(0x180)](_0x3a4533['id'],_0x1a69fd),this['logger']?.['info']('Tool\x20registered:\x20'+_0x3a4533['id'],{'capabilities':_0x1a69fd[_0x3e3cb4(0x1bd)],'async':_0x1a69fd['async'],'requiresProject':_0x1a69fd[_0x3e3cb4(0x160)]});}catch(_0x2c36a0){this[_0x3e3cb4(0x18d)]?.[_0x3e3cb4(0x1b2)]('Tool\x20registration\x20failed:\x20'+_0x2c36a0['message'],{'toolClass':_0x24049f[_0x3e3cb4(0x1c5)]});throw _0x2c36a0;}}async['discoverTools'](_0x43215b){return 0x0;}async[a0_0x291dff(0x1c4)](_0x5ba966){const _0xa9ccea=a0_0x291dff,requiredMethods=[_0xa9ccea(0x175),_0xa9ccea(0x1d2),_0xa9ccea(0x17a)];for(const _0x4f45f1 of requiredMethods){if(typeof _0x5ba966[_0x4f45f1]!=='function')throw new Error(_0xa9ccea(0x1ba)+_0x5ba966['id']+_0xa9ccea(0x1cc)+_0x4f45f1);}try{const _0x18aae3=_0x5ba966['parseParameters'](_0xa9ccea(0x163));if(typeof _0x18aae3!=='object')throw new Error('Tool\x20'+_0x5ba966['id']+'\x20parseParameters\x20must\x20return\x20an\x20object');}catch(_0x45aca5){}const _0x2bd6b4=_0x5ba966[_0xa9ccea(0x1b5)]();if(!_0x2bd6b4||typeof _0x2bd6b4!=='object')throw new Error('Tool\x20'+_0x5ba966['id']+'\x20getCapabilities\x20must\x20return\x20an\x20object');}['getTool'](_0x313fc6){const _0x4ab4cf=a0_0x291dff;return this[_0x4ab4cf(0x1a3)]['get'](_0x313fc6)||null;}[a0_0x291dff(0x159)](){const _0x2c372b=a0_0x291dff,_0x5c1045={};for(const [_0x1d518c,_0x19774a]of this[_0x2c372b(0x1a3)][_0x2c372b(0x15f)]()){_0x19774a[_0x2c372b(0x183)]&&(_0x5c1045[_0x1d518c]={'description':this[_0x2c372b(0x193)][_0x2c372b(0x1a8)](_0x1d518c),'capabilities':this[_0x2c372b(0x19e)][_0x2c372b(0x1a8)](_0x1d518c),'usageStats':_0x19774a['getUsageStats']()});}return _0x5c1045;}async[a0_0x291dff(0x176)](_0x1ca0bf,_0x285463,_0x177001){const _0x10a51e=a0_0x291dff,_0x263a90=this['getTool'](_0x1ca0bf);if(!_0x263a90)throw new Error('Tool\x20not\x20found:\x20'+_0x1ca0bf);if(!_0x263a90['isEnabled'])throw new Error('Tool\x20is\x20disabled:\x20'+_0x1ca0bf);return await _0x263a90[_0x10a51e(0x1a6)](_0x285463,_0x177001);}[a0_0x291dff(0x1cd)](){const _0x4214f7=a0_0x291dff;return Array['from'](this['tools'][_0x4214f7(0x172)]());}['generateToolDescriptionsForPrompt'](_0xc7bda9=[],_0x4dca5a={}){const _0x4a9bd8=a0_0x291dff,{includeExamples:includeExamples=!![],includeUsageGuidelines:includeUsageGuidelines=!![],includeSecurityNotes:includeSecurityNotes=!![],compact:compact=![]}=_0x4dca5a,_0x223f60=_0xc7bda9['length']>0x0?_0xc7bda9['filter'](_0x2a2abd=>this[_0x4a9bd8(0x1a3)]['has'](_0x2a2abd)):Array['from'](this[_0x4a9bd8(0x1a3)][_0x4a9bd8(0x172)]());if(_0x223f60['length']===0x0)return'';let _0x2d1f91='\x0a##\x20AVAILABLE\x20TOOLS\x0a\x0a';_0x2d1f91+='You\x20have\x20access\x20to\x20the\x20following\x20tools\x20to\x20perform\x20operations\x20and\x20tasks:\x0a\x0a';for(const _0x1cc3c2 of _0x223f60){const _0x151d54=this[_0x4a9bd8(0x1a3)][_0x4a9bd8(0x1a8)](_0x1cc3c2);if(!_0x151d54||!_0x151d54['isEnabled'])continue;try{if(compact){const _0x27ca86=_0x151d54[_0x4a9bd8(0x1b5)](),_0x52b9cd=_0x27ca86['supportedActions']||['execute'];_0x2d1f91+='**'+_0x1cc3c2+_0x4a9bd8(0x17c)+_0x52b9cd[_0x4a9bd8(0x17d)](',\x20')+'\x0a';}else _0x2d1f91+='###\x20'+_0x1cc3c2[_0x4a9bd8(0x169)]()+_0x4a9bd8(0x19f),_0x2d1f91+=_0x151d54[_0x4a9bd8(0x175)](),_0x2d1f91+='\x0a\x0a---\x0a\x0a';}catch(_0x5d7055){this['logger']?.[_0x4a9bd8(0x1ac)]('Failed\x20to\x20get\x20description\x20for\x20tool:\x20'+_0x1cc3c2,{'error':_0x5d7055[_0x4a9bd8(0x1b6)]});}}return compact&&(_0x2d1f91+='\x0aUse\x20[tool\x20id=\x22tool-name\x22]<parameters>[/tool]\x20or\x20JSON\x20format\x20to\x20invoke\x20tools.\x0a\x0a'),_0x2d1f91+='##\x20TOOL\x20INVOCATION\x20SYNTAX\x0a\x0a',_0x2d1f91+='**IMPORTANT**:\x20You\x20MUST\x20use\x20one\x20of\x20these\x20exact\x20formats\x20to\x20invoke\x20tools:\x0a\x0a',_0x2d1f91+=_0x4a9bd8(0x16f),_0x2d1f91+='```\x0a',_0x2d1f91+='[tool\x20id=\x22toolname\x22]\x0a',_0x2d1f91+=_0x4a9bd8(0x194),_0x2d1f91+=_0x4a9bd8(0x19b),_0x2d1f91+=_0x4a9bd8(0x1d4),_0x2d1f91+=_0x4a9bd8(0x1c3),_0x2d1f91+='```\x0a',_0x2d1f91+=_0x4a9bd8(0x1c7),_0x2d1f91+='{\x0a',_0x2d1f91+=_0x4a9bd8(0x1d5),_0x2d1f91+=_0x4a9bd8(0x197),_0x2d1f91+='}\x0a',_0x2d1f91+='```\x0a',_0x2d1f91+='```\x0a\x0a',_0x2d1f91+=_0x4a9bd8(0x1b1),_0x2d1f91+=_0x4a9bd8(0x1b3),_0x2d1f91+='###\x20Format\x203:\x20XML\x20Format\x0a',_0x2d1f91+=_0x4a9bd8(0x16e),_0x2d1f91+='<tool-command>\x0a',_0x2d1f91+='\x20\x20<tool\x20id=\x22toolname\x22>\x0a',_0x2d1f91+='\x20\x20\x20\x20<parameter>value</parameter>\x0a',_0x2d1f91+='\x20\x20</tool>\x0a',_0x2d1f91+=_0x4a9bd8(0x1b7),_0x2d1f91+='```\x0a\x0a',_0x2d1f91+=_0x4a9bd8(0x1a2),_0x2d1f91;}[a0_0x291dff(0x16a)](_0x2a292e,_0xa0e50=[],_0xf2339c={}){const _0x2cab6f=a0_0x291dff,_0x2a0197=this[_0x2cab6f(0x1ad)](_0xa0e50,_0xf2339c);if(!_0x2a0197[_0x2cab6f(0x1bc)]())return _0x2a292e||'';const _0x1fa9b9=_0x2a292e||'';if(_0x1fa9b9[_0x2cab6f(0x165)](_0x2cab6f(0x18f)))return _0x1fa9b9['replace'](/## AVAILABLE TOOLS[\s\S]*?(?=##|$)/,_0x2a0197+'\x0a');const _0x21dd9c=_0x2cab6f(0x1be);return _0x1fa9b9+(_0x1fa9b9[_0x2cab6f(0x16c)]('\x0a')?'':'\x0a')+_0x2a0197+_0x21dd9c+'\x0a';}['getAvailableToolsForUI'](){const _0x464135=a0_0x291dff,_0x4c24d3=[];for(const [_0x330e12,_0x33812d]of this[_0x464135(0x1a3)][_0x464135(0x15f)]()){const _0x2cf474=_0x33812d[_0x464135(0x1b5)](),_0x12c718=_0x33812d[_0x464135(0x175)](),_0x15aaa4=_0x12c718[_0x464135(0x15b)]('\x0a')[_0x464135(0x192)](_0x27b817=>_0x27b817['trim']()['length']>0x0)||'',_0x5b39c6=_0x15aaa4[_0x464135(0x18c)](/^.*Tool:\s*/i,'')['replace'](/\s*-.*$/,'')[_0x464135(0x1bc)]();_0x4c24d3[_0x464135(0x18e)]({'id':_0x330e12,'name':_0x5b39c6||_0x330e12['charAt'](0x0)['toUpperCase']()+_0x330e12[_0x464135(0x1c1)](0x1),'description':_0x15aaa4,'category':this['_getToolCategory'](_0x330e12),'enabled':_0x2cf474[_0x464135(0x171)],'async':_0x2cf474['async'],'requiresProject':_0x2cf474['requiresProject'],'className':_0x33812d[_0x464135(0x18a)]['name']});}return _0x4c24d3['sort']((_0x20e3e9,_0x296577)=>_0x20e3e9[_0x464135(0x1c5)][_0x464135(0x174)](_0x296577[_0x464135(0x1c5)]));}['_getToolCategory'](_0x13a8c5){const _0x546d21=a0_0x291dff,_0x508b7e={'terminal':_0x546d21(0x15d),'filesystem':_0x546d21(0x190),'browser':_0x546d21(0x173),'agentdelay':_0x546d21(0x16b)};return _0x508b7e[_0x13a8c5]||'Other';}[a0_0x291dff(0x189)](){const _0xd69c6e=a0_0x291dff,_0x41905b=Array['from'](this['tools']['values']())['filter'](_0x30dd18=>_0x30dd18[_0xd69c6e(0x183)]),_0x44daa4=Array['from'](this['tools'][_0xd69c6e(0x166)]())[_0xd69c6e(0x177)]((_0x6964ac,_0x562331)=>_0x6964ac+_0x562331[_0xd69c6e(0x179)],0x0);return{'totalTools':this['tools']['size'],'enabledTools':_0x41905b['length'],'totalOperations':_0x44daa4,'activeOperations':this['asyncOperations']['size']};}}export{BaseTool,ToolsRegistry};function a0_0x4d70(){const _0x822d8c=['iYmJiezVCM1HDcaXoIbcCMfJA2v0ie5VDgf0Aw9UcG','mtqYmZa4mdHrBfngAxG','zw5HyMXLza','A2v5CW','qxv0B21HDgLVBG','Bg9JywXLq29TCgfYzq','z2v0rgvZy3jPChrPB24','zxHLy3v0zvrVB2Xtzwn1CMvSEq','CMvKDwnL','C3rHDhvZ','DxnHz2vdB3vUDa','zxHLy3v0zq','DgLTzw91Da','kIO6ia','AM9PBG','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','zw5HyMXL','C2v0','Dg9mB3DLCKnHC2u','ig11C3qGAw1WBgvTzw50ihbHCNnLugfYyw1LDgvYCYGP','AxnfBMfIBgvK','BgvUz3rO','yxn5BMnpCgvYyxrPB25Z','mu9fuhHKtq','vg9VBcbLEgvJDxrPB24GzMfPBgvKoIa','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','z2v0uMvNAxn0CNLtDgf0CW','y29UC3rYDwn0B3i','tK9ux0zpvu5e','CMvWBgfJzq','Bg9Nz2vY','ChvZAa','iYmGqvzbsuXbqKXfifrpt0Xt','rMLSzsbpCgvYyxrPB25Z','DMfSAwrHDgvqyxjHBwv0zxjZ','zMLUza','Dg9VBerLC2nYAxb0Aw9UCW','phbHCMfTzxrLCNmGAgvYzt4k','CMvNAxn0zxjuB29S','zgLZywjSzq','icaICgfYyw1LDgvYCYi6ihSGlI4Uih0GB3iGiMfJDgLVBNmIoIbBic4UlIbDcG','C2L6zq','C3rHCNruAw1L','ig11C3qGAw1WBgvTzw50igDLDerLC2nYAxb0Aw9UkcK','wY90B29SxqO','ndq0mtb0tvzNCfG','z2v0vgLTzq','Dg9VBenHCgfIAwXPDgLLCW','ifrpt0WkcG','BM93','y29UDgvUDa','qwz0zxiGAw52B2TPBMCGysb0B29SlcbxquLuigzVCIb0AguGywn0DwfSihjLC3bVBNnLlIbeBYbot1qGz2vUzxjHDguGAw1Hz2LUyxj5ihjLC3bVBNnLCY4k','Dg9VBhm','CMfUzg9T','igHHCYbYzwfJAgvKig1HEgLTDw0Gy29Uy3vYCMvUDcbVCgvYyxrPB25ZigXPBwL0','zxHLy3v0zvDPDgHmAwzLy3LJBgu','C2fUAxrPEMvdB250zxH0','z2v0','ywn0AxzLt3bLCMf0Aw9UCW','z2v0u3rHDhvZ','zgvSzxrL','D2fYBG','z2vUzxjHDgvuB29SrgvZy3jPChrPB25ZrM9YuhjVBxb0','t3bLCMf0Aw9Uig5VDcbMB3vUza','ugfYyw1LDgvYihzHBgLKyxrPB24GzMfPBgvKoIa','ugfYyw1LDgvYCYbTDxn0igjLigfUig9IAMvJDa','kIPxqvjosu5hkIO6ifbSywLUiePtt04GD2L0Ag91DcbTyxjRzg93BIbJB2rLigjSB2nRCYaOygbGANnVBIKGD2LSBcbot1qGyMuGzxHLy3v0zwqHcG','zxjYB3i','qwX3yxLZihDYyxaGsLnptIb0B29SignVBw1HBMrZigLUigbGygPZB24GlI4UigbGycbIBg9JA3mUcGO','Aw5MBW','z2v0q2fWywjPBgL0AwvZ','BwvZC2fNzq','pc90B29SlwnVBw1HBMq+cG','oduXmJuYnvrgvw9SAG','y2fSy3vSyxrLqxzLCMfNzuv4zwn1DgLVBLrPBwu','vg9VBca','zw5KvgLTzq','DhjPBq','C3vWCg9YDgvKqwn0Aw9UCW','su1qt1juqu5uoIb3AgvUigfZA2vKihrVihbLCMzVCM0Gyw4Gywn0Aw9Uig9Yig9WzxjHDgLVBIWGDxnLigvHy2GGCMvZCg9UC2uGDg8GAw52B2TLigeGDg9VBcbPzIbUzwvKzwqSigfUzcb1CgrHDguGDgHLihvZzxiGB24GDgHLihbYB2DYzxnZicHZyw1Lig1LC3nHz2uPlG','zxHLy3v0Aw9UvgLTzq','nZy2ndG2nu56r3r2Aa','C2XPy2u','mtu2v2TTDw1u','iYmJiezVCM1HDcaYoIbku09oigLUie1HCMTKB3DUienVzguGqMXVy2SGkfjfuvvjuKveigzVCIbku09okqO','DMfSAwrHDgvuB29S','BMfTzq','nZeWmxfxy3r5rW','ygbGANnVBGO','B3bLCMf0Aw9UsgLZDg9YEq','rKfjteve','rvHfq1vusu5h','y2XLyw51Ca','ig1PC3nPBMCGCMvXDwLYzwqGBwv0Ag9KoIa','BgLZDfrVB2XZ','mtiYndq4qxLnzvr5','B2jQzwn0','y2XLyw51CeHPC3rVCNK','mZeWodGYnKLmzwzxEG','CgfYC2vqyxjHBwv0zxjZ','q09nueXfveve','ygbGcGO','icaIDg9VBeLKiJOGiNrVB2XUyw1LiIWk','z2vUzxjHDgvpCgvYyxrPB25jza','z2v0ugfYyw1LDgvYu2nOzw1H','z2v0vg9VBenHCgfIAwXPDgLLCW','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','C3bSAxq','DMfSAwrHDgvqyxjHBwv0zxjuExbLCW','u3LZDgvT','BgfZDfvZzwq','zw50CMLLCW','CMvXDwLYzxnqCM9Qzwn0','ig11C3qGzxH0zw5KiejHC2vuB29S','igLZigrPC2fIBgvK','DgvZDcbJB250zw50','CMvZDwX0','Aw5JBhvKzxm','DMfSDwvZ','otu2otm3nLLmA3PmEa','yxbPs2v5CW','Dg9vChbLCKnHC2u','zw5Oyw5Jzvn5C3rLBvbYB21WDa','vxrPBgL0Eq','zw5KC1DPDgG','Dg9ju09tDhjPBMC','ygbGEg1ScG'];a0_0x4d70=function(){return _0x822d8c;};return a0_0x4d70();}
@@ -1 +1 @@
1
- const a0_0x5878b1=a0_0x35e5;(function(_0x46f06a,_0x277cb5){const _0x142d89=a0_0x35e5,_0x429d52=_0x46f06a();while(!![]){try{const _0x5184ed=-parseInt(_0x142d89(0x153))/0x1*(parseInt(_0x142d89(0x12e))/0x2)+parseInt(_0x142d89(0x129))/0x3+parseInt(_0x142d89(0x14e))/0x4+parseInt(_0x142d89(0x14a))/0x5*(-parseInt(_0x142d89(0x19b))/0x6)+parseInt(_0x142d89(0x169))/0x7+-parseInt(_0x142d89(0x172))/0x8*(-parseInt(_0x142d89(0x15c))/0x9)+-parseInt(_0x142d89(0x12a))/0xa;if(_0x5184ed===_0x277cb5)break;else _0x429d52['push'](_0x429d52['shift']());}catch(_0x50c151){_0x429d52['push'](_0x429d52['shift']());}}}(a0_0x18a5,0x52211));import{BaseTool}from'./baseTool.js';import a0_0x2fe399 from'../utilities/tagParser.js';import a0_0x547235 from'puppeteer';import a0_0xf30c49 from'fs/promises';function a0_0x35e5(_0x196db7,_0xbe2e60){_0x196db7=_0x196db7-0x122;const _0x18a50b=a0_0x18a5();let _0x35e5b7=_0x18a50b[_0x196db7];if(a0_0x35e5['YfeOsY']===undefined){var _0x2f21f7=function(_0x2af128){const _0x58f1bf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2fe399='',_0x547235='';for(let _0xf30c49=0x0,_0x136b21,_0x7f6c1e,_0x25495b=0x0;_0x7f6c1e=_0x2af128['charAt'](_0x25495b++);~_0x7f6c1e&&(_0x136b21=_0xf30c49%0x4?_0x136b21*0x40+_0x7f6c1e:_0x7f6c1e,_0xf30c49++%0x4)?_0x2fe399+=String['fromCharCode'](0xff&_0x136b21>>(-0x2*_0xf30c49&0x6)):0x0){_0x7f6c1e=_0x58f1bf['indexOf'](_0x7f6c1e);}for(let _0x4fbb5b=0x0,_0xcdc573=_0x2fe399['length'];_0x4fbb5b<_0xcdc573;_0x4fbb5b++){_0x547235+='%'+('00'+_0x2fe399['charCodeAt'](_0x4fbb5b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x547235);};a0_0x35e5['voEZKR']=_0x2f21f7,a0_0x35e5['YhAVkk']={},a0_0x35e5['YfeOsY']=!![];}const _0x5caecb=_0x18a50b[0x0],_0x5ca3a1=_0x196db7+_0x5caecb,_0x43c550=a0_0x35e5['YhAVkk'][_0x5ca3a1];return!_0x43c550?(_0x35e5b7=a0_0x35e5['voEZKR'](_0x35e5b7),a0_0x35e5['YhAVkk'][_0x5ca3a1]=_0x35e5b7):_0x35e5b7=_0x43c550,_0x35e5b7;}import a0_0x136b21 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BrowserTool extends BaseTool{constructor(_0x7f6c1e={},_0x25495b=null){const _0x1c7887=a0_0x35e5;super(_0x7f6c1e,_0x25495b),this['requiresProject']=![],this['isAsync']=!![],this['timeout']=_0x7f6c1e[_0x1c7887(0x124)]||0xea60,this['maxConcurrentOperations']=_0x7f6c1e['maxConcurrentOperations']||0x2,this[_0x1c7887(0x1a2)]={'headless':_0x7f6c1e['headless']!==![],'viewport':_0x7f6c1e['viewport']||{'width':0x500,'height':0x2d0},'userAgent':_0x7f6c1e[_0x1c7887(0x18d)]||_0x1c7887(0x150),'timeout':_0x7f6c1e[_0x1c7887(0x19a)]||0x7530},this['browserInstances']=new Map(),this[_0x1c7887(0x16d)]=_0x7f6c1e['allowedDomains']||null,this['blockedDomains']=_0x7f6c1e['blockedDomains']||[],this['maxScreenshotSize']=_0x7f6c1e['maxScreenshotSize']||0x5*0x400*0x400,this['operationHistory']=[];}[a0_0x5878b1(0x165)](){const _0x59b66e=a0_0x5878b1;return'\x0aBrowser\x20Tool:\x20Automate\x20web\x20browser\x20interactions,\x20navigation,\x20and\x20data\x20extraction.\x0a\x0aIMPORTANT\x20-\x20SYNTAX:\x20Use\x20self-closing\x20tags\x20with\x20angle\x20brackets\x20<\x20>,\x20not\x20square\x20brackets\x20[\x20].\x0a\x0aXML\x20USAGE\x20(Recommended):\x0a<browser>\x0a\x20\x20<navigate\x20url=\x22https://example.com\x22\x20/>\x0a\x20\x20<wait\x20wait-time=\x222000\x22\x20/>\x0a\x20\x20<click\x20selector=\x22button.submit\x22\x20/>\x0a\x20\x20<screenshot\x20output-path=\x22screenshot.png\x22\x20/>\x0a</browser>\x0a\x0aJSON\x20USAGE\x20(Alternative):\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22browser\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x20\x22type\x22:\x20\x22navigate\x22,\x20\x22url\x22:\x20\x22https://example.com\x22\x20},\x0a\x20\x20\x20\x20{\x20\x22type\x22:\x20\x22wait\x22,\x20\x22waitTime\x22:\x202000\x20},\x0a\x20\x20\x20\x20{\x20\x22type\x22:\x20\x22click\x22,\x20\x22selector\x22:\x20\x22button.submit\x22\x20},\x0a\x20\x20\x20\x20{\x20\x22type\x22:\x20\x22screenshot\x22,\x20\x22outputPath\x22:\x20\x22screenshot.png\x22\x20}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aSUPPORTED\x20ACTIONS:\x0a-\x20navigate:\x20Navigate\x20to\x20a\x20URL\x20(requires:\x20url)\x0a-\x20click:\x20Click\x20on\x20an\x20element\x20(requires:\x20selector)\x0a-\x20type:\x20Type\x20text\x20into\x20an\x20input\x20field\x20(requires:\x20selector,\x20text)\x0a-\x20wait:\x20Wait\x20for\x20element\x20or\x20time\x20(requires:\x20wait-time\x20OR\x20wait-selector)\x0a-\x20screenshot:\x20Take\x20screenshot\x20of\x20page\x20(requires:\x20output-path)\x0a-\x20extract:\x20Extract\x20text/data\x20from\x20elements\x20(requires:\x20selector,\x20attribute)\x0a-\x20scroll:\x20Scroll\x20page\x20or\x20element\x20(requires:\x20direction)\x0a-\x20close:\x20Close\x20browser\x20instance\x20(no\x20parameters)\x0a\x0aPARAMETER\x20REFERENCE:\x0a-\x20url:\x20Target\x20URL\x20for\x20navigation\x0a-\x20selector:\x20CSS\x20selector\x20for\x20element\x20targeting\x20(e.g.,\x20\x22#id\x22,\x20\x22.class\x22,\x20\x22button[type=\x27submit\x27]\x22)\x0a-\x20text:\x20Text\x20content\x20to\x20type\x0a-\x20output-path:\x20File\x20path\x20for\x20screenshots\x20(kebab-case\x20in\x20XML,\x20outputPath\x20in\x20JSON)\x0a-\x20wait-time:\x20Time\x20to\x20wait\x20in\x20milliseconds\x20(100-30000,\x20kebab-case\x20in\x20XML,\x20waitTime\x20in\x20JSON)\x0a-\x20wait-selector:\x20Element\x20selector\x20to\x20wait\x20for\x20(kebab-case\x20in\x20XML,\x20waitSelector\x20in\x20JSON)\x0a-\x20wait-type:\x20Wait\x20type\x20-\x20\x22visible\x22\x20or\x20\x22hidden\x22\x20(default:\x20\x22visible\x22)\x0a-\x20attribute:\x20HTML\x20attribute\x20to\x20extract\x20(default:\x20\x22text\x22)\x0a-\x20direction:\x20Scroll\x20direction\x20-\x20\x22up\x22,\x20\x22down\x22,\x20\x22left\x22,\x20\x22right\x22\x0a-\x20pixels:\x20Scroll\x20distance\x20in\x20pixels\x20(default:\x20300)\x0a-\x20full-page:\x20Take\x20full\x20page\x20screenshot\x20-\x20\x22true\x22\x20or\x20\x22false\x22\x0a\x0aEXAMPLES:\x0a\x0aExample\x201\x20-\x20Research\x20and\x20screenshot:\x0a<browser>\x0a\x20\x20<navigate\x20url=\x22https://github.com/trending\x22\x20/>\x0a\x20\x20<wait\x20wait-time=\x222000\x22\x20/>\x0a\x20\x20<screenshot\x20output-path=\x22trending.png\x22\x20/>\x0a\x20\x20<extract\x20selector=\x22h2.h3\x22\x20attribute=\x22text\x22\x20/>\x0a\x20\x20<close\x20/>\x0a</browser>\x0a\x0aExample\x202\x20-\x20Form\x20automation:\x0a<browser>\x0a\x20\x20<navigate\x20url=\x22https://example.com/login\x22\x20/>\x0a\x20\x20<wait\x20wait-selector=\x22input#username\x22\x20/>\x0a\x20\x20<type\x20selector=\x22input#username\x22\x20text=\x22myuser\x22\x20/>\x0a\x20\x20<type\x20selector=\x22input#password\x22\x20text=\x22mypass\x22\x20/>\x0a\x20\x20<click\x20selector=\x22button[type=\x27submit\x27]\x22\x20/>\x0a\x20\x20<wait\x20wait-selector=\x22.success-message\x22\x20/>\x0a\x20\x20<close\x20/>\x0a</browser>\x0a\x0aExample\x203\x20-\x20Data\x20extraction:\x0a<browser>\x0a\x20\x20<navigate\x20url=\x22https://example.com/products\x22\x20/>\x0a\x20\x20<wait\x20wait-time=\x221000\x22\x20/>\x0a\x20\x20<extract\x20selector=\x22h1.product-title\x22\x20attribute=\x22text\x22\x20/>\x0a\x20\x20<extract\x20selector=\x22span.price\x22\x20attribute=\x22text\x22\x20/>\x0a\x20\x20<extract\x20selector=\x22img.product\x22\x20attribute=\x22src\x22\x20/>\x0a\x20\x20<close\x20/>\x0a</browser>\x0a\x0aExample\x204\x20-\x20Scrolling\x20and\x20waiting:\x0a<browser>\x0a\x20\x20<navigate\x20url=\x22https://example.com/long-page\x22\x20/>\x0a\x20\x20<scroll\x20direction=\x22down\x22\x20pixels=\x22500\x22\x20/>\x0a\x20\x20<wait\x20wait-time=\x221000\x22\x20/>\x0a\x20\x20<scroll\x20direction=\x22down\x22\x20pixels=\x22500\x22\x20/>\x0a\x20\x20<screenshot\x20output-path=\x22scrolled.png\x22\x20full-page=\x22true\x22\x20/>\x0a\x20\x20<close\x20/>\x0a</browser>\x0a\x0aSYNTAX\x20RULES:\x0a✅\x20DO:\x20<navigate\x20url=\x22...\x22\x20/>\x20\x20(self-closing\x20with\x20/>)\x0a✅\x20DO:\x20<navigate\x20url=\x22...\x22>\x20\x20\x20\x20\x20(can\x20omit\x20/>\x20if\x20preferred)\x0a❌\x20DON\x27T:\x20<navigate\x20url=\x22...\x22></navigate>\x20\x20(no\x20closing\x20tag\x20needed)\x0a❌\x20DON\x27T:\x20[navigate\x20url=\x22...\x22\x20/]\x20\x20(square\x20brackets\x20not\x20supported)\x0a\x0aATTRIBUTE\x20NAMING:\x0a-\x20XML\x20uses\x20kebab-case:\x20wait-time,\x20output-path,\x20wait-selector\x0a-\x20JSON\x20uses\x20camelCase:\x20waitTime,\x20outputPath,\x20waitSelector\x0a-\x20Parser\x20auto-converts\x20kebab-case\x20to\x20camelCase\x20internally\x0a\x0aSECURITY:\x0a-\x20Restricted\x20to\x20allowed\x20domains\x20(if\x20configured)\x0a-\x20Blocked\x20domains\x20enforced\x20for\x20security\x0a-\x20Screenshot\x20size\x20limits\x20enforced\x20(max\x205MB)\x0a-\x20Automatic\x20cleanup\x20of\x20browser\x20instances\x20after\x2010\x20minutes\x0a-\x20Sandboxed\x20browser\x20execution\x0a\x0aBROWSER\x20SESSION:\x0aThe\x20tool\x20maintains\x20browser\x20instances\x20per\x20agent\x20context.\x0aUse\x20<close\x20/>\x20action\x20to\x20explicitly\x20cleanup,\x20or\x20instances\x20auto-cleanup\x20after\x20timeout.\x0a\x0aVIEWPORT:\x20'+this['browserConfig'][_0x59b66e(0x171)][_0x59b66e(0x185)]+'x'+this['browserConfig'][_0x59b66e(0x171)]['height']+_0x59b66e(0x122)+this['browserConfig'][_0x59b66e(0x124)]+_0x59b66e(0x179);}[a0_0x5878b1(0x191)](_0x4fbb5b){const _0x5a4115=a0_0x5878b1;try{if(_0x4fbb5b[_0x5a4115(0x13a)]()['startsWith']('{')){const _0x36678c=JSON[_0x5a4115(0x13d)](_0x4fbb5b);return!_0x36678c['actions']&&(_0x36678c['actions']=[]),!Array['isArray'](_0x36678c[_0x5a4115(0x137)])&&(_0x36678c[_0x5a4115(0x137)]=[_0x36678c['actions']]),_0x36678c;}const _0xcdc573={},_0x16c3dd=[],_0x9ce406=['navigate',_0x5a4115(0x170),_0x5a4115(0x162),_0x5a4115(0x131),_0x5a4115(0x139),'extract',_0x5a4115(0x12f),'close'];for(const _0x5706be of _0x9ce406){const _0x2e03c6=new RegExp('<'+_0x5706be+_0x5a4115(0x190),'gi');let _0x4036f1;while((_0x4036f1=_0x2e03c6['exec'](_0x4fbb5b))!==null){const _0x413529=_0x4036f1[0x1],_0x56aab6=this['parseAttributes'](_0x413529),_0x454bdb={'type':_0x5706be,..._0x56aab6};_0x454bdb['output-path']&&(_0x454bdb[_0x5a4115(0x133)]=_0x454bdb['output-path'],delete _0x454bdb[_0x5a4115(0x1a3)]),_0x454bdb[_0x5a4115(0x16c)]&&(_0x454bdb['waitTime']=parseInt(_0x454bdb[_0x5a4115(0x16c)],0xa),delete _0x454bdb['wait-time']),_0x454bdb[_0x5a4115(0x135)]&&(_0x454bdb['waitSelector']=_0x454bdb[_0x5a4115(0x135)],delete _0x454bdb[_0x5a4115(0x135)]),_0x454bdb[_0x5a4115(0x149)]&&(_0x454bdb['waitType']=_0x454bdb['wait-type'],delete _0x454bdb['wait-type']),_0x454bdb['full-page']&&(_0x454bdb[_0x5a4115(0x17c)]=_0x454bdb['full-page']==='true',delete _0x454bdb[_0x5a4115(0x19f)]),_0x16c3dd['push'](_0x454bdb);}}return _0xcdc573['actions']=Array['isArray'](_0x16c3dd)?_0x16c3dd:[],_0xcdc573['rawContent']=_0x4fbb5b[_0x5a4115(0x13a)](),_0xcdc573;}catch(_0x36716a){return this[_0x5a4115(0x176)]?.[_0x5a4115(0x18a)](_0x5a4115(0x17d),{'error':_0x36716a['message']}),{'actions':[],'rawContent':_0x4fbb5b['trim'](),'parseError':_0x36716a[_0x5a4115(0x18f)]};}}['parseAttributes'](_0x24cc05){const _0x2c7a54=a0_0x5878b1,_0x374f4b={};if(!_0x24cc05)return _0x374f4b;const _0x492e97=/([\w-]+)\s*=\s*["']([^"']*)["']/g;let _0x5856ba;while((_0x5856ba=_0x492e97[_0x2c7a54(0x14d)](_0x24cc05))!==null){const _0x254da5=_0x5856ba[0x1],_0x438a47=_0x5856ba[0x2];_0x374f4b[_0x254da5]=_0x438a47;}return _0x374f4b;}['getRequiredParameters'](){return['actions'];}[a0_0x5878b1(0x19c)](_0x86f9ed){const _0x6676d4=a0_0x5878b1,_0xd56660=[];if(!_0x86f9ed[_0x6676d4(0x137)]||!Array['isArray'](_0x86f9ed[_0x6676d4(0x137)])||_0x86f9ed['actions']['length']===0x0)_0xd56660['push'](_0x6676d4(0x177));else for(const [_0xb5668d,_0x4ce56e]of _0x86f9ed[_0x6676d4(0x137)]['entries']()){if(!_0x4ce56e[_0x6676d4(0x162)]){_0xd56660['push'](_0x6676d4(0x146)+(_0xb5668d+0x1)+_0x6676d4(0x134));continue;}switch(_0x4ce56e['type']){case _0x6676d4(0x159):if(!_0x4ce56e['url'])_0xd56660['push'](_0x6676d4(0x146)+(_0xb5668d+0x1)+':\x20url\x20is\x20required\x20for\x20navigate');else!this[_0x6676d4(0x158)](_0x4ce56e['url'])&&_0xd56660['push'](_0x6676d4(0x146)+(_0xb5668d+0x1)+_0x6676d4(0x184)+_0x4ce56e[_0x6676d4(0x142)]);break;case'click':case'extract':!_0x4ce56e['selector']&&_0xd56660[_0x6676d4(0x14b)](_0x6676d4(0x146)+(_0xb5668d+0x1)+':\x20selector\x20is\x20required\x20for\x20'+_0x4ce56e[_0x6676d4(0x162)]);break;case'type':!_0x4ce56e[_0x6676d4(0x130)]&&_0xd56660['push']('Action\x20'+(_0xb5668d+0x1)+_0x6676d4(0x1a1));!_0x4ce56e['text']&&_0x4ce56e[_0x6676d4(0x123)]!==''&&_0xd56660[_0x6676d4(0x14b)]('Action\x20'+(_0xb5668d+0x1)+_0x6676d4(0x195));break;case _0x6676d4(0x131):!_0x4ce56e[_0x6676d4(0x136)]&&!_0x4ce56e['waitSelector']&&_0xd56660['push']('Action\x20'+(_0xb5668d+0x1)+':\x20either\x20wait-time\x20or\x20wait-selector\x20is\x20required');_0x4ce56e['waitTime']&&(_0x4ce56e['waitTime']<0x64||_0x4ce56e[_0x6676d4(0x136)]>0x7530)&&_0xd56660['push'](_0x6676d4(0x146)+(_0xb5668d+0x1)+_0x6676d4(0x174));break;case'screenshot':!_0x4ce56e['outputPath']&&_0xd56660['push'](_0x6676d4(0x146)+(_0xb5668d+0x1)+_0x6676d4(0x17a));break;case'scroll':if(!_0x4ce56e['direction'])_0xd56660[_0x6676d4(0x14b)]('Action\x20'+(_0xb5668d+0x1)+':\x20direction\x20is\x20required\x20for\x20scroll');else!['up','down','left',_0x6676d4(0x1a0)]['includes'](_0x4ce56e[_0x6676d4(0x198)])&&_0xd56660['push']('Action\x20'+(_0xb5668d+0x1)+':\x20invalid\x20scroll\x20direction:\x20'+_0x4ce56e[_0x6676d4(0x198)]);break;case _0x6676d4(0x15b):break;default:_0xd56660[_0x6676d4(0x14b)](_0x6676d4(0x146)+(_0xb5668d+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x4ce56e['type']);}}return{'valid':_0xd56660[_0x6676d4(0x182)]===0x0,'errors':_0xd56660};}async['execute'](_0x48022a,_0x2822a8){const _0x412933=a0_0x5878b1,{actions:_0x2d134b}=_0x48022a,{agentId:_0x9e8187,projectDir:_0x451599}=_0x2822a8,_0x478ac1=_0x9e8187+'-'+(_0x451599||'default'),_0xfef5d1=[];for(const _0x4daf35 of _0x2d134b){try{let _0x2427a5;switch(_0x4daf35[_0x412933(0x162)]){case _0x412933(0x159):_0x2427a5=await this['navigate'](_0x4daf35['url'],_0x478ac1);break;case'click':_0x2427a5=await this['click'](_0x4daf35[_0x412933(0x130)],_0x478ac1);break;case _0x412933(0x162):_0x2427a5=await this['type'](_0x4daf35[_0x412933(0x130)],_0x4daf35['text'],_0x478ac1);break;case'wait':_0x2427a5=await this[_0x412933(0x131)](_0x4daf35,_0x478ac1);break;case'screenshot':_0x2427a5=await this[_0x412933(0x139)](_0x4daf35[_0x412933(0x133)],_0x451599,_0x478ac1,_0x4daf35);break;case'extract':_0x2427a5=await this['extract'](_0x4daf35[_0x412933(0x130)],_0x4daf35[_0x412933(0x14c)]||'text',_0x478ac1);break;case _0x412933(0x12f):_0x2427a5=await this['scroll'](_0x4daf35,_0x478ac1);break;case'close':_0x2427a5=await this[_0x412933(0x138)](_0x478ac1);break;default:throw new Error(_0x412933(0x141)+_0x4daf35['type']);}_0xfef5d1[_0x412933(0x14b)](_0x2427a5),this['addToHistory'](_0x4daf35,_0x2427a5,_0x9e8187);}catch(_0x555d41){const _0x16eb12={'success':![],'action':_0x4daf35[_0x412933(0x162)],'error':_0x555d41[_0x412933(0x18f)],'selector':_0x4daf35['selector']||_0x4daf35['url']};_0xfef5d1['push'](_0x16eb12),this['addToHistory'](_0x4daf35,_0x16eb12,_0x9e8187);}}return{'success':!![],'actions':_0xfef5d1,'executedActions':_0x2d134b[_0x412933(0x182)],'toolUsed':'browser'};}async[a0_0x5878b1(0x159)](_0x108636,_0x20cb78){const _0x12e20c=a0_0x5878b1,_0x5cd680=await this['getBrowser'](_0x20cb78),_0x32aeaf=await this['getPage'](_0x20cb78),_0x2da0e0=Date['now']();try{await _0x32aeaf['goto'](_0x108636,{'waitUntil':_0x12e20c(0x164),'timeout':this['browserConfig'][_0x12e20c(0x124)]});const _0x2fe0e8=await _0x32aeaf[_0x12e20c(0x143)](),_0x84893b=_0x32aeaf[_0x12e20c(0x142)]();return{'success':!![],'action':'navigate','url':_0x84893b,'originalUrl':_0x108636,'title':_0x2fe0e8,'loadTime':Date[_0x12e20c(0x199)]()-_0x2da0e0,'message':_0x12e20c(0x187)+_0x108636};}catch(_0x1a66bb){throw new Error('Navigation\x20failed:\x20'+_0x1a66bb[_0x12e20c(0x18f)]);}}async[a0_0x5878b1(0x170)](_0x2472b5,_0x3f1249){const _0x93f330=a0_0x5878b1,_0x4e02be=await this[_0x93f330(0x186)](_0x3f1249);try{return await _0x4e02be[_0x93f330(0x16f)](_0x2472b5,{'timeout':0x1388}),await _0x4e02be[_0x93f330(0x170)](_0x2472b5),{'success':!![],'action':'click','selector':_0x2472b5,'message':_0x93f330(0x193)+_0x2472b5};}catch(_0x559fe1){throw new Error(_0x93f330(0x18b)+_0x2472b5+':\x20'+_0x559fe1[_0x93f330(0x18f)]);}}async['type'](_0x5632d7,_0x33f965,_0x33b6e4){const _0x480939=a0_0x5878b1,_0x581295=await this['getPage'](_0x33b6e4);try{return await _0x581295[_0x480939(0x16f)](_0x5632d7,{'timeout':0x1388}),await _0x581295[_0x480939(0x19e)](_0x5632d7),await _0x581295[_0x480939(0x145)]['selectAll'](),await _0x581295[_0x480939(0x162)](_0x5632d7,_0x33f965),{'success':!![],'action':'type','selector':_0x5632d7,'text':_0x33f965,'textLength':_0x33f965['length'],'message':'Typed\x20'+_0x33f965['length']+_0x480939(0x152)+_0x5632d7};}catch(_0x21ff93){throw new Error(_0x480939(0x197)+_0x5632d7+':\x20'+_0x21ff93[_0x480939(0x18f)]);}}async['wait'](_0x39ed49,_0x5ccbc4){const _0x1594cd=a0_0x5878b1,_0x8c991b=await this[_0x1594cd(0x186)](_0x5ccbc4);try{if(_0x39ed49[_0x1594cd(0x136)])return await _0x8c991b[_0x1594cd(0x183)](_0x39ed49[_0x1594cd(0x136)]),{'success':!![],'action':_0x1594cd(0x131),'waitTime':_0x39ed49[_0x1594cd(0x136)],'message':_0x1594cd(0x13c)+_0x39ed49['waitTime']+'ms'};if(_0x39ed49['waitSelector']){const _0x3ee0cd=_0x39ed49[_0x1594cd(0x166)]||_0x1594cd(0x19d),_0xa5d5a0={'timeout':0x2710};return _0x3ee0cd===_0x1594cd(0x161)?await _0x8c991b[_0x1594cd(0x16f)](_0x39ed49['waitSelector'],{..._0xa5d5a0,'hidden':!![]}):await _0x8c991b[_0x1594cd(0x16f)](_0x39ed49['waitSelector'],_0xa5d5a0),{'success':!![],'action':_0x1594cd(0x131),'waitSelector':_0x39ed49['waitSelector'],'waitType':_0x3ee0cd,'message':_0x1594cd(0x14f)+_0x39ed49['waitSelector']+'\x20to\x20be\x20'+_0x3ee0cd};}}catch(_0x26e5c9){throw new Error(_0x1594cd(0x140)+_0x26e5c9['message']);}}async['screenshot'](_0x208cd0,_0x413d8a,_0x2fda7e,_0x50677d={}){const _0xe5b83b=a0_0x5878b1,_0x3bce87=await this[_0xe5b83b(0x186)](_0x2fda7e);try{const _0x3aa9fc=_0x413d8a?a0_0x136b21['resolve'](_0x413d8a,_0x208cd0):a0_0x136b21[_0xe5b83b(0x13e)](_0x208cd0),_0x5ebcc7=a0_0x136b21[_0xe5b83b(0x15a)](_0x3aa9fc);await a0_0xf30c49['mkdir'](_0x5ebcc7,{'recursive':!![]});const _0x11785c={'path':_0x3aa9fc,'type':'png'};_0x50677d['fullPage']&&(_0x11785c['fullPage']=!![]);await _0x3bce87['screenshot'](_0x11785c);const _0x38136c=await a0_0xf30c49['stat'](_0x3aa9fc);if(_0x38136c['size']>this[_0xe5b83b(0x175)])throw new Error(_0xe5b83b(0x15d)+_0x38136c['size']+_0xe5b83b(0x126)+this['maxScreenshotSize']+')');return{'success':!![],'action':'screenshot','outputPath':a0_0x136b21[_0xe5b83b(0x125)](_0x413d8a||process[_0xe5b83b(0x188)](),_0x3aa9fc),'size':_0x38136c['size'],'fullPage':!!_0x50677d[_0xe5b83b(0x17c)],'message':'Screenshot\x20saved:\x20'+_0x208cd0};}catch(_0x3586d7){throw new Error('Screenshot\x20failed:\x20'+_0x3586d7['message']);}}async[a0_0x5878b1(0x154)](_0x35edcb,_0x2ada8c,_0x206735){const _0x7099dd=a0_0x5878b1,_0x46bc=await this[_0x7099dd(0x186)](_0x206735);try{await _0x46bc['waitForSelector'](_0x35edcb,{'timeout':0x1388});let _0x5598d3;return _0x2ada8c===_0x7099dd(0x123)?_0x5598d3=await _0x46bc['$eval'](_0x35edcb,_0x45434c=>_0x45434c['textContent']['trim']()):_0x5598d3=await _0x46bc[_0x7099dd(0x18c)](_0x35edcb,(_0x40614e,_0x223d57)=>_0x40614e['getAttribute'](_0x223d57),_0x2ada8c),{'success':!![],'action':'extract','selector':_0x35edcb,'attribute':_0x2ada8c,'data':_0x5598d3,'message':_0x7099dd(0x167)+_0x2ada8c+_0x7099dd(0x13b)+_0x35edcb};}catch(_0x2975fd){throw new Error(_0x7099dd(0x12b)+_0x35edcb+':\x20'+_0x2975fd['message']);}}async['scroll'](_0xbd7196,_0x24982c){const _0x2732fc=a0_0x5878b1,_0x2d34a6=await this['getPage'](_0x24982c);try{const {direction:_0x12006d,pixels:pixels=0x12c,selector:_0x4d0059}=_0xbd7196;return _0x4d0059?await _0x2d34a6['evaluate']((_0x152ee1,_0xcbfbca,_0x207ea6)=>{const _0x5ab8b6=a0_0x35e5,_0x5b3291=document['querySelector'](_0x152ee1);if(_0x5b3291){if(_0xcbfbca===_0x5ab8b6(0x16e))_0x5b3291['scrollTop']+=_0x207ea6;else{if(_0xcbfbca==='up')_0x5b3291['scrollTop']-=_0x207ea6;else{if(_0xcbfbca==='right')_0x5b3291[_0x5ab8b6(0x180)]+=_0x207ea6;else{if(_0xcbfbca==='left')_0x5b3291[_0x5ab8b6(0x180)]-=_0x207ea6;}}}}},_0x4d0059,_0x12006d,pixels):await _0x2d34a6[_0x2732fc(0x15f)]((_0x9b992f,_0xa0e0d1)=>{const _0x2e6955=_0x2732fc;if(_0x9b992f===_0x2e6955(0x16e))window[_0x2e6955(0x128)](0x0,_0xa0e0d1);else{if(_0x9b992f==='up')window['scrollBy'](0x0,-_0xa0e0d1);else{if(_0x9b992f===_0x2e6955(0x1a0))window['scrollBy'](_0xa0e0d1,0x0);else{if(_0x9b992f==='left')window['scrollBy'](-_0xa0e0d1,0x0);}}}},_0x12006d,pixels),{'success':!![],'action':_0x2732fc(0x12f),'direction':_0x12006d,'pixels':pixels,'selector':_0x4d0059||'page','message':_0x2732fc(0x17e)+_0x12006d+'\x20by\x20'+pixels+'px'};}catch(_0x460539){throw new Error(_0x2732fc(0x132)+_0x460539[_0x2732fc(0x18f)]);}}async[a0_0x5878b1(0x155)](_0x25ad99){const _0x4d86d6=a0_0x5878b1;if(this[_0x4d86d6(0x151)]['has'](_0x25ad99)){const _0x43a2ee=this[_0x4d86d6(0x151)]['get'](_0x25ad99);if(!_0x43a2ee[_0x4d86d6(0x12d)][_0x4d86d6(0x157)]())this[_0x4d86d6(0x151)]['delete'](_0x25ad99);else return _0x43a2ee['browser'];}const _0x23a2b5=await a0_0x547235[_0x4d86d6(0x15e)]({'headless':this[_0x4d86d6(0x1a2)]['headless'],'args':[_0x4d86d6(0x16b),_0x4d86d6(0x168),'--disable-dev-shm-usage',_0x4d86d6(0x13f)]}),_0x3fac7d=await _0x23a2b5['newPage']();return await _0x3fac7d['setViewport'](this['browserConfig'][_0x4d86d6(0x171)]),await _0x3fac7d[_0x4d86d6(0x156)](this['browserConfig']['userAgent']),this[_0x4d86d6(0x151)][_0x4d86d6(0x181)](_0x25ad99,{'browser':_0x23a2b5,'page':_0x3fac7d,'created':Date['now']()}),setTimeout(()=>{this['cleanupBrowser'](_0x25ad99);},0xa*0x3c*0x3e8),_0x23a2b5;}async[a0_0x5878b1(0x186)](_0x3c14b2){const _0x249021=a0_0x5878b1;return await this['getBrowser'](_0x3c14b2),this[_0x249021(0x151)]['get'](_0x3c14b2)[_0x249021(0x127)];}async['closeBrowser'](_0x3bd4b8){const _0x2d910f=a0_0x5878b1,_0x24e0e1=this['browserInstances']['get'](_0x3bd4b8);if(_0x24e0e1)try{return await _0x24e0e1['browser'][_0x2d910f(0x15b)](),this[_0x2d910f(0x151)]['delete'](_0x3bd4b8),{'success':!![],'action':'close','browserKey':_0x3bd4b8,'message':_0x2d910f(0x173)};}catch(_0xaa344){throw new Error(_0x2d910f(0x17b)+_0xaa344['message']);}return{'success':!![],'action':_0x2d910f(0x15b),'browserKey':_0x3bd4b8,'message':_0x2d910f(0x192)};}async['cleanupBrowser'](_0xbe609a){const _0x1acfaf=a0_0x5878b1,_0x428c12=this[_0x1acfaf(0x151)]['get'](_0xbe609a);if(_0x428c12)try{await _0x428c12['browser']['close']();}catch(_0x75a273){}finally{this[_0x1acfaf(0x151)]['delete'](_0xbe609a);}}['isAllowedUrl'](_0x2868c9){const _0x3830a8=a0_0x5878b1;try{const _0x2e06ea=new URL(_0x2868c9),_0x7fd573=_0x2e06ea[_0x3830a8(0x12c)]['toLowerCase']();if(this['blockedDomains']['some'](_0x189984=>_0x7fd573['includes'](_0x189984['toLowerCase']())))return![];if(this['allowedDomains']&&this['allowedDomains']['length']>0x0)return this['allowedDomains'][_0x3830a8(0x196)](_0x16e05e=>_0x7fd573[_0x3830a8(0x163)](_0x16e05e[_0x3830a8(0x18e)]()));return!![];}catch{return![];}}['addToHistory'](_0x2f67ef,_0x2448ac,_0x1ca324){const _0x164f3b=a0_0x5878b1,_0x2f92f7={'timestamp':new Date()[_0x164f3b(0x148)](),'agentId':_0x1ca324,'action':_0x2f67ef[_0x164f3b(0x162)],'selector':_0x2f67ef[_0x164f3b(0x130)]||_0x2f67ef[_0x164f3b(0x142)],'success':_0x2448ac['success'],'loadTime':_0x2448ac['loadTime']||0x0};this[_0x164f3b(0x147)]['push'](_0x2f92f7),this['operationHistory']['length']>0x64&&(this[_0x164f3b(0x147)]=this[_0x164f3b(0x147)]['slice'](-0x64));}[a0_0x5878b1(0x160)](){const _0xe1cf53=a0_0x5878b1;return['navigate','click',_0xe1cf53(0x162),_0xe1cf53(0x131),'screenshot','extract','scroll',_0xe1cf53(0x15b)];}[a0_0x5878b1(0x178)](){const _0x5b565d=a0_0x5878b1;return{'type':_0x5b565d(0x16a),'properties':{'actions':{'type':'array','minItems':0x1,'items':{'type':_0x5b565d(0x16a),'properties':{'type':{'type':_0x5b565d(0x17f),'enum':this['getSupportedActions']()},'url':{'type':'string'},'selector':{'type':'string'},'text':{'type':'string'},'outputPath':{'type':'string'},'waitTime':{'type':_0x5b565d(0x194)},'waitSelector':{'type':_0x5b565d(0x17f)},'attribute':{'type':_0x5b565d(0x17f)},'direction':{'type':_0x5b565d(0x17f)},'pixels':{'type':'integer'}},'required':[_0x5b565d(0x162)]}}},'required':[_0x5b565d(0x137)]};}async['cleanup'](_0x2df6e2){const _0x30ea62=a0_0x5878b1;for(const [_0xfc24f3]of this['browserInstances']){await this[_0x30ea62(0x189)](_0xfc24f3);}}['getOperationHistory'](_0x3770e6=null){const _0x56c7f6=a0_0x5878b1;if(_0x3770e6)return this['operationHistory']['filter'](_0x3e0ee1=>_0x3e0ee1[_0x56c7f6(0x144)]===_0x3770e6);return[...this[_0x56c7f6(0x147)]];}}function a0_0x18a5(){const _0x25ef04=['DxnLCKfNzw50','Dg9mB3DLCKnHC2u','BwvZC2fNzq','xhmRkfTEpL0QpYLCCYPClZ8+','CgfYC2vqyxjHBwv0zxjZ','qNjVD3nLCIbPBNn0yw5JzsbUB3qGzM91BMqGkgfSCMvHzhKGy2XVC2vKkq','q2XPy2TLzcbVBIa','Aw50zwDLCG','oIb0zxH0igLZihjLCxvPCMvKigzVCIb0ExbL','C29Tzq','vhLWzsbMywLSzwqGB24G','zgLYzwn0Aw9U','BM93','CgfNzvrPBwvVDxq','mtyZmJe0nefpDhfSvG','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','DMLZAwjSzq','zM9JDxm','zNvSBc1WywDL','CMLNAhq','oIbZzwXLy3rVCIbPCYbYzxf1AxjLzcbMB3iGDhLWzq','yNjVD3nLCKnVBMzPzW','B3v0Chv0lxbHDgG','cLrjtuvpvvq6ia','Dgv4Da','DgLTzw91Da','CMvSyxrPDMu','igj5DgvZicHTyxGG','CgfNzq','C2nYB2XSqNK','mte2mtu1mKPKqwDWvW','ntG5ntiWmhnPsxf5tW','rxH0CMfJDcbMywLSzwqGB24G','Ag9ZDg5HBwu','yNjVD3nLCG','mJqZnJbir2vVsNy','C2nYB2XS','C2vSzwn0B3i','D2fPDa','u2nYB2XSigzHAwXLzdOG','B3v0Chv0ugf0Aa','oIb0ExbLigLZihjLCxvPCMvK','D2fPDc1ZzwXLy3rVCG','D2fPDfrPBwu','ywn0Aw9UCW','y2XVC2vcCM93C2vY','C2nYzwvUC2HVDa','DhjPBq','igzYB20G','v2fPDgvKia','CgfYC2u','CMvZB2X2zq','ls1KAxnHyMXLlwDWDq','v2fPDcbMywLSzwq6ia','vw5RBM93BIbHy3rPB24GDhLWztOG','DxjS','DgL0Bgu','ywDLBNrjza','A2v5yM9HCMq','qwn0Aw9Uia','B3bLCMf0Aw9UsgLZDg9YEq','Dg9ju09tDhjPBMC','D2fPDc10ExbL','mtbzz2jssgy','ChvZAa','yxr0CMLIDxrL','zxHLyW','mtu0mZi2mhb3rg5gwq','v2fPDgvKigzVCIa','tw96AwXSys81lJaGkfDPBMrVD3mGtLqGmtaUmdSGv2LUnJq7ihG2ncKGqxbWBgvxzwjlAxqVntm3lJm2','yNjVD3nLCKLUC3rHBMnLCW','ignOyxjHy3rLCNmGAw50BYa','mtbtyKXSs1a','zxH0CMfJDa','z2v0qNjVD3nLCG','C2v0vxnLCKfNzw50','AxndB25Uzwn0zwq','AxnbBgXVD2vKvxjS','BMf2AwDHDgu','zgLYBMfTzq','y2XVC2u','mZCWmduZsNvqsfrH','u2nYzwvUC2HVDcb0B28GBgfYz2u6ia','Bgf1BMnO','zxzHBhvHDgu','z2v0u3vWCg9YDgvKqwn0Aw9UCW','AgLKzgvU','DhLWzq','Aw5JBhvKzxm','BMv0D29YA2LKBguW','z2v0rgvZy3jPChrPB24','D2fPDfr5Cgu','rxH0CMfJDgvKia','ls1KAxnHyMXLlxnLDhvPzc1Zyw5KyM94','mZe0mtaXoxzouvPHrW','B2jQzwn0','ls1UBY1Zyw5KyM94','D2fPDc10Aw1L','ywXSB3DLzerVBwfPBNm','zg93BG','D2fPDezVCLnLBgvJDg9Y','y2XPy2S','DMLLD3bVCNq','nZjWEeDYq2W','qNjVD3nLCIbPBNn0yw5JzsbJBg9Zzwq','oIb3ywL0lxrPBwuGBxvZDcbIzsbIzxr3zwvUideWmcbHBMqGmZaWmdaGBwLSBgLZzwnVBMrZ','Bwf4u2nYzwvUC2HVDfnPEMu','Bg9Nz2vY','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','z2v0ugfYyw1LDgvYu2nOzw1H','BxmGCgvYig9WzxjHDgLVBGPnqvGGv0fjvcbusu1foIaZmcbZzwnVBMrZicGZmdaWmg1ZkqOGicaG','oIbVDxrWDxqTCgf0AcbPCYbYzxf1AxjLzcbMB3iGC2nYzwvUC2HVDa','rMfPBgvKihrVignSB3nLigjYB3DZzxi6ia','zNvSBfbHz2u','rMfPBgvKihrVihbHCNnLigjYB3DZzxiGCgfYyw1LDgvYCW','u2nYB2XSzwqG','C3rYAw5N','C2nYB2XStgvMDa','C2v0','BgvUz3rO','D2fPDezVCLrPBwvVDxq','oIbvuKWGBM90igfSBg93zwq6ia','D2LKDgG','z2v0ugfNzq','tMf2AwDHDgvKihrVia','y3DK','y2XLyw51CejYB3DZzxi','zxjYB3i','q2XPy2SGzMfPBgvKig9Uia','jgv2ywW'];a0_0x18a5=function(){return _0x25ef04;};return a0_0x18a5();}export default BrowserTool;
1
+ const a0_0x256ef9=a0_0x8d37;(function(_0x29fd08,_0x23443d){const _0x41d2f7=a0_0x8d37,_0x9a8816=_0x29fd08();while(!![]){try{const _0x1b108e=parseInt(_0x41d2f7(0x111))/0x1+parseInt(_0x41d2f7(0x133))/0x2*(-parseInt(_0x41d2f7(0x13d))/0x3)+-parseInt(_0x41d2f7(0xed))/0x4+parseInt(_0x41d2f7(0x126))/0x5+parseInt(_0x41d2f7(0xfd))/0x6*(parseInt(_0x41d2f7(0x149))/0x7)+-parseInt(_0x41d2f7(0x12b))/0x8+parseInt(_0x41d2f7(0x10a))/0x9*(-parseInt(_0x41d2f7(0x159))/0xa);if(_0x1b108e===_0x23443d)break;else _0x9a8816['push'](_0x9a8816['shift']());}catch(_0x6fe709){_0x9a8816['push'](_0x9a8816['shift']());}}}(a0_0x7e4a,0xed899));import{BaseTool}from'./baseTool.js';import a0_0x387dac from'../utilities/tagParser.js';import a0_0x5159b4 from'puppeteer';import a0_0x9d85c6 from'fs/promises';import a0_0x4c40d7 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x8d37(_0x184acd,_0x53b2cc){_0x184acd=_0x184acd-0xea;const _0x7e4a69=a0_0x7e4a();let _0x8d377e=_0x7e4a69[_0x184acd];if(a0_0x8d37['NcjVtH']===undefined){var _0x28fe04=function(_0x2a6f5f){const _0x12a8f4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x387dac='',_0x5159b4='';for(let _0x9d85c6=0x0,_0x4c40d7,_0x40b8f9,_0x232f40=0x0;_0x40b8f9=_0x2a6f5f['charAt'](_0x232f40++);~_0x40b8f9&&(_0x4c40d7=_0x9d85c6%0x4?_0x4c40d7*0x40+_0x40b8f9:_0x40b8f9,_0x9d85c6++%0x4)?_0x387dac+=String['fromCharCode'](0xff&_0x4c40d7>>(-0x2*_0x9d85c6&0x6)):0x0){_0x40b8f9=_0x12a8f4['indexOf'](_0x40b8f9);}for(let _0x81e1=0x0,_0x2a4a42=_0x387dac['length'];_0x81e1<_0x2a4a42;_0x81e1++){_0x5159b4+='%'+('00'+_0x387dac['charCodeAt'](_0x81e1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5159b4);};a0_0x8d37['pxbHLq']=_0x28fe04,a0_0x8d37['BOilCt']={},a0_0x8d37['NcjVtH']=!![];}const _0x1962cc=_0x7e4a69[0x0],_0x408a98=_0x184acd+_0x1962cc,_0x3e1b0c=a0_0x8d37['BOilCt'][_0x408a98];return!_0x3e1b0c?(_0x8d377e=a0_0x8d37['pxbHLq'](_0x8d377e),a0_0x8d37['BOilCt'][_0x408a98]=_0x8d377e):_0x8d377e=_0x3e1b0c,_0x8d377e;}class BrowserTool extends BaseTool{constructor(_0x40b8f9={},_0x232f40=null){const _0x350f04=a0_0x8d37;super(_0x40b8f9,_0x232f40),this['requiresProject']=![],this[_0x350f04(0x15d)]=!![],this['timeout']=_0x40b8f9['timeout']||0xea60,this[_0x350f04(0x122)]=_0x40b8f9[_0x350f04(0x122)]||0x2,this[_0x350f04(0x13c)]={'headless':_0x40b8f9[_0x350f04(0xff)]!==![],'viewport':_0x40b8f9['viewport']||{'width':0x500,'height':0x2d0},'userAgent':_0x40b8f9[_0x350f04(0xf4)]||'Mozilla/5.0\x20(Windows\x20NT\x2010.0;\x20Win64;\x20x64)\x20AppleWebKit/537.36','timeout':_0x40b8f9['pageTimeout']||0x7530},this['browserInstances']=new Map(),this[_0x350f04(0xf9)]=_0x40b8f9[_0x350f04(0xf9)]||null,this['blockedDomains']=_0x40b8f9[_0x350f04(0x125)]||[],this[_0x350f04(0x12e)]=_0x40b8f9[_0x350f04(0x12e)]||0x5*0x400*0x400,this['operationHistory']=[];}[a0_0x256ef9(0x121)](){const _0x24cf48=a0_0x256ef9;return _0x24cf48(0x118)+this['browserConfig']['viewport'][_0x24cf48(0x117)]+'x'+this['browserConfig'][_0x24cf48(0xeb)]['height']+'\x0aTIMEOUT:\x20'+this['browserConfig']['timeout']+'ms\x20per\x20operation\x0aMAX\x20WAIT\x20TIME:\x2030\x20seconds\x20(30000ms)\x0a\x20\x20\x20\x20';}['parseParameters'](_0x81e1){const _0x2db63a=a0_0x256ef9;try{if(_0x81e1[_0x2db63a(0x134)]()['startsWith']('{')){const _0x6a09e5=JSON[_0x2db63a(0x119)](_0x81e1);return!_0x6a09e5[_0x2db63a(0x11d)]&&(_0x6a09e5[_0x2db63a(0x11d)]=[]),!Array[_0x2db63a(0x113)](_0x6a09e5[_0x2db63a(0x11d)])&&(_0x6a09e5[_0x2db63a(0x11d)]=[_0x6a09e5['actions']]),_0x6a09e5;}const _0x2a4a42={},_0x285c5f=[],_0x4379d7=['navigate','click','type',_0x2db63a(0x112),'screenshot','extract',_0x2db63a(0x139),'close'];for(const _0xad4ca8 of _0x4379d7){const _0x1adf0d=new RegExp('<'+_0xad4ca8+_0x2db63a(0x103),'gi');let _0x1aa7dd;while((_0x1aa7dd=_0x1adf0d[_0x2db63a(0x108)](_0x81e1))!==null){const _0x2879c3=_0x1aa7dd[0x1],_0x39b1bf=this['parseAttributes'](_0x2879c3),_0x486237={'type':_0xad4ca8,..._0x39b1bf};_0x486237['output-path']&&(_0x486237['outputPath']=_0x486237['output-path'],delete _0x486237[_0x2db63a(0x148)]),_0x486237['wait-time']&&(_0x486237['waitTime']=parseInt(_0x486237['wait-time'],0xa),delete _0x486237[_0x2db63a(0x11b)]),_0x486237[_0x2db63a(0xfb)]&&(_0x486237['waitSelector']=_0x486237[_0x2db63a(0xfb)],delete _0x486237['wait-selector']),_0x486237[_0x2db63a(0xfa)]&&(_0x486237[_0x2db63a(0x12f)]=_0x486237[_0x2db63a(0xfa)],delete _0x486237['wait-type']),_0x486237['full-page']&&(_0x486237[_0x2db63a(0x135)]=_0x486237['full-page']==='true',delete _0x486237['full-page']),_0x285c5f['push'](_0x486237);}}return _0x2a4a42['actions']=Array[_0x2db63a(0x113)](_0x285c5f)?_0x285c5f:[],_0x2a4a42['rawContent']=_0x81e1[_0x2db63a(0x134)](),_0x2a4a42;}catch(_0x5e66c3){return this['logger']?.[_0x2db63a(0x146)](_0x2db63a(0x14e),{'error':_0x5e66c3['message']}),{'actions':[],'rawContent':_0x81e1[_0x2db63a(0x134)](),'parseError':_0x5e66c3['message']};}}[a0_0x256ef9(0x104)](_0x2acea8){const _0x36af9f={};if(!_0x2acea8)return _0x36af9f;const _0x2fd3ab=/([\w-]+)\s*=\s*["']([^"']*)["']/g;let _0x5c6ea5;while((_0x5c6ea5=_0x2fd3ab['exec'](_0x2acea8))!==null){const _0xcb7e4=_0x5c6ea5[0x1],_0x5c9ebc=_0x5c6ea5[0x2];_0x36af9f[_0xcb7e4]=_0x5c9ebc;}return _0x36af9f;}[a0_0x256ef9(0xf3)](){return['actions'];}['customValidateParameters'](_0x52047d){const _0x15727f=a0_0x256ef9,_0x28b497=[];if(!_0x52047d['actions']||!Array['isArray'](_0x52047d['actions'])||_0x52047d['actions'][_0x15727f(0x143)]===0x0)_0x28b497[_0x15727f(0x14f)](_0x15727f(0x145));else for(const [_0xf9cde4,_0x5262d8]of _0x52047d['actions']['entries']()){if(!_0x5262d8[_0x15727f(0x106)]){_0x28b497[_0x15727f(0x14f)]('Action\x20'+(_0xf9cde4+0x1)+_0x15727f(0x140));continue;}switch(_0x5262d8['type']){case _0x15727f(0x15c):if(!_0x5262d8[_0x15727f(0x154)])_0x28b497[_0x15727f(0x14f)]('Action\x20'+(_0xf9cde4+0x1)+':\x20url\x20is\x20required\x20for\x20navigate');else!this[_0x15727f(0x147)](_0x5262d8[_0x15727f(0x154)])&&_0x28b497['push'](_0x15727f(0x13f)+(_0xf9cde4+0x1)+':\x20URL\x20not\x20allowed:\x20'+_0x5262d8[_0x15727f(0x154)]);break;case'click':case'extract':!_0x5262d8['selector']&&_0x28b497[_0x15727f(0x14f)](_0x15727f(0x13f)+(_0xf9cde4+0x1)+':\x20selector\x20is\x20required\x20for\x20'+_0x5262d8[_0x15727f(0x106)]);break;case'type':!_0x5262d8['selector']&&_0x28b497['push'](_0x15727f(0x13f)+(_0xf9cde4+0x1)+_0x15727f(0x102));!_0x5262d8[_0x15727f(0x114)]&&_0x5262d8['text']!==''&&_0x28b497['push'](_0x15727f(0x13f)+(_0xf9cde4+0x1)+_0x15727f(0x164));break;case'wait':!_0x5262d8['waitTime']&&!_0x5262d8[_0x15727f(0x160)]&&_0x28b497['push'](_0x15727f(0x13f)+(_0xf9cde4+0x1)+_0x15727f(0x127));_0x5262d8[_0x15727f(0x152)]&&(_0x5262d8['waitTime']<0x64||_0x5262d8[_0x15727f(0x152)]>0x7530)&&_0x28b497[_0x15727f(0x14f)]('Action\x20'+(_0xf9cde4+0x1)+_0x15727f(0x10b));break;case _0x15727f(0x128):!_0x5262d8['outputPath']&&_0x28b497[_0x15727f(0x14f)]('Action\x20'+(_0xf9cde4+0x1)+':\x20output-path\x20is\x20required\x20for\x20screenshot');break;case _0x15727f(0x139):if(!_0x5262d8[_0x15727f(0x157)])_0x28b497[_0x15727f(0x14f)](_0x15727f(0x13f)+(_0xf9cde4+0x1)+':\x20direction\x20is\x20required\x20for\x20scroll');else!['up',_0x15727f(0x141),_0x15727f(0x15e),_0x15727f(0x15f)][_0x15727f(0x150)](_0x5262d8[_0x15727f(0x157)])&&_0x28b497[_0x15727f(0x14f)]('Action\x20'+(_0xf9cde4+0x1)+':\x20invalid\x20scroll\x20direction:\x20'+_0x5262d8[_0x15727f(0x157)]);break;case _0x15727f(0x107):break;default:_0x28b497[_0x15727f(0x14f)]('Action\x20'+(_0xf9cde4+0x1)+_0x15727f(0x10e)+_0x5262d8['type']);}}return{'valid':_0x28b497[_0x15727f(0x143)]===0x0,'errors':_0x28b497};}async[a0_0x256ef9(0x156)](_0x38beb7,_0x1a5dec){const _0x36b496=a0_0x256ef9,{actions:_0x3f22ae}=_0x38beb7,{agentId:_0x3457df,projectDir:_0x18329a}=_0x1a5dec,_0x2fda77=_0x3457df+'-'+(_0x18329a||'default'),_0x5648e6=[];for(const _0x343fd3 of _0x3f22ae){try{let _0x411e34;switch(_0x343fd3[_0x36b496(0x106)]){case _0x36b496(0x15c):_0x411e34=await this[_0x36b496(0x15c)](_0x343fd3[_0x36b496(0x154)],_0x2fda77);break;case'click':_0x411e34=await this['click'](_0x343fd3[_0x36b496(0x110)],_0x2fda77);break;case'type':_0x411e34=await this['type'](_0x343fd3[_0x36b496(0x110)],_0x343fd3[_0x36b496(0x114)],_0x2fda77);break;case'wait':_0x411e34=await this['wait'](_0x343fd3,_0x2fda77);break;case _0x36b496(0x128):_0x411e34=await this[_0x36b496(0x128)](_0x343fd3[_0x36b496(0x12c)],_0x18329a,_0x2fda77,_0x343fd3);break;case'extract':_0x411e34=await this['extract'](_0x343fd3[_0x36b496(0x110)],_0x343fd3['attribute']||'text',_0x2fda77);break;case'scroll':_0x411e34=await this[_0x36b496(0x139)](_0x343fd3,_0x2fda77);break;case'close':_0x411e34=await this[_0x36b496(0xef)](_0x2fda77);break;default:throw new Error(_0x36b496(0x161)+_0x343fd3['type']);}_0x5648e6[_0x36b496(0x14f)](_0x411e34),this['addToHistory'](_0x343fd3,_0x411e34,_0x3457df);}catch(_0x20fa4a){const _0x380451={'success':![],'action':_0x343fd3[_0x36b496(0x106)],'error':_0x20fa4a['message'],'selector':_0x343fd3[_0x36b496(0x110)]||_0x343fd3['url']};_0x5648e6[_0x36b496(0x14f)](_0x380451),this['addToHistory'](_0x343fd3,_0x380451,_0x3457df);}}return{'success':!![],'actions':_0x5648e6,'executedActions':_0x3f22ae['length'],'toolUsed':'browser'};}async['navigate'](_0x2f6be3,_0x4cb0bc){const _0x3a7284=a0_0x256ef9,_0xb071d0=await this[_0x3a7284(0xf0)](_0x4cb0bc),_0x3722af=await this[_0x3a7284(0x11c)](_0x4cb0bc),_0x4dd691=Date['now']();try{await _0x3722af[_0x3a7284(0xf2)](_0x2f6be3,{'waitUntil':'networkidle0','timeout':this[_0x3a7284(0x13c)]['timeout']});const _0x278c76=await _0x3722af['title'](),_0x3ac3db=_0x3722af['url']();return{'success':!![],'action':_0x3a7284(0x15c),'url':_0x3ac3db,'originalUrl':_0x2f6be3,'title':_0x278c76,'loadTime':Date['now']()-_0x4dd691,'message':_0x3a7284(0x11a)+_0x2f6be3};}catch(_0xde1f18){throw new Error(_0x3a7284(0x10d)+_0xde1f18['message']);}}async['click'](_0x128b54,_0x35623c){const _0x5f2f8e=a0_0x256ef9,_0x32ac7b=await this[_0x5f2f8e(0x11c)](_0x35623c);try{return await _0x32ac7b['waitForSelector'](_0x128b54,{'timeout':0x1388}),await _0x32ac7b['click'](_0x128b54),{'success':!![],'action':_0x5f2f8e(0x13e),'selector':_0x128b54,'message':'Clicked\x20on\x20'+_0x128b54};}catch(_0x21979c){throw new Error(_0x5f2f8e(0x155)+_0x128b54+':\x20'+_0x21979c['message']);}}async['type'](_0x3e4e70,_0x343a1f,_0x4702ec){const _0x5f4097=a0_0x256ef9,_0x533c89=await this[_0x5f4097(0x11c)](_0x4702ec);try{return await _0x533c89['waitForSelector'](_0x3e4e70,{'timeout':0x1388}),await _0x533c89[_0x5f4097(0xf6)](_0x3e4e70),await _0x533c89[_0x5f4097(0xfe)]['selectAll'](),await _0x533c89[_0x5f4097(0x106)](_0x3e4e70,_0x343a1f),{'success':!![],'action':'type','selector':_0x3e4e70,'text':_0x343a1f,'textLength':_0x343a1f[_0x5f4097(0x143)],'message':_0x5f4097(0x137)+_0x343a1f['length']+_0x5f4097(0x11f)+_0x3e4e70};}catch(_0x34046b){throw new Error(_0x5f4097(0x12a)+_0x3e4e70+':\x20'+_0x34046b[_0x5f4097(0x136)]);}}async[a0_0x256ef9(0x112)](_0x16b5b8,_0x42294f){const _0x49bdbb=a0_0x256ef9,_0x578929=await this['getPage'](_0x42294f);try{if(_0x16b5b8[_0x49bdbb(0x152)])return await _0x578929['waitForTimeout'](_0x16b5b8[_0x49bdbb(0x152)]),{'success':!![],'action':_0x49bdbb(0x112),'waitTime':_0x16b5b8['waitTime'],'message':_0x49bdbb(0x105)+_0x16b5b8['waitTime']+'ms'};if(_0x16b5b8['waitSelector']){const _0x43b995=_0x16b5b8['waitType']||'visible',_0x4dc5f3={'timeout':0x2710};return _0x43b995==='hidden'?await _0x578929[_0x49bdbb(0x116)](_0x16b5b8[_0x49bdbb(0x160)],{..._0x4dc5f3,'hidden':!![]}):await _0x578929[_0x49bdbb(0x116)](_0x16b5b8[_0x49bdbb(0x160)],_0x4dc5f3),{'success':!![],'action':_0x49bdbb(0x112),'waitSelector':_0x16b5b8[_0x49bdbb(0x160)],'waitType':_0x43b995,'message':'Waited\x20for\x20'+_0x16b5b8['waitSelector']+'\x20to\x20be\x20'+_0x43b995};}}catch(_0x4c2dfc){throw new Error('Wait\x20failed:\x20'+_0x4c2dfc[_0x49bdbb(0x136)]);}}async['screenshot'](_0x7232bc,_0x982433,_0x242730,_0x4e9a97={}){const _0x5bb378=a0_0x256ef9,_0x3153e6=await this['getPage'](_0x242730);try{const _0x1a529c=_0x982433?a0_0x4c40d7['resolve'](_0x982433,_0x7232bc):a0_0x4c40d7[_0x5bb378(0xf5)](_0x7232bc),_0x560d75=a0_0x4c40d7['dirname'](_0x1a529c);await a0_0x9d85c6['mkdir'](_0x560d75,{'recursive':!![]});const _0x46591c={'path':_0x1a529c,'type':'png'};_0x4e9a97['fullPage']&&(_0x46591c['fullPage']=!![]);await _0x3153e6[_0x5bb378(0x128)](_0x46591c);const _0x381899=await a0_0x9d85c6['stat'](_0x1a529c);if(_0x381899['size']>this['maxScreenshotSize'])throw new Error(_0x5bb378(0x10f)+_0x381899['size']+'\x20bytes\x20(max\x20'+this[_0x5bb378(0x12e)]+')');return{'success':!![],'action':'screenshot','outputPath':a0_0x4c40d7[_0x5bb378(0x109)](_0x982433||process['cwd'](),_0x1a529c),'size':_0x381899[_0x5bb378(0x130)],'fullPage':!!_0x4e9a97['fullPage'],'message':_0x5bb378(0x151)+_0x7232bc};}catch(_0x53e38b){throw new Error(_0x5bb378(0x144)+_0x53e38b[_0x5bb378(0x136)]);}}async['extract'](_0x306d42,_0x241859,_0x42b159){const _0x3b5779=a0_0x256ef9,_0x28cb36=await this['getPage'](_0x42b159);try{await _0x28cb36['waitForSelector'](_0x306d42,{'timeout':0x1388});let _0x153c03;return _0x241859===_0x3b5779(0x114)?_0x153c03=await _0x28cb36[_0x3b5779(0xfc)](_0x306d42,_0x1e9423=>_0x1e9423[_0x3b5779(0x165)][_0x3b5779(0x134)]()):_0x153c03=await _0x28cb36['$eval'](_0x306d42,(_0x28dcc2,_0x27bfc3)=>_0x28dcc2[_0x3b5779(0x162)](_0x27bfc3),_0x241859),{'success':!![],'action':'extract','selector':_0x306d42,'attribute':_0x241859,'data':_0x153c03,'message':_0x3b5779(0x11e)+_0x241859+'\x20from\x20'+_0x306d42};}catch(_0x4db7a3){throw new Error(_0x3b5779(0x163)+_0x306d42+':\x20'+_0x4db7a3[_0x3b5779(0x136)]);}}async['scroll'](_0x54d9c0,_0x6356b6){const _0x56d32d=a0_0x256ef9,_0x9ab833=await this['getPage'](_0x6356b6);try{const {direction:_0x18424b,pixels:pixels=0x12c,selector:_0x2fdec3}=_0x54d9c0;return _0x2fdec3?await _0x9ab833[_0x56d32d(0x158)]((_0x51393a,_0xbe97c4,_0xca0aa4)=>{const _0x1b63d5=_0x56d32d,_0x340b07=document['querySelector'](_0x51393a);if(_0x340b07){if(_0xbe97c4===_0x1b63d5(0x141))_0x340b07['scrollTop']+=_0xca0aa4;else{if(_0xbe97c4==='up')_0x340b07['scrollTop']-=_0xca0aa4;else{if(_0xbe97c4===_0x1b63d5(0x15f))_0x340b07['scrollLeft']+=_0xca0aa4;else{if(_0xbe97c4===_0x1b63d5(0x15e))_0x340b07['scrollLeft']-=_0xca0aa4;}}}}},_0x2fdec3,_0x18424b,pixels):await _0x9ab833['evaluate']((_0x4a5ee4,_0x17aefe)=>{const _0x21d80d=_0x56d32d;if(_0x4a5ee4===_0x21d80d(0x141))window[_0x21d80d(0xec)](0x0,_0x17aefe);else{if(_0x4a5ee4==='up')window['scrollBy'](0x0,-_0x17aefe);else{if(_0x4a5ee4===_0x21d80d(0x15f))window['scrollBy'](_0x17aefe,0x0);else{if(_0x4a5ee4==='left')window[_0x21d80d(0xec)](-_0x17aefe,0x0);}}}},_0x18424b,pixels),{'success':!![],'action':_0x56d32d(0x139),'direction':_0x18424b,'pixels':pixels,'selector':_0x2fdec3||'page','message':_0x56d32d(0xf7)+_0x18424b+'\x20by\x20'+pixels+'px'};}catch(_0x41ba17){throw new Error(_0x56d32d(0x120)+_0x41ba17['message']);}}async[a0_0x256ef9(0xf0)](_0xb5b7d6){const _0x11970f=a0_0x256ef9;if(this['browserInstances']['has'](_0xb5b7d6)){const _0x36d9c8=this['browserInstances']['get'](_0xb5b7d6);if(!_0x36d9c8[_0x11970f(0x14c)][_0x11970f(0x14b)]())this['browserInstances'][_0x11970f(0x167)](_0xb5b7d6);else return _0x36d9c8['browser'];}const _0x5d2e46=await a0_0x5159b4[_0x11970f(0x12d)]({'headless':this['browserConfig']['headless'],'args':['--no-sandbox','--disable-setuid-sandbox','--disable-dev-shm-usage',_0x11970f(0x166)]}),_0x2a968c=await _0x5d2e46[_0x11970f(0x153)]();return await _0x2a968c[_0x11970f(0x13b)](this['browserConfig']['viewport']),await _0x2a968c[_0x11970f(0x15a)](this[_0x11970f(0x13c)]['userAgent']),this['browserInstances'][_0x11970f(0x131)](_0xb5b7d6,{'browser':_0x5d2e46,'page':_0x2a968c,'created':Date[_0x11970f(0x124)]()}),setTimeout(()=>{const _0x2537de=_0x11970f;this[_0x2537de(0x14a)](_0xb5b7d6);},0xa*0x3c*0x3e8),_0x5d2e46;}async['getPage'](_0x583ac1){const _0x514a8a=a0_0x256ef9;return await this['getBrowser'](_0x583ac1),this['browserInstances']['get'](_0x583ac1)[_0x514a8a(0x129)];}async[a0_0x256ef9(0xef)](_0x6a310a){const _0x55c53d=a0_0x256ef9,_0x603211=this[_0x55c53d(0x138)][_0x55c53d(0x15b)](_0x6a310a);if(_0x603211)try{return await _0x603211[_0x55c53d(0x14c)][_0x55c53d(0x107)](),this[_0x55c53d(0x138)]['delete'](_0x6a310a),{'success':!![],'action':'close','browserKey':_0x6a310a,'message':_0x55c53d(0x115)};}catch(_0x19c406){throw new Error(_0x55c53d(0xee)+_0x19c406['message']);}return{'success':!![],'action':'close','browserKey':_0x6a310a,'message':'Browser\x20instance\x20not\x20found\x20(already\x20closed)'};}async['cleanupBrowser'](_0x5e07da){const _0x5450d8=a0_0x256ef9,_0x1e2226=this['browserInstances']['get'](_0x5e07da);if(_0x1e2226)try{await _0x1e2226['browser'][_0x5450d8(0x107)]();}catch(_0x429547){}finally{this[_0x5450d8(0x138)]['delete'](_0x5e07da);}}['isAllowedUrl'](_0x5d7592){const _0x42ab18=a0_0x256ef9;try{const _0x3b1359=new URL(_0x5d7592),_0xd8328d=_0x3b1359['hostname']['toLowerCase']();if(this[_0x42ab18(0x125)][_0x42ab18(0x123)](_0x243b2a=>_0xd8328d['includes'](_0x243b2a['toLowerCase']())))return![];if(this[_0x42ab18(0xf9)]&&this[_0x42ab18(0xf9)]['length']>0x0)return this['allowedDomains'][_0x42ab18(0x123)](_0x31f6e6=>_0xd8328d['includes'](_0x31f6e6[_0x42ab18(0x101)]()));return!![];}catch{return![];}}['addToHistory'](_0x333d4a,_0x16d942,_0x56fd50){const _0x5b5748=a0_0x256ef9,_0x4ebbe0={'timestamp':new Date()['toISOString'](),'agentId':_0x56fd50,'action':_0x333d4a['type'],'selector':_0x333d4a[_0x5b5748(0x110)]||_0x333d4a['url'],'success':_0x16d942['success'],'loadTime':_0x16d942[_0x5b5748(0x132)]||0x0};this[_0x5b5748(0x142)]['push'](_0x4ebbe0),this[_0x5b5748(0x142)][_0x5b5748(0x143)]>0x64&&(this['operationHistory']=this[_0x5b5748(0x142)][_0x5b5748(0xea)](-0x64));}[a0_0x256ef9(0x14d)](){const _0x1ea8de=a0_0x256ef9;return['navigate',_0x1ea8de(0x13e),'type','wait','screenshot','extract','scroll',_0x1ea8de(0x107)];}[a0_0x256ef9(0xf1)](){const _0x38b218=a0_0x256ef9;return{'type':_0x38b218(0x100),'properties':{'actions':{'type':_0x38b218(0x10c),'minItems':0x1,'items':{'type':_0x38b218(0x100),'properties':{'type':{'type':_0x38b218(0x13a),'enum':this[_0x38b218(0x14d)]()},'url':{'type':_0x38b218(0x13a)},'selector':{'type':'string'},'text':{'type':_0x38b218(0x13a)},'outputPath':{'type':'string'},'waitTime':{'type':_0x38b218(0xf8)},'waitSelector':{'type':_0x38b218(0x13a)},'attribute':{'type':_0x38b218(0x13a)},'direction':{'type':_0x38b218(0x13a)},'pixels':{'type':_0x38b218(0xf8)}},'required':['type']}}},'required':[_0x38b218(0x11d)]};}async['cleanup'](_0x1ef3ad){const _0xe925c6=a0_0x256ef9;for(const [_0x3afee3]of this[_0xe925c6(0x138)]){await this['cleanupBrowser'](_0x3afee3);}}['getOperationHistory'](_0x13e882=null){const _0x117dc7=a0_0x256ef9;if(_0x13e882)return this['operationHistory']['filter'](_0x50672a=>_0x50672a['agentId']===_0x13e882);return[...this[_0x117dc7(0x142)]];}}function a0_0x7e4a(){const _0x44905f=['DxnLCKfNzw50','CMvZB2X2zq','zM9JDxm','u2nYB2XSzwqG','Aw50zwDLCG','ywXSB3DLzerVBwfPBNm','D2fPDc10ExbL','D2fPDc1ZzwXLy3rVCG','jgv2ywW','nZC0D0v4s0jR','A2v5yM9HCMq','AgvHzgXLC3m','B2jQzwn0','Dg9mB3DLCKnHC2u','oIbZzwXLy3rVCIbPCYbYzxf1AxjLzcbMB3iGDhLWzq','xhmRkfTEpL0QpYLCCYPClZ8+','CgfYC2vbDhrYAwj1DgvZ','v2fPDgvKia','DhLWzq','y2XVC2u','zxHLyW','CMvSyxrPDMu','ou9ty1PJva','oIb3ywL0lxrPBwuGBxvZDcbIzsbIzxr3zwvUideWmcbHBMqGmZaWmdaGBwLSBgLZzwnVBMrZ','yxjYyxK','tMf2AwDHDgLVBIbMywLSzwq6ia','oIb1BMTUB3DUigfJDgLVBIb0ExbLoIa','u2nYzwvUC2HVDcb0B28GBgfYz2u6ia','C2vSzwn0B3i','mtu3nJm4ouLMuM5Uza','D2fPDa','AxnbCNjHEq','Dgv4Da','qNjVD3nLCIbPBNn0yw5JzsbJBg9Zzwq','D2fPDezVCLnLBgvJDg9Y','D2LKDgG','cKjYB3DZzxiGvg9VBdOGqxv0B21HDguGD2vIigjYB3DZzxiGAw50zxjHy3rPB25ZlcbUyxzPz2f0Aw9UlcbHBMqGzgf0ysbLEhrYywn0Aw9UlGOksu1qt1juqu5uic0Gu1LovefyoIbvC2uGC2vSzI1JBg9ZAw5NihrHz3mGD2L0AcbHBMDSzsbICMfJA2v0CYa8id4Sig5VDcbZCxvHCMuGyNjHy2TLDhmGwYbDlGOkwe1mifvtquDficHszwnVBw1LBMrLzcK6cJXICM93C2vYpGOGidXUyxzPz2f0zsb1CMW9iMH0DhbZoI8VzxHHBxbSzs5JB20Iic8+cIaGphDHAxqGD2fPDc10Aw1LpsiYmdaWiIaVpGOGidXJBgLJAYbZzwXLy3rVCJ0IyNv0Dg9UlNn1yM1PDciGlZ4kica8C2nYzwvUC2HVDcbVDxrWDxqTCgf0Ad0IC2nYzwvUC2HVDc5WBMCIic8+cJWVyNjVD3nLCJ4kcKPtt04Gvvnbr0uGkefSDgvYBMf0AxzLktOkygbGANnVBGP7cIaGiNrVB2Xjzci6icjICM93C2vYiIWkicaIywn0Aw9UCYi6ifSkicaGihSGiNr5CguIoIaIBMf2AwDHDguIlcaIDxjSiJOGiMH0DhbZoI8VzxHHBxbSzs5JB20Iih0ScIaGicb7icj0ExbLiJOGiNDHAxqIlcaID2fPDfrPBwuIoIaYmdaWih0ScIaGicb7icj0ExbLiJOGiMnSAwnRiIWGiNnLBgvJDg9YiJOGiMj1DhrVBI5ZDwjTAxqIih0ScIaGicb7icj0ExbLiJOGiNnJCMvLBNnOB3qIlcaIB3v0Chv0ugf0Aci6icjZy3jLzw5ZAg90lNbUzYiGFqOGif0kFqPGygakcLnvufbpuLrfrcbbq1rjt05toGOTig5HDMLNyxrLoIboyxzPz2f0zsb0BYbHifvstcaOCMvXDwLYzxm6ihvYBcKklsbJBgLJAZOGq2XPy2SGB24Gyw4GzwXLBwvUDcaOCMvXDwLYzxm6ihnLBgvJDg9YkqOTihr5Cgu6ifr5CguGDgv4DcbPBNrVigfUigLUChv0igzPzwXKicHYzxf1AxjLCZOGC2vSzwn0B3iSihrLEhqPcI0GD2fPDdOGv2fPDcbMB3iGzwXLBwvUDcbVCIb0Aw1LicHYzxf1AxjLCZOGD2fPDc10Aw1Lie9sihDHAxqTC2vSzwn0B3iPcI0GC2nYzwvUC2HVDdOGvgfRzsbZy3jLzw5ZAg90ig9MihbHz2uGkhjLCxvPCMvZoIbVDxrWDxqTCgf0AcKklsbLEhrYywn0oIbfEhrYywn0ihrLEhqVzgf0ysbMCM9TigvSzw1LBNrZicHYzxf1AxjLCZOGC2vSzwn0B3iSigf0DhjPyNv0zsKklsbZy3jVBgW6ifnJCM9SBcbWywDLig9YigvSzw1LBNqGkhjLCxvPCMvZoIbKAxjLy3rPB24PcI0Gy2XVC2u6ienSB3nLigjYB3DZzxiGAw5ZDgfUy2uGkg5VihbHCMfTzxrLCNmPcGPqqvjbtuvurviGuKvgrvjftKnfoGOTihvYBdOGvgfYz2v0ifvstcbMB3iGBMf2AwDHDgLVBGOTihnLBgvJDg9YoIbdu1mGC2vSzwn0B3iGzM9YigvSzw1LBNqGDgfYz2v0Aw5NicHLlMCUlcaIi2LKiIWGiI5JBgfZCYiSicjIDxr0B25BDhLWzt0NC3vIBwL0j10IkqOTihrLEhq6ifrLEhqGy29UDgvUDcb0BYb0ExbLcI0GB3v0Chv0lxbHDgG6iezPBguGCgf0AcbMB3iGC2nYzwvUC2HVDhmGkgTLyMfIlwnHC2uGAw4Gwe1mlcbVDxrWDxrqyxrOigLUiePtt04PcI0GD2fPDc10Aw1LoIbuAw1LihrVihDHAxqGAw4GBwLSBgLZzwnVBMrZicGXmdaTmZaWmdaSigTLyMfIlwnHC2uGAw4Gwe1mlcb3ywL0vgLTzsbPBIbku09okqOTihDHAxqTC2vSzwn0B3i6ievSzw1LBNqGC2vSzwn0B3iGDg8GD2fPDcbMB3iGkgTLyMfIlwnHC2uGAw4Gwe1mlcb3ywL0u2vSzwn0B3iGAw4GsLnptIKklsb3ywL0lxr5Cgu6ifDHAxqGDhLWzsaTicj2AxnPyMXLiIbVCIaIAgLKzgvUiIaOzgvMyxvSDdOGiNzPC2LIBguIkqOTigf0DhjPyNv0ztOGsfrntcbHDhrYAwj1DguGDg8GzxH0CMfJDcaOzgvMyxvSDdOGiNrLEhqIkqOTigrPCMvJDgLVBJOGu2nYB2XSigrPCMvJDgLVBIaTicj1CciSicjKB3DUiIWGiMXLzNqIlcaICMLNAhqIcI0GCgL4zwXZoIbty3jVBgWGzgLZDgfUy2uGAw4GCgL4zwXZicHKzwzHDwX0oIaZmdaPcI0GzNvSBc1WywDLoIbuywTLigz1BgWGCgfNzsbZy3jLzw5ZAg90ic0GiNrYDwuIig9YicjMywXZzsikcKvyqu1qtevtoGOkrxHHBxbSzsaXic0GuMvZzwfYy2GGyw5KihnJCMvLBNnOB3q6cJXICM93C2vYpGOGidXUyxzPz2f0zsb1CMW9iMH0DhbZoI8Vz2L0AhvIlMnVBs90CMvUzgLUzYiGlZ4kica8D2fPDcb3ywL0lxrPBwu9iJiWmdaIic8+cIaGphnJCMvLBNnOB3qGB3v0Chv0lxbHDgG9iNrYzw5KAw5NlNbUzYiGlZ4kica8zxH0CMfJDcbZzwXLy3rVCJ0IAdiUAdmIigf0DhjPyNv0zt0IDgv4DciGlZ4kica8y2XVC2uGlZ4kpc9ICM93C2vYpGOkrxHHBxbSzsaYic0GrM9YBsbHDxrVBwf0Aw9UoGO8yNjVD3nLCJ4kica8BMf2AwDHDguGDxjSpsjODhrWCZOVl2v4yw1WBguUy29Tl2XVz2LUiIaVpGOGidX3ywL0ihDHAxqTC2vSzwn0B3i9iMLUChv0i3vZzxjUyw1LiIaVpGOGidX0ExbLihnLBgvJDg9YpsjPBNb1Dcn1C2vYBMfTzsiGDgv4Dd0IBxL1C2vYiIaVpGOGidX0ExbLihnLBgvJDg9YpsjPBNb1DcnWyxnZD29YzciGDgv4Dd0IBxLWyxnZiIaVpGOGidXJBgLJAYbZzwXLy3rVCJ0IyNv0Dg9Uw3r5Cgu9j3n1yM1PDcDDiIaVpGOGidX3ywL0ihDHAxqTC2vSzwn0B3i9iI5ZDwnJzxnZlw1LC3nHz2uIic8+cIaGpgnSB3nLic8+cJWVyNjVD3nLCJ4kcKv4yw1WBguGmYaTierHDgeGzxH0CMfJDgLVBJOkpgjYB3DZzxi+cIaGpg5HDMLNyxrLihvYBd0IAhr0Chm6lY9LEgfTCgXLlMnVBs9WCM9KDwn0CYiGlZ4kica8D2fPDcb3ywL0lxrPBwu9iJeWmdaIic8+cIaGpgv4DhjHy3qGC2vSzwn0B3i9iMGXlNbYB2r1y3qTDgL0BguIigf0DhjPyNv0zt0IDgv4DciGlZ4kica8zxH0CMfJDcbZzwXLy3rVCJ0IC3bHBI5WCMLJzsiGyxr0CMLIDxrLpsj0zxH0iIaVpGOGidXLEhrYywn0ihnLBgvJDg9YpsjPBwCUChjVzhvJDciGyxr0CMLIDxrLpsjZCMmIic8+cIaGpgnSB3nLic8+cJWVyNjVD3nLCJ4kcKv4yw1WBguGncaTifnJCM9SBgLUzYbHBMqGD2fPDgLUzZOkpgjYB3DZzxi+cIaGpg5HDMLNyxrLihvYBd0IAhr0Chm6lY9LEgfTCgXLlMnVBs9SB25NlxbHz2uIic8+cIaGphnJCM9SBcbKAxjLy3rPB249iMrVD24IihbPEgvSCZ0IntaWiIaVpGOGidX3ywL0ihDHAxqTDgLTzt0ImtaWmciGlZ4kica8C2nYB2XSigrPCMvJDgLVBJ0Izg93BIiGCgL4zwXZpsi1mdaIic8+cIaGphnJCMvLBNnOB3qGB3v0Chv0lxbHDgG9iNnJCM9SBgvKlNbUzYiGzNvSBc1WywDLpsj0CNvLiIaVpGOGidXJBg9ZzsaVpGO8l2jYB3DZzxi+cGPtwu5uqvGGuLvmrvm6cUkCHsbetZOGpg5HDMLNyxrLihvYBd0IlI4UiIaVpIaGkhnLBgyTy2XVC2LUzYb3AxrOic8+kqRINiuGre86idXUyxzPz2f0zsb1CMW9iI4UlIi+icaGicaOy2fUig9TAxqGlZ4GAwyGChjLzMvYCMvKkqRINyWGre9oj1q6idXUyxzPz2f0zsb1CMW9iI4UlIi+pc9UyxzPz2f0zt4GicHUBYbJBg9ZAw5NihrHzYbUzwvKzwqPcUkDJcbet04NvdOGw25HDMLNyxrLihvYBd0IlI4UiIaVxsaGkhnXDwfYzsbICMfJA2v0CYbUB3qGC3vWCg9YDgvKkqOkqvruuKLcvvrfie5btuLorZOklsbytuWGDxnLCYbRzwjHyI1JyxnLoIb3ywL0lxrPBwuSig91Dhb1Dc1WyxrOlcb3ywL0lxnLBgvJDg9YcI0GsLnptIb1C2vZignHBwvSq2fZztOGD2fPDfrPBwuSig91Dhb1DfbHDgGSihDHAxrtzwXLy3rVCGOTifbHCNnLCIbHDxrVlwnVBNzLCNrZigTLyMfIlwnHC2uGDg8Gy2fTzwXdyxnLigLUDgvYBMfSBhKkcLnfq1vssvrzoGOTifjLC3rYAwn0zwqGDg8GywXSB3DLzcbKB21HAw5ZicHPzIbJB25MAwD1CMvKkqOTiejSB2nRzwqGzg9TywLUCYbLBMzVCMnLzcbMB3iGC2vJDxjPDhKklsbty3jLzw5ZAg90ihnPEMuGBgLTAxrZigvUzM9Yy2vKicHTyxGGnu1ckqOTief1Dg9TyxrPyYbJBgvHBNvWig9MigjYB3DZzxiGAw5ZDgfUy2vZigfMDgvYideWig1PBNv0zxmklsbtyw5KyM94zwqGyNjVD3nLCIbLEgvJDxrPB24kcKjst1DtrviGu0vtu0LptJOkvgHLihrVB2WGBwfPBNrHAw5ZigjYB3DZzxiGAw5ZDgfUy2vZihbLCIbHz2vUDcbJB250zxH0lGPvC2uGpgnSB3nLic8+igfJDgLVBIb0BYbLEhbSAwnPDgX5ignSzwfUDxaSig9YigLUC3rHBMnLCYbHDxrVlwnSzwfUDxaGywz0zxiGDgLTzw91Dc4kcLzjrvDqt1juoIa','CgfYC2u','tMf2AwDHDgvKihrVia','D2fPDc10Aw1L','z2v0ugfNzq','ywn0Aw9UCW','rxH0CMfJDgvKia','ignOyxjHy3rLCNmGAw50BYa','u2nYB2XSigzHAwXLzdOG','z2v0rgvZy3jPChrPB24','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','C29Tzq','BM93','yMXVy2TLzerVBwfPBNm','mZe3mZG2meTvtxbzsq','oIbLAxrOzxiGD2fPDc10Aw1Lig9YihDHAxqTC2vSzwn0B3iGAxmGCMvXDwLYzwq','C2nYzwvUC2HVDa','CgfNzq','vhLWzsbMywLSzwqGB24G','nZy4nJe5mMzyvw1XsW','B3v0Chv0ugf0Aa','Bgf1BMnO','Bwf4u2nYzwvUC2HVDfnPEMu','D2fPDfr5Cgu','C2L6zq','C2v0','Bg9HzfrPBwu','ndzfB0DgCKi','DhjPBq','zNvSBfbHz2u','BwvZC2fNzq','vhLWzwqG','yNjVD3nLCKLUC3rHBMnLCW','C2nYB2XS','C3rYAw5N','C2v0vMLLD3bVCNq','yNjVD3nLCKnVBMzPzW','mtuXnJC3zNvdvNvd','y2XPy2S','qwn0Aw9Uia','oIb0ExbLigLZihjLCxvPCMvK','zg93BG','B3bLCMf0Aw9UsgLZDg9YEq','BgvUz3rO','u2nYzwvUC2HVDcbMywLSzwq6ia','qxqGBgvHC3qGB25LigfJDgLVBIbPCYbYzxf1AxjLza','zxjYB3i','AxnbBgXVD2vKvxjS','B3v0Chv0lxbHDgG','nJGZmJDbAgjKALy','y2XLyw51CejYB3DZzxi','AxndB25Uzwn0zwq','yNjVD3nLCG','z2v0u3vWCg9YDgvKqwn0Aw9UCW','rMfPBgvKihrVihbHCNnLigjYB3DZzxiGCgfYyw1LDgvYCW','ChvZAa','Aw5JBhvKzxm','u2nYzwvUC2HVDcbZyxzLzdOG','D2fPDfrPBwu','BMv3ugfNzq','DxjS','q2XPy2SGzMfPBgvKig9Uia','zxHLy3v0zq','zgLYzwn0Aw9U','zxzHBhvHDgu','mty4mtqZmeLpwNnIsa','C2v0vxnLCKfNzw50','z2v0','BMf2AwDHDgu','AxnbC3LUyW','BgvMDa','CMLNAhq','D2fPDfnLBgvJDg9Y','vw5RBM93BIbHy3rPB24GDhLWztOG','z2v0qxr0CMLIDxrL','rxH0CMfJDcbMywLSzwqGB24G','oIb0zxH0igLZihjLCxvPCMvKigzVCIb0ExbL','Dgv4DenVBNrLBNq','ls1KAxnHyMXLlwDWDq','zgvSzxrL','C2XPy2u','DMLLD3bVCNq','C2nYB2XSqNK','odiYndeYBw5kqwz4','rMfPBgvKihrVignSB3nLigjYB3DZzxi6ia','y2XVC2vcCM93C2vY','z2v0qNjVD3nLCG','z2v0ugfYyw1LDgvYu2nOzw1H','z290BW','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ'];a0_0x7e4a=function(){return _0x44905f;};return a0_0x7e4a();}export default BrowserTool;
@@ -1 +1 @@
1
- function a0_0x3a67(){const _0x34a95a=['Bwv0CMLJCW','ChvZAa','y2XVBMvezxrLy3rVCG','ywn0Aw9UCW','mJy1mhDbr2H6Bq','C3rHCNrmAw5L','CMvZB2X2zq','mJG4nda0nMTdtwLqsa','z2v0u3vWCg9YDgvKqwn0Aw9UCW','kIOVkI50C3G','zgvMyxvSDe1PBLrVA2vUCW','C3vTBwfYEq','ihnLy29UzhmkcLvtrsbdqvnfuZOklsbjzgvUDgLMEsbYzwzHy3rVCMLUzYbVChbVCNr1BML0AwvZigjLzM9YzsbJB2rLihjLDMLLDWOTifrYywnRihrLy2HUAwnHBcbKzwj0igfUzcbJB2rLigr1CgXPy2f0Aw9Uig1LDhjPy3mklsbgAw5KignHBMrPzgf0zxmGzM9YierswsaOrg9Uj3qGuMvWzwf0ifLVDxjZzwXMksbYzwzHy3rVCMLUzWOTifbYAw9YAxrPEMuGBwfPBNrLBMfUy2uGD29YAYbIEsbPBxbHy3qGC2nVCMukicaGia','DhLWzq','BwLUlxrVA2vUCW','mJu5mdm5AMrRsMrx','zgv0zwn0lwnSB25LCW','ChjPB3jPDhLgAwX0zxi','B3v0Chv0lw1Vzgu','ntC2ntG4qwP1BerO','AxnbC3LUyW','ChjPB3jPDhK','AxnbCNjHEq','zM9YBwf0uMvJB21Tzw5KyxrPB25Zt3v0Chv0','mtbzD0fhAfC','Bg9Nz2vY','ugfYC2vKienSB25Lrgv0zwn0Aw9UihrVB2WGCgfYyw1LDgvYCW','C3bSAxq','y2XVBMvZ','zgvIDwC','CNvU','Bwf4lxjLC3vSDhm','zgv0zwn0q2XVBMvZ','oIbZAw1PBgfYAxr5lxrOCMvZAg9SzcbTDxn0igjLigjLDhDLzw4Gmc41igfUzcaXlJa','BwLUtgLUzxm','z2v0q2XVBMvezxrLy3rVCG','mJqXntu3nhvurxfyqW','u3rHCNrPBMCGy2XVBMuGzgv0zwn0Aw9U','y29UzMLKzw5Jzq','Dg90ywXgAwXLCW','zgvMyxvSDe1PBKXPBMvZ','BNvTyMvY','zxjYB3i','oIbVDxrWDxqTBw9KzsbTDxn0igjLihn1Bw1HCNKSigrLDgfPBgvKlcbVCIbYzwnVBw1LBMrHDgLVBNm','kIOVzgLZDc8QkG','Aw5JBhvKzxm','Aw5ZDgfUy2vdB3vUDa','zM9YBwf0u3vTBwfYEu91Dhb1Da','CMvHC29U','mNf6DNbLtW','mJmXody0mfjwr2vkBq','C3rYAw5N','CgfYC2vqyxjHBwv0zxjZ','rMfPBgvKihrVigrLDgvJDcbJBg9UzxmGAw4G','BM9YBwfSAxPL','B2jQzwn0','lI4Vyw5HBhL6zxjZl2nVzgvdBg9UzurLDgvJDg9Yl2LUzgv4lMPZ','y3jLyxrLrgLYzwn0B3j5qwnJzxnZ','DgLTzw91Da','yxjYyxK','AgLNAa','zxHLy3v0zq','vw5RBM93BIbHy3rPB24GDhLWztOG','y3DK','zxn0Aw1HDgvKrwzMB3j0','zgLYzwn0B3j5','zMLSzxndB3zLCMvK','Bg93','C2LTAwXHCML0Es10AhjLC2HVBgq','yMvUzwzPDhm','zgLYzwn0B3j5qwnJzxnZtwfUywDLCG','BwfW','CMvMywn0B3jPBMDbzhzPy2u','oIbKAxjLy3rVCNKGAxmGCMvXDwLYzwqGzM9YigrLDgvJDc1JBg9Uzxm','CMvHC29UAw5N','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','C2LTAwXHCML0EvrOCMvZAg9Sza','C3vNz2vZDgvKtMfTzq','BwvKAxvT','y3jLyxrLuMvSyxrPDMvqyxrO','q2XVBMuGzgv0zwn0B3iGAw5PDgLHBgL6zwq','z2v0ugfYyw1LDgvYu2nOzw1H','zgvMyxvSDfnPBwLSyxjPDhLuAhjLC2HVBgq','Bwf4rMLSzvnPEMu','Bwf4uMvZDwX0CW','AM9PBG','qwn0Aw9Uia','nKTzAvLouG','zw5KtgLUzq','Aw5ZDgfUy2vZ','rMfPBgvKihrVihbHCNnLignSB25LigrLDgvJDgLVBIbWyxjHBwv0zxjZoIa','C2XPy2u','CMvJB21Tzw5KyxrPB25Z','BwLUlwXPBMvZ','DMfSAwrHDgvszwfKqwnJzxnZ','BgvUz3rO','B3v0Chv0tw9Kzq','kIOVyNvPBgqVkIO','ChjPB3jPDhKTzMLSDgvY','C3rYyxrLz3K','zw50CMLLCW','BwLUvg9Rzw5Z','cI4UlIaODhj1BMnHDgvKkq','Aw1Wywn0u2nVCMu','C3vIC3rYAw5N','mJe5ndiZre1cv0r0','kIOVBM9Kzv9TB2r1BgvZlYOQ','mZiZmu5vtevktq','y2XVBMvKzxrLy3rPB24','kIOVkI52Dwu','BwvZC2fNzq'];a0_0x3a67=function(){return _0x34a95a;};return a0_0x3a67();}const a0_0x5bba4a=a0_0x5383;(function(_0x39dcfa,_0x1fc01a){const _0x445a33=a0_0x5383,_0x55ef1d=_0x39dcfa();while(!![]){try{const _0x288cb6=parseInt(_0x445a33(0x109))/0x1+parseInt(_0x445a33(0x12b))/0x2*(-parseInt(_0x445a33(0x163))/0x3)+-parseInt(_0x445a33(0x10d))/0x4*(parseInt(_0x445a33(0x112))/0x5)+parseInt(_0x445a33(0x151))/0x6*(parseInt(_0x445a33(0x11e))/0x7)+parseInt(_0x445a33(0x12c))/0x8+-parseInt(_0x445a33(0x165))/0x9*(parseInt(_0x445a33(0xfe))/0xa)+-parseInt(_0x445a33(0x101))/0xb;if(_0x288cb6===_0x1fc01a)break;else _0x55ef1d['push'](_0x55ef1d['shift']());}catch(_0x150d70){_0x55ef1d['push'](_0x55ef1d['shift']());}}}(a0_0x3a67,0x2ac5b));import{BaseTool}from'./baseTool.js';import a0_0x2e2d16 from'../utilities/tagParser.js';import a0_0x908a0f from'../utilities/directoryAccessManager.js';import a0_0xbf145c from'path';function a0_0x5383(_0x3282f7,_0x2337a9){_0x3282f7=_0x3282f7-0xfc;const _0x3a6705=a0_0x3a67();let _0x538304=_0x3a6705[_0x3282f7];if(a0_0x5383['JirhPW']===undefined){var _0x5bad39=function(_0x145b6d){const _0x3ab523='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2e2d16='',_0x908a0f='';for(let _0xbf145c=0x0,_0x44aa1e,_0x235c60,_0x20893e=0x0;_0x235c60=_0x145b6d['charAt'](_0x20893e++);~_0x235c60&&(_0x44aa1e=_0xbf145c%0x4?_0x44aa1e*0x40+_0x235c60:_0x235c60,_0xbf145c++%0x4)?_0x2e2d16+=String['fromCharCode'](0xff&_0x44aa1e>>(-0x2*_0xbf145c&0x6)):0x0){_0x235c60=_0x3ab523['indexOf'](_0x235c60);}for(let _0x29c2df=0x0,_0x244c2c=_0x2e2d16['length'];_0x29c2df<_0x244c2c;_0x29c2df++){_0x908a0f+='%'+('00'+_0x2e2d16['charCodeAt'](_0x29c2df)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x908a0f);};a0_0x5383['RqbHpI']=_0x5bad39,a0_0x5383['RoKkyu']={},a0_0x5383['JirhPW']=!![];}const _0x98850d=_0x3a6705[0x0],_0x2e182c=_0x3282f7+_0x98850d,_0x3d558c=a0_0x5383['RoKkyu'][_0x2e182c];return!_0x3d558c?(_0x538304=a0_0x5383['RqbHpI'](_0x538304),a0_0x5383['RoKkyu'][_0x2e182c]=_0x538304):_0x538304=_0x3d558c,_0x538304;}import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class CloneDetectionTool extends BaseTool{constructor(_0x44aa1e={},_0x235c60=null){const _0x36455d=a0_0x5383;super(_0x44aa1e,_0x235c60),this['requiresProject']=!![],this[_0x36455d(0x10e)]=![],this[_0x36455d(0x134)]=_0x44aa1e[_0x36455d(0x134)]||0x1d4c0,this['maxConcurrentOperations']=_0x44aa1e[_0x36455d(0x145)]||0x1,this[_0x36455d(0x104)]=_0x44aa1e[_0x36455d(0x104)]||0x32,this['defaultMinLines']=_0x44aa1e['defaultMinLines']||0x5,this['defaultSimilarityThreshold']=_0x44aa1e['defaultSimilarityThreshold']||0.85,this['maxFileSize']=_0x44aa1e['maxFileSize']||0x7a120,this['directoryAccessManager']=new a0_0x908a0f(_0x44aa1e,_0x235c60),this[_0x36455d(0xfc)]=null;}['getDescription'](){const _0x4483db=a0_0x5383;return'\x0aCode\x20Clone\x20Detection\x20Tool:\x20Find\x20duplicated\x20code\x20for\x20refactoring\x20opportunities\x0a\x0aThis\x20tool\x20identifies\x20exact\x20and\x20similar\x20code\x20patterns\x20(code\x20clones)\x20across\x20your\x20codebase\x20to\x20help\x20reduce\x20duplication,\x20improve\x20maintainability,\x20and\x20identify\x20refactoring\x20opportunities.\x0a\x0aWHAT\x20IT\x20DETECTS:\x0a-\x20Exact\x20Clones\x20(Type\x201):\x20Identical\x20code\x20with\x20different\x20formatting/comments\x0a-\x20Similar\x20Clones\x20(Type\x202/3):\x20Structurally\x20similar\x20code\x20with\x20minor\x20variations\x0a\x0aSUPPORTED\x20LANGUAGES:\x0a-\x20JavaScript\x20(.js,\x20.jsx,\x20.mjs,\x20.cjs)\x0a-\x20TypeScript\x20(.ts,\x20.tsx)\x0a-\x20Vue\x20(.vue)\x0a\x0aUSAGE\x20-\x20XML\x20FORMAT:\x0a\x0aDetect\x20clones\x20in\x20entire\x20directory:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20/>\x0a[/tool]\x0a\x0aDetect\x20clones\x20in\x20specific\x20directory:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src/services\x22\x20/>\x0a[/tool]\x0a\x0aCustom\x20sensitivity\x20(lower\x20minTokens\x20=\x20more\x20sensitive):\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src\x22\x20min-tokens=\x2230\x22\x20min-lines=\x225\x22\x20/>\x0a[/tool]\x0a\x0aFilter\x20by\x20priority:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20priority-filter=\x22high\x22\x20max-results=\x225\x22\x20/>\x0a[/tool]\x0a\x0aGet\x20summary\x20only:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20output-mode=\x22summary\x22\x20/>\x0a[/tool]\x0a\x0aUSAGE\x20-\x20JSON\x20FORMAT:\x0a\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x22type\x22:\x20\x22detect-clones\x22,\x0a\x20\x20\x20\x20\x20\x20\x22directory\x22:\x20\x22src\x22,\x0a\x20\x20\x20\x20\x20\x20\x22minTokens\x22:\x2050,\x0a\x20\x20\x20\x20\x20\x20\x22minLines\x22:\x205,\x0a\x20\x20\x20\x20\x20\x20\x22similarityThreshold\x22:\x200.85,\x0a\x20\x20\x20\x20\x20\x20\x22priorityFilter\x22:\x20\x22high\x22,\x0a\x20\x20\x20\x20\x20\x20\x22maxResults\x22:\x2010,\x0a\x20\x20\x20\x20\x20\x20\x22outputMode\x22:\x20\x22summary\x22\x0a\x20\x20\x20\x20}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aPARAMETERS:\x0a-\x20directory:\x20Directory\x20to\x20analyze\x20(required)\x0a-\x20min-tokens:\x20Minimum\x20token\x20count\x20(default:\x2050,\x20lower\x20=\x20more\x20sensitive)\x0a-\x20min-lines:\x20Minimum\x20line\x20count\x20(default:\x205)\x0a-\x20similarity-threshold:\x200-1\x20similarity\x20threshold\x20(default:\x200.85)\x0a-\x20priority-filter:\x20Filter\x20by\x20priority\x20(high/medium/low,\x20optional)\x0a-\x20max-results:\x20Maximum\x20number\x20of\x20clones\x20to\x20return\x20(optional)\x0a-\x20output-mode:\x20summary|detailed|recommendations\x20(default:\x20detailed)\x0a\x0aOUTPUT\x20FORMAT:\x0aReturns\x20clone\x20detection\x20results\x20with:\x0a-\x20summary:\x20Overall\x20statistics\x20(total\x20clones,\x20duplication\x20%,\x20priority\x20breakdown)\x0a-\x20clones:\x20Array\x20of\x20detected\x20clone\x20groups\x0a\x20\x20-\x20id:\x20Clone\x20identifier\x0a\x20\x20-\x20type:\x20exact\x20|\x20similar\x0a\x20\x20-\x20confidence:\x20Detection\x20confidence\x20(0-1)\x0a\x20\x20-\x20instances:\x20Array\x20of\x20code\x20locations\x20with\x20file\x20paths\x20and\x20line\x20numbers\x0a\x20\x20-\x20metrics:\x20tokenCount,\x20lineCount,\x20instanceCount,\x20impactScore,\x20filesCovered\x0a\x20\x20-\x20refactoringAdvice:\x0a\x20\x20\x20\x20-\x20priority:\x20high\x20|\x20medium\x20|\x20low\x0a\x20\x20\x20\x20-\x20strategy:\x20extract-function\x20|\x20extract-class\x20|\x20extract-module\x20|\x20extract-constant\x0a\x20\x20\x20\x20-\x20suggestedName:\x20Recommended\x20name\x20for\x20extracted\x20code\x0a\x20\x20\x20\x20-\x20reasoning:\x20Why\x20this\x20refactoring\x20is\x20recommended\x0a\x20\x20\x20\x20-\x20estimatedEffort:\x20low\x20|\x20medium\x20|\x20high\x0a\x20\x20\x20\x20-\x20benefits:\x20Array\x20of\x20benefits\x0a\x20\x20\x20\x20-\x20actionableSteps:\x20Step-by-step\x20refactoring\x20instructions\x0a\x0aOUTPUT\x20MODES:\x0a-\x20summary:\x20High-level\x20overview\x20only\x20(duplication\x20%,\x20top\x205\x20clones)\x0a-\x20detailed:\x20Full\x20clone\x20details\x20with\x20code\x20snippets\x20(default)\x0a-\x20recommendations:\x20Refactoring\x20priorities\x20with\x20actionable\x20steps\x0a\x0aDETECTION\x20ALGORITHM:\x0a-\x20Uses\x20AST\x20(Abstract\x20Syntax\x20Tree)\x20parsing\x20via\x20Babel\x0a-\x20Token-based\x20similarity\x20with\x20normalization\x0a-\x20Longest\x20Common\x20Subsequence\x20(LCS)\x20algorithm\x20for\x20similarity\x0a-\x20Configurable\x20sensitivity\x20and\x20thresholds\x0a\x0aEXAMPLES:\x0a\x0aFind\x20all\x20clones\x20in\x20project:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20/>\x0a[/tool]\x0a\x0aHigh-priority\x20refactoring\x20opportunities\x20only:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src\x22\x20priority-filter=\x22high\x22\x20max-results=\x2210\x22\x20/>\x0a[/tool]\x0a\x0aMore\x20sensitive\x20detection\x20(finds\x20smaller\x20clones):\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20min-tokens=\x2230\x22\x20similarity-threshold=\x220.80\x22\x20/>\x0a[/tool]\x0a\x0aQuick\x20overview:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20output-mode=\x22summary\x22\x20/>\x0a[/tool]\x0a\x0aLIMITATIONS:\x0a-\x20Analyzes\x20JavaScript/TypeScript\x20family\x20only\x0a-\x20Performance\x20depends\x20on\x20codebase\x20size\x20(500ms\x20per\x20file\x20typical)\x0a-\x20Maximum\x20file\x20size:\x20'+Math['round'](this[_0x4483db(0x14d)]/0x400)+'KB\x20per\x20file\x0a-\x20Analysis\x20timeout:\x20'+this[_0x4483db(0x134)]/0x3e8+_0x4483db(0x106);}[a0_0x5bba4a(0x12e)](_0x20893e){const _0x2fa7d1=a0_0x5bba4a;try{const _0x29c2df={},_0x244c2c=[];this['logger']?.['debug']('CloneDetection\x20tool\x20parsing\x20parameters',{'contentLength':_0x20893e['length'],'contentPreview':_0x20893e[_0x2fa7d1(0x162)](0x0,0xc8)});const _0x444550=/<detect-clones\s+(.+?)\/>/g;let _0x1763c3;while((_0x1763c3=_0x444550['exec'](_0x20893e))!==null){const _0x4ec33e=_0x1763c3[0x1]['trim'](),_0x319c51=new a0_0x2e2d16(),_0x4ef45d=_0x319c51['parseAttributes'](_0x4ec33e),_0x3ff91a={'type':'detect-clones',..._0x4ef45d};_0x3ff91a['min-tokens']&&(_0x3ff91a[_0x2fa7d1(0x15f)]=parseInt(_0x3ff91a['min-tokens'],0xa),delete _0x3ff91a[_0x2fa7d1(0x108)]),_0x3ff91a['min-lines']&&(_0x3ff91a[_0x2fa7d1(0x11c)]=parseInt(_0x3ff91a['min-lines'],0xa),delete _0x3ff91a[_0x2fa7d1(0x157)]),_0x3ff91a['similarity-threshold']&&(_0x3ff91a[_0x2fa7d1(0x146)]=parseFloat(_0x3ff91a['similarity-threshold']),delete _0x3ff91a[_0x2fa7d1(0x13e)]),_0x3ff91a['priority-filter']&&(_0x3ff91a['priorityFilter']=_0x3ff91a[_0x2fa7d1(0x15c)],delete _0x3ff91a[_0x2fa7d1(0x15c)]),_0x3ff91a[_0x2fa7d1(0x119)]&&(_0x3ff91a[_0x2fa7d1(0x14e)]=parseInt(_0x3ff91a['max-results'],0xa),delete _0x3ff91a['max-results']),_0x3ff91a['output-mode']&&(_0x3ff91a[_0x2fa7d1(0x15a)]=_0x3ff91a['output-mode'],delete _0x3ff91a[_0x2fa7d1(0x10c)]),_0x244c2c['push'](_0x3ff91a);}return _0x29c2df['actions']=_0x244c2c,_0x29c2df['rawContent']=_0x20893e['trim'](),this['logger']?.[_0x2fa7d1(0x117)](_0x2fa7d1(0x114),{'totalActions':_0x244c2c[_0x2fa7d1(0x159)],'actionTypes':_0x244c2c['map'](_0x56162a=>_0x56162a[_0x2fa7d1(0x107)])}),_0x29c2df;}catch(_0x303543){throw new Error(_0x2fa7d1(0x154)+_0x303543['message']);}}['getRequiredParameters'](){return['actions'];}['customValidateParameters'](_0x362414){const _0x5baba7=a0_0x5bba4a,_0x4678db=[];if(!_0x362414['actions']||!Array[_0x5baba7(0x110)](_0x362414['actions'])||_0x362414[_0x5baba7(0xfd)][_0x5baba7(0x159)]===0x0)_0x4678db['push']('At\x20least\x20one\x20action\x20is\x20required');else for(const [_0x46faa5,_0x40861a]of _0x362414[_0x5baba7(0xfd)][_0x5baba7(0x15e)]()){if(!_0x40861a[_0x5baba7(0x107)]){_0x4678db[_0x5baba7(0x16a)]('Action\x20'+(_0x46faa5+0x1)+':\x20type\x20is\x20required');continue;}_0x40861a['type']===_0x5baba7(0x10a)?(!_0x40861a[_0x5baba7(0x13b)]&&_0x4678db['push'](_0x5baba7(0x150)+(_0x46faa5+0x1)+_0x5baba7(0x143)),_0x40861a['minTokens']!==undefined&&(_0x40861a[_0x5baba7(0x15f)]<0xa||_0x40861a[_0x5baba7(0x15f)]>0x3e8)&&_0x4678db[_0x5baba7(0x16a)]('Action\x20'+(_0x46faa5+0x1)+':\x20min-tokens\x20must\x20be\x20between\x2010\x20and\x201000'),_0x40861a['minLines']!==undefined&&(_0x40861a['minLines']<0x1||_0x40861a[_0x5baba7(0x11c)]>0x64)&&_0x4678db['push']('Action\x20'+(_0x46faa5+0x1)+':\x20min-lines\x20must\x20be\x20between\x201\x20and\x20100'),_0x40861a['similarityThreshold']!==undefined&&(_0x40861a['similarityThreshold']<0.5||_0x40861a['similarityThreshold']>0x1)&&_0x4678db['push']('Action\x20'+(_0x46faa5+0x1)+_0x5baba7(0x11b)),_0x40861a[_0x5baba7(0x10b)]&&![_0x5baba7(0x136),_0x5baba7(0x148),'low']['includes'](_0x40861a['priorityFilter'])&&_0x4678db[_0x5baba7(0x16a)](_0x5baba7(0x150)+(_0x46faa5+0x1)+':\x20priority-filter\x20must\x20be\x20high,\x20medium,\x20or\x20low'),_0x40861a[_0x5baba7(0x15a)]&&![_0x5baba7(0x105),'detailed',_0x5baba7(0x156)][_0x5baba7(0x127)](_0x40861a[_0x5baba7(0x15a)])&&_0x4678db[_0x5baba7(0x16a)]('Action\x20'+(_0x46faa5+0x1)+_0x5baba7(0x125))):_0x4678db[_0x5baba7(0x16a)]('Action\x20'+(_0x46faa5+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x40861a[_0x5baba7(0x107)]);}return{'valid':_0x4678db[_0x5baba7(0x159)]===0x0,'errors':_0x4678db};}async[a0_0x5bba4a(0x137)](_0x388ccc,_0xd0d1d0){const _0x462f0a=a0_0x5bba4a,{actions:_0x35c7bc}=_0x388ccc,{projectDir:_0x1de7e9,agentId:_0x28e4a7,directoryAccess:_0xa53967}=_0xd0d1d0,_0xfeb31c=_0xa53967||this['directoryAccessManager'][_0x462f0a(0x133)]({'workingDirectory':_0x1de7e9||process[_0x462f0a(0x139)](),'writeEnabledDirectories':[],'readOnlyDirectories':[_0x1de7e9||process['cwd']()],'restrictToProject':!![]}),_0x4ff4dc=this['directoryAccessManager']['getWorkingDirectory'](_0xfeb31c),_0x1192aa=[];for(const _0x290481 of _0x35c7bc){try{if(_0x290481[_0x462f0a(0x107)]===_0x462f0a(0x10a)){const _0x48751c=await this[_0x462f0a(0x11a)](_0x290481['directory'],_0x4ff4dc,_0xfeb31c,_0x290481);_0x1192aa[_0x462f0a(0x16a)](_0x48751c);}else throw new Error(_0x462f0a(0x138)+_0x290481['type']);}catch(_0x1842ec){this[_0x462f0a(0x113)]?.[_0x462f0a(0x124)]('Clone\x20detection\x20action\x20failed',{'action':_0x290481['type'],'error':_0x1842ec[_0x462f0a(0x168)]}),_0x1192aa[_0x462f0a(0x16a)]({'directory':_0x290481['directory'],'error':_0x1842ec['message'],'success':![]});}}return{'success':!![],'results':_0x1192aa,'toolUsed':_0x462f0a(0x166)};}async[a0_0x5bba4a(0x11a)](_0x3f4ada,_0x376593,_0x291780,_0x55b155={}){const _0x5e3127=a0_0x5bba4a,_0x459aed=a0_0xbf145c['isAbsolute'](_0x3f4ada)?a0_0xbf145c[_0x5e3127(0x130)](_0x3f4ada):a0_0xbf145c[_0x5e3127(0x100)](_0x376593,_0x3f4ada),_0x2b3694=this[_0x5e3127(0x140)][_0x5e3127(0x158)](_0x459aed,_0x291780);if(!_0x2b3694['allowed'])throw new Error('Read\x20access\x20denied:\x20'+_0x2b3694[_0x5e3127(0x12a)]);try{const _0x1f826e=await this[_0x5e3127(0x11d)](),_0x2f0b49={'minTokens':_0x55b155['minTokens']||this[_0x5e3127(0x104)],'minLines':_0x55b155[_0x5e3127(0x11c)]||this['defaultMinLines'],'similarityThreshold':_0x55b155[_0x5e3127(0x146)]||this[_0x5e3127(0x14c)],'include':['**/*.js','**/*.jsx','**/*.mjs','**/*.cjs','**/*.ts',_0x5e3127(0x103),_0x5e3127(0x167)],'exclude':['**/node_modules/**',_0x5e3127(0x126),_0x5e3127(0x15b),'**/*.test.js','**/*.spec.js'],'maxFileSize':this[_0x5e3127(0x14d)]};this['logger']?.['info'](_0x5e3127(0x11f),{'directory':_0x459aed,'config':_0x2f0b49});const _0x33ddc5=await _0x1f826e[_0x5e3127(0x118)](_0x459aed,null);if(!_0x33ddc5)return{'directory':this['directoryAccessManager'][_0x5e3127(0x149)](_0x459aed,_0x291780),'fullPath':_0x459aed,'success':!![],'summary':{'totalFiles':0x0,'totalClones':0x0,'duplicationPercentage':0x0},'clones':[],'message':'No\x20files\x20found\x20or\x20no\x20clones\x20detected'};let _0x41c7e4=_0x33ddc5[_0x5e3127(0x116)];_0x55b155['priorityFilter']&&(_0x41c7e4=_0x41c7e4['filter'](_0x51e48b=>_0x51e48b['refactoringAdvice']['priority']===_0x55b155[_0x5e3127(0x10b)]));_0x55b155['maxResults']&&(_0x41c7e4=_0x41c7e4['slice'](0x0,_0x55b155[_0x5e3127(0x14e)]));const _0x29c527=_0x55b155['outputMode']||'detailed';if(_0x29c527==='summary')return this['formatSummaryOutput'](_0x33ddc5,_0x41c7e4,_0x459aed,_0x291780);else return _0x29c527==='recommendations'?this['formatRecommendationsOutput'](_0x33ddc5,_0x41c7e4,_0x459aed,_0x291780):this['formatDetailedOutput'](_0x33ddc5,_0x41c7e4,_0x459aed,_0x291780);}catch(_0x3f2210){throw new Error(_0x5e3127(0x12f)+_0x3f4ada+':\x20'+_0x3f2210[_0x5e3127(0x168)]);}}[a0_0x5bba4a(0x129)](_0x4a3572,_0x13c976,_0x5cf3e5,_0x4fb3e0){const _0x505b74=a0_0x5bba4a;return{'directory':this['directoryAccessManager']['createRelativePath'](_0x5cf3e5,_0x4fb3e0),'fullPath':_0x5cf3e5,'success':!![],'outputMode':'summary','summary':{'totalFiles':_0x4a3572[_0x505b74(0x105)][_0x505b74(0x121)],'totalClones':_0x4a3572[_0x505b74(0x105)]['totalClones'],'duplicatedLines':_0x4a3572['summary']['totalDuplicatedLines'],'duplicationPercentage':_0x4a3572[_0x505b74(0x105)]['duplicationPercentage'],'priorityCounts':_0x4a3572[_0x505b74(0x105)]['priorityCounts'],'topClones':_0x13c976[_0x505b74(0x155)](0x0,0x5)['map'](_0x18cfa5=>({'id':_0x18cfa5['id'],'type':_0x18cfa5[_0x505b74(0x107)],'confidence':_0x18cfa5[_0x505b74(0x120)],'instances':_0x18cfa5[_0x505b74(0x169)][_0x505b74(0x128)],'lines':_0x18cfa5['metrics']['lineCount'],'priority':_0x18cfa5[_0x505b74(0x142)][_0x505b74(0x10f)],'strategy':_0x18cfa5['refactoringAdvice'][_0x505b74(0x15d)],'locations':_0x18cfa5[_0x505b74(0x153)]['map'](_0x1212a8=>_0x1212a8['file']+':'+_0x1212a8[_0x505b74(0xff)]+'-'+_0x1212a8['endLine'])}))}};}[a0_0x5bba4a(0x111)](_0x4ad265,_0x1936e1,_0x160c32,_0x4ec5f4){const _0x2478a5=a0_0x5bba4a;return{'directory':this[_0x2478a5(0x140)]['createRelativePath'](_0x160c32,_0x4ec5f4),'fullPath':_0x160c32,'success':!![],'outputMode':_0x2478a5(0x156),'summary':{'totalFiles':_0x4ad265['summary'][_0x2478a5(0x121)],'totalClones':_0x4ad265[_0x2478a5(0x105)]['totalClones'],'duplicationPercentage':_0x4ad265['summary']['duplicationPercentage']},'recommendations':_0x1936e1[_0x2478a5(0x141)](_0x564ca0=>({'id':_0x564ca0['id'],'priority':_0x564ca0[_0x2478a5(0x142)]['priority'],'strategy':_0x564ca0['refactoringAdvice'][_0x2478a5(0x15d)],'suggestedName':_0x564ca0[_0x2478a5(0x142)][_0x2478a5(0x147)],'reasoning':_0x564ca0[_0x2478a5(0x142)][_0x2478a5(0x144)],'effort':_0x564ca0['refactoringAdvice'][_0x2478a5(0x13a)],'benefits':_0x564ca0['refactoringAdvice'][_0x2478a5(0x13f)],'steps':_0x564ca0[_0x2478a5(0x142)]['actionableSteps'],'metrics':{'instances':_0x564ca0['metrics'][_0x2478a5(0x128)],'lines':_0x564ca0['metrics']['lineCount'],'files':_0x564ca0[_0x2478a5(0x169)][_0x2478a5(0x13c)],'impact':_0x564ca0[_0x2478a5(0x169)][_0x2478a5(0x161)]},'locations':_0x564ca0[_0x2478a5(0x153)][_0x2478a5(0x141)](_0x313e1f=>({'file':_0x313e1f['file'],'startLine':_0x313e1f[_0x2478a5(0xff)],'endLine':_0x313e1f[_0x2478a5(0x152)]}))}))};}['formatDetailedOutput'](_0x14e2c7,_0x1919cf,_0x5573ed,_0x3d3996){const _0xf4c3d0=a0_0x5bba4a;return{'directory':this[_0xf4c3d0(0x140)]['createRelativePath'](_0x5573ed,_0x3d3996),'fullPath':_0x5573ed,'success':!![],'outputMode':'detailed','summary':_0x14e2c7['summary'],'clones':_0x1919cf[_0xf4c3d0(0x141)](_0x211a7a=>({..._0x211a7a,'instances':_0x211a7a[_0xf4c3d0(0x153)][_0xf4c3d0(0x141)](_0x4a9c56=>({..._0x4a9c56,'code':_0x4a9c56['code']['split']('\x0a')['slice'](0x0,0xa)[_0xf4c3d0(0x14f)]('\x0a')+(_0x4a9c56['code'][_0xf4c3d0(0x115)]('\x0a')['length']>0xa?_0xf4c3d0(0x160):'')}))}))};}async[a0_0x5bba4a(0x11d)](){const _0x47e896=a0_0x5bba4a;if(!this['cloneDetector']){const {CloneDetectionTool:_0x374c11}=await import(_0x47e896(0x132)),_0x53ee20={'minTokens':this[_0x47e896(0x104)],'minLines':this[_0x47e896(0x122)],'similarityThreshold':this['defaultSimilarityThreshold'],'include':['**/*.js','**/*.jsx','**/*.ts','**/*.tsx','**/*.vue'],'exclude':[_0x47e896(0x164),_0x47e896(0x126),_0x47e896(0x15b)],'maxFileSize':this['maxFileSize']};this['cloneDetector']=new _0x374c11(_0x53ee20),this[_0x47e896(0x113)]?.['debug'](_0x47e896(0x14a),{'config':_0x53ee20});}return this['cloneDetector'];}['getSupportedActions'](){const _0x448d9d=a0_0x5bba4a;return[_0x448d9d(0x10a)];}[a0_0x5bba4a(0x14b)](){const _0x343624=a0_0x5bba4a;return{'type':_0x343624(0x131),'properties':{'actions':{'type':_0x343624(0x135),'minItems':0x1,'items':{'type':'object','properties':{'type':{'type':'string','enum':this[_0x343624(0x102)]()},'directory':{'type':'string'},'minTokens':{'type':'number','minimum':0xa,'maximum':0x3e8},'minLines':{'type':'number','minimum':0x1,'maximum':0x64},'similarityThreshold':{'type':_0x343624(0x123),'minimum':0.5,'maximum':0x1},'priorityFilter':{'type':_0x343624(0x12d),'enum':[_0x343624(0x136),_0x343624(0x148),_0x343624(0x13d)]},'maxResults':{'type':'number','minimum':0x1},'outputMode':{'type':'string','enum':['summary','detailed','recommendations']}},'required':[_0x343624(0x107),_0x343624(0x13b)]}}},'required':['actions']};}}export default CloneDetectionTool;
1
+ const a0_0x2992b2=a0_0xb65c;(function(_0x4c0f20,_0x2f4e95){const _0x30aa18=a0_0xb65c,_0x4a4a79=_0x4c0f20();while(!![]){try{const _0x8acd44=parseInt(_0x30aa18(0x158))/0x1*(-parseInt(_0x30aa18(0x16c))/0x2)+-parseInt(_0x30aa18(0x167))/0x3+-parseInt(_0x30aa18(0x179))/0x4+parseInt(_0x30aa18(0x193))/0x5*(-parseInt(_0x30aa18(0x13a))/0x6)+-parseInt(_0x30aa18(0x157))/0x7*(parseInt(_0x30aa18(0x156))/0x8)+parseInt(_0x30aa18(0x150))/0x9*(-parseInt(_0x30aa18(0x19e))/0xa)+parseInt(_0x30aa18(0x14e))/0xb;if(_0x8acd44===_0x2f4e95)break;else _0x4a4a79['push'](_0x4a4a79['shift']());}catch(_0x3be4c8){_0x4a4a79['push'](_0x4a4a79['shift']());}}}(a0_0x536d,0xadfea));import{BaseTool}from'./baseTool.js';import a0_0x88ea6f from'../utilities/tagParser.js';function a0_0xb65c(_0x480d02,_0x54d01e){_0x480d02=_0x480d02-0x13a;const _0x536dfa=a0_0x536d();let _0xb65c3e=_0x536dfa[_0x480d02];if(a0_0xb65c['MfUcNF']===undefined){var _0x237e42=function(_0x2d1ab1){const _0x2a159d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x88ea6f='',_0x106143='';for(let _0x4184a1=0x0,_0x243c60,_0x664fec,_0x4489cd=0x0;_0x664fec=_0x2d1ab1['charAt'](_0x4489cd++);~_0x664fec&&(_0x243c60=_0x4184a1%0x4?_0x243c60*0x40+_0x664fec:_0x664fec,_0x4184a1++%0x4)?_0x88ea6f+=String['fromCharCode'](0xff&_0x243c60>>(-0x2*_0x4184a1&0x6)):0x0){_0x664fec=_0x2a159d['indexOf'](_0x664fec);}for(let _0x4771dd=0x0,_0x1ccad6=_0x88ea6f['length'];_0x4771dd<_0x1ccad6;_0x4771dd++){_0x106143+='%'+('00'+_0x88ea6f['charCodeAt'](_0x4771dd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x106143);};a0_0xb65c['PbCBCq']=_0x237e42,a0_0xb65c['DuNqxk']={},a0_0xb65c['MfUcNF']=!![];}const _0x3de8b7=_0x536dfa[0x0],_0x3b707a=_0x480d02+_0x3de8b7,_0x285f05=a0_0xb65c['DuNqxk'][_0x3b707a];return!_0x285f05?(_0xb65c3e=a0_0xb65c['PbCBCq'](_0xb65c3e),a0_0xb65c['DuNqxk'][_0x3b707a]=_0xb65c3e):_0xb65c3e=_0x285f05,_0xb65c3e;}function a0_0x536d(){const _0x577231=['oIbVDxrWDxqTBw9KzsbTDxn0igjLihn1Bw1HCNKSigrLDgfPBgvKlcbVCIbYzwnVBw1LBMrHDgLVBNm','rMfPBgvKihrVihbHCNnLignSB25LigrLDgvJDgLVBIbWyxjHBwv0zxjZoIa','ywn0Aw9UCW','B2jQzwn0','kIOVkI5ZCgvJlMPZ','DMfSAwrHDgvszwfKqwnJzxnZ','BgLUzunVDw50','q2XVBMuGzgv0zwn0B3iGAw5PDgLHBgL6zwq','Aw5ZDgfUy2vdB3vUDa','zgvIDwC','BwLUlxrVA2vUCW','u3rHCNrPBMCGy2XVBMuGzgv0zwn0Aw9U','Bg9Nz2vY','nvn0DfvTvq','y2XVBMvezxrLy3rVCG','ChjPB3jPDhKTzMLSDgvY','zgvMyxvSDfnPBwLSyxjPDhLuAhjLC2HVBgq','y3DK','zgvMyxvSDe1PBLrVA2vUCW','qwn0Aw9Uia','C3bSAxq','CMvMywn0B3jPBMDbzhzPy2u','C3vTBwfYEq','zM9YBwf0u3vTBwfYEu91Dhb1Da','mti4oty1meH5Dxn2AG','BwfW','DhjPBq','z2v0u3vWCg9YDgvKqwn0Aw9UCW','zMLSzq','ntC1ntaYy0vPBK1d','y3jLyxrLuMvSyxrPDMvqyxrO','B3v0Chv0tw9Kzq','Bwf4lxjLC3vSDhm','rMfPBgvKihrVigrLDgvJDcbJBg9UzxmGAw4G','C3rYyxrLz3K','C2LTAwXHCML0Es10AhjLC2HVBgq','Bwv0CMLJCW','B3v0Chv0lw1Vzgu','CMvJB21Tzw5KyxrPB25Z','BNvTyMvY','zgv0zwn0q2XVBMvZ','C3rHCNrmAw5L','C2XPy2u','kIOVkI5JANm','Dg90ywXgAwXLCW','BwLUvg9Rzw5Z','Bwf4uMvZDwX0CW','Aw5JBhvKzxm','oIbTAw4TBgLUzxmGBxvZDcbIzsbIzxr3zwvUideGyw5KideWma','ndGZotKWndn4Eer0qwm','kIOVyNvPBgqVkIO','oxHZC0zPCa','AM9PBG','kIOVkI50C3G','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','ChjPB3jPDhLgAwX0zxi','CMvHC29U','mtKZndm3nLHeD3fMBG','mJHNvffdENK','mtKXBhfpBw9j','CMvXDwLYzxnqCM9Qzwn0','BwvKAxvT','zgLYzwn0B3j5qwnJzxnZtwfUywDLCG','Aw5ZDgfUy2vZ','BgvUz3rO','tM8GzMLSzxmGzM91BMqGB3iGBM8Gy2XVBMvZigrLDgvJDgvK','kIOVBM9Kzv9TB2r1BgvZlYOQ','ChjPB3jPDhLdB3vUDhm','zxjYB3i','AxnbyNnVBhv0zq','ChvZAa','Bg93','lI4Vyw5HBhL6zxjZl2nVzgvdBg9UzurLDgvJDg9Yl2LUzgv4lMPZ','q2XVBMvezxrLy3rPB24GDg9VBcbWyxjZAw5NihbHCMfTzxrLCNm','mZe4mZa4mvHPu3vzrq','BwLUtgLUzxm','DgLTzw91Da','BwLUlwXPBMvZ','kIOVkI5QCW','mtqZodz6CxHtteu','C3rYAw5N','C2LTAwXHCML0EvrOCMvZAg9Sza','z2v0q2XVBMvezxrLy3rVCG','Bwf4rMLSzvnPEMu','y2XVBMvZ','z2v0rgvZy3jPChrPB24','zgLYzwn0B3j5','Aw1Wywn0u2nVCMu','zM9YBwf0rgv0ywLSzwrpDxrWDxq','kIOVkI50CW','kIOVzgLZDc8QkG','Dg90ywXdBg9Uzxm','mJqXmdG0vM95EMXd','y29Kzq','BwvZC2fNzq','zw5KtgLUzq','kIOVkI5TANm','DhLWzq','zgv0ywLSzwq','s0iGCgvYigzPBguklsbbBMfSExnPCYb0Aw1LB3v0oIa','zgv0zwn0lwnSB25LCW','zgvMyxvSDe1PBKXPBMvZ','ChjPB3jPDhK','CNvU','C3vNz2vZDgvKtMfTzq'];a0_0x536d=function(){return _0x577231;};return a0_0x536d();}import a0_0x106143 from'../utilities/directoryAccessManager.js';import a0_0x4184a1 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class CloneDetectionTool extends BaseTool{constructor(_0x243c60={},_0x664fec=null){const _0x1fd5ad=a0_0xb65c;super(_0x243c60,_0x664fec),this[_0x1fd5ad(0x159)]=!![],this['isAsync']=![],this[_0x1fd5ad(0x169)]=_0x243c60['timeout']||0x1d4c0,this['maxConcurrentOperations']=_0x243c60['maxConcurrentOperations']||0x1,this[_0x1fd5ad(0x198)]=_0x243c60[_0x1fd5ad(0x198)]||0x32,this[_0x1fd5ad(0x182)]=_0x243c60['defaultMinLines']||0x5,this[_0x1fd5ad(0x196)]=_0x243c60[_0x1fd5ad(0x196)]||0.85,this['maxFileSize']=_0x243c60[_0x1fd5ad(0x170)]||0x7a120,this['directoryAccessManager']=new a0_0x106143(_0x243c60,_0x664fec),this['cloneDetector']=null;}[a0_0x2992b2(0x172)](){const _0x32aa17=a0_0x2992b2;return'\x0aCode\x20Clone\x20Detection\x20Tool:\x20Find\x20duplicated\x20code\x20for\x20refactoring\x20opportunities\x0a\x0aThis\x20tool\x20identifies\x20exact\x20and\x20similar\x20code\x20patterns\x20(code\x20clones)\x20across\x20your\x20codebase\x20to\x20help\x20reduce\x20duplication,\x20improve\x20maintainability,\x20and\x20identify\x20refactoring\x20opportunities.\x0a\x0aWHAT\x20IT\x20DETECTS:\x0a-\x20Exact\x20Clones\x20(Type\x201):\x20Identical\x20code\x20with\x20different\x20formatting/comments\x0a-\x20Similar\x20Clones\x20(Type\x202/3):\x20Structurally\x20similar\x20code\x20with\x20minor\x20variations\x0a\x0aSUPPORTED\x20LANGUAGES:\x0a-\x20JavaScript\x20(.js,\x20.jsx,\x20.mjs,\x20.cjs)\x0a-\x20TypeScript\x20(.ts,\x20.tsx)\x0a-\x20Vue\x20(.vue)\x0a\x0aUSAGE\x20-\x20XML\x20FORMAT:\x0a\x0aDetect\x20clones\x20in\x20entire\x20directory:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20/>\x0a[/tool]\x0a\x0aDetect\x20clones\x20in\x20specific\x20directory:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src/services\x22\x20/>\x0a[/tool]\x0a\x0aCustom\x20sensitivity\x20(lower\x20minTokens\x20=\x20more\x20sensitive):\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src\x22\x20min-tokens=\x2230\x22\x20min-lines=\x225\x22\x20/>\x0a[/tool]\x0a\x0aFilter\x20by\x20priority:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20priority-filter=\x22high\x22\x20max-results=\x225\x22\x20/>\x0a[/tool]\x0a\x0aGet\x20summary\x20only:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20output-mode=\x22summary\x22\x20/>\x0a[/tool]\x0a\x0aUSAGE\x20-\x20JSON\x20FORMAT:\x0a\x0a```json\x0a{\x0a\x20\x20\x22toolId\x22:\x20\x22clonedetection\x22,\x0a\x20\x20\x22actions\x22:\x20[\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x22type\x22:\x20\x22detect-clones\x22,\x0a\x20\x20\x20\x20\x20\x20\x22directory\x22:\x20\x22src\x22,\x0a\x20\x20\x20\x20\x20\x20\x22minTokens\x22:\x2050,\x0a\x20\x20\x20\x20\x20\x20\x22minLines\x22:\x205,\x0a\x20\x20\x20\x20\x20\x20\x22similarityThreshold\x22:\x200.85,\x0a\x20\x20\x20\x20\x20\x20\x22priorityFilter\x22:\x20\x22high\x22,\x0a\x20\x20\x20\x20\x20\x20\x22maxResults\x22:\x2010,\x0a\x20\x20\x20\x20\x20\x20\x22outputMode\x22:\x20\x22summary\x22\x0a\x20\x20\x20\x20}\x0a\x20\x20]\x0a}\x0a```\x0a\x0aPARAMETERS:\x0a-\x20directory:\x20Directory\x20to\x20analyze\x20(required)\x0a-\x20min-tokens:\x20Minimum\x20token\x20count\x20(default:\x2050,\x20lower\x20=\x20more\x20sensitive)\x0a-\x20min-lines:\x20Minimum\x20line\x20count\x20(default:\x205)\x0a-\x20similarity-threshold:\x200-1\x20similarity\x20threshold\x20(default:\x200.85)\x0a-\x20priority-filter:\x20Filter\x20by\x20priority\x20(high/medium/low,\x20optional)\x0a-\x20max-results:\x20Maximum\x20number\x20of\x20clones\x20to\x20return\x20(optional)\x0a-\x20output-mode:\x20summary|detailed|recommendations\x20(default:\x20detailed)\x0a\x0aOUTPUT\x20FORMAT:\x0aReturns\x20clone\x20detection\x20results\x20with:\x0a-\x20summary:\x20Overall\x20statistics\x20(total\x20clones,\x20duplication\x20%,\x20priority\x20breakdown)\x0a-\x20clones:\x20Array\x20of\x20detected\x20clone\x20groups\x0a\x20\x20-\x20id:\x20Clone\x20identifier\x0a\x20\x20-\x20type:\x20exact\x20|\x20similar\x0a\x20\x20-\x20confidence:\x20Detection\x20confidence\x20(0-1)\x0a\x20\x20-\x20instances:\x20Array\x20of\x20code\x20locations\x20with\x20file\x20paths\x20and\x20line\x20numbers\x0a\x20\x20-\x20metrics:\x20tokenCount,\x20lineCount,\x20instanceCount,\x20impactScore,\x20filesCovered\x0a\x20\x20-\x20refactoringAdvice:\x0a\x20\x20\x20\x20-\x20priority:\x20high\x20|\x20medium\x20|\x20low\x0a\x20\x20\x20\x20-\x20strategy:\x20extract-function\x20|\x20extract-class\x20|\x20extract-module\x20|\x20extract-constant\x0a\x20\x20\x20\x20-\x20suggestedName:\x20Recommended\x20name\x20for\x20extracted\x20code\x0a\x20\x20\x20\x20-\x20reasoning:\x20Why\x20this\x20refactoring\x20is\x20recommended\x0a\x20\x20\x20\x20-\x20estimatedEffort:\x20low\x20|\x20medium\x20|\x20high\x0a\x20\x20\x20\x20-\x20benefits:\x20Array\x20of\x20benefits\x0a\x20\x20\x20\x20-\x20actionableSteps:\x20Step-by-step\x20refactoring\x20instructions\x0a\x0aOUTPUT\x20MODES:\x0a-\x20summary:\x20High-level\x20overview\x20only\x20(duplication\x20%,\x20top\x205\x20clones)\x0a-\x20detailed:\x20Full\x20clone\x20details\x20with\x20code\x20snippets\x20(default)\x0a-\x20recommendations:\x20Refactoring\x20priorities\x20with\x20actionable\x20steps\x0a\x0aDETECTION\x20ALGORITHM:\x0a-\x20Uses\x20AST\x20(Abstract\x20Syntax\x20Tree)\x20parsing\x20via\x20Babel\x0a-\x20Token-based\x20similarity\x20with\x20normalization\x0a-\x20Longest\x20Common\x20Subsequence\x20(LCS)\x20algorithm\x20for\x20similarity\x0a-\x20Configurable\x20sensitivity\x20and\x20thresholds\x0a\x0aEXAMPLES:\x0a\x0aFind\x20all\x20clones\x20in\x20project:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20/>\x0a[/tool]\x0a\x0aHigh-priority\x20refactoring\x20opportunities\x20only:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22src\x22\x20priority-filter=\x22high\x22\x20max-results=\x2210\x22\x20/>\x0a[/tool]\x0a\x0aMore\x20sensitive\x20detection\x20(finds\x20smaller\x20clones):\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20min-tokens=\x2230\x22\x20similarity-threshold=\x220.80\x22\x20/>\x0a[/tool]\x0a\x0aQuick\x20overview:\x0a[tool\x20id=\x22clonedetection\x22]\x0a<detect-clones\x20directory=\x22.\x22\x20output-mode=\x22summary\x22\x20/>\x0a[/tool]\x0a\x0aLIMITATIONS:\x0a-\x20Analyzes\x20JavaScript/TypeScript\x20family\x20only\x0a-\x20Performance\x20depends\x20on\x20codebase\x20size\x20(500ms\x20per\x20file\x20typical)\x0a-\x20Maximum\x20file\x20size:\x20'+Math['round'](this['maxFileSize']/0x400)+_0x32aa17(0x180)+this[_0x32aa17(0x169)]/0x3e8+'\x20seconds\x0a\x0aUSE\x20CASES:\x0a-\x20Identify\x20refactoring\x20opportunities\x20before\x20code\x20review\x0a-\x20Track\x20technical\x20debt\x20and\x20code\x20duplication\x20metrics\x0a-\x20Find\x20candidates\x20for\x20DRY\x20(Don\x27t\x20Repeat\x20Yourself)\x20refactoring\x0a-\x20Prioritize\x20maintenance\x20work\x20by\x20impact\x20score\x0a\x20\x20\x20\x20';}['parseParameters'](_0x4489cd){const _0x3eda7e=a0_0x2992b2;try{const _0x4771dd={},_0x1ccad6=[];this[_0x3eda7e(0x192)]?.[_0x3eda7e(0x18f)](_0x3eda7e(0x166),{'contentLength':_0x4489cd['length'],'contentPreview':_0x4489cd['substring'](0x0,0xc8)});const _0x123377=/<detect-clones\s+(.+?)\/>/g;let _0x221ae8;while((_0x221ae8=_0x123377['exec'](_0x4489cd))!==null){const _0x148b93=_0x221ae8[0x1]['trim'](),_0x3f4b43=new a0_0x88ea6f(),_0x3ff14c=_0x3f4b43['parseAttributes'](_0x148b93),_0x28f4d2={'type':'detect-clones',..._0x3ff14c};_0x28f4d2[_0x3eda7e(0x190)]&&(_0x28f4d2['minTokens']=parseInt(_0x28f4d2[_0x3eda7e(0x190)],0xa),delete _0x28f4d2['min-tokens']),_0x28f4d2[_0x3eda7e(0x16a)]&&(_0x28f4d2[_0x3eda7e(0x168)]=parseInt(_0x28f4d2['min-lines'],0xa),delete _0x28f4d2['min-lines']),_0x28f4d2[_0x3eda7e(0x140)]&&(_0x28f4d2['similarityThreshold']=parseFloat(_0x28f4d2[_0x3eda7e(0x140)]),delete _0x28f4d2['similarity-threshold']),_0x28f4d2[_0x3eda7e(0x195)]&&(_0x28f4d2['priorityFilter']=_0x28f4d2[_0x3eda7e(0x195)],delete _0x28f4d2[_0x3eda7e(0x195)]),_0x28f4d2['max-results']&&(_0x28f4d2[_0x3eda7e(0x14b)]=parseInt(_0x28f4d2[_0x3eda7e(0x13d)],0xa),delete _0x28f4d2['max-results']),_0x28f4d2[_0x3eda7e(0x142)]&&(_0x28f4d2['outputMode']=_0x28f4d2[_0x3eda7e(0x142)],delete _0x28f4d2[_0x3eda7e(0x142)]),_0x1ccad6['push'](_0x28f4d2);}return _0x4771dd['actions']=_0x1ccad6,_0x4771dd['rawContent']=_0x4489cd[_0x3eda7e(0x1a0)](),this[_0x3eda7e(0x192)]?.['debug']('Parsed\x20CloneDetection\x20tool\x20parameters',{'totalActions':_0x1ccad6['length'],'actionTypes':_0x1ccad6['map'](_0x4a0c69=>_0x4a0c69['type'])}),_0x4771dd;}catch(_0x16736d){throw new Error(_0x3eda7e(0x187)+_0x16736d[_0x3eda7e(0x17b)]);}}[a0_0x2992b2(0x153)](){const _0x5a5688=a0_0x2992b2;return[_0x5a5688(0x188)];}['customValidateParameters'](_0x1a5120){const _0x460044=a0_0x2992b2,_0x10205d=[];if(!_0x1a5120[_0x460044(0x188)]||!Array['isArray'](_0x1a5120[_0x460044(0x188)])||_0x1a5120[_0x460044(0x188)]['length']===0x0)_0x10205d[_0x460044(0x163)]('At\x20least\x20one\x20action\x20is\x20required');else for(const [_0x18050e,_0x5daceb]of _0x1a5120['actions']['entries']()){if(!_0x5daceb['type']){_0x10205d['push'](_0x460044(0x199)+(_0x18050e+0x1)+':\x20type\x20is\x20required');continue;}_0x5daceb['type']==='detect-clones'?(!_0x5daceb['directory']&&_0x10205d[_0x460044(0x163)](_0x460044(0x199)+(_0x18050e+0x1)+':\x20directory\x20is\x20required\x20for\x20detect-clones'),_0x5daceb[_0x460044(0x14a)]!==undefined&&(_0x5daceb[_0x460044(0x14a)]<0xa||_0x5daceb['minTokens']>0x3e8)&&_0x10205d[_0x460044(0x163)](_0x460044(0x199)+(_0x18050e+0x1)+':\x20min-tokens\x20must\x20be\x20between\x2010\x20and\x201000'),_0x5daceb[_0x460044(0x168)]!==undefined&&(_0x5daceb['minLines']<0x1||_0x5daceb['minLines']>0x64)&&_0x10205d['push'](_0x460044(0x199)+(_0x18050e+0x1)+_0x460044(0x14d)),_0x5daceb[_0x460044(0x16e)]!==undefined&&(_0x5daceb['similarityThreshold']<0.5||_0x5daceb['similarityThreshold']>0x1)&&_0x10205d['push']('Action\x20'+(_0x18050e+0x1)+':\x20similarity-threshold\x20must\x20be\x20between\x200.5\x20and\x201.0'),_0x5daceb[_0x460044(0x154)]&&!['high',_0x460044(0x15a),_0x460044(0x164)][_0x460044(0x14c)](_0x5daceb['priorityFilter'])&&_0x10205d[_0x460044(0x163)]('Action\x20'+(_0x18050e+0x1)+':\x20priority-filter\x20must\x20be\x20high,\x20medium,\x20or\x20low'),_0x5daceb[_0x460044(0x13c)]&&!['summary',_0x460044(0x17f),_0x460044(0x143)][_0x460044(0x14c)](_0x5daceb['outputMode'])&&_0x10205d[_0x460044(0x163)](_0x460044(0x199)+(_0x18050e+0x1)+_0x460044(0x186))):_0x10205d[_0x460044(0x163)](_0x460044(0x199)+(_0x18050e+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x5daceb[_0x460044(0x17e)]);}return{'valid':_0x10205d[_0x460044(0x15d)]===0x0,'errors':_0x10205d};}async['execute'](_0x27cd7c,_0x1668bb){const _0x56816d=a0_0x2992b2,{actions:_0x3440bc}=_0x27cd7c,{projectDir:_0x54e421,agentId:_0x477006,directoryAccess:_0x3cf7b0}=_0x1668bb,_0x2288c1=_0x3cf7b0||this['directoryAccessManager']['createDirectoryAccess']({'workingDirectory':_0x54e421||process['cwd'](),'writeEnabledDirectories':[],'readOnlyDirectories':[_0x54e421||process[_0x56816d(0x197)]()],'restrictToProject':!![]}),_0x1d7f58=this['directoryAccessManager']['getWorkingDirectory'](_0x2288c1),_0x25336f=[];for(const _0x1fea95 of _0x3440bc){try{if(_0x1fea95[_0x56816d(0x17e)]==='detect-clones'){const _0x1b56dc=await this[_0x56816d(0x145)](_0x1fea95['directory'],_0x1d7f58,_0x2288c1,_0x1fea95);_0x25336f[_0x56816d(0x163)](_0x1b56dc);}else throw new Error('Unknown\x20action\x20type:\x20'+_0x1fea95[_0x56816d(0x17e)]);}catch(_0x5128d3){this['logger']?.[_0x56816d(0x161)]('Clone\x20detection\x20action\x20failed',{'action':_0x1fea95['type'],'error':_0x5128d3[_0x56816d(0x17b)]}),_0x25336f[_0x56816d(0x163)]({'directory':_0x1fea95[_0x56816d(0x173)],'error':_0x5128d3['message'],'success':![]});}}return{'success':!![],'results':_0x25336f,'toolUsed':'clonedetection'};}async['detectClones'](_0x40a5a9,_0x4c2e15,_0x25542f,_0x468127={}){const _0x14e33f=a0_0x2992b2,_0x5f27b9=a0_0x4184a1[_0x14e33f(0x162)](_0x40a5a9)?a0_0x4184a1['normalize'](_0x40a5a9):a0_0x4184a1['resolve'](_0x4c2e15,_0x40a5a9),_0x552924=this[_0x14e33f(0x15b)][_0x14e33f(0x18b)](_0x5f27b9,_0x25542f);if(!_0x552924['allowed'])throw new Error('Read\x20access\x20denied:\x20'+_0x552924[_0x14e33f(0x155)]);try{const _0x4630b2=await this['getCloneDetector'](),_0x52bf59={'minTokens':_0x468127[_0x14e33f(0x14a)]||this['defaultMinTokens'],'minLines':_0x468127[_0x14e33f(0x168)]||this['defaultMinLines'],'similarityThreshold':_0x468127[_0x14e33f(0x16e)]||this['defaultSimilarityThreshold'],'include':['**/*.js','**/*.jsx',_0x14e33f(0x17d),_0x14e33f(0x148),_0x14e33f(0x176),_0x14e33f(0x152),'**/*.vue'],'exclude':[_0x14e33f(0x15f),_0x14e33f(0x177),_0x14e33f(0x14f),'**/*.test.js',_0x14e33f(0x18a)],'maxFileSize':this['maxFileSize']};this[_0x14e33f(0x192)]?.['info'](_0x14e33f(0x191),{'directory':_0x5f27b9,'config':_0x52bf59});const _0x5c9650=await _0x4630b2[_0x14e33f(0x184)](_0x5f27b9,null);if(!_0x5c9650)return{'directory':this[_0x14e33f(0x15b)][_0x14e33f(0x13b)](_0x5f27b9,_0x25542f),'fullPath':_0x5f27b9,'success':!![],'summary':{'totalFiles':0x0,'totalClones':0x0,'duplicationPercentage':0x0},'clones':[],'message':_0x14e33f(0x15e)};let _0x1cf37b=_0x5c9650[_0x14e33f(0x171)];_0x468127[_0x14e33f(0x154)]&&(_0x1cf37b=_0x1cf37b['filter'](_0x213dd7=>_0x213dd7[_0x14e33f(0x19b)][_0x14e33f(0x183)]===_0x468127['priorityFilter']));_0x468127[_0x14e33f(0x14b)]&&(_0x1cf37b=_0x1cf37b[_0x14e33f(0x147)](0x0,_0x468127[_0x14e33f(0x14b)]));const _0x1ccd6b=_0x468127[_0x14e33f(0x13c)]||_0x14e33f(0x17f);if(_0x1ccd6b===_0x14e33f(0x19c))return this[_0x14e33f(0x19d)](_0x5c9650,_0x1cf37b,_0x5f27b9,_0x25542f);else return _0x1ccd6b===_0x14e33f(0x143)?this['formatRecommendationsOutput'](_0x5c9650,_0x1cf37b,_0x5f27b9,_0x25542f):this[_0x14e33f(0x175)](_0x5c9650,_0x1cf37b,_0x5f27b9,_0x25542f);}catch(_0x237723){throw new Error(_0x14e33f(0x13e)+_0x40a5a9+':\x20'+_0x237723['message']);}}['formatSummaryOutput'](_0x178808,_0x172087,_0x26bdf9,_0x3cec0b){const _0x308e4a=a0_0x2992b2;return{'directory':this['directoryAccessManager']['createRelativePath'](_0x26bdf9,_0x3cec0b),'fullPath':_0x26bdf9,'success':!![],'outputMode':'summary','summary':{'totalFiles':_0x178808['summary'][_0x308e4a(0x149)],'totalClones':_0x178808['summary'][_0x308e4a(0x178)],'duplicatedLines':_0x178808['summary']['totalDuplicatedLines'],'duplicationPercentage':_0x178808['summary']['duplicationPercentage'],'priorityCounts':_0x178808['summary'][_0x308e4a(0x160)],'topClones':_0x172087['slice'](0x0,0x5)[_0x308e4a(0x19f)](_0x580135=>({'id':_0x580135['id'],'type':_0x580135[_0x308e4a(0x17e)],'confidence':_0x580135['confidence'],'instances':_0x580135['metrics'][_0x308e4a(0x18e)],'lines':_0x580135['metrics'][_0x308e4a(0x18c)],'priority':_0x580135['refactoringAdvice']['priority'],'strategy':_0x580135['refactoringAdvice']['strategy'],'locations':_0x580135['instances']['map'](_0x5bd754=>_0x5bd754[_0x308e4a(0x1a2)]+':'+_0x5bd754['startLine']+'-'+_0x5bd754['endLine'])}))}};}['formatRecommendationsOutput'](_0x2f3b10,_0x21939a,_0x1a240f,_0x511f2a){const _0x42c871=a0_0x2992b2;return{'directory':this['directoryAccessManager']['createRelativePath'](_0x1a240f,_0x511f2a),'fullPath':_0x1a240f,'success':!![],'outputMode':'recommendations','summary':{'totalFiles':_0x2f3b10[_0x42c871(0x19c)]['totalFiles'],'totalClones':_0x2f3b10[_0x42c871(0x19c)]['totalClones'],'duplicationPercentage':_0x2f3b10[_0x42c871(0x19c)]['duplicationPercentage']},'recommendations':_0x21939a[_0x42c871(0x19f)](_0x311ee7=>({'id':_0x311ee7['id'],'priority':_0x311ee7['refactoringAdvice'][_0x42c871(0x183)],'strategy':_0x311ee7['refactoringAdvice'][_0x42c871(0x13f)],'suggestedName':_0x311ee7[_0x42c871(0x19b)][_0x42c871(0x185)],'reasoning':_0x311ee7[_0x42c871(0x19b)]['reasoning'],'effort':_0x311ee7['refactoringAdvice']['estimatedEffort'],'benefits':_0x311ee7[_0x42c871(0x19b)]['benefits'],'steps':_0x311ee7['refactoringAdvice']['actionableSteps'],'metrics':{'instances':_0x311ee7['metrics']['instanceCount'],'lines':_0x311ee7['metrics'][_0x42c871(0x18c)],'files':_0x311ee7['metrics']['filesCovered'],'impact':_0x311ee7[_0x42c871(0x141)][_0x42c871(0x174)]},'locations':_0x311ee7['instances']['map'](_0x1407a0=>({'file':_0x1407a0['file'],'startLine':_0x1407a0[_0x42c871(0x146)],'endLine':_0x1407a0[_0x42c871(0x17c)]}))}))};}[a0_0x2992b2(0x175)](_0x24630d,_0x5d8418,_0x48f070,_0x17a5fe){const _0x3d91c3=a0_0x2992b2;return{'directory':this[_0x3d91c3(0x15b)][_0x3d91c3(0x13b)](_0x48f070,_0x17a5fe),'fullPath':_0x48f070,'success':!![],'outputMode':_0x3d91c3(0x17f),'summary':_0x24630d[_0x3d91c3(0x19c)],'clones':_0x5d8418['map'](_0xa9b600=>({..._0xa9b600,'instances':_0xa9b600[_0x3d91c3(0x15c)]['map'](_0x2e5af9=>({..._0x2e5af9,'code':_0x2e5af9[_0x3d91c3(0x17a)][_0x3d91c3(0x19a)]('\x0a')[_0x3d91c3(0x147)](0x0,0xa)[_0x3d91c3(0x151)]('\x0a')+(_0x2e5af9[_0x3d91c3(0x17a)]['split']('\x0a')[_0x3d91c3(0x15d)]>0xa?'\x0a...\x20(truncated)':'')}))}))};}async[a0_0x2992b2(0x16f)](){const _0x2a8c33=a0_0x2992b2;if(!this['cloneDetector']){const {CloneDetectionTool:_0x26bcad}=await import(_0x2a8c33(0x165)),_0x25ca68={'minTokens':this[_0x2a8c33(0x198)],'minLines':this[_0x2a8c33(0x182)],'similarityThreshold':this['defaultSimilarityThreshold'],'include':[_0x2a8c33(0x16b),'**/*.jsx',_0x2a8c33(0x176),_0x2a8c33(0x152),'**/*.vue'],'exclude':[_0x2a8c33(0x15f),'**/dist/**','**/build/**'],'maxFileSize':this['maxFileSize']};this['cloneDetector']=new _0x26bcad(_0x25ca68),this['logger']?.[_0x2a8c33(0x18f)](_0x2a8c33(0x18d),{'config':_0x25ca68});}return this[_0x2a8c33(0x194)];}[a0_0x2992b2(0x1a1)](){const _0x220d3f=a0_0x2992b2;return[_0x220d3f(0x181)];}['getParameterSchema'](){const _0x1617c9=a0_0x2992b2;return{'type':_0x1617c9(0x189),'properties':{'actions':{'type':'array','minItems':0x1,'items':{'type':'object','properties':{'type':{'type':'string','enum':this[_0x1617c9(0x1a1)]()},'directory':{'type':_0x1617c9(0x16d)},'minTokens':{'type':_0x1617c9(0x144),'minimum':0xa,'maximum':0x3e8},'minLines':{'type':'number','minimum':0x1,'maximum':0x64},'similarityThreshold':{'type':'number','minimum':0.5,'maximum':0x1},'priorityFilter':{'type':'string','enum':['high','medium','low']},'maxResults':{'type':_0x1617c9(0x144),'minimum':0x1},'outputMode':{'type':_0x1617c9(0x16d),'enum':[_0x1617c9(0x19c),'detailed',_0x1617c9(0x143)]}},'required':[_0x1617c9(0x17e),'directory']}}},'required':['actions']};}}export default CloneDetectionTool;