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

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 (121) 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/src/utilities/userDataDir.js +1 -0
  118. package/web-ui/build/index.html +2 -2
  119. package/web-ui/build/static/{index-CoRE46V-.js → index-DXN850Y2.js} +78 -74
  120. package/web-ui/build/static/index-an-YRzUX.css +1 -0
  121. 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
+ (function(_0x152356,_0x3df282){const _0x28d36e=a0_0xadb3,_0x12a9c9=_0x152356();while(!![]){try{const _0x3f4dbc=parseInt(_0x28d36e(0x17d))/0x1*(-parseInt(_0x28d36e(0x161))/0x2)+-parseInt(_0x28d36e(0x192))/0x3*(parseInt(_0x28d36e(0x19b))/0x4)+parseInt(_0x28d36e(0x178))/0x5+parseInt(_0x28d36e(0x16d))/0x6+parseInt(_0x28d36e(0x173))/0x7+-parseInt(_0x28d36e(0x15c))/0x8+parseInt(_0x28d36e(0x171))/0x9*(-parseInt(_0x28d36e(0x190))/0xa);if(_0x3f4dbc===_0x3df282)break;else _0x12a9c9['push'](_0x12a9c9['shift']());}catch(_0x5b6783){_0x12a9c9['push'](_0x12a9c9['shift']());}}}(a0_0x3e24,0x98cac));import{describe,test,expect}from'@jest/globals';function a0_0x3e24(){const _0x2819a8=['mZK4nJy1vNznEgDO','z2v0u2vZC2LVBKLK','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','z2v0u2vZC2LVBKLUzM8','CMvJB25Uzwn0qxr0zw1WDhm','ntC4ntrKrejRBK4','BwLKzgXLD2fYzq','C2vZC2LVBKLK','Dg9czuDYzwf0zxjuAgfU','z2v0u3rHDhm','DMvUzg9Ys2v5CW','zNvUy3rPB24','z2vUzxjHDgvszxf1zxn0swq','qvbjx0vorfbpsu5uuW','Bg9JywXOB3n0','Ahr0CdOVl2XVy2fSAg9ZDdO4mdGW','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','Dg9czurLzMLUzwq','Bg94AwfbCgLlzxK','Dg9nyxrJAa','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','AgfZsgfUzgXLCG','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','mtuYmduWCfHxCuHN','AgfZtg94AwflzxK','mtKWmZm4m01vvM9sAG','BwvZC2fNzvf1zxvL','CMvJzwL2zwrbDa','BM90','Dg9iyxzLuhjVCgvYDhK','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','DgvZDc1TzxnZywDL','z2v0u3rHDgu','v1nFtuvtu0fhrv9uwvbf','nereBhLVAa','BgvUz3rO','y29UBMvJDgvK','Dg9fCxvHBa','tuvtu0fhrv9msvnux0HfsuDiva','C3rHDgu','veLnsu5h','tKvuv09ssW','DxnL','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','reLtq09otKvdveve','ntu2mdGWwvDIzMDX','AxndB25Uzwn0zwq','CMvNAxn0zxjiyw5KBgvY','DgvZDa','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','mtbYsKreCwK','ChjVAMvJDerPCG','revgqvvmvf9qt1ju','Dg9czq','uefhsu5bveLptG','Ag9ZDa','su1br0vFuKvtvuXu','tufyx1jfvfjjrvm','lI4VlI4VyxbPl3nLC3nPB24UANm','revgqvvmvf9it1nu','q29UC3rHBNrZigHHDMuGBM8GBwfNAwmGBNvTyMvYCW','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','ndKWoduYmKnWwwHLyW','zgLZy29UBMvJDgvK','DgvZDc1OB3n0','BNvTyMvY','mtuZqxDMvfvR','Cg9YDa','nJG1ode5ng5cq3jeqW','DgvZDc0XmJm','AxnwywXPza','BM90lweTzNvUy3rPB24','v2vIu29JA2v0twfUywDLCIbOzwXWzxiGBwv0Ag9KCYb3B3jR'];a0_0x3e24=function(){return _0x2819a8;};return a0_0x3e24();}import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function a0_0xadb3(_0x5d0832,_0x3f175b){_0x5d0832=_0x5d0832-0x153;const _0x3e24fa=a0_0x3e24();let _0xadb309=_0x3e24fa[_0x5d0832];if(a0_0xadb3['frcjBE']===undefined){var _0x17ed87=function(_0x40b777){const _0x247d52='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x18b6fb='',_0x11f89e='';for(let _0x30e215=0x0,_0x9356c0,_0x3b4a5d,_0x2ba0d9=0x0;_0x3b4a5d=_0x40b777['charAt'](_0x2ba0d9++);~_0x3b4a5d&&(_0x9356c0=_0x30e215%0x4?_0x9356c0*0x40+_0x3b4a5d:_0x3b4a5d,_0x30e215++%0x4)?_0x18b6fb+=String['fromCharCode'](0xff&_0x9356c0>>(-0x2*_0x30e215&0x6)):0x0){_0x3b4a5d=_0x247d52['indexOf'](_0x3b4a5d);}for(let _0x1927af=0x0,_0x5e07c7=_0x18b6fb['length'];_0x1927af<_0x5e07c7;_0x1927af++){_0x11f89e+='%'+('00'+_0x18b6fb['charCodeAt'](_0x1927af)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x11f89e);};a0_0xadb3['PshGRE']=_0x17ed87,a0_0xadb3['hDLGws']={},a0_0xadb3['frcjBE']=!![];}const _0x2ec3e4=_0x3e24fa[0x0],_0x728f0b=_0x5d0832+_0x2ec3e4,_0x198872=a0_0xadb3['hDLGws'][_0x728f0b];return!_0x198872?(_0xadb309=a0_0xadb3['PshGRE'](_0xadb309),a0_0xadb3['hDLGws'][_0x728f0b]=_0xadb309):_0xadb309=_0x198872,_0xadb309;}describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x4d038f=a0_0xadb3,_0x18b6fb=await import(_0x4d038f(0x18d));expect(_0x18b6fb['UI_DIMENSIONS'])['toBeDefined'](),expect(_0x18b6fb['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x18b6fb[_0x4d038f(0x165)])[_0x4d038f(0x189)](),expect(_0x18b6fb['TIMING'])[_0x4d038f(0x189)](),expect(_0x18b6fb[_0x4d038f(0x157)])[_0x4d038f(0x189)](),expect(_0x18b6fb['CONNECTION_STATE'])[_0x4d038f(0x189)](),expect(_0x18b6fb['AGENT_MODE'])[_0x4d038f(0x189)](),expect(_0x18b6fb[_0x4d038f(0x19a)])[_0x4d038f(0x189)](),expect(_0x18b6fb[_0x4d038f(0x185)])['toBeDefined'](),expect(_0x18b6fb['COMMANDS'])['toBeDefined'](),expect(_0x18b6fb[_0x4d038f(0x157)][_0x4d038f(0x16a)])['toBe'](_0x4d038f(0x186)),expect(_0x18b6fb[_0x4d038f(0x157)][_0x4d038f(0x163)])[_0x4d038f(0x164)](0x1f90),expect(_0x18b6fb['CONNECTION_STATE']['DISCONNECTED'])[_0x4d038f(0x164)](_0x4d038f(0x16e)),expect(_0x18b6fb['CONNECTION_STATE']['CONNECTED'])['toBe'](_0x4d038f(0x19d));}),test('WebSocketManager class can be imported',async()=>{const _0x6c86a0=a0_0xadb3,{WebSocketManager:_0x11f89e}=await import('../../api/websocket.js');expect(_0x11f89e)[_0x6c86a0(0x189)](),expect(typeof _0x11f89e)['toBe']('function');const _0x30e215=new _0x11f89e('localhost',0x1f90);expect(_0x30e215)[_0x6c86a0(0x189)](),expect(_0x30e215['host'])['toBe'](_0x6c86a0(0x186)),expect(_0x30e215['port'])['toBe'](0x1f90),expect(_0x30e215['url'])[_0x6c86a0(0x164)]('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0xf72d61=a0_0xadb3,{SessionManager:_0x9356c0}=await import(_0xf72d61(0x169));expect(_0x9356c0)[_0xf72d61(0x189)](),expect(typeof _0x9356c0)['toBe']('function');const _0x3b4a5d=new _0x9356c0(_0xf72d61(0x186),0x1f90);expect(_0x3b4a5d)[_0xf72d61(0x189)](),expect(_0x3b4a5d[_0xf72d61(0x166)])[_0xf72d61(0x164)]('localhost'),expect(_0x3b4a5d[_0xf72d61(0x172)])['toBe'](0x1f90),expect(_0x3b4a5d['baseUrl'])[_0xf72d61(0x164)](_0xf72d61(0x187));}),test('MessageRouter class can be imported',async()=>{const _0x3e7350=a0_0xadb3,{MessageRouter:_0x2ba0d9}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1927af}=await import(_0x3e7350(0x18c));expect(_0x2ba0d9)['toBeDefined'](),expect(typeof _0x2ba0d9)['toBe'](_0x3e7350(0x183));const _0x5e07c7=new _0x1927af(_0x3e7350(0x186),0x1f90),_0x279494=new _0x2ba0d9(_0x5e07c7);expect(_0x279494)['toBeDefined'](),expect(_0x279494['ws'])[_0x3e7350(0x164)](_0x5e07c7);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0xbb391=a0_0xadb3,{loggingMiddleware:_0x3f1cfe,filterMiddleware:_0x15fbb4,transformMiddleware:_0x40d13a,timestampMiddleware:_0x4883a1,validationMiddleware:_0x145db1}=await import('../../api/messageRouter.js');expect(typeof _0x3f1cfe)[_0xbb391(0x164)]('function'),expect(typeof _0x15fbb4)[_0xbb391(0x164)](_0xbb391(0x183)),expect(typeof _0x40d13a)[_0xbb391(0x164)]('function'),expect(typeof _0x4883a1)['toBe']('function'),expect(typeof _0x145db1)[_0xbb391(0x164)](_0xbb391(0x183));}),test('useConnection hook can be imported',async()=>{const _0x277266=a0_0xadb3,{useConnection:_0x24e437,useConnectionStatus:_0x4e7525}=await import('../../state/useConnection.js');expect(_0x24e437)['toBeDefined'](),expect(typeof _0x24e437)['toBe']('function'),expect(_0x4e7525)[_0x277266(0x189)](),expect(typeof _0x4e7525)[_0x277266(0x164)](_0x277266(0x183));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x2d99bd=a0_0xadb3;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0xd53ba9=a0_0xadb3,{WebSocketManager:_0x1568fb}=await import(_0xd53ba9(0x18c)),{CONNECTION_STATE:_0x146bcf}=await import(_0xd53ba9(0x18d)),_0x1bc3b7=new _0x1568fb(_0xd53ba9(0x16f),0x2382);expect(_0x1bc3b7[_0xd53ba9(0x155)])[_0xd53ba9(0x164)](_0x146bcf[_0xd53ba9(0x15b)]),expect(_0x1bc3b7['sessionId'])[_0xd53ba9(0x164)](null),expect(_0x1bc3b7[_0xd53ba9(0x193)])['toEqual']([]),expect(_0x1bc3b7[_0xd53ba9(0x17c)])[_0xd53ba9(0x164)](0x0),expect(_0x1bc3b7['shouldReconnect'])['toBe'](!![]);}),test(_0x2d99bd(0x197),async()=>{const _0xd9bd92=_0x2d99bd,{SessionManager:_0xbbbe99}=await import(_0xd9bd92(0x169)),_0x46dadd=new _0xbbbe99('test-host',0x2382);expect(_0x46dadd['sessionId'])[_0xd9bd92(0x164)](null),expect(_0x46dadd[_0xd9bd92(0x162)])['toBe'](null),expect(_0x46dadd['loxiaApiKey'])['toBe'](null),expect(_0x46dadd[_0xd9bd92(0x182)])['toEqual']({}),expect(_0x46dadd[_0xd9bd92(0x175)]())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x597fe3=_0x2d99bd,{MessageRouter:_0x19144e}=await import('../../api/messageRouter.js'),{WebSocketManager:_0xee755f}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x2506e7}=await import('../../config/constants.js'),_0x117039=new _0xee755f(_0x597fe3(0x186),0x1f90),_0x4af67b=new _0x19144e(_0x117039);expect(_0x4af67b['hasHandler'](_0x2506e7['MESSAGE_ADDED']))[_0x597fe3(0x164)](!![]),expect(_0x4af67b['hasHandler'](_0x2506e7['AGENT_MODE_CHANGED']))['toBe'](!![]),expect(_0x4af67b['hasHandler'](_0x2506e7['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0x4af67b['hasHandler'](_0x2506e7['COMPACTION_EVENT']))['toBe'](!![]),expect(_0x4af67b[_0x597fe3(0x18e)](_0x2506e7[_0x597fe3(0x167)]))['toBe'](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x233ce9=_0x2d99bd,{MessageRouter:_0x1cfb56}=await import(_0x233ce9(0x159)),{WebSocketManager:_0x60fb25}=await import(_0x233ce9(0x18c)),_0x34a393=new _0x60fb25(_0x233ce9(0x186),0x1f90),_0xd732f5=new _0x1cfb56(_0x34a393),_0x3cca9d=_0x207ada=>_0x207ada;expect(_0xd732f5['middleware']['length'])[_0x233ce9(0x16c)](0x0),_0xd732f5[_0x233ce9(0x158)](_0x3cca9d);const _0x29aa04=_0xd732f5[_0x233ce9(0x17e)][_0x233ce9(0x19c)];expect(_0x29aa04)[_0x233ce9(0x180)](0x0),_0xd732f5['removeMiddleware'](_0x3cca9d),expect(_0xd732f5[_0x233ce9(0x17e)]['length'])['toBe'](_0x29aa04-0x1);}),test(_0x2d99bd(0x15a),async()=>{const _0x4c52cd=_0x2d99bd,{SessionManager:_0x482b95}=await import(_0x4c52cd(0x169)),_0x472351=new _0x482b95(_0x4c52cd(0x186),0x1f90);expect(_0x472351['getSessionId']())[_0x4c52cd(0x164)](null),expect(_0x472351['getProjectDir']())['toBe'](null),expect(_0x472351['isValid']())[_0x4c52cd(0x164)](![]);const _0x31b4cf=_0x472351[_0x4c52cd(0x17b)]();expect(_0x31b4cf)['toHaveProperty']('sessionId'),expect(_0x31b4cf)[_0x4c52cd(0x196)](_0x4c52cd(0x162)),expect(_0x31b4cf)['toHaveProperty'](_0x4c52cd(0x191)),expect(_0x31b4cf)['toHaveProperty']('vendorKeysCount');}),test(_0x2d99bd(0x177),async()=>{const _0x5b3118=_0x2d99bd,{WebSocketManager:_0x5cbfc1}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x47a0d6}=await import('../../config/constants.js'),_0x194334=new _0x5cbfc1(_0x5b3118(0x186),0x1f90);expect(_0x194334[_0x5b3118(0x199)]())['toBe'](_0x47a0d6['DISCONNECTED']),expect(_0x194334[_0x5b3118(0x15d)]())['toBe'](![]),expect(_0x194334[_0x5b3118(0x179)]())['toBe'](null);const _0x997804=_0x194334[_0x5b3118(0x181)]();expect(_0x997804)['toHaveProperty'](_0x5b3118(0x155)),expect(_0x997804)['toHaveProperty'](_0x5b3118(0x17f)),expect(_0x997804)['toHaveProperty'](_0x5b3118(0x17c)),expect(_0x997804)[_0x5b3118(0x196)]('queuedMessages'),expect(_0x997804)['toHaveProperty']('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x5bbc9a=_0x2d99bd,{MessageRouter:_0x5b17fb}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x10444b}=await import(_0x5bbc9a(0x18c)),_0x53fdc9=new _0x10444b(_0x5bbc9a(0x186),0x1f90),_0xf94dfd=new _0x5b17fb(_0x53fdc9),_0x5092f3=()=>{};expect(_0xf94dfd[_0x5bbc9a(0x18e)](_0x5bbc9a(0x198)))['toBe'](![]),_0xf94dfd['registerHandler']('test-message',_0x5092f3),expect(_0xf94dfd['hasHandler']('test-message'))['toBe'](!![]),_0xf94dfd['unregisterHandler']('test-message'),expect(_0xf94dfd['hasHandler']('test-message'))['toBe'](![]);}),test('MessageRouter\x20middleware\x20helpers\x20create\x20valid\x20middleware',async()=>{const _0x20ab91=_0x2d99bd,{loggingMiddleware:_0x612525,timestampMiddleware:_0x547794,filterMiddleware:_0x187d3e}=await import(_0x20ab91(0x159)),_0x7b4355=_0x612525();expect(typeof _0x7b4355)['toBe'](_0x20ab91(0x183));const _0x3fd3c7=_0x547794();expect(typeof _0x3fd3c7)[_0x20ab91(0x164)](_0x20ab91(0x183));const _0x5c3c12={'type':'test'},_0x245893=_0x3fd3c7(_0x5c3c12);expect(_0x245893)[_0x20ab91(0x196)](_0x20ab91(0x194)),expect(_0x245893['type'])[_0x20ab91(0x164)](_0x20ab91(0x15f));const _0x46672=_0x187d3e(['allowed-type']);expect(typeof _0x46672)['toBe']('function'),expect(_0x46672({'type':'allowed-type'}))['toBeTruthy'](),expect(_0x46672({'type':'blocked-type'}))['toBe'](null);}),test(_0x2d99bd(0x16b),async()=>{const _0x5d3691=_0x2d99bd,_0x7a18d3=await import('../../config/constants.js');expect(typeof _0x7a18d3['TIMING'][_0x5d3691(0x160)])['toBe'](_0x5d3691(0x170)),expect(typeof _0x7a18d3[_0x5d3691(0x156)]['WEBSOCKET_PING_INTERVAL'])['toBe']('number'),expect(typeof _0x7a18d3[_0x5d3691(0x157)]['DEFAULT_PORT'])[_0x5d3691(0x164)](_0x5d3691(0x170)),expect(typeof _0x7a18d3['NETWORK'][_0x5d3691(0x168)])['toBe'](_0x5d3691(0x170)),expect(typeof _0x7a18d3[_0x5d3691(0x157)]['HTTP_TIMEOUT'])[_0x5d3691(0x164)]('number'),expect(typeof _0x7a18d3['UI_DIMENSIONS'][_0x5d3691(0x154)])['toBe'](_0x5d3691(0x170)),expect(typeof _0x7a18d3['UI_DIMENSIONS']['SIDEBAR_WIDTH'])[_0x5d3691(0x164)]('number');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x3b880e=a0_0xadb3;test('MessageRouter\x20throws\x20on\x20invalid\x20handler',async()=>{const {MessageRouter:_0x4274f7}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x5e1e94}=await import('../../api/websocket.js'),_0x52aba9=new _0x5e1e94('localhost',0x1f90),_0x488509=new _0x4274f7(_0x52aba9);expect(()=>{const _0x16bd06=a0_0xadb3;_0x488509[_0x16bd06(0x15e)]('test',_0x16bd06(0x176));})['toThrow']('Handler\x20must\x20be\x20a\x20function');}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x456dc6=a0_0xadb3,{MessageRouter:_0x35a9a5}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x34fd86}=await import(_0x456dc6(0x18c)),_0x2143a8=new _0x34fd86(_0x456dc6(0x186),0x1f90),_0x5d064d=new _0x35a9a5(_0x2143a8);expect(()=>{const _0x32b56b=_0x456dc6;_0x5d064d[_0x32b56b(0x158)]('not-a-function');})['toThrow'](_0x456dc6(0x18f));}),test(_0x3b880e(0x188),async()=>{const _0x4a51d9=_0x3b880e,{SessionManager:_0x3e6c17}=await import(_0x4a51d9(0x169)),_0x69e807=new _0x3e6c17(_0x4a51d9(0x186),0x1f90);_0x69e807[_0x4a51d9(0x17f)]=_0x4a51d9(0x174),_0x69e807['projectDir']='/test/dir',_0x69e807['loxiaApiKey']='test-key',_0x69e807['vendorKeys']={'openai':'key'},expect(_0x69e807[_0x4a51d9(0x175)]())['toBe'](!![]),_0x69e807['clear'](),expect(_0x69e807[_0x4a51d9(0x17f)])['toBe'](null),expect(_0x69e807['projectDir'])[_0x4a51d9(0x164)](null),expect(_0x69e807[_0x4a51d9(0x18a)])[_0x4a51d9(0x164)](null),expect(_0x69e807[_0x4a51d9(0x182)])[_0x4a51d9(0x153)]({}),expect(_0x69e807['isValid']())[_0x4a51d9(0x164)](![]);}),test(_0x3b880e(0x17a),async()=>{const _0x77d1f3=_0x3b880e,{WebSocketManager:_0x2eddb0}=await import('../../api/websocket.js'),_0x18eb4d=new _0x2eddb0('localhost',0x1f90),_0x3b4012=_0x18eb4d[_0x77d1f3(0x184)](),_0x162d18=_0x18eb4d[_0x77d1f3(0x184)](),_0x2210a9=_0x18eb4d[_0x77d1f3(0x184)]();expect(_0x3b4012)[_0x77d1f3(0x195)][_0x77d1f3(0x164)](_0x162d18),expect(_0x162d18)['not']['toBe'](_0x2210a9),expect(_0x3b4012)[_0x77d1f3(0x195)]['toBe'](_0x2210a9),expect(_0x3b4012)['toMatch'](/^req-\d+-\d+$/),expect(_0x162d18)[_0x77d1f3(0x18b)](/^req-\d+-\d+$/),expect(_0x2210a9)['toMatch'](/^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_0x37cf4a=a0_0x58ea;(function(_0x2d9759,_0x28a9b3){const _0x52de01=a0_0x58ea,_0x594853=_0x2d9759();while(!![]){try{const _0x9235c3=parseInt(_0x52de01(0xb9))/0x1*(-parseInt(_0x52de01(0xc7))/0x2)+parseInt(_0x52de01(0xbd))/0x3*(parseInt(_0x52de01(0xbb))/0x4)+parseInt(_0x52de01(0xcb))/0x5+parseInt(_0x52de01(0xdf))/0x6+parseInt(_0x52de01(0xd2))/0x7*(-parseInt(_0x52de01(0xbf))/0x8)+-parseInt(_0x52de01(0xc9))/0x9+parseInt(_0x52de01(0xdc))/0xa;if(_0x9235c3===_0x28a9b3)break;else _0x594853['push'](_0x594853['shift']());}catch(_0x48dbf9){_0x594853['push'](_0x594853['shift']());}}}(a0_0x35a0,0x59292));import{describe,test,expect}from'@jest/globals';function a0_0x58ea(_0x2139e0,_0x33691f){_0x2139e0=_0x2139e0-0xa1;const _0x35a0b5=a0_0x35a0();let _0x58ea11=_0x35a0b5[_0x2139e0];if(a0_0x58ea['eaKUcH']===undefined){var _0xd651a0=function(_0x4e2304){const _0x3989fc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2ccf7b='',_0x164d3c='';for(let _0x5b5e99=0x0,_0x29d787,_0x14cb12,_0x2084cc=0x0;_0x14cb12=_0x4e2304['charAt'](_0x2084cc++);~_0x14cb12&&(_0x29d787=_0x5b5e99%0x4?_0x29d787*0x40+_0x14cb12:_0x14cb12,_0x5b5e99++%0x4)?_0x2ccf7b+=String['fromCharCode'](0xff&_0x29d787>>(-0x2*_0x5b5e99&0x6)):0x0){_0x14cb12=_0x3989fc['indexOf'](_0x14cb12);}for(let _0x266686=0x0,_0x5c78e8=_0x2ccf7b['length'];_0x266686<_0x5c78e8;_0x266686++){_0x164d3c+='%'+('00'+_0x2ccf7b['charCodeAt'](_0x266686)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x164d3c);};a0_0x58ea['prhpaY']=_0xd651a0,a0_0x58ea['mixsia']={},a0_0x58ea['eaKUcH']=!![];}const _0xc1658c=_0x35a0b5[0x0],_0x5638cf=_0x2139e0+_0xc1658c,_0x44a675=a0_0x58ea['mixsia'][_0x5638cf];return!_0x44a675?(_0x58ea11=a0_0x58ea['prhpaY'](_0x58ea11),a0_0x58ea['mixsia'][_0x5638cf]=_0x58ea11):_0x58ea11=_0x44a675,_0x58ea11;}function a0_0x35a0(){const _0x50dc37=['tuvtu0fhrv9dt05gsuC','nhDpv3zXtG','vvnfuG','nJq4mZnvAvDdr1C','BgvUz3rO','mJuXmda1nKveshfpza','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','tuvtu0fhrv9uwvbf','l2fWAs9VCMnOzxn0CMf0B3i','Dg9czq','t1jdsevtvfjbve9s','zNvUy3rPB24','vvnfuL9nrvntquDf','otK4ndjhvwjnuLy','DxnLtwvZC2fNzxm','ntG2odK3mNrNB1D0vW','Dg9czuDYzwf0zxjuAgfU','mJe0mZy2nxHhBfLmyW','Bg9JywXOB3n0','tufyx01fu1nbr0vFtevor1ri','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZifzHBgLKyxrPB24','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','Dg9nyxrJAa','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','mtrkA3rlsMe','tuvtu0fhrv9st0Xf','Dg9mB3DLCKnHC2u','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbKAxnWBgf5ig1LC3nHz2vZ','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','quDftLrFuKvtue9ou0u','tufyx01fu1nbr0vtx0rju1bmqvK','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','qvntsvnuqu5u','C3LZDgvTlw5VDgLMAwnHDgLVBG','nZK2ndGYmgfJAevyBW','lI4VlI4VyxbPl3nLC3nPB24UANm','AgfZsgfUzgXLCG','nde4nte0ng1YtuT4wq','rvHfq1vusu9ox1nut1bqruq','zgvMyxvSDa','u1Ltvevn','ywDLBNqTCMvZCg9UC2u','tufyx1bbr0vFu0LArq','BNvTyMvY','tuvtu0fhrv9st0XfihzHBhvLCYbHCMuGBg93zxjJyxnL','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','BwLU','Dg9czurLzMLUzwq','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','twvZC2fNzsbnyw5Hz2vTzw50ic0GrxjYB3iGsgfUzgXPBMC','ywDLBNrFBw9Kzv9JAgfUz2vK','Dg9czuXLC3nuAgfUt3jfCxvHBa','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','yxnZAxn0yw50','tuvtu0fhrv9brerfra','zxHLy3v0Aw9Ux3n0B3bWzwq','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','uefhrv9tsvPf','u1Ltvevnx05pveLgsunbveLptG','CMvWzwf0','twvZC2fNzvjVDxrLCG','nKLLD3boEG'];a0_0x35a0=function(){return _0x50dc37;};return a0_0x35a0();}describe(a0_0x37cf4a(0xc0),()=>{test('useMessages hook can be imported',async()=>{const _0x1d1db5=a0_0x58ea,{useMessages:_0x2ccf7b}=await import(_0x1d1db5(0xb4));expect(_0x2ccf7b)[_0x1d1db5(0xa9)](),expect(typeof _0x2ccf7b)[_0x1d1db5(0xc3)]('function');}),test('useMessages is default export',async()=>{const _0x41da2f=a0_0x58ea,module=await import(_0x41da2f(0xb4));expect(module[_0x41da2f(0xa1)])['toBeDefined'](),expect(typeof module[_0x41da2f(0xa1)])[_0x41da2f(0xc3)]('function'),expect(module['default'])[_0x41da2f(0xc3)](module[_0x41da2f(0xc8)]);}),test('useMessageCount helper hook can be imported',async()=>{const _0x477faa=a0_0x58ea,{useMessageCount:_0x164d3c}=await import(_0x477faa(0xb4));expect(_0x164d3c)['toBeDefined'](),expect(typeof _0x164d3c)['toBe'](_0x477faa(0xc5));});}),describe('Message\x20Management\x20-\x20Constants',()=>{const _0x1b4823=a0_0x37cf4a;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x1ec5ff=a0_0x58ea,{MESSAGE_ROLE:_0x5b5e99}=await import(_0x1ec5ff(0xcf));expect(_0x5b5e99)['toBeDefined'](),expect(_0x5b5e99['USER'])[_0x1ec5ff(0xc3)]('user'),expect(_0x5b5e99['ASSISTANT'])['toBe'](_0x1ec5ff(0xb1)),expect(_0x5b5e99[_0x1ec5ff(0xa2)])['toBe']('system');}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x2b7b67=a0_0x58ea,{MESSAGE_TYPE:_0x29d787}=await import(_0x2b7b67(0xcf));expect(_0x29d787)['toBeDefined'](),expect(_0x29d787[_0x2b7b67(0xc6)])[_0x2b7b67(0xc3)]('user-message'),expect(_0x29d787[_0x2b7b67(0xd7)])['toBe'](_0x2b7b67(0xa3)),expect(_0x29d787[_0x2b7b67(0xb6)])[_0x2b7b67(0xc3)](_0x2b7b67(0xdb));}),test('MESSAGE_CONFIG\x20constants\x20are\x20defined',async()=>{const _0x35ef6e=a0_0x58ea,{MESSAGE_CONFIG:_0x14cb12}=await import('../../config/constants.js');expect(_0x14cb12)[_0x35ef6e(0xa9)](),expect(_0x14cb12['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(_0x14cb12[_0x35ef6e(0xd8)])[_0x35ef6e(0xa9)](),expect(typeof _0x14cb12[_0x35ef6e(0xcd)])['toBe']('number'),expect(typeof _0x14cb12[_0x35ef6e(0xd8)])['toBe'](_0x35ef6e(0xa5));}),test(_0x1b4823(0xae),async()=>{const _0x208921=_0x1b4823,{PAGINATION:_0x2084cc}=await import('../../config/constants.js');expect(_0x2084cc)[_0x208921(0xa9)](),expect(_0x2084cc['PAGE_SIZE'])[_0x208921(0xa9)](),expect(_0x2084cc['MAX_PAGE_SIZE'])['toBeDefined'](),expect(typeof _0x2084cc['PAGE_SIZE'])['toBe'](_0x208921(0xa5)),expect(typeof _0x2084cc[_0x208921(0xa4)])['toBe'](_0x208921(0xa5));}),test('WS_MESSAGE_TYPE\x20includes\x20message\x20events',async()=>{const _0x232227=_0x1b4823,{WS_MESSAGE_TYPE:_0x266686}=await import('../../config/constants.js');expect(_0x266686)['toBeDefined'](),expect(_0x266686[_0x232227(0xb2)])[_0x232227(0xc3)]('message_added'),expect(_0x266686['AGENT_MODE_CHANGED'])['toBe'](_0x232227(0xac)),expect(_0x266686[_0x232227(0xe0)])[_0x232227(0xc3)](_0x232227(0xb3));});}),describe(a0_0x37cf4a(0xd6),()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0xade50d=a0_0x58ea,{useMessages:_0x5c78e8}=await import('../../state/useMessages.js'),{SessionManager:_0x57245d}=await import('../../api/session.js'),{MessageRouter:_0x46524b}=await import(_0xade50d(0xa7)),{WebSocketManager:_0x50fc0a}=await import(_0xade50d(0xaf)),_0x1fc13b=new _0x57245d('localhost',0x1f90),_0x484243=new _0x50fc0a('localhost',0x1f90),_0x4e86d0=new _0x46524b(_0x484243);expect(_0x1fc13b)[_0xade50d(0xa9)](),expect(_0x4e86d0)[_0xade50d(0xa9)](),expect(typeof _0x5c78e8)[_0xade50d(0xc3)]('function');}),test('Full message management stack can be imported together',async()=>{const _0x4b7b74=a0_0x58ea,[_0x3e1f64,_0x1d26d2,_0x5cc1bb,_0x1cde50,_0x1d0811]=await Promise['all']([import(_0x4b7b74(0xcf)),import(_0x4b7b74(0xdd)),import('../../api/websocket.js'),import(_0x4b7b74(0xa7)),import(_0x4b7b74(0xb4))]);expect(_0x3e1f64[_0x4b7b74(0xd3)])[_0x4b7b74(0xa9)](),expect(_0x3e1f64[_0x4b7b74(0xc1)])[_0x4b7b74(0xa9)](),expect(_0x3e1f64[_0x4b7b74(0xba)])['toBeDefined'](),expect(_0x1d26d2['SessionManager'])[_0x4b7b74(0xa9)](),expect(_0x5cc1bb['WebSocketManager'])[_0x4b7b74(0xa9)](),expect(_0x1cde50[_0x4b7b74(0xb8)])[_0x4b7b74(0xa9)](),expect(_0x1d0811[_0x4b7b74(0xc8)])['toBeDefined']();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{test('Orchestrator\x20endpoint\x20can\x20be\x20used\x20for\x20message\x20operations',async()=>{const _0x491ffa=a0_0x58ea,{API_ENDPOINTS:_0x4ab4f1}=await import(_0x491ffa(0xcf));expect(_0x4ab4f1[_0x491ffa(0xc4)])['toBeDefined'](),expect(_0x4ab4f1['ORCHESTRATOR'])[_0x491ffa(0xc3)](_0x491ffa(0xc2));}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x5ae630=a0_0x58ea,{API_ENDPOINTS:_0x5b1e76}=await import(_0x5ae630(0xcf));expect(_0x5b1e76[_0x5ae630(0xc4)])[_0x5ae630(0xd0)](/^\/api\//);});}),describe(a0_0x37cf4a(0xaa),()=>{test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x39dc98=a0_0x58ea,{useMessages:_0x56f253}=await import(_0x39dc98(0xb4));expect(_0x56f253[_0x39dc98(0xbe)])['toBe'](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x4fff3b=a0_0x58ea,{useMessageCount:_0x51d51c}=await import('../../state/useMessages.js');expect(_0x51d51c[_0x4fff3b(0xbe)])[_0x4fff3b(0xc3)](0x1);});}),describe(a0_0x37cf4a(0xce),()=>{const _0x54ece3=a0_0x37cf4a;test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x3e2578=a0_0x58ea,{MESSAGE_CONFIG:_0x4e8d9a}=await import(_0x3e2578(0xcf));expect(_0x4e8d9a['MAX_MESSAGE_LENGTH'])[_0x3e2578(0xca)](0x0),expect(_0x4e8d9a['MAX_MESSAGE_LENGTH'])['toBeLessThanOrEqual'](0x186a0),expect(_0x4e8d9a[_0x3e2578(0xd8)])['toBeGreaterThan'](0x0),expect(_0x4e8d9a[_0x3e2578(0xd8)])[_0x3e2578(0xad)](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x3aa94a=a0_0x58ea,{PAGINATION:_0x32b03e}=await import(_0x3aa94a(0xcf));expect(_0x32b03e[_0x3aa94a(0xb5)])[_0x3aa94a(0xca)](0x0),expect(_0x32b03e['PAGE_SIZE'])['toBeLessThanOrEqual'](0x3e8),expect(_0x32b03e[_0x3aa94a(0xa4)])[_0x3aa94a(0xd9)](_0x32b03e['PAGE_SIZE']);}),test(_0x54ece3(0xa6),async()=>{const _0x5d32fa=_0x54ece3,{MESSAGE_ROLE:_0x88d0aa}=await import(_0x5d32fa(0xcf));expect(_0x88d0aa[_0x5d32fa(0xbc)])[_0x5d32fa(0xc3)](_0x88d0aa[_0x5d32fa(0xbc)]['toLowerCase']()),expect(_0x88d0aa['ASSISTANT'])['toBe'](_0x88d0aa[_0x5d32fa(0xda)][_0x5d32fa(0xd4)]()),expect(_0x88d0aa[_0x5d32fa(0xa2)])[_0x5d32fa(0xc3)](_0x88d0aa[_0x5d32fa(0xa2)]['toLowerCase']());});}),describe(a0_0x37cf4a(0xb0),()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0x5b2978=a0_0x58ea,{MessageRouter:_0x578b1d}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x26099b}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x2a9344}=await import(_0x5b2978(0xcf)),_0x51888c=new _0x26099b(_0x5b2978(0xcc),0x1f90),_0x5fcfc8=new _0x578b1d(_0x51888c);expect(_0x5fcfc8[_0x5b2978(0xde)](_0x2a9344[_0x5b2978(0xb2)]))['toBe'](!![]),expect(_0x5fcfc8[_0x5b2978(0xde)](_0x2a9344['AGENT_MODE_CHANGED']))[_0x5b2978(0xc3)](!![]);});}),describe(a0_0x37cf4a(0xab),()=>{const _0x209978=a0_0x37cf4a;test('MESSAGE_CONFIG\x20enforces\x20maximum\x20message\x20length',async()=>{const _0x596be0=a0_0x58ea,{MESSAGE_CONFIG:_0x4a37dd}=await import(_0x596be0(0xcf));expect(_0x4a37dd[_0x596be0(0xcd)])[_0x596be0(0xa9)](),expect(typeof _0x4a37dd['MAX_MESSAGE_LENGTH'])['toBe']('number');const _0x1d3bb0='a'[_0x596be0(0xb7)](_0x4a37dd['MAX_MESSAGE_LENGTH']+0x1);expect(_0x1d3bb0['length'])[_0x596be0(0xca)](_0x4a37dd[_0x596be0(0xcd)]);}),test(_0x209978(0xd5),async()=>{const _0x13ff07=_0x209978,{MESSAGE_CONFIG:_0x4716c1}=await import('../../config/constants.js');expect(_0x4716c1[_0x13ff07(0xd8)])[_0x13ff07(0xa9)](),expect(typeof _0x4716c1['MAX_MESSAGES_DISPLAY'])['toBe'](_0x13ff07(0xa5)),expect(_0x4716c1['MAX_MESSAGES_DISPLAY'])['toBeGreaterThan'](0x0);});}),describe(a0_0x37cf4a(0xd1),()=>{test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x33f82e=a0_0x58ea,{PAGINATION:_0x399056}=await import('../../config/constants.js'),_0x4a5e74=0x0,_0x2b75ce=_0x4a5e74*_0x399056[_0x33f82e(0xb5)];expect(_0x2b75ce)[_0x33f82e(0xc3)](0x0);const _0x2694d5=0x1,_0x6ac52a=_0x2694d5*_0x399056['PAGE_SIZE'];expect(_0x6ac52a)['toBe'](_0x399056['PAGE_SIZE']);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0x33815c=a0_0x58ea,{PAGINATION:_0x3f5417}=await import('../../config/constants.js'),_0x1b76cd=0x3e8,_0x51779b=Math[_0x33815c(0xa8)](_0x1b76cd,_0x3f5417[_0x33815c(0xa4)]);expect(_0x51779b)[_0x33815c(0xad)](_0x3f5417['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
+ function a0_0x7975(_0x141cbd,_0x48e57c){_0x141cbd=_0x141cbd-0x115;const _0x27cd18=a0_0x27cd();let _0x7975db=_0x27cd18[_0x141cbd];if(a0_0x7975['TRWozG']===undefined){var _0x5d0e3a=function(_0x21725b){const _0x934640='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x551936='',_0x56e733='';for(let _0x29673b=0x0,_0x552aa1,_0x102b41,_0x53258a=0x0;_0x102b41=_0x21725b['charAt'](_0x53258a++);~_0x102b41&&(_0x552aa1=_0x29673b%0x4?_0x552aa1*0x40+_0x102b41:_0x102b41,_0x29673b++%0x4)?_0x551936+=String['fromCharCode'](0xff&_0x552aa1>>(-0x2*_0x29673b&0x6)):0x0){_0x102b41=_0x934640['indexOf'](_0x102b41);}for(let _0x48ebb2=0x0,_0x4bb828=_0x551936['length'];_0x48ebb2<_0x4bb828;_0x48ebb2++){_0x56e733+='%'+('00'+_0x551936['charCodeAt'](_0x48ebb2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x56e733);};a0_0x7975['RwMjvM']=_0x5d0e3a,a0_0x7975['qKQeOj']={},a0_0x7975['TRWozG']=!![];}const _0x50cbc9=_0x27cd18[0x0],_0xa75d31=_0x141cbd+_0x50cbc9,_0x3065d2=a0_0x7975['qKQeOj'][_0xa75d31];return!_0x3065d2?(_0x7975db=a0_0x7975['RwMjvM'](_0x7975db),a0_0x7975['qKQeOj'][_0xa75d31]=_0x7975db):_0x7975db=_0x3065d2,_0x7975db;}const a0_0x3cf175=a0_0x7975;(function(_0xc73742,_0x5823a8){const _0xdd4bbb=a0_0x7975,_0x34ea0a=_0xc73742();while(!![]){try{const _0x3a2cb8=-parseInt(_0xdd4bbb(0x164))/0x1*(-parseInt(_0xdd4bbb(0x12c))/0x2)+parseInt(_0xdd4bbb(0x153))/0x3+parseInt(_0xdd4bbb(0x11b))/0x4*(parseInt(_0xdd4bbb(0x140))/0x5)+parseInt(_0xdd4bbb(0x120))/0x6*(parseInt(_0xdd4bbb(0x134))/0x7)+-parseInt(_0xdd4bbb(0x165))/0x8+-parseInt(_0xdd4bbb(0x12e))/0x9*(parseInt(_0xdd4bbb(0x11a))/0xa)+parseInt(_0xdd4bbb(0x14b))/0xb;if(_0x3a2cb8===_0x5823a8)break;else _0x34ea0a['push'](_0x34ea0a['shift']());}catch(_0x58547c){_0x34ea0a['push'](_0x34ea0a['shift']());}}}(a0_0x27cd,0x1e4d9));function a0_0x27cd(){const _0xf93368=['uMvHzcbJB250zw50CYbVzIbHigzPBgu','twvZC2fNzvjVDxrLCIbOyxmGDg9VBcbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','BgvUz3rO','qvvut01bveLptG','Dg9czurLzMLUzwq','ywrK','ve9ptfm','lI4VlI4VyxbPl3nLC3nPB24UANm','vg9VBcbZzwfYy2GGC2HVDwXKihDVCMSGD2L0AcbUyw1LigfUzcbKzxnJCMLWDgLVBG','vg9VBhmGzw5KCg9PBNqGzM9SBg93CYbsrvnuzNvSihbHDhrLCM4','C3vJy2vZCW','mtbNCevWv2C','Dg9mB3DLCKnHC2u','owXtwxvoAq','DxnLvg9VBhmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','A2v5CW','yw5HBhL6zq','BM93','BMfTzq','mtu5mZy5s0nQsLj2','vg9VBhmGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','y2f0zwDVCNK','BwfW','AgfZ','DMfSDwvZ','D2vIx3nLyxjJAa','Dg9czq','Bg9JywXOB3n0','vvrjteLuwq','zxHLy3v0zv9JB21Tyw5K','nZvdtLHArvy','zgf0yq','qu5btfLtsvm','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','vg9VBhmGtwfUywDLBwvUDcaTienHDgvNB3j5ienVDw50CW','vg9VBhmGqvbjigvUzhbVAw50igLZigrLzMLUzwq','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','zw5HyMXLza','l2fWAs90B29SCW','Dg9nyxrJAa','zMLSDgvY','otiYnZaYzeLgqMLn','t1jdsevtvfjbve9s','v2vIu29JA2v0twfUywDLCG','zxHLyY0X','vg9VBcbVCgvYyxrPB25ZihvZzsbVCMnOzxn0CMf0B3iGzw5KCg9PBNq','q2f0zwDVCNKGy291BNrZignHBIbIzsbJywXJDwXHDgvK','vg9VBcbJywnOzsbLEhbPCMvZigfMDgvYifruta','ywLFyxnZAxn0yw50','mtm0nte0reHWs3f5','zgvMyxvSDa','rxHLy3v0Aw9Uihn0yxrLignHBIb0CMfJAYbTDwX0AxbSzsb0B29SCW','u1Ltvevn','CMvHzf9MAwXL','Dg9dB250ywLU','yw5HBhL6zv9JB2rL','zgvSzxrL','l2fWAs9VCMnOzxn0CMf0B3i','C2v0','qvbjx0vorfbpsu5uuW','zNvUy3rPB24','Aw5JBhvKzxm','D3jPDgvFzMLSzq','DgvYBwLUywW','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2f0zwDVCML6yxrPB24','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CYbwywXPzgf0Aw9U','ndK0mKzYzxLcua','odaYnZm2yKHcCgTm','zMLSzsbJB250zw50CW','vg9VBhmGtwfUywDLBwvUDcaTieLTCg9YDhm','z2v0','u2vZC2LVBK1HBMfNzxi','zxHLyY0Y','mti1mZm4mgrhCMnKBa','mZC5nMXez2TKCW','ve9ptf9dqvrfr09swsbJyw4GyMuGDxnLzcb0BYbMAwX0zxiGDg9VBhmGyNKGy2f0zwDVCNK','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','vg9VBhmGy2fUigjLigzPBhrLCMvKigj5ig11BhrPCgXLignYAxrLCMLH','vg9VBhmGtwfUywDLBwvUDcaTiev4zwn1DgLVBIbtDgf0zsbuCMfJA2LUzW','ndH3rNHLDMq'];a0_0x27cd=function(){return _0xf93368;};return a0_0x27cd();}import{describe,test,expect}from'@jest/globals';describe(a0_0x3cf175(0x116),()=>{test('useTools hook can be imported',async()=>{const _0x2ccb54=a0_0x7975,{useTools:_0x551936}=await import('../../state/useTools.js');expect(_0x551936)['toBeDefined'](),expect(typeof _0x551936)[_0x2ccb54(0x13c)](_0x2ccb54(0x15e));}),test('useTools is default export',async()=>{const _0x1bbaff=a0_0x7975,module=await import('../../state/useTools.js');expect(module['default'])[_0x1bbaff(0x125)](),expect(typeof module[_0x1bbaff(0x154)])['toBe']('function'),expect(module['default'])[_0x1bbaff(0x13c)](module['useTools']);});}),describe('Tools\x20Management\x20-\x20Constants',()=>{const _0x14ebf8=a0_0x3cf175;test('TOOL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x14d329=a0_0x7975,{TOOL_CATEGORY:_0x56e733}=await import('../../config/constants.js');expect(_0x56e733)[_0x14d329(0x125)](),expect(_0x56e733['SYSTEM'])['toBeDefined'](),expect(_0x56e733['AUTOMATION'])[_0x14d329(0x125)](),expect(_0x56e733[_0x14d329(0x142)])[_0x14d329(0x125)](),expect(_0x56e733['UTILITY'])['toBeDefined'](),expect(_0x56e733['COLLABORATION'])[_0x14d329(0x125)](),expect(_0x56e733['AI'])[_0x14d329(0x125)]();}),test('TOOL_CATEGORY\x20values\x20are\x20lowercase',async()=>{const _0x48b1c5=a0_0x7975,{TOOL_CATEGORY:_0x29673b}=await import(_0x48b1c5(0x143));expect(_0x29673b['SYSTEM'])['toBe'](_0x29673b[_0x48b1c5(0x156)]['toLowerCase']()),expect(_0x29673b[_0x48b1c5(0x124)])[_0x48b1c5(0x13c)](_0x29673b['AUTOMATION'][_0x48b1c5(0x12d)]()),expect(_0x29673b['ANALYSIS'])[_0x48b1c5(0x13c)](_0x29673b[_0x48b1c5(0x142)][_0x48b1c5(0x12d)]()),expect(_0x29673b[_0x48b1c5(0x13e)])['toBe'](_0x29673b[_0x48b1c5(0x13e)]['toLowerCase']());}),test(_0x14ebf8(0x145),async()=>{const _0x393c96=_0x14ebf8,{API_ENDPOINTS:_0x552aa1}=await import(_0x393c96(0x143));expect(_0x552aa1['TOOLS'])[_0x393c96(0x125)](),expect(_0x552aa1['TOOLS'])[_0x393c96(0x13c)](_0x393c96(0x148));}),test('Orchestrator\x20endpoint\x20is\x20used\x20for\x20tool\x20operations',async()=>{const _0x5df81f=_0x14ebf8,{API_ENDPOINTS:_0x102b41}=await import('../../config/constants.js');expect(_0x102b41[_0x5df81f(0x14c)])['toBeDefined'](),expect(_0x102b41['ORCHESTRATOR'])['toBe']('/api/orchestrator');});}),describe(a0_0x3cf175(0x135),()=>{test('useTools\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0xb1802b=a0_0x7975,{useTools:_0x53258a}=await import('../../state/useTools.js'),{SessionManager:_0x48ebb2}=await import(_0xb1802b(0x128)),{MessageRouter:_0x4bb828}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x3351ad}=await import(_0xb1802b(0x146)),_0x5f066f=new _0x48ebb2(_0xb1802b(0x13d),0x1f90),_0x418bbe=new _0x3351ad('localhost',0x1f90),_0x1e0158=new _0x4bb828(_0x418bbe);expect(_0x5f066f)[_0xb1802b(0x125)](),expect(_0x1e0158)[_0xb1802b(0x125)](),expect(typeof _0x53258a)['toBe'](_0xb1802b(0x15e));}),test('Full tools management stack can be imported together',async()=>{const _0x248288=a0_0x7975,[_0x522f4f,_0x512831,_0x6bdbcb,_0x15e5e3,_0x4cd53e]=await Promise['all']([import(_0x248288(0x143)),import('../../api/session.js'),import('../../api/websocket.js'),import(_0x248288(0x136)),import(_0x248288(0x11d))]);expect(_0x522f4f['TOOL_CATEGORY'])[_0x248288(0x125)](),expect(_0x522f4f[_0x248288(0x15d)])[_0x248288(0x125)](),expect(_0x512831[_0x248288(0x118)])['toBeDefined'](),expect(_0x6bdbcb[_0x248288(0x14d)])['toBeDefined'](),expect(_0x15e5e3['MessageRouter'])[_0x248288(0x125)](),expect(_0x4cd53e['useTools'])['toBeDefined']();});}),describe('Tools\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0xf90fb5=a0_0x3cf175;test(_0xf90fb5(0x12a),async()=>{const _0x5ac253=_0xf90fb5,{API_ENDPOINTS:_0x34f3ee}=await import(_0x5ac253(0x143));expect(_0x34f3ee[_0x5ac253(0x127)])[_0x5ac253(0x149)](/^\/api\//),expect(_0x34f3ee['TOOLS'])[_0x5ac253(0x13c)]('/api/tools');}),test(_0xf90fb5(0x14f),async()=>{const _0x4a8ee8=_0xf90fb5,{API_ENDPOINTS:_0x99e259}=await import('../../config/constants.js');expect(_0x99e259[_0x4a8ee8(0x14c)])['toBeDefined'](),expect(_0x99e259['ORCHESTRATOR'])[_0x4a8ee8(0x13c)](_0x4a8ee8(0x15b));});}),describe('Tools\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x31b90d=a0_0x3cf175;test(_0x31b90d(0x12f),async()=>{const _0x51642b=_0x31b90d,{useTools:_0x42e1a5}=await import(_0x51642b(0x11d));expect(_0x42e1a5['length'])['toBe'](0x3);});}),describe(a0_0x3cf175(0x163),()=>{test('TOOL_CATEGORY\x20includes\x20all\x20major\x20categories',async()=>{const _0x91547a=a0_0x7975,{TOOL_CATEGORY:_0x52f07c}=await import('../../config/constants.js'),_0x2fb147=Object[_0x91547a(0x130)](_0x52f07c);expect(_0x2fb147)['toContain'](_0x91547a(0x156)),expect(_0x2fb147)['toContain'](_0x91547a(0x124)),expect(_0x2fb147)['toContain'](_0x91547a(0x142)),expect(_0x2fb147)['toContain']('UTILITY'),expect(_0x2fb147)[_0x91547a(0x158)]('COLLABORATION'),expect(_0x2fb147)['toContain']('AI');}),test('TOOL_CATEGORY\x20values\x20match\x20expected\x20format',async()=>{const _0xd3d8c=a0_0x7975,{TOOL_CATEGORY:_0x5858a0}=await import('../../config/constants.js');expect(_0x5858a0['SYSTEM'])[_0xd3d8c(0x149)](/^[a-z_]+$/),expect(_0x5858a0[_0xd3d8c(0x124)])[_0xd3d8c(0x149)](/^[a-z_]+$/),expect(_0x5858a0['ANALYSIS'])[_0xd3d8c(0x149)](/^[a-z_]+$/),expect(_0x5858a0['UTILITY'])[_0xd3d8c(0x149)](/^[a-z_]+$/);});}),describe('Tools\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{const _0x52e795=a0_0x3cf175;test(_0x52e795(0x122),async()=>{const _0x515fcd=_0x52e795,{MessageRouter:_0x55b19f}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x10bee5}=await import(_0x515fcd(0x146)),_0x289f82=new _0x10bee5('localhost',0x1f90),_0x120c6c=new _0x55b19f(_0x289f82);expect(_0x120c6c['hasHandler'])[_0x515fcd(0x125)](),expect(typeof _0x120c6c['hasHandler'])[_0x515fcd(0x13c)](_0x515fcd(0x15e));});}),describe(a0_0x3cf175(0x162),()=>{const _0x225be9=a0_0x3cf175;test(_0x225be9(0x11c),async()=>{const _0x3f3e77=_0x225be9,{TOOL_CATEGORY:_0x16e31a}=await import('../../config/constants.js'),_0xade58b=[{'name':'execute_command','category':_0x16e31a[_0x3f3e77(0x156)]},{'name':_0x3f3e77(0x161),'category':_0x16e31a['SYSTEM']},{'name':'analyze_code','category':_0x16e31a[_0x3f3e77(0x142)]},{'name':_0x3f3e77(0x13b),'category':_0x16e31a[_0x3f3e77(0x13e)]},{'name':_0x3f3e77(0x152),'category':_0x16e31a['AI']}],_0x251cf8=_0xade58b[_0x3f3e77(0x14a)](_0xc478b0=>_0xc478b0[_0x3f3e77(0x137)]===_0x16e31a['SYSTEM']),_0x1ce62b=_0xade58b[_0x3f3e77(0x14a)](_0x3599a2=>_0x3599a2[_0x3f3e77(0x137)]===_0x16e31a['ANALYSIS']),_0xa60245=_0xade58b[_0x3f3e77(0x14a)](_0x562339=>_0x562339[_0x3f3e77(0x137)]===_0x16e31a[_0x3f3e77(0x13e)]),_0x983a8e=_0xade58b[_0x3f3e77(0x14a)](_0x1f6f9f=>_0x1f6f9f[_0x3f3e77(0x137)]===_0x16e31a['AI']);expect(_0x251cf8[_0x3f3e77(0x123)])[_0x3f3e77(0x13c)](0x2),expect(_0x1ce62b['length'])[_0x3f3e77(0x13c)](0x1),expect(_0xa60245['length'])['toBe'](0x1),expect(_0x983a8e[_0x3f3e77(0x123)])['toBe'](0x1),expect(_0x251cf8[0x0]['name'])[_0x3f3e77(0x13c)]('execute_command'),expect(_0x1ce62b[0x0][_0x3f3e77(0x133)])[_0x3f3e77(0x13c)](_0x3f3e77(0x159));});}),describe('Tools\x20Management\x20-\x20Tool\x20Search',()=>{const _0x17399c=a0_0x3cf175;test(_0x17399c(0x129),async()=>{const _0x4d6388=_0x17399c,_0x498527=[{'name':'read_file','description':_0x4d6388(0x121)},{'name':_0x4d6388(0x160),'description':'Write\x20data\x20to\x20a\x20file'},{'name':'analyze_code','description':'Perform\x20static\x20code\x20analysis'}],_0xfcecdc=_0x4a281e=>{const _0x1c8764=_0x4d6388,_0x13e3d4=_0x4a281e['toLowerCase']();return _0x498527['filter'](_0x369674=>_0x369674['name']?.[_0x1c8764(0x12d)]()['includes'](_0x13e3d4)||_0x369674['description']?.[_0x1c8764(0x12d)]()[_0x1c8764(0x15f)](_0x13e3d4));},_0xc9dfd7=_0xfcecdc('file');expect(_0xc9dfd7['length'])['toBe'](0x2),expect(_0xc9dfd7['map'](_0x2becfa=>_0x2becfa['name']))[_0x4d6388(0x158)](_0x4d6388(0x157)),expect(_0xc9dfd7[_0x4d6388(0x138)](_0x2cb400=>_0x2cb400[_0x4d6388(0x133)]))[_0x4d6388(0x158)](_0x4d6388(0x160));const _0x4de2fd=_0xfcecdc(_0x4d6388(0x131));expect(_0x4de2fd['length'])[_0x4d6388(0x13c)](0x1),expect(_0x4de2fd[0x0][_0x4d6388(0x133)])['toBe']('analyze_code');});}),describe(a0_0x3cf175(0x11f),()=>{const _0x2f44ea=a0_0x3cf175;test(_0x2f44ea(0x155),async()=>{const _0x3616fb=_0x2f44ea,_0x4230c4=new Set();_0x4230c4['add'](_0x3616fb(0x157)),_0x4230c4[_0x3616fb(0x126)]('analyze_code'),expect(_0x4230c4['has'](_0x3616fb(0x157)))['toBe'](!![]),expect(_0x4230c4[_0x3616fb(0x139)](_0x3616fb(0x159)))[_0x3616fb(0x13c)](!![]),expect(_0x4230c4['size'])[_0x3616fb(0x13c)](0x2),_0x4230c4[_0x3616fb(0x15a)]('read_file'),expect(_0x4230c4[_0x3616fb(0x139)]('read_file'))[_0x3616fb(0x13c)](![]),expect(_0x4230c4[_0x3616fb(0x139)](_0x3616fb(0x159)))['toBe'](!![]),expect(_0x4230c4['size'])[_0x3616fb(0x13c)](0x1);}),test('Tool\x20results\x20can\x20be\x20stored\x20by\x20execution\x20ID',async()=>{const _0x582109=_0x2f44ea,_0x5e93d0=new Map();_0x5e93d0['set'](_0x582109(0x14e),{'success':!![],'data':'file\x20contents'}),_0x5e93d0[_0x582109(0x15c)]('exec-2',{'success':!![],'data':{'issues':[]}}),expect(_0x5e93d0['get']('exec-1'))[_0x582109(0x125)](),expect(_0x5e93d0[_0x582109(0x117)](_0x582109(0x14e))[_0x582109(0x12b)])['toBe'](!![]),expect(_0x5e93d0[_0x582109(0x117)](_0x582109(0x14e))[_0x582109(0x141)])['toBe'](_0x582109(0x115)),expect(_0x5e93d0['get'](_0x582109(0x119)))['toBeDefined'](),expect(_0x5e93d0['get'](_0x582109(0x119))['data']['issues'])['toEqual']([]),expect(_0x5e93d0['size'])[_0x582109(0x13c)](0x2);});}),describe('Tools\x20Management\x20-\x20Tool\x20Caching',()=>{const _0x3032b3=a0_0x3cf175;test('Tool\x20cache\x20supports\x20TTL-based\x20caching',async()=>{const _0x1c702e=a0_0x7975,_0x100e70=0x927c0;let _0x1ab9d0=null,_0x91ff19=0x0;const _0x20d20a=[{'name':_0x1c702e(0x157)}];_0x1ab9d0=_0x20d20a,_0x91ff19=Date['now']();const _0x5de9ff=Date[_0x1c702e(0x132)](),_0x491251=_0x5de9ff-_0x91ff19<_0x100e70;expect(_0x491251)['toBe'](!![]),expect(_0x1ab9d0)['toBe'](_0x20d20a);}),test(_0x3032b3(0x151),async()=>{const _0xaf3d6a=_0x3032b3,_0x377d1b=0x64;let _0x4e0c66=null,_0x3080cc=0x0;const _0x3e100d=[{'name':_0xaf3d6a(0x157)}];_0x4e0c66=_0x3e100d,_0x3080cc=Date[_0xaf3d6a(0x132)](),await new Promise(_0x3570f0=>setTimeout(_0x3570f0,0x96));const _0x1dbf27=Date['now'](),_0x43bb8f=_0x1dbf27-_0x3080cc<_0x377d1b;expect(_0x43bb8f)['toBe'](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{const _0x15b2a4=a0_0x3cf175;test(_0x15b2a4(0x11e),async()=>{const _0x123ab3=_0x15b2a4,{TOOL_CATEGORY:_0x3cca5e}=await import('../../config/constants.js'),_0x546762=[{'name':_0x123ab3(0x13f),'category':_0x3cca5e['SYSTEM'],'enabled':!![]},{'name':_0x123ab3(0x161),'category':_0x3cca5e['SYSTEM'],'enabled':![]},{'name':_0x123ab3(0x159),'category':_0x3cca5e[_0x123ab3(0x142)],'enabled':!![]}],_0x47d2ca=_0x4738bf=>{const _0x2b8166=_0x123ab3;let _0x57ecb7=[..._0x546762];return _0x4738bf[_0x2b8166(0x137)]&&(_0x57ecb7=_0x57ecb7['filter'](_0x7f1930=>_0x7f1930['category']===_0x4738bf['category'])),_0x4738bf['enabled']!==undefined&&(_0x57ecb7=_0x57ecb7[_0x2b8166(0x14a)](_0x2ec03a=>_0x2ec03a[_0x2b8166(0x147)]===_0x4738bf['enabled'])),_0x57ecb7;},_0x3d0ff7=_0x47d2ca({'category':_0x3cca5e['SYSTEM']});expect(_0x3d0ff7['length'])[_0x123ab3(0x13c)](0x2);const _0x138011=_0x47d2ca({'enabled':!![]});expect(_0x138011['length'])['toBe'](0x2);const _0x172c1d=_0x47d2ca({'category':_0x3cca5e[_0x123ab3(0x156)],'enabled':!![]});expect(_0x172c1d[_0x123ab3(0x123)])[_0x123ab3(0x13c)](0x1),expect(_0x172c1d[0x0][_0x123ab3(0x133)])[_0x123ab3(0x13c)](_0x123ab3(0x13f));});}),describe(a0_0x3cf175(0x144),()=>{const _0x5c8a47=a0_0x3cf175;test(_0x5c8a47(0x150),async()=>{const _0x22a981=_0x5c8a47,{TOOL_CATEGORY:_0x54ccff}=await import('../../config/constants.js'),_0x1a34ba=[{'name':_0x22a981(0x13f),'category':_0x54ccff[_0x22a981(0x156)]},{'name':_0x22a981(0x161),'category':_0x54ccff[_0x22a981(0x156)]},{'name':_0x22a981(0x159),'category':_0x54ccff[_0x22a981(0x142)]},{'name':'web_search','category':_0x54ccff[_0x22a981(0x13e)]}],_0x477d0a=_0x50c21f=>{const _0x1c24b3=_0x22a981,_0x46d9b5={};for(const _0x2ad0e7 of Object[_0x1c24b3(0x13a)](_0x54ccff)){_0x46d9b5[_0x2ad0e7]=_0x50c21f['filter'](_0x1e4d42=>_0x1e4d42[_0x1c24b3(0x137)]===_0x2ad0e7)['length'];}return _0x46d9b5;},_0x89108d=_0x477d0a(_0x1a34ba);expect(_0x89108d[_0x54ccff[_0x22a981(0x156)]])[_0x22a981(0x13c)](0x2),expect(_0x89108d[_0x54ccff['ANALYSIS']])['toBe'](0x1),expect(_0x89108d[_0x54ccff[_0x22a981(0x13e)]])['toBe'](0x1),expect(_0x89108d[_0x54ccff[_0x22a981(0x124)]])[_0x22a981(0x13c)](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_0x4cfa28=a0_0x273b;function a0_0x12d0(){const _0x2f6ada=['qMvHCMvYia','revmrvrf','zMv0y2G','ue9tva','Aw5JBhvKzxm','yMfZzvvYBa','C3rHDhvZvgv4Da','sfruuca','C3rHDhvZ','Dg9tDhjPBMC','yNvPBgrizwfKzxjZ','Ahr0CdOVlW','mtCXnJvoz1nHtu0','zgvSzxrL','ovPYyuL1rG','yxbWBgLJyxrPB24VANnVBG','mZKZnZG1n09us0PADa','r0vu','ndHuDunlwK4','C2v0qxbPs2v5','y2f0y2G','Cg9ZDa','CMvZCg9UC2u','ndmXmZK3mK1eCePYwG','mtiZnMnZyLzzAq','ntaYmti2sMXXEvvm','ouDgsunRuq','mtuWmZKYq2jrA0rc','ufvu','qxv0Ag9YAxPHDgLVBG','CMvXDwvZDa','mteYAgLJB05H','mtmWmdiXmeHVufb5za','mK1ZwfbgsW','ANnVBG','y2XLyxjbCgLlzxK','Bg9JywXOB3n0','mZGWnZzREg1ps2S','z2v0','yxbPs2v5'];a0_0x12d0=function(){return _0x2f6ada;};return a0_0x12d0();}(function(_0x27899a,_0x39eccb){const _0x4741d5=a0_0x273b,_0x386abc=_0x27899a();while(!![]){try{const _0x54889c=-parseInt(_0x4741d5(0x1c4))/0x1*(-parseInt(_0x4741d5(0x1cc))/0x2)+-parseInt(_0x4741d5(0x1c5))/0x3*(-parseInt(_0x4741d5(0x1d0))/0x4)+-parseInt(_0x4741d5(0x1df))/0x5*(parseInt(_0x4741d5(0x1c3))/0x6)+parseInt(_0x4741d5(0x1ca))/0x7*(-parseInt(_0x4741d5(0x1c6))/0x8)+-parseInt(_0x4741d5(0x1b9))/0x9*(parseInt(_0x4741d5(0x1cb))/0xa)+-parseInt(_0x4741d5(0x1bb))/0xb+-parseInt(_0x4741d5(0x1bd))/0xc*(-parseInt(_0x4741d5(0x1c2))/0xd);if(_0x54889c===_0x39eccb)break;else _0x386abc['push'](_0x386abc['shift']());}catch(_0x4e4f05){_0x386abc['push'](_0x386abc['shift']());}}}(a0_0x12d0,0x58655));import{ERROR_MESSAGE}from'../config/constants.js';export class ApiClient{constructor(_0x56d02b,_0x3a6cfb=null){const _0x3d9e6c=a0_0x273b;this[_0x3d9e6c(0x1d8)]=_0x56d02b,this['apiKey']=_0x3a6cfb;}[a0_0x4cfa28(0x1be)](_0x50d137){const _0x45510d=a0_0x4cfa28;this[_0x45510d(0x1d2)]=_0x50d137;}['getApiKey'](){return this['apiKey'];}[a0_0x4cfa28(0x1ce)](){this['apiKey']=null;}[a0_0x4cfa28(0x1dd)](_0x5dceb8={}){const _0x3d7686=a0_0x4cfa28,_0x8714d2={'Content-Type':_0x3d7686(0x1ba),..._0x5dceb8};return this['apiKey']&&(_0x8714d2[_0x3d7686(0x1c8)]=_0x3d7686(0x1d3)+this[_0x3d7686(0x1d2)]),_0x8714d2;}async[a0_0x4cfa28(0x1c9)](_0x50eea2,_0x2dcea1,_0x4c69bc={}){const _0x4a4a6e=a0_0x4cfa28,{body:body=null,headers:headers={},query:query=null}=_0x4c69bc;let _0x408f40=''+this['baseUrl']+_0x2dcea1;if(query){const _0x47f391=new URLSearchParams(query)[_0x4a4a6e(0x1dc)]();_0x408f40+='?'+_0x47f391;}const _0x47a4e4={'method':_0x50eea2,'headers':this[_0x4a4a6e(0x1dd)](headers)};body&&['POST',_0x4a4a6e(0x1c7),'PATCH'][_0x4a4a6e(0x1d7)](_0x50eea2['toUpperCase']())&&(_0x47a4e4['body']=JSON['stringify'](body));try{const _0x42f6e2=await fetch(_0x408f40,_0x47a4e4),_0x26d687=await _0x42f6e2[_0x4a4a6e(0x1cd)]()[_0x4a4a6e(0x1bf)](()=>({}));if(!_0x42f6e2['ok']){const _0x59761f=new Error(_0x26d687['error']||_0x4a4a6e(0x1da)+_0x42f6e2[_0x4a4a6e(0x1db)]+':\x20'+_0x42f6e2[_0x4a4a6e(0x1d9)]);_0x59761f['status']=_0x42f6e2[_0x4a4a6e(0x1db)],_0x59761f[_0x4a4a6e(0x1c1)]=_0x26d687;throw _0x59761f;}return _0x26d687;}catch(_0x1fc8e4){if(_0x1fc8e4['message'][_0x4a4a6e(0x1d7)](_0x4a4a6e(0x1d5))||_0x1fc8e4['name']==='TypeError'){const _0x175321=new Error(ERROR_MESSAGE['NETWORK_ERROR']+':\x20'+_0x1fc8e4['message']);_0x175321['originalError']=_0x1fc8e4;throw _0x175321;}throw _0x1fc8e4;}}async[a0_0x4cfa28(0x1d1)](_0x124ad7,_0x15b2db={}){const _0x50992f=a0_0x4cfa28;return this['request'](_0x50992f(0x1bc),_0x124ad7,_0x15b2db);}async[a0_0x4cfa28(0x1c0)](_0x26571f,_0x3dc9f5=null,_0x23e8a5={}){const _0x115ada=a0_0x4cfa28;return this[_0x115ada(0x1c9)](_0x115ada(0x1d6),_0x26571f,{..._0x23e8a5,'body':_0x3dc9f5});}async['put'](_0xf77a84,_0x1df3f2=null,_0x400ea7={}){return this['request']('PUT',_0xf77a84,{..._0x400ea7,'body':_0x1df3f2});}async['patch'](_0x512892,_0xf4ea83=null,_0x224296={}){const _0x5472ca=a0_0x4cfa28;return this[_0x5472ca(0x1c9)]('PATCH',_0x512892,{..._0x224296,'body':_0xf4ea83});}async[a0_0x4cfa28(0x1e0)](_0xd49cb6,_0x137bad={}){const _0x522faa=a0_0x4cfa28;return this[_0x522faa(0x1c9)](_0x522faa(0x1d4),_0xd49cb6,_0x137bad);}}export function createApiClient(_0x67985b=a0_0x4cfa28(0x1cf),_0x1ae650=0x1f90,_0x13cf29=null){const _0x38e47b=a0_0x4cfa28,_0x2cedc4=_0x38e47b(0x1de)+_0x67985b+':'+_0x1ae650;return new ApiClient(_0x2cedc4,_0x13cf29);}function a0_0x273b(_0x44829b,_0x1b5148){_0x44829b=_0x44829b-0x1b9;const _0x12d01d=a0_0x12d0();let _0x273b5a=_0x12d01d[_0x44829b];if(a0_0x273b['igOhOk']===undefined){var _0x4781cd=function(_0x5341bf){const _0x507826='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x56d02b='',_0x3a6cfb='';for(let _0x50d137=0x0,_0x5dceb8,_0x8714d2,_0x50eea2=0x0;_0x8714d2=_0x5341bf['charAt'](_0x50eea2++);~_0x8714d2&&(_0x5dceb8=_0x50d137%0x4?_0x5dceb8*0x40+_0x8714d2:_0x8714d2,_0x50d137++%0x4)?_0x56d02b+=String['fromCharCode'](0xff&_0x5dceb8>>(-0x2*_0x50d137&0x6)):0x0){_0x8714d2=_0x507826['indexOf'](_0x8714d2);}for(let _0x2dcea1=0x0,_0x4c69bc=_0x56d02b['length'];_0x2dcea1<_0x4c69bc;_0x2dcea1++){_0x3a6cfb+='%'+('00'+_0x56d02b['charCodeAt'](_0x2dcea1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3a6cfb);};a0_0x273b['iKopyv']=_0x4781cd,a0_0x273b['WrDHyx']={},a0_0x273b['igOhOk']=!![];}const _0x1e340e=_0x12d01d[0x0],_0x10e434=_0x44829b+_0x1e340e,_0x4c38d5=a0_0x273b['WrDHyx'][_0x10e434];return!_0x4c38d5?(_0x273b5a=a0_0x273b['iKopyv'](_0x273b5a),a0_0x273b['WrDHyx'][_0x10e434]=_0x273b5a):_0x273b5a=_0x4c38d5,_0x273b5a;}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_0x583f4a=a0_0x3487;function a0_0x3487(_0x1a926e,_0x1a71b6){_0x1a926e=_0x1a926e-0x169;const _0x28099f=a0_0x2809();let _0x3487d1=_0x28099f[_0x1a926e];if(a0_0x3487['eremAM']===undefined){var _0x380b40=function(_0x34714c){const _0x37075a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x43fd5b='',_0x4258da='';for(let _0x51867d=0x0,_0x2c0290,_0x47052c,_0x926870=0x0;_0x47052c=_0x34714c['charAt'](_0x926870++);~_0x47052c&&(_0x2c0290=_0x51867d%0x4?_0x2c0290*0x40+_0x47052c:_0x47052c,_0x51867d++%0x4)?_0x43fd5b+=String['fromCharCode'](0xff&_0x2c0290>>(-0x2*_0x51867d&0x6)):0x0){_0x47052c=_0x37075a['indexOf'](_0x47052c);}for(let _0x114aa6=0x0,_0x408a38=_0x43fd5b['length'];_0x114aa6<_0x408a38;_0x114aa6++){_0x4258da+='%'+('00'+_0x43fd5b['charCodeAt'](_0x114aa6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4258da);};a0_0x3487['bNrSGQ']=_0x380b40,a0_0x3487['mvaqRs']={},a0_0x3487['eremAM']=!![];}const _0x5da04d=_0x28099f[0x0],_0x5e9e85=_0x1a926e+_0x5da04d,_0x34eec2=a0_0x3487['mvaqRs'][_0x5e9e85];return!_0x34eec2?(_0x3487d1=a0_0x3487['bNrSGQ'](_0x3487d1),a0_0x3487['mvaqRs'][_0x5e9e85]=_0x3487d1):_0x3487d1=_0x34eec2,_0x3487d1;}(function(_0x3a7fd1,_0x2f51d3){const _0x3c1c40=a0_0x3487,_0x348485=_0x3a7fd1();while(!![]){try{const _0x4137ae=parseInt(_0x3c1c40(0x180))/0x1*(-parseInt(_0x3c1c40(0x179))/0x2)+parseInt(_0x3c1c40(0x193))/0x3+-parseInt(_0x3c1c40(0x18c))/0x4*(parseInt(_0x3c1c40(0x18a))/0x5)+parseInt(_0x3c1c40(0x187))/0x6+parseInt(_0x3c1c40(0x194))/0x7+-parseInt(_0x3c1c40(0x16a))/0x8*(-parseInt(_0x3c1c40(0x17a))/0x9)+-parseInt(_0x3c1c40(0x174))/0xa;if(_0x4137ae===_0x2f51d3)break;else _0x348485['push'](_0x348485['shift']());}catch(_0xad8e7b){_0x348485['push'](_0x348485['shift']());}}}(a0_0x2809,0x31c44));import{EventEmitter}from'events';import{WS_MESSAGE_TYPE}from'../config/constants.js';export class MessageRouter extends EventEmitter{constructor(_0x43fd5b){const _0x33f82e=a0_0x3487;super(),this['ws']=_0x43fd5b,this[_0x33f82e(0x18b)]=new Map(),this[_0x33f82e(0x16b)]=[],this['ws']['on']('message',_0x4258da=>this[_0x33f82e(0x173)](_0x4258da)),this['registerDefaultHandlers']();}[a0_0x583f4a(0x177)](){const _0x24774e=a0_0x583f4a;this[_0x24774e(0x182)](WS_MESSAGE_TYPE['MESSAGE_ADDED'],_0x51867d=>{const _0x4f5894=_0x24774e;this[_0x4f5894(0x185)](_0x4f5894(0x18e),_0x51867d['data']);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE[_0x24774e(0x178)],_0x2c0290=>{const _0x2a7328=_0x24774e;this[_0x2a7328(0x185)](_0x2a7328(0x184),_0x2c0290);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE['EXECUTION_STOPPED'],_0x47052c=>{const _0x52cf31=_0x24774e;this[_0x52cf31(0x185)](_0x52cf31(0x171),_0x47052c[_0x52cf31(0x17b)]);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE[_0x24774e(0x16f)],_0x926870=>{const _0x37e433=_0x24774e;this[_0x37e433(0x185)]('agent:error',_0x926870);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE['AGENT_WARNING'],_0x114aa6=>{const _0x4a1de2=_0x24774e;this[_0x4a1de2(0x185)](_0x4a1de2(0x195),_0x114aa6);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_IMPORTED'],_0x408a38=>{const _0x49ae49=_0x24774e;this['emit']('agent:imported',_0x408a38[_0x49ae49(0x16e)]);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0x38e12c=>{const _0x69b4ff=_0x24774e;this['emit'](_0x69b4ff(0x190),_0x38e12c['data']);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE[_0x24774e(0x170)],_0x2e7900=>{const _0x111601=_0x24774e;this[_0x111601(0x185)]('conversation:compaction',_0x2e7900['data']);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE['IMAGE_RESULT'],_0x430a20=>{const _0x4c9a42=_0x24774e;this['emit']('image:result',_0x430a20[_0x4c9a42(0x17b)]);}),this['registerHandler'](WS_MESSAGE_TYPE['IMAGE_GENERATED'],_0x4ae4ee=>{const _0xc05694=_0x24774e;this[_0xc05694(0x185)](_0xc05694(0x189),_0x4ae4ee[_0xc05694(0x17b)]);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE['ERROR'],_0x1a1aad=>{this['emit']('error',_0x1a1aad);});}async[a0_0x583f4a(0x173)](_0x45226c){const _0x2eebfc=a0_0x583f4a;let processedMessage=_0x45226c;for(const _0x5bddd4 of this[_0x2eebfc(0x16b)]){try{processedMessage=await _0x5bddd4(processedMessage);if(!processedMessage)return;}catch(_0x378191){this['emit']('middleware_error',{'error':_0x378191,'message':_0x45226c});return;}}const _0x3f755f=processedMessage['type'];if(!_0x3f755f){this[_0x2eebfc(0x185)](_0x2eebfc(0x16d),processedMessage);return;}if(this[_0x2eebfc(0x18b)][_0x2eebfc(0x192)](_0x3f755f)){const _0x4bf6b6=this['handlers'][_0x2eebfc(0x169)](_0x3f755f);try{await _0x4bf6b6(processedMessage);}catch(_0x5eb860){this[_0x2eebfc(0x185)]('handler_error',{'error':_0x5eb860,'message':processedMessage,'messageType':_0x3f755f});}}this['emit'](_0x2eebfc(0x17c)+_0x3f755f,processedMessage),this[_0x2eebfc(0x185)](_0x2eebfc(0x183),processedMessage);}['registerHandler'](_0x54ab95,_0x58b20d){const _0x54a967=a0_0x583f4a;if(typeof _0x58b20d!=='function')throw new Error(_0x54a967(0x191));this[_0x54a967(0x18b)][_0x54a967(0x17f)](_0x54ab95,_0x58b20d);}['unregisterHandler'](_0x2626c9){this['handlers']['delete'](_0x2626c9);}[a0_0x583f4a(0x18d)](_0x2f7b1b){const _0xb95113=a0_0x583f4a;if(typeof _0x2f7b1b!==_0xb95113(0x188))throw new Error('Middleware\x20must\x20be\x20a\x20function');this[_0xb95113(0x16b)]['push'](_0x2f7b1b);}[a0_0x583f4a(0x172)](_0x5cf4ca){const _0x38aa0c=a0_0x583f4a,_0x39d68d=this['middleware']['indexOf'](_0x5cf4ca);_0x39d68d>-0x1&&this['middleware'][_0x38aa0c(0x181)](_0x39d68d,0x1);}['clearMiddleware'](){this['middleware']=[];}[a0_0x583f4a(0x16c)](){const _0x323428=a0_0x583f4a;return Array[_0x323428(0x175)](this['handlers'][_0x323428(0x17d)]());}['hasHandler'](_0x132a5e){const _0x3f2a9c=a0_0x583f4a;return this[_0x3f2a9c(0x18b)][_0x3f2a9c(0x192)](_0x132a5e);}['clearHandlers'](){this['handlers']['clear']();}['reset'](){const _0x86c20c=a0_0x583f4a;this['clearHandlers'](),this[_0x86c20c(0x186)](),this[_0x86c20c(0x177)]();}}export function loggingMiddleware(_0x197ef8=console[a0_0x583f4a(0x176)]){return _0x4c0989=>{const _0x2d0675=a0_0x3487;return _0x197ef8('[MessageRouter]',_0x4c0989[_0x2d0675(0x17e)],_0x4c0989),_0x4c0989;};}export function filterMiddleware(_0x3b63ea){return _0x1845e2=>{if(_0x3b63ea['includes'](_0x1845e2['type']))return _0x1845e2;return null;};}export function transformMiddleware(_0x14cc71){return async _0x45cbe3=>{return await _0x14cc71(_0x45cbe3);};}export function timestampMiddleware(){return _0x3f9003=>{const _0x55149e=a0_0x3487;return{..._0x3f9003,'receivedAt':new Date()[_0x55149e(0x18f)]()};};}export function validationMiddleware(_0x4104ed){return _0x5f15ce=>{if(_0x4104ed(_0x5f15ce))return _0x5f15ce;throw new Error('Message\x20validation\x20failed');};}export default MessageRouter;function a0_0x2809(){const _0x4f2ce9=['DxnL','ywDLBNq6BwvZC2fNzv9HzgrLza','Dg9ju09tDhjPBMC','ywDLBNq6y29TBxvUAwnHDgLVBG','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','AgfZ','mte3nti0n21uB0vRAW','mtq4odyXm2DlEuvYDq','ywDLBNq6D2fYBMLUzW','z2v0','nZC2og9uuMDjvq','BwLKzgXLD2fYzq','z2v0uMvNAxn0zxjLzfr5CgvZ','Aw52ywXPzf9TzxnZywDL','ywDLBNq','quDftLrFrvjst1i','q09nuefdveLptL9fvKvova','ywDLBNq6zxHLy3v0Aw9Ux3n0B3bWzwq','CMvTB3zLtwLKzgXLD2fYzq','CM91Dgu','nZmXmteZmfHHr2rysG','zNjVBq','Bg9N','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','quDftLrFtu9erv9dsefor0ve','mJK4q3Dfr3j2','mtqXm1vIsxfgAG','zgf0yq','BwvZC2fNztO','A2v5CW','DhLWzq','C2v0','nde5DNzACw5R','C3bSAwnL','CMvNAxn0zxjiyw5KBgvY','BwvZC2fNzq','ywDLBNq6Bw9Kzv9JAgfUz2vK','zw1PDa','y2XLyxjnAwrKBgv3yxjL','mtC0nJqZmKjksMnssG','zNvUy3rPB24','Aw1Hz2u6z2vUzxjHDgvK','mJuYnJK1sxL1tuLx','AgfUzgXLCNm','ng9drNfMCa'];a0_0x2809=function(){return _0x4f2ce9;};return a0_0x2809();}
@@ -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_0x480d97=a0_0x2cb2;(function(_0x15e21d,_0x303c74){const _0x53db2d=a0_0x2cb2,_0x483444=_0x15e21d();while(!![]){try{const _0x55c47e=parseInt(_0x53db2d(0xdb))/0x1*(parseInt(_0x53db2d(0xb6))/0x2)+-parseInt(_0x53db2d(0xe3))/0x3+-parseInt(_0x53db2d(0xc4))/0x4*(parseInt(_0x53db2d(0xd9))/0x5)+parseInt(_0x53db2d(0xe0))/0x6*(-parseInt(_0x53db2d(0xcc))/0x7)+-parseInt(_0x53db2d(0xde))/0x8+-parseInt(_0x53db2d(0xc8))/0x9*(parseInt(_0x53db2d(0xcf))/0xa)+parseInt(_0x53db2d(0xd7))/0xb*(parseInt(_0x53db2d(0xb3))/0xc);if(_0x55c47e===_0x303c74)break;else _0x483444['push'](_0x483444['shift']());}catch(_0x296c58){_0x483444['push'](_0x483444['shift']());}}}(a0_0x2dad,0x7bac6));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';function a0_0x2dad(){const _0x395c5a=['zgvSzxrLqxbPs2v5CW','u0vtu0LptL9duKvbveu','DxbKyxrLzef0','DgLTzxn0yw1W','u0vtu0LptL9jtLzbteLe','yMfZzvvYBa','s0vzu19trvq','Bg94AwfbCgLlzxK','mtuXnJaXmLHxEezRvq','BwfRzvjLCxvLC3q','DMvUzg9Ys2v5CW','C2vZC2LVBG','mtCXqunZz1rm','C2vZC2LVBKLK','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CZOG','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CW','nZyWowr2r0rttW','BgvUz3rO','revgqvvmvf9it1nu','mtu1nZCWBLHLvhHJ','ChjVAMvJDerPCG','AgfZtg94AwflzxK','C3vJy2vZCW','u2vYDMvYigHLywX0AcbJAgvJAYbMywLSzwq6ia','y3jLyxrLzef0','CMvWBgfJzq','BgfZDefJDgL2Axr5','ntG2mdmYn3P0s0vysq','Cg9YDa','nvPIqwX2EG','rMfPBgvKihrVihnLDcbbueKGA2v5CZOG','mtqWotmYzLb5Bgzx','BwvZC2fNzq','Aw5PDgLHBgL6zq','nJa1mdC5mMjZAg1nzq','C2v0qxbPs2v5','ntuXnhDuy2zxAG','y3DK','DMvYC2LVBG','mte5mZu4s2rVDMjg','oNnLC3nPB25jza','y3jLyxrLu2vZC2LVBG','yxbPq2XPzw50','ndHHzuLlyNC','u0vtu0LptL9duKvbvevFrKfjteve','z2v0qxbPs2v5u3rHDhvZ','mtjzCgnIBw8','zxjYB3i','y2XLyxi','y2HLy2TizwfSDgG','A2v5CW','Ahr0CdOVlW'];a0_0x2dad=function(){return _0x395c5a;};return a0_0x2dad();}function a0_0x2cb2(_0x3ef96c,_0x4cdc0e){_0x3ef96c=_0x3ef96c-0xb0;const _0x2dad7f=a0_0x2dad();let _0x2cb237=_0x2dad7f[_0x3ef96c];if(a0_0x2cb2['WeJYhr']===undefined){var _0x2b510f=function(_0x58084f){const _0x15f459='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x21a9ca='',_0x4b9f1f='';for(let _0x19a426=0x0,_0xec3009,_0x54485a,_0x2ddd99=0x0;_0x54485a=_0x58084f['charAt'](_0x2ddd99++);~_0x54485a&&(_0xec3009=_0x19a426%0x4?_0xec3009*0x40+_0x54485a:_0x54485a,_0x19a426++%0x4)?_0x21a9ca+=String['fromCharCode'](0xff&_0xec3009>>(-0x2*_0x19a426&0x6)):0x0){_0x54485a=_0x15f459['indexOf'](_0x54485a);}for(let _0x48f60f=0x0,_0x4db1cf=_0x21a9ca['length'];_0x48f60f<_0x4db1cf;_0x48f60f++){_0x4b9f1f+='%'+('00'+_0x21a9ca['charCodeAt'](_0x48f60f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4b9f1f);};a0_0x2cb2['ofPMAl']=_0x2b510f,a0_0x2cb2['tkTgqK']={},a0_0x2cb2['WeJYhr']=!![];}const _0x67d7d=_0x2dad7f[0x0],_0x2f8881=_0x3ef96c+_0x67d7d,_0x173d2f=a0_0x2cb2['tkTgqK'][_0x2f8881];return!_0x173d2f?(_0x2cb237=a0_0x2cb2['ofPMAl'](_0x2cb237),a0_0x2cb2['tkTgqK'][_0x2f8881]=_0x2cb237):_0x2cb237=_0x173d2f,_0x2cb237;}import{ApiClient}from'./apiClient.js';export class SessionManager{constructor(_0x21a9ca=NETWORK[a0_0x480d97(0xce)],_0x4b9f1f=NETWORK['DEFAULT_PORT']){const _0x3e70e3=a0_0x480d97;this['host']=_0x21a9ca,this[_0x3e70e3(0xd8)]=_0x4b9f1f,this[_0x3e70e3(0xc1)]=_0x3e70e3(0xbb)+_0x21a9ca+':'+_0x4b9f1f,this[_0x3e70e3(0xc9)]=null,this['projectDir']=null,this[_0x3e70e3(0xd4)]=null,this['lastActivity']=null,this['loxiaApiKey']=null,this['vendorKeys']={},this['apiClient']=new ApiClient(this['baseUrl'],this[_0x3e70e3(0xc3)]);}async['createSession'](_0x19a426=process['cwd']()){const _0x171bf2=a0_0x480d97;try{const _0xec3009=await this[_0x171bf2(0xc5)]('POST',API_ENDPOINTS[_0x171bf2(0xbd)],{'projectDir':_0x19a426});if(_0xec3009['success']&&_0xec3009['session'])return this[_0x171bf2(0xc9)]=_0xec3009['session']['id'],this[_0x171bf2(0xd0)]=_0x19a426,this['createdAt']=_0xec3009['session']['createdAt'],this[_0x171bf2(0xd6)]=_0xec3009[_0x171bf2(0xc7)]['lastActivity'],{'success':!![],'sessionId':this['sessionId'],'session':_0xec3009[_0x171bf2(0xc7)]};else throw new Error(_0xec3009[_0x171bf2(0xb7)]||ERROR_MESSAGE['SESSION_CREATE_FAILED']);}catch(_0x54485a){throw new Error(ERROR_MESSAGE[_0x171bf2(0xb4)]+':\x20'+_0x54485a[_0x171bf2(0xdc)]);}}async['setApiKeys'](_0x2ddd99=null,_0x48f60f={}){const _0x3da361=a0_0x480d97;if(!this[_0x3da361(0xc9)])throw new Error(ERROR_MESSAGE[_0x3da361(0xc0)]);try{const _0x4db1cf=await this['makeRequest']('POST',API_ENDPOINTS[_0x3da361(0xc2)],{'sessionId':this['sessionId'],'loxiaApiKey':_0x2ddd99,'vendorKeys':_0x48f60f});if(_0x4db1cf['success'])return this[_0x3da361(0xc3)]=_0x2ddd99,this['vendorKeys']=_0x48f60f,this['apiClient'][_0x3da361(0xdf)](_0x2ddd99),{'success':!![],'message':_0x4db1cf['message'],'hasLoxiaKey':_0x4db1cf[_0x3da361(0xd1)],'vendorKeys':_0x4db1cf['vendorKeys']};else throw new Error(_0x4db1cf[_0x3da361(0xb7)]||'Failed\x20to\x20set\x20API\x20keys');}catch(_0x2935d0){throw new Error(_0x3da361(0xda)+_0x2935d0[_0x3da361(0xdc)]);}}async[a0_0x480d97(0xb5)](){const _0x422830=a0_0x480d97;if(!this[_0x422830(0xc9)])throw new Error(ERROR_MESSAGE[_0x422830(0xc0)]);try{const _0x3bf8b1=API_ENDPOINTS['KEYS_GET']['replace'](':sessionId',this['sessionId']),_0x494594=await this['makeRequest']('GET',_0x3bf8b1);if(_0x494594['success'])return{'success':!![],'hasLoxiaKey':_0x494594[_0x422830(0xd1)],'vendorKeys':_0x494594['vendorKeys'],'updatedAt':_0x494594[_0x422830(0xbe)]};else throw new Error(_0x494594[_0x422830(0xb7)]||'Failed\x20to\x20get\x20API\x20key\x20status');}catch(_0x57918e){throw new Error('Failed\x20to\x20get\x20API\x20key\x20status:\x20'+_0x57918e['message']);}}async[a0_0x480d97(0xbc)](){const _0x272fdf=a0_0x480d97;if(!this[_0x272fdf(0xc9)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x46c54e=API_ENDPOINTS['KEYS_DELETE'][_0x272fdf(0xd5)](_0x272fdf(0xb0),this['sessionId']),_0x526440=await this[_0x272fdf(0xc5)]('DELETE',_0x46c54e);if(_0x526440[_0x272fdf(0xd2)])return this[_0x272fdf(0xc3)]=null,this[_0x272fdf(0xc6)]={},{'success':!![],'message':_0x526440['message']};else throw new Error(_0x526440['error']||_0x272fdf(0xcb));}catch(_0xd6e088){throw new Error(_0x272fdf(0xca)+_0xd6e088[_0x272fdf(0xdc)]);}}async[a0_0x480d97(0xdd)](_0x50942e=process[a0_0x480d97(0xe1)]()){const _0x2bd8bd=a0_0x480d97;try{const _0x44f107=await this[_0x2bd8bd(0xb9)]();if(!_0x44f107['success'])throw new Error(_0x2bd8bd(0xd3)+_0x44f107[_0x2bd8bd(0xb7)]);const _0x589007=await this[_0x2bd8bd(0xb1)](_0x50942e);return{'success':!![],'sessionId':_0x589007['sessionId'],'session':_0x589007['session']};}catch(_0x134b77){return{'success':![],'error':_0x134b77['message']};}}async['checkHealth'](){const _0x2bf4fb=a0_0x480d97;try{const _0x341ac6=await this[_0x2bf4fb(0xc5)]('GET',API_ENDPOINTS['HEALTH']);return{'success':!![],'status':_0x341ac6['status'],'version':_0x341ac6[_0x2bf4fb(0xe2)],'timestamp':_0x341ac6[_0x2bf4fb(0xbf)]};}catch(_0x1c06c8){return{'success':![],'error':_0x1c06c8[_0x2bf4fb(0xdc)]};}}async['makeRequest'](_0x59b81a,_0x1f28ec,_0x11eadf=null){const _0x49cf6d=a0_0x480d97;return this[_0x49cf6d(0xb2)]['request'](_0x59b81a,_0x1f28ec,{'body':_0x11eadf});}['getSessionId'](){const _0x59d370=a0_0x480d97;return this[_0x59d370(0xc9)];}['getProjectDir'](){const _0x29be14=a0_0x480d97;return this[_0x29be14(0xd0)];}['isValid'](){return this['sessionId']!==null;}['updateActivity'](){const _0x50c699=a0_0x480d97;this[_0x50c699(0xd6)]=new Date()['toISOString']();}['getSessionInfo'](){const _0x1187b5=a0_0x480d97;return{'sessionId':this[_0x1187b5(0xc9)],'projectDir':this['projectDir'],'createdAt':this['createdAt'],'lastActivity':this['lastActivity'],'hasLoxiaKey':!!this['loxiaApiKey'],'vendorKeysCount':Object[_0x1187b5(0xba)](this[_0x1187b5(0xc6)])[_0x1187b5(0xcd)]};}[a0_0x480d97(0xb8)](){const _0x530e41=a0_0x480d97;this[_0x530e41(0xc9)]=null,this['projectDir']=null,this['createdAt']=null,this[_0x530e41(0xd6)]=null,this['loxiaApiKey']=null,this[_0x530e41(0xc6)]={};}}export default SessionManager;
@@ -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
+ function a0_0x3865(){const _0x140fe5=['AgfUzgXLug9Uz1rPBwvVDxq','zxjYB3i','AgfUzgXLq2XVC2u','BgfZDfbVBMDszwnLAxzLza','C2vUza','Cg9YDa','DhLWzq','z2vUzxjHDgvszxf1zxn0swq','C2v0DxbfDMvUDeHHBMrSzxjZ','nZyYmZy3uev5whvV','C2v0u3rHDgu','AgfUzgXLug9UzW','q2XPzw50igrPC2nVBM5Ly3q','mty2nJy3mufZCNrvEq','mte2ndq2nfPTuuPprq','mK9luNPMzG','q29UBMvJDgLVBIb0Aw1LB3v0','C2HVDwXKuMvJB25Uzwn0','B25Jzq','y2XVC2u','DxjS','Cg9Uz1rPBwvVDxq','AgfUzgXLtwvZC2fNzq','B3bLBG','D3m6lY8','y29UBMvJDa','AgfUzgXLrxjYB3i','Dg9tDhjPBMC','nZa2nZq3mMjHy3PLzG','zgLZy29UBMvJDa','CMvJB25Uzwn0vgLTzxi','mZu5mZCWnxHZrfHHAa','CgfYC2u','zw1PDa','AxndB25Uzwn0zwq','CMvJB25Uzwn0qxr0zw1WDhm','ndaWuKzIB1Dw','C2v0','CMvXlq','uKvdt05orunusu5h','Dw5ZAgLMDa','q09otKvdveve','C2vZC2LVBKLK','C3rHDgu','yMfZzvjLy29UBMvJDerLBgf5','AgfUzgXLt3bLBG','BwvZC2fNzq','revgqvvmvf9it1nu','z2v0','ChvZAa','C3rVCeHLyxj0yMvHDa','ChjVy2vZC01LC3nHz2vrDwv1zq','C2vUzf9LCNjVCG','mtyWmte2v1nUBKLK','ode2m252vxnXzG','qwXYzwfKEsbJB25Uzwn0zwqGB3iGy29UBMvJDgLUzW','t1jdsevtvfjbve9sx1jfuvvfu1q','C3rHCNrizwfYDgjLyxq','y29UBMvJDgvK','C3rYAw5NAwz5','CgLUz0LUDgvYDMfS','CMvXDwvZDeLKq291BNrLCG','AgvHCNrIzwf0x3rPBwvVDxq','CgvUzgLUz1jLCxvLC3rZ','CMvJB25Uzwn0rgvSyxK','y29UBMvJDgLVBL9LCNjVCG','C2vUzfbPBMC','v0vcu09ds0vux1jfq09otKvdvf9nvuXusvbmsuvs','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','BgvUz3rO','zgvSzxrL','y29UBMvJDgLUzW','BwvZC2fNzvf1zxvL','AgfZ','reLtq09otKvdveve'];a0_0x3865=function(){return _0x140fe5;};return a0_0x3865();}function a0_0x3d67(_0x4b869c,_0x42de1c){_0x4b869c=_0x4b869c-0x1c2;const _0x38658f=a0_0x3865();let _0x3d67f4=_0x38658f[_0x4b869c];if(a0_0x3d67['UMeqqL']===undefined){var _0xdbba16=function(_0x579585){const _0x42294f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2bf2da='',_0x312365='';for(let _0x137346=0x0,_0x43b02a,_0x103556,_0x1f9473=0x0;_0x103556=_0x579585['charAt'](_0x1f9473++);~_0x103556&&(_0x43b02a=_0x137346%0x4?_0x43b02a*0x40+_0x103556:_0x103556,_0x137346++%0x4)?_0x2bf2da+=String['fromCharCode'](0xff&_0x43b02a>>(-0x2*_0x137346&0x6)):0x0){_0x103556=_0x42294f['indexOf'](_0x103556);}for(let _0x41c2cc=0x0,_0x537ca5=_0x2bf2da['length'];_0x41c2cc<_0x537ca5;_0x41c2cc++){_0x312365+='%'+('00'+_0x2bf2da['charCodeAt'](_0x41c2cc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x312365);};a0_0x3d67['NrKqLg']=_0xdbba16,a0_0x3d67['VBGvod']={},a0_0x3d67['UMeqqL']=!![];}const _0x4d20e9=_0x38658f[0x0],_0x419d3b=_0x4b869c+_0x4d20e9,_0x5d2368=a0_0x3d67['VBGvod'][_0x419d3b];return!_0x5d2368?(_0x3d67f4=a0_0x3d67['NrKqLg'](_0x3d67f4),a0_0x3d67['VBGvod'][_0x419d3b]=_0x3d67f4):_0x3d67f4=_0x5d2368,_0x3d67f4;}const a0_0x313184=a0_0x3d67;(function(_0x2088f3,_0x40ab97){const _0x2b9749=a0_0x3d67,_0x8af227=_0x2088f3();while(!![]){try{const _0x1f476b=-parseInt(_0x2b9749(0x1f2))/0x1+-parseInt(_0x2b9749(0x1f8))/0x2*(parseInt(_0x2b9749(0x1f6))/0x3)+-parseInt(_0x2b9749(0x1d3))/0x4+parseInt(_0x2b9749(0x208))/0x5+parseInt(_0x2b9749(0x205))/0x6+parseInt(_0x2b9749(0x1f7))/0x7+-parseInt(_0x2b9749(0x1c2))/0x8*(parseInt(_0x2b9749(0x1d4))/0x9);if(_0x1f476b===_0x40ab97)break;else _0x8af227['push'](_0x8af227['shift']());}catch(_0x55df83){_0x8af227['push'](_0x8af227['shift']());}}}(a0_0x3865,0xa10f6));import a0_0x2bf2da 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(_0x312365=NETWORK[a0_0x313184(0x1cd)],_0x137346=NETWORK['DEFAULT_PORT'],_0x43b02a={}){const _0x417c75=a0_0x313184;super(),this['host']=_0x312365,this[_0x417c75(0x1ee)]=_0x137346,this['url']=_0x417c75(0x201)+_0x312365+':'+_0x137346,this['ws']=null,this['state']=CONNECTION_STATE['DISCONNECTED'],this['sessionId']=null,this[_0x417c75(0x20c)]=0x0,this[_0x417c75(0x1de)]=_0x43b02a['reconnectDelay']??TIMING[_0x417c75(0x1e2)],this[_0x417c75(0x1ca)]=this['reconnectDelay'],this[_0x417c75(0x207)]=null,this['shouldReconnect']=!![],this['heartbeatInterval']=_0x43b02a['heartbeatInterval']??TIMING['WEBSOCKET_PING_INTERVAL'],this[_0x417c75(0x1da)]=null,this[_0x417c75(0x1fe)]=null,this[_0x417c75(0x1ec)]=null,this[_0x417c75(0x1e6)]=[],this['requestIdCounter']=0x0,this['pendingRequests']=new Map();}async['connect'](){const _0x223fe9=a0_0x313184;if(this['state']===CONNECTION_STATE['CONNECTED']||this['state']===CONNECTION_STATE['CONNECTING'])return{'success':![],'error':_0x223fe9(0x1d5)};this['setState'](CONNECTION_STATE['CONNECTING']),this['emit'](_0x223fe9(0x1e5));try{return this['ws']=new a0_0x2bf2da(this[_0x223fe9(0x1fd)]),this[_0x223fe9(0x1f1)](),await this['waitForConnection'](),{'success':!![]};}catch(_0x103556){return this['handleConnectionError'](_0x103556),{'success':![],'error':_0x103556[_0x223fe9(0x1cc)]};}}['waitForConnection'](){return new Promise((_0x1f9473,_0x41c2cc)=>{const _0x121f6e=a0_0x3d67,_0x537ca5=setTimeout(()=>{const _0x55b27c=a0_0x3d67;_0x41c2cc(new Error(_0x55b27c(0x1f9)));},TIMING['WEBSOCKET_CONNECT_TIMEOUT']);this['ws'][_0x121f6e(0x1fb)]('open',()=>{clearTimeout(_0x537ca5),_0x1f9473();}),this['ws']['once']('error',_0x206782=>{clearTimeout(_0x537ca5),_0x41c2cc(_0x206782);});});}['setupEventHandlers'](){const _0x3efd4a=a0_0x313184;this['ws']['on'](_0x3efd4a(0x200),()=>this['handleOpen']()),this['ws']['on'](_0x3efd4a(0x1cc),_0x4bb2e2=>this['handleMessage'](_0x4bb2e2)),this['ws']['on'](_0x3efd4a(0x1fc),(_0x50bfd4,_0x5995af)=>this[_0x3efd4a(0x1eb)](_0x50bfd4,_0x5995af)),this['ws']['on']('error',_0x44433c=>this[_0x3efd4a(0x203)](_0x44433c));}[a0_0x313184(0x1cb)](){const _0x1c22ea=a0_0x313184;this['setState'](CONNECTION_STATE['CONNECTED']),this['reconnectAttempts']=0x0,this[_0x1c22ea(0x1de)]=this[_0x1c22ea(0x1ca)],this[_0x1c22ea(0x20a)](_0x1c22ea(0x1d8)),this['startHeartbeat'](),this[_0x1c22ea(0x1d1)]();}[a0_0x313184(0x1ff)](_0x39900c){const _0xb6f4f=a0_0x313184;try{const _0x54cf38=JSON[_0xb6f4f(0x209)](_0x39900c[_0xb6f4f(0x204)]());if(_0x54cf38[_0xb6f4f(0x1ef)]===WS_MESSAGE_TYPE['PONG']){this['handlePong']();return;}if(_0x54cf38['type']===WS_MESSAGE_TYPE[_0xb6f4f(0x1c7)]){this[_0xb6f4f(0x20a)]('welcome',_0x54cf38);return;}if(_0x54cf38['type']===WS_MESSAGE_TYPE['SESSION_JOINED']){this[_0xb6f4f(0x1c8)]=_0x54cf38['sessionId'],this['emit']('session_joined',_0x54cf38);return;}if(_0x54cf38[_0xb6f4f(0x1ef)]===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this['handleOrchestratorResponse'](_0x54cf38);return;}this['emit'](_0xb6f4f(0x1cc),_0x54cf38),_0x54cf38['type']&&this['emit'](_0x54cf38['type'],_0x54cf38);}catch(_0xf3bde2){this[_0xb6f4f(0x20a)]('parse_error',{'error':_0xf3bde2,'data':_0x39900c});}}['handleClose'](_0x1dd792,_0x59e582){const _0x37f8a3=a0_0x313184;this['cleanup']();const _0x56a542=_0x59e582[_0x37f8a3(0x204)]()||'Unknown\x20reason';this['emit']('disconnected',{'code':_0x1dd792,'reason':_0x56a542}),this[_0x37f8a3(0x1fa)]&&_0x1dd792!==0x3e8?this['scheduleReconnect']():this[_0x37f8a3(0x1f3)](CONNECTION_STATE[_0x37f8a3(0x1e8)]);}[a0_0x313184(0x203)](_0x258eb3){const _0x281e4f=a0_0x313184;this['emit'](_0x281e4f(0x1ea),_0x258eb3);}['handleConnectionError'](_0x50f9a1){const _0x3c90e3=a0_0x313184;this['setState'](CONNECTION_STATE['ERROR']),this[_0x3c90e3(0x20a)](_0x3c90e3(0x1df),_0x50f9a1),this['shouldReconnect']&&this['scheduleReconnect']();}['scheduleReconnect'](){const _0x3b28de=a0_0x313184;if(this[_0x3b28de(0x207)])return;this['setState'](CONNECTION_STATE[_0x3b28de(0x1c5)]),this[_0x3b28de(0x20c)]++;const _0x28d65c=Math['min'](this[_0x3b28de(0x1de)]*Math['pow'](TIMING[_0x3b28de(0x1e1)],this['reconnectAttempts']-0x1),TIMING['WEBSOCKET_RECONNECT_MAX_DELAY']);this['emit']('reconnecting',{'attempt':this[_0x3b28de(0x20c)],'delay':_0x28d65c}),this[_0x3b28de(0x207)]=setTimeout(()=>{const _0x7db70=_0x3b28de;this[_0x7db70(0x207)]=null,this[_0x7db70(0x202)]();},_0x28d65c);}[a0_0x313184(0x1d7)](){const _0x180dc2=a0_0x313184;this[_0x180dc2(0x1d0)](),this[_0x180dc2(0x1da)]=setInterval(()=>{const _0x43135f=_0x180dc2;this[_0x43135f(0x1c9)]===CONNECTION_STATE[_0x43135f(0x1c7)]&&this[_0x43135f(0x1e0)]();},this['heartbeatInterval']);}[a0_0x313184(0x1d0)](){const _0x20818d=a0_0x313184;this[_0x20818d(0x1da)]&&(clearInterval(this['pingInterval']),this[_0x20818d(0x1da)]=null),this['pongTimeout']&&(clearTimeout(this[_0x20818d(0x1fe)]),this[_0x20818d(0x1fe)]=null);}[a0_0x313184(0x1e0)](){const _0x468407=a0_0x313184;if(this[_0x468407(0x1c9)]!==CONNECTION_STATE['CONNECTED'])return;try{this[_0x468407(0x1ed)]({'type':WS_MESSAGE_TYPE['PING']}),this[_0x468407(0x1fe)]=setTimeout(()=>{const _0x1c10ea=_0x468407;this[_0x1c10ea(0x1e9)]();},TIMING['WEBSOCKET_PONG_TIMEOUT']);}catch(_0x3a708b){this[_0x468407(0x20a)]('ping_error',_0x3a708b);}}[a0_0x313184(0x1f4)](){const _0x553c56=a0_0x313184;this[_0x553c56(0x1ec)]=Date['now'](),this['pongTimeout']&&(clearTimeout(this['pongTimeout']),this['pongTimeout']=null);}[a0_0x313184(0x1e9)](){const _0x3fc91f=a0_0x313184;this['emit'](_0x3fc91f(0x1dc)),this[_0x3fc91f(0x206)](),this['shouldReconnect']&&this['scheduleReconnect']();}['joinSession'](_0xd6a78d){const _0x3724f8=a0_0x313184;this[_0x3724f8(0x1c8)]=_0xd6a78d,this[_0x3724f8(0x1ed)]({'type':WS_MESSAGE_TYPE['JOIN_SESSION'],'sessionId':_0xd6a78d});}['sendOrchestratorRequest'](_0xa144c4,_0x2d964e,_0x22af27){const _0x26002d=a0_0x313184,_0x4a92e4=this[_0x26002d(0x1f0)](),_0x3d8e71={'type':WS_MESSAGE_TYPE[_0x26002d(0x1d6)],'requestId':_0x4a92e4,'action':_0xa144c4,'payload':_0x2d964e,'projectDir':_0x22af27};return new Promise((_0x2b29b4,_0x3d32e3)=>{const _0x2ccf08=_0x26002d;this[_0x2ccf08(0x1dd)][_0x2ccf08(0x1c3)](_0x4a92e4,{'resolve':_0x2b29b4,'reject':_0x3d32e3,'timestamp':Date['now']()});try{this['send'](_0x3d8e71);}catch(_0x4ca524){this[_0x2ccf08(0x1dd)][_0x2ccf08(0x1e4)](_0x4a92e4),_0x3d32e3(_0x4ca524);}setTimeout(()=>{const _0x2a41fd=_0x2ccf08;this[_0x2a41fd(0x1dd)]['has'](_0x4a92e4)&&(this[_0x2a41fd(0x1dd)]['delete'](_0x4a92e4),_0x3d32e3(new Error('Request\x20timeout')));},TIMING['HTTP_TIMEOUT']);});}['handleOrchestratorResponse'](_0x2bb782){const _0x2bf4bf=a0_0x313184,{requestId:_0x45372e,response:_0x36a5dd,error:_0x11291b}=_0x2bb782;if(this[_0x2bf4bf(0x1dd)][_0x2bf4bf(0x1e7)](_0x45372e)){const {resolve:_0x24d8ce,reject:_0x47e9b3}=this[_0x2bf4bf(0x1dd)][_0x2bf4bf(0x1ce)](_0x45372e);this[_0x2bf4bf(0x1dd)][_0x2bf4bf(0x1e4)](_0x45372e),_0x11291b?_0x47e9b3(new Error(_0x11291b)):_0x24d8ce(_0x36a5dd);}}[a0_0x313184(0x1ed)](_0x357afc){const _0x429bda=a0_0x313184;if(this['state']!==CONNECTION_STATE[_0x429bda(0x1c7)]){this['messageQueue'][_0x429bda(0x1cf)](_0x357afc);return;}try{this['ws']['send'](JSON[_0x429bda(0x1d9)](_0x357afc));}catch(_0x4597cf){this['emit'](_0x429bda(0x1d2),_0x4597cf);throw _0x4597cf;}}['processMessageQueue'](){const _0xa1f230=a0_0x313184;while(this['messageQueue'][_0xa1f230(0x1e3)]>0x0&&this[_0xa1f230(0x1c9)]===CONNECTION_STATE['CONNECTED']){const _0x2fd9e0=this[_0xa1f230(0x1e6)]['shift']();try{this['ws'][_0xa1f230(0x1ed)](JSON['stringify'](_0x2fd9e0));}catch(_0xe4316d){this[_0xa1f230(0x20a)]('queue_process_error',_0xe4316d),this[_0xa1f230(0x1e6)][_0xa1f230(0x1c6)](_0x2fd9e0);break;}}}[a0_0x313184(0x206)](){const _0x45e8ea=a0_0x313184;this['shouldReconnect']=![],this['cleanup']();if(this['ws']){try{this['ws'][_0x45e8ea(0x1fc)](0x3e8,_0x45e8ea(0x1f5));}catch(_0x53fbbb){}this['ws']=null;}this['setState'](CONNECTION_STATE[_0x45e8ea(0x1e8)]);}['cleanup'](){const _0x18790d=a0_0x313184;this['stopHeartbeat'](),this['reconnectTimer']&&(clearTimeout(this['reconnectTimer']),this[_0x18790d(0x207)]=null),this['ws']&&this['ws']['removeAllListeners']();}[a0_0x313184(0x1f3)](_0x13cc94){const _0x5bff4f=a0_0x313184,_0x5dbb6d=this[_0x5bff4f(0x1c9)];this['state']=_0x13cc94,_0x5dbb6d!==_0x13cc94&&this[_0x5bff4f(0x20a)]('state_change',{'oldState':_0x5dbb6d,'newState':_0x13cc94});}['generateRequestId'](){const _0x302454=a0_0x313184;return this[_0x302454(0x1db)]++,_0x302454(0x1c4)+Date['now']()+'-'+this['requestIdCounter'];}['getState'](){return this['state'];}[a0_0x313184(0x20b)](){return this['state']===CONNECTION_STATE['CONNECTED'];}['getSessionId'](){const _0x27fc6b=a0_0x313184;return this[_0x27fc6b(0x1c8)];}['getStats'](){const _0x3e3e12=a0_0x313184;return{'state':this[_0x3e3e12(0x1c9)],'sessionId':this[_0x3e3e12(0x1c8)],'reconnectAttempts':this[_0x3e3e12(0x20c)],'queuedMessages':this[_0x3e3e12(0x1e6)]['length'],'pendingRequests':this['pendingRequests']['size'],'lastPongReceived':this[_0x3e3e12(0x1ec)]};}}export default WebSocketManager;