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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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-DFmFvOoy.css +1 -0
  121. package/web-ui/build/static/{index-CR8edPA3.js → index-DOk0l6Kf.js} +73 -73
  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_0xf2dfb8=a0_0x3eb8;function a0_0x364a(){const _0x5e1416=['BM90','mty1nde2vvr5ywzN','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','Ag9ZDa','BgvUz3rO','mteXmJGWodbtD1PSBgC','Cg9YDa','z2v0u2vZC2LVBKLUzM8','lI4VlI4VyxbPl3nLC3nPB24UANm','Dg9czurLzMLUzwq','veLnsu5h','CgvUzgLUz1jLCxvLC3rZ','DxjS','ndmWsenzqNHp','DMvUzg9Ys2v5C0nVDw50','Dg9iyxzLuhjVCgvYDhK','BM90lweTzNvUy3rPB24','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','Bg94AwfbCgLlzxK','z2v0u3rHDhm','v0vcu09ds0vux1bjtKDFsu5urvjwquW','AgfZsgfUzgXLCG','su1br0vFuKvtvuXu','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','rvHfq1vusu9ox1nut1bqruq','q09otKvdveLptL9tvefurq','DgvZDc1OB3n0','Dg9uAhjVDW','A2v5','mtHRwwTtrwG','nZC1mZv2wKHtyKe','DgvZDc1TzxnZywDL','quDftLrFtu9erq','tuvtu0fhrv9brerfra','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','C2vZC2LVBKLK','v2vIu29JA2v0twfUywDLCIbPBML0AwfSAxPLCYb3AxrOignVCNjLy3qGC3rHDgu','BNvTyMvY','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbjBxbVCNrZ','zgLZy29UBMvJDgvK','ywXSB3DLzc10ExbL','Dg9nyxrJAa','yMXVy2TLzc10ExbL','CMvNAxn0zxjiyw5KBgvY','DgvZDc0XmJm','mZv1wLDJvfq','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbfCNjVCIbiyw5KBgLUzW','Dg9czvrYDxrOEq','u0LerujbuL9xsurusa','revgqvvmvf9qt1ju','mtuWmJyWnfbus0zYzq','y29UBMvJDgvK','AxnwywXPza','Dg9fCxvHBa','Bg9JywXOB3n0','mta4ntmWEvDdzg9Y','odaZntq1DhfqEwLz','v2vIu29JA2v0twfUywDLCIbOzwXWzxiGBwv0Ag9KCYb3B3jR','Dg9czq','mMrSrxjABq','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','revgqvvmvf9it1nu','mti2odeYmfPODMvvsa','BwLKzgXLD2fYzq','ChjVAMvJDerPCG','zNvUy3rPB24','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','tKvuv09ssW','quDftLrFtu9erv9dsefor0ve','DxnL','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLignHBIbIzsbHzgrLzcbHBMqGCMvTB3zLza','vuLFreLnru5tsu9ouW','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','tuvtu0fhrv9msvnux0HfsuDiva','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','mtf5svnQD2W','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','DgvZDc1RzxK','reLtq09otKvdveve','DgvZDa','DMvUzg9Ys2v5CW'];a0_0x364a=function(){return _0x5e1416;};return a0_0x364a();}(function(_0x5ce7c3,_0x5cc1ac){const _0x403441=a0_0x3eb8,_0xd96545=_0x5ce7c3();while(!![]){try{const _0x2721a8=-parseInt(_0x403441(0x116))/0x1*(parseInt(_0x403441(0x11a))/0x2)+parseInt(_0x403441(0x111))/0x3+-parseInt(_0x403441(0x11d))/0x4+-parseInt(_0x403441(0x117))/0x5*(parseInt(_0x403441(0xfc))/0x6)+-parseInt(_0x403441(0x10c))/0x7*(-parseInt(_0x403441(0x131))/0x8)+parseInt(_0x403441(0xfd))/0x9*(-parseInt(_0x403441(0x13d))/0xa)+-parseInt(_0x403441(0x12a))/0xb*(-parseInt(_0x403441(0x135))/0xc);if(_0x2721a8===_0x5cc1ac)break;else _0xd96545['push'](_0xd96545['shift']());}catch(_0x47f32d){_0xd96545['push'](_0xd96545['shift']());}}}(a0_0x364a,0x3de15));import{describe,test,expect}from'@jest/globals';function a0_0x3eb8(_0x2d9b26,_0x51724a){_0x2d9b26=_0x2d9b26-0xf2;const _0x364a05=a0_0x364a();let _0x3eb892=_0x364a05[_0x2d9b26];if(a0_0x3eb8['gIEKuv']===undefined){var _0x468a8e=function(_0x1a4ff2){const _0x2d2712='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3c3603='',_0x5ebb71='';for(let _0x2ac0c4=0x0,_0x968808,_0x37dceb,_0x30dfdc=0x0;_0x37dceb=_0x1a4ff2['charAt'](_0x30dfdc++);~_0x37dceb&&(_0x968808=_0x2ac0c4%0x4?_0x968808*0x40+_0x37dceb:_0x37dceb,_0x2ac0c4++%0x4)?_0x3c3603+=String['fromCharCode'](0xff&_0x968808>>(-0x2*_0x2ac0c4&0x6)):0x0){_0x37dceb=_0x2d2712['indexOf'](_0x37dceb);}for(let _0x3566f5=0x0,_0x12d8dc=_0x3c3603['length'];_0x3566f5<_0x12d8dc;_0x3566f5++){_0x5ebb71+='%'+('00'+_0x3c3603['charCodeAt'](_0x3566f5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5ebb71);};a0_0x3eb8['MPWxWu']=_0x468a8e,a0_0x3eb8['lhiUSx']={},a0_0x3eb8['gIEKuv']=!![];}const _0x5a5616=_0x364a05[0x0],_0x5de846=_0x2d9b26+_0x5a5616,_0x32b650=a0_0x3eb8['lhiUSx'][_0x5de846];return!_0x32b650?(_0x3eb892=a0_0x3eb8['MPWxWu'](_0x3eb892),a0_0x3eb8['lhiUSx'][_0x5de846]=_0x3eb892):_0x3eb892=_0x32b650,_0x3eb892;}import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe(a0_0xf2dfb8(0x105),()=>{test('constants module exports all required constants',async()=>{const _0x1e8d97=a0_0x3eb8,_0x3c3603=await import(_0x1e8d97(0x141));expect(_0x3c3603[_0x1e8d97(0x126)])['toBeDefined'](),expect(_0x3c3603['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x3c3603['PAGINATION'])['toBeDefined'](),expect(_0x3c3603[_0x1e8d97(0x13a)])['toBeDefined'](),expect(_0x3c3603['NETWORK'])['toBeDefined'](),expect(_0x3c3603[_0x1e8d97(0xf8)])[_0x1e8d97(0x139)](),expect(_0x3c3603[_0x1e8d97(0xff)])[_0x1e8d97(0x139)](),expect(_0x3c3603['WS_MESSAGE_TYPE'])['toBeDefined'](),expect(_0x3c3603['API_ENDPOINTS'])['toBeDefined'](),expect(_0x3c3603['COMMANDS'])[_0x1e8d97(0x139)](),expect(_0x3c3603[_0x1e8d97(0x122)][_0x1e8d97(0x11c)])[_0x1e8d97(0x119)]('localhost'),expect(_0x3c3603[_0x1e8d97(0x122)]['DEFAULT_PORT'])['toBe'](0x1f90),expect(_0x3c3603['CONNECTION_STATE']['DISCONNECTED'])[_0x1e8d97(0x119)](_0x1e8d97(0x106)),expect(_0x3c3603['CONNECTION_STATE']['CONNECTED'])['toBe'](_0x1e8d97(0x112));}),test('WebSocketManager class can be imported',async()=>{const _0x3f29c3=a0_0x3eb8,{WebSocketManager:_0x5ebb71}=await import('../../api/websocket.js');expect(_0x5ebb71)['toBeDefined'](),expect(typeof _0x5ebb71)['toBe']('function');const _0x2ac0c4=new _0x5ebb71(_0x3f29c3(0x115),0x1f90);expect(_0x2ac0c4)['toBeDefined'](),expect(_0x2ac0c4[_0x3f29c3(0x133)])[_0x3f29c3(0x119)]('localhost'),expect(_0x2ac0c4['port'])['toBe'](0x1f90),expect(_0x2ac0c4[_0x3f29c3(0x13c)])['toBe']('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0x3ba311=a0_0x3eb8,{SessionManager:_0x968808}=await import('../../api/session.js');expect(_0x968808)['toBeDefined'](),expect(typeof _0x968808)[_0x3ba311(0x119)](_0x3ba311(0x120));const _0x37dceb=new _0x968808(_0x3ba311(0x115),0x1f90);expect(_0x37dceb)[_0x3ba311(0x139)](),expect(_0x37dceb['host'])['toBe']('localhost'),expect(_0x37dceb[_0x3ba311(0x136)])['toBe'](0x1f90),expect(_0x37dceb['baseUrl'])[_0x3ba311(0x119)]('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x2fc7cb=a0_0x3eb8,{MessageRouter:_0x30dfdc}=await import(_0x2fc7cb(0x127)),{WebSocketManager:_0x3566f5}=await import(_0x2fc7cb(0x11b));expect(_0x30dfdc)[_0x2fc7cb(0x139)](),expect(typeof _0x30dfdc)['toBe'](_0x2fc7cb(0x120));const _0x12d8dc=new _0x3566f5('localhost',0x1f90),_0x3eb3d5=new _0x30dfdc(_0x12d8dc);expect(_0x3eb3d5)['toBeDefined'](),expect(_0x3eb3d5['ws'])[_0x2fc7cb(0x119)](_0x12d8dc);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x283429=a0_0x3eb8,{loggingMiddleware:_0x1d6155,filterMiddleware:_0x4213bf,transformMiddleware:_0x355694,timestampMiddleware:_0x524c3b,validationMiddleware:_0x169ed1}=await import(_0x283429(0x127));expect(typeof _0x1d6155)['toBe']('function'),expect(typeof _0x4213bf)['toBe']('function'),expect(typeof _0x355694)['toBe']('function'),expect(typeof _0x524c3b)[_0x283429(0x119)](_0x283429(0x120)),expect(typeof _0x169ed1)[_0x283429(0x119)]('function');}),test('useConnection hook can be imported',async()=>{const _0x55bad9=a0_0x3eb8,{useConnection:_0x25f4f2,useConnectionStatus:_0x371be7}=await import('../../state/useConnection.js');expect(_0x25f4f2)[_0x55bad9(0x139)](),expect(typeof _0x25f4f2)[_0x55bad9(0x119)]('function'),expect(_0x371be7)['toBeDefined'](),expect(typeof _0x371be7)['toBe'](_0x55bad9(0x120));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0xcb01f3=a0_0xf2dfb8;test(_0xcb01f3(0x103),async()=>{const _0xb70966=_0xcb01f3,{WebSocketManager:_0x37572b}=await import(_0xb70966(0x11b)),{CONNECTION_STATE:_0xdc68b5}=await import(_0xb70966(0x141)),_0x1d586e=new _0x37572b(_0xb70966(0xf9),0x2382);expect(_0x1d586e['state'])['toBe'](_0xdc68b5['DISCONNECTED']),expect(_0x1d586e['sessionId'])[_0xb70966(0x119)](null),expect(_0x1d586e['messageQueue'])['toEqual']([]),expect(_0x1d586e['reconnectAttempts'])[_0xb70966(0x119)](0x0),expect(_0x1d586e['shouldReconnect'])['toBe'](!![]);}),test(_0xcb01f3(0x129),async()=>{const _0x54b2fb=_0xcb01f3,{SessionManager:_0x5008f3}=await import('../../api/session.js'),_0xf7ae92=new _0x5008f3('test-host',0x2382);expect(_0xf7ae92[_0x54b2fb(0x102)])['toBe'](null),expect(_0xf7ae92['projectDir'])[_0x54b2fb(0x119)](null),expect(_0xf7ae92[_0x54b2fb(0x142)])['toBe'](null),expect(_0xf7ae92[_0x54b2fb(0x12f)])[_0x54b2fb(0x114)]({}),expect(_0xf7ae92[_0x54b2fb(0x113)]())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x2539dd=_0xcb01f3,{MessageRouter:_0x3aede1}=await import(_0x2539dd(0x127)),{WebSocketManager:_0x2336bc}=await import(_0x2539dd(0x11b)),{WS_MESSAGE_TYPE:_0x28fb0a}=await import(_0x2539dd(0x141)),_0x4d2332=new _0x2336bc(_0x2539dd(0x115),0x1f90),_0x2a0d0e=new _0x3aede1(_0x4d2332);expect(_0x2a0d0e['hasHandler'](_0x28fb0a[_0x2539dd(0x100)]))[_0x2539dd(0x119)](!![]),expect(_0x2a0d0e[_0x2539dd(0xf4)](_0x28fb0a[_0x2539dd(0x123)]))[_0x2539dd(0x119)](!![]),expect(_0x2a0d0e['hasHandler'](_0x28fb0a[_0x2539dd(0xf7)]))[_0x2539dd(0x119)](!![]),expect(_0x2a0d0e[_0x2539dd(0xf4)](_0x28fb0a['COMPACTION_EVENT']))['toBe'](!![]),expect(_0x2a0d0e['hasHandler'](_0x28fb0a[_0x2539dd(0xf5)]))[_0x2539dd(0x119)](!![]);}),test(_0xcb01f3(0x125),async()=>{const _0x9df6dd=_0xcb01f3,{MessageRouter:_0x27cbed}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x5b6082}=await import(_0x9df6dd(0x11b)),_0x8898bf=new _0x5b6082('localhost',0x1f90),_0x32fb95=new _0x27cbed(_0x8898bf),_0x22e979=_0x5d8dba=>_0x5d8dba;expect(_0x32fb95['middleware']['length'])[_0x9df6dd(0x12b)](0x0),_0x32fb95[_0x9df6dd(0x124)](_0x22e979);const _0x58d2b4=_0x32fb95['middleware'][_0x9df6dd(0x134)];expect(_0x58d2b4)['toBeGreaterThan'](0x0),_0x32fb95['removeMiddleware'](_0x22e979),expect(_0x32fb95[_0x9df6dd(0x11e)][_0x9df6dd(0x134)])[_0x9df6dd(0x119)](_0x58d2b4-0x1);}),test('SessionManager\x20helper\x20methods\x20work',async()=>{const _0x684dee=_0xcb01f3,{SessionManager:_0x48a90a}=await import(_0x684dee(0x138)),_0x1ef58c=new _0x48a90a(_0x684dee(0x115),0x1f90);expect(_0x1ef58c['getSessionId']())[_0x684dee(0x119)](null),expect(_0x1ef58c['getProjectDir']())[_0x684dee(0x119)](null),expect(_0x1ef58c[_0x684dee(0x113)]())[_0x684dee(0x119)](![]);const _0x2d39bb=_0x1ef58c[_0x684dee(0x137)]();expect(_0x2d39bb)['toHaveProperty'](_0x684dee(0x102)),expect(_0x2d39bb)['toHaveProperty']('projectDir'),expect(_0x2d39bb)['toHaveProperty']('hasLoxiaKey'),expect(_0x2d39bb)[_0x684dee(0x13f)](_0x684dee(0x13e));}),test(_0xcb01f3(0x118),async()=>{const _0x33dacf=_0xcb01f3,{WebSocketManager:_0x208485}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x315a6f}=await import('../../config/constants.js'),_0x54ed86=new _0x208485('localhost',0x1f90);expect(_0x54ed86['getState']())[_0x33dacf(0x119)](_0x315a6f[_0x33dacf(0x12d)]),expect(_0x54ed86['isConnected']())['toBe'](![]),expect(_0x54ed86['getSessionId']())['toBe'](null);const _0x6e5b0f=_0x54ed86[_0x33dacf(0xf2)]();expect(_0x6e5b0f)['toHaveProperty']('state'),expect(_0x6e5b0f)['toHaveProperty'](_0x33dacf(0x102)),expect(_0x6e5b0f)['toHaveProperty']('reconnectAttempts'),expect(_0x6e5b0f)['toHaveProperty']('queuedMessages'),expect(_0x6e5b0f)['toHaveProperty'](_0x33dacf(0x13b));}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x10d05b=_0xcb01f3,{MessageRouter:_0x3d8a94}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x2be739}=await import('../../api/websocket.js'),_0x20af0e=new _0x2be739('localhost',0x1f90),_0x1203c3=new _0x3d8a94(_0x20af0e),_0x159f37=()=>{};expect(_0x1203c3[_0x10d05b(0xf4)]('test-message'))['toBe'](![]),_0x1203c3[_0x10d05b(0x10a)](_0x10d05b(0xfe),_0x159f37),expect(_0x1203c3[_0x10d05b(0xf4)]('test-message'))[_0x10d05b(0x119)](!![]),_0x1203c3['unregisterHandler']('test-message'),expect(_0x1203c3['hasHandler'](_0x10d05b(0xfe)))[_0x10d05b(0x119)](![]);}),test('MessageRouter\x20middleware\x20helpers\x20create\x20valid\x20middleware',async()=>{const _0x4e3fd6=_0xcb01f3,{loggingMiddleware:_0x188e09,timestampMiddleware:_0x112bc3,filterMiddleware:_0x15ea67}=await import(_0x4e3fd6(0x127)),_0x40761a=_0x188e09();expect(typeof _0x40761a)[_0x4e3fd6(0x119)]('function');const _0x115e31=_0x112bc3();expect(typeof _0x115e31)['toBe'](_0x4e3fd6(0x120));const _0x41049c={'type':_0x4e3fd6(0x12e)},_0x1f59ba=_0x115e31(_0x41049c);expect(_0x1f59ba)[_0x4e3fd6(0x13f)]('receivedAt'),expect(_0x1f59ba['type'])[_0x4e3fd6(0x119)](_0x4e3fd6(0x12e));const _0x510355=_0x15ea67(['allowed-type']);expect(typeof _0x510355)[_0x4e3fd6(0x119)](_0x4e3fd6(0x120)),expect(_0x510355({'type':_0x4e3fd6(0x107)}))[_0x4e3fd6(0x10e)](),expect(_0x510355({'type':_0x4e3fd6(0x109)}))[_0x4e3fd6(0x119)](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x4d9540=_0xcb01f3,_0xe24784=await import(_0x4d9540(0x141));expect(typeof _0xe24784['TIMING']['WEBSOCKET_RECONNECT_DELAY'])['toBe'](_0x4d9540(0x104)),expect(typeof _0xe24784['TIMING'][_0x4d9540(0xf3)])[_0x4d9540(0x119)](_0x4d9540(0x104)),expect(typeof _0xe24784['NETWORK'][_0x4d9540(0x110)])['toBe']('number'),expect(typeof _0xe24784[_0x4d9540(0x122)]['MAX_RETRIES'])['toBe'](_0x4d9540(0x104)),expect(typeof _0xe24784['NETWORK']['HTTP_TIMEOUT'])['toBe']('number'),expect(typeof _0xe24784['UI_DIMENSIONS'][_0x4d9540(0x128)])[_0x4d9540(0x119)](_0x4d9540(0x104)),expect(typeof _0xe24784['UI_DIMENSIONS'][_0x4d9540(0x10f)])['toBe'](_0x4d9540(0x104));});}),describe(a0_0xf2dfb8(0x10d),()=>{const _0x3238da=a0_0xf2dfb8;test(_0x3238da(0x132),async()=>{const _0x455d89=_0x3238da,{MessageRouter:_0x249460}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x2420f6}=await import('../../api/websocket.js'),_0x135f35=new _0x2420f6('localhost',0x1f90),_0x1471d6=new _0x249460(_0x135f35);expect(()=>{const _0x42b5da=a0_0x3eb8;_0x1471d6['registerHandler'](_0x42b5da(0x12e),_0x42b5da(0x140));})[_0x455d89(0xfa)](_0x455d89(0x121));}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0xb28784=_0x3238da,{MessageRouter:_0x138462}=await import(_0xb28784(0x127)),{WebSocketManager:_0x428ed1}=await import('../../api/websocket.js'),_0x27a2b8=new _0x428ed1(_0xb28784(0x115),0x1f90),_0x1c6188=new _0x138462(_0x27a2b8);expect(()=>{const _0x582c57=_0xb28784;_0x1c6188[_0x582c57(0x124)]('not-a-function');})[_0xb28784(0xfa)]('Middleware\x20must\x20be\x20a\x20function');}),test(_0x3238da(0x101),async()=>{const _0x16a791=_0x3238da,{SessionManager:_0x178172}=await import(_0x16a791(0x138)),_0x1fbc10=new _0x178172('localhost',0x1f90);_0x1fbc10['sessionId']=_0x16a791(0x10b),_0x1fbc10[_0x16a791(0x11f)]='/test/dir',_0x1fbc10[_0x16a791(0x142)]=_0x16a791(0x12c),_0x1fbc10[_0x16a791(0x12f)]={'openai':_0x16a791(0xfb)},expect(_0x1fbc10[_0x16a791(0x113)]())[_0x16a791(0x119)](!![]),_0x1fbc10['clear'](),expect(_0x1fbc10[_0x16a791(0x102)])['toBe'](null),expect(_0x1fbc10['projectDir'])['toBe'](null),expect(_0x1fbc10[_0x16a791(0x142)])['toBe'](null),expect(_0x1fbc10['vendorKeys'])['toEqual']({}),expect(_0x1fbc10[_0x16a791(0x113)]())['toBe'](![]);}),test(_0x3238da(0xf6),async()=>{const _0x357cc1=_0x3238da,{WebSocketManager:_0x10df33}=await import('../../api/websocket.js'),_0x278df0=new _0x10df33('localhost',0x1f90),_0x4e4b0b=_0x278df0['generateRequestId'](),_0x2b6098=_0x278df0['generateRequestId'](),_0x493724=_0x278df0['generateRequestId']();expect(_0x4e4b0b)[_0x357cc1(0x130)][_0x357cc1(0x119)](_0x2b6098),expect(_0x2b6098)[_0x357cc1(0x130)]['toBe'](_0x493724),expect(_0x4e4b0b)['not'][_0x357cc1(0x119)](_0x493724),expect(_0x4e4b0b)['toMatch'](/^req-\d+-\d+$/),expect(_0x2b6098)[_0x357cc1(0x108)](/^req-\d+-\d+$/),expect(_0x493724)[_0x357cc1(0x108)](/^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_0xf72ec1=a0_0x10fd;(function(_0xfa8f8c,_0x4536b1){const _0x5a5d49=a0_0x10fd,_0x3a6059=_0xfa8f8c();while(!![]){try{const _0x52d5e1=-parseInt(_0x5a5d49(0x22c))/0x1*(parseInt(_0x5a5d49(0x203))/0x2)+parseInt(_0x5a5d49(0x213))/0x3+-parseInt(_0x5a5d49(0x212))/0x4+parseInt(_0x5a5d49(0x227))/0x5*(parseInt(_0x5a5d49(0x21f))/0x6)+-parseInt(_0x5a5d49(0x224))/0x7*(-parseInt(_0x5a5d49(0x228))/0x8)+parseInt(_0x5a5d49(0x209))/0x9*(parseInt(_0x5a5d49(0x20d))/0xa)+parseInt(_0x5a5d49(0x21a))/0xb*(parseInt(_0x5a5d49(0x219))/0xc);if(_0x52d5e1===_0x4536b1)break;else _0x3a6059['push'](_0x3a6059['shift']());}catch(_0xed07f1){_0x3a6059['push'](_0x3a6059['shift']());}}}(a0_0x59c3,0x626da));function a0_0x59c3(){const _0x19bb3d=['uefhrv9tsvPf','mtaXndGZmNvyB0LMwq','mJi0ntq3qMrpDwv6','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZifzHBgLKyxrPB24','Dg9czq','tufyx01fu1nbr0vFtevor1ri','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','zNvUy3rPB24','mtyWotjvtNf5D2m','nta2z0PbCwXk','vvnfuL9nrvntquDf','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','DxnLtwvZC2fNzunVDw50ihjLDhvYBNmGzxHWzwn0zwqGAw50zxjMywnLihnOyxbL','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','mZe0ntjOzxr2quq','zgvMyxvSDa','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','mtrxtuj6rLy','DxnLtwvZC2fNzxmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','ndbQANHNCeu','ntmZmtq0qwHhyNjK','tuvtu0fhrv9st0Xf','twvZC2fNzsbbueKGzw5KCg9PBNrZigzVBgXVDYbsrvnuzNvSihbHDhrLCM4','zxHLy3v0Aw9Ux3n0B3bWzwq','n1vSvhHmzG','rvHfq1vusu9ox1nut1bqruq','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','t1jdsevtvfjbve9s','Bg9JywXOB3n0','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','BNvTyMvY','tufyx01fu1nbr0vtx0rju1bmqvK','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','Dg9czuDYzwf0zxjuAgfU','BgvUz3rO','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbKAxnWBgf5ig1LC3nHz2vZ','Dg9czurLzMLUzwq','ywDLBNqTCMvZCg9UC2u','l2fWAs9VCMnOzxn0CMf0B3i','DxnLtwvZC2fNzxm','C3LZDgvTlw5VDgLMAwnHDgLVBG','t3jJAgvZDhjHDg9YigvUzhbVAw50ignHBIbIzsb1C2vKigzVCIbTzxnZywDLig9WzxjHDgLVBNm','uefhsu5bveLptIbSAw1PDcbKB2vZig5VDcbLEgnLzwqGtufyx1bbr0vFu0LArq','qvntsvnuqu5u','otaYnJjSvK1fuha','tuvtu0fhrv9uwvbfignVBNn0yw50CYbHCMuGzgvMAw5Lza','tufyx1bbr0vFu0LArq','C3LZDgvT','Dg9czuXLC3nuAgfUt3jfCxvHBa','AgfZsgfUzgXLCG','otbXrvP5AuK','lI4VlI4VyxbPl3nLC3nPB24UANm','twvZC2fNzvjVDxrLCG','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','nJyXmdmWCfHptvDt','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','u2vZC2LVBK1HBMfNzxi','u1Ltvevn'];a0_0x59c3=function(){return _0x19bb3d;};return a0_0x59c3();}import{describe,test,expect}from'@jest/globals';function a0_0x10fd(_0x4a98d6,_0x1e6a42){_0x4a98d6=_0x4a98d6-0x1f2;const _0x59c34c=a0_0x59c3();let _0x10fd79=_0x59c34c[_0x4a98d6];if(a0_0x10fd['IbWFXl']===undefined){var _0x1c8411=function(_0x571297){const _0x4fc56a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2c9b0f='',_0x3f38bd='';for(let _0x515896=0x0,_0x3b9dea,_0x3052a1,_0x28c605=0x0;_0x3052a1=_0x571297['charAt'](_0x28c605++);~_0x3052a1&&(_0x3b9dea=_0x515896%0x4?_0x3b9dea*0x40+_0x3052a1:_0x3052a1,_0x515896++%0x4)?_0x2c9b0f+=String['fromCharCode'](0xff&_0x3b9dea>>(-0x2*_0x515896&0x6)):0x0){_0x3052a1=_0x4fc56a['indexOf'](_0x3052a1);}for(let _0x52c21d=0x0,_0x3ad727=_0x2c9b0f['length'];_0x52c21d<_0x3ad727;_0x52c21d++){_0x3f38bd+='%'+('00'+_0x2c9b0f['charCodeAt'](_0x52c21d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3f38bd);};a0_0x10fd['eMSMlG']=_0x1c8411,a0_0x10fd['TWqAVt']={},a0_0x10fd['IbWFXl']=!![];}const _0x158eca=_0x59c34c[0x0],_0x4dd1df=_0x4a98d6+_0x158eca,_0x2318e8=a0_0x10fd['TWqAVt'][_0x4dd1df];return!_0x2318e8?(_0x10fd79=a0_0x10fd['eMSMlG'](_0x10fd79),a0_0x10fd['TWqAVt'][_0x4dd1df]=_0x10fd79):_0x10fd79=_0x2318e8,_0x10fd79;}describe('Message\x20Management\x20-\x20Imports',()=>{test('useMessages hook can be imported',async()=>{const _0xad907d=a0_0x10fd,{useMessages:_0x2c9b0f}=await import('../../state/useMessages.js');expect(_0x2c9b0f)[_0xad907d(0x1fb)](),expect(typeof _0x2c9b0f)[_0xad907d(0x215)]('function');}),test('useMessages is default export',async()=>{const _0x5b7a85=a0_0x10fd,module=await import(_0x5b7a85(0x21c));expect(module['default'])[_0x5b7a85(0x1fb)](),expect(typeof module[_0x5b7a85(0x220)])[_0x5b7a85(0x215)]('function'),expect(module['default'])[_0x5b7a85(0x215)](module[_0x5b7a85(0x1fe)]);}),test('useMessageCount helper hook can be imported',async()=>{const _0x599488=a0_0x10fd,{useMessageCount:_0x3f38bd}=await import(_0x599488(0x21c));expect(_0x3f38bd)['toBeDefined'](),expect(typeof _0x3f38bd)['toBe'](_0x599488(0x218));});}),describe(a0_0xf72ec1(0x21e),()=>{const _0x296ab8=a0_0xf72ec1;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x2664a6=a0_0x10fd,{MESSAGE_ROLE:_0x515896}=await import('../../config/constants.js');expect(_0x515896)['toBeDefined'](),expect(_0x515896['USER'])[_0x2664a6(0x215)]('user'),expect(_0x515896[_0x2664a6(0x202)])[_0x2664a6(0x215)]('assistant'),expect(_0x515896['SYSTEM'])['toBe'](_0x2664a6(0x206));}),test(_0x296ab8(0x204),async()=>{const _0x121688=_0x296ab8,{MESSAGE_TYPE:_0x3b9dea}=await import(_0x121688(0x1f7));expect(_0x3b9dea)[_0x121688(0x1fb)](),expect(_0x3b9dea[_0x121688(0x21b)])[_0x121688(0x215)]('user-message'),expect(_0x3b9dea['AGENT_RESPONSE'])['toBe'](_0x121688(0x1fc)),expect(_0x3b9dea['SYSTEM_NOTIFICATION'])['toBe'](_0x121688(0x1ff));}),test(_0x296ab8(0x22e),async()=>{const _0x1be95e=_0x296ab8,{MESSAGE_CONFIG:_0x3052a1}=await import(_0x1be95e(0x1f7));expect(_0x3052a1)[_0x1be95e(0x1fb)](),expect(_0x3052a1[_0x1be95e(0x216)])['toBeDefined'](),expect(_0x3052a1['MAX_MESSAGES_DISPLAY'])[_0x1be95e(0x1fb)](),expect(typeof _0x3052a1['MAX_MESSAGE_LENGTH'])['toBe']('number'),expect(typeof _0x3052a1['MAX_MESSAGES_DISPLAY'])[_0x1be95e(0x215)](_0x1be95e(0x1f5));}),test(_0x296ab8(0x221),async()=>{const _0x55b3ba=_0x296ab8,{PAGINATION:_0x28c605}=await import(_0x55b3ba(0x1f7));expect(_0x28c605)[_0x55b3ba(0x1fb)](),expect(_0x28c605[_0x55b3ba(0x211)])['toBeDefined'](),expect(_0x28c605[_0x55b3ba(0x205)])['toBeDefined'](),expect(typeof _0x28c605['PAGE_SIZE'])['toBe'](_0x55b3ba(0x1f5)),expect(typeof _0x28c605['MAX_PAGE_SIZE'])['toBe']('number');}),test(_0x296ab8(0x1f4),async()=>{const _0x88cce3=_0x296ab8,{WS_MESSAGE_TYPE:_0x52c21d}=await import('../../config/constants.js');expect(_0x52c21d)[_0x88cce3(0x1fb)](),expect(_0x52c21d['MESSAGE_ADDED'])['toBe']('message_added'),expect(_0x52c21d['AGENT_MODE_CHANGED'])[_0x88cce3(0x215)]('agent_mode_changed'),expect(_0x52c21d[_0x88cce3(0x22d)])['toBe'](_0x88cce3(0x22b));});}),describe('Message\x20Management\x20-\x20Integration',()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x23e81b=a0_0x10fd,{useMessages:_0x3ad727}=await import('../../state/useMessages.js'),{SessionManager:_0x5e4c89}=await import(_0x23e81b(0x20a)),{MessageRouter:_0x350e9a}=await import(_0x23e81b(0x20e)),{WebSocketManager:_0x1a8b72}=await import('../../api/websocket.js'),_0xb2f646=new _0x5e4c89(_0x23e81b(0x1f3),0x1f90),_0x4d1a8c=new _0x1a8b72('localhost',0x1f90),_0x13a403=new _0x350e9a(_0x4d1a8c);expect(_0xb2f646)['toBeDefined'](),expect(_0x13a403)['toBeDefined'](),expect(typeof _0x3ad727)['toBe'](_0x23e81b(0x218));}),test('Full message management stack can be imported together',async()=>{const _0x31fea9=a0_0x10fd,[_0x279bfe,_0x2cdfcd,_0x290dcb,_0x266384,_0x5c74be]=await Promise['all']([import(_0x31fea9(0x1f7)),import('../../api/session.js'),import('../../api/websocket.js'),import(_0x31fea9(0x20e)),import('../../state/useMessages.js')]);expect(_0x279bfe[_0x31fea9(0x229)])[_0x31fea9(0x1fb)](),expect(_0x279bfe['MESSAGE_TYPE'])['toBeDefined'](),expect(_0x279bfe['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x2cdfcd[_0x31fea9(0x20f)])[_0x31fea9(0x1fb)](),expect(_0x290dcb['WebSocketManager'])[_0x31fea9(0x1fb)](),expect(_0x266384[_0x31fea9(0x20b)])[_0x31fea9(0x1fb)](),expect(_0x5c74be[_0x31fea9(0x1fe)])['toBeDefined']();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x26689f=a0_0xf72ec1;test(_0x26689f(0x200),async()=>{const _0x3f2107=_0x26689f,{API_ENDPOINTS:_0x407c73}=await import('../../config/constants.js');expect(_0x407c73[_0x3f2107(0x1f2)])['toBeDefined'](),expect(_0x407c73['ORCHESTRATOR'])['toBe'](_0x3f2107(0x1fd));}),test(_0x26689f(0x22a),async()=>{const _0x167ae4=_0x26689f,{API_ENDPOINTS:_0x49d276}=await import(_0x167ae4(0x1f7));expect(_0x49d276['ORCHESTRATOR'])['toMatch'](/^\/api\//);});}),describe(a0_0xf72ec1(0x222),()=>{const _0x19914c=a0_0xf72ec1;test(_0x19914c(0x225),async()=>{const _0x14532a=_0x19914c,{useMessages:_0x3c4148}=await import('../../state/useMessages.js');expect(_0x3c4148[_0x14532a(0x1f9)])['toBe'](0x3);}),test(_0x19914c(0x21d),async()=>{const _0x153a29=_0x19914c,{useMessageCount:_0x1953ee}=await import(_0x153a29(0x21c));expect(_0x1953ee[_0x153a29(0x1f9)])['toBe'](0x1);});}),describe(a0_0xf72ec1(0x214),()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x3ee358=a0_0x10fd,{MESSAGE_CONFIG:_0x59782d}=await import(_0x3ee358(0x1f7));expect(_0x59782d['MAX_MESSAGE_LENGTH'])[_0x3ee358(0x1f8)](0x0),expect(_0x59782d['MAX_MESSAGE_LENGTH'])[_0x3ee358(0x207)](0x186a0),expect(_0x59782d[_0x3ee358(0x1f6)])[_0x3ee358(0x1f8)](0x0),expect(_0x59782d['MAX_MESSAGES_DISPLAY'])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x226aa6=a0_0x10fd,{PAGINATION:_0x38b908}=await import(_0x226aa6(0x1f7));expect(_0x38b908['PAGE_SIZE'])[_0x226aa6(0x1f8)](0x0),expect(_0x38b908['PAGE_SIZE'])[_0x226aa6(0x207)](0x3e8),expect(_0x38b908['MAX_PAGE_SIZE'])[_0x226aa6(0x217)](_0x38b908['PAGE_SIZE']);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0xaa307e=a0_0x10fd,{MESSAGE_ROLE:_0x459c86}=await import(_0xaa307e(0x1f7));expect(_0x459c86['USER'])['toBe'](_0x459c86['USER']['toLowerCase']()),expect(_0x459c86[_0xaa307e(0x202)])[_0xaa307e(0x215)](_0x459c86[_0xaa307e(0x202)]['toLowerCase']()),expect(_0x459c86[_0xaa307e(0x210)])['toBe'](_0x459c86['SYSTEM']['toLowerCase']());});}),describe(a0_0xf72ec1(0x20c),()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0xa300cb=a0_0x10fd,{MessageRouter:_0xe4f906}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x35e80e}=await import(_0xa300cb(0x226)),{WS_MESSAGE_TYPE:_0x21056c}=await import(_0xa300cb(0x1f7)),_0x271f94=new _0x35e80e(_0xa300cb(0x1f3),0x1f90),_0x3c25bb=new _0xe4f906(_0x271f94);expect(_0x3c25bb[_0xa300cb(0x208)](_0x21056c['MESSAGE_ADDED']))[_0xa300cb(0x215)](!![]),expect(_0x3c25bb['hasHandler'](_0x21056c['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe('Message\x20Management\x20-\x20Error\x20Handling',()=>{const _0x3a04c1=a0_0xf72ec1;test('MESSAGE_CONFIG\x20enforces\x20maximum\x20message\x20length',async()=>{const _0x2c7b30=a0_0x10fd,{MESSAGE_CONFIG:_0x147648}=await import(_0x2c7b30(0x1f7));expect(_0x147648[_0x2c7b30(0x216)])[_0x2c7b30(0x1fb)](),expect(typeof _0x147648['MAX_MESSAGE_LENGTH'])[_0x2c7b30(0x215)](_0x2c7b30(0x1f5));const _0x4a33a3='a'['repeat'](_0x147648['MAX_MESSAGE_LENGTH']+0x1);expect(_0x4a33a3[_0x2c7b30(0x1f9)])[_0x2c7b30(0x1f8)](_0x147648[_0x2c7b30(0x216)]);}),test(_0x3a04c1(0x1fa),async()=>{const _0xcf0025=_0x3a04c1,{MESSAGE_CONFIG:_0x353435}=await import(_0xcf0025(0x1f7));expect(_0x353435[_0xcf0025(0x1f6)])['toBeDefined'](),expect(typeof _0x353435[_0xcf0025(0x1f6)])[_0xcf0025(0x215)](_0xcf0025(0x1f5)),expect(_0x353435['MAX_MESSAGES_DISPLAY'])[_0xcf0025(0x1f8)](0x0);});}),describe(a0_0xf72ec1(0x223),()=>{const _0x2ee076=a0_0xf72ec1;test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x1f472e=a0_0x10fd,{PAGINATION:_0x119fe7}=await import(_0x1f472e(0x1f7)),_0x422a33=0x0,_0xf19710=_0x422a33*_0x119fe7['PAGE_SIZE'];expect(_0xf19710)['toBe'](0x0);const _0x4f6d03=0x1,_0x459a43=_0x4f6d03*_0x119fe7[_0x1f472e(0x211)];expect(_0x459a43)['toBe'](_0x119fe7[_0x1f472e(0x211)]);}),test(_0x2ee076(0x201),async()=>{const _0x42e439=_0x2ee076,{PAGINATION:_0xc4aabc}=await import('../../config/constants.js'),_0x370601=0x3e8,_0x228173=Math['min'](_0x370601,_0xc4aabc[_0x42e439(0x205)]);expect(_0x228173)['toBeLessThanOrEqual'](_0xc4aabc[_0x42e439(0x205)]);});});
@@ -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_0x1b7a(){const _0x4a8cc8=['Dg9czurLzMLUzwq','z2v0','l2fWAs9VCMnOzxn0CMf0B3i','mJCWmZG1mgvlqKL5sa','BgvUz3rO','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CW','ve9ptf9dqvrfr09swsbPBMnSDwrLCYbHBgWGBwfQB3iGy2f0zwDVCMLLCW','u1Ltvevn','ve9ptfm','BM93','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','CMvHzf9MAwXL','zxHLyY0Y','u2vZC2LVBK1HBMfNzxi','mtCWmJGWogrYruvQyG','zxHLyY0X','D3jPDgvFzMLSzq','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','Dg9czq','y2f0zwDVCNK','mtmYm0vlBgDXuq','ugvYzM9YBsbZDgf0AwmGy29KzsbHBMfSExnPCW','Dg9nyxrJAa','vg9VBhmGqvbjigvUzhbVAw50igLZigrLzMLUzwq','mtu3mde1ohLeu0fqva','AgfZ','DgvYBwLUywW','Dg9dB250ywLU','ve9ptf9dqvrfr09swsb2ywX1zxmGBwf0y2GGzxHWzwn0zwqGzM9YBwf0','ywrK','Dg9mB3DLCKnHC2u','mJu2mdHRyujYs1e','l2fWAs90B29SCW','t1jdsevtvfjbve9s','AgfZsgfUzgXLCG','mte4odm3nMTIqujeva','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','lI4VlI4VyxbPl3nLC3nPB24UANm','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2f0zwDVCML6yxrPB24','ywLFyxnZAxn0yw50','C2L6zq','uMvHzcbJB250zw50CYbVzIbHigzPBgu','m0fovxrNDa','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','ndq4ntHcCeXYBeC','DxnLvg9VBhmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','yw5HBhL6zv9JB2rL','nJK0mdyXmMLZyuvgAW','twvZC2fNzvjVDxrLCG','vg9VBcbYzxn1BhrZignHBIbIzsbZDg9YzwqGyNKGzxHLy3v0Aw9UieLe','q09mtefct1jbveLptG','zxHLy3v0zv9JB21Tyw5K','Aw5JBhvKzxm','t3jJAgvZDhjHDg9YigvUzhbVAw50igLZihvZzwqGzM9YihrVB2WGB3bLCMf0Aw9UCW','zgvZy3jPChrPB24','vg9VBhmGtwfUywDLBwvUDcaTienHDgvNB3j5ienVDw50CW','zMLSzq','C2v0','vg9VBcbJywnOzsbZDxbWB3j0CYbuveWTyMfZzwqGy2fJAgLUzW','A2v5CW','DxnLvg9VBhmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','twvZC2fNzvjVDxrLCIbOyxmGDg9VBcbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','q2f0zwDVCNKGy291BNrZignHBIbIzsbJywXJDwXHDgvK','qvbjx0vorfbpsu5uuW','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGu2vHCMnO','qu5btfLtsvm','zw5HyMXLza','qvvut01bveLptG','DxnLvg9VBhm','zNvUy3rPB24','Bg9JywXOB3n0','vvrjteLuwq','v3jPDguGzgf0ysb0BYbHigzPBgu','zMLSDgvY','BMfTzq','vg9VBhmGtwfUywDLBwvUDcaTiev4zwn1DgLVBIbtDgf0zsbuCMfJA2LUzW','ve9ptf9dqvrfr09swsbJyw4GyMuGDxnLzcb0BYbMAwX0zxiGDg9VBhmGyNKGy2f0zwDVCNK','vg9VBhmGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG'];a0_0x1b7a=function(){return _0x4a8cc8;};return a0_0x1b7a();}function a0_0x39a5(_0x5ab9c3,_0x26e0de){_0x5ab9c3=_0x5ab9c3-0x17f;const _0x1b7aa8=a0_0x1b7a();let _0x39a576=_0x1b7aa8[_0x5ab9c3];if(a0_0x39a5['RPmupK']===undefined){var _0x44c876=function(_0x13f43c){const _0x279164='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1c4739='',_0x4de5f6='';for(let _0x4303f2=0x0,_0x418429,_0x5b74d6,_0x294903=0x0;_0x5b74d6=_0x13f43c['charAt'](_0x294903++);~_0x5b74d6&&(_0x418429=_0x4303f2%0x4?_0x418429*0x40+_0x5b74d6:_0x5b74d6,_0x4303f2++%0x4)?_0x1c4739+=String['fromCharCode'](0xff&_0x418429>>(-0x2*_0x4303f2&0x6)):0x0){_0x5b74d6=_0x279164['indexOf'](_0x5b74d6);}for(let _0x1334ec=0x0,_0x59f335=_0x1c4739['length'];_0x1334ec<_0x59f335;_0x1334ec++){_0x4de5f6+='%'+('00'+_0x1c4739['charCodeAt'](_0x1334ec)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4de5f6);};a0_0x39a5['WgFWCi']=_0x44c876,a0_0x39a5['rpyVVV']={},a0_0x39a5['RPmupK']=!![];}const _0x14d812=_0x1b7aa8[0x0],_0x20c4a9=_0x5ab9c3+_0x14d812,_0x58c23a=a0_0x39a5['rpyVVV'][_0x20c4a9];return!_0x58c23a?(_0x39a576=a0_0x39a5['WgFWCi'](_0x39a576),a0_0x39a5['rpyVVV'][_0x20c4a9]=_0x39a576):_0x39a576=_0x58c23a,_0x39a576;}const a0_0x1d03a5=a0_0x39a5;(function(_0x58fb11,_0xdfca11){const _0x26ba1f=a0_0x39a5,_0x360abf=_0x58fb11();while(!![]){try{const _0x149070=parseInt(_0x26ba1f(0x189))/0x1+-parseInt(_0x26ba1f(0x1b9))/0x2*(-parseInt(_0x26ba1f(0x187))/0x3)+parseInt(_0x26ba1f(0x180))/0x4+parseInt(_0x26ba1f(0x1ae))/0x5+parseInt(_0x26ba1f(0x1c3))/0x6+-parseInt(_0x26ba1f(0x18c))/0x7+-parseInt(_0x26ba1f(0x1ca))/0x8*(parseInt(_0x26ba1f(0x1bf))/0x9);if(_0x149070===_0xdfca11)break;else _0x360abf['push'](_0x360abf['shift']());}catch(_0x1d1f71){_0x360abf['push'](_0x360abf['shift']());}}}(a0_0x1b7a,0x824fc));import{describe,test,expect}from'@jest/globals';describe('Tools\x20Management\x20-\x20Imports',()=>{test('useTools hook can be imported',async()=>{const _0x555935=a0_0x39a5,{useTools:_0x1c4739}=await import('../../state/useTools.js');expect(_0x1c4739)[_0x555935(0x1ab)](),expect(typeof _0x1c4739)[_0x555935(0x1bd)](_0x555935(0x1a2));}),test('useTools is default export',async()=>{const _0x33cf32=a0_0x39a5,module=await import('../../state/useTools.js');expect(module['default'])[_0x33cf32(0x1ab)](),expect(typeof module['default'])['toBe']('function'),expect(module['default'])[_0x33cf32(0x1bd)](module[_0x33cf32(0x1a1)]);});}),describe(a0_0x1d03a5(0x1b0),()=>{const _0x4c037e=a0_0x1d03a5;test('TOOL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x385bcf=a0_0x39a5,{TOOL_CATEGORY:_0x4de5f6}=await import('../../config/constants.js');expect(_0x4de5f6)[_0x385bcf(0x1ab)](),expect(_0x4de5f6[_0x385bcf(0x1b2)])['toBeDefined'](),expect(_0x4de5f6['AUTOMATION'])['toBeDefined'](),expect(_0x4de5f6['ANALYSIS'])[_0x385bcf(0x1ab)](),expect(_0x4de5f6['UTILITY'])['toBeDefined'](),expect(_0x4de5f6['COLLABORATION'])['toBeDefined'](),expect(_0x4de5f6['AI'])['toBeDefined']();}),test('TOOL_CATEGORY\x20values\x20are\x20lowercase',async()=>{const _0x3699ff=a0_0x39a5,{TOOL_CATEGORY:_0x4303f2}=await import('../../config/constants.js');expect(_0x4303f2[_0x3699ff(0x1b2)])['toBe'](_0x4303f2[_0x3699ff(0x1b2)]['toLowerCase']()),expect(_0x4303f2[_0x3699ff(0x1a0)])['toBe'](_0x4303f2['AUTOMATION'][_0x3699ff(0x1c9)]()),expect(_0x4303f2[_0x3699ff(0x19e)])[_0x3699ff(0x1bd)](_0x4303f2['ANALYSIS']['toLowerCase']()),expect(_0x4303f2[_0x3699ff(0x1a4)])[_0x3699ff(0x1bd)](_0x4303f2[_0x3699ff(0x1a4)]['toLowerCase']());}),test(_0x4c037e(0x1c2),async()=>{const _0x328dea=_0x4c037e,{API_ENDPOINTS:_0x418429}=await import('../../config/constants.js');expect(_0x418429['TOOLS'])['toBeDefined'](),expect(_0x418429['TOOLS'])[_0x328dea(0x1bd)]('/api/tools');}),test(_0x4c037e(0x192),async()=>{const _0x410394=_0x4c037e,{API_ENDPOINTS:_0x5b74d6}=await import('../../config/constants.js');expect(_0x5b74d6[_0x410394(0x1cc)])[_0x410394(0x1ab)](),expect(_0x5b74d6['ORCHESTRATOR'])['toBe'](_0x410394(0x1ad));});}),describe('Tools\x20Management\x20-\x20Integration',()=>{const _0x226c8b=a0_0x1d03a5;test(_0x226c8b(0x18a),async()=>{const _0x5ee57f=_0x226c8b,{useTools:_0x294903}=await import('../../state/useTools.js'),{SessionManager:_0x1334ec}=await import(_0x5ee57f(0x182)),{MessageRouter:_0x59f335}=await import(_0x5ee57f(0x181)),{WebSocketManager:_0x2073ad}=await import('../../api/websocket.js'),_0x3fbc7a=new _0x1334ec(_0x5ee57f(0x1a3),0x1f90),_0x3895c6=new _0x2073ad(_0x5ee57f(0x1a3),0x1f90),_0x37543c=new _0x59f335(_0x3895c6);expect(_0x3fbc7a)['toBeDefined'](),expect(_0x37543c)['toBeDefined'](),expect(typeof _0x294903)[_0x5ee57f(0x1bd)]('function');}),test('Full tools management stack can be imported together',async()=>{const _0x27722e=_0x226c8b,[_0x2f7cc2,_0x3c8750,_0x299877,_0x4ba62d,_0x3c8330]=await Promise['all']([import(_0x27722e(0x1b5)),import('../../api/session.js'),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import(_0x27722e(0x1bc))]);expect(_0x2f7cc2['TOOL_CATEGORY'])[_0x27722e(0x1ab)](),expect(_0x2f7cc2[_0x27722e(0x19c)])['toBeDefined'](),expect(_0x3c8750[_0x27722e(0x1b8)])['toBeDefined'](),expect(_0x299877['WebSocketManager'])[_0x27722e(0x1ab)](),expect(_0x4ba62d[_0x27722e(0x18d)])[_0x27722e(0x1ab)](),expect(_0x3c8330[_0x27722e(0x1a1)])[_0x27722e(0x1ab)]();});}),describe(a0_0x1d03a5(0x1aa),()=>{test('Tools\x20endpoint\x20follows\x20RESTful\x20pattern',async()=>{const _0x351312=a0_0x39a5,{API_ENDPOINTS:_0x2d0da5}=await import(_0x351312(0x1b5));expect(_0x2d0da5['TOOLS'])['toMatch'](/^\/api\//),expect(_0x2d0da5[_0x351312(0x1b3)])[_0x351312(0x1bd)](_0x351312(0x1cb));}),test('Tool\x20operations\x20use\x20orchestrator\x20endpoint',async()=>{const _0x2b0d43=a0_0x39a5,{API_ENDPOINTS:_0x2e4f43}=await import(_0x2b0d43(0x1b5));expect(_0x2e4f43['ORCHESTRATOR'])['toBeDefined'](),expect(_0x2e4f43['ORCHESTRATOR'])[_0x2b0d43(0x1bd)](_0x2b0d43(0x1ad));});}),describe('Tools\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x59cceb=a0_0x1d03a5;test(_0x59cceb(0x199),async()=>{const _0x44ee08=_0x59cceb,{useTools:_0xd0fece}=await import('../../state/useTools.js');expect(_0xd0fece[_0x44ee08(0x1af)])[_0x44ee08(0x1bd)](0x3);});}),describe('Tools\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x1d82d5=a0_0x1d03a5;test(_0x1d82d5(0x1b1),async()=>{const _0x3704f9=_0x1d82d5,{TOOL_CATEGORY:_0x48d9cd}=await import(_0x3704f9(0x1b5)),_0x45648b=Object[_0x3704f9(0x198)](_0x48d9cd);expect(_0x45648b)[_0x3704f9(0x1c6)](_0x3704f9(0x1b2)),expect(_0x45648b)[_0x3704f9(0x1c6)](_0x3704f9(0x1a0)),expect(_0x45648b)[_0x3704f9(0x1c6)]('ANALYSIS'),expect(_0x45648b)[_0x3704f9(0x1c6)](_0x3704f9(0x1a4)),expect(_0x45648b)['toContain'](_0x3704f9(0x18f)),expect(_0x45648b)['toContain']('AI');}),test(_0x1d82d5(0x1c7),async()=>{const _0x32f8f7=_0x1d82d5,{TOOL_CATEGORY:_0x48a115}=await import(_0x32f8f7(0x1b5));expect(_0x48a115[_0x32f8f7(0x1b2)])[_0x32f8f7(0x1c1)](/^[a-z_]+$/),expect(_0x48a115['AUTOMATION'])[_0x32f8f7(0x1c1)](/^[a-z_]+$/),expect(_0x48a115[_0x32f8f7(0x19e)])['toMatch'](/^[a-z_]+$/),expect(_0x48a115[_0x32f8f7(0x1a4)])[_0x32f8f7(0x1c1)](/^[a-z_]+$/);});}),describe('Tools\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{const _0x188cb6=a0_0x1d03a5;test(_0x188cb6(0x19a),async()=>{const _0x4f47f8=_0x188cb6,{MessageRouter:_0x53ddc9}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x141f3e}=await import('../../api/websocket.js'),_0x3d1a41=new _0x141f3e(_0x4f47f8(0x1a3),0x1f90),_0x3b115b=new _0x53ddc9(_0x3d1a41);expect(_0x3b115b[_0x4f47f8(0x17f)])[_0x4f47f8(0x1ab)](),expect(typeof _0x3b115b['hasHandler'])[_0x4f47f8(0x1bd)]('function');});}),describe(a0_0x1d03a5(0x183),()=>{const _0x481ea9=a0_0x1d03a5;test(_0x481ea9(0x1a9),async()=>{const _0x442925=_0x481ea9,{TOOL_CATEGORY:_0x196284}=await import(_0x442925(0x1b5)),_0x5c87a3=[{'name':_0x442925(0x190),'category':_0x196284[_0x442925(0x1b2)]},{'name':_0x442925(0x1c5),'category':_0x196284[_0x442925(0x1b2)]},{'name':'analyze_code','category':_0x196284[_0x442925(0x19e)]},{'name':'web_search','category':_0x196284[_0x442925(0x1a4)]},{'name':_0x442925(0x184),'category':_0x196284['AI']}],_0x571632=_0x5c87a3['filter'](_0xf4958b=>_0xf4958b['category']===_0x196284[_0x442925(0x1b2)]),_0x137326=_0x5c87a3['filter'](_0x1ca118=>_0x1ca118[_0x442925(0x1be)]===_0x196284[_0x442925(0x19e)]),_0x37d02f=_0x5c87a3['filter'](_0x1070b3=>_0x1070b3[_0x442925(0x1be)]===_0x196284['UTILITY']),_0x255d10=_0x5c87a3['filter'](_0x1f1893=>_0x1f1893[_0x442925(0x1be)]===_0x196284['AI']);expect(_0x571632['length'])['toBe'](0x2),expect(_0x137326[_0x442925(0x1af)])['toBe'](0x1),expect(_0x37d02f[_0x442925(0x1af)])[_0x442925(0x1bd)](0x1),expect(_0x255d10['length'])[_0x442925(0x1bd)](0x1),expect(_0x571632[0x0]['name'])['toBe']('execute_command'),expect(_0x137326[0x0]['name'])['toBe'](_0x442925(0x18b));});}),describe(a0_0x1d03a5(0x19d),()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x17c8b4=a0_0x39a5,_0x22fbf6=[{'name':_0x17c8b4(0x1b6),'description':_0x17c8b4(0x186)},{'name':'write_file','description':_0x17c8b4(0x1a5)},{'name':_0x17c8b4(0x18b),'description':_0x17c8b4(0x1c0)}],_0x4c01c5=_0x1f6b75=>{const _0x54a79e=_0x17c8b4,_0x1b0618=_0x1f6b75['toLowerCase']();return _0x22fbf6[_0x54a79e(0x1a6)](_0x1394e4=>_0x1394e4[_0x54a79e(0x1a7)]?.[_0x54a79e(0x1c9)]()[_0x54a79e(0x191)](_0x1b0618)||_0x1394e4[_0x54a79e(0x193)]?.[_0x54a79e(0x1c9)]()['includes'](_0x1b0618));},_0x1b3bf3=_0x4c01c5(_0x17c8b4(0x195));expect(_0x1b3bf3[_0x17c8b4(0x1af)])[_0x17c8b4(0x1bd)](0x2),expect(_0x1b3bf3['map'](_0xe11d00=>_0xe11d00['name']))['toContain'](_0x17c8b4(0x1b6)),expect(_0x1b3bf3['map'](_0x8e7ef4=>_0x8e7ef4[_0x17c8b4(0x1a7)]))['toContain'](_0x17c8b4(0x1bb));const _0x4000e5=_0x4c01c5('analyze');expect(_0x4000e5['length'])[_0x17c8b4(0x1bd)](0x1),expect(_0x4000e5[0x0]['name'])[_0x17c8b4(0x1bd)]('analyze_code');});}),describe(a0_0x1d03a5(0x1a8),()=>{const _0x46abae=a0_0x1d03a5;test('Execution\x20state\x20can\x20track\x20multiple\x20tools',async()=>{const _0x19ab9f=a0_0x39a5,_0x4f28b9=new Set();_0x4f28b9['add'](_0x19ab9f(0x1b6)),_0x4f28b9[_0x19ab9f(0x1c8)]('analyze_code'),expect(_0x4f28b9[_0x19ab9f(0x1c4)](_0x19ab9f(0x1b6)))[_0x19ab9f(0x1bd)](!![]),expect(_0x4f28b9['has']('analyze_code'))[_0x19ab9f(0x1bd)](!![]),expect(_0x4f28b9[_0x19ab9f(0x185)])[_0x19ab9f(0x1bd)](0x2),_0x4f28b9['delete']('read_file'),expect(_0x4f28b9['has']('read_file'))[_0x19ab9f(0x1bd)](![]),expect(_0x4f28b9['has'](_0x19ab9f(0x18b)))['toBe'](!![]),expect(_0x4f28b9['size'])['toBe'](0x1);}),test(_0x46abae(0x18e),async()=>{const _0x58574b=_0x46abae,_0x155bca=new Map();_0x155bca[_0x58574b(0x196)](_0x58574b(0x1ba),{'success':!![],'data':'file\x20contents'}),_0x155bca[_0x58574b(0x196)](_0x58574b(0x1b7),{'success':!![],'data':{'issues':[]}}),expect(_0x155bca[_0x58574b(0x1ac)](_0x58574b(0x1ba)))['toBeDefined'](),expect(_0x155bca['get']('exec-1')['success'])[_0x58574b(0x1bd)](!![]),expect(_0x155bca['get']('exec-1')['data'])['toBe']('file\x20contents'),expect(_0x155bca['get']('exec-2'))[_0x58574b(0x1ab)](),expect(_0x155bca[_0x58574b(0x1ac)](_0x58574b(0x1b7))['data']['issues'])['toEqual']([]),expect(_0x155bca[_0x58574b(0x185)])[_0x58574b(0x1bd)](0x2);});}),describe(a0_0x1d03a5(0x188),()=>{const _0x5e3279=a0_0x1d03a5;test(_0x5e3279(0x197),async()=>{const _0x4a8603=_0x5e3279,_0x1aee54=0x927c0;let _0x556372=null,_0x50f8c7=0x0;const _0x53d2cb=[{'name':_0x4a8603(0x1b6)}];_0x556372=_0x53d2cb,_0x50f8c7=Date['now']();const _0x1b6acb=Date['now'](),_0x210dbd=_0x1b6acb-_0x50f8c7<_0x1aee54;expect(_0x210dbd)['toBe'](!![]),expect(_0x556372)[_0x4a8603(0x1bd)](_0x53d2cb);}),test('Tool\x20cache\x20expires\x20after\x20TTL',async()=>{const _0x10f4b9=_0x5e3279,_0x17d787=0x64;let _0xcc98e9=null,_0x3a8271=0x0;const _0x1d0fbd=[{'name':'read_file'}];_0xcc98e9=_0x1d0fbd,_0x3a8271=Date[_0x10f4b9(0x1b4)](),await new Promise(_0x567fa6=>setTimeout(_0x567fa6,0x96));const _0x1861fa=Date['now'](),_0x543bd4=_0x1861fa-_0x3a8271<_0x17d787;expect(_0x543bd4)['toBe'](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{test('Tools\x20can\x20be\x20filtered\x20by\x20multiple\x20criteria',async()=>{const _0x1ba833=a0_0x39a5,{TOOL_CATEGORY:_0x376852}=await import(_0x1ba833(0x1b5)),_0x1b71c1=[{'name':_0x1ba833(0x190),'category':_0x376852['SYSTEM'],'enabled':!![]},{'name':'terminal','category':_0x376852['SYSTEM'],'enabled':![]},{'name':_0x1ba833(0x18b),'category':_0x376852[_0x1ba833(0x19e)],'enabled':!![]}],_0x8c8448=_0x2720fe=>{const _0x2c5899=_0x1ba833;let _0x2e7876=[..._0x1b71c1];return _0x2720fe[_0x2c5899(0x1be)]&&(_0x2e7876=_0x2e7876['filter'](_0x244289=>_0x244289[_0x2c5899(0x1be)]===_0x2720fe['category'])),_0x2720fe['enabled']!==undefined&&(_0x2e7876=_0x2e7876[_0x2c5899(0x1a6)](_0x48b839=>_0x48b839['enabled']===_0x2720fe[_0x2c5899(0x19f)])),_0x2e7876;},_0x343b77=_0x8c8448({'category':_0x376852[_0x1ba833(0x1b2)]});expect(_0x343b77[_0x1ba833(0x1af)])['toBe'](0x2);const _0x5cf072=_0x8c8448({'enabled':!![]});expect(_0x5cf072['length'])[_0x1ba833(0x1bd)](0x2);const _0x2efa09=_0x8c8448({'category':_0x376852[_0x1ba833(0x1b2)],'enabled':!![]});expect(_0x2efa09[_0x1ba833(0x1af)])[_0x1ba833(0x1bd)](0x1),expect(_0x2efa09[0x0]['name'])[_0x1ba833(0x1bd)]('execute_command');});}),describe(a0_0x1d03a5(0x194),()=>{const _0xe95a28=a0_0x1d03a5;test(_0xe95a28(0x19b),async()=>{const _0x2eb454=_0xe95a28,{TOOL_CATEGORY:_0x516a86}=await import('../../config/constants.js'),_0x1e7864=[{'name':'execute_command','category':_0x516a86['SYSTEM']},{'name':_0x2eb454(0x1c5),'category':_0x516a86['SYSTEM']},{'name':_0x2eb454(0x18b),'category':_0x516a86[_0x2eb454(0x19e)]},{'name':'web_search','category':_0x516a86[_0x2eb454(0x1a4)]}],_0x171d73=_0x11e97c=>{const _0x291924={};for(const _0x535c56 of Object['values'](_0x516a86)){_0x291924[_0x535c56]=_0x11e97c['filter'](_0x5c87d2=>_0x5c87d2['category']===_0x535c56)['length'];}return _0x291924;},_0x13558f=_0x171d73(_0x1e7864);expect(_0x13558f[_0x516a86['SYSTEM']])['toBe'](0x2),expect(_0x13558f[_0x516a86['ANALYSIS']])[_0x2eb454(0x1bd)](0x1),expect(_0x13558f[_0x516a86[_0x2eb454(0x1a4)]])['toBe'](0x1),expect(_0x13558f[_0x516a86[_0x2eb454(0x1a0)]])[_0x2eb454(0x1bd)](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_0x4b93cf=a0_0x49fb;(function(_0x544a56,_0xd51515){const _0x387467=a0_0x49fb,_0x59c048=_0x544a56();while(!![]){try{const _0x187c9d=-parseInt(_0x387467(0x14f))/0x1*(parseInt(_0x387467(0x142))/0x2)+parseInt(_0x387467(0x133))/0x3*(-parseInt(_0x387467(0x145))/0x4)+-parseInt(_0x387467(0x136))/0x5*(-parseInt(_0x387467(0x141))/0x6)+parseInt(_0x387467(0x14e))/0x7*(parseInt(_0x387467(0x13c))/0x8)+-parseInt(_0x387467(0x140))/0x9+parseInt(_0x387467(0x135))/0xa+-parseInt(_0x387467(0x131))/0xb;if(_0x187c9d===_0xd51515)break;else _0x59c048['push'](_0x59c048['shift']());}catch(_0x1a85e8){_0x59c048['push'](_0x59c048['shift']());}}}(a0_0x229d,0x8e398));import{ERROR_MESSAGE}from'../config/constants.js';function a0_0x229d(){const _0x125724=['BwvZC2fNzq','z2v0','C3rHDhvZ','ue9tva','z2v0qxbPs2v5','yxbPs2v5','CMvXDwvZDa','uefuq0G','mJa1nZiWoxDmuxvlwq','odqYmJn0AMvtCgi','Cgf0y2G','tKvuv09ss19fuLjpuG','mJKZodq0mwHrDuPSta','sfruuca','m21Ps2TQvW','yxbWBgLJyxrPB24VANnVBG','mteXmZCYnJbiBhPqCgW','ndq5nJeWnwLsuKjZDq','qMvHCMvYia','Cg9ZDa','zxjYB3i','Aw5JBhvKzxm','C2v0qxbPs2v5','mJrHyuvRr2O','CMvZCg9UC2u','zMv0y2G','C3rHDhvZvgv4Da','otq0mZmXm2nty2vdzW','nMnqrLHmyG','mtHTy1bdA1O','zgvSzxrL','yNvPBgrizwfKzxjZ','otuWnJq0yvL2BgzP'];a0_0x229d=function(){return _0x125724;};return a0_0x229d();}function a0_0x49fb(_0xe9e1f4,_0x18a25c){_0xe9e1f4=_0xe9e1f4-0x130;const _0x229dd1=a0_0x229d();let _0x49fb5=_0x229dd1[_0xe9e1f4];if(a0_0x49fb['feNVfQ']===undefined){var _0x167919=function(_0x445abc){const _0x222c2e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2eb121='',_0x276cf5='';for(let _0x502ebf=0x0,_0x1a1a7b,_0x7c7281,_0x52e9b5=0x0;_0x7c7281=_0x445abc['charAt'](_0x52e9b5++);~_0x7c7281&&(_0x1a1a7b=_0x502ebf%0x4?_0x1a1a7b*0x40+_0x7c7281:_0x7c7281,_0x502ebf++%0x4)?_0x2eb121+=String['fromCharCode'](0xff&_0x1a1a7b>>(-0x2*_0x502ebf&0x6)):0x0){_0x7c7281=_0x222c2e['indexOf'](_0x7c7281);}for(let _0x4b8878=0x0,_0x4b3cd2=_0x2eb121['length'];_0x4b8878<_0x4b3cd2;_0x4b8878++){_0x276cf5+='%'+('00'+_0x2eb121['charCodeAt'](_0x4b8878)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x276cf5);};a0_0x49fb['ZsSEvp']=_0x167919,a0_0x49fb['GJOyWE']={},a0_0x49fb['feNVfQ']=!![];}const _0x32b75d=_0x229dd1[0x0],_0x2171ae=_0xe9e1f4+_0x32b75d,_0x179ae3=a0_0x49fb['GJOyWE'][_0x2171ae];return!_0x179ae3?(_0x49fb5=a0_0x49fb['ZsSEvp'](_0x49fb5),a0_0x49fb['GJOyWE'][_0x2171ae]=_0x49fb5):_0x49fb5=_0x179ae3,_0x49fb5;}export class ApiClient{constructor(_0x2eb121,_0x276cf5=null){this['baseUrl']=_0x2eb121,this['apiKey']=_0x276cf5;}[a0_0x4b93cf(0x13b)](_0x502ebf){const _0xac7b17=a0_0x4b93cf;this[_0xac7b17(0x14b)]=_0x502ebf;}[a0_0x4b93cf(0x14a)](){return this['apiKey'];}['clearApiKey'](){const _0x360ee6=a0_0x4b93cf;this[_0x360ee6(0x14b)]=null;}['buildHeaders'](_0x1a1a7b={}){const _0x3b1164=a0_0x4b93cf,_0x7c7281={'Content-Type':_0x3b1164(0x134),..._0x1a1a7b};return this[_0x3b1164(0x14b)]&&(_0x7c7281['Authorization']=_0x3b1164(0x137)+this[_0x3b1164(0x14b)]),_0x7c7281;}async['request'](_0x52e9b5,_0x4b8878,_0x4b3cd2={}){const _0x22a718=a0_0x4b93cf,{body:body=null,headers:headers={},query:query=null}=_0x4b3cd2;let _0xf2d962=''+this['baseUrl']+_0x4b8878;if(query){const _0x5cc9b6=new URLSearchParams(query)['toString']();_0xf2d962+='?'+_0x5cc9b6;}const _0x7192c5={'method':_0x52e9b5,'headers':this[_0x22a718(0x144)](headers)};body&&[_0x22a718(0x149),'PUT','PATCH'][_0x22a718(0x13a)](_0x52e9b5['toUpperCase']())&&(_0x7192c5['body']=JSON['stringify'](body));try{const _0x394dbf=await fetch(_0xf2d962,_0x7192c5),_0x418235=await _0x394dbf['json']()['catch'](()=>({}));if(!_0x394dbf['ok']){const _0x5527fa=new Error(_0x418235[_0x22a718(0x139)]||_0x22a718(0x132)+_0x394dbf['status']+':\x20'+_0x394dbf[_0x22a718(0x13f)]);_0x5527fa['status']=_0x394dbf[_0x22a718(0x148)],_0x5527fa[_0x22a718(0x13d)]=_0x418235;throw _0x5527fa;}return _0x418235;}catch(_0x8df809){if(_0x8df809[_0x22a718(0x146)]['includes'](_0x22a718(0x13e))||_0x8df809['name']==='TypeError'){const _0x540e77=new Error(ERROR_MESSAGE[_0x22a718(0x130)]+':\x20'+_0x8df809[_0x22a718(0x146)]);_0x540e77['originalError']=_0x8df809;throw _0x540e77;}throw _0x8df809;}}async[a0_0x4b93cf(0x147)](_0x380bf7,_0x529fae={}){return this['request']('GET',_0x380bf7,_0x529fae);}async[a0_0x4b93cf(0x138)](_0x28e50c,_0x5225ec=null,_0x190f96={}){const _0x5d03ca=a0_0x4b93cf;return this[_0x5d03ca(0x14c)](_0x5d03ca(0x149),_0x28e50c,{..._0x190f96,'body':_0x5225ec});}async['put'](_0x59ee1,_0x32b64a=null,_0x93c7a0={}){const _0x578abf=a0_0x4b93cf;return this[_0x578abf(0x14c)]('PUT',_0x59ee1,{..._0x93c7a0,'body':_0x32b64a});}async[a0_0x4b93cf(0x150)](_0x422f4d,_0x532b4f=null,_0xd18035={}){const _0x2cca80=a0_0x4b93cf;return this['request'](_0x2cca80(0x14d),_0x422f4d,{..._0xd18035,'body':_0x532b4f});}async[a0_0x4b93cf(0x143)](_0x3312df,_0x3ed679={}){return this['request']('DELETE',_0x3312df,_0x3ed679);}}export function createApiClient(_0x34738b='localhost',_0x53a8f4=0x1f90,_0x581081=null){const _0x2690aa='http://'+_0x34738b+':'+_0x53a8f4;return new ApiClient(_0x2690aa,_0x581081);}export default ApiClient;
@@ -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_0x1e1d(){const _0x4797ce=['mtqZvufRy3zJ','mJeYmti1tej5tw5P','ChvZAa','z2v0','tuvtu0fhrv9brerfra','AgfUzgXLCL9LCNjVCG','ywDLBNq6BwvZC2fNzv9HzgrLza','BwvZC2fNzq','AgfZ','quDftLrFtu9erv9dsefor0ve','ywDLBNq6D2fYBMLUzW','quDftLrFv0fstKLorW','otaWELbHsgff','ywDLBNq6zxHLy3v0Aw9Ux3n0B3bWzwq','odCXnZmXDgDlBhzq','C2v0','mtiYmdKYmdrJD1vwqvu','AgfUzgXLCNm','BwLKzgXLD2fYzq','nJu1odrrCgvSu3K','mtbOz3PLDwi','nJzduLrzuMm','DxnL','ywDLBNq6Bw9Kzv9JAgfUz2vK','rvjst1i','y2XLyxjnAwrKBgv3yxjL','zgvSzxrL','CMvNAxn0zxjiyw5KBgvY','mJznqNv3EKW','ohb4sM9Xza','ywDLBNq6y29TBxvUAwnHDgLVBG','mti3nujusK5XBG','y2XLyxjiyw5KBgvYCW','zNjVBq','mtiXnJe2nhj6s2PoBG','CMvTB3zLtwLKzgXLD2fYzq','ywDLBNq6zxjYB3i','su1br0vFuKvtvuXu','y29UDMvYC2f0Aw9UoMnVBxbHy3rPB24','zNvUy3rPB24','mZLcDeLWC1q','nZG0odG5mvrhsvHxra','zxjYB3i','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','DhLWzq','zw1PDa','zgf0yq','ywDLBNq','A2v5CW','Dg9ju09tDhjPBMC'];a0_0x1e1d=function(){return _0x4797ce;};return a0_0x1e1d();}const a0_0x2959b8=a0_0x330d;function a0_0x330d(_0x20cd60,_0x420f2f){_0x20cd60=_0x20cd60-0x12e;const _0x1e1dfa=a0_0x1e1d();let _0x330dcb=_0x1e1dfa[_0x20cd60];if(a0_0x330d['BnhbrO']===undefined){var _0x33015b=function(_0xaf7067){const _0x3e3446='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x35ea2a='',_0x45ae22='';for(let _0x432130=0x0,_0x1f3f6e,_0x3ef72f,_0x34a610=0x0;_0x3ef72f=_0xaf7067['charAt'](_0x34a610++);~_0x3ef72f&&(_0x1f3f6e=_0x432130%0x4?_0x1f3f6e*0x40+_0x3ef72f:_0x3ef72f,_0x432130++%0x4)?_0x35ea2a+=String['fromCharCode'](0xff&_0x1f3f6e>>(-0x2*_0x432130&0x6)):0x0){_0x3ef72f=_0x3e3446['indexOf'](_0x3ef72f);}for(let _0x2c92ff=0x0,_0x34bb79=_0x35ea2a['length'];_0x2c92ff<_0x34bb79;_0x2c92ff++){_0x45ae22+='%'+('00'+_0x35ea2a['charCodeAt'](_0x2c92ff)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x45ae22);};a0_0x330d['MVbWgi']=_0x33015b,a0_0x330d['BdQPiD']={},a0_0x330d['BnhbrO']=!![];}const _0x5c47fa=_0x1e1dfa[0x0],_0x11e4b8=_0x20cd60+_0x5c47fa,_0x5e0e6b=a0_0x330d['BdQPiD'][_0x11e4b8];return!_0x5e0e6b?(_0x330dcb=a0_0x330d['MVbWgi'](_0x330dcb),a0_0x330d['BdQPiD'][_0x11e4b8]=_0x330dcb):_0x330dcb=_0x5e0e6b,_0x330dcb;}(function(_0x2e34b0,_0x23dfdb){const _0x3a2bdb=a0_0x330d,_0x6f2cf6=_0x2e34b0();while(!![]){try{const _0x56342b=-parseInt(_0x3a2bdb(0x135))/0x1*(-parseInt(_0x3a2bdb(0x13e))/0x2)+parseInt(_0x3a2bdb(0x141))/0x3*(-parseInt(_0x3a2bdb(0x12e))/0x4)+parseInt(_0x3a2bdb(0x155))/0x5*(parseInt(_0x3a2bdb(0x137))/0x6)+-parseInt(_0x3a2bdb(0x130))/0x7*(parseInt(_0x3a2bdb(0x13f))/0x8)+-parseInt(_0x3a2bdb(0x14b))/0x9*(-parseInt(_0x3a2bdb(0x136))/0xa)+parseInt(_0x3a2bdb(0x154))/0xb*(parseInt(_0x3a2bdb(0x144))/0xc)+parseInt(_0x3a2bdb(0x14a))/0xd*(-parseInt(_0x3a2bdb(0x132))/0xe);if(_0x56342b===_0x23dfdb)break;else _0x6f2cf6['push'](_0x6f2cf6['shift']());}catch(_0x556321){_0x6f2cf6['push'](_0x6f2cf6['shift']());}}}(a0_0x1e1d,0xa42cd));import{EventEmitter}from'events';import{WS_MESSAGE_TYPE}from'../config/constants.js';export class MessageRouter extends EventEmitter{constructor(_0x35ea2a){const _0xccf78d=a0_0x330d;super(),this['ws']=_0x35ea2a,this[_0xccf78d(0x133)]=new Map(),this[_0xccf78d(0x134)]=[],this['ws']['on'](_0xccf78d(0x15b),_0x45ae22=>this['route'](_0x45ae22)),this[_0xccf78d(0x14d)]();}[a0_0x2959b8(0x14d)](){const _0x3a5c6d=a0_0x2959b8;this[_0x3a5c6d(0x13d)](WS_MESSAGE_TYPE[_0x3a5c6d(0x158)],_0x432130=>{const _0x43b4f2=_0x3a5c6d;this['emit'](_0x43b4f2(0x15a),_0x432130['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x3a5c6d(0x15d)],_0x1f3f6e=>{const _0x1c8be0=_0x3a5c6d;this[_0x1c8be0(0x14f)](_0x1c8be0(0x139),_0x1f3f6e);}),this['registerHandler'](WS_MESSAGE_TYPE['EXECUTION_STOPPED'],_0x3ef72f=>{const _0x503bae=_0x3a5c6d;this[_0x503bae(0x14f)](_0x503bae(0x12f),_0x3ef72f[_0x503bae(0x150)]);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_ERROR'],_0x34a610=>{const _0x4125b2=_0x3a5c6d;this[_0x4125b2(0x14f)](_0x4125b2(0x146),_0x34a610);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x3a5c6d(0x15f)],_0x2c92ff=>{const _0x28a54d=_0x3a5c6d;this[_0x28a54d(0x14f)](_0x28a54d(0x15e),_0x2c92ff);}),this[_0x3a5c6d(0x13d)](WS_MESSAGE_TYPE['AGENT_IMPORTED'],_0x34bb79=>{const _0x19740b=_0x3a5c6d;this['emit']('agent:imported',_0x34bb79[_0x19740b(0x151)]);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0x459822=>{const _0x28306d=_0x3a5c6d;this[_0x28306d(0x14f)](_0x28306d(0x140),_0x459822[_0x28306d(0x150)]);}),this['registerHandler'](WS_MESSAGE_TYPE['COMPACTION_EVENT'],_0x3c666f=>{const _0x41caca=_0x3a5c6d;this[_0x41caca(0x14f)](_0x41caca(0x148),_0x3c666f[_0x41caca(0x150)]);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x3a5c6d(0x147)],_0x56d3a6=>{const _0x13066b=_0x3a5c6d;this[_0x13066b(0x14f)]('image:result',_0x56d3a6['data']);}),this['registerHandler'](WS_MESSAGE_TYPE['IMAGE_GENERATED'],_0xd6b921=>{const _0x5bd760=_0x3a5c6d;this['emit']('image:generated',_0xd6b921[_0x5bd760(0x150)]);}),this[_0x3a5c6d(0x13d)](WS_MESSAGE_TYPE[_0x3a5c6d(0x13a)],_0x26fdac=>{const _0x4545c7=_0x3a5c6d;this['emit'](_0x4545c7(0x14c),_0x26fdac);});}async['route'](_0x39d17a){const _0x57825b=a0_0x2959b8;let processedMessage=_0x39d17a;for(const _0x2f05c6 of this['middleware']){try{processedMessage=await _0x2f05c6(processedMessage);if(!processedMessage)return;}catch(_0x241b1a){this['emit']('middleware_error',{'error':_0x241b1a,'message':_0x39d17a});return;}}const _0x5c8513=processedMessage[_0x57825b(0x14e)];if(!_0x5c8513){this['emit']('invalid_message',processedMessage);return;}if(this[_0x57825b(0x133)][_0x57825b(0x15c)](_0x5c8513)){const _0x36ea29=this['handlers'][_0x57825b(0x157)](_0x5c8513);try{await _0x36ea29(processedMessage);}catch(_0x2ce951){this['emit'](_0x57825b(0x159),{'error':_0x2ce951,'message':processedMessage,'messageType':_0x5c8513});}}this[_0x57825b(0x14f)]('message:'+_0x5c8513,processedMessage),this['emit']('message',processedMessage);}['registerHandler'](_0x3bbd98,_0xe60bea){const _0x4750a9=a0_0x2959b8;if(typeof _0xe60bea!==_0x4750a9(0x149))throw new Error('Handler\x20must\x20be\x20a\x20function');this['handlers'][_0x4750a9(0x131)](_0x3bbd98,_0xe60bea);}['unregisterHandler'](_0x2f58bc){const _0x278c7c=a0_0x2959b8;this['handlers'][_0x278c7c(0x13c)](_0x2f58bc);}[a0_0x2959b8(0x138)](_0x5424b5){const _0x40f555=a0_0x2959b8;if(typeof _0x5424b5!==_0x40f555(0x149))throw new Error('Middleware\x20must\x20be\x20a\x20function');this[_0x40f555(0x134)][_0x40f555(0x156)](_0x5424b5);}[a0_0x2959b8(0x145)](_0xedc535){const _0x35198b=this['middleware']['indexOf'](_0xedc535);_0x35198b>-0x1&&this['middleware']['splice'](_0x35198b,0x1);}[a0_0x2959b8(0x13b)](){this['middleware']=[];}['getRegisteredTypes'](){const _0xd6baa0=a0_0x2959b8;return Array[_0xd6baa0(0x143)](this[_0xd6baa0(0x133)][_0xd6baa0(0x152)]());}['hasHandler'](_0x2165cb){return this['handlers']['has'](_0x2165cb);}[a0_0x2959b8(0x142)](){this['handlers']['clear']();}['reset'](){const _0x28491f=a0_0x2959b8;this['clearHandlers'](),this[_0x28491f(0x13b)](),this['registerDefaultHandlers']();}}export function loggingMiddleware(_0x5bf788=console['log']){return _0x5d7898=>{return _0x5bf788('[MessageRouter]',_0x5d7898['type'],_0x5d7898),_0x5d7898;};}export function filterMiddleware(_0x259d29){return _0x2b4bd2=>{const _0x5eed35=a0_0x330d;if(_0x259d29['includes'](_0x2b4bd2[_0x5eed35(0x14e)]))return _0x2b4bd2;return null;};}export function transformMiddleware(_0x3c75bb){return async _0x465381=>{return await _0x3c75bb(_0x465381);};}export function timestampMiddleware(){return _0x5f2fb5=>{const _0x45fe28=a0_0x330d;return{..._0x5f2fb5,'receivedAt':new Date()[_0x45fe28(0x153)]()};};}export function validationMiddleware(_0x50a6a0){return _0x1939be=>{if(_0x50a6a0(_0x1939be))return _0x1939be;throw new Error('Message\x20validation\x20failed');};}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_0x2d8399=a0_0xacd5;(function(_0x1a73a0,_0x4132cc){const _0x1a13f8=a0_0xacd5,_0x2d4ec5=_0x1a73a0();while(!![]){try{const _0x5d1251=parseInt(_0x1a13f8(0x93))/0x1+parseInt(_0x1a13f8(0xa3))/0x2+-parseInt(_0x1a13f8(0x98))/0x3*(parseInt(_0x1a13f8(0x90))/0x4)+parseInt(_0x1a13f8(0x91))/0x5*(-parseInt(_0x1a13f8(0xa9))/0x6)+-parseInt(_0x1a13f8(0x96))/0x7+-parseInt(_0x1a13f8(0xab))/0x8*(parseInt(_0x1a13f8(0x85))/0x9)+-parseInt(_0x1a13f8(0x8a))/0xa*(-parseInt(_0x1a13f8(0x9d))/0xb);if(_0x5d1251===_0x4132cc)break;else _0x2d4ec5['push'](_0x2d4ec5['shift']());}catch(_0x55dcd6){_0x2d4ec5['push'](_0x2d4ec5['shift']());}}}(a0_0x5f39,0x5797c));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';function a0_0xacd5(_0x1d5ba7,_0x51c976){_0x1d5ba7=_0x1d5ba7-0x82;const _0x5f3944=a0_0x5f39();let _0xacd59d=_0x5f3944[_0x1d5ba7];if(a0_0xacd5['UUWUfn']===undefined){var _0xe5e81e=function(_0x2863bf){const _0x1bdad8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x36fe29='',_0xca633c='';for(let _0xbf4c74=0x0,_0x11b0b9,_0x1d0ede,_0x538e7e=0x0;_0x1d0ede=_0x2863bf['charAt'](_0x538e7e++);~_0x1d0ede&&(_0x11b0b9=_0xbf4c74%0x4?_0x11b0b9*0x40+_0x1d0ede:_0x1d0ede,_0xbf4c74++%0x4)?_0x36fe29+=String['fromCharCode'](0xff&_0x11b0b9>>(-0x2*_0xbf4c74&0x6)):0x0){_0x1d0ede=_0x1bdad8['indexOf'](_0x1d0ede);}for(let _0x55b7c8=0x0,_0x235360=_0x36fe29['length'];_0x55b7c8<_0x235360;_0x55b7c8++){_0xca633c+='%'+('00'+_0x36fe29['charCodeAt'](_0x55b7c8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xca633c);};a0_0xacd5['Uexqgd']=_0xe5e81e,a0_0xacd5['wbpePJ']={},a0_0xacd5['UUWUfn']=!![];}const _0x39596e=_0x5f3944[0x0],_0xe0644c=_0x1d5ba7+_0x39596e,_0x1bed70=a0_0xacd5['wbpePJ'][_0xe0644c];return!_0x1bed70?(_0xacd59d=a0_0xacd5['Uexqgd'](_0xacd59d),a0_0xacd5['wbpePJ'][_0xe0644c]=_0xacd59d):_0xacd59d=_0x1bed70,_0xacd59d;}import{ApiClient}from'./apiClient.js';export class SessionManager{constructor(_0x36fe29=NETWORK['DEFAULT_HOST'],_0xca633c=NETWORK[a0_0x2d8399(0x99)]){const _0xfd3c38=a0_0x2d8399;this[_0xfd3c38(0x88)]=_0x36fe29,this['port']=_0xca633c,this['baseUrl']=_0xfd3c38(0x8d)+_0x36fe29+':'+_0xca633c,this[_0xfd3c38(0x84)]=null,this['projectDir']=null,this[_0xfd3c38(0x86)]=null,this[_0xfd3c38(0x94)]=null,this['loxiaApiKey']=null,this[_0xfd3c38(0x8f)]={},this[_0xfd3c38(0x92)]=new ApiClient(this['baseUrl'],this['loxiaApiKey']);}async[a0_0x2d8399(0x8b)](_0xbf4c74=process['cwd']()){const _0x2f29af=a0_0x2d8399;try{const _0x11b0b9=await this[_0x2f29af(0xa8)]('POST',API_ENDPOINTS['SESSION_CREATE'],{'projectDir':_0xbf4c74});if(_0x11b0b9['success']&&_0x11b0b9['session'])return this[_0x2f29af(0x84)]=_0x11b0b9['session']['id'],this['projectDir']=_0xbf4c74,this[_0x2f29af(0x86)]=_0x11b0b9['session'][_0x2f29af(0x86)],this['lastActivity']=_0x11b0b9['session']['lastActivity'],{'success':!![],'sessionId':this[_0x2f29af(0x84)],'session':_0x11b0b9[_0x2f29af(0xa5)]};else throw new Error(_0x11b0b9[_0x2f29af(0x89)]||ERROR_MESSAGE['SESSION_CREATE_FAILED']);}catch(_0x1d0ede){throw new Error(ERROR_MESSAGE[_0x2f29af(0x82)]+':\x20'+_0x1d0ede[_0x2f29af(0x9f)]);}}async['setApiKeys'](_0x538e7e=null,_0x55b7c8={}){const _0x3a38f2=a0_0x2d8399;if(!this[_0x3a38f2(0x84)])throw new Error(ERROR_MESSAGE[_0x3a38f2(0x9c)]);try{const _0x235360=await this['makeRequest'](_0x3a38f2(0x8c),API_ENDPOINTS['KEYS_SET'],{'sessionId':this[_0x3a38f2(0x84)],'loxiaApiKey':_0x538e7e,'vendorKeys':_0x55b7c8});if(_0x235360['success'])return this['loxiaApiKey']=_0x538e7e,this[_0x3a38f2(0x8f)]=_0x55b7c8,this['apiClient']['setApiKey'](_0x538e7e),{'success':!![],'message':_0x235360[_0x3a38f2(0x9f)],'hasLoxiaKey':_0x235360[_0x3a38f2(0x8e)],'vendorKeys':_0x235360['vendorKeys']};else throw new Error(_0x235360['error']||'Failed\x20to\x20set\x20API\x20keys');}catch(_0x3949c7){throw new Error('Failed\x20to\x20set\x20API\x20keys:\x20'+_0x3949c7['message']);}}async['getApiKeyStatus'](){const _0x456840=a0_0x2d8399;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0x456840(0x9c)]);try{const _0x4034b8=API_ENDPOINTS['KEYS_GET'][_0x456840(0xa7)](':sessionId',this['sessionId']),_0x5bbc1d=await this['makeRequest'](_0x456840(0x97),_0x4034b8);if(_0x5bbc1d['success'])return{'success':!![],'hasLoxiaKey':_0x5bbc1d[_0x456840(0x8e)],'vendorKeys':_0x5bbc1d['vendorKeys'],'updatedAt':_0x5bbc1d['updatedAt']};else throw new Error(_0x5bbc1d['error']||'Failed\x20to\x20get\x20API\x20key\x20status');}catch(_0x6bca6e){throw new Error('Failed\x20to\x20get\x20API\x20key\x20status:\x20'+_0x6bca6e['message']);}}async[a0_0x2d8399(0x9b)](){const _0x24bccc=a0_0x2d8399;if(!this[_0x24bccc(0x84)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x1687a4=API_ENDPOINTS['KEYS_DELETE']['replace'](':sessionId',this[_0x24bccc(0x84)]),_0xa888df=await this[_0x24bccc(0xa8)](_0x24bccc(0xaa),_0x1687a4);if(_0xa888df[_0x24bccc(0x9a)])return this['loxiaApiKey']=null,this['vendorKeys']={},{'success':!![],'message':_0xa888df[_0x24bccc(0x9f)]};else throw new Error(_0xa888df['error']||'Failed\x20to\x20delete\x20API\x20keys');}catch(_0x2326ee){throw new Error('Failed\x20to\x20delete\x20API\x20keys:\x20'+_0x2326ee[_0x24bccc(0x9f)]);}}async['initialize'](_0x49be3b=process[a0_0x2d8399(0xa4)]()){const _0x38f8b2=a0_0x2d8399;try{const _0x3df4da=await this[_0x38f8b2(0xa2)]();if(!_0x3df4da['success'])throw new Error('Server\x20health\x20check\x20failed:\x20'+_0x3df4da['error']);const _0x82046b=await this[_0x38f8b2(0x8b)](_0x49be3b);return{'success':!![],'sessionId':_0x82046b['sessionId'],'session':_0x82046b['session']};}catch(_0x390f33){return{'success':![],'error':_0x390f33['message']};}}async[a0_0x2d8399(0xa2)](){const _0x22df68=a0_0x2d8399;try{const _0x321aeb=await this['makeRequest']('GET',API_ENDPOINTS['HEALTH']);return{'success':!![],'status':_0x321aeb[_0x22df68(0x9e)],'version':_0x321aeb['version'],'timestamp':_0x321aeb['timestamp']};}catch(_0x1f3f73){return{'success':![],'error':_0x1f3f73['message']};}}async['makeRequest'](_0x5214ca,_0x3dfef5,_0x58981c=null){const _0x26cf37=a0_0x2d8399;return this[_0x26cf37(0x92)]['request'](_0x5214ca,_0x3dfef5,{'body':_0x58981c});}['getSessionId'](){return this['sessionId'];}['getProjectDir'](){return this['projectDir'];}[a0_0x2d8399(0x83)](){const _0x58fa63=a0_0x2d8399;return this[_0x58fa63(0x84)]!==null;}['updateActivity'](){this['lastActivity']=new Date()['toISOString']();}[a0_0x2d8399(0x95)](){const _0xa9fc51=a0_0x2d8399;return{'sessionId':this['sessionId'],'projectDir':this[_0xa9fc51(0xa6)],'createdAt':this['createdAt'],'lastActivity':this['lastActivity'],'hasLoxiaKey':!!this[_0xa9fc51(0xa0)],'vendorKeysCount':Object[_0xa9fc51(0x87)](this[_0xa9fc51(0x8f)])['length']};}[a0_0x2d8399(0xa1)](){const _0x29d286=a0_0x2d8399;this['sessionId']=null,this[_0x29d286(0xa6)]=null,this[_0x29d286(0x86)]=null,this[_0x29d286(0x94)]=null,this[_0x29d286(0xa0)]=null,this['vendorKeys']={};}}function a0_0x5f39(){const _0x2f5c40=['ntaZmdDgv0DXtg0','revgqvvmvf9qt1ju','C3vJy2vZCW','zgvSzxrLqxbPs2v5CW','u0vtu0LptL9jtLzbteLe','odm2nJa1uwPQuhrK','C3rHDhvZ','BwvZC2fNzq','Bg94AwfbCgLlzxK','y2XLyxi','y2HLy2TizwfSDgG','mJa2mtaWrfzRt0XO','y3DK','C2vZC2LVBG','ChjVAMvJDerPCG','CMvWBgfJzq','BwfRzvjLCxvLC3q','mJG5mta0nKzuvKLQBG','revmrvrf','mtG2mJrMwKP4tKu','u0vtu0LptL9duKvbvevFrKfjteve','AxnwywXPza','C2vZC2LVBKLK','mta4mgPVuKXhvG','y3jLyxrLzef0','A2v5CW','Ag9ZDa','zxjYB3i','mZaWtxL4vMrn','y3jLyxrLu2vZC2LVBG','ue9tva','Ahr0CdOVlW','AgfZtg94AwflzxK','DMvUzg9Ys2v5CW','mty0wg10tMDh','nxnSDeH3yW','yxbPq2XPzw50','mJy2mtfvq1Hgq2W','BgfZDefJDgL2Axr5','z2v0u2vZC2LVBKLUzM8','ndiYnJyWn3LcB1zkyq','r0vu'];a0_0x5f39=function(){return _0x2f5c40;};return a0_0x5f39();}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_0xc40102=a0_0x3855;(function(_0x352960,_0x11e8b2){const _0x1192f4=a0_0x3855,_0x4b4126=_0x352960();while(!![]){try{const _0x471c20=parseInt(_0x1192f4(0x8e))/0x1*(-parseInt(_0x1192f4(0xb2))/0x2)+parseInt(_0x1192f4(0x94))/0x3+-parseInt(_0x1192f4(0x8a))/0x4+parseInt(_0x1192f4(0xab))/0x5+parseInt(_0x1192f4(0x9c))/0x6+parseInt(_0x1192f4(0xc4))/0x7+-parseInt(_0x1192f4(0xd5))/0x8*(parseInt(_0x1192f4(0xaa))/0x9);if(_0x471c20===_0x11e8b2)break;else _0x4b4126['push'](_0x4b4126['shift']());}catch(_0x37a0f3){_0x4b4126['push'](_0x4b4126['shift']());}}}(a0_0x1989,0xa9f53));import a0_0x39dca0 from'ws';import{EventEmitter}from'events';function a0_0x3855(_0x285128,_0x1c89f3){_0x285128=_0x285128-0x8a;const _0x198914=a0_0x1989();let _0x38556e=_0x198914[_0x285128];if(a0_0x3855['pLyENg']===undefined){var _0x2fc34a=function(_0x35f470){const _0x55500a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39dca0='',_0x70d2b='';for(let _0x42039d=0x0,_0x28c57d,_0xf271b,_0x3f8271=0x0;_0xf271b=_0x35f470['charAt'](_0x3f8271++);~_0xf271b&&(_0x28c57d=_0x42039d%0x4?_0x28c57d*0x40+_0xf271b:_0xf271b,_0x42039d++%0x4)?_0x39dca0+=String['fromCharCode'](0xff&_0x28c57d>>(-0x2*_0x42039d&0x6)):0x0){_0xf271b=_0x55500a['indexOf'](_0xf271b);}for(let _0x41a4ee=0x0,_0x1d452d=_0x39dca0['length'];_0x41a4ee<_0x1d452d;_0x41a4ee++){_0x70d2b+='%'+('00'+_0x39dca0['charCodeAt'](_0x41a4ee)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x70d2b);};a0_0x3855['AWqoHq']=_0x2fc34a,a0_0x3855['KQxZfj']={},a0_0x3855['pLyENg']=!![];}const _0x21f43c=_0x198914[0x0],_0x11f8fd=_0x285128+_0x21f43c,_0x46e247=a0_0x3855['KQxZfj'][_0x11f8fd];return!_0x46e247?(_0x38556e=a0_0x3855['AWqoHq'](_0x38556e),a0_0x3855['KQxZfj'][_0x11f8fd]=_0x38556e):_0x38556e=_0x46e247,_0x38556e;}import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';export class WebSocketManager extends EventEmitter{constructor(_0x70d2b=NETWORK['DEFAULT_HOST'],_0x42039d=NETWORK[a0_0xc40102(0xc2)],_0x28c57d={}){const _0x41da31=a0_0xc40102;super(),this[_0x41da31(0xca)]=_0x70d2b,this['port']=_0x42039d,this[_0x41da31(0x97)]='ws://'+_0x70d2b+':'+_0x42039d,this['ws']=null,this['state']=CONNECTION_STATE[_0x41da31(0x9f)],this[_0x41da31(0xce)]=null,this['reconnectAttempts']=0x0,this['reconnectDelay']=_0x28c57d[_0x41da31(0x92)]??TIMING['WEBSOCKET_RECONNECT_DELAY'],this['baseReconnectDelay']=this[_0x41da31(0x92)],this[_0x41da31(0x95)]=null,this[_0x41da31(0xc3)]=!![],this['heartbeatInterval']=_0x28c57d['heartbeatInterval']??TIMING[_0x41da31(0xb4)],this[_0x41da31(0xd6)]=null,this['pongTimeout']=null,this[_0x41da31(0xc7)]=null,this[_0x41da31(0xd1)]=[],this[_0x41da31(0x96)]=0x0,this['pendingRequests']=new Map();}async['connect'](){const _0x3f9b50=a0_0xc40102;if(this[_0x3f9b50(0xcf)]===CONNECTION_STATE[_0x3f9b50(0xd3)]||this[_0x3f9b50(0xcf)]===CONNECTION_STATE[_0x3f9b50(0x8f)])return{'success':![],'error':_0x3f9b50(0xbf)};this[_0x3f9b50(0xc6)](CONNECTION_STATE['CONNECTING']),this['emit'](_0x3f9b50(0xbe));try{return this['ws']=new a0_0x39dca0(this[_0x3f9b50(0x97)]),this[_0x3f9b50(0xc5)](),await this[_0x3f9b50(0xbc)](),{'success':!![]};}catch(_0xf271b){return this['handleConnectionError'](_0xf271b),{'success':![],'error':_0xf271b['message']};}}[a0_0xc40102(0xbc)](){return new Promise((_0x3f8271,_0x41a4ee)=>{const _0x569140=a0_0x3855,_0x1d452d=setTimeout(()=>{const _0xe04b47=a0_0x3855;_0x41a4ee(new Error(_0xe04b47(0xa4)));},TIMING['WEBSOCKET_CONNECT_TIMEOUT']);this['ws'][_0x569140(0xd4)]('open',()=>{clearTimeout(_0x1d452d),_0x3f8271();}),this['ws']['once']('error',_0x2a26da=>{clearTimeout(_0x1d452d),_0x41a4ee(_0x2a26da);});});}[a0_0xc40102(0xc5)](){const _0x5e8530=a0_0xc40102;this['ws']['on']('open',()=>this[_0x5e8530(0x9d)]()),this['ws']['on']('message',_0x13ac7d=>this[_0x5e8530(0xb1)](_0x13ac7d)),this['ws']['on'](_0x5e8530(0xad),(_0x3555ff,_0x5b5f93)=>this['handleClose'](_0x3555ff,_0x5b5f93)),this['ws']['on'](_0x5e8530(0xb5),_0x536c01=>this['handleError'](_0x536c01));}['handleOpen'](){const _0x567319=a0_0xc40102;this[_0x567319(0xc6)](CONNECTION_STATE[_0x567319(0xd3)]),this[_0x567319(0xb0)]=0x0,this['reconnectDelay']=this[_0x567319(0xd7)],this['emit'](_0x567319(0xa8)),this[_0x567319(0xc8)](),this['processMessageQueue']();}['handleMessage'](_0x11dd02){const _0x5d2912=a0_0xc40102;try{const _0x310c99=JSON['parse'](_0x11dd02['toString']());if(_0x310c99[_0x5d2912(0xa2)]===WS_MESSAGE_TYPE['PONG']){this['handlePong']();return;}if(_0x310c99[_0x5d2912(0xa2)]===WS_MESSAGE_TYPE[_0x5d2912(0xd3)]){this[_0x5d2912(0xa7)](_0x5d2912(0xb8),_0x310c99);return;}if(_0x310c99[_0x5d2912(0xa2)]===WS_MESSAGE_TYPE[_0x5d2912(0xc9)]){this[_0x5d2912(0xce)]=_0x310c99['sessionId'],this[_0x5d2912(0xa7)]('session_joined',_0x310c99);return;}if(_0x310c99[_0x5d2912(0xa2)]===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this['handleOrchestratorResponse'](_0x310c99);return;}this['emit']('message',_0x310c99),_0x310c99['type']&&this['emit'](_0x310c99[_0x5d2912(0xa2)],_0x310c99);}catch(_0x37f4){this['emit'](_0x5d2912(0xc1),{'error':_0x37f4,'data':_0x11dd02});}}['handleClose'](_0x302a26,_0x590dee){const _0x2cd7ea=a0_0xc40102;this['cleanup']();const _0x32e43f=_0x590dee[_0x2cd7ea(0x8d)]()||'Unknown\x20reason';this[_0x2cd7ea(0xa7)](_0x2cd7ea(0xcb),{'code':_0x302a26,'reason':_0x32e43f}),this['shouldReconnect']&&_0x302a26!==0x3e8?this[_0x2cd7ea(0xcc)]():this['setState'](CONNECTION_STATE[_0x2cd7ea(0x9f)]);}['handleError'](_0x518ddf){const _0x5ba398=a0_0xc40102;this['emit'](_0x5ba398(0xb5),_0x518ddf);}[a0_0xc40102(0x91)](_0x2d8e76){const _0x3ceffd=a0_0xc40102;this['setState'](CONNECTION_STATE[_0x3ceffd(0xc0)]),this['emit']('connection_error',_0x2d8e76),this['shouldReconnect']&&this['scheduleReconnect']();}[a0_0xc40102(0xcc)](){const _0x4bbba3=a0_0xc40102;if(this['reconnectTimer'])return;this[_0x4bbba3(0xc6)](CONNECTION_STATE['RECONNECTING']),this['reconnectAttempts']++;const _0x4b74f5=Math['min'](this['reconnectDelay']*Math['pow'](TIMING['WEBSOCKET_RECONNECT_MULTIPLIER'],this[_0x4bbba3(0xb0)]-0x1),TIMING[_0x4bbba3(0xa3)]);this[_0x4bbba3(0xa7)]('reconnecting',{'attempt':this[_0x4bbba3(0xb0)],'delay':_0x4b74f5}),this[_0x4bbba3(0x95)]=setTimeout(()=>{const _0x3d9d50=_0x4bbba3;this[_0x3d9d50(0x95)]=null,this['connect']();},_0x4b74f5);}['startHeartbeat'](){const _0x3a1174=a0_0xc40102;this[_0x3a1174(0xd0)](),this['pingInterval']=setInterval(()=>{this['state']===CONNECTION_STATE['CONNECTED']&&this['sendPing']();},this[_0x3a1174(0x8c)]);}[a0_0xc40102(0xd0)](){const _0x39b63c=a0_0xc40102;this[_0x39b63c(0xd6)]&&(clearInterval(this['pingInterval']),this['pingInterval']=null),this[_0x39b63c(0xb9)]&&(clearTimeout(this['pongTimeout']),this['pongTimeout']=null);}[a0_0xc40102(0xcd)](){const _0x2c7e17=a0_0xc40102;if(this[_0x2c7e17(0xcf)]!==CONNECTION_STATE[_0x2c7e17(0xd3)])return;try{this['send']({'type':WS_MESSAGE_TYPE['PING']}),this['pongTimeout']=setTimeout(()=>{const _0x24ccba=_0x2c7e17;this[_0x24ccba(0xb6)]();},TIMING['WEBSOCKET_PONG_TIMEOUT']);}catch(_0x437b14){this[_0x2c7e17(0xa7)](_0x2c7e17(0x9b),_0x437b14);}}['handlePong'](){const _0xc81ddc=a0_0xc40102;this[_0xc81ddc(0xc7)]=Date[_0xc81ddc(0xbb)](),this['pongTimeout']&&(clearTimeout(this[_0xc81ddc(0xb9)]),this[_0xc81ddc(0xb9)]=null);}['handlePongTimeout'](){const _0x221c71=a0_0xc40102;this['emit']('heartbeat_timeout'),this['disconnect'](),this['shouldReconnect']&&this[_0x221c71(0xcc)]();}['joinSession'](_0x3fa676){const _0x432f3d=a0_0xc40102;this['sessionId']=_0x3fa676,this[_0x432f3d(0x93)]({'type':WS_MESSAGE_TYPE['JOIN_SESSION'],'sessionId':_0x3fa676});}['sendOrchestratorRequest'](_0x1f0b87,_0x58a665,_0x1d011d){const _0x1b6ae3=a0_0xc40102,_0x1f0523=this[_0x1b6ae3(0x8b)](),_0x46ce1e={'type':WS_MESSAGE_TYPE['ORCHESTRATOR_REQUEST'],'requestId':_0x1f0523,'action':_0x1f0b87,'payload':_0x58a665,'projectDir':_0x1d011d};return new Promise((_0x118b8c,_0x331ea8)=>{const _0x40f4e5=_0x1b6ae3;this[_0x40f4e5(0xa6)][_0x40f4e5(0x9e)](_0x1f0523,{'resolve':_0x118b8c,'reject':_0x331ea8,'timestamp':Date['now']()});try{this['send'](_0x46ce1e);}catch(_0x9ea60b){this[_0x40f4e5(0xa6)]['delete'](_0x1f0523),_0x331ea8(_0x9ea60b);}setTimeout(()=>{const _0x1c6eb2=_0x40f4e5;this[_0x1c6eb2(0xa6)]['has'](_0x1f0523)&&(this['pendingRequests']['delete'](_0x1f0523),_0x331ea8(new Error(_0x1c6eb2(0xae))));},TIMING[_0x40f4e5(0x90)]);});}[a0_0xc40102(0x9a)](_0x22d91e){const _0x59fd6f=a0_0xc40102,{requestId:_0x4613cf,response:_0x1f00c6,error:_0x9c7c57}=_0x22d91e;if(this['pendingRequests']['has'](_0x4613cf)){const {resolve:_0x1e0378,reject:_0x35f1a0}=this[_0x59fd6f(0xa6)][_0x59fd6f(0xd2)](_0x4613cf);this['pendingRequests'][_0x59fd6f(0xa1)](_0x4613cf),_0x9c7c57?_0x35f1a0(new Error(_0x9c7c57)):_0x1e0378(_0x1f00c6);}}[a0_0xc40102(0x93)](_0x9f7a8e){const _0x2dac7f=a0_0xc40102;if(this[_0x2dac7f(0xcf)]!==CONNECTION_STATE[_0x2dac7f(0xd3)]){this['messageQueue']['push'](_0x9f7a8e);return;}try{this['ws'][_0x2dac7f(0x93)](JSON['stringify'](_0x9f7a8e));}catch(_0x26053b){this[_0x2dac7f(0xa7)]('send_error',_0x26053b);throw _0x26053b;}}['processMessageQueue'](){const _0x59c055=a0_0xc40102;while(this['messageQueue']['length']>0x0&&this['state']===CONNECTION_STATE[_0x59c055(0xd3)]){const _0x57c580=this['messageQueue'][_0x59c055(0xaf)]();try{this['ws'][_0x59c055(0x93)](JSON[_0x59c055(0xa5)](_0x57c580));}catch(_0x225e53){this['emit']('queue_process_error',_0x225e53),this['messageQueue']['unshift'](_0x57c580);break;}}}[a0_0xc40102(0xa0)](){const _0x191ac2=a0_0xc40102;this['shouldReconnect']=![],this['cleanup']();if(this['ws']){try{this['ws'][_0x191ac2(0xad)](0x3e8,_0x191ac2(0x98));}catch(_0x38c1d5){}this['ws']=null;}this['setState'](CONNECTION_STATE[_0x191ac2(0x9f)]);}[a0_0xc40102(0xbd)](){const _0x834d7=a0_0xc40102;this['stopHeartbeat'](),this[_0x834d7(0x95)]&&(clearTimeout(this[_0x834d7(0x95)]),this['reconnectTimer']=null),this['ws']&&this['ws'][_0x834d7(0xb3)]();}[a0_0xc40102(0xc6)](_0xe8d4f8){const _0x3203e1=this['state'];this['state']=_0xe8d4f8,_0x3203e1!==_0xe8d4f8&&this['emit']('state_change',{'oldState':_0x3203e1,'newState':_0xe8d4f8});}['generateRequestId'](){const _0x2da8b7=a0_0xc40102;return this[_0x2da8b7(0x96)]++,'req-'+Date['now']()+'-'+this[_0x2da8b7(0x96)];}[a0_0xc40102(0xb7)](){const _0x1ab6a4=a0_0xc40102;return this[_0x1ab6a4(0xcf)];}[a0_0xc40102(0xac)](){const _0x581d4b=a0_0xc40102;return this[_0x581d4b(0xcf)]===CONNECTION_STATE[_0x581d4b(0xd3)];}[a0_0xc40102(0x99)](){return this['sessionId'];}['getStats'](){const _0x3aeb6b=a0_0xc40102;return{'state':this[_0x3aeb6b(0xcf)],'sessionId':this[_0x3aeb6b(0xce)],'reconnectAttempts':this[_0x3aeb6b(0xb0)],'queuedMessages':this['messageQueue'][_0x3aeb6b(0xba)],'pendingRequests':this[_0x3aeb6b(0xa6)][_0x3aeb6b(0xa9)],'lastPongReceived':this[_0x3aeb6b(0xc7)]};}}function a0_0x1989(){const _0x10c5f6=['C2v0DxbfDMvUDeHHBMrSzxjZ','C2v0u3rHDgu','BgfZDfbVBMDszwnLAxzLza','C3rHCNrizwfYDgjLyxq','u0vtu0LptL9kt0Loruq','Ag9ZDa','zgLZy29UBMvJDgvK','C2nOzwr1BgvszwnVBM5Ly3q','C2vUzfbPBMC','C2vZC2LVBKLK','C3rHDgu','C3rVCeHLyxj0yMvHDa','BwvZC2fNzvf1zxvL','z2v0','q09otKvdveve','B25Jzq','ndHnEKDmDuK','CgLUz0LUDgvYDMfS','yMfZzvjLy29UBMvJDerLBgf5','ndu2oty4neTTDKX3Aa','z2vUzxjHDgvszxf1zxn0swq','AgvHCNrIzwf0sw50zxj2ywW','Dg9tDhjPBMC','nZGYv0zRywzc','q09otKvdveLorW','sfruuf9usu1ft1vu','AgfUzgXLq29UBMvJDgLVBKvYCM9Y','CMvJB25Uzwn0rgvSyxK','C2vUza','otm4ndK5CMDbtw55','CMvJB25Uzwn0vgLTzxi','CMvXDwvZDeLKq291BNrLCG','DxjS','q2XPzw50igrPC2nVBM5Ly3q','z2v0u2vZC2LVBKLK','AgfUzgXLt3jJAgvZDhjHDg9YuMvZCg9UC2u','CgLUz19LCNjVCG','nJm2mZqWmMHKEKP2vq','AgfUzgXLt3bLBG','C2v0','reLtq09otKvdveve','zgLZy29UBMvJDa','zgvSzxrL','DhLWzq','v0vcu09ds0vux1jfq09otKvdvf9nqvHFrevmqvK','q29UBMvJDgLVBIb0Aw1LB3v0','C3rYAw5NAwz5','CgvUzgLUz1jLCxvLC3rZ','zw1PDa','y29UBMvJDgvK','C2L6zq','mtCYndi1nMLSz1PfuW','nte5ntGYnxj6ufbqvq','AxndB25Uzwn0zwq','y2XVC2u','uMvXDwvZDcb0Aw1LB3v0','C2HPzNq','CMvJB25Uzwn0qxr0zw1WDhm','AgfUzgXLtwvZC2fNzq','nJi2zhzgsvbx','CMvTB3zLqwXStgLZDgvUzxjZ','v0vcu09ds0vux1bjtKDFsu5urvjwquW','zxjYB3i','AgfUzgXLug9Uz1rPBwvVDxq','z2v0u3rHDgu','D2vSy29Tzq','Cg9Uz1rPBwvVDxq','BgvUz3rO','BM93','D2fPDezVCKnVBM5Ly3rPB24','y2XLyw51Ca','y29UBMvJDgLUzW','qwXYzwfKEsbJB25Uzwn0zwqGB3iGy29UBMvJDgLUzW','rvjst1i','CgfYC2vFzxjYB3i','revgqvvmvf9qt1ju','C2HVDwXKuMvJB25Uzwn0','ntC0mtKXmwzfwuDSDW'];a0_0x1989=function(){return _0x10c5f6;};return a0_0x1989();}export default WebSocketManager;