@loxia-labs/loxia-autopilot-one 1.0.4 → 1.0.5

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 (116) hide show
  1. package/README.md +1 -1
  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
@@ -1 +1 @@
1
- const a0_0x2ea39f=a0_0x2df9;(function(_0x4f1f53,_0x3d9d54){const _0x42d080=a0_0x2df9,_0x517921=_0x4f1f53();while(!![]){try{const _0x452077=parseInt(_0x42d080(0x1e4))/0x1+parseInt(_0x42d080(0x1dc))/0x2+parseInt(_0x42d080(0x1c7))/0x3*(parseInt(_0x42d080(0x1b3))/0x4)+parseInt(_0x42d080(0x1b1))/0x5*(parseInt(_0x42d080(0x1c6))/0x6)+-parseInt(_0x42d080(0x1b7))/0x7*(parseInt(_0x42d080(0x1d4))/0x8)+parseInt(_0x42d080(0x1be))/0x9*(parseInt(_0x42d080(0x1a7))/0xa)+parseInt(_0x42d080(0x1c2))/0xb*(-parseInt(_0x42d080(0x1d1))/0xc);if(_0x452077===_0x3d9d54)break;else _0x517921['push'](_0x517921['shift']());}catch(_0x4151c6){_0x517921['push'](_0x517921['shift']());}}}(a0_0x2b3b,0xe784f));import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';function a0_0x2df9(_0x8dd24,_0x50f264){_0x8dd24=_0x8dd24-0x1a2;const _0x2b3b1b=a0_0x2b3b();let _0x2df93e=_0x2b3b1b[_0x8dd24];if(a0_0x2df9['clkMOK']===undefined){var _0x4515ba=function(_0x309361){const _0x51c94c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39b3d1='',_0x49f689='';for(let _0x2fe951=0x0,_0x3a1837,_0x3dba89,_0x1781ba=0x0;_0x3dba89=_0x309361['charAt'](_0x1781ba++);~_0x3dba89&&(_0x3a1837=_0x2fe951%0x4?_0x3a1837*0x40+_0x3dba89:_0x3dba89,_0x2fe951++%0x4)?_0x39b3d1+=String['fromCharCode'](0xff&_0x3a1837>>(-0x2*_0x2fe951&0x6)):0x0){_0x3dba89=_0x51c94c['indexOf'](_0x3dba89);}for(let _0x371d3c=0x0,_0x3ae600=_0x39b3d1['length'];_0x371d3c<_0x3ae600;_0x371d3c++){_0x49f689+='%'+('00'+_0x39b3d1['charCodeAt'](_0x371d3c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x49f689);};a0_0x2df9['yKYlyK']=_0x4515ba,a0_0x2df9['UmidfR']={},a0_0x2df9['clkMOK']=!![];}const _0xdced90=_0x2b3b1b[0x0],_0x438c77=_0x8dd24+_0xdced90,_0x8697af=a0_0x2df9['UmidfR'][_0x438c77];return!_0x8697af?(_0x2df93e=a0_0x2df9['yKYlyK'](_0x2df93e),a0_0x2df9['UmidfR'][_0x438c77]=_0x2df93e):_0x2df93e=_0x8697af,_0x2df93e;}function a0_0x2b3b(){const _0x2a5320=['nZjKwKzgwfe','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLignHBIbIzsbHzgrLzcbHBMqGCMvTB3zLza','AxnwywXPza','Dg9fCxvHBa','q09ntuforfm','z2v0uhjVAMvJDerPCG','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbjBxbVCNrZ','BwLKzgXLD2fYzq','mJG4nJm1ngfQChvmsW','AgfZtg94AwflzxK','Bg94AwfbCgLlzxK','quDftLrFtu9erv9dsefor0ve','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','zNvUy3rPB24','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','ywXSB3DLzc10ExbL','mtu2nZm2m0vbtw1RsW','C2vZC2LVBKLK','Cg9YDa','ChjVAMvJDerPCG','tKvuv09ssW','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLigHLBhbLCNmGy3jLyxrLihzHBgLKig1PzgrSzxDHCMu','D3m6lY9SB2nHBgHVC3q6oda4ma','DMvUzg9Ys2v5CW','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','q09nuefdveLptL9fvKvova','Dg9nyxrJAa','y2XLyxi','BgvUz3rO','Dg9iyxzLuhjVCgvYDhK','mtGXotmXmgvNwvv1AG','DgvZDa','Dg9czurLzMLUzwq','DgvZDc1TzxnZywDL','yMfZzvvYBa','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','BM90lweTzNvUy3rPB24','Dw5YzwDPC3rLCKHHBMrSzxi','Dg9czq','v1nFtuvtu0fhrv9uwvbf','ntm2ota1B3LQDvnb','DgvZDc1OB3n0','ndqYmtC0mg53rfr2sa','Bg9JywXOB3n0','AgfZsgfUzgXLCG','Dg9czvrYDxrOEq','mtaWotq5oePoCLP3BG','revgqvvmvf9qt1ju','BNvTyMvY','z2v0u2vZC2LVBKLK','CMvJB25Uzwn0qxr0zw1WDhm','CMvJzwL2zwrbDa','z2vUzxjHDgvszxf1zxn0swq','mJDksfrjBKm','lI4VlI4VyxbPl3nLC3nPB24UANm','reLtq09otKvdveve','q09otKvdveLptL9tvefurq','ndmXmdC2mdnAyLfcEKu','CMvTB3zLtwLKzgXLD2fYzq','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','odrWCM9TAgO','m09oC0HqDW','C3rHDgu','BM90','DxjS','veLnsu5h','vuLFreLnru5tsu9ouW','BwvZC2fNzvf1zxvL','CxvLDwvKtwvZC2fNzxm','sfruuf9usu1ft1vu','u0LerujbuL9xsurusa','mtjNuM10uKu','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ'];a0_0x2b3b=function(){return _0x2a5320;};return a0_0x2b3b();}import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe(a0_0x2ea39f(0x1da),()=>{test('constants module exports all required constants',async()=>{const _0x5fcdc0=a0_0x2df9,_0x39b3d1=await import(_0x5fcdc0(0x1d2));expect(_0x39b3d1[_0x5fcdc0(0x1cc)])['toBeDefined'](),expect(_0x39b3d1['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x39b3d1['PAGINATION'])[_0x5fcdc0(0x1a9)](),expect(_0x39b3d1[_0x5fcdc0(0x1cb)])[_0x5fcdc0(0x1a9)](),expect(_0x39b3d1['NETWORK'])[_0x5fcdc0(0x1a9)](),expect(_0x39b3d1[_0x5fcdc0(0x1c1)])['toBeDefined'](),expect(_0x39b3d1['AGENT_MODE'])[_0x5fcdc0(0x1a9)](),expect(_0x39b3d1[_0x5fcdc0(0x1b0)])['toBeDefined'](),expect(_0x39b3d1['API_ENDPOINTS'])[_0x5fcdc0(0x1a9)](),expect(_0x39b3d1[_0x5fcdc0(0x1d8)])['toBeDefined'](),expect(_0x39b3d1[_0x5fcdc0(0x1e8)]['DEFAULT_HOST'])['toBe']('localhost'),expect(_0x39b3d1['NETWORK']['DEFAULT_PORT'])['toBe'](0x1f90),expect(_0x39b3d1['CONNECTION_STATE'][_0x5fcdc0(0x1c0)])[_0x5fcdc0(0x1af)]('disconnected'),expect(_0x39b3d1[_0x5fcdc0(0x1c1)]['CONNECTED'])[_0x5fcdc0(0x1af)]('connected');}),test('WebSocketManager class can be imported',async()=>{const _0x411231=a0_0x2df9,{WebSocketManager:_0x49f689}=await import(_0x411231(0x1ac));expect(_0x49f689)['toBeDefined'](),expect(typeof _0x49f689)[_0x411231(0x1af)](_0x411231(0x1e1));const _0x2fe951=new _0x49f689('localhost',0x1f90);expect(_0x2fe951)['toBeDefined'](),expect(_0x2fe951['host'])['toBe']('localhost'),expect(_0x2fe951['port'])[_0x411231(0x1af)](0x1f90),expect(_0x2fe951[_0x411231(0x1ca)])[_0x411231(0x1af)](_0x411231(0x1ea));}),test('SessionManager class can be imported',async()=>{const _0x3e2a80=a0_0x2df9,{SessionManager:_0x3a1837}=await import('../../api/session.js');expect(_0x3a1837)['toBeDefined'](),expect(typeof _0x3a1837)['toBe'](_0x3e2a80(0x1e1));const _0x3dba89=new _0x3a1837(_0x3e2a80(0x1b4),0x1f90);expect(_0x3dba89)['toBeDefined'](),expect(_0x3dba89['host'])['toBe']('localhost'),expect(_0x3dba89[_0x3e2a80(0x1e6)])['toBe'](0x1f90),expect(_0x3dba89[_0x3e2a80(0x1ab)])['toBe']('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x1b7371=a0_0x2df9,{MessageRouter:_0x1781ba}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x371d3c}=await import('../../api/websocket.js');expect(_0x1781ba)[_0x1b7371(0x1a9)](),expect(typeof _0x1781ba)[_0x1b7371(0x1af)](_0x1b7371(0x1e1));const _0x3ae600=new _0x371d3c('localhost',0x1f90),_0x2c328c=new _0x1781ba(_0x3ae600);expect(_0x2c328c)[_0x1b7371(0x1a9)](),expect(_0x2c328c['ws'])[_0x1b7371(0x1af)](_0x3ae600);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x200084=a0_0x2df9,{loggingMiddleware:_0x5a1354,filterMiddleware:_0x1f7c1e,transformMiddleware:_0x1307d8,timestampMiddleware:_0x4722d6,validationMiddleware:_0x3f44fc}=await import(_0x200084(0x1ec));expect(typeof _0x5a1354)['toBe']('function'),expect(typeof _0x1f7c1e)[_0x200084(0x1af)](_0x200084(0x1e1)),expect(typeof _0x1307d8)[_0x200084(0x1af)](_0x200084(0x1e1)),expect(typeof _0x4722d6)['toBe']('function'),expect(typeof _0x3f44fc)[_0x200084(0x1af)]('function');}),test('useConnection hook can be imported',async()=>{const _0x2b5ee8=a0_0x2df9,{useConnection:_0x548b30,useConnectionStatus:_0x2f1688}=await import(_0x2b5ee8(0x1c5));expect(_0x548b30)[_0x2b5ee8(0x1a9)](),expect(typeof _0x548b30)['toBe']('function'),expect(_0x2f1688)['toBeDefined'](),expect(typeof _0x2f1688)['toBe'](_0x2b5ee8(0x1e1));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x3bbaac=a0_0x2ea39f;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0xca2cb7=a0_0x2df9,{WebSocketManager:_0x3e2803}=await import(_0xca2cb7(0x1ac)),{CONNECTION_STATE:_0x332924}=await import('../../config/constants.js'),_0x518dbc=new _0x3e2803('test-host',0x2382);expect(_0x518dbc[_0xca2cb7(0x1c8)])['toBe'](_0x332924['DISCONNECTED']),expect(_0x518dbc[_0xca2cb7(0x1e5)])[_0xca2cb7(0x1af)](null),expect(_0x518dbc[_0xca2cb7(0x1cd)])[_0xca2cb7(0x1d7)]([]),expect(_0x518dbc['reconnectAttempts'])[_0xca2cb7(0x1af)](0x0),expect(_0x518dbc['shouldReconnect'])[_0xca2cb7(0x1af)](!![]);}),test('SessionManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x33ac99=a0_0x2df9,{SessionManager:_0x21b26c}=await import(_0x33ac99(0x1bf)),_0x1dce26=new _0x21b26c(_0x33ac99(0x1b2),0x2382);expect(_0x1dce26[_0x33ac99(0x1e5)])[_0x33ac99(0x1af)](null),expect(_0x1dce26['projectDir'])[_0x33ac99(0x1af)](null),expect(_0x1dce26['loxiaApiKey'])[_0x33ac99(0x1af)](null),expect(_0x1dce26['vendorKeys'])[_0x33ac99(0x1d7)]({}),expect(_0x1dce26[_0x33ac99(0x1d6)]())[_0x33ac99(0x1af)](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x5e6ab4=a0_0x2df9,{MessageRouter:_0x24484d}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4525b6}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x28a421}=await import(_0x5e6ab4(0x1d2)),_0x41f57c=new _0x4525b6('localhost',0x1f90),_0x552ed2=new _0x24484d(_0x41f57c);expect(_0x552ed2['hasHandler'](_0x28a421['MESSAGE_ADDED']))['toBe'](!![]),expect(_0x552ed2[_0x5e6ab4(0x1b5)](_0x28a421[_0x5e6ab4(0x1df)]))[_0x5e6ab4(0x1af)](!![]),expect(_0x552ed2['hasHandler'](_0x28a421['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0x552ed2['hasHandler'](_0x28a421[_0x5e6ab4(0x1a2)]))[_0x5e6ab4(0x1af)](!![]),expect(_0x552ed2[_0x5e6ab4(0x1b5)](_0x28a421['IMAGE_RESULT']))[_0x5e6ab4(0x1af)](!![]);}),test(_0x3bbaac(0x1d5),async()=>{const _0x5a4b94=_0x3bbaac,{MessageRouter:_0x23fe59}=await import(_0x5a4b94(0x1ec)),{WebSocketManager:_0x3889c6}=await import('../../api/websocket.js'),_0x3c23d6=new _0x3889c6('localhost',0x1f90),_0x347d66=new _0x23fe59(_0x3c23d6),_0x26fdeb=_0x32d63b=>_0x32d63b;expect(_0x347d66[_0x5a4b94(0x1db)][_0x5a4b94(0x1a5)])[_0x5a4b94(0x1e0)](0x0),_0x347d66['use'](_0x26fdeb);const _0x3b73f6=_0x347d66[_0x5a4b94(0x1db)]['length'];expect(_0x3b73f6)['toBeGreaterThan'](0x0),_0x347d66[_0x5a4b94(0x1c3)](_0x26fdeb),expect(_0x347d66[_0x5a4b94(0x1db)][_0x5a4b94(0x1a5)])['toBe'](_0x3b73f6-0x1);}),test('SessionManager\x20helper\x20methods\x20work',async()=>{const _0x169db8=_0x3bbaac,{SessionManager:_0x16394b}=await import(_0x169db8(0x1bf)),_0x328b6f=new _0x16394b(_0x169db8(0x1b4),0x1f90);expect(_0x328b6f['getSessionId']())['toBe'](null),expect(_0x328b6f[_0x169db8(0x1d9)]())[_0x169db8(0x1af)](null),expect(_0x328b6f['isValid']())[_0x169db8(0x1af)](![]);const _0x1b35d2=_0x328b6f['getSessionInfo']();expect(_0x1b35d2)['toHaveProperty']('sessionId'),expect(_0x1b35d2)['toHaveProperty'](_0x169db8(0x1e7)),expect(_0x1b35d2)['toHaveProperty'](_0x169db8(0x1dd)),expect(_0x1b35d2)[_0x169db8(0x1a6)]('vendorKeysCount');}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x2f0b0e=_0x3bbaac,{WebSocketManager:_0x1b9921}=await import(_0x2f0b0e(0x1ac)),{CONNECTION_STATE:_0xd4aa64}=await import(_0x2f0b0e(0x1d2)),_0x5b94f5=new _0x1b9921(_0x2f0b0e(0x1b4),0x1f90);expect(_0x5b94f5['getState']())['toBe'](_0xd4aa64['DISCONNECTED']),expect(_0x5b94f5['isConnected']())[_0x2f0b0e(0x1af)](![]),expect(_0x5b94f5[_0x2f0b0e(0x1ba)]())[_0x2f0b0e(0x1af)](null);const _0x400922=_0x5b94f5['getStats']();expect(_0x400922)['toHaveProperty']('state'),expect(_0x400922)['toHaveProperty'](_0x2f0b0e(0x1e5)),expect(_0x400922)[_0x2f0b0e(0x1a6)](_0x2f0b0e(0x1bb)),expect(_0x400922)['toHaveProperty'](_0x2f0b0e(0x1ce)),expect(_0x400922)[_0x2f0b0e(0x1a6)]('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x3de564=_0x3bbaac,{MessageRouter:_0x5986d6}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4b1508}=await import(_0x3de564(0x1ac)),_0x4c3118=new _0x4b1508('localhost',0x1f90),_0x7e1b4e=new _0x5986d6(_0x4c3118),_0x311370=()=>{};expect(_0x7e1b4e[_0x3de564(0x1b5)]('test-message'))['toBe'](![]),_0x7e1b4e['registerHandler']('test-message',_0x311370),expect(_0x7e1b4e[_0x3de564(0x1b5)](_0x3de564(0x1aa)))['toBe'](!![]),_0x7e1b4e[_0x3de564(0x1ae)](_0x3de564(0x1aa)),expect(_0x7e1b4e['hasHandler'](_0x3de564(0x1aa)))[_0x3de564(0x1af)](![]);}),test(_0x3bbaac(0x1e9),async()=>{const _0x5122ba=_0x3bbaac,{loggingMiddleware:_0x2ec0d4,timestampMiddleware:_0x23afa4,filterMiddleware:_0x244e29}=await import(_0x5122ba(0x1ec)),_0x39fd0a=_0x2ec0d4();expect(typeof _0x39fd0a)[_0x5122ba(0x1af)](_0x5122ba(0x1e1));const _0x1b4101=_0x23afa4();expect(typeof _0x1b4101)[_0x5122ba(0x1af)]('function');const _0x660a14={'type':'test'},_0x1fa581=_0x1b4101(_0x660a14);expect(_0x1fa581)[_0x5122ba(0x1a6)](_0x5122ba(0x1bc)),expect(_0x1fa581['type'])[_0x5122ba(0x1af)](_0x5122ba(0x1a8));const _0x3755dc=_0x244e29([_0x5122ba(0x1e3)]);expect(typeof _0x3755dc)[_0x5122ba(0x1af)]('function'),expect(_0x3755dc({'type':'allowed-type'}))[_0x5122ba(0x1b6)](),expect(_0x3755dc({'type':'blocked-type'}))['toBe'](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x1240f5=_0x3bbaac,_0x2e8711=await import(_0x1240f5(0x1d2));expect(typeof _0x2e8711[_0x1240f5(0x1cb)]['WEBSOCKET_RECONNECT_DELAY'])['toBe']('number'),expect(typeof _0x2e8711[_0x1240f5(0x1cb)]['WEBSOCKET_PING_INTERVAL'])[_0x1240f5(0x1af)](_0x1240f5(0x1b9)),expect(typeof _0x2e8711[_0x1240f5(0x1e8)][_0x1240f5(0x1b8)])['toBe'](_0x1240f5(0x1b9)),expect(typeof _0x2e8711['NETWORK']['MAX_RETRIES'])['toBe']('number'),expect(typeof _0x2e8711[_0x1240f5(0x1e8)][_0x1240f5(0x1cf)])[_0x1240f5(0x1af)]('number'),expect(typeof _0x2e8711['UI_DIMENSIONS']['MESSAGE_LIST_HEIGHT'])[_0x1240f5(0x1af)]('number'),expect(typeof _0x2e8711[_0x1240f5(0x1cc)][_0x1240f5(0x1d0)])['toBe'](_0x1240f5(0x1b9));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x5bbdad=a0_0x2ea39f;test('MessageRouter\x20throws\x20on\x20invalid\x20handler',async()=>{const _0x2a7bc7=a0_0x2df9,{MessageRouter:_0x284dc8}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x458518}=await import('../../api/websocket.js'),_0x569064=new _0x458518('localhost',0x1f90),_0x4a0033=new _0x284dc8(_0x569064);expect(()=>{const _0x50200f=a0_0x2df9;_0x4a0033['registerHandler'](_0x50200f(0x1a8),_0x50200f(0x1ad));})['toThrow'](_0x2a7bc7(0x1e2));}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x3fe5a8=a0_0x2df9,{MessageRouter:_0x5ac0ab}=await import(_0x3fe5a8(0x1ec)),{WebSocketManager:_0x3264dc}=await import(_0x3fe5a8(0x1ac)),_0x3c9c76=new _0x3264dc(_0x3fe5a8(0x1b4),0x1f90),_0x38805a=new _0x5ac0ab(_0x3c9c76);expect(()=>{_0x38805a['use']('not-a-function');})['toThrow'](_0x3fe5a8(0x1c4));}),test('SessionManager\x20clear()\x20resets\x20all\x20state',async()=>{const _0x5ac38d=a0_0x2df9,{SessionManager:_0xf8e949}=await import('../../api/session.js'),_0x57727d=new _0xf8e949('localhost',0x1f90);_0x57727d['sessionId']='test-123',_0x57727d[_0x5ac38d(0x1e7)]='/test/dir',_0x57727d[_0x5ac38d(0x1de)]='test-key',_0x57727d['vendorKeys']={'openai':'key'},expect(_0x57727d[_0x5ac38d(0x1d6)]())[_0x5ac38d(0x1af)](!![]),_0x57727d[_0x5ac38d(0x1a4)](),expect(_0x57727d[_0x5ac38d(0x1e5)])[_0x5ac38d(0x1af)](null),expect(_0x57727d[_0x5ac38d(0x1e7)])[_0x5ac38d(0x1af)](null),expect(_0x57727d['loxiaApiKey'])['toBe'](null),expect(_0x57727d[_0x5ac38d(0x1eb)])['toEqual']({}),expect(_0x57727d[_0x5ac38d(0x1d6)]())['toBe'](![]);}),test(_0x5bbdad(0x1d3),async()=>{const _0x4738a7=_0x5bbdad,{WebSocketManager:_0x95832b}=await import('../../api/websocket.js'),_0x46bfa8=new _0x95832b(_0x4738a7(0x1b4),0x1f90),_0x4dfd3e=_0x46bfa8[_0x4738a7(0x1bd)](),_0x303a9c=_0x46bfa8['generateRequestId'](),_0x10503a=_0x46bfa8[_0x4738a7(0x1bd)]();expect(_0x4dfd3e)[_0x4738a7(0x1c9)]['toBe'](_0x303a9c),expect(_0x303a9c)['not'][_0x4738a7(0x1af)](_0x10503a),expect(_0x4dfd3e)['not'][_0x4738a7(0x1af)](_0x10503a),expect(_0x4dfd3e)[_0x4738a7(0x1a3)](/^req-\d+-\d+$/),expect(_0x303a9c)[_0x4738a7(0x1a3)](/^req-\d+-\d+$/),expect(_0x10503a)[_0x4738a7(0x1a3)](/^req-\d+-\d+$/);});});
1
+ const a0_0x5b3d06=a0_0x1a38;(function(_0x15ba76,_0x451568){const _0x2aff80=a0_0x1a38,_0x1eba85=_0x15ba76();while(!![]){try{const _0x13745d=-parseInt(_0x2aff80(0x146))/0x1*(parseInt(_0x2aff80(0x150))/0x2)+parseInt(_0x2aff80(0x140))/0x3*(parseInt(_0x2aff80(0x149))/0x4)+-parseInt(_0x2aff80(0x17f))/0x5+-parseInt(_0x2aff80(0x148))/0x6*(parseInt(_0x2aff80(0x177))/0x7)+parseInt(_0x2aff80(0x156))/0x8*(-parseInt(_0x2aff80(0x158))/0x9)+-parseInt(_0x2aff80(0x13c))/0xa+parseInt(_0x2aff80(0x151))/0xb;if(_0x13745d===_0x451568)break;else _0x1eba85['push'](_0x1eba85['shift']());}catch(_0x203153){_0x1eba85['push'](_0x1eba85['shift']());}}}(a0_0x4bf7,0x7a78e));import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';function a0_0x4bf7(){const _0x33bccb=['tKvuv09ssW','AxnwywXPza','Ag9ZDa','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','CgvUzgLUz1jLCxvLC3rZ','v2vIu29JA2v0twfUywDLCIbPBML0AwfSAxPLCYb3AxrOignVCNjLy3qGC3rHDgu','BM90','z2v0uhjVAMvJDerPCG','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','ChjVAMvJDerPCG','C3rHDgu','CxvLDwvKtwvZC2fNzxm','vuLFreLnru5tsu9ouW','l3rLC3qVzgLY','Dg9iyxzLuhjVCgvYDhK','z2v0u3rHDhm','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','mte5D3PHt2fj','yMXVy2TLzc10ExbL','quDftLrFtu9erq','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbTAwrKBgv3yxjL','DgvZDa','Dg9fCxvHBa','revgqvvmvf9qt1ju','BNvTyMvY','ndq0mZmXmeHTqxrAta','nJmZnZq5mgPIDMLtwG','C2vZC2LVBKLK','Bg9JywXOB3n0','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','mtvqAM1evLC','q09otKvdveLptL9tvefurq','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','DMvUzg9Ys2v5CW','reLtq09otKvdveve','DxnL','ndmZC1voEgLc','Bg94AwfbCgLlzxK','mtqXotb1qvPiCMy','odG1mtzKzwnVv2S','veLnsu5h','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','z2v0u2vZC2LVBKLK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbfCNjVCIbiyw5KBgLUzW','AgfZsgfUzgXLCG','mtHPzgnKBfi','mJq4nZqXnZLiwuHvweO','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLigHLBhbLCNmGy3jLyxrLihzHBgLKig1PzgrSzxDHCMu','lI4VlI4VyxbPl3nLC3nPB24UANm','su1br0vFuKvtvuXu','ndG2mdqWtff5v1nf','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','ndvvDhjtsKK','DgvZDc1TzxnZywDL','u0LerujbuL9xsurusa','zNvUy3rPB24','CMvJzwL2zwrbDa','revgqvvmvf9it1nu','BwLKzgXLD2fYzq','AgfZtg94AwflzxK','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','Dg9czurLzMLUzwq','Dg9czq','BwvZC2fNzvf1zxvL','BM90lweTzNvUy3rPB24'];a0_0x4bf7=function(){return _0x33bccb;};return a0_0x4bf7();}import{dirname,join}from'path';function a0_0x1a38(_0x427b57,_0x4e01d2){_0x427b57=_0x427b57-0x13c;const _0x4bf7d8=a0_0x4bf7();let _0x1a389c=_0x4bf7d8[_0x427b57];if(a0_0x1a38['GVvhJa']===undefined){var _0x14708e=function(_0x2d0266){const _0x8e1ddf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4abc9c='',_0xd52901='';for(let _0x5f4eb7=0x0,_0x717056,_0x3de5a1,_0x38869c=0x0;_0x3de5a1=_0x2d0266['charAt'](_0x38869c++);~_0x3de5a1&&(_0x717056=_0x5f4eb7%0x4?_0x717056*0x40+_0x3de5a1:_0x3de5a1,_0x5f4eb7++%0x4)?_0x4abc9c+=String['fromCharCode'](0xff&_0x717056>>(-0x2*_0x5f4eb7&0x6)):0x0){_0x3de5a1=_0x8e1ddf['indexOf'](_0x3de5a1);}for(let _0x5c703f=0x0,_0x550ecb=_0x4abc9c['length'];_0x5c703f<_0x550ecb;_0x5c703f++){_0xd52901+='%'+('00'+_0x4abc9c['charCodeAt'](_0x5c703f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xd52901);};a0_0x1a38['pAkSfB']=_0x14708e,a0_0x1a38['cwchmu']={},a0_0x1a38['GVvhJa']=!![];}const _0x30752d=_0x4bf7d8[0x0],_0x470a9d=_0x427b57+_0x30752d,_0x4d3633=a0_0x1a38['cwchmu'][_0x470a9d];return!_0x4d3633?(_0x1a389c=a0_0x1a38['pAkSfB'](_0x1a389c),a0_0x1a38['cwchmu'][_0x470a9d]=_0x1a389c):_0x1a389c=_0x4d3633,_0x1a389c;}const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x57cb86=a0_0x1a38,_0x4abc9c=await import(_0x57cb86(0x176));expect(_0x4abc9c['UI_DIMENSIONS'])['toBeDefined'](),expect(_0x4abc9c['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x4abc9c['PAGINATION'])['toBeDefined'](),expect(_0x4abc9c[_0x57cb86(0x14a)])['toBeDefined'](),expect(_0x4abc9c['NETWORK'])['toBeDefined'](),expect(_0x4abc9c[_0x57cb86(0x141)])[_0x57cb86(0x161)](),expect(_0x4abc9c[_0x57cb86(0x179)])['toBeDefined'](),expect(_0x4abc9c['WS_MESSAGE_TYPE'])['toBeDefined'](),expect(_0x4abc9c['API_ENDPOINTS'])[_0x57cb86(0x161)](),expect(_0x4abc9c['COMMANDS'])['toBeDefined'](),expect(_0x4abc9c[_0x57cb86(0x165)][_0x57cb86(0x15d)])['toBe'](_0x57cb86(0x13e)),expect(_0x4abc9c['NETWORK'][_0x57cb86(0x17d)])[_0x57cb86(0x162)](0x1f90),expect(_0x4abc9c[_0x57cb86(0x141)][_0x57cb86(0x144)])[_0x57cb86(0x162)]('disconnected'),expect(_0x4abc9c[_0x57cb86(0x141)]['CONNECTED'])[_0x57cb86(0x162)]('connected');}),test('WebSocketManager class can be imported',async()=>{const _0x1cfab6=a0_0x1a38,{WebSocketManager:_0xd52901}=await import(_0x1cfab6(0x14b));expect(_0xd52901)['toBeDefined'](),expect(typeof _0xd52901)['toBe']('function');const _0x5f4eb7=new _0xd52901('localhost',0x1f90);expect(_0x5f4eb7)['toBeDefined'](),expect(_0x5f4eb7['host'])[_0x1cfab6(0x162)](_0x1cfab6(0x13e)),expect(_0x5f4eb7['port'])['toBe'](0x1f90),expect(_0x5f4eb7['url'])[_0x1cfab6(0x162)]('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0x2de0de=a0_0x1a38,{SessionManager:_0x717056}=await import('../../api/session.js');expect(_0x717056)['toBeDefined'](),expect(typeof _0x717056)[_0x2de0de(0x162)](_0x2de0de(0x15b));const _0x3de5a1=new _0x717056('localhost',0x1f90);expect(_0x3de5a1)[_0x2de0de(0x161)](),expect(_0x3de5a1[_0x2de0de(0x167)])['toBe'](_0x2de0de(0x13e)),expect(_0x3de5a1['port'])['toBe'](0x1f90),expect(_0x3de5a1['baseUrl'])['toBe']('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x5f09ee=a0_0x1a38,{MessageRouter:_0x38869c}=await import(_0x5f09ee(0x14d)),{WebSocketManager:_0x5c703f}=await import(_0x5f09ee(0x14b));expect(_0x38869c)[_0x5f09ee(0x161)](),expect(typeof _0x38869c)[_0x5f09ee(0x162)](_0x5f09ee(0x15b));const _0x550ecb=new _0x5c703f('localhost',0x1f90),_0x5472fd=new _0x38869c(_0x550ecb);expect(_0x5472fd)['toBeDefined'](),expect(_0x5472fd['ws'])['toBe'](_0x550ecb);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x2efdf6=a0_0x1a38,{loggingMiddleware:_0x5c53f7,filterMiddleware:_0x4807e5,transformMiddleware:_0x512616,timestampMiddleware:_0x58ebbe,validationMiddleware:_0x5aac71}=await import(_0x2efdf6(0x14d));expect(typeof _0x5c53f7)[_0x2efdf6(0x162)]('function'),expect(typeof _0x4807e5)['toBe']('function'),expect(typeof _0x512616)[_0x2efdf6(0x162)](_0x2efdf6(0x15b)),expect(typeof _0x58ebbe)[_0x2efdf6(0x162)](_0x2efdf6(0x15b)),expect(typeof _0x5aac71)[_0x2efdf6(0x162)](_0x2efdf6(0x15b));}),test('useConnection hook can be imported',async()=>{const _0x1837bc=a0_0x1a38,{useConnection:_0x2dca6b,useConnectionStatus:_0x90b2d}=await import('../../state/useConnection.js');expect(_0x2dca6b)[_0x1837bc(0x161)](),expect(typeof _0x2dca6b)[_0x1837bc(0x162)]('function'),expect(_0x90b2d)['toBeDefined'](),expect(typeof _0x90b2d)['toBe']('function');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x1a013b=a0_0x1a38;test(_0x1a013b(0x16b),async()=>{const _0x1bb25a=_0x1a013b,{WebSocketManager:_0x25b187}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x2af66d}=await import(_0x1bb25a(0x176)),_0x3e2b3b=new _0x25b187('test-host',0x2382);expect(_0x3e2b3b[_0x1bb25a(0x170)])[_0x1bb25a(0x162)](_0x2af66d['DISCONNECTED']),expect(_0x3e2b3b[_0x1bb25a(0x13d)])['toBe'](null),expect(_0x3e2b3b[_0x1bb25a(0x163)])['toEqual']([]),expect(_0x3e2b3b['reconnectAttempts'])[_0x1bb25a(0x162)](0x0),expect(_0x3e2b3b['shouldReconnect'])[_0x1bb25a(0x162)](!![]);}),test('SessionManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x29a53e=_0x1a013b,{SessionManager:_0xfd0bcd}=await import(_0x29a53e(0x154)),_0xe37cef=new _0xfd0bcd('test-host',0x2382);expect(_0xe37cef['sessionId'])['toBe'](null),expect(_0xe37cef[_0x29a53e(0x16f)])[_0x29a53e(0x162)](null),expect(_0xe37cef[_0x29a53e(0x147)])[_0x29a53e(0x162)](null),expect(_0xe37cef[_0x29a53e(0x143)])[_0x29a53e(0x17c)]({}),expect(_0xe37cef['isValid']())[_0x29a53e(0x162)](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x59fa3e=_0x1a013b,{MessageRouter:_0x3c8964}=await import(_0x59fa3e(0x14d)),{WebSocketManager:_0x443f11}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x1b807b}=await import('../../config/constants.js'),_0x55a0e9=new _0x443f11(_0x59fa3e(0x13e),0x1f90),_0x34cc3f=new _0x3c8964(_0x55a0e9);expect(_0x34cc3f['hasHandler'](_0x1b807b['MESSAGE_ADDED']))[_0x59fa3e(0x162)](!![]),expect(_0x34cc3f['hasHandler'](_0x1b807b['AGENT_MODE_CHANGED']))[_0x59fa3e(0x162)](!![]),expect(_0x34cc3f[_0x59fa3e(0x14f)](_0x1b807b['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0x34cc3f[_0x59fa3e(0x14f)](_0x1b807b['COMPACTION_EVENT']))[_0x59fa3e(0x162)](!![]),expect(_0x34cc3f['hasHandler'](_0x1b807b[_0x59fa3e(0x155)]))['toBe'](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x3dde69=_0x1a013b,{MessageRouter:_0x1ad3b4}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x2ef148}=await import(_0x3dde69(0x14b)),_0x2c996a=new _0x2ef148(_0x3dde69(0x13e),0x1f90),_0x2fdc8a=new _0x1ad3b4(_0x2c996a),_0x1118f4=_0x4436cc=>_0x4436cc;expect(_0x2fdc8a['middleware']['length'])[_0x3dde69(0x142)](0x0),_0x2fdc8a[_0x3dde69(0x145)](_0x1118f4);const _0x1a6df4=_0x2fdc8a[_0x3dde69(0x15e)]['length'];expect(_0x1a6df4)['toBeGreaterThan'](0x0),_0x2fdc8a['removeMiddleware'](_0x1118f4),expect(_0x2fdc8a['middleware']['length'])[_0x3dde69(0x162)](_0x1a6df4-0x1);}),test(_0x1a013b(0x160),async()=>{const _0x55ad09=_0x1a013b,{SessionManager:_0x47eb92}=await import(_0x55ad09(0x154)),_0x45ed13=new _0x47eb92(_0x55ad09(0x13e),0x1f90);expect(_0x45ed13[_0x55ad09(0x14c)]())[_0x55ad09(0x162)](null),expect(_0x45ed13[_0x55ad09(0x16d)]())['toBe'](null),expect(_0x45ed13[_0x55ad09(0x166)]())[_0x55ad09(0x162)](![]);const _0x26a564=_0x45ed13['getSessionInfo']();expect(_0x26a564)[_0x55ad09(0x174)]('sessionId'),expect(_0x26a564)[_0x55ad09(0x174)]('projectDir'),expect(_0x26a564)[_0x55ad09(0x174)](_0x55ad09(0x15f)),expect(_0x26a564)['toHaveProperty']('vendorKeysCount');}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x531b9e=_0x1a013b,{WebSocketManager:_0x414c38}=await import(_0x531b9e(0x14b)),{CONNECTION_STATE:_0x5c260c}=await import('../../config/constants.js'),_0xf163e3=new _0x414c38(_0x531b9e(0x13e),0x1f90);expect(_0xf163e3['getState']())[_0x531b9e(0x162)](_0x5c260c[_0x531b9e(0x144)]),expect(_0xf163e3['isConnected']())['toBe'](![]),expect(_0xf163e3['getSessionId']())['toBe'](null);const _0x41ba94=_0xf163e3[_0x531b9e(0x175)]();expect(_0x41ba94)['toHaveProperty'](_0x531b9e(0x170)),expect(_0x41ba94)[_0x531b9e(0x174)](_0x531b9e(0x13d)),expect(_0x41ba94)['toHaveProperty']('reconnectAttempts'),expect(_0x41ba94)['toHaveProperty'](_0x531b9e(0x171)),expect(_0x41ba94)[_0x531b9e(0x174)](_0x531b9e(0x16a));}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0xd3cf6e=_0x1a013b,{MessageRouter:_0xa2e71f}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x3e0fbe}=await import(_0xd3cf6e(0x14b)),_0x2a5e31=new _0x3e0fbe('localhost',0x1f90),_0x3475d3=new _0xa2e71f(_0x2a5e31),_0x496cea=()=>{};expect(_0x3475d3[_0xd3cf6e(0x14f)]('test-message'))['toBe'](![]),_0x3475d3['registerHandler'](_0xd3cf6e(0x159),_0x496cea),expect(_0x3475d3[_0xd3cf6e(0x14f)](_0xd3cf6e(0x159)))['toBe'](!![]),_0x3475d3['unregisterHandler'](_0xd3cf6e(0x159)),expect(_0x3475d3[_0xd3cf6e(0x14f)](_0xd3cf6e(0x159)))[_0xd3cf6e(0x162)](![]);}),test(_0x1a013b(0x153),async()=>{const _0x28ab82=_0x1a013b,{loggingMiddleware:_0x47907a,timestampMiddleware:_0x46e24e,filterMiddleware:_0x79b11b}=await import(_0x28ab82(0x14d)),_0x511c48=_0x47907a();expect(typeof _0x511c48)[_0x28ab82(0x162)](_0x28ab82(0x15b));const _0x797689=_0x46e24e();expect(typeof _0x797689)['toBe'](_0x28ab82(0x15b));const _0x326865={'type':_0x28ab82(0x17b)},_0x46e577=_0x797689(_0x326865);expect(_0x46e577)['toHaveProperty'](_0x28ab82(0x15c)),expect(_0x46e577['type'])['toBe']('test');const _0x29a7fb=_0x79b11b(['allowed-type']);expect(typeof _0x29a7fb)['toBe'](_0x28ab82(0x15b)),expect(_0x29a7fb({'type':'allowed-type'}))['toBeTruthy'](),expect(_0x29a7fb({'type':_0x28ab82(0x178)}))['toBe'](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x37b452=_0x1a013b,_0x364916=await import(_0x37b452(0x176));expect(typeof _0x364916[_0x37b452(0x14a)][_0x37b452(0x169)])['toBe']('number'),expect(typeof _0x364916[_0x37b452(0x14a)]['WEBSOCKET_PING_INTERVAL'])['toBe']('number'),expect(typeof _0x364916[_0x37b452(0x165)]['DEFAULT_PORT'])[_0x37b452(0x162)](_0x37b452(0x17e)),expect(typeof _0x364916['NETWORK']['MAX_RETRIES'])['toBe'](_0x37b452(0x17e)),expect(typeof _0x364916['NETWORK']['HTTP_TIMEOUT'])[_0x37b452(0x162)]('number'),expect(typeof _0x364916[_0x37b452(0x172)]['MESSAGE_LIST_HEIGHT'])[_0x37b452(0x162)](_0x37b452(0x17e)),expect(typeof _0x364916[_0x37b452(0x172)][_0x37b452(0x15a)])['toBe']('number');});}),describe(a0_0x5b3d06(0x14e),()=>{const _0x2413bc=a0_0x5b3d06;test(_0x2413bc(0x16e),async()=>{const _0xa79b8d=_0x2413bc,{MessageRouter:_0x3d3c1d}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x482fd7}=await import(_0xa79b8d(0x14b)),_0x599265=new _0x482fd7(_0xa79b8d(0x13e),0x1f90),_0x50c699=new _0x3d3c1d(_0x599265);expect(()=>{const _0x372a38=_0xa79b8d;_0x50c699['registerHandler'](_0x372a38(0x17b),'not-a-function');})['toThrow'](_0xa79b8d(0x157));}),test(_0x2413bc(0x17a),async()=>{const _0x2108ec=_0x2413bc,{MessageRouter:_0x32a9c3}=await import(_0x2108ec(0x14d)),{WebSocketManager:_0x1f34ce}=await import(_0x2108ec(0x14b)),_0x1cbf0c=new _0x1f34ce(_0x2108ec(0x13e),0x1f90),_0x34b063=new _0x32a9c3(_0x1cbf0c);expect(()=>{const _0x4e9738=_0x2108ec;_0x34b063[_0x4e9738(0x145)](_0x4e9738(0x164));})['toThrow'](_0x2108ec(0x152));}),test(_0x2413bc(0x168),async()=>{const _0x542b19=_0x2413bc,{SessionManager:_0x32651d}=await import('../../api/session.js'),_0x8e0134=new _0x32651d(_0x542b19(0x13e),0x1f90);_0x8e0134[_0x542b19(0x13d)]='test-123',_0x8e0134['projectDir']=_0x542b19(0x173),_0x8e0134[_0x542b19(0x147)]='test-key',_0x8e0134[_0x542b19(0x143)]={'openai':'key'},expect(_0x8e0134[_0x542b19(0x166)]())['toBe'](!![]),_0x8e0134['clear'](),expect(_0x8e0134[_0x542b19(0x13d)])[_0x542b19(0x162)](null),expect(_0x8e0134['projectDir'])[_0x542b19(0x162)](null),expect(_0x8e0134['loxiaApiKey'])['toBe'](null),expect(_0x8e0134[_0x542b19(0x143)])['toEqual']({}),expect(_0x8e0134[_0x542b19(0x166)]())[_0x542b19(0x162)](![]);}),test(_0x2413bc(0x13f),async()=>{const _0x2e7dd6=_0x2413bc,{WebSocketManager:_0x292c4d}=await import('../../api/websocket.js'),_0x5325c4=new _0x292c4d(_0x2e7dd6(0x13e),0x1f90),_0x50a6f9=_0x5325c4['generateRequestId'](),_0x8d6802=_0x5325c4['generateRequestId'](),_0x391fcc=_0x5325c4['generateRequestId']();expect(_0x50a6f9)['not'][_0x2e7dd6(0x162)](_0x8d6802),expect(_0x8d6802)[_0x2e7dd6(0x16c)]['toBe'](_0x391fcc),expect(_0x50a6f9)['not']['toBe'](_0x391fcc),expect(_0x50a6f9)['toMatch'](/^req-\d+-\d+$/),expect(_0x8d6802)['toMatch'](/^req-\d+-\d+$/),expect(_0x391fcc)['toMatch'](/^req-\d+-\d+$/);});});
@@ -1 +1 @@
1
- function a0_0x4d6b(_0x4cf1c6,_0x2800b7){_0x4cf1c6=_0x4cf1c6-0x1ea;const _0x4b48a4=a0_0x4b48();let _0x4d6b41=_0x4b48a4[_0x4cf1c6];if(a0_0x4d6b['XoOycR']===undefined){var _0xc34ce1=function(_0x596d1b){const _0x4da1bd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1a6b80='',_0x9fe1df='';for(let _0x4a7da2=0x0,_0x3fef64,_0x33dbde,_0x488ca9=0x0;_0x33dbde=_0x596d1b['charAt'](_0x488ca9++);~_0x33dbde&&(_0x3fef64=_0x4a7da2%0x4?_0x3fef64*0x40+_0x33dbde:_0x33dbde,_0x4a7da2++%0x4)?_0x1a6b80+=String['fromCharCode'](0xff&_0x3fef64>>(-0x2*_0x4a7da2&0x6)):0x0){_0x33dbde=_0x4da1bd['indexOf'](_0x33dbde);}for(let _0x52d715=0x0,_0x2f7554=_0x1a6b80['length'];_0x52d715<_0x2f7554;_0x52d715++){_0x9fe1df+='%'+('00'+_0x1a6b80['charCodeAt'](_0x52d715)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x9fe1df);};a0_0x4d6b['UBSMaj']=_0xc34ce1,a0_0x4d6b['aRAzzy']={},a0_0x4d6b['XoOycR']=!![];}const _0x109f71=_0x4b48a4[0x0],_0xc026d6=_0x4cf1c6+_0x109f71,_0x130541=a0_0x4d6b['aRAzzy'][_0xc026d6];return!_0x130541?(_0x4d6b41=a0_0x4d6b['UBSMaj'](_0x4d6b41),a0_0x4d6b['aRAzzy'][_0xc026d6]=_0x4d6b41):_0x4d6b41=_0x130541,_0x4d6b41;}const a0_0x3a831c=a0_0x4d6b;function a0_0x4b48(){const _0x1a0aec=['t1jdsevtvfjbve9s','ywXS','quDftLrFtu9erv9dsefor0ve','mZu1mJyWtLzxEwv5','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','v2vIu29JA2v0twfUywDLCG','tuvtu0fhrv9st0XfignVBNn0yw50CYbHCMuGzgvMAw5Lza','C3LZDgvT','AgfZsgfUzgXLCG','DxnLtwvZC2fNzxm','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','nJG2mJjguKXIBvK','vvnfuG','tufyx1bbr0vFu0LArq','nti5owD3q0PeAW','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','ywDLBNrFBw9Kzv9JAgfUz2vK','Dg9czuDYzwf0zxjuAgfU','uefhsu5bveLptIbSAw1PDcbKB2vZig5VDcbLEgnLzwqGtufyx1bbr0vFu0LArq','uefhrv9tsvPf','CMvWzwf0','mte5ndu3nJbPtfrNAuG','DxnLtwvZC2fNzxmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','Dg9czuXLC3nuAgfUt3jfCxvHBa','qvntsvnuqu5u','tuvtu0fhrv9uwvbf','tufyx01fu1nbr0vtx0rju1bmqvK','BgvUz3rO','vvnfuL9nrvntquDf','ndeWnhbKq3vTqW','mJmWntCWn0XHz0nZrG','Dg9mB3DLCKnHC2u','BwvZC2fNzv9HzgrLza','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','odaWmgT6DwrXCW','tuvtu0fhrv9brerfra','u1Ltvevnx05pveLgsunbveLptG','zxHLy3v0Aw9Ux3n0B3bWzwq','Dg9czurLzMLUzwq','u1Ltvevn','mtm1nNHiy0XrCG','Dg9czq','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZifzHBgLKyxrPB24','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','C3LZDgvTlw5VDgLMAwnHDgLVBG','l2fWAs9VCMnOzxn0CMf0B3i','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','BNvTyMvY','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','mte2mJCXnxHysMXYAG','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','tufyx01fu1nbr0vFtevor1ri','mKjHuM51tq','twvZC2fNzsbnyw5Hz2vTzw50ic0GrxjYB3iGsgfUzgXPBMC','zgvMyxvSDa'];a0_0x4b48=function(){return _0x1a0aec;};return a0_0x4b48();}(function(_0x232460,_0x6dbf9f){const _0x331abc=a0_0x4d6b,_0x5e8da6=_0x232460();while(!![]){try{const _0x291104=-parseInt(_0x331abc(0x1fe))/0x1*(-parseInt(_0x331abc(0x20c))/0x2)+parseInt(_0x331abc(0x220))/0x3+-parseInt(_0x331abc(0x204))/0x4+parseInt(_0x331abc(0x1fb))/0x5+-parseInt(_0x331abc(0x1f2))/0x6*(-parseInt(_0x331abc(0x20f))/0x7)+parseInt(_0x331abc(0x1ec))/0x8*(parseInt(_0x331abc(0x21f))/0x9)+-parseInt(_0x331abc(0x216))/0xa;if(_0x291104===_0x6dbf9f)break;else _0x5e8da6['push'](_0x5e8da6['shift']());}catch(_0x574311){_0x5e8da6['push'](_0x5e8da6['shift']());}}}(a0_0x4b48,0x64ef1));import{describe,test,expect}from'@jest/globals';describe(a0_0x3a831c(0x1f8),()=>{test('useMessages hook can be imported',async()=>{const {useMessages:_0x1a6b80}=await import('../../state/useMessages.js');expect(_0x1a6b80)['toBeDefined'](),expect(typeof _0x1a6b80)['toBe']('function');}),test('useMessages is default export',async()=>{const _0x38a6b9=a0_0x4d6b,module=await import('../../state/useMessages.js');expect(module['default'])[_0x38a6b9(0x1f0)](),expect(typeof module[_0x38a6b9(0x200)])['toBe']('function'),expect(module['default'])['toBe'](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x25fefb=a0_0x4d6b,{useMessageCount:_0x9fe1df}=await import('../../state/useMessages.js');expect(_0x9fe1df)['toBeDefined'](),expect(typeof _0x9fe1df)[_0x25fefb(0x1f3)]('function');});}),describe('Message\x20Management\x20-\x20Constants',()=>{const _0x352fd8=a0_0x3a831c;test(_0x352fd8(0x207),async()=>{const _0x1fdb8c=_0x352fd8,{MESSAGE_ROLE:_0x4a7da2}=await import('../../config/constants.js');expect(_0x4a7da2)['toBeDefined'](),expect(_0x4a7da2[_0x1fdb8c(0x20d)])['toBe']('user'),expect(_0x4a7da2[_0x1fdb8c(0x21a)])[_0x1fdb8c(0x1f3)]('assistant'),expect(_0x4a7da2['SYSTEM'])[_0x1fdb8c(0x1f3)](_0x1fdb8c(0x208));}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x30fa36=_0x352fd8,{MESSAGE_TYPE:_0x3fef64}=await import(_0x30fa36(0x1fc));expect(_0x3fef64)[_0x30fa36(0x1f0)](),expect(_0x3fef64[_0x30fa36(0x21e)])[_0x30fa36(0x1f3)]('user-message'),expect(_0x3fef64['AGENT_RESPONSE'])['toBe']('agent-response'),expect(_0x3fef64[_0x30fa36(0x1ee)])[_0x30fa36(0x1f3)](_0x30fa36(0x1f6));}),test(_0x352fd8(0x210),async()=>{const _0xac7b61=_0x352fd8,{MESSAGE_CONFIG:_0x33dbde}=await import('../../config/constants.js');expect(_0x33dbde)['toBeDefined'](),expect(_0x33dbde['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(_0x33dbde[_0xac7b61(0x21c)])['toBeDefined'](),expect(typeof _0x33dbde[_0xac7b61(0x1fd)])['toBe'](_0xac7b61(0x1f9)),expect(typeof _0x33dbde['MAX_MESSAGES_DISPLAY'])['toBe']('number');}),test('PAGINATION\x20constants\x20are\x20defined',async()=>{const _0x31be37=_0x352fd8,{PAGINATION:_0x488ca9}=await import(_0x31be37(0x1fc));expect(_0x488ca9)['toBeDefined'](),expect(_0x488ca9['PAGE_SIZE'])['toBeDefined'](),expect(_0x488ca9['MAX_PAGE_SIZE'])['toBeDefined'](),expect(typeof _0x488ca9[_0x31be37(0x214)])[_0x31be37(0x1f3)]('number'),expect(typeof _0x488ca9[_0x31be37(0x20e)])['toBe'](_0x31be37(0x1f9));}),test('WS_MESSAGE_TYPE\x20includes\x20message\x20events',async()=>{const _0x26bef6=_0x352fd8,{WS_MESSAGE_TYPE:_0x52d715}=await import(_0x26bef6(0x1fc));expect(_0x52d715)[_0x26bef6(0x1f0)](),expect(_0x52d715['MESSAGE_ADDED'])[_0x26bef6(0x1f3)](_0x26bef6(0x1ea)),expect(_0x52d715[_0x26bef6(0x203)])['toBe'](_0x26bef6(0x211)),expect(_0x52d715['EXECUTION_STOPPED'])['toBe'](_0x26bef6(0x1ef));});}),describe('Message\x20Management\x20-\x20Integration',()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x2c238c=a0_0x4d6b,{useMessages:_0x2f7554}=await import('../../state/useMessages.js'),{SessionManager:_0x3610e4}=await import('../../api/session.js'),{MessageRouter:_0x3a5321}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x15b90e}=await import(_0x2c238c(0x20b)),_0x290e1c=new _0x3610e4('localhost',0x1f90),_0x24585e=new _0x15b90e('localhost',0x1f90),_0x76c1c2=new _0x3a5321(_0x24585e);expect(_0x290e1c)[_0x2c238c(0x1f0)](),expect(_0x76c1c2)[_0x2c238c(0x1f0)](),expect(typeof _0x2f7554)['toBe']('function');}),test('Full message management stack can be imported together',async()=>{const _0x2d3b92=a0_0x4d6b,[_0x4d1a55,_0x3f98af,_0x84ee58,_0x4d2ec1,_0x20b5a3]=await Promise[_0x2d3b92(0x202)]([import(_0x2d3b92(0x1fc)),import('../../api/session.js'),import(_0x2d3b92(0x20b)),import('../../api/messageRouter.js'),import('../../state/useMessages.js')]);expect(_0x4d1a55['MESSAGE_ROLE'])[_0x2d3b92(0x1f0)](),expect(_0x4d1a55[_0x2d3b92(0x21b)])['toBeDefined'](),expect(_0x4d1a55['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x3f98af['SessionManager'])[_0x2d3b92(0x1f0)](),expect(_0x84ee58[_0x2d3b92(0x206)])[_0x2d3b92(0x1f0)](),expect(_0x4d2ec1['MessageRouter'])['toBeDefined'](),expect(_0x20b5a3[_0x2d3b92(0x20a)])[_0x2d3b92(0x1f0)]();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{test('Orchestrator\x20endpoint\x20can\x20be\x20used\x20for\x20message\x20operations',async()=>{const _0x3651d1=a0_0x4d6b,{API_ENDPOINTS:_0x2b2551}=await import('../../config/constants.js');expect(_0x2b2551[_0x3651d1(0x201)])[_0x3651d1(0x1f0)](),expect(_0x2b2551['ORCHESTRATOR'])['toBe'](_0x3651d1(0x1f7));}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x5a5eaa=a0_0x4d6b,{API_ENDPOINTS:_0x293684}=await import(_0x5a5eaa(0x1fc));expect(_0x293684['ORCHESTRATOR'])['toMatch'](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x11b322=a0_0x3a831c;test(_0x11b322(0x217),async()=>{const _0x5c2a66=_0x11b322,{useMessages:_0x356618}=await import(_0x5c2a66(0x1eb));expect(_0x356618['length'])[_0x5c2a66(0x1f3)](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x21cc00=_0x11b322,{useMessageCount:_0x30fb93}=await import(_0x21cc00(0x1eb));expect(_0x30fb93['length'])[_0x21cc00(0x1f3)](0x1);});}),describe(a0_0x3a831c(0x1f4),()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0xdc69a3=a0_0x4d6b,{MESSAGE_CONFIG:_0x5082b8}=await import(_0xdc69a3(0x1fc));expect(_0x5082b8['MAX_MESSAGE_LENGTH'])['toBeGreaterThan'](0x0),expect(_0x5082b8[_0xdc69a3(0x1fd)])['toBeLessThanOrEqual'](0x186a0),expect(_0x5082b8[_0xdc69a3(0x21c)])['toBeGreaterThan'](0x0),expect(_0x5082b8[_0xdc69a3(0x21c)])[_0xdc69a3(0x219)](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x7ea158=a0_0x4d6b,{PAGINATION:_0x4b7db2}=await import(_0x7ea158(0x1fc));expect(_0x4b7db2[_0x7ea158(0x214)])['toBeGreaterThan'](0x0),expect(_0x4b7db2[_0x7ea158(0x214)])['toBeLessThanOrEqual'](0x3e8),expect(_0x4b7db2['MAX_PAGE_SIZE'])['toBeGreaterThanOrEqual'](_0x4b7db2['PAGE_SIZE']);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x29f33b=a0_0x4d6b,{MESSAGE_ROLE:_0x2cc2dd}=await import(_0x29f33b(0x1fc));expect(_0x2cc2dd['USER'])['toBe'](_0x2cc2dd['USER'][_0x29f33b(0x221)]()),expect(_0x2cc2dd['ASSISTANT'])['toBe'](_0x2cc2dd['ASSISTANT']['toLowerCase']()),expect(_0x2cc2dd[_0x29f33b(0x1f1)])['toBe'](_0x2cc2dd['SYSTEM']['toLowerCase']());});}),describe(a0_0x3a831c(0x218),()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0xc05d2d=a0_0x4d6b,{MessageRouter:_0x5e5bbe}=await import(_0xc05d2d(0x205)),{WebSocketManager:_0x501dd7}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x1e6649}=await import('../../config/constants.js'),_0x257984=new _0x501dd7('localhost',0x1f90),_0x15ef6b=new _0x5e5bbe(_0x257984);expect(_0x15ef6b[_0xc05d2d(0x209)](_0x1e6649[_0xc05d2d(0x1ed)]))[_0xc05d2d(0x1f3)](!![]),expect(_0x15ef6b[_0xc05d2d(0x209)](_0x1e6649['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe(a0_0x3a831c(0x1ff),()=>{const _0x3094a2=a0_0x3a831c;test(_0x3094a2(0x1f5),async()=>{const _0x4df890=_0x3094a2,{MESSAGE_CONFIG:_0x549708}=await import('../../config/constants.js');expect(_0x549708['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(typeof _0x549708[_0x4df890(0x1fd)])[_0x4df890(0x1f3)]('number');const _0x191d29='a'[_0x4df890(0x215)](_0x549708['MAX_MESSAGE_LENGTH']+0x1);expect(_0x191d29[_0x4df890(0x21d)])[_0x4df890(0x212)](_0x549708[_0x4df890(0x1fd)]);}),test('MESSAGE_CONFIG\x20enforces\x20maximum\x20display\x20messages',async()=>{const _0xd4dd1d=_0x3094a2,{MESSAGE_CONFIG:_0x1d5350}=await import('../../config/constants.js');expect(_0x1d5350[_0xd4dd1d(0x21c)])['toBeDefined'](),expect(typeof _0x1d5350[_0xd4dd1d(0x21c)])['toBe'](_0xd4dd1d(0x1f9)),expect(_0x1d5350[_0xd4dd1d(0x21c)])['toBeGreaterThan'](0x0);});}),describe(a0_0x3a831c(0x1fa),()=>{const _0x37400c=a0_0x3a831c;test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x596677=a0_0x4d6b,{PAGINATION:_0x45533e}=await import('../../config/constants.js'),_0x31ec6f=0x0,_0x51e968=_0x31ec6f*_0x45533e[_0x596677(0x214)];expect(_0x51e968)[_0x596677(0x1f3)](0x0);const _0x521991=0x1,_0x4fbe35=_0x521991*_0x45533e['PAGE_SIZE'];expect(_0x4fbe35)['toBe'](_0x45533e[_0x596677(0x214)]);}),test(_0x37400c(0x213),async()=>{const _0x4de4a7=_0x37400c,{PAGINATION:_0x1670a3}=await import(_0x4de4a7(0x1fc)),_0x5c8f20=0x3e8,_0x550aa3=Math['min'](_0x5c8f20,_0x1670a3['MAX_PAGE_SIZE']);expect(_0x550aa3)['toBeLessThanOrEqual'](_0x1670a3['MAX_PAGE_SIZE']);});});
1
+ function a0_0x5f4e(){const _0x48bf61=['Dg9czq','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','AgfZsgfUzgXLCG','vvnfuG','zgvMyxvSDa','BNvTyMvY','u1Ltvevn','mtDywer5u2u','Dg9czuXLC3nuAgfUt3jfCxvHBa','zNvUy3rPB24','mte4nZC0EMTNsuD0','tufyx01fu1nbr0vFtevor1ri','tufyx01fu1nbr0vtx0rju1bmqvK','ywDLBNqTCMvZCg9UC2u','mZu4mdC0nKv1yKXmza','zxHLy3v0Aw9Ux3n0B3bWzwq','twvZC2fNzsbnyw5Hz2vTzw50ic0GqvbjievUzhbVAw50CYbwywXPzgf0Aw9U','twvZC2fNzvjVDxrLCIbOyxmGBwvZC2fNzsbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','tuvtu0fhrv9st0XfignVBNn0yw50CYbHCMuGzgvMAw5Lza','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','Dg9czuDYzwf0zxjuAgfU','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','nZmXnJu3me93swfIvW','mZy4nZqXohPzrNvXCG','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','BwvZC2fNzv9HzgrLza','tuvtu0fhrv9brerfra','mJrmyxboCwm','lI4VlI4VyxbPl3nLC3nPB24UANm','u1Ltvevnx05pveLgsunbveLptG','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','rvHfq1vusu9ox1nut1bqruq','mZyWCKz0yM95','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','qvntsvnuqu5u','t1jdsevtvfjbve9s','Dg9nyxrJAa','tufyx1bbr0vFu0LArq','mZe0nJbzqwTbz3a','DxnLtwvZC2fNzxmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','mZqYmJa2nJb5z1LYqwq','Bg9JywXOB3n0','ywXS','uefhrv9tsvPf','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','Dg9czurLzMLUzwq','nZK2ntG1nu1VyunVtG','BwLU','quDftLrFtu9erv9dsefor0ve','BgvUz3rO','Dg9mB3DLCKnHC2u','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','twvZC2fNzsbbueKGzw5KCg9PBNrZigzVBgXVDYbsrvnuzNvSihbHDhrLCM4','CMvWzwf0','DxnLtwvZC2fNzxm'];a0_0x5f4e=function(){return _0x48bf61;};return a0_0x5f4e();}const a0_0x346684=a0_0x3c01;(function(_0x2db131,_0x4f9680){const _0xf2fe3c=a0_0x3c01,_0x106a17=_0x2db131();while(!![]){try{const _0x25dd82=-parseInt(_0xf2fe3c(0xeb))/0x1*(-parseInt(_0xf2fe3c(0xee))/0x2)+parseInt(_0xf2fe3c(0x106))/0x3*(parseInt(_0xf2fe3c(0x10c))/0x4)+-parseInt(_0xf2fe3c(0xfc))/0x5+-parseInt(_0xf2fe3c(0xf2))/0x6+-parseInt(_0xf2fe3c(0xfd))/0x7*(parseInt(_0xf2fe3c(0x101))/0x8)+-parseInt(_0xf2fe3c(0xdb))/0x9+parseInt(_0xf2fe3c(0x10e))/0xa;if(_0x25dd82===_0x4f9680)break;else _0x106a17['push'](_0x106a17['shift']());}catch(_0x40b88f){_0x106a17['push'](_0x106a17['shift']());}}}(a0_0x5f4e,0xcf803));function a0_0x3c01(_0x496ab0,_0x386eaf){_0x496ab0=_0x496ab0-0xd8;const _0x5f4e97=a0_0x5f4e();let _0x3c01aa=_0x5f4e97[_0x496ab0];if(a0_0x3c01['NGmuBt']===undefined){var _0x53b113=function(_0x105f6c){const _0x59795f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x299422='',_0x4b6e9e='';for(let _0x11b8a9=0x0,_0xb84c00,_0x2cad55,_0x13ad4a=0x0;_0x2cad55=_0x105f6c['charAt'](_0x13ad4a++);~_0x2cad55&&(_0xb84c00=_0x11b8a9%0x4?_0xb84c00*0x40+_0x2cad55:_0x2cad55,_0x11b8a9++%0x4)?_0x299422+=String['fromCharCode'](0xff&_0xb84c00>>(-0x2*_0x11b8a9&0x6)):0x0){_0x2cad55=_0x59795f['indexOf'](_0x2cad55);}for(let _0x1be59e=0x0,_0x4feda7=_0x299422['length'];_0x1be59e<_0x4feda7;_0x1be59e++){_0x4b6e9e+='%'+('00'+_0x299422['charCodeAt'](_0x1be59e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4b6e9e);};a0_0x3c01['qvFDNR']=_0x53b113,a0_0x3c01['ukFacd']={},a0_0x3c01['NGmuBt']=!![];}const _0x216fa3=_0x5f4e97[0x0],_0x4dd997=_0x496ab0+_0x216fa3,_0x14512b=a0_0x3c01['ukFacd'][_0x4dd997];return!_0x14512b?(_0x3c01aa=a0_0x3c01['qvFDNR'](_0x3c01aa),a0_0x3c01['ukFacd'][_0x4dd997]=_0x3c01aa):_0x3c01aa=_0x14512b,_0x3c01aa;}import{describe,test,expect}from'@jest/globals';describe('Message\x20Management\x20-\x20Imports',()=>{test('useMessages hook can be imported',async()=>{const _0x96d46e=a0_0x3c01,{useMessages:_0x299422}=await import(_0x96d46e(0xd9));expect(_0x299422)['toBeDefined'](),expect(typeof _0x299422)[_0x96d46e(0xe4)](_0x96d46e(0xed));}),test('useMessages is default export',async()=>{const _0x450fd3=a0_0x3c01,module=await import('../../state/useMessages.js');expect(module['default'])['toBeDefined'](),expect(typeof module[_0x450fd3(0xe8)])[_0x450fd3(0xe4)]('function'),expect(module['default'])['toBe'](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x2b0765=a0_0x3c01,{useMessageCount:_0x4b6e9e}=await import(_0x2b0765(0xd9));expect(_0x4b6e9e)['toBeDefined'](),expect(typeof _0x4b6e9e)[_0x2b0765(0xe4)](_0x2b0765(0xed));});}),describe(a0_0x346684(0xf8),()=>{const _0x6172fa=a0_0x346684;test(_0x6172fa(0xf6),async()=>{const _0x42a302=_0x6172fa,{MESSAGE_ROLE:_0x11b8a9}=await import(_0x42a302(0x104));expect(_0x11b8a9)['toBeDefined'](),expect(_0x11b8a9[_0x42a302(0xe7)])['toBe']('user'),expect(_0x11b8a9['ASSISTANT'])[_0x42a302(0xe4)]('assistant'),expect(_0x11b8a9['SYSTEM'])[_0x42a302(0xe4)]('system');}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x1058ad=_0x6172fa,{MESSAGE_TYPE:_0xb84c00}=await import(_0x1058ad(0x104));expect(_0xb84c00)['toBeDefined'](),expect(_0xb84c00['USER_MESSAGE'])[_0x1058ad(0xe4)]('user-message'),expect(_0xb84c00['AGENT_RESPONSE'])[_0x1058ad(0xe4)](_0x1058ad(0xf1)),expect(_0xb84c00[_0x1058ad(0x103)])['toBe']('system-notification');}),test(_0x6172fa(0xe5),async()=>{const _0x2524f5=_0x6172fa,{MESSAGE_CONFIG:_0x2cad55}=await import('../../config/constants.js');expect(_0x2cad55)[_0x2524f5(0xda)](),expect(_0x2cad55['MAX_MESSAGE_LENGTH'])[_0x2524f5(0xda)](),expect(_0x2cad55['MAX_MESSAGES_DISPLAY'])['toBeDefined'](),expect(typeof _0x2cad55['MAX_MESSAGE_LENGTH'])[_0x2524f5(0xe4)](_0x2524f5(0xe9)),expect(typeof _0x2cad55['MAX_MESSAGES_DISPLAY'])[_0x2524f5(0xe4)](_0x2524f5(0xe9));}),test(_0x6172fa(0x112),async()=>{const _0x1461f6=_0x6172fa,{PAGINATION:_0x13ad4a}=await import('../../config/constants.js');expect(_0x13ad4a)[_0x1461f6(0xda)](),expect(_0x13ad4a['PAGE_SIZE'])[_0x1461f6(0xda)](),expect(_0x13ad4a[_0x1461f6(0x10b)])['toBeDefined'](),expect(typeof _0x13ad4a[_0x1461f6(0x111)])['toBe'](_0x1461f6(0xe9)),expect(typeof _0x13ad4a['MAX_PAGE_SIZE'])[_0x1461f6(0xe4)]('number');}),test(_0x6172fa(0xf9),async()=>{const _0xa4448f=_0x6172fa,{WS_MESSAGE_TYPE:_0x1be59e}=await import(_0xa4448f(0x104));expect(_0x1be59e)['toBeDefined'](),expect(_0x1be59e[_0xa4448f(0x100)])[_0xa4448f(0xe4)](_0xa4448f(0xff)),expect(_0x1be59e[_0xa4448f(0xdd)])['toBe']('agent_mode_changed'),expect(_0x1be59e[_0xa4448f(0x105)])[_0xa4448f(0xe4)](_0xa4448f(0xf3));});}),describe(a0_0x346684(0xfe),()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x4666e0=a0_0x3c01,{useMessages:_0x4feda7}=await import(_0x4666e0(0xd9)),{SessionManager:_0x3e98d1}=await import(_0x4666e0(0x102)),{MessageRouter:_0x1a72eb}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1c6c96}=await import('../../api/websocket.js'),_0x2b73f6=new _0x3e98d1('localhost',0x1f90),_0x17b229=new _0x1c6c96('localhost',0x1f90),_0x307c66=new _0x1a72eb(_0x17b229);expect(_0x2b73f6)[_0x4666e0(0xda)](),expect(_0x307c66)[_0x4666e0(0xda)](),expect(typeof _0x4feda7)[_0x4666e0(0xe4)]('function');}),test('Full message management stack can be imported together',async()=>{const _0x464e80=a0_0x3c01,[_0x3d4b60,_0x4b591f,_0x3360df,_0x3a78b5,_0x544170]=await Promise[_0x464e80(0x110)]([import('../../config/constants.js'),import('../../api/session.js'),import(_0x464e80(0xfb)),import('../../api/messageRouter.js'),import(_0x464e80(0xd9))]);expect(_0x3d4b60['MESSAGE_ROLE'])['toBeDefined'](),expect(_0x3d4b60['MESSAGE_TYPE'])[_0x464e80(0xda)](),expect(_0x3d4b60['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x4b591f['SessionManager'])['toBeDefined'](),expect(_0x3360df['WebSocketManager'])[_0x464e80(0xda)](),expect(_0x3a78b5['MessageRouter'])['toBeDefined'](),expect(_0x544170[_0x464e80(0xe3)])['toBeDefined']();});}),describe(a0_0x346684(0xf4),()=>{const _0x45df26=a0_0x346684;test('Orchestrator\x20endpoint\x20can\x20be\x20used\x20for\x20message\x20operations',async()=>{const _0xeaaf6e=a0_0x3c01,{API_ENDPOINTS:_0x51affc}=await import(_0xeaaf6e(0x104));expect(_0x51affc['ORCHESTRATOR'])['toBeDefined'](),expect(_0x51affc[_0xeaaf6e(0x109)])[_0xeaaf6e(0xe4)]('/api/orchestrator');}),test(_0x45df26(0xe1),async()=>{const _0x31009b=_0x45df26,{API_ENDPOINTS:_0x1cb9d7}=await import('../../config/constants.js');expect(_0x1cb9d7[_0x31009b(0x109)])[_0x31009b(0x10a)](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x4c898e=a0_0x346684;test(_0x4c898e(0x10d),async()=>{const _0x10c1ad=_0x4c898e,{useMessages:_0x2622e9}=await import(_0x10c1ad(0xd9));expect(_0x2622e9[_0x10c1ad(0xde)])['toBe'](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const {useMessageCount:_0x3b17f3}=await import('../../state/useMessages.js');expect(_0x3b17f3['length'])['toBe'](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x489b02=a0_0x3c01,{MESSAGE_CONFIG:_0x276365}=await import('../../config/constants.js');expect(_0x276365[_0x489b02(0xef)])[_0x489b02(0xfa)](0x0),expect(_0x276365['MAX_MESSAGE_LENGTH'])['toBeLessThanOrEqual'](0x186a0),expect(_0x276365[_0x489b02(0xf0)])['toBeGreaterThan'](0x0),expect(_0x276365[_0x489b02(0xf0)])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x23cb0b=a0_0x3c01,{PAGINATION:_0x1c83c2}=await import(_0x23cb0b(0x104));expect(_0x1c83c2[_0x23cb0b(0x111)])['toBeGreaterThan'](0x0),expect(_0x1c83c2['PAGE_SIZE'])['toBeLessThanOrEqual'](0x3e8),expect(_0x1c83c2[_0x23cb0b(0x10b)])[_0x23cb0b(0xf7)](_0x1c83c2[_0x23cb0b(0x111)]);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x3a097a=a0_0x3c01,{MESSAGE_ROLE:_0x1437c7}=await import(_0x3a097a(0x104));expect(_0x1437c7[_0x3a097a(0xe7)])[_0x3a097a(0xe4)](_0x1437c7[_0x3a097a(0xe7)][_0x3a097a(0xdf)]()),expect(_0x1437c7['ASSISTANT'])['toBe'](_0x1437c7[_0x3a097a(0x108)]['toLowerCase']()),expect(_0x1437c7[_0x3a097a(0xea)])[_0x3a097a(0xe4)](_0x1437c7[_0x3a097a(0xea)][_0x3a097a(0xdf)]());});}),describe(a0_0x346684(0xe0),()=>{const _0x2692a7=a0_0x346684;test(_0x2692a7(0xf5),async()=>{const _0x2809ae=_0x2692a7,{MessageRouter:_0xe36a40}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x39dc57}=await import(_0x2809ae(0xfb)),{WS_MESSAGE_TYPE:_0x556585}=await import(_0x2809ae(0x104)),_0x2db172=new _0x39dc57(_0x2809ae(0x10f),0x1f90),_0x3f95d4=new _0xe36a40(_0x2db172);expect(_0x3f95d4[_0x2809ae(0xe6)](_0x556585['MESSAGE_ADDED']))[_0x2809ae(0xe4)](!![]),expect(_0x3f95d4[_0x2809ae(0xe6)](_0x556585[_0x2809ae(0xdd)]))['toBe'](!![]);});}),describe('Message\x20Management\x20-\x20Error\x20Handling',()=>{const _0xb57250=a0_0x346684;test(_0xb57250(0xd8),async()=>{const _0x3e659d=_0xb57250,{MESSAGE_CONFIG:_0x3c8db8}=await import('../../config/constants.js');expect(_0x3c8db8[_0x3e659d(0xef)])['toBeDefined'](),expect(typeof _0x3c8db8['MAX_MESSAGE_LENGTH'])['toBe']('number');const _0x45fe21='a'[_0x3e659d(0xe2)](_0x3c8db8[_0x3e659d(0xef)]+0x1);expect(_0x45fe21['length'])['toBeGreaterThan'](_0x3c8db8[_0x3e659d(0xef)]);}),test('MESSAGE_CONFIG\x20enforces\x20maximum\x20display\x20messages',async()=>{const _0x87a7d8=_0xb57250,{MESSAGE_CONFIG:_0x3bfd0d}=await import(_0x87a7d8(0x104));expect(_0x3bfd0d['MAX_MESSAGES_DISPLAY'])[_0x87a7d8(0xda)](),expect(typeof _0x3bfd0d[_0x87a7d8(0xf0)])[_0x87a7d8(0xe4)]('number'),expect(_0x3bfd0d['MAX_MESSAGES_DISPLAY'])['toBeGreaterThan'](0x0);});}),describe(a0_0x346684(0x107),()=>{test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x1c7d82=a0_0x3c01,{PAGINATION:_0x54f164}=await import(_0x1c7d82(0x104)),_0x51ac6f=0x0,_0x5d6d1b=_0x51ac6f*_0x54f164['PAGE_SIZE'];expect(_0x5d6d1b)['toBe'](0x0);const _0x178b8a=0x1,_0xc89684=_0x178b8a*_0x54f164['PAGE_SIZE'];expect(_0xc89684)['toBe'](_0x54f164[_0x1c7d82(0x111)]);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0x305571=a0_0x3c01,{PAGINATION:_0x2b364d}=await import(_0x305571(0x104)),_0x1ab011=0x3e8,_0x49f77e=Math[_0x305571(0xdc)](_0x1ab011,_0x2b364d['MAX_PAGE_SIZE']);expect(_0x49f77e)[_0x305571(0xec)](_0x2b364d['MAX_PAGE_SIZE']);});});
@@ -1 +1 @@
1
- function a0_0x3a68(){const _0x48f649=['ywXS','ndGWnJqYDhbgDvD1','zgf0yq','C2v0','Bg9JywXOB3n0','DxnLvg9VBhmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','v3jPDguGzgf0ysb0BYbHigzPBgu','vvrjteLuwq','mte5rxbAzhnj','t3jJAgvZDhjHDg9YigvUzhbVAw50igLZihvZzwqGzM9YihrVB2WGB3bLCMf0Aw9UCW','ve9ptf9dqvrfr09swsbPBMnSDwrLCYbHBgWGBwfQB3iGy2f0zwDVCMLLCW','AgfZ','BwfW','D3jPDgvFzMLSzq','mtCXmZaYmNrmEKfdCa','DMfSDwvZ','t1jdsevtvfjbve9s','DxnLvg9VBhm','zgvMyxvSDa','y2f0zwDVCNK','vg9VBhmGy2fUigjLigzPBhrLCMvKigj5ig11BhrPCgXLignYAxrLCMLH','Dg9fCxvHBa','mJCWmJe4odbltvfmzMu','qvvut01bveLptG','DxnLvg9VBhmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','Dg9czq','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2f0zwDVCML6yxrPB24','ve9ptf9dqvrfr09swsbJyw4GyMuGDxnLzcb0BYbMAwX0zxiGDg9VBhmGyNKGy2f0zwDVCNK','CMvHzf9MAwXL','BgvUz3rO','z2v0','BMfTzq','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','ugvYzM9YBsbZDgf0AwmGy29KzsbHBMfSExnPCW','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CW','ndy4ntm2mgfZsw1HyG','D2vIx3nLyxjJAa','zMLSzq','rxHLy3v0Aw9Uihn0yxrLignHBIb0CMfJAYbTDwX0AxbSzsb0B29SCW','DgvYBwLUywW','ntmZmtK2sxv4Cfv2','l2fWAs90B29SCW','Dg9nyxrJAa','Aw5JBhvKzxm','vg9VBhmGzw5KCg9PBNqGzM9SBg93CYbsrvnuzNvSihbHDhrLCM4','zxHLyY0X','zNvUy3rPB24','mtfot2DkDfO','zw5HyMXLza','Dg9mB3DLCKnHC2u','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','zgvZy3jPChrPB24','BM93','vg9VBcbJywnOzsbLEhbPCMvZigfMDgvYifruta','vg9VBhmGtwfUywDLBwvUDcaTieLTCg9YDhm','C2L6zq','mJC0mdGZogP0tNbkta','ve9ptfm','v2vIu29JA2v0twfUywDLCG','u2vZC2LVBK1HBMfNzxi','mJm3mJaWohbNrfvvAq','zgvSzxrL','m3zTC0jJua','vg9VBhmGtwfUywDLBwvUDcaTifDLyLnVy2TLDcbfDMvUDcbiyw5KBgvYCW','Dg9czurLzMLUzwq','Dg9dB250ywLU','q09mtefct1jbveLptG','zxHLyY0Y','ywrK','ve9ptf9dqvrfr09swq','qu5btfLtsvm','mJDYwhr0AxC','yw5HBhL6zv9JB2rL','zMLSDgvY','zxHLy3v0zv9JB21Tyw5K','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','u1Ltvevn'];a0_0x3a68=function(){return _0x48f649;};return a0_0x3a68();}function a0_0x237f(_0x2721e1,_0xde7494){_0x2721e1=_0x2721e1-0x1df;const _0x3a6885=a0_0x3a68();let _0x237fd4=_0x3a6885[_0x2721e1];if(a0_0x237f['YcwaII']===undefined){var _0x318cb4=function(_0x4d1cd1){const _0x591f3e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3ff62b='',_0x42cd44='';for(let _0x1860a8=0x0,_0x184d48,_0x50527a,_0x579cf3=0x0;_0x50527a=_0x4d1cd1['charAt'](_0x579cf3++);~_0x50527a&&(_0x184d48=_0x1860a8%0x4?_0x184d48*0x40+_0x50527a:_0x50527a,_0x1860a8++%0x4)?_0x3ff62b+=String['fromCharCode'](0xff&_0x184d48>>(-0x2*_0x1860a8&0x6)):0x0){_0x50527a=_0x591f3e['indexOf'](_0x50527a);}for(let _0x4cbc35=0x0,_0x14ba5d=_0x3ff62b['length'];_0x4cbc35<_0x14ba5d;_0x4cbc35++){_0x42cd44+='%'+('00'+_0x3ff62b['charCodeAt'](_0x4cbc35)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x42cd44);};a0_0x237f['Obvoxg']=_0x318cb4,a0_0x237f['syiwzy']={},a0_0x237f['YcwaII']=!![];}const _0x128b0e=_0x3a6885[0x0],_0x406111=_0x2721e1+_0x128b0e,_0x5eadd6=a0_0x237f['syiwzy'][_0x406111];return!_0x5eadd6?(_0x237fd4=a0_0x237f['Obvoxg'](_0x237fd4),a0_0x237f['syiwzy'][_0x406111]=_0x237fd4):_0x237fd4=_0x5eadd6,_0x237fd4;}const a0_0x1dc1a2=a0_0x237f;(function(_0x51671e,_0x44ad5c){const _0x55b89c=a0_0x237f,_0x1e95a0=_0x51671e();while(!![]){try{const _0x4e853b=-parseInt(_0x55b89c(0x1f2))/0x1+-parseInt(_0x55b89c(0x21d))/0x2*(-parseInt(_0x55b89c(0x223))/0x3)+-parseInt(_0x55b89c(0x20c))/0x4+parseInt(_0x55b89c(0x207))/0x5+parseInt(_0x55b89c(0x1e5))/0x6*(-parseInt(_0x55b89c(0x1ec))/0x7)+parseInt(_0x55b89c(0x221))/0x8*(-parseInt(_0x55b89c(0x22c))/0x9)+parseInt(_0x55b89c(0x1fa))/0xa*(parseInt(_0x55b89c(0x213))/0xb);if(_0x4e853b===_0x44ad5c)break;else _0x1e95a0['push'](_0x1e95a0['shift']());}catch(_0x5f17c2){_0x1e95a0['push'](_0x1e95a0['shift']());}}}(a0_0x3a68,0xdeaa4));import{describe,test,expect}from'@jest/globals';describe(a0_0x1dc1a2(0x21b),()=>{test('useTools hook can be imported',async()=>{const _0x12ff0f=a0_0x237f,{useTools:_0x3ff62b}=await import(_0x12ff0f(0x216));expect(_0x3ff62b)[_0x12ff0f(0x225)](),expect(typeof _0x3ff62b)['toBe']('function');}),test('useTools is default export',async()=>{const _0x27eeca=a0_0x237f,module=await import(_0x27eeca(0x216));expect(module[_0x27eeca(0x1f6)])['toBeDefined'](),expect(typeof module['default'])['toBe']('function'),expect(module[_0x27eeca(0x1f6)])[_0x27eeca(0x1fd)](module[_0x27eeca(0x1f5)]);});}),describe(a0_0x1dc1a2(0x206),()=>{const _0x45a77e=a0_0x1dc1a2;test('TOOL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x3c53a3=a0_0x237f,{TOOL_CATEGORY:_0x42cd44}=await import(_0x3c53a3(0x217));expect(_0x42cd44)['toBeDefined'](),expect(_0x42cd44[_0x3c53a3(0x1e3)])[_0x3c53a3(0x225)](),expect(_0x42cd44[_0x3c53a3(0x1fb)])['toBeDefined'](),expect(_0x42cd44[_0x3c53a3(0x22b)])[_0x3c53a3(0x225)](),expect(_0x42cd44['UTILITY'])['toBeDefined'](),expect(_0x42cd44[_0x3c53a3(0x227)])['toBeDefined'](),expect(_0x42cd44['AI'])[_0x3c53a3(0x225)]();}),test('TOOL_CATEGORY\x20values\x20are\x20lowercase',async()=>{const _0x4b0db2=a0_0x237f,{TOOL_CATEGORY:_0x1860a8}=await import('../../config/constants.js');expect(_0x1860a8[_0x4b0db2(0x1e3)])['toBe'](_0x1860a8[_0x4b0db2(0x1e3)][_0x4b0db2(0x215)]()),expect(_0x1860a8[_0x4b0db2(0x1fb)])[_0x4b0db2(0x1fd)](_0x1860a8['AUTOMATION'][_0x4b0db2(0x215)]()),expect(_0x1860a8['ANALYSIS'])['toBe'](_0x1860a8[_0x4b0db2(0x22b)]['toLowerCase']()),expect(_0x1860a8[_0x4b0db2(0x1eb)])[_0x4b0db2(0x1fd)](_0x1860a8['UTILITY'][_0x4b0db2(0x215)]());}),test('Tools\x20API\x20endpoint\x20is\x20defined',async()=>{const _0x187cc6=a0_0x237f,{API_ENDPOINTS:_0x184d48}=await import(_0x187cc6(0x217));expect(_0x184d48[_0x187cc6(0x21e)])['toBeDefined'](),expect(_0x184d48[_0x187cc6(0x21e)])['toBe']('/api/tools');}),test(_0x45a77e(0x1ed),async()=>{const _0x36bc49=_0x45a77e,{API_ENDPOINTS:_0x50527a}=await import('../../config/constants.js');expect(_0x50527a[_0x36bc49(0x1f4)])['toBeDefined'](),expect(_0x50527a['ORCHESTRATOR'])[_0x36bc49(0x1fd)]('/api/orchestrator');});}),describe('Tools\x20Management\x20-\x20Integration',()=>{const _0x1c7d17=a0_0x1dc1a2;test(_0x1c7d17(0x1fc),async()=>{const _0x48908a=_0x1c7d17,{useTools:_0x579cf3}=await import('../../state/useTools.js'),{SessionManager:_0x4cbc35}=await import('../../api/session.js'),{MessageRouter:_0x14ba5d}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4de906}=await import('../../api/websocket.js'),_0x3abc02=new _0x4cbc35(_0x48908a(0x1e8),0x1f90),_0x51c606=new _0x4de906('localhost',0x1f90),_0x2b7380=new _0x14ba5d(_0x51c606);expect(_0x3abc02)[_0x48908a(0x225)](),expect(_0x2b7380)['toBeDefined'](),expect(typeof _0x579cf3)[_0x48908a(0x1fd)](_0x48908a(0x212));}),test('Full tools management stack can be imported together',async()=>{const _0x4f30b6=_0x1c7d17,[_0x1be3aa,_0x547136,_0x278630,_0x21fc1f,_0x481349]=await Promise[_0x4f30b6(0x1e4)]([import(_0x4f30b6(0x217)),import('../../api/session.js'),import('../../api/websocket.js'),import(_0x4f30b6(0x1e2)),import('../../state/useTools.js')]);expect(_0x1be3aa[_0x4f30b6(0x22a)])['toBeDefined'](),expect(_0x1be3aa['API_ENDPOINTS'])['toBeDefined'](),expect(_0x547136[_0x4f30b6(0x220)])[_0x4f30b6(0x225)](),expect(_0x278630[_0x4f30b6(0x21f)])['toBeDefined'](),expect(_0x21fc1f['MessageRouter'])['toBeDefined'](),expect(_0x481349['useTools'])[_0x4f30b6(0x225)]();});}),describe('Tools\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x3ec814=a0_0x1dc1a2;test(_0x3ec814(0x210),async()=>{const _0x3333e2=_0x3ec814,{API_ENDPOINTS:_0x49b409}=await import(_0x3333e2(0x217));expect(_0x49b409['TOOLS'])['toMatch'](/^\/api\//),expect(_0x49b409[_0x3333e2(0x21e)])[_0x3333e2(0x1fd)](_0x3333e2(0x20d));}),test('Tool\x20operations\x20use\x20orchestrator\x20endpoint',async()=>{const _0x1e39d4=_0x3ec814,{API_ENDPOINTS:_0x5390a0}=await import('../../config/constants.js');expect(_0x5390a0[_0x1e39d4(0x1f4)])['toBeDefined'](),expect(_0x5390a0[_0x1e39d4(0x1f4)])[_0x1e39d4(0x1fd)]('/api/orchestrator');});}),describe('Tools\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x44a3ef=a0_0x1dc1a2;test(_0x44a3ef(0x1e9),async()=>{const _0x513e42=_0x44a3ef,{useTools:_0x36aa20}=await import(_0x513e42(0x216));expect(_0x36aa20[_0x513e42(0x201)])['toBe'](0x3);});}),describe('Tools\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x52dc0f=a0_0x1dc1a2;test(_0x52dc0f(0x1ee),async()=>{const _0xb206be=_0x52dc0f,{TOOL_CATEGORY:_0x1706ff}=await import('../../config/constants.js'),_0x4872ae=Object['keys'](_0x1706ff);expect(_0x4872ae)['toContain'](_0xb206be(0x1e3)),expect(_0x4872ae)['toContain'](_0xb206be(0x1fb)),expect(_0x4872ae)[_0xb206be(0x226)]('ANALYSIS'),expect(_0x4872ae)['toContain'](_0xb206be(0x1eb)),expect(_0x4872ae)[_0xb206be(0x226)](_0xb206be(0x227)),expect(_0x4872ae)[_0xb206be(0x226)]('AI');}),test('TOOL_CATEGORY\x20values\x20match\x20expected\x20format',async()=>{const _0x5b57ea=_0x52dc0f,{TOOL_CATEGORY:_0x4d9641}=await import('../../config/constants.js');expect(_0x4d9641['SYSTEM'])['toMatch'](/^[a-z_]+$/),expect(_0x4d9641['AUTOMATION'])['toMatch'](/^[a-z_]+$/),expect(_0x4d9641['ANALYSIS'])[_0x5b57ea(0x20e)](/^[a-z_]+$/),expect(_0x4d9641[_0x5b57ea(0x1eb)])[_0x5b57ea(0x20e)](/^[a-z_]+$/);});}),describe(a0_0x1dc1a2(0x224),()=>{test('MessageRouter\x20has\x20tool\x20event\x20handlers\x20registered',async()=>{const _0x4d1ef4=a0_0x237f,{MessageRouter:_0x355c91}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x12255c}=await import(_0x4d1ef4(0x204)),_0x1258fc=new _0x12255c(_0x4d1ef4(0x1e8),0x1f90),_0x5078fe=new _0x355c91(_0x1258fc);expect(_0x5078fe['hasHandler'])[_0x4d1ef4(0x225)](),expect(typeof _0x5078fe['hasHandler'])['toBe']('function');});}),describe(a0_0x1dc1a2(0x1fe),()=>{const _0x55844d=a0_0x1dc1a2;test(_0x55844d(0x1ff),async()=>{const _0x4c3847=_0x55844d,{TOOL_CATEGORY:_0x1743cd}=await import('../../config/constants.js'),_0x4bfbed=[{'name':_0x4c3847(0x1e1),'category':_0x1743cd[_0x4c3847(0x1e3)]},{'name':'terminal','category':_0x1743cd[_0x4c3847(0x1e3)]},{'name':_0x4c3847(0x1df),'category':_0x1743cd[_0x4c3847(0x22b)]},{'name':_0x4c3847(0x208),'category':_0x1743cd[_0x4c3847(0x1eb)]},{'name':'ai_assistant','category':_0x1743cd['AI']}],_0xd7a08=_0x4bfbed[_0x4c3847(0x1e0)](_0x479b8d=>_0x479b8d[_0x4c3847(0x1f7)]===_0x1743cd['SYSTEM']),_0x3c384e=_0x4bfbed[_0x4c3847(0x1e0)](_0x454e9c=>_0x454e9c[_0x4c3847(0x1f7)]===_0x1743cd['ANALYSIS']),_0x5c9e11=_0x4bfbed['filter'](_0x2e2831=>_0x2e2831[_0x4c3847(0x1f7)]===_0x1743cd['UTILITY']),_0x1bb0bc=_0x4bfbed[_0x4c3847(0x1e0)](_0x15388f=>_0x15388f['category']===_0x1743cd['AI']);expect(_0xd7a08['length'])['toBe'](0x2),expect(_0x3c384e['length'])[_0x4c3847(0x1fd)](0x1),expect(_0x5c9e11[_0x4c3847(0x201)])['toBe'](0x1),expect(_0x1bb0bc['length'])[_0x4c3847(0x1fd)](0x1),expect(_0xd7a08[0x0][_0x4c3847(0x203)])['toBe'](_0x4c3847(0x1e1)),expect(_0x3c384e[0x0][_0x4c3847(0x203)])[_0x4c3847(0x1fd)]('analyze_code');});}),describe('Tools\x20Management\x20-\x20Tool\x20Search',()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x21428f=a0_0x237f,_0x288b95=[{'name':'read_file','description':'Read\x20contents\x20of\x20a\x20file'},{'name':_0x21428f(0x1f1),'description':_0x21428f(0x1ea)},{'name':'analyze_code','description':_0x21428f(0x205)}],_0x2cf0de=_0x2b2334=>{const _0x55ca3e=_0x21428f,_0x3e157d=_0x2b2334['toLowerCase']();return _0x288b95['filter'](_0xbdb7f6=>_0xbdb7f6[_0x55ca3e(0x203)]?.[_0x55ca3e(0x215)]()[_0x55ca3e(0x20f)](_0x3e157d)||_0xbdb7f6[_0x55ca3e(0x218)]?.['toLowerCase']()[_0x55ca3e(0x20f)](_0x3e157d));},_0x477e4b=_0x2cf0de(_0x21428f(0x209));expect(_0x477e4b['length'])['toBe'](0x2),expect(_0x477e4b[_0x21428f(0x1f0)](_0x2f56b5=>_0x2f56b5[_0x21428f(0x203)]))['toContain']('read_file'),expect(_0x477e4b['map'](_0x21f062=>_0x21f062['name']))['toContain']('write_file');const _0x2aacdf=_0x2cf0de('analyze');expect(_0x2aacdf[_0x21428f(0x201)])[_0x21428f(0x1fd)](0x1),expect(_0x2aacdf[0x0][_0x21428f(0x203)])[_0x21428f(0x1fd)]('analyze_code');});}),describe('Tools\x20Management\x20-\x20Execution\x20State\x20Tracking',()=>{const _0x3f4e9d=a0_0x1dc1a2;test(_0x3f4e9d(0x20a),async()=>{const _0x355999=_0x3f4e9d,_0x48f0d7=new Set();_0x48f0d7[_0x355999(0x229)]('read_file'),_0x48f0d7['add']('analyze_code'),expect(_0x48f0d7[_0x355999(0x1ef)](_0x355999(0x200)))['toBe'](!![]),expect(_0x48f0d7['has']('analyze_code'))[_0x355999(0x1fd)](!![]),expect(_0x48f0d7[_0x355999(0x21c)])['toBe'](0x2),_0x48f0d7[_0x355999(0x222)]('read_file'),expect(_0x48f0d7['has'](_0x355999(0x200)))['toBe'](![]),expect(_0x48f0d7[_0x355999(0x1ef)](_0x355999(0x1df)))['toBe'](!![]),expect(_0x48f0d7['size'])['toBe'](0x1);}),test('Tool\x20results\x20can\x20be\x20stored\x20by\x20execution\x20ID',async()=>{const _0x501cbc=_0x3f4e9d,_0x131491=new Map();_0x131491[_0x501cbc(0x1e7)](_0x501cbc(0x211),{'success':!![],'data':'file\x20contents'}),_0x131491['set']('exec-2',{'success':!![],'data':{'issues':[]}}),expect(_0x131491[_0x501cbc(0x202)](_0x501cbc(0x211)))['toBeDefined'](),expect(_0x131491['get']('exec-1')['success'])[_0x501cbc(0x1fd)](!![]),expect(_0x131491['get']('exec-1')[_0x501cbc(0x1e6)])[_0x501cbc(0x1fd)]('file\x20contents'),expect(_0x131491['get']('exec-2'))[_0x501cbc(0x225)](),expect(_0x131491[_0x501cbc(0x202)](_0x501cbc(0x228))[_0x501cbc(0x1e6)]['issues'])[_0x501cbc(0x1f9)]([]),expect(_0x131491['size'])['toBe'](0x2);});}),describe('Tools\x20Management\x20-\x20Tool\x20Caching',()=>{const _0x18863c=a0_0x1dc1a2;test('Tool\x20cache\x20supports\x20TTL-based\x20caching',async()=>{const _0x6d1f5d=a0_0x237f,_0xf0acd1=0x927c0;let _0x27f67b=null,_0x355dd6=0x0;const _0x1859a8=[{'name':'read_file'}];_0x27f67b=_0x1859a8,_0x355dd6=Date[_0x6d1f5d(0x219)]();const _0x9896d5=Date['now'](),_0x199dc5=_0x9896d5-_0x355dd6<_0xf0acd1;expect(_0x199dc5)['toBe'](!![]),expect(_0x27f67b)[_0x6d1f5d(0x1fd)](_0x1859a8);}),test(_0x18863c(0x21a),async()=>{const _0x514215=0x64;let _0x9a765d=null,_0x116260=0x0;const _0x1dd15a=[{'name':'read_file'}];_0x9a765d=_0x1dd15a,_0x116260=Date['now'](),await new Promise(_0x4f7b2b=>setTimeout(_0x4f7b2b,0x96));const _0x2163b0=Date['now'](),_0x35acc9=_0x2163b0-_0x116260<_0x514215;expect(_0x35acc9)['toBe'](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{const _0x5a4d14=a0_0x1dc1a2;test(_0x5a4d14(0x1f8),async()=>{const _0x40f368=_0x5a4d14,{TOOL_CATEGORY:_0x2dcd7c}=await import('../../config/constants.js'),_0x3ba0b9=[{'name':_0x40f368(0x1e1),'category':_0x2dcd7c['SYSTEM'],'enabled':!![]},{'name':_0x40f368(0x20b),'category':_0x2dcd7c[_0x40f368(0x1e3)],'enabled':![]},{'name':_0x40f368(0x1df),'category':_0x2dcd7c['ANALYSIS'],'enabled':!![]}],_0x3faf59=_0x11ce6d=>{const _0xd5193f=_0x40f368;let _0xb632ab=[..._0x3ba0b9];return _0x11ce6d[_0xd5193f(0x1f7)]&&(_0xb632ab=_0xb632ab[_0xd5193f(0x1e0)](_0x5bcc40=>_0x5bcc40[_0xd5193f(0x1f7)]===_0x11ce6d[_0xd5193f(0x1f7)])),_0x11ce6d[_0xd5193f(0x214)]!==undefined&&(_0xb632ab=_0xb632ab[_0xd5193f(0x1e0)](_0x111ed0=>_0x111ed0['enabled']===_0x11ce6d[_0xd5193f(0x214)])),_0xb632ab;},_0x323d5e=_0x3faf59({'category':_0x2dcd7c[_0x40f368(0x1e3)]});expect(_0x323d5e[_0x40f368(0x201)])[_0x40f368(0x1fd)](0x2);const _0x9dbb63=_0x3faf59({'enabled':!![]});expect(_0x9dbb63[_0x40f368(0x201)])[_0x40f368(0x1fd)](0x2);const _0x48573a=_0x3faf59({'category':_0x2dcd7c[_0x40f368(0x1e3)],'enabled':!![]});expect(_0x48573a[_0x40f368(0x201)])['toBe'](0x1),expect(_0x48573a[0x0][_0x40f368(0x203)])['toBe'](_0x40f368(0x1e1));});}),describe('Tools\x20Management\x20-\x20Category\x20Counts',()=>{test('Category\x20counts\x20can\x20be\x20calculated',async()=>{const _0x268744=a0_0x237f,{TOOL_CATEGORY:_0x23bc31}=await import(_0x268744(0x217)),_0x4d08d0=[{'name':_0x268744(0x1e1),'category':_0x23bc31[_0x268744(0x1e3)]},{'name':'terminal','category':_0x23bc31[_0x268744(0x1e3)]},{'name':_0x268744(0x1df),'category':_0x23bc31[_0x268744(0x22b)]},{'name':_0x268744(0x208),'category':_0x23bc31[_0x268744(0x1eb)]}],_0x3c4ecd=_0x3fa82d=>{const _0x41bc91=_0x268744,_0x3ff6fe={};for(const _0x54f1c5 of Object[_0x41bc91(0x1f3)](_0x23bc31)){_0x3ff6fe[_0x54f1c5]=_0x3fa82d[_0x41bc91(0x1e0)](_0x24fb0d=>_0x24fb0d['category']===_0x54f1c5)[_0x41bc91(0x201)];}return _0x3ff6fe;},_0x7c3932=_0x3c4ecd(_0x4d08d0);expect(_0x7c3932[_0x23bc31['SYSTEM']])['toBe'](0x2),expect(_0x7c3932[_0x23bc31[_0x268744(0x22b)]])[_0x268744(0x1fd)](0x1),expect(_0x7c3932[_0x23bc31[_0x268744(0x1eb)]])[_0x268744(0x1fd)](0x1),expect(_0x7c3932[_0x23bc31[_0x268744(0x1fb)]])['toBe'](0x0);});});
1
+ function a0_0x1ad9(_0x2ab70b,_0x4c3880){_0x2ab70b=_0x2ab70b-0x1d0;const _0x2c7344=a0_0x2c73();let _0x1ad974=_0x2c7344[_0x2ab70b];if(a0_0x1ad9['MIWgsK']===undefined){var _0x26a7a6=function(_0x92b0e7){const _0x1fe127='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1f65b8='',_0x37da75='';for(let _0x12569b=0x0,_0x4cf031,_0x40f6ca,_0x4b25ac=0x0;_0x40f6ca=_0x92b0e7['charAt'](_0x4b25ac++);~_0x40f6ca&&(_0x4cf031=_0x12569b%0x4?_0x4cf031*0x40+_0x40f6ca:_0x40f6ca,_0x12569b++%0x4)?_0x1f65b8+=String['fromCharCode'](0xff&_0x4cf031>>(-0x2*_0x12569b&0x6)):0x0){_0x40f6ca=_0x1fe127['indexOf'](_0x40f6ca);}for(let _0xf84616=0x0,_0x5edce0=_0x1f65b8['length'];_0xf84616<_0x5edce0;_0xf84616++){_0x37da75+='%'+('00'+_0x1f65b8['charCodeAt'](_0xf84616)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x37da75);};a0_0x1ad9['rILNTs']=_0x26a7a6,a0_0x1ad9['BFthUg']={},a0_0x1ad9['MIWgsK']=!![];}const _0x18d81d=_0x2c7344[0x0],_0x129ae7=_0x2ab70b+_0x18d81d,_0x345c0a=a0_0x1ad9['BFthUg'][_0x129ae7];return!_0x345c0a?(_0x1ad974=a0_0x1ad9['rILNTs'](_0x1ad974),a0_0x1ad9['BFthUg'][_0x129ae7]=_0x1ad974):_0x1ad974=_0x345c0a,_0x1ad974;}const a0_0x2b4148=a0_0x1ad9;(function(_0x5b9f7a,_0x3ffacc){const _0x1e3171=a0_0x1ad9,_0x27919a=_0x5b9f7a();while(!![]){try{const _0x31bf24=parseInt(_0x1e3171(0x20e))/0x1+-parseInt(_0x1e3171(0x1da))/0x2+parseInt(_0x1e3171(0x204))/0x3+parseInt(_0x1e3171(0x206))/0x4*(parseInt(_0x1e3171(0x1f0))/0x5)+parseInt(_0x1e3171(0x202))/0x6+-parseInt(_0x1e3171(0x1db))/0x7*(parseInt(_0x1e3171(0x1f9))/0x8)+-parseInt(_0x1e3171(0x215))/0x9;if(_0x31bf24===_0x3ffacc)break;else _0x27919a['push'](_0x27919a['shift']());}catch(_0x1db6f4){_0x27919a['push'](_0x27919a['shift']());}}}(a0_0x2c73,0xb4efd));function a0_0x2c73(){const _0xd6ccfe=['C2L6zq','l2fWAs90B29SCW','Dg9nyxrJAa','odGXnJaXnNL6uMrnAa','zNvUy3rPB24','nde1mJu5mw51CfD2rG','A2v5CW','mtjez2TmqMi','q09mtefct1jbveLptG','zMLSDgvY','zw5HyMXLza','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','DxnLvg9VBhm','DgvYBwLUywW','zMLSzsbJB250zw50CW','mti1ntCWmKjPs3nnAq','ve9ptf9dqvrfr09swsb2ywX1zxmGyxjLigXVD2vYy2fZzq','BMfTzq','D2vIx3nLyxjJAa','vg9VBhmGtwfUywDLBwvUDcaTifDLyLnVy2TLDcbfDMvUDcbiyw5KBgvYCW','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','zxHLy3v0zv9JB21Tyw5K','mte4mtq4mJjpwwT1twq','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CW','qu5btfLtsvm','Dg9dB250ywLU','AxnZDwvZ','ywrK','t1jdsevtvfjbve9s','ve9ptf9dqvrfr09swsbPBMnSDwrLCYbHBgWGBwfQB3iGy2f0zwDVCMLLCW','DMfSDwvZ','AgfZ','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','zxHLyY0X','z2v0','mJqXmdK1og9gvLDita','nde0ntyZoe1lswriEq','ywXS','zgvSzxrL','vg9VBhmGzw5KCg9PBNqGzM9SBg93CYbsrvnuzNvSihbHDhrLCM4','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','Dg9czurLzMLUzwq','D3jPDgvFzMLSzq','C2v0','vvrjteLuwq','Bg9JywXOB3n0','zxHLyY0Y','ve9ptf9dqvrfr09swsbJyw4GyMuGDxnLzcb0BYbMAwX0zxiGDg9VBhmGyNKGy2f0zwDVCNK','DxnLvg9VBhmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','yw5HBhL6zv9JB2rL','ve9ptfm','zgvMyxvSDa','CMvHzf9MAwXL','Dg9mB3DLCKnHC2u','vg9VBhmGtwfUywDLBwvUDcaTieLTCg9YDhm','u1Ltvevn','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CYbwywXPzgf0Aw9U','ntu3nJq1zwnfswnp','twvZC2fNzvjVDxrLCIbOyxmGDg9VBcbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','v2vIu29JA2v0twfUywDLCG','y2f0zwDVCNK','Dg9czq','zgvZy3jPChrPB24','qvvut01bveLptG','zMLSzq','BM93','mtzjtNnHvhK','Aw5JBhvKzxm','yw5HBhL6zq','BwfW','AgfZsgfUzgXLCG','BgvUz3rO'];a0_0x2c73=function(){return _0xd6ccfe;};return a0_0x2c73();}import{describe,test,expect}from'@jest/globals';describe(a0_0x2b4148(0x1ed),()=>{test('useTools hook can be imported',async()=>{const _0x29ef0c=a0_0x1ad9,{useTools:_0x1f65b8}=await import('../../state/useTools.js');expect(_0x1f65b8)[_0x29ef0c(0x1e0)](),expect(typeof _0x1f65b8)[_0x29ef0c(0x1f4)]('function');}),test('useTools is default export',async()=>{const _0x467164=a0_0x1ad9,module=await import(_0x467164(0x1df));expect(module['default'])['toBeDefined'](),expect(typeof module[_0x467164(0x1ea)])[_0x467164(0x1f4)](_0x467164(0x203)),expect(module[_0x467164(0x1ea)])[_0x467164(0x1f4)](module[_0x467164(0x20b)]);});}),describe(a0_0x2b4148(0x216),()=>{const _0x4ac7fc=a0_0x2b4148;test('TOOL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x1cbf26=a0_0x1ad9,{TOOL_CATEGORY:_0x37da75}=await import('../../config/constants.js');expect(_0x37da75)[_0x1cbf26(0x1e0)](),expect(_0x37da75[_0x1cbf26(0x1ee)])['toBeDefined'](),expect(_0x37da75[_0x1cbf26(0x1f6)])['toBeDefined'](),expect(_0x37da75['ANALYSIS'])[_0x1cbf26(0x1e0)](),expect(_0x37da75[_0x1cbf26(0x1e3)])[_0x1cbf26(0x1e0)](),expect(_0x37da75[_0x1cbf26(0x207)])['toBeDefined'](),expect(_0x37da75['AI'])[_0x1cbf26(0x1e0)]();}),test(_0x4ac7fc(0x20f),async()=>{const _0x33c6ed=_0x4ac7fc,{TOOL_CATEGORY:_0x12569b}=await import(_0x33c6ed(0x20a));expect(_0x12569b['SYSTEM'])[_0x33c6ed(0x1f4)](_0x12569b['SYSTEM']['toLowerCase']()),expect(_0x12569b[_0x33c6ed(0x1f6)])['toBe'](_0x12569b['AUTOMATION']['toLowerCase']()),expect(_0x12569b[_0x33c6ed(0x217)])[_0x33c6ed(0x1f4)](_0x12569b['ANALYSIS']['toLowerCase']()),expect(_0x12569b['UTILITY'])['toBe'](_0x12569b['UTILITY'][_0x33c6ed(0x1ec)]());}),test('Tools\x20API\x20endpoint\x20is\x20defined',async()=>{const _0x1001ff=_0x4ac7fc,{API_ENDPOINTS:_0x4cf031}=await import(_0x1001ff(0x20a));expect(_0x4cf031['TOOLS'])['toBeDefined'](),expect(_0x4cf031['TOOLS'])['toBe'](_0x1001ff(0x200));}),test('Orchestrator\x20endpoint\x20is\x20used\x20for\x20tool\x20operations',async()=>{const _0x3cc7ed=_0x4ac7fc,{API_ENDPOINTS:_0x40f6ca}=await import('../../config/constants.js');expect(_0x40f6ca[_0x3cc7ed(0x1d3)])['toBeDefined'](),expect(_0x40f6ca['ORCHESTRATOR'])['toBe']('/api/orchestrator');});}),describe('Tools\x20Management\x20-\x20Integration',()=>{test('useTools\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x4ab494=a0_0x1ad9,{useTools:_0x4b25ac}=await import('../../state/useTools.js'),{SessionManager:_0xf84616}=await import('../../api/session.js'),{MessageRouter:_0x5edce0}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4c4bd3}=await import(_0x4ab494(0x1d7)),_0x2f5daf=new _0xf84616('localhost',0x1f90),_0x302bae=new _0x4c4bd3('localhost',0x1f90),_0x16f545=new _0x5edce0(_0x302bae);expect(_0x2f5daf)['toBeDefined'](),expect(_0x16f545)['toBeDefined'](),expect(typeof _0x4b25ac)[_0x4ab494(0x1f4)](_0x4ab494(0x203));}),test('Full tools management stack can be imported together',async()=>{const _0x38c43c=a0_0x1ad9,[_0xb96f48,_0x2c7477,_0x483d7d,_0x4ad2a3,_0x36baa4]=await Promise[_0x38c43c(0x1dc)]([import(_0x38c43c(0x20a)),import('../../api/session.js'),import(_0x38c43c(0x1d7)),import(_0x38c43c(0x213)),import('../../state/useTools.js')]);expect(_0xb96f48['TOOL_CATEGORY'])['toBeDefined'](),expect(_0xb96f48['API_ENDPOINTS'])[_0x38c43c(0x1e0)](),expect(_0x2c7477['SessionManager'])[_0x38c43c(0x1e0)](),expect(_0x483d7d[_0x38c43c(0x1f2)])[_0x38c43c(0x1e0)](),expect(_0x4ad2a3['MessageRouter'])['toBeDefined'](),expect(_0x36baa4['useTools'])[_0x38c43c(0x1e0)]();});}),describe('Tools\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x4498e2=a0_0x2b4148;test(_0x4498e2(0x1de),async()=>{const _0x28e91a=_0x4498e2,{API_ENDPOINTS:_0x295213}=await import('../../config/constants.js');expect(_0x295213['TOOLS'])[_0x28e91a(0x201)](/^\/api\//),expect(_0x295213[_0x28e91a(0x1e9)])[_0x28e91a(0x1f4)]('/api/tools');}),test('Tool\x20operations\x20use\x20orchestrator\x20endpoint',async()=>{const _0x3fa61d=_0x4498e2,{API_ENDPOINTS:_0x580d1b}=await import(_0x3fa61d(0x20a));expect(_0x580d1b[_0x3fa61d(0x1d3)])[_0x3fa61d(0x1e0)](),expect(_0x580d1b['ORCHESTRATOR'])['toBe']('/api/orchestrator');});}),describe('Tools\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x544872=a0_0x2b4148;test(_0x544872(0x1e7),async()=>{const _0x2adf59=_0x544872,{useTools:_0xc250e0}=await import('../../state/useTools.js');expect(_0xc250e0[_0x2adf59(0x1fe)])[_0x2adf59(0x1f4)](0x3);});}),describe(a0_0x2b4148(0x1ef),()=>{const _0x359351=a0_0x2b4148;test(_0x359351(0x1d4),async()=>{const _0x5e9d63=_0x359351,{TOOL_CATEGORY:_0x2bd41b}=await import('../../config/constants.js'),_0x52e11a=Object[_0x5e9d63(0x205)](_0x2bd41b);expect(_0x52e11a)['toContain']('SYSTEM'),expect(_0x52e11a)[_0x5e9d63(0x1d0)](_0x5e9d63(0x1f6)),expect(_0x52e11a)[_0x5e9d63(0x1d0)]('ANALYSIS'),expect(_0x52e11a)[_0x5e9d63(0x1d0)]('UTILITY'),expect(_0x52e11a)['toContain'](_0x5e9d63(0x207)),expect(_0x52e11a)[_0x5e9d63(0x1d0)]('AI');}),test('TOOL_CATEGORY\x20values\x20match\x20expected\x20format',async()=>{const _0x13795e=_0x359351,{TOOL_CATEGORY:_0x47e905}=await import(_0x13795e(0x20a));expect(_0x47e905[_0x13795e(0x1ee)])['toMatch'](/^[a-z_]+$/),expect(_0x47e905['AUTOMATION'])['toMatch'](/^[a-z_]+$/),expect(_0x47e905['ANALYSIS'])[_0x13795e(0x201)](/^[a-z_]+$/),expect(_0x47e905['UTILITY'])['toMatch'](/^[a-z_]+$/);});}),describe(a0_0x2b4148(0x212),()=>{const _0x591870=a0_0x2b4148;test(_0x591870(0x1f1),async()=>{const _0x5bb276=_0x591870,{MessageRouter:_0x3c5a7c}=await import(_0x5bb276(0x213)),{WebSocketManager:_0x5abaf6}=await import('../../api/websocket.js'),_0x5a38d0=new _0x5abaf6(_0x5bb276(0x1e4),0x1f90),_0xd2b099=new _0x3c5a7c(_0x5a38d0);expect(_0xd2b099['hasHandler'])['toBeDefined'](),expect(typeof _0xd2b099[_0x5bb276(0x1fd)])[_0x5bb276(0x1f4)]('function');});}),describe('Tools\x20Management\x20-\x20Tool\x20Categorization',()=>{const _0x48b7ae=a0_0x2b4148;test(_0x48b7ae(0x1e6),async()=>{const _0x15107e=_0x48b7ae,{TOOL_CATEGORY:_0x5e2139}=await import('../../config/constants.js'),_0x3e93b1=[{'name':_0x15107e(0x214),'category':_0x5e2139[_0x15107e(0x1ee)]},{'name':'terminal','category':_0x5e2139['SYSTEM']},{'name':_0x15107e(0x1e8),'category':_0x5e2139['ANALYSIS']},{'name':'web_search','category':_0x5e2139[_0x15107e(0x1e3)]},{'name':'ai_assistant','category':_0x5e2139['AI']}],_0xb641d7=_0x3e93b1['filter'](_0x229c00=>_0x229c00['category']===_0x5e2139[_0x15107e(0x1ee)]),_0x5b3478=_0x3e93b1[_0x15107e(0x208)](_0x3fe320=>_0x3fe320[_0x15107e(0x1f3)]===_0x5e2139['ANALYSIS']),_0x1ac668=_0x3e93b1[_0x15107e(0x208)](_0x19259a=>_0x19259a['category']===_0x5e2139[_0x15107e(0x1e3)]),_0x25886d=_0x3e93b1['filter'](_0x598315=>_0x598315['category']===_0x5e2139['AI']);expect(_0xb641d7[_0x15107e(0x1fe)])['toBe'](0x2),expect(_0x5b3478['length'])[_0x15107e(0x1f4)](0x1),expect(_0x1ac668[_0x15107e(0x1fe)])['toBe'](0x1),expect(_0x25886d[_0x15107e(0x1fe)])[_0x15107e(0x1f4)](0x1),expect(_0xb641d7[0x0]['name'])['toBe'](_0x15107e(0x214)),expect(_0x5b3478[0x0][_0x15107e(0x210)])['toBe'](_0x15107e(0x1e8));});}),describe('Tools\x20Management\x20-\x20Tool\x20Search',()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x32ba90=a0_0x1ad9,_0x96de5c=[{'name':'read_file','description':'Read\x20contents\x20of\x20a\x20file'},{'name':'write_file','description':'Write\x20data\x20to\x20a\x20file'},{'name':'analyze_code','description':'Perform\x20static\x20code\x20analysis'}],_0x385d20=_0x440f71=>{const _0x2d00a0=a0_0x1ad9,_0x3336de=_0x440f71['toLowerCase']();return _0x96de5c['filter'](_0x917fb9=>_0x917fb9['name']?.['toLowerCase']()[_0x2d00a0(0x1fa)](_0x3336de)||_0x917fb9[_0x2d00a0(0x1f5)]?.['toLowerCase']()[_0x2d00a0(0x1fa)](_0x3336de));},_0x54f3c0=_0x385d20(_0x32ba90(0x1f7));expect(_0x54f3c0[_0x32ba90(0x1fe)])[_0x32ba90(0x1f4)](0x2),expect(_0x54f3c0[_0x32ba90(0x1fc)](_0x4ae157=>_0x4ae157[_0x32ba90(0x210)]))[_0x32ba90(0x1d0)](_0x32ba90(0x1eb)),expect(_0x54f3c0['map'](_0x4ce52c=>_0x4ce52c['name']))[_0x32ba90(0x1d0)](_0x32ba90(0x1e1));const _0x4d733f=_0x385d20(_0x32ba90(0x1fb));expect(_0x4d733f['length'])['toBe'](0x1),expect(_0x4d733f[0x0]['name'])['toBe'](_0x32ba90(0x1e8));});}),describe('Tools\x20Management\x20-\x20Execution\x20State\x20Tracking',()=>{test('Execution\x20state\x20can\x20track\x20multiple\x20tools',async()=>{const _0x34ed04=a0_0x1ad9,_0x33fa77=new Set();_0x33fa77[_0x34ed04(0x1d2)](_0x34ed04(0x1eb)),_0x33fa77['add']('analyze_code'),expect(_0x33fa77[_0x34ed04(0x1d6)](_0x34ed04(0x1eb)))['toBe'](!![]),expect(_0x33fa77[_0x34ed04(0x1d6)](_0x34ed04(0x1e8)))[_0x34ed04(0x1f4)](!![]),expect(_0x33fa77['size'])[_0x34ed04(0x1f4)](0x2),_0x33fa77[_0x34ed04(0x1dd)](_0x34ed04(0x1eb)),expect(_0x33fa77[_0x34ed04(0x1d6)]('read_file'))[_0x34ed04(0x1f4)](![]),expect(_0x33fa77[_0x34ed04(0x1d6)]('analyze_code'))['toBe'](!![]),expect(_0x33fa77['size'])[_0x34ed04(0x1f4)](0x1);}),test('Tool\x20results\x20can\x20be\x20stored\x20by\x20execution\x20ID',async()=>{const _0x2d8f76=a0_0x1ad9,_0x53127c=new Map();_0x53127c['set']('exec-1',{'success':!![],'data':'file\x20contents'}),_0x53127c[_0x2d8f76(0x1e2)](_0x2d8f76(0x1e5),{'success':!![],'data':{'issues':[]}}),expect(_0x53127c[_0x2d8f76(0x1d9)]('exec-1'))[_0x2d8f76(0x1e0)](),expect(_0x53127c['get']('exec-1')['success'])[_0x2d8f76(0x1f4)](!![]),expect(_0x53127c['get'](_0x2d8f76(0x1d8))['data'])[_0x2d8f76(0x1f4)](_0x2d8f76(0x20d)),expect(_0x53127c['get'](_0x2d8f76(0x1e5)))['toBeDefined'](),expect(_0x53127c[_0x2d8f76(0x1d9)]('exec-2')['data'][_0x2d8f76(0x1d1)])['toEqual']([]),expect(_0x53127c[_0x2d8f76(0x1ff)])[_0x2d8f76(0x1f4)](0x2);});}),describe('Tools\x20Management\x20-\x20Tool\x20Caching',()=>{test('Tool\x20cache\x20supports\x20TTL-based\x20caching',async()=>{const _0x3c7b17=a0_0x1ad9,_0x10d9fe=0x927c0;let _0x97d29f=null,_0x1aec85=0x0;const _0x23c1e4=[{'name':'read_file'}];_0x97d29f=_0x23c1e4,_0x1aec85=Date['now']();const _0x3da5ef=Date['now'](),_0x57b734=_0x3da5ef-_0x1aec85<_0x10d9fe;expect(_0x57b734)['toBe'](!![]),expect(_0x97d29f)[_0x3c7b17(0x1f4)](_0x23c1e4);}),test('Tool\x20cache\x20expires\x20after\x20TTL',async()=>{const _0x4e9d1a=a0_0x1ad9,_0x2663f8=0x64;let _0x502cf1=null,_0x1c06ea=0x0;const _0x34f33b=[{'name':_0x4e9d1a(0x1eb)}];_0x502cf1=_0x34f33b,_0x1c06ea=Date[_0x4e9d1a(0x1f8)](),await new Promise(_0x26e135=>setTimeout(_0x26e135,0x96));const _0x553dc5=Date['now'](),_0xfbb362=_0x553dc5-_0x1c06ea<_0x2663f8;expect(_0xfbb362)['toBe'](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{test('Tools\x20can\x20be\x20filtered\x20by\x20multiple\x20criteria',async()=>{const _0x63443f=a0_0x1ad9,{TOOL_CATEGORY:_0xdf11ce}=await import(_0x63443f(0x20a)),_0x51f6fd=[{'name':_0x63443f(0x214),'category':_0xdf11ce[_0x63443f(0x1ee)],'enabled':!![]},{'name':_0x63443f(0x20c),'category':_0xdf11ce[_0x63443f(0x1ee)],'enabled':![]},{'name':'analyze_code','category':_0xdf11ce[_0x63443f(0x217)],'enabled':!![]}],_0x3d7b64=_0xc43b5d=>{const _0x1d4827=_0x63443f;let _0x5a531e=[..._0x51f6fd];return _0xc43b5d['category']&&(_0x5a531e=_0x5a531e[_0x1d4827(0x208)](_0x24598a=>_0x24598a[_0x1d4827(0x1f3)]===_0xc43b5d[_0x1d4827(0x1f3)])),_0xc43b5d['enabled']!==undefined&&(_0x5a531e=_0x5a531e['filter'](_0x16b4f9=>_0x16b4f9['enabled']===_0xc43b5d[_0x1d4827(0x209)])),_0x5a531e;},_0x1470c4=_0x3d7b64({'category':_0xdf11ce['SYSTEM']});expect(_0x1470c4[_0x63443f(0x1fe)])[_0x63443f(0x1f4)](0x2);const _0x1d60ee=_0x3d7b64({'enabled':!![]});expect(_0x1d60ee[_0x63443f(0x1fe)])['toBe'](0x2);const _0x540878=_0x3d7b64({'category':_0xdf11ce['SYSTEM'],'enabled':!![]});expect(_0x540878['length'])['toBe'](0x1),expect(_0x540878[0x0][_0x63443f(0x210)])['toBe']('execute_command');});}),describe('Tools\x20Management\x20-\x20Category\x20Counts',()=>{test('Category\x20counts\x20can\x20be\x20calculated',async()=>{const _0xea35b1=a0_0x1ad9,{TOOL_CATEGORY:_0x47f926}=await import(_0xea35b1(0x20a)),_0x13c1a4=[{'name':'execute_command','category':_0x47f926['SYSTEM']},{'name':_0xea35b1(0x20c),'category':_0x47f926[_0xea35b1(0x1ee)]},{'name':_0xea35b1(0x1e8),'category':_0x47f926['ANALYSIS']},{'name':_0xea35b1(0x211),'category':_0x47f926['UTILITY']}],_0x12ffcd=_0x3c3ea1=>{const _0x483174=_0xea35b1,_0x5c9d45={};for(const _0x52afea of Object[_0x483174(0x1d5)](_0x47f926)){_0x5c9d45[_0x52afea]=_0x3c3ea1[_0x483174(0x208)](_0x1cd9b2=>_0x1cd9b2[_0x483174(0x1f3)]===_0x52afea)['length'];}return _0x5c9d45;},_0x552955=_0x12ffcd(_0x13c1a4);expect(_0x552955[_0x47f926[_0xea35b1(0x1ee)]])['toBe'](0x2),expect(_0x552955[_0x47f926[_0xea35b1(0x217)]])[_0xea35b1(0x1f4)](0x1),expect(_0x552955[_0x47f926['UTILITY']])[_0xea35b1(0x1f4)](0x1),expect(_0x552955[_0x47f926['AUTOMATION']])[_0xea35b1(0x1f4)](0x0);});});
@@ -1 +1 @@
1
- const a0_0x63403=a0_0x3c01;(function(_0x189677,_0x2e98b4){const _0x383a7c=a0_0x3c01,_0x3cc1f6=_0x189677();while(!![]){try{const _0x34d4f6=parseInt(_0x383a7c(0x192))/0x1*(parseInt(_0x383a7c(0x195))/0x2)+parseInt(_0x383a7c(0x19c))/0x3+-parseInt(_0x383a7c(0x199))/0x4+parseInt(_0x383a7c(0x191))/0x5+-parseInt(_0x383a7c(0x19f))/0x6+-parseInt(_0x383a7c(0x194))/0x7+parseInt(_0x383a7c(0x1a2))/0x8;if(_0x34d4f6===_0x2e98b4)break;else _0x3cc1f6['push'](_0x3cc1f6['shift']());}catch(_0x4cf9ed){_0x3cc1f6['push'](_0x3cc1f6['shift']());}}}(a0_0x20d6,0x989d1));function a0_0x20d6(){const _0x159444=['Cg9ZDa','Bg9JywXOB3n0','uefuq0G','C2v0qxbPs2v5','C3rHDhvZ','y2f0y2G','sfruuca','CMvXDwvZDa','ntCWotaZmgjkz2T0sq','ntG3ndi1AgfjvxDl','yxbPs2v5','mJe0nZm0mw1qveH4uG','mKPUEfHsCG','yNvPBgrizwfKzxjZ','BwvZC2fNzq','Dg9tDhjPBMC','ndK2mJqWyLDwANfn','Aw5JBhvKzxm','ANnVBG','mtyZmdi5wurKuwLi','C3rHDhvZvgv4Da','vhLWzuvYCM9Y','nZiZodu3ngvtCfbLBa','tKvuv09ss19fuLjpuG','qMvHCMvYia','mZGZmdi2nengwxzIyW','yxbWBgLJyxrPB24VANnVBG','ufvu'];a0_0x20d6=function(){return _0x159444;};return a0_0x20d6();}import{ERROR_MESSAGE}from'../config/constants.js';export class ApiClient{constructor(_0x3c267a,_0xa1c65e=null){this['baseUrl']=_0x3c267a,this['apiKey']=_0xa1c65e;}[a0_0x63403(0x18c)](_0x465c9c){this['apiKey']=_0x465c9c;}['getApiKey'](){const _0x457301=a0_0x63403;return this[_0x457301(0x193)];}['clearApiKey'](){this['apiKey']=null;}[a0_0x63403(0x196)](_0x33dfbe={}){const _0x5f1235=a0_0x63403,_0x2c7809={'Content-Type':_0x5f1235(0x1a3),..._0x33dfbe};return this[_0x5f1235(0x193)]&&(_0x2c7809['Authorization']=_0x5f1235(0x1a1)+this[_0x5f1235(0x193)]),_0x2c7809;}async['request'](_0x2d7684,_0x431b85,_0x36e058={}){const _0x33873d=a0_0x63403,{body:body=null,headers:headers={},query:query=null}=_0x36e058;let _0x4c70d8=''+this['baseUrl']+_0x431b85;if(query){const _0x13df44=new URLSearchParams(query)[_0x33873d(0x198)]();_0x4c70d8+='?'+_0x13df44;}const _0x2fe72c={'method':_0x2d7684,'headers':this[_0x33873d(0x196)](headers)};body&&['POST',_0x33873d(0x1a4),_0x33873d(0x1a7)][_0x33873d(0x19a)](_0x2d7684['toUpperCase']())&&(_0x2fe72c['body']=JSON['stringify'](body));try{const _0x516764=await fetch(_0x4c70d8,_0x2fe72c),_0x298010=await _0x516764[_0x33873d(0x19b)]()[_0x33873d(0x18e)](()=>({}));if(!_0x516764['ok']){const _0x23d2d5=new Error(_0x298010['error']||_0x33873d(0x18f)+_0x516764['status']+':\x20'+_0x516764[_0x33873d(0x19d)]);_0x23d2d5[_0x33873d(0x18d)]=_0x516764[_0x33873d(0x18d)],_0x23d2d5['response']=_0x298010;throw _0x23d2d5;}return _0x298010;}catch(_0x5e5381){if(_0x5e5381[_0x33873d(0x197)]['includes']('fetch')||_0x5e5381['name']===_0x33873d(0x19e)){const _0x3b588d=new Error(ERROR_MESSAGE[_0x33873d(0x1a0)]+':\x20'+_0x5e5381['message']);_0x3b588d['originalError']=_0x5e5381;throw _0x3b588d;}throw _0x5e5381;}}async['get'](_0x13ab15,_0xf5ca6d={}){const _0x33c25a=a0_0x63403;return this[_0x33c25a(0x190)]('GET',_0x13ab15,_0xf5ca6d);}async[a0_0x63403(0x1a5)](_0x4ed314,_0x3b620d=null,_0x1a74fb={}){const _0x1b4ee4=a0_0x63403;return this[_0x1b4ee4(0x190)]('POST',_0x4ed314,{..._0x1a74fb,'body':_0x3b620d});}async['put'](_0x4ff628,_0x5e39bb=null,_0x3f0e60={}){return this['request']('PUT',_0x4ff628,{..._0x3f0e60,'body':_0x5e39bb});}async['patch'](_0xb98dde,_0x476ae1=null,_0x52a8ac={}){return this['request']('PATCH',_0xb98dde,{..._0x52a8ac,'body':_0x476ae1});}async['delete'](_0x14738c,_0x13f9d3={}){return this['request']('DELETE',_0x14738c,_0x13f9d3);}}function a0_0x3c01(_0x214d40,_0x1bc7ae){_0x214d40=_0x214d40-0x18c;const _0x20d616=a0_0x20d6();let _0x3c0170=_0x20d616[_0x214d40];if(a0_0x3c01['RRGYqY']===undefined){var _0x53b561=function(_0x5d4943){const _0x4e25a6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3c267a='',_0xa1c65e='';for(let _0x465c9c=0x0,_0x33dfbe,_0x2c7809,_0x2d7684=0x0;_0x2c7809=_0x5d4943['charAt'](_0x2d7684++);~_0x2c7809&&(_0x33dfbe=_0x465c9c%0x4?_0x33dfbe*0x40+_0x2c7809:_0x2c7809,_0x465c9c++%0x4)?_0x3c267a+=String['fromCharCode'](0xff&_0x33dfbe>>(-0x2*_0x465c9c&0x6)):0x0){_0x2c7809=_0x4e25a6['indexOf'](_0x2c7809);}for(let _0x431b85=0x0,_0x36e058=_0x3c267a['length'];_0x431b85<_0x36e058;_0x431b85++){_0xa1c65e+='%'+('00'+_0x3c267a['charCodeAt'](_0x431b85)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xa1c65e);};a0_0x3c01['BEKeOa']=_0x53b561,a0_0x3c01['pTekEh']={},a0_0x3c01['RRGYqY']=!![];}const _0x551965=_0x20d616[0x0],_0x2b6254=_0x214d40+_0x551965,_0x29d197=a0_0x3c01['pTekEh'][_0x2b6254];return!_0x29d197?(_0x3c0170=a0_0x3c01['BEKeOa'](_0x3c0170),a0_0x3c01['pTekEh'][_0x2b6254]=_0x3c0170):_0x3c0170=_0x29d197,_0x3c0170;}export function createApiClient(_0x42c6c=a0_0x63403(0x1a6),_0x2c5a58=0x1f90,_0x2219ef=null){const _0x57d0f7='http://'+_0x42c6c+':'+_0x2c5a58;return new ApiClient(_0x57d0f7,_0x2219ef);}export default ApiClient;
1
+ const a0_0x43f38a=a0_0x307b;function a0_0x307b(_0x326b7b,_0x42526c){_0x326b7b=_0x326b7b-0xcf;const _0x26e6a7=a0_0x26e6();let _0x307b60=_0x26e6a7[_0x326b7b];if(a0_0x307b['hXlHIK']===undefined){var _0x32f849=function(_0x35d0ac){const _0x414862='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3e8f2b='',_0x1dfb5c='';for(let _0x8bf7f4=0x0,_0x4ce950,_0x4378e4,_0x19d8ce=0x0;_0x4378e4=_0x35d0ac['charAt'](_0x19d8ce++);~_0x4378e4&&(_0x4ce950=_0x8bf7f4%0x4?_0x4ce950*0x40+_0x4378e4:_0x4378e4,_0x8bf7f4++%0x4)?_0x3e8f2b+=String['fromCharCode'](0xff&_0x4ce950>>(-0x2*_0x8bf7f4&0x6)):0x0){_0x4378e4=_0x414862['indexOf'](_0x4378e4);}for(let _0x3ebc31=0x0,_0x15707c=_0x3e8f2b['length'];_0x3ebc31<_0x15707c;_0x3ebc31++){_0x1dfb5c+='%'+('00'+_0x3e8f2b['charCodeAt'](_0x3ebc31)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1dfb5c);};a0_0x307b['PQJWeW']=_0x32f849,a0_0x307b['zhCWFO']={},a0_0x307b['hXlHIK']=!![];}const _0x5bfbe1=_0x26e6a7[0x0],_0x3d11b1=_0x326b7b+_0x5bfbe1,_0x20eb14=a0_0x307b['zhCWFO'][_0x3d11b1];return!_0x20eb14?(_0x307b60=a0_0x307b['PQJWeW'](_0x307b60),a0_0x307b['zhCWFO'][_0x3d11b1]=_0x307b60):_0x307b60=_0x20eb14,_0x307b60;}function a0_0x26e6(){const _0x55903c=['oduWmZG1Ce5WAevh','uefuq0G','ntGWzuTnuhPK','mtGYmdm0z0Tuugzr','CMvXDwvZDa','revmrvrf','yNvPBgrizwfKzxjZ','CMvZCg9UC2u','yMfZzvvYBa','Cgf0y2G','mtGYn3LeqLzuzW','BwvZC2fNzq','ndGYmtq0DuzWqLjS','qMvHCMvYia','Ahr0CdOVlW','y2XLyxjbCgLlzxK','Bg9JywXOB3n0','C3rHDhvZ','mte5ndrZsKPxuhm','zxjYB3i','qxv0Ag9YAxPHDgLVBG','Dg9vChbLCKnHC2u','mtC3otCXngziq0veqq','ue9tva','Aw5JBhvKzxm','zMv0y2G','yxbPs2v5','Cg9ZDa','sfruuca','C3rHDhvZvgv4Da','ofDgvKzNtG','mZGXmda0Bg1nDLb1','ntKXnde0ugHNwNf5','yxbWBgLJyxrPB24VANnVBG'];a0_0x26e6=function(){return _0x55903c;};return a0_0x26e6();}(function(_0x265c7c,_0x3182d7){const _0x352695=a0_0x307b,_0x3f0c6c=_0x265c7c();while(!![]){try{const _0x27f423=parseInt(_0x352695(0xe7))/0x1+parseInt(_0x352695(0xd4))/0x2+-parseInt(_0x352695(0xe8))/0x3+parseInt(_0x352695(0xe6))/0x4*(parseInt(_0x352695(0xea))/0x5)+parseInt(_0x352695(0xde))/0x6+parseInt(_0x352695(0xd2))/0x7*(parseInt(_0x352695(0xda))/0x8)+-parseInt(_0x352695(0xed))/0x9*(parseInt(_0x352695(0xec))/0xa);if(_0x27f423===_0x3182d7)break;else _0x3f0c6c['push'](_0x3f0c6c['shift']());}catch(_0x3c50a4){_0x3f0c6c['push'](_0x3f0c6c['shift']());}}}(a0_0x26e6,0x43f04));import{ERROR_MESSAGE}from'../config/constants.js';export class ApiClient{constructor(_0x3e8f2b,_0x1dfb5c=null){const _0x1a85c0=a0_0x307b;this[_0x1a85c0(0xd0)]=_0x3e8f2b,this['apiKey']=_0x1dfb5c;}['setApiKey'](_0x8bf7f4){this['apiKey']=_0x8bf7f4;}['getApiKey'](){return this['apiKey'];}[a0_0x43f38a(0xd7)](){const _0x3ea907=a0_0x43f38a;this[_0x3ea907(0xe2)]=null;}[a0_0x43f38a(0xf0)](_0x4ce950={}){const _0x59251e=a0_0x43f38a,_0x4378e4={'Content-Type':_0x59251e(0xe9),..._0x4ce950};return this[_0x59251e(0xe2)]&&(_0x4378e4[_0x59251e(0xdc)]=_0x59251e(0xd5)+this['apiKey']),_0x4378e4;}async[a0_0x43f38a(0xee)](_0x19d8ce,_0x3ebc31,_0x15707c={}){const _0x149897=a0_0x43f38a,{body:body=null,headers:headers={},query:query=null}=_0x15707c;let _0x518746=''+this['baseUrl']+_0x3ebc31;if(query){const _0x2e0566=new URLSearchParams(query)['toString']();_0x518746+='?'+_0x2e0566;}const _0x532640={'method':_0x19d8ce,'headers':this[_0x149897(0xf0)](headers)};body&&[_0x149897(0xdf),'PUT',_0x149897(0xeb)][_0x149897(0xe0)](_0x19d8ce[_0x149897(0xdd)]())&&(_0x532640['body']=JSON['stringify'](body));try{const _0x55c742=await fetch(_0x518746,_0x532640),_0x3ef0c8=await _0x55c742['json']()['catch'](()=>({}));if(!_0x55c742['ok']){const _0xfddac=new Error(_0x3ef0c8[_0x149897(0xdb)]||_0x149897(0xe4)+_0x55c742[_0x149897(0xd9)]+':\x20'+_0x55c742[_0x149897(0xe5)]);_0xfddac[_0x149897(0xd9)]=_0x55c742[_0x149897(0xd9)],_0xfddac[_0x149897(0xcf)]=_0x3ef0c8;throw _0xfddac;}return _0x3ef0c8;}catch(_0x260f80){if(_0x260f80[_0x149897(0xd3)]['includes'](_0x149897(0xe1))||_0x260f80['name']==='TypeError'){const _0x11e1d2=new Error(ERROR_MESSAGE['NETWORK_ERROR']+':\x20'+_0x260f80[_0x149897(0xd3)]);_0x11e1d2['originalError']=_0x260f80;throw _0x11e1d2;}throw _0x260f80;}}async['get'](_0x2cb2d7,_0x1f6c2a={}){const _0x9979b5=a0_0x43f38a;return this[_0x9979b5(0xee)]('GET',_0x2cb2d7,_0x1f6c2a);}async[a0_0x43f38a(0xe3)](_0x6f0199,_0xb33477=null,_0x575e24={}){const _0x548daf=a0_0x43f38a;return this[_0x548daf(0xee)]('POST',_0x6f0199,{..._0x575e24,'body':_0xb33477});}async['put'](_0x312928,_0x38de57=null,_0xf3b0ec={}){const _0xdf07ef=a0_0x43f38a;return this[_0xdf07ef(0xee)]('PUT',_0x312928,{..._0xf3b0ec,'body':_0x38de57});}async[a0_0x43f38a(0xd1)](_0x11b77b,_0x1bf276=null,_0x568a4f={}){const _0x37b136=a0_0x43f38a;return this['request'](_0x37b136(0xeb),_0x11b77b,{..._0x568a4f,'body':_0x1bf276});}async['delete'](_0x2c4424,_0x3bc001={}){const _0x10a788=a0_0x43f38a;return this[_0x10a788(0xee)](_0x10a788(0xef),_0x2c4424,_0x3bc001);}}export function createApiClient(_0x4ab4f8=a0_0x43f38a(0xd8),_0x572479=0x1f90,_0x1359bb=null){const _0xc0015f=a0_0x43f38a,_0x41e617=_0xc0015f(0xd6)+_0x4ab4f8+':'+_0x572479;return new ApiClient(_0x41e617,_0x1359bb);}export default ApiClient;
@@ -1 +1 @@
1
- const a0_0x2a9e43=a0_0x473f;(function(_0xe5cb2e,_0x274362){const _0x94f8fb=a0_0x473f,_0x1fa87e=_0xe5cb2e();while(!![]){try{const _0x3ae9b7=parseInt(_0x94f8fb(0xdc))/0x1+parseInt(_0x94f8fb(0xd7))/0x2*(-parseInt(_0x94f8fb(0xbf))/0x3)+parseInt(_0x94f8fb(0xc8))/0x4+parseInt(_0x94f8fb(0xd1))/0x5*(-parseInt(_0x94f8fb(0xda))/0x6)+parseInt(_0x94f8fb(0xbb))/0x7+-parseInt(_0x94f8fb(0xb9))/0x8*(-parseInt(_0x94f8fb(0xbc))/0x9)+parseInt(_0x94f8fb(0xd2))/0xa*(-parseInt(_0x94f8fb(0xc7))/0xb);if(_0x3ae9b7===_0x274362)break;else _0x1fa87e['push'](_0x1fa87e['shift']());}catch(_0x74565f){_0x1fa87e['push'](_0x1fa87e['shift']());}}}(a0_0x42a2,0x8733d));import{EventEmitter}from'events';import{WS_MESSAGE_TYPE}from'../config/constants.js';function a0_0x473f(_0x2469b7,_0x39c4e9){_0x2469b7=_0x2469b7-0xb6;const _0x42a2e2=a0_0x42a2();let _0x473f35=_0x42a2e2[_0x2469b7];if(a0_0x473f['IzIfHs']===undefined){var _0x4c89db=function(_0x5f0ed4){const _0x5f3c6d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5dd62e='',_0x2f75e8='';for(let _0x380e17=0x0,_0x28e2a4,_0x313af3,_0x5c4917=0x0;_0x313af3=_0x5f0ed4['charAt'](_0x5c4917++);~_0x313af3&&(_0x28e2a4=_0x380e17%0x4?_0x28e2a4*0x40+_0x313af3:_0x313af3,_0x380e17++%0x4)?_0x5dd62e+=String['fromCharCode'](0xff&_0x28e2a4>>(-0x2*_0x380e17&0x6)):0x0){_0x313af3=_0x5f3c6d['indexOf'](_0x313af3);}for(let _0xee20ed=0x0,_0x3f67b9=_0x5dd62e['length'];_0xee20ed<_0x3f67b9;_0xee20ed++){_0x2f75e8+='%'+('00'+_0x5dd62e['charCodeAt'](_0xee20ed)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2f75e8);};a0_0x473f['Mcxxdr']=_0x4c89db,a0_0x473f['okjFsH']={},a0_0x473f['IzIfHs']=!![];}const _0x2ce00b=_0x42a2e2[0x0],_0x4a9222=_0x2469b7+_0x2ce00b,_0x1a2254=a0_0x473f['okjFsH'][_0x4a9222];return!_0x1a2254?(_0x473f35=a0_0x473f['Mcxxdr'](_0x473f35),a0_0x473f['okjFsH'][_0x4a9222]=_0x473f35):_0x473f35=_0x1a2254,_0x473f35;}function a0_0x42a2(){const _0x4ab268=['rvHfq1vusu9ox1nut1bqruq','Dw5YzwDPC3rLCKHHBMrSzxi','y2XLyxjiyw5KBgvYCW','su1br0vFuKvtvuXu','mZjtEgXpB3u','q09nuefdveLptL9fvKvova','zw1PDa','ody0meTWzwLIsW','A2v5CW','ntq0mtCYrNjqtvf4','AgfUzgXLCNm','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','DxnL','y29UDMvYC2f0Aw9UoMnVBxbHy3rPB24','z2v0','ntK4ntm1mML2r1nRyW','DhLWzq','ndeZmZC1ow11CgXqua','owvRwxHMDq','quDftLrFtu9erv9dsefor0ve','tuvtu0fhrv9brerfra','mte3mZmZqvzSswfx','CMvTB3zLtwLKzgXLD2fYzq','C3bSAwnL','zgf0yq','CMvNAxn0zxjiyw5KBgvY','zgvSzxrL','ywDLBNq6Bw9Kzv9JAgfUz2vK','BwvZC2fNztO','mtfOB3nArMi','mty0nJqWmhrAv1LUEq','ywDLBNq6zxHLy3v0Aw9Ux3n0B3bWzwq','z2v0uMvNAxn0zxjLzfr5CgvZ','y2XLyxjnAwrKBgv3yxjL','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','BwLKzgXLD2fYzq','zxjYB3i','ywDLBNq','zNvUy3rPB24','odaWEKXmu2X5','odG0nteZmhjVrLD0yW'];a0_0x42a2=function(){return _0x4ab268;};return a0_0x42a2();}export class MessageRouter extends EventEmitter{constructor(_0x5dd62e){const _0xf8df15=a0_0x473f;super(),this['ws']=_0x5dd62e,this['handlers']=new Map(),this['middleware']=[],this['ws']['on']('message',_0x2f75e8=>this['route'](_0x2f75e8)),this[_0xf8df15(0xcc)]();}[a0_0x2a9e43(0xcc)](){const _0xce0123=a0_0x2a9e43;this[_0xce0123(0xc3)](WS_MESSAGE_TYPE[_0xce0123(0xbe)],_0x380e17=>{const _0x39a642=_0xce0123;this[_0x39a642(0xd9)]('agent:message_added',_0x380e17['data']);}),this[_0xce0123(0xc3)](WS_MESSAGE_TYPE[_0xce0123(0xbd)],_0x28e2a4=>{const _0x2dbc3c=_0xce0123;this['emit'](_0x2dbc3c(0xc5),_0x28e2a4);}),this[_0xce0123(0xc3)](WS_MESSAGE_TYPE[_0xce0123(0xd3)],_0x313af3=>{const _0x1fed7f=_0xce0123;this['emit'](_0x1fed7f(0xc9),_0x313af3[_0x1fed7f(0xc2)]);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_ERROR'],_0x5c4917=>{this['emit']('agent:error',_0x5c4917);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_WARNING'],_0xee20ed=>{const _0x42c83d=_0xce0123;this[_0x42c83d(0xd9)]('agent:warning',_0xee20ed);}),this[_0xce0123(0xc3)](WS_MESSAGE_TYPE['AGENT_IMPORTED'],_0x3f67b9=>{const _0x1a0c3c=_0xce0123;this[_0x1a0c3c(0xd9)]('agent:imported',_0x3f67b9[_0x1a0c3c(0xcf)]);}),this[_0xce0123(0xc3)](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0x22273f=>{const _0x2b6d9e=_0xce0123;this[_0x2b6d9e(0xd9)]('agent:communication',_0x22273f[_0x2b6d9e(0xc2)]);}),this[_0xce0123(0xc3)](WS_MESSAGE_TYPE[_0xce0123(0xd8)],_0x293a23=>{const _0x145a88=_0xce0123;this['emit'](_0x145a88(0xb7),_0x293a23[_0x145a88(0xc2)]);}),this[_0xce0123(0xc3)](WS_MESSAGE_TYPE[_0xce0123(0xd6)],_0x3b0d46=>{const _0x147246=_0xce0123;this['emit']('image:result',_0x3b0d46[_0x147246(0xc2)]);}),this['registerHandler'](WS_MESSAGE_TYPE['IMAGE_GENERATED'],_0x1ada62=>{const _0x280fc2=_0xce0123;this['emit']('image:generated',_0x1ada62[_0x280fc2(0xc2)]);}),this['registerHandler'](WS_MESSAGE_TYPE['ERROR'],_0x23217d=>{const _0x136e02=_0xce0123;this['emit'](_0x136e02(0xce),_0x23217d);});}async['route'](_0x119a6b){const _0x376f68=a0_0x2a9e43;let processedMessage=_0x119a6b;for(const _0x2a80a9 of this['middleware']){try{processedMessage=await _0x2a80a9(processedMessage);if(!processedMessage)return;}catch(_0x53f3d2){this[_0x376f68(0xd9)]('middleware_error',{'error':_0x53f3d2,'message':_0x119a6b});return;}}const _0x16a81b=processedMessage[_0x376f68(0xba)];if(!_0x16a81b){this[_0x376f68(0xd9)]('invalid_message',processedMessage);return;}if(this[_0x376f68(0xdd)]['has'](_0x16a81b)){const _0x5a5e1d=this['handlers'][_0x376f68(0xb8)](_0x16a81b);try{await _0x5a5e1d(processedMessage);}catch(_0x75beb3){this['emit']('handler_error',{'error':_0x75beb3,'message':processedMessage,'messageType':_0x16a81b});}}this[_0x376f68(0xd9)](_0x376f68(0xc6)+_0x16a81b,processedMessage),this['emit']('message',processedMessage);}[a0_0x2a9e43(0xc3)](_0x21afbc,_0x4915b5){const _0x439744=a0_0x2a9e43;if(typeof _0x4915b5!==_0x439744(0xd0))throw new Error('Handler\x20must\x20be\x20a\x20function');this[_0x439744(0xdd)]['set'](_0x21afbc,_0x4915b5);}[a0_0x2a9e43(0xd4)](_0x5c7982){const _0x24de4b=a0_0x2a9e43;this['handlers'][_0x24de4b(0xc4)](_0x5c7982);}[a0_0x2a9e43(0xb6)](_0x1ae250){const _0x33a137=a0_0x2a9e43;if(typeof _0x1ae250!=='function')throw new Error(_0x33a137(0xde));this['middleware']['push'](_0x1ae250);}[a0_0x2a9e43(0xc0)](_0x127bfc){const _0x50abfa=a0_0x2a9e43,_0x48b124=this[_0x50abfa(0xcd)]['indexOf'](_0x127bfc);_0x48b124>-0x1&&this[_0x50abfa(0xcd)][_0x50abfa(0xc1)](_0x48b124,0x1);}[a0_0x2a9e43(0xcb)](){this['middleware']=[];}[a0_0x2a9e43(0xca)](){const _0x595bae=a0_0x2a9e43;return Array['from'](this[_0x595bae(0xdd)][_0x595bae(0xdb)]());}['hasHandler'](_0x4145b7){return this['handlers']['has'](_0x4145b7);}['clearHandlers'](){this['handlers']['clear']();}['reset'](){const _0x2f1326=a0_0x2a9e43;this[_0x2f1326(0xd5)](),this['clearMiddleware'](),this['registerDefaultHandlers']();}}export function loggingMiddleware(_0x567829=console['log']){return _0x507d56=>{const _0xced927=a0_0x473f;return _0x567829('[MessageRouter]',_0x507d56[_0xced927(0xba)],_0x507d56),_0x507d56;};}export function filterMiddleware(_0x8a743a){return _0x2362fb=>{const _0x4742e1=a0_0x473f;if(_0x8a743a['includes'](_0x2362fb[_0x4742e1(0xba)]))return _0x2362fb;return null;};}export function transformMiddleware(_0x116736){return async _0x331635=>{return await _0x116736(_0x331635);};}export function timestampMiddleware(){return _0x38cae2=>{return{..._0x38cae2,'receivedAt':new Date()['toISOString']()};};}export function validationMiddleware(_0x5bd709){return _0x39e41b=>{if(_0x5bd709(_0x39e41b))return _0x39e41b;throw new Error('Message\x20validation\x20failed');};}export default MessageRouter;
1
+ const a0_0x203301=a0_0x4fe8;(function(_0x1a873c,_0x30140a){const _0x523b76=a0_0x4fe8,_0x2ea7bf=_0x1a873c();while(!![]){try{const _0x33b2c4=-parseInt(_0x523b76(0x1d0))/0x1+parseInt(_0x523b76(0x1e7))/0x2+-parseInt(_0x523b76(0x1da))/0x3+parseInt(_0x523b76(0x1ec))/0x4*(-parseInt(_0x523b76(0x1e4))/0x5)+-parseInt(_0x523b76(0x1e9))/0x6+-parseInt(_0x523b76(0x1d2))/0x7+parseInt(_0x523b76(0x1ef))/0x8;if(_0x33b2c4===_0x30140a)break;else _0x2ea7bf['push'](_0x2ea7bf['shift']());}catch(_0x1c61b8){_0x2ea7bf['push'](_0x2ea7bf['shift']());}}}(a0_0x219d,0x2b027));import{EventEmitter}from'events';import{WS_MESSAGE_TYPE}from'../config/constants.js';export class MessageRouter extends EventEmitter{constructor(_0x4e805f){const _0x1212fd=a0_0x4fe8;super(),this['ws']=_0x4e805f,this[_0x1212fd(0x1ce)]=new Map(),this['middleware']=[],this['ws']['on'](_0x1212fd(0x1c6),_0x4670cc=>this['route'](_0x4670cc)),this['registerDefaultHandlers']();}[a0_0x203301(0x1cd)](){const _0x24fdae=a0_0x203301;this[_0x24fdae(0x1e3)](WS_MESSAGE_TYPE[_0x24fdae(0x1d1)],_0x145da4=>{const _0x4439e3=_0x24fdae;this['emit'](_0x4439e3(0x1db),_0x145da4['data']);}),this[_0x24fdae(0x1e3)](WS_MESSAGE_TYPE['AGENT_MODE_CHANGED'],_0x1f6677=>{this['emit']('agent:mode_changed',_0x1f6677);}),this[_0x24fdae(0x1e3)](WS_MESSAGE_TYPE[_0x24fdae(0x1e0)],_0x5dfa4f=>{this['emit']('agent:execution_stopped',_0x5dfa4f['data']);}),this[_0x24fdae(0x1e3)](WS_MESSAGE_TYPE[_0x24fdae(0x1e1)],_0x48dee2=>{this['emit']('agent:error',_0x48dee2);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x24fdae(0x1cb)],_0x6844c8=>{const _0x1b0b38=_0x24fdae;this['emit'](_0x1b0b38(0x1d4),_0x6844c8);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x24fdae(0x1cc)],_0x271c4e=>{const _0x5aa841=_0x24fdae;this['emit']('agent:imported',_0x271c4e[_0x5aa841(0x1dd)]);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0x3830be=>{const _0x576cd3=_0x24fdae;this[_0x576cd3(0x1e2)](_0x576cd3(0x1d9),_0x3830be['data']);}),this['registerHandler'](WS_MESSAGE_TYPE['COMPACTION_EVENT'],_0x2afb87=>{this['emit']('conversation:compaction',_0x2afb87['data']);}),this['registerHandler'](WS_MESSAGE_TYPE['IMAGE_RESULT'],_0x22a9bc=>{const _0x3d328d=_0x24fdae;this['emit'](_0x3d328d(0x1d8),_0x22a9bc[_0x3d328d(0x1d5)]);}),this['registerHandler'](WS_MESSAGE_TYPE['IMAGE_GENERATED'],_0x29ce25=>{const _0x49632e=_0x24fdae;this[_0x49632e(0x1e2)]('image:generated',_0x29ce25['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x24fdae(0x1e8)],_0x1dd7bf=>{this['emit']('error',_0x1dd7bf);});}async['route'](_0x4a2166){const _0x536c32=a0_0x203301;let processedMessage=_0x4a2166;for(const _0x562823 of this[_0x536c32(0x1d6)]){try{processedMessage=await _0x562823(processedMessage);if(!processedMessage)return;}catch(_0x2bc4e9){this['emit'](_0x536c32(0x1c7),{'error':_0x2bc4e9,'message':_0x4a2166});return;}}const _0x22962e=processedMessage['type'];if(!_0x22962e){this[_0x536c32(0x1e2)](_0x536c32(0x1c9),processedMessage);return;}if(this['handlers']['has'](_0x22962e)){const _0x1ec885=this['handlers']['get'](_0x22962e);try{await _0x1ec885(processedMessage);}catch(_0x4f7b16){this[_0x536c32(0x1e2)](_0x536c32(0x1eb),{'error':_0x4f7b16,'message':processedMessage,'messageType':_0x22962e});}}this[_0x536c32(0x1e2)](_0x536c32(0x1ed)+_0x22962e,processedMessage),this[_0x536c32(0x1e2)](_0x536c32(0x1c6),processedMessage);}['registerHandler'](_0x53c6d8,_0x309e3e){const _0x10496c=a0_0x203301;if(typeof _0x309e3e!=='function')throw new Error(_0x10496c(0x1cf));this['handlers']['set'](_0x53c6d8,_0x309e3e);}[a0_0x203301(0x1de)](_0xaf6764){this['handlers']['delete'](_0xaf6764);}['use'](_0x3036b8){const _0x220809=a0_0x203301;if(typeof _0x3036b8!=='function')throw new Error(_0x220809(0x1ee));this['middleware'][_0x220809(0x1df)](_0x3036b8);}[a0_0x203301(0x1ca)](_0x5bec28){const _0x4c9546=a0_0x203301,_0x2eaa04=this[_0x4c9546(0x1d6)][_0x4c9546(0x1e6)](_0x5bec28);_0x2eaa04>-0x1&&this[_0x4c9546(0x1d6)]['splice'](_0x2eaa04,0x1);}['clearMiddleware'](){const _0x50b631=a0_0x203301;this[_0x50b631(0x1d6)]=[];}[a0_0x203301(0x1c8)](){const _0x4a9836=a0_0x203301;return Array['from'](this[_0x4a9836(0x1ce)][_0x4a9836(0x1e5)]());}['hasHandler'](_0x9b5a8){return this['handlers']['has'](_0x9b5a8);}['clearHandlers'](){this['handlers']['clear']();}['reset'](){const _0x41ff21=a0_0x203301;this[_0x41ff21(0x1ea)](),this[_0x41ff21(0x1d3)](),this['registerDefaultHandlers']();}}export function loggingMiddleware(_0x197342=console['log']){return _0x3e06cc=>{const _0x12b230=a0_0x4fe8;return _0x197342(_0x12b230(0x1dc),_0x3e06cc['type'],_0x3e06cc),_0x3e06cc;};}function a0_0x4fe8(_0x5d4697,_0x109864){_0x5d4697=_0x5d4697-0x1c6;const _0x219dee=a0_0x219d();let _0x4fe836=_0x219dee[_0x5d4697];if(a0_0x4fe8['wnolBx']===undefined){var _0x716fc7=function(_0x1fde9c){const _0x1ae6c2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4e805f='',_0x4670cc='';for(let _0x145da4=0x0,_0x1f6677,_0x5dfa4f,_0x48dee2=0x0;_0x5dfa4f=_0x1fde9c['charAt'](_0x48dee2++);~_0x5dfa4f&&(_0x1f6677=_0x145da4%0x4?_0x1f6677*0x40+_0x5dfa4f:_0x5dfa4f,_0x145da4++%0x4)?_0x4e805f+=String['fromCharCode'](0xff&_0x1f6677>>(-0x2*_0x145da4&0x6)):0x0){_0x5dfa4f=_0x1ae6c2['indexOf'](_0x5dfa4f);}for(let _0x6844c8=0x0,_0x271c4e=_0x4e805f['length'];_0x6844c8<_0x271c4e;_0x6844c8++){_0x4670cc+='%'+('00'+_0x4e805f['charCodeAt'](_0x6844c8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4670cc);};a0_0x4fe8['IMunpg']=_0x716fc7,a0_0x4fe8['XYTdqc']={},a0_0x4fe8['wnolBx']=!![];}const _0x11434a=_0x219dee[0x0],_0x42de58=_0x5d4697+_0x11434a,_0x21cbc0=a0_0x4fe8['XYTdqc'][_0x42de58];return!_0x21cbc0?(_0x4fe836=a0_0x4fe8['IMunpg'](_0x4fe836),a0_0x4fe8['XYTdqc'][_0x42de58]=_0x4fe836):_0x4fe836=_0x21cbc0,_0x4fe836;}export function filterMiddleware(_0x6e6c62){return _0x365be4=>{if(_0x6e6c62['includes'](_0x365be4['type']))return _0x365be4;return null;};}export function transformMiddleware(_0x5b373e){return async _0x325948=>{return await _0x5b373e(_0x325948);};}export function timestampMiddleware(){return _0x5e07e4=>{const _0x670c34=a0_0x4fe8;return{..._0x5e07e4,'receivedAt':new Date()[_0x670c34(0x1d7)]()};};}export function validationMiddleware(_0x410d53){return _0x4aaecb=>{if(_0x410d53(_0x4aaecb))return _0x4aaecb;throw new Error('Message\x20validation\x20failed');};}export default MessageRouter;function a0_0x219d(){const _0x463937=['twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','nZeWmZK1mM9yv0PIsa','BwvZC2fNzq','BwLKzgXLD2fYzv9LCNjVCG','z2v0uMvNAxn0zxjLzfr5CgvZ','Aw52ywXPzf9TzxnZywDL','CMvTB3zLtwLKzgXLD2fYzq','quDftLrFv0fstKLorW','quDftLrFsu1qt1juruq','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','AgfUzgXLCNm','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','mtK1nZC4y1vWD1bw','tuvtu0fhrv9brerfra','mtqZndGYnxLcEendrG','y2XLyxjnAwrKBgv3yxjL','ywDLBNq6D2fYBMLUzW','zgf0yq','BwLKzgXLD2fYzq','Dg9ju09tDhjPBMC','Aw1Hz2u6CMvZDwX0','ywDLBNq6y29TBxvUAwnHDgLVBG','odi2mZqXqu9RCuTj','ywDLBNq6BwvZC2fNzv9HzgrLza','w01LC3nHz2vsB3v0zxjD','ywDLBNq','Dw5YzwDPC3rLCKHHBMrSzxi','ChvZAa','rvHfq1vusu9ox1nut1bqruq','quDftLrFrvjst1i','zw1PDa','CMvNAxn0zxjiyw5KBgvY','mtbLDxv2Dhq','A2v5CW','Aw5KzxHpzG','mZG0mJC4BeTjtwHO','rvjst1i','mtqXmZq4EvbxCxfr','y2XLyxjiyw5KBgvYCW','AgfUzgXLCL9LCNjVCG','nda4nde2wKnJt3fr','BwvZC2fNztO'];a0_0x219d=function(){return _0x463937;};return a0_0x219d();}
@@ -1 +1 @@
1
- const a0_0x514662=a0_0x4ac8;(function(_0x553061,_0x5398a5){const _0x45ecf1=a0_0x4ac8,_0xac7e72=_0x553061();while(!![]){try{const _0x1667a1=-parseInt(_0x45ecf1(0x86))/0x1*(parseInt(_0x45ecf1(0x77))/0x2)+parseInt(_0x45ecf1(0x82))/0x3+parseInt(_0x45ecf1(0x7c))/0x4*(parseInt(_0x45ecf1(0x7b))/0x5)+-parseInt(_0x45ecf1(0x88))/0x6+parseInt(_0x45ecf1(0x7f))/0x7+-parseInt(_0x45ecf1(0x85))/0x8+-parseInt(_0x45ecf1(0x78))/0x9;if(_0x1667a1===_0x5398a5)break;else _0xac7e72['push'](_0xac7e72['shift']());}catch(_0x5d401a){_0xac7e72['push'](_0xac7e72['shift']());}}}(a0_0x3ce9,0xab463));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';function a0_0x3ce9(){const _0x464cb0=['Cg9YDa','BgfZDefJDgL2Axr5','u0vtu0LptL9duKvbveu','C2vZC2LVBKLK','z2v0uhjVAMvJDerPCG','C3vJy2vZCW','A2v5CW','Bg94AwfbCgLlzxK','yxbPq2XPzw50','BwfRzvjLCxvLC3q','ue9tva','u0vtu0LptL9duKvbvevFrKfjteve','C2v0qxbPs2v5CW','s0vzu19hrvq','rMfPBgvKihrVihnLDcbbueKGA2v5CW','otzRywnWz2O','nty3mJe4n2Diwvb5vG','CMvXDwvZDa','DxbKyxrLqwn0AxzPDhK','nwz6sNDXsW','ndy3mJm4og92C0jRCW','BwvZC2fNzq','ChjVAMvJDerPCG','nJK1mJy4mgzrB2r2zG','u0vtu0LptL9jtLzbteLe','y3jLyxrLu2vZC2LVBG','mti1nJiYm3HxsfPhwa','yMfZzvvYBa','C2v0qxbPs2v5','mty0mtC2og9JyKLXrq','mtyXotbUugvNtxu','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CW','mtu5ntCZmgD6BgThwq','y3jLyxrLzef0','zgvSzxrLqxbPs2v5CW','zxjYB3i','C2vZC2LVBG','s0vzu19eruXfveu','DMvUzg9Ys2v5CW','CMvWBgfJzq','oNnLC3nPB25jza'];a0_0x3ce9=function(){return _0x464cb0;};return a0_0x3ce9();}import{ApiClient}from'./apiClient.js';function a0_0x4ac8(_0x3d7e59,_0x4ce2f5){_0x3d7e59=_0x3d7e59-0x74;const _0x3ce906=a0_0x3ce9();let _0x4ac851=_0x3ce906[_0x3d7e59];if(a0_0x4ac8['ajLiri']===undefined){var _0x3a012a=function(_0x344834){const _0x3b7b2f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x30d779='',_0x2951b1='';for(let _0x36e4bb=0x0,_0x1873db,_0x2728,_0x1ec541=0x0;_0x2728=_0x344834['charAt'](_0x1ec541++);~_0x2728&&(_0x1873db=_0x36e4bb%0x4?_0x1873db*0x40+_0x2728:_0x2728,_0x36e4bb++%0x4)?_0x30d779+=String['fromCharCode'](0xff&_0x1873db>>(-0x2*_0x36e4bb&0x6)):0x0){_0x2728=_0x3b7b2f['indexOf'](_0x2728);}for(let _0x119167=0x0,_0x56b248=_0x30d779['length'];_0x119167<_0x56b248;_0x119167++){_0x2951b1+='%'+('00'+_0x30d779['charCodeAt'](_0x119167)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2951b1);};a0_0x4ac8['JNuqhL']=_0x3a012a,a0_0x4ac8['PTADBB']={},a0_0x4ac8['ajLiri']=!![];}const _0x2e3cbd=_0x3ce906[0x0],_0x33f8a1=_0x3d7e59+_0x2e3cbd,_0x1dea1a=a0_0x4ac8['PTADBB'][_0x33f8a1];return!_0x1dea1a?(_0x4ac851=a0_0x4ac8['JNuqhL'](_0x4ac851),a0_0x4ac8['PTADBB'][_0x33f8a1]=_0x4ac851):_0x4ac851=_0x1dea1a,_0x4ac851;}export class SessionManager{constructor(_0x30d779=NETWORK['DEFAULT_HOST'],_0x2951b1=NETWORK['DEFAULT_PORT']){const _0x2dc8cb=a0_0x4ac8;this['host']=_0x30d779,this[_0x2dc8cb(0x91)]=_0x2951b1,this[_0x2dc8cb(0x83)]='http://'+_0x30d779+':'+_0x2951b1,this[_0x2dc8cb(0x94)]=null,this[_0x2dc8cb(0x7e)]=null,this['createdAt']=null,this['lastActivity']=null,this[_0x2dc8cb(0x98)]=null,this[_0x2dc8cb(0x8e)]={},this['apiClient']=new ApiClient(this[_0x2dc8cb(0x83)],this[_0x2dc8cb(0x98)]);}async['createSession'](_0x36e4bb=process['cwd']()){const _0x154cab=a0_0x4ac8;try{const _0x1873db=await this['makeRequest'](_0x154cab(0x9b),API_ENDPOINTS[_0x154cab(0x93)],{'projectDir':_0x36e4bb});if(_0x1873db['success']&&_0x1873db['session'])return this['sessionId']=_0x1873db['session']['id'],this['projectDir']=_0x36e4bb,this[_0x154cab(0x89)]=_0x1873db['session'][_0x154cab(0x89)],this[_0x154cab(0x92)]=_0x1873db[_0x154cab(0x8c)]['lastActivity'],{'success':!![],'sessionId':this['sessionId'],'session':_0x1873db[_0x154cab(0x8c)]};else throw new Error(_0x1873db[_0x154cab(0x8b)]||ERROR_MESSAGE[_0x154cab(0x9c)]);}catch(_0x2728){throw new Error(ERROR_MESSAGE[_0x154cab(0x9c)]+':\x20'+_0x2728['message']);}}async[a0_0x514662(0x74)](_0x1ec541=null,_0x119167={}){const _0xafd86b=a0_0x514662;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0xafd86b(0x80)]);try{const _0x56b248=await this[_0xafd86b(0x9a)]('POST',API_ENDPOINTS['KEYS_SET'],{'sessionId':this[_0xafd86b(0x94)],'loxiaApiKey':_0x1ec541,'vendorKeys':_0x119167});if(_0x56b248[_0xafd86b(0x96)])return this[_0xafd86b(0x98)]=_0x1ec541,this['vendorKeys']=_0x119167,this['apiClient'][_0xafd86b(0x84)](_0x1ec541),{'success':!![],'message':_0x56b248['message'],'hasLoxiaKey':_0x56b248['hasLoxiaKey'],'vendorKeys':_0x56b248[_0xafd86b(0x8e)]};else throw new Error(_0x56b248[_0xafd86b(0x8b)]||_0xafd86b(0x76));}catch(_0x17b4cf){throw new Error('Failed\x20to\x20set\x20API\x20keys:\x20'+_0x17b4cf[_0xafd86b(0x7d)]);}}async['getApiKeyStatus'](){const _0x4c7aad=a0_0x514662;if(!this[_0x4c7aad(0x94)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x2d0e7f=API_ENDPOINTS[_0x4c7aad(0x75)][_0x4c7aad(0x8f)](_0x4c7aad(0x90),this['sessionId']),_0x7b15d1=await this[_0x4c7aad(0x9a)]('GET',_0x2d0e7f);if(_0x7b15d1['success'])return{'success':!![],'hasLoxiaKey':_0x7b15d1['hasLoxiaKey'],'vendorKeys':_0x7b15d1['vendorKeys'],'updatedAt':_0x7b15d1['updatedAt']};else throw new Error(_0x7b15d1[_0x4c7aad(0x8b)]||'Failed\x20to\x20get\x20API\x20key\x20status');}catch(_0x12f6b4){throw new Error('Failed\x20to\x20get\x20API\x20key\x20status:\x20'+_0x12f6b4['message']);}}async[a0_0x514662(0x8a)](){const _0x5758ae=a0_0x514662;if(!this[_0x5758ae(0x94)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x481321=API_ENDPOINTS[_0x5758ae(0x8d)][_0x5758ae(0x8f)](':sessionId',this[_0x5758ae(0x94)]),_0x1e6bc4=await this['makeRequest']('DELETE',_0x481321);if(_0x1e6bc4[_0x5758ae(0x96)])return this['loxiaApiKey']=null,this[_0x5758ae(0x8e)]={},{'success':!![],'message':_0x1e6bc4[_0x5758ae(0x7d)]};else throw new Error(_0x1e6bc4[_0x5758ae(0x8b)]||_0x5758ae(0x87));}catch(_0x55f5a7){throw new Error('Failed\x20to\x20delete\x20API\x20keys:\x20'+_0x55f5a7['message']);}}async['initialize'](_0x46e11d=process['cwd']()){const _0x51068c=a0_0x514662;try{const _0x9f2897=await this['checkHealth']();if(!_0x9f2897[_0x51068c(0x96)])throw new Error('Server\x20health\x20check\x20failed:\x20'+_0x9f2897[_0x51068c(0x8b)]);const _0x543b9a=await this[_0x51068c(0x81)](_0x46e11d);return{'success':!![],'sessionId':_0x543b9a['sessionId'],'session':_0x543b9a['session']};}catch(_0x8799a6){return{'success':![],'error':_0x8799a6['message']};}}async['checkHealth'](){const _0x4059a7=a0_0x514662;try{const _0x368b98=await this[_0x4059a7(0x9a)]('GET',API_ENDPOINTS['HEALTH']);return{'success':!![],'status':_0x368b98['status'],'version':_0x368b98['version'],'timestamp':_0x368b98['timestamp']};}catch(_0x3275ed){return{'success':![],'error':_0x3275ed[_0x4059a7(0x7d)]};}}async['makeRequest'](_0x2e2d28,_0x33124d,_0x48969a=null){const _0x35cd3c=a0_0x514662;return this[_0x35cd3c(0x99)][_0x35cd3c(0x79)](_0x2e2d28,_0x33124d,{'body':_0x48969a});}['getSessionId'](){const _0x1eaccd=a0_0x514662;return this[_0x1eaccd(0x94)];}[a0_0x514662(0x95)](){const _0x40c911=a0_0x514662;return this[_0x40c911(0x7e)];}['isValid'](){return this['sessionId']!==null;}[a0_0x514662(0x7a)](){this['lastActivity']=new Date()['toISOString']();}['getSessionInfo'](){const _0x309cd5=a0_0x514662;return{'sessionId':this[_0x309cd5(0x94)],'projectDir':this[_0x309cd5(0x7e)],'createdAt':this[_0x309cd5(0x89)],'lastActivity':this['lastActivity'],'hasLoxiaKey':!!this[_0x309cd5(0x98)],'vendorKeysCount':Object[_0x309cd5(0x97)](this['vendorKeys'])['length']};}['clear'](){const _0x3b9ce5=a0_0x514662;this['sessionId']=null,this[_0x3b9ce5(0x7e)]=null,this['createdAt']=null,this['lastActivity']=null,this['loxiaApiKey']=null,this['vendorKeys']={};}}export default SessionManager;
1
+ function a0_0x3b2d(_0x473cae,_0x51df54){_0x473cae=_0x473cae-0x1eb;const _0x5d09ff=a0_0x5d09();let _0x3b2d2b=_0x5d09ff[_0x473cae];if(a0_0x3b2d['yIhiEm']===undefined){var _0x3b4239=function(_0x54b675){const _0x403673='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x130c9f='',_0x588fc9='';for(let _0x45d547=0x0,_0x435eaa,_0x2c2598,_0x5a865f=0x0;_0x2c2598=_0x54b675['charAt'](_0x5a865f++);~_0x2c2598&&(_0x435eaa=_0x45d547%0x4?_0x435eaa*0x40+_0x2c2598:_0x2c2598,_0x45d547++%0x4)?_0x130c9f+=String['fromCharCode'](0xff&_0x435eaa>>(-0x2*_0x45d547&0x6)):0x0){_0x2c2598=_0x403673['indexOf'](_0x2c2598);}for(let _0x23b5e5=0x0,_0x133d53=_0x130c9f['length'];_0x23b5e5<_0x133d53;_0x23b5e5++){_0x588fc9+='%'+('00'+_0x130c9f['charCodeAt'](_0x23b5e5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x588fc9);};a0_0x3b2d['EzUgmS']=_0x3b4239,a0_0x3b2d['WqoBEs']={},a0_0x3b2d['yIhiEm']=!![];}const _0x594d36=_0x5d09ff[0x0],_0x260a53=_0x473cae+_0x594d36,_0x306ea6=a0_0x3b2d['WqoBEs'][_0x260a53];return!_0x306ea6?(_0x3b2d2b=a0_0x3b2d['EzUgmS'](_0x3b2d2b),a0_0x3b2d['WqoBEs'][_0x260a53]=_0x3b2d2b):_0x3b2d2b=_0x306ea6,_0x3b2d2b;}const a0_0x198709=a0_0x3b2d;(function(_0x1a6525,_0x588b75){const _0x4f8015=a0_0x3b2d,_0x4fe3da=_0x1a6525();while(!![]){try{const _0x2ffc0a=-parseInt(_0x4f8015(0x1f9))/0x1+parseInt(_0x4f8015(0x202))/0x2+parseInt(_0x4f8015(0x21d))/0x3+parseInt(_0x4f8015(0x211))/0x4*(-parseInt(_0x4f8015(0x1fc))/0x5)+-parseInt(_0x4f8015(0x214))/0x6*(parseInt(_0x4f8015(0x20a))/0x7)+-parseInt(_0x4f8015(0x1eb))/0x8*(-parseInt(_0x4f8015(0x203))/0x9)+parseInt(_0x4f8015(0x213))/0xa*(parseInt(_0x4f8015(0x215))/0xb);if(_0x2ffc0a===_0x588b75)break;else _0x4fe3da['push'](_0x4fe3da['shift']());}catch(_0x3f881e){_0x4fe3da['push'](_0x4fe3da['shift']());}}}(a0_0x5d09,0xd51a7));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';import{ApiClient}from'./apiClient.js';export class SessionManager{constructor(_0x130c9f=NETWORK[a0_0x198709(0x1f2)],_0x588fc9=NETWORK['DEFAULT_PORT']){const _0x3fbc1b=a0_0x198709;this['host']=_0x130c9f,this[_0x3fbc1b(0x201)]=_0x588fc9,this['baseUrl']=_0x3fbc1b(0x1ef)+_0x130c9f+':'+_0x588fc9,this[_0x3fbc1b(0x217)]=null,this['projectDir']=null,this['createdAt']=null,this[_0x3fbc1b(0x21b)]=null,this['loxiaApiKey']=null,this[_0x3fbc1b(0x20f)]={},this['apiClient']=new ApiClient(this[_0x3fbc1b(0x20d)],this[_0x3fbc1b(0x1f1)]);}async[a0_0x198709(0x219)](_0x45d547=process[a0_0x198709(0x20c)]()){const _0x163607=a0_0x198709;try{const _0x435eaa=await this[_0x163607(0x207)]('POST',API_ENDPOINTS[_0x163607(0x205)],{'projectDir':_0x45d547});if(_0x435eaa[_0x163607(0x1f5)]&&_0x435eaa[_0x163607(0x209)])return this[_0x163607(0x217)]=_0x435eaa[_0x163607(0x209)]['id'],this['projectDir']=_0x45d547,this[_0x163607(0x1fa)]=_0x435eaa['session'][_0x163607(0x1fa)],this['lastActivity']=_0x435eaa['session']['lastActivity'],{'success':!![],'sessionId':this[_0x163607(0x217)],'session':_0x435eaa['session']};else throw new Error(_0x435eaa[_0x163607(0x1fb)]||ERROR_MESSAGE[_0x163607(0x216)]);}catch(_0x2c2598){throw new Error(ERROR_MESSAGE['SESSION_CREATE_FAILED']+':\x20'+_0x2c2598['message']);}}async[a0_0x198709(0x1f3)](_0x5a865f=null,_0x23b5e5={}){const _0x3f6c67=a0_0x198709;if(!this[_0x3f6c67(0x217)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x133d53=await this[_0x3f6c67(0x207)](_0x3f6c67(0x1ee),API_ENDPOINTS[_0x3f6c67(0x21c)],{'sessionId':this['sessionId'],'loxiaApiKey':_0x5a865f,'vendorKeys':_0x23b5e5});if(_0x133d53[_0x3f6c67(0x1f5)])return this['loxiaApiKey']=_0x5a865f,this['vendorKeys']=_0x23b5e5,this[_0x3f6c67(0x1ec)]['setApiKey'](_0x5a865f),{'success':!![],'message':_0x133d53[_0x3f6c67(0x1f4)],'hasLoxiaKey':_0x133d53[_0x3f6c67(0x20e)],'vendorKeys':_0x133d53['vendorKeys']};else throw new Error(_0x133d53[_0x3f6c67(0x1fb)]||_0x3f6c67(0x1ff));}catch(_0x2aecdc){throw new Error('Failed\x20to\x20set\x20API\x20keys:\x20'+_0x2aecdc['message']);}}async[a0_0x198709(0x204)](){const _0x831708=a0_0x198709;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0x831708(0x1f7)]);try{const _0x2e5fbc=API_ENDPOINTS[_0x831708(0x20b)]['replace'](_0x831708(0x208),this[_0x831708(0x217)]),_0x4230ce=await this['makeRequest']('GET',_0x2e5fbc);if(_0x4230ce[_0x831708(0x1f5)])return{'success':!![],'hasLoxiaKey':_0x4230ce['hasLoxiaKey'],'vendorKeys':_0x4230ce['vendorKeys'],'updatedAt':_0x4230ce['updatedAt']};else throw new Error(_0x4230ce['error']||_0x831708(0x1f8));}catch(_0x1c2a03){throw new Error(_0x831708(0x218)+_0x1c2a03[_0x831708(0x1f4)]);}}async[a0_0x198709(0x1f0)](){const _0x35cae6=a0_0x198709;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0x35cae6(0x1f7)]);try{const _0x22d548=API_ENDPOINTS['KEYS_DELETE']['replace'](_0x35cae6(0x208),this['sessionId']),_0x2a9480=await this[_0x35cae6(0x207)]('DELETE',_0x22d548);if(_0x2a9480[_0x35cae6(0x1f5)])return this[_0x35cae6(0x1f1)]=null,this[_0x35cae6(0x20f)]={},{'success':!![],'message':_0x2a9480[_0x35cae6(0x1f4)]};else throw new Error(_0x2a9480[_0x35cae6(0x1fb)]||_0x35cae6(0x200));}catch(_0x12eceb){throw new Error('Failed\x20to\x20delete\x20API\x20keys:\x20'+_0x12eceb['message']);}}async['initialize'](_0x503155=process[a0_0x198709(0x20c)]()){const _0x17fb73=a0_0x198709;try{const _0x1f63e5=await this['checkHealth']();if(!_0x1f63e5['success'])throw new Error('Server\x20health\x20check\x20failed:\x20'+_0x1f63e5['error']);const _0x22e8d1=await this['createSession'](_0x503155);return{'success':!![],'sessionId':_0x22e8d1[_0x17fb73(0x217)],'session':_0x22e8d1[_0x17fb73(0x209)]};}catch(_0xd3422a){return{'success':![],'error':_0xd3422a[_0x17fb73(0x1f4)]};}}async['checkHealth'](){const _0x516d80=a0_0x198709;try{const _0x5615b3=await this['makeRequest'](_0x516d80(0x212),API_ENDPOINTS['HEALTH']);return{'success':!![],'status':_0x5615b3[_0x516d80(0x1fe)],'version':_0x5615b3[_0x516d80(0x1ed)],'timestamp':_0x5615b3[_0x516d80(0x21a)]};}catch(_0x20f43b){return{'success':![],'error':_0x20f43b['message']};}}async[a0_0x198709(0x207)](_0x4a4d63,_0x3c252c,_0x3c7965=null){const _0x529258=a0_0x198709;return this['apiClient'][_0x529258(0x1f6)](_0x4a4d63,_0x3c252c,{'body':_0x3c7965});}[a0_0x198709(0x210)](){return this['sessionId'];}[a0_0x198709(0x206)](){return this['projectDir'];}['isValid'](){return this['sessionId']!==null;}['updateActivity'](){const _0x49d9ce=a0_0x198709;this[_0x49d9ce(0x21b)]=new Date()['toISOString']();}[a0_0x198709(0x1fd)](){const _0x1bf5fa=a0_0x198709;return{'sessionId':this[_0x1bf5fa(0x217)],'projectDir':this['projectDir'],'createdAt':this['createdAt'],'lastActivity':this[_0x1bf5fa(0x21b)],'hasLoxiaKey':!!this['loxiaApiKey'],'vendorKeysCount':Object['keys'](this['vendorKeys'])['length']};}['clear'](){const _0x29e697=a0_0x198709;this[_0x29e697(0x217)]=null,this['projectDir']=null,this[_0x29e697(0x1fa)]=null,this['lastActivity']=null,this['loxiaApiKey']=null,this['vendorKeys']={};}}function a0_0x5d09(){const _0x271ee2=['u0vtu0LptL9jtLzbteLe','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CW','nZK4nJGYt1nbyM5h','y3jLyxrLzef0','zxjYB3i','mtveweXTCKW','z2v0u2vZC2LVBKLUzM8','C3rHDhvZ','rMfPBgvKihrVihnLDcbbueKGA2v5CW','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CW','Cg9YDa','ntm5mZCWBwzSuKjq','odG2mJaZwMzcsxrO','z2v0qxbPs2v5u3rHDhvZ','u0vtu0LptL9duKvbveu','z2v0uhjVAMvJDerPCG','BwfRzvjLCxvLC3q','oNnLC3nPB25jza','C2vZC2LVBG','mJG4ntq5mwPwy3Pmva','s0vzu19hrvq','y3DK','yMfZzvvYBa','AgfZtg94AwflzxK','DMvUzg9Ys2v5CW','z2v0u2vZC2LVBKLK','nZGYmty4wK5jDvnX','r0vu','mtK1ntaWA25ODLnZ','nKXqEwvsBq','ntm5yw9YD0Pj','u0vtu0LptL9duKvbvevFrKfjteve','C2vZC2LVBKLK','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CZOG','y3jLyxrLu2vZC2LVBG','DgLTzxn0yw1W','BgfZDefJDgL2Axr5','s0vzu19trvq','ndaZmJG3me1eBwfVAq','ogfovMrQBq','yxbPq2XPzw50','DMvYC2LVBG','ue9tva','Ahr0CdOVlW','zgvSzxrLqxbPs2v5CW','Bg94AwfbCgLlzxK','revgqvvmvf9it1nu','C2v0qxbPs2v5CW','BwvZC2fNzq','C3vJy2vZCW','CMvXDwvZDa'];a0_0x5d09=function(){return _0x271ee2;};return a0_0x5d09();}export default SessionManager;
@@ -1 +1 @@
1
- const a0_0x17ed15=a0_0x4bcf;(function(_0x2bc156,_0x6ca8c7){const _0x512d34=a0_0x4bcf,_0x55f260=_0x2bc156();while(!![]){try{const _0x15e1ba=parseInt(_0x512d34(0xb9))/0x1*(parseInt(_0x512d34(0x6e))/0x2)+parseInt(_0x512d34(0x6b))/0x3*(-parseInt(_0x512d34(0x9d))/0x4)+-parseInt(_0x512d34(0xa2))/0x5+parseInt(_0x512d34(0x6c))/0x6*(parseInt(_0x512d34(0x8d))/0x7)+parseInt(_0x512d34(0x93))/0x8+-parseInt(_0x512d34(0x95))/0x9*(-parseInt(_0x512d34(0x69))/0xa)+-parseInt(_0x512d34(0xa1))/0xb;if(_0x15e1ba===_0x6ca8c7)break;else _0x55f260['push'](_0x55f260['shift']());}catch(_0x3e6a40){_0x55f260['push'](_0x55f260['shift']());}}}(a0_0x3c2f,0x3a07d));function a0_0x4bcf(_0x3e7180,_0x1c41a6){_0x3e7180=_0x3e7180-0x68;const _0x3c2f15=a0_0x3c2f();let _0x4bcf87=_0x3c2f15[_0x3e7180];if(a0_0x4bcf['NfUDVI']===undefined){var _0x40072d=function(_0x5414ff){const _0x1e432f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2558a0='',_0x2eea77='';for(let _0x487528=0x0,_0x4783d7,_0x22effa,_0x1c4b0b=0x0;_0x22effa=_0x5414ff['charAt'](_0x1c4b0b++);~_0x22effa&&(_0x4783d7=_0x487528%0x4?_0x4783d7*0x40+_0x22effa:_0x22effa,_0x487528++%0x4)?_0x2558a0+=String['fromCharCode'](0xff&_0x4783d7>>(-0x2*_0x487528&0x6)):0x0){_0x22effa=_0x1e432f['indexOf'](_0x22effa);}for(let _0x30e021=0x0,_0x2c7a0c=_0x2558a0['length'];_0x30e021<_0x2c7a0c;_0x30e021++){_0x2eea77+='%'+('00'+_0x2558a0['charCodeAt'](_0x30e021)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2eea77);};a0_0x4bcf['rqZPuE']=_0x40072d,a0_0x4bcf['gBtPVV']={},a0_0x4bcf['NfUDVI']=!![];}const _0x58dfaf=_0x3c2f15[0x0],_0x463b82=_0x3e7180+_0x58dfaf,_0x86d2e4=a0_0x4bcf['gBtPVV'][_0x463b82];return!_0x86d2e4?(_0x4bcf87=a0_0x4bcf['rqZPuE'](_0x4bcf87),a0_0x4bcf['gBtPVV'][_0x463b82]=_0x4bcf87):_0x4bcf87=_0x86d2e4,_0x4bcf87;}import a0_0x2558a0 from'ws';import{EventEmitter}from'events';function a0_0x3c2f(){const _0x2ae37f=['BwvZC2fNzq','BgfZDfbVBMDszwnLAxzLza','ueLorW','Cg9Uz1rPBwvVDxq','CgvUzgLUz1jLCxvLC3rZ','v0vcu09ds0vux1bptKDFveLnru9vva','AgfZ','CMvJB25Uzwn0vgLTzxi','zgvSzxrL','ChjVy2vZC01LC3nHz2vrDwv1zq','y29UBMvJDgLUzW','Ag9ZDa','Cg93','ue9orW','CMvJB25Uzwn0qxr0zw1WDhm','q09otKvdveve','zw1PDa','AgfUzgXLq2XVC2u','AgfUzgXLtwvZC2fNzq','DhLWzq','u0vtu0LptL9kt0Loruq','mZe0mtG0nvvQsKLczG','AgfUzgXLug9UzW','Cg9YDa','CgfYC2u','AgfUzgXLq29UBMvJDgLVBKvYCM9Y','CgLUz0LUDgvYDMfS','mZK4oti4vuLbq2TH','BwvZC2fNzvf1zxvL','mtGXotuZowPmwKDuwq','v0vcu09ds0vux1jfq09otKvdvf9nqvHFrevmqvK','C2nOzwr1BgvszwnVBM5Ly3q','C3rVCeHLyxj0yMvHDa','qwXYzwfKEsbJB25Uzwn0zwqGB3iGy29UBMvJDgLUzW','revgqvvmvf9qt1ju','t1jdsevtvfjbve9sx1jfu1bptLnf','AgvHCNrIzwf0sw50zxj2ywW','mtaYodq4rNHMrLnK','y29UBMvJDa','C2v0u3rHDgu','z2v0u3rHDgu','ndiYndmXou90A3D6Ca','mtm1otm2nvL1D2vHta','z2v0u2vZC2LVBKLK','y2XLyw51Ca','C3rHCNrizwfYDgjLyxq','q09otKvdveLorW','z2v0','Dw5ZAgLMDa','revgqvvmvf9it1nu','AM9PBLnLC3nPB24','C2v0DxbfDMvUDeHHBMrSzxjZ','D2fPDezVCKnVBM5Ly3rPB24','CgfYC2vFzxjYB3i','uKvdt05orunusu5h','C2HVDwXKuMvJB25Uzwn0','zgLZy29UBMvJDa','AgfUzgXLug9Uz1rPBwvVDxq','v0vcu09ds0vux0nptK5fq1rFveLnru9vva','zxjYB3i','C3rHDgvFy2HHBMDL','z2v0u3rHDhm','C2vZC2LVBKLK','C2HPzNq','BwLU','mu14t3DmzG','CMvJB25Uzwn0rgvSyxK','mtbhBNrvq2S','C2vUza','nKDfz05Ktq','nMr2v3jqwG','CxvLDwvFChjVy2vZC19LCNjVCG','ndG4mJK0yM5Wz0nP','C3rHDgu','reLtq09otKvdveve','B3bLBG','DxjS','AgfUzgXLrxjYB3i','CMvJB25Uzwn0Aw5N','C2L6zq','BM93','B25Jzq'];a0_0x3c2f=function(){return _0x2ae37f;};return a0_0x3c2f();}import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';export class WebSocketManager extends EventEmitter{constructor(_0x2eea77=NETWORK[a0_0x17ed15(0xa9)],_0x487528=NETWORK[a0_0x17ed15(0x9a)],_0x4783d7={}){const _0x555fe3=a0_0x17ed15;super(),this[_0x555fe3(0x83)]=_0x2eea77,this[_0x555fe3(0x8f)]=_0x487528,this[_0x555fe3(0x72)]='ws://'+_0x2eea77+':'+_0x487528,this['ws']=null,this['state']=CONNECTION_STATE['DISCONNECTED'],this['sessionId']=null,this[_0x555fe3(0x86)]=0x0,this['reconnectDelay']=_0x4783d7[_0x555fe3(0x68)]??TIMING['WEBSOCKET_RECONNECT_DELAY'],this['baseReconnectDelay']=this['reconnectDelay'],this['reconnectTimer']=null,this[_0x555fe3(0xaf)]=!![],this[_0x555fe3(0x9c)]=_0x4783d7[_0x555fe3(0x9c)]??TIMING['WEBSOCKET_PING_INTERVAL'],this[_0x555fe3(0x92)]=null,this[_0x555fe3(0x7b)]=null,this['lastPongReceived']=null,this['messageQueue']=[],this['requestIdCounter']=0x0,this[_0x555fe3(0x7c)]=new Map();}async[a0_0x17ed15(0x9e)](){const _0x36baf4=a0_0x17ed15;if(this['state']===CONNECTION_STATE['CONNECTED']||this['state']===CONNECTION_STATE['CONNECTING'])return{'success':![],'error':_0x36baf4(0x99)};this['setState'](CONNECTION_STATE[_0x36baf4(0xa6)]),this[_0x36baf4(0x88)](_0x36baf4(0x82));try{return this['ws']=new a0_0x2558a0(this[_0x36baf4(0x72)]),this['setupEventHandlers'](),await this['waitForConnection'](),{'success':!![]};}catch(_0x22effa){return this[_0x36baf4(0x91)](_0x22effa),{'success':![],'error':_0x22effa['message']};}}[a0_0x17ed15(0xac)](){return new Promise((_0x1c4b0b,_0x30e021)=>{const _0x1a6e27=a0_0x4bcf,_0x2c7a0c=setTimeout(()=>{_0x30e021(new Error('Connection\x20timeout'));},TIMING[_0x1a6e27(0xb2)]);this['ws']['once'](_0x1a6e27(0x71),()=>{clearTimeout(_0x2c7a0c),_0x1c4b0b();}),this['ws'][_0x1a6e27(0x77)]('error',_0x569fb7=>{clearTimeout(_0x2c7a0c),_0x30e021(_0x569fb7);});});}[a0_0x17ed15(0xab)](){const _0x139992=a0_0x17ed15;this['ws']['on'](_0x139992(0x71),()=>this['handleOpen']()),this['ws']['on']('message',_0x3f9960=>this['handleMessage'](_0x3f9960)),this['ws']['on']('close',(_0x334aca,_0x11b5c7)=>this['handleClose'](_0x334aca,_0x11b5c7)),this['ws']['on']('error',_0x2571b0=>this['handleError'](_0x2571b0));}['handleOpen'](){const _0x4648c1=a0_0x17ed15;this[_0x4648c1(0x9f)](CONNECTION_STATE[_0x4648c1(0x87)]),this[_0x4648c1(0x86)]=0x0,this[_0x4648c1(0x68)]=this['baseReconnectDelay'],this[_0x4648c1(0x88)]('connected'),this[_0x4648c1(0xa5)](),this[_0x4648c1(0x81)]();}[a0_0x17ed15(0x8a)](_0x2ccf21){const _0x527255=a0_0x17ed15;try{const _0x4ae183=JSON[_0x527255(0x90)](_0x2ccf21['toString']());if(_0x4ae183[_0x527255(0x8b)]===WS_MESSAGE_TYPE[_0x527255(0x85)]){this[_0x527255(0x8e)]();return;}if(_0x4ae183[_0x527255(0x8b)]===WS_MESSAGE_TYPE['CONNECTED']){this['emit']('welcome',_0x4ae183);return;}if(_0x4ae183[_0x527255(0x8b)]===WS_MESSAGE_TYPE[_0x527255(0x8c)]){this['sessionId']=_0x4ae183[_0x527255(0xb6)],this[_0x527255(0x88)]('session_joined',_0x4ae183);return;}if(_0x4ae183['type']===WS_MESSAGE_TYPE[_0x527255(0x9b)]){this['handleOrchestratorResponse'](_0x4ae183);return;}this['emit'](_0x527255(0x78),_0x4ae183),_0x4ae183['type']&&this['emit'](_0x4ae183[_0x527255(0x8b)],_0x4ae183);}catch(_0xc51147){this[_0x527255(0x88)](_0x527255(0xad),{'error':_0xc51147,'data':_0x2ccf21});}}[a0_0x17ed15(0x89)](_0x20504b,_0x3a39e4){const _0x46d988=a0_0x17ed15;this[_0x46d988(0xa4)]();const _0xcf594b=_0x3a39e4['toString']()||'Unknown\x20reason';this[_0x46d988(0x88)]('disconnected',{'code':_0x20504b,'reason':_0xcf594b}),this[_0x46d988(0xaf)]&&_0x20504b!==0x3e8?this['scheduleReconnect']():this['setState'](CONNECTION_STATE['DISCONNECTED']);}[a0_0x17ed15(0x73)](_0x531ff4){const _0x20abaa=a0_0x17ed15;this[_0x20abaa(0x88)](_0x20abaa(0xb3),_0x531ff4);}['handleConnectionError'](_0x3d1aa6){const _0x262d7f=a0_0x17ed15;this['setState'](CONNECTION_STATE['ERROR']),this[_0x262d7f(0x88)]('connection_error',_0x3d1aa6),this['shouldReconnect']&&this['scheduleReconnect']();}[a0_0x17ed15(0x97)](){const _0x322053=a0_0x17ed15;if(this['reconnectTimer'])return;this['setState'](CONNECTION_STATE[_0x322053(0xae)]),this[_0x322053(0x86)]++;const _0x21257c=Math[_0x322053(0xb8)](this['reconnectDelay']*Math[_0x322053(0x84)](TIMING['WEBSOCKET_RECONNECT_MULTIPLIER'],this['reconnectAttempts']-0x1),TIMING[_0x322053(0x96)]);this['emit'](_0x322053(0x74),{'attempt':this['reconnectAttempts'],'delay':_0x21257c}),this[_0x322053(0x7f)]=setTimeout(()=>{const _0xfd77f2=_0x322053;this['reconnectTimer']=null,this[_0xfd77f2(0x9e)]();},_0x21257c);}[a0_0x17ed15(0xa5)](){const _0x19a1e2=a0_0x17ed15;this[_0x19a1e2(0x98)](),this[_0x19a1e2(0x92)]=setInterval(()=>{const _0x50a3b2=_0x19a1e2;this['state']===CONNECTION_STATE[_0x50a3b2(0x87)]&&this['sendPing']();},this['heartbeatInterval']);}[a0_0x17ed15(0x98)](){const _0x1bfd2b=a0_0x17ed15;this[_0x1bfd2b(0x92)]&&(clearInterval(this['pingInterval']),this[_0x1bfd2b(0x92)]=null),this[_0x1bfd2b(0x7b)]&&(clearTimeout(this['pongTimeout']),this['pongTimeout']=null);}['sendPing'](){const _0x26bc5f=a0_0x17ed15;if(this[_0x26bc5f(0x6f)]!==CONNECTION_STATE[_0x26bc5f(0x87)])return;try{this[_0x26bc5f(0x6a)]({'type':WS_MESSAGE_TYPE[_0x26bc5f(0x7a)]}),this['pongTimeout']=setTimeout(()=>{const _0x11bd26=_0x26bc5f;this[_0x11bd26(0xb1)]();},TIMING[_0x26bc5f(0x7d)]);}catch(_0x163ead){this[_0x26bc5f(0x88)]('ping_error',_0x163ead);}}[a0_0x17ed15(0x8e)](){const _0x455362=a0_0x17ed15;this[_0x455362(0x79)]=Date[_0x455362(0x76)](),this['pongTimeout']&&(clearTimeout(this[_0x455362(0x7b)]),this[_0x455362(0x7b)]=null);}[a0_0x17ed15(0xb1)](){const _0x40833d=a0_0x17ed15;this['emit']('heartbeat_timeout'),this[_0x40833d(0xb0)](),this['shouldReconnect']&&this['scheduleReconnect']();}[a0_0x17ed15(0xaa)](_0x2a7db2){const _0x3219eb=a0_0x17ed15;this[_0x3219eb(0xb6)]=_0x2a7db2,this['send']({'type':WS_MESSAGE_TYPE['JOIN_SESSION'],'sessionId':_0x2a7db2});}['sendOrchestratorRequest'](_0x5e1e35,_0x3506fd,_0x4a2dfc){const _0x2c4b63=this['generateRequestId'](),_0x4399a1={'type':WS_MESSAGE_TYPE['ORCHESTRATOR_REQUEST'],'requestId':_0x2c4b63,'action':_0x5e1e35,'payload':_0x3506fd,'projectDir':_0x4a2dfc};return new Promise((_0x2895a6,_0x567621)=>{const _0x48594d=a0_0x4bcf;this['pendingRequests']['set'](_0x2c4b63,{'resolve':_0x2895a6,'reject':_0x567621,'timestamp':Date['now']()});try{this[_0x48594d(0x6a)](_0x4399a1);}catch(_0x1c8ccd){this['pendingRequests']['delete'](_0x2c4b63),_0x567621(_0x1c8ccd);}setTimeout(()=>{const _0x19e53f=_0x48594d;this['pendingRequests'][_0x19e53f(0x7e)](_0x2c4b63)&&(this['pendingRequests'][_0x19e53f(0x80)](_0x2c4b63),_0x567621(new Error('Request\x20timeout')));},TIMING['HTTP_TIMEOUT']);});}['handleOrchestratorResponse'](_0x120ee9){const _0x211a5f=a0_0x17ed15,{requestId:_0x5a2b0a,response:_0x1f7465,error:_0x892993}=_0x120ee9;if(this['pendingRequests']['has'](_0x5a2b0a)){const {resolve:_0x52c450,reject:_0x3b9362}=this['pendingRequests'][_0x211a5f(0xa7)](_0x5a2b0a);this['pendingRequests'][_0x211a5f(0x80)](_0x5a2b0a),_0x892993?_0x3b9362(new Error(_0x892993)):_0x52c450(_0x1f7465);}}[a0_0x17ed15(0x6a)](_0x2a4fbe){const _0xbc13bf=a0_0x17ed15;if(this[_0xbc13bf(0x6f)]!==CONNECTION_STATE[_0xbc13bf(0x87)]){this[_0xbc13bf(0x94)]['push'](_0x2a4fbe);return;}try{this['ws']['send'](JSON['stringify'](_0x2a4fbe));}catch(_0x250692){this[_0xbc13bf(0x88)]('send_error',_0x250692);throw _0x250692;}}['processMessageQueue'](){const _0x5e4552=a0_0x17ed15;while(this[_0x5e4552(0x94)]['length']>0x0&&this[_0x5e4552(0x6f)]===CONNECTION_STATE['CONNECTED']){const _0x40f43f=this[_0x5e4552(0x94)][_0x5e4552(0xb7)]();try{this['ws'][_0x5e4552(0x6a)](JSON['stringify'](_0x40f43f));}catch(_0x271986){this[_0x5e4552(0x88)](_0x5e4552(0x6d),_0x271986),this[_0x5e4552(0x94)][_0x5e4552(0xa8)](_0x40f43f);break;}}}[a0_0x17ed15(0xb0)](){const _0x409f64=a0_0x17ed15;this['shouldReconnect']=![],this['cleanup']();if(this['ws']){try{this['ws']['close'](0x3e8,'Client\x20disconnect');}catch(_0x1e60da){}this['ws']=null;}this['setState'](CONNECTION_STATE[_0x409f64(0x70)]);}[a0_0x17ed15(0xa4)](){const _0xf3648a=a0_0x17ed15;this[_0xf3648a(0x98)](),this[_0xf3648a(0x7f)]&&(clearTimeout(this[_0xf3648a(0x7f)]),this['reconnectTimer']=null),this['ws']&&this['ws']['removeAllListeners']();}['setState'](_0x365be7){const _0x489efa=a0_0x17ed15,_0x516075=this['state'];this[_0x489efa(0x6f)]=_0x365be7,_0x516075!==_0x365be7&&this['emit'](_0x489efa(0xb4),{'oldState':_0x516075,'newState':_0x365be7});}['generateRequestId'](){const _0x34b837=a0_0x17ed15;return this['requestIdCounter']++,'req-'+Date[_0x34b837(0x76)]()+'-'+this['requestIdCounter'];}[a0_0x17ed15(0xa0)](){return this['state'];}['isConnected'](){const _0x25c07d=a0_0x17ed15;return this[_0x25c07d(0x6f)]===CONNECTION_STATE[_0x25c07d(0x87)];}[a0_0x17ed15(0xa3)](){return this['sessionId'];}[a0_0x17ed15(0xb5)](){const _0x44d88e=a0_0x17ed15;return{'state':this['state'],'sessionId':this[_0x44d88e(0xb6)],'reconnectAttempts':this['reconnectAttempts'],'queuedMessages':this['messageQueue']['length'],'pendingRequests':this['pendingRequests'][_0x44d88e(0x75)],'lastPongReceived':this['lastPongReceived']};}}export default WebSocketManager;
1
+ const a0_0x4d3d63=a0_0x2400;function a0_0x51a4(){const _0xe1f453=['BgfZDfbVBMDszwnLAxzLza','z2v0','CxvLDwvFChjVy2vZC19LCNjVCG','nZKWDLHlDMni','AgfUzgXLug9Uz1rPBwvVDxq','y29UBMvJDa','zgLZy29UBMvJDa','AgfUzgXLtwvZC2fNzq','CgvUzgLUz1jLCxvLC3rZ','AgfUzgXLt3jJAgvZDhjHDg9YuMvZCg9UC2u','q2XPzw50igrPC2nVBM5Ly3q','mtjWqxfyA0K','q09otKvdveLorW','D2fPDezVCKnVBM5Ly3rPB24','ue9orW','zgvSzxrL','CMvJB25Uzwn0qxr0zw1WDhm','CMvXDwvZDeLKq291BNrLCG','q09otKvdveve','B3bLBG','AgfUzgXLug9UzW','zw1PDa','C3rHDgvFy2HHBMDL','ChvZAa','revgqvvmvf9it1nu','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','C2vUzfbPBMC','C2nOzwr1BgvszwnVBM5Ly3q','mJa5ndLerNndwMq','CgLUz19LCNjVCG','AxndB25Uzwn0zwq','z2v0u2vZC2LVBKLK','Cg93','C2vZC2LVBKLK','C3rHDgu','v0vcu09ds0vux0nptK5fq1rFveLnru9vva','y2XVC2u','C2vUze9Yy2HLC3rYyxrVCLjLCxvLC3q','mtm5mZC2qwPqtMHs','mtG4mJyWtLnzqu5X','y29UBMvJDgLVBL9LCNjVCG','BwvZC2fNzvf1zxvL','DhLWzq','CMvJB25Uzwn0Aw5N','C2v0DxbfDMvUDeHHBMrSzxjZ','BgvUz3rO','y2XLyw51Ca','v0vcu09ds0vux1jfq09otKvdvf9nvuXusvbmsuvs','yMfZzvjLy29UBMvJDerLBgf5','zxjYB3i','C2HVDwXKuMvJB25Uzwn0','u0vtu0LptL9kt0Loruq','CgLUz0LUDgvYDMfS','C2vUza','CMvJB25Uzwn0rgvSyxK','BwvZC2fNzq','AgvHCNrIzwf0sw50zxj2ywW','v0vcu09ds0vux1bptKDFveLnru9vva','Dg9tDhjPBMC','BM93','C2v0u3rHDgu','AgfZ','odaXnZe1vuDZvgnm','ntGWwevftwDY','C2vUzf9LCNjVCG','mJDqvNbSCKm','CMvTB3zLqwXStgLZDgvUzxjZ','mMXmBgvita','AgfUzgXLrxjYB3i','C3rYAw5NAwz5','mtaWmJfvz3HZCey','mtKWnJq1otfmtKTwvfK','DxjS','nda5mdq1mhrRuwTWua','ChjVy2vZC01LC3nHz2vrDwv1zq','z2vUzxjHDgvszxf1zxn0swq','C2L6zq','BwLU','reLtq09otKvdveve','C3rVCeHLyxj0yMvHDa','rvjst1i','Cg9Uz1rPBwvVDxq','mtHAEvvwue0'];a0_0x51a4=function(){return _0xe1f453;};return a0_0x51a4();}function a0_0x2400(_0x1df2d1,_0x2de5ed){_0x1df2d1=_0x1df2d1-0xd7;const _0x51a4cb=a0_0x51a4();let _0x240016=_0x51a4cb[_0x1df2d1];if(a0_0x2400['wwTRof']===undefined){var _0x3404e8=function(_0x8422d){const _0x961022='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3b6951='',_0x4e5f70='';for(let _0x8703f4=0x0,_0x32dc4e,_0x15d7f7,_0x267ad7=0x0;_0x15d7f7=_0x8422d['charAt'](_0x267ad7++);~_0x15d7f7&&(_0x32dc4e=_0x8703f4%0x4?_0x32dc4e*0x40+_0x15d7f7:_0x15d7f7,_0x8703f4++%0x4)?_0x3b6951+=String['fromCharCode'](0xff&_0x32dc4e>>(-0x2*_0x8703f4&0x6)):0x0){_0x15d7f7=_0x961022['indexOf'](_0x15d7f7);}for(let _0x54e877=0x0,_0x1d3877=_0x3b6951['length'];_0x54e877<_0x1d3877;_0x54e877++){_0x4e5f70+='%'+('00'+_0x3b6951['charCodeAt'](_0x54e877)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4e5f70);};a0_0x2400['tLHLqJ']=_0x3404e8,a0_0x2400['QcdYaV']={},a0_0x2400['wwTRof']=!![];}const _0x1d4174=_0x51a4cb[0x0],_0x20421f=_0x1df2d1+_0x1d4174,_0x484331=a0_0x2400['QcdYaV'][_0x20421f];return!_0x484331?(_0x240016=a0_0x2400['tLHLqJ'](_0x240016),a0_0x2400['QcdYaV'][_0x20421f]=_0x240016):_0x240016=_0x484331,_0x240016;}(function(_0x54be3b,_0x57286a){const _0x2129ba=a0_0x2400,_0xac7c10=_0x54be3b();while(!![]){try{const _0x203462=-parseInt(_0x2129ba(0xf4))/0x1*(parseInt(_0x2129ba(0xd8))/0x2)+parseInt(_0x2129ba(0x120))/0x3*(parseInt(_0x2129ba(0xf0))/0x4)+-parseInt(_0x2129ba(0xef))/0x5*(-parseInt(_0x2129ba(0x103))/0x6)+parseInt(_0x2129ba(0xfa))/0x7+parseInt(_0x2129ba(0xd7))/0x8*(parseInt(_0x2129ba(0xf2))/0x9)+-parseInt(_0x2129ba(0x107))/0xa*(-parseInt(_0x2129ba(0xf7))/0xb)+parseInt(_0x2129ba(0x10f))/0xc*(-parseInt(_0x2129ba(0xf8))/0xd);if(_0x203462===_0x57286a)break;else _0xac7c10['push'](_0xac7c10['shift']());}catch(_0x4839e0){_0xac7c10['push'](_0xac7c10['shift']());}}}(a0_0x51a4,0x85a36));import a0_0x3b6951 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(_0x4e5f70=NETWORK[a0_0x4d3d63(0x11c)],_0x8703f4=NETWORK['DEFAULT_PORT'],_0x32dc4e={}){const _0x4b879e=a0_0x4d3d63;super(),this['host']=_0x4e5f70,this['port']=_0x8703f4,this[_0x4b879e(0xf9)]='ws://'+_0x4e5f70+':'+_0x8703f4,this['ws']=null,this['state']=CONNECTION_STATE[_0x4b879e(0xff)],this['sessionId']=null,this['reconnectAttempts']=0x0,this[_0x4b879e(0xe7)]=_0x32dc4e[_0x4b879e(0xe7)]??TIMING[_0x4b879e(0x11d)],this[_0x4b879e(0xe1)]=this['reconnectDelay'],this['reconnectTimer']=null,this['shouldReconnect']=!![],this[_0x4b879e(0xe9)]=_0x32dc4e[_0x4b879e(0xe9)]??TIMING['WEBSOCKET_PING_INTERVAL'],this[_0x4b879e(0xe5)]=null,this[_0x4b879e(0x102)]=null,this[_0x4b879e(0x104)]=null,this[_0x4b879e(0xda)]=[],this[_0x4b879e(0x115)]=0x0,this[_0x4b879e(0x10c)]=new Map();}async[a0_0x4d3d63(0x109)](){const _0x5b4c8c=a0_0x4d3d63;if(this['state']===CONNECTION_STATE[_0x5b4c8c(0x116)]||this[_0x5b4c8c(0x126)]===CONNECTION_STATE[_0x5b4c8c(0x110)])return{'success':![],'error':'Already\x20connected\x20or\x20connecting'};this[_0x5b4c8c(0xed)](CONNECTION_STATE[_0x5b4c8c(0x110)]),this['emit']('connecting');try{return this['ws']=new a0_0x3b6951(this['url']),this['setupEventHandlers'](),await this[_0x5b4c8c(0x111)](),{'success':!![]};}catch(_0x15d7f7){return this['handleConnectionError'](_0x15d7f7),{'success':![],'error':_0x15d7f7['message']};}}['waitForConnection'](){return new Promise((_0x267ad7,_0x54e877)=>{const _0x58214b=a0_0x2400,_0x1d3877=setTimeout(()=>{_0x54e877(new Error('Connection\x20timeout'));},TIMING[_0x58214b(0x127)]);this['ws']['once'](_0x58214b(0x117),()=>{clearTimeout(_0x1d3877),_0x267ad7();}),this['ws']['once']('error',_0x242603=>{clearTimeout(_0x1d3877),_0x54e877(_0x242603);});});}[a0_0x4d3d63(0xdd)](){const _0x58d18f=a0_0x4d3d63;this['ws']['on'](_0x58d18f(0x117),()=>this['handleOpen']()),this['ws']['on'](_0x58d18f(0xe8),_0x4f1a25=>this['handleMessage'](_0x4f1a25)),this['ws']['on'](_0x58d18f(0x128),(_0x9a6e0b,_0x230cb9)=>this['handleClose'](_0x9a6e0b,_0x230cb9)),this['ws']['on'](_0x58d18f(0xe2),_0x351719=>this[_0x58d18f(0xf5)](_0x351719));}['handleOpen'](){const _0x195ea8=a0_0x4d3d63;this['setState'](CONNECTION_STATE[_0x195ea8(0x116)]),this[_0x195ea8(0x114)]=0x0,this[_0x195ea8(0xe7)]=this['baseReconnectDelay'],this[_0x195ea8(0x119)]('connected'),this['startHeartbeat'](),this[_0x195ea8(0xfb)]();}[a0_0x4d3d63(0x10b)](_0x31d0ce){const _0x327eff=a0_0x4d3d63;try{const _0x131363=JSON['parse'](_0x31d0ce['toString']());if(_0x131363[_0x327eff(0xdb)]===WS_MESSAGE_TYPE[_0x327eff(0x112)]){this['handlePong']();return;}if(_0x131363[_0x327eff(0xdb)]===WS_MESSAGE_TYPE['CONNECTED']){this['emit']('welcome',_0x131363);return;}if(_0x131363['type']===WS_MESSAGE_TYPE[_0x327eff(0xe4)]){this['sessionId']=_0x131363[_0x327eff(0x125)],this[_0x327eff(0x119)]('session_joined',_0x131363);return;}if(_0x131363['type']===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this['handleOrchestratorResponse'](_0x131363);return;}this['emit'](_0x327eff(0xe8),_0x131363),_0x131363[_0x327eff(0xdb)]&&this['emit'](_0x131363[_0x327eff(0xdb)],_0x131363);}catch(_0x1dfa5a){this['emit']('parse_error',{'error':_0x1dfa5a,'data':_0x31d0ce});}}['handleClose'](_0x5f4ad1,_0x272962){const _0x231a3c=a0_0x4d3d63;this[_0x231a3c(0xdf)]();const _0x2b1abf=_0x272962[_0x231a3c(0xeb)]()||'Unknown\x20reason';this[_0x231a3c(0x119)]('disconnected',{'code':_0x5f4ad1,'reason':_0x2b1abf}),this['shouldReconnect']&&_0x5f4ad1!==0x3e8?this['scheduleReconnect']():this['setState'](CONNECTION_STATE['DISCONNECTED']);}[a0_0x4d3d63(0xf5)](_0x12fc8e){const _0x24feda=a0_0x4d3d63;this[_0x24feda(0x119)]('error',_0x12fc8e);}['handleConnectionError'](_0x540bf8){const _0x1ca430=a0_0x4d3d63;this[_0x1ca430(0xed)](CONNECTION_STATE[_0x1ca430(0x101)]),this['emit'](_0x1ca430(0xd9),_0x540bf8),this['shouldReconnect']&&this[_0x1ca430(0x11f)]();}[a0_0x4d3d63(0x11f)](){const _0x99e087=a0_0x4d3d63;if(this['reconnectTimer'])return;this[_0x99e087(0xed)](CONNECTION_STATE['RECONNECTING']),this[_0x99e087(0x114)]++;const _0x3622f6=Math[_0x99e087(0xfe)](this['reconnectDelay']*Math[_0x99e087(0x124)](TIMING[_0x99e087(0xe0)],this['reconnectAttempts']-0x1),TIMING['WEBSOCKET_RECONNECT_MAX_DELAY']);this['emit'](_0x99e087(0xdc),{'attempt':this[_0x99e087(0x114)],'delay':_0x3622f6}),this['reconnectTimer']=setTimeout(()=>{this['reconnectTimer']=null,this['connect']();},_0x3622f6);}['startHeartbeat'](){const _0x2ea938=a0_0x4d3d63;this[_0x2ea938(0x100)](),this['pingInterval']=setInterval(()=>{const _0x496ed1=_0x2ea938;this['state']===CONNECTION_STATE['CONNECTED']&&this[_0x496ed1(0x11e)]();},this[_0x2ea938(0xe9)]);}['stopHeartbeat'](){const _0x4dd000=a0_0x4d3d63;this['pingInterval']&&(clearInterval(this[_0x4dd000(0xe5)]),this[_0x4dd000(0xe5)]=null),this[_0x4dd000(0x102)]&&(clearTimeout(this['pongTimeout']),this[_0x4dd000(0x102)]=null);}[a0_0x4d3d63(0x11e)](){const _0x140339=a0_0x4d3d63;if(this['state']!==CONNECTION_STATE['CONNECTED'])return;try{this[_0x140339(0xe6)]({'type':WS_MESSAGE_TYPE['PING']}),this['pongTimeout']=setTimeout(()=>{const _0x59859b=_0x140339;this[_0x59859b(0x108)]();},TIMING[_0x140339(0xea)]);}catch(_0x224680){this[_0x140339(0x119)](_0x140339(0x121),_0x224680);}}[a0_0x4d3d63(0x118)](){const _0xaafcc7=a0_0x4d3d63;this[_0xaafcc7(0x104)]=Date['now'](),this['pongTimeout']&&(clearTimeout(this['pongTimeout']),this['pongTimeout']=null);}['handlePongTimeout'](){const _0x4d095f=a0_0x4d3d63;this[_0x4d095f(0x119)]('heartbeat_timeout'),this[_0x4d095f(0x10a)](),this[_0x4d095f(0xe3)]&&this[_0x4d095f(0x11f)]();}['joinSession'](_0x2122e1){const _0x58d448=a0_0x4d3d63;this[_0x58d448(0x125)]=_0x2122e1,this[_0x58d448(0xe6)]({'type':WS_MESSAGE_TYPE['JOIN_SESSION'],'sessionId':_0x2122e1});}[a0_0x4d3d63(0x129)](_0x28b439,_0x54d3a1,_0x258b78){const _0x87f57=this['generateRequestId'](),_0x107f71={'type':WS_MESSAGE_TYPE['ORCHESTRATOR_REQUEST'],'requestId':_0x87f57,'action':_0x28b439,'payload':_0x54d3a1,'projectDir':_0x258b78};return new Promise((_0xb380e4,_0x1837f1)=>{const _0x34fc3a=a0_0x2400;this['pendingRequests']['set'](_0x87f57,{'resolve':_0xb380e4,'reject':_0x1837f1,'timestamp':Date[_0x34fc3a(0xec)]()});try{this['send'](_0x107f71);}catch(_0x232187){this['pendingRequests']['delete'](_0x87f57),_0x1837f1(_0x232187);}setTimeout(()=>{const _0x57400b=_0x34fc3a;this[_0x57400b(0x10c)][_0x57400b(0xee)](_0x87f57)&&(this['pendingRequests'][_0x57400b(0x113)](_0x87f57),_0x1837f1(new Error('Request\x20timeout')));},TIMING['HTTP_TIMEOUT']);});}[a0_0x4d3d63(0x10d)](_0x3da0d8){const _0x226061=a0_0x4d3d63,{requestId:_0x186b30,response:_0x44e86d,error:_0x3df4bd}=_0x3da0d8;if(this[_0x226061(0x10c)][_0x226061(0xee)](_0x186b30)){const {resolve:_0x583324,reject:_0x154c01}=this['pendingRequests'][_0x226061(0x105)](_0x186b30);this['pendingRequests']['delete'](_0x186b30),_0x3df4bd?_0x154c01(new Error(_0x3df4bd)):_0x583324(_0x44e86d);}}['send'](_0x5d88e4){const _0x5a4dc1=a0_0x4d3d63;if(this[_0x5a4dc1(0x126)]!==CONNECTION_STATE[_0x5a4dc1(0x116)]){this[_0x5a4dc1(0xda)][_0x5a4dc1(0x11b)](_0x5d88e4);return;}try{this['ws']['send'](JSON[_0x5a4dc1(0xf6)](_0x5d88e4));}catch(_0x2af98c){this['emit'](_0x5a4dc1(0xf1),_0x2af98c);throw _0x2af98c;}}['processMessageQueue'](){const _0x2b8c17=a0_0x4d3d63;while(this[_0x2b8c17(0xda)][_0x2b8c17(0xde)]>0x0&&this[_0x2b8c17(0x126)]===CONNECTION_STATE['CONNECTED']){const _0x291dbc=this[_0x2b8c17(0xda)]['shift']();try{this['ws'][_0x2b8c17(0xe6)](JSON['stringify'](_0x291dbc));}catch(_0x14de13){this['emit'](_0x2b8c17(0x106),_0x14de13),this[_0x2b8c17(0xda)]['unshift'](_0x291dbc);break;}}}['disconnect'](){const _0x5bea7e=a0_0x4d3d63;this['shouldReconnect']=![],this[_0x5bea7e(0xdf)]();if(this['ws']){try{this['ws']['close'](0x3e8,_0x5bea7e(0x10e));}catch(_0x9decee){}this['ws']=null;}this[_0x5bea7e(0xed)](CONNECTION_STATE['DISCONNECTED']);}['cleanup'](){const _0x4032b6=a0_0x4d3d63;this['stopHeartbeat'](),this['reconnectTimer']&&(clearTimeout(this['reconnectTimer']),this['reconnectTimer']=null),this['ws']&&this['ws'][_0x4032b6(0xf3)]();}['setState'](_0x356098){const _0x4b8fca=a0_0x4d3d63,_0x118ddf=this['state'];this[_0x4b8fca(0x126)]=_0x356098,_0x118ddf!==_0x356098&&this[_0x4b8fca(0x119)](_0x4b8fca(0x11a),{'oldState':_0x118ddf,'newState':_0x356098});}[a0_0x4d3d63(0xfc)](){const _0x31efca=a0_0x4d3d63;return this[_0x31efca(0x115)]++,'req-'+Date[_0x31efca(0xec)]()+'-'+this['requestIdCounter'];}['getState'](){return this['state'];}[a0_0x4d3d63(0x122)](){const _0x294ad5=a0_0x4d3d63;return this['state']===CONNECTION_STATE[_0x294ad5(0x116)];}[a0_0x4d3d63(0x123)](){const _0x575033=a0_0x4d3d63;return this[_0x575033(0x125)];}['getStats'](){const _0x4e22c2=a0_0x4d3d63;return{'state':this[_0x4e22c2(0x126)],'sessionId':this['sessionId'],'reconnectAttempts':this[_0x4e22c2(0x114)],'queuedMessages':this['messageQueue']['length'],'pendingRequests':this['pendingRequests'][_0x4e22c2(0xfd)],'lastPongReceived':this['lastPongReceived']};}}export default WebSocketManager;