@loxia-labs/loxia-autopilot-one 1.0.13 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/README.md +7 -3
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/agentActivityService.js +1 -0
  76. package/src/services/aiService.js +1 -1
  77. package/src/services/apiKeyManager.js +1 -1
  78. package/src/services/benchmarkService.js +1 -1
  79. package/src/services/budgetService.js +1 -1
  80. package/src/services/contextInjectionService.js +1 -1
  81. package/src/services/conversationCompactionService.js +1 -1
  82. package/src/services/errorHandler.js +1 -1
  83. package/src/services/fileAttachmentService.js +1 -1
  84. package/src/services/modelRouterService.js +1 -1
  85. package/src/services/modelsService.js +1 -1
  86. package/src/services/qualityInspector.js +1 -1
  87. package/src/services/tokenCountingService.js +1 -1
  88. package/src/tools/agentCommunicationTool.js +1 -1
  89. package/src/tools/agentDelayTool.js +1 -1
  90. package/src/tools/asyncToolManager.js +1 -1
  91. package/src/tools/baseTool.js +1 -1
  92. package/src/tools/browserTool.js +1 -1
  93. package/src/tools/cloneDetectionTool.js +1 -1
  94. package/src/tools/dependencyResolverTool.js +1 -1
  95. package/src/tools/fileContentReplaceTool.js +1 -1
  96. package/src/tools/fileSystemTool.js +1 -1
  97. package/src/tools/fileTreeTool.js +1 -1
  98. package/src/tools/imageTool.js +1 -1
  99. package/src/tools/importAnalyzerTool.js +1 -1
  100. package/src/tools/jobDoneTool.js +1 -1
  101. package/src/tools/seekTool.js +1 -1
  102. package/src/tools/staticAnalysisTool.js +1 -1
  103. package/src/tools/taskManagerTool.js +1 -1
  104. package/src/tools/terminalTool.js +1 -1
  105. package/src/tools/webTool.js +1 -1
  106. package/src/types/agent.js +1 -1
  107. package/src/types/contextReference.js +1 -1
  108. package/src/types/conversation.js +1 -1
  109. package/src/types/toolCommand.js +1 -1
  110. package/src/utilities/attachmentValidator.js +1 -1
  111. package/src/utilities/configManager.js +1 -1
  112. package/src/utilities/constants.js +1 -1
  113. package/src/utilities/directoryAccessManager.js +1 -1
  114. package/src/utilities/fileProcessor.js +1 -1
  115. package/src/utilities/logger.js +1 -1
  116. package/src/utilities/tagParser.js +1 -1
  117. package/src/utilities/toolConstants.js +1 -1
  118. package/src/utilities/userDataDir.js +1 -1
  119. package/web-ui/build/index.html +2 -2
  120. package/web-ui/build/static/index-CR8edPA3.js +348 -0
  121. package/web-ui/build/static/index-uN7nOVvZ.css +1 -0
  122. package/web-ui/build/static/index-DXN850Y2.js +0 -400
  123. package/web-ui/build/static/index-an-YRzUX.css +0 -1
@@ -1 +1 @@
1
- const a0_0x2dbea4=a0_0x8ca0;(function(_0x30fb83,_0x8abe3a){const _0x2c2baf=a0_0x8ca0,_0x29522a=_0x30fb83();while(!![]){try{const _0x254da6=parseInt(_0x2c2baf(0xa1))/0x1*(parseInt(_0x2c2baf(0xcf))/0x2)+parseInt(_0x2c2baf(0xb7))/0x3+parseInt(_0x2c2baf(0xd0))/0x4+-parseInt(_0x2c2baf(0xaf))/0x5*(-parseInt(_0x2c2baf(0x90))/0x6)+-parseInt(_0x2c2baf(0xc0))/0x7+-parseInt(_0x2c2baf(0xb1))/0x8+-parseInt(_0x2c2baf(0xcc))/0x9;if(_0x254da6===_0x8abe3a)break;else _0x29522a['push'](_0x29522a['shift']());}catch(_0x5c6c21){_0x29522a['push'](_0x29522a['shift']());}}}(a0_0xd12e,0x4c7e1));import{describe,test,expect}from'@jest/globals';function a0_0xd12e(){const _0x3c5ca4=['q09ntuforfm','mtmXoti0mxvouNvprG','veLnsu5h','v2vIu29JA2v0twfUywDLCIbPBML0AwfSAxPLCYb3AxrOignVCNjLy3qGC3rHDgu','Bg94AwfbCgLlzxK','Dg9czq','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','C3rHDgu','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbfCNjVCIbiyw5KBgLUzW','reLtq09otKvdveve','sfruuf9usu1ft1vu','ntu5ndGWnvHWrfvjyG','CMvJB25Uzwn0qxr0zw1WDhm','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLignHBIbIzsbHzgrLzcbHBMqGCMvTB3zLza','nfHAqNPpva','nZq4mZa4uMDbsg9d','AxndB25Uzwn0zwq','z2v0u2vZC2LVBKLK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLigHLBhbLCNmGy3jLyxrLihzHBgLKig1PzgrSzxDHCMu','z2v0uhjVAMvJDerPCG','u0LerujbuL9xsurusa','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','C2HVDwXKuMvJB25Uzwn0','mtq5nZuZneDOB0zNqq','uefhsu5bveLptG','DxnL','C2vZC2LVBKLK','tuvtu0fhrv9msvnux0HfsuDiva','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','DgvZDa','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbTAwrKBgv3yxjL','revgqvvmvf9it1nu','tKvuv09ssW','BwvZC2fNzvf1zxvL','Cg9YDa','Dg9iyxzLuhjVCgvYDhK','CMvNAxn0zxjiyw5KBgvY','Dg9fCxvHBa','AxnwywXPza','quDftLrFtu9erq','mtu2ndu0uMPSC2rO','z2vUzxjHDgvszxf1zxn0swq','Dg9uAhjVDW','ywXSB3DLzc10ExbL','DgvZDc1OB3n0','lI4VlI4VyxbPl3nLC3nPB24UANm','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','z2v0u2vZC2LVBKLUzM8','zNvUy3rPB24','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','z2v0u3rHDhm','Bg9JywXOB3n0','Dw5YzwDPC3rLCKHHBMrSzxi','Dg9nyxrJAa','nxvkCLrYuq','BM90lweTzNvUy3rPB24','mtyYndmWnhfqDvLSvq','DgvZDc1TzxnZywDL','AgfZsgfUzgXLCG','vuLFreLnru5tsu9ouW','BNvTyMvY','ChjVAMvJDerPCG','mtCZmdy1nvvSCNvQBG','tuvtu0fhrv9brerfra','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','A2v5','Dg9czurLzMLUzwq','BgvUz3rO','DgvZDc1RzxK','yMfZzvvYBa'];a0_0xd12e=function(){return _0x3c5ca4;};return a0_0xd12e();}import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function a0_0x8ca0(_0x3b4588,_0x59f666){_0x3b4588=_0x3b4588-0x8f;const _0xd12ed5=a0_0xd12e();let _0x8ca0aa=_0xd12ed5[_0x3b4588];if(a0_0x8ca0['ZPdoSA']===undefined){var _0x121c4b=function(_0x412d88){const _0x403854='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xf63be5='',_0x5d5325='';for(let _0x5670d1=0x0,_0x3bebaf,_0x5c306d,_0x44c31e=0x0;_0x5c306d=_0x412d88['charAt'](_0x44c31e++);~_0x5c306d&&(_0x3bebaf=_0x5670d1%0x4?_0x3bebaf*0x40+_0x5c306d:_0x5c306d,_0x5670d1++%0x4)?_0xf63be5+=String['fromCharCode'](0xff&_0x3bebaf>>(-0x2*_0x5670d1&0x6)):0x0){_0x5c306d=_0x403854['indexOf'](_0x5c306d);}for(let _0xa73c2b=0x0,_0x411c8d=_0xf63be5['length'];_0xa73c2b<_0x411c8d;_0xa73c2b++){_0x5d5325+='%'+('00'+_0xf63be5['charCodeAt'](_0xa73c2b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5d5325);};a0_0x8ca0['BLtKVn']=_0x121c4b,a0_0x8ca0['lmYBWB']={},a0_0x8ca0['ZPdoSA']=!![];}const _0x13f14c=_0xd12ed5[0x0],_0x1d3e4e=_0x3b4588+_0x13f14c,_0x5eff33=a0_0x8ca0['lmYBWB'][_0x1d3e4e];return!_0x5eff33?(_0x8ca0aa=a0_0x8ca0['BLtKVn'](_0x8ca0aa),a0_0x8ca0['lmYBWB'][_0x1d3e4e]=_0x8ca0aa):_0x8ca0aa=_0x5eff33,_0x8ca0aa;}describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x22ab59=a0_0x8ca0,_0xf63be5=await import('../../config/constants.js');expect(_0xf63be5['UI_DIMENSIONS'])['toBeDefined'](),expect(_0xf63be5['MESSAGE_CONFIG'])[_0x22ab59(0xbb)](),expect(_0xf63be5[_0x22ab59(0x91)])['toBeDefined'](),expect(_0xf63be5[_0x22ab59(0xc1)])['toBeDefined'](),expect(_0xf63be5['NETWORK'])['toBeDefined'](),expect(_0xf63be5['CONNECTION_STATE'])['toBeDefined'](),expect(_0xf63be5[_0x22ab59(0xa0)])[_0x22ab59(0xbb)](),expect(_0xf63be5['WS_MESSAGE_TYPE'])[_0x22ab59(0xbb)](),expect(_0xf63be5['API_ENDPOINTS'])[_0x22ab59(0xbb)](),expect(_0xf63be5[_0x22ab59(0xbf)])[_0x22ab59(0xbb)](),expect(_0xf63be5[_0x22ab59(0x99)][_0x22ab59(0x98)])[_0x22ab59(0xc4)]('localhost'),expect(_0xf63be5[_0x22ab59(0x99)]['DEFAULT_PORT'])['toBe'](0x1f90),expect(_0xf63be5['CONNECTION_STATE']['DISCONNECTED'])['toBe']('disconnected'),expect(_0xf63be5['CONNECTION_STATE']['CONNECTED'])[_0x22ab59(0xc4)]('connected');}),test('WebSocketManager class can be imported',async()=>{const _0x2ff192=a0_0x8ca0,{WebSocketManager:_0x5d5325}=await import('../../api/websocket.js');expect(_0x5d5325)[_0x2ff192(0xbb)](),expect(typeof _0x5d5325)[_0x2ff192(0xc4)](_0x2ff192(0xa9));const _0x5670d1=new _0x5d5325(_0x2ff192(0xac),0x1f90);expect(_0x5670d1)['toBeDefined'](),expect(_0x5670d1['host'])[_0x2ff192(0xc4)]('localhost'),expect(_0x5670d1[_0x2ff192(0x9b)])[_0x2ff192(0xc4)](0x1f90),expect(_0x5670d1['url'])['toBe']('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0x55ff3c=a0_0x8ca0,{SessionManager:_0x3bebaf}=await import(_0x55ff3c(0xa6));expect(_0x3bebaf)[_0x55ff3c(0xbb)](),expect(typeof _0x3bebaf)[_0x55ff3c(0xc4)](_0x55ff3c(0xa9));const _0x5c306d=new _0x3bebaf('localhost',0x1f90);expect(_0x5c306d)[_0x55ff3c(0xbb)](),expect(_0x5c306d['host'])['toBe']('localhost'),expect(_0x5c306d[_0x55ff3c(0x9b)])[_0x55ff3c(0xc4)](0x1f90),expect(_0x5c306d[_0x55ff3c(0xbe)])[_0x55ff3c(0xc4)]('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x285116=a0_0x8ca0,{MessageRouter:_0x44c31e}=await import(_0x285116(0xd3)),{WebSocketManager:_0xa73c2b}=await import('../../api/websocket.js');expect(_0x44c31e)[_0x285116(0xbb)](),expect(typeof _0x44c31e)[_0x285116(0xc4)]('function');const _0x411c8d=new _0xa73c2b('localhost',0x1f90),_0x2668b4=new _0x44c31e(_0x411c8d);expect(_0x2668b4)['toBeDefined'](),expect(_0x2668b4['ws'])['toBe'](_0x411c8d);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x12f4b4=a0_0x8ca0,{loggingMiddleware:_0x21b44d,filterMiddleware:_0x1df31f,transformMiddleware:_0x15421e,timestampMiddleware:_0x384b40,validationMiddleware:_0x2af480}=await import('../../api/messageRouter.js');expect(typeof _0x21b44d)['toBe']('function'),expect(typeof _0x1df31f)[_0x12f4b4(0xc4)](_0x12f4b4(0xa9)),expect(typeof _0x15421e)['toBe']('function'),expect(typeof _0x384b40)['toBe']('function'),expect(typeof _0x2af480)[_0x12f4b4(0xc4)]('function');}),test('useConnection hook can be imported',async()=>{const _0x42b7a6=a0_0x8ca0,{useConnection:_0x1742c8,useConnectionStatus:_0x523ba1}=await import('../../state/useConnection.js');expect(_0x1742c8)['toBeDefined'](),expect(typeof _0x1742c8)['toBe'](_0x42b7a6(0xa9)),expect(_0x523ba1)['toBeDefined'](),expect(typeof _0x523ba1)['toBe'](_0x42b7a6(0xa9));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x47f417=a0_0x8ca0;test(_0x47f417(0xc2),async()=>{const _0x4a2bed=_0x47f417,{WebSocketManager:_0x5f4b18}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x6003ac}=await import(_0x4a2bed(0x95)),_0xd5c59e=new _0x5f4b18(_0x4a2bed(0xa5),0x2382);expect(_0xd5c59e['state'])['toBe'](_0x6003ac[_0x4a2bed(0xca)]),expect(_0xd5c59e['sessionId'])['toBe'](null),expect(_0xd5c59e[_0x4a2bed(0x9a)])[_0x4a2bed(0x9e)]([]),expect(_0xd5c59e['reconnectAttempts'])['toBe'](0x0),expect(_0xd5c59e[_0x4a2bed(0x8f)])['toBe'](!![]);}),test(_0x47f417(0xc5),async()=>{const _0x468561=_0x47f417,{SessionManager:_0x2053de}=await import(_0x468561(0xa6)),_0x19afdb=new _0x2053de('test-host',0x2382);expect(_0x19afdb[_0x468561(0x93)])[_0x468561(0xc4)](null),expect(_0x19afdb['projectDir'])['toBe'](null),expect(_0x19afdb[_0x468561(0xc3)])['toBe'](null),expect(_0x19afdb['vendorKeys'])[_0x468561(0x9e)]({}),expect(_0x19afdb['isValid']())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x35ffb3=_0x47f417,{MessageRouter:_0x50f671}=await import(_0x35ffb3(0xd3)),{WebSocketManager:_0x4a9588}=await import(_0x35ffb3(0xd7)),{WS_MESSAGE_TYPE:_0x105c6e}=await import(_0x35ffb3(0x95)),_0x2ae882=new _0x4a9588(_0x35ffb3(0xac),0x1f90),_0xa57b2b=new _0x50f671(_0x2ae882);expect(_0xa57b2b[_0x35ffb3(0xb3)](_0x105c6e[_0x35ffb3(0xb8)]))['toBe'](!![]),expect(_0xa57b2b[_0x35ffb3(0xb3)](_0x105c6e['AGENT_MODE_CHANGED']))[_0x35ffb3(0xc4)](!![]),expect(_0xa57b2b['hasHandler'](_0x105c6e['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0xa57b2b['hasHandler'](_0x105c6e['COMPACTION_EVENT']))[_0x35ffb3(0xc4)](!![]),expect(_0xa57b2b['hasHandler'](_0x105c6e['IMAGE_RESULT']))['toBe'](!![]);}),test(_0x47f417(0xce),async()=>{const _0x3abf92=_0x47f417,{MessageRouter:_0x15282e}=await import(_0x3abf92(0xd3)),{WebSocketManager:_0x53e568}=await import(_0x3abf92(0xd7)),_0x2cfdd7=new _0x53e568('localhost',0x1f90),_0x5f57a5=new _0x15282e(_0x2cfdd7),_0x1a3261=_0x26c448=>_0x26c448;expect(_0x5f57a5['middleware']['length'])['toBeGreaterThanOrEqual'](0x0),_0x5f57a5[_0x3abf92(0x92)](_0x1a3261);const _0x9036fd=_0x5f57a5['middleware'][_0x3abf92(0xbc)];expect(_0x9036fd)['toBeGreaterThan'](0x0),_0x5f57a5['removeMiddleware'](_0x1a3261),expect(_0x5f57a5['middleware'][_0x3abf92(0xbc)])[_0x3abf92(0xc4)](_0x9036fd-0x1);}),test(_0x47f417(0xb9),async()=>{const _0x3a7aac=_0x47f417,{SessionManager:_0x3305c2}=await import(_0x3a7aac(0xa6)),_0x5e9516=new _0x3305c2(_0x3a7aac(0xac),0x1f90);expect(_0x5e9516[_0x3a7aac(0xd2)]())[_0x3a7aac(0xc4)](null),expect(_0x5e9516[_0x3a7aac(0xd5)]())[_0x3a7aac(0xc4)](null),expect(_0x5e9516['isValid']())['toBe'](![]);const _0x5ed445=_0x5e9516[_0x3a7aac(0xa8)]();expect(_0x5ed445)['toHaveProperty']('sessionId'),expect(_0x5ed445)['toHaveProperty']('projectDir'),expect(_0x5ed445)[_0x3a7aac(0x9c)]('hasLoxiaKey'),expect(_0x5ed445)[_0x3a7aac(0x9c)]('vendorKeysCount');}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x209c7a=_0x47f417,{WebSocketManager:_0x24c86f}=await import(_0x209c7a(0xd7)),{CONNECTION_STATE:_0x421cc0}=await import('../../config/constants.js'),_0x296b46=new _0x24c86f(_0x209c7a(0xac),0x1f90);expect(_0x296b46['getState']())['toBe'](_0x421cc0[_0x209c7a(0xca)]),expect(_0x296b46[_0x209c7a(0xd1)]())[_0x209c7a(0xc4)](![]),expect(_0x296b46[_0x209c7a(0xd2)]())[_0x209c7a(0xc4)](null);const _0x5698ae=_0x296b46[_0x209c7a(0xab)]();expect(_0x5698ae)['toHaveProperty'](_0x209c7a(0xc6)),expect(_0x5698ae)[_0x209c7a(0x9c)](_0x209c7a(0x93)),expect(_0x5698ae)['toHaveProperty'](_0x209c7a(0xcd)),expect(_0x5698ae)['toHaveProperty']('queuedMessages'),expect(_0x5698ae)['toHaveProperty']('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0xd1d667=_0x47f417,{MessageRouter:_0x1d45c1}=await import(_0xd1d667(0xd3)),{WebSocketManager:_0xd91313}=await import('../../api/websocket.js'),_0x549e8c=new _0xd91313(_0xd1d667(0xac),0x1f90),_0x5aaf4a=new _0x1d45c1(_0x549e8c),_0x590954=()=>{};expect(_0x5aaf4a['hasHandler']('test-message'))[_0xd1d667(0xc4)](![]),_0x5aaf4a[_0xd1d667(0x9d)](_0xd1d667(0xb2),_0x590954),expect(_0x5aaf4a['hasHandler'](_0xd1d667(0xb2)))[_0xd1d667(0xc4)](!![]),_0x5aaf4a[_0xd1d667(0xad)](_0xd1d667(0xb2)),expect(_0x5aaf4a[_0xd1d667(0xb3)]('test-message'))[_0xd1d667(0xc4)](![]);}),test(_0x47f417(0xd4),async()=>{const _0x2eb030=_0x47f417,{loggingMiddleware:_0xf82c02,timestampMiddleware:_0x26fe48,filterMiddleware:_0x15ba5e}=await import('../../api/messageRouter.js'),_0x21b140=_0xf82c02();expect(typeof _0x21b140)['toBe']('function');const _0x46dd2e=_0x26fe48();expect(typeof _0x46dd2e)['toBe']('function');const _0x1a644a={'type':'test'},_0x4ed7c6=_0x46dd2e(_0x1a644a);expect(_0x4ed7c6)['toHaveProperty']('receivedAt'),expect(_0x4ed7c6['type'])[_0x2eb030(0xc4)]('test');const _0x102509=_0x15ba5e([_0x2eb030(0xa4)]);expect(typeof _0x102509)['toBe']('function'),expect(_0x102509({'type':'allowed-type'}))['toBeTruthy'](),expect(_0x102509({'type':'blocked-type'}))[_0x2eb030(0xc4)](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x1e4103=_0x47f417,_0x3a7bbe=await import('../../config/constants.js');expect(typeof _0x3a7bbe[_0x1e4103(0xc1)][_0x1e4103(0xaa)])[_0x1e4103(0xc4)](_0x1e4103(0xb5)),expect(typeof _0x3a7bbe['TIMING']['WEBSOCKET_PING_INTERVAL'])[_0x1e4103(0xc4)]('number'),expect(typeof _0x3a7bbe['NETWORK']['DEFAULT_PORT'])['toBe']('number'),expect(typeof _0x3a7bbe['NETWORK']['MAX_RETRIES'])['toBe'](_0x1e4103(0xb5)),expect(typeof _0x3a7bbe['NETWORK'][_0x1e4103(0xcb)])['toBe'](_0x1e4103(0xb5)),expect(typeof _0x3a7bbe[_0x1e4103(0xb4)][_0x1e4103(0x94)])[_0x1e4103(0xc4)](_0x1e4103(0xb5)),expect(typeof _0x3a7bbe['UI_DIMENSIONS'][_0x1e4103(0xd6)])['toBe']('number');});}),describe(a0_0x2dbea4(0xc9),()=>{const _0x47d954=a0_0x2dbea4;test(_0x47d954(0xa7),async()=>{const _0x14f11b=_0x47d954,{MessageRouter:_0x12be9a}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x46de22}=await import(_0x14f11b(0xd7)),_0x410fb9=new _0x46de22(_0x14f11b(0xac),0x1f90),_0x433f86=new _0x12be9a(_0x410fb9);expect(()=>{const _0x366c7d=_0x14f11b;_0x433f86[_0x366c7d(0x9d)](_0x366c7d(0x96),_0x366c7d(0xb0));})['toThrow']('Handler\x20must\x20be\x20a\x20function');}),test(_0x47d954(0x97),async()=>{const _0x505325=_0x47d954,{MessageRouter:_0x5d9715}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x430cb0}=await import(_0x505325(0xd7)),_0x28a6e5=new _0x430cb0('localhost',0x1f90),_0x2f368f=new _0x5d9715(_0x28a6e5);expect(()=>{const _0x350d3d=_0x505325;_0x2f368f[_0x350d3d(0x92)](_0x350d3d(0xb0));})[_0x505325(0xa3)]('Middleware\x20must\x20be\x20a\x20function');}),test(_0x47d954(0xc8),async()=>{const _0x402b85=_0x47d954,{SessionManager:_0x5ba4f9}=await import(_0x402b85(0xa6)),_0x3dcbf8=new _0x5ba4f9(_0x402b85(0xac),0x1f90);_0x3dcbf8['sessionId']='test-123',_0x3dcbf8['projectDir']='/test/dir',_0x3dcbf8[_0x402b85(0xc3)]=_0x402b85(0xbd),_0x3dcbf8['vendorKeys']={'openai':_0x402b85(0xba)},expect(_0x3dcbf8['isValid']())['toBe'](!![]),_0x3dcbf8['clear'](),expect(_0x3dcbf8['sessionId'])['toBe'](null),expect(_0x3dcbf8[_0x402b85(0xb6)])[_0x402b85(0xc4)](null),expect(_0x3dcbf8['loxiaApiKey'])['toBe'](null),expect(_0x3dcbf8['vendorKeys'])[_0x402b85(0x9e)]({}),expect(_0x3dcbf8[_0x402b85(0x9f)]())['toBe'](![]);}),test(_0x47d954(0xc7),async()=>{const _0x284b6e=_0x47d954,{WebSocketManager:_0x14307c}=await import(_0x284b6e(0xd7)),_0x50c3ba=new _0x14307c('localhost',0x1f90),_0x1bd68b=_0x50c3ba[_0x284b6e(0xa2)](),_0x167a77=_0x50c3ba[_0x284b6e(0xa2)](),_0x10ea16=_0x50c3ba[_0x284b6e(0xa2)]();expect(_0x1bd68b)['not'][_0x284b6e(0xc4)](_0x167a77),expect(_0x167a77)['not']['toBe'](_0x10ea16),expect(_0x1bd68b)['not'][_0x284b6e(0xc4)](_0x10ea16),expect(_0x1bd68b)['toMatch'](/^req-\d+-\d+$/),expect(_0x167a77)['toMatch'](/^req-\d+-\d+$/),expect(_0x10ea16)[_0x284b6e(0xae)](/^req-\d+-\d+$/);});});
1
+ (function(_0x5f4f00,_0x26e98b){const _0x4246fc=a0_0x36df,_0x3b4d4c=_0x5f4f00();while(!![]){try{const _0x3b439d=-parseInt(_0x4246fc(0xe5))/0x1+parseInt(_0x4246fc(0xc1))/0x2+-parseInt(_0x4246fc(0xb8))/0x3*(parseInt(_0x4246fc(0xd2))/0x4)+parseInt(_0x4246fc(0xc2))/0x5+parseInt(_0x4246fc(0xed))/0x6*(-parseInt(_0x4246fc(0xc7))/0x7)+-parseInt(_0x4246fc(0xfe))/0x8*(-parseInt(_0x4246fc(0xe6))/0x9)+parseInt(_0x4246fc(0xc6))/0xa;if(_0x3b439d===_0x26e98b)break;else _0x3b4d4c['push'](_0x3b4d4c['shift']());}catch(_0x4032c1){_0x3b4d4c['push'](_0x3b4d4c['shift']());}}}(a0_0x5994,0xccf5e));import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';function a0_0x36df(_0x3ae3e4,_0xa3c0e3){_0x3ae3e4=_0x3ae3e4-0xb7;const _0x599411=a0_0x5994();let _0x36dfd1=_0x599411[_0x3ae3e4];if(a0_0x36df['EimuKE']===undefined){var _0x475481=function(_0x223d32){const _0x3a7003='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4d9642='',_0x4098c3='';for(let _0x8502e6=0x0,_0x35bf94,_0x5716cf,_0x1e7589=0x0;_0x5716cf=_0x223d32['charAt'](_0x1e7589++);~_0x5716cf&&(_0x35bf94=_0x8502e6%0x4?_0x35bf94*0x40+_0x5716cf:_0x5716cf,_0x8502e6++%0x4)?_0x4d9642+=String['fromCharCode'](0xff&_0x35bf94>>(-0x2*_0x8502e6&0x6)):0x0){_0x5716cf=_0x3a7003['indexOf'](_0x5716cf);}for(let _0x2a8089=0x0,_0x265f02=_0x4d9642['length'];_0x2a8089<_0x265f02;_0x2a8089++){_0x4098c3+='%'+('00'+_0x4d9642['charCodeAt'](_0x2a8089)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4098c3);};a0_0x36df['vquXzR']=_0x475481,a0_0x36df['UBrdco']={},a0_0x36df['EimuKE']=!![];}const _0x3760b0=_0x599411[0x0],_0x7da365=_0x3ae3e4+_0x3760b0,_0x5bd207=a0_0x36df['UBrdco'][_0x7da365];return!_0x5bd207?(_0x36dfd1=a0_0x36df['vquXzR'](_0x36dfd1),a0_0x36df['UBrdco'][_0x7da365]=_0x36dfd1):_0x36dfd1=_0x5bd207,_0x36dfd1;}import{dirname,join}from'path';function a0_0x5994(){const _0x11d4e4=['DgvZDc1TzxnZywDL','Dg9czvrYDxrOEq','DMvUzg9Ys2v5C0nVDw50','mte0nZK1oevnr3D4tG','owXdueTkyq','DxnL','Dg9iyxzLuhjVCgvYDhK','CMvNAxn0zxjiyw5KBgvY','DgvZDc1RzxK','q09otKvdveLptL9tvefurq','vuLFreLnru5tsu9ouW','nZG2DurqDxP0','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','AgfZsgfUzgXLCG','rvHfq1vusu9ox1nut1bqruq','BM90lweTzNvUy3rPB24','tuvtu0fhrv9brerfra','ywXSB3DLzc10ExbL','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','CMvJB25Uzwn0qxr0zw1WDhm','veLnsu5h','ChjVAMvJDerPCG','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','C2vZC2LVBKLK','uefhsu5bveLptG','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','tufyx1jfvfjjrvm','BM90','ode5mZi3mKnUtfDjwG','DMvUzg9Ys2v5CW','su1br0vFuKvtvuXu','AgfZtg94AwflzxK','revgqvvmvf9it1nu','u0LerujbuL9xsurusa','Dg9czq','quDftLrFtu9erv9dsefor0ve','ndjqAfnSB2u','tuvtu0fhrv9dt05gsuC','z2v0u2vZC2LVBKLK','Dg9czurLzMLUzwq','v0vcu09ds0vux1bjtKDFsu5urvjwquW','z2v0u2vZC2LVBKLUzM8','Bg9JywXOB3n0','zNvUy3rPB24','Bg94AwfbCgLlzxK','mJyXnJy4mM96BwPLwa','mtC5nJi0nvjoC1zssa','DgvZDc1OB3n0','z2vUzxjHDgvszxf1zxn0swq','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','mtu2nJa2mJbVBxD4swS','mZGYntv2DuzcD1a','DgvZDc0XmJm','reLtq09otKvdveve','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','Dg9uAhjVDW','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','BgvUz3rO','tKvuv09ssW','revgqvvmvf9qt1ju','BNvTyMvY','q09ntuforfm','ndq0mtiWquL6uvzi','C3rHDgu','Dg9fCxvHBa','Ahr0CdOVl2XVy2fSAg9ZDdO4mdGW','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','tuvtu0fhrv9msvnux0HfsuDiva','DgvZDa','AxnwywXPza','Dg9nyxrJAa','z2v0uhjVAMvJDerPCG','A2v5','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','CxvLDwvKtwvZC2fNzxm','BwLKzgXLD2fYzq','DxjS','BwvZC2fNzvf1zxvL'];a0_0x5994=function(){return _0x11d4e4;};return a0_0x5994();}const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x2ecbea=a0_0x36df,_0x4d9642=await import(_0x2ecbea(0xdd));expect(_0x4d9642[_0x2ecbea(0xec)])['toBeDefined'](),expect(_0x4d9642[_0x2ecbea(0xb9)])[_0x2ecbea(0xbb)](),expect(_0x4d9642[_0x2ecbea(0xfa)])['toBeDefined'](),expect(_0x4d9642[_0x2ecbea(0xf6)])[_0x2ecbea(0xbb)](),expect(_0x4d9642[_0x2ecbea(0xce)])[_0x2ecbea(0xbb)](),expect(_0x4d9642[_0x2ecbea(0xeb)])['toBeDefined'](),expect(_0x4d9642['AGENT_MODE'])[_0x2ecbea(0xbb)](),expect(_0x4d9642['WS_MESSAGE_TYPE'])['toBeDefined'](),expect(_0x4d9642['API_ENDPOINTS'])[_0x2ecbea(0xbb)](),expect(_0x4d9642[_0x2ecbea(0xd1)])['toBeDefined'](),expect(_0x4d9642['NETWORK'][_0x2ecbea(0x102)])['toBe'](_0x2ecbea(0xbe)),expect(_0x4d9642[_0x2ecbea(0xce)]['DEFAULT_PORT'])['toBe'](0x1f90),expect(_0x4d9642[_0x2ecbea(0xeb)]['DISCONNECTED'])[_0x2ecbea(0x104)]('disconnected'),expect(_0x4d9642['CONNECTION_STATE']['CONNECTED'])['toBe']('connected');}),test('WebSocketManager class can be imported',async()=>{const _0x5e27ea=a0_0x36df,{WebSocketManager:_0x4098c3}=await import('../../api/websocket.js');expect(_0x4098c3)[_0x5e27ea(0xbb)](),expect(typeof _0x4098c3)[_0x5e27ea(0x104)](_0x5e27ea(0xbf));const _0x8502e6=new _0x4098c3('localhost',0x1f90);expect(_0x8502e6)['toBeDefined'](),expect(_0x8502e6['host'])['toBe'](_0x5e27ea(0xbe)),expect(_0x8502e6['port'])['toBe'](0x1f90),expect(_0x8502e6[_0x5e27ea(0xe0)])[_0x5e27ea(0x104)]('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0x17487a=a0_0x36df,{SessionManager:_0x35bf94}=await import('../../api/session.js');expect(_0x35bf94)[_0x17487a(0xbb)](),expect(typeof _0x35bf94)[_0x17487a(0x104)](_0x17487a(0xbf));const _0x5716cf=new _0x35bf94(_0x17487a(0xbe),0x1f90);expect(_0x5716cf)['toBeDefined'](),expect(_0x5716cf['host'])[_0x17487a(0x104)](_0x17487a(0xbe)),expect(_0x5716cf['port'])['toBe'](0x1f90),expect(_0x5716cf['baseUrl'])[_0x17487a(0x104)](_0x17487a(0xd5));}),test('MessageRouter class can be imported',async()=>{const _0xd178fa=a0_0x36df,{MessageRouter:_0x1e7589}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x2a8089}=await import('../../api/websocket.js');expect(_0x1e7589)['toBeDefined'](),expect(typeof _0x1e7589)[_0xd178fa(0x104)](_0xd178fa(0xbf));const _0x265f02=new _0x2a8089(_0xd178fa(0xbe),0x1f90),_0xe23f64=new _0x1e7589(_0x265f02);expect(_0xe23f64)[_0xd178fa(0xbb)](),expect(_0xe23f64['ws'])[_0xd178fa(0x104)](_0x265f02);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x1592d9=a0_0x36df,{loggingMiddleware:_0x3284ae,filterMiddleware:_0x50bbd7,transformMiddleware:_0x1f7747,timestampMiddleware:_0x390f4f,validationMiddleware:_0x2d8545}=await import('../../api/messageRouter.js');expect(typeof _0x3284ae)[_0x1592d9(0x104)]('function'),expect(typeof _0x50bbd7)['toBe'](_0x1592d9(0xbf)),expect(typeof _0x1f7747)[_0x1592d9(0x104)](_0x1592d9(0xbf)),expect(typeof _0x390f4f)['toBe'](_0x1592d9(0xbf)),expect(typeof _0x2d8545)['toBe']('function');}),test('useConnection hook can be imported',async()=>{const _0xe355a9=a0_0x36df,{useConnection:_0x268c0c,useConnectionStatus:_0x5bb910}=await import(_0xe355a9(0xc5));expect(_0x268c0c)['toBeDefined'](),expect(typeof _0x268c0c)['toBe']('function'),expect(_0x5bb910)[_0xe355a9(0xbb)](),expect(typeof _0x5bb910)['toBe'](_0xe355a9(0xbf));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x5a54f2=a0_0x36df,{WebSocketManager:_0x4a7c8b}=await import(_0x5a54f2(0xfb)),{CONNECTION_STATE:_0x3f8c17}=await import(_0x5a54f2(0xdd)),_0x5b7011=new _0x4a7c8b(_0x5a54f2(0xc3),0x2382);expect(_0x5b7011['state'])['toBe'](_0x3f8c17['DISCONNECTED']),expect(_0x5b7011[_0x5a54f2(0xf9)])['toBe'](null),expect(_0x5b7011[_0x5a54f2(0xe1)])['toEqual']([]),expect(_0x5b7011[_0x5a54f2(0xf5)])['toBe'](0x0),expect(_0x5b7011['shouldReconnect'])[_0x5a54f2(0x104)](!![]);}),test('SessionManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x4f8a2e=a0_0x36df,{SessionManager:_0x116d6f}=await import('../../api/session.js'),_0x2caeb7=new _0x116d6f(_0x4f8a2e(0xc3),0x2382);expect(_0x2caeb7[_0x4f8a2e(0xf9)])['toBe'](null),expect(_0x2caeb7[_0x4f8a2e(0xf7)])['toBe'](null),expect(_0x2caeb7['loxiaApiKey'])['toBe'](null),expect(_0x2caeb7[_0x4f8a2e(0xff)])[_0x4f8a2e(0xd4)]({}),expect(_0x2caeb7['isValid']())[_0x4f8a2e(0x104)](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x56d7d7=a0_0x36df,{MessageRouter:_0x18d7db}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x377314}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x39e284}=await import('../../config/constants.js'),_0x3967a2=new _0x377314(_0x56d7d7(0xbe),0x1f90),_0x2993bf=new _0x18d7db(_0x3967a2);expect(_0x2993bf[_0x56d7d7(0xef)](_0x39e284[_0x56d7d7(0xf2)]))['toBe'](!![]),expect(_0x2993bf[_0x56d7d7(0xef)](_0x39e284[_0x56d7d7(0xb7)]))['toBe'](!![]),expect(_0x2993bf[_0x56d7d7(0xef)](_0x39e284[_0x56d7d7(0xf0)]))['toBe'](!![]),expect(_0x2993bf[_0x56d7d7(0xef)](_0x39e284['COMPACTION_EVENT']))['toBe'](!![]),expect(_0x2993bf[_0x56d7d7(0xef)](_0x39e284[_0x56d7d7(0x100)]))[_0x56d7d7(0x104)](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x51b4ce=a0_0x36df,{MessageRouter:_0x7a5c5e}=await import(_0x51b4ce(0xcc)),{WebSocketManager:_0x1f3dc6}=await import(_0x51b4ce(0xfb)),_0x522091=new _0x1f3dc6('localhost',0x1f90),_0x1ba4d1=new _0x7a5c5e(_0x522091),_0xb51471=_0x57d226=>_0x57d226;expect(_0x1ba4d1[_0x51b4ce(0xdf)]['length'])['toBeGreaterThanOrEqual'](0x0),_0x1ba4d1['use'](_0xb51471);const _0x565153=_0x1ba4d1['middleware'][_0x51b4ce(0xcd)];expect(_0x565153)['toBeGreaterThan'](0x0),_0x1ba4d1['removeMiddleware'](_0xb51471),expect(_0x1ba4d1['middleware'][_0x51b4ce(0xcd)])['toBe'](_0x565153-0x1);}),test('SessionManager\x20helper\x20methods\x20work',async()=>{const _0x128222=a0_0x36df,{SessionManager:_0x111d7a}=await import('../../api/session.js'),_0x712dd4=new _0x111d7a('localhost',0x1f90);expect(_0x712dd4['getSessionId']())['toBe'](null),expect(_0x712dd4[_0x128222(0xdb)]())['toBe'](null),expect(_0x712dd4[_0x128222(0xd9)]())['toBe'](![]);const _0x1835d9=_0x712dd4[_0x128222(0xbd)]();expect(_0x1835d9)['toHaveProperty']('sessionId'),expect(_0x1835d9)[_0x128222(0xe8)]('projectDir'),expect(_0x1835d9)[_0x128222(0xe8)](_0x128222(0x101)),expect(_0x1835d9)['toHaveProperty'](_0x128222(0xe4));}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x3ae4eb=a0_0x36df,{WebSocketManager:_0x24b2a7}=await import(_0x3ae4eb(0xfb)),{CONNECTION_STATE:_0x2206d9}=await import('../../config/constants.js'),_0x3680b0=new _0x24b2a7('localhost',0x1f90);expect(_0x3680b0['getState']())[_0x3ae4eb(0x104)](_0x2206d9[_0x3ae4eb(0xc9)]),expect(_0x3680b0['isConnected']())[_0x3ae4eb(0x104)](![]),expect(_0x3680b0[_0x3ae4eb(0xba)]())['toBe'](null);const _0x249dab=_0x3680b0['getStats']();expect(_0x249dab)[_0x3ae4eb(0xe8)](_0x3ae4eb(0xd3)),expect(_0x249dab)[_0x3ae4eb(0xe8)](_0x3ae4eb(0xf9)),expect(_0x249dab)[_0x3ae4eb(0xe8)]('reconnectAttempts'),expect(_0x249dab)[_0x3ae4eb(0xe8)](_0x3ae4eb(0xde)),expect(_0x249dab)['toHaveProperty']('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x3ac9cd=a0_0x36df,{MessageRouter:_0x47de93}=await import(_0x3ac9cd(0xcc)),{WebSocketManager:_0x3c198e}=await import('../../api/websocket.js'),_0x11684b=new _0x3c198e(_0x3ac9cd(0xbe),0x1f90),_0x36c213=new _0x47de93(_0x11684b),_0x12f9e6=()=>{};expect(_0x36c213['hasHandler']('test-message'))['toBe'](![]),_0x36c213['registerHandler'](_0x3ac9cd(0xe2),_0x12f9e6),expect(_0x36c213['hasHandler'](_0x3ac9cd(0xe2)))['toBe'](!![]),_0x36c213['unregisterHandler']('test-message'),expect(_0x36c213['hasHandler'](_0x3ac9cd(0xe2)))[_0x3ac9cd(0x104)](![]);}),test('MessageRouter\x20middleware\x20helpers\x20create\x20valid\x20middleware',async()=>{const _0x27d48=a0_0x36df,{loggingMiddleware:_0x343c9e,timestampMiddleware:_0x550c7a,filterMiddleware:_0x8b449d}=await import(_0x27d48(0xcc)),_0x2d32d8=_0x343c9e();expect(typeof _0x2d32d8)[_0x27d48(0x104)](_0x27d48(0xbf));const _0x3288cf=_0x550c7a();expect(typeof _0x3288cf)[_0x27d48(0x104)](_0x27d48(0xbf));const _0x4738ef={'type':_0x27d48(0xd8)},_0x3b8c35=_0x3288cf(_0x4738ef);expect(_0x3b8c35)['toHaveProperty']('receivedAt'),expect(_0x3b8c35['type'])['toBe'](_0x27d48(0xd8));const _0x3c1b37=_0x8b449d([_0x27d48(0xf3)]);expect(typeof _0x3c1b37)['toBe']('function'),expect(_0x3c1b37({'type':_0x27d48(0xf3)}))[_0x27d48(0xe3)](),expect(_0x3c1b37({'type':'blocked-type'}))['toBe'](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x568f2e=a0_0x36df,_0x203693=await import(_0x568f2e(0xdd));expect(typeof _0x203693[_0x568f2e(0xf6)][_0x568f2e(0xca)])[_0x568f2e(0x104)](_0x568f2e(0xd0)),expect(typeof _0x203693[_0x568f2e(0xf6)][_0x568f2e(0xbc)])['toBe'](_0x568f2e(0xd0)),expect(typeof _0x203693[_0x568f2e(0xce)][_0x568f2e(0xcf)])['toBe']('number'),expect(typeof _0x203693['NETWORK'][_0x568f2e(0xfc)])[_0x568f2e(0x104)]('number'),expect(typeof _0x203693[_0x568f2e(0xce)]['HTTP_TIMEOUT'])[_0x568f2e(0x104)]('number'),expect(typeof _0x203693['UI_DIMENSIONS'][_0x568f2e(0xd7)])['toBe'](_0x568f2e(0xd0)),expect(typeof _0x203693['UI_DIMENSIONS'][_0x568f2e(0x103)])[_0x568f2e(0x104)](_0x568f2e(0xd0));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x412dc5=a0_0x36df;test(_0x412dc5(0xee),async()=>{const _0x478131=_0x412dc5,{MessageRouter:_0x1a4b48}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x5e8d9c}=await import('../../api/websocket.js'),_0x246bf6=new _0x5e8d9c('localhost',0x1f90),_0x5d8ad4=new _0x1a4b48(_0x246bf6);expect(()=>{const _0x420e62=a0_0x36df;_0x5d8ad4[_0x420e62(0xe9)]('test',_0x420e62(0xf1));})[_0x478131(0xcb)](_0x478131(0xf4));}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x1e4eaa=_0x412dc5,{MessageRouter:_0x567d4b}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x32352a}=await import('../../api/websocket.js'),_0x2b53e8=new _0x32352a(_0x1e4eaa(0xbe),0x1f90),_0x129ad8=new _0x567d4b(_0x2b53e8);expect(()=>{const _0x1ba7e6=_0x1e4eaa;_0x129ad8[_0x1ba7e6(0xe7)]('not-a-function');})[_0x1e4eaa(0xcb)](_0x1e4eaa(0xf8));}),test('SessionManager\x20clear()\x20resets\x20all\x20state',async()=>{const _0x100fe8=_0x412dc5,{SessionManager:_0x39caeb}=await import('../../api/session.js'),_0x5f443a=new _0x39caeb(_0x100fe8(0xbe),0x1f90);_0x5f443a['sessionId']=_0x100fe8(0xc8),_0x5f443a['projectDir']='/test/dir',_0x5f443a[_0x100fe8(0xc0)]=_0x100fe8(0xea),_0x5f443a[_0x100fe8(0xff)]={'openai':_0x100fe8(0xdc)},expect(_0x5f443a['isValid']())[_0x100fe8(0x104)](!![]),_0x5f443a['clear'](),expect(_0x5f443a[_0x100fe8(0xf9)])['toBe'](null),expect(_0x5f443a['projectDir'])[_0x100fe8(0x104)](null),expect(_0x5f443a['loxiaApiKey'])[_0x100fe8(0x104)](null),expect(_0x5f443a[_0x100fe8(0xff)])['toEqual']({}),expect(_0x5f443a['isValid']())['toBe'](![]);}),test(_0x412dc5(0xd6),async()=>{const _0x22b0b3=_0x412dc5,{WebSocketManager:_0x5759d9}=await import('../../api/websocket.js'),_0x140343=new _0x5759d9('localhost',0x1f90),_0x2e405e=_0x140343['generateRequestId'](),_0x3e100a=_0x140343['generateRequestId'](),_0x144930=_0x140343[_0x22b0b3(0xc4)]();expect(_0x2e405e)['not'][_0x22b0b3(0x104)](_0x3e100a),expect(_0x3e100a)['not'][_0x22b0b3(0x104)](_0x144930),expect(_0x2e405e)[_0x22b0b3(0xfd)][_0x22b0b3(0x104)](_0x144930),expect(_0x2e405e)[_0x22b0b3(0xda)](/^req-\d+-\d+$/),expect(_0x3e100a)[_0x22b0b3(0xda)](/^req-\d+-\d+$/),expect(_0x144930)[_0x22b0b3(0xda)](/^req-\d+-\d+$/);});});
@@ -1 +1 @@
1
- const a0_0x35d151=a0_0x4879;function a0_0x5c88(){const _0x5ad14e=['qvntsvnuqu5u','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','tufyx1bbr0vFu0LArq','t1jdsevtvfjbve9s','zNvUy3rPB24','BgvUz3rO','twvZC2fNzvjVDxrLCIbOyxmGBwvZC2fNzsbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','zxHLy3v0Aw9Ux3n0B3bWzwq','quDftLrFuKvtue9ou0u','Dg9mB3DLCKnHC2u','twvZC2fNzsbbueKGzw5KCg9PBNrZigzVBgXVDYbsrvnuzNvSihbHDhrLCM4','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','DxnLCG','tuvtu0fhrv9uwvbfignVBNn0yw50CYbHCMuGzgvMAw5Lza','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','uefhrv9tsvPf','DxnLtwvZC2fNzxmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','yxnZAxn0yw50','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','vvnfuG','tufyx01fu1nbr0vFtevor1ri','quDftLrFtu9erv9dsefor0ve','mtyXotmYmtbYzgXWq3O','DxnLCI1TzxnZywDL','Dg9czq','ndGYnJG5mMfVDNvrBq','C3LZDgvTlw5VDgLMAwnHDgLVBG','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','vvnfuL9nrvntquDf','mZnOsKLAte0','Dg9czuXLC3nuAgfUt3jfCxvHBa','mJK0mJG3y1zWCxPi','Dg9czurLzMLUzwq','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','twvZC2fNzvjVDxrLCG','Dg9nyxrJAa','mNfgCvDtvq','mZb4u0frq2u','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','Bg9JywXOB3n0','tuvtu0fhrv9brerfra','t3jJAgvZDhjHDg9YigvUzhbVAw50ignHBIbIzsb1C2vKigzVCIbTzxnZywDLig9WzxjHDgLVBNm','uefhsu5bveLptIbZDxbWB3j0CYbVzMzZzxqTyMfZzwqGCgfNAw5HDgLVBG','ndm5mdq1y093t2Lz','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','tuvtu0fhrv9st0Xf','lI4VlI4VyxbPl3nLC3nPB24UANm','BNvTyMvY','u1Ltvevn','Dg9czuDYzwf0zxjuAgfU','twvZC2fNzsbnyw5Hz2vTzw50ic0GqvbjievUzhbVAw50CYbwywXPzgf0Aw9U','tuvtu0fhrv9dt05gsuC','l2fWAs9VCMnOzxn0CMf0B3i','mta1ntq5ndHkyMHbCMK','zgvMyxvSDa','tuvtu0fhrv9uwvbf','mtiWotyZr0PmveTU','C3LZDgvT','tufyx01fu1nbr0vtx0rju1bmqvK','u1Ltvevnx05pveLgsunbveLptG','BwvZC2fNzv9HzgrLza','mtmYotC0nwfUtM1nwa','mJy0t01Rq2Pm','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm'];a0_0x5c88=function(){return _0x5ad14e;};return a0_0x5c88();}(function(_0x2b7519,_0x404e09){const _0x2e52bd=a0_0x4879,_0x1e6dab=_0x2b7519();while(!![]){try{const _0x3b4045=parseInt(_0x2e52bd(0x1d8))/0x1+-parseInt(_0x2e52bd(0x1d1))/0x2*(-parseInt(_0x2e52bd(0x1e5))/0x3)+parseInt(_0x2e52bd(0x1c6))/0x4+-parseInt(_0x2e52bd(0x1ea))/0x5*(-parseInt(_0x2e52bd(0x1d2))/0x6)+-parseInt(_0x2e52bd(0x1cc))/0x7*(-parseInt(_0x2e52bd(0x1eb))/0x8)+parseInt(_0x2e52bd(0x1e2))/0x9+-parseInt(_0x2e52bd(0x1c3))/0xa*(parseInt(_0x2e52bd(0x1ca))/0xb);if(_0x3b4045===_0x404e09)break;else _0x1e6dab['push'](_0x1e6dab['shift']());}catch(_0x372282){_0x1e6dab['push'](_0x1e6dab['shift']());}}}(a0_0x5c88,0xaf4ac));import{describe,test,expect}from'@jest/globals';function a0_0x4879(_0x14ea5b,_0x15bed9){_0x14ea5b=_0x14ea5b-0x1ad;const _0x5c88fe=a0_0x5c88();let _0x4879a4=_0x5c88fe[_0x14ea5b];if(a0_0x4879['dLlhBc']===undefined){var _0x5316c9=function(_0x406e67){const _0x4ea551='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x38995c='',_0x4a90a8='';for(let _0x31d02e=0x0,_0x32868e,_0x2979ff,_0x5c05ae=0x0;_0x2979ff=_0x406e67['charAt'](_0x5c05ae++);~_0x2979ff&&(_0x32868e=_0x31d02e%0x4?_0x32868e*0x40+_0x2979ff:_0x2979ff,_0x31d02e++%0x4)?_0x38995c+=String['fromCharCode'](0xff&_0x32868e>>(-0x2*_0x31d02e&0x6)):0x0){_0x2979ff=_0x4ea551['indexOf'](_0x2979ff);}for(let _0x337acd=0x0,_0x8ee0c9=_0x38995c['length'];_0x337acd<_0x8ee0c9;_0x337acd++){_0x4a90a8+='%'+('00'+_0x38995c['charCodeAt'](_0x337acd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4a90a8);};a0_0x4879['gmTXhf']=_0x5316c9,a0_0x4879['imxVXl']={},a0_0x4879['dLlhBc']=!![];}const _0x34febc=_0x5c88fe[0x0],_0x304134=_0x14ea5b+_0x34febc,_0x413d71=a0_0x4879['imxVXl'][_0x304134];return!_0x413d71?(_0x4879a4=a0_0x4879['gmTXhf'](_0x4879a4),a0_0x4879['imxVXl'][_0x304134]=_0x4879a4):_0x4879a4=_0x413d71,_0x4879a4;}describe(a0_0x35d151(0x1c8),()=>{test('useMessages hook can be imported',async()=>{const _0x5a691d=a0_0x4879,{useMessages:_0x38995c}=await import('../../state/useMessages.js');expect(_0x38995c)['toBeDefined'](),expect(typeof _0x38995c)['toBe'](_0x5a691d(0x1b1));}),test('useMessages is default export',async()=>{const _0x40c808=a0_0x4879,module=await import('../../state/useMessages.js');expect(module[_0x40c808(0x1e3)])['toBeDefined'](),expect(typeof module[_0x40c808(0x1e3)])[_0x40c808(0x1c5)](_0x40c808(0x1b1)),expect(module[_0x40c808(0x1e3)])[_0x40c808(0x1c5)](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x153921=a0_0x4879,{useMessageCount:_0x4a90a8}=await import('../../state/useMessages.js');expect(_0x4a90a8)['toBeDefined'](),expect(typeof _0x4a90a8)[_0x153921(0x1c5)]('function');});}),describe(a0_0x35d151(0x1bf),()=>{const _0x5e54ed=a0_0x35d151;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x25bf13=a0_0x4879,{MESSAGE_ROLE:_0x31d02e}=await import(_0x25bf13(0x1d3));expect(_0x31d02e)['toBeDefined'](),expect(_0x31d02e['USER'])[_0x25bf13(0x1c5)](_0x25bf13(0x1b9)),expect(_0x31d02e['ASSISTANT'])[_0x25bf13(0x1c5)](_0x25bf13(0x1be)),expect(_0x31d02e['SYSTEM'])[_0x25bf13(0x1c5)](_0x25bf13(0x1e6));}),test(_0x5e54ed(0x1ba),async()=>{const _0x2867ee=_0x5e54ed,{MESSAGE_TYPE:_0x32868e}=await import(_0x2867ee(0x1d3));expect(_0x32868e)['toBeDefined'](),expect(_0x32868e[_0x2867ee(0x1c9)])['toBe'](_0x2867ee(0x1c4)),expect(_0x32868e[_0x2867ee(0x1b5)])[_0x2867ee(0x1c5)]('agent-response'),expect(_0x32868e[_0x2867ee(0x1e8)])['toBe'](_0x2867ee(0x1c7));}),test(_0x5e54ed(0x1ae),async()=>{const _0x4e568b=_0x5e54ed,{MESSAGE_CONFIG:_0x2979ff}=await import(_0x4e568b(0x1d3));expect(_0x2979ff)[_0x4e568b(0x1cd)](),expect(_0x2979ff['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(_0x2979ff[_0x4e568b(0x1e7)])[_0x4e568b(0x1cd)](),expect(typeof _0x2979ff[_0x4e568b(0x1c1)])[_0x4e568b(0x1c5)](_0x4e568b(0x1dc)),expect(typeof _0x2979ff['MAX_MESSAGES_DISPLAY'])[_0x4e568b(0x1c5)]('number');}),test(_0x5e54ed(0x1b8),async()=>{const _0x2790ef=_0x5e54ed,{PAGINATION:_0x5c05ae}=await import(_0x2790ef(0x1d3));expect(_0x5c05ae)[_0x2790ef(0x1cd)](),expect(_0x5c05ae['PAGE_SIZE'])['toBeDefined'](),expect(_0x5c05ae[_0x2790ef(0x1af)])[_0x2790ef(0x1cd)](),expect(typeof _0x5c05ae['PAGE_SIZE'])[_0x2790ef(0x1c5)](_0x2790ef(0x1dc)),expect(typeof _0x5c05ae[_0x2790ef(0x1af)])[_0x2790ef(0x1c5)](_0x2790ef(0x1dc));}),test('WS_MESSAGE_TYPE\x20includes\x20message\x20events',async()=>{const _0x419bfd=_0x5e54ed,{WS_MESSAGE_TYPE:_0x337acd}=await import('../../config/constants.js');expect(_0x337acd)['toBeDefined'](),expect(_0x337acd[_0x419bfd(0x1d5)])[_0x419bfd(0x1c5)](_0x419bfd(0x1e9)),expect(_0x337acd[_0x419bfd(0x1c2)])['toBe']('agent_mode_changed'),expect(_0x337acd['EXECUTION_STOPPED'])[_0x419bfd(0x1c5)](_0x419bfd(0x1b4));});}),describe('Message\x20Management\x20-\x20Integration',()=>{const _0x322149=a0_0x35d151;test(_0x322149(0x1bd),async()=>{const _0x3a01bd=_0x322149,{useMessages:_0x8ee0c9}=await import('../../state/useMessages.js'),{SessionManager:_0x3f99ce}=await import('../../api/session.js'),{MessageRouter:_0x2f76b0}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x273eb3}=await import('../../api/websocket.js'),_0x5dcce0=new _0x3f99ce('localhost',0x1f90),_0xc175d3=new _0x273eb3('localhost',0x1f90),_0x31e502=new _0x2f76b0(_0xc175d3);expect(_0x5dcce0)['toBeDefined'](),expect(_0x31e502)[_0x3a01bd(0x1cd)](),expect(typeof _0x8ee0c9)[_0x3a01bd(0x1c5)](_0x3a01bd(0x1b1));}),test('Full message management stack can be imported together',async()=>{const _0x151751=_0x322149,[_0x2ae9eb,_0x18c95c,_0x3eb0f2,_0x231424,_0x216c9c]=await Promise['all']([import(_0x151751(0x1d3)),import(_0x151751(0x1db)),import(_0x151751(0x1bb)),import(_0x151751(0x1d9)),import('../../state/useMessages.js')]);expect(_0x2ae9eb[_0x151751(0x1da)])['toBeDefined'](),expect(_0x2ae9eb[_0x151751(0x1e4)])[_0x151751(0x1cd)](),expect(_0x2ae9eb[_0x151751(0x1e0)])['toBeDefined'](),expect(_0x18c95c['SessionManager'])[_0x151751(0x1cd)](),expect(_0x3eb0f2['WebSocketManager'])[_0x151751(0x1cd)](),expect(_0x231424[_0x151751(0x1cf)])['toBeDefined'](),expect(_0x216c9c['useMessages'])['toBeDefined']();});}),describe(a0_0x35d151(0x1df),()=>{const _0x4cf324=a0_0x35d151;test(_0x4cf324(0x1d6),async()=>{const _0x3e6067=_0x4cf324,{API_ENDPOINTS:_0x48a856}=await import(_0x3e6067(0x1d3));expect(_0x48a856[_0x3e6067(0x1b0)])[_0x3e6067(0x1cd)](),expect(_0x48a856[_0x3e6067(0x1b0)])['toBe'](_0x3e6067(0x1e1));}),test(_0x4cf324(0x1b7),async()=>{const _0x7e835=_0x4cf324,{API_ENDPOINTS:_0x482444}=await import('../../config/constants.js');expect(_0x482444[_0x7e835(0x1b0)])[_0x7e835(0x1d0)](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x5bfea8=a0_0x4879,{useMessages:_0x5292ce}=await import(_0x5bfea8(0x1ec));expect(_0x5292ce[_0x5bfea8(0x1b2)])[_0x5bfea8(0x1c5)](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x5692e3=a0_0x4879,{useMessageCount:_0x417b3d}=await import('../../state/useMessages.js');expect(_0x417b3d[_0x5692e3(0x1b2)])[_0x5692e3(0x1c5)](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x38ae50=a0_0x4879,{MESSAGE_CONFIG:_0x219510}=await import(_0x38ae50(0x1d3));expect(_0x219510['MAX_MESSAGE_LENGTH'])['toBeGreaterThan'](0x0),expect(_0x219510['MAX_MESSAGE_LENGTH'])[_0x38ae50(0x1cb)](0x186a0),expect(_0x219510[_0x38ae50(0x1e7)])[_0x38ae50(0x1de)](0x0),expect(_0x219510['MAX_MESSAGES_DISPLAY'])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x2c5bb6=a0_0x4879,{PAGINATION:_0x1a8b73}=await import('../../config/constants.js');expect(_0x1a8b73['PAGE_SIZE'])[_0x2c5bb6(0x1de)](0x0),expect(_0x1a8b73['PAGE_SIZE'])['toBeLessThanOrEqual'](0x3e8),expect(_0x1a8b73[_0x2c5bb6(0x1af)])['toBeGreaterThanOrEqual'](_0x1a8b73['PAGE_SIZE']);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x4a381e=a0_0x4879,{MESSAGE_ROLE:_0x32000e}=await import(_0x4a381e(0x1d3));expect(_0x32000e['USER'])['toBe'](_0x32000e[_0x4a381e(0x1c0)][_0x4a381e(0x1b6)]()),expect(_0x32000e[_0x4a381e(0x1ad)])['toBe'](_0x32000e['ASSISTANT'][_0x4a381e(0x1b6)]()),expect(_0x32000e['SYSTEM'])[_0x4a381e(0x1c5)](_0x32000e[_0x4a381e(0x1dd)]['toLowerCase']());});}),describe('Message\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{const _0x4cf016=a0_0x35d151;test(_0x4cf016(0x1b3),async()=>{const _0x451f1f=_0x4cf016,{MessageRouter:_0x2fc6fb}=await import(_0x451f1f(0x1d9)),{WebSocketManager:_0xf15a54}=await import(_0x451f1f(0x1bb)),{WS_MESSAGE_TYPE:_0xa2d45b}=await import('../../config/constants.js'),_0x28fe5b=new _0xf15a54(_0x451f1f(0x1d4),0x1f90),_0xa74c5e=new _0x2fc6fb(_0x28fe5b);expect(_0xa74c5e['hasHandler'](_0xa2d45b[_0x451f1f(0x1d5)]))[_0x451f1f(0x1c5)](!![]),expect(_0xa74c5e['hasHandler'](_0xa2d45b['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe('Message\x20Management\x20-\x20Error\x20Handling',()=>{test('MESSAGE_CONFIG\x20enforces\x20maximum\x20message\x20length',async()=>{const _0x545b19=a0_0x4879,{MESSAGE_CONFIG:_0x2ad4d1}=await import('../../config/constants.js');expect(_0x2ad4d1['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(typeof _0x2ad4d1['MAX_MESSAGE_LENGTH'])[_0x545b19(0x1c5)](_0x545b19(0x1dc));const _0x2271cb='a'['repeat'](_0x2ad4d1[_0x545b19(0x1c1)]+0x1);expect(_0x2271cb['length'])['toBeGreaterThan'](_0x2ad4d1[_0x545b19(0x1c1)]);}),test('MESSAGE_CONFIG\x20enforces\x20maximum\x20display\x20messages',async()=>{const _0x5509ca=a0_0x4879,{MESSAGE_CONFIG:_0x452af9}=await import(_0x5509ca(0x1d3));expect(_0x452af9['MAX_MESSAGES_DISPLAY'])['toBeDefined'](),expect(typeof _0x452af9['MAX_MESSAGES_DISPLAY'])['toBe']('number'),expect(_0x452af9['MAX_MESSAGES_DISPLAY'])[_0x5509ca(0x1de)](0x0);});}),describe(a0_0x35d151(0x1ce),()=>{const _0x2c7911=a0_0x35d151;test(_0x2c7911(0x1d7),async()=>{const _0x5434b3=_0x2c7911,{PAGINATION:_0x1217b5}=await import(_0x5434b3(0x1d3)),_0x29cb14=0x0,_0x19c5e1=_0x29cb14*_0x1217b5[_0x5434b3(0x1bc)];expect(_0x19c5e1)[_0x5434b3(0x1c5)](0x0);const _0xe42031=0x1,_0x1c9896=_0xe42031*_0x1217b5[_0x5434b3(0x1bc)];expect(_0x1c9896)[_0x5434b3(0x1c5)](_0x1217b5['PAGE_SIZE']);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0xdb3ee2=_0x2c7911,{PAGINATION:_0x57bae4}=await import('../../config/constants.js'),_0x59baab=0x3e8,_0x2dc865=Math['min'](_0x59baab,_0x57bae4['MAX_PAGE_SIZE']);expect(_0x2dc865)[_0xdb3ee2(0x1cb)](_0x57bae4['MAX_PAGE_SIZE']);});});
1
+ function a0_0x5d20(_0x2701f8,_0x582825){_0x2701f8=_0x2701f8-0x1bf;const _0xfd882d=a0_0xfd88();let _0x5d20c2=_0xfd882d[_0x2701f8];if(a0_0x5d20['SywkFY']===undefined){var _0x5c42c3=function(_0x51bf8d){const _0xfa5ffc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4dbcf4='',_0x582707='';for(let _0x254353=0x0,_0x1e44ff,_0x43b211,_0x499b88=0x0;_0x43b211=_0x51bf8d['charAt'](_0x499b88++);~_0x43b211&&(_0x1e44ff=_0x254353%0x4?_0x1e44ff*0x40+_0x43b211:_0x43b211,_0x254353++%0x4)?_0x4dbcf4+=String['fromCharCode'](0xff&_0x1e44ff>>(-0x2*_0x254353&0x6)):0x0){_0x43b211=_0xfa5ffc['indexOf'](_0x43b211);}for(let _0x4b0142=0x0,_0x2e34ea=_0x4dbcf4['length'];_0x4b0142<_0x2e34ea;_0x4b0142++){_0x582707+='%'+('00'+_0x4dbcf4['charCodeAt'](_0x4b0142)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x582707);};a0_0x5d20['TgUVAe']=_0x5c42c3,a0_0x5d20['gCCEdv']={},a0_0x5d20['SywkFY']=!![];}const _0x310275=_0xfd882d[0x0],_0x5c7631=_0x2701f8+_0x310275,_0x10eeb1=a0_0x5d20['gCCEdv'][_0x5c7631];return!_0x10eeb1?(_0x5d20c2=a0_0x5d20['TgUVAe'](_0x5d20c2),a0_0x5d20['gCCEdv'][_0x5c7631]=_0x5d20c2):_0x5d20c2=_0x10eeb1,_0x5d20c2;}const a0_0x1cf805=a0_0x5d20;function a0_0xfd88(){const _0x3a261c=['nJKXmtbOwK1SuKy','yxnZAxn0yw50','quDftLrFuKvtue9ou0u','oteWnJi5EvPfz0XI','lI4VlI4VyxbPl3nLC3nPB24UANm','oe5kBxberG','AgfZsgfUzgXLCG','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','C3LZDgvT','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','DxnLtwvZC2fNzxmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','Dg9czurLzMLUzwq','uefhrv9tsvPf','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','tuvtu0fhrv9brerfra','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','mJK4mZHqre5zu2W','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbKAxnWBgf5ig1LC3nHz2vZ','Dg9czuXLC3nuAgfUt3jfCxvHBa','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','Dg9mB3DLCKnHC2u','ywXS','mte3mZiYmLDutLrTCq','qvntsvnuqu5u','tuvtu0fhrv9st0XfignVBNn0yw50CYbHCMuGzgvMAw5Lza','rvHfq1vusu9ox1nut1bqruq','ntu3oujtsvrmua','tufyx1bbr0vFu0LArq','twvZC2fNzsbnyw5Hz2vTzw50ic0GrxjYB3iGsgfUzgXPBMC','DxnLtwvZC2fNzxm','u1Ltvevn','Bg9JywXOB3n0','BgvUz3rO','ywDLBNqTCMvZCg9UC2u','CMvWzwf0','odrxEhzvDMK','Dg9czuDYzwf0zxjuAgfU','tuvtu0fhrv9uwvbf','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','tufyx01fu1nbr0vtx0rju1bmqvK','zgvMyxvSDa','C3LZDgvTlw5VDgLMAwnHDgLVBG','tufyx01fu1nbr0vFtevor1ri','u1Ltvevnx05pveLgsunbveLptG','zxHLy3v0Aw9Ux3n0B3bWzwq','DxnLtwvZC2fNzxmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','zNvUy3rPB24','mteYmdq0nZLvB2T3y1O','v2vIu29JA2v0twfUywDLCG','mtaWotmWzxHtvfjS','Dg9czq','vvnfuL9nrvntquDf','uefhsu5bveLptIbSAw1PDcbKB2vZig5VDcbLEgnLzwqGtufyx1bbr0vFu0LArq','u2vZC2LVBK1HBMfNzxi','vvnfuG','mZu3nKz1vLLhEa','t1jdsevtvfjbve9s','BNvTyMvY','twvZC2fNzsbnyw5Hz2vTzw50ic0GqvbjievUzhbVAw50CYbwywXPzgf0Aw9U','mJK3yw9qs29e','twvZC2fNzsbbueKGzw5KCg9PBNrZigzVBgXVDYbsrvnuzNvSihbHDhrLCM4','tuvtu0fhrv9dt05gsuC'];a0_0xfd88=function(){return _0x3a261c;};return a0_0xfd88();}(function(_0x1ae77f,_0x20b9de){const _0x428c28=a0_0x5d20,_0xa4fe3b=_0x1ae77f();while(!![]){try{const _0x57f9b4=parseInt(_0x428c28(0x1fe))/0x1*(parseInt(_0x428c28(0x1f2))/0x2)+-parseInt(_0x428c28(0x1f0))/0x3+-parseInt(_0x428c28(0x1d1))/0x4*(-parseInt(_0x428c28(0x1ed))/0x5)+-parseInt(_0x428c28(0x1c4))/0x6+parseInt(_0x428c28(0x1c8))/0x7*(-parseInt(_0x428c28(0x1e6))/0x8)+parseInt(_0x428c28(0x1ea))/0x9*(-parseInt(_0x428c28(0x1e0))/0xa)+parseInt(_0x428c28(0x1de))/0xb;if(_0x57f9b4===_0x20b9de)break;else _0xa4fe3b['push'](_0xa4fe3b['shift']());}catch(_0x3ba4a1){_0xa4fe3b['push'](_0xa4fe3b['shift']());}}}(a0_0xfd88,0x3a8b3));import{describe,test,expect}from'@jest/globals';describe('Message\x20Management\x20-\x20Imports',()=>{test('useMessages hook can be imported',async()=>{const _0x36dcb9=a0_0x5d20,{useMessages:_0x4dbcf4}=await import(_0x36dcb9(0x1fd));expect(_0x4dbcf4)[_0x36dcb9(0x1f9)](),expect(typeof _0x4dbcf4)['toBe'](_0x36dcb9(0x1dd));}),test('useMessages is default export',async()=>{const _0x117c7a=a0_0x5d20,module=await import(_0x117c7a(0x1fd));expect(module['default'])[_0x117c7a(0x1f9)](),expect(typeof module['default'])['toBe']('function'),expect(module[_0x117c7a(0x1d6)])['toBe'](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x1a8a15=a0_0x5d20,{useMessageCount:_0x582707}=await import('../../state/useMessages.js');expect(_0x582707)[_0x1a8a15(0x1f9)](),expect(typeof _0x582707)[_0x1a8a15(0x1e1)](_0x1a8a15(0x1dd));});}),describe('Message\x20Management\x20-\x20Constants',()=>{const _0x29b061=a0_0x5d20;test(_0x29b061(0x1c6),async()=>{const _0x1b5852=_0x29b061,{MESSAGE_ROLE:_0x254353}=await import('../../config/constants.js');expect(_0x254353)[_0x1b5852(0x1f9)](),expect(_0x254353[_0x1b5852(0x1e5)])['toBe']('user'),expect(_0x254353['ASSISTANT'])['toBe'](_0x1b5852(0x1ee)),expect(_0x254353['SYSTEM'])['toBe'](_0x1b5852(0x1f6));}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x5856b6=_0x29b061,{MESSAGE_TYPE:_0x1e44ff}=await import('../../config/constants.js');expect(_0x1e44ff)[_0x5856b6(0x1f9)](),expect(_0x1e44ff[_0x5856b6(0x1e2)])['toBe']('user-message'),expect(_0x1e44ff[_0x5856b6(0x1ef)])['toBe'](_0x5856b6(0x1cf)),expect(_0x1e44ff[_0x5856b6(0x1d9)])['toBe'](_0x5856b6(0x1d7));}),test('MESSAGE_CONFIG\x20constants\x20are\x20defined',async()=>{const _0x126422=_0x29b061,{MESSAGE_CONFIG:_0x43b211}=await import('../../config/constants.js');expect(_0x43b211)[_0x126422(0x1f9)](),expect(_0x43b211[_0x126422(0x1d8)])['toBeDefined'](),expect(_0x43b211['MAX_MESSAGES_DISPLAY'])['toBeDefined'](),expect(typeof _0x43b211['MAX_MESSAGE_LENGTH'])[_0x126422(0x1e1)]('number'),expect(typeof _0x43b211['MAX_MESSAGES_DISPLAY'])['toBe'](_0x126422(0x1e8));}),test('PAGINATION\x20constants\x20are\x20defined',async()=>{const _0x19b471=_0x29b061,{PAGINATION:_0x499b88}=await import(_0x19b471(0x1dc));expect(_0x499b88)['toBeDefined'](),expect(_0x499b88[_0x19b471(0x1fa)])[_0x19b471(0x1f9)](),expect(_0x499b88[_0x19b471(0x1c9)])[_0x19b471(0x1f9)](),expect(typeof _0x499b88[_0x19b471(0x1fa)])[_0x19b471(0x1e1)](_0x19b471(0x1e8)),expect(typeof _0x499b88[_0x19b471(0x1c9)])[_0x19b471(0x1e1)](_0x19b471(0x1e8));}),test(_0x29b061(0x1c1),async()=>{const _0x5eba9a=_0x29b061,{WS_MESSAGE_TYPE:_0x4b0142}=await import(_0x5eba9a(0x1dc));expect(_0x4b0142)[_0x5eba9a(0x1f9)](),expect(_0x4b0142['MESSAGE_ADDED'])[_0x5eba9a(0x1e1)]('message_added'),expect(_0x4b0142['AGENT_MODE_CHANGED'])['toBe']('agent_mode_changed'),expect(_0x4b0142[_0x5eba9a(0x1c7)])['toBe'](_0x5eba9a(0x1da));});}),describe('Message\x20Management\x20-\x20Integration',()=>{const _0x415413=a0_0x5d20;test(_0x415413(0x1f8),async()=>{const _0x36ad6c=_0x415413,{useMessages:_0x2e34ea}=await import('../../state/useMessages.js'),{SessionManager:_0x380ccd}=await import('../../api/session.js'),{MessageRouter:_0x1cbd8f}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1b28d2}=await import('../../api/websocket.js'),_0x2770ed=new _0x380ccd(_0x36ad6c(0x1cd),0x1f90),_0x4a6fc1=new _0x1b28d2('localhost',0x1f90),_0x72f925=new _0x1cbd8f(_0x4a6fc1);expect(_0x2770ed)[_0x36ad6c(0x1f9)](),expect(_0x72f925)['toBeDefined'](),expect(typeof _0x2e34ea)[_0x36ad6c(0x1e1)](_0x36ad6c(0x1dd));}),test('Full message management stack can be imported together',async()=>{const _0x36abc7=_0x415413,[_0x3da4eb,_0x2c6879,_0xa77578,_0x1a1254,_0x5aaf07]=await Promise[_0x36abc7(0x1c3)]([import(_0x36abc7(0x1dc)),import(_0x36abc7(0x1f1)),import(_0x36abc7(0x1f5)),import(_0x36abc7(0x1f4)),import('../../state/useMessages.js')]);expect(_0x3da4eb['MESSAGE_ROLE'])['toBeDefined'](),expect(_0x3da4eb[_0x36abc7(0x1d3)])[_0x36abc7(0x1f9)](),expect(_0x3da4eb[_0x36abc7(0x1ec)])['toBeDefined'](),expect(_0x2c6879[_0x36abc7(0x1e4)])['toBeDefined'](),expect(_0xa77578[_0x36abc7(0x1df)])['toBeDefined'](),expect(_0x1a1254['MessageRouter'])['toBeDefined'](),expect(_0x5aaf07[_0x36abc7(0x1cb)])['toBeDefined']();});}),describe(a0_0x1cf805(0x1e9),()=>{const _0x142a33=a0_0x1cf805;test('Orchestrator\x20endpoint\x20can\x20be\x20used\x20for\x20message\x20operations',async()=>{const _0x4fae9c=a0_0x5d20,{API_ENDPOINTS:_0x8bd3c4}=await import(_0x4fae9c(0x1dc));expect(_0x8bd3c4['ORCHESTRATOR'])['toBeDefined'](),expect(_0x8bd3c4[_0x4fae9c(0x1e7)])[_0x4fae9c(0x1e1)]('/api/orchestrator');}),test(_0x142a33(0x1eb),async()=>{const _0x377ecd=_0x142a33,{API_ENDPOINTS:_0x1ddce9}=await import(_0x377ecd(0x1dc));expect(_0x1ddce9['ORCHESTRATOR'])['toMatch'](/^\/api\//);});}),describe(a0_0x1cf805(0x1d4),()=>{const _0x1071bf=a0_0x1cf805;test(_0x1071bf(0x1db),async()=>{const _0x4fb982=_0x1071bf,{useMessages:_0x526112}=await import('../../state/useMessages.js');expect(_0x526112[_0x4fb982(0x1ce)])[_0x4fb982(0x1e1)](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x5db3b0=_0x1071bf,{useMessageCount:_0x527111}=await import(_0x5db3b0(0x1fd));expect(_0x527111['length'])['toBe'](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x235b2e=a0_0x5d20,{MESSAGE_CONFIG:_0x5a97b6}=await import('../../config/constants.js');expect(_0x5a97b6['MAX_MESSAGE_LENGTH'])[_0x235b2e(0x1d2)](0x0),expect(_0x5a97b6[_0x235b2e(0x1d8)])[_0x235b2e(0x1c0)](0x186a0),expect(_0x5a97b6['MAX_MESSAGES_DISPLAY'])[_0x235b2e(0x1d2)](0x0),expect(_0x5a97b6['MAX_MESSAGES_DISPLAY'])[_0x235b2e(0x1c0)](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x38313f=a0_0x5d20,{PAGINATION:_0x280d38}=await import(_0x38313f(0x1dc));expect(_0x280d38['PAGE_SIZE'])['toBeGreaterThan'](0x0),expect(_0x280d38[_0x38313f(0x1fa)])['toBeLessThanOrEqual'](0x3e8),expect(_0x280d38[_0x38313f(0x1c9)])[_0x38313f(0x1f7)](_0x280d38['PAGE_SIZE']);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x43911e=a0_0x5d20,{MESSAGE_ROLE:_0x15c712}=await import(_0x43911e(0x1dc));expect(_0x15c712['USER'])[_0x43911e(0x1e1)](_0x15c712['USER']['toLowerCase']()),expect(_0x15c712['ASSISTANT'])[_0x43911e(0x1e1)](_0x15c712[_0x43911e(0x1c5)][_0x43911e(0x1c2)]()),expect(_0x15c712[_0x43911e(0x1cc)])[_0x43911e(0x1e1)](_0x15c712['SYSTEM'][_0x43911e(0x1c2)]());});}),describe('Message\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0x5601f1=a0_0x5d20,{MessageRouter:_0x18c479}=await import(_0x5601f1(0x1f4)),{WebSocketManager:_0x3f3a9d}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x743234}=await import(_0x5601f1(0x1dc)),_0xcc224c=new _0x3f3a9d('localhost',0x1f90),_0x2702e6=new _0x18c479(_0xcc224c);expect(_0x2702e6[_0x5601f1(0x1f3)](_0x743234[_0x5601f1(0x1fc)]))['toBe'](!![]),expect(_0x2702e6[_0x5601f1(0x1f3)](_0x743234['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe(a0_0x1cf805(0x1ca),()=>{const _0x6218ec=a0_0x1cf805;test('MESSAGE_CONFIG\x20enforces\x20maximum\x20message\x20length',async()=>{const _0x38b90d=a0_0x5d20,{MESSAGE_CONFIG:_0x556838}=await import('../../config/constants.js');expect(_0x556838['MAX_MESSAGE_LENGTH'])[_0x38b90d(0x1f9)](),expect(typeof _0x556838['MAX_MESSAGE_LENGTH'])['toBe']('number');const _0x40b7f7='a'[_0x38b90d(0x1d0)](_0x556838['MAX_MESSAGE_LENGTH']+0x1);expect(_0x40b7f7[_0x38b90d(0x1ce)])['toBeGreaterThan'](_0x556838[_0x38b90d(0x1d8)]);}),test(_0x6218ec(0x1bf),async()=>{const _0x5462f1=_0x6218ec,{MESSAGE_CONFIG:_0x52af37}=await import('../../config/constants.js');expect(_0x52af37['MAX_MESSAGES_DISPLAY'])[_0x5462f1(0x1f9)](),expect(typeof _0x52af37['MAX_MESSAGES_DISPLAY'])[_0x5462f1(0x1e1)]('number'),expect(_0x52af37[_0x5462f1(0x1d5)])[_0x5462f1(0x1d2)](0x0);});}),describe(a0_0x1cf805(0x1fb),()=>{const _0x2be6b4=a0_0x1cf805;test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x1393fd=a0_0x5d20,{PAGINATION:_0x64a3b2}=await import(_0x1393fd(0x1dc)),_0x1d5507=0x0,_0x4e0e58=_0x1d5507*_0x64a3b2['PAGE_SIZE'];expect(_0x4e0e58)[_0x1393fd(0x1e1)](0x0);const _0x181560=0x1,_0x17fe83=_0x181560*_0x64a3b2[_0x1393fd(0x1fa)];expect(_0x17fe83)[_0x1393fd(0x1e1)](_0x64a3b2[_0x1393fd(0x1fa)]);}),test(_0x2be6b4(0x1e3),async()=>{const _0x4505f4=_0x2be6b4,{PAGINATION:_0x4f0020}=await import('../../config/constants.js'),_0x31b54c=0x3e8,_0x5b39ca=Math['min'](_0x31b54c,_0x4f0020[_0x4505f4(0x1c9)]);expect(_0x5b39ca)['toBeLessThanOrEqual'](_0x4f0020[_0x4505f4(0x1c9)]);});});
@@ -1 +1 @@
1
- function a0_0x2327(_0x5b5d62,_0x1922b7){_0x5b5d62=_0x5b5d62-0x1d1;const _0x46eb15=a0_0x46eb();let _0x2327c3=_0x46eb15[_0x5b5d62];if(a0_0x2327['OHzWoJ']===undefined){var _0x4b7139=function(_0x43cabe){const _0x1c3d0f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f9aed='',_0x195e40='';for(let _0x383d10=0x0,_0x35bf26,_0x340e51,_0x3108cd=0x0;_0x340e51=_0x43cabe['charAt'](_0x3108cd++);~_0x340e51&&(_0x35bf26=_0x383d10%0x4?_0x35bf26*0x40+_0x340e51:_0x340e51,_0x383d10++%0x4)?_0x2f9aed+=String['fromCharCode'](0xff&_0x35bf26>>(-0x2*_0x383d10&0x6)):0x0){_0x340e51=_0x1c3d0f['indexOf'](_0x340e51);}for(let _0x13e248=0x0,_0x7d6d9=_0x2f9aed['length'];_0x13e248<_0x7d6d9;_0x13e248++){_0x195e40+='%'+('00'+_0x2f9aed['charCodeAt'](_0x13e248)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x195e40);};a0_0x2327['uNWdRY']=_0x4b7139,a0_0x2327['PxhuYV']={},a0_0x2327['OHzWoJ']=!![];}const _0x24043d=_0x46eb15[0x0],_0x2e6990=_0x5b5d62+_0x24043d,_0x1d3a6d=a0_0x2327['PxhuYV'][_0x2e6990];return!_0x1d3a6d?(_0x2327c3=a0_0x2327['uNWdRY'](_0x2327c3),a0_0x2327['PxhuYV'][_0x2e6990]=_0x2327c3):_0x2327c3=_0x1d3a6d,_0x2327c3;}function a0_0x46eb(){const _0x2a11c0=['C3vJy2vZCW','l2fWAs90B29SCW','mJu3nZuXnKffrKXkqG','Dg9czq','yw5HBhL6zv9JB2rL','BgvUz3rO','vg9VBcbYzxn1BhrZignHBIbIzsbZDg9YzwqGyNKGzxHLy3v0Aw9UieLe','y2f0zwDVCNK','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','vg9VBhmGtwfUywDLBwvUDcaTifDLyLnVy2TLDcbfDMvUDcbiyw5KBgvYCW','Dg9nyxrJAa','DxnLvg9VBhmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','vg9VBhmGtwfUywDLBwvUDcaTieLTCg9YDhm','ugvYzM9YBsbZDgf0AwmGy29KzsbHBMfSExnPCW','D3jPDgvFzMLSzq','AgfZ','u2vZC2LVBK1HBMfNzxi','zMLSzsbJB250zw50CW','otGZmJeZAKPzv3bP','v3jPDguGzgf0ysb0BYbHigzPBgu','ve9ptf9dqvrfr09swsb2ywX1zxmGBwf0y2GGzxHWzwn0zwqGzM9YBwf0','A2v5CW','Dg9czurLzMLUzwq','rxHLy3v0Aw9Uihn0yxrLignHBIb0CMfJAYbTDwX0AxbSzsb0B29SCW','yw5HBhL6zq','zw5HyMXLza','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2f0zwDVCML6yxrPB24','ve9ptfm','D2vIx3nLyxjJAa','Dg9dB250ywLU','zxHLyY0Y','BwfW','mJeYmdu2nunhA1v0Aq','z2v0','BM93','qvvut01bveLptG','ndqWmJuWmffzzLHPBa','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','vvrjteLuwq','vg9VBhmGtwfUywDLBwvUDcaTienHDgvNB3j5ienVDw50CW','DxnLvg9VBhmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','zxHLy3v0zv9JB21Tyw5K','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','zgvZy3jPChrPB24','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','zNvUy3rPB24','BMfTzq','C2v0','odaZodGYnevvAxPxrG','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGu2vHCMnO','l2fWAs9VCMnOzxn0CMf0B3i','t3jJAgvZDhjHDg9YigvUzhbVAw50igLZihvZzwqGzM9YihrVB2WGB3bLCMf0Aw9UCW','vg9VBhmGtwfUywDLBwvUDcaTieHVB2SGsw50zxjMywnLifzLCMLMAwnHDgLVBG','vg9VBhmGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG','mZy4ntmWofnIDuL1Eq','zMLSDgvY','DxnLvg9VBhm','ve9ptf9dqvrfr09swsb2ywX1zxmGyxjLigXVD2vYy2fZzq','Bg9JywXOB3n0','AxnZDwvZ','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','DgvYBwLUywW','C2L6zq','Dg9mB3DLCKnHC2u','u1Ltvevn','zxHLyY0X','lI4VlI4VyxbPl3nLC3nPB24UANm','twvZC2fNzvjVDxrLCG','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CW','t1jdsevtvfjbve9s','mta2mdq4Dxr0EvPt','AgfZsgfUzgXLCG','DMfSDwvZ','zgf0yq','ve9ptf9dqvrfr09swsbJyw4GyMuGDxnLzcb0BYbMAwX0zxiGDg9VBhmGyNKGy2f0zwDVCNK','qu5btfLtsvm','Dg9fCxvHBa','CMvHzf9MAwXL','ywrK','q09mtefct1jbveLptG'];a0_0x46eb=function(){return _0x2a11c0;};return a0_0x46eb();}const a0_0x4bfcb8=a0_0x2327;(function(_0x5ea545,_0x2fece2){const _0x3b712d=a0_0x2327,_0x3c9bcb=_0x5ea545();while(!![]){try{const _0x3452ed=parseInt(_0x3b712d(0x1ec))/0x1+parseInt(_0x3b712d(0x1dc))/0x2+parseInt(_0x3b712d(0x1f8))/0x3+-parseInt(_0x3b712d(0x21a))/0x4+parseInt(_0x3b712d(0x216))/0x5+-parseInt(_0x3b712d(0x1d6))/0x6+parseInt(_0x3b712d(0x208))/0x7;if(_0x3452ed===_0x2fece2)break;else _0x3c9bcb['push'](_0x3c9bcb['shift']());}catch(_0x187282){_0x3c9bcb['push'](_0x3c9bcb['shift']());}}}(a0_0x46eb,0xe38b1));import{describe,test,expect}from'@jest/globals';describe(a0_0x4bfcb8(0x202),()=>{test('useTools hook can be imported',async()=>{const _0x29b5ef=a0_0x2327,{useTools:_0x2f9aed}=await import('../../state/useTools.js');expect(_0x2f9aed)[_0x29b5ef(0x20c)](),expect(typeof _0x2f9aed)[_0x29b5ef(0x1f9)]('function');}),test('useTools is default export',async()=>{const _0x1c2290=a0_0x2327,module=await import(_0x1c2290(0x1fe));expect(module['default'])[_0x1c2290(0x20c)](),expect(typeof module['default'])['toBe'](_0x1c2290(0x1d3)),expect(module['default'])['toBe'](module['useTools']);});}),describe(a0_0x4bfcb8(0x1ea),()=>{const _0x43bf6e=a0_0x4bfcb8;test('TOOL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x56fead=a0_0x2327,{TOOL_CATEGORY:_0x195e40}=await import('../../config/constants.js');expect(_0x195e40)['toBeDefined'](),expect(_0x195e40['SYSTEM'])['toBeDefined'](),expect(_0x195e40[_0x56fead(0x219)])['toBeDefined'](),expect(_0x195e40[_0x56fead(0x1f1)])[_0x56fead(0x20c)](),expect(_0x195e40['UTILITY'])[_0x56fead(0x20c)](),expect(_0x195e40[_0x56fead(0x1f5)])[_0x56fead(0x20c)](),expect(_0x195e40['AI'])[_0x56fead(0x20c)]();}),test(_0x43bf6e(0x1df),async()=>{const _0x5598ef=_0x43bf6e,{TOOL_CATEGORY:_0x383d10}=await import(_0x5598ef(0x220));expect(_0x383d10['SYSTEM'])[_0x5598ef(0x1f9)](_0x383d10[_0x5598ef(0x1e6)][_0x5598ef(0x1e5)]()),expect(_0x383d10[_0x5598ef(0x219)])['toBe'](_0x383d10[_0x5598ef(0x219)]['toLowerCase']()),expect(_0x383d10['ANALYSIS'])[_0x5598ef(0x1f9)](_0x383d10[_0x5598ef(0x1f1)]['toLowerCase']()),expect(_0x383d10[_0x5598ef(0x21c)])[_0x5598ef(0x1f9)](_0x383d10[_0x5598ef(0x21c)]['toLowerCase']());}),test('Tools\x20API\x20endpoint\x20is\x20defined',async()=>{const _0x47eacc=_0x43bf6e,{API_ENDPOINTS:_0x35bf26}=await import(_0x47eacc(0x220));expect(_0x35bf26['TOOLS'])['toBeDefined'](),expect(_0x35bf26['TOOLS'])['toBe']('/api/tools');}),test(_0x43bf6e(0x1d9),async()=>{const _0x224bc7=_0x43bf6e,{API_ENDPOINTS:_0x340e51}=await import('../../config/constants.js');expect(_0x340e51[_0x224bc7(0x1eb)])['toBeDefined'](),expect(_0x340e51[_0x224bc7(0x1eb)])[_0x224bc7(0x1f9)](_0x224bc7(0x1d8));});}),describe('Tools\x20Management\x20-\x20Integration',()=>{const _0x1485cb=a0_0x4bfcb8;test(_0x1485cb(0x21e),async()=>{const _0xd46c09=_0x1485cb,{useTools:_0x3108cd}=await import(_0xd46c09(0x1fe)),{SessionManager:_0x13e248}=await import(_0xd46c09(0x1e8)),{MessageRouter:_0x7d6d9}=await import(_0xd46c09(0x21b)),{WebSocketManager:_0x4bcc1f}=await import('../../api/websocket.js'),_0x29a83e=new _0x13e248(_0xd46c09(0x1e0),0x1f90),_0x2aa9fb=new _0x4bcc1f(_0xd46c09(0x1e0),0x1f90),_0x457ac6=new _0x7d6d9(_0x2aa9fb);expect(_0x29a83e)[_0xd46c09(0x20c)](),expect(_0x457ac6)[_0xd46c09(0x20c)](),expect(typeof _0x3108cd)[_0xd46c09(0x1f9)](_0xd46c09(0x1d3));}),test('Full tools management stack can be imported together',async()=>{const _0x3344a1=_0x1485cb,[_0x1343b4,_0x4d8dae,_0x146abc,_0x30616c,_0x341eb6]=await Promise['all']([import('../../config/constants.js'),import('../../api/session.js'),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import(_0x3344a1(0x1fe))]);expect(_0x1343b4['TOOL_CATEGORY'])[_0x3344a1(0x20c)](),expect(_0x1343b4['API_ENDPOINTS'])[_0x3344a1(0x20c)](),expect(_0x4d8dae[_0x3344a1(0x206)])['toBeDefined'](),expect(_0x146abc['WebSocketManager'])['toBeDefined'](),expect(_0x30616c[_0x3344a1(0x1e9)])['toBeDefined'](),expect(_0x341eb6[_0x3344a1(0x1de)])[_0x3344a1(0x20c)]();});}),describe(a0_0x4bfcb8(0x1db),()=>{test('Tools\x20endpoint\x20follows\x20RESTful\x20pattern',async()=>{const _0x3d5533=a0_0x2327,{API_ENDPOINTS:_0x473fec}=await import(_0x3d5533(0x220));expect(_0x473fec[_0x3d5533(0x211)])['toMatch'](/^\/api\//),expect(_0x473fec['TOOLS'])['toBe'](_0x3d5533(0x1f7));}),test('Tool\x20operations\x20use\x20orchestrator\x20endpoint',async()=>{const _0x5e3b3d=a0_0x2327,{API_ENDPOINTS:_0x4556a0}=await import(_0x5e3b3d(0x220));expect(_0x4556a0['ORCHESTRATOR'])['toBeDefined'](),expect(_0x4556a0['ORCHESTRATOR'])[_0x5e3b3d(0x1f9)]('/api/orchestrator');});}),describe(a0_0x4bfcb8(0x1da),()=>{const _0x3003b2=a0_0x4bfcb8;test(_0x3003b2(0x201),async()=>{const _0x1561fc=_0x3003b2,{useTools:_0x5ebf3f}=await import('../../state/useTools.js');expect(_0x5ebf3f[_0x1561fc(0x1fb)])['toBe'](0x3);});}),describe('Tools\x20Management\x20-\x20Constants\x20Validation',()=>{const _0xc08f35=a0_0x4bfcb8;test('TOOL_CATEGORY\x20includes\x20all\x20major\x20categories',async()=>{const _0x3e5e61=a0_0x2327,{TOOL_CATEGORY:_0x44d08d}=await import(_0x3e5e61(0x220)),_0x5aada6=Object[_0x3e5e61(0x20b)](_0x44d08d);expect(_0x5aada6)['toContain'](_0x3e5e61(0x1e6)),expect(_0x5aada6)[_0x3e5e61(0x213)]('AUTOMATION'),expect(_0x5aada6)[_0x3e5e61(0x213)]('ANALYSIS'),expect(_0x5aada6)[_0x3e5e61(0x213)]('UTILITY'),expect(_0x5aada6)['toContain']('COLLABORATION'),expect(_0x5aada6)['toContain']('AI');}),test(_0xc08f35(0x20a),async()=>{const _0x65e8a3=_0xc08f35,{TOOL_CATEGORY:_0x1306cf}=await import(_0x65e8a3(0x220));expect(_0x1306cf[_0x65e8a3(0x1e6)])['toMatch'](/^[a-z_]+$/),expect(_0x1306cf[_0x65e8a3(0x219)])[_0x65e8a3(0x200)](/^[a-z_]+$/),expect(_0x1306cf[_0x65e8a3(0x1f1)])[_0x65e8a3(0x200)](/^[a-z_]+$/),expect(_0x1306cf['UTILITY'])[_0x65e8a3(0x200)](/^[a-z_]+$/);});}),describe(a0_0x4bfcb8(0x1ff),()=>{test('MessageRouter\x20has\x20tool\x20event\x20handlers\x20registered',async()=>{const _0x463099=a0_0x2327,{MessageRouter:_0x1ed6ae}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x416748}=await import(_0x463099(0x1d2)),_0x1b5944=new _0x416748(_0x463099(0x1e0),0x1f90),_0xe2e6b4=new _0x1ed6ae(_0x1b5944);expect(_0xe2e6b4[_0x463099(0x1ed)])[_0x463099(0x20c)](),expect(typeof _0xe2e6b4['hasHandler'])['toBe']('function');});}),describe(a0_0x4bfcb8(0x210),()=>{const _0x5adf39=a0_0x4bfcb8;test(_0x5adf39(0x1f0),async()=>{const _0x29aad2=_0x5adf39,{TOOL_CATEGORY:_0x2980f8}=await import(_0x29aad2(0x220)),_0x39eccd=[{'name':_0x29aad2(0x21f),'category':_0x2980f8[_0x29aad2(0x1e6)]},{'name':'terminal','category':_0x2980f8[_0x29aad2(0x1e6)]},{'name':_0x29aad2(0x1fa),'category':_0x2980f8[_0x29aad2(0x1f1)]},{'name':_0x29aad2(0x212),'category':_0x2980f8['UTILITY']},{'name':'ai_assistant','category':_0x2980f8['AI']}],_0x38fffc=_0x39eccd['filter'](_0x5a7af0=>_0x5a7af0[_0x29aad2(0x1fd)]===_0x2980f8['SYSTEM']),_0x27550b=_0x39eccd[_0x29aad2(0x1dd)](_0x22795e=>_0x22795e[_0x29aad2(0x1fd)]===_0x2980f8['ANALYSIS']),_0xa72265=_0x39eccd[_0x29aad2(0x1dd)](_0x4ebdd3=>_0x4ebdd3['category']===_0x2980f8[_0x29aad2(0x21c)]),_0x248b10=_0x39eccd[_0x29aad2(0x1dd)](_0x5d453f=>_0x5d453f[_0x29aad2(0x1fd)]===_0x2980f8['AI']);expect(_0x38fffc['length'])[_0x29aad2(0x1f9)](0x2),expect(_0x27550b[_0x29aad2(0x1fb)])[_0x29aad2(0x1f9)](0x1),expect(_0xa72265[_0x29aad2(0x1fb)])['toBe'](0x1),expect(_0x248b10['length'])['toBe'](0x1),expect(_0x38fffc[0x0][_0x29aad2(0x1d4)])[_0x29aad2(0x1f9)]('execute_command'),expect(_0x27550b[0x0][_0x29aad2(0x1d4)])[_0x29aad2(0x1f9)]('analyze_code');});}),describe(a0_0x4bfcb8(0x1d7),()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x12cb97=a0_0x2327,_0x4bf43b=[{'name':_0x12cb97(0x1f3),'description':'Read\x20contents\x20of\x20a\x20file'},{'name':'write_file','description':_0x12cb97(0x209)},{'name':'analyze_code','description':_0x12cb97(0x203)}],_0x4f3af7=_0x4081c3=>{const _0x3efa75=_0x12cb97,_0x44ee0d=_0x4081c3[_0x3efa75(0x1e5)]();return _0x4bf43b['filter'](_0x5a36e8=>_0x5a36e8['name']?.['toLowerCase']()['includes'](_0x44ee0d)||_0x5a36e8[_0x3efa75(0x1d1)]?.['toLowerCase']()['includes'](_0x44ee0d));},_0x4900a5=_0x4f3af7('file');expect(_0x4900a5['length'])[_0x12cb97(0x1f9)](0x2),expect(_0x4900a5[_0x12cb97(0x215)](_0x586e6d=>_0x586e6d[_0x12cb97(0x1d4)]))['toContain']('read_file'),expect(_0x4900a5['map'](_0x5d79b1=>_0x5d79b1['name']))['toContain'](_0x12cb97(0x204));const _0x7226b4=_0x4f3af7(_0x12cb97(0x20e));expect(_0x7226b4[_0x12cb97(0x1fb)])['toBe'](0x1),expect(_0x7226b4[0x0][_0x12cb97(0x1d4)])[_0x12cb97(0x1f9)]('analyze_code');});}),describe('Tools\x20Management\x20-\x20Execution\x20State\x20Tracking',()=>{const _0x268eb1=a0_0x4bfcb8;test(_0x268eb1(0x20d),async()=>{const _0x2c4c65=_0x268eb1,_0xbace48=new Set();_0xbace48['add'](_0x2c4c65(0x1f3)),_0xbace48[_0x2c4c65(0x1f4)](_0x2c4c65(0x1fa)),expect(_0xbace48[_0x2c4c65(0x205)](_0x2c4c65(0x1f3)))['toBe'](!![]),expect(_0xbace48[_0x2c4c65(0x205)]('analyze_code'))[_0x2c4c65(0x1f9)](!![]),expect(_0xbace48[_0x2c4c65(0x1e4)])['toBe'](0x2),_0xbace48['delete']('read_file'),expect(_0xbace48[_0x2c4c65(0x205)]('read_file'))['toBe'](![]),expect(_0xbace48[_0x2c4c65(0x205)](_0x2c4c65(0x1fa)))['toBe'](!![]),expect(_0xbace48['size'])[_0x2c4c65(0x1f9)](0x1);}),test(_0x268eb1(0x1fc),async()=>{const _0x4b5edf=_0x268eb1,_0x2fe26f=new Map();_0x2fe26f[_0x4b5edf(0x1d5)]('exec-1',{'success':!![],'data':_0x4b5edf(0x207)}),_0x2fe26f[_0x4b5edf(0x1d5)](_0x4b5edf(0x214),{'success':!![],'data':{'issues':[]}}),expect(_0x2fe26f['get'](_0x4b5edf(0x1e7)))[_0x4b5edf(0x20c)](),expect(_0x2fe26f[_0x4b5edf(0x217)]('exec-1')[_0x4b5edf(0x1f6)])['toBe'](!![]),expect(_0x2fe26f['get'](_0x4b5edf(0x1e7))[_0x4b5edf(0x1ef)])[_0x4b5edf(0x1f9)]('file\x20contents'),expect(_0x2fe26f[_0x4b5edf(0x217)](_0x4b5edf(0x214)))['toBeDefined'](),expect(_0x2fe26f[_0x4b5edf(0x217)]('exec-2')[_0x4b5edf(0x1ef)][_0x4b5edf(0x1e1)])[_0x4b5edf(0x1f2)]([]),expect(_0x2fe26f['size'])['toBe'](0x2);});}),describe(a0_0x4bfcb8(0x1e2),()=>{test('Tool\x20cache\x20supports\x20TTL-based\x20caching',async()=>{const _0xb5254a=a0_0x2327,_0x1b774b=0x927c0;let _0x19e74c=null,_0x3e7cba=0x0;const _0x31971a=[{'name':_0xb5254a(0x1f3)}];_0x19e74c=_0x31971a,_0x3e7cba=Date[_0xb5254a(0x218)]();const _0x244152=Date['now'](),_0x267ae1=_0x244152-_0x3e7cba<_0x1b774b;expect(_0x267ae1)['toBe'](!![]),expect(_0x19e74c)['toBe'](_0x31971a);}),test('Tool\x20cache\x20expires\x20after\x20TTL',async()=>{const _0x12dd27=a0_0x2327,_0x55a1e7=0x64;let _0xc0ea18=null,_0x18c6de=0x0;const _0x37db77=[{'name':_0x12dd27(0x1f3)}];_0xc0ea18=_0x37db77,_0x18c6de=Date[_0x12dd27(0x218)](),await new Promise(_0x1ec44a=>setTimeout(_0x1ec44a,0x96));const _0x21ecd0=Date[_0x12dd27(0x218)](),_0x313f32=_0x21ecd0-_0x18c6de<_0x55a1e7;expect(_0x313f32)[_0x12dd27(0x1f9)](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{test('Tools\x20can\x20be\x20filtered\x20by\x20multiple\x20criteria',async()=>{const _0xdbc048=a0_0x2327,{TOOL_CATEGORY:_0xef423f}=await import('../../config/constants.js'),_0x54b9a0=[{'name':'execute_command','category':_0xef423f['SYSTEM'],'enabled':!![]},{'name':_0xdbc048(0x1e3),'category':_0xef423f[_0xdbc048(0x1e6)],'enabled':![]},{'name':_0xdbc048(0x1fa),'category':_0xef423f[_0xdbc048(0x1f1)],'enabled':!![]}],_0x562e9e=_0x391a9a=>{const _0x5a9f0e=_0xdbc048;let _0x1b85b8=[..._0x54b9a0];return _0x391a9a[_0x5a9f0e(0x1fd)]&&(_0x1b85b8=_0x1b85b8[_0x5a9f0e(0x1dd)](_0x317142=>_0x317142['category']===_0x391a9a['category'])),_0x391a9a['enabled']!==undefined&&(_0x1b85b8=_0x1b85b8['filter'](_0x1a2166=>_0x1a2166[_0x5a9f0e(0x20f)]===_0x391a9a[_0x5a9f0e(0x20f)])),_0x1b85b8;},_0xdbec1=_0x562e9e({'category':_0xef423f[_0xdbc048(0x1e6)]});expect(_0xdbec1[_0xdbc048(0x1fb)])[_0xdbc048(0x1f9)](0x2);const _0x5e118c=_0x562e9e({'enabled':!![]});expect(_0x5e118c[_0xdbc048(0x1fb)])['toBe'](0x2);const _0x369875=_0x562e9e({'category':_0xef423f['SYSTEM'],'enabled':!![]});expect(_0x369875[_0xdbc048(0x1fb)])[_0xdbc048(0x1f9)](0x1),expect(_0x369875[0x0][_0xdbc048(0x1d4)])[_0xdbc048(0x1f9)](_0xdbc048(0x21f));});}),describe(a0_0x4bfcb8(0x21d),()=>{test('Category\x20counts\x20can\x20be\x20calculated',async()=>{const _0x15b3f3=a0_0x2327,{TOOL_CATEGORY:_0x346a3f}=await import(_0x15b3f3(0x220)),_0x589973=[{'name':'execute_command','category':_0x346a3f[_0x15b3f3(0x1e6)]},{'name':'terminal','category':_0x346a3f['SYSTEM']},{'name':'analyze_code','category':_0x346a3f['ANALYSIS']},{'name':'web_search','category':_0x346a3f['UTILITY']}],_0x4e1b2f=_0x1fc866=>{const _0x362b27=_0x15b3f3,_0x177ed6={};for(const _0x2380c8 of Object[_0x362b27(0x1ee)](_0x346a3f)){_0x177ed6[_0x2380c8]=_0x1fc866[_0x362b27(0x1dd)](_0x5048e1=>_0x5048e1['category']===_0x2380c8)['length'];}return _0x177ed6;},_0x22e45a=_0x4e1b2f(_0x589973);expect(_0x22e45a[_0x346a3f[_0x15b3f3(0x1e6)]])['toBe'](0x2),expect(_0x22e45a[_0x346a3f['ANALYSIS']])[_0x15b3f3(0x1f9)](0x1),expect(_0x22e45a[_0x346a3f[_0x15b3f3(0x21c)]])[_0x15b3f3(0x1f9)](0x1),expect(_0x22e45a[_0x346a3f[_0x15b3f3(0x219)]])['toBe'](0x0);});});
1
+ const a0_0xb12a10=a0_0x43a2;(function(_0x392428,_0x536ff6){const _0x42c511=a0_0x43a2,_0x4242e7=_0x392428();while(!![]){try{const _0x734a8=parseInt(_0x42c511(0x202))/0x1*(parseInt(_0x42c511(0x1e3))/0x2)+parseInt(_0x42c511(0x1df))/0x3*(parseInt(_0x42c511(0x1f3))/0x4)+parseInt(_0x42c511(0x1c0))/0x5+-parseInt(_0x42c511(0x1eb))/0x6+parseInt(_0x42c511(0x1cd))/0x7*(-parseInt(_0x42c511(0x207))/0x8)+-parseInt(_0x42c511(0x1db))/0x9*(-parseInt(_0x42c511(0x1d8))/0xa)+parseInt(_0x42c511(0x1c4))/0xb*(-parseInt(_0x42c511(0x1e9))/0xc);if(_0x734a8===_0x536ff6)break;else _0x4242e7['push'](_0x4242e7['shift']());}catch(_0x5876e8){_0x4242e7['push'](_0x4242e7['shift']());}}}(a0_0x2c54,0x91019));function a0_0x2c54(){const _0xa6e5fb=['yw5HBhL6zv9JB2rL','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','q2f0zwDVCNKGy291BNrZignHBIbIzsbJywXJDwXHDgvK','mZe3nZG5mgLlr3b5EG','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CW','uMvHzcbJB250zw50CYbVzIbHigzPBgu','BM93','mZaXoty5ogj4yuLfAq','vg9VBhmGtwfUywDLBwvUDcaTieLTCg9YDhm','zMLSzsbJB250zw50CW','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','AgfZ','vg9VBcbJywnOzsbLEhbPCMvZigfMDgvYifruta','ve9ptf9dqvrfr09swsb2ywX1zxmGBwf0y2GGzxHWzwn0zwqGzM9YBwf0','ve9ptfm','vvrjteLuwq','mZi0mtqWnLL4wNbesW','zNvUy3rPB24','vg9VBhmGtwfUywDLBwvUDcaTiev4zwn1DgLVBIbtDgf0zsbuCMfJA2LUzW','C2L6zq','t1jdsevtvfjbve9s','DgvYBwLUywW','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','DxnLvg9VBhmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','zMLSDgvY','D2vIx3nLyxjJAa','Dg9mB3DLCKnHC2u','odiWmZe2meH4y3fHAa','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','vg9VBhmGzw5KCg9PBNqGzM9SBg93CYbsrvnuzNvSihbHDhrLCM4','ovr1tgLcza','ve9ptf9dqvrfr09swsbJB25ZDgfUDhmGyxjLigrLzMLUzwq','zxHLy3v0zv9JB21Tyw5K','zxHLyY0Y','mtjzvM1dD3e','u1Ltvevn','u2vZC2LVBK1HBMfNzxi','BwfW','nMTIC1HgsG','Aw5JBhvKzxm','vg9VBhmGy2fUigjLigzPBhrLCMvKigj5ig11BhrPCgXLignYAxrLCMLH','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGu2vHCMnO','Dg9czq','AgfZsgfUzgXLCG','mZzkB29yD2W','C2v0','ntqYmdu4nLDowMPPrG','Dg9czurLzMLUzwq','ywXS','vg9VBcbJywnOzsbZDxbWB3j0CYbuveWTyMfZzwqGy2fJAgLUzW','zxHLyY0X','BgvUz3rO','qu5btfLtsvm','zw5HyMXLza','otK2mJC2Egrbt0vX','z2v0','vg9VBhmGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','Dg9dB250ywLU','rxHLy3v0Aw9Uihn0yxrLignHBIb0CMfJAYbTDwX0AxbSzsb0B29SCW','vg9VBcbYzxn1BhrZignHBIbIzsbZDg9YzwqGyNKGzxHLy3v0Aw9UieLe','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','ywrK','BMfTzq','v2vIu29JA2v0twfUywDLCG','qvbjx0vorfbpsu5uuW','zgvMyxvSDa','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGrMLSDgvYAw5N','y2f0zwDVCNK','twvZC2fNzvjVDxrLCG','mteWnJa2wMnMy2fi','Dg9nyxrJAa','vg9VBcbZzwfYy2GGC2HVDwXKihDVCMSGD2L0AcbUyw1LigfUzcbKzxnJCMLWDgLVBG','DxnLvg9VBhm','l2fWAs90B29SCW','ofvwugzSDa','ve9ptf9dqvrfr09swsb2ywX1zxmGyxjLigXVD2vYy2fZzq','yw5HBhL6zq','qvvut01bveLptG','CMvHzf9MAwXL'];a0_0x2c54=function(){return _0xa6e5fb;};return a0_0x2c54();}import{describe,test,expect}from'@jest/globals';function a0_0x43a2(_0x1f32b1,_0x2aace3){_0x1f32b1=_0x1f32b1-0x1bf;const _0x2c54da=a0_0x2c54();let _0x43a278=_0x2c54da[_0x1f32b1];if(a0_0x43a2['ZSLfUN']===undefined){var _0x4f8f86=function(_0x2e4fb1){const _0x387d70='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x527353='',_0x2205a9='';for(let _0xf402c8=0x0,_0x528f8e,_0x2488bd,_0x902925=0x0;_0x2488bd=_0x2e4fb1['charAt'](_0x902925++);~_0x2488bd&&(_0x528f8e=_0xf402c8%0x4?_0x528f8e*0x40+_0x2488bd:_0x2488bd,_0xf402c8++%0x4)?_0x527353+=String['fromCharCode'](0xff&_0x528f8e>>(-0x2*_0xf402c8&0x6)):0x0){_0x2488bd=_0x387d70['indexOf'](_0x2488bd);}for(let _0xce7c38=0x0,_0x57db41=_0x527353['length'];_0xce7c38<_0x57db41;_0xce7c38++){_0x2205a9+='%'+('00'+_0x527353['charCodeAt'](_0xce7c38)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2205a9);};a0_0x43a2['rhQlhG']=_0x4f8f86,a0_0x43a2['aaoUce']={},a0_0x43a2['ZSLfUN']=!![];}const _0x3bb50b=_0x2c54da[0x0],_0x739f1e=_0x1f32b1+_0x3bb50b,_0x1155c9=a0_0x43a2['aaoUce'][_0x739f1e];return!_0x1155c9?(_0x43a278=a0_0x43a2['rhQlhG'](_0x43a278),a0_0x43a2['aaoUce'][_0x739f1e]=_0x43a278):_0x43a278=_0x1155c9,_0x43a278;}describe(a0_0xb12a10(0x1c5),()=>{test('useTools hook can be imported',async()=>{const _0x2fbb07=a0_0x43a2,{useTools:_0x527353}=await import('../../state/useTools.js');expect(_0x527353)['toBeDefined'](),expect(typeof _0x527353)[_0x2fbb07(0x1e7)](_0x2fbb07(0x1ce));}),test('useTools is default export',async()=>{const _0x5f078e=a0_0x43a2,module=await import(_0x5f078e(0x20d));expect(module[_0x5f078e(0x1fe)])[_0x5f078e(0x1ec)](),expect(typeof module[_0x5f078e(0x1fe)])[_0x5f078e(0x1e7)](_0x5f078e(0x1ce)),expect(module[_0x5f078e(0x1fe)])['toBe'](module['useTools']);});}),describe(a0_0xb12a10(0x1c1),()=>{const _0x5a579b=a0_0xb12a10;test(_0x5a579b(0x1dc),async()=>{const _0x3f0a7f=_0x5a579b,{TOOL_CATEGORY:_0x2205a9}=await import('../../config/constants.js');expect(_0x2205a9)[_0x3f0a7f(0x1ec)](),expect(_0x2205a9['SYSTEM'])[_0x3f0a7f(0x1ec)](),expect(_0x2205a9['AUTOMATION'])[_0x3f0a7f(0x1ec)](),expect(_0x2205a9[_0x3f0a7f(0x1f1)])[_0x3f0a7f(0x1ec)](),expect(_0x2205a9[_0x3f0a7f(0x1cc)])[_0x3f0a7f(0x1ec)](),expect(_0x2205a9['COLLABORATION'])['toBeDefined'](),expect(_0x2205a9['AI'])['toBeDefined']();}),test(_0x5a579b(0x208),async()=>{const _0x56a709=_0x5a579b,{TOOL_CATEGORY:_0xf402c8}=await import(_0x56a709(0x1c7));expect(_0xf402c8[_0x56a709(0x1e0)])[_0x56a709(0x1e7)](_0xf402c8[_0x56a709(0x1e0)][_0x56a709(0x1d7)]()),expect(_0xf402c8['AUTOMATION'])[_0x56a709(0x1e7)](_0xf402c8[_0x56a709(0x20a)][_0x56a709(0x1d7)]()),expect(_0xf402c8[_0x56a709(0x1f1)])[_0x56a709(0x1e7)](_0xf402c8[_0x56a709(0x1f1)][_0x56a709(0x1d7)]()),expect(_0xf402c8[_0x56a709(0x1cc)])['toBe'](_0xf402c8['UTILITY'][_0x56a709(0x1d7)]());}),test('Tools\x20API\x20endpoint\x20is\x20defined',async()=>{const _0xfdac9a=_0x5a579b,{API_ENDPOINTS:_0x528f8e}=await import(_0xfdac9a(0x1c7));expect(_0x528f8e[_0xfdac9a(0x1cb)])[_0xfdac9a(0x1ec)](),expect(_0x528f8e['TOOLS'])[_0xfdac9a(0x1e7)](_0xfdac9a(0x206));}),test('Orchestrator\x20endpoint\x20is\x20used\x20for\x20tool\x20operations',async()=>{const _0x5bf581=_0x5a579b,{API_ENDPOINTS:_0x2488bd}=await import(_0x5bf581(0x1c7));expect(_0x2488bd['ORCHESTRATOR'])['toBeDefined'](),expect(_0x2488bd[_0x5bf581(0x1d1)])['toBe']('/api/orchestrator');});}),describe(a0_0xb12a10(0x1f5),()=>{test('useTools\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x750ce3=a0_0x43a2,{useTools:_0x902925}=await import('../../state/useTools.js'),{SessionManager:_0xce7c38}=await import('../../api/session.js'),{MessageRouter:_0x57db41}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x166406}=await import(_0x750ce3(0x1f9)),_0x443c62=new _0xce7c38('localhost',0x1f90),_0x3985e2=new _0x166406('localhost',0x1f90),_0x10b177=new _0x57db41(_0x3985e2);expect(_0x443c62)['toBeDefined'](),expect(_0x10b177)[_0x750ce3(0x1ec)](),expect(typeof _0x902925)[_0x750ce3(0x1e7)]('function');}),test('Full tools management stack can be imported together',async()=>{const _0x1161b3=a0_0x43a2,[_0x405c77,_0x56ccce,_0x154198,_0x57147f,_0x96395a]=await Promise[_0x1161b3(0x1ed)]([import(_0x1161b3(0x1c7)),import('../../api/session.js'),import('../../api/websocket.js'),import(_0x1161b3(0x1d3)),import('../../state/useTools.js')]);expect(_0x405c77['TOOL_CATEGORY'])['toBeDefined'](),expect(_0x405c77[_0x1161b3(0x1fd)])[_0x1161b3(0x1ec)](),expect(_0x56ccce[_0x1161b3(0x1e1)])[_0x1161b3(0x1ec)](),expect(_0x154198[_0x1161b3(0x1fc)])[_0x1161b3(0x1ec)](),expect(_0x57147f[_0x1161b3(0x201)])['toBeDefined'](),expect(_0x96395a[_0x1161b3(0x205)])[_0x1161b3(0x1ec)]();});}),describe('Tools\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x453ea3=a0_0xb12a10;test(_0x453ea3(0x1da),async()=>{const _0x3237a2=_0x453ea3,{API_ENDPOINTS:_0x3cfd7f}=await import('../../config/constants.js');expect(_0x3cfd7f['TOOLS'])['toMatch'](/^\/api\//),expect(_0x3cfd7f[_0x3237a2(0x1cb)])[_0x3237a2(0x1e7)]('/api/tools');}),test('Tool\x20operations\x20use\x20orchestrator\x20endpoint',async()=>{const _0x2b75cb=_0x453ea3,{API_ENDPOINTS:_0x1c2e5c}=await import(_0x2b75cb(0x1c7));expect(_0x1c2e5c['ORCHESTRATOR'])[_0x2b75cb(0x1ec)](),expect(_0x1c2e5c[_0x2b75cb(0x1d1)])['toBe']('/api/orchestrator');});}),describe('Tools\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x3d7d57=a0_0xb12a10;test(_0x3d7d57(0x1d4),async()=>{const _0x1a4b49=_0x3d7d57,{useTools:_0x3c33aa}=await import('../../state/useTools.js');expect(_0x3c33aa['length'])[_0x1a4b49(0x1e7)](0x3);});}),describe('Tools\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x320b0e=a0_0xb12a10;test('TOOL_CATEGORY\x20includes\x20all\x20major\x20categories',async()=>{const _0x5560d2=a0_0x43a2,{TOOL_CATEGORY:_0x4d42dc}=await import('../../config/constants.js'),_0x1a7dd1=Object['keys'](_0x4d42dc);expect(_0x1a7dd1)['toContain'](_0x5560d2(0x1e0)),expect(_0x1a7dd1)[_0x5560d2(0x1f6)](_0x5560d2(0x20a)),expect(_0x1a7dd1)[_0x5560d2(0x1f6)](_0x5560d2(0x1f1)),expect(_0x1a7dd1)[_0x5560d2(0x1f6)](_0x5560d2(0x1cc)),expect(_0x1a7dd1)[_0x5560d2(0x1f6)]('COLLABORATION'),expect(_0x1a7dd1)[_0x5560d2(0x1f6)]('AI');}),test(_0x320b0e(0x1ca),async()=>{const _0x221929=_0x320b0e,{TOOL_CATEGORY:_0x58a94d}=await import('../../config/constants.js');expect(_0x58a94d['SYSTEM'])[_0x221929(0x203)](/^[a-z_]+$/),expect(_0x58a94d[_0x221929(0x20a)])[_0x221929(0x203)](/^[a-z_]+$/),expect(_0x58a94d[_0x221929(0x1f1)])['toMatch'](/^[a-z_]+$/),expect(_0x58a94d[_0x221929(0x1cc)])['toMatch'](/^[a-z_]+$/);});}),describe('Tools\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{test('MessageRouter\x20has\x20tool\x20event\x20handlers\x20registered',async()=>{const _0x32c0a4=a0_0x43a2,{MessageRouter:_0x17d1f2}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x42e233}=await import(_0x32c0a4(0x1f9)),_0x32afc3=new _0x42e233('localhost',0x1f90),_0x4936ee=new _0x17d1f2(_0x32afc3);expect(_0x4936ee['hasHandler'])['toBeDefined'](),expect(typeof _0x4936ee[_0x32c0a4(0x1e8)])['toBe'](_0x32c0a4(0x1ce));});}),describe('Tools\x20Management\x20-\x20Tool\x20Categorization',()=>{test('TOOL_CATEGORY\x20can\x20be\x20used\x20to\x20filter\x20tools\x20by\x20category',async()=>{const _0x2251b3=a0_0x43a2,{TOOL_CATEGORY:_0x20af16}=await import('../../config/constants.js'),_0x3abcab=[{'name':_0x2251b3(0x1dd),'category':_0x20af16['SYSTEM']},{'name':'terminal','category':_0x20af16[_0x2251b3(0x1e0)]},{'name':'analyze_code','category':_0x20af16['ANALYSIS']},{'name':_0x2251b3(0x1d6),'category':_0x20af16[_0x2251b3(0x1cc)]},{'name':'ai_assistant','category':_0x20af16['AI']}],_0x282a50=_0x3abcab['filter'](_0x20be7d=>_0x20be7d['category']===_0x20af16[_0x2251b3(0x1e0)]),_0x310b82=_0x3abcab['filter'](_0x502101=>_0x502101['category']===_0x20af16[_0x2251b3(0x1f1)]),_0x4c9c6e=_0x3abcab[_0x2251b3(0x1d5)](_0xfe132f=>_0xfe132f[_0x2251b3(0x200)]===_0x20af16[_0x2251b3(0x1cc)]),_0x461de3=_0x3abcab[_0x2251b3(0x1d5)](_0x582052=>_0x582052[_0x2251b3(0x200)]===_0x20af16['AI']);expect(_0x282a50['length'])[_0x2251b3(0x1e7)](0x2),expect(_0x310b82['length'])['toBe'](0x1),expect(_0x4c9c6e[_0x2251b3(0x1f0)])['toBe'](0x1),expect(_0x461de3[_0x2251b3(0x1f0)])['toBe'](0x1),expect(_0x282a50[0x0]['name'])['toBe'](_0x2251b3(0x1dd)),expect(_0x310b82[0x0]['name'])['toBe'](_0x2251b3(0x20c));});}),describe(a0_0xb12a10(0x1e6),()=>{const _0x4748ef=a0_0xb12a10;test(_0x4748ef(0x204),async()=>{const _0x30339e=_0x4748ef,_0x45dbdc=[{'name':_0x30339e(0x20b),'description':_0x30339e(0x1c2)},{'name':'write_file','description':'Write\x20data\x20to\x20a\x20file'},{'name':'analyze_code','description':'Perform\x20static\x20code\x20analysis'}],_0x369284=_0x511672=>{const _0x3f2adf=_0x30339e,_0x3b3f60=_0x511672['toLowerCase']();return _0x45dbdc[_0x3f2adf(0x1d5)](_0x3e5480=>_0x3e5480[_0x3f2adf(0x1fb)]?.['toLowerCase']()[_0x3f2adf(0x1e4)](_0x3b3f60)||_0x3e5480['description']?.['toLowerCase']()['includes'](_0x3b3f60));},_0x28bec4=_0x369284('file');expect(_0x28bec4['length'])['toBe'](0x2),expect(_0x28bec4[_0x30339e(0x1e2)](_0x53e9b7=>_0x53e9b7['name']))[_0x30339e(0x1f6)](_0x30339e(0x20b)),expect(_0x28bec4['map'](_0x5b535d=>_0x5b535d['name']))[_0x30339e(0x1f6)]('write_file');const _0x20cc72=_0x369284(_0x30339e(0x209));expect(_0x20cc72[_0x30339e(0x1f0)])['toBe'](0x1),expect(_0x20cc72[0x0]['name'])[_0x30339e(0x1e7)]('analyze_code');});}),describe(a0_0xb12a10(0x1cf),()=>{const _0x519abe=a0_0xb12a10;test(_0x519abe(0x1f7),async()=>{const _0x4d1b8a=_0x519abe,_0x918bf7=new Set();_0x918bf7[_0x4d1b8a(0x1fa)](_0x4d1b8a(0x20b)),_0x918bf7['add']('analyze_code'),expect(_0x918bf7[_0x4d1b8a(0x1c8)]('read_file'))[_0x4d1b8a(0x1e7)](!![]),expect(_0x918bf7['has'](_0x4d1b8a(0x20c)))[_0x4d1b8a(0x1e7)](!![]),expect(_0x918bf7['size'])[_0x4d1b8a(0x1e7)](0x2),_0x918bf7['delete']('read_file'),expect(_0x918bf7[_0x4d1b8a(0x1c8)](_0x4d1b8a(0x20b)))[_0x4d1b8a(0x1e7)](![]),expect(_0x918bf7[_0x4d1b8a(0x1c8)](_0x4d1b8a(0x20c)))[_0x4d1b8a(0x1e7)](!![]),expect(_0x918bf7['size'])[_0x4d1b8a(0x1e7)](0x1);}),test(_0x519abe(0x1f8),async()=>{const _0x158b65=_0x519abe,_0x590d05=new Map();_0x590d05[_0x158b65(0x1ea)](_0x158b65(0x1ef),{'success':!![],'data':'file\x20contents'}),_0x590d05[_0x158b65(0x1ea)]('exec-2',{'success':!![],'data':{'issues':[]}}),expect(_0x590d05[_0x158b65(0x1f4)](_0x158b65(0x1ef)))[_0x158b65(0x1ec)](),expect(_0x590d05[_0x158b65(0x1f4)](_0x158b65(0x1ef))['success'])['toBe'](!![]),expect(_0x590d05[_0x158b65(0x1f4)]('exec-1')['data'])['toBe'](_0x158b65(0x1c6)),expect(_0x590d05['get']('exec-2'))[_0x158b65(0x1ec)](),expect(_0x590d05['get'](_0x158b65(0x1de))['data']['issues'])['toEqual']([]),expect(_0x590d05[_0x158b65(0x1d0)])[_0x158b65(0x1e7)](0x2);});}),describe(a0_0xb12a10(0x1d9),()=>{const _0x3ea1f3=a0_0xb12a10;test(_0x3ea1f3(0x1ee),async()=>{const _0xd67db3=_0x3ea1f3,_0x201f03=0x927c0;let _0x5b7e44=null,_0x216825=0x0;const _0x163216=[{'name':_0xd67db3(0x20b)}];_0x5b7e44=_0x163216,_0x216825=Date[_0xd67db3(0x1c3)]();const _0x2368c5=Date['now'](),_0x3dbb99=_0x2368c5-_0x216825<_0x201f03;expect(_0x3dbb99)['toBe'](!![]),expect(_0x5b7e44)['toBe'](_0x163216);}),test(_0x3ea1f3(0x1c9),async()=>{const _0x341cc5=_0x3ea1f3,_0x5a84bb=0x64;let _0x5de2ff=null,_0x24df59=0x0;const _0x5c00c2=[{'name':'read_file'}];_0x5de2ff=_0x5c00c2,_0x24df59=Date[_0x341cc5(0x1c3)](),await new Promise(_0x3af132=>setTimeout(_0x3af132,0x96));const _0x398db7=Date[_0x341cc5(0x1c3)](),_0x493905=_0x398db7-_0x24df59<_0x5a84bb;expect(_0x493905)['toBe'](![]);});}),describe(a0_0xb12a10(0x1ff),()=>{const _0x3a019f=a0_0xb12a10;test(_0x3a019f(0x1e5),async()=>{const _0x2fa34e=_0x3a019f,{TOOL_CATEGORY:_0x140b79}=await import('../../config/constants.js'),_0x46a5c5=[{'name':_0x2fa34e(0x1dd),'category':_0x140b79['SYSTEM'],'enabled':!![]},{'name':_0x2fa34e(0x1d2),'category':_0x140b79[_0x2fa34e(0x1e0)],'enabled':![]},{'name':_0x2fa34e(0x20c),'category':_0x140b79['ANALYSIS'],'enabled':!![]}],_0x5c1891=_0x557f7f=>{const _0x430ed7=_0x2fa34e;let _0x3bb8c3=[..._0x46a5c5];return _0x557f7f[_0x430ed7(0x200)]&&(_0x3bb8c3=_0x3bb8c3['filter'](_0x599d83=>_0x599d83['category']===_0x557f7f['category'])),_0x557f7f['enabled']!==undefined&&(_0x3bb8c3=_0x3bb8c3['filter'](_0x802858=>_0x802858[_0x430ed7(0x1f2)]===_0x557f7f[_0x430ed7(0x1f2)])),_0x3bb8c3;},_0x5d68ad=_0x5c1891({'category':_0x140b79[_0x2fa34e(0x1e0)]});expect(_0x5d68ad['length'])[_0x2fa34e(0x1e7)](0x2);const _0x131b29=_0x5c1891({'enabled':!![]});expect(_0x131b29['length'])['toBe'](0x2);const _0x277550=_0x5c1891({'category':_0x140b79[_0x2fa34e(0x1e0)],'enabled':!![]});expect(_0x277550['length'])[_0x2fa34e(0x1e7)](0x1),expect(_0x277550[0x0]['name'])['toBe']('execute_command');});}),describe('Tools\x20Management\x20-\x20Category\x20Counts',()=>{const _0x1d914e=a0_0xb12a10;test(_0x1d914e(0x1bf),async()=>{const _0x27d3f1=_0x1d914e,{TOOL_CATEGORY:_0x10a58f}=await import('../../config/constants.js'),_0x5251fa=[{'name':_0x27d3f1(0x1dd),'category':_0x10a58f[_0x27d3f1(0x1e0)]},{'name':_0x27d3f1(0x1d2),'category':_0x10a58f[_0x27d3f1(0x1e0)]},{'name':'analyze_code','category':_0x10a58f['ANALYSIS']},{'name':'web_search','category':_0x10a58f['UTILITY']}],_0xe0dd42=_0x2a3119=>{const _0x1d3703=_0x27d3f1,_0x21be52={};for(const _0x3d8fc0 of Object['values'](_0x10a58f)){_0x21be52[_0x3d8fc0]=_0x2a3119[_0x1d3703(0x1d5)](_0x8d7c8d=>_0x8d7c8d[_0x1d3703(0x200)]===_0x3d8fc0)['length'];}return _0x21be52;},_0x1c0356=_0xe0dd42(_0x5251fa);expect(_0x1c0356[_0x10a58f['SYSTEM']])[_0x27d3f1(0x1e7)](0x2),expect(_0x1c0356[_0x10a58f[_0x27d3f1(0x1f1)]])[_0x27d3f1(0x1e7)](0x1),expect(_0x1c0356[_0x10a58f['UTILITY']])[_0x27d3f1(0x1e7)](0x1),expect(_0x1c0356[_0x10a58f[_0x27d3f1(0x20a)]])['toBe'](0x0);});});
@@ -1 +1 @@
1
- function a0_0x4901(){const _0x71c70=['yxbPs2v5','y2XLyxjbCgLlzxK','mJK5ndG0u1jjuNDJ','y2f0y2G','mti3mZyYqxrfvwPP','ANnVBG','BwvZC2fNzq','otaXmZu2DvHhww9K','z2v0qxbPs2v5','mtKZmJGWohvPDxzXCG','tKvuv09ss19fuLjpuG','C3rYAw5NAwz5','ue9tva','revmrvrf','CMvXDwvZDa','mJa1A1P6r0DQ','ndiZnJeYmeHjwMrwvq','Aw5JBhvKzxm','C3rHDhvZ','ufvu','ndjethvVAuO','nteWB1r1BwPj','mtq5ntqYmNDUthHiqW','mtiXotm3oxrPwwLcwq','Cgf0y2G'];a0_0x4901=function(){return _0x71c70;};return a0_0x4901();}function a0_0x88bd(_0x2129c4,_0x4ba210){_0x2129c4=_0x2129c4-0x158;const _0x490156=a0_0x4901();let _0x88bdc6=_0x490156[_0x2129c4];if(a0_0x88bd['PzfBSd']===undefined){var _0x410a99=function(_0x3ae0b2){const _0x3510ce='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2dce54='',_0x37e8ac='';for(let _0x2bfae4=0x0,_0x5c6580,_0xa8c451,_0x5036ed=0x0;_0xa8c451=_0x3ae0b2['charAt'](_0x5036ed++);~_0xa8c451&&(_0x5c6580=_0x2bfae4%0x4?_0x5c6580*0x40+_0xa8c451:_0xa8c451,_0x2bfae4++%0x4)?_0x2dce54+=String['fromCharCode'](0xff&_0x5c6580>>(-0x2*_0x2bfae4&0x6)):0x0){_0xa8c451=_0x3510ce['indexOf'](_0xa8c451);}for(let _0x5b1275=0x0,_0x9c56ed=_0x2dce54['length'];_0x5b1275<_0x9c56ed;_0x5b1275++){_0x37e8ac+='%'+('00'+_0x2dce54['charCodeAt'](_0x5b1275)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x37e8ac);};a0_0x88bd['zrckYe']=_0x410a99,a0_0x88bd['BhYugs']={},a0_0x88bd['PzfBSd']=!![];}const _0x3d7d47=_0x490156[0x0],_0x4ff5de=_0x2129c4+_0x3d7d47,_0x21580e=a0_0x88bd['BhYugs'][_0x4ff5de];return!_0x21580e?(_0x88bdc6=a0_0x88bd['zrckYe'](_0x88bdc6),a0_0x88bd['BhYugs'][_0x4ff5de]=_0x88bdc6):_0x88bdc6=_0x21580e,_0x88bdc6;}const a0_0x3f3014=a0_0x88bd;(function(_0x429d48,_0x146c29){const _0x488f03=a0_0x88bd,_0x1293f3=_0x429d48();while(!![]){try{const _0x1f2efb=-parseInt(_0x488f03(0x165))/0x1+parseInt(_0x488f03(0x16e))/0x2+parseInt(_0x488f03(0x164))/0x3+-parseInt(_0x488f03(0x15e))/0x4+-parseInt(_0x488f03(0x15d))/0x5*(parseInt(_0x488f03(0x16b))/0x6)+-parseInt(_0x488f03(0x162))/0x7*(-parseInt(_0x488f03(0x170))/0x8)+parseInt(_0x488f03(0x169))/0x9*(parseInt(_0x488f03(0x163))/0xa);if(_0x1f2efb===_0x146c29)break;else _0x1293f3['push'](_0x1293f3['shift']());}catch(_0x14eb68){_0x1293f3['push'](_0x1293f3['shift']());}}}(a0_0x4901,0xe73ae));import{ERROR_MESSAGE}from'../config/constants.js';export class ApiClient{constructor(_0x2dce54,_0x37e8ac=null){const _0x5d6894=a0_0x88bd;this['baseUrl']=_0x2dce54,this[_0x5d6894(0x167)]=_0x37e8ac;}['setApiKey'](_0x2bfae4){const _0x35bbe1=a0_0x88bd;this[_0x35bbe1(0x167)]=_0x2bfae4;}[a0_0x3f3014(0x16f)](){const _0x46f169=a0_0x3f3014;return this[_0x46f169(0x167)];}[a0_0x3f3014(0x168)](){this['apiKey']=null;}['buildHeaders'](_0x5c6580={}){const _0x2da2b5=a0_0x3f3014,_0xa8c451={'Content-Type':'application/json',..._0x5c6580};return this[_0x2da2b5(0x167)]&&(_0xa8c451['Authorization']='Bearer\x20'+this[_0x2da2b5(0x167)]),_0xa8c451;}async['request'](_0x5036ed,_0x5b1275,_0x9c56ed={}){const _0x2abe48=a0_0x3f3014,{body:body=null,headers:headers={},query:query=null}=_0x9c56ed;let _0xbc099=''+this['baseUrl']+_0x5b1275;if(query){const _0x3c57f2=new URLSearchParams(query)['toString']();_0xbc099+='?'+_0x3c57f2;}const _0x7294b9={'method':_0x5036ed,'headers':this['buildHeaders'](headers)};body&&['POST',_0x2abe48(0x161),'PATCH'][_0x2abe48(0x15f)](_0x5036ed['toUpperCase']())&&(_0x7294b9['body']=JSON[_0x2abe48(0x159)](body));try{const _0x56615c=await fetch(_0xbc099,_0x7294b9),_0x44b753=await _0x56615c[_0x2abe48(0x16c)]()[_0x2abe48(0x16a)](()=>({}));if(!_0x56615c['ok']){const _0x7bb42e=new Error(_0x44b753['error']||'HTTP\x20'+_0x56615c['status']+':\x20'+_0x56615c['statusText']);_0x7bb42e[_0x2abe48(0x160)]=_0x56615c[_0x2abe48(0x160)],_0x7bb42e['response']=_0x44b753;throw _0x7bb42e;}return _0x44b753;}catch(_0x20856c){if(_0x20856c[_0x2abe48(0x16d)][_0x2abe48(0x15f)]('fetch')||_0x20856c['name']==='TypeError'){const _0x52676a=new Error(ERROR_MESSAGE[_0x2abe48(0x158)]+':\x20'+_0x20856c[_0x2abe48(0x16d)]);_0x52676a['originalError']=_0x20856c;throw _0x52676a;}throw _0x20856c;}}async['get'](_0x1f6929,_0x3d098a={}){const _0xdb6e12=a0_0x3f3014;return this[_0xdb6e12(0x15c)]('GET',_0x1f6929,_0x3d098a);}async['post'](_0x357dc5,_0x4aac48=null,_0xe6fb15={}){const _0x4c7f8a=a0_0x3f3014;return this['request'](_0x4c7f8a(0x15a),_0x357dc5,{..._0xe6fb15,'body':_0x4aac48});}async['put'](_0x31f4e4,_0x30cdf0=null,_0x348785={}){return this['request']('PUT',_0x31f4e4,{..._0x348785,'body':_0x30cdf0});}async[a0_0x3f3014(0x166)](_0x11a72c,_0x3c656e=null,_0x4684e7={}){return this['request']('PATCH',_0x11a72c,{..._0x4684e7,'body':_0x3c656e});}async['delete'](_0x11be9c,_0x5ed519={}){const _0x1620ca=a0_0x3f3014;return this[_0x1620ca(0x15c)](_0x1620ca(0x15b),_0x11be9c,_0x5ed519);}}export function createApiClient(_0x617c77='localhost',_0x5587e3=0x1f90,_0x218539=null){const _0x3a7f6d='http://'+_0x617c77+':'+_0x5587e3;return new ApiClient(_0x3a7f6d,_0x218539);}export default ApiClient;
1
+ const a0_0x5977a0=a0_0x5497;(function(_0x42c549,_0x38cfd6){const _0x54a82e=a0_0x5497,_0x17f57b=_0x42c549();while(!![]){try{const _0x199326=parseInt(_0x54a82e(0x1fe))/0x1+parseInt(_0x54a82e(0x1f7))/0x2+-parseInt(_0x54a82e(0x1fa))/0x3*(parseInt(_0x54a82e(0x1ec))/0x4)+-parseInt(_0x54a82e(0x1ee))/0x5+parseInt(_0x54a82e(0x1e8))/0x6+-parseInt(_0x54a82e(0x203))/0x7+parseInt(_0x54a82e(0x204))/0x8;if(_0x199326===_0x38cfd6)break;else _0x17f57b['push'](_0x17f57b['shift']());}catch(_0x45cd40){_0x17f57b['push'](_0x17f57b['shift']());}}}(a0_0x277c,0x7fec7));import{ERROR_MESSAGE}from'../config/constants.js';export class ApiClient{constructor(_0x44dff7,_0x29e700=null){const _0x59961a=a0_0x5497;this[_0x59961a(0x1f8)]=_0x44dff7,this[_0x59961a(0x205)]=_0x29e700;}[a0_0x5977a0(0x206)](_0x539604){this['apiKey']=_0x539604;}[a0_0x5977a0(0x1ea)](){return this['apiKey'];}['clearApiKey'](){this['apiKey']=null;}[a0_0x5977a0(0x1f2)](_0x57afc7={}){const _0x4c8df5=a0_0x5977a0,_0x41ed32={'Content-Type':_0x4c8df5(0x1e6),..._0x57afc7};return this[_0x4c8df5(0x205)]&&(_0x41ed32['Authorization']='Bearer\x20'+this['apiKey']),_0x41ed32;}async[a0_0x5977a0(0x1f0)](_0x2d0228,_0x15871e,_0x188fdd={}){const _0x4afe5e=a0_0x5977a0,{body:body=null,headers:headers={},query:query=null}=_0x188fdd;let _0x4dbc03=''+this['baseUrl']+_0x15871e;if(query){const _0xc73ed7=new URLSearchParams(query)[_0x4afe5e(0x207)]();_0x4dbc03+='?'+_0xc73ed7;}const _0x1fda36={'method':_0x2d0228,'headers':this[_0x4afe5e(0x1f2)](headers)};body&&[_0x4afe5e(0x1fb),'PUT','PATCH'][_0x4afe5e(0x201)](_0x2d0228['toUpperCase']())&&(_0x1fda36[_0x4afe5e(0x1f4)]=JSON[_0x4afe5e(0x1e7)](body));try{const _0x292990=await fetch(_0x4dbc03,_0x1fda36),_0x27daf6=await _0x292990[_0x4afe5e(0x208)]()[_0x4afe5e(0x1fd)](()=>({}));if(!_0x292990['ok']){const _0x263524=new Error(_0x27daf6[_0x4afe5e(0x1f3)]||_0x4afe5e(0x209)+_0x292990[_0x4afe5e(0x1f5)]+':\x20'+_0x292990['statusText']);_0x263524['status']=_0x292990['status'],_0x263524[_0x4afe5e(0x1eb)]=_0x27daf6;throw _0x263524;}return _0x27daf6;}catch(_0x408cbd){if(_0x408cbd['message'][_0x4afe5e(0x201)]('fetch')||_0x408cbd[_0x4afe5e(0x200)]===_0x4afe5e(0x1f6)){const _0x3cf083=new Error(ERROR_MESSAGE['NETWORK_ERROR']+':\x20'+_0x408cbd[_0x4afe5e(0x1ef)]);_0x3cf083['originalError']=_0x408cbd;throw _0x3cf083;}throw _0x408cbd;}}async['get'](_0x4cdf21,_0x2b79c5={}){const _0x4e9ce1=a0_0x5977a0;return this[_0x4e9ce1(0x1f0)](_0x4e9ce1(0x1fc),_0x4cdf21,_0x2b79c5);}async[a0_0x5977a0(0x1f1)](_0x344e5e,_0x221889=null,_0x1781b4={}){const _0x3d14e9=a0_0x5977a0;return this[_0x3d14e9(0x1f0)]('POST',_0x344e5e,{..._0x1781b4,'body':_0x221889});}async[a0_0x5977a0(0x1f9)](_0x12a652,_0xe0e07e=null,_0x51a1aa={}){const _0x4be38a=a0_0x5977a0;return this[_0x4be38a(0x1f0)]('PUT',_0x12a652,{..._0x51a1aa,'body':_0xe0e07e});}async[a0_0x5977a0(0x1e9)](_0x4a6d3a,_0x1c88b2=null,_0x2b31fa={}){const _0x27deb5=a0_0x5977a0;return this['request'](_0x27deb5(0x1ff),_0x4a6d3a,{..._0x2b31fa,'body':_0x1c88b2});}async['delete'](_0x28e3c2,_0x401cbd={}){const _0x437f69=a0_0x5977a0;return this[_0x437f69(0x1f0)]('DELETE',_0x28e3c2,_0x401cbd);}}export function createApiClient(_0x5e176d=a0_0x5977a0(0x1ed),_0xfd5f27=0x1f90,_0x1ad15b=null){const _0x41390c=a0_0x5977a0,_0x595fdc=_0x41390c(0x202)+_0x5e176d+':'+_0xfd5f27;return new ApiClient(_0x595fdc,_0x1ad15b);}function a0_0x277c(){const _0x411293=['ndq4ntmXm09OCKv3sG','mZu5ntuZnKvKBKzrzG','yxbPs2v5','C2v0qxbPs2v5','Dg9tDhjPBMC','ANnVBG','sfruuca','yxbWBgLJyxrPB24VANnVBG','C3rYAw5NAwz5','ndyZmJa1nhjRwvLkEa','Cgf0y2G','z2v0qxbPs2v5','CMvZCg9UC2u','ofrZD3zxDq','Bg9JywXOB3n0','mZCZody5nwLKEKn1Ca','BwvZC2fNzq','CMvXDwvZDa','Cg9ZDa','yNvPBgrizwfKzxjZ','zxjYB3i','yM9KEq','C3rHDhvZ','vhLWzuvYCM9Y','mtyXnJCZmhPWzg5Oqq','yMfZzvvYBa','Chv0','mZK3nZK0DxPTtKPh','ue9tva','r0vu','y2f0y2G','mtq3oduZEhzzsuXQ','uefuq0G','BMfTzq','Aw5JBhvKzxm','Ahr0CdOVlW'];a0_0x277c=function(){return _0x411293;};return a0_0x277c();}function a0_0x5497(_0x4ebd74,_0x45afbc){_0x4ebd74=_0x4ebd74-0x1e6;const _0x277c5d=a0_0x277c();let _0x54972a=_0x277c5d[_0x4ebd74];if(a0_0x5497['jTBhPH']===undefined){var _0x47cb0c=function(_0x370398){const _0x571e0e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x44dff7='',_0x29e700='';for(let _0x539604=0x0,_0x57afc7,_0x41ed32,_0x2d0228=0x0;_0x41ed32=_0x370398['charAt'](_0x2d0228++);~_0x41ed32&&(_0x57afc7=_0x539604%0x4?_0x57afc7*0x40+_0x41ed32:_0x41ed32,_0x539604++%0x4)?_0x44dff7+=String['fromCharCode'](0xff&_0x57afc7>>(-0x2*_0x539604&0x6)):0x0){_0x41ed32=_0x571e0e['indexOf'](_0x41ed32);}for(let _0x15871e=0x0,_0x188fdd=_0x44dff7['length'];_0x15871e<_0x188fdd;_0x15871e++){_0x29e700+='%'+('00'+_0x44dff7['charCodeAt'](_0x15871e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x29e700);};a0_0x5497['cmmLyU']=_0x47cb0c,a0_0x5497['qBNbxY']={},a0_0x5497['jTBhPH']=!![];}const _0x50db22=_0x277c5d[0x0],_0x17edbd=_0x4ebd74+_0x50db22,_0x4c0eee=a0_0x5497['qBNbxY'][_0x17edbd];return!_0x4c0eee?(_0x54972a=a0_0x5497['cmmLyU'](_0x54972a),a0_0x5497['qBNbxY'][_0x17edbd]=_0x54972a):_0x54972a=_0x4c0eee,_0x54972a;}export default ApiClient;
@@ -1 +1 @@
1
- const a0_0x5dcf52=a0_0x52d8;(function(_0x30fa58,_0x531901){const _0x15c317=a0_0x52d8,_0x356f46=_0x30fa58();while(!![]){try{const _0x49559f=parseInt(_0x15c317(0x1da))/0x1+-parseInt(_0x15c317(0x1bb))/0x2+-parseInt(_0x15c317(0x1c5))/0x3*(-parseInt(_0x15c317(0x1c9))/0x4)+parseInt(_0x15c317(0x1d2))/0x5+parseInt(_0x15c317(0x1cb))/0x6+parseInt(_0x15c317(0x1bc))/0x7*(-parseInt(_0x15c317(0x1cc))/0x8)+-parseInt(_0x15c317(0x1db))/0x9*(parseInt(_0x15c317(0x1ba))/0xa);if(_0x49559f===_0x531901)break;else _0x356f46['push'](_0x356f46['shift']());}catch(_0x369bdb){_0x356f46['push'](_0x356f46['shift']());}}}(a0_0x1622,0x5c308));function a0_0x52d8(_0x32b2ac,_0x482c1c){_0x32b2ac=_0x32b2ac-0x1ae;const _0x162254=a0_0x1622();let _0x52d88b=_0x162254[_0x32b2ac];if(a0_0x52d8['tKtTOq']===undefined){var _0x151aaf=function(_0x18b274){const _0x423c55='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x48e2a5='',_0x302388='';for(let _0x2d342f=0x0,_0x2b8ffa,_0x3950e8,_0x3047f6=0x0;_0x3950e8=_0x18b274['charAt'](_0x3047f6++);~_0x3950e8&&(_0x2b8ffa=_0x2d342f%0x4?_0x2b8ffa*0x40+_0x3950e8:_0x3950e8,_0x2d342f++%0x4)?_0x48e2a5+=String['fromCharCode'](0xff&_0x2b8ffa>>(-0x2*_0x2d342f&0x6)):0x0){_0x3950e8=_0x423c55['indexOf'](_0x3950e8);}for(let _0x3e2e3c=0x0,_0x7f7fe2=_0x48e2a5['length'];_0x3e2e3c<_0x7f7fe2;_0x3e2e3c++){_0x302388+='%'+('00'+_0x48e2a5['charCodeAt'](_0x3e2e3c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x302388);};a0_0x52d8['gqIZdQ']=_0x151aaf,a0_0x52d8['BwYlWD']={},a0_0x52d8['tKtTOq']=!![];}const _0x189d38=_0x162254[0x0],_0x4f8799=_0x32b2ac+_0x189d38,_0x2c72f0=a0_0x52d8['BwYlWD'][_0x4f8799];return!_0x2c72f0?(_0x52d88b=a0_0x52d8['gqIZdQ'](_0x52d88b),a0_0x52d8['BwYlWD'][_0x4f8799]=_0x52d88b):_0x52d88b=_0x2c72f0,_0x52d88b;}function a0_0x1622(){const _0x370bd5=['ndi4mwTeCg1Ouq','ywDLBNq6y29TBxvUAwnHDgLVBG','BwLKzgXLD2fYzq','rvHfq1vusu9ox1nut1bqruq','mtC1nLrIy3bSCW','zw1PDa','nJiZmJK4rhbWvLvO','mJK4ndm4nhbxref6BW','Dw5YzwDPC3rLCKHHBMrSzxi','DhLWzq','q09nuefdveLptL9fvKvova','y2XLyxi','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','mtiYntyWnwnAzMnOCa','su1br0vFr0vorvjbveve','quDftLrFrvjst1i','Bg9N','zxjYB3i','quDftLrFv0fstKLorW','AgfZsgfUzgXLCG','zgf0yq','nZuXmJnKrK1ztLG','mtKZndfKtLfvtuq','y2XLyxjiyw5KBgvYCW','z2v0','twvZC2fNzsb2ywXPzgf0Aw9UigzHAwXLza','Aw5JBhvKzxm','zNvUy3rPB24','y29UDMvYC2f0Aw9UoMnVBxbHy3rPB24','z2v0uMvNAxn0zxjLzfr5CgvZ','AgfUzgXLCNm','AgfUzgXLCL9LCNjVCG','AgfZ','C3bSAwnL','quDftLrFtu9erv9dsefor0ve','mtm2meDfqxnODW','mtuZmJbTDuLorK8','n3DyzunKEa','DxnL','ywDLBNq6zxHLy3v0Aw9Ux3n0B3bWzwq','ChvZAa','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','CMvNAxn0zxjiyw5KBgvY','y2XLyxjnAwrKBgv3yxjL','BwvZC2fNzq','quDftLrFsu1qt1juruq'];a0_0x1622=function(){return _0x370bd5;};return a0_0x1622();}import{EventEmitter}from'events';import{WS_MESSAGE_TYPE}from'../config/constants.js';export class MessageRouter extends EventEmitter{constructor(_0x48e2a5){const _0x10ccc4=a0_0x52d8;super(),this['ws']=_0x48e2a5,this['handlers']=new Map(),this['middleware']=[],this['ws']['on'](_0x10ccc4(0x1c3),_0x302388=>this['route'](_0x302388)),this['registerDefaultHandlers']();}[a0_0x5dcf52(0x1d1)](){const _0x46fe80=a0_0x5dcf52;this[_0x46fe80(0x1c1)](WS_MESSAGE_TYPE['MESSAGE_ADDED'],_0x2d342f=>{const _0x3e4cf4=_0x46fe80;this[_0x3e4cf4(0x1ca)]('agent:message_added',_0x2d342f[_0x3e4cf4(0x1d9)]);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x46fe80(0x1b9)],_0x2b8ffa=>{const _0x154802=_0x46fe80;this[_0x154802(0x1ca)]('agent:mode_changed',_0x2b8ffa);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x46fe80(0x1c8)],_0x3950e8=>{const _0x3e10e3=_0x46fe80;this[_0x3e10e3(0x1ca)](_0x3e10e3(0x1be),_0x3950e8['data']);}),this[_0x46fe80(0x1c1)](WS_MESSAGE_TYPE[_0x46fe80(0x1d4)],_0x3047f6=>{this['emit']('agent:error',_0x3047f6);}),this[_0x46fe80(0x1c1)](WS_MESSAGE_TYPE[_0x46fe80(0x1d7)],_0x3e2e3c=>{this['emit']('agent:warning',_0x3e2e3c);}),this[_0x46fe80(0x1c1)](WS_MESSAGE_TYPE[_0x46fe80(0x1c4)],_0x7f7fe2=>{this['emit']('agent:imported',_0x7f7fe2['agent']);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0x21d25a=>{const _0x1294cf=_0x46fe80;this['emit'](_0x1294cf(0x1c6),_0x21d25a['data']);}),this[_0x46fe80(0x1c1)](WS_MESSAGE_TYPE[_0x46fe80(0x1cf)],_0x4ea850=>{const _0x23eb89=_0x46fe80;this['emit'](_0x23eb89(0x1b3),_0x4ea850[_0x23eb89(0x1d9)]);}),this[_0x46fe80(0x1c1)](WS_MESSAGE_TYPE['IMAGE_RESULT'],_0xe6669b=>{const _0x2d08fd=_0x46fe80;this['emit']('image:result',_0xe6669b[_0x2d08fd(0x1d9)]);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x46fe80(0x1d3)],_0x39b01b=>{const _0x1e48b4=_0x46fe80;this[_0x1e48b4(0x1ca)]('image:generated',_0x39b01b['data']);}),this[_0x46fe80(0x1c1)](WS_MESSAGE_TYPE['ERROR'],_0x14cc87=>{const _0x127733=_0x46fe80;this[_0x127733(0x1ca)](_0x127733(0x1d6),_0x14cc87);});}async['route'](_0x5b1a0e){const _0x3a811d=a0_0x5dcf52;let processedMessage=_0x5b1a0e;for(const _0x43f164 of this['middleware']){try{processedMessage=await _0x43f164(processedMessage);if(!processedMessage)return;}catch(_0x46c302){this[_0x3a811d(0x1ca)]('middleware_error',{'error':_0x46c302,'message':_0x5b1a0e});return;}}const _0x484303=processedMessage['type'];if(!_0x484303){this['emit']('invalid_message',processedMessage);return;}if(this[_0x3a811d(0x1b5)][_0x3a811d(0x1b7)](_0x484303)){const _0x4c6f3f=this['handlers'][_0x3a811d(0x1af)](_0x484303);try{await _0x4c6f3f(processedMessage);}catch(_0x32cfed){this[_0x3a811d(0x1ca)](_0x3a811d(0x1b6),{'error':_0x32cfed,'message':processedMessage,'messageType':_0x484303});}}this['emit']('message:'+_0x484303,processedMessage),this['emit']('message',processedMessage);}['registerHandler'](_0x132708,_0xb89ac8){const _0x33f65a=a0_0x5dcf52;if(typeof _0xb89ac8!==_0x33f65a(0x1b2))throw new Error(_0x33f65a(0x1c0));this['handlers']['set'](_0x132708,_0xb89ac8);}[a0_0x5dcf52(0x1cd)](_0x23438e){const _0x4f93a4=a0_0x5dcf52;this[_0x4f93a4(0x1b5)]['delete'](_0x23438e);}[a0_0x5dcf52(0x1bd)](_0x24707f){const _0x32236d=a0_0x5dcf52;if(typeof _0x24707f!==_0x32236d(0x1b2))throw new Error('Middleware\x20must\x20be\x20a\x20function');this[_0x32236d(0x1c7)][_0x32236d(0x1bf)](_0x24707f);}['removeMiddleware'](_0x53ec2b){const _0x3a9f22=a0_0x5dcf52,_0x9e006f=this['middleware']['indexOf'](_0x53ec2b);_0x9e006f>-0x1&&this['middleware'][_0x3a9f22(0x1b8)](_0x9e006f,0x1);}[a0_0x5dcf52(0x1c2)](){this['middleware']=[];}[a0_0x5dcf52(0x1b4)](){return Array['from'](this['handlers']['keys']());}[a0_0x5dcf52(0x1d8)](_0x4999ee){const _0x5625dc=a0_0x5dcf52;return this['handlers'][_0x5625dc(0x1b7)](_0x4999ee);}[a0_0x5dcf52(0x1ae)](){const _0x560f5c=a0_0x5dcf52;this['handlers'][_0x560f5c(0x1d0)]();}['reset'](){const _0x28e5ee=a0_0x5dcf52;this[_0x28e5ee(0x1ae)](),this[_0x28e5ee(0x1c2)](),this[_0x28e5ee(0x1d1)]();}}export function loggingMiddleware(_0x47605d=console[a0_0x5dcf52(0x1d5)]){return _0x23307f=>{const _0x39f728=a0_0x52d8;return _0x47605d('[MessageRouter]',_0x23307f[_0x39f728(0x1ce)],_0x23307f),_0x23307f;};}export function filterMiddleware(_0x5d23ac){return _0x5305b4=>{const _0xc6769d=a0_0x52d8;if(_0x5d23ac[_0xc6769d(0x1b1)](_0x5305b4[_0xc6769d(0x1ce)]))return _0x5305b4;return null;};}export function transformMiddleware(_0xc9e6ee){return async _0x21cbb3=>{return await _0xc9e6ee(_0x21cbb3);};}export function timestampMiddleware(){return _0x364666=>{return{..._0x364666,'receivedAt':new Date()['toISOString']()};};}export function validationMiddleware(_0x470199){return _0x278d83=>{const _0x581ef0=a0_0x52d8;if(_0x470199(_0x278d83))return _0x278d83;throw new Error(_0x581ef0(0x1b0));};}export default MessageRouter;
1
+ const a0_0x5da8dc=a0_0x518f;(function(_0x3009b2,_0x4db50f){const _0xc9c3bc=a0_0x518f,_0x5d9845=_0x3009b2();while(!![]){try{const _0x2d9d38=-parseInt(_0xc9c3bc(0x114))/0x1*(-parseInt(_0xc9c3bc(0x107))/0x2)+-parseInt(_0xc9c3bc(0xf9))/0x3*(parseInt(_0xc9c3bc(0xec))/0x4)+parseInt(_0xc9c3bc(0xfd))/0x5+parseInt(_0xc9c3bc(0x102))/0x6*(-parseInt(_0xc9c3bc(0x10d))/0x7)+-parseInt(_0xc9c3bc(0xe7))/0x8+parseInt(_0xc9c3bc(0xea))/0x9+-parseInt(_0xc9c3bc(0x105))/0xa;if(_0x2d9d38===_0x4db50f)break;else _0x5d9845['push'](_0x5d9845['shift']());}catch(_0x5aaec3){_0x5d9845['push'](_0x5d9845['shift']());}}}(a0_0x4bd8,0x22e65));import{EventEmitter}from'events';import{WS_MESSAGE_TYPE}from'../config/constants.js';export class MessageRouter extends EventEmitter{constructor(_0x1ab466){const _0x2141e5=a0_0x518f;super(),this['ws']=_0x1ab466,this[_0x2141e5(0x100)]=new Map(),this[_0x2141e5(0x111)]=[],this['ws']['on'](_0x2141e5(0xee),_0x2668d3=>this[_0x2141e5(0xf1)](_0x2668d3)),this[_0x2141e5(0x10b)]();}['registerDefaultHandlers'](){const _0x56e875=a0_0x518f;this[_0x56e875(0x10a)](WS_MESSAGE_TYPE[_0x56e875(0xf0)],_0x9a3df2=>{const _0x2f5a74=_0x56e875;this['emit']('agent:message_added',_0x9a3df2[_0x2f5a74(0x109)]);}),this[_0x56e875(0x10a)](WS_MESSAGE_TYPE[_0x56e875(0x108)],_0x184998=>{const _0x186e13=_0x56e875;this[_0x186e13(0x10e)]('agent:mode_changed',_0x184998);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x56e875(0xf3)],_0x1f3627=>{const _0xd74762=_0x56e875;this['emit'](_0xd74762(0xfb),_0x1f3627['data']);}),this[_0x56e875(0x10a)](WS_MESSAGE_TYPE['AGENT_ERROR'],_0x5ea051=>{const _0x5c33b2=_0x56e875;this[_0x5c33b2(0x10e)]('agent:error',_0x5ea051);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x56e875(0x10f)],_0xd52ab9=>{this['emit']('agent:warning',_0xd52ab9);}),this[_0x56e875(0x10a)](WS_MESSAGE_TYPE['AGENT_IMPORTED'],_0x593ccf=>{const _0x36adda=_0x56e875;this[_0x36adda(0x10e)]('agent:imported',_0x593ccf['agent']);}),this[_0x56e875(0x10a)](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0x374b06=>{this['emit']('agent:communication',_0x374b06['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x56e875(0x10c)],_0x2cc06d=>{const _0x197737=_0x56e875;this[_0x197737(0x10e)](_0x197737(0xf2),_0x2cc06d[_0x197737(0x109)]);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x56e875(0xed)],_0x501e81=>{const _0xc0322e=_0x56e875;this['emit'](_0xc0322e(0x101),_0x501e81['data']);}),this[_0x56e875(0x10a)](WS_MESSAGE_TYPE[_0x56e875(0xf7)],_0x50a55d=>{const _0xbe060a=_0x56e875;this['emit'](_0xbe060a(0xf4),_0x50a55d[_0xbe060a(0x109)]);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x56e875(0xfa)],_0x13fb88=>{this['emit']('error',_0x13fb88);});}async['route'](_0x240a2e){const _0x3a29cb=a0_0x518f;let processedMessage=_0x240a2e;for(const _0x4d2764 of this[_0x3a29cb(0x111)]){try{processedMessage=await _0x4d2764(processedMessage);if(!processedMessage)return;}catch(_0xcfda4d){this[_0x3a29cb(0x10e)](_0x3a29cb(0xe8),{'error':_0xcfda4d,'message':_0x240a2e});return;}}const _0x1aa1b8=processedMessage['type'];if(!_0x1aa1b8){this[_0x3a29cb(0x10e)]('invalid_message',processedMessage);return;}if(this['handlers']['has'](_0x1aa1b8)){const _0x2a7eee=this[_0x3a29cb(0x100)]['get'](_0x1aa1b8);try{await _0x2a7eee(processedMessage);}catch(_0x4a01c7){this[_0x3a29cb(0x10e)]('handler_error',{'error':_0x4a01c7,'message':processedMessage,'messageType':_0x1aa1b8});}}this[_0x3a29cb(0x10e)]('message:'+_0x1aa1b8,processedMessage),this['emit']('message',processedMessage);}['registerHandler'](_0x5d1d6a,_0x299ff0){const _0x50d17e=a0_0x518f;if(typeof _0x299ff0!==_0x50d17e(0xeb))throw new Error(_0x50d17e(0x103));this['handlers'][_0x50d17e(0xe6)](_0x5d1d6a,_0x299ff0);}[a0_0x5da8dc(0x110)](_0x14d322){const _0x5fce2e=a0_0x5da8dc;this[_0x5fce2e(0x100)][_0x5fce2e(0xe9)](_0x14d322);}[a0_0x5da8dc(0xfc)](_0x386541){const _0x67ccaf=a0_0x5da8dc;if(typeof _0x386541!==_0x67ccaf(0xeb))throw new Error('Middleware\x20must\x20be\x20a\x20function');this['middleware'][_0x67ccaf(0x106)](_0x386541);}['removeMiddleware'](_0x5405b5){const _0x1b51d6=a0_0x5da8dc,_0x10268a=this[_0x1b51d6(0x111)][_0x1b51d6(0xef)](_0x5405b5);_0x10268a>-0x1&&this['middleware'][_0x1b51d6(0x112)](_0x10268a,0x1);}[a0_0x5da8dc(0x104)](){this['middleware']=[];}[a0_0x5da8dc(0xf8)](){const _0x5daaee=a0_0x5da8dc;return Array['from'](this[_0x5daaee(0x100)]['keys']());}['hasHandler'](_0xa10005){const _0xb1ed7d=a0_0x5da8dc;return this[_0xb1ed7d(0x100)]['has'](_0xa10005);}[a0_0x5da8dc(0xfe)](){this['handlers']['clear']();}[a0_0x5da8dc(0xf5)](){const _0x21d056=a0_0x5da8dc;this['clearHandlers'](),this[_0x21d056(0x104)](),this['registerDefaultHandlers']();}}export function loggingMiddleware(_0x17183a=console['log']){return _0x9d24a6=>{const _0x5f53f1=a0_0x518f;return _0x17183a(_0x5f53f1(0xff),_0x9d24a6[_0x5f53f1(0x115)],_0x9d24a6),_0x9d24a6;};}export function filterMiddleware(_0x3f5cd9){return _0x50343e=>{const _0xd4a4=a0_0x518f;if(_0x3f5cd9[_0xd4a4(0xf6)](_0x50343e['type']))return _0x50343e;return null;};}export function transformMiddleware(_0x384dda){return async _0x60d05c=>{return await _0x384dda(_0x60d05c);};}export function timestampMiddleware(){return _0x14b06e=>{const _0x4a5413=a0_0x518f;return{..._0x14b06e,'receivedAt':new Date()[_0x4a5413(0x113)]()};};}export function validationMiddleware(_0x48a95b){return _0x4cb733=>{if(_0x48a95b(_0x4cb733))return _0x4cb733;throw new Error('Message\x20validation\x20failed');};}function a0_0x518f(_0x22269b,_0x1c65b4){_0x22269b=_0x22269b-0xe6;const _0x4bd8a9=a0_0x4bd8();let _0x518f81=_0x4bd8a9[_0x22269b];if(a0_0x518f['yrRyVD']===undefined){var _0x1222c1=function(_0xa91c16){const _0x545edd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1ab466='',_0x2668d3='';for(let _0x9a3df2=0x0,_0x184998,_0x1f3627,_0x5ea051=0x0;_0x1f3627=_0xa91c16['charAt'](_0x5ea051++);~_0x1f3627&&(_0x184998=_0x9a3df2%0x4?_0x184998*0x40+_0x1f3627:_0x1f3627,_0x9a3df2++%0x4)?_0x1ab466+=String['fromCharCode'](0xff&_0x184998>>(-0x2*_0x9a3df2&0x6)):0x0){_0x1f3627=_0x545edd['indexOf'](_0x1f3627);}for(let _0xd52ab9=0x0,_0x593ccf=_0x1ab466['length'];_0xd52ab9<_0x593ccf;_0xd52ab9++){_0x2668d3+='%'+('00'+_0x1ab466['charCodeAt'](_0xd52ab9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2668d3);};a0_0x518f['JZrrnt']=_0x1222c1,a0_0x518f['PMGFBj']={},a0_0x518f['yrRyVD']=!![];}const _0x5d20bd=_0x4bd8a9[0x0],_0x23491f=_0x22269b+_0x5d20bd,_0x284649=a0_0x518f['PMGFBj'][_0x23491f];return!_0x284649?(_0x518f81=a0_0x518f['JZrrnt'](_0x518f81),a0_0x518f['PMGFBj'][_0x23491f]=_0x518f81):_0x518f81=_0x284649,_0x518f81;}export default MessageRouter;function a0_0x4bd8(){const _0x5522f1=['mty4mJm5CKfiwvbl','DhLWzq','C2v0','ote2nJa4ANzRywHW','BwLKzgXLD2fYzv9LCNjVCG','zgvSzxrL','mti2nZu4n0fivLL3sq','zNvUy3rPB24','mJe1ntuYCwDRv3Lh','su1br0vFuKvtvuXu','BwvZC2fNzq','Aw5KzxHpzG','tuvtu0fhrv9brerfra','CM91Dgu','y29UDMvYC2f0Aw9UoMnVBxbHy3rPB24','rvHfq1vusu9ox1nut1bqruq','Aw1Hz2u6z2vUzxjHDgvK','CMvZzxq','Aw5JBhvKzxm','su1br0vFr0vorvjbveve','z2v0uMvNAxn0zxjLzfr5CgvZ','m3P4thHrBa','rvjst1i','ywDLBNq6zxHLy3v0Aw9Ux3n0B3bWzwq','DxnL','mtm2nJmWnu1Wt1LvEq','y2XLyxjiyw5KBgvYCW','w01LC3nHz2vsB3v0zxjD','AgfUzgXLCNm','Aw1Hz2u6CMvZDwX0','mte5mJmYnK5Ru21QyW','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','y2XLyxjnAwrKBgv3yxjL','nZiYmdKWq0jgq25z','ChvZAa','mNzeENjrra','quDftLrFtu9erv9dsefor0ve','zgf0yq','CMvNAxn0zxjiyw5KBgvY','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','q09nuefdveLptL9fvKvova','n1rNANDpqq','zw1PDa','quDftLrFv0fstKLorW','Dw5YzwDPC3rLCKHHBMrSzxi','BwLKzgXLD2fYzq','C3bSAwnL','Dg9ju09tDhjPBMC'];a0_0x4bd8=function(){return _0x5522f1;};return a0_0x4bd8();}
@@ -1 +1 @@
1
- const a0_0x17f4e7=a0_0x8291;(function(_0x32c08c,_0x5c60d1){const _0x3e782a=a0_0x8291,_0x7518b5=_0x32c08c();while(!![]){try{const _0x5abc1a=parseInt(_0x3e782a(0x120))/0x1+parseInt(_0x3e782a(0x129))/0x2*(-parseInt(_0x3e782a(0x127))/0x3)+-parseInt(_0x3e782a(0xfc))/0x4*(parseInt(_0x3e782a(0x101))/0x5)+parseInt(_0x3e782a(0x10c))/0x6+-parseInt(_0x3e782a(0xf9))/0x7*(-parseInt(_0x3e782a(0x124))/0x8)+-parseInt(_0x3e782a(0x11a))/0x9*(-parseInt(_0x3e782a(0x11f))/0xa)+-parseInt(_0x3e782a(0xfd))/0xb;if(_0x5abc1a===_0x5c60d1)break;else _0x7518b5['push'](_0x7518b5['shift']());}catch(_0x2ecce0){_0x7518b5['push'](_0x7518b5['shift']());}}}(a0_0x4376,0xe09e1));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';import{ApiClient}from'./apiClient.js';function a0_0x4376(){const _0x3d2261=['Ag9ZDa','u0vtu0LptL9duKvbveu','mte5mtG5me1sDLb2Aq','mtuWndu1oeD4BgngBG','DMvUzg9Ys2v5CW','oNnLC3nPB25jza','s0vzu19hrvq','ntzMDej1Ahi','C2vZC2LVBG','DMvYC2LVBG','nJnOAejuu1e','C2v0qxbPs2v5','mZKYnNjRD2Hpsa','y2XLyxi','sevbtfri','ue9tva','mtG2mJyZy3fWA1LS','yMfZzvvYBa','zxjYB3i','mZy2ntC1mLz3tu5nzW','mtm5mty3mJD0Ewzcsfy','C3vJy2vZCW','DgLTzxn0yw1W','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CW','nu5eA2Lzrq','u2vYDMvYigHLywX0AcbJAgvJAYbMywLSzwq6ia','AgfZtg94AwflzxK','y2HLy2TizwfSDgG','BwfRzvjLCxvLC3q','y3DK','BwvZC2fNzq','ChjVAMvJDerPCG','y3jLyxrLu2vZC2LVBG','BgfZDefJDgL2Axr5','z2v0u2vZC2LVBKLK','nZi4mtKXmLfswLfhEa','z2v0qxbPs2v5u3rHDhvZ','zgvSzxrLqxbPs2v5CW','C3rHDhvZ','s0vzu19trvq','Aw5PDgLHBgL6zq','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CW','revgqvvmvf9it1nu','AxnwywXPza','r0vu','u0vtu0LptL9duKvbvevFrKfjteve','Bg94AwfbCgLlzxK','C2vZC2LVBKLK','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CZOG','mtHOu1bxsKi','u0vtu0LptL9jtLzbteLe','DxbKyxrLqwn0AxzPDhK'];a0_0x4376=function(){return _0x3d2261;};return a0_0x4376();}export class SessionManager{constructor(_0x1f399b=NETWORK[a0_0x17f4e7(0x113)],_0x235840=NETWORK['DEFAULT_PORT']){const _0xcce062=a0_0x17f4e7;this[_0xcce062(0x11d)]=_0x1f399b,this['port']=_0x235840,this[_0xcce062(0xfa)]='http://'+_0x1f399b+':'+_0x235840,this['sessionId']=null,this[_0xcce062(0x108)]=null,this['createdAt']=null,this[_0xcce062(0x10a)]=null,this[_0xcce062(0x117)]=null,this[_0xcce062(0x121)]={},this['apiClient']=new ApiClient(this[_0xcce062(0xfa)],this[_0xcce062(0x117)]);}async[a0_0x17f4e7(0x109)](_0x173209=process[a0_0x17f4e7(0x106)]()){const _0x500435=a0_0x17f4e7;try{const _0x4d2d57=await this[_0x500435(0x105)](_0x500435(0x12c),API_ENDPOINTS[_0x500435(0x11e)],{'projectDir':_0x173209});if(_0x4d2d57['success']&&_0x4d2d57[_0x500435(0x125)])return this['sessionId']=_0x4d2d57[_0x500435(0x125)]['id'],this[_0x500435(0x108)]=_0x173209,this['createdAt']=_0x4d2d57[_0x500435(0x125)]['createdAt'],this['lastActivity']=_0x4d2d57[_0x500435(0x125)][_0x500435(0x10a)],{'success':!![],'sessionId':this['sessionId'],'session':_0x4d2d57['session']};else throw new Error(_0x4d2d57[_0x500435(0xfb)]||ERROR_MESSAGE[_0x500435(0x116)]);}catch(_0xe5beb3){throw new Error(ERROR_MESSAGE[_0x500435(0x116)]+':\x20'+_0xe5beb3[_0x500435(0x107)]);}}async['setApiKeys'](_0x2fe7bf=null,_0x5909c8={}){const _0x57ef40=a0_0x17f4e7;if(!this['sessionId'])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x61d72c=await this[_0x57ef40(0x105)](_0x57ef40(0x12c),API_ENDPOINTS[_0x57ef40(0x110)],{'sessionId':this[_0x57ef40(0x118)],'loxiaApiKey':_0x2fe7bf,'vendorKeys':_0x5909c8});if(_0x61d72c['success'])return this['loxiaApiKey']=_0x2fe7bf,this['vendorKeys']=_0x5909c8,this['apiClient'][_0x57ef40(0x128)](_0x2fe7bf),{'success':!![],'message':_0x61d72c['message'],'hasLoxiaKey':_0x61d72c[_0x57ef40(0x103)],'vendorKeys':_0x61d72c['vendorKeys']};else throw new Error(_0x61d72c[_0x57ef40(0xfb)]||'Failed\x20to\x20set\x20API\x20keys');}catch(_0x74306e){throw new Error('Failed\x20to\x20set\x20API\x20keys:\x20'+_0x74306e[_0x57ef40(0x107)]);}}async[a0_0x17f4e7(0x10d)](){const _0x483510=a0_0x17f4e7;if(!this[_0x483510(0x118)])throw new Error(ERROR_MESSAGE[_0x483510(0x11b)]);try{const _0x125177=API_ENDPOINTS[_0x483510(0x123)]['replace'](_0x483510(0x122),this['sessionId']),_0x3b7558=await this[_0x483510(0x105)]('GET',_0x125177);if(_0x3b7558[_0x483510(0xfe)])return{'success':!![],'hasLoxiaKey':_0x3b7558[_0x483510(0x103)],'vendorKeys':_0x3b7558[_0x483510(0x121)],'updatedAt':_0x3b7558['updatedAt']};else throw new Error(_0x3b7558['error']||_0x483510(0x100));}catch(_0x529b38){throw new Error(_0x483510(0x119)+_0x529b38['message']);}}async[a0_0x17f4e7(0x10e)](){const _0x19b7d0=a0_0x17f4e7;if(!this[_0x19b7d0(0x118)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x9dbcd1=API_ENDPOINTS['KEYS_DELETE']['replace'](':sessionId',this['sessionId']),_0x583d26=await this[_0x19b7d0(0x105)]('DELETE',_0x9dbcd1);if(_0x583d26[_0x19b7d0(0xfe)])return this[_0x19b7d0(0x117)]=null,this['vendorKeys']={},{'success':!![],'message':_0x583d26['message']};else throw new Error(_0x583d26[_0x19b7d0(0xfb)]||_0x19b7d0(0x112));}catch(_0x1f635a){throw new Error('Failed\x20to\x20delete\x20API\x20keys:\x20'+_0x1f635a[_0x19b7d0(0x107)]);}}async[a0_0x17f4e7(0x111)](_0x265d20=process['cwd']()){const _0x2b4172=a0_0x17f4e7;try{const _0x1cd525=await this[_0x2b4172(0x104)]();if(!_0x1cd525['success'])throw new Error(_0x2b4172(0x102)+_0x1cd525['error']);const _0xaec1ea=await this[_0x2b4172(0x109)](_0x265d20);return{'success':!![],'sessionId':_0xaec1ea['sessionId'],'session':_0xaec1ea['session']};}catch(_0x24313f){return{'success':![],'error':_0x24313f['message']};}}async[a0_0x17f4e7(0x104)](){const _0x260e79=a0_0x17f4e7;try{const _0x2b086b=await this[_0x260e79(0x105)](_0x260e79(0x115),API_ENDPOINTS[_0x260e79(0x12b)]);return{'success':!![],'status':_0x2b086b[_0x260e79(0x10f)],'version':_0x2b086b[_0x260e79(0x126)],'timestamp':_0x2b086b[_0x260e79(0xff)]};}catch(_0x3572da){return{'success':![],'error':_0x3572da['message']};}}async['makeRequest'](_0x261027,_0x536352,_0x46469f=null){return this['apiClient']['request'](_0x261027,_0x536352,{'body':_0x46469f});}[a0_0x17f4e7(0x10b)](){const _0x2784ad=a0_0x17f4e7;return this[_0x2784ad(0x118)];}['getProjectDir'](){const _0x5e6da5=a0_0x17f4e7;return this[_0x5e6da5(0x108)];}[a0_0x17f4e7(0x114)](){const _0x18d3d1=a0_0x17f4e7;return this[_0x18d3d1(0x118)]!==null;}[a0_0x17f4e7(0x11c)](){const _0x5b3f4a=a0_0x17f4e7;this[_0x5b3f4a(0x10a)]=new Date()['toISOString']();}['getSessionInfo'](){const _0x563b5e=a0_0x17f4e7;return{'sessionId':this['sessionId'],'projectDir':this['projectDir'],'createdAt':this['createdAt'],'lastActivity':this[_0x563b5e(0x10a)],'hasLoxiaKey':!!this[_0x563b5e(0x117)],'vendorKeysCount':Object['keys'](this[_0x563b5e(0x121)])['length']};}[a0_0x17f4e7(0x12a)](){const _0x3321a0=a0_0x17f4e7;this[_0x3321a0(0x118)]=null,this[_0x3321a0(0x108)]=null,this['createdAt']=null,this[_0x3321a0(0x10a)]=null,this['loxiaApiKey']=null,this[_0x3321a0(0x121)]={};}}function a0_0x8291(_0x291123,_0x18e6b1){_0x291123=_0x291123-0xf9;const _0x437678=a0_0x4376();let _0x82911b=_0x437678[_0x291123];if(a0_0x8291['LOxhwB']===undefined){var _0x532c86=function(_0x7dfc9b){const _0x4e72ac='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1f399b='',_0x235840='';for(let _0x173209=0x0,_0x4d2d57,_0xe5beb3,_0x2fe7bf=0x0;_0xe5beb3=_0x7dfc9b['charAt'](_0x2fe7bf++);~_0xe5beb3&&(_0x4d2d57=_0x173209%0x4?_0x4d2d57*0x40+_0xe5beb3:_0xe5beb3,_0x173209++%0x4)?_0x1f399b+=String['fromCharCode'](0xff&_0x4d2d57>>(-0x2*_0x173209&0x6)):0x0){_0xe5beb3=_0x4e72ac['indexOf'](_0xe5beb3);}for(let _0x5909c8=0x0,_0x61d72c=_0x1f399b['length'];_0x5909c8<_0x61d72c;_0x5909c8++){_0x235840+='%'+('00'+_0x1f399b['charCodeAt'](_0x5909c8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x235840);};a0_0x8291['IzpqDC']=_0x532c86,a0_0x8291['aAkhIl']={},a0_0x8291['LOxhwB']=!![];}const _0x104f3c=_0x437678[0x0],_0x42d612=_0x291123+_0x104f3c,_0x2b9fc=a0_0x8291['aAkhIl'][_0x42d612];return!_0x2b9fc?(_0x82911b=a0_0x8291['IzpqDC'](_0x82911b),a0_0x8291['aAkhIl'][_0x42d612]=_0x82911b):_0x82911b=_0x2b9fc,_0x82911b;}export default SessionManager;
1
+ const a0_0x3d9092=a0_0x2e13;function a0_0x2350(){const _0x263bba=['C2v0qxbPs2v5CW','BwvZC2fNzq','C2vZC2LVBG','ue9tva','mJuZntq2m0n2BMD3uG','nde3odKYmKDer3fkra','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CZOG','BgvUz3rO','mZCYodyXrunUsfPd','y3jLyxrLzef0','Bg94AwfbCgLlzxK','yMfZzvvYBa','yxbPq2XPzw50','u0vtu0LptL9duKvbvevFrKfjteve','s0vzu19eruXfveu','mZiZmZq4mvb4ywH1Dq','CMvXDwvZDa','revgqvvmvf9qt1ju','oNnLC3nPB25jza','Ahr0CdOVlW','BgfZDefJDgL2Axr5','y3jLyxrLu2vZC2LVBG','u0vtu0LptL9jtLzbteLe','mtGXnteZChjAq1bd','z2v0u2vZC2LVBKLUzM8','ChjVAMvJDerPCG','DMvUzg9Ys2v5CW','nhbIDgT4qq','mJa4CKrnqKnm','C3vJy2vZCW','BwfRzvjLCxvLC3q','Cg9YDa','DgLTzxn0yw1W','z2v0qxbPs2v5u3rHDhvZ','mteZmdmWnvDIAg1nsG','DxbKyxrLzef0','y3DK','C2vZC2LVBKLK','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CZOG','r0vu','sevbtfri','zxjYB3i','CMvWBgfJzq','C2v0qxbPs2v5','y2HLy2TizwfSDgG','mtC0mJm4ohjywu9ODa'];a0_0x2350=function(){return _0x263bba;};return a0_0x2350();}(function(_0x42c774,_0x17a968){const _0x9ea373=a0_0x2e13,_0xd592ef=_0x42c774();while(!![]){try{const _0x1d8b48=-parseInt(_0x9ea373(0x1b6))/0x1+parseInt(_0x9ea373(0x19e))/0x2+-parseInt(_0x9ea373(0x1ae))/0x3+-parseInt(_0x9ea373(0x1ba))/0x4*(-parseInt(_0x9ea373(0x193))/0x5)+-parseInt(_0x9ea373(0x1a4))/0x6+parseInt(_0x9ea373(0x1a3))/0x7+-parseInt(_0x9ea373(0x1bb))/0x8*(-parseInt(_0x9ea373(0x1a7))/0x9);if(_0x1d8b48===_0x17a968)break;else _0xd592ef['push'](_0xd592ef['shift']());}catch(_0x1593c7){_0xd592ef['push'](_0xd592ef['shift']());}}}(a0_0x2350,0x8dcb7));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';import{ApiClient}from'./apiClient.js';export class SessionManager{constructor(_0x3a9a12=NETWORK['DEFAULT_HOST'],_0x1340d2=NETWORK[a0_0x3d9092(0x1b0)]){const _0x4aadea=a0_0x3d9092;this['host']=_0x3a9a12,this[_0x4aadea(0x190)]=_0x1340d2,this[_0x4aadea(0x1aa)]=_0x4aadea(0x1b2)+_0x3a9a12+':'+_0x1340d2,this['sessionId']=null,this[_0x4aadea(0x1b8)]=null,this[_0x4aadea(0x1a8)]=null,this[_0x4aadea(0x1b3)]=null,this[_0x4aadea(0x1a9)]=null,this[_0x4aadea(0x1b9)]={},this['apiClient']=new ApiClient(this[_0x4aadea(0x1aa)],this[_0x4aadea(0x1a9)]);}async[a0_0x3d9092(0x1b4)](_0x7a9c2e=process[a0_0x3d9092(0x195)]()){const _0x5edb8f=a0_0x3d9092;try{const _0x55f508=await this['makeRequest'](_0x5edb8f(0x1a2),API_ENDPOINTS['SESSION_CREATE'],{'projectDir':_0x7a9c2e});if(_0x55f508[_0x5edb8f(0x18e)]&&_0x55f508['session'])return this[_0x5edb8f(0x196)]=_0x55f508[_0x5edb8f(0x1a1)]['id'],this[_0x5edb8f(0x1b8)]=_0x7a9c2e,this['createdAt']=_0x55f508['session'][_0x5edb8f(0x1a8)],this['lastActivity']=_0x55f508['session']['lastActivity'],{'success':!![],'sessionId':this[_0x5edb8f(0x196)],'session':_0x55f508[_0x5edb8f(0x1a1)]};else throw new Error(_0x55f508[_0x5edb8f(0x19a)]||ERROR_MESSAGE['SESSION_CREATE_FAILED']);}catch(_0x1c53ff){throw new Error(ERROR_MESSAGE[_0x5edb8f(0x1ac)]+':\x20'+_0x1c53ff['message']);}}async[a0_0x3d9092(0x19f)](_0x20deab=null,_0x53ec71={}){const _0x3a96f5=a0_0x3d9092;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0x3a96f5(0x1b5)]);try{const _0x1b4541=await this[_0x3a96f5(0x18f)](_0x3a96f5(0x1a2),API_ENDPOINTS['KEYS_SET'],{'sessionId':this['sessionId'],'loxiaApiKey':_0x20deab,'vendorKeys':_0x53ec71});if(_0x1b4541['success'])return this[_0x3a96f5(0x1a9)]=_0x20deab,this[_0x3a96f5(0x1b9)]=_0x53ec71,this['apiClient'][_0x3a96f5(0x19c)](_0x20deab),{'success':!![],'message':_0x1b4541[_0x3a96f5(0x1a0)],'hasLoxiaKey':_0x1b4541['hasLoxiaKey'],'vendorKeys':_0x1b4541[_0x3a96f5(0x1b9)]};else throw new Error(_0x1b4541['error']||'Failed\x20to\x20set\x20API\x20keys');}catch(_0x23b61d){throw new Error('Failed\x20to\x20set\x20API\x20keys:\x20'+_0x23b61d[_0x3a96f5(0x1a0)]);}}async[a0_0x3d9092(0x192)](){const _0x389ee1=a0_0x3d9092;if(!this[_0x389ee1(0x196)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x76195=API_ENDPOINTS['KEYS_GET']['replace'](_0x389ee1(0x1b1),this['sessionId']),_0x10ed37=await this[_0x389ee1(0x18f)](_0x389ee1(0x198),_0x76195);if(_0x10ed37[_0x389ee1(0x18e)])return{'success':!![],'hasLoxiaKey':_0x10ed37['hasLoxiaKey'],'vendorKeys':_0x10ed37['vendorKeys'],'updatedAt':_0x10ed37[_0x389ee1(0x194)]};else throw new Error(_0x10ed37[_0x389ee1(0x19a)]||'Failed\x20to\x20get\x20API\x20key\x20status');}catch(_0x54c7bb){throw new Error(_0x389ee1(0x1a5)+_0x54c7bb[_0x389ee1(0x1a0)]);}}async['deleteApiKeys'](){const _0x367364=a0_0x3d9092;if(!this[_0x367364(0x196)])throw new Error(ERROR_MESSAGE[_0x367364(0x1b5)]);try{const _0x5b5c31=API_ENDPOINTS[_0x367364(0x1ad)][_0x367364(0x19b)](':sessionId',this[_0x367364(0x196)]),_0x3d958b=await this[_0x367364(0x18f)]('DELETE',_0x5b5c31);if(_0x3d958b[_0x367364(0x18e)])return this['loxiaApiKey']=null,this['vendorKeys']={},{'success':!![],'message':_0x3d958b[_0x367364(0x1a0)]};else throw new Error(_0x3d958b[_0x367364(0x19a)]||'Failed\x20to\x20delete\x20API\x20keys');}catch(_0xaa84e0){throw new Error(_0x367364(0x197)+_0xaa84e0[_0x367364(0x1a0)]);}}async['initialize'](_0x2cd8ad=process[a0_0x3d9092(0x195)]()){const _0x42e3fe=a0_0x3d9092;try{const _0x34ef8b=await this[_0x42e3fe(0x19d)]();if(!_0x34ef8b['success'])throw new Error('Server\x20health\x20check\x20failed:\x20'+_0x34ef8b['error']);const _0x528145=await this['createSession'](_0x2cd8ad);return{'success':!![],'sessionId':_0x528145[_0x42e3fe(0x196)],'session':_0x528145[_0x42e3fe(0x1a1)]};}catch(_0x253077){return{'success':![],'error':_0x253077[_0x42e3fe(0x1a0)]};}}async[a0_0x3d9092(0x19d)](){const _0x143452=a0_0x3d9092;try{const _0x471fc3=await this[_0x143452(0x18f)](_0x143452(0x198),API_ENDPOINTS[_0x143452(0x199)]);return{'success':!![],'status':_0x471fc3['status'],'version':_0x471fc3['version'],'timestamp':_0x471fc3[_0x143452(0x191)]};}catch(_0x43a75a){return{'success':![],'error':_0x43a75a['message']};}}async[a0_0x3d9092(0x18f)](_0x12a206,_0x30e8e6,_0x4536f8=null){const _0x201c0b=a0_0x3d9092;return this[_0x201c0b(0x1ab)][_0x201c0b(0x1af)](_0x12a206,_0x30e8e6,{'body':_0x4536f8});}['getSessionId'](){const _0x1830fd=a0_0x3d9092;return this[_0x1830fd(0x196)];}['getProjectDir'](){return this['projectDir'];}['isValid'](){return this['sessionId']!==null;}['updateActivity'](){const _0x5c4fd8=a0_0x3d9092;this[_0x5c4fd8(0x1b3)]=new Date()['toISOString']();}[a0_0x3d9092(0x1b7)](){const _0x6a50d4=a0_0x3d9092;return{'sessionId':this[_0x6a50d4(0x196)],'projectDir':this[_0x6a50d4(0x1b8)],'createdAt':this[_0x6a50d4(0x1a8)],'lastActivity':this['lastActivity'],'hasLoxiaKey':!!this['loxiaApiKey'],'vendorKeysCount':Object['keys'](this['vendorKeys'])[_0x6a50d4(0x1a6)]};}['clear'](){const _0xe07dbb=a0_0x3d9092;this[_0xe07dbb(0x196)]=null,this['projectDir']=null,this[_0xe07dbb(0x1a8)]=null,this['lastActivity']=null,this['loxiaApiKey']=null,this[_0xe07dbb(0x1b9)]={};}}function a0_0x2e13(_0x17bc17,_0x35ceed){_0x17bc17=_0x17bc17-0x18e;const _0x235077=a0_0x2350();let _0x2e13f6=_0x235077[_0x17bc17];if(a0_0x2e13['yVPPAG']===undefined){var _0x3de236=function(_0x14a9a2){const _0xe93188='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3a9a12='',_0x1340d2='';for(let _0x7a9c2e=0x0,_0x55f508,_0x1c53ff,_0x20deab=0x0;_0x1c53ff=_0x14a9a2['charAt'](_0x20deab++);~_0x1c53ff&&(_0x55f508=_0x7a9c2e%0x4?_0x55f508*0x40+_0x1c53ff:_0x1c53ff,_0x7a9c2e++%0x4)?_0x3a9a12+=String['fromCharCode'](0xff&_0x55f508>>(-0x2*_0x7a9c2e&0x6)):0x0){_0x1c53ff=_0xe93188['indexOf'](_0x1c53ff);}for(let _0x53ec71=0x0,_0x1b4541=_0x3a9a12['length'];_0x53ec71<_0x1b4541;_0x53ec71++){_0x1340d2+='%'+('00'+_0x3a9a12['charCodeAt'](_0x53ec71)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1340d2);};a0_0x2e13['AxuONr']=_0x3de236,a0_0x2e13['awUWWK']={},a0_0x2e13['yVPPAG']=!![];}const _0x5860fc=_0x235077[0x0],_0x954217=_0x17bc17+_0x5860fc,_0x5d2c39=a0_0x2e13['awUWWK'][_0x954217];return!_0x5d2c39?(_0x2e13f6=a0_0x2e13['AxuONr'](_0x2e13f6),a0_0x2e13['awUWWK'][_0x954217]=_0x2e13f6):_0x2e13f6=_0x5d2c39,_0x2e13f6;}export default SessionManager;
@@ -1 +1 @@
1
- const a0_0x7dfa8f=a0_0xf1b3;(function(_0x209270,_0x2b39c1){const _0x593200=a0_0xf1b3,_0x1c521a=_0x209270();while(!![]){try{const _0x4baad9=parseInt(_0x593200(0x19c))/0x1*(parseInt(_0x593200(0x1a0))/0x2)+-parseInt(_0x593200(0x18a))/0x3*(parseInt(_0x593200(0x177))/0x4)+parseInt(_0x593200(0x19f))/0x5+-parseInt(_0x593200(0x16c))/0x6*(parseInt(_0x593200(0x188))/0x7)+parseInt(_0x593200(0x182))/0x8+-parseInt(_0x593200(0x19e))/0x9+parseInt(_0x593200(0x168))/0xa;if(_0x4baad9===_0x2b39c1)break;else _0x1c521a['push'](_0x1c521a['shift']());}catch(_0x183269){_0x1c521a['push'](_0x1c521a['shift']());}}}(a0_0x25de,0x5f24d));import a0_0x4feb85 from'ws';import{EventEmitter}from'events';function a0_0xf1b3(_0x230d21,_0x2092a4){_0x230d21=_0x230d21-0x15a;const _0x25def6=a0_0x25de();let _0xf1b30d=_0x25def6[_0x230d21];if(a0_0xf1b3['KMQruu']===undefined){var _0x148584=function(_0xc14274){const _0x16f808='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4feb85='',_0x50dd1c='';for(let _0xa9b099=0x0,_0x4eb535,_0x15418b,_0x1ddf1e=0x0;_0x15418b=_0xc14274['charAt'](_0x1ddf1e++);~_0x15418b&&(_0x4eb535=_0xa9b099%0x4?_0x4eb535*0x40+_0x15418b:_0x15418b,_0xa9b099++%0x4)?_0x4feb85+=String['fromCharCode'](0xff&_0x4eb535>>(-0x2*_0xa9b099&0x6)):0x0){_0x15418b=_0x16f808['indexOf'](_0x15418b);}for(let _0x5d6cc0=0x0,_0xf60f72=_0x4feb85['length'];_0x5d6cc0<_0xf60f72;_0x5d6cc0++){_0x50dd1c+='%'+('00'+_0x4feb85['charCodeAt'](_0x5d6cc0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x50dd1c);};a0_0xf1b3['fGXRGh']=_0x148584,a0_0xf1b3['JoFJUO']={},a0_0xf1b3['KMQruu']=!![];}const _0x24af58=_0x25def6[0x0],_0x4098ab=_0x230d21+_0x24af58,_0x2b81c9=a0_0xf1b3['JoFJUO'][_0x4098ab];return!_0x2b81c9?(_0xf1b30d=a0_0xf1b3['fGXRGh'](_0xf1b30d),a0_0xf1b3['JoFJUO'][_0x4098ab]=_0xf1b30d):_0xf1b30d=_0x2b81c9,_0xf1b30d;}import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';function a0_0x25de(){const _0x237469=['nZu5mZa0thH2zNfT','DhLWzq','AgfZ','zw1PDa','zgLZy29UBMvJDa','rvjst1i','odu0t0Tvq0X4','C2v0DxbfDMvUDeHHBMrSzxjZ','m3rPy3DcDG','C2L6zq','C2v0','q29UBMvJDgLVBIb0Aw1LB3v0','B25Jzq','yMfZzvjLy29UBMvJDerLBgf5','AgfUzgXLt3bLBG','q09otKvdveve','z2v0u2vZC2LVBKLK','vw5RBM93BIbYzwfZB24','C3rVCeHLyxj0yMvHDa','AgfUzgXLtwvZC2fNzq','C2v0u3rHDgu','BgvUz3rO','reLtq09otKvdveve','zxjYB3i','CxvLDwvFChjVy2vZC19LCNjVCG','C3rHDgu','mxntDwLrCG','AgfUzgXLq29UBMvJDgLVBKvYCM9Y','nJKZnda3n01WChnXAq','mJK2mJK1nxf5uK5TtW','mteWmZiYngjhD3LwBW','AgfUzgXLrxjYB3i','y29UBMvJDgLVBL9LCNjVCG','ueLorW','Cg9Uz1rPBwvVDxq','C3rYAw5NAwz5','y29UBMvJDa','C2nOzwr1BgvszwnVBM5Ly3q','Dw5ZAgLMDa','AgvHCNrIzwf0sw50zxj2ywW','BwvZC2fNzvf1zxvL','BwLU','CMvJB25Uzwn0qxr0zw1WDhm','BwvZC2fNzq','C2vUza','qwXYzwfKEsbJB25Uzwn0zwqGB3iGy29UBMvJDgLUzW','CgLUz0LUDgvYDMfS','CgvUzgLUz1jLCxvLC3rZ','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','AgfUzgXLug9UzW','CgfYC2vFzxjYB3i','otiZodCZmefzCMLcyq','D3m6lY8','C2vUzfbPBMC','ChvZAa','mZuXmdb4zfHkAeS','Dg9tDhjPBMC','C2vZC2LVBKLK','y2XLyw51Ca','C2HVDwXKuMvJB25Uzwn0','Cg9YDa','BM93','CMvXlq','z2v0','z2vUzxjHDgvszxf1zxn0swq','CgLUz19LCNjVCG','mte1nJuWoenkz2zZrW','CMvJB25Uzwn0vgLTzxi','D2fPDezVCKnVBM5Ly3rPB24','BgfZDfbVBMDszwnLAxzLza','CMvXDwvZDeLKq291BNrLCG','y29UBMvJDgvK','ChjVy2vZC01LC3nHz2vrDwv1zq','sfruuf9usu1ft1vu','zgvSzxrL','v0vcu09ds0vux1jfq09otKvdvf9nvuXusvbmsuvs','CMvJB25Uzwn0rgvSyxK'];a0_0x25de=function(){return _0x237469;};return a0_0x25de();}export class WebSocketManager extends EventEmitter{constructor(_0x50dd1c=NETWORK['DEFAULT_HOST'],_0xa9b099=NETWORK['DEFAULT_PORT'],_0x4eb535={}){const _0x5e95c2=a0_0xf1b3;super(),this['host']=_0x50dd1c,this[_0x5e95c2(0x171)]=_0xa9b099,this['url']=_0x5e95c2(0x169)+_0x50dd1c+':'+_0xa9b099,this['ws']=null,this[_0x5e95c2(0x19b)]=CONNECTION_STATE['DISCONNECTED'],this[_0x5e95c2(0x16e)]=null,this['reconnectAttempts']=0x0,this['reconnectDelay']=_0x4eb535['reconnectDelay']??TIMING[_0x5e95c2(0x165)],this[_0x5e95c2(0x18f)]=this[_0x5e95c2(0x181)],this[_0x5e95c2(0x178)]=null,this['shouldReconnect']=!![],this['heartbeatInterval']=_0x4eb535[_0x5e95c2(0x15c)]??TIMING['WEBSOCKET_PING_INTERVAL'],this[_0x5e95c2(0x163)]=null,this[_0x5e95c2(0x1a4)]=null,this[_0x5e95c2(0x17a)]=null,this['messageQueue']=[],this[_0x5e95c2(0x17b)]=0x0,this['pendingRequests']=new Map();}async['connect'](){const _0x25d05e=a0_0xf1b3;if(this['state']===CONNECTION_STATE[_0x25d05e(0x191)]||this['state']===CONNECTION_STATE['CONNECTING'])return{'success':![],'error':_0x25d05e(0x162)};this['setState'](CONNECTION_STATE['CONNECTING']),this['emit']('connecting');try{return this['ws']=new a0_0x4feb85(this['url']),this[_0x25d05e(0x189)](),await this['waitForConnection'](),{'success':!![]};}catch(_0x15418b){return this[_0x25d05e(0x19d)](_0x15418b),{'success':![],'error':_0x15418b[_0x25d05e(0x160)]};}}[a0_0x7dfa8f(0x179)](){return new Promise((_0x1ddf1e,_0x5d6cc0)=>{const _0x3c7cd6=a0_0xf1b3,_0xf60f72=setTimeout(()=>{const _0x2c549c=a0_0xf1b3;_0x5d6cc0(new Error(_0x2c549c(0x18d)));},TIMING['WEBSOCKET_CONNECT_TIMEOUT']);this['ws']['once']('open',()=>{clearTimeout(_0xf60f72),_0x1ddf1e();}),this['ws'][_0x3c7cd6(0x18e)](_0x3c7cd6(0x199),_0x476bae=>{clearTimeout(_0xf60f72),_0x5d6cc0(_0x476bae);});});}['setupEventHandlers'](){const _0x275bd8=a0_0x7dfa8f;this['ws']['on']('open',()=>this[_0x275bd8(0x190)]()),this['ws']['on']('message',_0x59bc69=>this['handleMessage'](_0x59bc69)),this['ws']['on']('close',(_0x290314,_0x50fa81)=>this['handleClose'](_0x290314,_0x50fa81)),this['ws']['on']('error',_0x231da2=>this['handleError'](_0x231da2));}['handleOpen'](){const _0x1e0e82=a0_0x7dfa8f;this['setState'](CONNECTION_STATE[_0x1e0e82(0x191)]),this[_0x1e0e82(0x15f)]=0x0,this['reconnectDelay']=this['baseReconnectDelay'],this[_0x1e0e82(0x185)](_0x1e0e82(0x17c)),this['startHeartbeat'](),this['processMessageQueue']();}[a0_0x7dfa8f(0x195)](_0x2a79d2){const _0x5072f5=a0_0x7dfa8f;try{const _0x2adf74=JSON['parse'](_0x2a79d2[_0x5072f5(0x16d)]());if(_0x2adf74['type']===WS_MESSAGE_TYPE['PONG']){this['handlePong']();return;}if(_0x2adf74[_0x5072f5(0x183)]===WS_MESSAGE_TYPE[_0x5072f5(0x191)]){this[_0x5072f5(0x185)]('welcome',_0x2adf74);return;}if(_0x2adf74['type']===WS_MESSAGE_TYPE['SESSION_JOINED']){this['sessionId']=_0x2adf74['sessionId'],this['emit']('session_joined',_0x2adf74);return;}if(_0x2adf74['type']===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this['handleOrchestratorResponse'](_0x2adf74);return;}this[_0x5072f5(0x185)](_0x5072f5(0x160),_0x2adf74),_0x2adf74['type']&&this['emit'](_0x2adf74['type'],_0x2adf74);}catch(_0x9dca98){this['emit'](_0x5072f5(0x167),{'error':_0x9dca98,'data':_0x2a79d2});}}['handleClose'](_0x46a56d,_0x43591c){const _0x4d7eab=a0_0x7dfa8f;this['cleanup']();const _0x3e0c80=_0x43591c['toString']()||_0x4d7eab(0x193);this['emit']('disconnected',{'code':_0x46a56d,'reason':_0x3e0c80}),this[_0x4d7eab(0x170)]&&_0x46a56d!==0x3e8?this[_0x4d7eab(0x15a)]():this['setState'](CONNECTION_STATE[_0x4d7eab(0x198)]);}[a0_0x7dfa8f(0x1a1)](_0x49f5e0){const _0x313f11=a0_0x7dfa8f;this['emit'](_0x313f11(0x199),_0x49f5e0);}[a0_0x7dfa8f(0x19d)](_0x2d79d6){const _0x1fa228=a0_0x7dfa8f;this['setState'](CONNECTION_STATE[_0x1fa228(0x187)]),this['emit'](_0x1fa228(0x1a2),_0x2d79d6),this['shouldReconnect']&&this['scheduleReconnect']();}[a0_0x7dfa8f(0x15a)](){const _0x5ea0ae=a0_0x7dfa8f;if(this[_0x5ea0ae(0x178)])return;this[_0x5ea0ae(0x196)](CONNECTION_STATE['RECONNECTING']),this['reconnectAttempts']++;const _0x599004=Math[_0x5ea0ae(0x15e)](this[_0x5ea0ae(0x181)]*Math['pow'](TIMING[_0x5ea0ae(0x180)],this['reconnectAttempts']-0x1),TIMING['WEBSOCKET_RECONNECT_MAX_DELAY']);this[_0x5ea0ae(0x185)]('reconnecting',{'attempt':this['reconnectAttempts'],'delay':_0x599004}),this['reconnectTimer']=setTimeout(()=>{const _0x2b05d7=_0x5ea0ae;this[_0x2b05d7(0x178)]=null,this[_0x2b05d7(0x1a6)]();},_0x599004);}['startHeartbeat'](){const _0x11944d=a0_0x7dfa8f;this[_0x11944d(0x194)](),this[_0x11944d(0x163)]=setInterval(()=>{const _0x3c27f1=_0x11944d;this['state']===CONNECTION_STATE[_0x3c27f1(0x191)]&&this[_0x3c27f1(0x16a)]();},this['heartbeatInterval']);}['stopHeartbeat'](){const _0x155eb6=a0_0x7dfa8f;this[_0x155eb6(0x163)]&&(clearInterval(this['pingInterval']),this[_0x155eb6(0x163)]=null),this['pongTimeout']&&(clearTimeout(this[_0x155eb6(0x1a4)]),this['pongTimeout']=null);}[a0_0x7dfa8f(0x16a)](){const _0xbf3b86=a0_0x7dfa8f;if(this[_0xbf3b86(0x19b)]!==CONNECTION_STATE['CONNECTED'])return;try{this[_0xbf3b86(0x161)]({'type':WS_MESSAGE_TYPE[_0xbf3b86(0x1a3)]}),this['pongTimeout']=setTimeout(()=>{this['handlePongTimeout']();},TIMING['WEBSOCKET_PONG_TIMEOUT']);}catch(_0x1adcdf){this[_0xbf3b86(0x185)](_0xbf3b86(0x176),_0x1adcdf);}}[a0_0x7dfa8f(0x166)](){const _0x4d3c87=a0_0x7dfa8f;this[_0x4d3c87(0x17a)]=Date['now'](),this['pongTimeout']&&(clearTimeout(this['pongTimeout']),this[_0x4d3c87(0x1a4)]=null);}['handlePongTimeout'](){const _0x497f6f=a0_0x7dfa8f;this[_0x497f6f(0x185)]('heartbeat_timeout'),this[_0x497f6f(0x186)](),this[_0x497f6f(0x170)]&&this['scheduleReconnect']();}['joinSession'](_0x208dc1){this['sessionId']=_0x208dc1,this['send']({'type':WS_MESSAGE_TYPE['JOIN_SESSION'],'sessionId':_0x208dc1});}['sendOrchestratorRequest'](_0x35e110,_0x27050c,_0x171635){const _0x4f9400=a0_0x7dfa8f,_0x59c6ac=this[_0x4f9400(0x175)](),_0x520a38={'type':WS_MESSAGE_TYPE['ORCHESTRATOR_REQUEST'],'requestId':_0x59c6ac,'action':_0x35e110,'payload':_0x27050c,'projectDir':_0x171635};return new Promise((_0x39e0bd,_0x86a70)=>{const _0xcb66c7=_0x4f9400;this['pendingRequests'][_0xcb66c7(0x18c)](_0x59c6ac,{'resolve':_0x39e0bd,'reject':_0x86a70,'timestamp':Date['now']()});try{this['send'](_0x520a38);}catch(_0xa7a578){this['pendingRequests']['delete'](_0x59c6ac),_0x86a70(_0xa7a578);}setTimeout(()=>{const _0x2a94cb=_0xcb66c7;this['pendingRequests'][_0x2a94cb(0x184)](_0x59c6ac)&&(this['pendingRequests'][_0x2a94cb(0x17f)](_0x59c6ac),_0x86a70(new Error('Request\x20timeout')));},TIMING[_0xcb66c7(0x17e)]);});}['handleOrchestratorResponse'](_0x4926b0){const _0x306a84=a0_0x7dfa8f,{requestId:_0x5bdd1c,response:_0x28edb3,error:_0x47f3e6}=_0x4926b0;if(this[_0x306a84(0x164)][_0x306a84(0x184)](_0x5bdd1c)){const {resolve:_0x219230,reject:_0x176474}=this[_0x306a84(0x164)][_0x306a84(0x174)](_0x5bdd1c);this[_0x306a84(0x164)][_0x306a84(0x17f)](_0x5bdd1c),_0x47f3e6?_0x176474(new Error(_0x47f3e6)):_0x219230(_0x28edb3);}}[a0_0x7dfa8f(0x161)](_0x33e387){const _0x10cf25=a0_0x7dfa8f;if(this[_0x10cf25(0x19b)]!==CONNECTION_STATE[_0x10cf25(0x191)]){this[_0x10cf25(0x15d)][_0x10cf25(0x16b)](_0x33e387);return;}try{this['ws']['send'](JSON[_0x10cf25(0x1a5)](_0x33e387));}catch(_0x21e8f9){this[_0x10cf25(0x185)]('send_error',_0x21e8f9);throw _0x21e8f9;}}[a0_0x7dfa8f(0x17d)](){const _0x220304=a0_0x7dfa8f;while(this['messageQueue'][_0x220304(0x197)]>0x0&&this['state']===CONNECTION_STATE['CONNECTED']){const _0x4240ec=this['messageQueue']['shift']();try{this['ws']['send'](JSON[_0x220304(0x1a5)](_0x4240ec));}catch(_0x399627){this['emit'](_0x220304(0x19a),_0x399627),this['messageQueue'][_0x220304(0x15b)](_0x4240ec);break;}}}['disconnect'](){const _0xc1c762=a0_0x7dfa8f;this[_0xc1c762(0x170)]=![],this[_0xc1c762(0x16f)]();if(this['ws']){try{this['ws']['close'](0x3e8,'Client\x20disconnect');}catch(_0x3b6ef6){}this['ws']=null;}this[_0xc1c762(0x196)](CONNECTION_STATE[_0xc1c762(0x198)]);}[a0_0x7dfa8f(0x16f)](){const _0x45596b=a0_0x7dfa8f;this['stopHeartbeat'](),this[_0x45596b(0x178)]&&(clearTimeout(this['reconnectTimer']),this[_0x45596b(0x178)]=null),this['ws']&&this['ws']['removeAllListeners']();}['setState'](_0x397f9f){const _0x3ad050=a0_0x7dfa8f,_0xc3e4f8=this['state'];this['state']=_0x397f9f,_0xc3e4f8!==_0x397f9f&&this[_0x3ad050(0x185)]('state_change',{'oldState':_0xc3e4f8,'newState':_0x397f9f});}[a0_0x7dfa8f(0x175)](){const _0x2aaa64=a0_0x7dfa8f;return this['requestIdCounter']++,_0x2aaa64(0x173)+Date[_0x2aaa64(0x172)]()+'-'+this[_0x2aaa64(0x17b)];}['getState'](){return this['state'];}['isConnected'](){const _0x114152=a0_0x7dfa8f;return this[_0x114152(0x19b)]===CONNECTION_STATE['CONNECTED'];}[a0_0x7dfa8f(0x192)](){const _0x3333da=a0_0x7dfa8f;return this[_0x3333da(0x16e)];}['getStats'](){const _0x32dea0=a0_0x7dfa8f;return{'state':this[_0x32dea0(0x19b)],'sessionId':this['sessionId'],'reconnectAttempts':this['reconnectAttempts'],'queuedMessages':this['messageQueue'][_0x32dea0(0x197)],'pendingRequests':this['pendingRequests'][_0x32dea0(0x18b)],'lastPongReceived':this[_0x32dea0(0x17a)]};}}export default WebSocketManager;
1
+ const a0_0x2f777d=a0_0x1324;(function(_0x3a0a00,_0x333590){const _0x187822=a0_0x1324,_0x5958ea=_0x3a0a00();while(!![]){try{const _0x175cae=parseInt(_0x187822(0xcb))/0x1+parseInt(_0x187822(0xc4))/0x2+-parseInt(_0x187822(0x96))/0x3*(-parseInt(_0x187822(0x91))/0x4)+parseInt(_0x187822(0xbd))/0x5*(parseInt(_0x187822(0xae))/0x6)+parseInt(_0x187822(0x98))/0x7*(-parseInt(_0x187822(0x95))/0x8)+parseInt(_0x187822(0x8a))/0x9+-parseInt(_0x187822(0x7d))/0xa;if(_0x175cae===_0x333590)break;else _0x5958ea['push'](_0x5958ea['shift']());}catch(_0x46d5df){_0x5958ea['push'](_0x5958ea['shift']());}}}(a0_0x446f,0x1dc78));function a0_0x446f(){const _0x4b6edd=['Dw5ZAgLMDa','C2v0','q29UBMvJDgLVBIb0Aw1LB3v0','BM93','CgLUz0LUDgvYDMfS','revgqvvmvf9qt1ju','y29UBMvJDa','t1jdsevtvfjbve9sx1jfu1bptLnf','zw1PDa','D3m6lY8','v0vcu09ds0vux1bptKDFveLnru9vva','ChjVy2vZC01LC3nHz2vrDwv1zq','mZu2mda0ChfpvfjK','AgfUzgXLrxjYB3i','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','z2vUzxjHDgvszxf1zxn0swq','sfruuf9usu1ft1vu','AgfUzgXLq29UBMvJDgLVBKvYCM9Y','v0vcu09ds0vux1bjtKDFsu5urvjwquW','ngzHAhfqAa','CgvUzgLUz1jLCxvLC3rZ','q09otKvdveve','BwvZC2fNzq','ndbiBurku0m','ndq2mJGZCvrrrevX','CMvJB25Uzwn0vgLTzxi','mZiYmtmZCKHJwfDM','C3rVCeHLyxj0yMvHDa','AgfUzgXLug9Uz1rPBwvVDxq','BwvZC2fNzvf1zxvL','CMvJB25Uzwn0rgvSyxK','AxndB25Uzwn0zwq','AgfUzgXLug9UzW','CMvTB3zLqwXStgLZDgvUzxjZ','ue9orW','u0vtu0LptL9kt0Loruq','AgfUzgXLtwvZC2fNzq','t1jdsevtvfjbve9sx1jfuvvfu1q','q09otKvdveLorW','q2XPzw50igrPC2nVBM5Ly3q','C3rHDgvFy2HHBMDL','AgfUzgXLt3jJAgvZDhjHDg9YuMvZCg9UC2u','C2vUzfbPBMC','BwLU','ChvZAa','y2XLyw51Ca','DxjS','z2v0','odaXnNvcr0Xwzq','C2vUza','CMvXDwvZDeLKq291BNrLCG','C2HVDwXKuMvJB25Uzwn0','C2vUze9Yy2HLC3rYyxrVCLjLCxvLC3q','C2v0u3rHDgu','zgLZy29UBMvJDa','AgfUzgXLq2XVC2u','C2vZC2LVBL9QB2LUzwq','C2vZC2LVBKLK','C2nOzwr1BgvszwnVBM5Ly3q','y29UBMvJDgLUzW','Cg93','AgfUzgXLt3bLBG','AgvHCNrIzwf0x3rPBwvVDxq','nZq1BgLJEufY','C3rHCNrizwfYDgjLyxq','CMvXlq','DhLWzq','v0vcu09ds0vux1jfq09otKvdvf9nqvHFrevmqvK','D2fPDezVCKnVBM5Ly3rPB24','v0vcu09ds0vux0nptK5fq1rFveLnru9vva','mZy3ndeWru9fsxbd','reLtq09otKvdveve','zxjYB3i','zgvSzxrL','CgfYC2u','AgvHCNrIzwf0sw50zxj2ywW','C2v0DxbfDMvUDeHHBMrSzxjZ','mJq0mdDAsNjIqu4','ueLorW','Cg9Uz1rPBwvVDxq','CMvJB25Uzwn0qxr0zw1WDhm','C3rHDgu','uKvdt05orunusu5h','mJqZndiYmhrrALjfwa'];a0_0x446f=function(){return _0x4b6edd;};return a0_0x446f();}import a0_0x45b8ad from'ws';import{EventEmitter}from'events';import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';export class WebSocketManager extends EventEmitter{constructor(_0xaf7ec3=NETWORK['DEFAULT_HOST'],_0x1f3028=NETWORK[a0_0x2f777d(0x83)],_0xf8cc1e={}){const _0x3aa27e=a0_0x2f777d;super(),this['host']=_0xaf7ec3,this['port']=_0x1f3028,this[_0x3aa27e(0xac)]=_0x3aa27e(0x87)+_0xaf7ec3+':'+_0x1f3028,this['ws']=null,this['state']=CONNECTION_STATE[_0x3aa27e(0xc5)],this[_0x3aa27e(0xb7)]=null,this[_0x3aa27e(0x7a)]=0x0,this[_0x3aa27e(0x9c)]=_0xf8cc1e[_0x3aa27e(0x9c)]??TIMING[_0x3aa27e(0x8c)],this['baseReconnectDelay']=this['reconnectDelay'],this['reconnectTimer']=null,this[_0x3aa27e(0xb1)]=!![],this[_0x3aa27e(0xc9)]=_0xf8cc1e[_0x3aa27e(0xc9)]??TIMING[_0x3aa27e(0x90)],this[_0x3aa27e(0x82)]=null,this['pongTimeout']=null,this['lastPongReceived']=null,this[_0x3aa27e(0x9b)]=[],this['requestIdCounter']=0x0,this[_0x3aa27e(0x92)]=new Map();}async[a0_0x2f777d(0x84)](){const _0x56eee6=a0_0x2f777d;if(this[_0x56eee6(0x7b)]===CONNECTION_STATE['CONNECTED']||this['state']===CONNECTION_STATE['CONNECTING'])return{'success':![],'error':'Already\x20connected\x20or\x20connecting'};this[_0x56eee6(0xb3)](CONNECTION_STATE[_0x56eee6(0xa4)]),this['emit'](_0x56eee6(0xb9));try{return this['ws']=new a0_0x45b8ad(this[_0x56eee6(0xac)]),this[_0x56eee6(0xca)](),await this['waitForConnection'](),{'success':!![]};}catch(_0x412865){return this[_0x56eee6(0x8f)](_0x412865),{'success':![],'error':_0x412865[_0x56eee6(0x94)]};}}[a0_0x2f777d(0xc2)](){return new Promise((_0x585b06,_0x53ecd5)=>{const _0x4c8779=a0_0x1324,_0x277b30=setTimeout(()=>{const _0x19e0ad=a0_0x1324;_0x53ecd5(new Error(_0x19e0ad(0x80)));},TIMING[_0x4c8779(0xc3)]);this['ws']['once']('open',()=>{clearTimeout(_0x277b30),_0x585b06();}),this['ws']['once'](_0x4c8779(0xc6),_0x5e44de=>{clearTimeout(_0x277b30),_0x53ecd5(_0x5e44de);});});}['setupEventHandlers'](){const _0x418acc=a0_0x2f777d;this['ws']['on']('open',()=>this[_0x418acc(0xbb)]()),this['ws']['on']('message',_0x3a798f=>this[_0x418acc(0xa2)](_0x3a798f)),this['ws']['on']('close',(_0x5e12ad,_0x33f26a)=>this[_0x418acc(0xb5)](_0x5e12ad,_0x33f26a)),this['ws']['on'](_0x418acc(0xc6),_0x3d55dc=>this[_0x418acc(0x8b)](_0x3d55dc));}[a0_0x2f777d(0xbb)](){const _0x37c83f=a0_0x2f777d;this['setState'](CONNECTION_STATE['CONNECTED']),this['reconnectAttempts']=0x0,this['reconnectDelay']=this['baseReconnectDelay'],this[_0x37c83f(0x86)]('connected'),this['startHeartbeat'](),this[_0x37c83f(0x89)]();}[a0_0x2f777d(0xa2)](_0x3698ad){const _0x38e229=a0_0x2f777d;try{const _0x449dfd=JSON[_0x38e229(0xc8)](_0x3698ad['toString']());if(_0x449dfd['type']===WS_MESSAGE_TYPE[_0x38e229(0xa0)]){this[_0x38e229(0x9e)]();return;}if(_0x449dfd['type']===WS_MESSAGE_TYPE['CONNECTED']){this['emit']('welcome',_0x449dfd);return;}if(_0x449dfd[_0x38e229(0xc0)]===WS_MESSAGE_TYPE[_0x38e229(0xa1)]){this['sessionId']=_0x449dfd['sessionId'],this[_0x38e229(0x86)](_0x38e229(0xb6),_0x449dfd);return;}if(_0x449dfd['type']===WS_MESSAGE_TYPE[_0x38e229(0x85)]){this[_0x38e229(0xa7)](_0x449dfd);return;}this['emit'](_0x38e229(0x94),_0x449dfd),_0x449dfd['type']&&this[_0x38e229(0x86)](_0x449dfd['type'],_0x449dfd);}catch(_0x68f4cb){this['emit']('parse_error',{'error':_0x68f4cb,'data':_0x3698ad});}}['handleClose'](_0x5e8b55,_0x399602){const _0x5954ec=a0_0x2f777d;this[_0x5954ec(0xab)]();const _0x59abeb=_0x399602['toString']()||'Unknown\x20reason';this[_0x5954ec(0x86)]('disconnected',{'code':_0x5e8b55,'reason':_0x59abeb}),this['shouldReconnect']&&_0x5e8b55!==0x3e8?this['scheduleReconnect']():this[_0x5954ec(0xb3)](CONNECTION_STATE[_0x5954ec(0xc5)]);}['handleError'](_0x32f476){const _0x3b5f6b=a0_0x2f777d;this['emit'](_0x3b5f6b(0xc6),_0x32f476);}[a0_0x2f777d(0x8f)](_0x4357e2){const _0xfe8c64=a0_0x2f777d;this[_0xfe8c64(0xb3)](CONNECTION_STATE['ERROR']),this[_0xfe8c64(0x86)]('connection_error',_0x4357e2),this[_0xfe8c64(0xb1)]&&this['scheduleReconnect']();}[a0_0x2f777d(0xb8)](){const _0x23bc1c=a0_0x2f777d;if(this[_0x23bc1c(0x97)])return;this['setState'](CONNECTION_STATE[_0x23bc1c(0x7c)]),this['reconnectAttempts']++;const _0x975f84=Math[_0x23bc1c(0xa9)](this['reconnectDelay']*Math[_0x23bc1c(0xba)](TIMING['WEBSOCKET_RECONNECT_MULTIPLIER'],this[_0x23bc1c(0x7a)]-0x1),TIMING[_0x23bc1c(0xc1)]);this[_0x23bc1c(0x86)]('reconnecting',{'attempt':this[_0x23bc1c(0x7a)],'delay':_0x975f84}),this['reconnectTimer']=setTimeout(()=>{this['reconnectTimer']=null,this['connect']();},_0x975f84);}[a0_0x2f777d(0xbe)](){const _0x22a8fc=a0_0x2f777d;this[_0x22a8fc(0x99)](),this['pingInterval']=setInterval(()=>{const _0x25b935=_0x22a8fc;this[_0x25b935(0x7b)]===CONNECTION_STATE[_0x25b935(0x93)]&&this[_0x25b935(0xa8)]();},this[_0x22a8fc(0xc9)]);}['stopHeartbeat'](){const _0x4e1f5d=a0_0x2f777d;this['pingInterval']&&(clearInterval(this[_0x4e1f5d(0x82)]),this['pingInterval']=null),this['pongTimeout']&&(clearTimeout(this['pongTimeout']),this[_0x4e1f5d(0x79)]=null);}[a0_0x2f777d(0xa8)](){const _0x4e1bf5=a0_0x2f777d;if(this['state']!==CONNECTION_STATE[_0x4e1bf5(0x93)])return;try{this['send']({'type':WS_MESSAGE_TYPE[_0x4e1bf5(0x78)]}),this[_0x4e1bf5(0x79)]=setTimeout(()=>{const _0x864b1c=_0x4e1bf5;this[_0x864b1c(0x9a)]();},TIMING[_0x4e1bf5(0x88)]);}catch(_0x17bf96){this[_0x4e1bf5(0x86)]('ping_error',_0x17bf96);}}['handlePong'](){const _0x6cecf=a0_0x2f777d;this['lastPongReceived']=Date[_0x6cecf(0x81)](),this[_0x6cecf(0x79)]&&(clearTimeout(this['pongTimeout']),this['pongTimeout']=null);}['handlePongTimeout'](){const _0x569f1e=a0_0x2f777d;this[_0x569f1e(0x86)](_0x569f1e(0xbc)),this[_0x569f1e(0xb4)](),this[_0x569f1e(0xb1)]&&this[_0x569f1e(0xb8)]();}['joinSession'](_0x41d8dc){this['sessionId']=_0x41d8dc,this['send']({'type':WS_MESSAGE_TYPE['JOIN_SESSION'],'sessionId':_0x41d8dc});}[a0_0x2f777d(0xb2)](_0x2a1704,_0x1114a7,_0x399840){const _0xdd6ac9=a0_0x2f777d,_0x4770fc=this['generateRequestId'](),_0x890ba={'type':WS_MESSAGE_TYPE[_0xdd6ac9(0xa3)],'requestId':_0x4770fc,'action':_0x2a1704,'payload':_0x1114a7,'projectDir':_0x399840};return new Promise((_0x105aa9,_0x594a4d)=>{const _0x1eb578=_0xdd6ac9;this[_0x1eb578(0x92)][_0x1eb578(0x7f)](_0x4770fc,{'resolve':_0x105aa9,'reject':_0x594a4d,'timestamp':Date[_0x1eb578(0x81)]()});try{this['send'](_0x890ba);}catch(_0x3bf668){this[_0x1eb578(0x92)][_0x1eb578(0xc7)](_0x4770fc),_0x594a4d(_0x3bf668);}setTimeout(()=>{const _0x2ee99a=_0x1eb578;this[_0x2ee99a(0x92)]['has'](_0x4770fc)&&(this[_0x2ee99a(0x92)]['delete'](_0x4770fc),_0x594a4d(new Error('Request\x20timeout')));},TIMING[_0x1eb578(0x8e)]);});}['handleOrchestratorResponse'](_0x244ce7){const _0x488d19=a0_0x2f777d,{requestId:_0x308d6e,response:_0xfb75ea,error:_0x30453d}=_0x244ce7;if(this[_0x488d19(0x92)]['has'](_0x308d6e)){const {resolve:_0x263652,reject:_0x2f967d}=this['pendingRequests'][_0x488d19(0xad)](_0x308d6e);this['pendingRequests'][_0x488d19(0xc7)](_0x308d6e),_0x30453d?_0x2f967d(new Error(_0x30453d)):_0x263652(_0xfb75ea);}}[a0_0x2f777d(0xaf)](_0x3702ff){const _0xad16f0=a0_0x2f777d;if(this['state']!==CONNECTION_STATE['CONNECTED']){this[_0xad16f0(0x9b)][_0xad16f0(0xaa)](_0x3702ff);return;}try{this['ws'][_0xad16f0(0xaf)](JSON['stringify'](_0x3702ff));}catch(_0x399038){this[_0xad16f0(0x86)]('send_error',_0x399038);throw _0x399038;}}[a0_0x2f777d(0x89)](){const _0x67d667=a0_0x2f777d;while(this['messageQueue']['length']>0x0&&this[_0x67d667(0x7b)]===CONNECTION_STATE[_0x67d667(0x93)]){const _0x4753c6=this[_0x67d667(0x9b)]['shift']();try{this['ws']['send'](JSON['stringify'](_0x4753c6));}catch(_0x3901a1){this['emit']('queue_process_error',_0x3901a1),this[_0x67d667(0x9b)][_0x67d667(0x7e)](_0x4753c6);break;}}}[a0_0x2f777d(0xb4)](){const _0x45af9c=a0_0x2f777d;this[_0x45af9c(0xb1)]=![],this[_0x45af9c(0xab)]();if(this['ws']){try{this['ws']['close'](0x3e8,_0x45af9c(0xa5));}catch(_0x546ee5){}this['ws']=null;}this[_0x45af9c(0xb3)](CONNECTION_STATE[_0x45af9c(0xc5)]);}[a0_0x2f777d(0xab)](){const _0x4921ca=a0_0x2f777d;this['stopHeartbeat'](),this[_0x4921ca(0x97)]&&(clearTimeout(this['reconnectTimer']),this[_0x4921ca(0x97)]=null),this['ws']&&this['ws'][_0x4921ca(0x9f)]();}[a0_0x2f777d(0xb3)](_0x3cbe5c){const _0x29fcd3=a0_0x2f777d,_0x52e0f1=this['state'];this['state']=_0x3cbe5c,_0x52e0f1!==_0x3cbe5c&&this[_0x29fcd3(0x86)](_0x29fcd3(0xa6),{'oldState':_0x52e0f1,'newState':_0x3cbe5c});}[a0_0x2f777d(0x8d)](){const _0x2f8a33=a0_0x2f777d;return this[_0x2f8a33(0xb0)]++,_0x2f8a33(0xbf)+Date[_0x2f8a33(0x81)]()+'-'+this['requestIdCounter'];}['getState'](){const _0x3bc114=a0_0x2f777d;return this[_0x3bc114(0x7b)];}[a0_0x2f777d(0x9d)](){const _0x19d7e1=a0_0x2f777d;return this['state']===CONNECTION_STATE[_0x19d7e1(0x93)];}['getSessionId'](){const _0x4ee239=a0_0x2f777d;return this[_0x4ee239(0xb7)];}['getStats'](){const _0x216395=a0_0x2f777d;return{'state':this[_0x216395(0x7b)],'sessionId':this['sessionId'],'reconnectAttempts':this['reconnectAttempts'],'queuedMessages':this[_0x216395(0x9b)]['length'],'pendingRequests':this['pendingRequests']['size'],'lastPongReceived':this['lastPongReceived']};}}function a0_0x1324(_0x4b97cf,_0x5147b5){_0x4b97cf=_0x4b97cf-0x78;const _0x446fcd=a0_0x446f();let _0x132415=_0x446fcd[_0x4b97cf];if(a0_0x1324['kzWFcW']===undefined){var _0x3935e8=function(_0x50b681){const _0xfcd109='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x45b8ad='',_0xaf7ec3='';for(let _0x1f3028=0x0,_0xf8cc1e,_0x412865,_0x585b06=0x0;_0x412865=_0x50b681['charAt'](_0x585b06++);~_0x412865&&(_0xf8cc1e=_0x1f3028%0x4?_0xf8cc1e*0x40+_0x412865:_0x412865,_0x1f3028++%0x4)?_0x45b8ad+=String['fromCharCode'](0xff&_0xf8cc1e>>(-0x2*_0x1f3028&0x6)):0x0){_0x412865=_0xfcd109['indexOf'](_0x412865);}for(let _0x53ecd5=0x0,_0x277b30=_0x45b8ad['length'];_0x53ecd5<_0x277b30;_0x53ecd5++){_0xaf7ec3+='%'+('00'+_0x45b8ad['charCodeAt'](_0x53ecd5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xaf7ec3);};a0_0x1324['Wrkvgz']=_0x3935e8,a0_0x1324['bsXPuT']={},a0_0x1324['kzWFcW']=!![];}const _0x10e8aa=_0x446fcd[0x0],_0x11b6e2=_0x4b97cf+_0x10e8aa,_0x5eea7f=a0_0x1324['bsXPuT'][_0x11b6e2];return!_0x5eea7f?(_0x132415=a0_0x1324['Wrkvgz'](_0x132415),a0_0x1324['bsXPuT'][_0x11b6e2]=_0x132415):_0x132415=_0x5eea7f,_0x132415;}export default WebSocketManager;