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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +2 -2
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/aiService.js +1 -1
  76. package/src/services/apiKeyManager.js +1 -1
  77. package/src/services/benchmarkService.js +1 -1
  78. package/src/services/budgetService.js +1 -1
  79. package/src/services/contextInjectionService.js +1 -1
  80. package/src/services/conversationCompactionService.js +1 -1
  81. package/src/services/errorHandler.js +1 -1
  82. package/src/services/fileAttachmentService.js +1 -1
  83. package/src/services/modelRouterService.js +1 -1
  84. package/src/services/modelsService.js +1 -1
  85. package/src/services/qualityInspector.js +1 -1
  86. package/src/services/tokenCountingService.js +1 -1
  87. package/src/tools/agentCommunicationTool.js +1 -1
  88. package/src/tools/agentDelayTool.js +1 -1
  89. package/src/tools/asyncToolManager.js +1 -1
  90. package/src/tools/baseTool.js +1 -1
  91. package/src/tools/browserTool.js +1 -1
  92. package/src/tools/cloneDetectionTool.js +1 -1
  93. package/src/tools/dependencyResolverTool.js +1 -1
  94. package/src/tools/fileContentReplaceTool.js +1 -1
  95. package/src/tools/fileSystemTool.js +1 -1
  96. package/src/tools/fileTreeTool.js +1 -1
  97. package/src/tools/imageTool.js +1 -1
  98. package/src/tools/importAnalyzerTool.js +1 -1
  99. package/src/tools/jobDoneTool.js +1 -1
  100. package/src/tools/seekTool.js +1 -1
  101. package/src/tools/staticAnalysisTool.js +1 -1
  102. package/src/tools/taskManagerTool.js +1 -1
  103. package/src/tools/terminalTool.js +1 -1
  104. package/src/tools/webTool.js +1 -1
  105. package/src/types/agent.js +1 -1
  106. package/src/types/contextReference.js +1 -1
  107. package/src/types/conversation.js +1 -1
  108. package/src/types/toolCommand.js +1 -1
  109. package/src/utilities/attachmentValidator.js +1 -1
  110. package/src/utilities/configManager.js +1 -1
  111. package/src/utilities/constants.js +1 -1
  112. package/src/utilities/directoryAccessManager.js +1 -1
  113. package/src/utilities/fileProcessor.js +1 -1
  114. package/src/utilities/logger.js +1 -1
  115. package/src/utilities/tagParser.js +1 -1
  116. package/src/utilities/toolConstants.js +1 -1
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/{index-CoRE46V-.js → index-C5X7qBNF.js} +63 -63
  119. package/web-ui/build/static/index-g2UFuTwG.css +1 -0
  120. package/web-ui/build/static/index-P281Rusr.css +0 -1
@@ -1 +1 @@
1
- const a0_0x28eed9=a0_0x4e1d;(function(_0x14b10f,_0x2209fa){const _0x3b4364=a0_0x4e1d,_0x403a70=_0x14b10f();while(!![]){try{const _0x47bde1=-parseInt(_0x3b4364(0x190))/0x1*(-parseInt(_0x3b4364(0x1a4))/0x2)+-parseInt(_0x3b4364(0x18a))/0x3+-parseInt(_0x3b4364(0x1aa))/0x4+-parseInt(_0x3b4364(0x185))/0x5+parseInt(_0x3b4364(0x1d6))/0x6*(parseInt(_0x3b4364(0x1c5))/0x7)+-parseInt(_0x3b4364(0x1bf))/0x8*(-parseInt(_0x3b4364(0x1c2))/0x9)+-parseInt(_0x3b4364(0x1a3))/0xa;if(_0x47bde1===_0x2209fa)break;else _0x403a70['push'](_0x403a70['shift']());}catch(_0x5708b7){_0x403a70['push'](_0x403a70['shift']());}}}(a0_0x43f6,0x901d4));import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';function a0_0x4e1d(_0x34344d,_0x1fb55f){_0x34344d=_0x34344d-0x182;const _0x43f63a=a0_0x43f6();let _0x4e1ddd=_0x43f63a[_0x34344d];if(a0_0x4e1d['GRmfOO']===undefined){var _0x14e202=function(_0x5ae6d5){const _0x3d1463='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x225d80='',_0x52e25b='';for(let _0x26987c=0x0,_0x4cd211,_0x5d543c,_0x7a8a8=0x0;_0x5d543c=_0x5ae6d5['charAt'](_0x7a8a8++);~_0x5d543c&&(_0x4cd211=_0x26987c%0x4?_0x4cd211*0x40+_0x5d543c:_0x5d543c,_0x26987c++%0x4)?_0x225d80+=String['fromCharCode'](0xff&_0x4cd211>>(-0x2*_0x26987c&0x6)):0x0){_0x5d543c=_0x3d1463['indexOf'](_0x5d543c);}for(let _0x2f8302=0x0,_0x1c41d1=_0x225d80['length'];_0x2f8302<_0x1c41d1;_0x2f8302++){_0x52e25b+='%'+('00'+_0x225d80['charCodeAt'](_0x2f8302)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x52e25b);};a0_0x4e1d['rvZQst']=_0x14e202,a0_0x4e1d['neKmTO']={},a0_0x4e1d['GRmfOO']=!![];}const _0x1a7723=_0x43f63a[0x0],_0x2de1ec=_0x34344d+_0x1a7723,_0x119b32=a0_0x4e1d['neKmTO'][_0x2de1ec];return!_0x119b32?(_0x4e1ddd=a0_0x4e1d['rvZQst'](_0x4e1ddd),a0_0x4e1d['neKmTO'][_0x2de1ec]=_0x4e1ddd):_0x4e1ddd=_0x119b32,_0x4e1ddd;}import{dirname,join}from'path';function a0_0x43f6(){const _0x267d32=['twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLigHLBhbLCNmGy3jLyxrLihzHBgLKig1PzgrSzxDHCMu','q29UC3rHBNrZigHHDMuGBM8GBwfNAwmGBNvTyMvYCW','reLtq09otKvdveve','BM90lweTzNvUy3rPB24','tKvuv09ssW','AgfZsgfUzgXLCG','tuvtu0fhrv9dt05gsuC','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','Dg9iyxzLuhjVCgvYDhK','ChjVAMvJDerPCG','DgvZDc0XmJm','y29UBMvJDgvK','u0LerujbuL9xsurusa','DgvZDc1TzxnZywDL','CxvLDwvKtwvZC2fNzxm','DMvUzg9Ys2v5C0nVDw50','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','tuvtu0fhrv9msvnux0HfsuDiva','Dg9czurLzMLUzwq','ywXSB3DLzc10ExbL','mJi2odKXmNnfsLzHzW','BgvUz3rO','CgvUzgLUz1jLCxvLC3rZ','oxHwqLzOyW','Dw5YzwDPC3rLCKHHBMrSzxi','z2vUzxjHDgvszxf1zxn0swq','n1vJtuzbzq','vuLFreLnru5tsu9ouW','DgvZDc1RzxK','q09ntuforfm','DgvZDa','v1nFtuvtu0fhrv9uwvbf','C3rHDgu','Cg9YDa','Ahr0CdOVl2XVy2fSAg9ZDdO4mdGW','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLignHBIbIzsbHzgrLzcbHBMqGCMvTB3zLza','veLnsu5h','revgqvvmvf9qt1ju','Dg9fCxvHBa','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','BwLKzgXLD2fYzq','Dg9czvrYDxrOEq','mZm1odaZogzeD01Rsq','l3rLC3qVzgLY','q09nuefdveLptL9fvKvova','qvbjx0vorfbpsu5uuW','ntGYndC1EefNEvbO','uefhsu5bveLptG','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','BNvTyMvY','mtm5odiXm3DPu2Hvva','z2v0u3rHDgu','AxndB25Uzwn0zwq','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','lI4VlI4VyxbPl3nLC3nPB24UANm','C2vZC2LVBKLK','mNbRt1rXzW','Dg9czq','AxnwywXPza','CMvJB25Uzwn0qxr0zw1WDhm','zNvUy3rPB24','Bg9JywXOB3n0','rvHfq1vusu9ox1nut1bqruq','Dg9nyxrJAa','Bg94AwfbCgLlzxK','DMvUzg9Ys2v5CW','yMfZzvvYBa','v0vcu09ds0vux1bjtKDFsu5urvjwquW','DhLWzq','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbjBxbVCNrZ','zgLZy29UBMvJDgvK','sfruuf9usu1ft1vu','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','twvZC2fNzvjVDxrLCIbJyw4GCMvNAxn0zxiGyw5KihvUCMvNAxn0zxiGAgfUzgXLCNm','z2v0u2vZC2LVBKLUzM8','mZCWmJiYmfPQtuXkCa','mtaZnde4mNrqCKXdwa','CMvNAxn0zxjiyw5KBgvY','Dg9uAhjVDW','Dg9czuDYzwf0zxjuAgfU','CMvTB3zLtwLKzgXLD2fYzq','quDftLrFtu9erv9dsefor0ve','mtmZnZu1nKvuy0Lesa'];a0_0x43f6=function(){return _0x267d32;};return a0_0x43f6();}const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe(a0_0x28eed9(0x19d),()=>{test('constants module exports all required constants',async()=>{const _0x48e207=a0_0x4e1d,_0x225d80=await import('../../config/constants.js');expect(_0x225d80['UI_DIMENSIONS'])[_0x48e207(0x1bd)](),expect(_0x225d80[_0x48e207(0x1b1)])['toBeDefined'](),expect(_0x225d80[_0x48e207(0x186)])[_0x48e207(0x1bd)](),expect(_0x225d80[_0x48e207(0x1d0)])[_0x48e207(0x1bd)](),expect(_0x225d80['NETWORK'])['toBeDefined'](),expect(_0x225d80['CONNECTION_STATE'])[_0x48e207(0x1bd)](),expect(_0x225d80['AGENT_MODE'])['toBeDefined'](),expect(_0x225d80[_0x48e207(0x1ca)])['toBeDefined'](),expect(_0x225d80[_0x48e207(0x184)])['toBeDefined'](),expect(_0x225d80[_0x48e207(0x1c8)])[_0x48e207(0x1bd)](),expect(_0x225d80[_0x48e207(0x1af)]['DEFAULT_HOST'])['toBe']('localhost'),expect(_0x225d80['NETWORK'][_0x48e207(0x1d1)])[_0x48e207(0x191)](0x1f90),expect(_0x225d80['CONNECTION_STATE']['DISCONNECTED'])['toBe'](_0x48e207(0x19e)),expect(_0x225d80['CONNECTION_STATE']['CONNECTED'])[_0x48e207(0x191)](_0x48e207(0x1b6));}),test('WebSocketManager class can be imported',async()=>{const _0x550e06=a0_0x4e1d,{WebSocketManager:_0x52e25b}=await import('../../api/websocket.js');expect(_0x52e25b)['toBeDefined'](),expect(typeof _0x52e25b)[_0x550e06(0x191)]('function');const _0x26987c=new _0x52e25b('localhost',0x1f90);expect(_0x26987c)[_0x550e06(0x1bd)](),expect(_0x26987c['host'])['toBe']('localhost'),expect(_0x26987c[_0x550e06(0x1cc)])[_0x550e06(0x191)](0x1f90),expect(_0x26987c['url'])[_0x550e06(0x191)]('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0x5f424f=a0_0x4e1d,{SessionManager:_0x4cd211}=await import(_0x5f424f(0x18e));expect(_0x4cd211)[_0x5f424f(0x1bd)](),expect(typeof _0x4cd211)[_0x5f424f(0x191)]('function');const _0x5d543c=new _0x4cd211(_0x5f424f(0x195),0x1f90);expect(_0x5d543c)['toBeDefined'](),expect(_0x5d543c['host'])['toBe']('localhost'),expect(_0x5d543c[_0x5f424f(0x1cc)])[_0x5f424f(0x191)](0x1f90),expect(_0x5d543c[_0x5f424f(0x19a)])[_0x5f424f(0x191)](_0x5f424f(0x1cd));}),test('MessageRouter class can be imported',async()=>{const _0x1df6a8=a0_0x4e1d,{MessageRouter:_0x7a8a8}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x2f8302}=await import(_0x1df6a8(0x1b2));expect(_0x7a8a8)[_0x1df6a8(0x1bd)](),expect(typeof _0x7a8a8)[_0x1df6a8(0x191)]('function');const _0x1c41d1=new _0x2f8302('localhost',0x1f90),_0x4354e2=new _0x7a8a8(_0x1c41d1);expect(_0x4354e2)[_0x1df6a8(0x1bd)](),expect(_0x4354e2['ws'])['toBe'](_0x1c41d1);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x2512c7=a0_0x4e1d,{loggingMiddleware:_0x540bbe,filterMiddleware:_0x446405,transformMiddleware:_0x127bf3,timestampMiddleware:_0x296863,validationMiddleware:_0x347794}=await import('../../api/messageRouter.js');expect(typeof _0x540bbe)['toBe'](_0x2512c7(0x194)),expect(typeof _0x446405)['toBe'](_0x2512c7(0x194)),expect(typeof _0x127bf3)['toBe'](_0x2512c7(0x194)),expect(typeof _0x296863)[_0x2512c7(0x191)]('function'),expect(typeof _0x347794)[_0x2512c7(0x191)](_0x2512c7(0x194));}),test('useConnection hook can be imported',async()=>{const _0x5a6c50=a0_0x4e1d,{useConnection:_0x51a630,useConnectionStatus:_0x4b85bb}=await import('../../state/useConnection.js');expect(_0x51a630)[_0x5a6c50(0x1bd)](),expect(typeof _0x51a630)[_0x5a6c50(0x191)](_0x5a6c50(0x194)),expect(_0x4b85bb)[_0x5a6c50(0x1bd)](),expect(typeof _0x4b85bb)['toBe']('function');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x31319c=a0_0x28eed9;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x495c7d=a0_0x4e1d,{WebSocketManager:_0x4b7d9f}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x2c7253}=await import(_0x495c7d(0x1bb)),_0x5848b8=new _0x4b7d9f('test-host',0x2382);expect(_0x5848b8[_0x495c7d(0x1cb)])[_0x495c7d(0x191)](_0x2c7253['DISCONNECTED']),expect(_0x5848b8[_0x495c7d(0x18f)])[_0x495c7d(0x191)](null),expect(_0x5848b8['messageQueue'])['toEqual']([]),expect(_0x5848b8[_0x495c7d(0x193)])[_0x495c7d(0x191)](0x0),expect(_0x5848b8['shouldReconnect'])['toBe'](!![]);}),test(_0x31319c(0x1d3),async()=>{const _0x106145=_0x31319c,{SessionManager:_0x328194}=await import(_0x106145(0x18e)),_0x33fa5f=new _0x328194('test-host',0x2382);expect(_0x33fa5f['sessionId'])['toBe'](null),expect(_0x33fa5f[_0x106145(0x1b4)])['toBe'](null),expect(_0x33fa5f['loxiaApiKey'])[_0x106145(0x191)](null),expect(_0x33fa5f['vendorKeys'])[_0x106145(0x1d2)]({}),expect(_0x33fa5f['isValid']())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x17161a=_0x31319c,{MessageRouter:_0x36e19c}=await import(_0x17161a(0x188)),{WebSocketManager:_0x504756}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x5b30b2}=await import(_0x17161a(0x1bb)),_0x4f1077=new _0x504756('localhost',0x1f90),_0x2794a4=new _0x36e19c(_0x4f1077);expect(_0x2794a4[_0x17161a(0x1b0)](_0x5b30b2['MESSAGE_ADDED']))[_0x17161a(0x191)](!![]),expect(_0x2794a4['hasHandler'](_0x5b30b2[_0x17161a(0x1a9)]))['toBe'](!![]),expect(_0x2794a4[_0x17161a(0x1b0)](_0x5b30b2[_0x17161a(0x196)]))[_0x17161a(0x191)](!![]),expect(_0x2794a4['hasHandler'](_0x5b30b2[_0x17161a(0x183)]))[_0x17161a(0x191)](!![]),expect(_0x2794a4['hasHandler'](_0x5b30b2['IMAGE_RESULT']))['toBe'](!![]);}),test(_0x31319c(0x1cf),async()=>{const _0x5b7158=_0x31319c,{MessageRouter:_0x4fd8b4}=await import(_0x5b7158(0x188)),{WebSocketManager:_0x573f26}=await import('../../api/websocket.js'),_0x45ffeb=new _0x573f26(_0x5b7158(0x195),0x1f90),_0x452b3c=new _0x4fd8b4(_0x45ffeb),_0x2e3294=_0x3143d2=>_0x3143d2;expect(_0x452b3c['middleware'][_0x5b7158(0x1c0)])[_0x5b7158(0x1a0)](0x0),_0x452b3c['use'](_0x2e3294);const _0x3c4fb7=_0x452b3c[_0x5b7158(0x1d4)][_0x5b7158(0x1c0)];expect(_0x3c4fb7)[_0x5b7158(0x1a7)](0x0),_0x452b3c[_0x5b7158(0x1a8)](_0x2e3294),expect(_0x452b3c[_0x5b7158(0x1d4)]['length'])['toBe'](_0x3c4fb7-0x1);}),test('SessionManager\x20helper\x20methods\x20work',async()=>{const _0x3d2bd5=_0x31319c,{SessionManager:_0x2cba79}=await import(_0x3d2bd5(0x18e)),_0x3e87d4=new _0x2cba79('localhost',0x1f90);expect(_0x3e87d4['getSessionId']())[_0x3d2bd5(0x191)](null),expect(_0x3e87d4['getProjectDir']())['toBe'](null),expect(_0x3e87d4[_0x3d2bd5(0x192)]())[_0x3d2bd5(0x191)](![]);const _0x4139c9=_0x3e87d4[_0x3d2bd5(0x1a2)]();expect(_0x4139c9)[_0x3d2bd5(0x1b3)](_0x3d2bd5(0x18f)),expect(_0x4139c9)[_0x3d2bd5(0x1b3)](_0x3d2bd5(0x1b4)),expect(_0x4139c9)[_0x3d2bd5(0x1b3)]('hasLoxiaKey'),expect(_0x4139c9)[_0x3d2bd5(0x1b3)](_0x3d2bd5(0x1ba));}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x2713ba=_0x31319c,{WebSocketManager:_0x504bfd}=await import(_0x2713ba(0x1b2)),{CONNECTION_STATE:_0x16ae4d}=await import('../../config/constants.js'),_0x5230d2=new _0x504bfd('localhost',0x1f90);expect(_0x5230d2[_0x2713ba(0x18b)]())[_0x2713ba(0x191)](_0x16ae4d[_0x2713ba(0x1ad)]),expect(_0x5230d2[_0x2713ba(0x18c)]())['toBe'](![]),expect(_0x5230d2['getSessionId']())['toBe'](null);const _0x4b7157=_0x5230d2['getStats']();expect(_0x4b7157)['toHaveProperty'](_0x2713ba(0x1cb)),expect(_0x4b7157)['toHaveProperty'](_0x2713ba(0x18f)),expect(_0x4b7157)[_0x2713ba(0x1b3)](_0x2713ba(0x193)),expect(_0x4b7157)[_0x2713ba(0x1b3)](_0x2713ba(0x1b9)),expect(_0x4b7157)[_0x2713ba(0x1b3)](_0x2713ba(0x1c1));}),test(_0x31319c(0x1a1),async()=>{const _0x48c34a=_0x31319c,{MessageRouter:_0x530447}=await import(_0x48c34a(0x188)),{WebSocketManager:_0x199c00}=await import(_0x48c34a(0x1b2)),_0x6a6859=new _0x199c00('localhost',0x1f90),_0x367f53=new _0x530447(_0x6a6859),_0x24df93=()=>{};expect(_0x367f53[_0x48c34a(0x1b0)]('test-message'))[_0x48c34a(0x191)](![]),_0x367f53['registerHandler'](_0x48c34a(0x1b8),_0x24df93),expect(_0x367f53['hasHandler']('test-message'))['toBe'](!![]),_0x367f53[_0x48c34a(0x1c3)]('test-message'),expect(_0x367f53[_0x48c34a(0x1b0)]('test-message'))['toBe'](![]);}),test(_0x31319c(0x1ab),async()=>{const _0x2a79d4=_0x31319c,{loggingMiddleware:_0x46e8d0,timestampMiddleware:_0x2a0763,filterMiddleware:_0xed54af}=await import(_0x2a79d4(0x188)),_0x1eefe5=_0x46e8d0();expect(typeof _0x1eefe5)['toBe'](_0x2a79d4(0x194));const _0x1534db=_0x2a0763();expect(typeof _0x1534db)[_0x2a79d4(0x191)](_0x2a79d4(0x194));const _0xc5d08f={'type':'test'},_0x35b7a4=_0x1534db(_0xc5d08f);expect(_0x35b7a4)[_0x2a79d4(0x1b3)]('receivedAt'),expect(_0x35b7a4[_0x2a79d4(0x19c)])[_0x2a79d4(0x191)](_0x2a79d4(0x1c9));const _0x519463=_0xed54af(['allowed-type']);expect(typeof _0x519463)['toBe'](_0x2a79d4(0x194)),expect(_0x519463({'type':_0x2a79d4(0x1be)}))[_0x2a79d4(0x1d5)](),expect(_0x519463({'type':'blocked-type'}))[_0x2a79d4(0x191)](null);}),test(_0x31319c(0x1ac),async()=>{const _0x5c0e25=_0x31319c,_0x5024f9=await import('../../config/constants.js');expect(typeof _0x5024f9[_0x5c0e25(0x1d0)]['WEBSOCKET_RECONNECT_DELAY'])[_0x5c0e25(0x191)](_0x5c0e25(0x189)),expect(typeof _0x5024f9['TIMING'][_0x5c0e25(0x19b)])[_0x5c0e25(0x191)]('number'),expect(typeof _0x5024f9['NETWORK']['DEFAULT_PORT'])['toBe'](_0x5c0e25(0x189)),expect(typeof _0x5024f9['NETWORK']['MAX_RETRIES'])[_0x5c0e25(0x191)](_0x5c0e25(0x189)),expect(typeof _0x5024f9[_0x5c0e25(0x1af)][_0x5c0e25(0x19f)])['toBe']('number'),expect(typeof _0x5024f9[_0x5c0e25(0x1c6)][_0x5c0e25(0x1bc)])['toBe']('number'),expect(typeof _0x5024f9['UI_DIMENSIONS'][_0x5c0e25(0x1b7)])[_0x5c0e25(0x191)](_0x5c0e25(0x189));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x562536=a0_0x28eed9;test(_0x562536(0x1ce),async()=>{const _0xc8f5f4=_0x562536,{MessageRouter:_0x369ec3}=await import(_0xc8f5f4(0x188)),{WebSocketManager:_0x4ec41a}=await import(_0xc8f5f4(0x1b2)),_0x492d20=new _0x4ec41a(_0xc8f5f4(0x195),0x1f90),_0x433aa4=new _0x369ec3(_0x492d20);expect(()=>{const _0x5cf336=_0xc8f5f4;_0x433aa4[_0x5cf336(0x1a5)]('test',_0x5cf336(0x1ae));})[_0xc8f5f4(0x1a6)](_0xc8f5f4(0x18d));}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x43f741=_0x562536,{MessageRouter:_0x41ee2e}=await import(_0x43f741(0x188)),{WebSocketManager:_0x4e9b4d}=await import(_0x43f741(0x1b2)),_0x3e7d3a=new _0x4e9b4d(_0x43f741(0x195),0x1f90),_0x522b01=new _0x41ee2e(_0x3e7d3a);expect(()=>{const _0x5ed273=_0x43f741;_0x522b01['use'](_0x5ed273(0x1ae));})['toThrow']('Middleware\x20must\x20be\x20a\x20function');}),test(_0x562536(0x187),async()=>{const _0x56d96f=_0x562536,{SessionManager:_0x34c3d8}=await import('../../api/session.js'),_0x168bd7=new _0x34c3d8(_0x56d96f(0x195),0x1f90);_0x168bd7[_0x56d96f(0x18f)]=_0x56d96f(0x1b5),_0x168bd7[_0x56d96f(0x1b4)]=_0x56d96f(0x182),_0x168bd7[_0x56d96f(0x198)]=_0x56d96f(0x1c7),_0x168bd7['vendorKeys']={'openai':'key'},expect(_0x168bd7[_0x56d96f(0x192)]())['toBe'](!![]),_0x168bd7['clear'](),expect(_0x168bd7['sessionId'])['toBe'](null),expect(_0x168bd7[_0x56d96f(0x1b4)])['toBe'](null),expect(_0x168bd7['loxiaApiKey'])[_0x56d96f(0x191)](null),expect(_0x168bd7[_0x56d96f(0x199)])[_0x56d96f(0x1d2)]({}),expect(_0x168bd7[_0x56d96f(0x192)]())['toBe'](![]);}),test('WebSocketManager\x20generates\x20unique\x20request\x20IDs',async()=>{const _0x160e93=_0x562536,{WebSocketManager:_0x3596c7}=await import(_0x160e93(0x1b2)),_0xbcfea7=new _0x3596c7(_0x160e93(0x195),0x1f90),_0x28a5fe=_0xbcfea7['generateRequestId'](),_0x1c1d62=_0xbcfea7[_0x160e93(0x1c4)](),_0x3f84ca=_0xbcfea7['generateRequestId']();expect(_0x28a5fe)['not'][_0x160e93(0x191)](_0x1c1d62),expect(_0x1c1d62)['not']['toBe'](_0x3f84ca),expect(_0x28a5fe)['not']['toBe'](_0x3f84ca),expect(_0x28a5fe)['toMatch'](/^req-\d+-\d+$/),expect(_0x1c1d62)[_0x160e93(0x197)](/^req-\d+-\d+$/),expect(_0x3f84ca)['toMatch'](/^req-\d+-\d+$/);});});
1
+ const a0_0x5ec0a8=a0_0x2687;(function(_0x23165f,_0x1c9b52){const _0x40334a=a0_0x2687,_0x5c47a8=_0x23165f();while(!![]){try{const _0x2e9781=-parseInt(_0x40334a(0x103))/0x1*(parseInt(_0x40334a(0xe7))/0x2)+parseInt(_0x40334a(0xcd))/0x3*(-parseInt(_0x40334a(0xeb))/0x4)+-parseInt(_0x40334a(0xf1))/0x5*(parseInt(_0x40334a(0x106))/0x6)+-parseInt(_0x40334a(0xe2))/0x7*(parseInt(_0x40334a(0xea))/0x8)+parseInt(_0x40334a(0xd9))/0x9*(parseInt(_0x40334a(0xcb))/0xa)+parseInt(_0x40334a(0xf8))/0xb*(parseInt(_0x40334a(0x102))/0xc)+parseInt(_0x40334a(0xbd))/0xd;if(_0x2e9781===_0x1c9b52)break;else _0x5c47a8['push'](_0x5c47a8['shift']());}catch(_0x2dfa8a){_0x5c47a8['push'](_0x5c47a8['shift']());}}}(a0_0x1249,0x60755));function a0_0x2687(_0x1c1a3b,_0x2d6df5){_0x1c1a3b=_0x1c1a3b-0xbb;const _0x12492b=a0_0x1249();let _0x268703=_0x12492b[_0x1c1a3b];if(a0_0x2687['wJQJun']===undefined){var _0x5b05c5=function(_0x2f72d1){const _0x151fe3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x529120='',_0x59336d='';for(let _0x4951d4=0x0,_0x22e180,_0x169a48,_0x4a65b2=0x0;_0x169a48=_0x2f72d1['charAt'](_0x4a65b2++);~_0x169a48&&(_0x22e180=_0x4951d4%0x4?_0x22e180*0x40+_0x169a48:_0x169a48,_0x4951d4++%0x4)?_0x529120+=String['fromCharCode'](0xff&_0x22e180>>(-0x2*_0x4951d4&0x6)):0x0){_0x169a48=_0x151fe3['indexOf'](_0x169a48);}for(let _0x19d782=0x0,_0x2736dd=_0x529120['length'];_0x19d782<_0x2736dd;_0x19d782++){_0x59336d+='%'+('00'+_0x529120['charCodeAt'](_0x19d782)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x59336d);};a0_0x2687['VjvfaY']=_0x5b05c5,a0_0x2687['BDgzvb']={},a0_0x2687['wJQJun']=!![];}const _0x158c4f=_0x12492b[0x0],_0x1e7667=_0x1c1a3b+_0x158c4f,_0x272dd5=a0_0x2687['BDgzvb'][_0x1e7667];return!_0x272dd5?(_0x268703=a0_0x2687['VjvfaY'](_0x268703),a0_0x2687['BDgzvb'][_0x1e7667]=_0x268703):_0x268703=_0x272dd5,_0x268703;}import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';import{dirname,join}from'path';function a0_0x1249(){const _0x3e8ac6=['ndCZmZi2mu1VzKrUsW','C3rHDgu','DgvZDc1TzxnZywDL','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','AgfZsgfUzgXLCG','Dg9nyxrJAa','Dg9czq','CxvLDwvKtwvZC2fNzxm','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','D3m6lY9SB2nHBgHVC3q6oda4ma','C2vZC2LVBKLK','Ag9ZDa','tuvtu0fhrv9dt05gsuC','mta4odGZmhnHCurWwa','tKvuv09ssW','nZm1meTysfzYBq','zNvUy3rPB24','q09otKvdveve','sfruuf9usu1ft1vu','BM90lweTzNvUy3rPB24','lI4VlI4VyxbPl3nLC3nPB24UANm','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLignHBIbIzsbHzgrLzcbHBMqGCMvTB3zLza','CMvJB25Uzwn0qxr0zw1WDhm','Dg9iyxzLuhjVCgvYDhK','v2vIu29JA2v0twfUywDLCIbPBML0AwfSAxPLCYb3AxrOignVCNjLy3qGC3rHDgu','z2vUzxjHDgvszxf1zxn0swq','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbfCNjVCIbiyw5KBgLUzW','mtH3rfnusxK','zgLZy29UBMvJDgvK','DgvZDa','l3rLC3qVzgLY','DgvZDc1OB3n0','Dg9czurLzMLUzwq','BwvZC2fNzvf1zxvL','q09otKvdveLptL9tvefurq','BgvUz3rO','mZvNwMjlzuC','CMvNAxn0zxjiyw5KBgvY','y2XLyxi','Dg9fCxvHBa','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','mtq5mhfRDLPdra','DhLWzq','v2vIu29JA2v0twfUywDLCIbOzwXWzxiGBwv0Ag9KCYb3B3jR','mJC2odHNANnZs2C','mtuYzfvUAe1c','u0LerujbuL9xsurusa','C2HVDwXKuMvJB25Uzwn0','yMXVy2TLzc10ExbL','veLnsu5h','DxnL','oda1mZu1wuXvuhHm','quDftLrFtu9erq','tuvtu0fhrv9msvnux0HfsuDiva','reLtq09otKvdveve','rvHfq1vusu9ox1nut1bqruq','vuLFreLnru5tsu9ouW','ywXSB3DLzc10ExbL','mtfYr1rhsLu','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','tuvtu0fhrv9brerfra','Bg94AwfbCgLlzxK','BwLKzgXLD2fYzq','BNvTyMvY','Bg9JywXOB3n0','DMvUzg9Ys2v5C0nVDw50','AxnwywXPza','uefhsu5bveLptG','ntqYnZuXnM9HtwXIEa','nJfYzKzVuuS','z2v0u2vZC2LVBKLK','yMfZzvvYBa','mtHjBM1SCui','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','DMvUzg9Ys2v5CW','ChjVAMvJDerPCG','AgfZtg94AwflzxK','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbcyxnPyYbgDw5JDgLVBMfSAxr5'];a0_0x1249=function(){return _0x3e8ac6;};return a0_0x1249();}const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x158389=a0_0x2687,_0x529120=await import('../../config/constants.js');expect(_0x529120[_0x158389(0xf6)])[_0x158389(0xde)](),expect(_0x529120[_0x158389(0xca)])[_0x158389(0xde)](),expect(_0x529120[_0x158389(0x101)])['toBeDefined'](),expect(_0x529120[_0x158389(0xef)])['toBeDefined'](),expect(_0x529120['NETWORK'])[_0x158389(0xde)](),expect(_0x529120['CONNECTION_STATE'])['toBeDefined'](),expect(_0x529120[_0x158389(0xf2)])[_0x158389(0xde)](),expect(_0x529120['WS_MESSAGE_TYPE'])[_0x158389(0xde)](),expect(_0x529120['API_ENDPOINTS'])['toBeDefined'](),expect(_0x529120['COMMANDS'])['toBeDefined'](),expect(_0x529120['NETWORK']['DEFAULT_HOST'])['toBe'](_0x158389(0xfe)),expect(_0x529120['NETWORK']['DEFAULT_PORT'])['toBe'](0x1f90),expect(_0x529120['CONNECTION_STATE'][_0x158389(0xf4)])['toBe'](_0x158389(0xda)),expect(_0x529120[_0x158389(0xe0)][_0x158389(0xcf)])['toBe']('connected');}),test('WebSocketManager class can be imported',async()=>{const _0x2be7e8=a0_0x2687,{WebSocketManager:_0x59336d}=await import(_0x2be7e8(0xe6));expect(_0x59336d)['toBeDefined'](),expect(typeof _0x59336d)['toBe'](_0x2be7e8(0xce));const _0x4951d4=new _0x59336d('localhost',0x1f90);expect(_0x4951d4)['toBeDefined'](),expect(_0x4951d4[_0x2be7e8(0xc9)])['toBe']('localhost'),expect(_0x4951d4['port'])['toBe'](0x1f90),expect(_0x4951d4['url'])['toBe'](_0x2be7e8(0xc7));}),test('SessionManager class can be imported',async()=>{const _0x1b99d8=a0_0x2687,{SessionManager:_0x22e180}=await import('../../api/session.js');expect(_0x22e180)['toBeDefined'](),expect(typeof _0x22e180)[_0x1b99d8(0xc4)](_0x1b99d8(0xce));const _0x169a48=new _0x22e180(_0x1b99d8(0xfe),0x1f90);expect(_0x169a48)['toBeDefined'](),expect(_0x169a48['host'])[_0x1b99d8(0xc4)](_0x1b99d8(0xfe)),expect(_0x169a48['port'])[_0x1b99d8(0xc4)](0x1f90),expect(_0x169a48[_0x1b99d8(0x105)])[_0x1b99d8(0xc4)]('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x364f33=a0_0x2687,{MessageRouter:_0x4a65b2}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x19d782}=await import('../../api/websocket.js');expect(_0x4a65b2)[_0x364f33(0xde)](),expect(typeof _0x4a65b2)['toBe']('function');const _0x2736dd=new _0x19d782(_0x364f33(0xfe),0x1f90),_0x8fd7b9=new _0x4a65b2(_0x2736dd);expect(_0x8fd7b9)[_0x364f33(0xde)](),expect(_0x8fd7b9['ws'])[_0x364f33(0xc4)](_0x2736dd);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x2b32ef=a0_0x2687,{loggingMiddleware:_0x2ba8d1,filterMiddleware:_0x2f2f2e,transformMiddleware:_0x2181dd,timestampMiddleware:_0x2f32e3,validationMiddleware:_0x4404d6}=await import('../../api/messageRouter.js');expect(typeof _0x2ba8d1)[_0x2b32ef(0xc4)]('function'),expect(typeof _0x2f2f2e)['toBe'](_0x2b32ef(0xce)),expect(typeof _0x2181dd)['toBe'](_0x2b32ef(0xce)),expect(typeof _0x2f32e3)['toBe']('function'),expect(typeof _0x4404d6)['toBe']('function');}),test('useConnection hook can be imported',async()=>{const _0x57d623=a0_0x2687,{useConnection:_0x3d8cd1,useConnectionStatus:_0x2ceab8}=await import('../../state/useConnection.js');expect(_0x3d8cd1)['toBeDefined'](),expect(typeof _0x3d8cd1)[_0x57d623(0xc4)](_0x57d623(0xce)),expect(_0x2ceab8)['toBeDefined'](),expect(typeof _0x2ceab8)['toBe'](_0x57d623(0xce));});}),describe(a0_0x5ec0a8(0xbc),()=>{const _0x500519=a0_0x5ec0a8;test(_0x500519(0xd6),async()=>{const _0x65d4de=_0x500519,{WebSocketManager:_0x2e0b64}=await import(_0x65d4de(0xe6)),{CONNECTION_STATE:_0xdd35e8}=await import('../../config/constants.js'),_0x269eff=new _0x2e0b64(_0x65d4de(0xdd),0x2382);expect(_0x269eff['state'])[_0x65d4de(0xc4)](_0xdd35e8[_0x65d4de(0xf4)]),expect(_0x269eff[_0x65d4de(0xc8)])[_0x65d4de(0xc4)](null),expect(_0x269eff[_0x65d4de(0xdf)])['toEqual']([]),expect(_0x269eff['reconnectAttempts'])['toBe'](0x0),expect(_0x269eff[_0x65d4de(0xed)])['toBe'](!![]);}),test('SessionManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x11f807=_0x500519,{SessionManager:_0xfe331f}=await import(_0x11f807(0xd2)),_0x24473a=new _0xfe331f(_0x11f807(0xdd),0x2382);expect(_0x24473a[_0x11f807(0xc8)])[_0x11f807(0xc4)](null),expect(_0x24473a[_0x11f807(0x109)])[_0x11f807(0xc4)](null),expect(_0x24473a['loxiaApiKey'])['toBe'](null),expect(_0x24473a[_0x11f807(0x108)])[_0x11f807(0xe5)]({}),expect(_0x24473a[_0x11f807(0x100)]())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x9e1847=_0x500519,{MessageRouter:_0x272748}=await import(_0x9e1847(0xc0)),{WebSocketManager:_0x5226e9}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0xca9046}=await import('../../config/constants.js'),_0x379e5d=new _0x5226e9('localhost',0x1f90),_0x5c2739=new _0x272748(_0x379e5d);expect(_0x5c2739['hasHandler'](_0xca9046[_0x9e1847(0xfa)]))[_0x9e1847(0xc4)](!![]),expect(_0x5c2739['hasHandler'](_0xca9046['AGENT_MODE_CHANGED']))['toBe'](!![]),expect(_0x5c2739['hasHandler'](_0xca9046[_0x9e1847(0xf5)]))['toBe'](!![]),expect(_0x5c2739['hasHandler'](_0xca9046['COMPACTION_EVENT']))[_0x9e1847(0xc4)](!![]),expect(_0x5c2739['hasHandler'](_0xca9046['IMAGE_RESULT']))[_0x9e1847(0xc4)](!![]);}),test(_0x500519(0xd3),async()=>{const _0x286ac9=_0x500519,{MessageRouter:_0x466e5c}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x42ffd9}=await import(_0x286ac9(0xe6)),_0x53ac90=new _0x42ffd9(_0x286ac9(0xfe),0x1f90),_0x1c4621=new _0x466e5c(_0x53ac90),_0x44ccd7=_0x58720a=>_0x58720a;expect(_0x1c4621[_0x286ac9(0xfc)]['length'])['toBeGreaterThanOrEqual'](0x0),_0x1c4621[_0x286ac9(0xf0)](_0x44ccd7);const _0x5b3136=_0x1c4621['middleware'][_0x286ac9(0xe1)];expect(_0x5b3136)['toBeGreaterThan'](0x0),_0x1c4621['removeMiddleware'](_0x44ccd7),expect(_0x1c4621['middleware'][_0x286ac9(0xe1)])[_0x286ac9(0xc4)](_0x5b3136-0x1);}),test(_0x500519(0xc1),async()=>{const _0x3037b9=_0x500519,{SessionManager:_0x482180}=await import('../../api/session.js'),_0x3fd73c=new _0x482180('localhost',0x1f90);expect(_0x3fd73c[_0x3037b9(0x104)]())['toBe'](null),expect(_0x3fd73c['getProjectDir']())['toBe'](null),expect(_0x3fd73c[_0x3037b9(0x100)]())[_0x3037b9(0xc4)](![]);const _0x3788f6=_0x3fd73c['getSessionInfo']();expect(_0x3788f6)['toHaveProperty'](_0x3037b9(0xc8)),expect(_0x3788f6)[_0x3037b9(0xd5)]('projectDir'),expect(_0x3788f6)['toHaveProperty'](_0x3037b9(0xbb)),expect(_0x3788f6)[_0x3037b9(0xd5)](_0x3037b9(0xff));}),test(_0x500519(0xe9),async()=>{const _0x53ad88=_0x500519,{WebSocketManager:_0x417c38}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x1c91bf}=await import('../../config/constants.js'),_0x194ac9=new _0x417c38(_0x53ad88(0xfe),0x1f90);expect(_0x194ac9['getState']())['toBe'](_0x1c91bf[_0x53ad88(0xf4)]),expect(_0x194ac9['isConnected']())[_0x53ad88(0xc4)](![]),expect(_0x194ac9[_0x53ad88(0x104)]())['toBe'](null);const _0x1df248=_0x194ac9['getStats']();expect(_0x1df248)['toHaveProperty'](_0x53ad88(0xbe)),expect(_0x1df248)['toHaveProperty'](_0x53ad88(0xc8)),expect(_0x1df248)['toHaveProperty'](_0x53ad88(0xd4)),expect(_0x1df248)[_0x53ad88(0xd5)](_0x53ad88(0xc5)),expect(_0x1df248)[_0x53ad88(0xd5)]('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x8b5ee7=_0x500519,{MessageRouter:_0x548b20}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1fb075}=await import(_0x8b5ee7(0xe6)),_0x225ea0=new _0x1fb075('localhost',0x1f90),_0x35a78b=new _0x548b20(_0x225ea0),_0x4e4c1b=()=>{};expect(_0x35a78b[_0x8b5ee7(0xc2)]('test-message'))[_0x8b5ee7(0xc4)](![]),_0x35a78b[_0x8b5ee7(0xe3)]('test-message',_0x4e4c1b),expect(_0x35a78b[_0x8b5ee7(0xc2)]('test-message'))['toBe'](!![]),_0x35a78b['unregisterHandler']('test-message'),expect(_0x35a78b[_0x8b5ee7(0xc2)](_0x8b5ee7(0xbf)))[_0x8b5ee7(0xc4)](![]);}),test('MessageRouter\x20middleware\x20helpers\x20create\x20valid\x20middleware',async()=>{const _0x59764b=_0x500519,{loggingMiddleware:_0xbf1b46,timestampMiddleware:_0x14480b,filterMiddleware:_0x48620a}=await import(_0x59764b(0xc0)),_0x3e8955=_0xbf1b46();expect(typeof _0x3e8955)['toBe'](_0x59764b(0xce));const _0x24f9ba=_0x14480b();expect(typeof _0x24f9ba)[_0x59764b(0xc4)]('function');const _0x78378d={'type':_0x59764b(0xdb)},_0x1a42a4=_0x24f9ba(_0x78378d);expect(_0x1a42a4)[_0x59764b(0xd5)]('receivedAt'),expect(_0x1a42a4[_0x59764b(0xe8)])[_0x59764b(0xc4)]('test');const _0x210681=_0x48620a([_0x59764b(0xf7)]);expect(typeof _0x210681)[_0x59764b(0xc4)](_0x59764b(0xce)),expect(_0x210681({'type':'allowed-type'}))['toBeTruthy'](),expect(_0x210681({'type':_0x59764b(0xee)}))['toBe'](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x68081f=_0x500519,_0x25f0bc=await import('../../config/constants.js');expect(typeof _0x25f0bc[_0x68081f(0xef)][_0x68081f(0xc6)])['toBe']('number'),expect(typeof _0x25f0bc[_0x68081f(0xef)]['WEBSOCKET_PING_INTERVAL'])['toBe']('number'),expect(typeof _0x25f0bc[_0x68081f(0xcc)]['DEFAULT_PORT'])[_0x68081f(0xc4)](_0x68081f(0xfd)),expect(typeof _0x25f0bc[_0x68081f(0xcc)]['MAX_RETRIES'])['toBe'](_0x68081f(0xfd)),expect(typeof _0x25f0bc[_0x68081f(0xcc)][_0x68081f(0xd0)])['toBe'](_0x68081f(0xfd)),expect(typeof _0x25f0bc['UI_DIMENSIONS'][_0x68081f(0xf3)])['toBe']('number'),expect(typeof _0x25f0bc['UI_DIMENSIONS'][_0x68081f(0xec)])[_0x68081f(0xc4)](_0x68081f(0xfd));});}),describe(a0_0x5ec0a8(0xd8),()=>{const _0x4d9182=a0_0x5ec0a8;test(_0x4d9182(0x107),async()=>{const _0x1730cf=_0x4d9182,{MessageRouter:_0x5141b4}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x2c4739}=await import('../../api/websocket.js'),_0x2ffb48=new _0x2c4739(_0x1730cf(0xfe),0x1f90),_0x1bbbd8=new _0x5141b4(_0x2ffb48);expect(()=>{const _0x426c4a=_0x1730cf;_0x1bbbd8[_0x426c4a(0xe3)]('test',_0x426c4a(0xd1));})['toThrow']('Handler\x20must\x20be\x20a\x20function');}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x58f0b6=_0x4d9182,{MessageRouter:_0xaf36c2}=await import(_0x58f0b6(0xc0)),{WebSocketManager:_0x41ccfa}=await import(_0x58f0b6(0xe6)),_0x1971fa=new _0x41ccfa('localhost',0x1f90),_0x3c912c=new _0xaf36c2(_0x1971fa);expect(()=>{const _0x23f899=_0x58f0b6;_0x3c912c['use'](_0x23f899(0xd1));})['toThrow']('Middleware\x20must\x20be\x20a\x20function');}),test('SessionManager\x20clear()\x20resets\x20all\x20state',async()=>{const _0x9ba7ab=_0x4d9182,{SessionManager:_0x44d2ca}=await import('../../api/session.js'),_0x3ac14b=new _0x44d2ca('localhost',0x1f90);_0x3ac14b['sessionId']='test-123',_0x3ac14b[_0x9ba7ab(0x109)]=_0x9ba7ab(0xdc),_0x3ac14b[_0x9ba7ab(0xfb)]='test-key',_0x3ac14b[_0x9ba7ab(0x108)]={'openai':'key'},expect(_0x3ac14b['isValid']())['toBe'](!![]),_0x3ac14b[_0x9ba7ab(0xe4)](),expect(_0x3ac14b['sessionId'])['toBe'](null),expect(_0x3ac14b[_0x9ba7ab(0x109)])['toBe'](null),expect(_0x3ac14b['loxiaApiKey'])[_0x9ba7ab(0xc4)](null),expect(_0x3ac14b[_0x9ba7ab(0x108)])[_0x9ba7ab(0xe5)]({}),expect(_0x3ac14b['isValid']())['toBe'](![]);}),test(_0x4d9182(0xf9),async()=>{const _0x4475f2=_0x4d9182,{WebSocketManager:_0x4cd321}=await import('../../api/websocket.js'),_0x53419f=new _0x4cd321(_0x4475f2(0xfe),0x1f90),_0x16dad7=_0x53419f['generateRequestId'](),_0x1eb575=_0x53419f[_0x4475f2(0xd7)](),_0x2b7bbf=_0x53419f[_0x4475f2(0xd7)]();expect(_0x16dad7)['not']['toBe'](_0x1eb575),expect(_0x1eb575)['not'][_0x4475f2(0xc4)](_0x2b7bbf),expect(_0x16dad7)['not'][_0x4475f2(0xc4)](_0x2b7bbf),expect(_0x16dad7)['toMatch'](/^req-\d+-\d+$/),expect(_0x1eb575)[_0x4475f2(0xc3)](/^req-\d+-\d+$/),expect(_0x2b7bbf)[_0x4475f2(0xc3)](/^req-\d+-\d+$/);});});
@@ -1 +1 @@
1
- function a0_0x52d0(){const _0x25765d=['t1jdsevtvfjbve9s','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','rvHfq1vusu9ox1nut1bqruq','nJm4mtm2v0PdyNrc','t3jJAgvZDhjHDg9YigvUzhbVAw50ignHBIbIzsb1C2vKigzVCIbTzxnZywDLig9WzxjHDgLVBNm','DxnLCG','zNvUy3rPB24','tufyx1bbr0vFu0LArq','nZe4s2TPreDO','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','u1Ltvevn','tuvtu0fhrv9dt05gsuC','uefhsu5bveLptIbZDxbWB3j0CYbVzMzZzxqTyMfZzwqGCgfNAw5HDgLVBG','tufyx01fu1nbr0vFtevor1ri','Dg9czuDYzwf0zxjuAgfU','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','Dg9czurLzMLUzwq','Dg9czq','tufyx01fu1nbr0vtx0rju1bmqvK','DxnLtwvZC2fNzxm','DxnLCI1TzxnZywDL','lI4VlI4VyxbPl3nLC3nPB24UANm','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','C3LZDgvT','vvnfuG','mJGXoenqtLrtrW','BgvUz3rO','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','tuvtu0fhrv9brerfra','mJGWndqWBuP4DeXq','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','l2fWAs9VCMnOzxn0CMf0B3i','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','nJCZnte4Agf0B2fX','oeLAwNvhqq','mtr4yxHPq2y','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZifzHBgLKyxrPB24','otaZotmWu3P3Dwr5','Dg9mB3DLCKnHC2u','Dg9czuXLC3nuAgfUt3jfCxvHBa','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','mJyWnZaXnvreteXqAq','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','Dg9nyxrJAa','twvZC2fNzvjVDxrLCIbOyxmGBwvZC2fNzsbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','BNvTyMvY','mZaXoti1ndDkruXWyLG','DxnLtwvZC2fNzxmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','vvnfuL9nrvntquDf','uefhrv9tsvPf','twvZC2fNzvjVDxrLCG','mtq0AMjes3H4','Bg9JywXOB3n0','zxHLy3v0Aw9Ux3n0B3bWzwq','uefhsu5bveLptIbSAw1PDcbKB2vZig5VDcbLEgnLzwqGtufyx1bbr0vFu0LArq'];a0_0x52d0=function(){return _0x25765d;};return a0_0x52d0();}const a0_0xde4df3=a0_0x38a9;function a0_0x38a9(_0x16bccb,_0x379012){_0x16bccb=_0x16bccb-0x19e;const _0x52d03c=a0_0x52d0();let _0x38a945=_0x52d03c[_0x16bccb];if(a0_0x38a9['VYgYaa']===undefined){var _0x53e4ce=function(_0x451a9b){const _0x5203c0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1e6048='',_0x3d124b='';for(let _0x68e7bb=0x0,_0x513b9a,_0x3f91ba,_0x5daa81=0x0;_0x3f91ba=_0x451a9b['charAt'](_0x5daa81++);~_0x3f91ba&&(_0x513b9a=_0x68e7bb%0x4?_0x513b9a*0x40+_0x3f91ba:_0x3f91ba,_0x68e7bb++%0x4)?_0x1e6048+=String['fromCharCode'](0xff&_0x513b9a>>(-0x2*_0x68e7bb&0x6)):0x0){_0x3f91ba=_0x5203c0['indexOf'](_0x3f91ba);}for(let _0x400042=0x0,_0x300e12=_0x1e6048['length'];_0x400042<_0x300e12;_0x400042++){_0x3d124b+='%'+('00'+_0x1e6048['charCodeAt'](_0x400042)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3d124b);};a0_0x38a9['xcEDvn']=_0x53e4ce,a0_0x38a9['mesBNd']={},a0_0x38a9['VYgYaa']=!![];}const _0x58f994=_0x52d03c[0x0],_0x5d1fa6=_0x16bccb+_0x58f994,_0x81fe5a=a0_0x38a9['mesBNd'][_0x5d1fa6];return!_0x81fe5a?(_0x38a945=a0_0x38a9['xcEDvn'](_0x38a945),a0_0x38a9['mesBNd'][_0x5d1fa6]=_0x38a945):_0x38a945=_0x81fe5a,_0x38a945;}(function(_0x10c18d,_0x4633c6){const _0x1bcf54=a0_0x38a9,_0x26dd01=_0x10c18d();while(!![]){try{const _0x3bc104=parseInt(_0x1bcf54(0x1ae))/0x1*(-parseInt(_0x1bcf54(0x1bf))/0x2)+-parseInt(_0x1bcf54(0x1ca))/0x3*(parseInt(_0x1bcf54(0x1cb))/0x4)+-parseInt(_0x1bcf54(0x1d2))/0x5+parseInt(_0x1bcf54(0x1ce))/0x6+parseInt(_0x1bcf54(0x1cc))/0x7*(parseInt(_0x1bcf54(0x1a9))/0x8)+parseInt(_0x1bcf54(0x1a2))/0x9*(-parseInt(_0x1bcf54(0x1c4))/0xa)+parseInt(_0x1bcf54(0x1d7))/0xb;if(_0x3bc104===_0x4633c6)break;else _0x26dd01['push'](_0x26dd01['shift']());}catch(_0x50877e){_0x26dd01['push'](_0x26dd01['shift']());}}}(a0_0x52d0,0x98639));import{describe,test,expect}from'@jest/globals';describe(a0_0xde4df3(0x1c6),()=>{test('useMessages hook can be imported',async()=>{const _0x2a5bd4=a0_0x38a9,{useMessages:_0x1e6048}=await import(_0x2a5bd4(0x1b5));expect(_0x1e6048)['toBeDefined'](),expect(typeof _0x1e6048)['toBe'](_0x2a5bd4(0x1ac));}),test('useMessages is default export',async()=>{const _0x321339=a0_0x38a9,module=await import('../../state/useMessages.js');expect(module['default'])[_0x321339(0x1b6)](),expect(typeof module['default'])['toBe'](_0x321339(0x1ac)),expect(module['default'])['toBe'](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x47336d=a0_0x38a9,{useMessageCount:_0x3d124b}=await import(_0x47336d(0x1b5));expect(_0x3d124b)['toBeDefined'](),expect(typeof _0x3d124b)['toBe']('function');});}),describe(a0_0xde4df3(0x1c2),()=>{const _0x286532=a0_0xde4df3;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x3161b7=a0_0x38a9,{MESSAGE_ROLE:_0x68e7bb}=await import(_0x3161b7(0x1af));expect(_0x68e7bb)[_0x3161b7(0x1b6)](),expect(_0x68e7bb['USER'])[_0x3161b7(0x1b7)](_0x3161b7(0x1ab)),expect(_0x68e7bb['ASSISTANT'])['toBe']('assistant'),expect(_0x68e7bb[_0x3161b7(0x1b0)])['toBe'](_0x3161b7(0x1bd));}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x2c8222=a0_0x38a9,{MESSAGE_TYPE:_0x513b9a}=await import('../../config/constants.js');expect(_0x513b9a)[_0x2c8222(0x1b6)](),expect(_0x513b9a[_0x2c8222(0x19f)])['toBe'](_0x2c8222(0x1ba)),expect(_0x513b9a['AGENT_RESPONSE'])['toBe']('agent-response'),expect(_0x513b9a['SYSTEM_NOTIFICATION'])['toBe']('system-notification');}),test(_0x286532(0x1c5),async()=>{const _0x2f26ba=_0x286532,{MESSAGE_CONFIG:_0x3f91ba}=await import(_0x2f26ba(0x1af));expect(_0x3f91ba)[_0x2f26ba(0x1b6)](),expect(_0x3f91ba[_0x2f26ba(0x1b3)])[_0x2f26ba(0x1b6)](),expect(_0x3f91ba['MAX_MESSAGES_DISPLAY'])[_0x2f26ba(0x1b6)](),expect(typeof _0x3f91ba['MAX_MESSAGE_LENGTH'])[_0x2f26ba(0x1b7)](_0x2f26ba(0x1d6)),expect(typeof _0x3f91ba['MAX_MESSAGES_DISPLAY'])[_0x2f26ba(0x1b7)]('number');}),test(_0x286532(0x1bc),async()=>{const _0x1b0a30=_0x286532,{PAGINATION:_0x5daa81}=await import('../../config/constants.js');expect(_0x5daa81)[_0x1b0a30(0x1b6)](),expect(_0x5daa81[_0x1b0a30(0x1a0)])[_0x1b0a30(0x1b6)](),expect(_0x5daa81['MAX_PAGE_SIZE'])['toBeDefined'](),expect(typeof _0x5daa81['PAGE_SIZE'])['toBe'](_0x1b0a30(0x1d6)),expect(typeof _0x5daa81['MAX_PAGE_SIZE'])[_0x1b0a30(0x1b7)](_0x1b0a30(0x1d6));}),test('WS_MESSAGE_TYPE\x20includes\x20message\x20events',async()=>{const _0x398ea6=_0x286532,{WS_MESSAGE_TYPE:_0x400042}=await import(_0x398ea6(0x1af));expect(_0x400042)['toBeDefined'](),expect(_0x400042[_0x398ea6(0x1c3)])['toBe']('message_added'),expect(_0x400042['AGENT_MODE_CHANGED'])['toBe']('agent_mode_changed'),expect(_0x400042[_0x398ea6(0x1a8)])['toBe'](_0x398ea6(0x1a4));});}),describe(a0_0xde4df3(0x1c1),()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x33f312=a0_0x38a9,{useMessages:_0x300e12}=await import('../../state/useMessages.js'),{SessionManager:_0x52d03f}=await import('../../api/session.js'),{MessageRouter:_0x32f0c8}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x52a500}=await import('../../api/websocket.js'),_0xed65b2=new _0x52d03f('localhost',0x1f90),_0x422814=new _0x52a500(_0x33f312(0x1a3),0x1f90),_0x220d78=new _0x32f0c8(_0x422814);expect(_0xed65b2)[_0x33f312(0x1b6)](),expect(_0x220d78)['toBeDefined'](),expect(typeof _0x300e12)[_0x33f312(0x1b7)]('function');}),test('Full message management stack can be imported together',async()=>{const _0x5b4f61=a0_0x38a9,[_0x3a77ec,_0x243581,_0xab45ba,_0x37b110,_0x1c2504]=await Promise['all']([import(_0x5b4f61(0x1af)),import(_0x5b4f61(0x1bb)),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import('../../state/useMessages.js')]);expect(_0x3a77ec['MESSAGE_ROLE'])['toBeDefined'](),expect(_0x3a77ec['MESSAGE_TYPE'])[_0x5b4f61(0x1b6)](),expect(_0x3a77ec[_0x5b4f61(0x1b1)])['toBeDefined'](),expect(_0x243581['SessionManager'])['toBeDefined'](),expect(_0xab45ba['WebSocketManager'])['toBeDefined'](),expect(_0x37b110[_0x5b4f61(0x1a1)])[_0x5b4f61(0x1b6)](),expect(_0x1c2504[_0x5b4f61(0x1b9)])[_0x5b4f61(0x1b6)]();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x3f4a9f=a0_0xde4df3;test(_0x3f4a9f(0x1aa),async()=>{const _0x43e259=_0x3f4a9f,{API_ENDPOINTS:_0x51115e}=await import(_0x43e259(0x1af));expect(_0x51115e[_0x43e259(0x1a6)])[_0x43e259(0x1b6)](),expect(_0x51115e['ORCHESTRATOR'])[_0x43e259(0x1b7)](_0x43e259(0x1c7));}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x556299=_0x3f4a9f,{API_ENDPOINTS:_0x193370}=await import(_0x556299(0x1af));expect(_0x193370['ORCHESTRATOR'])[_0x556299(0x1d4)](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x57a9ea=a0_0xde4df3;test(_0x57a9ea(0x19e),async()=>{const _0x2f9568=_0x57a9ea,{useMessages:_0xd99186}=await import(_0x2f9568(0x1b5));expect(_0xd99186[_0x2f9568(0x1c0)])['toBe'](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x8ed4d6=_0x57a9ea,{useMessageCount:_0x17dfa5}=await import('../../state/useMessages.js');expect(_0x17dfa5['length'])[_0x8ed4d6(0x1b7)](0x1);});}),describe(a0_0xde4df3(0x1cd),()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x25a485=a0_0x38a9,{MESSAGE_CONFIG:_0x3c7d1a}=await import('../../config/constants.js');expect(_0x3c7d1a['MAX_MESSAGE_LENGTH'])['toBeGreaterThan'](0x0),expect(_0x3c7d1a['MAX_MESSAGE_LENGTH'])[_0x25a485(0x1d0)](0x186a0),expect(_0x3c7d1a[_0x25a485(0x1b8)])[_0x25a485(0x1b4)](0x0),expect(_0x3c7d1a[_0x25a485(0x1b8)])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x3cd5d4=a0_0x38a9,{PAGINATION:_0x122099}=await import('../../config/constants.js');expect(_0x122099[_0x3cd5d4(0x1a0)])['toBeGreaterThan'](0x0),expect(_0x122099['PAGE_SIZE'])['toBeLessThanOrEqual'](0x3e8),expect(_0x122099['MAX_PAGE_SIZE'])[_0x3cd5d4(0x1d1)](_0x122099[_0x3cd5d4(0x1a0)]);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x3ed275=a0_0x38a9,{MESSAGE_ROLE:_0x5b95b5}=await import('../../config/constants.js');expect(_0x5b95b5[_0x3ed275(0x1be)])[_0x3ed275(0x1b7)](_0x5b95b5[_0x3ed275(0x1be)]['toLowerCase']()),expect(_0x5b95b5['ASSISTANT'])['toBe'](_0x5b95b5['ASSISTANT'][_0x3ed275(0x1cf)]()),expect(_0x5b95b5['SYSTEM'])['toBe'](_0x5b95b5[_0x3ed275(0x1b0)]['toLowerCase']());});}),describe(a0_0xde4df3(0x1d3),()=>{const _0x33da45=a0_0xde4df3;test(_0x33da45(0x1d5),async()=>{const _0x18e654=_0x33da45,{MessageRouter:_0x2f095c}=await import(_0x18e654(0x1a7)),{WebSocketManager:_0x1dca1f}=await import(_0x18e654(0x1c8)),{WS_MESSAGE_TYPE:_0xb20252}=await import(_0x18e654(0x1af)),_0x869b74=new _0x1dca1f(_0x18e654(0x1a3),0x1f90),_0x3fd125=new _0x2f095c(_0x869b74);expect(_0x3fd125['hasHandler'](_0xb20252['MESSAGE_ADDED']))[_0x18e654(0x1b7)](!![]),expect(_0x3fd125['hasHandler'](_0xb20252['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe('Message\x20Management\x20-\x20Error\x20Handling',()=>{const _0x5f5ce0=a0_0xde4df3;test(_0x5f5ce0(0x1c9),async()=>{const _0x3db867=_0x5f5ce0,{MESSAGE_CONFIG:_0x5762b0}=await import(_0x3db867(0x1af));expect(_0x5762b0['MAX_MESSAGE_LENGTH'])[_0x3db867(0x1b6)](),expect(typeof _0x5762b0['MAX_MESSAGE_LENGTH'])['toBe'](_0x3db867(0x1d6));const _0x294186='a'['repeat'](_0x5762b0[_0x3db867(0x1b3)]+0x1);expect(_0x294186['length'])[_0x3db867(0x1b4)](_0x5762b0[_0x3db867(0x1b3)]);}),test('MESSAGE_CONFIG\x20enforces\x20maximum\x20display\x20messages',async()=>{const _0x3e386=_0x5f5ce0,{MESSAGE_CONFIG:_0x13aea4}=await import('../../config/constants.js');expect(_0x13aea4['MAX_MESSAGES_DISPLAY'])['toBeDefined'](),expect(typeof _0x13aea4[_0x3e386(0x1b8)])[_0x3e386(0x1b7)]('number'),expect(_0x13aea4[_0x3e386(0x1b8)])['toBeGreaterThan'](0x0);});}),describe('Message\x20Management\x20-\x20Pagination\x20Logic',()=>{const _0x40464a=a0_0xde4df3;test(_0x40464a(0x1b2),async()=>{const _0x4248a4=_0x40464a,{PAGINATION:_0x454780}=await import('../../config/constants.js'),_0x519476=0x0,_0x4d92b6=_0x519476*_0x454780['PAGE_SIZE'];expect(_0x4d92b6)[_0x4248a4(0x1b7)](0x0);const _0x54c95c=0x1,_0xd4fad2=_0x54c95c*_0x454780['PAGE_SIZE'];expect(_0xd4fad2)['toBe'](_0x454780[_0x4248a4(0x1a0)]);}),test(_0x40464a(0x1a5),async()=>{const _0x1b68a6=_0x40464a,{PAGINATION:_0x25a969}=await import(_0x1b68a6(0x1af)),_0x4991ef=0x3e8,_0x170e41=Math['min'](_0x4991ef,_0x25a969[_0x1b68a6(0x1ad)]);expect(_0x170e41)[_0x1b68a6(0x1d0)](_0x25a969[_0x1b68a6(0x1ad)]);});});
1
+ const a0_0x453c78=a0_0x5550;(function(_0x3f3bc0,_0x6533d9){const _0x2fe892=a0_0x5550,_0x56c9a7=_0x3f3bc0();while(!![]){try{const _0x592b00=parseInt(_0x2fe892(0x83))/0x1+-parseInt(_0x2fe892(0xa0))/0x2+-parseInt(_0x2fe892(0x7c))/0x3*(-parseInt(_0x2fe892(0x8b))/0x4)+parseInt(_0x2fe892(0x75))/0x5+-parseInt(_0x2fe892(0xa1))/0x6*(parseInt(_0x2fe892(0x92))/0x7)+parseInt(_0x2fe892(0x80))/0x8+-parseInt(_0x2fe892(0xa9))/0x9;if(_0x592b00===_0x6533d9)break;else _0x56c9a7['push'](_0x56c9a7['shift']());}catch(_0x90dc10){_0x56c9a7['push'](_0x56c9a7['shift']());}}}(a0_0x4efe,0x75191));function a0_0x4efe(){const _0x4ac633=['quDftLrFuKvtue9ou0u','Bg9JywXOB3n0','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','Dg9czuDYzwf0zxjuAgfU','tufyx01fu1nbr0vtx0rju1bmqvK','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','tuvtu0fhrv9st0Xf','quDftLrFtu9erv9dsefor0ve','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','CMvWzwf0','oti0nJm2C2fYCw9H','mtu3mdu2nLf0tNrwyG','zNvUy3rPB24','tuvtu0fhrv9st0XfihzHBhvLCYbHCMuGBg93zxjJyxnL','zgvMyxvSDa','BNvTyMvY','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','odi2odm5EfrmCKPc','v2vIu29JA2v0twfUywDLCG','tufyx01fu1nbr0vFtevor1ri','mtC5mZm1nvD4BxbcEa','lI4VlI4VyxbPl3nLC3nPB24UANm','uefhsu5bveLptIbSAw1PDcbKB2vZig5VDcbLEgnLzwqGtufyx1bbr0vFu0LArq','tufyx1bbr0vFu0LArq','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','BgvUz3rO','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','nZqWnZqYELDUrKPA','qvntsvnuqu5u','uefhrv9tsvPf','tuvtu0fhrv9uwvbf','mteZmdy2nfnbvM9zCG','u1Ltvevn','t1jdsevtvfjbve9s','ntyZnteYCePpAvri','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','Dg9mB3DLCKnHC2u','Dg9czq','Dg9czurLzMLUzwq','twvZC2fNzvjVDxrLCIbOyxmGBwvZC2fNzsbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','AgfZsgfUzgXLCG','og1iDujfBW','DxnLtwvZC2fNzxm','C3LZDgvTlw5VDgLMAwnHDgLVBG','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','Dg9czuXLC3nuAgfUt3jfCxvHBa','uefhsu5bveLptIbZDxbWB3j0CYbVzMzZzxqTyMfZzwqGCgfNAw5HDgLVBG','mtrPtwjQBvq','C3LZDgvT','vvnfuG','vvnfuL9nrvntquDf'];a0_0x4efe=function(){return _0x4ac633;};return a0_0x4efe();}import{describe,test,expect}from'@jest/globals';function a0_0x5550(_0x11ec20,_0x2278fa){_0x11ec20=_0x11ec20-0x75;const _0x4efed6=a0_0x4efe();let _0x555045=_0x4efed6[_0x11ec20];if(a0_0x5550['HBUSdY']===undefined){var _0x205be6=function(_0x48ac1b){const _0x38ae1f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x376ed4='',_0x1f42cb='';for(let _0x20a451=0x0,_0x2a92d1,_0x4ea32d,_0x5e1293=0x0;_0x4ea32d=_0x48ac1b['charAt'](_0x5e1293++);~_0x4ea32d&&(_0x2a92d1=_0x20a451%0x4?_0x2a92d1*0x40+_0x4ea32d:_0x4ea32d,_0x20a451++%0x4)?_0x376ed4+=String['fromCharCode'](0xff&_0x2a92d1>>(-0x2*_0x20a451&0x6)):0x0){_0x4ea32d=_0x38ae1f['indexOf'](_0x4ea32d);}for(let _0x6cc3bd=0x0,_0x4a34e0=_0x376ed4['length'];_0x6cc3bd<_0x4a34e0;_0x6cc3bd++){_0x1f42cb+='%'+('00'+_0x376ed4['charCodeAt'](_0x6cc3bd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1f42cb);};a0_0x5550['ZSbXwl']=_0x205be6,a0_0x5550['DCigsa']={},a0_0x5550['HBUSdY']=!![];}const _0x5b561a=_0x4efed6[0x0],_0x4d51fa=_0x11ec20+_0x5b561a,_0x4d8e73=a0_0x5550['DCigsa'][_0x4d51fa];return!_0x4d8e73?(_0x555045=a0_0x5550['ZSbXwl'](_0x555045),a0_0x5550['DCigsa'][_0x4d51fa]=_0x555045):_0x555045=_0x4d8e73,_0x555045;}describe('Message\x20Management\x20-\x20Imports',()=>{test('useMessages hook can be imported',async()=>{const {useMessages:_0x376ed4}=await import('../../state/useMessages.js');expect(_0x376ed4)['toBeDefined'](),expect(typeof _0x376ed4)['toBe']('function');}),test('useMessages is default export',async()=>{const _0x1b93ca=a0_0x5550,module=await import('../../state/useMessages.js');expect(module[_0x1b93ca(0xa4)])['toBeDefined'](),expect(typeof module['default'])['toBe'](_0x1b93ca(0xa2)),expect(module['default'])[_0x1b93ca(0x86)](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0xe9dd71=a0_0x5550,{useMessageCount:_0x1f42cb}=await import('../../state/useMessages.js');expect(_0x1f42cb)[_0xe9dd71(0x87)](),expect(typeof _0x1f42cb)[_0xe9dd71(0x86)]('function');});}),describe(a0_0x453c78(0x89),()=>{const _0x5245ec=a0_0x453c78;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x3058d0=a0_0x5550,{MESSAGE_ROLE:_0x20a451}=await import('../../config/constants.js');expect(_0x20a451)['toBeDefined'](),expect(_0x20a451[_0x3058d0(0x94)])['toBe']('user'),expect(_0x20a451[_0x3058d0(0x7d)])['toBe']('assistant'),expect(_0x20a451[_0x3058d0(0x81)])['toBe'](_0x3058d0(0x93));}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x245eeb=a0_0x5550,{MESSAGE_TYPE:_0x2a92d1}=await import(_0x245eeb(0x8e));expect(_0x2a92d1)[_0x245eeb(0x87)](),expect(_0x2a92d1[_0x245eeb(0x95)])[_0x245eeb(0x86)]('user-message'),expect(_0x2a92d1[_0x245eeb(0x96)])['toBe']('agent-response'),expect(_0x2a92d1['SYSTEM_NOTIFICATION'])['toBe'](_0x245eeb(0x8d));}),test('MESSAGE_CONFIG\x20constants\x20are\x20defined',async()=>{const _0x33d2d6=a0_0x5550,{MESSAGE_CONFIG:_0x4ea32d}=await import('../../config/constants.js');expect(_0x4ea32d)[_0x33d2d6(0x87)](),expect(_0x4ea32d['MAX_MESSAGE_LENGTH'])[_0x33d2d6(0x87)](),expect(_0x4ea32d['MAX_MESSAGES_DISPLAY'])[_0x33d2d6(0x87)](),expect(typeof _0x4ea32d['MAX_MESSAGE_LENGTH'])[_0x33d2d6(0x86)]('number'),expect(typeof _0x4ea32d[_0x33d2d6(0x9a)])['toBe']('number');}),test(_0x5245ec(0xa6),async()=>{const _0x4fd96d=_0x5245ec,{PAGINATION:_0x5e1293}=await import(_0x4fd96d(0x8e));expect(_0x5e1293)[_0x4fd96d(0x87)](),expect(_0x5e1293['PAGE_SIZE'])[_0x4fd96d(0x87)](),expect(_0x5e1293[_0x4fd96d(0x78)])['toBeDefined'](),expect(typeof _0x5e1293[_0x4fd96d(0x7e)])[_0x4fd96d(0x86)](_0x4fd96d(0xa5)),expect(typeof _0x5e1293['MAX_PAGE_SIZE'])[_0x4fd96d(0x86)](_0x4fd96d(0xa5));}),test(_0x5245ec(0x98),async()=>{const _0x161bf3=_0x5245ec,{WS_MESSAGE_TYPE:_0x6cc3bd}=await import(_0x161bf3(0x8e));expect(_0x6cc3bd)['toBeDefined'](),expect(_0x6cc3bd['MESSAGE_ADDED'])[_0x161bf3(0x86)]('message_added'),expect(_0x6cc3bd[_0x161bf3(0x9d)])[_0x161bf3(0x86)]('agent_mode_changed'),expect(_0x6cc3bd['EXECUTION_STOPPED'])['toBe']('execution_stopped');});}),describe('Message\x20Management\x20-\x20Integration',()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x201a87=a0_0x5550,{useMessages:_0x4a34e0}=await import('../../state/useMessages.js'),{SessionManager:_0x36fa07}=await import('../../api/session.js'),{MessageRouter:_0x39ded6}=await import(_0x201a87(0x7b)),{WebSocketManager:_0x38077e}=await import('../../api/websocket.js'),_0x53109d=new _0x36fa07(_0x201a87(0x97),0x1f90),_0x2ba859=new _0x38077e('localhost',0x1f90),_0x1c2448=new _0x39ded6(_0x2ba859);expect(_0x53109d)['toBeDefined'](),expect(_0x1c2448)['toBeDefined'](),expect(typeof _0x4a34e0)[_0x201a87(0x86)](_0x201a87(0xa2));}),test('Full message management stack can be imported together',async()=>{const _0x50175d=a0_0x5550,[_0x1d7f29,_0x171d4e,_0x108620,_0x35e9eb,_0x26fb12]=await Promise['all']([import(_0x50175d(0x8e)),import(_0x50175d(0x76)),import(_0x50175d(0xa8)),import('../../api/messageRouter.js'),import(_0x50175d(0x84))]);expect(_0x1d7f29[_0x50175d(0x9c)])['toBeDefined'](),expect(_0x1d7f29[_0x50175d(0x7f)])['toBeDefined'](),expect(_0x1d7f29['MESSAGE_CONFIG'])[_0x50175d(0x87)](),expect(_0x171d4e['SessionManager'])['toBeDefined'](),expect(_0x108620[_0x50175d(0xaa)])[_0x50175d(0x87)](),expect(_0x35e9eb['MessageRouter'])[_0x50175d(0x87)](),expect(_0x26fb12[_0x50175d(0x8c)])['toBeDefined']();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{test('Orchestrator\x20endpoint\x20can\x20be\x20used\x20for\x20message\x20operations',async()=>{const _0x25be99=a0_0x5550,{API_ENDPOINTS:_0x1fc3d8}=await import('../../config/constants.js');expect(_0x1fc3d8[_0x25be99(0x82)])['toBeDefined'](),expect(_0x1fc3d8[_0x25be99(0x82)])['toBe']('/api/orchestrator');}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x2d749d=a0_0x5550,{API_ENDPOINTS:_0x9ed451}=await import(_0x2d749d(0x8e));expect(_0x9ed451['ORCHESTRATOR'])['toMatch'](/^\/api\//);});}),describe(a0_0x453c78(0xa7),()=>{test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const {useMessages:_0x541897}=await import('../../state/useMessages.js');expect(_0x541897['length'])['toBe'](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const {useMessageCount:_0x1ee58d}=await import('../../state/useMessages.js');expect(_0x1ee58d['length'])['toBe'](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x3e6b57=a0_0x453c78;test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x4a333f=a0_0x5550,{MESSAGE_CONFIG:_0x5d603b}=await import(_0x4a333f(0x8e));expect(_0x5d603b['MAX_MESSAGE_LENGTH'])[_0x4a333f(0x99)](0x0),expect(_0x5d603b['MAX_MESSAGE_LENGTH'])[_0x4a333f(0x90)](0x186a0),expect(_0x5d603b[_0x4a333f(0x9a)])['toBeGreaterThan'](0x0),expect(_0x5d603b['MAX_MESSAGES_DISPLAY'])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x5a4d2b=a0_0x5550,{PAGINATION:_0x3663cb}=await import(_0x5a4d2b(0x8e));expect(_0x3663cb[_0x5a4d2b(0x7e)])['toBeGreaterThan'](0x0),expect(_0x3663cb[_0x5a4d2b(0x7e)])['toBeLessThanOrEqual'](0x3e8),expect(_0x3663cb[_0x5a4d2b(0x78)])[_0x5a4d2b(0x9b)](_0x3663cb[_0x5a4d2b(0x7e)]);}),test(_0x3e6b57(0xa3),async()=>{const _0x1d772d=_0x3e6b57,{MESSAGE_ROLE:_0x476ad6}=await import(_0x1d772d(0x8e));expect(_0x476ad6[_0x1d772d(0x94)])['toBe'](_0x476ad6[_0x1d772d(0x94)][_0x1d772d(0x85)]()),expect(_0x476ad6[_0x1d772d(0x7d)])['toBe'](_0x476ad6[_0x1d772d(0x7d)]['toLowerCase']()),expect(_0x476ad6['SYSTEM'])[_0x1d772d(0x86)](_0x476ad6[_0x1d772d(0x81)][_0x1d772d(0x85)]());});}),describe(a0_0x453c78(0x79),()=>{const _0x569ac7=a0_0x453c78;test(_0x569ac7(0x88),async()=>{const _0x513d01=_0x569ac7,{MessageRouter:_0xcbe0d4}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1db165}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x12f8a8}=await import('../../config/constants.js'),_0x3f1df7=new _0x1db165('localhost',0x1f90),_0x29eba7=new _0xcbe0d4(_0x3f1df7);expect(_0x29eba7[_0x513d01(0x8a)](_0x12f8a8['MESSAGE_ADDED']))[_0x513d01(0x86)](!![]),expect(_0x29eba7['hasHandler'](_0x12f8a8['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe('Message\x20Management\x20-\x20Error\x20Handling',()=>{const _0x1d5631=a0_0x453c78;test(_0x1d5631(0x8f),async()=>{const _0x229d44=_0x1d5631,{MESSAGE_CONFIG:_0x4cecf3}=await import('../../config/constants.js');expect(_0x4cecf3['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(typeof _0x4cecf3['MAX_MESSAGE_LENGTH'])[_0x229d44(0x86)](_0x229d44(0xa5));const _0x1b7f03='a'[_0x229d44(0x9f)](_0x4cecf3[_0x229d44(0xab)]+0x1);expect(_0x1b7f03[_0x229d44(0x7a)])['toBeGreaterThan'](_0x4cecf3['MAX_MESSAGE_LENGTH']);}),test('MESSAGE_CONFIG\x20enforces\x20maximum\x20display\x20messages',async()=>{const _0x42a79c=_0x1d5631,{MESSAGE_CONFIG:_0x2772be}=await import(_0x42a79c(0x8e));expect(_0x2772be['MAX_MESSAGES_DISPLAY'])['toBeDefined'](),expect(typeof _0x2772be['MAX_MESSAGES_DISPLAY'])['toBe']('number'),expect(_0x2772be[_0x42a79c(0x9a)])[_0x42a79c(0x99)](0x0);});}),describe(a0_0x453c78(0x9e),()=>{const _0x4eb3cb=a0_0x453c78;test(_0x4eb3cb(0x91),async()=>{const _0x27c543=_0x4eb3cb,{PAGINATION:_0x5059d1}=await import('../../config/constants.js'),_0x2d92ab=0x0,_0x274b47=_0x2d92ab*_0x5059d1['PAGE_SIZE'];expect(_0x274b47)['toBe'](0x0);const _0xc01aa6=0x1,_0x2397b6=_0xc01aa6*_0x5059d1['PAGE_SIZE'];expect(_0x2397b6)[_0x27c543(0x86)](_0x5059d1[_0x27c543(0x7e)]);}),test(_0x4eb3cb(0x77),async()=>{const _0x16ff45=_0x4eb3cb,{PAGINATION:_0x446ea2}=await import(_0x16ff45(0x8e)),_0xc60876=0x3e8,_0x14bc94=Math['min'](_0xc60876,_0x446ea2[_0x16ff45(0x78)]);expect(_0x14bc94)[_0x16ff45(0x90)](_0x446ea2['MAX_PAGE_SIZE']);});});
@@ -1 +1 @@
1
- function a0_0x369c(_0x101cc0,_0x17a455){_0x101cc0=_0x101cc0-0xdd;const _0x362b9a=a0_0x362b();let _0x369caa=_0x362b9a[_0x101cc0];if(a0_0x369c['RLFNTG']===undefined){var _0x1441c7=function(_0x22e82a){const _0x3cc00='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4927e7='',_0x40abd0='';for(let _0x3c37a4=0x0,_0x15864e,_0xf0795c,_0x10ce97=0x0;_0xf0795c=_0x22e82a['charAt'](_0x10ce97++);~_0xf0795c&&(_0x15864e=_0x3c37a4%0x4?_0x15864e*0x40+_0xf0795c:_0xf0795c,_0x3c37a4++%0x4)?_0x4927e7+=String['fromCharCode'](0xff&_0x15864e>>(-0x2*_0x3c37a4&0x6)):0x0){_0xf0795c=_0x3cc00['indexOf'](_0xf0795c);}for(let _0x5e91b7=0x0,_0x9c5bfc=_0x4927e7['length'];_0x5e91b7<_0x9c5bfc;_0x5e91b7++){_0x40abd0+='%'+('00'+_0x4927e7['charCodeAt'](_0x5e91b7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x40abd0);};a0_0x369c['dnnuaS']=_0x1441c7,a0_0x369c['FOoKLx']={},a0_0x369c['RLFNTG']=!![];}const _0x7f6e5f=_0x362b9a[0x0],_0x2eb563=_0x101cc0+_0x7f6e5f,_0x4006ae=a0_0x369c['FOoKLx'][_0x2eb563];return!_0x4006ae?(_0x369caa=a0_0x369c['dnnuaS'](_0x369caa),a0_0x369c['FOoKLx'][_0x2eb563]=_0x369caa):_0x369caa=_0x4006ae,_0x369caa;}const a0_0xf768f4=a0_0x369c;function a0_0x362b(){const _0xe701c4=['t3jJAgvZDhjHDg9YigvUzhbVAw50igLZihvZzwqGzM9YihrVB2WGB3bLCMf0Aw9UCW','vg9VBhmGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','zMLSzsbJB250zw50CW','zxHLyY0Y','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGrMLSDgvYAw5N','t1jdsevtvfjbve9s','BwfW','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','D3jPDgvFzMLSzq','vg9VBhmGzw5KCg9PBNqGzM9SBg93CYbsrvnuzNvSihbHDhrLCM4','BMfTzq','mJK4mta0yNnmCenw','vg9VBcbVCgvYyxrPB25ZihvZzsbVCMnOzxn0CMf0B3iGzw5KCg9PBNq','CMvHzf9MAwXL','ywLFyxnZAxn0yw50','z2v0','u2vZC2LVBK1HBMfNzxi','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','BgvUz3rO','AgfZsgfUzgXLCG','mtrruxfPBu4','u1Ltvevn','y2f0zwDVCNK','l2fWAs90B29SCW','zgf0yq','mJe5nJmWDeTNCMfr','qvbjx0vorfbpsu5uuW','DMfSDwvZ','qvvut01bveLptG','Dg9czq','Dg9nyxrJAa','ve9ptfm','yw5HBhL6zv9JB2rL','qu5btfLtsvm','zgvSzxrL','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','ve9ptf9dqvrfr09swsb2ywX1zxmGBwf0y2GGzxHWzwn0zwqGzM9YBwf0','Dg9czurLzMLUzwq','AgfZ','Dg9mB3DLCKnHC2u','zxHLy3v0zv9JB21Tyw5K','C2L6zq','vvrjteLuwq','DgvYBwLUywW','vg9VBhmGtwfUywDLBwvUDcaTiev4zwn1DgLVBIbtDgf0zsbuCMfJA2LUzW','Dg9dB250ywLU','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CW','zw5HyMXLza','Aw5JBhvKzxm','zgvMyxvSDa','C2v0','zMLSDgvY','vg9VBhmGtwfUywDLBwvUDcaTienHDgvNB3j5ienVDw50CW','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','mtCXnZq3mMjkswLUza','vg9VBhmGy2fUigjLigzPBhrLCMvKigj5ig11BhrPCgXLignYAxrLCMLH','zNvUy3rPB24','zxHLyY0X','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','vg9VBcbYzxn1BhrZignHBIbIzsbZDg9YzwqGyNKGzxHLy3v0Aw9UieLe','ugvYzM9YBsbZDgf0AwmGy29KzsbHBMfSExnPCW','odG1ndqWsgryCKH2','nda3mdG5oxbxzgzuzG','Dg9fCxvHBa','ntK5nZaYng9prLr2wq','ntCYmti1tKHZz0X1'];a0_0x362b=function(){return _0xe701c4;};return a0_0x362b();}(function(_0x20e1cd,_0x56a701){const _0x333bff=a0_0x369c,_0x517cd5=_0x20e1cd();while(!![]){try{const _0x20d324=parseInt(_0x333bff(0x112))/0x1+parseInt(_0x333bff(0xe9))/0x2*(parseInt(_0x333bff(0xee))/0x3)+parseInt(_0x333bff(0x10b))/0x4+parseInt(_0x333bff(0x116))/0x5+parseInt(_0x333bff(0xe0))/0x6+-parseInt(_0x333bff(0x113))/0x7+-parseInt(_0x333bff(0x115))/0x8;if(_0x20d324===_0x56a701)break;else _0x517cd5['push'](_0x517cd5['shift']());}catch(_0x11eb0c){_0x517cd5['push'](_0x517cd5['shift']());}}}(a0_0x362b,0xa12ea));import{describe,test,expect}from'@jest/globals';describe('Tools\x20Management\x20-\x20Imports',()=>{test('useTools hook can be imported',async()=>{const _0x272d81=a0_0x369c,{useTools:_0x4927e7}=await import(_0x272d81(0xf8));expect(_0x4927e7)[_0x272d81(0xfa)](),expect(typeof _0x4927e7)[_0x272d81(0xf2)]('function');}),test('useTools is default export',async()=>{const _0x15cab4=a0_0x369c,module=await import('../../state/useTools.js');expect(module[_0x15cab4(0x106)])[_0x15cab4(0xfa)](),expect(typeof module['default'])['toBe']('function'),expect(module[_0x15cab4(0x106)])[_0x15cab4(0xf2)](module['useTools']);});}),describe(a0_0xf768f4(0x103),()=>{const _0x2748b6=a0_0xf768f4;test('TOOL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x2f439b=a0_0x369c,{TOOL_CATEGORY:_0x40abd0}=await import(_0x2f439b(0xe6));expect(_0x40abd0)[_0x2f439b(0xfa)](),expect(_0x40abd0['SYSTEM'])[_0x2f439b(0xfa)](),expect(_0x40abd0[_0x2f439b(0xf1)])[_0x2f439b(0xfa)](),expect(_0x40abd0[_0x2f439b(0xf6)])[_0x2f439b(0xfa)](),expect(_0x40abd0['UTILITY'])[_0x2f439b(0xfa)](),expect(_0x40abd0['COLLABORATION'])['toBeDefined'](),expect(_0x40abd0['AI'])['toBeDefined']();}),test('TOOL_CATEGORY\x20values\x20are\x20lowercase',async()=>{const _0x2ffa6d=a0_0x369c,{TOOL_CATEGORY:_0x3c37a4}=await import(_0x2ffa6d(0xe6));expect(_0x3c37a4[_0x2ffa6d(0xea)])[_0x2ffa6d(0xf2)](_0x3c37a4['SYSTEM'][_0x2ffa6d(0xfc)]()),expect(_0x3c37a4[_0x2ffa6d(0xf1)])[_0x2ffa6d(0xf2)](_0x3c37a4['AUTOMATION']['toLowerCase']()),expect(_0x3c37a4[_0x2ffa6d(0xf6)])[_0x2ffa6d(0xf2)](_0x3c37a4['ANALYSIS'][_0x2ffa6d(0xfc)]()),expect(_0x3c37a4[_0x2ffa6d(0xff)])['toBe'](_0x3c37a4['UTILITY'][_0x2ffa6d(0xfc)]());}),test('Tools\x20API\x20endpoint\x20is\x20defined',async()=>{const _0x5228f6=a0_0x369c,{API_ENDPOINTS:_0x15864e}=await import('../../config/constants.js');expect(_0x15864e[_0x5228f6(0xf4)])['toBeDefined'](),expect(_0x15864e[_0x5228f6(0xf4)])['toBe'](_0x5228f6(0xec));}),test(_0x2748b6(0x117),async()=>{const _0x4481f6=_0x2748b6,{API_ENDPOINTS:_0xf0795c}=await import('../../config/constants.js');expect(_0xf0795c[_0x4481f6(0x11c)])['toBeDefined'](),expect(_0xf0795c['ORCHESTRATOR'])[_0x4481f6(0xf2)]('/api/orchestrator');});}),describe(a0_0xf768f4(0x118),()=>{test('useTools\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x4815d2=a0_0x369c,{useTools:_0x10ce97}=await import(_0x4815d2(0xf8)),{SessionManager:_0x5e91b7}=await import('../../api/session.js'),{MessageRouter:_0x9c5bfc}=await import(_0x4815d2(0x10a)),{WebSocketManager:_0x2117b5}=await import(_0x4815d2(0x11e)),_0x2cee97=new _0x5e91b7('localhost',0x1f90),_0x115f26=new _0x2117b5('localhost',0x1f90),_0x5451b5=new _0x9c5bfc(_0x115f26);expect(_0x2cee97)[_0x4815d2(0xfa)](),expect(_0x5451b5)['toBeDefined'](),expect(typeof _0x10ce97)[_0x4815d2(0xf2)](_0x4815d2(0x10d));}),test('Full tools management stack can be imported together',async()=>{const _0x1e19d7=a0_0x369c,[_0x1cb4be,_0x54566b,_0x550653,_0x340c29,_0x914b81]=await Promise['all']([import(_0x1e19d7(0xe6)),import('../../api/session.js'),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import(_0x1e19d7(0xf8))]);expect(_0x1cb4be['TOOL_CATEGORY'])[_0x1e19d7(0xfa)](),expect(_0x1cb4be[_0x1e19d7(0xef)])[_0x1e19d7(0xfa)](),expect(_0x54566b[_0x1e19d7(0xe5)])['toBeDefined'](),expect(_0x550653['WebSocketManager'])['toBeDefined'](),expect(_0x340c29['MessageRouter'])[_0x1e19d7(0xfa)](),expect(_0x914b81['useTools'])[_0x1e19d7(0xfa)]();});}),describe('Tools\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x22284e=a0_0xf768f4;test(_0x22284e(0xde),async()=>{const _0x515bea=_0x22284e,{API_ENDPOINTS:_0x30ac4d}=await import(_0x515bea(0xe6));expect(_0x30ac4d['TOOLS'])[_0x515bea(0xf3)](/^\/api\//),expect(_0x30ac4d['TOOLS'])[_0x515bea(0xf2)]('/api/tools');}),test(_0x22284e(0xe1),async()=>{const _0x23d383=_0x22284e,{API_ENDPOINTS:_0x9dc8f7}=await import('../../config/constants.js');expect(_0x9dc8f7[_0x23d383(0x11c)])['toBeDefined'](),expect(_0x9dc8f7[_0x23d383(0x11c)])['toBe']('/api/orchestrator');});}),describe('Tools\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useTools\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x37b6f0=a0_0x369c,{useTools:_0x323ad2}=await import(_0x37b6f0(0xf8));expect(_0x323ad2['length'])[_0x37b6f0(0xf2)](0x3);});}),describe('Tools\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x101832=a0_0xf768f4;test('TOOL_CATEGORY\x20includes\x20all\x20major\x20categories',async()=>{const _0x5e61bf=a0_0x369c,{TOOL_CATEGORY:_0x23d0d7}=await import(_0x5e61bf(0xe6)),_0x445858=Object['keys'](_0x23d0d7);expect(_0x445858)[_0x5e61bf(0x102)](_0x5e61bf(0xea)),expect(_0x445858)[_0x5e61bf(0x102)]('AUTOMATION'),expect(_0x445858)['toContain'](_0x5e61bf(0xf6)),expect(_0x445858)[_0x5e61bf(0x102)](_0x5e61bf(0xff)),expect(_0x445858)['toContain']('COLLABORATION'),expect(_0x445858)[_0x5e61bf(0x102)]('AI');}),test(_0x101832(0xf9),async()=>{const _0x2c276f=_0x101832,{TOOL_CATEGORY:_0x1394aa}=await import('../../config/constants.js');expect(_0x1394aa[_0x2c276f(0xea)])['toMatch'](/^[a-z_]+$/),expect(_0x1394aa[_0x2c276f(0xf1)])[_0x2c276f(0xf3)](/^[a-z_]+$/),expect(_0x1394aa['ANALYSIS'])['toMatch'](/^[a-z_]+$/),expect(_0x1394aa[_0x2c276f(0xff)])['toMatch'](/^[a-z_]+$/);});}),describe('Tools\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{test('MessageRouter\x20has\x20tool\x20event\x20handlers\x20registered',async()=>{const _0x15a45b=a0_0x369c,{MessageRouter:_0x40da9f}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x3d0543}=await import('../../api/websocket.js'),_0x29460f=new _0x3d0543('localhost',0x1f90),_0x1b0916=new _0x40da9f(_0x29460f);expect(_0x1b0916[_0x15a45b(0xe8)])[_0x15a45b(0xfa)](),expect(typeof _0x1b0916['hasHandler'])['toBe']('function');});}),describe('Tools\x20Management\x20-\x20Tool\x20Categorization',()=>{test('TOOL_CATEGORY\x20can\x20be\x20used\x20to\x20filter\x20tools\x20by\x20category',async()=>{const _0x39605b=a0_0x369c,{TOOL_CATEGORY:_0x165e40}=await import('../../config/constants.js'),_0x22d7d9=[{'name':'execute_command','category':_0x165e40['SYSTEM']},{'name':'terminal','category':_0x165e40['SYSTEM']},{'name':'analyze_code','category':_0x165e40['ANALYSIS']},{'name':'web_search','category':_0x165e40['UTILITY']},{'name':_0x39605b(0xe3),'category':_0x165e40['AI']}],_0x5d8a95=_0x22d7d9['filter'](_0x2b55c0=>_0x2b55c0[_0x39605b(0xeb)]===_0x165e40[_0x39605b(0xea)]),_0xe54949=_0x22d7d9[_0x39605b(0x108)](_0x393cd9=>_0x393cd9[_0x39605b(0xeb)]===_0x165e40[_0x39605b(0xf6)]),_0x377a20=_0x22d7d9[_0x39605b(0x108)](_0xacd945=>_0xacd945[_0x39605b(0xeb)]===_0x165e40[_0x39605b(0xff)]),_0x357513=_0x22d7d9[_0x39605b(0x108)](_0x4393cb=>_0x4393cb[_0x39605b(0xeb)]===_0x165e40['AI']);expect(_0x5d8a95['length'])['toBe'](0x2),expect(_0xe54949['length'])['toBe'](0x1),expect(_0x377a20['length'])['toBe'](0x1),expect(_0x357513['length'])[_0x39605b(0xf2)](0x1),expect(_0x5d8a95[0x0][_0x39605b(0xdf)])[_0x39605b(0xf2)]('execute_command'),expect(_0xe54949[0x0]['name'])['toBe'](_0x39605b(0xf5));});}),describe('Tools\x20Management\x20-\x20Tool\x20Search',()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x49688f=a0_0x369c,_0x5ca2fc=[{'name':'read_file','description':'Read\x20contents\x20of\x20a\x20file'},{'name':_0x49688f(0xdd),'description':'Write\x20data\x20to\x20a\x20file'},{'name':'analyze_code','description':_0x49688f(0x111)}],_0x2c1424=_0x2a133f=>{const _0x2b594b=_0x49688f,_0x2a9b38=_0x2a133f['toLowerCase']();return _0x5ca2fc['filter'](_0x26a666=>_0x26a666['name']?.[_0x2b594b(0xfc)]()['includes'](_0x2a9b38)||_0x26a666['description']?.['toLowerCase']()[_0x2b594b(0x105)](_0x2a9b38));},_0x83e5a6=_0x2c1424('file');expect(_0x83e5a6[_0x49688f(0xe7)])[_0x49688f(0xf2)](0x2),expect(_0x83e5a6[_0x49688f(0x11d)](_0x372f0d=>_0x372f0d[_0x49688f(0xdf)]))[_0x49688f(0x102)]('read_file'),expect(_0x83e5a6['map'](_0x52fcd1=>_0x52fcd1[_0x49688f(0xdf)]))['toContain'](_0x49688f(0xdd));const _0x55f64f=_0x2c1424('analyze');expect(_0x55f64f[_0x49688f(0xe7)])['toBe'](0x1),expect(_0x55f64f[0x0]['name'])['toBe']('analyze_code');});}),describe(a0_0xf768f4(0x101),()=>{const _0x51133f=a0_0xf768f4;test('Execution\x20state\x20can\x20track\x20multiple\x20tools',async()=>{const _0x5a350a=a0_0x369c,_0x261737=new Set();_0x261737['add']('read_file'),_0x261737['add']('analyze_code'),expect(_0x261737['has'](_0x5a350a(0xe2)))['toBe'](!![]),expect(_0x261737['has']('analyze_code'))[_0x5a350a(0xf2)](!![]),expect(_0x261737[_0x5a350a(0xfe)])['toBe'](0x2),_0x261737[_0x5a350a(0xf7)](_0x5a350a(0xe2)),expect(_0x261737[_0x5a350a(0xfb)](_0x5a350a(0xe2)))[_0x5a350a(0xf2)](![]),expect(_0x261737['has'](_0x5a350a(0xf5)))['toBe'](!![]),expect(_0x261737[_0x5a350a(0xfe)])['toBe'](0x1);}),test(_0x51133f(0x110),async()=>{const _0x5c2070=_0x51133f,_0x2244f9=new Map();_0x2244f9[_0x5c2070(0x107)]('exec-1',{'success':!![],'data':_0x5c2070(0x119)}),_0x2244f9['set'](_0x5c2070(0x11a),{'success':!![],'data':{'issues':[]}}),expect(_0x2244f9[_0x5c2070(0xe4)]('exec-1'))['toBeDefined'](),expect(_0x2244f9[_0x5c2070(0xe4)](_0x5c2070(0x10e))['success'])[_0x5c2070(0xf2)](!![]),expect(_0x2244f9[_0x5c2070(0xe4)](_0x5c2070(0x10e))[_0x5c2070(0xed)])[_0x5c2070(0xf2)]('file\x20contents'),expect(_0x2244f9['get']('exec-2'))['toBeDefined'](),expect(_0x2244f9['get']('exec-2')[_0x5c2070(0xed)]['issues'])[_0x5c2070(0x114)]([]),expect(_0x2244f9['size'])[_0x5c2070(0xf2)](0x2);});}),describe(a0_0xf768f4(0x10f),()=>{test('Tool\x20cache\x20supports\x20TTL-based\x20caching',async()=>{const _0x12dbbf=a0_0x369c,_0x640f94=0x927c0;let _0x4f8699=null,_0xecd131=0x0;const _0x5c22bb=[{'name':_0x12dbbf(0xe2)}];_0x4f8699=_0x5c22bb,_0xecd131=Date['now']();const _0x503fbc=Date['now'](),_0x4d9d8d=_0x503fbc-_0xecd131<_0x640f94;expect(_0x4d9d8d)['toBe'](!![]),expect(_0x4f8699)[_0x12dbbf(0xf2)](_0x5c22bb);}),test('Tool\x20cache\x20expires\x20after\x20TTL',async()=>{const _0x42b8a5=a0_0x369c,_0x24dad4=0x64;let _0x5de5e9=null,_0x5c3cb5=0x0;const _0x4b8df4=[{'name':_0x42b8a5(0xe2)}];_0x5de5e9=_0x4b8df4,_0x5c3cb5=Date['now'](),await new Promise(_0x1589b1=>setTimeout(_0x1589b1,0x96));const _0x5af948=Date['now'](),_0x56b858=_0x5af948-_0x5c3cb5<_0x24dad4;expect(_0x56b858)['toBe'](![]);});}),describe(a0_0xf768f4(0x11b),()=>{const _0x38795e=a0_0xf768f4;test(_0x38795e(0x10c),async()=>{const _0xcf0a61=_0x38795e,{TOOL_CATEGORY:_0x3a6426}=await import(_0xcf0a61(0xe6)),_0x1c2d23=[{'name':_0xcf0a61(0xfd),'category':_0x3a6426[_0xcf0a61(0xea)],'enabled':!![]},{'name':'terminal','category':_0x3a6426['SYSTEM'],'enabled':![]},{'name':'analyze_code','category':_0x3a6426[_0xcf0a61(0xf6)],'enabled':!![]}],_0x5036e3=_0x10eec7=>{const _0x466583=_0xcf0a61;let _0x1b065c=[..._0x1c2d23];return _0x10eec7['category']&&(_0x1b065c=_0x1b065c[_0x466583(0x108)](_0x26f6d3=>_0x26f6d3['category']===_0x10eec7[_0x466583(0xeb)])),_0x10eec7[_0x466583(0x104)]!==undefined&&(_0x1b065c=_0x1b065c['filter'](_0x491c49=>_0x491c49[_0x466583(0x104)]===_0x10eec7['enabled'])),_0x1b065c;},_0x4d0028=_0x5036e3({'category':_0x3a6426['SYSTEM']});expect(_0x4d0028['length'])['toBe'](0x2);const _0x4caaae=_0x5036e3({'enabled':!![]});expect(_0x4caaae['length'])[_0xcf0a61(0xf2)](0x2);const _0x256b88=_0x5036e3({'category':_0x3a6426[_0xcf0a61(0xea)],'enabled':!![]});expect(_0x256b88['length'])[_0xcf0a61(0xf2)](0x1),expect(_0x256b88[0x0][_0xcf0a61(0xdf)])['toBe']('execute_command');});}),describe(a0_0xf768f4(0x109),()=>{test('Category\x20counts\x20can\x20be\x20calculated',async()=>{const _0x50aa33=a0_0x369c,{TOOL_CATEGORY:_0x201f26}=await import(_0x50aa33(0xe6)),_0x66ae59=[{'name':_0x50aa33(0xfd),'category':_0x201f26['SYSTEM']},{'name':_0x50aa33(0x100),'category':_0x201f26[_0x50aa33(0xea)]},{'name':_0x50aa33(0xf5),'category':_0x201f26[_0x50aa33(0xf6)]},{'name':'web_search','category':_0x201f26[_0x50aa33(0xff)]}],_0x4eff24=_0x3ef7c1=>{const _0x55cc90=_0x50aa33,_0x5f1eac={};for(const _0x19432d of Object[_0x55cc90(0xf0)](_0x201f26)){_0x5f1eac[_0x19432d]=_0x3ef7c1[_0x55cc90(0x108)](_0x5068ea=>_0x5068ea['category']===_0x19432d)['length'];}return _0x5f1eac;},_0x104c57=_0x4eff24(_0x66ae59);expect(_0x104c57[_0x201f26[_0x50aa33(0xea)]])['toBe'](0x2),expect(_0x104c57[_0x201f26['ANALYSIS']])[_0x50aa33(0xf2)](0x1),expect(_0x104c57[_0x201f26[_0x50aa33(0xff)]])['toBe'](0x1),expect(_0x104c57[_0x201f26['AUTOMATION']])[_0x50aa33(0xf2)](0x0);});});
1
+ const a0_0x3203ea=a0_0x30c0;(function(_0x40d6ee,_0x3320e0){const _0x4d1942=a0_0x30c0,_0x3e6acf=_0x40d6ee();while(!![]){try{const _0x513642=parseInt(_0x4d1942(0x92))/0x1*(parseInt(_0x4d1942(0x8a))/0x2)+parseInt(_0x4d1942(0xa6))/0x3+-parseInt(_0x4d1942(0x88))/0x4*(-parseInt(_0x4d1942(0x79))/0x5)+parseInt(_0x4d1942(0xbf))/0x6+parseInt(_0x4d1942(0x9e))/0x7+parseInt(_0x4d1942(0xb6))/0x8*(parseInt(_0x4d1942(0xad))/0x9)+-parseInt(_0x4d1942(0xac))/0xa;if(_0x513642===_0x3320e0)break;else _0x3e6acf['push'](_0x3e6acf['shift']());}catch(_0x12d74b){_0x3e6acf['push'](_0x3e6acf['shift']());}}}(a0_0x3ade,0x9c6a1));import{describe,test,expect}from'@jest/globals';function a0_0x30c0(_0x1b3de,_0x182470){_0x1b3de=_0x1b3de-0x76;const _0x3ade75=a0_0x3ade();let _0x30c0c4=_0x3ade75[_0x1b3de];if(a0_0x30c0['CkZVKq']===undefined){var _0x57ae2f=function(_0x15b726){const _0x472275='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2be362='',_0x522994='';for(let _0x1735e8=0x0,_0x403114,_0x19c79e,_0x2526b2=0x0;_0x19c79e=_0x15b726['charAt'](_0x2526b2++);~_0x19c79e&&(_0x403114=_0x1735e8%0x4?_0x403114*0x40+_0x19c79e:_0x19c79e,_0x1735e8++%0x4)?_0x2be362+=String['fromCharCode'](0xff&_0x403114>>(-0x2*_0x1735e8&0x6)):0x0){_0x19c79e=_0x472275['indexOf'](_0x19c79e);}for(let _0x17f8dc=0x0,_0x2a43b0=_0x2be362['length'];_0x17f8dc<_0x2a43b0;_0x17f8dc++){_0x522994+='%'+('00'+_0x2be362['charCodeAt'](_0x17f8dc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x522994);};a0_0x30c0['WNjrcY']=_0x57ae2f,a0_0x30c0['MLwXNr']={},a0_0x30c0['CkZVKq']=!![];}const _0x5197a7=_0x3ade75[0x0],_0x22387f=_0x1b3de+_0x5197a7,_0x3eb616=a0_0x30c0['MLwXNr'][_0x22387f];return!_0x3eb616?(_0x30c0c4=a0_0x30c0['WNjrcY'](_0x30c0c4),a0_0x30c0['MLwXNr'][_0x22387f]=_0x30c0c4):_0x30c0c4=_0x3eb616,_0x30c0c4;}function a0_0x3ade(){const _0xb2ce28=['qu5btfLtsvm','zxHLy3v0zv9JB21Tyw5K','C2L6zq','mtaWuuvwquPV','vg9VBcbVCgvYyxrPB25ZihvZzsbVCMnOzxn0CMf0B3iGzw5KCg9PBNq','vg9VBhmGtwfUywDLBwvUDcaTienHDgvNB3j5ienVDw50CW','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CW','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','Dg9czurLzMLUzwq','AgfZsgfUzgXLCG','vg9VBcbZzwfYy2GGC2HVDwXKihDVCMSGD2L0AcbUyw1LigfUzcbKzxnJCMLWDgLVBG','zNvUy3rPB24','ve9ptf9dqvrfr09swsbJyw4GyMuGDxnLzcb0BYbMAwX0zxiGDg9VBhmGyNKGy2f0zwDVCNK','zgvMyxvSDa','vg9VBhmGtwfUywDLBwvUDcaTieLTCg9YDhm','mJy3mJC4mNzAzKnMua','lI4VlI4VyxbPl3nLC3nPB24UANm','zMLSDgvY','CMvHzf9MAwXL','vg9VBhmGtwfUywDLBwvUDcaTiev4zwn1DgLVBIbtDgf0zsbuCMfJA2LUzW','Dg9mB3DLCKnHC2u','ywrK','AxnZDwvZ','mJGWmtiYnMD5wvLZyW','zgf0yq','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','ve9ptf9dqvrfr09swsb2ywX1zxmGyxjLigXVD2vYy2fZzq','vg9VBhmGtwfUywDLBwvUDcaTieHVB2SGsw50zxjMywnLifzLCMLMAwnHDgLVBG','qvbjx0vorfbpsu5uuW','mZG2ndi0mtbsBfzNAvy','oty1mduYDwjTwuTh','u1Ltvevn','DxnLvg9VBhmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','z2v0','ve9ptf9dqvrfr09swsbPBMnSDwrLCYbHBgWGBwfQB3iGy2f0zwDVCMLLCW','ugvYzM9YBsbZDgf0AwmGy29KzsbHBMfSExnPCW','v3jPDguGzgf0ysb0BYbHigzPBgu','l2fWAs9VCMnOzxn0CMf0B3i','zMLSzq','mZjNuML5ELK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','zxHLyY0Y','AgfZ','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','v2vIu29JA2v0twfUywDLCG','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CYbwywXPzgf0Aw9U','y2f0zwDVCNK','ywXS','nZeZmdGWmK5xCvD5uq','Dg9nyxrJAa','D2vIx3nLyxjJAa','DgvYBwLUywW','t1jdsevtvfjbve9s','BMfTzq','nxjgEwTIvG','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','BgvUz3rO','vvrjteLuwq','zxHLyY0X','qvvut01bveLptG','BM93','D3jPDgvFzMLSzq','zw5HyMXLza','vg9VBhmGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','vg9VBcbJywnOzsbLEhbPCMvZigfMDgvYifruta','t3jJAgvZDhjHDg9YigvUzhbVAw50igLZihvZzwqGzM9YihrVB2WGB3bLCMf0Aw9UCW','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGrMLSDgvYAw5N','vg9VBhmGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG','DxnLvg9VBhmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','mZeWotq2oezhtgnHsG','Dg9czq','mtu4otjMzw5Utwu','ywLFyxnZAxn0yw50','vg9VBcbJywnOzsbZDxbWB3j0CYbuveWTyMfZzwqGy2fJAgLUzW','Dg9dB250ywLU','yw5HBhL6zv9JB2rL'];a0_0x3ade=function(){return _0xb2ce28;};return a0_0x3ade();}describe(a0_0x3203ea(0x9d),()=>{test('useTools hook can be imported',async()=>{const _0x2d281f=a0_0x30c0,{useTools:_0x2be362}=await import('../../state/useTools.js');expect(_0x2be362)[_0x2d281f(0x97)](),expect(typeof _0x2be362)['toBe']('function');}),test('useTools is default export',async()=>{const _0x65c913=a0_0x30c0,module=await import(_0x65c913(0xba));expect(module[_0x65c913(0x9c)])['toBeDefined'](),expect(typeof module[_0x65c913(0x9c)])['toBe']('function'),expect(module[_0x65c913(0x9c)])['toBe'](module['useTools']);});}),describe(a0_0x3203ea(0x95),()=>{const _0x1f6ae5=a0_0x3203ea;test('TOOL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x417630=a0_0x30c0,{TOOL_CATEGORY:_0x522994}=await import('../../config/constants.js');expect(_0x522994)[_0x417630(0x97)](),expect(_0x522994['SYSTEM'])[_0x417630(0x97)](),expect(_0x522994[_0x417630(0x7e)])['toBeDefined'](),expect(_0x522994['ANALYSIS'])['toBeDefined'](),expect(_0x522994['UTILITY'])[_0x417630(0x97)](),expect(_0x522994['COLLABORATION'])[_0x417630(0x97)](),expect(_0x522994['AI'])['toBeDefined']();}),test(_0x1f6ae5(0xa9),async()=>{const _0x584e61=_0x1f6ae5,{TOOL_CATEGORY:_0x1735e8}=await import(_0x584e61(0x96));expect(_0x1735e8['SYSTEM'])[_0x584e61(0x89)](_0x1735e8[_0x584e61(0xae)][_0x584e61(0xa3)]()),expect(_0x1735e8['AUTOMATION'])[_0x584e61(0x89)](_0x1735e8[_0x584e61(0x7e)]['toLowerCase']()),expect(_0x1735e8[_0x584e61(0x8f)])['toBe'](_0x1735e8[_0x584e61(0x8f)]['toLowerCase']()),expect(_0x1735e8['UTILITY'])['toBe'](_0x1735e8['UTILITY']['toLowerCase']());}),test('Tools\x20API\x20endpoint\x20is\x20defined',async()=>{const _0x80d6cc=_0x1f6ae5,{API_ENDPOINTS:_0x403114}=await import(_0x80d6cc(0x96));expect(_0x403114['TOOLS'])[_0x80d6cc(0x97)](),expect(_0x403114['TOOLS'])[_0x80d6cc(0x89)]('/api/tools');}),test(_0x1f6ae5(0x84),async()=>{const _0x269dc5=_0x1f6ae5,{API_ENDPOINTS:_0x19c79e}=await import(_0x269dc5(0x96));expect(_0x19c79e[_0x269dc5(0x77)])[_0x269dc5(0x97)](),expect(_0x19c79e[_0x269dc5(0x77)])[_0x269dc5(0x89)]('/api/orchestrator');});}),describe(a0_0x3203ea(0x82),()=>{const _0x2903c8=a0_0x3203ea;test(_0x2903c8(0x87),async()=>{const _0x3a0a61=_0x2903c8,{useTools:_0x2526b2}=await import(_0x3a0a61(0xba)),{SessionManager:_0x17f8dc}=await import('../../api/session.js'),{MessageRouter:_0x2a43b0}=await import(_0x3a0a61(0xb7)),{WebSocketManager:_0x206470}=await import(_0x3a0a61(0x7a)),_0x5a1e8b=new _0x17f8dc('localhost',0x1f90),_0x7cbeab=new _0x206470('localhost',0x1f90),_0x270b3b=new _0x2a43b0(_0x7cbeab);expect(_0x5a1e8b)['toBeDefined'](),expect(_0x270b3b)['toBeDefined'](),expect(typeof _0x2526b2)['toBe']('function');}),test('Full tools management stack can be imported together',async()=>{const _0x5d81da=_0x2903c8,[_0x2f49c2,_0x2d52c0,_0x5ad407,_0x588713,_0x2e2fa0]=await Promise[_0x5d81da(0xbe)]([import('../../config/constants.js'),import(_0x5d81da(0x9f)),import('../../api/websocket.js'),import(_0x5d81da(0xb7)),import('../../state/useTools.js')]);expect(_0x2f49c2['TOOL_CATEGORY'])['toBeDefined'](),expect(_0x2f49c2[_0x5d81da(0xab)])['toBeDefined'](),expect(_0x2d52c0['SessionManager'])[_0x5d81da(0x97)](),expect(_0x5ad407[_0x5d81da(0xbb)])['toBeDefined'](),expect(_0x588713['MessageRouter'])[_0x5d81da(0x97)](),expect(_0x2e2fa0['useTools'])['toBeDefined']();});}),describe(a0_0x3203ea(0x86),()=>{const _0x1a7056=a0_0x3203ea;test('Tools\x20endpoint\x20follows\x20RESTful\x20pattern',async()=>{const _0x9827ad=a0_0x30c0,{API_ENDPOINTS:_0x22be17}=await import(_0x9827ad(0x96));expect(_0x22be17['TOOLS'])['toMatch'](/^\/api\//),expect(_0x22be17['TOOLS'])[_0x9827ad(0x89)]('/api/tools');}),test(_0x1a7056(0x93),async()=>{const _0x3e7c9a=_0x1a7056,{API_ENDPOINTS:_0x126764}=await import('../../config/constants.js');expect(_0x126764['ORCHESTRATOR'])['toBeDefined'](),expect(_0x126764[_0x3e7c9a(0x77)])['toBe'](_0x3e7c9a(0xb4));});}),describe(a0_0x3203ea(0xaa),()=>{const _0x3333a7=a0_0x3203ea;test(_0x3333a7(0xaf),async()=>{const _0x2cc9a5=_0x3333a7,{useTools:_0x2c0b6d}=await import('../../state/useTools.js');expect(_0x2c0b6d[_0x2cc9a5(0x7b)])[_0x2cc9a5(0x89)](0x3);});}),describe(a0_0x3203ea(0xbc),()=>{const _0x3334da=a0_0x3203ea;test(_0x3334da(0xb1),async()=>{const _0x5627a9=_0x3334da,{TOOL_CATEGORY:_0x58fc1b}=await import('../../config/constants.js'),_0x52fab5=Object['keys'](_0x58fc1b);expect(_0x52fab5)['toContain']('SYSTEM'),expect(_0x52fab5)[_0x5627a9(0x8d)]('AUTOMATION'),expect(_0x52fab5)[_0x5627a9(0x8d)]('ANALYSIS'),expect(_0x52fab5)['toContain']('UTILITY'),expect(_0x52fab5)[_0x5627a9(0x8d)]('COLLABORATION'),expect(_0x52fab5)[_0x5627a9(0x8d)]('AI');}),test('TOOL_CATEGORY\x20values\x20match\x20expected\x20format',async()=>{const _0x4c3a57=_0x3334da,{TOOL_CATEGORY:_0x1ee68e}=await import(_0x4c3a57(0x96));expect(_0x1ee68e[_0x4c3a57(0xae)])['toMatch'](/^[a-z_]+$/),expect(_0x1ee68e[_0x4c3a57(0x7e)])[_0x4c3a57(0xc0)](/^[a-z_]+$/),expect(_0x1ee68e[_0x4c3a57(0x8f)])['toMatch'](/^[a-z_]+$/),expect(_0x1ee68e[_0x4c3a57(0x7c)])[_0x4c3a57(0xc0)](/^[a-z_]+$/);});}),describe('Tools\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{test('MessageRouter\x20has\x20tool\x20event\x20handlers\x20registered',async()=>{const _0xce6f49=a0_0x30c0,{MessageRouter:_0x4ac657}=await import(_0xce6f49(0xb7)),{WebSocketManager:_0x3c30ae}=await import(_0xce6f49(0x7a)),_0x2848d0=new _0x3c30ae('localhost',0x1f90),_0x15c1a1=new _0x4ac657(_0x2848d0);expect(_0x15c1a1['hasHandler'])['toBeDefined'](),expect(typeof _0x15c1a1[_0xce6f49(0x98)])['toBe'](_0xce6f49(0x9a));});}),describe('Tools\x20Management\x20-\x20Tool\x20Categorization',()=>{const _0x40f07a=a0_0x3203ea;test(_0x40f07a(0x9b),async()=>{const _0x478d92=_0x40f07a,{TOOL_CATEGORY:_0x275607}=await import(_0x478d92(0x96)),_0x4fede3=[{'name':'execute_command','category':_0x275607[_0x478d92(0xae)]},{'name':'terminal','category':_0x275607['SYSTEM']},{'name':'analyze_code','category':_0x275607['ANALYSIS']},{'name':'web_search','category':_0x275607['UTILITY']},{'name':_0x478d92(0x8b),'category':_0x275607['AI']}],_0x5050cd=_0x4fede3['filter'](_0x3f70bf=>_0x3f70bf[_0x478d92(0xbd)]===_0x275607['SYSTEM']),_0x6675c1=_0x4fede3['filter'](_0x4d241e=>_0x4d241e['category']===_0x275607['ANALYSIS']),_0x366103=_0x4fede3[_0x478d92(0xa0)](_0x2132dd=>_0x2132dd['category']===_0x275607['UTILITY']),_0xf37abd=_0x4fede3[_0x478d92(0xa0)](_0x1dbebd=>_0x1dbebd[_0x478d92(0xbd)]===_0x275607['AI']);expect(_0x5050cd[_0x478d92(0x7b)])['toBe'](0x2),expect(_0x6675c1[_0x478d92(0x7b)])[_0x478d92(0x89)](0x1),expect(_0x366103[_0x478d92(0x7b)])[_0x478d92(0x89)](0x1),expect(_0xf37abd[_0x478d92(0x7b)])[_0x478d92(0x89)](0x1),expect(_0x5050cd[0x0]['name'])[_0x478d92(0x89)]('execute_command'),expect(_0x6675c1[0x0][_0x478d92(0x78)])[_0x478d92(0x89)]('analyze_code');});}),describe('Tools\x20Management\x20-\x20Tool\x20Search',()=>{const _0x13305f=a0_0x3203ea;test(_0x13305f(0x99),async()=>{const _0x2bc563=_0x13305f,_0x307d31=[{'name':'read_file','description':'Read\x20contents\x20of\x20a\x20file'},{'name':'write_file','description':_0x2bc563(0xb3)},{'name':'analyze_code','description':_0x2bc563(0xb2)}],_0x5da390=_0x3486de=>{const _0x3734a2=_0x2bc563,_0x3010d7=_0x3486de['toLowerCase']();return _0x307d31[_0x3734a2(0xa0)](_0x347c90=>_0x347c90[_0x3734a2(0x78)]?.['toLowerCase']()['includes'](_0x3010d7)||_0x347c90['description']?.[_0x3734a2(0xa3)]()['includes'](_0x3010d7));},_0xe36539=_0x5da390(_0x2bc563(0xb5));expect(_0xe36539['length'])[_0x2bc563(0x89)](0x2),expect(_0xe36539['map'](_0x7dd4d3=>_0x7dd4d3[_0x2bc563(0x78)]))[_0x2bc563(0x8d)](_0x2bc563(0xa1)),expect(_0xe36539['map'](_0xa1ca70=>_0xa1ca70[_0x2bc563(0x78)]))[_0x2bc563(0x8d)](_0x2bc563(0x80));const _0x553f13=_0x5da390('analyze');expect(_0x553f13['length'])[_0x2bc563(0x89)](0x1),expect(_0x553f13[0x0][_0x2bc563(0x78)])[_0x2bc563(0x89)]('analyze_code');});}),describe(a0_0x3203ea(0xa2),()=>{test('Execution\x20state\x20can\x20track\x20multiple\x20tools',async()=>{const _0x37e9d=a0_0x30c0,_0x2d93ce=new Set();_0x2d93ce[_0x37e9d(0xa4)](_0x37e9d(0xa1)),_0x2d93ce[_0x37e9d(0xa4)](_0x37e9d(0x8e)),expect(_0x2d93ce['has']('read_file'))[_0x37e9d(0x89)](!![]),expect(_0x2d93ce['has'](_0x37e9d(0x8e)))['toBe'](!![]),expect(_0x2d93ce[_0x37e9d(0x91)])[_0x37e9d(0x89)](0x2),_0x2d93ce['delete']('read_file'),expect(_0x2d93ce['has'](_0x37e9d(0xa1)))['toBe'](![]),expect(_0x2d93ce[_0x37e9d(0xb9)]('analyze_code'))[_0x37e9d(0x89)](!![]),expect(_0x2d93ce[_0x37e9d(0x91)])['toBe'](0x1);}),test('Tool\x20results\x20can\x20be\x20stored\x20by\x20execution\x20ID',async()=>{const _0x250623=a0_0x30c0,_0x2cb466=new Map();_0x2cb466['set'](_0x250623(0x7d),{'success':!![],'data':'file\x20contents'}),_0x2cb466['set'](_0x250623(0xb8),{'success':!![],'data':{'issues':[]}}),expect(_0x2cb466['get']('exec-1'))['toBeDefined'](),expect(_0x2cb466['get'](_0x250623(0x7d))['success'])[_0x250623(0x89)](!![]),expect(_0x2cb466['get'](_0x250623(0x7d))['data'])[_0x250623(0x89)]('file\x20contents'),expect(_0x2cb466[_0x250623(0xb0)](_0x250623(0xb8)))['toBeDefined'](),expect(_0x2cb466[_0x250623(0xb0)]('exec-2')[_0x250623(0xa7)][_0x250623(0xa5)])['toEqual']([]),expect(_0x2cb466['size'])[_0x250623(0x89)](0x2);});}),describe(a0_0x3203ea(0xa8),()=>{const _0x1e2cd2=a0_0x3203ea;test(_0x1e2cd2(0x8c),async()=>{const _0x38a175=_0x1e2cd2,_0x8c7ca4=0x927c0;let _0x42d5fe=null,_0x2180ae=0x0;const _0x528ae3=[{'name':_0x38a175(0xa1)}];_0x42d5fe=_0x528ae3,_0x2180ae=Date['now']();const _0x4b70a1=Date[_0x38a175(0x7f)](),_0x4838e2=_0x4b70a1-_0x2180ae<_0x8c7ca4;expect(_0x4838e2)[_0x38a175(0x89)](!![]),expect(_0x42d5fe)['toBe'](_0x528ae3);}),test(_0x1e2cd2(0x83),async()=>{const _0x11b343=_0x1e2cd2,_0x7b719b=0x64;let _0x52a2c2=null,_0x57815e=0x0;const _0x141bb5=[{'name':_0x11b343(0xa1)}];_0x52a2c2=_0x141bb5,_0x57815e=Date['now'](),await new Promise(_0x183ffa=>setTimeout(_0x183ffa,0x96));const _0x1fe89c=Date[_0x11b343(0x7f)](),_0x50267e=_0x1fe89c-_0x57815e<_0x7b719b;expect(_0x50267e)['toBe'](![]);});}),describe(a0_0x3203ea(0x85),()=>{test('Tools\x20can\x20be\x20filtered\x20by\x20multiple\x20criteria',async()=>{const _0x2c9dfa=a0_0x30c0,{TOOL_CATEGORY:_0x2f99ce}=await import('../../config/constants.js'),_0x26b34d=[{'name':'execute_command','category':_0x2f99ce[_0x2c9dfa(0xae)],'enabled':!![]},{'name':_0x2c9dfa(0x76),'category':_0x2f99ce['SYSTEM'],'enabled':![]},{'name':_0x2c9dfa(0x8e),'category':_0x2f99ce[_0x2c9dfa(0x8f)],'enabled':!![]}],_0x26ed1d=_0x583383=>{const _0x5bacc4=_0x2c9dfa;let _0x613e3c=[..._0x26b34d];return _0x583383[_0x5bacc4(0xbd)]&&(_0x613e3c=_0x613e3c['filter'](_0x531e2d=>_0x531e2d['category']===_0x583383['category'])),_0x583383[_0x5bacc4(0x81)]!==undefined&&(_0x613e3c=_0x613e3c[_0x5bacc4(0xa0)](_0x255924=>_0x255924['enabled']===_0x583383['enabled'])),_0x613e3c;},_0x2c7d55=_0x26ed1d({'category':_0x2f99ce['SYSTEM']});expect(_0x2c7d55['length'])['toBe'](0x2);const _0x408c3f=_0x26ed1d({'enabled':!![]});expect(_0x408c3f[_0x2c9dfa(0x7b)])[_0x2c9dfa(0x89)](0x2);const _0x21993a=_0x26ed1d({'category':_0x2f99ce['SYSTEM'],'enabled':!![]});expect(_0x21993a[_0x2c9dfa(0x7b)])[_0x2c9dfa(0x89)](0x1),expect(_0x21993a[0x0][_0x2c9dfa(0x78)])['toBe'](_0x2c9dfa(0x90));});}),describe(a0_0x3203ea(0x94),()=>{test('Category\x20counts\x20can\x20be\x20calculated',async()=>{const _0x602cdd=a0_0x30c0,{TOOL_CATEGORY:_0x54f18b}=await import(_0x602cdd(0x96)),_0xc27309=[{'name':_0x602cdd(0x90),'category':_0x54f18b[_0x602cdd(0xae)]},{'name':_0x602cdd(0x76),'category':_0x54f18b[_0x602cdd(0xae)]},{'name':'analyze_code','category':_0x54f18b['ANALYSIS']},{'name':_0x602cdd(0xc1),'category':_0x54f18b['UTILITY']}],_0xced8ac=_0x22f72c=>{const _0x3c4dd6=_0x602cdd,_0x13de19={};for(const _0x39b651 of Object['values'](_0x54f18b)){_0x13de19[_0x39b651]=_0x22f72c['filter'](_0x182968=>_0x182968['category']===_0x39b651)[_0x3c4dd6(0x7b)];}return _0x13de19;},_0x3aa390=_0xced8ac(_0xc27309);expect(_0x3aa390[_0x54f18b[_0x602cdd(0xae)]])['toBe'](0x2),expect(_0x3aa390[_0x54f18b['ANALYSIS']])['toBe'](0x1),expect(_0x3aa390[_0x54f18b['UTILITY']])['toBe'](0x1),expect(_0x3aa390[_0x54f18b[_0x602cdd(0x7e)]])[_0x602cdd(0x89)](0x0);});});
@@ -1 +1 @@
1
- function a0_0x3dbe(_0x4dba87,_0x10ded3){_0x4dba87=_0x4dba87-0x1cf;const _0x1adfcf=a0_0x1adf();let _0x3dbe3b=_0x1adfcf[_0x4dba87];if(a0_0x3dbe['NjkbIu']===undefined){var _0x5195a6=function(_0x20ec80){const _0x529109='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5a5a12='',_0x138921='';for(let _0x4aecd3=0x0,_0x433f08,_0x10e3fe,_0x4fe86e=0x0;_0x10e3fe=_0x20ec80['charAt'](_0x4fe86e++);~_0x10e3fe&&(_0x433f08=_0x4aecd3%0x4?_0x433f08*0x40+_0x10e3fe:_0x10e3fe,_0x4aecd3++%0x4)?_0x5a5a12+=String['fromCharCode'](0xff&_0x433f08>>(-0x2*_0x4aecd3&0x6)):0x0){_0x10e3fe=_0x529109['indexOf'](_0x10e3fe);}for(let _0x298a15=0x0,_0x2776cc=_0x5a5a12['length'];_0x298a15<_0x2776cc;_0x298a15++){_0x138921+='%'+('00'+_0x5a5a12['charCodeAt'](_0x298a15)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x138921);};a0_0x3dbe['ecrZVU']=_0x5195a6,a0_0x3dbe['aXTjwc']={},a0_0x3dbe['NjkbIu']=!![];}const _0x139900=_0x1adfcf[0x0],_0x1a3029=_0x4dba87+_0x139900,_0x55e22e=a0_0x3dbe['aXTjwc'][_0x1a3029];return!_0x55e22e?(_0x3dbe3b=a0_0x3dbe['ecrZVU'](_0x3dbe3b),a0_0x3dbe['aXTjwc'][_0x1a3029]=_0x3dbe3b):_0x3dbe3b=_0x55e22e,_0x3dbe3b;}function a0_0x1adf(){const _0x35a7d2=['C3rHDhvZ','mte1ndq4v0fNBxzZ','Cg9ZDa','y2f0y2G','nZaXndvcuMXYtLu','Dg9vChbLCKnHC2u','vhLWzuvYCM9Y','yxbPs2v5','ndaYrgHzCwTA','mtGWoteWzvfSshfe','zMv0y2G','C3rHDhvZvgv4Da','CMvXDwvZDa','uefuq0G','BMfTzq','zgvSzxrL','nty5ndjYCKzIEMO','CMvZCg9UC2u','revmrvrf','mZqXuLbYyLn4','B3jPz2LUywXfCNjVCG','ue9tva','mtmYzKzPDwzz','ntaWnZaXnuf6Be9rwa','yNvPBgrizwfKzxjZ','nJfyDwzpDMe','z2v0qxbPs2v5','otK4odK1nMXYD3bLvW','qxv0Ag9YAxPHDgLVBG','zxjYB3i','yMfZzvvYBa','qMvHCMvYia','nJaZotKYqxvjzejt','BwvZC2fNzq','ndLKA3rNtvG'];a0_0x1adf=function(){return _0x35a7d2;};return a0_0x1adf();}const a0_0xd4db2b=a0_0x3dbe;(function(_0x4bae1d,_0x262166){const _0x2e0f72=a0_0x3dbe,_0x1fac8c=_0x4bae1d();while(!![]){try{const _0x3fa003=-parseInt(_0x2e0f72(0x1e8))/0x1*(-parseInt(_0x2e0f72(0x1df))/0x2)+parseInt(_0x2e0f72(0x1e5))/0x3*(-parseInt(_0x2e0f72(0x1d0))/0x4)+-parseInt(_0x2e0f72(0x1d3))/0x5*(parseInt(_0x2e0f72(0x1d7))/0x6)+-parseInt(_0x2e0f72(0x1f1))/0x7*(-parseInt(_0x2e0f72(0x1ef))/0x8)+-parseInt(_0x2e0f72(0x1e6))/0x9+parseInt(_0x2e0f72(0x1d8))/0xa*(parseInt(_0x2e0f72(0x1e2))/0xb)+parseInt(_0x2e0f72(0x1ea))/0xc;if(_0x3fa003===_0x262166)break;else _0x1fac8c['push'](_0x1fac8c['shift']());}catch(_0x3f75f8){_0x1fac8c['push'](_0x1fac8c['shift']());}}}(a0_0x1adf,0xd9d5c));import{ERROR_MESSAGE}from'../config/constants.js';export class ApiClient{constructor(_0x5a5a12,_0x138921=null){const _0x55c879=a0_0x3dbe;this[_0x55c879(0x1ed)]=_0x5a5a12,this[_0x55c879(0x1d6)]=_0x138921;}['setApiKey'](_0x4aecd3){this['apiKey']=_0x4aecd3;}[a0_0xd4db2b(0x1e9)](){const _0x839e83=a0_0xd4db2b;return this[_0x839e83(0x1d6)];}['clearApiKey'](){const _0x424e8d=a0_0xd4db2b;this[_0x424e8d(0x1d6)]=null;}['buildHeaders'](_0x433f08={}){const _0x3d9e2d=a0_0xd4db2b,_0x10e3fe={'Content-Type':'application/json',..._0x433f08};return this[_0x3d9e2d(0x1d6)]&&(_0x10e3fe[_0x3d9e2d(0x1eb)]=_0x3d9e2d(0x1ee)+this['apiKey']),_0x10e3fe;}async[a0_0xd4db2b(0x1db)](_0x4fe86e,_0x298a15,_0x2776cc={}){const _0x5a81f0=a0_0xd4db2b,{body:body=null,headers:headers={},query:query=null}=_0x2776cc;let _0x3c4787=''+this[_0x5a81f0(0x1ed)]+_0x298a15;if(query){const _0x2c8bd0=new URLSearchParams(query)['toString']();_0x3c4787+='?'+_0x2c8bd0;}const _0x10ec78={'method':_0x4fe86e,'headers':this[_0x5a81f0(0x1e7)](headers)};body&&[_0x5a81f0(0x1e4),'PUT','PATCH']['includes'](_0x4fe86e[_0x5a81f0(0x1d4)]())&&(_0x10ec78['body']=JSON['stringify'](body));try{const _0x5cb3a3=await fetch(_0x3c4787,_0x10ec78),_0x2865d3=await _0x5cb3a3['json']()[_0x5a81f0(0x1d2)](()=>({}));if(!_0x5cb3a3['ok']){const _0x14dbfb=new Error(_0x2865d3[_0x5a81f0(0x1ec)]||'HTTP\x20'+_0x5cb3a3[_0x5a81f0(0x1cf)]+':\x20'+_0x5cb3a3[_0x5a81f0(0x1da)]);_0x14dbfb['status']=_0x5cb3a3['status'],_0x14dbfb[_0x5a81f0(0x1e0)]=_0x2865d3;throw _0x14dbfb;}return _0x2865d3;}catch(_0x2b3103){if(_0x2b3103[_0x5a81f0(0x1f0)]['includes'](_0x5a81f0(0x1d9))||_0x2b3103[_0x5a81f0(0x1dd)]===_0x5a81f0(0x1d5)){const _0x4607c9=new Error(ERROR_MESSAGE['NETWORK_ERROR']+':\x20'+_0x2b3103['message']);_0x4607c9[_0x5a81f0(0x1e3)]=_0x2b3103;throw _0x4607c9;}throw _0x2b3103;}}async['get'](_0x1a17e1,_0x448d35={}){return this['request']('GET',_0x1a17e1,_0x448d35);}async[a0_0xd4db2b(0x1d1)](_0x5bbd81,_0x3fc3fd=null,_0x43a62d={}){const _0x2cf88a=a0_0xd4db2b;return this['request'](_0x2cf88a(0x1e4),_0x5bbd81,{..._0x43a62d,'body':_0x3fc3fd});}async['put'](_0x1d6fb3,_0x5194c1=null,_0x5f01a3={}){return this['request']('PUT',_0x1d6fb3,{..._0x5f01a3,'body':_0x5194c1});}async['patch'](_0x351020,_0x3cdbb4=null,_0x480461={}){const _0x729353=a0_0xd4db2b;return this[_0x729353(0x1db)](_0x729353(0x1dc),_0x351020,{..._0x480461,'body':_0x3cdbb4});}async[a0_0xd4db2b(0x1de)](_0x3ea8c1,_0x31e2a6={}){const _0x42a174=a0_0xd4db2b;return this[_0x42a174(0x1db)](_0x42a174(0x1e1),_0x3ea8c1,_0x31e2a6);}}export function createApiClient(_0x297c76='localhost',_0xb3ec5d=0x1f90,_0x5c1a51=null){const _0x4d577f='http://'+_0x297c76+':'+_0xb3ec5d;return new ApiClient(_0x4d577f,_0x5c1a51);}export default ApiClient;
1
+ const a0_0x54393a=a0_0x4bdb;function a0_0x1e52(){const _0x34d9bd=['qxv0Ag9YAxPHDgLVBG','uefuq0G','tKvuv09ss19fuLjpuG','mtm3odmZnuf0CgPLra','mtG0nJmYEgfjre5Q','nda1odu2mfHus0Plvq','r0vu','yNvPBgrizwfKzxjZ','mtjTrunWuNG','Cg9ZDa','ue9tva','C3rHDhvZvgv4Da','yM9KEq','ngvpr2vpDG','BMfTzq','mZyWmZa1tKD6vwjd','ovj6tfbMBG','mte4mJyXnK9zre9Rra','BwvZC2fNzq','B3jPz2LUywXfCNjVCG','yMfZzvvYBa','Aw5JBhvKzxm','CMvXDwvZDa','yxbPs2v5','odq2otnbyMTKC0m','y2f0y2G','C3rHDhvZ','Ahr0CdOVlW','Chv0','mtqWndiXnM9NywzMqW','Cgf0y2G','ANnVBG','sfruuca'];a0_0x1e52=function(){return _0x34d9bd;};return a0_0x1e52();}(function(_0x2a4235,_0x45cb77){const _0x51e6af=a0_0x4bdb,_0x240449=_0x2a4235();while(!![]){try{const _0x550b0b=-parseInt(_0x51e6af(0x1cd))/0x1+-parseInt(_0x51e6af(0x1d6))/0x2*(parseInt(_0x51e6af(0x1e1))/0x3)+-parseInt(_0x51e6af(0x1d1))/0x4*(parseInt(_0x51e6af(0x1d8))/0x5)+parseInt(_0x51e6af(0x1e6))/0x6+-parseInt(_0x51e6af(0x1cc))/0x7+parseInt(_0x51e6af(0x1da))/0x8*(parseInt(_0x51e6af(0x1d9))/0x9)+parseInt(_0x51e6af(0x1ce))/0xa;if(_0x550b0b===_0x45cb77)break;else _0x240449['push'](_0x240449['shift']());}catch(_0x152baa){_0x240449['push'](_0x240449['shift']());}}}(a0_0x1e52,0x209a1));import{ERROR_MESSAGE}from'../config/constants.js';function a0_0x4bdb(_0x1f21f5,_0x4bf2b3){_0x1f21f5=_0x1f21f5-0x1cb;const _0x1e5222=a0_0x1e52();let _0x4bdb67=_0x1e5222[_0x1f21f5];if(a0_0x4bdb['mFtBYK']===undefined){var _0x3e5ba0=function(_0x3ccab4){const _0x45a369='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x102fdb='',_0x53dee2='';for(let _0x22320c=0x0,_0x336154,_0x1bf736,_0x196fc8=0x0;_0x1bf736=_0x3ccab4['charAt'](_0x196fc8++);~_0x1bf736&&(_0x336154=_0x22320c%0x4?_0x336154*0x40+_0x1bf736:_0x1bf736,_0x22320c++%0x4)?_0x102fdb+=String['fromCharCode'](0xff&_0x336154>>(-0x2*_0x22320c&0x6)):0x0){_0x1bf736=_0x45a369['indexOf'](_0x1bf736);}for(let _0x468f2b=0x0,_0x459715=_0x102fdb['length'];_0x468f2b<_0x459715;_0x468f2b++){_0x53dee2+='%'+('00'+_0x102fdb['charCodeAt'](_0x468f2b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x53dee2);};a0_0x4bdb['EMiEDn']=_0x3e5ba0,a0_0x4bdb['RMTkfq']={},a0_0x4bdb['mFtBYK']=!![];}const _0x4d4cdc=_0x1e5222[0x0],_0x3fd691=_0x1f21f5+_0x4d4cdc,_0x2a002e=a0_0x4bdb['RMTkfq'][_0x3fd691];return!_0x2a002e?(_0x4bdb67=a0_0x4bdb['EMiEDn'](_0x4bdb67),a0_0x4bdb['RMTkfq'][_0x3fd691]=_0x4bdb67):_0x4bdb67=_0x2a002e,_0x4bdb67;}export class ApiClient{constructor(_0x102fdb,_0x53dee2=null){const _0x59da8c=a0_0x4bdb;this['baseUrl']=_0x102fdb,this[_0x59da8c(0x1e0)]=_0x53dee2;}['setApiKey'](_0x22320c){this['apiKey']=_0x22320c;}['getApiKey'](){return this['apiKey'];}['clearApiKey'](){this['apiKey']=null;}[a0_0x54393a(0x1d0)](_0x336154={}){const _0xed24f4=a0_0x54393a,_0x1bf736={'Content-Type':'application/json',..._0x336154};return this[_0xed24f4(0x1e0)]&&(_0x1bf736[_0xed24f4(0x1ea)]='Bearer\x20'+this[_0xed24f4(0x1e0)]),_0x1bf736;}async[a0_0x54393a(0x1df)](_0x196fc8,_0x468f2b,_0x459715={}){const _0xdffeb=a0_0x54393a,{body:body=null,headers:headers={},query:query=null}=_0x459715;let _0x90c983=''+this[_0xdffeb(0x1dd)]+_0x468f2b;if(query){const _0x20fe98=new URLSearchParams(query)['toString']();_0x90c983+='?'+_0x20fe98;}const _0x31752a={'method':_0x196fc8,'headers':this[_0xdffeb(0x1d0)](headers)};body&&[_0xdffeb(0x1d3),'PUT',_0xdffeb(0x1eb)][_0xdffeb(0x1de)](_0x196fc8['toUpperCase']())&&(_0x31752a[_0xdffeb(0x1d5)]=JSON['stringify'](body));try{const _0x1feaaa=await fetch(_0x90c983,_0x31752a),_0x433808=await _0x1feaaa[_0xdffeb(0x1e8)]()[_0xdffeb(0x1e2)](()=>({}));if(!_0x1feaaa['ok']){const _0x447e93=new Error(_0x433808['error']||_0xdffeb(0x1e9)+_0x1feaaa[_0xdffeb(0x1e3)]+':\x20'+_0x1feaaa[_0xdffeb(0x1d4)]);_0x447e93['status']=_0x1feaaa['status'],_0x447e93['response']=_0x433808;throw _0x447e93;}return _0x433808;}catch(_0x2a7a18){if(_0x2a7a18['message']['includes']('fetch')||_0x2a7a18[_0xdffeb(0x1d7)]==='TypeError'){const _0x177687=new Error(ERROR_MESSAGE[_0xdffeb(0x1cb)]+':\x20'+_0x2a7a18[_0xdffeb(0x1db)]);_0x177687[_0xdffeb(0x1dc)]=_0x2a7a18;throw _0x177687;}throw _0x2a7a18;}}async['get'](_0x40cab4,_0x1c89ea={}){const _0x39a21e=a0_0x54393a;return this[_0x39a21e(0x1df)](_0x39a21e(0x1cf),_0x40cab4,_0x1c89ea);}async[a0_0x54393a(0x1d2)](_0x2e1235,_0x22ff95=null,_0x299086={}){const _0x55e142=a0_0x54393a;return this[_0x55e142(0x1df)]('POST',_0x2e1235,{..._0x299086,'body':_0x22ff95});}async[a0_0x54393a(0x1e5)](_0x5d2b6d,_0x478ddc=null,_0x3a2bc1={}){const _0x5a012d=a0_0x54393a;return this[_0x5a012d(0x1df)]('PUT',_0x5d2b6d,{..._0x3a2bc1,'body':_0x478ddc});}async[a0_0x54393a(0x1e7)](_0x3aef60,_0x1f7144=null,_0x135a08={}){return this['request']('PATCH',_0x3aef60,{..._0x135a08,'body':_0x1f7144});}async['delete'](_0x12ffed,_0x5ee426={}){return this['request']('DELETE',_0x12ffed,_0x5ee426);}}export function createApiClient(_0x46a16a='localhost',_0x35dc4f=0x1f90,_0x20093e=null){const _0x35d7ae=a0_0x54393a,_0x25f066=_0x35d7ae(0x1e4)+_0x46a16a+':'+_0x35dc4f;return new ApiClient(_0x25f066,_0x20093e);}export default ApiClient;
@@ -1 +1 @@
1
- const a0_0x15e81b=a0_0x1f5e;(function(_0x25346b,_0x267f91){const _0x3012c1=a0_0x1f5e,_0x273241=_0x25346b();while(!![]){try{const _0x1aa106=parseInt(_0x3012c1(0x125))/0x1+parseInt(_0x3012c1(0x13e))/0x2+-parseInt(_0x3012c1(0x129))/0x3+parseInt(_0x3012c1(0x12b))/0x4+-parseInt(_0x3012c1(0x12a))/0x5+parseInt(_0x3012c1(0x130))/0x6+parseInt(_0x3012c1(0x13d))/0x7*(-parseInt(_0x3012c1(0x14b))/0x8);if(_0x1aa106===_0x267f91)break;else _0x273241['push'](_0x273241['shift']());}catch(_0x54a946){_0x273241['push'](_0x273241['shift']());}}}(a0_0x20c0,0x64ff5));import{EventEmitter}from'events';import{WS_MESSAGE_TYPE}from'../config/constants.js';export class MessageRouter extends EventEmitter{constructor(_0x2ed02b){const _0x49e49e=a0_0x1f5e;super(),this['ws']=_0x2ed02b,this[_0x49e49e(0x142)]=new Map(),this['middleware']=[],this['ws']['on'](_0x49e49e(0x13b),_0x77cfeb=>this['route'](_0x77cfeb)),this[_0x49e49e(0x12d)]();}['registerDefaultHandlers'](){const _0xcbadb6=a0_0x1f5e;this[_0xcbadb6(0x149)](WS_MESSAGE_TYPE[_0xcbadb6(0x131)],_0x25bf27=>{const _0x5a0116=_0xcbadb6;this[_0x5a0116(0x13c)](_0x5a0116(0x123),_0x25bf27[_0x5a0116(0x143)]);}),this['registerHandler'](WS_MESSAGE_TYPE[_0xcbadb6(0x12c)],_0x2dac7f=>{const _0x1fe7eb=_0xcbadb6;this[_0x1fe7eb(0x13c)](_0x1fe7eb(0x136),_0x2dac7f);}),this[_0xcbadb6(0x149)](WS_MESSAGE_TYPE['EXECUTION_STOPPED'],_0x156df0=>{const _0xfaf61=_0xcbadb6;this[_0xfaf61(0x13c)]('agent:execution_stopped',_0x156df0[_0xfaf61(0x143)]);}),this[_0xcbadb6(0x149)](WS_MESSAGE_TYPE[_0xcbadb6(0x121)],_0x133f4c=>{this['emit']('agent:error',_0x133f4c);}),this[_0xcbadb6(0x149)](WS_MESSAGE_TYPE[_0xcbadb6(0x134)],_0x55810b=>{const _0x2d80e4=_0xcbadb6;this['emit'](_0x2d80e4(0x14a),_0x55810b);}),this[_0xcbadb6(0x149)](WS_MESSAGE_TYPE[_0xcbadb6(0x148)],_0x294f3f=>{const _0x5d0a7e=_0xcbadb6;this['emit']('agent:imported',_0x294f3f[_0x5d0a7e(0x120)]);}),this['registerHandler'](WS_MESSAGE_TYPE[_0xcbadb6(0x12f)],_0x5ceea8=>{this['emit']('agent:communication',_0x5ceea8['data']);}),this[_0xcbadb6(0x149)](WS_MESSAGE_TYPE[_0xcbadb6(0x147)],_0x19f690=>{const _0x23b88a=_0xcbadb6;this['emit'](_0x23b88a(0x138),_0x19f690['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0xcbadb6(0x14c)],_0x1005cc=>{const _0x1f6950=_0xcbadb6;this[_0x1f6950(0x13c)]('image:result',_0x1005cc['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0xcbadb6(0x11f)],_0x179c68=>{const _0x2cd3f6=_0xcbadb6;this['emit'](_0x2cd3f6(0x11e),_0x179c68['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0xcbadb6(0x135)],_0x1626bb=>{const _0xae096b=_0xcbadb6;this[_0xae096b(0x13c)](_0xae096b(0x145),_0x1626bb);});}async['route'](_0xbfc90b){const _0x5cd617=a0_0x1f5e;let processedMessage=_0xbfc90b;for(const _0x3fb665 of this[_0x5cd617(0x124)]){try{processedMessage=await _0x3fb665(processedMessage);if(!processedMessage)return;}catch(_0x27eea2){this['emit'](_0x5cd617(0x144),{'error':_0x27eea2,'message':_0xbfc90b});return;}}const _0x235dd3=processedMessage[_0x5cd617(0x13a)];if(!_0x235dd3){this['emit'](_0x5cd617(0x146),processedMessage);return;}if(this['handlers']['has'](_0x235dd3)){const _0x6e7614=this['handlers'][_0x5cd617(0x133)](_0x235dd3);try{await _0x6e7614(processedMessage);}catch(_0x3dd0d3){this['emit'](_0x5cd617(0x13f),{'error':_0x3dd0d3,'message':processedMessage,'messageType':_0x235dd3});}}this[_0x5cd617(0x13c)](_0x5cd617(0x126)+_0x235dd3,processedMessage),this['emit'](_0x5cd617(0x13b),processedMessage);}['registerHandler'](_0x137d2c,_0x38c0dc){const _0x569063=a0_0x1f5e;if(typeof _0x38c0dc!==_0x569063(0x11d))throw new Error('Handler\x20must\x20be\x20a\x20function');this[_0x569063(0x142)]['set'](_0x137d2c,_0x38c0dc);}['unregisterHandler'](_0x15d5bc){this['handlers']['delete'](_0x15d5bc);}['use'](_0x3eba43){const _0x8cdc6d=a0_0x1f5e;if(typeof _0x3eba43!=='function')throw new Error('Middleware\x20must\x20be\x20a\x20function');this[_0x8cdc6d(0x124)][_0x8cdc6d(0x141)](_0x3eba43);}['removeMiddleware'](_0x2626f5){const _0xfbde95=a0_0x1f5e,_0x4bb0fe=this['middleware']['indexOf'](_0x2626f5);_0x4bb0fe>-0x1&&this[_0xfbde95(0x124)]['splice'](_0x4bb0fe,0x1);}[a0_0x15e81b(0x128)](){const _0x1eef17=a0_0x15e81b;this[_0x1eef17(0x124)]=[];}[a0_0x15e81b(0x140)](){const _0x5de784=a0_0x15e81b;return Array[_0x5de784(0x132)](this[_0x5de784(0x142)]['keys']());}['hasHandler'](_0xb01a12){return this['handlers']['has'](_0xb01a12);}[a0_0x15e81b(0x122)](){const _0x2860eb=a0_0x15e81b;this[_0x2860eb(0x142)]['clear']();}[a0_0x15e81b(0x137)](){const _0x1cb4d8=a0_0x15e81b;this['clearHandlers'](),this[_0x1cb4d8(0x128)](),this[_0x1cb4d8(0x12d)]();}}export function loggingMiddleware(_0x515ee7=console['log']){return _0x2fdf8c=>{const _0x8a4e24=a0_0x1f5e;return _0x515ee7(_0x8a4e24(0x139),_0x2fdf8c['type'],_0x2fdf8c),_0x2fdf8c;};}function a0_0x1f5e(_0x2c92e3,_0x2ad560){_0x2c92e3=_0x2c92e3-0x11d;const _0x20c0c5=a0_0x20c0();let _0x1f5e62=_0x20c0c5[_0x2c92e3];if(a0_0x1f5e['EaOfHJ']===undefined){var _0x543397=function(_0x433d6e){const _0x3ca29c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2ed02b='',_0x77cfeb='';for(let _0x25bf27=0x0,_0x2dac7f,_0x156df0,_0x133f4c=0x0;_0x156df0=_0x433d6e['charAt'](_0x133f4c++);~_0x156df0&&(_0x2dac7f=_0x25bf27%0x4?_0x2dac7f*0x40+_0x156df0:_0x156df0,_0x25bf27++%0x4)?_0x2ed02b+=String['fromCharCode'](0xff&_0x2dac7f>>(-0x2*_0x25bf27&0x6)):0x0){_0x156df0=_0x3ca29c['indexOf'](_0x156df0);}for(let _0x55810b=0x0,_0x294f3f=_0x2ed02b['length'];_0x55810b<_0x294f3f;_0x55810b++){_0x77cfeb+='%'+('00'+_0x2ed02b['charCodeAt'](_0x55810b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x77cfeb);};a0_0x1f5e['kBjnFf']=_0x543397,a0_0x1f5e['NnnQmn']={},a0_0x1f5e['EaOfHJ']=!![];}const _0x4769da=_0x20c0c5[0x0],_0x364e58=_0x2c92e3+_0x4769da,_0x344dac=a0_0x1f5e['NnnQmn'][_0x364e58];return!_0x344dac?(_0x1f5e62=a0_0x1f5e['kBjnFf'](_0x1f5e62),a0_0x1f5e['NnnQmn'][_0x364e58]=_0x1f5e62):_0x1f5e62=_0x344dac,_0x1f5e62;}export function filterMiddleware(_0x4d1e93){return _0x53a500=>{const _0x108d02=a0_0x1f5e;if(_0x4d1e93[_0x108d02(0x12e)](_0x53a500['type']))return _0x53a500;return null;};}function a0_0x20c0(){const _0x31cbc1=['y2XLyxjiyw5KBgvYCW','ywDLBNq6BwvZC2fNzv9HzgrLza','BwLKzgXLD2fYzq','mJqYmtCYvxr1C0XY','BwvZC2fNztO','Dg9ju09tDhjPBMC','y2XLyxjnAwrKBgv3yxjL','mtyYmZC2nvPmv2v5sa','mZC4mdu5nvHYDhLXwG','mJi5mZuZnNHdBgznuG','quDftLrFtu9erv9dsefor0ve','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','Aw5JBhvKzxm','quDftLrFq09ntvvosunbveLptG','ndu0mJC1nLHnwwTuDG','tuvtu0fhrv9brerfra','zNjVBq','z2v0','quDftLrFv0fstKLorW','rvjst1i','ywDLBNq6Bw9Kzv9JAgfUz2vK','CMvZzxq','y29UDMvYC2f0Aw9UoMnVBxbHy3rPB24','w01LC3nHz2vsB3v0zxjD','DhLWzq','BwvZC2fNzq','zw1PDa','ndyWnJC3n3Dcs2LVsa','mtu5mJK3nKXAD3DNsa','AgfUzgXLCL9LCNjVCG','z2v0uMvNAxn0zxjLzfr5CgvZ','ChvZAa','AgfUzgXLCNm','zgf0yq','BwLKzgXLD2fYzv9LCNjVCG','zxjYB3i','Aw52ywXPzf9TzxnZywDL','q09nuefdveLptL9fvKvova','quDftLrFsu1qt1juruq','CMvNAxn0zxjiyw5KBgvY','ywDLBNq6D2fYBMLUzW','ohfQEfHLsW','su1br0vFuKvtvuXu','zNvUy3rPB24','Aw1Hz2u6z2vUzxjHDgvK','su1br0vFr0vorvjbveve','ywDLBNq','quDftLrFrvjst1i'];a0_0x20c0=function(){return _0x31cbc1;};return a0_0x20c0();}export function transformMiddleware(_0x6fb2ef){return async _0x2284d6=>{return await _0x6fb2ef(_0x2284d6);};}export function timestampMiddleware(){return _0x329ed8=>{const _0x579cbc=a0_0x1f5e;return{..._0x329ed8,'receivedAt':new Date()[_0x579cbc(0x127)]()};};}export function validationMiddleware(_0x52b27b){return _0x2d5520=>{if(_0x52b27b(_0x2d5520))return _0x2d5520;throw new Error('Message\x20validation\x20failed');};}export default MessageRouter;
1
+ const a0_0x3d6448=a0_0x178e;function a0_0x178e(_0x5dbe4e,_0x46b70f){_0x5dbe4e=_0x5dbe4e-0xe3;const _0x52bdd7=a0_0x52bd();let _0x178efc=_0x52bdd7[_0x5dbe4e];if(a0_0x178e['yUyVHs']===undefined){var _0x1ded3b=function(_0x4f9570){const _0x234caa='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3b6317='',_0x436497='';for(let _0x47d38a=0x0,_0x20921c,_0x3405bb,_0x28fff2=0x0;_0x3405bb=_0x4f9570['charAt'](_0x28fff2++);~_0x3405bb&&(_0x20921c=_0x47d38a%0x4?_0x20921c*0x40+_0x3405bb:_0x3405bb,_0x47d38a++%0x4)?_0x3b6317+=String['fromCharCode'](0xff&_0x20921c>>(-0x2*_0x47d38a&0x6)):0x0){_0x3405bb=_0x234caa['indexOf'](_0x3405bb);}for(let _0x31fc32=0x0,_0x5ef1f2=_0x3b6317['length'];_0x31fc32<_0x5ef1f2;_0x31fc32++){_0x436497+='%'+('00'+_0x3b6317['charCodeAt'](_0x31fc32)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x436497);};a0_0x178e['PMVByS']=_0x1ded3b,a0_0x178e['gYGMXJ']={},a0_0x178e['yUyVHs']=!![];}const _0x3b6da8=_0x52bdd7[0x0],_0x39ad30=_0x5dbe4e+_0x3b6da8,_0x41f43e=a0_0x178e['gYGMXJ'][_0x39ad30];return!_0x41f43e?(_0x178efc=a0_0x178e['PMVByS'](_0x178efc),a0_0x178e['gYGMXJ'][_0x39ad30]=_0x178efc):_0x178efc=_0x41f43e,_0x178efc;}(function(_0x4640a3,_0x5c8ff4){const _0x49a54f=a0_0x178e,_0x595a71=_0x4640a3();while(!![]){try{const _0x101003=-parseInt(_0x49a54f(0x10d))/0x1+parseInt(_0x49a54f(0xff))/0x2+-parseInt(_0x49a54f(0xe9))/0x3+-parseInt(_0x49a54f(0x104))/0x4+-parseInt(_0x49a54f(0xf3))/0x5+parseInt(_0x49a54f(0xf5))/0x6*(-parseInt(_0x49a54f(0x101))/0x7)+parseInt(_0x49a54f(0xf4))/0x8*(parseInt(_0x49a54f(0xfb))/0x9);if(_0x101003===_0x5c8ff4)break;else _0x595a71['push'](_0x595a71['shift']());}catch(_0x244b67){_0x595a71['push'](_0x595a71['shift']());}}}(a0_0x52bd,0x8e720));import{EventEmitter}from'events';function a0_0x52bd(){const _0x1e0418=['n0Xcyvjutq','y2XLyxjnAwrKBgv3yxjL','DxnL','mZK2otyXnNLYAxfSDW','q09nuefdveLptL9fvKvova','rvHfq1vusu9ox1nut1bqruq','CMvNAxn0zxjiyw5KBgvY','Aw1Hz2u6z2vUzxjHDgvK','ywDLBNq','zgf0yq','zw1PDa','Aw52ywXPzf9TzxnZywDL','mty2ndiXEu5SAufA','zNvUy3rPB24','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','BwvZC2fNztO','Dg9ju09tDhjPBMC','z2v0','zgvSzxrL','BwvZC2fNzq','AgfZ','y29UDMvYC2f0Aw9UoMnVBxbHy3rPB24','C3bSAwnL','mtqXnJK0oeXYruvQBW','CMvTB3zLtwLKzgXLD2fYzq','zNjVBq','BwLKzgXLD2fYzq','su1br0vFr0vorvjbveve','su1br0vFuKvtvuXu','rvjst1i','AgfZsgfUzgXLCG','DhLWzq','ywDLBNq6zxHLy3v0Aw9Ux3n0B3bWzwq','mtu0ntG0nxHQtMXcwG','ohjxu0jWDG','otmXmtuYCevtr09t','Aw5JBhvKzxm','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','CM91Dgu','z2v0uMvNAxn0zxjLzfr5CgvZ','AgfUzgXLCNm','mJe5otK4ndn3EuHZweG','zxjYB3i','AgfUzgXLCL9LCNjVCG','quDftLrFtu9erv9dsefor0ve','ndy5mdyYCK9kuuzH','y2XLyxjiyw5KBgvYCW'];a0_0x52bd=function(){return _0x1e0418;};return a0_0x52bd();}import{WS_MESSAGE_TYPE}from'../config/constants.js';export class MessageRouter extends EventEmitter{constructor(_0x3b6317){const _0x180ff7=a0_0x178e;super(),this['ws']=_0x3b6317,this[_0x180ff7(0xfa)]=new Map(),this['middleware']=[],this['ws']['on'](_0x180ff7(0xe5),_0x436497=>this[_0x180ff7(0xf8)](_0x436497)),this[_0x180ff7(0xf7)]();}['registerDefaultHandlers'](){const _0x46737f=a0_0x178e;this['registerHandler'](WS_MESSAGE_TYPE['MESSAGE_ADDED'],_0x47d38a=>{const _0x28bf88=a0_0x178e;this[_0x28bf88(0x10b)]('agent:message_added',_0x47d38a[_0x28bf88(0x10a)]);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x46737f(0xfe)],_0x20921c=>{this['emit']('agent:mode_changed',_0x20921c);}),this[_0x46737f(0x107)](WS_MESSAGE_TYPE[_0x46737f(0x106)],_0x3405bb=>{const _0x4e104d=_0x46737f;this['emit'](_0x4e104d(0xf2),_0x3405bb['data']);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_ERROR'],_0x28fff2=>{this['emit']('agent:error',_0x28fff2);}),this[_0x46737f(0x107)](WS_MESSAGE_TYPE['AGENT_WARNING'],_0x31fc32=>{this['emit']('agent:warning',_0x31fc32);}),this[_0x46737f(0x107)](WS_MESSAGE_TYPE['AGENT_IMPORTED'],_0x5ef1f2=>{const _0x1cedac=_0x46737f;this['emit']('agent:imported',_0x5ef1f2[_0x1cedac(0x109)]);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0xfcc00=>{const _0x307de6=_0x46737f;this[_0x307de6(0x10b)]('agent:communication',_0xfcc00['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x46737f(0x105)],_0x6e4140=>{const _0x5ddab7=_0x46737f;this[_0x5ddab7(0x10b)](_0x5ddab7(0xe7),_0x6e4140['data']);}),this[_0x46737f(0x107)](WS_MESSAGE_TYPE[_0x46737f(0xee)],_0x1ef88c=>{this['emit']('image:result',_0x1ef88c['data']);}),this[_0x46737f(0x107)](WS_MESSAGE_TYPE[_0x46737f(0xed)],_0x34afa3=>{const _0x42df86=_0x46737f;this[_0x42df86(0x10b)](_0x42df86(0x108),_0x34afa3['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x46737f(0xef)],_0x18dd36=>{const _0x1e5d71=_0x46737f;this['emit'](_0x1e5d71(0xfc),_0x18dd36);});}async['route'](_0x31971e){const _0x5bd59d=a0_0x178e;let processedMessage=_0x31971e;for(const _0x561b3f of this['middleware']){try{processedMessage=await _0x561b3f(processedMessage);if(!processedMessage)return;}catch(_0x273396){this['emit']('middleware_error',{'error':_0x273396,'message':_0x31971e});return;}}const _0x32e01f=processedMessage[_0x5bd59d(0xf1)];if(!_0x32e01f){this[_0x5bd59d(0x10b)](_0x5bd59d(0x10c),processedMessage);return;}if(this[_0x5bd59d(0xfa)][_0x5bd59d(0xe6)](_0x32e01f)){const _0x500656=this[_0x5bd59d(0xfa)][_0x5bd59d(0xe3)](_0x32e01f);try{await _0x500656(processedMessage);}catch(_0x51fc36){this[_0x5bd59d(0x10b)](_0x5bd59d(0xfd),{'error':_0x51fc36,'message':processedMessage,'messageType':_0x32e01f});}}this[_0x5bd59d(0x10b)](_0x5bd59d(0x110)+_0x32e01f,processedMessage),this['emit'](_0x5bd59d(0xe5),processedMessage);}['registerHandler'](_0x5b464c,_0x1f3659){const _0x5ad11d=a0_0x178e;if(typeof _0x1f3659!==_0x5ad11d(0x10e))throw new Error('Handler\x20must\x20be\x20a\x20function');this[_0x5ad11d(0xfa)]['set'](_0x5b464c,_0x1f3659);}['unregisterHandler'](_0x17ffc2){const _0x23a9e5=a0_0x178e;this[_0x23a9e5(0xfa)][_0x23a9e5(0xe4)](_0x17ffc2);}[a0_0x3d6448(0x103)](_0x567d7b){const _0x2ef495=a0_0x3d6448;if(typeof _0x567d7b!=='function')throw new Error(_0x2ef495(0x10f));this[_0x2ef495(0xec)]['push'](_0x567d7b);}[a0_0x3d6448(0xea)](_0x49e4fb){const _0x13e5ef=a0_0x3d6448,_0x2e374f=this['middleware']['indexOf'](_0x49e4fb);_0x2e374f>-0x1&&this[_0x13e5ef(0xec)][_0x13e5ef(0xe8)](_0x2e374f,0x1);}['clearMiddleware'](){this['middleware']=[];}[a0_0x3d6448(0xf9)](){const _0x5f453b=a0_0x3d6448;return Array[_0x5f453b(0xeb)](this['handlers']['keys']());}[a0_0x3d6448(0xf0)](_0x5be2c9){return this['handlers']['has'](_0x5be2c9);}['clearHandlers'](){this['handlers']['clear']();}['reset'](){const _0x2d64c8=a0_0x3d6448;this[_0x2d64c8(0x100)](),this[_0x2d64c8(0x102)](),this['registerDefaultHandlers']();}}export function loggingMiddleware(_0x2d7758=console['log']){return _0x3502af=>{return _0x2d7758('[MessageRouter]',_0x3502af['type'],_0x3502af),_0x3502af;};}export function filterMiddleware(_0x5bf005){return _0x2b7332=>{const _0x282d62=a0_0x178e;if(_0x5bf005[_0x282d62(0xf6)](_0x2b7332[_0x282d62(0xf1)]))return _0x2b7332;return null;};}export function transformMiddleware(_0x58cfb2){return async _0x36de04=>{return await _0x58cfb2(_0x36de04);};}export function timestampMiddleware(){return _0x2946f0=>{const _0x213fa7=a0_0x178e;return{..._0x2946f0,'receivedAt':new Date()[_0x213fa7(0x111)]()};};}export function validationMiddleware(_0x523ba5){return _0x1ccb46=>{if(_0x523ba5(_0x1ccb46))return _0x1ccb46;throw new Error('Message\x20validation\x20failed');};}export default MessageRouter;
@@ -1 +1 @@
1
- const a0_0x2ff468=a0_0x49dc;(function(_0x14323e,_0x1c0c27){const _0x5a3fd0=a0_0x49dc,_0x3167cf=_0x14323e();while(!![]){try{const _0x41657a=-parseInt(_0x5a3fd0(0xfe))/0x1+parseInt(_0x5a3fd0(0xe0))/0x2*(-parseInt(_0x5a3fd0(0xf3))/0x3)+-parseInt(_0x5a3fd0(0xdf))/0x4+parseInt(_0x5a3fd0(0xe4))/0x5*(parseInt(_0x5a3fd0(0xf1))/0x6)+-parseInt(_0x5a3fd0(0x104))/0x7*(parseInt(_0x5a3fd0(0xe3))/0x8)+parseInt(_0x5a3fd0(0xea))/0x9*(parseInt(_0x5a3fd0(0x102))/0xa)+parseInt(_0x5a3fd0(0xf7))/0xb;if(_0x41657a===_0x1c0c27)break;else _0x3167cf['push'](_0x3167cf['shift']());}catch(_0x3715a9){_0x3167cf['push'](_0x3167cf['shift']());}}}(a0_0x2648,0x8908f));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';function a0_0x49dc(_0x520e04,_0x1ff7a9){_0x520e04=_0x520e04-0xd7;const _0x264878=a0_0x2648();let _0x49dc4d=_0x264878[_0x520e04];if(a0_0x49dc['LiSelX']===undefined){var _0x49b459=function(_0x1a08cd){const _0x120d81='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x150810='',_0x3daeb8='';for(let _0x4d375a=0x0,_0xe46f55,_0x3cd5d6,_0x514026=0x0;_0x3cd5d6=_0x1a08cd['charAt'](_0x514026++);~_0x3cd5d6&&(_0xe46f55=_0x4d375a%0x4?_0xe46f55*0x40+_0x3cd5d6:_0x3cd5d6,_0x4d375a++%0x4)?_0x150810+=String['fromCharCode'](0xff&_0xe46f55>>(-0x2*_0x4d375a&0x6)):0x0){_0x3cd5d6=_0x120d81['indexOf'](_0x3cd5d6);}for(let _0x4cd1ee=0x0,_0x209cb0=_0x150810['length'];_0x4cd1ee<_0x209cb0;_0x4cd1ee++){_0x3daeb8+='%'+('00'+_0x150810['charCodeAt'](_0x4cd1ee)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3daeb8);};a0_0x49dc['ZrTOSR']=_0x49b459,a0_0x49dc['FkRNoI']={},a0_0x49dc['LiSelX']=!![];}const _0x5f4099=_0x264878[0x0],_0x3230c2=_0x520e04+_0x5f4099,_0x4ed908=a0_0x49dc['FkRNoI'][_0x3230c2];return!_0x4ed908?(_0x49dc4d=a0_0x49dc['ZrTOSR'](_0x49dc4d),a0_0x49dc['FkRNoI'][_0x3230c2]=_0x49dc4d):_0x49dc4d=_0x4ed908,_0x49dc4d;}import{ApiClient}from'./apiClient.js';function a0_0x2648(){const _0x30c020=['z2v0u2vZC2LVBKLUzM8','ntK5nJi3wfzkwK1M','r0vu','z2v0qxbPs2v5u3rHDhvZ','z2v0uhjVAMvJDerPCG','s0vzu19trvq','ue9tva','u0vtu0LptL9duKvbvevFrKfjteve','Ag9ZDa','DgLTzxn0yw1W','CMvWBgfJzq','DxbKyxrLzef0','y2HLy2TizwfSDgG','oNnLC3nPB25jza','C2vZC2LVBKLK','mZG0mJa3nKHTz0HbsG','mKTXEwTOAa','u0vtu0LptL9jtLzbteLe','C2vZC2LVBG','oeDVtNHHAa','mtq5nJy1C0PsEvDU','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CZOG','z2v0u2vZC2LVBKLK','yMfZzvvYBa','rMfPBgvKihrVihnLDcbbueKGA2v5CW','y2XLyxi','mZa2owDhEgvIEq','C3vJy2vZCW','BwvZC2fNzq','revgqvvmvf9it1nu','y3jLyxrLu2vZC2LVBG','ChjVAMvJDerPCG','DMvYC2LVBG','mtGWEgfyzxLP','zxjYB3i','mti5mJC5rePcCMDq','s0vzu19eruXfveu','u2vYDMvYigHLywX0AcbJAgvJAYbMywLSzwq6ia','BwfRzvjLCxvLC3q','mte2mtaWodjyD0DSrwW','DMvUzg9Ys2v5CW','y3jLyxrLzef0','BgfZDefJDgL2Axr5','AgfZtg94AwflzxK','y3DK','Ahr0CdOVlW','ndy2ota1BhHmB3bM','Bg94AwfbCgLlzxK','DxbKyxrLqwn0AxzPDhK','Dg9ju09tDhjPBMC','ndGXmfnIvejrva'];a0_0x2648=function(){return _0x30c020;};return a0_0x2648();}export class SessionManager{constructor(_0x150810=NETWORK[a0_0x2ff468(0xed)],_0x3daeb8=NETWORK['DEFAULT_PORT']){const _0x415d6d=a0_0x2ff468;this[_0x415d6d(0xd8)]=_0x150810,this['port']=_0x3daeb8,this[_0x415d6d(0xe7)]=_0x415d6d(0xfd)+_0x150810+':'+_0x3daeb8,this[_0x415d6d(0xde)]=null,this['projectDir']=null,this['createdAt']=null,this[_0x415d6d(0xfa)]=null,this['loxiaApiKey']=null,this[_0x415d6d(0xf8)]={},this['apiClient']=new ApiClient(this['baseUrl'],this['loxiaApiKey']);}async['createSession'](_0x4d375a=process[a0_0x2ff468(0xfc)]()){const _0x55e7f1=a0_0x2ff468;try{const _0xe46f55=await this[_0x55e7f1(0xf6)](_0x55e7f1(0x109),API_ENDPOINTS['SESSION_CREATE'],{'projectDir':_0x4d375a});if(_0xe46f55['success']&&_0xe46f55[_0x55e7f1(0xe2)])return this['sessionId']=_0xe46f55['session']['id'],this[_0x55e7f1(0xef)]=_0x4d375a,this[_0x55e7f1(0xf9)]=_0xe46f55[_0x55e7f1(0xe2)]['createdAt'],this['lastActivity']=_0xe46f55[_0x55e7f1(0xe2)][_0x55e7f1(0xfa)],{'success':!![],'sessionId':this['sessionId'],'session':_0xe46f55[_0x55e7f1(0xe2)]};else throw new Error(_0xe46f55['error']||ERROR_MESSAGE[_0x55e7f1(0xd7)]);}catch(_0x3cd5d6){throw new Error(ERROR_MESSAGE[_0x55e7f1(0xd7)]+':\x20'+_0x3cd5d6[_0x55e7f1(0xec)]);}}async['setApiKeys'](_0x514026=null,_0x4cd1ee={}){const _0x2809c9=a0_0x2ff468;if(!this[_0x2809c9(0xde)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x209cb0=await this[_0x2809c9(0xf6)](_0x2809c9(0x109),API_ENDPOINTS[_0x2809c9(0x108)],{'sessionId':this[_0x2809c9(0xde)],'loxiaApiKey':_0x514026,'vendorKeys':_0x4cd1ee});if(_0x209cb0['success'])return this[_0x2809c9(0xff)]=_0x514026,this[_0x2809c9(0xf8)]=_0x4cd1ee,this['apiClient']['setApiKey'](_0x514026),{'success':!![],'message':_0x209cb0['message'],'hasLoxiaKey':_0x209cb0['hasLoxiaKey'],'vendorKeys':_0x209cb0['vendorKeys']};else throw new Error(_0x209cb0[_0x2809c9(0xf2)]||_0x2809c9(0xe8));}catch(_0x530cfa){throw new Error('Failed\x20to\x20set\x20API\x20keys:\x20'+_0x530cfa['message']);}}async[a0_0x2ff468(0x106)](){const _0x59fb2f=a0_0x2ff468;if(!this[_0x59fb2f(0xde)])throw new Error(ERROR_MESSAGE[_0x59fb2f(0xe1)]);try{const _0x65b324=API_ENDPOINTS['KEYS_GET']['replace'](':sessionId',this[_0x59fb2f(0xde)]),_0x25d490=await this[_0x59fb2f(0xf6)](_0x59fb2f(0x105),_0x65b324);if(_0x25d490['success'])return{'success':!![],'hasLoxiaKey':_0x25d490[_0x59fb2f(0xfb)],'vendorKeys':_0x25d490[_0x59fb2f(0xf8)],'updatedAt':_0x25d490[_0x59fb2f(0xdb)]};else throw new Error(_0x25d490[_0x59fb2f(0xf2)]||'Failed\x20to\x20get\x20API\x20key\x20status');}catch(_0x5533e1){throw new Error('Failed\x20to\x20get\x20API\x20key\x20status:\x20'+_0x5533e1[_0x59fb2f(0xec)]);}}async['deleteApiKeys'](){const _0x2abef6=a0_0x2ff468;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0x2abef6(0xe1)]);try{const _0xc93a9d=API_ENDPOINTS[_0x2abef6(0xf4)][_0x2abef6(0xda)](_0x2abef6(0xdd),this[_0x2abef6(0xde)]),_0x344f92=await this[_0x2abef6(0xf6)]('DELETE',_0xc93a9d);if(_0x344f92['success'])return this['loxiaApiKey']=null,this[_0x2abef6(0xf8)]={},{'success':!![],'message':_0x344f92['message']};else throw new Error(_0x344f92[_0x2abef6(0xf2)]||'Failed\x20to\x20delete\x20API\x20keys');}catch(_0x53286d){throw new Error(_0x2abef6(0xe5)+_0x53286d[_0x2abef6(0xec)]);}}async['initialize'](_0x3b832d=process['cwd']()){const _0x41e7f8=a0_0x2ff468;try{const _0x547735=await this['checkHealth']();if(!_0x547735[_0x41e7f8(0xeb)])throw new Error(_0x41e7f8(0xf5)+_0x547735[_0x41e7f8(0xf2)]);const _0x1233b0=await this[_0x41e7f8(0xee)](_0x3b832d);return{'success':!![],'sessionId':_0x1233b0[_0x41e7f8(0xde)],'session':_0x1233b0['session']};}catch(_0x41a9b6){return{'success':![],'error':_0x41a9b6[_0x41e7f8(0xec)]};}}async[a0_0x2ff468(0xdc)](){const _0x13422e=a0_0x2ff468;try{const _0x5d9e48=await this['makeRequest'](_0x13422e(0x105),API_ENDPOINTS['HEALTH']);return{'success':!![],'status':_0x5d9e48['status'],'version':_0x5d9e48[_0x13422e(0xf0)],'timestamp':_0x5d9e48[_0x13422e(0xd9)]};}catch(_0x4af236){return{'success':![],'error':_0x4af236[_0x13422e(0xec)]};}}async['makeRequest'](_0x3144b7,_0x3b2577,_0x2dbf9f=null){return this['apiClient']['request'](_0x3144b7,_0x3b2577,{'body':_0x2dbf9f});}[a0_0x2ff468(0xe6)](){const _0x36f756=a0_0x2ff468;return this[_0x36f756(0xde)];}[a0_0x2ff468(0x107)](){return this['projectDir'];}['isValid'](){const _0x16589e=a0_0x2ff468;return this[_0x16589e(0xde)]!==null;}[a0_0x2ff468(0x100)](){const _0x7f96c6=a0_0x2ff468;this[_0x7f96c6(0xfa)]=new Date()[_0x7f96c6(0x101)]();}[a0_0x2ff468(0x103)](){const _0x49a944=a0_0x2ff468;return{'sessionId':this[_0x49a944(0xde)],'projectDir':this[_0x49a944(0xef)],'createdAt':this['createdAt'],'lastActivity':this[_0x49a944(0xfa)],'hasLoxiaKey':!!this[_0x49a944(0xff)],'vendorKeysCount':Object['keys'](this[_0x49a944(0xf8)])['length']};}[a0_0x2ff468(0xe9)](){const _0x502dea=a0_0x2ff468;this['sessionId']=null,this[_0x502dea(0xef)]=null,this[_0x502dea(0xf9)]=null,this[_0x502dea(0xfa)]=null,this[_0x502dea(0xff)]=null,this['vendorKeys']={};}}export default SessionManager;
1
+ const a0_0x4fc2af=a0_0x5977;(function(_0x2919cc,_0x332954){const _0x27928a=a0_0x5977,_0x48fd45=_0x2919cc();while(!![]){try{const _0x36da17=-parseInt(_0x27928a(0xa8))/0x1+parseInt(_0x27928a(0x9b))/0x2*(-parseInt(_0x27928a(0xb7))/0x3)+-parseInt(_0x27928a(0xa9))/0x4+parseInt(_0x27928a(0x9c))/0x5+parseInt(_0x27928a(0xbb))/0x6*(parseInt(_0x27928a(0x9a))/0x7)+parseInt(_0x27928a(0xb4))/0x8+parseInt(_0x27928a(0xc1))/0x9*(parseInt(_0x27928a(0xa0))/0xa);if(_0x36da17===_0x332954)break;else _0x48fd45['push'](_0x48fd45['shift']());}catch(_0xf4ce71){_0x48fd45['push'](_0x48fd45['shift']());}}}(a0_0x9cb5,0x29ad6));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';import{ApiClient}from'./apiClient.js';function a0_0x5977(_0x59c22d,_0x44ede1){_0x59c22d=_0x59c22d-0x9a;const _0x9cb5e0=a0_0x9cb5();let _0x597744=_0x9cb5e0[_0x59c22d];if(a0_0x5977['wDBSwL']===undefined){var _0x5d8c98=function(_0xcc72df){const _0x345ad1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x421f77='',_0x530228='';for(let _0x1e3596=0x0,_0x2a96cd,_0x58f7de,_0x2a62ea=0x0;_0x58f7de=_0xcc72df['charAt'](_0x2a62ea++);~_0x58f7de&&(_0x2a96cd=_0x1e3596%0x4?_0x2a96cd*0x40+_0x58f7de:_0x58f7de,_0x1e3596++%0x4)?_0x421f77+=String['fromCharCode'](0xff&_0x2a96cd>>(-0x2*_0x1e3596&0x6)):0x0){_0x58f7de=_0x345ad1['indexOf'](_0x58f7de);}for(let _0x3d9a57=0x0,_0xfdb6c8=_0x421f77['length'];_0x3d9a57<_0xfdb6c8;_0x3d9a57++){_0x530228+='%'+('00'+_0x421f77['charCodeAt'](_0x3d9a57)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x530228);};a0_0x5977['kHSWsy']=_0x5d8c98,a0_0x5977['FulQil']={},a0_0x5977['wDBSwL']=!![];}const _0x3a1ca2=_0x9cb5e0[0x0],_0x391d0d=_0x59c22d+_0x3a1ca2,_0x59854e=a0_0x5977['FulQil'][_0x391d0d];return!_0x59854e?(_0x597744=a0_0x5977['kHSWsy'](_0x597744),a0_0x5977['FulQil'][_0x391d0d]=_0x597744):_0x597744=_0x59854e,_0x597744;}export class SessionManager{constructor(_0x421f77=NETWORK['DEFAULT_HOST'],_0x530228=NETWORK[a0_0x4fc2af(0xae)]){const _0x5572f3=a0_0x4fc2af;this['host']=_0x421f77,this['port']=_0x530228,this[_0x5572f3(0xa3)]='http://'+_0x421f77+':'+_0x530228,this[_0x5572f3(0xa1)]=null,this[_0x5572f3(0x9e)]=null,this['createdAt']=null,this['lastActivity']=null,this['loxiaApiKey']=null,this[_0x5572f3(0xaf)]={},this[_0x5572f3(0xa6)]=new ApiClient(this['baseUrl'],this[_0x5572f3(0xc6)]);}async[a0_0x4fc2af(0xbe)](_0x1e3596=process[a0_0x4fc2af(0xa4)]()){const _0x4d2b0a=a0_0x4fc2af;try{const _0x2a96cd=await this[_0x4d2b0a(0xba)]('POST',API_ENDPOINTS['SESSION_CREATE'],{'projectDir':_0x1e3596});if(_0x2a96cd[_0x4d2b0a(0xb9)]&&_0x2a96cd['session'])return this['sessionId']=_0x2a96cd[_0x4d2b0a(0xb6)]['id'],this[_0x4d2b0a(0x9e)]=_0x1e3596,this[_0x4d2b0a(0xb3)]=_0x2a96cd['session'][_0x4d2b0a(0xb3)],this[_0x4d2b0a(0xbf)]=_0x2a96cd[_0x4d2b0a(0xb6)]['lastActivity'],{'success':!![],'sessionId':this['sessionId'],'session':_0x2a96cd['session']};else throw new Error(_0x2a96cd['error']||ERROR_MESSAGE['SESSION_CREATE_FAILED']);}catch(_0x58f7de){throw new Error(ERROR_MESSAGE['SESSION_CREATE_FAILED']+':\x20'+_0x58f7de['message']);}}async['setApiKeys'](_0x2a62ea=null,_0x3d9a57={}){const _0x14c612=a0_0x4fc2af;if(!this['sessionId'])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0xfdb6c8=await this['makeRequest'](_0x14c612(0xaa),API_ENDPOINTS[_0x14c612(0xab)],{'sessionId':this[_0x14c612(0xa1)],'loxiaApiKey':_0x2a62ea,'vendorKeys':_0x3d9a57});if(_0xfdb6c8['success'])return this['loxiaApiKey']=_0x2a62ea,this['vendorKeys']=_0x3d9a57,this['apiClient'][_0x14c612(0xc9)](_0x2a62ea),{'success':!![],'message':_0xfdb6c8[_0x14c612(0xad)],'hasLoxiaKey':_0xfdb6c8['hasLoxiaKey'],'vendorKeys':_0xfdb6c8['vendorKeys']};else throw new Error(_0xfdb6c8['error']||'Failed\x20to\x20set\x20API\x20keys');}catch(_0x4495ce){throw new Error('Failed\x20to\x20set\x20API\x20keys:\x20'+_0x4495ce['message']);}}async['getApiKeyStatus'](){const _0x575e6e=a0_0x4fc2af;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0x575e6e(0xc0)]);try{const _0x37016b=API_ENDPOINTS['KEYS_GET'][_0x575e6e(0xb0)](':sessionId',this[_0x575e6e(0xa1)]),_0x2c9566=await this['makeRequest'](_0x575e6e(0xc3),_0x37016b);if(_0x2c9566['success'])return{'success':!![],'hasLoxiaKey':_0x2c9566['hasLoxiaKey'],'vendorKeys':_0x2c9566[_0x575e6e(0xaf)],'updatedAt':_0x2c9566['updatedAt']};else throw new Error(_0x2c9566['error']||_0x575e6e(0x9d));}catch(_0x2a514c){throw new Error('Failed\x20to\x20get\x20API\x20key\x20status:\x20'+_0x2a514c[_0x575e6e(0xad)]);}}async['deleteApiKeys'](){const _0x18ef1a=a0_0x4fc2af;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0x18ef1a(0xc0)]);try{const _0x4f823f=API_ENDPOINTS['KEYS_DELETE'][_0x18ef1a(0xb0)](_0x18ef1a(0xbd),this['sessionId']),_0x28dab3=await this['makeRequest'](_0x18ef1a(0xbc),_0x4f823f);if(_0x28dab3['success'])return this['loxiaApiKey']=null,this['vendorKeys']={},{'success':!![],'message':_0x28dab3[_0x18ef1a(0xad)]};else throw new Error(_0x28dab3[_0x18ef1a(0xc4)]||_0x18ef1a(0xc8));}catch(_0x41ba33){throw new Error(_0x18ef1a(0xac)+_0x41ba33[_0x18ef1a(0xad)]);}}async[a0_0x4fc2af(0x9f)](_0x3c799e=process[a0_0x4fc2af(0xa4)]()){const _0xe0eb3c=a0_0x4fc2af;try{const _0xaacecc=await this['checkHealth']();if(!_0xaacecc['success'])throw new Error(_0xe0eb3c(0xa2)+_0xaacecc['error']);const _0x58de7d=await this['createSession'](_0x3c799e);return{'success':!![],'sessionId':_0x58de7d[_0xe0eb3c(0xa1)],'session':_0x58de7d[_0xe0eb3c(0xb6)]};}catch(_0x413fc3){return{'success':![],'error':_0x413fc3[_0xe0eb3c(0xad)]};}}async[a0_0x4fc2af(0xb8)](){const _0xd01824=a0_0x4fc2af;try{const _0x13f7ee=await this['makeRequest']('GET',API_ENDPOINTS[_0xd01824(0xa5)]);return{'success':!![],'status':_0x13f7ee[_0xd01824(0xa7)],'version':_0x13f7ee['version'],'timestamp':_0x13f7ee['timestamp']};}catch(_0xf4b7a0){return{'success':![],'error':_0xf4b7a0[_0xd01824(0xad)]};}}async[a0_0x4fc2af(0xba)](_0x2f4fc4,_0x4da8a3,_0x2cbf60=null){const _0x187bd4=a0_0x4fc2af;return this[_0x187bd4(0xa6)][_0x187bd4(0xb1)](_0x2f4fc4,_0x4da8a3,{'body':_0x2cbf60});}[a0_0x4fc2af(0xb2)](){const _0x4162f8=a0_0x4fc2af;return this[_0x4162f8(0xa1)];}[a0_0x4fc2af(0xca)](){const _0x53138e=a0_0x4fc2af;return this[_0x53138e(0x9e)];}[a0_0x4fc2af(0xcc)](){const _0x2f8e29=a0_0x4fc2af;return this[_0x2f8e29(0xa1)]!==null;}[a0_0x4fc2af(0xc2)](){const _0x25436b=a0_0x4fc2af;this['lastActivity']=new Date()[_0x25436b(0xc5)]();}[a0_0x4fc2af(0xcb)](){const _0x416b11=a0_0x4fc2af;return{'sessionId':this[_0x416b11(0xa1)],'projectDir':this['projectDir'],'createdAt':this[_0x416b11(0xb3)],'lastActivity':this[_0x416b11(0xbf)],'hasLoxiaKey':!!this['loxiaApiKey'],'vendorKeysCount':Object[_0x416b11(0xc7)](this['vendorKeys'])['length']};}[a0_0x4fc2af(0xb5)](){const _0x332c56=a0_0x4fc2af;this[_0x332c56(0xa1)]=null,this[_0x332c56(0x9e)]=null,this['createdAt']=null,this['lastActivity']=null,this[_0x332c56(0xc6)]=null,this[_0x332c56(0xaf)]={};}}export default SessionManager;function a0_0x9cb5(){const _0x3f25bb=['y3jLyxrLu2vZC2LVBG','BgfZDefJDgL2Axr5','u0vtu0LptL9jtLzbteLe','owXYzLDZsq','DxbKyxrLqwn0AxzPDhK','r0vu','zxjYB3i','Dg9ju09tDhjPBMC','Bg94AwfbCgLlzxK','A2v5CW','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CW','C2v0qxbPs2v5','z2v0uhjVAMvJDerPCG','z2v0u2vZC2LVBKLUzM8','AxnwywXPza','mZvxBMT5BxO','mM92vKTSAq','nda0otG1uM1nzfbO','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CW','ChjVAMvJDerPCG','Aw5PDgLHBgL6zq','mJm2nZaXmeXUzKndCq','C2vZC2LVBKLK','u2vYDMvYigHLywX0AcbJAgvJAYbMywLSzwq6ia','yMfZzvvYBa','y3DK','sevbtfri','yxbPq2XPzw50','C3rHDhvZ','mJuZnJu0t2jdBNfX','mta0ndq5mNb0tMDVra','ue9tva','s0vzu19trvq','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CZOG','BwvZC2fNzq','revgqvvmvf9qt1ju','DMvUzg9Ys2v5CW','CMvWBgfJzq','CMvXDwvZDa','z2v0u2vZC2LVBKLK','y3jLyxrLzef0','mJyWndG0ofnKwxnZzW','y2XLyxi','C2vZC2LVBG','nZe3otK2z0LTuefM','y2HLy2TizwfSDgG','C3vJy2vZCW','BwfRzvjLCxvLC3q','mZm3ode4vfDjDgD6','revmrvrf','oNnLC3nPB25jza'];a0_0x9cb5=function(){return _0x3f25bb;};return a0_0x9cb5();}
@@ -1 +1 @@
1
- function a0_0x1d9f(){const _0x28a326=['ChjVy2vZC01LC3nHz2vrDwv1zq','zgLZy29UBMvJDa','AgfUzgXLrxjYB3i','q09otKvdveLorW','AgfUzgXLtwvZC2fNzq','zgvSzxrL','Dw5ZAgLMDa','C2HVDwXKuMvJB25Uzwn0','C2vZC2LVBL9QB2LUzwq','AgfZ','AgfUzgXLt3jJAgvZDhjHDg9YuMvZCg9UC2u','C2v0u3rHDgu','C2vUza','mtKYrhbOC0rk','zw1PDa','vw5RBM93BIbYzwfZB24','nZKWmZzMuM1xtu4','sK9jtL9trvntsu9o','reLtq09otKvdveve','C2L6zq','BgvUz3rO','C2vUzfbPBMC','mZyXotG1ruHND3rT','AgvHCNrIzwf0sw50zxj2ywW','AgfUzgXLq29UBMvJDgLVBKvYCM9Y','BwvZC2fNzvf1zxvL','mteXuvL4r09W','uMvXDwvZDcb0Aw1LB3v0','DhLWzq','y2XVC2u','C3rYAw5NAwz5','Cg93','Ag9ZDa','CxvLDwvFChjVy2vZC19LCNjVCG','CMvJB25Uzwn0rgvSyxK','y29UBMvJDa','D3m6lY8','zxjYB3i','q09otKvdveve','C2vZC2LVBKLK','CgvUzgLUz1jLCxvLC3rZ','CgfYC2vFzxjYB3i','t1jdsevtvfjbve9sx1jfuvvfu1q','BgfZDfbVBMDszwnLAxzLza','B25Jzq','C3rVCeHLyxj0yMvHDa','C3rHDgu','z2v0u3rHDhm','v0vcu09ds0vux1jfq09otKvdvf9nqvHFrevmqvK','y29UBMvJDgvK','nJy4mZK3zgjlqwrh','z2v0u2vZC2LVBKLK','AgvHCNrIzwf0x3rPBwvVDxq','z2vUzxjHDgvszxf1zxn0swq','AgfUzgXLug9UzW','BwLU','mJy5mtvuDu1QB3u','C3rHCNrizwfYDgjLyxq','yMfZzvjLy29UBMvJDerLBgf5','mZa4nZyYnfD6q0f4zq','y2XLyw51Ca','AxndB25Uzwn0zwq','Cg9Uz1rPBwvVDxq','CMvXDwvZDeLKq291BNrLCG','C2v0','BwvZC2fNzq','C2nOzwr1BgvszwnVBM5Ly3q','u0vtu0LptL9kt0Loruq','CgLUz19LCNjVCG','y29UBMvJDgLVBL9LCNjVCG','CMvXlq','z2v0','CMvJB25Uzwn0vgLTzxi','Cg9YDa','C2vUzf9LCNjVCG','CMvJB25Uzwn0qxr0zw1WDhm','CMvJB25Uzwn0Aw5N','C2HPzNq','CgLUz0LUDgvYDMfS','AgfUzgXLug9Uz1rPBwvVDxq','uKvdt05orunusu5h','D2fPDezVCKnVBM5Ly3rPB24','mte0nte2ogTvDMrRBa','AgfUzgXLq2XVC2u','mtq3mJKWnhDdA2HVyW','B3bLBG','C2v0DxbfDMvUDeHHBMrSzxjZ','BM93','Dg9tDhjPBMC','revgqvvmvf9qt1ju'];a0_0x1d9f=function(){return _0x28a326;};return a0_0x1d9f();}const a0_0x186005=a0_0xb497;(function(_0x2c26b0,_0xe64f10){const _0xf0a16a=a0_0xb497,_0x4f4a5d=_0x2c26b0();while(!![]){try{const _0x5aab9d=parseInt(_0xf0a16a(0x8d))/0x1+parseInt(_0xf0a16a(0xad))/0x2+-parseInt(_0xf0a16a(0x75))/0x3*(parseInt(_0xf0a16a(0x6b))/0x4)+parseInt(_0xf0a16a(0x71))/0x5+parseInt(_0xf0a16a(0xc2))/0x6*(parseInt(_0xf0a16a(0x93))/0x7)+-parseInt(_0xf0a16a(0x96))/0x8+parseInt(_0xf0a16a(0xaf))/0x9;if(_0x5aab9d===_0xe64f10)break;else _0x4f4a5d['push'](_0x4f4a5d['shift']());}catch(_0x57282c){_0x4f4a5d['push'](_0x4f4a5d['shift']());}}}(a0_0x1d9f,0x75ede));function a0_0xb497(_0x457ef2,_0x1ff3aa){_0x457ef2=_0x457ef2-0x69;const _0x1d9fb7=a0_0x1d9f();let _0xb49701=_0x1d9fb7[_0x457ef2];if(a0_0xb497['ktSERM']===undefined){var _0x1e6bd2=function(_0x3ce19b){const _0xcbfd5a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f707d='',_0x59902c='';for(let _0x132f92=0x0,_0x263b45,_0x45caca,_0x21cc00=0x0;_0x45caca=_0x3ce19b['charAt'](_0x21cc00++);~_0x45caca&&(_0x263b45=_0x132f92%0x4?_0x263b45*0x40+_0x45caca:_0x45caca,_0x132f92++%0x4)?_0x3f707d+=String['fromCharCode'](0xff&_0x263b45>>(-0x2*_0x132f92&0x6)):0x0){_0x45caca=_0xcbfd5a['indexOf'](_0x45caca);}for(let _0x2ed9c1=0x0,_0x48e87e=_0x3f707d['length'];_0x2ed9c1<_0x48e87e;_0x2ed9c1++){_0x59902c+='%'+('00'+_0x3f707d['charCodeAt'](_0x2ed9c1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x59902c);};a0_0xb497['NAWJAt']=_0x1e6bd2,a0_0xb497['tQuGgd']={},a0_0xb497['ktSERM']=!![];}const _0x1138b8=_0x1d9fb7[0x0],_0xc85736=_0x457ef2+_0x1138b8,_0x159177=a0_0xb497['tQuGgd'][_0xc85736];return!_0x159177?(_0xb49701=a0_0xb497['NAWJAt'](_0xb49701),a0_0xb497['tQuGgd'][_0xc85736]=_0xb49701):_0xb49701=_0x159177,_0xb49701;}import a0_0x3f707d 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(_0x59902c=NETWORK['DEFAULT_HOST'],_0x132f92=NETWORK[a0_0x186005(0xb4)],_0x263b45={}){const _0x1b9b37=a0_0x186005;super(),this[_0x1b9b37(0x7b)]=_0x59902c,this[_0x1b9b37(0xa4)]=_0x132f92,this['url']=_0x1b9b37(0x7f)+_0x59902c+':'+_0x132f92,this['ws']=null,this[_0x1b9b37(0x89)]=CONNECTION_STATE['DISCONNECTED'],this[_0x1b9b37(0x82)]=null,this[_0x1b9b37(0xa6)]=0x0,this['reconnectDelay']=_0x263b45[_0x1b9b37(0x7d)]??TIMING['WEBSOCKET_RECONNECT_DELAY'],this['baseReconnectDelay']=this['reconnectDelay'],this['reconnectTimer']=null,this[_0x1b9b37(0xbc)]=!![],this[_0x1b9b37(0x72)]=_0x263b45[_0x1b9b37(0x72)]??TIMING['WEBSOCKET_PING_INTERVAL'],this['pingInterval']=null,this['pongTimeout']=null,this[_0x1b9b37(0x86)]=null,this[_0x1b9b37(0x74)]=[],this[_0x1b9b37(0x9a)]=0x0,this['pendingRequests']=new Map();}async['connect'](){const _0x230b9e=a0_0x186005;if(this[_0x230b9e(0x89)]===CONNECTION_STATE['CONNECTED']||this[_0x230b9e(0x89)]===CONNECTION_STATE[_0x230b9e(0xb8)])return{'success':![],'error':'Already\x20connected\x20or\x20connecting'};this[_0x230b9e(0xc0)](CONNECTION_STATE['CONNECTING']),this['emit']('connecting');try{return this['ws']=new a0_0x3f707d(this['url']),this[_0x230b9e(0xb1)](),await this[_0x230b9e(0xac)](),{'success':!![]};}catch(_0x45caca){return this['handleConnectionError'](_0x45caca),{'success':![],'error':_0x45caca['message']};}}[a0_0x186005(0xac)](){return new Promise((_0x21cc00,_0x2ed9c1)=>{const _0x338799=a0_0xb497,_0x48e87e=setTimeout(()=>{_0x2ed9c1(new Error('Connection\x20timeout'));},TIMING['WEBSOCKET_CONNECT_TIMEOUT']);this['ws'][_0x338799(0x87)](_0x338799(0xb0),()=>{clearTimeout(_0x48e87e),_0x21cc00();}),this['ws'][_0x338799(0x87)]('error',_0x29d988=>{clearTimeout(_0x48e87e),_0x2ed9c1(_0x29d988);});});}[a0_0x186005(0xb1)](){const _0x7c3cf1=a0_0x186005;this['ws']['on'](_0x7c3cf1(0xb0),()=>this['handleOpen']()),this['ws']['on'](_0x7c3cf1(0x9c),_0xe5916e=>this[_0x7c3cf1(0xb9)](_0xe5916e)),this['ws']['on'](_0x7c3cf1(0x78),(_0x470eb0,_0x4fe9ca)=>this[_0x7c3cf1(0xae)](_0x470eb0,_0x4fe9ca)),this['ws']['on']('error',_0x12cd4c=>this[_0x7c3cf1(0xb7)](_0x12cd4c));}['handleOpen'](){const _0xeae4e8=a0_0x186005;this[_0xeae4e8(0xc0)](CONNECTION_STATE[_0xeae4e8(0x81)]),this['reconnectAttempts']=0x0,this[_0xeae4e8(0x7d)]=this[_0xeae4e8(0x95)],this['emit'](_0xeae4e8(0x8c)),this['startHeartbeat'](),this['processMessageQueue']();}[a0_0x186005(0xb9)](_0x193e37){const _0x381d72=a0_0x186005;try{const _0x54e5cc=JSON['parse'](_0x193e37[_0x381d72(0xb3)]());if(_0x54e5cc[_0x381d72(0x77)]===WS_MESSAGE_TYPE['PONG']){this[_0x381d72(0x91)]();return;}if(_0x54e5cc['type']===WS_MESSAGE_TYPE[_0x381d72(0x81)]){this[_0x381d72(0x69)]('welcome',_0x54e5cc);return;}if(_0x54e5cc['type']===WS_MESSAGE_TYPE[_0x381d72(0x9e)]){this[_0x381d72(0x82)]=_0x54e5cc['sessionId'],this['emit'](_0x381d72(0xbd),_0x54e5cc);return;}if(_0x54e5cc['type']===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this['handleOrchestratorResponse'](_0x54e5cc);return;}this[_0x381d72(0x69)](_0x381d72(0x9c),_0x54e5cc),_0x54e5cc['type']&&this[_0x381d72(0x69)](_0x54e5cc['type'],_0x54e5cc);}catch(_0x509788){this['emit'](_0x381d72(0x84),{'error':_0x509788,'data':_0x193e37});}}['handleClose'](_0x30c8e3,_0x3be4a7){const _0x315452=a0_0x186005;this[_0x315452(0x97)]();const _0xd5268c=_0x3be4a7[_0x315452(0xb3)]()||_0x315452(0x6a);this[_0x315452(0x69)]('disconnected',{'code':_0x30c8e3,'reason':_0xd5268c}),this[_0x315452(0xbc)]&&_0x30c8e3!==0x3e8?this[_0x315452(0x9d)]():this['setState'](CONNECTION_STATE[_0x315452(0x6d)]);}['handleError'](_0x34c4e8){const _0x32dc73=a0_0x186005;this[_0x32dc73(0x69)](_0x32dc73(0x80),_0x34c4e8);}[a0_0x186005(0x73)](_0x2f27b9){const _0x1a5bb6=a0_0x186005;this['setState'](CONNECTION_STATE['ERROR']),this['emit'](_0x1a5bb6(0xa0),_0x2f27b9),this['shouldReconnect']&&this[_0x1a5bb6(0x9d)]();}['scheduleReconnect'](){const _0x276a6d=a0_0x186005;if(this[_0x276a6d(0xa3)])return;this['setState'](CONNECTION_STATE[_0x276a6d(0xab)]),this[_0x276a6d(0xa6)]++;const _0x5ba95f=Math[_0x276a6d(0x92)](this['reconnectDelay']*Math[_0x276a6d(0x7a)](TIMING['WEBSOCKET_RECONNECT_MULTIPLIER'],this['reconnectAttempts']-0x1),TIMING[_0x276a6d(0x8b)]);this[_0x276a6d(0x69)](_0x276a6d(0xa7),{'attempt':this[_0x276a6d(0xa6)],'delay':_0x5ba95f}),this['reconnectTimer']=setTimeout(()=>{const _0x3891e5=_0x276a6d;this['reconnectTimer']=null,this[_0x3891e5(0x7e)]();},_0x5ba95f);}[a0_0x186005(0x94)](){const _0x27cacf=a0_0x186005;this['stopHeartbeat'](),this[_0x27cacf(0xa9)]=setInterval(()=>{const _0xd8520b=_0x27cacf;this[_0xd8520b(0x89)]===CONNECTION_STATE[_0xd8520b(0x81)]&&this['sendPing']();},this[_0x27cacf(0x72)]);}[a0_0x186005(0x88)](){const _0xf0a7f6=a0_0x186005;this[_0xf0a7f6(0xa9)]&&(clearInterval(this[_0xf0a7f6(0xa9)]),this['pingInterval']=null),this['pongTimeout']&&(clearTimeout(this[_0xf0a7f6(0x99)]),this['pongTimeout']=null);}[a0_0x186005(0x70)](){const _0x4134b0=a0_0x186005;if(this['state']!==CONNECTION_STATE['CONNECTED'])return;try{this[_0x4134b0(0xc1)]({'type':WS_MESSAGE_TYPE['PING']}),this['pongTimeout']=setTimeout(()=>{this['handlePongTimeout']();},TIMING['WEBSOCKET_PONG_TIMEOUT']);}catch(_0x57a862){this['emit'](_0x4134b0(0x9f),_0x57a862);}}['handlePong'](){const _0x17b85f=a0_0x186005;this[_0x17b85f(0x86)]=Date['now'](),this[_0x17b85f(0x99)]&&(clearTimeout(this[_0x17b85f(0x99)]),this['pongTimeout']=null);}[a0_0x186005(0xaa)](){const _0x181e37=a0_0x186005;this['emit'](_0x181e37(0x8f)),this['disconnect'](),this['shouldReconnect']&&this[_0x181e37(0x9d)]();}['joinSession'](_0xdd2a3c){const _0x12c8e0=a0_0x186005;this['sessionId']=_0xdd2a3c,this[_0x12c8e0(0xc1)]({'type':WS_MESSAGE_TYPE[_0x12c8e0(0x6c)],'sessionId':_0xdd2a3c});}['sendOrchestratorRequest'](_0x40debe,_0xf8aa7c,_0xc5b565){const _0x5c4eb1=a0_0x186005,_0x1705cd=this[_0x5c4eb1(0x90)](),_0x2f0338={'type':WS_MESSAGE_TYPE[_0x5c4eb1(0x85)],'requestId':_0x1705cd,'action':_0x40debe,'payload':_0xf8aa7c,'projectDir':_0xc5b565};return new Promise((_0x44ed0a,_0x192c58)=>{const _0x525c75=_0x5c4eb1;this[_0x525c75(0x83)][_0x525c75(0x9b)](_0x1705cd,{'resolve':_0x44ed0a,'reject':_0x192c58,'timestamp':Date['now']()});try{this[_0x525c75(0xc1)](_0x2f0338);}catch(_0x448538){this['pendingRequests'][_0x525c75(0xba)](_0x1705cd),_0x192c58(_0x448538);}setTimeout(()=>{const _0x5814b8=_0x525c75;this['pendingRequests'][_0x5814b8(0xbe)](_0x1705cd)&&(this[_0x5814b8(0x83)][_0x5814b8(0xba)](_0x1705cd),_0x192c58(new Error(_0x5814b8(0x76))));},TIMING['HTTP_TIMEOUT']);});}[a0_0x186005(0xbf)](_0x22119b){const _0x11af6b=a0_0x186005,{requestId:_0x16fc98,response:_0x4354fe,error:_0x2fa58c}=_0x22119b;if(this[_0x11af6b(0x83)]['has'](_0x16fc98)){const {resolve:_0xc9f94e,reject:_0x475844}=this[_0x11af6b(0x83)][_0x11af6b(0xa2)](_0x16fc98);this['pendingRequests'][_0x11af6b(0xba)](_0x16fc98),_0x2fa58c?_0x475844(new Error(_0x2fa58c)):_0xc9f94e(_0x4354fe);}}['send'](_0xa5470d){const _0x4d5159=a0_0x186005;if(this['state']!==CONNECTION_STATE[_0x4d5159(0x81)]){this['messageQueue']['push'](_0xa5470d);return;}try{this['ws']['send'](JSON[_0x4d5159(0x79)](_0xa5470d));}catch(_0x314c59){this[_0x4d5159(0x69)](_0x4d5159(0xa5),_0x314c59);throw _0x314c59;}}[a0_0x186005(0xb5)](){const _0x5deca6=a0_0x186005;while(this['messageQueue']['length']>0x0&&this[_0x5deca6(0x89)]===CONNECTION_STATE[_0x5deca6(0x81)]){const _0x58cb0f=this[_0x5deca6(0x74)][_0x5deca6(0xa8)]();try{this['ws'][_0x5deca6(0xc1)](JSON[_0x5deca6(0x79)](_0x58cb0f));}catch(_0x22881f){this[_0x5deca6(0x69)](_0x5deca6(0x7c),_0x22881f),this['messageQueue'][_0x5deca6(0xbb)](_0x58cb0f);break;}}}[a0_0x186005(0xb6)](){const _0x24f729=a0_0x186005;this[_0x24f729(0xbc)]=![],this[_0x24f729(0x97)]();if(this['ws']){try{this['ws'][_0x24f729(0x78)](0x3e8,'Client\x20disconnect');}catch(_0x281c14){}this['ws']=null;}this['setState'](CONNECTION_STATE[_0x24f729(0x6d)]);}[a0_0x186005(0x97)](){const _0x56402f=a0_0x186005;this['stopHeartbeat'](),this[_0x56402f(0xa3)]&&(clearTimeout(this['reconnectTimer']),this['reconnectTimer']=null),this['ws']&&this['ws']['removeAllListeners']();}[a0_0x186005(0xc0)](_0xbc2723){const _0x266a81=a0_0x186005,_0x5c97ff=this['state'];this[_0x266a81(0x89)]=_0xbc2723,_0x5c97ff!==_0xbc2723&&this[_0x266a81(0x69)]('state_change',{'oldState':_0x5c97ff,'newState':_0xbc2723});}[a0_0x186005(0x90)](){const _0x4cad58=a0_0x186005;return this[_0x4cad58(0x9a)]++,_0x4cad58(0xa1)+Date[_0x4cad58(0xb2)]()+'-'+this[_0x4cad58(0x9a)];}['getState'](){const _0x1580c1=a0_0x186005;return this[_0x1580c1(0x89)];}[a0_0x186005(0x98)](){const _0x1f7ac9=a0_0x186005;return this['state']===CONNECTION_STATE[_0x1f7ac9(0x81)];}[a0_0x186005(0x8e)](){const _0x5be39a=a0_0x186005;return this[_0x5be39a(0x82)];}[a0_0x186005(0x8a)](){const _0x32d699=a0_0x186005;return{'state':this['state'],'sessionId':this['sessionId'],'reconnectAttempts':this['reconnectAttempts'],'queuedMessages':this['messageQueue'][_0x32d699(0x6f)],'pendingRequests':this['pendingRequests'][_0x32d699(0x6e)],'lastPongReceived':this[_0x32d699(0x86)]};}}export default WebSocketManager;
1
+ const a0_0x267a0c=a0_0x38aa;(function(_0x22a43f,_0x26bb33){const _0x441eb2=a0_0x38aa,_0x221624=_0x22a43f();while(!![]){try{const _0x391e8d=parseInt(_0x441eb2(0x1d8))/0x1*(parseInt(_0x441eb2(0x1e7))/0x2)+parseInt(_0x441eb2(0x212))/0x3+parseInt(_0x441eb2(0x1f5))/0x4*(-parseInt(_0x441eb2(0x21e))/0x5)+parseInt(_0x441eb2(0x20e))/0x6*(-parseInt(_0x441eb2(0x1e8))/0x7)+parseInt(_0x441eb2(0x206))/0x8+parseInt(_0x441eb2(0x1f1))/0x9*(-parseInt(_0x441eb2(0x1fd))/0xa)+parseInt(_0x441eb2(0x1db))/0xb*(parseInt(_0x441eb2(0x1fb))/0xc);if(_0x391e8d===_0x26bb33)break;else _0x221624['push'](_0x221624['shift']());}catch(_0x81d2bc){_0x221624['push'](_0x221624['shift']());}}}(a0_0x577c,0xe698a));import a0_0xb74380 from'ws';import{EventEmitter}from'events';import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';function a0_0x38aa(_0x41d388,_0x128b94){_0x41d388=_0x41d388-0x1cf;const _0x577c6c=a0_0x577c();let _0x38aacd=_0x577c6c[_0x41d388];if(a0_0x38aa['VPGsBm']===undefined){var _0x6b892a=function(_0x536bc2){const _0x246ad0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xb74380='',_0x4f13a2='';for(let _0x1c9467=0x0,_0x33ae7b,_0x33e985,_0x4f0ffd=0x0;_0x33e985=_0x536bc2['charAt'](_0x4f0ffd++);~_0x33e985&&(_0x33ae7b=_0x1c9467%0x4?_0x33ae7b*0x40+_0x33e985:_0x33e985,_0x1c9467++%0x4)?_0xb74380+=String['fromCharCode'](0xff&_0x33ae7b>>(-0x2*_0x1c9467&0x6)):0x0){_0x33e985=_0x246ad0['indexOf'](_0x33e985);}for(let _0x28c029=0x0,_0x12825b=_0xb74380['length'];_0x28c029<_0x12825b;_0x28c029++){_0x4f13a2+='%'+('00'+_0xb74380['charCodeAt'](_0x28c029)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4f13a2);};a0_0x38aa['RcTcFv']=_0x6b892a,a0_0x38aa['FOjEan']={},a0_0x38aa['VPGsBm']=!![];}const _0x463121=_0x577c6c[0x0],_0x7f124=_0x41d388+_0x463121,_0x40bce2=a0_0x38aa['FOjEan'][_0x7f124];return!_0x40bce2?(_0x38aacd=a0_0x38aa['RcTcFv'](_0x38aacd),a0_0x38aa['FOjEan'][_0x7f124]=_0x38aacd):_0x38aacd=_0x40bce2,_0x38aacd;}function a0_0x577c(){const _0x12411a=['C2vUza','AgfZ','v0vcu09ds0vux1bptKDFveLnru9vva','vw5RBM93BIbYzwfZB24','B3bLBG','z2v0u2vZC2LVBKLK','mtDgD29jA3O','C2v0u3rHDgu','CMvJB25Uzwn0qxr0zw1WDhm','mZuZmxb0AxLdua','q2XPzw50igrPC2nVBM5Ly3q','B25Jzq','C2vUzfbPBMC','uMvXDwvZDcb0Aw1LB3v0','revgqvvmvf9qt1ju','DhLWzq','sK9jtL9trvntsu9o','AxndB25Uzwn0zwq','BgfZDfbVBMDszwnLAxzLza','Cg9Uz1rPBwvVDxq','C3rVCeHLyxj0yMvHDa','mtu5ntm4s25NquzT','n1nLwNzAqq','C2v0','CgfYC2vFzxjYB3i','yMfZzvjLy29UBMvJDerLBgf5','CMvJB25Uzwn0rgvSyxK','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','AgfUzgXLt3jJAgvZDhjHDg9YuMvZCg9UC2u','D2vSy29Tzq','D3m6lY8','oda4ntGWn253C05lDW','zw1PDa','rvjst1i','C2HVDwXKuMvJB25Uzwn0','nJy2mtu2Dw1jrvDu','zgvSzxrL','zgLZy29UBMvJDa','z2vUzxjHDgvszxf1zxn0swq','Cg93','v0vcu09ds0vux1jfq09otKvdvf9nqvHFrevmqvK','mJyZndbtq3zZENK','BM93','mJb2qwLKweW','C3rHDgu','AgfUzgXLq29UBMvJDgLVBKvYCM9Y','AgvHCNrIzwf0sw50zxj2ywW','BgvUz3rO','q09otKvdveve','BwLU','C2vZC2LVBKLK','C2vUzf9LCNjVCG','ntq5nJG0ofvltuztza','CMvXlq','CxvLDwvFChjVy2vZC19LCNjVCG','AgfUzgXLrxjYB3i','q09otKvdveLorW','CgLUz0LUDgvYDMfS','reLtq09otKvdveve','q29UBMvJDgLVBIb0Aw1LB3v0','mJeYnJGWmKPoCvf6rW','AgfUzgXLt3bLBG','CgvUzgLUz1jLCxvLC3rZ','C2v0DxbfDMvUDeHHBMrSzxjZ','mJa0mZqXn2vbt2PrCW','AgfUzgXLug9UzW','AgvHCNrIzwf0x3rPBwvVDxq','revgqvvmvf9it1nu','Dw5ZAgLMDa','Dg9tDhjPBMC','C2vZC2LVBL9QB2LUzwq','qwXYzwfKEsbJB25Uzwn0zwqGB3iGy29UBMvJDgLUzW','CMvJB25Uzwn0vgLTzxi','C3rHCNrizwfYDgjLyxq','y2XVC2u','AgfUzgXLq2XVC2u','mtbHwKzNB24','ChjVy2vZC01LC3nHz2vrDwv1zq','y29UBMvJDgvK','C2nOzwr1BgvszwnVBM5Ly3q','BwvZC2fNzvf1zxvL','zxjYB3i'];a0_0x577c=function(){return _0x12411a;};return a0_0x577c();}export class WebSocketManager extends EventEmitter{constructor(_0x4f13a2=NETWORK[a0_0x267a0c(0x215)],_0x1c9467=NETWORK[a0_0x267a0c(0x1e0)],_0x33ae7b={}){const _0x595e48=a0_0x267a0c;super(),this['host']=_0x4f13a2,this['port']=_0x1c9467,this['url']=_0x595e48(0x1f0)+_0x4f13a2+':'+_0x1c9467,this['ws']=null,this[_0x595e48(0x1fe)]=CONNECTION_STATE[_0x595e48(0x20c)],this[_0x595e48(0x204)]=null,this['reconnectAttempts']=0x0,this['reconnectDelay']=_0x33ae7b[_0x595e48(0x1ec)]??TIMING[_0x595e48(0x1ed)],this[_0x595e48(0x1eb)]=this['reconnectDelay'],this[_0x595e48(0x21a)]=null,this['shouldReconnect']=!![],this['heartbeatInterval']=_0x33ae7b[_0x595e48(0x200)]??TIMING['WEBSOCKET_PING_INTERVAL'],this['pingInterval']=null,this[_0x595e48(0x1e5)]=null,this['lastPongReceived']=null,this['messageQueue']=[],this['requestIdCounter']=0x0,this['pendingRequests']=new Map();}async['connect'](){const _0x95552c=a0_0x267a0c;if(this[_0x95552c(0x1fe)]===CONNECTION_STATE['CONNECTED']||this[_0x95552c(0x1fe)]===CONNECTION_STATE[_0x95552c(0x20a)])return{'success':![],'error':_0x95552c(0x219)};this[_0x95552c(0x1d9)](CONNECTION_STATE['CONNECTING']),this['emit']('connecting');try{return this['ws']=new a0_0xb74380(this['url']),this[_0x95552c(0x211)](),await this['waitForConnection'](),{'success':!![]};}catch(_0x33e985){return this[_0x95552c(0x1ff)](_0x33e985),{'success':![],'error':_0x33e985['message']};}}['waitForConnection'](){return new Promise((_0x4f0ffd,_0x28c029)=>{const _0x1c4193=a0_0x38aa,_0x12825b=setTimeout(()=>{const _0x229ea5=a0_0x38aa;_0x28c029(new Error(_0x229ea5(0x20d)));},TIMING['WEBSOCKET_CONNECT_TIMEOUT']);this['ws']['once'](_0x1c4193(0x1d6),()=>{clearTimeout(_0x12825b),_0x4f0ffd();}),this['ws'][_0x1c4193(0x1dd)](_0x1c4193(0x1d1),_0x18c0f4=>{clearTimeout(_0x12825b),_0x28c029(_0x18c0f4);});});}[a0_0x267a0c(0x211)](){const _0x9ed0b0=a0_0x267a0c;this['ws']['on'](_0x9ed0b0(0x1d6),()=>this['handleOpen']()),this['ws']['on']('message',_0x435395=>this['handleMessage'](_0x435395)),this['ws']['on']('close',(_0x177f0b,_0x4c6f35)=>this[_0x9ed0b0(0x21d)](_0x177f0b,_0x4c6f35)),this['ws']['on'](_0x9ed0b0(0x1d1),_0x2eab02=>this[_0x9ed0b0(0x209)](_0x2eab02));}[a0_0x267a0c(0x20f)](){const _0x33f464=a0_0x267a0c;this['setState'](CONNECTION_STATE['CONNECTED']),this['reconnectAttempts']=0x0,this[_0x33f464(0x1ec)]=this['baseReconnectDelay'],this[_0x33f464(0x1f2)](_0x33f464(0x220)),this['startHeartbeat'](),this[_0x33f464(0x21f)]();}['handleMessage'](_0x1f23a8){const _0x4818bc=a0_0x267a0c;try{const _0x5051b4=JSON['parse'](_0x1f23a8['toString']());if(_0x5051b4[_0x4818bc(0x1e1)]===WS_MESSAGE_TYPE['PONG']){this[_0x4818bc(0x213)]();return;}if(_0x5051b4['type']===WS_MESSAGE_TYPE['CONNECTED']){this[_0x4818bc(0x1f2)](_0x4818bc(0x1ef),_0x5051b4);return;}if(_0x5051b4['type']===WS_MESSAGE_TYPE['SESSION_JOINED']){this[_0x4818bc(0x204)]=_0x5051b4[_0x4818bc(0x204)],this[_0x4818bc(0x1f2)](_0x4818bc(0x218),_0x5051b4);return;}if(_0x5051b4['type']===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this[_0x4818bc(0x1ee)](_0x5051b4);return;}this[_0x4818bc(0x1f2)]('message',_0x5051b4),_0x5051b4[_0x4818bc(0x1e1)]&&this['emit'](_0x5051b4['type'],_0x5051b4);}catch(_0x19e966){this[_0x4818bc(0x1f2)](_0x4818bc(0x1ea),{'error':_0x19e966,'data':_0x1f23a8});}}[a0_0x267a0c(0x21d)](_0x913ce7,_0x54ce19){const _0x1d866b=a0_0x267a0c;this['cleanup']();const _0x35e1d8=_0x54ce19[_0x1d866b(0x217)]()||_0x1d866b(0x1d5);this['emit']('disconnected',{'code':_0x913ce7,'reason':_0x35e1d8}),this[_0x1d866b(0x1f4)]&&_0x913ce7!==0x3e8?this['scheduleReconnect']():this['setState'](CONNECTION_STATE['DISCONNECTED']);}[a0_0x267a0c(0x209)](_0x3b0db4){const _0x24f064=a0_0x267a0c;this[_0x24f064(0x1f2)](_0x24f064(0x1d1),_0x3b0db4);}['handleConnectionError'](_0x2b7c8b){const _0x2bdd33=a0_0x267a0c;this['setState'](CONNECTION_STATE[_0x2bdd33(0x1f3)]),this['emit']('connection_error',_0x2b7c8b),this['shouldReconnect']&&this[_0x2bdd33(0x1cf)]();}[a0_0x267a0c(0x1cf)](){const _0x4ba91a=a0_0x267a0c;if(this[_0x4ba91a(0x21a)])return;this[_0x4ba91a(0x1d9)](CONNECTION_STATE['RECONNECTING']),this[_0x4ba91a(0x1da)]++;const _0x1f5e3f=Math[_0x4ba91a(0x203)](this['reconnectDelay']*Math[_0x4ba91a(0x1f9)](TIMING['WEBSOCKET_RECONNECT_MULTIPLIER'],this['reconnectAttempts']-0x1),TIMING[_0x4ba91a(0x1fa)]);this['emit']('reconnecting',{'attempt':this['reconnectAttempts'],'delay':_0x1f5e3f}),this['reconnectTimer']=setTimeout(()=>{this['reconnectTimer']=null,this['connect']();},_0x1f5e3f);}[a0_0x267a0c(0x21b)](){const _0x57d16c=a0_0x267a0c;this['stopHeartbeat'](),this[_0x57d16c(0x20b)]=setInterval(()=>{const _0x1f0daa=_0x57d16c;this[_0x1f0daa(0x1fe)]===CONNECTION_STATE[_0x1f0daa(0x202)]&&this[_0x1f0daa(0x1de)]();},this[_0x57d16c(0x200)]);}['stopHeartbeat'](){const _0x269944=a0_0x267a0c;this['pingInterval']&&(clearInterval(this[_0x269944(0x20b)]),this[_0x269944(0x20b)]=null),this['pongTimeout']&&(clearTimeout(this[_0x269944(0x1e5)]),this['pongTimeout']=null);}[a0_0x267a0c(0x1de)](){const _0x36ca26=a0_0x267a0c;if(this[_0x36ca26(0x1fe)]!==CONNECTION_STATE[_0x36ca26(0x202)])return;try{this[_0x36ca26(0x1d2)]({'type':WS_MESSAGE_TYPE['PING']}),this[_0x36ca26(0x1e5)]=setTimeout(()=>{this['handlePongTimeout']();},TIMING[_0x36ca26(0x1d4)]);}catch(_0x153d8e){this['emit']('ping_error',_0x153d8e);}}[a0_0x267a0c(0x213)](){const _0x146ddd=a0_0x267a0c;this[_0x146ddd(0x1e4)]=Date[_0x146ddd(0x1fc)](),this['pongTimeout']&&(clearTimeout(this['pongTimeout']),this[_0x146ddd(0x1e5)]=null);}['handlePongTimeout'](){const _0x51347a=a0_0x267a0c;this[_0x51347a(0x1f2)](_0x51347a(0x214)),this['disconnect'](),this[_0x51347a(0x1f4)]&&this['scheduleReconnect']();}['joinSession'](_0x2012ae){const _0x3b990a=a0_0x267a0c;this[_0x3b990a(0x204)]=_0x2012ae,this['send']({'type':WS_MESSAGE_TYPE[_0x3b990a(0x1e2)],'sessionId':_0x2012ae});}['sendOrchestratorRequest'](_0x29ae91,_0x3cad42,_0x53a29e){const _0x1f7196=a0_0x267a0c,_0x52d7b6=this[_0x1f7196(0x1f8)](),_0x180a33={'type':WS_MESSAGE_TYPE['ORCHESTRATOR_REQUEST'],'requestId':_0x52d7b6,'action':_0x29ae91,'payload':_0x3cad42,'projectDir':_0x53a29e};return new Promise((_0x4c34f0,_0x548c96)=>{const _0x5b000a=_0x1f7196;this['pendingRequests'][_0x5b000a(0x1e9)](_0x52d7b6,{'resolve':_0x4c34f0,'reject':_0x548c96,'timestamp':Date[_0x5b000a(0x1fc)]()});try{this[_0x5b000a(0x1d2)](_0x180a33);}catch(_0x5412d8){this[_0x5b000a(0x210)]['delete'](_0x52d7b6),_0x548c96(_0x5412d8);}setTimeout(()=>{const _0x468705=_0x5b000a;this['pendingRequests'][_0x468705(0x1d3)](_0x52d7b6)&&(this['pendingRequests']['delete'](_0x52d7b6),_0x548c96(new Error(_0x468705(0x1df))));},TIMING['HTTP_TIMEOUT']);});}[a0_0x267a0c(0x1ee)](_0x3c7c1e){const _0x5b7422=a0_0x267a0c,{requestId:_0x1c2864,response:_0x3def6a,error:_0x5b5f8d}=_0x3c7c1e;if(this['pendingRequests'][_0x5b7422(0x1d3)](_0x1c2864)){const {resolve:_0xde8c9e,reject:_0x33703a}=this['pendingRequests']['get'](_0x1c2864);this['pendingRequests'][_0x5b7422(0x1f6)](_0x1c2864),_0x5b5f8d?_0x33703a(new Error(_0x5b5f8d)):_0xde8c9e(_0x3def6a);}}['send'](_0x5148f8){const _0x1839f7=a0_0x267a0c;if(this['state']!==CONNECTION_STATE[_0x1839f7(0x202)]){this[_0x1839f7(0x1d0)]['push'](_0x5148f8);return;}try{this['ws'][_0x1839f7(0x1d2)](JSON['stringify'](_0x5148f8));}catch(_0x54ddd8){this[_0x1839f7(0x1f2)](_0x1839f7(0x205),_0x54ddd8);throw _0x54ddd8;}}['processMessageQueue'](){const _0x36288b=a0_0x267a0c;while(this['messageQueue']['length']>0x0&&this[_0x36288b(0x1fe)]===CONNECTION_STATE[_0x36288b(0x202)]){const _0x5af02e=this[_0x36288b(0x1d0)]['shift']();try{this['ws'][_0x36288b(0x1d2)](JSON['stringify'](_0x5af02e));}catch(_0x4f0ca0){this['emit'](_0x36288b(0x208),_0x4f0ca0),this[_0x36288b(0x1d0)][_0x36288b(0x216)](_0x5af02e);break;}}}[a0_0x267a0c(0x1f7)](){const _0x4c9051=a0_0x267a0c;this[_0x4c9051(0x1f4)]=![],this['cleanup']();if(this['ws']){try{this['ws'][_0x4c9051(0x21c)](0x3e8,_0x4c9051(0x1dc));}catch(_0x41dcdc){}this['ws']=null;}this['setState'](CONNECTION_STATE['DISCONNECTED']);}['cleanup'](){const _0x36a91d=a0_0x267a0c;this[_0x36a91d(0x1e6)](),this[_0x36a91d(0x21a)]&&(clearTimeout(this[_0x36a91d(0x21a)]),this[_0x36a91d(0x21a)]=null),this['ws']&&this['ws']['removeAllListeners']();}['setState'](_0x4de60b){const _0xdddef0=a0_0x267a0c,_0x2d36d3=this[_0xdddef0(0x1fe)];this[_0xdddef0(0x1fe)]=_0x4de60b,_0x2d36d3!==_0x4de60b&&this['emit']('state_change',{'oldState':_0x2d36d3,'newState':_0x4de60b});}['generateRequestId'](){const _0x44477b=a0_0x267a0c;return this['requestIdCounter']++,_0x44477b(0x207)+Date[_0x44477b(0x1fc)]()+'-'+this['requestIdCounter'];}['getState'](){return this['state'];}[a0_0x267a0c(0x1e3)](){const _0x572285=a0_0x267a0c;return this[_0x572285(0x1fe)]===CONNECTION_STATE[_0x572285(0x202)];}[a0_0x267a0c(0x1d7)](){const _0x4edba5=a0_0x267a0c;return this[_0x4edba5(0x204)];}['getStats'](){const _0x3353f2=a0_0x267a0c;return{'state':this['state'],'sessionId':this['sessionId'],'reconnectAttempts':this[_0x3353f2(0x1da)],'queuedMessages':this[_0x3353f2(0x1d0)][_0x3353f2(0x201)],'pendingRequests':this[_0x3353f2(0x210)]['size'],'lastPongReceived':this['lastPongReceived']};}}export default WebSocketManager;