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

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 (122) hide show
  1. package/README.md +2 -2
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/agentActivityService.js +1 -1
  76. package/src/services/aiService.js +1 -1
  77. package/src/services/apiKeyManager.js +1 -1
  78. package/src/services/benchmarkService.js +1 -1
  79. package/src/services/budgetService.js +1 -1
  80. package/src/services/contextInjectionService.js +1 -1
  81. package/src/services/conversationCompactionService.js +1 -1
  82. package/src/services/errorHandler.js +1 -1
  83. package/src/services/fileAttachmentService.js +1 -1
  84. package/src/services/modelRouterService.js +1 -1
  85. package/src/services/modelsService.js +1 -1
  86. package/src/services/qualityInspector.js +1 -1
  87. package/src/services/tokenCountingService.js +1 -1
  88. package/src/tools/agentCommunicationTool.js +1 -1
  89. package/src/tools/agentDelayTool.js +1 -1
  90. package/src/tools/asyncToolManager.js +1 -1
  91. package/src/tools/baseTool.js +1 -1
  92. package/src/tools/browserTool.js +1 -1
  93. package/src/tools/cloneDetectionTool.js +1 -1
  94. package/src/tools/dependencyResolverTool.js +1 -1
  95. package/src/tools/fileContentReplaceTool.js +1 -1
  96. package/src/tools/fileSystemTool.js +1 -1
  97. package/src/tools/fileTreeTool.js +1 -1
  98. package/src/tools/imageTool.js +1 -1
  99. package/src/tools/importAnalyzerTool.js +1 -1
  100. package/src/tools/jobDoneTool.js +1 -1
  101. package/src/tools/seekTool.js +1 -1
  102. package/src/tools/staticAnalysisTool.js +1 -1
  103. package/src/tools/taskManagerTool.js +1 -1
  104. package/src/tools/terminalTool.js +1 -1
  105. package/src/tools/webTool.js +1 -1
  106. package/src/types/agent.js +1 -1
  107. package/src/types/contextReference.js +1 -1
  108. package/src/types/conversation.js +1 -1
  109. package/src/types/toolCommand.js +1 -1
  110. package/src/utilities/attachmentValidator.js +1 -1
  111. package/src/utilities/configManager.js +1 -1
  112. package/src/utilities/constants.js +1 -1
  113. package/src/utilities/directoryAccessManager.js +1 -1
  114. package/src/utilities/fileProcessor.js +1 -1
  115. package/src/utilities/logger.js +1 -1
  116. package/src/utilities/tagParser.js +1 -1
  117. package/src/utilities/toolConstants.js +1 -1
  118. package/src/utilities/userDataDir.js +1 -1
  119. package/web-ui/build/index.html +2 -2
  120. package/web-ui/build/static/index-CRkOpV4k.css +1 -0
  121. package/web-ui/build/static/{index-CR8edPA3.js → index-DzOU48ux.js} +98 -79
  122. package/web-ui/build/static/index-uN7nOVvZ.css +0 -1
@@ -1 +1 @@
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
+ const a0_0x237a75=a0_0xc46e;function a0_0xc46e(_0x210c20,_0x354964){_0x210c20=_0x210c20-0xd4;const _0x5e0214=a0_0x5e02();let _0xc46edb=_0x5e0214[_0x210c20];if(a0_0xc46e['XOngOr']===undefined){var _0x2df674=function(_0x4b73bd){const _0x2aea9f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xa3e356='',_0x5c7525='';for(let _0x3fc95b=0x0,_0x4b6940,_0x40ddd8,_0x18ebdd=0x0;_0x40ddd8=_0x4b73bd['charAt'](_0x18ebdd++);~_0x40ddd8&&(_0x4b6940=_0x3fc95b%0x4?_0x4b6940*0x40+_0x40ddd8:_0x40ddd8,_0x3fc95b++%0x4)?_0xa3e356+=String['fromCharCode'](0xff&_0x4b6940>>(-0x2*_0x3fc95b&0x6)):0x0){_0x40ddd8=_0x2aea9f['indexOf'](_0x40ddd8);}for(let _0x58c33c=0x0,_0x552742=_0xa3e356['length'];_0x58c33c<_0x552742;_0x58c33c++){_0x5c7525+='%'+('00'+_0xa3e356['charCodeAt'](_0x58c33c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5c7525);};a0_0xc46e['NDLnqs']=_0x2df674,a0_0xc46e['zsREos']={},a0_0xc46e['XOngOr']=!![];}const _0x598ee3=_0x5e0214[0x0],_0x3d29b6=_0x210c20+_0x598ee3,_0x12baec=a0_0xc46e['zsREos'][_0x3d29b6];return!_0x12baec?(_0xc46edb=a0_0xc46e['NDLnqs'](_0xc46edb),a0_0xc46e['zsREos'][_0x3d29b6]=_0xc46edb):_0xc46edb=_0x12baec,_0xc46edb;}(function(_0x4cecfb,_0x5aace9){const _0x3cb2b2=a0_0xc46e,_0x3c5e7a=_0x4cecfb();while(!![]){try{const _0x35abd9=-parseInt(_0x3cb2b2(0xef))/0x1+parseInt(_0x3cb2b2(0x123))/0x2*(parseInt(_0x3cb2b2(0x10c))/0x3)+parseInt(_0x3cb2b2(0xdb))/0x4+-parseInt(_0x3cb2b2(0xdc))/0x5+parseInt(_0x3cb2b2(0xe8))/0x6+parseInt(_0x3cb2b2(0x103))/0x7+-parseInt(_0x3cb2b2(0x122))/0x8*(parseInt(_0x3cb2b2(0x116))/0x9);if(_0x35abd9===_0x5aace9)break;else _0x3c5e7a['push'](_0x3c5e7a['shift']());}catch(_0x5c051c){_0x3c5e7a['push'](_0x3c5e7a['shift']());}}}(a0_0x5e02,0xe1d4f));import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';function a0_0x5e02(){const _0x6e7dee=['BwLKzgXLD2fYzq','q09ntuforfm','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','ntq0nty0ngTdq2zUtW','mZK5ndKYmgDwzevVta','uefhsu5bveLptG','z2v0u2vZC2LVBKLK','CMvTB3zLtwLKzgXLD2fYzq','Bg94AwfbCgLlzxK','z2v0uhjVAMvJDerPCG','BNvTyMvY','qvbjx0vorfbpsu5uuW','Dg9czvrYDxrOEq','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','BwvZC2fNzvf1zxvL','su1br0vFuKvtvuXu','mJC2mJyXnNLfB1vNtG','DMvUzg9Ys2v5CW','Dw5YzwDPC3rLCKHHBMrSzxi','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLignHBIbIzsbHzgrLzcbHBMqGCMvTB3zLza','ChjVAMvJDerPCG','CMvNAxn0zxjiyw5KBgvY','revgqvvmvf9it1nu','mteZodK4mwTPBeXNDa','q09otKvdveLptL9tvefurq','AxnwywXPza','v1nFtuvtu0fhrv9uwvbf','yMXVy2TLzc10ExbL','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','AgfZsgfUzgXLCG','l3rLC3qVzgLY','reLtq09otKvdveve','Bg9JywXOB3n0','DgvZDc1OB3n0','revgqvvmvf9qt1ju','C2vZC2LVBKLK','z2v0u3rHDhm','Dg9czq','Dg9czurLzMLUzwq','BM90','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','z2vUzxjHDgvszxf1zxn0swq','Dg9iyxzLuhjVCgvYDhK','nJC3mJm2mhHwB3jsCG','sfruuf9usu1ft1vu','BM90lweTzNvUy3rPB24','twvZC2fNzvjVDxrLCIbJyw4GCMvNAxn0zxiGyw5KihvUCMvNAxn0zxiGAgfUzgXLCNm','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','DgvZDa','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','CgvUzgLUz1jLCxvLC3rZ','CMvJzwL2zwrbDa','ndvMs0vKs0S','v0vcu09ds0vux1bjtKDFsu5urvjwquW','zgLZy29UBMvJDgvK','q09otKvdveve','tKvuv09ssW','DgvZDc1RzxK','u0LerujbuL9xsurusa','CxvLDwvKtwvZC2fNzxm','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','tuvtu0fhrv9brerfra','mtq3otKXnvHhtw1Mzq','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbcyxnPyYbgDw5JDgLVBMfSAxr5','C2HVDwXKuMvJB25Uzwn0','AxndB25Uzwn0zwq','veLnsu5h','DgvZDc1TzxnZywDL','y2XLyxi','zNvUy3rPB24','Dg9fCxvHBa','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','A2v5','odbjyLPoALC','mJi5mdy2BejKwvLJ','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','vuLFreLnru5tsu9ouW','DxnL','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLigHLBhbLCNmGy3jLyxrLihzHBgLKig1PzgrSzxDHCMu','quDftLrFtu9erq','lI4VlI4VyxbPl3nLC3nPB24UANm','DxjS'];a0_0x5e02=function(){return _0x6e7dee;};return a0_0x5e02();}import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x2f3638=a0_0xc46e,_0xa3e356=await import(_0x2f3638(0xda));expect(_0xa3e356['UI_DIMENSIONS'])['toBeDefined'](),expect(_0xa3e356['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0xa3e356[_0x2f3638(0xdd)])[_0x2f3638(0xfe)](),expect(_0xa3e356[_0x2f3638(0x11b)])['toBeDefined'](),expect(_0xa3e356['NETWORK'])[_0x2f3638(0xfe)](),expect(_0xa3e356[_0x2f3638(0xf0)])['toBeDefined'](),expect(_0xa3e356[_0x2f3638(0xd5)])[_0x2f3638(0xfe)](),expect(_0xa3e356[_0x2f3638(0xf2)])['toBeDefined'](),expect(_0xa3e356[_0x2f3638(0xe3)])['toBeDefined'](),expect(_0xa3e356[_0x2f3638(0xd9)])['toBeDefined'](),expect(_0xa3e356[_0x2f3638(0x110)][_0x2f3638(0xee)])[_0x2f3638(0xfd)]('localhost'),expect(_0xa3e356['NETWORK'][_0x2f3638(0xfa)])['toBe'](0x1f90),expect(_0xa3e356[_0x2f3638(0xf0)][_0x2f3638(0xf7)])['toBe'](_0x2f3638(0x10e)),expect(_0xa3e356['CONNECTION_STATE'][_0x2f3638(0x10f)])['toBe']('connected');}),test('WebSocketManager class can be imported',async()=>{const _0xd7672e=a0_0xc46e,{WebSocketManager:_0x5c7525}=await import('../../api/websocket.js');expect(_0x5c7525)['toBeDefined'](),expect(typeof _0x5c7525)['toBe']('function');const _0x3fc95b=new _0x5c7525(_0xd7672e(0xf8),0x1f90);expect(_0x3fc95b)['toBeDefined'](),expect(_0x3fc95b['host'])[_0xd7672e(0xfd)](_0xd7672e(0xf8)),expect(_0x3fc95b['port'])[_0xd7672e(0xfd)](0x1f90),expect(_0x3fc95b[_0xd7672e(0xd7)])['toBe']('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0xc17eb=a0_0xc46e,{SessionManager:_0x4b6940}=await import('../../api/session.js');expect(_0x4b6940)['toBeDefined'](),expect(typeof _0x4b6940)['toBe']('function');const _0x40ddd8=new _0x4b6940('localhost',0x1f90);expect(_0x40ddd8)[_0xc17eb(0xfe)](),expect(_0x40ddd8['host'])['toBe'](_0xc17eb(0xf8)),expect(_0x40ddd8['port'])[_0xc17eb(0xfd)](0x1f90),expect(_0x40ddd8['baseUrl'])[_0xc17eb(0xfd)]('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x40bce3=a0_0xc46e,{MessageRouter:_0x18ebdd}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x58c33c}=await import('../../api/websocket.js');expect(_0x18ebdd)['toBeDefined'](),expect(typeof _0x18ebdd)[_0x40bce3(0xfd)]('function');const _0x552742=new _0x58c33c(_0x40bce3(0xf8),0x1f90),_0x59dd54=new _0x18ebdd(_0x552742);expect(_0x59dd54)['toBeDefined'](),expect(_0x59dd54['ws'])['toBe'](_0x552742);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x2089e0=a0_0xc46e,{loggingMiddleware:_0xa2396a,filterMiddleware:_0x54e3e4,transformMiddleware:_0x1d2122,timestampMiddleware:_0x11966c,validationMiddleware:_0x1d660a}=await import('../../api/messageRouter.js');expect(typeof _0xa2396a)['toBe']('function'),expect(typeof _0x54e3e4)['toBe'](_0x2089e0(0x11e)),expect(typeof _0x1d2122)['toBe'](_0x2089e0(0x11e)),expect(typeof _0x11966c)[_0x2089e0(0xfd)](_0x2089e0(0x11e)),expect(typeof _0x1d660a)[_0x2089e0(0xfd)]('function');}),test('useConnection hook can be imported',async()=>{const _0x81cfd2=a0_0xc46e,{useConnection:_0x582f7d,useConnectionStatus:_0x491e37}=await import(_0x81cfd2(0xf4));expect(_0x582f7d)[_0x81cfd2(0xfe)](),expect(typeof _0x582f7d)['toBe']('function'),expect(_0x491e37)['toBeDefined'](),expect(typeof _0x491e37)[_0x81cfd2(0xfd)](_0x81cfd2(0x11e));});}),describe(a0_0x237a75(0x118),()=>{const _0x27908d=a0_0x237a75;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x23d51f=a0_0xc46e,{WebSocketManager:_0x1bba12}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x200cb}=await import('../../config/constants.js'),_0x426b59=new _0x1bba12('test-host',0x2382);expect(_0x426b59['state'])[_0x23d51f(0xfd)](_0x200cb[_0x23d51f(0xf7)]),expect(_0x426b59['sessionId'])[_0x23d51f(0xfd)](null),expect(_0x426b59[_0x23d51f(0xe6)])['toEqual']([]),expect(_0x426b59['reconnectAttempts'])['toBe'](0x0),expect(_0x426b59[_0x23d51f(0x119)])[_0x23d51f(0xfd)](!![]);}),test('SessionManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0xeeb161=a0_0xc46e,{SessionManager:_0x1beb81}=await import('../../api/session.js'),_0x260bb9=new _0x1beb81(_0xeeb161(0xf9),0x2382);expect(_0x260bb9['sessionId'])[_0xeeb161(0xfd)](null),expect(_0x260bb9['projectDir'])[_0xeeb161(0xfd)](null),expect(_0x260bb9['loxiaApiKey'])['toBe'](null),expect(_0x260bb9['vendorKeys'])[_0xeeb161(0x11f)]({}),expect(_0x260bb9['isValid']())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x5a5917=a0_0xc46e,{MessageRouter:_0x38e8e8}=await import(_0x5a5917(0x100)),{WebSocketManager:_0x386de3}=await import(_0x5a5917(0x114)),{WS_MESSAGE_TYPE:_0x33eea3}=await import(_0x5a5917(0xda)),_0x2088b3=new _0x386de3(_0x5a5917(0xf8),0x1f90),_0x250363=new _0x38e8e8(_0x2088b3);expect(_0x250363[_0x5a5917(0xf5)](_0x33eea3[_0x5a5917(0x115)]))[_0x5a5917(0xfd)](!![]),expect(_0x250363['hasHandler'](_0x33eea3['AGENT_MODE_CHANGED']))[_0x5a5917(0xfd)](!![]),expect(_0x250363['hasHandler'](_0x33eea3['EXECUTION_STOPPED']))[_0x5a5917(0xfd)](!![]),expect(_0x250363[_0x5a5917(0xf5)](_0x33eea3['COMPACTION_EVENT']))[_0x5a5917(0xfd)](!![]),expect(_0x250363['hasHandler'](_0x33eea3[_0x5a5917(0xe7)]))[_0x5a5917(0xfd)](!![]);}),test(_0x27908d(0xeb),async()=>{const _0x55ecd4=_0x27908d,{MessageRouter:_0x4c7f90}=await import(_0x55ecd4(0x100)),{WebSocketManager:_0x76e06b}=await import('../../api/websocket.js'),_0x567ed6=new _0x76e06b(_0x55ecd4(0xf8),0x1f90),_0x4c0aed=new _0x4c7f90(_0x567ed6),_0x4241d=_0xad504a=>_0xad504a;expect(_0x4c0aed['middleware']['length'])[_0x55ecd4(0x107)](0x0),_0x4c0aed[_0x55ecd4(0x126)](_0x4241d);const _0x1dfbad=_0x4c0aed[_0x55ecd4(0xd8)]['length'];expect(_0x1dfbad)['toBeGreaterThan'](0x0),_0x4c0aed[_0x55ecd4(0xdf)](_0x4241d),expect(_0x4c0aed['middleware']['length'])['toBe'](_0x1dfbad-0x1);}),test('SessionManager\x20helper\x20methods\x20work',async()=>{const _0x1f68b2=_0x27908d,{SessionManager:_0x3dd410}=await import(_0x1f68b2(0xd6)),_0x3c580b=new _0x3dd410('localhost',0x1f90);expect(_0x3c580b['getSessionId']())['toBe'](null),expect(_0x3c580b[_0x1f68b2(0xe1)]())['toBe'](null),expect(_0x3c580b['isValid']())['toBe'](![]);const _0xe79636=_0x3c580b['getSessionInfo']();expect(_0xe79636)[_0x1f68b2(0x102)]('sessionId'),expect(_0xe79636)['toHaveProperty']('projectDir'),expect(_0xe79636)[_0x1f68b2(0x102)]('hasLoxiaKey'),expect(_0xe79636)['toHaveProperty']('vendorKeysCount');}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x575ca3=_0x27908d,{WebSocketManager:_0xc64384}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x154fa5}=await import(_0x575ca3(0xda)),_0x4d0045=new _0xc64384('localhost',0x1f90);expect(_0x4d0045['getState']())[_0x575ca3(0xfd)](_0x154fa5['DISCONNECTED']),expect(_0x4d0045[_0x575ca3(0x11a)]())['toBe'](![]),expect(_0x4d0045[_0x575ca3(0xde)]())['toBe'](null);const _0x46d087=_0x4d0045[_0x575ca3(0xfc)]();expect(_0x46d087)['toHaveProperty']('state'),expect(_0x46d087)[_0x575ca3(0x102)]('sessionId'),expect(_0x46d087)['toHaveProperty']('reconnectAttempts'),expect(_0x46d087)['toHaveProperty'](_0x575ca3(0x113)),expect(_0x46d087)['toHaveProperty'](_0x575ca3(0x10a));}),test(_0x27908d(0x106),async()=>{const _0x1206d8=_0x27908d,{MessageRouter:_0x3e9ed2}=await import(_0x1206d8(0x100)),{WebSocketManager:_0xee8c29}=await import(_0x1206d8(0x114)),_0x1dc348=new _0xee8c29('localhost',0x1f90),_0x5f2959=new _0x3e9ed2(_0x1dc348),_0x29ad3c=()=>{};expect(_0x5f2959[_0x1206d8(0xf5)](_0x1206d8(0x11c)))[_0x1206d8(0xfd)](![]),_0x5f2959[_0x1206d8(0xed)](_0x1206d8(0x11c),_0x29ad3c),expect(_0x5f2959['hasHandler']('test-message'))['toBe'](!![]),_0x5f2959[_0x1206d8(0xea)](_0x1206d8(0x11c)),expect(_0x5f2959[_0x1206d8(0xf5)]('test-message'))[_0x1206d8(0xfd)](![]);}),test(_0x27908d(0xd4),async()=>{const _0x564431=_0x27908d,{loggingMiddleware:_0x3abf5d,timestampMiddleware:_0x436ae7,filterMiddleware:_0x122513}=await import(_0x564431(0x100)),_0x5f171a=_0x3abf5d();expect(typeof _0x5f171a)['toBe']('function');const _0x3c6b8f=_0x436ae7();expect(typeof _0x3c6b8f)[_0x564431(0xfd)](_0x564431(0x11e));const _0x39993a={'type':_0x564431(0x108)},_0x36d76b=_0x3c6b8f(_0x39993a);expect(_0x36d76b)['toHaveProperty'](_0x564431(0x10b)),expect(_0x36d76b['type'])[_0x564431(0xfd)](_0x564431(0x108));const _0x3c58b1=_0x122513(['allowed-type']);expect(typeof _0x3c58b1)['toBe'](_0x564431(0x11e)),expect(_0x3c58b1({'type':'allowed-type'}))[_0x564431(0xe4)](),expect(_0x3c58b1({'type':_0x564431(0xf3)}))['toBe'](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x403942=_0x27908d,_0x248c1e=await import(_0x403942(0xda));expect(typeof _0x248c1e[_0x403942(0x11b)][_0x403942(0x124)])['toBe'](_0x403942(0xe2)),expect(typeof _0x248c1e[_0x403942(0x11b)][_0x403942(0x10d)])[_0x403942(0xfd)]('number'),expect(typeof _0x248c1e[_0x403942(0x110)]['DEFAULT_PORT'])['toBe'](_0x403942(0xe2)),expect(typeof _0x248c1e['NETWORK']['MAX_RETRIES'])[_0x403942(0xfd)]('number'),expect(typeof _0x248c1e['NETWORK'][_0x403942(0x104)])[_0x403942(0xfd)](_0x403942(0xe2)),expect(typeof _0x248c1e[_0x403942(0x125)]['MESSAGE_LIST_HEIGHT'])['toBe'](_0x403942(0xe2)),expect(typeof _0x248c1e['UI_DIMENSIONS'][_0x403942(0x112)])[_0x403942(0xfd)]('number');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x1b2842=a0_0x237a75;test(_0x1b2842(0xe5),async()=>{const _0x195b4d=_0x1b2842,{MessageRouter:_0x172c65}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1d958}=await import(_0x195b4d(0x114)),_0x37ab1f=new _0x1d958('localhost',0x1f90),_0x533541=new _0x172c65(_0x37ab1f);expect(()=>{const _0x223382=_0x195b4d;_0x533541['registerHandler'](_0x223382(0x108),_0x223382(0x105));})['toThrow']('Handler\x20must\x20be\x20a\x20function');}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x53fdae=_0x1b2842,{MessageRouter:_0x55a5c3}=await import(_0x53fdae(0x100)),{WebSocketManager:_0xe66182}=await import(_0x53fdae(0x114)),_0x3cae4b=new _0xe66182('localhost',0x1f90),_0x42cbf2=new _0x55a5c3(_0x3cae4b);expect(()=>{const _0x23e346=_0x53fdae;_0x42cbf2['use'](_0x23e346(0x105));})['toThrow'](_0x53fdae(0x120));}),test(_0x1b2842(0x109),async()=>{const _0x3f70a7=_0x1b2842,{SessionManager:_0x1323b8}=await import(_0x3f70a7(0xd6)),_0x4fdabd=new _0x1323b8('localhost',0x1f90);_0x4fdabd['sessionId']='test-123',_0x4fdabd[_0x3f70a7(0xec)]=_0x3f70a7(0xf6),_0x4fdabd[_0x3f70a7(0xe0)]=_0x3f70a7(0x111),_0x4fdabd['vendorKeys']={'openai':_0x3f70a7(0x121)},expect(_0x4fdabd[_0x3f70a7(0xf1)]())['toBe'](!![]),_0x4fdabd[_0x3f70a7(0x11d)](),expect(_0x4fdabd[_0x3f70a7(0xfb)])[_0x3f70a7(0xfd)](null),expect(_0x4fdabd['projectDir'])[_0x3f70a7(0xfd)](null),expect(_0x4fdabd['loxiaApiKey'])[_0x3f70a7(0xfd)](null),expect(_0x4fdabd[_0x3f70a7(0xe9)])['toEqual']({}),expect(_0x4fdabd['isValid']())[_0x3f70a7(0xfd)](![]);}),test(_0x1b2842(0x117),async()=>{const _0x5827f9=_0x1b2842,{WebSocketManager:_0x549520}=await import('../../api/websocket.js'),_0x181520=new _0x549520(_0x5827f9(0xf8),0x1f90),_0x32f819=_0x181520['generateRequestId'](),_0x16f7f8=_0x181520[_0x5827f9(0x101)](),_0x3442dd=_0x181520['generateRequestId']();expect(_0x32f819)[_0x5827f9(0xff)][_0x5827f9(0xfd)](_0x16f7f8),expect(_0x16f7f8)[_0x5827f9(0xff)][_0x5827f9(0xfd)](_0x3442dd),expect(_0x32f819)['not'][_0x5827f9(0xfd)](_0x3442dd),expect(_0x32f819)['toMatch'](/^req-\d+-\d+$/),expect(_0x16f7f8)['toMatch'](/^req-\d+-\d+$/),expect(_0x3442dd)['toMatch'](/^req-\d+-\d+$/);});});
@@ -1 +1 @@
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
+ const a0_0x2b063f=a0_0x4ca3;(function(_0x5df66a,_0x5102a6){const _0x44b014=a0_0x4ca3,_0x440772=_0x5df66a();while(!![]){try{const _0x45a953=parseInt(_0x44b014(0x16c))/0x1+-parseInt(_0x44b014(0x159))/0x2+parseInt(_0x44b014(0x17c))/0x3+-parseInt(_0x44b014(0x165))/0x4+-parseInt(_0x44b014(0x166))/0x5+parseInt(_0x44b014(0x158))/0x6*(parseInt(_0x44b014(0x146))/0x7)+parseInt(_0x44b014(0x155))/0x8;if(_0x45a953===_0x5102a6)break;else _0x440772['push'](_0x440772['shift']());}catch(_0x4ea24a){_0x440772['push'](_0x440772['shift']());}}}(a0_0x4766,0x7cc1c));import{describe,test,expect}from'@jest/globals';describe('Message\x20Management\x20-\x20Imports',()=>{test('useMessages hook can be imported',async()=>{const _0x5a01eb=a0_0x4ca3,{useMessages:_0x3e99f7}=await import(_0x5a01eb(0x180));expect(_0x3e99f7)['toBeDefined'](),expect(typeof _0x3e99f7)[_0x5a01eb(0x149)](_0x5a01eb(0x16f));}),test('useMessages is default export',async()=>{const _0x3e53e3=a0_0x4ca3,module=await import(_0x3e53e3(0x180));expect(module[_0x3e53e3(0x150)])['toBeDefined'](),expect(typeof module[_0x3e53e3(0x150)])[_0x3e53e3(0x149)]('function'),expect(module[_0x3e53e3(0x150)])[_0x3e53e3(0x149)](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x587828=a0_0x4ca3,{useMessageCount:_0x5d1da5}=await import(_0x587828(0x180));expect(_0x5d1da5)['toBeDefined'](),expect(typeof _0x5d1da5)[_0x587828(0x149)](_0x587828(0x16f));});}),describe('Message\x20Management\x20-\x20Constants',()=>{const _0x999b20=a0_0x4ca3;test(_0x999b20(0x14a),async()=>{const _0x4b0966=_0x999b20,{MESSAGE_ROLE:_0x434183}=await import('../../config/constants.js');expect(_0x434183)[_0x4b0966(0x176)](),expect(_0x434183[_0x4b0966(0x156)])[_0x4b0966(0x149)]('user'),expect(_0x434183[_0x4b0966(0x170)])[_0x4b0966(0x149)]('assistant'),expect(_0x434183[_0x4b0966(0x17b)])['toBe'](_0x4b0966(0x154));}),test(_0x999b20(0x160),async()=>{const _0x30491f=_0x999b20,{MESSAGE_TYPE:_0x134501}=await import(_0x30491f(0x168));expect(_0x134501)[_0x30491f(0x176)](),expect(_0x134501['USER_MESSAGE'])[_0x30491f(0x149)](_0x30491f(0x15b)),expect(_0x134501[_0x30491f(0x15c)])[_0x30491f(0x149)]('agent-response'),expect(_0x134501[_0x30491f(0x162)])['toBe'](_0x30491f(0x16a));}),test(_0x999b20(0x148),async()=>{const _0x6f1dda=_0x999b20,{MESSAGE_CONFIG:_0x57d3d1}=await import(_0x6f1dda(0x168));expect(_0x57d3d1)['toBeDefined'](),expect(_0x57d3d1[_0x6f1dda(0x153)])['toBeDefined'](),expect(_0x57d3d1[_0x6f1dda(0x14c)])[_0x6f1dda(0x176)](),expect(typeof _0x57d3d1[_0x6f1dda(0x153)])[_0x6f1dda(0x149)]('number'),expect(typeof _0x57d3d1[_0x6f1dda(0x14c)])['toBe']('number');}),test(_0x999b20(0x147),async()=>{const _0x594a0d=_0x999b20,{PAGINATION:_0x4927d3}=await import(_0x594a0d(0x168));expect(_0x4927d3)[_0x594a0d(0x176)](),expect(_0x4927d3['PAGE_SIZE'])['toBeDefined'](),expect(_0x4927d3[_0x594a0d(0x175)])['toBeDefined'](),expect(typeof _0x4927d3[_0x594a0d(0x16e)])['toBe'](_0x594a0d(0x151)),expect(typeof _0x4927d3[_0x594a0d(0x175)])['toBe'](_0x594a0d(0x151));}),test(_0x999b20(0x169),async()=>{const _0x190cc1=_0x999b20,{WS_MESSAGE_TYPE:_0x380bda}=await import('../../config/constants.js');expect(_0x380bda)[_0x190cc1(0x176)](),expect(_0x380bda['MESSAGE_ADDED'])['toBe']('message_added'),expect(_0x380bda[_0x190cc1(0x179)])[_0x190cc1(0x149)]('agent_mode_changed'),expect(_0x380bda['EXECUTION_STOPPED'])['toBe']('execution_stopped');});}),describe(a0_0x2b063f(0x15f),()=>{const _0x2b744a=a0_0x2b063f;test(_0x2b744a(0x161),async()=>{const _0x5b3c2f=_0x2b744a,{useMessages:_0x305942}=await import(_0x5b3c2f(0x180)),{SessionManager:_0x587ed8}=await import(_0x5b3c2f(0x16b)),{MessageRouter:_0x5651c2}=await import(_0x5b3c2f(0x17f)),{WebSocketManager:_0x2c9e8c}=await import(_0x5b3c2f(0x173)),_0x9d576c=new _0x587ed8(_0x5b3c2f(0x15e),0x1f90),_0x1ec04c=new _0x2c9e8c('localhost',0x1f90),_0x59e9c1=new _0x5651c2(_0x1ec04c);expect(_0x9d576c)[_0x5b3c2f(0x176)](),expect(_0x59e9c1)['toBeDefined'](),expect(typeof _0x305942)[_0x5b3c2f(0x149)](_0x5b3c2f(0x16f));}),test('Full message management stack can be imported together',async()=>{const _0xcee8e=_0x2b744a,[_0x46e050,_0xc0b1a4,_0x37d4ca,_0x4bfe26,_0x5b8d3b]=await Promise['all']([import('../../config/constants.js'),import(_0xcee8e(0x16b)),import(_0xcee8e(0x173)),import(_0xcee8e(0x17f)),import('../../state/useMessages.js')]);expect(_0x46e050['MESSAGE_ROLE'])['toBeDefined'](),expect(_0x46e050[_0xcee8e(0x152)])[_0xcee8e(0x176)](),expect(_0x46e050[_0xcee8e(0x17d)])['toBeDefined'](),expect(_0xc0b1a4[_0xcee8e(0x15a)])['toBeDefined'](),expect(_0x37d4ca['WebSocketManager'])[_0xcee8e(0x176)](),expect(_0x4bfe26[_0xcee8e(0x14f)])['toBeDefined'](),expect(_0x5b8d3b[_0xcee8e(0x15d)])[_0xcee8e(0x176)]();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x1ff67f=a0_0x2b063f;test('Orchestrator\x20endpoint\x20can\x20be\x20used\x20for\x20message\x20operations',async()=>{const _0x18e6e9=a0_0x4ca3,{API_ENDPOINTS:_0x3ac300}=await import('../../config/constants.js');expect(_0x3ac300[_0x18e6e9(0x177)])[_0x18e6e9(0x176)](),expect(_0x3ac300['ORCHESTRATOR'])[_0x18e6e9(0x149)]('/api/orchestrator');}),test(_0x1ff67f(0x167),async()=>{const _0x4fa357=_0x1ff67f,{API_ENDPOINTS:_0x2f7799}=await import(_0x4fa357(0x168));expect(_0x2f7799['ORCHESTRATOR'])[_0x4fa357(0x174)](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x112716=a0_0x2b063f;test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const {useMessages:_0x7dceca}=await import('../../state/useMessages.js');expect(_0x7dceca['length'])['toBe'](0x3);}),test(_0x112716(0x17e),async()=>{const _0x15fe0b=_0x112716,{useMessageCount:_0x38b6dd}=await import(_0x15fe0b(0x180));expect(_0x38b6dd['length'])['toBe'](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x307619=a0_0x2b063f;test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x519af0=a0_0x4ca3,{MESSAGE_CONFIG:_0x23b94c}=await import(_0x519af0(0x168));expect(_0x23b94c[_0x519af0(0x153)])['toBeGreaterThan'](0x0),expect(_0x23b94c['MAX_MESSAGE_LENGTH'])[_0x519af0(0x178)](0x186a0),expect(_0x23b94c['MAX_MESSAGES_DISPLAY'])['toBeGreaterThan'](0x0),expect(_0x23b94c[_0x519af0(0x14c)])[_0x519af0(0x178)](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x40e392=a0_0x4ca3,{PAGINATION:_0x4aeaec}=await import(_0x40e392(0x168));expect(_0x4aeaec['PAGE_SIZE'])['toBeGreaterThan'](0x0),expect(_0x4aeaec['PAGE_SIZE'])['toBeLessThanOrEqual'](0x3e8),expect(_0x4aeaec['MAX_PAGE_SIZE'])['toBeGreaterThanOrEqual'](_0x4aeaec['PAGE_SIZE']);}),test(_0x307619(0x172),async()=>{const _0x58c3d1=_0x307619,{MESSAGE_ROLE:_0x4ca944}=await import(_0x58c3d1(0x168));expect(_0x4ca944['USER'])['toBe'](_0x4ca944['USER'][_0x58c3d1(0x14b)]()),expect(_0x4ca944[_0x58c3d1(0x170)])['toBe'](_0x4ca944[_0x58c3d1(0x170)][_0x58c3d1(0x14b)]()),expect(_0x4ca944['SYSTEM'])[_0x58c3d1(0x149)](_0x4ca944['SYSTEM'][_0x58c3d1(0x14b)]());});}),describe(a0_0x2b063f(0x171),()=>{const _0x5cbb30=a0_0x2b063f;test(_0x5cbb30(0x164),async()=>{const _0x201df6=_0x5cbb30,{MessageRouter:_0x1c6f6c}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4d0502}=await import(_0x201df6(0x173)),{WS_MESSAGE_TYPE:_0x2b355a}=await import(_0x201df6(0x168)),_0x37d90e=new _0x4d0502('localhost',0x1f90),_0x186c5c=new _0x1c6f6c(_0x37d90e);expect(_0x186c5c[_0x201df6(0x181)](_0x2b355a[_0x201df6(0x16d)]))['toBe'](!![]),expect(_0x186c5c[_0x201df6(0x181)](_0x2b355a['AGENT_MODE_CHANGED']))[_0x201df6(0x149)](!![]);});}),describe('Message\x20Management\x20-\x20Error\x20Handling',()=>{const _0x2cc40f=a0_0x2b063f;test(_0x2cc40f(0x182),async()=>{const _0xa06e23=_0x2cc40f,{MESSAGE_CONFIG:_0x56bbe0}=await import('../../config/constants.js');expect(_0x56bbe0[_0xa06e23(0x153)])[_0xa06e23(0x176)](),expect(typeof _0x56bbe0['MAX_MESSAGE_LENGTH'])['toBe']('number');const _0x146df3='a'[_0xa06e23(0x14d)](_0x56bbe0[_0xa06e23(0x153)]+0x1);expect(_0x146df3[_0xa06e23(0x17a)])['toBeGreaterThan'](_0x56bbe0['MAX_MESSAGE_LENGTH']);}),test('MESSAGE_CONFIG\x20enforces\x20maximum\x20display\x20messages',async()=>{const _0x32adb2=_0x2cc40f,{MESSAGE_CONFIG:_0x240ab5}=await import('../../config/constants.js');expect(_0x240ab5['MAX_MESSAGES_DISPLAY'])['toBeDefined'](),expect(typeof _0x240ab5[_0x32adb2(0x14c)])['toBe'](_0x32adb2(0x151)),expect(_0x240ab5[_0x32adb2(0x14c)])[_0x32adb2(0x14e)](0x0);});}),describe(a0_0x2b063f(0x157),()=>{test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x4545e5=a0_0x4ca3,{PAGINATION:_0x1002b5}=await import(_0x4545e5(0x168)),_0x51009f=0x0,_0xc13ca7=_0x51009f*_0x1002b5[_0x4545e5(0x16e)];expect(_0xc13ca7)['toBe'](0x0);const _0xacf0c=0x1,_0xc4d824=_0xacf0c*_0x1002b5['PAGE_SIZE'];expect(_0xc4d824)['toBe'](_0x1002b5['PAGE_SIZE']);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0x595038=a0_0x4ca3,{PAGINATION:_0x350dce}=await import(_0x595038(0x168)),_0x398e29=0x3e8,_0x1a9a60=Math[_0x595038(0x163)](_0x398e29,_0x350dce[_0x595038(0x175)]);expect(_0x1a9a60)[_0x595038(0x178)](_0x350dce['MAX_PAGE_SIZE']);});});function a0_0x4ca3(_0x3254f7,_0x29d085){_0x3254f7=_0x3254f7-0x146;const _0x4766cb=a0_0x4766();let _0x4ca3cb=_0x4766cb[_0x3254f7];if(a0_0x4ca3['YRYXOI']===undefined){var _0x311457=function(_0x4b614){const _0x2b98c8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3e99f7='',_0x5d1da5='';for(let _0x434183=0x0,_0x134501,_0x57d3d1,_0x4927d3=0x0;_0x57d3d1=_0x4b614['charAt'](_0x4927d3++);~_0x57d3d1&&(_0x134501=_0x434183%0x4?_0x134501*0x40+_0x57d3d1:_0x57d3d1,_0x434183++%0x4)?_0x3e99f7+=String['fromCharCode'](0xff&_0x134501>>(-0x2*_0x434183&0x6)):0x0){_0x57d3d1=_0x2b98c8['indexOf'](_0x57d3d1);}for(let _0x380bda=0x0,_0x305942=_0x3e99f7['length'];_0x380bda<_0x305942;_0x380bda++){_0x5d1da5+='%'+('00'+_0x3e99f7['charCodeAt'](_0x380bda)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5d1da5);};a0_0x4ca3['EtXnvx']=_0x311457,a0_0x4ca3['pYzBFa']={},a0_0x4ca3['YRYXOI']=!![];}const _0x48f272=_0x4766cb[0x0],_0x1abbdb=_0x3254f7+_0x48f272,_0x189233=a0_0x4ca3['pYzBFa'][_0x1abbdb];return!_0x189233?(_0x4ca3cb=a0_0x4ca3['EtXnvx'](_0x4ca3cb),a0_0x4ca3['pYzBFa'][_0x1abbdb]=_0x4ca3cb):_0x4ca3cb=_0x189233,_0x4ca3cb;}function a0_0x4766(){const _0x8b27a1=['Dg9czurLzMLUzwq','t1jdsevtvfjbve9s','Dg9czuXLC3nuAgfUt3jfCxvHBa','quDftLrFtu9erv9dsefor0ve','BgvUz3rO','u1Ltvevn','mJCXndKYofHtqvLVAW','tuvtu0fhrv9dt05gsuC','DxnLtwvZC2fNzunVDw50ihjLDhvYBNmGzxHWzwn0zwqGAw50zxjMywnLihnOyxbL','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','AgfZsgfUzgXLCG','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','mtaWnJuZu1LRzfH3','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','Dg9czq','tuvtu0fhrv9st0XfignVBNn0yw50CYbHCMuGzgvMAw5Lza','Dg9mB3DLCKnHC2u','tufyx01fu1nbr0vtx0rju1bmqvK','CMvWzwf0','Dg9czuDYzwf0zxjuAgfU','twvZC2fNzvjVDxrLCG','zgvMyxvSDa','BNvTyMvY','tuvtu0fhrv9uwvbf','tufyx01fu1nbr0vFtevor1ri','C3LZDgvT','ndeXotmXmNrWwvvSqW','vvnfuG','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','mZzZruT0rvC','mte4ntKXmgXdtxvzra','u2vZC2LVBK1HBMfNzxi','DxnLCI1TzxnZywDL','quDftLrFuKvtue9ou0u','DxnLtwvZC2fNzxm','Bg9JywXOB3n0','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','tuvtu0fhrv9uwvbfignVBNn0yw50CYbHCMuGzgvMAw5Lza','DxnLtwvZC2fNzxmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','u1Ltvevnx05pveLgsunbveLptG','BwLU','twvZC2fNzvjVDxrLCIbOyxmGBwvZC2fNzsbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','mJy0nZq1nMvLr3n5za','mta5nda2mfbtCffuBG','twvZC2fNzsbbueKGzw5KCg9PBNrZigzVBgXVDYbsrvnuzNvSihbHDhrLCM4','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','C3LZDgvTlw5VDgLMAwnHDgLVBG','lI4VlI4VyxbPl3nLC3nPB24UANm','ndC4ndCXvvzvu3vQ','tuvtu0fhrv9brerfra','uefhrv9tsvPf','zNvUy3rPB24','qvntsvnuqu5u','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','tuvtu0fhrv9st0XfihzHBhvLCYbHCMuGBg93zxjJyxnL','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','Dg9nyxrJAa','tufyx1bbr0vFu0LArq'];a0_0x4766=function(){return _0x8b27a1;};return a0_0x4766();}
@@ -1 +1 @@
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
+ function a0_0x3498(_0x342e6f,_0x38eed1){_0x342e6f=_0x342e6f-0x199;const _0x45c95c=a0_0x45c9();let _0x3498f6=_0x45c95c[_0x342e6f];if(a0_0x3498['gGMoPP']===undefined){var _0x4f97fc=function(_0x27a3ed){const _0x1788d3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xe91c77='',_0x15e021='';for(let _0x2d96ce=0x0,_0x217afa,_0x4240f6,_0x2b2eaf=0x0;_0x4240f6=_0x27a3ed['charAt'](_0x2b2eaf++);~_0x4240f6&&(_0x217afa=_0x2d96ce%0x4?_0x217afa*0x40+_0x4240f6:_0x4240f6,_0x2d96ce++%0x4)?_0xe91c77+=String['fromCharCode'](0xff&_0x217afa>>(-0x2*_0x2d96ce&0x6)):0x0){_0x4240f6=_0x1788d3['indexOf'](_0x4240f6);}for(let _0x106d68=0x0,_0x13da3d=_0xe91c77['length'];_0x106d68<_0x13da3d;_0x106d68++){_0x15e021+='%'+('00'+_0xe91c77['charCodeAt'](_0x106d68)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x15e021);};a0_0x3498['QBGrvj']=_0x4f97fc,a0_0x3498['YXBczr']={},a0_0x3498['gGMoPP']=!![];}const _0x47ce16=_0x45c95c[0x0],_0x4c8c08=_0x342e6f+_0x47ce16,_0x1b3d9c=a0_0x3498['YXBczr'][_0x4c8c08];return!_0x1b3d9c?(_0x3498f6=a0_0x3498['QBGrvj'](_0x3498f6),a0_0x3498['YXBczr'][_0x4c8c08]=_0x3498f6):_0x3498f6=_0x1b3d9c,_0x3498f6;}const a0_0x4f437a=a0_0x3498;function a0_0x45c9(){const _0x13b190=['AgfZ','zgvMyxvSDa','CMvHzf9MAwXL','ve9ptf9dqvrfr09swq','mtK0mdC4ntjWCuTOr1G','DgvYBwLUywW','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGrMLSDgvYAw5N','Bg9JywXOB3n0','mtb2sK9Rzfq','DxnLvg9VBhmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','mtnHA2nMENK','zNvUy3rPB24','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','BwfW','mJu4nefPr3bfwa','q2f0zwDVCNKGy291BNrZignHBIbIzsbJywXJDwXHDgvK','ywrK','ve9ptf9dqvrfr09swsb2ywX1zxmGyxjLigXVD2vYy2fZzq','l2fWAs9VCMnOzxn0CMf0B3i','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','zMLSzq','Aw5JBhvKzxm','C3vJy2vZCW','vg9VBcbJywnOzsbZDxbWB3j0CYbuveWTyMfZzwqGy2fJAgLUzW','u1Ltvevn','y2f0zwDVCNK','mZm5odb0D2Luq0K','Dg9czq','zgvZy3jPChrPB24','DxnLvg9VBhm','ugvYzM9YBsbZDgf0AwmGy29KzsbHBMfSExnPCW','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','twvZC2fNzvjVDxrLCIbOyxmGDg9VBcbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','zMLSzsbJB250zw50CW','zxHLyY0X','n09LyxPxvW','nJqXnZCWofz3q3PTDa','vg9VBhmGtwfUywDLBwvUDcaTifDLyLnVy2TLDcbfDMvUDcbiyw5KBgvYCW','nfLZrfrMCa','vvrjteLuwq','v2vIu29JA2v0twfUywDLCG','z2v0','qvvut01bveLptG','vg9VBhmGy2fUigjLigzPBhrLCMvKigj5ig11BhrPCgXLignYAxrLCMLH','t1jdsevtvfjbve9s','vg9VBhmGqvbjigvUzhbVAw50igLZigrLzMLUzwq','u2vZC2LVBK1HBMfNzxi','Dg9dB250ywLU','lI4VlI4VyxbPl3nLC3nPB24UANm','mZLhBKz5z3C','zw5HyMXLza','mZa0mJG3nNjer2jlyG','ve9ptf9dqvrfr09swsbJB25ZDgfUDhmGyxjLigrLzMLUzwq','ve9ptfm','BM93','qu5btfLtsvm','t3jJAgvZDhjHDg9YigvUzhbVAw50igLZihvZzwqGzM9YihrVB2WGB3bLCMf0Aw9UCW','zgf0yq','q09mtefct1jbveLptG','zxHLy3v0zv9JB21Tyw5K','D2vIx3nLyxjJAa','qvbjx0vorfbpsu5uuW','vg9VBhmGtwfUywDLBwvUDcaTieHVB2SGsw50zxjMywnLifzLCMLMAwnHDgLVBG','yw5HBhL6zv9JB2rL','BMfTzq','vg9VBcbJywnOzsbLEhbPCMvZigfMDgvYifruta','Dg9fCxvHBa','Dg9czurLzMLUzwq','zxHLyY0Y','ywLFyxnZAxn0yw50','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGu2vHCMnO','mZiWoteZnvPgq1nRsq','odu1ntu1wuPuv2HO','Dg9mB3DLCKnHC2u','Dg9nyxrJAa','mtyYodfpvNLlEeS','ve9ptf9dqvrfr09swsb2ywX1zxmGBwf0y2GGzxHWzwn0zwqGzM9YBwf0','zgvSzxrL','C2v0','zMLSDgvY','ywXS','BgvUz3rO','l2fWAs90B29SCW','AxnZDwvZ','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','vg9VBhmGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','C2L6zq'];a0_0x45c9=function(){return _0x13b190;};return a0_0x45c9();}(function(_0x2c44d9,_0x397cdc){const _0x4d1142=a0_0x3498,_0x3d373b=_0x2c44d9();while(!![]){try{const _0x2e85f8=parseInt(_0x4d1142(0x1ea))/0x1*(parseInt(_0x4d1142(0x1d3))/0x2)+parseInt(_0x4d1142(0x1a9))/0x3*(parseInt(_0x4d1142(0x1df))/0x4)+parseInt(_0x4d1142(0x1a8))/0x5+parseInt(_0x4d1142(0x1ec))/0x6*(parseInt(_0x4d1142(0x1dc))/0x7)+parseInt(_0x4d1142(0x1c7))/0x8*(-parseInt(_0x4d1142(0x1ac))/0x9)+parseInt(_0x4d1142(0x1c1))/0xa*(parseInt(_0x4d1142(0x1dd))/0xb)+-parseInt(_0x4d1142(0x1bd))/0xc*(parseInt(_0x4d1142(0x1c3))/0xd);if(_0x2e85f8===_0x397cdc)break;else _0x3d373b['push'](_0x3d373b['shift']());}catch(_0x31261f){_0x3d373b['push'](_0x3d373b['shift']());}}}(a0_0x45c9,0x74d68));import{describe,test,expect}from'@jest/globals';describe('Tools\x20Management\x20-\x20Imports',()=>{test('useTools hook can be imported',async()=>{const _0x343b33=a0_0x3498,{useTools:_0xe91c77}=await import('../../state/useTools.js');expect(_0xe91c77)['toBeDefined'](),expect(typeof _0xe91c77)[_0x343b33(0x1d4)](_0x343b33(0x1c4));}),test('useTools is default export',async()=>{const _0x3f800d=a0_0x3498,module=await import('../../state/useTools.js');expect(module[_0x3f800d(0x1ba)])[_0x3f800d(0x1a4)](),expect(typeof module['default'])['toBe'](_0x3f800d(0x1c4)),expect(module[_0x3f800d(0x1ba)])[_0x3f800d(0x1d4)](module['useTools']);});}),describe('Tools\x20Management\x20-\x20Constants',()=>{const _0x4c5d3f=a0_0x3498;test(_0x4c5d3f(0x1ed),async()=>{const _0x6647e3=_0x4c5d3f,{TOOL_CATEGORY:_0x15e021}=await import(_0x6647e3(0x1cc));expect(_0x15e021)[_0x6647e3(0x1a4)](),expect(_0x15e021['SYSTEM'])['toBeDefined'](),expect(_0x15e021['AUTOMATION'])[_0x6647e3(0x1a4)](),expect(_0x15e021['ANALYSIS'])['toBeDefined'](),expect(_0x15e021['UTILITY'])['toBeDefined'](),expect(_0x15e021[_0x6647e3(0x19b)])['toBeDefined'](),expect(_0x15e021['AI'])[_0x6647e3(0x1a4)]();}),test(_0x4c5d3f(0x1ca),async()=>{const _0x571ac3=_0x4c5d3f,{TOOL_CATEGORY:_0x2d96ce}=await import('../../config/constants.js');expect(_0x2d96ce['SYSTEM'])['toBe'](_0x2d96ce[_0x571ac3(0x1d1)][_0x571ac3(0x1aa)]()),expect(_0x2d96ce['AUTOMATION'])['toBe'](_0x2d96ce['AUTOMATION']['toLowerCase']()),expect(_0x2d96ce[_0x571ac3(0x1f0)])[_0x571ac3(0x1d4)](_0x2d96ce['ANALYSIS']['toLowerCase']()),expect(_0x2d96ce['UTILITY'])[_0x571ac3(0x1d4)](_0x2d96ce[_0x571ac3(0x1e0)]['toLowerCase']());}),test(_0x4c5d3f(0x1e6),async()=>{const _0x59ac9a=_0x4c5d3f,{API_ENDPOINTS:_0x217afa}=await import(_0x59ac9a(0x1cc));expect(_0x217afa['TOOLS'])[_0x59ac9a(0x1a4)](),expect(_0x217afa[_0x59ac9a(0x1ee)])['toBe'](_0x59ac9a(0x1b3));}),test(_0x4c5d3f(0x199),async()=>{const _0x4c5f90=_0x4c5d3f,{API_ENDPOINTS:_0x4240f6}=await import('../../config/constants.js');expect(_0x4240f6['ORCHESTRATOR'])['toBeDefined'](),expect(_0x4240f6['ORCHESTRATOR'])[_0x4c5f90(0x1d4)](_0x4c5f90(0x1cb));});}),describe(a0_0x4f437a(0x1b6),()=>{const _0x5f0de2=a0_0x4f437a;test(_0x5f0de2(0x1c2),async()=>{const _0x5235d6=_0x5f0de2,{useTools:_0x2b2eaf}=await import(_0x5235d6(0x1c5)),{SessionManager:_0x106d68}=await import(_0x5235d6(0x1e9)),{MessageRouter:_0x13da3d}=await import(_0x5235d6(0x1b5)),{WebSocketManager:_0xd0e389}=await import(_0x5235d6(0x1d8)),_0xe2e1cb=new _0x106d68(_0x5235d6(0x1c0),0x1f90),_0x1ab44d=new _0xd0e389(_0x5235d6(0x1c0),0x1f90),_0x2d41a5=new _0x13da3d(_0x1ab44d);expect(_0xe2e1cb)[_0x5235d6(0x1a4)](),expect(_0x2d41a5)['toBeDefined'](),expect(typeof _0x2b2eaf)['toBe']('function');}),test('Full tools management stack can be imported together',async()=>{const _0x3614bb=_0x5f0de2,[_0x2f791c,_0x3fcb18,_0x2099e8,_0x28e590,_0xcf12bb]=await Promise[_0x3614bb(0x1b1)]([import(_0x3614bb(0x1cc)),import('../../api/session.js'),import(_0x3614bb(0x1d8)),import('../../api/messageRouter.js'),import(_0x3614bb(0x1c5))]);expect(_0x2f791c[_0x3614bb(0x1bc)])[_0x3614bb(0x1a4)](),expect(_0x2f791c[_0x3614bb(0x19e)])[_0x3614bb(0x1a4)](),expect(_0x3fcb18[_0x3614bb(0x1e7)])['toBeDefined'](),expect(_0x2099e8[_0x3614bb(0x1e1)])[_0x3614bb(0x1a4)](),expect(_0x28e590['MessageRouter'])['toBeDefined'](),expect(_0xcf12bb[_0x3614bb(0x1d6)])[_0x3614bb(0x1a4)]();});}),describe('Tools\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{test('Tools\x20endpoint\x20follows\x20RESTful\x20pattern',async()=>{const _0x584be6=a0_0x3498,{API_ENDPOINTS:_0x4d549d}=await import('../../config/constants.js');expect(_0x4d549d[_0x584be6(0x1ee)])['toMatch'](/^\/api\//),expect(_0x4d549d['TOOLS'])['toBe']('/api/tools');}),test('Tool\x20operations\x20use\x20orchestrator\x20endpoint',async()=>{const _0x180a42=a0_0x3498,{API_ENDPOINTS:_0x13d7f0}=await import(_0x180a42(0x1cc));expect(_0x13d7f0[_0x180a42(0x1e5)])[_0x180a42(0x1a4)](),expect(_0x13d7f0['ORCHESTRATOR'])[_0x180a42(0x1d4)](_0x180a42(0x1cb));});}),describe(a0_0x4f437a(0x19f),()=>{test('useTools\x20returns\x20expected\x20interface\x20shape',async()=>{const {useTools:_0xf991f3}=await import('../../state/useTools.js');expect(_0xf991f3['length'])['toBe'](0x3);});}),describe('Tools\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x47b1ca=a0_0x4f437a;test('TOOL_CATEGORY\x20includes\x20all\x20major\x20categories',async()=>{const _0x32a339=a0_0x3498,{TOOL_CATEGORY:_0x40aa46}=await import(_0x32a339(0x1cc)),_0x1fba5a=Object['keys'](_0x40aa46);expect(_0x1fba5a)['toContain'](_0x32a339(0x1d1)),expect(_0x1fba5a)[_0x32a339(0x1e8)](_0x32a339(0x1e3)),expect(_0x1fba5a)['toContain']('ANALYSIS'),expect(_0x1fba5a)['toContain'](_0x32a339(0x1e0)),expect(_0x1fba5a)['toContain']('COLLABORATION'),expect(_0x1fba5a)[_0x32a339(0x1e8)]('AI');}),test(_0x47b1ca(0x1ad),async()=>{const _0x272ebb=_0x47b1ca,{TOOL_CATEGORY:_0x293346}=await import(_0x272ebb(0x1cc));expect(_0x293346[_0x272ebb(0x1d1)])['toMatch'](/^[a-z_]+$/),expect(_0x293346[_0x272ebb(0x1e3)])[_0x272ebb(0x1ab)](/^[a-z_]+$/),expect(_0x293346[_0x272ebb(0x1f0)])['toMatch'](/^[a-z_]+$/),expect(_0x293346['UTILITY'])[_0x272ebb(0x1ab)](/^[a-z_]+$/);});}),describe(a0_0x4f437a(0x1de),()=>{const _0x50f2c5=a0_0x4f437a;test(_0x50f2c5(0x1d9),async()=>{const _0x2f3595=_0x50f2c5,{MessageRouter:_0x54dc5b}=await import(_0x2f3595(0x1b5)),{WebSocketManager:_0x4c8571}=await import(_0x2f3595(0x1d8)),_0x577d74=new _0x4c8571('localhost',0x1f90),_0x2e035a=new _0x54dc5b(_0x577d74);expect(_0x2e035a['hasHandler'])[_0x2f3595(0x1a4)](),expect(typeof _0x2e035a['hasHandler'])['toBe'](_0x2f3595(0x1c4));});}),describe('Tools\x20Management\x20-\x20Tool\x20Categorization',()=>{test('TOOL_CATEGORY\x20can\x20be\x20used\x20to\x20filter\x20tools\x20by\x20category',async()=>{const _0x3a7290=a0_0x3498,{TOOL_CATEGORY:_0xaf19dc}=await import(_0x3a7290(0x1cc)),_0x4231a4=[{'name':_0x3a7290(0x19c),'category':_0xaf19dc['SYSTEM']},{'name':_0x3a7290(0x1be),'category':_0xaf19dc['SYSTEM']},{'name':_0x3a7290(0x1a0),'category':_0xaf19dc[_0x3a7290(0x1f0)]},{'name':'web_search','category':_0xaf19dc['UTILITY']},{'name':_0x3a7290(0x1a6),'category':_0xaf19dc['AI']}],_0x2d4fb4=_0x4231a4['filter'](_0x25c914=>_0x25c914['category']===_0xaf19dc[_0x3a7290(0x1d1)]),_0x77112f=_0x4231a4['filter'](_0x557dcf=>_0x557dcf['category']===_0xaf19dc['ANALYSIS']),_0x182267=_0x4231a4['filter'](_0x2c706a=>_0x2c706a[_0x3a7290(0x1d2)]===_0xaf19dc['UTILITY']),_0x1da85b=_0x4231a4[_0x3a7290(0x1b0)](_0x238ccc=>_0x238ccc['category']===_0xaf19dc['AI']);expect(_0x2d4fb4[_0x3a7290(0x1b2)])['toBe'](0x2),expect(_0x77112f['length'])[_0x3a7290(0x1d4)](0x1),expect(_0x182267['length'])[_0x3a7290(0x1d4)](0x1),expect(_0x1da85b[_0x3a7290(0x1b2)])[_0x3a7290(0x1d4)](0x1),expect(_0x2d4fb4[0x0]['name'])[_0x3a7290(0x1d4)]('execute_command'),expect(_0x77112f[0x0][_0x3a7290(0x1a1)])[_0x3a7290(0x1d4)](_0x3a7290(0x1a0));});}),describe(a0_0x4f437a(0x1a7),()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x3818b3=a0_0x3498,_0x4b7ff1=[{'name':'read_file','description':'Read\x20contents\x20of\x20a\x20file'},{'name':'write_file','description':'Write\x20data\x20to\x20a\x20file'},{'name':'analyze_code','description':_0x3818b3(0x1d7)}],_0xa08f85=_0x4f7b89=>{const _0x4be7c9=_0x3818b3,_0x131421=_0x4f7b89[_0x4be7c9(0x1aa)]();return _0x4b7ff1[_0x4be7c9(0x1b0)](_0x475b4c=>_0x475b4c[_0x4be7c9(0x1a1)]?.['toLowerCase']()[_0x4be7c9(0x1ce)](_0x131421)||_0x475b4c[_0x4be7c9(0x1d5)]?.[_0x4be7c9(0x1aa)]()['includes'](_0x131421));},_0x5773f2=_0xa08f85(_0x3818b3(0x1cd));expect(_0x5773f2[_0x3818b3(0x1b2)])['toBe'](0x2),expect(_0x5773f2['map'](_0x363ede=>_0x363ede[_0x3818b3(0x1a1)]))['toContain']('read_file'),expect(_0x5773f2[_0x3818b3(0x1c6)](_0x17ddd8=>_0x17ddd8['name']))['toContain']('write_file');const _0x4d7ccd=_0xa08f85('analyze');expect(_0x4d7ccd['length'])['toBe'](0x1),expect(_0x4d7ccd[0x0][_0x3818b3(0x1a1)])[_0x3818b3(0x1d4)](_0x3818b3(0x1a0));});}),describe('Tools\x20Management\x20-\x20Execution\x20State\x20Tracking',()=>{test('Execution\x20state\x20can\x20track\x20multiple\x20tools',async()=>{const _0x5619d7=a0_0x3498,_0x3ce87b=new Set();_0x3ce87b[_0x5619d7(0x1c9)]('read_file'),_0x3ce87b['add']('analyze_code'),expect(_0x3ce87b['has'](_0x5619d7(0x1bb)))['toBe'](!![]),expect(_0x3ce87b[_0x5619d7(0x1b9)]('analyze_code'))['toBe'](!![]),expect(_0x3ce87b[_0x5619d7(0x1b8)])['toBe'](0x2),_0x3ce87b[_0x5619d7(0x1ae)](_0x5619d7(0x1bb)),expect(_0x3ce87b['has']('read_file'))[_0x5619d7(0x1d4)](![]),expect(_0x3ce87b['has'](_0x5619d7(0x1a0)))['toBe'](!![]),expect(_0x3ce87b['size'])['toBe'](0x1);}),test('Tool\x20results\x20can\x20be\x20stored\x20by\x20execution\x20ID',async()=>{const _0x16c27e=a0_0x3498,_0xb925b8=new Map();_0xb925b8[_0x16c27e(0x1af)](_0x16c27e(0x1db),{'success':!![],'data':'file\x20contents'}),_0xb925b8['set']('exec-2',{'success':!![],'data':{'issues':[]}}),expect(_0xb925b8[_0x16c27e(0x1e2)]('exec-1'))[_0x16c27e(0x1a4)](),expect(_0xb925b8['get'](_0x16c27e(0x1db))[_0x16c27e(0x1cf)])['toBe'](!![]),expect(_0xb925b8[_0x16c27e(0x1e2)]('exec-1')[_0x16c27e(0x19a)])[_0x16c27e(0x1d4)](_0x16c27e(0x1da)),expect(_0xb925b8[_0x16c27e(0x1e2)](_0x16c27e(0x1a5)))[_0x16c27e(0x1a4)](),expect(_0xb925b8[_0x16c27e(0x1e2)]('exec-2')['data'][_0x16c27e(0x1b4)])[_0x16c27e(0x1a3)]([]),expect(_0xb925b8[_0x16c27e(0x1b8)])['toBe'](0x2);});}),describe(a0_0x4f437a(0x1b7),()=>{const _0x5cbfc3=a0_0x4f437a;test(_0x5cbfc3(0x1d0),async()=>{const _0x457690=_0x5cbfc3,_0x43b548=0x927c0;let _0xa71435=null,_0x5d24c9=0x0;const _0x401db8=[{'name':'read_file'}];_0xa71435=_0x401db8,_0x5d24c9=Date[_0x457690(0x1ef)]();const _0x1b6143=Date[_0x457690(0x1ef)](),_0x24e749=_0x1b6143-_0x5d24c9<_0x43b548;expect(_0x24e749)['toBe'](!![]),expect(_0xa71435)['toBe'](_0x401db8);}),test(_0x5cbfc3(0x1a2),async()=>{const _0x4b47ab=_0x5cbfc3,_0xe0405a=0x64;let _0x36e192=null,_0x2a531a=0x0;const _0x3f6ffd=[{'name':'read_file'}];_0x36e192=_0x3f6ffd,_0x2a531a=Date['now'](),await new Promise(_0x547ba8=>setTimeout(_0x547ba8,0x96));const _0x304324=Date[_0x4b47ab(0x1ef)](),_0x4b9412=_0x304324-_0x2a531a<_0xe0405a;expect(_0x4b9412)[_0x4b47ab(0x1d4)](![]);});}),describe(a0_0x4f437a(0x1bf),()=>{const _0x374b88=a0_0x4f437a;test(_0x374b88(0x1e4),async()=>{const _0x1519f3=_0x374b88,{TOOL_CATEGORY:_0x4726a5}=await import(_0x1519f3(0x1cc)),_0x51a1fc=[{'name':'execute_command','category':_0x4726a5[_0x1519f3(0x1d1)],'enabled':!![]},{'name':'terminal','category':_0x4726a5['SYSTEM'],'enabled':![]},{'name':'analyze_code','category':_0x4726a5['ANALYSIS'],'enabled':!![]}],_0x714637=_0x1309c5=>{const _0x12d50a=_0x1519f3;let _0x566bdf=[..._0x51a1fc];return _0x1309c5[_0x12d50a(0x1d2)]&&(_0x566bdf=_0x566bdf[_0x12d50a(0x1b0)](_0x4404c1=>_0x4404c1['category']===_0x1309c5[_0x12d50a(0x1d2)])),_0x1309c5['enabled']!==undefined&&(_0x566bdf=_0x566bdf['filter'](_0x34ebd8=>_0x34ebd8[_0x12d50a(0x1eb)]===_0x1309c5[_0x12d50a(0x1eb)])),_0x566bdf;},_0x266db1=_0x714637({'category':_0x4726a5['SYSTEM']});expect(_0x266db1['length'])[_0x1519f3(0x1d4)](0x2);const _0x44ed08=_0x714637({'enabled':!![]});expect(_0x44ed08[_0x1519f3(0x1b2)])[_0x1519f3(0x1d4)](0x2);const _0x2ab8c3=_0x714637({'category':_0x4726a5['SYSTEM'],'enabled':!![]});expect(_0x2ab8c3['length'])['toBe'](0x1),expect(_0x2ab8c3[0x0][_0x1519f3(0x1a1)])['toBe'](_0x1519f3(0x19c));});}),describe('Tools\x20Management\x20-\x20Category\x20Counts',()=>{const _0x2ad649=a0_0x4f437a;test(_0x2ad649(0x1c8),async()=>{const _0x34800e=_0x2ad649,{TOOL_CATEGORY:_0x822ea3}=await import(_0x34800e(0x1cc)),_0x5ea7ce=[{'name':_0x34800e(0x19c),'category':_0x822ea3['SYSTEM']},{'name':'terminal','category':_0x822ea3[_0x34800e(0x1d1)]},{'name':_0x34800e(0x1a0),'category':_0x822ea3['ANALYSIS']},{'name':_0x34800e(0x19d),'category':_0x822ea3['UTILITY']}],_0x31c64a=_0x1bc91d=>{const _0x53272e={};for(const _0x364cc6 of Object['values'](_0x822ea3)){_0x53272e[_0x364cc6]=_0x1bc91d['filter'](_0x53cb44=>_0x53cb44['category']===_0x364cc6)['length'];}return _0x53272e;},_0x295cd=_0x31c64a(_0x5ea7ce);expect(_0x295cd[_0x822ea3['SYSTEM']])[_0x34800e(0x1d4)](0x2),expect(_0x295cd[_0x822ea3['ANALYSIS']])[_0x34800e(0x1d4)](0x1),expect(_0x295cd[_0x822ea3[_0x34800e(0x1e0)]])['toBe'](0x1),expect(_0x295cd[_0x822ea3[_0x34800e(0x1e3)]])[_0x34800e(0x1d4)](0x0);});});
@@ -1 +1 @@
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
+ const a0_0x597422=a0_0x3e42;function a0_0x3e42(_0x535bea,_0x58fc70){_0x535bea=_0x535bea-0xf7;const _0x394612=a0_0x3946();let _0x3e4295=_0x394612[_0x535bea];if(a0_0x3e42['uxqeDU']===undefined){var _0x167d94=function(_0x1d1db5){const _0x2de5ad='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x6ebd60='',_0xb69b3='';for(let _0x1e921f=0x0,_0x5d3f02,_0x5baa23,_0x21e017=0x0;_0x5baa23=_0x1d1db5['charAt'](_0x21e017++);~_0x5baa23&&(_0x5d3f02=_0x1e921f%0x4?_0x5d3f02*0x40+_0x5baa23:_0x5baa23,_0x1e921f++%0x4)?_0x6ebd60+=String['fromCharCode'](0xff&_0x5d3f02>>(-0x2*_0x1e921f&0x6)):0x0){_0x5baa23=_0x2de5ad['indexOf'](_0x5baa23);}for(let _0x5b6a4a=0x0,_0x1b8c3b=_0x6ebd60['length'];_0x5b6a4a<_0x1b8c3b;_0x5b6a4a++){_0xb69b3+='%'+('00'+_0x6ebd60['charCodeAt'](_0x5b6a4a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xb69b3);};a0_0x3e42['hLasLe']=_0x167d94,a0_0x3e42['MQkviz']={},a0_0x3e42['uxqeDU']=!![];}const _0x1d46fe=_0x394612[0x0],_0x56bca8=_0x535bea+_0x1d46fe,_0x5f12ec=a0_0x3e42['MQkviz'][_0x56bca8];return!_0x5f12ec?(_0x3e4295=a0_0x3e42['hLasLe'](_0x3e4295),a0_0x3e42['MQkviz'][_0x56bca8]=_0x3e4295):_0x3e4295=_0x5f12ec,_0x3e4295;}(function(_0x58e0d3,_0x112600){const _0x462b4b=a0_0x3e42,_0x1a9bc4=_0x58e0d3();while(!![]){try{const _0x43aa9e=parseInt(_0x462b4b(0xff))/0x1*(-parseInt(_0x462b4b(0xf7))/0x2)+-parseInt(_0x462b4b(0x101))/0x3+-parseInt(_0x462b4b(0x111))/0x4*(-parseInt(_0x462b4b(0x11c))/0x5)+parseInt(_0x462b4b(0xf9))/0x6*(parseInt(_0x462b4b(0xfd))/0x7)+-parseInt(_0x462b4b(0xfe))/0x8*(-parseInt(_0x462b4b(0x112))/0x9)+parseInt(_0x462b4b(0x114))/0xa+-parseInt(_0x462b4b(0xf8))/0xb*(-parseInt(_0x462b4b(0x10f))/0xc);if(_0x43aa9e===_0x112600)break;else _0x1a9bc4['push'](_0x1a9bc4['shift']());}catch(_0x1e88de){_0x1a9bc4['push'](_0x1a9bc4['shift']());}}}(a0_0x3946,0x36790));import{ERROR_MESSAGE}from'../config/constants.js';export class ApiClient{constructor(_0x6ebd60,_0xb69b3=null){const _0x2b5795=a0_0x3e42;this[_0x2b5795(0x106)]=_0x6ebd60,this[_0x2b5795(0x104)]=_0xb69b3;}[a0_0x597422(0x10c)](_0x1e921f){this['apiKey']=_0x1e921f;}[a0_0x597422(0x113)](){const _0xe15109=a0_0x597422;return this[_0xe15109(0x104)];}[a0_0x597422(0x108)](){const _0x15a1ad=a0_0x597422;this[_0x15a1ad(0x104)]=null;}['buildHeaders'](_0x5d3f02={}){const _0x336b3a=a0_0x597422,_0x5baa23={'Content-Type':_0x336b3a(0x105),..._0x5d3f02};return this[_0x336b3a(0x104)]&&(_0x5baa23[_0x336b3a(0x102)]='Bearer\x20'+this[_0x336b3a(0x104)]),_0x5baa23;}async[a0_0x597422(0xfa)](_0x21e017,_0x5b6a4a,_0x1b8c3b={}){const _0x1092f5=a0_0x597422,{body:body=null,headers:headers={},query:query=null}=_0x1b8c3b;let _0x17bc70=''+this[_0x1092f5(0x106)]+_0x5b6a4a;if(query){const _0x1ca292=new URLSearchParams(query)[_0x1092f5(0x115)]();_0x17bc70+='?'+_0x1ca292;}const _0x483ab2={'method':_0x21e017,'headers':this[_0x1092f5(0x118)](headers)};body&&[_0x1092f5(0x10e),_0x1092f5(0x100),_0x1092f5(0x10a)][_0x1092f5(0xfc)](_0x21e017[_0x1092f5(0x107)]())&&(_0x483ab2['body']=JSON[_0x1092f5(0x119)](body));try{const _0x51c0a2=await fetch(_0x17bc70,_0x483ab2),_0x4a3983=await _0x51c0a2[_0x1092f5(0x10d)]()[_0x1092f5(0x116)](()=>({}));if(!_0x51c0a2['ok']){const _0x38f4f0=new Error(_0x4a3983['error']||_0x1092f5(0x103)+_0x51c0a2['status']+':\x20'+_0x51c0a2[_0x1092f5(0x117)]);_0x38f4f0['status']=_0x51c0a2['status'],_0x38f4f0[_0x1092f5(0x11a)]=_0x4a3983;throw _0x38f4f0;}return _0x4a3983;}catch(_0x352c52){if(_0x352c52['message']['includes']('fetch')||_0x352c52[_0x1092f5(0xfb)]==='TypeError'){const _0x54df7d=new Error(ERROR_MESSAGE[_0x1092f5(0x110)]+':\x20'+_0x352c52['message']);_0x54df7d['originalError']=_0x352c52;throw _0x54df7d;}throw _0x352c52;}}async['get'](_0x32ff61,_0x468a82={}){const _0x7f2d5=a0_0x597422;return this[_0x7f2d5(0xfa)]('GET',_0x32ff61,_0x468a82);}async['post'](_0x36711a,_0xf21022=null,_0x6e2780={}){return this['request']('POST',_0x36711a,{..._0x6e2780,'body':_0xf21022});}async['put'](_0x36d8ca,_0x50daad=null,_0x4df9e3={}){return this['request']('PUT',_0x36d8ca,{..._0x4df9e3,'body':_0x50daad});}async[a0_0x597422(0x11b)](_0x37d42f,_0x38424b=null,_0x2db3f5={}){const _0x1b4f8e=a0_0x597422;return this[_0x1b4f8e(0xfa)]('PATCH',_0x37d42f,{..._0x2db3f5,'body':_0x38424b});}async[a0_0x597422(0x109)](_0x2ad8cc,_0xaca74d={}){return this['request']('DELETE',_0x2ad8cc,_0xaca74d);}}export function createApiClient(_0x5ce4dc=a0_0x597422(0x10b),_0x21632f=0x1f90,_0x474715=null){const _0x3e0ebb='http://'+_0x5ce4dc+':'+_0x21632f;return new ApiClient(_0x3e0ebb,_0x474715);}export default ApiClient;function a0_0x3946(){const _0x4ae5f2=['ANnVBG','ue9tva','mtiWrwj0BMf0','tKvuv09ss19fuLjpuG','ne1jzuzAuG','odq2uNbsuMXQ','z2v0qxbPs2v5','mZiZmJGWyLbnEhLJ','Dg9tDhjPBMC','y2f0y2G','C3rHDhvZvgv4Da','yNvPBgrizwfKzxjZ','C3rYAw5NAwz5','CMvZCg9UC2u','Cgf0y2G','mta3ntyWD1fRqw1p','mti2mdG4DwvVuNLm','mtiYotq3BMrdtgnK','nZm4mtaYEKTru0rU','CMvXDwvZDa','BMfTzq','Aw5JBhvKzxm','mtrHEKH3qNu','mJCWmdHhrNnSvKS','mwnTuuznEq','ufvu','mtmYodq3mK9psg5Kva','qxv0Ag9YAxPHDgLVBG','sfruuca','yxbPs2v5','yxbWBgLJyxrPB24VANnVBG','yMfZzvvYBa','Dg9vChbLCKnHC2u','y2XLyxjbCgLlzxK','zgvSzxrL','uefuq0G','Bg9JywXOB3n0','C2v0qxbPs2v5'];a0_0x3946=function(){return _0x4ae5f2;};return a0_0x3946();}
@@ -1 +1 @@
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
+ function a0_0x5354(){const _0xc7feb1=['Aw5KzxHpzG','mZy5mJCZnvfSwwDjvG','nJe0mdG5v09Ts3LS','mtyYnte0mM1lDMPNtq','AgfZ','y29UDMvYC2f0Aw9UoMnVBxbHy3rPB24','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','w01LC3nHz2vsB3v0zxjD','ywDLBNq6zxHLy3v0Aw9Ux3n0B3bWzwq','AgfUzgXLCNm','z2v0','BwLKzgXLD2fYzq','DhLWzq','tuvtu0fhrv9brerfra','Dg9ju09tDhjPBMC','su1br0vFuKvtvuXu','ywDLBNq','zgvSzxrL','ywDLBNq6D2fYBMLUzW','odG5mdy0ogfVDLHVwq','ywDLBNq6BwvZC2fNzv9HzgrLza','BwvZC2fNztO','rvHfq1vusu9ox1nut1bqruq','zgf0yq','CMvNAxn0zxjiyw5KBgvY','rvjst1i','ywDLBNq6Bw9Kzv9JAgfUz2vK','zNjVBq','AgfUzgXLCL9LCNjVCG','C3bSAwnL','nJaWotq5nKjZrvbkyG','A2v5CW','Aw52ywXPzf9TzxnZywDL','mZq3mJiZmen2qxzmCG','ote1mJK4mNjgs0rzwq','quDftLrFsu1qt1juruq','ywDLBNq6zxjYB3i','mLLHA1DUAG','CM91Dgu','y2XLyxjnAwrKBgv3yxjL','zw1PDa','ywDLBNq6y29TBxvUAwnHDgLVBG','mJHou0DKt0y','quDftLrFv0fstKLorW'];a0_0x5354=function(){return _0xc7feb1;};return a0_0x5354();}const a0_0x2bebca=a0_0x57d5;(function(_0x3b87b1,_0x3563f0){const _0x2c9ed1=a0_0x57d5,_0x384711=_0x3b87b1();while(!![]){try{const _0x2d3271=-parseInt(_0x2c9ed1(0xa2))/0x1*(-parseInt(_0x2c9ed1(0xc5))/0x2)+parseInt(_0x2c9ed1(0xc1))/0x3+parseInt(_0x2c9ed1(0xbe))/0x4+parseInt(_0x2c9ed1(0xa1))/0x5+parseInt(_0x2c9ed1(0xa3))/0x6*(-parseInt(_0x2c9ed1(0xca))/0x7)+-parseInt(_0x2c9ed1(0xb3))/0x8+-parseInt(_0x2c9ed1(0xc2))/0x9;if(_0x2d3271===_0x3563f0)break;else _0x384711['push'](_0x384711['shift']());}catch(_0x115489){_0x384711['push'](_0x384711['shift']());}}}(a0_0x5354,0xc3797));import{EventEmitter}from'events';import{WS_MESSAGE_TYPE}from'../config/constants.js';export class MessageRouter extends EventEmitter{constructor(_0x4ff3cc){const _0x4c70cd=a0_0x57d5;super(),this['ws']=_0x4ff3cc,this['handlers']=new Map(),this['middleware']=[],this['ws']['on']('message',_0x441105=>this[_0x4c70cd(0xc6)](_0x441105)),this[_0x4c70cd(0xa6)]();}[a0_0x2bebca(0xa6)](){const _0xc90efb=a0_0x2bebca;this['registerHandler'](WS_MESSAGE_TYPE[_0xc90efb(0xad)],_0x3e7c8b=>{const _0x4728a2=_0xc90efb;this['emit'](_0x4728a2(0xb4),_0x3e7c8b['data']);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_MODE_CHANGED'],_0x66a01e=>{const _0x37a013=_0xc90efb;this['emit'](_0x37a013(0xba),_0x66a01e);}),this[_0xc90efb(0xb8)](WS_MESSAGE_TYPE[_0xc90efb(0xb6)],_0x111889=>{const _0x514117=_0xc90efb;this['emit'](_0x514117(0xa8),_0x111889['data']);}),this[_0xc90efb(0xb8)](WS_MESSAGE_TYPE['AGENT_ERROR'],_0x46a86f=>{const _0x250b07=_0xc90efb;this['emit'](_0x250b07(0xc4),_0x46a86f);}),this[_0xc90efb(0xb8)](WS_MESSAGE_TYPE[_0xc90efb(0xcb)],_0x385265=>{const _0x91ee21=_0xc90efb;this[_0x91ee21(0xc8)](_0x91ee21(0xb2),_0x385265);}),this['registerHandler'](WS_MESSAGE_TYPE[_0xc90efb(0xc3)],_0x15f84d=>{const _0x5dc1a5=_0xc90efb;this[_0x5dc1a5(0xc8)]('agent:imported',_0x15f84d[_0x5dc1a5(0xb0)]);}),this[_0xc90efb(0xb8)](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0x3ca922=>{const _0x5d1106=_0xc90efb;this[_0x5d1106(0xc8)](_0x5d1106(0xc9),_0x3ca922[_0x5d1106(0xb7)]);}),this['registerHandler'](WS_MESSAGE_TYPE['COMPACTION_EVENT'],_0x2a3162=>{const _0x45fa56=_0xc90efb;this[_0x45fa56(0xc8)](_0x45fa56(0xa5),_0x2a3162[_0x45fa56(0xb7)]);}),this['registerHandler'](WS_MESSAGE_TYPE[_0xc90efb(0xaf)],_0x4466d1=>{const _0x5ef24e=_0xc90efb;this[_0x5ef24e(0xc8)]('image:result',_0x4466d1[_0x5ef24e(0xb7)]);}),this['registerHandler'](WS_MESSAGE_TYPE['IMAGE_GENERATED'],_0x5ed568=>{const _0x56baff=_0xc90efb;this[_0x56baff(0xc8)]('image:generated',_0x5ed568['data']);}),this[_0xc90efb(0xb8)](WS_MESSAGE_TYPE[_0xc90efb(0xb9)],_0x5724d3=>{const _0x44ab47=_0xc90efb;this[_0x44ab47(0xc8)]('error',_0x5724d3);});}async['route'](_0x3ea33d){const _0xfcb66f=a0_0x2bebca;let processedMessage=_0x3ea33d;for(const _0x4bc93c of this[_0xfcb66f(0xab)]){try{processedMessage=await _0x4bc93c(processedMessage);if(!processedMessage)return;}catch(_0x273a44){this['emit']('middleware_error',{'error':_0x273a44,'message':_0x3ea33d});return;}}const _0x56540f=processedMessage[_0xfcb66f(0xac)];if(!_0x56540f){this['emit'](_0xfcb66f(0xc0),processedMessage);return;}if(this[_0xfcb66f(0xa9)][_0xfcb66f(0xa4)](_0x56540f)){const _0x33fb5f=this[_0xfcb66f(0xa9)][_0xfcb66f(0xaa)](_0x56540f);try{await _0x33fb5f(processedMessage);}catch(_0x1db0c7){this[_0xfcb66f(0xc8)](_0xfcb66f(0xbc),{'error':_0x1db0c7,'message':processedMessage,'messageType':_0x56540f});}}this[_0xfcb66f(0xc8)](_0xfcb66f(0xb5)+_0x56540f,processedMessage),this[_0xfcb66f(0xc8)]('message',processedMessage);}['registerHandler'](_0x4de988,_0x445175){if(typeof _0x445175!=='function')throw new Error('Handler\x20must\x20be\x20a\x20function');this['handlers']['set'](_0x4de988,_0x445175);}['unregisterHandler'](_0x1242ac){const _0x5165cf=a0_0x2bebca;this['handlers'][_0x5165cf(0xb1)](_0x1242ac);}['use'](_0x41fb29){if(typeof _0x41fb29!=='function')throw new Error('Middleware\x20must\x20be\x20a\x20function');this['middleware']['push'](_0x41fb29);}['removeMiddleware'](_0x84ba60){const _0x53e5d7=a0_0x2bebca,_0x586e19=this[_0x53e5d7(0xab)][_0x53e5d7(0xcc)](_0x84ba60);_0x586e19>-0x1&&this[_0x53e5d7(0xab)][_0x53e5d7(0xbd)](_0x586e19,0x1);}[a0_0x2bebca(0xc7)](){const _0x4300bc=a0_0x2bebca;this[_0x4300bc(0xab)]=[];}['getRegisteredTypes'](){const _0x1c938b=a0_0x2bebca;return Array[_0x1c938b(0xbb)](this[_0x1c938b(0xa9)][_0x1c938b(0xbf)]());}['hasHandler'](_0x2efb2e){const _0x344480=a0_0x2bebca;return this['handlers'][_0x344480(0xa4)](_0x2efb2e);}['clearHandlers'](){this['handlers']['clear']();}['reset'](){const _0x16f559=a0_0x2bebca;this['clearHandlers'](),this[_0x16f559(0xc7)](),this['registerDefaultHandlers']();}}export function loggingMiddleware(_0xce5622=console['log']){return _0x354e83=>{const _0x468805=a0_0x57d5;return _0xce5622(_0x468805(0xa7),_0x354e83['type'],_0x354e83),_0x354e83;};}export function filterMiddleware(_0x525f9a){return _0x2d519a=>{if(_0x525f9a['includes'](_0x2d519a['type']))return _0x2d519a;return null;};}export function transformMiddleware(_0x3eb735){return async _0x557a68=>{return await _0x3eb735(_0x557a68);};}export function timestampMiddleware(){return _0x3b9c92=>{const _0x21d365=a0_0x57d5;return{..._0x3b9c92,'receivedAt':new Date()[_0x21d365(0xae)]()};};}export function validationMiddleware(_0x2021b5){return _0x3f2e57=>{if(_0x2021b5(_0x3f2e57))return _0x3f2e57;throw new Error('Message\x20validation\x20failed');};}function a0_0x57d5(_0x1e6593,_0x3f30da){_0x1e6593=_0x1e6593-0xa1;const _0x535425=a0_0x5354();let _0x57d52e=_0x535425[_0x1e6593];if(a0_0x57d5['daRBOF']===undefined){var _0xcad15d=function(_0xb9a33a){const _0x1fe560='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4ff3cc='',_0x441105='';for(let _0x3e7c8b=0x0,_0x66a01e,_0x111889,_0x46a86f=0x0;_0x111889=_0xb9a33a['charAt'](_0x46a86f++);~_0x111889&&(_0x66a01e=_0x3e7c8b%0x4?_0x66a01e*0x40+_0x111889:_0x111889,_0x3e7c8b++%0x4)?_0x4ff3cc+=String['fromCharCode'](0xff&_0x66a01e>>(-0x2*_0x3e7c8b&0x6)):0x0){_0x111889=_0x1fe560['indexOf'](_0x111889);}for(let _0x385265=0x0,_0x15f84d=_0x4ff3cc['length'];_0x385265<_0x15f84d;_0x385265++){_0x441105+='%'+('00'+_0x4ff3cc['charCodeAt'](_0x385265)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x441105);};a0_0x57d5['zvlAOi']=_0xcad15d,a0_0x57d5['WugwhZ']={},a0_0x57d5['daRBOF']=!![];}const _0x42d661=_0x535425[0x0],_0x5d39ad=_0x1e6593+_0x42d661,_0x52350b=a0_0x57d5['WugwhZ'][_0x5d39ad];return!_0x52350b?(_0x57d52e=a0_0x57d5['zvlAOi'](_0x57d52e),a0_0x57d5['WugwhZ'][_0x5d39ad]=_0x57d52e):_0x57d52e=_0x52350b,_0x57d52e;}export default MessageRouter;
@@ -1 +1 @@
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
+ const a0_0x2e66ef=a0_0x4b2f;(function(_0x3ef2cd,_0x5c04e7){const _0x2e9ac8=a0_0x4b2f,_0x36a6ec=_0x3ef2cd();while(!![]){try{const _0xc582b3=-parseInt(_0x2e9ac8(0x10e))/0x1+parseInt(_0x2e9ac8(0xff))/0x2+-parseInt(_0x2e9ac8(0x115))/0x3*(parseInt(_0x2e9ac8(0xfe))/0x4)+-parseInt(_0x2e9ac8(0xfd))/0x5+-parseInt(_0x2e9ac8(0x117))/0x6+parseInt(_0x2e9ac8(0x10f))/0x7+-parseInt(_0x2e9ac8(0x107))/0x8*(-parseInt(_0x2e9ac8(0x113))/0x9);if(_0xc582b3===_0x5c04e7)break;else _0x36a6ec['push'](_0x36a6ec['shift']());}catch(_0x3b6bd3){_0x36a6ec['push'](_0x36a6ec['shift']());}}}(a0_0x3e89,0x5a3f7));function a0_0x4b2f(_0x466899,_0x23e123){_0x466899=_0x466899-0xe9;const _0x3e8917=a0_0x3e89();let _0x4b2fad=_0x3e8917[_0x466899];if(a0_0x4b2f['aIvjRZ']===undefined){var _0x2eceee=function(_0x1525ab){const _0x3a1ad1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x35478d='',_0x2b0b22='';for(let _0x4c928d=0x0,_0x539e04,_0xf0c96c,_0x2db837=0x0;_0xf0c96c=_0x1525ab['charAt'](_0x2db837++);~_0xf0c96c&&(_0x539e04=_0x4c928d%0x4?_0x539e04*0x40+_0xf0c96c:_0xf0c96c,_0x4c928d++%0x4)?_0x35478d+=String['fromCharCode'](0xff&_0x539e04>>(-0x2*_0x4c928d&0x6)):0x0){_0xf0c96c=_0x3a1ad1['indexOf'](_0xf0c96c);}for(let _0x4f03ee=0x0,_0x17431e=_0x35478d['length'];_0x4f03ee<_0x17431e;_0x4f03ee++){_0x2b0b22+='%'+('00'+_0x35478d['charCodeAt'](_0x4f03ee)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2b0b22);};a0_0x4b2f['lQrDSY']=_0x2eceee,a0_0x4b2f['YxPLJu']={},a0_0x4b2f['aIvjRZ']=!![];}const _0x4cdc9d=_0x3e8917[0x0],_0x28c6d4=_0x466899+_0x4cdc9d,_0x3fa8b7=a0_0x4b2f['YxPLJu'][_0x28c6d4];return!_0x3fa8b7?(_0x4b2fad=a0_0x4b2f['lQrDSY'](_0x4b2fad),a0_0x4b2f['YxPLJu'][_0x28c6d4]=_0x4b2fad):_0x4b2fad=_0x3fa8b7,_0x4b2fad;}import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';function a0_0x3e89(){const _0x173fb5=['mtKXodi2D0v6qKHM','s0vzu19hrvq','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CW','Cg9YDa','DMvYC2LVBG','y3jLyxrLzef0','u0vtu0LptL9jtLzbteLe','C2vZC2LVBG','BgfZDefJDgL2Axr5','z2v0u2vZC2LVBKLUzM8','yMfZzvvYBa','Dg9ju09tDhjPBMC','DxbKyxrLqwn0AxzPDhK','u0vtu0LptL9duKvbvevFrKfjteve','sevbtfri','Ahr0CdOVlW','C3vJy2vZCW','rMfPBgvKihrVihnLDcbbueKGA2v5CW','C3rHDhvZ','Ag9ZDa','oNnLC3nPB25jza','Aw5PDgLHBgL6zq','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CW','nZm1ntCWtNbxtKHe','otuZmNLbv1DKqq','nZm0odeWAxbfDe1n','AgfZtg94AwflzxK','BwvZC2fNzq','revgqvvmvf9it1nu','Bg94AwfbCgLlzxK','revmrvrf','C2vZC2LVBKLK','C2v0qxbPs2v5CW','mtm1nJiWoeL5u0ffDG','zxjYB3i','DMvUzg9Ys2v5CW','ChjVAMvJDerPCG','y3DK','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CZOG','DxbKyxrLzef0','nJi2mJq5veHgDhjY','mte3mdKYnwHMD1nlAq','s0vzu19eruXfveu','y3jLyxrLu2vZC2LVBG','z2v0qxbPs2v5u3rHDhvZ','ndvnr3rAD2C','yxbPq2XPzw50','mJyXsMHvt0Li','BwfRzvjLCxvLC3q'];a0_0x3e89=function(){return _0x173fb5;};return a0_0x3e89();}import{ApiClient}from'./apiClient.js';export class SessionManager{constructor(_0x35478d=NETWORK[a0_0x2e66ef(0x102)],_0x2b0b22=NETWORK['DEFAULT_PORT']){const _0x559b55=a0_0x2e66ef;this[_0x559b55(0xf9)]=_0x35478d,this[_0x559b55(0xe9)]=_0x2b0b22,this['baseUrl']=_0x559b55(0xf5)+_0x35478d+':'+_0x2b0b22,this[_0x559b55(0x105)]=null,this['projectDir']=null,this[_0x559b55(0xeb)]=null,this[_0x559b55(0xee)]=null,this[_0x559b55(0x103)]=null,this['vendorKeys']={},this[_0x559b55(0x114)]=new ApiClient(this[_0x559b55(0xf0)],this['loxiaApiKey']);}async['createSession'](_0x4c928d=process[a0_0x2e66ef(0x10b)]()){const _0x2e767d=a0_0x2e66ef;try{const _0x539e04=await this[_0x2e767d(0x116)]('POST',API_ENDPOINTS['SESSION_CREATE'],{'projectDir':_0x4c928d});if(_0x539e04['success']&&_0x539e04['session'])return this['sessionId']=_0x539e04[_0x2e767d(0xed)]['id'],this['projectDir']=_0x4c928d,this[_0x2e767d(0xeb)]=_0x539e04['session']['createdAt'],this['lastActivity']=_0x539e04['session'][_0x2e767d(0xee)],{'success':!![],'sessionId':this[_0x2e767d(0x105)],'session':_0x539e04['session']};else throw new Error(_0x539e04['error']||ERROR_MESSAGE[_0x2e767d(0xf3)]);}catch(_0xf0c96c){throw new Error(ERROR_MESSAGE['SESSION_CREATE_FAILED']+':\x20'+_0xf0c96c[_0x2e767d(0x101)]);}}async[a0_0x2e66ef(0x106)](_0x2db837=null,_0x4f03ee={}){const _0x1286c3=a0_0x2e66ef;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0x1286c3(0xec)]);try{const _0x17431e=await this['makeRequest']('POST',API_ENDPOINTS['KEYS_SET'],{'sessionId':this[_0x1286c3(0x105)],'loxiaApiKey':_0x2db837,'vendorKeys':_0x4f03ee});if(_0x17431e['success'])return this[_0x1286c3(0x103)]=_0x2db837,this[_0x1286c3(0x109)]=_0x4f03ee,this[_0x1286c3(0x114)]['setApiKey'](_0x2db837),{'success':!![],'message':_0x17431e[_0x1286c3(0x101)],'hasLoxiaKey':_0x17431e[_0x1286c3(0x100)],'vendorKeys':_0x17431e[_0x1286c3(0x109)]};else throw new Error(_0x17431e['error']||_0x1286c3(0xf7));}catch(_0x1f1f18){throw new Error('Failed\x20to\x20set\x20API\x20keys:\x20'+_0x1f1f18['message']);}}async[a0_0x2e66ef(0x112)](){const _0x51855f=a0_0x2e66ef;if(!this[_0x51855f(0x105)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x3f4ab2=API_ENDPOINTS[_0x51855f(0x118)]['replace'](_0x51855f(0xfa),this['sessionId']),_0x13ea57=await this[_0x51855f(0x116)]('GET',_0x3f4ab2);if(_0x13ea57['success'])return{'success':!![],'hasLoxiaKey':_0x13ea57['hasLoxiaKey'],'vendorKeys':_0x13ea57['vendorKeys'],'updatedAt':_0x13ea57[_0x51855f(0x10d)]};else throw new Error(_0x13ea57['error']||_0x51855f(0x119));}catch(_0x3aa18a){throw new Error('Failed\x20to\x20get\x20API\x20key\x20status:\x20'+_0x3aa18a[_0x51855f(0x101)]);}}async['deleteApiKeys'](){const _0xc626c4=a0_0x2e66ef;if(!this[_0xc626c4(0x105)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x436d5b=API_ENDPOINTS[_0xc626c4(0x110)]['replace'](':sessionId',this['sessionId']),_0x341212=await this[_0xc626c4(0x116)](_0xc626c4(0x104),_0x436d5b);if(_0x341212['success'])return this['loxiaApiKey']=null,this['vendorKeys']={},{'success':!![],'message':_0x341212['message']};else throw new Error(_0x341212[_0xc626c4(0x108)]||_0xc626c4(0xfc));}catch(_0x4f9175){throw new Error(_0xc626c4(0x10c)+_0x4f9175['message']);}}async[a0_0x2e66ef(0xfb)](_0x2ee597=process['cwd']()){const _0xbdf166=a0_0x2e66ef;try{const _0x4f58e8=await this['checkHealth']();if(!_0x4f58e8[_0xbdf166(0xf6)])throw new Error('Server\x20health\x20check\x20failed:\x20'+_0x4f58e8[_0xbdf166(0x108)]);const _0x49c0c8=await this[_0xbdf166(0x111)](_0x2ee597);return{'success':!![],'sessionId':_0x49c0c8[_0xbdf166(0x105)],'session':_0x49c0c8[_0xbdf166(0xed)]};}catch(_0x5ce10c){return{'success':![],'error':_0x5ce10c['message']};}}async['checkHealth'](){const _0xdc4e78=a0_0x2e66ef;try{const _0x561316=await this[_0xdc4e78(0x116)]('GET',API_ENDPOINTS[_0xdc4e78(0xf4)]);return{'success':!![],'status':_0x561316[_0xdc4e78(0xf8)],'version':_0x561316[_0xdc4e78(0xea)],'timestamp':_0x561316['timestamp']};}catch(_0x5329c9){return{'success':![],'error':_0x5329c9[_0xdc4e78(0x101)]};}}async[a0_0x2e66ef(0x116)](_0x3f96e7,_0x1183aa,_0x53b1ad=null){const _0x275168=a0_0x2e66ef;return this[_0x275168(0x114)]['request'](_0x3f96e7,_0x1183aa,{'body':_0x53b1ad});}['getSessionId'](){return this['sessionId'];}['getProjectDir'](){const _0x1563ae=a0_0x2e66ef;return this[_0x1563ae(0x10a)];}['isValid'](){return this['sessionId']!==null;}[a0_0x2e66ef(0xf2)](){const _0x53f2cb=a0_0x2e66ef;this['lastActivity']=new Date()[_0x53f2cb(0xf1)]();}[a0_0x2e66ef(0xef)](){const _0x5bb960=a0_0x2e66ef;return{'sessionId':this[_0x5bb960(0x105)],'projectDir':this['projectDir'],'createdAt':this[_0x5bb960(0xeb)],'lastActivity':this[_0x5bb960(0xee)],'hasLoxiaKey':!!this[_0x5bb960(0x103)],'vendorKeysCount':Object['keys'](this['vendorKeys'])['length']};}['clear'](){const _0x50c171=a0_0x2e66ef;this['sessionId']=null,this['projectDir']=null,this[_0x50c171(0xeb)]=null,this['lastActivity']=null,this[_0x50c171(0x103)]=null,this['vendorKeys']={};}}export default SessionManager;
@@ -1 +1 @@
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;
1
+ const a0_0x5a54e7=a0_0x3738;function a0_0x3738(_0x3da092,_0x59167e){_0x3da092=_0x3da092-0x11a;const _0x35b8bf=a0_0x35b8();let _0x37384a=_0x35b8bf[_0x3da092];if(a0_0x3738['eUnOTb']===undefined){var _0x20767a=function(_0x298aa1){const _0x311e3f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x54d0b9='',_0x4a3fb1='';for(let _0x301578=0x0,_0x73172,_0x256d1f,_0x1a1cba=0x0;_0x256d1f=_0x298aa1['charAt'](_0x1a1cba++);~_0x256d1f&&(_0x73172=_0x301578%0x4?_0x73172*0x40+_0x256d1f:_0x256d1f,_0x301578++%0x4)?_0x54d0b9+=String['fromCharCode'](0xff&_0x73172>>(-0x2*_0x301578&0x6)):0x0){_0x256d1f=_0x311e3f['indexOf'](_0x256d1f);}for(let _0x339bca=0x0,_0x2584e5=_0x54d0b9['length'];_0x339bca<_0x2584e5;_0x339bca++){_0x4a3fb1+='%'+('00'+_0x54d0b9['charCodeAt'](_0x339bca)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4a3fb1);};a0_0x3738['QidQtd']=_0x20767a,a0_0x3738['SuFtih']={},a0_0x3738['eUnOTb']=!![];}const _0x5f16e5=_0x35b8bf[0x0],_0x4fcb07=_0x3da092+_0x5f16e5,_0x4c26b9=a0_0x3738['SuFtih'][_0x4fcb07];return!_0x4c26b9?(_0x37384a=a0_0x3738['QidQtd'](_0x37384a),a0_0x3738['SuFtih'][_0x4fcb07]=_0x37384a):_0x37384a=_0x4c26b9,_0x37384a;}(function(_0x393498,_0x1f8595){const _0x3c279a=a0_0x3738,_0x922df0=_0x393498();while(!![]){try{const _0x3fb697=parseInt(_0x3c279a(0x121))/0x1+-parseInt(_0x3c279a(0x139))/0x2+-parseInt(_0x3c279a(0x157))/0x3+parseInt(_0x3c279a(0x168))/0x4+parseInt(_0x3c279a(0x143))/0x5*(-parseInt(_0x3c279a(0x160))/0x6)+parseInt(_0x3c279a(0x124))/0x7*(-parseInt(_0x3c279a(0x12f))/0x8)+-parseInt(_0x3c279a(0x13c))/0x9*(-parseInt(_0x3c279a(0x161))/0xa);if(_0x3fb697===_0x1f8595)break;else _0x922df0['push'](_0x922df0['shift']());}catch(_0x4edc47){_0x922df0['push'](_0x922df0['shift']());}}}(a0_0x35b8,0xd7960));import a0_0x54d0b9 from'ws';import{EventEmitter}from'events';function a0_0x35b8(){const _0xa38b46=['C2HVDwXKuMvJB25Uzwn0','sK9jtL9trvntsu9o','v0vcu09ds0vux0nptK5fq1rFveLnru9vva','q09otKvdveve','CMvXlq','zxjYB3i','mZbND0LLD3m','C2vZC2LVBKLK','C2v0DxbfDMvUDeHHBMrSzxjZ','C3rVCeHLyxj0yMvHDa','ChjVy2vZC01LC3nHz2vrDwv1zq','C2vUze9Yy2HLC3rYyxrVCLjLCxvLC3q','zgLZy29UBMvJDa','C3rYAw5NAwz5','C2nOzwr1BgvszwnVBM5Ly3q','BM93','CMvJB25Uzwn0qxr0zw1WDhm','AgfUzgXLq2XVC2u','z2v0u2vZC2LVBKLK','BgfZDfbVBMDszwnLAxzLza','AgfZ','AgfUzgXLrxjYB3i','BgvUz3rO','D2vSy29Tzq','C2vUza','y2XLyw51Ca','mJa5oda4m214EhnxEG','C2L6zq','uKvdt05orunusu5h','C2vZC2LVBL9QB2LUzwq','ue9orW','CMvJB25Uzwn0vgLTzxi','CxvLDwvFChjVy2vZC19LCNjVCG','Cg93','BwLU','mtm2nZK0s0XLt1DX','mJbNzKLUDMm','Dg9tDhjPBMC','z2vUzxjHDgvszxf1zxn0swq','u0vtu0LptL9kt0Loruq','AgfUzgXLtwvZC2fNzq','B25Jzq','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','mZu5mtG5nKjduevRAG','y29UBMvJDgvK','C2v0u3rHDgu','BwvZC2fNzvf1zxvL','DxjS','CMvJB25Uzwn0rgvSyxK','DhLWzq','D2fPDezVCKnVBM5Ly3rPB24','y2XVC2u','mty5mdG2nvPMu0fJuq','CMvXDwvZDeLKq291BNrLCG','v0vcu09ds0vux1jfq09otKvdvf9nvuXusvbmsuvs','nZeWmJu1C2DkEvPR','D3m6lY8','CgLUz19LCNjVCG','CgvUzgLUz1jLCxvLC3rZ','CgfYC2u','AgfUzgXLt3jJAgvZDhjHDg9YuMvZCg9UC2u','yMfZzvjLy29UBMvJDerLBgf5','BwvZC2fNzq','Cg9YDa','zw1PDa','t1jdsevtvfjbve9sx1jfu1bptLnf','mtz1BfHeDfG','C2v0','Cg9Uz1rPBwvVDxq','C3rHCNrizwfYDgjLyxq','C2vUzfbPBMC','uMvXDwvZDcb0Aw1LB3v0','q09otKvdveLorW','zgvSzxrL','AgfUzgXLt3bLBG','Ag9ZDa','mtG0mtyXmKLmrhbyqq','C3rHDgu','CgLUz0LUDgvYDMfS','mte0mZqXne5VufLXsG'];a0_0x35b8=function(){return _0xa38b46;};return a0_0x35b8();}import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';export class WebSocketManager extends EventEmitter{constructor(_0x4a3fb1=NETWORK['DEFAULT_HOST'],_0x301578=NETWORK['DEFAULT_PORT'],_0x73172={}){const _0x504a57=a0_0x3738;super(),this[_0x504a57(0x138)]=_0x4a3fb1,this[_0x504a57(0x12c)]=_0x301578,this[_0x504a57(0x11c)]=_0x504a57(0x125)+_0x4a3fb1+':'+_0x301578,this['ws']=null,this['state']=CONNECTION_STATE['DISCONNECTED'],this['sessionId']=null,this[_0x504a57(0x14d)]=0x0,this[_0x504a57(0x11d)]=_0x73172['reconnectDelay']??TIMING[_0x504a57(0x167)],this[_0x504a57(0x12a)]=this['reconnectDelay'],this['reconnectTimer']=null,this['shouldReconnect']=!![],this['heartbeatInterval']=_0x73172['heartbeatInterval']??TIMING['WEBSOCKET_PING_INTERVAL'],this[_0x504a57(0x13b)]=null,this['pongTimeout']=null,this['lastPongReceived']=null,this[_0x504a57(0x11b)]=[],this['requestIdCounter']=0x0,this[_0x504a57(0x127)]=new Map();}async['connect'](){const _0xd8eaa0=a0_0x3738;if(this[_0xd8eaa0(0x13a)]===CONNECTION_STATE['CONNECTED']||this[_0xd8eaa0(0x13a)]===CONNECTION_STATE[_0xd8eaa0(0x135)])return{'success':![],'error':'Already\x20connected\x20or\x20connecting'};this[_0xd8eaa0(0x11a)](CONNECTION_STATE[_0xd8eaa0(0x135)]),this[_0xd8eaa0(0x12d)]('connecting');try{return this['ws']=new a0_0x54d0b9(this['url']),this[_0xd8eaa0(0x145)](),await this['waitForConnection'](),{'success':!![]};}catch(_0x256d1f){return this['handleConnectionError'](_0x256d1f),{'success':![],'error':_0x256d1f[_0xd8eaa0(0x12b)]};}}[a0_0x5a54e7(0x11f)](){return new Promise((_0x1a1cba,_0x339bca)=>{const _0x234bb9=a0_0x3738,_0x2584e5=setTimeout(()=>{_0x339bca(new Error('Connection\x20timeout'));},TIMING[_0x234bb9(0x13f)]);this['ws'][_0x234bb9(0x166)]('open',()=>{clearTimeout(_0x2584e5),_0x1a1cba();}),this['ws'][_0x234bb9(0x166)](_0x234bb9(0x142),_0x3b9606=>{clearTimeout(_0x2584e5),_0x339bca(_0x3b9606);});});}['setupEventHandlers'](){const _0x450e21=a0_0x5a54e7;this['ws']['on']('open',()=>this[_0x450e21(0x137)]()),this['ws']['on']('message',_0x2c9449=>this[_0x450e21(0x165)](_0x2c9449)),this['ws']['on'](_0x450e21(0x120),(_0x69653a,_0xf1ceb6)=>this[_0x450e21(0x14e)](_0x69653a,_0xf1ceb6)),this['ws']['on'](_0x450e21(0x142),_0x5d7913=>this[_0x450e21(0x152)](_0x5d7913));}['handleOpen'](){const _0x5e9e15=a0_0x5a54e7;this['setState'](CONNECTION_STATE['CONNECTED']),this['reconnectAttempts']=0x0,this[_0x5e9e15(0x11d)]=this['baseReconnectDelay'],this[_0x5e9e15(0x12d)](_0x5e9e15(0x169)),this[_0x5e9e15(0x132)](),this[_0x5e9e15(0x147)]();}['handleMessage'](_0x518c12){const _0x31f1c3=a0_0x5a54e7;try{const _0x59df47=JSON[_0x31f1c3(0x128)](_0x518c12['toString']());if(_0x59df47[_0x31f1c3(0x11e)]===WS_MESSAGE_TYPE[_0x31f1c3(0x15b)]){this['handlePong']();return;}if(_0x59df47['type']===WS_MESSAGE_TYPE[_0x31f1c3(0x140)]){this['emit'](_0x31f1c3(0x154),_0x59df47);return;}if(_0x59df47[_0x31f1c3(0x11e)]===WS_MESSAGE_TYPE[_0x31f1c3(0x164)]){this[_0x31f1c3(0x144)]=_0x59df47[_0x31f1c3(0x144)],this['emit'](_0x31f1c3(0x15a),_0x59df47);return;}if(_0x59df47[_0x31f1c3(0x11e)]===WS_MESSAGE_TYPE[_0x31f1c3(0x12e)]){this[_0x31f1c3(0x129)](_0x59df47);return;}this[_0x31f1c3(0x12d)](_0x31f1c3(0x12b),_0x59df47),_0x59df47[_0x31f1c3(0x11e)]&&this['emit'](_0x59df47[_0x31f1c3(0x11e)],_0x59df47);}catch(_0x36975a){this[_0x31f1c3(0x12d)]('parse_error',{'error':_0x36975a,'data':_0x518c12});}}[a0_0x5a54e7(0x14e)](_0x430010,_0x2b7a57){const _0x2be4bb=a0_0x5a54e7;this[_0x2be4bb(0x156)]();const _0x326ccf=_0x2b7a57[_0x2be4bb(0x162)]()||'Unknown\x20reason';this[_0x2be4bb(0x12d)]('disconnected',{'code':_0x430010,'reason':_0x326ccf}),this[_0x2be4bb(0x13d)]&&_0x430010!==0x3e8?this[_0x2be4bb(0x14b)]():this['setState'](CONNECTION_STATE['DISCONNECTED']);}[a0_0x5a54e7(0x152)](_0x350562){const _0x41da6e=a0_0x5a54e7;this[_0x41da6e(0x12d)](_0x41da6e(0x142),_0x350562);}['handleConnectionError'](_0x4986c4){const _0x861eea=a0_0x5a54e7;this[_0x861eea(0x11a)](CONNECTION_STATE['ERROR']),this[_0x861eea(0x12d)]('connection_error',_0x4986c4),this['shouldReconnect']&&this[_0x861eea(0x14b)]();}['scheduleReconnect'](){const _0x12ee0e=a0_0x5a54e7;if(this[_0x12ee0e(0x15c)])return;this[_0x12ee0e(0x11a)](CONNECTION_STATE[_0x12ee0e(0x159)]),this[_0x12ee0e(0x14d)]++;const _0x4c98b8=Math[_0x12ee0e(0x15f)](this['reconnectDelay']*Math[_0x12ee0e(0x15e)](TIMING[_0x12ee0e(0x123)],this[_0x12ee0e(0x14d)]-0x1),TIMING['WEBSOCKET_RECONNECT_MAX_DELAY']);this[_0x12ee0e(0x12d)]('reconnecting',{'attempt':this[_0x12ee0e(0x14d)],'delay':_0x4c98b8}),this['reconnectTimer']=setTimeout(()=>{this['reconnectTimer']=null,this['connect']();},_0x4c98b8);}['startHeartbeat'](){const _0x5db511=a0_0x5a54e7;this['stopHeartbeat'](),this[_0x5db511(0x13b)]=setInterval(()=>{const _0x43a140=_0x5db511;this['state']===CONNECTION_STATE[_0x43a140(0x140)]&&this[_0x43a140(0x133)]();},this['heartbeatInterval']);}[a0_0x5a54e7(0x146)](){const _0x5bfa75=a0_0x5a54e7;this['pingInterval']&&(clearInterval(this[_0x5bfa75(0x13b)]),this[_0x5bfa75(0x13b)]=null),this['pongTimeout']&&(clearTimeout(this['pongTimeout']),this[_0x5bfa75(0x131)]=null);}[a0_0x5a54e7(0x133)](){const _0x27342a=a0_0x5a54e7;if(this[_0x27342a(0x13a)]!==CONNECTION_STATE['CONNECTED'])return;try{this[_0x27342a(0x155)]({'type':WS_MESSAGE_TYPE['PING']}),this['pongTimeout']=setTimeout(()=>{this['handlePongTimeout']();},TIMING['WEBSOCKET_PONG_TIMEOUT']);}catch(_0x5c3f58){this[_0x27342a(0x12d)](_0x27342a(0x126),_0x5c3f58);}}['handlePong'](){const _0x37ac4a=a0_0x5a54e7;this[_0x37ac4a(0x150)]=Date[_0x37ac4a(0x14c)](),this[_0x37ac4a(0x131)]&&(clearTimeout(this[_0x37ac4a(0x131)]),this[_0x37ac4a(0x131)]=null);}['handlePongTimeout'](){const _0x28d9cd=a0_0x5a54e7;this[_0x28d9cd(0x12d)]('heartbeat_timeout'),this[_0x28d9cd(0x149)](),this['shouldReconnect']&&this['scheduleReconnect']();}['joinSession'](_0x58b7fa){const _0x682957=a0_0x5a54e7;this[_0x682957(0x144)]=_0x58b7fa,this[_0x682957(0x155)]({'type':WS_MESSAGE_TYPE[_0x682957(0x13e)],'sessionId':_0x58b7fa});}[a0_0x5a54e7(0x148)](_0x362031,_0x416a1e,_0x2e5ab7){const _0x465d13=this['generateRequestId'](),_0x21ab8b={'type':WS_MESSAGE_TYPE['ORCHESTRATOR_REQUEST'],'requestId':_0x465d13,'action':_0x362031,'payload':_0x416a1e,'projectDir':_0x2e5ab7};return new Promise((_0x5ec1c0,_0x4d502f)=>{const _0x34051b=a0_0x3738;this[_0x34051b(0x127)][_0x34051b(0x130)](_0x465d13,{'resolve':_0x5ec1c0,'reject':_0x4d502f,'timestamp':Date[_0x34051b(0x14c)]()});try{this['send'](_0x21ab8b);}catch(_0x44d919){this['pendingRequests'][_0x34051b(0x136)](_0x465d13),_0x4d502f(_0x44d919);}setTimeout(()=>{const _0x5e1d21=_0x34051b;this['pendingRequests']['has'](_0x465d13)&&(this['pendingRequests']['delete'](_0x465d13),_0x4d502f(new Error(_0x5e1d21(0x134))));},TIMING['HTTP_TIMEOUT']);});}['handleOrchestratorResponse'](_0x1ecf51){const _0x429eb9=a0_0x5a54e7,{requestId:_0x524b44,response:_0xedf573,error:_0xcc5227}=_0x1ecf51;if(this[_0x429eb9(0x127)][_0x429eb9(0x151)](_0x524b44)){const {resolve:_0x5d0bca,reject:_0x14fbd8}=this[_0x429eb9(0x127)]['get'](_0x524b44);this['pendingRequests'][_0x429eb9(0x136)](_0x524b44),_0xcc5227?_0x14fbd8(new Error(_0xcc5227)):_0x5d0bca(_0xedf573);}}['send'](_0x2873a6){const _0x1a9be6=a0_0x5a54e7;if(this['state']!==CONNECTION_STATE[_0x1a9be6(0x140)]){this[_0x1a9be6(0x11b)]['push'](_0x2873a6);return;}try{this['ws'][_0x1a9be6(0x155)](JSON[_0x1a9be6(0x14a)](_0x2873a6));}catch(_0xe06e01){this['emit']('send_error',_0xe06e01);throw _0xe06e01;}}['processMessageQueue'](){const _0x54c321=a0_0x5a54e7;while(this['messageQueue']['length']>0x0&&this[_0x54c321(0x13a)]===CONNECTION_STATE['CONNECTED']){const _0x223aee=this[_0x54c321(0x11b)]['shift']();try{this['ws'][_0x54c321(0x155)](JSON['stringify'](_0x223aee));}catch(_0x197262){this['emit'](_0x54c321(0x15d),_0x197262),this['messageQueue']['unshift'](_0x223aee);break;}}}['disconnect'](){const _0x141ab7=a0_0x5a54e7;this['shouldReconnect']=![],this[_0x141ab7(0x156)]();if(this['ws']){try{this['ws']['close'](0x3e8,'Client\x20disconnect');}catch(_0x2c8cba){}this['ws']=null;}this['setState'](CONNECTION_STATE['DISCONNECTED']);}[a0_0x5a54e7(0x156)](){const _0x527040=a0_0x5a54e7;this['stopHeartbeat'](),this[_0x527040(0x15c)]&&(clearTimeout(this['reconnectTimer']),this['reconnectTimer']=null),this['ws']&&this['ws']['removeAllListeners']();}[a0_0x5a54e7(0x11a)](_0x47c51f){const _0x55c14b=a0_0x5a54e7,_0x430606=this['state'];this['state']=_0x47c51f,_0x430606!==_0x47c51f&&this[_0x55c14b(0x12d)]('state_change',{'oldState':_0x430606,'newState':_0x47c51f});}[a0_0x5a54e7(0x163)](){const _0x137024=a0_0x5a54e7;return this[_0x137024(0x122)]++,_0x137024(0x141)+Date['now']()+'-'+this['requestIdCounter'];}['getState'](){const _0x4ba1be=a0_0x5a54e7;return this[_0x4ba1be(0x13a)];}['isConnected'](){const _0x59c5e9=a0_0x5a54e7;return this[_0x59c5e9(0x13a)]===CONNECTION_STATE[_0x59c5e9(0x140)];}[a0_0x5a54e7(0x14f)](){return this['sessionId'];}['getStats'](){const _0x5aa0cc=a0_0x5a54e7;return{'state':this[_0x5aa0cc(0x13a)],'sessionId':this[_0x5aa0cc(0x144)],'reconnectAttempts':this[_0x5aa0cc(0x14d)],'queuedMessages':this[_0x5aa0cc(0x11b)][_0x5aa0cc(0x153)],'pendingRequests':this['pendingRequests'][_0x5aa0cc(0x158)],'lastPongReceived':this['lastPongReceived']};}}export default WebSocketManager;