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

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 (116) 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
@@ -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_0x795af2=a0_0x28b5;(function(_0x315706,_0xf8adb7){const _0xdc5e4f=a0_0x28b5,_0x3c1fa9=_0x315706();while(!![]){try{const _0x1b9efd=parseInt(_0xdc5e4f(0x188))/0x1*(parseInt(_0xdc5e4f(0x1d3))/0x2)+-parseInt(_0xdc5e4f(0x1d0))/0x3+-parseInt(_0xdc5e4f(0x1d9))/0x4+-parseInt(_0xdc5e4f(0x1a5))/0x5*(-parseInt(_0xdc5e4f(0x196))/0x6)+parseInt(_0xdc5e4f(0x1a4))/0x7*(-parseInt(_0xdc5e4f(0x1b5))/0x8)+-parseInt(_0xdc5e4f(0x1bd))/0x9*(-parseInt(_0xdc5e4f(0x181))/0xa)+-parseInt(_0xdc5e4f(0x1d7))/0xb;if(_0x1b9efd===_0xf8adb7)break;else _0x3c1fa9['push'](_0x3c1fa9['shift']());}catch(_0x49992c){_0x3c1fa9['push'](_0x3c1fa9['shift']());}}}(a0_0xd667,0xc92ff));import a0_0x502c70 from'events';function a0_0xd667(){const _0x1ee803=['q2fUBM90ignHBMnLBcbJB21WBgv0zwqVzMfPBgvKig9WzxjHDgLVBJOG','yMLUza','ywDLBNrjza','z2v0vgLTzq','AgfUzgXLt3bLCMf0Aw9UrMfPBgvK','Bwf4sgLZDg9YEvnPEMu','z2v0t3bLCMf0Aw9UsgLZDg9YEq','DMfSDwvZ','BM93','qxn5BMmGDg9VBcbTyw5Hz2vYihnODxrKB3DUignVBxbSzxrLlIbdyw5JzwXSzwqG','nde5nZG5m2TdAengBa','mJK1nZu1tfvOALnT','zxjYB3i','y2XLyw51CeLUDgvYDMfS','B3bLCMf0Aw9UCW','y2XLyw51CenVBxbSzxrLze9WzxjHDgLVBNm','AgfUzgXLt3bLCMf0Aw9UvgLTzw91Da','B3bLCMf0Aw9UoMnHBMnLBgXLza','AgfUzgXLt3bLCMf0Aw9Uq29TCgXLDgvK','qxn5BMmGDg9VBcbTyw5Hz2vYig1VBML0B3jPBMCGC3rVChbLza','Dg9VBeLK','twf4Aw11BsbYzxrYAwvZigv4y2vLzgvKigzVCIbVCgvYyxrPB246ia','y29TCgXLDgvKqxq','y2XLyw51Ce9WzxjHDgLVBG','AxntAhv0DgLUz0rVD24','veLnru9vva','Bw9UAxrVCMLUz0LUDgvYDMfS','ofPkANbQBq','rvHfq1vusu5h','q2fUBM90ihjLDhj5ig5VBI1MywLSzwqGB3bLCMf0Aw9UoIa','z2v0t3bLCMf0Aw9U','z2v0','D2fYBG','t3bLCMf0Aw9UignHBMnLBgXLzdOG','zgvIDwC','nZm3ntmYquXItNbN','DgLTzw91Da','y2fSy3vSyxrLrxHLy3v0Aw9UvgLTzq','yNLbz2vUDa','ChvZAa','q0foq0vmteve','CMvZDwX0','Aw5MBW','y2fUy2vSt3bLCMf0Aw9U','rKfjteve','C3rHDhvZ','t3bLCMf0Aw9UihjLDhj5igLUAxrPyxrLzdOG','DxbKyxrLt3bLCMf0Aw9U','y2HLy2TpCgvYyxrPB25uAw1LB3v0CW','zw1PDa','CMv0CNLdB3vUDa','qxn5BMmGB3bLCMf0Aw9Uihn0yxj0zwq6ia','Dg9tDhjPBMC','C2L6zq','ndGZmtuZouzhwgTJDG','C2XPy2u','zMLSDgvY','nZmYoeTkqwTZCG','C2v0','yNLuB29S','DgLTzw91DeHHBMrSzq','mti4nJe3nwrKyMDKBq','B3bLCMf0Aw9UoNrPBwvVDxq','mtG1nJK2oejfvhvWqq','C3rHCNrLzef0','BgvUz3rO','y29UzMLN','u3LZDgvTihnODxrKB3DU','mtGWthvtEfLL','uevoreLorW','t3bLCMf0Aw9Uihn0yxj0zwq6ia','B3bLCMf0Aw9UoMnSzwfUDxa','twf4Aw11BsbJB25JDxjYzw50ig9WzxjHDgLVBNmGCMvHy2HLzcaO','y2XLyxi','BMv3zxn0t3bLCMf0Aw9U','mJi5swnstfHb','t3bLCMf0Aw9UihrPBwvKig91DdOG','Bwf4uMv0CMLLCW','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','qxr0zw1WDgvKihrVihvWzgf0zsb1BMTUB3DUig9WzxjHDgLVBJOG','z2v0u3rHDgLZDgLJCW','CM91BMq','B3bLCMf0Aw9UoMnVBxbSzxrLza','zgvMyxvSDfrPBwvVDxq','C3rVCe1VBML0B3jPBMC','B3bLCMf0Aw9UoNjLDhj5','B3bLCMf0Aw9UsgLZDg9YEq','y2XLyxjpCgvYyxrPB25uAw1LB3v0','y3jLyxrLzef0','mtmYEKrJBvv2','q09nueXfveve','Bg9Nz2vY','z2v0qwDLBNrpCgvYyxrPB25Z'];a0_0xd667=function(){return _0x1ee803;};return a0_0xd667();}import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AsyncToolManager extends a0_0x502c70{constructor(_0x4551b6={},_0xb99dd0=null){const _0x403a13=a0_0x28b5;super(),this[_0x403a13(0x17f)]=_0x4551b6,this['logger']=_0xb99dd0,this['operations']=new Map(),this[_0x403a13(0x193)]=[],this[_0x403a13(0x18b)]=_0x4551b6[_0x403a13(0x18b)]||0xa,this[_0x403a13(0x190)]=_0x4551b6['defaultTimeout']||0x493e0,this[_0x403a13(0x1a7)]=_0x4551b6[_0x403a13(0x1a7)]||0xea60,this[_0x403a13(0x19f)]=_0x4551b6[_0x403a13(0x19f)]||0x3e8,this['monitoringInterval']=null,this[_0x403a13(0x1b2)]=![],this['startMonitoring'](),this['on']('operation:started',this['handleOperationStarted'][_0x403a13(0x19b)](this)),this['on'](_0x403a13(0x18f),this[_0x403a13(0x1ac)]['bind'](this)),this['on']('operation:failed',this[_0x403a13(0x19e)][_0x403a13(0x19b)](this)),this['on'](_0x403a13(0x1d8),this[_0x403a13(0x1aa)]['bind'](this));}async['startOperation'](_0x5e1e84,_0x2472c6,_0x501cd3,_0x1ee13b={}){const _0x4d20f5=a0_0x28b5;if(this['operations']['size']>=this['maxConcurrentOperations'])throw new Error(_0x4d20f5(0x185)+this['maxConcurrentOperations']+')');const _0x1e8b59=this['generateOperationId'](),_0x50aed5={'id':_0x1e8b59,'toolId':_0x5e1e84,'agentId':_0x2472c6,'parameters':_0x501cd3,'context':_0x1ee13b,'status':TOOL_STATUS['PENDING'],'createdAt':new Date()['toISOString'](),'startedAt':null,'completedAt':null,'timeout':_0x1ee13b['timeout']||this['defaultTimeout'],'result':null,'error':null,'progress':null,'retryCount':0x0,'maxRetries':_0x1ee13b['maxRetries']||0x0};return this['operations'][_0x4d20f5(0x1d4)](_0x1e8b59,_0x50aed5),this['logger']?.[_0x4d20f5(0x1c4)](_0x4d20f5(0x1cd)+_0x1e8b59,{'toolId':_0x5e1e84,'agentId':_0x2472c6,'parametersCount':Object['keys'](_0x501cd3)['length'],'timeout':_0x50aed5[_0x4d20f5(0x1be)]}),this['setOperationTimeout'](_0x1e8b59),this[_0x4d20f5(0x1cb)]('operation:started',_0x50aed5),_0x1e8b59;}[a0_0x795af2(0x1c9)](_0x59b5e0,_0x597b50,_0x27ef24={}){const _0x52b727=a0_0x795af2,_0x1c505b=this['operations']['get'](_0x59b5e0);if(!_0x1c505b)return this[_0x52b727(0x198)]?.[_0x52b727(0x1ba)](_0x52b727(0x18c)+_0x59b5e0),![];const _0x138a7a=_0x1c505b['status'];_0x1c505b[_0x52b727(0x1c7)]=_0x597b50;_0x597b50===TOOL_STATUS[_0x52b727(0x1b6)]&&!_0x1c505b[_0x52b727(0x1da)]&&(_0x1c505b[_0x52b727(0x1da)]=new Date()['toISOString']());(_0x597b50===TOOL_STATUS[_0x52b727(0x197)]||_0x597b50===TOOL_STATUS['FAILED'])&&(_0x1c505b['completedAt']=new Date()['toISOString']());if(_0x27ef24['result']!==undefined)_0x1c505b[_0x52b727(0x1c3)]=_0x27ef24[_0x52b727(0x1c3)];if(_0x27ef24['error']!==undefined)_0x1c505b[_0x52b727(0x1a6)]=_0x27ef24['error'];if(_0x27ef24['progress']!==undefined)_0x1c505b['progress']=_0x27ef24['progress'];this[_0x52b727(0x198)]?.['debug']('Operation\x20status\x20updated:\x20'+_0x59b5e0,{'previousStatus':_0x138a7a,'newStatus':_0x597b50,'hasResult':!!_0x27ef24['result'],'hasError':!!_0x27ef24['error'],'progress':_0x27ef24['progress']});switch(_0x597b50){case TOOL_STATUS[_0x52b727(0x197)]:this[_0x52b727(0x1cb)]('operation:completed',_0x1c505b);break;case TOOL_STATUS[_0x52b727(0x1c6)]:this['emit']('operation:failed',_0x1c505b);break;case TOOL_STATUS[_0x52b727(0x1b6)]:this[_0x52b727(0x1cb)]('operation:progress',_0x1c505b);break;}return!![];}['getOperation'](_0x12f0c0){const _0x2d05e6=a0_0x795af2,_0x42b476=this[_0x2d05e6(0x1a8)][_0x2d05e6(0x1b9)](_0x12f0c0);if(!_0x42b476)return null;return{'id':_0x42b476['id'],'toolId':_0x42b476['toolId'],'agentId':_0x42b476['agentId'],'status':_0x42b476['status'],'createdAt':_0x42b476['createdAt'],'startedAt':_0x42b476['startedAt'],'completedAt':_0x42b476['completedAt'],'result':_0x42b476[_0x2d05e6(0x1c3)],'error':_0x42b476[_0x2d05e6(0x1a6)],'progress':_0x42b476['progress'],'retryCount':_0x42b476['retryCount'],'executionTime':this[_0x2d05e6(0x1bf)](_0x42b476)};}[a0_0x795af2(0x199)](_0x39c54c){const _0x3f021e=a0_0x795af2,_0xa9d24a=[];for(const _0x48b5e9 of this['operations'][_0x3f021e(0x1a1)]()){_0x48b5e9['agentId']===_0x39c54c&&_0xa9d24a[_0x3f021e(0x1c1)](this[_0x3f021e(0x1b8)](_0x48b5e9['id']));}return _0xa9d24a['sort']((_0x2397cd,_0x636c92)=>new Date(_0x636c92[_0x3f021e(0x195)])-new Date(_0x2397cd[_0x3f021e(0x195)]));}async[a0_0x795af2(0x1c5)](_0xc04605,_0x35bb0b='Operation\x20cancelled'){const _0x133b45=a0_0x795af2,_0x408823=this[_0x133b45(0x1a8)][_0x133b45(0x1b9)](_0xc04605);if(!_0x408823)return![];if(_0x408823[_0x133b45(0x1c7)]===TOOL_STATUS['COMPLETED']||_0x408823['status']===TOOL_STATUS[_0x133b45(0x1c6)])return this['logger']?.['warn'](_0x133b45(0x19a)+_0xc04605),![];return this[_0x133b45(0x1c9)](_0xc04605,TOOL_STATUS['CANCELLED'],{'error':_0x35bb0b}),this[_0x133b45(0x194)](_0xc04605),this[_0x133b45(0x1cb)](_0x133b45(0x1ab),_0x408823),await this[_0x133b45(0x1b1)](_0xc04605),this['logger']?.['info'](_0x133b45(0x1bb)+_0xc04605,{'reason':_0x35bb0b}),!![];}async['retryOperation'](_0x3b44d6){const _0x31c386=a0_0x795af2,_0x19c058=this[_0x31c386(0x1a8)]['get'](_0x3b44d6);if(!_0x19c058)return![];if(_0x19c058[_0x31c386(0x1c7)]!==TOOL_STATUS[_0x31c386(0x1c6)])return this[_0x31c386(0x198)]?.['warn'](_0x31c386(0x1b7)+_0x3b44d6),![];if(_0x19c058['retryCount']>=_0x19c058['maxRetries'])return this[_0x31c386(0x198)]?.['warn'](_0x31c386(0x1af)+_0x3b44d6),![];return _0x19c058['retryCount']++,_0x19c058[_0x31c386(0x1c7)]=TOOL_STATUS['PENDING'],_0x19c058['startedAt']=null,_0x19c058['completedAt']=null,_0x19c058[_0x31c386(0x1a6)]=null,_0x19c058['result']=null,this['setOperationTimeout'](_0x3b44d6),this['logger']?.['info'](_0x31c386(0x1c8)+_0x3b44d6,{'retryCount':_0x19c058[_0x31c386(0x1cc)],'maxRetries':_0x19c058[_0x31c386(0x18a)]}),this['emit'](_0x31c386(0x192),_0x19c058),!![];}[a0_0x795af2(0x18d)](){const _0x33b076=a0_0x795af2,_0xc56bf6={'total':this['operations'][_0x33b076(0x1cf)],'byStatus':{},'byTool':{},'byAgent':{},'averageExecutionTime':0x0,'oldestOperation':null,'newestOperation':null};let _0xbe2caf=0x0,_0x114d3c=0x0,_0x47e152=null,_0x267fa6=null;for(const _0x25d8cf of this[_0x33b076(0x1a8)]['values']()){_0xc56bf6['byStatus'][_0x25d8cf[_0x33b076(0x1c7)]]=(_0xc56bf6['byStatus'][_0x25d8cf['status']]||0x0)+0x1,_0xc56bf6[_0x33b076(0x1d5)][_0x25d8cf[_0x33b076(0x1ae)]]=(_0xc56bf6['byTool'][_0x25d8cf[_0x33b076(0x1ae)]]||0x0)+0x1,_0xc56bf6['byAgent'][_0x25d8cf['agentId']]=(_0xc56bf6[_0x33b076(0x1c0)][_0x25d8cf['agentId']]||0x0)+0x1;const _0x1e1f7f=this['calculateExecutionTime'](_0x25d8cf);_0x1e1f7f>0x0&&(_0xbe2caf+=_0x1e1f7f,_0x114d3c++);const _0x4ceef1=new Date(_0x25d8cf[_0x33b076(0x195)])['getTime']();(!_0x47e152||_0x4ceef1<_0x47e152)&&(_0x47e152=_0x4ceef1,_0xc56bf6['oldestOperation']=_0x25d8cf['id']),(!_0x267fa6||_0x4ceef1>_0x267fa6)&&(_0x267fa6=_0x4ceef1,_0xc56bf6[_0x33b076(0x187)]=_0x25d8cf['id']);}return _0xc56bf6['averageExecutionTime']=_0x114d3c>0x0?Math[_0x33b076(0x18e)](_0xbe2caf/_0x114d3c):0x0,_0xc56bf6;}async['cleanupCompletedOperations'](_0xad126a=0x36ee80){const _0x4090fb=a0_0x795af2,_0x119ce6=Date[_0x4090fb(0x1a2)]()-_0xad126a,_0x50440a=[];for(const _0x5ce06a of this['operations'][_0x4090fb(0x1a1)]()){(_0x5ce06a[_0x4090fb(0x1c7)]===TOOL_STATUS['COMPLETED']||_0x5ce06a['status']===TOOL_STATUS['FAILED']||_0x5ce06a[_0x4090fb(0x1c7)]===TOOL_STATUS[_0x4090fb(0x1c2)])&&new Date(_0x5ce06a['completedAt'])['getTime']()<_0x119ce6&&_0x50440a[_0x4090fb(0x1c1)](_0x5ce06a['id']);}for(const _0x5f5deb of _0x50440a){await this['cleanupOperation'](_0x5f5deb);}return this[_0x4090fb(0x198)]?.['debug']('Cleaned\x20up\x20'+_0x50440a[_0x4090fb(0x17e)]+'\x20completed\x20operations'),_0x50440a['length'];}['startMonitoring'](){const _0x344ef1=a0_0x795af2;this['monitoringInterval']&&clearInterval(this[_0x344ef1(0x1b4)]),this['monitoringInterval']=setInterval(()=>{const _0x2f1849=_0x344ef1;this[_0x2f1849(0x1ca)](),this[_0x2f1849(0x1a9)]();},this[_0x344ef1(0x1a7)]),this['logger']?.['info']('Async\x20tool\x20manager\x20monitoring\x20started');}[a0_0x795af2(0x191)](){const _0x3f90ad=a0_0x795af2;this['monitoringInterval']&&(clearInterval(this['monitoringInterval']),this[_0x3f90ad(0x1b4)]=null),this['logger']?.[_0x3f90ad(0x1c4)](_0x3f90ad(0x1ad));}[a0_0x795af2(0x1ca)](){const _0x4e0509=a0_0x795af2,_0x26f862=Date[_0x4e0509(0x1a2)]();for(const _0x1c1c1c of this[_0x4e0509(0x1a8)][_0x4e0509(0x1a1)]()){if(_0x1c1c1c['status']===TOOL_STATUS['EXECUTING']||_0x1c1c1c['status']===TOOL_STATUS[_0x4e0509(0x182)]){const _0x488b8d=new Date(_0x1c1c1c[_0x4e0509(0x195)])['getTime']();_0x26f862-_0x488b8d>_0x1c1c1c[_0x4e0509(0x1be)]&&this['handleOperationTimeout'](_0x1c1c1c);}}}['setOperationTimeout'](_0x3cd696){const _0x2193a4=a0_0x795af2,_0x4d8f6d=this[_0x2193a4(0x1a8)][_0x2193a4(0x1b9)](_0x3cd696);if(!_0x4d8f6d)return;_0x4d8f6d[_0x2193a4(0x1d6)]=setTimeout(()=>{const _0x217d9f=_0x2193a4;this[_0x217d9f(0x1aa)](_0x4d8f6d);},_0x4d8f6d['timeout']);}[a0_0x795af2(0x194)](_0x3f57e4){const _0x220d3f=a0_0x795af2,_0x46e45f=this[_0x220d3f(0x1a8)][_0x220d3f(0x1b9)](_0x3f57e4);_0x46e45f&&_0x46e45f[_0x220d3f(0x1d6)]&&(clearTimeout(_0x46e45f[_0x220d3f(0x1d6)]),delete _0x46e45f['timeoutHandle']);}['generateOperationId'](){const _0x1cd6bd=a0_0x795af2,_0x211a6b=Date['now']()[_0x1cd6bd(0x1ce)](0x24),_0x186e7e=Math['random']()[_0x1cd6bd(0x1ce)](0x24)['substr'](0x2,0x9);return'op-'+_0x211a6b+'-'+_0x186e7e;}[a0_0x795af2(0x1bf)](_0x427b19){const _0x4eff5a=a0_0x795af2;if(!_0x427b19[_0x4eff5a(0x1da)])return 0x0;const _0xb1e520=_0x427b19['completedAt']?new Date(_0x427b19[_0x4eff5a(0x1b0)])['getTime']():Date[_0x4eff5a(0x1a2)]();return _0xb1e520-new Date(_0x427b19['startedAt'])[_0x4eff5a(0x19d)]();}async[a0_0x795af2(0x1b1)](_0x78c652){const _0x228e6d=a0_0x795af2,_0x2b9c23=this[_0x228e6d(0x1a8)][_0x228e6d(0x1b9)](_0x78c652);if(!_0x2b9c23)return;this[_0x228e6d(0x194)](_0x78c652),this['operationHistory']['push']({..._0x2b9c23,'executionTime':this['calculateExecutionTime'](_0x2b9c23),'cleanedUpAt':new Date()['toISOString']()}),this['operationHistory'][_0x228e6d(0x17e)]>this['maxHistorySize']&&(this[_0x228e6d(0x193)]=this['operationHistory'][_0x228e6d(0x1d1)](-this['maxHistorySize'])),this['operations']['delete'](_0x78c652),this['emit'](_0x228e6d(0x184),{'operationId':_0x78c652,'toolId':_0x2b9c23[_0x228e6d(0x1ae)]});}['handleOperationStarted'](_0x4f9cb5){const _0x14af15=a0_0x795af2;this['logger']?.[_0x14af15(0x1bc)](_0x14af15(0x183)+_0x4f9cb5['id'],{'toolId':_0x4f9cb5['toolId'],'agentId':_0x4f9cb5['agentId']});}async[a0_0x795af2(0x1ac)](_0x522f08){const _0x416255=a0_0x795af2;this['logger']?.['info']('Operation\x20completed:\x20'+_0x522f08['id'],{'toolId':_0x522f08[_0x416255(0x1ae)],'agentId':_0x522f08[_0x416255(0x19c)],'executionTime':this[_0x416255(0x1bf)](_0x522f08)}),setTimeout(()=>this[_0x416255(0x1b1)](_0x522f08['id']),0x7530);}async['handleOperationFailed'](_0x135799){const _0x2f6a5e=a0_0x795af2;this['logger']?.['error']('Operation\x20failed:\x20'+_0x135799['id'],{'toolId':_0x135799['toolId'],'agentId':_0x135799[_0x2f6a5e(0x19c)],'error':_0x135799[_0x2f6a5e(0x1a6)],'executionTime':this[_0x2f6a5e(0x1bf)](_0x135799),'retryCount':_0x135799[_0x2f6a5e(0x1cc)]}),_0x135799['retryCount']<_0x135799[_0x2f6a5e(0x18a)]?setTimeout(()=>this['retryOperation'](_0x135799['id']),0x1388):setTimeout(()=>this[_0x2f6a5e(0x1b1)](_0x135799['id']),0xea60);}async['handleOperationTimeout'](_0x20e1bc){const _0x441324=a0_0x795af2;this['logger']?.['warn'](_0x441324(0x189)+_0x20e1bc['id'],{'toolId':_0x20e1bc[_0x441324(0x1ae)],'agentId':_0x20e1bc[_0x441324(0x19c)],'timeout':_0x20e1bc['timeout'],'executionTime':this['calculateExecutionTime'](_0x20e1bc)}),this[_0x441324(0x1c9)](_0x20e1bc['id'],TOOL_STATUS[_0x441324(0x1b3)],{'error':'Operation\x20timed\x20out\x20after\x20'+_0x20e1bc['timeout']+'ms'}),this['emit']('operation:timeout',_0x20e1bc),setTimeout(()=>this[_0x441324(0x1b1)](_0x20e1bc['id']),0x7530);}async['shutdown'](){const _0x51fd9d=a0_0x795af2;this[_0x51fd9d(0x1b2)]=!![],this[_0x51fd9d(0x198)]?.[_0x51fd9d(0x1c4)]('Shutting down async tool manager...'),this[_0x51fd9d(0x191)]();const _0x19c592=[];for(const _0x500947 of this['operations']['values']()){(_0x500947[_0x51fd9d(0x1c7)]===TOOL_STATUS['PENDING']||_0x500947[_0x51fd9d(0x1c7)]===TOOL_STATUS[_0x51fd9d(0x1b6)])&&_0x19c592[_0x51fd9d(0x1c1)](_0x500947['id']);}for(const _0x3b8c8a of _0x19c592){await this[_0x51fd9d(0x1c5)](_0x3b8c8a,_0x51fd9d(0x180));}this['operations'][_0x51fd9d(0x186)](),this[_0x51fd9d(0x198)]?.['info'](_0x51fd9d(0x1a3)+_0x19c592['length']+'\x20operations.');}[a0_0x795af2(0x1a0)](_0x2c31b4={}){const _0x230647=a0_0x795af2;let _0x5584cf=[...this[_0x230647(0x193)]];return _0x2c31b4[_0x230647(0x19c)]&&(_0x5584cf=_0x5584cf['filter'](_0x52f24c=>_0x52f24c[_0x230647(0x19c)]===_0x2c31b4['agentId'])),_0x2c31b4['toolId']&&(_0x5584cf=_0x5584cf[_0x230647(0x1d2)](_0x310145=>_0x310145[_0x230647(0x1ae)]===_0x2c31b4['toolId'])),_0x2c31b4[_0x230647(0x1c7)]&&(_0x5584cf=_0x5584cf[_0x230647(0x1d2)](_0x40feb7=>_0x40feb7[_0x230647(0x1c7)]===_0x2c31b4[_0x230647(0x1c7)])),_0x2c31b4['limit']&&(_0x5584cf=_0x5584cf['slice'](-_0x2c31b4['limit'])),_0x5584cf['sort']((_0x3e280b,_0x4fa4cb)=>new Date(_0x4fa4cb[_0x230647(0x195)])-new Date(_0x3e280b[_0x230647(0x195)]));}}function a0_0x28b5(_0x2011eb,_0x4531bb){_0x2011eb=_0x2011eb-0x17e;const _0xd66785=a0_0xd667();let _0x28b557=_0xd66785[_0x2011eb];if(a0_0x28b5['VFOIqy']===undefined){var _0x44e2bd=function(_0x5b3e5c){const _0x41c108='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x502c70='',_0x4551b6='';for(let _0xb99dd0=0x0,_0x5e1e84,_0x2472c6,_0x501cd3=0x0;_0x2472c6=_0x5b3e5c['charAt'](_0x501cd3++);~_0x2472c6&&(_0x5e1e84=_0xb99dd0%0x4?_0x5e1e84*0x40+_0x2472c6:_0x2472c6,_0xb99dd0++%0x4)?_0x502c70+=String['fromCharCode'](0xff&_0x5e1e84>>(-0x2*_0xb99dd0&0x6)):0x0){_0x2472c6=_0x41c108['indexOf'](_0x2472c6);}for(let _0x1ee13b=0x0,_0x1e8b59=_0x502c70['length'];_0x1ee13b<_0x1e8b59;_0x1ee13b++){_0x4551b6+='%'+('00'+_0x502c70['charCodeAt'](_0x1ee13b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4551b6);};a0_0x28b5['QeSBoX']=_0x44e2bd,a0_0x28b5['CWMNCC']={},a0_0x28b5['VFOIqy']=!![];}const _0x13bb86=_0xd66785[0x0],_0x4411aa=_0x2011eb+_0x13bb86,_0x1d88bb=a0_0x28b5['CWMNCC'][_0x4411aa];return!_0x1d88bb?(_0x28b557=a0_0x28b5['QeSBoX'](_0x28b557),a0_0x28b5['CWMNCC'][_0x4411aa]=_0x28b557):_0x28b557=_0x1d88bb,_0x28b557;}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_0x207d0d=a0_0x5652;(function(_0xb454c2,_0x2079e8){const _0x200f73=a0_0x5652,_0x42538d=_0xb454c2();while(!![]){try{const _0x5c0a9b=-parseInt(_0x200f73(0x111))/0x1*(parseInt(_0x200f73(0x174))/0x2)+-parseInt(_0x200f73(0x175))/0x3*(-parseInt(_0x200f73(0x15d))/0x4)+parseInt(_0x200f73(0x150))/0x5+-parseInt(_0x200f73(0x131))/0x6+-parseInt(_0x200f73(0x130))/0x7+-parseInt(_0x200f73(0x17e))/0x8*(-parseInt(_0x200f73(0x160))/0x9)+parseInt(_0x200f73(0x12d))/0xa;if(_0x5c0a9b===_0x2079e8)break;else _0x42538d['push'](_0x42538d['shift']());}catch(_0x4a6f0e){_0x42538d['push'](_0x42538d['shift']());}}}(a0_0x5560,0xa5a36));import{TOOL_STATUS,OPERATION_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x5652(_0x15a1ee,_0x33aa95){_0x15a1ee=_0x15a1ee-0x10c;const _0x556033=a0_0x5560();let _0x5652a8=_0x556033[_0x15a1ee];if(a0_0x5652['WMUZdC']===undefined){var _0x295705=function(_0x542de5){const _0x7065dc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xf8af7f='',_0x9776b6='';for(let _0x5764d9=0x0,_0x59193f,_0x5d48b0,_0x2c20c9=0x0;_0x5d48b0=_0x542de5['charAt'](_0x2c20c9++);~_0x5d48b0&&(_0x59193f=_0x5764d9%0x4?_0x59193f*0x40+_0x5d48b0:_0x5d48b0,_0x5764d9++%0x4)?_0xf8af7f+=String['fromCharCode'](0xff&_0x59193f>>(-0x2*_0x5764d9&0x6)):0x0){_0x5d48b0=_0x7065dc['indexOf'](_0x5d48b0);}for(let _0x3c5996=0x0,_0x2f11e7=_0xf8af7f['length'];_0x3c5996<_0x2f11e7;_0x3c5996++){_0x9776b6+='%'+('00'+_0xf8af7f['charCodeAt'](_0x3c5996)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x9776b6);};a0_0x5652['GhZooE']=_0x295705,a0_0x5652['GYVCIO']={},a0_0x5652['WMUZdC']=!![];}const _0x1085f0=_0x556033[0x0],_0x3dce53=_0x15a1ee+_0x1085f0,_0x3d2910=a0_0x5652['GYVCIO'][_0x3dce53];return!_0x3d2910?(_0x5652a8=a0_0x5652['GhZooE'](_0x5652a8),a0_0x5652['GYVCIO'][_0x3dce53]=_0x5652a8):_0x5652a8=_0x3d2910,_0x5652a8;}class BaseTool{constructor(_0xf8af7f={},_0x9776b6=null){const _0x28482d=a0_0x5652;this['id']=this[_0x28482d(0x11b)]['name'][_0x28482d(0x185)]()['replace']('tool',''),this['config']=_0xf8af7f,this[_0x28482d(0x17a)]=_0x9776b6,this['requiresProject']=![],this[_0x28482d(0x171)]=![],this[_0x28482d(0x157)]=_0xf8af7f['timeout']||SYSTEM_DEFAULTS['MAX_TOOL_EXECUTION_TIME'],this[_0x28482d(0x136)]=_0xf8af7f['maxConcurrentOperations']||0x1,this[_0x28482d(0x140)]=new Map(),this['operationHistory']=[],this['isEnabled']=_0xf8af7f['enabled']!==![],this['lastUsed']=null,this['usageCount']=0x0;}[a0_0x207d0d(0x122)](){const _0x406cc4=a0_0x207d0d;throw new Error(_0x406cc4(0x14d)+this['id']+_0x406cc4(0x127));}[a0_0x207d0d(0x17c)](_0x5764d9){const _0x4f7e49=a0_0x207d0d;throw new Error(_0x4f7e49(0x14d)+this['id']+'\x20must\x20implement\x20parseParameters()');}async['execute'](_0x59193f,_0x5d48b0){const _0x26541b=a0_0x207d0d;throw new Error('Tool\x20'+this['id']+_0x26541b(0x151));}['getCapabilities'](){const _0x386a0d=a0_0x207d0d;return{'id':this['id'],'async':this['isAsync'],'requiresProject':this['requiresProject'],'timeout':this[_0x386a0d(0x157)],'maxConcurrentOperations':this['maxConcurrentOperations'],'enabled':this[_0x386a0d(0x10f)],'supportedActions':this['getSupportedActions'](),'parameterSchema':this[_0x386a0d(0x16d)]()};}[a0_0x207d0d(0x133)](_0x2c20c9){const _0x492237=a0_0x207d0d;try{if(!_0x2c20c9||typeof _0x2c20c9!==_0x492237(0x129))return{'valid':![],'error':'Parameters\x20must\x20be\x20an\x20object'};const requiredParams=this['getRequiredParameters']();for(const required of requiredParams){if(!(required in _0x2c20c9))return{'valid':![],'error':_0x492237(0x114)+required};}const _0x3c5996=this['validateParameterTypes'](_0x2c20c9);if(!_0x3c5996['valid'])return _0x3c5996;const _0x2f11e7=this['customValidateParameters'](_0x2c20c9);if(!_0x2f11e7[_0x492237(0x17d)])return _0x2f11e7;return{'valid':!![]};}catch(_0x25c756){return{'valid':![],'error':'Parameter\x20validation\x20failed:\x20'+_0x25c756[_0x492237(0x13e)]};}}async[a0_0x207d0d(0x142)](_0xd23d66,_0x55d1c1){const _0x4b6a9a=a0_0x207d0d,_0x48881d=this['generateOperationId'](),_0x379a23=Date[_0x4b6a9a(0x110)]();if(!this['isEnabled'])throw new Error(_0x4b6a9a(0x14d)+this['id']+_0x4b6a9a(0x168));if(this[_0x4b6a9a(0x140)][_0x4b6a9a(0x12b)]>=this['maxConcurrentOperations'])throw new Error(_0x4b6a9a(0x14d)+this['id']+'\x20has\x20reached\x20maximum\x20concurrent\x20operations\x20limit');const _0x2184c9=this[_0x4b6a9a(0x133)](_0xd23d66);if(!_0x2184c9[_0x4b6a9a(0x17d)])throw new Error('Parameter\x20validation\x20failed:\x20'+_0x2184c9[_0x4b6a9a(0x11e)]);const _0x4c5be7={'id':_0x48881d,'toolId':this['id'],'status':TOOL_STATUS[_0x4b6a9a(0x156)],'startTime':new Date()['toISOString'](),'params':_0xd23d66,'context':this['sanitizeContext'](_0x55d1c1)};this[_0x4b6a9a(0x140)]['set'](_0x48881d,_0x4c5be7);try{this[_0x4b6a9a(0x17a)]?.['info'](_0x4b6a9a(0x10d)+this['id'],{'operationId':_0x48881d,'toolId':this['id'],'context':_0x4c5be7[_0x4b6a9a(0x141)]});const _0x5a8637=await this[_0x4b6a9a(0x186)](_0xd23d66,_0x55d1c1);return _0x4c5be7[_0x4b6a9a(0x14b)]=TOOL_STATUS[_0x4b6a9a(0x121)],_0x4c5be7[_0x4b6a9a(0x137)]=_0x5a8637,_0x4c5be7['endTime']=new Date()['toISOString'](),_0x4c5be7[_0x4b6a9a(0x10c)]=Date['now']()-_0x379a23,this[_0x4b6a9a(0x134)]=new Date()['toISOString'](),this['usageCount']++,this['logger']?.['info']('Tool\x20execution\x20completed:\x20'+this['id'],{'operationId':_0x48881d,'executionTime':_0x4c5be7['executionTime'],'success':!![]}),{'success':!![],'operationId':_0x48881d,'result':_0x5a8637,'executionTime':_0x4c5be7['executionTime'],'toolId':this['id']};}catch(_0x1ecf13){_0x4c5be7['status']=TOOL_STATUS[_0x4b6a9a(0x15f)],_0x4c5be7['error']=_0x1ecf13['message'],_0x4c5be7[_0x4b6a9a(0x11a)]=new Date()[_0x4b6a9a(0x181)](),_0x4c5be7['executionTime']=Date['now']()-_0x379a23,this[_0x4b6a9a(0x17a)]?.['error']('Tool\x20execution\x20failed:\x20'+this['id'],{'operationId':_0x48881d,'error':_0x1ecf13[_0x4b6a9a(0x13e)],'executionTime':_0x4c5be7['executionTime']});throw _0x1ecf13;}finally{this['operationHistory'][_0x4b6a9a(0x162)]({..._0x4c5be7}),this[_0x4b6a9a(0x140)]['delete'](_0x48881d),this['cleanupHistory'](),await this['cleanup'](_0x48881d);}}async[a0_0x207d0d(0x123)](_0x50b6a3){const _0x6b3caa=a0_0x207d0d,_0x4570b2=this[_0x6b3caa(0x140)]['get'](_0x50b6a3);if(!_0x4570b2){const _0xbf2f69=this[_0x6b3caa(0x165)][_0x6b3caa(0x166)](_0x21771f=>_0x21771f['id']===_0x50b6a3);if(_0xbf2f69)return{'operationId':_0x50b6a3,'status':_0xbf2f69[_0x6b3caa(0x14b)],'result':_0xbf2f69['result'],'error':_0xbf2f69[_0x6b3caa(0x11e)],'executionTime':_0xbf2f69['executionTime']};return{'operationId':_0x50b6a3,'status':OPERATION_STATUS['NOT_FOUND'],'error':'Operation\x20not\x20found'};}return{'operationId':_0x50b6a3,'status':_0x4570b2[_0x6b3caa(0x14b)],'startTime':_0x4570b2[_0x6b3caa(0x14f)],'executionTime':_0x4570b2[_0x6b3caa(0x11a)]?new Date(_0x4570b2['endTime'])[_0x6b3caa(0x113)]()-new Date(_0x4570b2['startTime'])[_0x6b3caa(0x113)]():Date[_0x6b3caa(0x110)]()-new Date(_0x4570b2[_0x6b3caa(0x14f)])[_0x6b3caa(0x113)]()};}async['cleanup'](_0x25713a){}['getSupportedActions'](){return['execute'];}[a0_0x207d0d(0x16d)](){const _0x2ccedb=a0_0x207d0d;return{'type':_0x2ccedb(0x129),'properties':{},'required':[]};}[a0_0x207d0d(0x177)](){return[];}[a0_0x207d0d(0x11d)](_0x4e9412){return{'valid':!![]};}[a0_0x207d0d(0x184)](_0x42175d){return{'valid':!![]};}async[a0_0x207d0d(0x186)](_0x312c0f,_0x157d10){return new Promise(async(_0x7d0f55,_0x1e35b5)=>{const _0x4fb4e8=a0_0x5652,_0x124264=setTimeout(()=>{const _0x53722e=a0_0x5652;_0x1e35b5(new Error('Tool\x20execution\x20timed\x20out\x20after\x20'+this[_0x53722e(0x157)]+'ms'));},this['timeout']);try{const _0x2a7624=await this[_0x4fb4e8(0x172)](_0x312c0f,_0x157d10);clearTimeout(_0x124264),_0x7d0f55(_0x2a7624);}catch(_0x16a717){clearTimeout(_0x124264),_0x1e35b5(_0x16a717);}});}['generateOperationId'](){const _0x1bf723=a0_0x207d0d;return this['id']+'-'+Date['now']()+'-'+Math[_0x1bf723(0x189)]()[_0x1bf723(0x12e)](0x24)['substr'](0x2,0x9);}['sanitizeContext'](_0x49dc52){const _0x9d9bc5=a0_0x207d0d,_0xb3ab47={..._0x49dc52};return delete _0xb3ab47[_0x9d9bc5(0x183)],delete _0xb3ab47['secrets'],delete _0xb3ab47['passwords'],_0xb3ab47[_0x9d9bc5(0x132)]&&_0xb3ab47[_0x9d9bc5(0x132)][_0x9d9bc5(0x146)]>0x1f4&&(_0xb3ab47[_0x9d9bc5(0x132)]=_0xb3ab47[_0x9d9bc5(0x132)][_0x9d9bc5(0x10e)](0x0,0x1f4)+'...\x20[truncated]'),_0xb3ab47;}[a0_0x207d0d(0x158)](){const _0x3b742b=0x64;this['operationHistory']['length']>_0x3b742b&&(this['operationHistory']=this['operationHistory']['slice'](-_0x3b742b));}['getUsageStats'](){const _0x245bd2=a0_0x207d0d;return{'toolId':this['id'],'usageCount':this[_0x245bd2(0x17b)],'lastUsed':this['lastUsed'],'activeOperations':this['activeOperations'][_0x245bd2(0x12b)],'totalOperations':this['operationHistory']['length'],'averageExecutionTime':this['calculateAverageExecutionTime'](),'successRate':this['calculateSuccessRate'](),'isEnabled':this['isEnabled']};}[a0_0x207d0d(0x148)](){const _0x3b6b36=a0_0x207d0d,_0x17bb17=this['operationHistory'][_0x3b6b36(0x12c)](_0x19a69a=>_0x19a69a[_0x3b6b36(0x14b)]===TOOL_STATUS['COMPLETED']&&_0x19a69a[_0x3b6b36(0x10c)]);if(_0x17bb17['length']===0x0)return 0x0;const _0x3d6d60=_0x17bb17['reduce']((_0x328bc5,_0x13690e)=>_0x328bc5+_0x13690e['executionTime'],0x0);return Math[_0x3b6b36(0x13a)](_0x3d6d60/_0x17bb17['length']);}['calculateSuccessRate'](){const _0x4b5c84=a0_0x207d0d;if(this['operationHistory']['length']===0x0)return 0x0;const _0x553688=this['operationHistory'][_0x4b5c84(0x12c)](_0x12c45e=>_0x12c45e[_0x4b5c84(0x14b)]===TOOL_STATUS[_0x4b5c84(0x121)]);return _0x553688['length']/this['operationHistory']['length']*0x64;}[a0_0x207d0d(0x13d)](){const _0x15ac08=a0_0x207d0d;this['isEnabled']=!![],this['logger']?.[_0x15ac08(0x176)](_0x15ac08(0x119)+this['id']);}[a0_0x207d0d(0x145)](){const _0x3c138f=a0_0x207d0d;this['isEnabled']=![],this['logger']?.[_0x3c138f(0x176)]('Tool\x20disabled:\x20'+this['id']);}['resetStats'](){const _0x108016=a0_0x207d0d;this['usageCount']=0x0,this[_0x108016(0x134)]=null,this[_0x108016(0x165)]=[],this[_0x108016(0x17a)]?.[_0x108016(0x176)](_0x108016(0x15b)+this['id']);}}class ToolsRegistry{constructor(_0x46faaa=null){const _0x128b08=a0_0x207d0d;this['logger']=_0x46faaa,this['tools']=new Map(),this[_0x128b08(0x15e)]=new Map(),this['toolCapabilities']=new Map(),this[_0x128b08(0x161)]=new Map();}async[a0_0x207d0d(0x147)](_0xf9317e){const _0x3aa50e=a0_0x207d0d;try{const _0x1c287c=new _0xf9317e();if(!(_0x1c287c instanceof BaseTool))throw new Error('Tool\x20'+_0xf9317e['name']+'\x20must\x20extend\x20BaseTool');const _0x3d8ef7=_0x1c287c['getCapabilities']();await this['validateTool'](_0x1c287c),this['tools'][_0x3aa50e(0x12a)](_0x1c287c['id'],_0x1c287c),this['toolDescriptions'][_0x3aa50e(0x12a)](_0x1c287c['id'],_0x1c287c['getDescription']()),this[_0x3aa50e(0x154)]['set'](_0x1c287c['id'],_0x3d8ef7),this[_0x3aa50e(0x17a)]?.[_0x3aa50e(0x176)](_0x3aa50e(0x16a)+_0x1c287c['id'],{'capabilities':_0x3d8ef7[_0x3aa50e(0x167)],'async':_0x3d8ef7[_0x3aa50e(0x180)],'requiresProject':_0x3d8ef7['requiresProject']});}catch(_0x55b068){this['logger']?.[_0x3aa50e(0x11e)]('Tool\x20registration\x20failed:\x20'+_0x55b068[_0x3aa50e(0x13e)],{'toolClass':_0xf9317e[_0x3aa50e(0x126)]});throw _0x55b068;}}async['discoverTools'](_0x5a4ea5){return 0x0;}async[a0_0x207d0d(0x169)](_0x2f7fcd){const _0x5a1040=a0_0x207d0d,requiredMethods=['getDescription',_0x5a1040(0x17c),_0x5a1040(0x172)];for(const _0x519291 of requiredMethods){if(typeof _0x2f7fcd[_0x519291]!==_0x5a1040(0x16c))throw new Error('Tool\x20'+_0x2f7fcd['id']+'\x20missing\x20required\x20method:\x20'+_0x519291);}try{const _0x476dfe=_0x2f7fcd[_0x5a1040(0x17c)]('test\x20content');if(typeof _0x476dfe!==_0x5a1040(0x129))throw new Error(_0x5a1040(0x14d)+_0x2f7fcd['id']+_0x5a1040(0x15c));}catch(_0xdd3b54){}const _0x5bfcb2=_0x2f7fcd[_0x5a1040(0x153)]();if(!_0x5bfcb2||typeof _0x5bfcb2!=='object')throw new Error(_0x5a1040(0x14d)+_0x2f7fcd['id']+'\x20getCapabilities\x20must\x20return\x20an\x20object');}[a0_0x207d0d(0x155)](_0x58a363){return this['tools']['get'](_0x58a363)||null;}['getToolCapabilities'](){const _0x350f09=a0_0x207d0d,_0x36d2ca={};for(const [_0x29eaac,_0x503725]of this['tools']['entries']()){_0x503725['isEnabled']&&(_0x36d2ca[_0x29eaac]={'description':this['toolDescriptions']['get'](_0x29eaac),'capabilities':this['toolCapabilities']['get'](_0x29eaac),'usageStats':_0x503725[_0x350f09(0x12f)]()});}return _0x36d2ca;}async['executeToolSecurely'](_0x180539,_0x25bca1,_0x4377b0){const _0x565f13=a0_0x207d0d,_0x59c66f=this['getTool'](_0x180539);if(!_0x59c66f)throw new Error(_0x565f13(0x149)+_0x180539);if(!_0x59c66f[_0x565f13(0x10f)])throw new Error('Tool\x20is\x20disabled:\x20'+_0x180539);return await _0x59c66f['executeWithLifecycle'](_0x25bca1,_0x4377b0);}[a0_0x207d0d(0x18a)](){const _0x27442b=a0_0x207d0d;return Array[_0x27442b(0x152)](this['tools'][_0x27442b(0x118)]());}['generateToolDescriptionsForPrompt'](_0x308f66=[],_0x1026c8={}){const _0x427320=a0_0x207d0d,{includeExamples:includeExamples=!![],includeUsageGuidelines:includeUsageGuidelines=!![],includeSecurityNotes:includeSecurityNotes=!![],compact:compact=![]}=_0x1026c8,_0x1fc12c=_0x308f66['length']>0x0?_0x308f66['filter'](_0x132c58=>this['tools'][_0x427320(0x124)](_0x132c58)):Array['from'](this['tools'][_0x427320(0x118)]());if(_0x1fc12c['length']===0x0)return'';let _0x193fc1='\x0a##\x20AVAILABLE\x20TOOLS\x0a\x0a';_0x193fc1+='You\x20have\x20access\x20to\x20the\x20following\x20tools\x20to\x20perform\x20operations\x20and\x20tasks:\x0a\x0a';for(const _0x128cfb of _0x1fc12c){const _0x34fe2=this[_0x427320(0x17f)]['get'](_0x128cfb);if(!_0x34fe2||!_0x34fe2[_0x427320(0x10f)])continue;try{if(compact){const _0x7f968a=_0x34fe2[_0x427320(0x153)](),_0x53f202=_0x7f968a[_0x427320(0x167)]||[_0x427320(0x172)];_0x193fc1+='**'+_0x128cfb+'**:\x20'+_0x53f202[_0x427320(0x116)](',\x20')+'\x0a';}else _0x193fc1+=_0x427320(0x179)+_0x128cfb['toUpperCase']()+'\x20TOOL\x0a\x0a',_0x193fc1+=_0x34fe2['getDescription'](),_0x193fc1+='\x0a\x0a---\x0a\x0a';}catch(_0x884ae2){this['logger']?.[_0x427320(0x14c)]('Failed\x20to\x20get\x20description\x20for\x20tool:\x20'+_0x128cfb,{'error':_0x884ae2['message']});}}return compact&&(_0x193fc1+='\x0aUse\x20[tool\x20id=\x22tool-name\x22]<parameters>[/tool]\x20or\x20JSON\x20format\x20to\x20invoke\x20tools.\x0a\x0a'),_0x193fc1+=_0x427320(0x15a),_0x193fc1+='**IMPORTANT**:\x20You\x20MUST\x20use\x20one\x20of\x20these\x20exact\x20formats\x20to\x20invoke\x20tools:\x0a\x0a',_0x193fc1+='###\x20Format\x201:\x20Bracket\x20Notation\x0a',_0x193fc1+='```\x0a',_0x193fc1+='[tool\x20id=\x22toolname\x22]\x0a',_0x193fc1+=_0x427320(0x144),_0x193fc1+=_0x427320(0x16f),_0x193fc1+='```\x0a\x0a',_0x193fc1+=_0x427320(0x164),_0x193fc1+='```\x0a',_0x193fc1+='```json\x0a',_0x193fc1+='{\x0a',_0x193fc1+=_0x427320(0x16e),_0x193fc1+='\x20\x20\x22parameters\x22:\x20{\x20...\x20}\x20or\x20\x22actions\x22:\x20[\x20...\x20]\x0a',_0x193fc1+='}\x0a',_0x193fc1+='```\x0a',_0x193fc1+=_0x427320(0x138),_0x193fc1+=_0x427320(0x18b),_0x193fc1+='Always\x20wrap\x20JSON\x20tool\x20commands\x20in\x20```json\x20...\x20```\x20blocks.\x0a\x0a',_0x193fc1+=_0x427320(0x135),_0x193fc1+=_0x427320(0x178),_0x193fc1+=_0x427320(0x120),_0x193fc1+=_0x427320(0x128),_0x193fc1+=_0x427320(0x143),_0x193fc1+=_0x427320(0x173),_0x193fc1+='</tool-command>\x0a',_0x193fc1+=_0x427320(0x138),_0x193fc1+='After\x20invoking\x20a\x20tool,\x20WAIT\x20for\x20the\x20actual\x20response.\x20Do\x20NOT\x20generate\x20imaginary\x20responses.\x0a',_0x193fc1;}[a0_0x207d0d(0x11f)](_0x6aa89d,_0xe274a9=[],_0x2d5ce1={}){const _0x234588=a0_0x207d0d,_0x4be187=this['generateToolDescriptionsForPrompt'](_0xe274a9,_0x2d5ce1);if(!_0x4be187[_0x234588(0x182)]())return _0x6aa89d||'';const _0x4f8282=_0x6aa89d||'';if(_0x4f8282[_0x234588(0x159)]('##\x20AVAILABLE\x20TOOLS'))return _0x4f8282[_0x234588(0x14e)](/## AVAILABLE TOOLS[\s\S]*?(?=##|$)/,_0x4be187+'\x0a');const _0x2384e9='IMPORTANT:\x20when\x20asked\x20to\x20perform\x20an\x20action\x20or\x20operation,\x20use\x20each\x20response\x20to\x20invoke\x20a\x20tool\x20if\x20needed,\x20and\x20update\x20the\x20user\x20on\x20the\x20progress\x20(same\x20message).';return _0x4f8282+(_0x4f8282[_0x234588(0x16b)]('\x0a')?'':'\x0a')+_0x4be187+_0x2384e9+'\x0a';}['getAvailableToolsForUI'](){const _0xd882db=a0_0x207d0d,_0x57e803=[];for(const [_0x252898,_0x4dd4e0]of this['tools'][_0xd882db(0x117)]()){const _0x1b2bc6=_0x4dd4e0[_0xd882db(0x153)](),_0x5d8112=_0x4dd4e0[_0xd882db(0x122)](),_0x52b3a4=_0x5d8112[_0xd882db(0x11c)]('\x0a')[_0xd882db(0x166)](_0x556d02=>_0x556d02['trim']()[_0xd882db(0x146)]>0x0)||'',_0x4bf398=_0x52b3a4['replace'](/^.*Tool:\s*/i,'')['replace'](/\s*-.*$/,'')[_0xd882db(0x182)]();_0x57e803['push']({'id':_0x252898,'name':_0x4bf398||_0x252898['charAt'](0x0)[_0xd882db(0x13c)]()+_0x252898[_0xd882db(0x125)](0x1),'description':_0x52b3a4,'category':this[_0xd882db(0x188)](_0x252898),'enabled':_0x1b2bc6[_0xd882db(0x170)],'async':_0x1b2bc6['async'],'requiresProject':_0x1b2bc6[_0xd882db(0x14a)],'className':_0x4dd4e0[_0xd882db(0x11b)]['name']});}return _0x57e803['sort']((_0x1c20cc,_0x42f59d)=>_0x1c20cc[_0xd882db(0x126)]['localeCompare'](_0x42f59d[_0xd882db(0x126)]));}['_getToolCategory'](_0x34834f){const _0x132f35=a0_0x207d0d,_0x46a47d={'terminal':_0x132f35(0x163),'filesystem':_0x132f35(0x112),'browser':'Automation','agentdelay':_0x132f35(0x13b)};return _0x46a47d[_0x34834f]||_0x132f35(0x115);}[a0_0x207d0d(0x187)](){const _0x189df2=a0_0x207d0d,_0x2d3527=Array[_0x189df2(0x152)](this['tools'][_0x189df2(0x13f)]())['filter'](_0x554aaf=>_0x554aaf[_0x189df2(0x10f)]),_0x41dd87=Array[_0x189df2(0x152)](this[_0x189df2(0x17f)][_0x189df2(0x13f)]())[_0x189df2(0x139)]((_0x54764c,_0x45c833)=>_0x54764c+_0x45c833[_0x189df2(0x17b)],0x0);return{'totalTools':this[_0x189df2(0x17f)]['size'],'enabledTools':_0x2d3527['length'],'totalOperations':_0x41dd87,'activeOperations':this[_0x189df2(0x161)]['size']};}}export{BaseTool,ToolsRegistry};function a0_0x5560(){const _0x5dfd9e=['DhjPBq','yxbPs2v5CW','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','Dg9mB3DLCKnHC2u','zxHLy3v0zvDPDgHuAw1LB3v0','z2v0uMvNAxn0CNLtDgf0CW','x2DLDfrVB2XdyxrLz29YEq','CMfUzg9T','BgLZDfrVB2XZ','kIPxqvjosu5hkIO6ifbSywLUiePtt04GD2L0Ag91DcbTyxjRzg93BIbJB2rLigjSB2nRCYaOygbGANnVBIKGD2LSBcbot1qGyMuGzxHLy3v0zwqHcG','zxHLy3v0Aw9UvgLTzq','vg9VBcbLEgvJDxrPB24GC3rHCNrLzdOG','C3vIC3rYAw5N','AxnfBMfIBgvK','BM93','mZa4nJLzvLHewgm','rMLSzsbpCgvYyxrPB25Z','z2v0vgLTzq','twLZC2LUzYbYzxf1AxjLzcbWyxjHBwv0zxi6ia','t3rOzxi','AM9PBG','zw50CMLLCW','A2v5CW','vg9VBcbLBMfIBgvKoIa','zw5KvgLTzq','y29UC3rYDwn0B3i','C3bSAxq','DMfSAwrHDgvqyxjHBwv0zxjuExbLCW','zxjYB3i','zw5Oyw5Jzvn5C3rLBvbYB21WDa','phrVB2WTy29TBwfUzd4k','q09nueXfveve','z2v0rgvZy3jPChrPB24','z2v0u3rHDhvZ','AgfZ','C2XPy2u','BMfTzq','ig11C3qGAw1WBgvTzw50igDLDerLC2nYAxb0Aw9UkcK','ica8Dg9VBcbPzd0IDg9VBg5HBwuIpGO','B2jQzwn0','C2v0','C2L6zq','zMLSDgvY','mtmWmtG0odbMvuLvA0W','Dg9tDhjPBMC','z2v0vxnHz2vtDgf0CW','mZi3mZa2mePAqKjvuq','nZq0ntiWmMLjwuvyta','y29UDgvUDa','DMfSAwrHDgvqyxjHBwv0zxjZ','BgfZDfvZzwq','iYmJiezVCM1HDcaZoIbytuWGrM9YBwf0cG','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','CMvZDwX0','ygbGcGO','CMvKDwnL','CM91BMq','vxrPBgL0Eq','Dg9vChbLCKnHC2u','zw5HyMXL','BwvZC2fNzq','DMfSDwvZ','ywn0AxzLt3bLCMf0Aw9UCW','y29UDgv4Da','zxHLy3v0zvDPDgHmAwzLy3LJBgu','icaGidXWyxjHBwv0zxi+DMfSDwu8l3bHCMfTzxrLCJ4k','phbHCMfTzxrLCNmGAgvYzt4k','zgLZywjSzq','BgvUz3rO','CMvNAxn0zxjuB29S','y2fSy3vSyxrLqxzLCMfNzuv4zwn1DgLVBLrPBwu','vg9VBcbUB3qGzM91BMq6ia','CMvXDwLYzxnqCM9Qzwn0','C3rHDhvZ','D2fYBG','vg9VBca','CMvWBgfJzq','C3rHCNruAw1L','mJaZmte4nvHRD1HQva','ig11C3qGAw1WBgvTzw50igv4zwn1DguOkq','zNjVBq','z2v0q2fWywjPBgL0AwvZ','Dg9VBenHCgfIAwXPDgLLCW','z2v0vg9VBa','rvHfq1vusu5h','DgLTzw91Da','y2XLyw51CeHPC3rVCNK','Aw5JBhvKzxm','iYmGve9ptcbjtLzpq0fusu9oifnztLrbwaOk','vg9VBcbZDgf0Axn0AwnZihjLC2v0oIa','ihbHCNnLugfYyw1LDgvYCYbTDxn0ihjLDhvYBIbHBIbVyMPLy3q','nde2oti0EhfYwKPm','Dg9VBerLC2nYAxb0Aw9UCW','rKfjteve','otmZodu4q1DdvMfM','yxn5BMnpCgvYyxrPB25Z','ChvZAa','u3LZDgvT','iYmJiezVCM1HDcaYoIbku09oigLUie1HCMTKB3DUienVzguGqMXVy2SGkfjfuvvjuKveigzVCIbku09okqO','B3bLCMf0Aw9UsgLZDg9YEq','zMLUza','C3vWCg9YDgvKqwn0Aw9UCW','igLZigrPC2fIBgvK','DMfSAwrHDgvuB29S','vg9VBcbYzwDPC3rLCMvKoIa','zw5KC1DPDgG','zNvUy3rPB24','z2v0ugfYyw1LDgvYu2nOzw1H','icaIDg9VBeLKiJOGiNrVB2XUyw1LiIWk','wY90B29SxqO','zw5HyMXLza','AxnbC3LUyW','zxHLy3v0zq','ica8l3rVB2W+cG','mZb6qLLmz1u','m0fMBMPywa','Aw5MBW','z2v0uMvXDwLYzwrqyxjHBwv0zxjZ','ygbGEg1ScG','iYmJia','Bg9Nz2vY','DxnHz2vdB3vUDa','CgfYC2vqyxjHBwv0zxjZ','DMfSAwq','odbsswLeDui','Dg9VBhm','yxn5BMm','Dg9ju09tDhjPBMC'];a0_0x5560=function(){return _0x5dfd9e;};return a0_0x5560();}
@@ -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_0x579e7b=a0_0x1aff;function a0_0x1aff(_0x8914a9,_0x50d547){_0x8914a9=_0x8914a9-0xfe;const _0x1e326b=a0_0x1e32();let _0x1aff28=_0x1e326b[_0x8914a9];if(a0_0x1aff['woPBxQ']===undefined){var _0x3d055b=function(_0x25f31e){const _0x3658ab='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4a9ba9='',_0x24b6d4='';for(let _0x1a05aa=0x0,_0x2db0f2,_0x215fba,_0x1a0130=0x0;_0x215fba=_0x25f31e['charAt'](_0x1a0130++);~_0x215fba&&(_0x2db0f2=_0x1a05aa%0x4?_0x2db0f2*0x40+_0x215fba:_0x215fba,_0x1a05aa++%0x4)?_0x4a9ba9+=String['fromCharCode'](0xff&_0x2db0f2>>(-0x2*_0x1a05aa&0x6)):0x0){_0x215fba=_0x3658ab['indexOf'](_0x215fba);}for(let _0x166715=0x0,_0x13aac7=_0x4a9ba9['length'];_0x166715<_0x13aac7;_0x166715++){_0x24b6d4+='%'+('00'+_0x4a9ba9['charCodeAt'](_0x166715)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x24b6d4);};a0_0x1aff['psDcef']=_0x3d055b,a0_0x1aff['eQWReM']={},a0_0x1aff['woPBxQ']=!![];}const _0x3007cc=_0x1e326b[0x0],_0x23aa80=_0x8914a9+_0x3007cc,_0x19a33c=a0_0x1aff['eQWReM'][_0x23aa80];return!_0x19a33c?(_0x1aff28=a0_0x1aff['psDcef'](_0x1aff28),a0_0x1aff['eQWReM'][_0x23aa80]=_0x1aff28):_0x1aff28=_0x19a33c,_0x1aff28;}(function(_0x56467e,_0x512561){const _0x59f906=a0_0x1aff,_0x54ae79=_0x56467e();while(!![]){try{const _0xc6a56e=-parseInt(_0x59f906(0x131))/0x1+-parseInt(_0x59f906(0x12f))/0x2+parseInt(_0x59f906(0x108))/0x3+parseInt(_0x59f906(0x10d))/0x4*(-parseInt(_0x59f906(0x124))/0x5)+parseInt(_0x59f906(0x15d))/0x6*(-parseInt(_0x59f906(0x126))/0x7)+parseInt(_0x59f906(0x11d))/0x8+parseInt(_0x59f906(0x110))/0x9*(parseInt(_0x59f906(0x146))/0xa);if(_0xc6a56e===_0x512561)break;else _0x54ae79['push'](_0x54ae79['shift']());}catch(_0xf0e4c2){_0x54ae79['push'](_0x54ae79['shift']());}}}(a0_0x1e32,0x68876));import{BaseTool}from'./baseTool.js';import a0_0x4a9ba9 from'../utilities/tagParser.js';import a0_0x24b6d4 from'puppeteer';import a0_0x1a05aa from'fs/promises';import a0_0x2db0f2 from'path';import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class BrowserTool extends BaseTool{constructor(_0x215fba={},_0x1a0130=null){const _0x40c0be=a0_0x1aff;super(_0x215fba,_0x1a0130),this['requiresProject']=![],this[_0x40c0be(0x12a)]=!![],this[_0x40c0be(0x164)]=_0x215fba[_0x40c0be(0x164)]||0xea60,this['maxConcurrentOperations']=_0x215fba['maxConcurrentOperations']||0x2,this[_0x40c0be(0x103)]={'headless':_0x215fba['headless']!==![],'viewport':_0x215fba['viewport']||{'width':0x500,'height':0x2d0},'userAgent':_0x215fba['userAgent']||_0x40c0be(0x116),'timeout':_0x215fba[_0x40c0be(0x143)]||0x7530},this[_0x40c0be(0x130)]=new Map(),this[_0x40c0be(0x104)]=_0x215fba['allowedDomains']||null,this['blockedDomains']=_0x215fba['blockedDomains']||[],this[_0x40c0be(0x166)]=_0x215fba['maxScreenshotSize']||0x5*0x400*0x400,this[_0x40c0be(0x14b)]=[];}[a0_0x579e7b(0x154)](){const _0x3b287d=a0_0x579e7b;return _0x3b287d(0x161)+this[_0x3b287d(0x103)]['viewport']['width']+'x'+this['browserConfig']['viewport']['height']+_0x3b287d(0x160)+this['browserConfig']['timeout']+'ms\x20per\x20operation\x0aMAX\x20WAIT\x20TIME:\x2030\x20seconds\x20(30000ms)\x0a\x20\x20\x20\x20';}['parseParameters'](_0x166715){const _0x493227=a0_0x579e7b;try{if(_0x166715[_0x493227(0x134)]()[_0x493227(0x114)]('{')){const _0x13e3a6=JSON[_0x493227(0x10e)](_0x166715);return!_0x13e3a6[_0x493227(0x162)]&&(_0x13e3a6['actions']=[]),!Array[_0x493227(0x10b)](_0x13e3a6[_0x493227(0x162)])&&(_0x13e3a6[_0x493227(0x162)]=[_0x13e3a6['actions']]),_0x13e3a6;}const _0x13aac7={},_0x8e3a9=[],_0x288533=['navigate',_0x493227(0x142),'type','wait',_0x493227(0x12e),'extract',_0x493227(0x144),_0x493227(0x151)];for(const _0x38e0cf of _0x288533){const _0x4bc365=new RegExp('<'+_0x38e0cf+'\x5cs+([^>]*?)\x5cs*\x5c/?>','gi');let _0x574aae;while((_0x574aae=_0x4bc365['exec'](_0x166715))!==null){const _0x5b20fb=_0x574aae[0x1],_0x41cb83=this[_0x493227(0x11e)](_0x5b20fb),_0x24f8e3={'type':_0x38e0cf,..._0x41cb83};_0x24f8e3[_0x493227(0x10c)]&&(_0x24f8e3['outputPath']=_0x24f8e3[_0x493227(0x10c)],delete _0x24f8e3[_0x493227(0x10c)]),_0x24f8e3[_0x493227(0x165)]&&(_0x24f8e3['waitTime']=parseInt(_0x24f8e3[_0x493227(0x165)],0xa),delete _0x24f8e3[_0x493227(0x165)]),_0x24f8e3[_0x493227(0x16c)]&&(_0x24f8e3[_0x493227(0x16a)]=_0x24f8e3['wait-selector'],delete _0x24f8e3['wait-selector']),_0x24f8e3[_0x493227(0x13b)]&&(_0x24f8e3['waitType']=_0x24f8e3['wait-type'],delete _0x24f8e3[_0x493227(0x13b)]),_0x24f8e3[_0x493227(0x15e)]&&(_0x24f8e3[_0x493227(0x10f)]=_0x24f8e3[_0x493227(0x15e)]==='true',delete _0x24f8e3[_0x493227(0x15e)]),_0x8e3a9[_0x493227(0xff)](_0x24f8e3);}}return _0x13aac7[_0x493227(0x162)]=Array['isArray'](_0x8e3a9)?_0x8e3a9:[],_0x13aac7[_0x493227(0x14f)]=_0x166715[_0x493227(0x134)](),_0x13aac7;}catch(_0x2ce9d1){return this['logger']?.[_0x493227(0x128)](_0x493227(0x169),{'error':_0x2ce9d1[_0x493227(0x136)]}),{'actions':[],'rawContent':_0x166715[_0x493227(0x134)](),'parseError':_0x2ce9d1[_0x493227(0x136)]};}}['parseAttributes'](_0x5395f0){const _0x35913c=a0_0x579e7b,_0x3b2ee7={};if(!_0x5395f0)return _0x3b2ee7;const _0xfc045c=/([\w-]+)\s*=\s*["']([^"']*)["']/g;let _0x349579;while((_0x349579=_0xfc045c[_0x35913c(0x159)](_0x5395f0))!==null){const _0x55ac70=_0x349579[0x1],_0x461d79=_0x349579[0x2];_0x3b2ee7[_0x55ac70]=_0x461d79;}return _0x3b2ee7;}['getRequiredParameters'](){return['actions'];}[a0_0x579e7b(0x158)](_0x34db72){const _0x5429e3=a0_0x579e7b,_0x262d35=[];if(!_0x34db72[_0x5429e3(0x162)]||!Array['isArray'](_0x34db72['actions'])||_0x34db72['actions']['length']===0x0)_0x262d35[_0x5429e3(0xff)]('At\x20least\x20one\x20action\x20is\x20required');else for(const [_0x3f006f,_0x3cad49]of _0x34db72['actions'][_0x5429e3(0x13e)]()){if(!_0x3cad49['type']){_0x262d35['push']('Action\x20'+(_0x3f006f+0x1)+':\x20type\x20is\x20required');continue;}switch(_0x3cad49[_0x5429e3(0x149)]){case'navigate':if(!_0x3cad49['url'])_0x262d35[_0x5429e3(0xff)]('Action\x20'+(_0x3f006f+0x1)+':\x20url\x20is\x20required\x20for\x20navigate');else!this['isAllowedUrl'](_0x3cad49[_0x5429e3(0x15c)])&&_0x262d35[_0x5429e3(0xff)](_0x5429e3(0x15a)+(_0x3f006f+0x1)+_0x5429e3(0x11c)+_0x3cad49[_0x5429e3(0x15c)]);break;case _0x5429e3(0x142):case'extract':!_0x3cad49[_0x5429e3(0x132)]&&_0x262d35['push']('Action\x20'+(_0x3f006f+0x1)+':\x20selector\x20is\x20required\x20for\x20'+_0x3cad49[_0x5429e3(0x149)]);break;case _0x5429e3(0x149):!_0x3cad49['selector']&&_0x262d35['push'](_0x5429e3(0x15a)+(_0x3f006f+0x1)+_0x5429e3(0x111));!_0x3cad49[_0x5429e3(0xfe)]&&_0x3cad49['text']!==''&&_0x262d35['push']('Action\x20'+(_0x3f006f+0x1)+_0x5429e3(0x12c));break;case _0x5429e3(0x123):!_0x3cad49['waitTime']&&!_0x3cad49['waitSelector']&&_0x262d35['push'](_0x5429e3(0x15a)+(_0x3f006f+0x1)+':\x20either\x20wait-time\x20or\x20wait-selector\x20is\x20required');_0x3cad49[_0x5429e3(0x15f)]&&(_0x3cad49['waitTime']<0x64||_0x3cad49[_0x5429e3(0x15f)]>0x7530)&&_0x262d35['push']('Action\x20'+(_0x3f006f+0x1)+':\x20wait-time\x20must\x20be\x20between\x20100\x20and\x2030000\x20milliseconds');break;case'screenshot':!_0x3cad49['outputPath']&&_0x262d35['push']('Action\x20'+(_0x3f006f+0x1)+_0x5429e3(0x153));break;case'scroll':if(!_0x3cad49[_0x5429e3(0x135)])_0x262d35[_0x5429e3(0xff)](_0x5429e3(0x15a)+(_0x3f006f+0x1)+':\x20direction\x20is\x20required\x20for\x20scroll');else!['up',_0x5429e3(0x121),'left',_0x5429e3(0x137)]['includes'](_0x3cad49['direction'])&&_0x262d35[_0x5429e3(0xff)]('Action\x20'+(_0x3f006f+0x1)+_0x5429e3(0x13f)+_0x3cad49[_0x5429e3(0x135)]);break;case _0x5429e3(0x151):break;default:_0x262d35[_0x5429e3(0xff)]('Action\x20'+(_0x3f006f+0x1)+':\x20unknown\x20action\x20type:\x20'+_0x3cad49[_0x5429e3(0x149)]);}}return{'valid':_0x262d35['length']===0x0,'errors':_0x262d35};}async['execute'](_0x46c54b,_0x45de2b){const _0x357301=a0_0x579e7b,{actions:_0x4a4ad1}=_0x46c54b,{agentId:_0x4df98f,projectDir:_0x48bd6f}=_0x45de2b,_0x21ecb6=_0x4df98f+'-'+(_0x48bd6f||'default'),_0x5cd332=[];for(const _0x1c1ab1 of _0x4a4ad1){try{let _0x27ae9e;switch(_0x1c1ab1['type']){case'navigate':_0x27ae9e=await this[_0x357301(0x15b)](_0x1c1ab1['url'],_0x21ecb6);break;case _0x357301(0x142):_0x27ae9e=await this['click'](_0x1c1ab1[_0x357301(0x132)],_0x21ecb6);break;case'type':_0x27ae9e=await this['type'](_0x1c1ab1[_0x357301(0x132)],_0x1c1ab1[_0x357301(0xfe)],_0x21ecb6);break;case _0x357301(0x123):_0x27ae9e=await this['wait'](_0x1c1ab1,_0x21ecb6);break;case'screenshot':_0x27ae9e=await this[_0x357301(0x12e)](_0x1c1ab1['outputPath'],_0x48bd6f,_0x21ecb6,_0x1c1ab1);break;case'extract':_0x27ae9e=await this[_0x357301(0x155)](_0x1c1ab1['selector'],_0x1c1ab1['attribute']||_0x357301(0xfe),_0x21ecb6);break;case _0x357301(0x144):_0x27ae9e=await this[_0x357301(0x144)](_0x1c1ab1,_0x21ecb6);break;case _0x357301(0x151):_0x27ae9e=await this['closeBrowser'](_0x21ecb6);break;default:throw new Error('Unknown\x20action\x20type:\x20'+_0x1c1ab1['type']);}_0x5cd332['push'](_0x27ae9e),this['addToHistory'](_0x1c1ab1,_0x27ae9e,_0x4df98f);}catch(_0x1337f9){const _0x31c610={'success':![],'action':_0x1c1ab1['type'],'error':_0x1337f9['message'],'selector':_0x1c1ab1[_0x357301(0x132)]||_0x1c1ab1['url']};_0x5cd332[_0x357301(0xff)](_0x31c610),this['addToHistory'](_0x1c1ab1,_0x31c610,_0x4df98f);}}return{'success':!![],'actions':_0x5cd332,'executedActions':_0x4a4ad1[_0x357301(0x14e)],'toolUsed':'browser'};}async['navigate'](_0x35132d,_0x4bb1e5){const _0x5d35f1=a0_0x579e7b,_0x30034e=await this[_0x5d35f1(0x115)](_0x4bb1e5),_0x30b6e0=await this['getPage'](_0x4bb1e5),_0x1c3beb=Date[_0x5d35f1(0x16b)]();try{await _0x30b6e0['goto'](_0x35132d,{'waitUntil':'networkidle0','timeout':this['browserConfig']['timeout']});const _0x471704=await _0x30b6e0[_0x5d35f1(0x105)](),_0x260f56=_0x30b6e0[_0x5d35f1(0x15c)]();return{'success':!![],'action':_0x5d35f1(0x15b),'url':_0x260f56,'originalUrl':_0x35132d,'title':_0x471704,'loadTime':Date[_0x5d35f1(0x16b)]()-_0x1c3beb,'message':'Navigated\x20to\x20'+_0x35132d};}catch(_0x9bf59e){throw new Error('Navigation\x20failed:\x20'+_0x9bf59e[_0x5d35f1(0x136)]);}}async[a0_0x579e7b(0x142)](_0x33ef05,_0x2961c8){const _0x20ae0b=a0_0x579e7b,_0x599d4d=await this['getPage'](_0x2961c8);try{return await _0x599d4d[_0x20ae0b(0x106)](_0x33ef05,{'timeout':0x1388}),await _0x599d4d['click'](_0x33ef05),{'success':!![],'action':'click','selector':_0x33ef05,'message':_0x20ae0b(0x14a)+_0x33ef05};}catch(_0x1d35ac){throw new Error(_0x20ae0b(0x140)+_0x33ef05+':\x20'+_0x1d35ac['message']);}}async[a0_0x579e7b(0x149)](_0x1ceab9,_0x350692,_0x3bdb02){const _0x11935c=a0_0x579e7b,_0x4d2429=await this['getPage'](_0x3bdb02);try{return await _0x4d2429['waitForSelector'](_0x1ceab9,{'timeout':0x1388}),await _0x4d2429[_0x11935c(0x118)](_0x1ceab9),await _0x4d2429['keyboard']['selectAll'](),await _0x4d2429[_0x11935c(0x149)](_0x1ceab9,_0x350692),{'success':!![],'action':_0x11935c(0x149),'selector':_0x1ceab9,'text':_0x350692,'textLength':_0x350692[_0x11935c(0x14e)],'message':'Typed\x20'+_0x350692[_0x11935c(0x14e)]+_0x11935c(0x168)+_0x1ceab9};}catch(_0x30615f){throw new Error('Type\x20failed\x20on\x20'+_0x1ceab9+':\x20'+_0x30615f['message']);}}async[a0_0x579e7b(0x123)](_0x192e43,_0x3f714d){const _0x485261=a0_0x579e7b,_0x33137b=await this['getPage'](_0x3f714d);try{if(_0x192e43[_0x485261(0x15f)])return await _0x33137b['waitForTimeout'](_0x192e43['waitTime']),{'success':!![],'action':'wait','waitTime':_0x192e43[_0x485261(0x15f)],'message':'Waited\x20'+_0x192e43[_0x485261(0x15f)]+'ms'};if(_0x192e43[_0x485261(0x16a)]){const _0x41fb0e=_0x192e43['waitType']||'visible',_0x138e96={'timeout':0x2710};return _0x41fb0e==='hidden'?await _0x33137b['waitForSelector'](_0x192e43['waitSelector'],{..._0x138e96,'hidden':!![]}):await _0x33137b['waitForSelector'](_0x192e43['waitSelector'],_0x138e96),{'success':!![],'action':_0x485261(0x123),'waitSelector':_0x192e43['waitSelector'],'waitType':_0x41fb0e,'message':_0x485261(0x12b)+_0x192e43[_0x485261(0x16a)]+'\x20to\x20be\x20'+_0x41fb0e};}}catch(_0x5c9bd9){throw new Error('Wait\x20failed:\x20'+_0x5c9bd9['message']);}}async['screenshot'](_0x4e2899,_0x427750,_0x4bef0,_0x5bd443={}){const _0x59695f=a0_0x579e7b,_0x1178e0=await this['getPage'](_0x4bef0);try{const _0x49fc65=_0x427750?a0_0x2db0f2[_0x59695f(0x156)](_0x427750,_0x4e2899):a0_0x2db0f2[_0x59695f(0x156)](_0x4e2899),_0x278831=a0_0x2db0f2['dirname'](_0x49fc65);await a0_0x1a05aa['mkdir'](_0x278831,{'recursive':!![]});const _0x3e5448={'path':_0x49fc65,'type':_0x59695f(0x107)};_0x5bd443['fullPage']&&(_0x3e5448[_0x59695f(0x10f)]=!![]);await _0x1178e0[_0x59695f(0x12e)](_0x3e5448);const _0x3e3af3=await a0_0x1a05aa[_0x59695f(0x147)](_0x49fc65);if(_0x3e3af3['size']>this['maxScreenshotSize'])throw new Error('Screenshot\x20too\x20large:\x20'+_0x3e3af3['size']+_0x59695f(0x133)+this[_0x59695f(0x166)]+')');return{'success':!![],'action':'screenshot','outputPath':a0_0x2db0f2[_0x59695f(0x11a)](_0x427750||process[_0x59695f(0x145)](),_0x49fc65),'size':_0x3e3af3['size'],'fullPage':!!_0x5bd443['fullPage'],'message':'Screenshot\x20saved:\x20'+_0x4e2899};}catch(_0x568c42){throw new Error(_0x59695f(0x14d)+_0x568c42['message']);}}async[a0_0x579e7b(0x155)](_0x7c023a,_0x2cf12f,_0x28733d){const _0x2ab174=a0_0x579e7b,_0x3fd66f=await this['getPage'](_0x28733d);try{await _0x3fd66f[_0x2ab174(0x106)](_0x7c023a,{'timeout':0x1388});let _0x16cd94;return _0x2cf12f==='text'?_0x16cd94=await _0x3fd66f[_0x2ab174(0x12d)](_0x7c023a,_0x2cd394=>_0x2cd394[_0x2ab174(0x150)]['trim']()):_0x16cd94=await _0x3fd66f[_0x2ab174(0x12d)](_0x7c023a,(_0x52cf30,_0x578933)=>_0x52cf30['getAttribute'](_0x578933),_0x2cf12f),{'success':!![],'action':'extract','selector':_0x7c023a,'attribute':_0x2cf12f,'data':_0x16cd94,'message':_0x2ab174(0x139)+_0x2cf12f+'\x20from\x20'+_0x7c023a};}catch(_0x27d5de){throw new Error('Extract\x20failed\x20on\x20'+_0x7c023a+':\x20'+_0x27d5de[_0x2ab174(0x136)]);}}async['scroll'](_0x48cd8f,_0x57cd4f){const _0x1c2995=a0_0x579e7b,_0x337f51=await this['getPage'](_0x57cd4f);try{const {direction:_0x10955b,pixels:pixels=0x12c,selector:_0x1b112f}=_0x48cd8f;return _0x1b112f?await _0x337f51[_0x1c2995(0x11b)]((_0x1d7d1c,_0x26f195,_0x1f6841)=>{const _0x3b5645=_0x1c2995,_0x4fd85f=document['querySelector'](_0x1d7d1c);if(_0x4fd85f){if(_0x26f195==='down')_0x4fd85f['scrollTop']+=_0x1f6841;else{if(_0x26f195==='up')_0x4fd85f[_0x3b5645(0x167)]-=_0x1f6841;else{if(_0x26f195==='right')_0x4fd85f[_0x3b5645(0x102)]+=_0x1f6841;else{if(_0x26f195==='left')_0x4fd85f['scrollLeft']-=_0x1f6841;}}}}},_0x1b112f,_0x10955b,pixels):await _0x337f51[_0x1c2995(0x11b)]((_0x39c7b1,_0x49a4b9)=>{const _0x1afc1d=_0x1c2995;if(_0x39c7b1==='down')window['scrollBy'](0x0,_0x49a4b9);else{if(_0x39c7b1==='up')window['scrollBy'](0x0,-_0x49a4b9);else{if(_0x39c7b1===_0x1afc1d(0x137))window[_0x1afc1d(0x163)](_0x49a4b9,0x0);else{if(_0x39c7b1==='left')window['scrollBy'](-_0x49a4b9,0x0);}}}},_0x10955b,pixels),{'success':!![],'action':_0x1c2995(0x144),'direction':_0x10955b,'pixels':pixels,'selector':_0x1b112f||_0x1c2995(0x13d),'message':'Scrolled\x20'+_0x10955b+'\x20by\x20'+pixels+'px'};}catch(_0x56a14b){throw new Error(_0x1c2995(0x125)+_0x56a14b[_0x1c2995(0x136)]);}}async[a0_0x579e7b(0x115)](_0x270e54){const _0x1beca2=a0_0x579e7b;if(this['browserInstances'][_0x1beca2(0x148)](_0x270e54)){const _0x267cec=this['browserInstances']['get'](_0x270e54);if(!_0x267cec[_0x1beca2(0x101)]['isConnected']())this[_0x1beca2(0x130)]['delete'](_0x270e54);else return _0x267cec[_0x1beca2(0x101)];}const _0x331eec=await a0_0x24b6d4[_0x1beca2(0x109)]({'headless':this[_0x1beca2(0x103)]['headless'],'args':[_0x1beca2(0x119),'--disable-setuid-sandbox','--disable-dev-shm-usage',_0x1beca2(0x120)]}),_0x54dee2=await _0x331eec[_0x1beca2(0x117)]();return await _0x54dee2[_0x1beca2(0x112)](this[_0x1beca2(0x103)][_0x1beca2(0x13c)]),await _0x54dee2['setUserAgent'](this[_0x1beca2(0x103)][_0x1beca2(0x152)]),this['browserInstances']['set'](_0x270e54,{'browser':_0x331eec,'page':_0x54dee2,'created':Date[_0x1beca2(0x16b)]()}),setTimeout(()=>{const _0x541ec2=_0x1beca2;this[_0x541ec2(0x113)](_0x270e54);},0xa*0x3c*0x3e8),_0x331eec;}async[a0_0x579e7b(0x11f)](_0x2226e3){const _0x557bbf=a0_0x579e7b;return await this[_0x557bbf(0x115)](_0x2226e3),this['browserInstances'][_0x557bbf(0x129)](_0x2226e3)['page'];}async['closeBrowser'](_0x318ce9){const _0x2d1895=a0_0x579e7b,_0x4c8a49=this['browserInstances'][_0x2d1895(0x129)](_0x318ce9);if(_0x4c8a49)try{return await _0x4c8a49['browser']['close'](),this['browserInstances']['delete'](_0x318ce9),{'success':!![],'action':_0x2d1895(0x151),'browserKey':_0x318ce9,'message':_0x2d1895(0x141)};}catch(_0x52456b){throw new Error(_0x2d1895(0x138)+_0x52456b[_0x2d1895(0x136)]);}return{'success':!![],'action':'close','browserKey':_0x318ce9,'message':'Browser\x20instance\x20not\x20found\x20(already\x20closed)'};}async['cleanupBrowser'](_0x321570){const _0x471926=a0_0x579e7b,_0x63d11a=this[_0x471926(0x130)]['get'](_0x321570);if(_0x63d11a)try{await _0x63d11a[_0x471926(0x101)]['close']();}catch(_0x1f66bd){}finally{this[_0x471926(0x130)]['delete'](_0x321570);}}[a0_0x579e7b(0x10a)](_0x58126a){const _0x2c8524=a0_0x579e7b;try{const _0x3d1d62=new URL(_0x58126a),_0x3cae6c=_0x3d1d62['hostname']['toLowerCase']();if(this['blockedDomains']['some'](_0x371297=>_0x3cae6c[_0x2c8524(0x127)](_0x371297['toLowerCase']())))return![];if(this[_0x2c8524(0x104)]&&this[_0x2c8524(0x104)][_0x2c8524(0x14e)]>0x0)return this['allowedDomains']['some'](_0x2111fc=>_0x3cae6c['includes'](_0x2111fc['toLowerCase']()));return!![];}catch{return![];}}['addToHistory'](_0x47574b,_0x36284e,_0x308457){const _0x5e23d4=a0_0x579e7b,_0x1e70f1={'timestamp':new Date()[_0x5e23d4(0x14c)](),'agentId':_0x308457,'action':_0x47574b[_0x5e23d4(0x149)],'selector':_0x47574b['selector']||_0x47574b['url'],'success':_0x36284e['success'],'loadTime':_0x36284e['loadTime']||0x0};this[_0x5e23d4(0x14b)]['push'](_0x1e70f1),this[_0x5e23d4(0x14b)]['length']>0x64&&(this[_0x5e23d4(0x14b)]=this['operationHistory']['slice'](-0x64));}['getSupportedActions'](){const _0xcc1e9d=a0_0x579e7b;return['navigate',_0xcc1e9d(0x142),'type','wait','screenshot','extract',_0xcc1e9d(0x144),'close'];}['getParameterSchema'](){const _0x4a62cf=a0_0x579e7b;return{'type':'object','properties':{'actions':{'type':'array','minItems':0x1,'items':{'type':_0x4a62cf(0x100),'properties':{'type':{'type':_0x4a62cf(0x122),'enum':this['getSupportedActions']()},'url':{'type':_0x4a62cf(0x122)},'selector':{'type':_0x4a62cf(0x122)},'text':{'type':_0x4a62cf(0x122)},'outputPath':{'type':'string'},'waitTime':{'type':'integer'},'waitSelector':{'type':_0x4a62cf(0x122)},'attribute':{'type':'string'},'direction':{'type':'string'},'pixels':{'type':_0x4a62cf(0x157)}},'required':[_0x4a62cf(0x149)]}}},'required':['actions']};}async['cleanup'](_0x5d9503){const _0x5c46e1=a0_0x579e7b;for(const [_0x12aa68]of this[_0x5c46e1(0x130)]){await this['cleanupBrowser'](_0x12aa68);}}[a0_0x579e7b(0x13a)](_0x493ffd=null){const _0x444a97=a0_0x579e7b;if(_0x493ffd)return this[_0x444a97(0x14b)]['filter'](_0x152b38=>_0x152b38['agentId']===_0x493ffd);return[...this['operationHistory']];}}export default BrowserTool;function a0_0x1e32(){const _0x344efa=['rxH0CMfJDgvKia','z2v0t3bLCMf0Aw9UsgLZDg9YEq','D2fPDc10ExbL','DMLLD3bVCNq','CgfNzq','zw50CMLLCW','oIbPBNzHBgLKihnJCM9SBcbKAxjLy3rPB246ia','q2XPy2SGzMfPBgvKig9Uia','qNjVD3nLCIbPBNn0yw5JzsbJBg9Zzwq','y2XPy2S','CgfNzvrPBwvVDxq','C2nYB2XS','y3DK','nZa4mZC0mfzjDLPrqG','C3rHDa','AgfZ','DhLWzq','q2XPy2TLzcbVBIa','B3bLCMf0Aw9UsgLZDg9YEq','Dg9ju09tDhjPBMC','u2nYzwvUC2HVDcbMywLSzwq6ia','BgvUz3rO','CMf3q29UDgvUDa','Dgv4DenVBNrLBNq','y2XVC2u','DxnLCKfNzw50','oIbVDxrWDxqTCgf0AcbPCYbYzxf1AxjLzcbMB3iGC2nYzwvUC2HVDa','z2v0rgvZy3jPChrPB24','zxH0CMfJDa','CMvZB2X2zq','Aw50zwDLCG','y3vZDg9TvMfSAwrHDgvqyxjHBwv0zxjZ','zxHLyW','qwn0Aw9Uia','BMf2AwDHDgu','DxjS','nK9Vtfzpzq','zNvSBc1WywDL','D2fPDfrPBwu','cLrjtuvpvvq6ia','cKjYB3DZzxiGvg9VBdOGqxv0B21HDguGD2vIigjYB3DZzxiGAw50zxjHy3rPB25ZlcbUyxzPz2f0Aw9UlcbHBMqGzgf0ysbLEhrYywn0Aw9UlGOksu1qt1juqu5uic0Gu1LovefyoIbvC2uGC2vSzI1JBg9ZAw5NihrHz3mGD2L0AcbHBMDSzsbICMfJA2v0CYa8id4Sig5VDcbZCxvHCMuGyNjHy2TLDhmGwYbDlGOkwe1mifvtquDficHszwnVBw1LBMrLzcK6cJXICM93C2vYpGOGidXUyxzPz2f0zsb1CMW9iMH0DhbZoI8VzxHHBxbSzs5JB20Iic8+cIaGphDHAxqGD2fPDc10Aw1LpsiYmdaWiIaVpGOGidXJBgLJAYbZzwXLy3rVCJ0IyNv0Dg9UlNn1yM1PDciGlZ4kica8C2nYzwvUC2HVDcbVDxrWDxqTCgf0Ad0IC2nYzwvUC2HVDc5WBMCIic8+cJWVyNjVD3nLCJ4kcKPtt04Gvvnbr0uGkefSDgvYBMf0AxzLktOkygbGANnVBGP7cIaGiNrVB2Xjzci6icjICM93C2vYiIWkicaIywn0Aw9UCYi6ifSkicaGihSGiNr5CguIoIaIBMf2AwDHDguIlcaIDxjSiJOGiMH0DhbZoI8VzxHHBxbSzs5JB20Iih0ScIaGicb7icj0ExbLiJOGiNDHAxqIlcaID2fPDfrPBwuIoIaYmdaWih0ScIaGicb7icj0ExbLiJOGiMnSAwnRiIWGiNnLBgvJDg9YiJOGiMj1DhrVBI5ZDwjTAxqIih0ScIaGicb7icj0ExbLiJOGiNnJCMvLBNnOB3qIlcaIB3v0Chv0ugf0Aci6icjZy3jLzw5ZAg90lNbUzYiGFqOGif0kFqPGygakcLnvufbpuLrfrcbbq1rjt05toGOTig5HDMLNyxrLoIboyxzPz2f0zsb0BYbHifvstcaOCMvXDwLYzxm6ihvYBcKklsbJBgLJAZOGq2XPy2SGB24Gyw4GzwXLBwvUDcaOCMvXDwLYzxm6ihnLBgvJDg9YkqOTihr5Cgu6ifr5CguGDgv4DcbPBNrVigfUigLUChv0igzPzwXKicHYzxf1AxjLCZOGC2vSzwn0B3iSihrLEhqPcI0GD2fPDdOGv2fPDcbMB3iGzwXLBwvUDcbVCIb0Aw1LicHYzxf1AxjLCZOGD2fPDc10Aw1Lie9sihDHAxqTC2vSzwn0B3iPcI0GC2nYzwvUC2HVDdOGvgfRzsbZy3jLzw5ZAg90ig9MihbHz2uGkhjLCxvPCMvZoIbVDxrWDxqTCgf0AcKklsbLEhrYywn0oIbfEhrYywn0ihrLEhqVzgf0ysbMCM9TigvSzw1LBNrZicHYzxf1AxjLCZOGC2vSzwn0B3iSigf0DhjPyNv0zsKklsbZy3jVBgW6ifnJCM9SBcbWywDLig9YigvSzw1LBNqGkhjLCxvPCMvZoIbKAxjLy3rPB24PcI0Gy2XVC2u6ienSB3nLigjYB3DZzxiGAw5ZDgfUy2uGkg5VihbHCMfTzxrLCNmPcGPqqvjbtuvurviGuKvgrvjftKnfoGOTihvYBdOGvgfYz2v0ifvstcbMB3iGBMf2AwDHDgLVBGOTihnLBgvJDg9YoIbdu1mGC2vSzwn0B3iGzM9YigvSzw1LBNqGDgfYz2v0Aw5NicHLlMCUlcaIi2LKiIWGiI5JBgfZCYiSicjIDxr0B25BDhLWzt0NC3vIBwL0j10IkqOTihrLEhq6ifrLEhqGy29UDgvUDcb0BYb0ExbLcI0GB3v0Chv0lxbHDgG6iezPBguGCgf0AcbMB3iGC2nYzwvUC2HVDhmGkgTLyMfIlwnHC2uGAw4Gwe1mlcbVDxrWDxrqyxrOigLUiePtt04PcI0GD2fPDc10Aw1LoIbuAw1LihrVihDHAxqGAw4GBwLSBgLZzwnVBMrZicGXmdaTmZaWmdaSigTLyMfIlwnHC2uGAw4Gwe1mlcb3ywL0vgLTzsbPBIbku09okqOTihDHAxqTC2vSzwn0B3i6ievSzw1LBNqGC2vSzwn0B3iGDg8GD2fPDcbMB3iGkgTLyMfIlwnHC2uGAw4Gwe1mlcb3ywL0u2vSzwn0B3iGAw4GsLnptIKklsb3ywL0lxr5Cgu6ifDHAxqGDhLWzsaTicj2AxnPyMXLiIbVCIaIAgLKzgvUiIaOzgvMyxvSDdOGiNzPC2LIBguIkqOTigf0DhjPyNv0ztOGsfrntcbHDhrYAwj1DguGDg8GzxH0CMfJDcaOzgvMyxvSDdOGiNrLEhqIkqOTigrPCMvJDgLVBJOGu2nYB2XSigrPCMvJDgLVBIaTicj1CciSicjKB3DUiIWGiMXLzNqIlcaICMLNAhqIcI0GCgL4zwXZoIbty3jVBgWGzgLZDgfUy2uGAw4GCgL4zwXZicHKzwzHDwX0oIaZmdaPcI0GzNvSBc1WywDLoIbuywTLigz1BgWGCgfNzsbZy3jLzw5ZAg90ic0GiNrYDwuIig9YicjMywXZzsikcKvyqu1qtevtoGOkrxHHBxbSzsaXic0GuMvZzwfYy2GGyw5KihnJCMvLBNnOB3q6cJXICM93C2vYpGOGidXUyxzPz2f0zsb1CMW9iMH0DhbZoI8Vz2L0AhvIlMnVBs90CMvUzgLUzYiGlZ4kica8D2fPDcb3ywL0lxrPBwu9iJiWmdaIic8+cIaGphnJCMvLBNnOB3qGB3v0Chv0lxbHDgG9iNrYzw5KAw5NlNbUzYiGlZ4kica8zxH0CMfJDcbZzwXLy3rVCJ0IAdiUAdmIigf0DhjPyNv0zt0IDgv4DciGlZ4kica8y2XVC2uGlZ4kpc9ICM93C2vYpGOkrxHHBxbSzsaYic0GrM9YBsbHDxrVBwf0Aw9UoGO8yNjVD3nLCJ4kica8BMf2AwDHDguGDxjSpsjODhrWCZOVl2v4yw1WBguUy29Tl2XVz2LUiIaVpGOGidX3ywL0ihDHAxqTC2vSzwn0B3i9iMLUChv0i3vZzxjUyw1LiIaVpGOGidX0ExbLihnLBgvJDg9YpsjPBNb1Dcn1C2vYBMfTzsiGDgv4Dd0IBxL1C2vYiIaVpGOGidX0ExbLihnLBgvJDg9YpsjPBNb1DcnWyxnZD29YzciGDgv4Dd0IBxLWyxnZiIaVpGOGidXJBgLJAYbZzwXLy3rVCJ0IyNv0Dg9Uw3r5Cgu9j3n1yM1PDcDDiIaVpGOGidX3ywL0ihDHAxqTC2vSzwn0B3i9iI5ZDwnJzxnZlw1LC3nHz2uIic8+cIaGpgnSB3nLic8+cJWVyNjVD3nLCJ4kcKv4yw1WBguGmYaTierHDgeGzxH0CMfJDgLVBJOkpgjYB3DZzxi+cIaGpg5HDMLNyxrLihvYBd0IAhr0Chm6lY9LEgfTCgXLlMnVBs9WCM9KDwn0CYiGlZ4kica8D2fPDcb3ywL0lxrPBwu9iJeWmdaIic8+cIaGpgv4DhjHy3qGC2vSzwn0B3i9iMGXlNbYB2r1y3qTDgL0BguIigf0DhjPyNv0zt0IDgv4DciGlZ4kica8zxH0CMfJDcbZzwXLy3rVCJ0IC3bHBI5WCMLJzsiGyxr0CMLIDxrLpsj0zxH0iIaVpGOGidXLEhrYywn0ihnLBgvJDg9YpsjPBwCUChjVzhvJDciGyxr0CMLIDxrLpsjZCMmIic8+cIaGpgnSB3nLic8+cJWVyNjVD3nLCJ4kcKv4yw1WBguGncaTifnJCM9SBgLUzYbHBMqGD2fPDgLUzZOkpgjYB3DZzxi+cIaGpg5HDMLNyxrLihvYBd0IAhr0Chm6lY9LEgfTCgXLlMnVBs9SB25NlxbHz2uIic8+cIaGphnJCM9SBcbKAxjLy3rPB249iMrVD24IihbPEgvSCZ0IntaWiIaVpGOGidX3ywL0ihDHAxqTDgLTzt0ImtaWmciGlZ4kica8C2nYB2XSigrPCMvJDgLVBJ0Izg93BIiGCgL4zwXZpsi1mdaIic8+cIaGphnJCMvLBNnOB3qGB3v0Chv0lxbHDgG9iNnJCM9SBgvKlNbUzYiGzNvSBc1WywDLpsj0CNvLiIaVpGOGidXJBg9ZzsaVpGO8l2jYB3DZzxi+cGPtwu5uqvGGuLvmrvm6cUkCHsbetZOGpg5HDMLNyxrLihvYBd0IlI4UiIaVpIaGkhnLBgyTy2XVC2LUzYb3AxrOic8+kqRINiuGre86idXUyxzPz2f0zsb1CMW9iI4UlIi+icaGicaOy2fUig9TAxqGlZ4GAwyGChjLzMvYCMvKkqRINyWGre9oj1q6idXUyxzPz2f0zsb1CMW9iI4UlIi+pc9UyxzPz2f0zt4GicHUBYbJBg9ZAw5NihrHzYbUzwvKzwqPcUkDJcbet04NvdOGw25HDMLNyxrLihvYBd0IlI4UiIaVxsaGkhnXDwfYzsbICMfJA2v0CYbUB3qGC3vWCg9YDgvKkqOkqvruuKLcvvrfie5btuLorZOklsbytuWGDxnLCYbRzwjHyI1JyxnLoIb3ywL0lxrPBwuSig91Dhb1Dc1WyxrOlcb3ywL0lxnLBgvJDg9YcI0GsLnptIb1C2vZignHBwvSq2fZztOGD2fPDfrPBwuSig91Dhb1DfbHDgGSihDHAxrtzwXLy3rVCGOTifbHCNnLCIbHDxrVlwnVBNzLCNrZigTLyMfIlwnHC2uGDg8Gy2fTzwXdyxnLigLUDgvYBMfSBhKkcLnfq1vssvrzoGOTifjLC3rYAwn0zwqGDg8GywXSB3DLzcbKB21HAw5ZicHPzIbJB25MAwD1CMvKkqOTiejSB2nRzwqGzg9TywLUCYbLBMzVCMnLzcbMB3iGC2vJDxjPDhKklsbty3jLzw5ZAg90ihnPEMuGBgLTAxrZigvUzM9Yy2vKicHTyxGGnu1ckqOTief1Dg9TyxrPyYbJBgvHBNvWig9MigjYB3DZzxiGAw5ZDgfUy2vZigfMDgvYideWig1PBNv0zxmklsbtyw5KyM94zwqGyNjVD3nLCIbLEgvJDxrPB24kcKjst1DtrviGu0vtu0LptJOkvgHLihrVB2WGBwfPBNrHAw5ZigjYB3DZzxiGAw5ZDgfUy2vZihbLCIbHz2vUDcbJB250zxH0lGPvC2uGpgnSB3nLic8+igfJDgLVBIb0BYbLEhbSAwnPDgX5ignSzwfUDxaSig9YigLUC3rHBMnLCYbHDxrVlwnSzwfUDxaGywz0zxiGDgLTzw91Dc4kcLzjrvDqt1juoIa','ywn0Aw9UCW','C2nYB2XSqNK','DgLTzw91Da','D2fPDc10Aw1L','Bwf4u2nYzwvUC2HVDfnPEMu','C2nYB2XSvg9W','ignOyxjHy3rLCNmGAw50BYa','rMfPBgvKihrVihbHCNnLigjYB3DZzxiGCgfYyw1LDgvYCW','D2fPDfnLBgvJDg9Y','BM93','D2fPDc1ZzwXLy3rVCG','Dgv4Da','ChvZAa','B2jQzwn0','yNjVD3nLCG','C2nYB2XStgvMDa','yNjVD3nLCKnVBMzPzW','ywXSB3DLzerVBwfPBNm','DgL0Bgu','D2fPDezVCLnLBgvJDg9Y','Cg5N','mZu0mdnQCwjyDNG','Bgf1BMnO','AxnbBgXVD2vKvxjS','AxnbCNjHEq','B3v0Chv0lxbHDgG','mte2twTdy1Pq','CgfYC2u','zNvSBfbHz2u','ouXsDNHOza','oIbZzwXLy3rVCIbPCYbYzxf1AxjLzcbMB3iGDhLWzq','C2v0vMLLD3bVCNq','y2XLyw51CejYB3DZzxi','C3rHCNrZv2L0Aa','z2v0qNjVD3nLCG','tw96AwXSys81lJaGkfDPBMrVD3mGtLqGmtaUmdSGv2LUnJq7ihG2ncKGqxbWBgvxzwjlAxqVntm3lJm2','BMv3ugfNzq','zM9JDxm','ls1UBY1Zyw5KyM94','CMvSyxrPDMu','zxzHBhvHDgu','oIbvuKWGBM90igfSBg93zwq6ia','mtCYmdGZmNjPu0XnqG','CgfYC2vbDhrYAwj1DgvZ','z2v0ugfNzq','ls1KAxnHyMXLlwDWDq','zg93BG','C3rYAw5N','D2fPDa','mta0nun4EfPtrG','u2nYB2XSigzHAwXLzdOG','nti1ntq2EeTYqxLs','Aw5JBhvKzxm','zxjYB3i','z2v0','AxnbC3LUyW','v2fPDgvKigzVCIa','oIb0zxH0igLZihjLCxvPCMvKigzVCIb0ExbL','jgv2ywW','C2nYzwvUC2HVDa','mJa0odi0BNPJvwvk','yNjVD3nLCKLUC3rHBMnLCW','mZiZntC4ueXqEvzt','C2vSzwn0B3i','igj5DgvZicHTyxGG','DhjPBq','zgLYzwn0Aw9U','BwvZC2fNzq','CMLNAhq','rMfPBgvKihrVignSB3nLigjYB3DZzxi6ia'];a0_0x1e32=function(){return _0x344efa;};return a0_0x1e32();}
@@ -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_0x45eb83=a0_0x2ca9;(function(_0x5678fd,_0x23e93b){const _0x4ede19=a0_0x2ca9,_0x4bc0c9=_0x5678fd();while(!![]){try{const _0x4cee1a=parseInt(_0x4ede19(0x10c))/0x1+parseInt(_0x4ede19(0xea))/0x2*(parseInt(_0x4ede19(0xb6))/0x3)+-parseInt(_0x4ede19(0xc7))/0x4*(parseInt(_0x4ede19(0xe4))/0x5)+parseInt(_0x4ede19(0xb2))/0x6*(parseInt(_0x4ede19(0xe2))/0x7)+parseInt(_0x4ede19(0xd5))/0x8+-parseInt(_0x4ede19(0xac))/0x9*(parseInt(_0x4ede19(0xcc))/0xa)+-parseInt(_0x4ede19(0xef))/0xb;if(_0x4cee1a===_0x23e93b)break;else _0x4bc0c9['push'](_0x4bc0c9['shift']());}catch(_0x37a3b8){_0x4bc0c9['push'](_0x4bc0c9['shift']());}}}(a0_0x1ff0,0xc8ae8));import{BaseTool}from'./baseTool.js';import a0_0x1abae8 from'../utilities/tagParser.js';import a0_0x325904 from'../utilities/directoryAccessManager.js';import a0_0x434eb5 from'path';function a0_0x1ff0(){const _0x3aa1a9=['Dg90ywXeDxbSAwnHDgvKtgLUzxm','CMvJB21Tzw5KyxrPB25Z','C3vIC3rYAw5N','Aw1Wywn0u2nVCMu','mJKYmK9czhvNwG','CgfYC2vqyxjHBwv0zxjZ','kIOVkI50C3G','zw5KtgLUzq','mtvnC2P4B04','C3rYyxrLz3K','kIOVzgLZDc8QkG','kIOVyNvPBgqVkIO','BwLUvg9Rzw5Z','zM9YBwf0uMvJB21Tzw5KyxrPB25Zt3v0Chv0','BgLUzunVDw50','ChjPB3jPDhK','zhvWBgLJyxrPB25qzxjJzw50ywDL','yxjYyxK','zgvMyxvSDfnPBwLSyxjPDhLuAhjLC2HVBgq','B2jQzwn0','ywXSB3DLza','Aw5ZDgfUy2vZ','BwLUlwXPBMvZ','Bg93','BwLUtgLUzxm','mJq2ohPYq2XIta','zgv0zwn0q2XVBMvZ','oIb1BMTUB3DUigfJDgLVBIb0ExbLoIa','AM9PBG','qwn0Aw9Uia','mteWC3jOAePZ','z2v0ugfYyw1LDgvYu2nOzw1H','CMvHC29UAw5N','q2XVBMuGzgv0zwn0Aw9UigfJDgLVBIbMywLSzwq','ChvZAa','z2v0u3vWCg9YDgvKqwn0Aw9UCW','DhLWzq','zMLSDgvY','B3v0Chv0tw9Kzq','mtiXndGYodb2D2PxELO','yMvUzwzPDhm','zgvIDwC','kIOVkI50zxn0lMPZ','q2XVBMuGzgv0zwn0B3iGAw5PDgLHBgL6zwq','y29Kzq','BwLUlxrVA2vUCW','DhjPBq','oIbTAw4TBgLUzxmGBxvZDcbIzsbIzxr3zwvUideGyw5KideWma','C3bSAxq','oIbWCMLVCML0Es1MAwX0zxiGBxvZDcbIzsbOAwDOlcbTzwrPDw0Sig9YigXVDW','z2v0v29YA2LUz0rPCMvJDg9YEq','C2LTAwXHCML0EvrOCMvZAg9Sza','mtq5ntLhDeDwCMi','ChjPB3jPDhLgAwX0zxi','mtu2nxHIt3nAvq','C3vTBwfYEq','Aw5JBhvKzxm','oIbZAw1PBgfYAxr5lxrOCMvZAg9SzcbTDxn0igjLigjLDhDLzw4Gmc41igfUzcaXlJa','AxnbC3LUyW','BgvUz3rO','mZCZodCWD0D4y0rm','DMfSAwrHDgvszwfKqwnJzxnZ','kIOVkI5JANm','rMfPBgvKihrVigrLDgvJDcbJBg9UzxmGAw4G','Bwf4lxjLC3vSDhm','mZu2odCXnJHYuhbkr1K','Bwf4q29Uy3vYCMvUDe9WzxjHDgLVBNm','C2LTAwXHCML0Es10AhjLC2HVBgq','y2XVBMvKzxrLy3rPB24','kIOVkI5QC3G','u3rHCNrPBMCGy2XVBMuGzgv0zwn0Aw9U','zMLSzq','y2XVBMvezxrLy3rVCG','B3v0Chv0lw1Vzgu','CMvHC29U','zgLYzwn0B3j5','zgv0zwn0lwnSB25LCW','ChjPB3jPDhLdB3vUDhm','Dg90ywXdBg9Uzxm','Bwv0CMLJCW','kIOVBM9Kzv9TB2r1BgvZlYOQ','oIb0ExbLigLZihjLCxvPCMvK','Bg9Nz2vY','CNvU','AgLNAa','ywn0Aw9UCW','zM9YBwf0rgv0ywLSzwrpDxrWDxq','zMLSzxndB3zLCMvK','Bwf4uMvZDwX0CW','ChjPB3jPDhKTzMLSDgvY','zgvMyxvSDe1PBLrVA2vUCW','BwfW','zgvMyxvSDe1PBKXPBMvZ','BwvKAxvT','mtu2mJeWm1fVrNLxsG','C3rHCNrmAw5L','Aw5ZDgfUy2vdB3vUDa','CMvMywn0B3jPBMDbzhzPy2u','y3jLyxrLuMvSyxrPDMvqyxrO','C3rYAw5N','Bwf4rMLSzvnPEMu','vw5RBM93BIbHy3rPB24GDhLWztOG','kIOVkI5QCW','zgLYzwn0B3j5qwnJzxnZtwfUywDLCG','zw50CMLLCW','BNvTyMvY','z2v0q2XVBMvezxrLy3rVCG','y3DK','zgv0ywLSzwq','zM9YBwf0u3vTBwfYEu91Dhb1Da','nJuXnZG5vgryuKzz','y2XVBMvZ'];a0_0x1ff0=function(){return _0x3aa1a9;};return a0_0x1ff0();}function a0_0x2ca9(_0x275f8b,_0x2bcadf){_0x275f8b=_0x275f8b-0xa2;const _0x1ff0be=a0_0x1ff0();let _0x2ca956=_0x1ff0be[_0x275f8b];if(a0_0x2ca9['vkUlMB']===undefined){var _0x314890=function(_0x54fb6f){const _0x1366d5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1abae8='',_0x325904='';for(let _0x434eb5=0x0,_0x200c3b,_0x53b209,_0x47663b=0x0;_0x53b209=_0x54fb6f['charAt'](_0x47663b++);~_0x53b209&&(_0x200c3b=_0x434eb5%0x4?_0x200c3b*0x40+_0x53b209:_0x53b209,_0x434eb5++%0x4)?_0x1abae8+=String['fromCharCode'](0xff&_0x200c3b>>(-0x2*_0x434eb5&0x6)):0x0){_0x53b209=_0x1366d5['indexOf'](_0x53b209);}for(let _0x8f3ebf=0x0,_0x49b80a=_0x1abae8['length'];_0x8f3ebf<_0x49b80a;_0x8f3ebf++){_0x325904+='%'+('00'+_0x1abae8['charCodeAt'](_0x8f3ebf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x325904);};a0_0x2ca9['GojswF']=_0x314890,a0_0x2ca9['UpsTZe']={},a0_0x2ca9['vkUlMB']=!![];}const _0x3a1418=_0x1ff0be[0x0],_0x117537=_0x275f8b+_0x3a1418,_0x25306a=a0_0x2ca9['UpsTZe'][_0x117537];return!_0x25306a?(_0x2ca956=a0_0x2ca9['GojswF'](_0x2ca956),a0_0x2ca9['UpsTZe'][_0x117537]=_0x2ca956):_0x2ca956=_0x25306a,_0x2ca956;}import{TOOL_STATUS,SYSTEM_DEFAULTS}from'../utilities/constants.js';class CloneDetectionTool extends BaseTool{constructor(_0x200c3b={},_0x53b209=null){const _0xc05f1d=a0_0x2ca9;super(_0x200c3b,_0x53b209),this['requiresProject']=!![],this[_0xc05f1d(0xe8)]=![],this['timeout']=_0x200c3b['timeout']||0x1d4c0,this[_0xc05f1d(0xf0)]=_0x200c3b['maxConcurrentOperations']||0x1,this['defaultMinTokens']=_0x200c3b[_0xc05f1d(0x108)]||0x32,this[_0xc05f1d(0x10a)]=_0x200c3b['defaultMinLines']||0x5,this['defaultSimilarityThreshold']=_0x200c3b['defaultSimilarityThreshold']||0.85,this['maxFileSize']=_0x200c3b[_0xc05f1d(0xa2)]||0x7a120,this['directoryAccessManager']=new a0_0x325904(_0x200c3b,_0x53b209),this[_0xc05f1d(0xf6)]=null;}['getDescription'](){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)+'KB\x20per\x20file\x0a-\x20Analysis\x20timeout:\x20'+this['timeout']/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';}[a0_0x45eb83(0xb3)](_0x47663b){const _0x5b93d8=a0_0x45eb83;try{const _0x8f3ebf={},_0x49b80a=[];this[_0x5b93d8(0x100)]?.['debug']('CloneDetection\x20tool\x20parsing\x20parameters',{'contentLength':_0x47663b['length'],'contentPreview':_0x47663b[_0x5b93d8(0xb0)](0x0,0xc8)});const _0x1aaf6c=/<detect-clones\s+(.+?)\/>/g;let _0x171654;while((_0x171654=_0x1aaf6c['exec'](_0x47663b))!==null){const _0x1f63e6=_0x171654[0x1][_0x5b93d8(0xdc)](),_0x4ab39f=new a0_0x1abae8(),_0x1e965f=_0x4ab39f['parseAttributes'](_0x1f63e6),_0x366821={'type':'detect-clones',..._0x1e965f};_0x366821[_0x5b93d8(0xdb)]&&(_0x366821[_0x5b93d8(0xba)]=parseInt(_0x366821['min-tokens'],0xa),delete _0x366821['min-tokens']),_0x366821['min-lines']&&(_0x366821['minLines']=parseInt(_0x366821[_0x5b93d8(0xc4)],0xa),delete _0x366821[_0x5b93d8(0xc4)]),_0x366821['similarity-threshold']&&(_0x366821['similarityThreshold']=parseFloat(_0x366821['similarity-threshold']),delete _0x366821[_0x5b93d8(0xf1)]),_0x366821[_0x5b93d8(0x107)]&&(_0x366821[_0x5b93d8(0xe3)]=_0x366821[_0x5b93d8(0x107)],delete _0x366821['priority-filter']),_0x366821['max-results']&&(_0x366821[_0x5b93d8(0x106)]=parseInt(_0x366821[_0x5b93d8(0xee)],0xa),delete _0x366821['max-results']),_0x366821['output-mode']&&(_0x366821['outputMode']=_0x366821[_0x5b93d8(0xf7)],delete _0x366821[_0x5b93d8(0xf7)]),_0x49b80a['push'](_0x366821);}return _0x8f3ebf[_0x5b93d8(0x103)]=_0x49b80a,_0x8f3ebf['rawContent']=_0x47663b[_0x5b93d8(0xdc)](),this[_0x5b93d8(0x100)]?.[_0x5b93d8(0xd7)]('Parsed\x20CloneDetection\x20tool\x20parameters',{'totalActions':_0x49b80a[_0x5b93d8(0xe9)],'actionTypes':_0x49b80a['map'](_0x496fe2=>_0x496fe2[_0x5b93d8(0xd2)])}),_0x8f3ebf;}catch(_0x1dd94c){throw new Error('Failed\x20to\x20parse\x20clone\x20detection\x20parameters:\x20'+_0x1dd94c['message']);}}['getRequiredParameters'](){return['actions'];}['customValidateParameters'](_0x4b7461){const _0x5645d2=a0_0x45eb83,_0x576102=[];if(!_0x4b7461['actions']||!Array['isArray'](_0x4b7461['actions'])||_0x4b7461[_0x5645d2(0x103)]['length']===0x0)_0x576102['push']('At\x20least\x20one\x20action\x20is\x20required');else for(const [_0x571a8e,_0x1a0866]of _0x4b7461['actions'][_0x5645d2(0xa6)]()){if(!_0x1a0866[_0x5645d2(0xd2)]){_0x576102['push']('Action\x20'+(_0x571a8e+0x1)+_0x5645d2(0xff));continue;}_0x1a0866[_0x5645d2(0xd2)]==='detect-clones'?(!_0x1a0866['directory']&&_0x576102[_0x5645d2(0xd0)](_0x5645d2(0xcb)+(_0x571a8e+0x1)+':\x20directory\x20is\x20required\x20for\x20detect-clones'),_0x1a0866['minTokens']!==undefined&&(_0x1a0866['minTokens']<0xa||_0x1a0866[_0x5645d2(0xba)]>0x3e8)&&_0x576102[_0x5645d2(0xd0)]('Action\x20'+(_0x571a8e+0x1)+':\x20min-tokens\x20must\x20be\x20between\x2010\x20and\x201000'),_0x1a0866['minLines']!==undefined&&(_0x1a0866['minLines']<0x1||_0x1a0866[_0x5645d2(0xc6)]>0x64)&&_0x576102['push']('Action\x20'+(_0x571a8e+0x1)+_0x5645d2(0xdd)),_0x1a0866[_0x5645d2(0xe1)]!==undefined&&(_0x1a0866[_0x5645d2(0xe1)]<0.5||_0x1a0866[_0x5645d2(0xe1)]>0x1)&&_0x576102[_0x5645d2(0xd0)](_0x5645d2(0xcb)+(_0x571a8e+0x1)+_0x5645d2(0xe7)),_0x1a0866[_0x5645d2(0xe3)]&&![_0x5645d2(0x102),_0x5645d2(0x10b),_0x5645d2(0xc5)][_0x5645d2(0xe6)](_0x1a0866['priorityFilter'])&&_0x576102[_0x5645d2(0xd0)]('Action\x20'+(_0x571a8e+0x1)+_0x5645d2(0xdf)),_0x1a0866[_0x5645d2(0xd4)]&&!['summary',_0x5645d2(0xaa),'recommendations']['includes'](_0x1a0866[_0x5645d2(0xd4)])&&_0x576102[_0x5645d2(0xd0)]('Action\x20'+(_0x571a8e+0x1)+':\x20output-mode\x20must\x20be\x20summary,\x20detailed,\x20or\x20recommendations')):_0x576102['push']('Action\x20'+(_0x571a8e+0x1)+_0x5645d2(0xc9)+_0x1a0866['type']);}return{'valid':_0x576102[_0x5645d2(0xe9)]===0x0,'errors':_0x576102};}async['execute'](_0x43d48c,_0x21caac){const _0x1db4a9=a0_0x45eb83,{actions:_0x14e4cc}=_0x43d48c,{projectDir:_0x4ae05c,agentId:_0x5b1a8a,directoryAccess:_0x57b634}=_0x21caac,_0x5b202b=_0x57b634||this['directoryAccessManager']['createDirectoryAccess']({'workingDirectory':_0x4ae05c||process['cwd'](),'writeEnabledDirectories':[],'readOnlyDirectories':[_0x4ae05c||process[_0x1db4a9(0xa9)]()],'restrictToProject':!![]}),_0x4ff467=this['directoryAccessManager'][_0x1db4a9(0xe0)](_0x5b202b),_0x3e461f=[];for(const _0x5b0d27 of _0x14e4cc){try{if(_0x5b0d27[_0x1db4a9(0xd2)]===_0x1db4a9(0xfa)){const _0x1e1d66=await this[_0x1db4a9(0xc8)](_0x5b0d27[_0x1db4a9(0xf9)],_0x4ff467,_0x5b202b,_0x5b0d27);_0x3e461f['push'](_0x1e1d66);}else throw new Error(_0x1db4a9(0xa3)+_0x5b0d27['type']);}catch(_0x999ac3){this[_0x1db4a9(0x100)]?.['error'](_0x1db4a9(0xcf),{'action':_0x5b0d27[_0x1db4a9(0xd2)],'error':_0x999ac3['message']}),_0x3e461f['push']({'directory':_0x5b0d27[_0x1db4a9(0xf9)],'error':_0x999ac3['message'],'success':![]});}}return{'success':!![],'results':_0x3e461f,'toolUsed':_0x1db4a9(0xf2)};}async['detectClones'](_0x58fc85,_0x1cb070,_0x2198ff,_0x58faa7={}){const _0x109e83=a0_0x45eb83,_0x111384=a0_0x434eb5['isAbsolute'](_0x58fc85)?a0_0x434eb5['normalize'](_0x58fc85):a0_0x434eb5['resolve'](_0x1cb070,_0x58fc85),_0x90a993=this['directoryAccessManager'][_0x109e83(0xeb)](_0x111384,_0x2198ff);if(!_0x90a993[_0x109e83(0xc2)])throw new Error('Read\x20access\x20denied:\x20'+_0x90a993[_0x109e83(0xf8)]);try{const _0x189ca5=await this[_0x109e83(0xa8)](),_0x5d34a1={'minTokens':_0x58faa7[_0x109e83(0xba)]||this['defaultMinTokens'],'minLines':_0x58faa7[_0x109e83(0xc6)]||this['defaultMinLines'],'similarityThreshold':_0x58faa7['similarityThreshold']||this[_0x109e83(0xc0)],'include':[_0x109e83(0xa4),'**/*.jsx','**/*.mjs',_0x109e83(0xec),'**/*.ts',_0x109e83(0xb4),'**/*.vue'],'exclude':[_0x109e83(0xfe),_0x109e83(0xb8),_0x109e83(0xb9),_0x109e83(0xd8),'**/*.spec.js'],'maxFileSize':this['maxFileSize']};this['logger']?.['info'](_0x109e83(0xf4),{'directory':_0x111384,'config':_0x5d34a1});const _0x86c66e=await _0x189ca5[_0x109e83(0x101)](_0x111384,null);if(!_0x86c66e)return{'directory':this[_0x109e83(0xa5)][_0x109e83(0x110)](_0x111384,_0x2198ff),'fullPath':_0x111384,'success':!![],'summary':{'totalFiles':0x0,'totalClones':0x0,'duplicationPercentage':0x0},'clones':[],'message':'No\x20files\x20found\x20or\x20no\x20clones\x20detected'};let _0x4933e6=_0x86c66e[_0x109e83(0xad)];_0x58faa7[_0x109e83(0xe3)]&&(_0x4933e6=_0x4933e6[_0x109e83(0xd3)](_0x1a0343=>_0x1a0343['refactoringAdvice'][_0x109e83(0xbd)]===_0x58faa7[_0x109e83(0xe3)]));_0x58faa7[_0x109e83(0x106)]&&(_0x4933e6=_0x4933e6['slice'](0x0,_0x58faa7[_0x109e83(0x106)]));const _0x4f7b0d=_0x58faa7['outputMode']||'detailed';if(_0x4f7b0d===_0x109e83(0xe5))return this['formatSummaryOutput'](_0x86c66e,_0x4933e6,_0x111384,_0x2198ff);else return _0x4f7b0d===_0x109e83(0xaf)?this['formatRecommendationsOutput'](_0x86c66e,_0x4933e6,_0x111384,_0x2198ff):this[_0x109e83(0x104)](_0x86c66e,_0x4933e6,_0x111384,_0x2198ff);}catch(_0x1ca8b8){throw new Error(_0x109e83(0xed)+_0x58fc85+':\x20'+_0x1ca8b8['message']);}}[a0_0x45eb83(0xab)](_0x366dd2,_0x764643,_0x45eba8,_0x1be8da){const _0x4a44d5=a0_0x45eb83;return{'directory':this[_0x4a44d5(0xa5)][_0x4a44d5(0x110)](_0x45eba8,_0x1be8da),'fullPath':_0x45eba8,'success':!![],'outputMode':'summary','summary':{'totalFiles':_0x366dd2[_0x4a44d5(0xe5)]['totalFiles'],'totalClones':_0x366dd2['summary'][_0x4a44d5(0xfc)],'duplicatedLines':_0x366dd2[_0x4a44d5(0xe5)][_0x4a44d5(0xae)],'duplicationPercentage':_0x366dd2[_0x4a44d5(0xe5)][_0x4a44d5(0xbe)],'priorityCounts':_0x366dd2[_0x4a44d5(0xe5)][_0x4a44d5(0xfb)],'topClones':_0x764643['slice'](0x0,0x5)['map'](_0x5a1e1c=>({'id':_0x5a1e1c['id'],'type':_0x5a1e1c['type'],'confidence':_0x5a1e1c['confidence'],'instances':_0x5a1e1c['metrics']['instanceCount'],'lines':_0x5a1e1c[_0x4a44d5(0xfd)][_0x4a44d5(0xbc)],'priority':_0x5a1e1c[_0x4a44d5(0x10f)][_0x4a44d5(0xbd)],'strategy':_0x5a1e1c[_0x4a44d5(0x10f)][_0x4a44d5(0xb7)],'locations':_0x5a1e1c['instances']['map'](_0x14b0d5=>_0x14b0d5['file']+':'+_0x14b0d5[_0x4a44d5(0x10d)]+'-'+_0x14b0d5['endLine'])}))}};}[a0_0x45eb83(0xbb)](_0x1d3b6d,_0x3f0696,_0x82a481,_0x55ef9c){const _0x3ebc18=a0_0x45eb83;return{'directory':this[_0x3ebc18(0xa5)]['createRelativePath'](_0x82a481,_0x55ef9c),'fullPath':_0x82a481,'success':!![],'outputMode':'recommendations','summary':{'totalFiles':_0x1d3b6d['summary']['totalFiles'],'totalClones':_0x1d3b6d['summary']['totalClones'],'duplicationPercentage':_0x1d3b6d['summary']['duplicationPercentage']},'recommendations':_0x3f0696[_0x3ebc18(0x109)](_0x38d8f8=>({'id':_0x38d8f8['id'],'priority':_0x38d8f8['refactoringAdvice']['priority'],'strategy':_0x38d8f8[_0x3ebc18(0x10f)][_0x3ebc18(0xb7)],'suggestedName':_0x38d8f8['refactoringAdvice']['suggestedName'],'reasoning':_0x38d8f8['refactoringAdvice'][_0x3ebc18(0xce)],'effort':_0x38d8f8[_0x3ebc18(0x10f)]['estimatedEffort'],'benefits':_0x38d8f8[_0x3ebc18(0x10f)][_0x3ebc18(0xd6)],'steps':_0x38d8f8[_0x3ebc18(0x10f)]['actionableSteps'],'metrics':{'instances':_0x38d8f8[_0x3ebc18(0xfd)][_0x3ebc18(0x10e)],'lines':_0x38d8f8['metrics']['lineCount'],'files':_0x38d8f8[_0x3ebc18(0xfd)][_0x3ebc18(0x105)],'impact':_0x38d8f8['metrics'][_0x3ebc18(0xb1)]},'locations':_0x38d8f8['instances']['map'](_0x5f11cb=>({'file':_0x5f11cb[_0x3ebc18(0xf5)],'startLine':_0x5f11cb['startLine'],'endLine':_0x5f11cb[_0x3ebc18(0xb5)]}))}))};}[a0_0x45eb83(0x104)](_0x248a07,_0x31e3e0,_0x1d69a1,_0x864fbc){const _0x13555b=a0_0x45eb83;return{'directory':this['directoryAccessManager']['createRelativePath'](_0x1d69a1,_0x864fbc),'fullPath':_0x1d69a1,'success':!![],'outputMode':'detailed','summary':_0x248a07['summary'],'clones':_0x31e3e0[_0x13555b(0x109)](_0x5668c4=>({..._0x5668c4,'instances':_0x5668c4[_0x13555b(0xc3)][_0x13555b(0x109)](_0x13cd36=>({..._0x13cd36,'code':_0x13cd36[_0x13555b(0xda)][_0x13555b(0xde)]('\x0a')['slice'](0x0,0xa)[_0x13555b(0xca)]('\x0a')+(_0x13cd36[_0x13555b(0xda)][_0x13555b(0xde)]('\x0a')[_0x13555b(0xe9)]>0xa?'\x0a...\x20(truncated)':'')}))}))};}async['getCloneDetector'](){const _0x46ae03=a0_0x45eb83;if(!this[_0x46ae03(0xf6)]){const {CloneDetectionTool:_0x5d33b8}=await import('../analyzers/codeCloneDetector/index.js'),_0x1d18bd={'minTokens':this[_0x46ae03(0x108)],'minLines':this[_0x46ae03(0x10a)],'similarityThreshold':this[_0x46ae03(0xc0)],'include':[_0x46ae03(0xa4),_0x46ae03(0xf3),'**/*.ts',_0x46ae03(0xb4),'**/*.vue'],'exclude':[_0x46ae03(0xfe),'**/dist/**',_0x46ae03(0xb9)],'maxFileSize':this['maxFileSize']};this['cloneDetector']=new _0x5d33b8(_0x1d18bd),this[_0x46ae03(0x100)]?.[_0x46ae03(0xd7)](_0x46ae03(0xd9),{'config':_0x1d18bd});}return this['cloneDetector'];}[a0_0x45eb83(0xd1)](){const _0x45d128=a0_0x45eb83;return[_0x45d128(0xfa)];}[a0_0x45eb83(0xcd)](){const _0xbe5340=a0_0x45eb83;return{'type':_0xbe5340(0xc1),'properties':{'actions':{'type':_0xbe5340(0xbf),'minItems':0x1,'items':{'type':_0xbe5340(0xc1),'properties':{'type':{'type':_0xbe5340(0x111),'enum':this['getSupportedActions']()},'directory':{'type':'string'},'minTokens':{'type':_0xbe5340(0xa7),'minimum':0xa,'maximum':0x3e8},'minLines':{'type':'number','minimum':0x1,'maximum':0x64},'similarityThreshold':{'type':_0xbe5340(0xa7),'minimum':0.5,'maximum':0x1},'priorityFilter':{'type':_0xbe5340(0x111),'enum':['high',_0xbe5340(0x10b),_0xbe5340(0xc5)]},'maxResults':{'type':_0xbe5340(0xa7),'minimum':0x1},'outputMode':{'type':'string','enum':['summary','detailed',_0xbe5340(0xaf)]}},'required':[_0xbe5340(0xd2),'directory']}}},'required':['actions']};}}export default CloneDetectionTool;