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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +2 -2
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/aiService.js +1 -1
  76. package/src/services/apiKeyManager.js +1 -1
  77. package/src/services/benchmarkService.js +1 -1
  78. package/src/services/budgetService.js +1 -1
  79. package/src/services/contextInjectionService.js +1 -1
  80. package/src/services/conversationCompactionService.js +1 -1
  81. package/src/services/errorHandler.js +1 -1
  82. package/src/services/fileAttachmentService.js +1 -1
  83. package/src/services/modelRouterService.js +1 -1
  84. package/src/services/modelsService.js +1 -1
  85. package/src/services/qualityInspector.js +1 -1
  86. package/src/services/tokenCountingService.js +1 -1
  87. package/src/tools/agentCommunicationTool.js +1 -1
  88. package/src/tools/agentDelayTool.js +1 -1
  89. package/src/tools/asyncToolManager.js +1 -1
  90. package/src/tools/baseTool.js +1 -1
  91. package/src/tools/browserTool.js +1 -1
  92. package/src/tools/cloneDetectionTool.js +1 -1
  93. package/src/tools/dependencyResolverTool.js +1 -1
  94. package/src/tools/fileContentReplaceTool.js +1 -1
  95. package/src/tools/fileSystemTool.js +1 -1
  96. package/src/tools/fileTreeTool.js +1 -1
  97. package/src/tools/imageTool.js +1 -1
  98. package/src/tools/importAnalyzerTool.js +1 -1
  99. package/src/tools/jobDoneTool.js +1 -1
  100. package/src/tools/seekTool.js +1 -1
  101. package/src/tools/staticAnalysisTool.js +1 -1
  102. package/src/tools/taskManagerTool.js +1 -1
  103. package/src/tools/terminalTool.js +1 -1
  104. package/src/tools/webTool.js +1 -1
  105. package/src/types/agent.js +1 -1
  106. package/src/types/contextReference.js +1 -1
  107. package/src/types/conversation.js +1 -1
  108. package/src/types/toolCommand.js +1 -1
  109. package/src/utilities/attachmentValidator.js +1 -1
  110. package/src/utilities/configManager.js +1 -1
  111. package/src/utilities/constants.js +1 -1
  112. package/src/utilities/directoryAccessManager.js +1 -1
  113. package/src/utilities/fileProcessor.js +1 -1
  114. package/src/utilities/logger.js +1 -1
  115. package/src/utilities/tagParser.js +1 -1
  116. package/src/utilities/toolConstants.js +1 -1
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/{index-BzXbDs8z.js → index-CoRE46V-.js} +28 -28
  119. package/web-ui/build/static/index-P281Rusr.css +1 -0
  120. package/web-ui/build/static/index-BmKxmRe3.css +0 -1
@@ -1 +1 @@
1
- (function(_0x1e2f8e,_0x525a70){const _0x6b49e=a0_0x5d0b,_0x3b7756=_0x1e2f8e();while(!![]){try{const _0x10f28e=-parseInt(_0x6b49e(0xc8))/0x1+-parseInt(_0x6b49e(0xc3))/0x2+parseInt(_0x6b49e(0xc2))/0x3+parseInt(_0x6b49e(0xdb))/0x4*(parseInt(_0x6b49e(0xeb))/0x5)+-parseInt(_0x6b49e(0xb4))/0x6*(-parseInt(_0x6b49e(0xd1))/0x7)+-parseInt(_0x6b49e(0xcc))/0x8+-parseInt(_0x6b49e(0xdd))/0x9*(-parseInt(_0x6b49e(0xaa))/0xa);if(_0x10f28e===_0x525a70)break;else _0x3b7756['push'](_0x3b7756['shift']());}catch(_0x458ebb){_0x3b7756['push'](_0x3b7756['shift']());}}}(a0_0x1b24,0x78973));function a0_0x5d0b(_0x5a58bd,_0x16e04a){_0x5a58bd=_0x5a58bd-0xa8;const _0x1b24b6=a0_0x1b24();let _0x5d0b25=_0x1b24b6[_0x5a58bd];if(a0_0x5d0b['xnVynf']===undefined){var _0x11720e=function(_0x53b50b){const _0x5cdbcc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1f8e5c='',_0x24ce3b='';for(let _0x18f9f6=0x0,_0x3fa602,_0x59fe01,_0x347d8f=0x0;_0x59fe01=_0x53b50b['charAt'](_0x347d8f++);~_0x59fe01&&(_0x3fa602=_0x18f9f6%0x4?_0x3fa602*0x40+_0x59fe01:_0x59fe01,_0x18f9f6++%0x4)?_0x1f8e5c+=String['fromCharCode'](0xff&_0x3fa602>>(-0x2*_0x18f9f6&0x6)):0x0){_0x59fe01=_0x5cdbcc['indexOf'](_0x59fe01);}for(let _0x1ebeab=0x0,_0x2ac042=_0x1f8e5c['length'];_0x1ebeab<_0x2ac042;_0x1ebeab++){_0x24ce3b+='%'+('00'+_0x1f8e5c['charCodeAt'](_0x1ebeab)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x24ce3b);};a0_0x5d0b['XTbrQf']=_0x11720e,a0_0x5d0b['FULsLC']={},a0_0x5d0b['xnVynf']=!![];}const _0x12757d=_0x1b24b6[0x0],_0xa8828=_0x5a58bd+_0x12757d,_0x4fbd98=a0_0x5d0b['FULsLC'][_0xa8828];return!_0x4fbd98?(_0x5d0b25=a0_0x5d0b['XTbrQf'](_0x5d0b25),a0_0x5d0b['FULsLC'][_0xa8828]=_0x5d0b25):_0x5d0b25=_0x4fbd98,_0x5d0b25;}import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function a0_0x1b24(){const _0x4bf8c8=['BM90','tKvuv09ssW','Dg9iyxzLuhjVCgvYDhK','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','DxnL','ywXSB3DLzc10ExbL','Bg94AwfbCgLlzxK','BM90lweTzNvUy3rPB24','z2vUzxjHDgvszxf1zxn0swq','mtaYmZaWoxLJtLrbwG','mtqZmdeYohDuzK9ota','y29UBMvJDgvK','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','q09otKvdveLptL9tvefurq','Dg9nyxrJAa','mJKYnJy2BgnMqLnb','lI4VlI4VyxbPl3nLC3nPB24UANm','BwLKzgXLD2fYzq','z2v0u3rHDgu','mJiZntC2oerkrw5oBW','Dg9czq','D3m6lY9SB2nHBgHVC3q6oda4ma','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','A2v5','mJHUz3HLyxa','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','zNvUy3rPB24','quDftLrFtu9erq','DgvZDa','BgvUz3rO','Ag9ZDa','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','uefhsu5bveLptG','reLtq09otKvdveve','mtaYntzUrMXtyNK','z2v0u3rHDhm','nZqWn3jpzwz2qG','veLnsu5h','CMvJB25Uzwn0qxr0zw1WDhm','Bg9JywXOB3n0','AgfZsgfUzgXLCG','yMfZzvvYBa','BNvTyMvY','vuLFreLnru5tsu9ouW','DgvZDc1TzxnZywDL','tuvtu0fhrv9brerfra','Dg9czuDYzwf0zxjuAgfU','DgvZDc1RzxK','C3rHDgu','AgfZtg94AwflzxK','mtq5nxbKwef1CW','Cg9YDa','ChjVAMvJDerPCG','v0vcu09ds0vux1bjtKDFsu5urvjwquW','DMvUzg9Ys2v5C0nVDw50','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','C2vZC2LVBKLK','mZC1mgPeqwHAua','DgvZDc1OB3n0','yMXVy2TLzc10ExbL','Ahr0CdOVl2XVy2fSAg9ZDdO4mdGW','AxnwywXPza','u0LerujbuL9xsurusa','z2v0u2vZC2LVBKLK','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','DxjS','y2XLyxi','ntq3mZe0z3DowgvW','q29UC3rHBNrZigHHDMuGBM8GBwfNAwmGBNvTyMvYCW','Dg9czurLzMLUzwq','quDftLrFtu9erv9dsefor0ve','z2v0u2vZC2LVBKLUzM8'];a0_0x1b24=function(){return _0x4bf8c8;};return a0_0x1b24();}describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x3f4030=a0_0x5d0b,_0x1f8e5c=await import('../../config/constants.js');expect(_0x1f8e5c['UI_DIMENSIONS'])[_0x3f4030(0xb6)](),expect(_0x1f8e5c['MESSAGE_CONFIG'])[_0x3f4030(0xb6)](),expect(_0x1f8e5c[_0x3f4030(0xd9)])[_0x3f4030(0xb6)](),expect(_0x1f8e5c['TIMING'])[_0x3f4030(0xb6)](),expect(_0x1f8e5c['NETWORK'])['toBeDefined'](),expect(_0x1f8e5c[_0x3f4030(0xc6)])['toBeDefined'](),expect(_0x1f8e5c[_0x3f4030(0xd4)])['toBeDefined'](),expect(_0x1f8e5c['WS_MESSAGE_TYPE'])[_0x3f4030(0xb6)](),expect(_0x1f8e5c['API_ENDPOINTS'])['toBeDefined'](),expect(_0x1f8e5c['COMMANDS'])['toBeDefined'](),expect(_0x1f8e5c[_0x3f4030(0xba)]['DEFAULT_HOST'])[_0x3f4030(0xcd)]('localhost'),expect(_0x1f8e5c[_0x3f4030(0xba)]['DEFAULT_PORT'])[_0x3f4030(0xcd)](0x1f90),expect(_0x1f8e5c[_0x3f4030(0xc6)]['DISCONNECTED'])['toBe']('disconnected'),expect(_0x1f8e5c[_0x3f4030(0xc6)]['CONNECTED'])[_0x3f4030(0xcd)](_0x3f4030(0xc4));}),test('WebSocketManager class can be imported',async()=>{const _0x1935af=a0_0x5d0b,{WebSocketManager:_0x24ce3b}=await import('../../api/websocket.js');expect(_0x24ce3b)['toBeDefined'](),expect(typeof _0x24ce3b)[_0x1935af(0xcd)]('function');const _0x18f9f6=new _0x24ce3b('localhost',0x1f90);expect(_0x18f9f6)['toBeDefined'](),expect(_0x18f9f6[_0x1935af(0xd7)])['toBe']('localhost'),expect(_0x18f9f6[_0x1935af(0xec)])[_0x1935af(0xcd)](0x1f90),expect(_0x18f9f6[_0x1935af(0xb2)])['toBe'](_0x1935af(0xce));}),test('SessionManager class can be imported',async()=>{const _0xeb34a=a0_0x5d0b,{SessionManager:_0x3fa602}=await import('../../api/session.js');expect(_0x3fa602)[_0xeb34a(0xb6)](),expect(typeof _0x3fa602)[_0xeb34a(0xcd)]('function');const _0x59fe01=new _0x3fa602('localhost',0x1f90);expect(_0x59fe01)['toBeDefined'](),expect(_0x59fe01['host'])['toBe'](_0xeb34a(0xe0)),expect(_0x59fe01[_0xeb34a(0xec)])[_0xeb34a(0xcd)](0x1f90),expect(_0x59fe01[_0xeb34a(0xe2)])[_0xeb34a(0xcd)](_0xeb34a(0xad));}),test('MessageRouter class can be imported',async()=>{const _0x1fe0eb=a0_0x5d0b,{MessageRouter:_0x347d8f}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1ebeab}=await import(_0x1fe0eb(0xbc));expect(_0x347d8f)[_0x1fe0eb(0xb6)](),expect(typeof _0x347d8f)['toBe']('function');const _0x2ac042=new _0x1ebeab(_0x1fe0eb(0xe0),0x1f90),_0xec0f93=new _0x347d8f(_0x2ac042);expect(_0xec0f93)['toBeDefined'](),expect(_0xec0f93['ws'])['toBe'](_0x2ac042);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x245f54=a0_0x5d0b,{loggingMiddleware:_0x162b7c,filterMiddleware:_0x1b05c6,transformMiddleware:_0x431b37,timestampMiddleware:_0x3625e7,validationMiddleware:_0x5bc838}=await import('../../api/messageRouter.js');expect(typeof _0x162b7c)[_0x245f54(0xcd)]('function'),expect(typeof _0x1b05c6)[_0x245f54(0xcd)](_0x245f54(0xd3)),expect(typeof _0x431b37)[_0x245f54(0xcd)](_0x245f54(0xd3)),expect(typeof _0x3625e7)[_0x245f54(0xcd)](_0x245f54(0xd3)),expect(typeof _0x5bc838)[_0x245f54(0xcd)]('function');}),test('useConnection hook can be imported',async()=>{const _0x1ccf4a=a0_0x5d0b,{useConnection:_0x444599,useConnectionStatus:_0x5658e8}=await import('../../state/useConnection.js');expect(_0x444599)[_0x1ccf4a(0xb6)](),expect(typeof _0x444599)['toBe'](_0x1ccf4a(0xd3)),expect(_0x5658e8)['toBeDefined'](),expect(typeof _0x5658e8)['toBe'](_0x1ccf4a(0xd3));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0xf0eba2=a0_0x5d0b;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x2a501c=a0_0x5d0b,{WebSocketManager:_0x34f14e}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x5a7744}=await import(_0x2a501c(0xd2)),_0x53d2b3=new _0x34f14e('test-host',0x2382);expect(_0x53d2b3[_0x2a501c(0xe9)])[_0x2a501c(0xcd)](_0x5a7744[_0x2a501c(0xda)]),expect(_0x53d2b3['sessionId'])[_0x2a501c(0xcd)](null),expect(_0x53d2b3['messageQueue'])['toEqual']([]),expect(_0x53d2b3[_0x2a501c(0xdf)])[_0x2a501c(0xcd)](0x0),expect(_0x53d2b3['shouldReconnect'])['toBe'](!![]);}),test(_0xf0eba2(0xa8),async()=>{const _0x14baf7=_0xf0eba2,{SessionManager:_0x492365}=await import(_0x14baf7(0xc9)),_0x317363=new _0x492365(_0x14baf7(0xab),0x2382);expect(_0x317363[_0x14baf7(0xa9)])[_0x14baf7(0xcd)](null),expect(_0x317363['projectDir'])[_0x14baf7(0xcd)](null),expect(_0x317363[_0x14baf7(0xbf)])[_0x14baf7(0xcd)](null),expect(_0x317363['vendorKeys'])['toEqual']({}),expect(_0x317363[_0x14baf7(0xae)]())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x5eebb7=_0xf0eba2,{MessageRouter:_0x184d48}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1073c1}=await import(_0x5eebb7(0xbc)),{WS_MESSAGE_TYPE:_0x116f69}=await import('../../config/constants.js'),_0x573b8f=new _0x1073c1(_0x5eebb7(0xe0),0x1f90),_0x2fd90f=new _0x184d48(_0x573b8f);expect(_0x2fd90f[_0x5eebb7(0xe1)](_0x116f69[_0x5eebb7(0xe6)]))[_0x5eebb7(0xcd)](!![]),expect(_0x2fd90f['hasHandler'](_0x116f69[_0x5eebb7(0xb7)]))['toBe'](!![]),expect(_0x2fd90f[_0x5eebb7(0xe1)](_0x116f69['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0x2fd90f[_0x5eebb7(0xe1)](_0x116f69['COMPACTION_EVENT']))[_0x5eebb7(0xcd)](!![]),expect(_0x2fd90f[_0x5eebb7(0xe1)](_0x116f69['IMAGE_RESULT']))['toBe'](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x140bb8=_0xf0eba2,{MessageRouter:_0x15b254}=await import('../../api/messageRouter.js'),{WebSocketManager:_0xa2dc2d}=await import(_0x140bb8(0xbc)),_0x43b183=new _0xa2dc2d('localhost',0x1f90),_0x3c309a=new _0x15b254(_0x43b183),_0x2967c5=_0x11e924=>_0x11e924;expect(_0x3c309a['middleware'][_0x140bb8(0xd6)])[_0x140bb8(0xc5)](0x0),_0x3c309a[_0x140bb8(0xbd)](_0x2967c5);const _0x41f1de=_0x3c309a[_0x140bb8(0xca)][_0x140bb8(0xd6)];expect(_0x41f1de)[_0x140bb8(0xe7)](0x0),_0x3c309a['removeMiddleware'](_0x2967c5),expect(_0x3c309a['middleware']['length'])['toBe'](_0x41f1de-0x1);}),test(_0xf0eba2(0xd8),async()=>{const _0x279061=_0xf0eba2,{SessionManager:_0x512eae}=await import('../../api/session.js'),_0x5f5474=new _0x512eae('localhost',0x1f90);expect(_0x5f5474[_0x279061(0xb0)]())[_0x279061(0xcd)](null),expect(_0x5f5474['getProjectDir']())[_0x279061(0xcd)](null),expect(_0x5f5474['isValid']())[_0x279061(0xcd)](![]);const _0x298904=_0x5f5474[_0x279061(0xb8)]();expect(_0x298904)['toHaveProperty']('sessionId'),expect(_0x298904)[_0x279061(0xbb)](_0x279061(0xed)),expect(_0x298904)['toHaveProperty'](_0x279061(0xea)),expect(_0x298904)['toHaveProperty'](_0x279061(0xef));}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x38ce5a=_0xf0eba2,{WebSocketManager:_0x394369}=await import(_0x38ce5a(0xbc)),{CONNECTION_STATE:_0xbecd28}=await import('../../config/constants.js'),_0x4b0445=new _0x394369('localhost',0x1f90);expect(_0x4b0445[_0x38ce5a(0xcb)]())['toBe'](_0xbecd28[_0x38ce5a(0xda)]),expect(_0x4b0445['isConnected']())['toBe'](![]),expect(_0x4b0445[_0x38ce5a(0xb0)]())[_0x38ce5a(0xcd)](null);const _0x1aa910=_0x4b0445[_0x38ce5a(0xdc)]();expect(_0x1aa910)['toHaveProperty']('state'),expect(_0x1aa910)['toHaveProperty'](_0x38ce5a(0xa9)),expect(_0x1aa910)[_0x38ce5a(0xbb)]('reconnectAttempts'),expect(_0x1aa910)[_0x38ce5a(0xbb)]('queuedMessages'),expect(_0x1aa910)['toHaveProperty']('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x24d4f8=_0xf0eba2,{MessageRouter:_0xe558a0}=await import('../../api/messageRouter.js'),{WebSocketManager:_0xfc823b}=await import('../../api/websocket.js'),_0xeed70=new _0xfc823b('localhost',0x1f90),_0x588ca8=new _0xe558a0(_0xeed70),_0x258ff3=()=>{};expect(_0x588ca8['hasHandler']('test-message'))[_0x24d4f8(0xcd)](![]),_0x588ca8['registerHandler'](_0x24d4f8(0xe5),_0x258ff3),expect(_0x588ca8['hasHandler'](_0x24d4f8(0xe5)))[_0x24d4f8(0xcd)](!![]),_0x588ca8['unregisterHandler'](_0x24d4f8(0xe5)),expect(_0x588ca8[_0x24d4f8(0xe1)]('test-message'))['toBe'](![]);}),test('MessageRouter\x20middleware\x20helpers\x20create\x20valid\x20middleware',async()=>{const _0x476585=_0xf0eba2,{loggingMiddleware:_0x5c2092,timestampMiddleware:_0x45596a,filterMiddleware:_0x434c6f}=await import('../../api/messageRouter.js'),_0xae22c0=_0x5c2092();expect(typeof _0xae22c0)['toBe'](_0x476585(0xd3));const _0x1d8fee=_0x45596a();expect(typeof _0x1d8fee)['toBe'](_0x476585(0xd3));const _0x24d819={'type':_0x476585(0xd5)},_0x2a79a2=_0x1d8fee(_0x24d819);expect(_0x2a79a2)[_0x476585(0xbb)]('receivedAt'),expect(_0x2a79a2['type'])[_0x476585(0xcd)]('test');const _0x4b2b0d=_0x434c6f([_0x476585(0xbe)]);expect(typeof _0x4b2b0d)[_0x476585(0xcd)]('function'),expect(_0x4b2b0d({'type':_0x476585(0xbe)}))['toBeTruthy'](),expect(_0x4b2b0d({'type':_0x476585(0xac)}))['toBe'](null);}),test(_0xf0eba2(0xb5),async()=>{const _0x42274d=_0xf0eba2,_0x2ff8e6=await import('../../config/constants.js');expect(typeof _0x2ff8e6[_0x42274d(0xde)]['WEBSOCKET_RECONNECT_DELAY'])['toBe']('number'),expect(typeof _0x2ff8e6['TIMING'][_0x42274d(0xee)])['toBe'](_0x42274d(0xe3)),expect(typeof _0x2ff8e6['NETWORK']['DEFAULT_PORT'])[_0x42274d(0xcd)]('number'),expect(typeof _0x2ff8e6[_0x42274d(0xba)]['MAX_RETRIES'])['toBe']('number'),expect(typeof _0x2ff8e6['NETWORK']['HTTP_TIMEOUT'])[_0x42274d(0xcd)]('number'),expect(typeof _0x2ff8e6[_0x42274d(0xe4)]['MESSAGE_LIST_HEIGHT'])[_0x42274d(0xcd)](_0x42274d(0xe3)),expect(typeof _0x2ff8e6[_0x42274d(0xe4)][_0x42274d(0xaf)])['toBe'](_0x42274d(0xe3));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x3407c8=a0_0x5d0b;test(_0x3407c8(0xb1),async()=>{const _0x2aaf13=_0x3407c8,{MessageRouter:_0x13775b}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4c1c8e}=await import('../../api/websocket.js'),_0x143600=new _0x4c1c8e(_0x2aaf13(0xe0),0x1f90),_0x32de49=new _0x13775b(_0x143600);expect(()=>{const _0x394de5=_0x2aaf13;_0x32de49['registerHandler'](_0x394de5(0xd5),_0x394de5(0xc0));})['toThrow']('Handler\x20must\x20be\x20a\x20function');}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x1110d4=_0x3407c8,{MessageRouter:_0x24c84d}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4ce5c4}=await import(_0x1110d4(0xbc)),_0x2f1180=new _0x4ce5c4(_0x1110d4(0xe0),0x1f90),_0x30224b=new _0x24c84d(_0x2f1180);expect(()=>{_0x30224b['use']('not-a-function');})['toThrow']('Middleware\x20must\x20be\x20a\x20function');}),test(_0x3407c8(0xcf),async()=>{const _0x35132b=_0x3407c8,{SessionManager:_0x49e95f}=await import(_0x35132b(0xc9)),_0x14abd4=new _0x49e95f('localhost',0x1f90);_0x14abd4['sessionId']='test-123',_0x14abd4[_0x35132b(0xed)]='/test/dir',_0x14abd4[_0x35132b(0xbf)]=_0x35132b(0xe8),_0x14abd4['vendorKeys']={'openai':_0x35132b(0xd0)},expect(_0x14abd4[_0x35132b(0xae)]())['toBe'](!![]),_0x14abd4[_0x35132b(0xb3)](),expect(_0x14abd4[_0x35132b(0xa9)])[_0x35132b(0xcd)](null),expect(_0x14abd4['projectDir'])['toBe'](null),expect(_0x14abd4['loxiaApiKey'])[_0x35132b(0xcd)](null),expect(_0x14abd4['vendorKeys'])['toEqual']({}),expect(_0x14abd4[_0x35132b(0xae)]())[_0x35132b(0xcd)](![]);}),test('WebSocketManager\x20generates\x20unique\x20request\x20IDs',async()=>{const _0x2085b1=_0x3407c8,{WebSocketManager:_0x2cc7e9}=await import('../../api/websocket.js'),_0x4e2cbc=new _0x2cc7e9(_0x2085b1(0xe0),0x1f90),_0x5a9fd2=_0x4e2cbc['generateRequestId'](),_0x4d2cc0=_0x4e2cbc[_0x2085b1(0xc1)](),_0x3dc4af=_0x4e2cbc['generateRequestId']();expect(_0x5a9fd2)[_0x2085b1(0xb9)][_0x2085b1(0xcd)](_0x4d2cc0),expect(_0x4d2cc0)[_0x2085b1(0xb9)][_0x2085b1(0xcd)](_0x3dc4af),expect(_0x5a9fd2)[_0x2085b1(0xb9)][_0x2085b1(0xcd)](_0x3dc4af),expect(_0x5a9fd2)[_0x2085b1(0xc7)](/^req-\d+-\d+$/),expect(_0x4d2cc0)[_0x2085b1(0xc7)](/^req-\d+-\d+$/),expect(_0x3dc4af)['toMatch'](/^req-\d+-\d+$/);});});
1
+ const a0_0x28eed9=a0_0x4e1d;(function(_0x14b10f,_0x2209fa){const _0x3b4364=a0_0x4e1d,_0x403a70=_0x14b10f();while(!![]){try{const _0x47bde1=-parseInt(_0x3b4364(0x190))/0x1*(-parseInt(_0x3b4364(0x1a4))/0x2)+-parseInt(_0x3b4364(0x18a))/0x3+-parseInt(_0x3b4364(0x1aa))/0x4+-parseInt(_0x3b4364(0x185))/0x5+parseInt(_0x3b4364(0x1d6))/0x6*(parseInt(_0x3b4364(0x1c5))/0x7)+-parseInt(_0x3b4364(0x1bf))/0x8*(-parseInt(_0x3b4364(0x1c2))/0x9)+-parseInt(_0x3b4364(0x1a3))/0xa;if(_0x47bde1===_0x2209fa)break;else _0x403a70['push'](_0x403a70['shift']());}catch(_0x5708b7){_0x403a70['push'](_0x403a70['shift']());}}}(a0_0x43f6,0x901d4));import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';function a0_0x4e1d(_0x34344d,_0x1fb55f){_0x34344d=_0x34344d-0x182;const _0x43f63a=a0_0x43f6();let _0x4e1ddd=_0x43f63a[_0x34344d];if(a0_0x4e1d['GRmfOO']===undefined){var _0x14e202=function(_0x5ae6d5){const _0x3d1463='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x225d80='',_0x52e25b='';for(let _0x26987c=0x0,_0x4cd211,_0x5d543c,_0x7a8a8=0x0;_0x5d543c=_0x5ae6d5['charAt'](_0x7a8a8++);~_0x5d543c&&(_0x4cd211=_0x26987c%0x4?_0x4cd211*0x40+_0x5d543c:_0x5d543c,_0x26987c++%0x4)?_0x225d80+=String['fromCharCode'](0xff&_0x4cd211>>(-0x2*_0x26987c&0x6)):0x0){_0x5d543c=_0x3d1463['indexOf'](_0x5d543c);}for(let _0x2f8302=0x0,_0x1c41d1=_0x225d80['length'];_0x2f8302<_0x1c41d1;_0x2f8302++){_0x52e25b+='%'+('00'+_0x225d80['charCodeAt'](_0x2f8302)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x52e25b);};a0_0x4e1d['rvZQst']=_0x14e202,a0_0x4e1d['neKmTO']={},a0_0x4e1d['GRmfOO']=!![];}const _0x1a7723=_0x43f63a[0x0],_0x2de1ec=_0x34344d+_0x1a7723,_0x119b32=a0_0x4e1d['neKmTO'][_0x2de1ec];return!_0x119b32?(_0x4e1ddd=a0_0x4e1d['rvZQst'](_0x4e1ddd),a0_0x4e1d['neKmTO'][_0x2de1ec]=_0x4e1ddd):_0x4e1ddd=_0x119b32,_0x4e1ddd;}import{dirname,join}from'path';function a0_0x43f6(){const _0x267d32=['twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLigHLBhbLCNmGy3jLyxrLihzHBgLKig1PzgrSzxDHCMu','q29UC3rHBNrZigHHDMuGBM8GBwfNAwmGBNvTyMvYCW','reLtq09otKvdveve','BM90lweTzNvUy3rPB24','tKvuv09ssW','AgfZsgfUzgXLCG','tuvtu0fhrv9dt05gsuC','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','Dg9iyxzLuhjVCgvYDhK','ChjVAMvJDerPCG','DgvZDc0XmJm','y29UBMvJDgvK','u0LerujbuL9xsurusa','DgvZDc1TzxnZywDL','CxvLDwvKtwvZC2fNzxm','DMvUzg9Ys2v5C0nVDw50','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','tuvtu0fhrv9msvnux0HfsuDiva','Dg9czurLzMLUzwq','ywXSB3DLzc10ExbL','mJi2odKXmNnfsLzHzW','BgvUz3rO','CgvUzgLUz1jLCxvLC3rZ','oxHwqLzOyW','Dw5YzwDPC3rLCKHHBMrSzxi','z2vUzxjHDgvszxf1zxn0swq','n1vJtuzbzq','vuLFreLnru5tsu9ouW','DgvZDc1RzxK','q09ntuforfm','DgvZDa','v1nFtuvtu0fhrv9uwvbf','C3rHDgu','Cg9YDa','Ahr0CdOVl2XVy2fSAg9ZDdO4mdGW','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLignHBIbIzsbHzgrLzcbHBMqGCMvTB3zLza','veLnsu5h','revgqvvmvf9qt1ju','Dg9fCxvHBa','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','BwLKzgXLD2fYzq','Dg9czvrYDxrOEq','mZm1odaZogzeD01Rsq','l3rLC3qVzgLY','q09nuefdveLptL9fvKvova','qvbjx0vorfbpsu5uuW','ntGYndC1EefNEvbO','uefhsu5bveLptG','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','BNvTyMvY','mtm5odiXm3DPu2Hvva','z2v0u3rHDgu','AxndB25Uzwn0zwq','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','lI4VlI4VyxbPl3nLC3nPB24UANm','C2vZC2LVBKLK','mNbRt1rXzW','Dg9czq','AxnwywXPza','CMvJB25Uzwn0qxr0zw1WDhm','zNvUy3rPB24','Bg9JywXOB3n0','rvHfq1vusu9ox1nut1bqruq','Dg9nyxrJAa','Bg94AwfbCgLlzxK','DMvUzg9Ys2v5CW','yMfZzvvYBa','v0vcu09ds0vux1bjtKDFsu5urvjwquW','DhLWzq','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbjBxbVCNrZ','zgLZy29UBMvJDgvK','sfruuf9usu1ft1vu','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','twvZC2fNzvjVDxrLCIbJyw4GCMvNAxn0zxiGyw5KihvUCMvNAxn0zxiGAgfUzgXLCNm','z2v0u2vZC2LVBKLUzM8','mZCWmJiYmfPQtuXkCa','mtaZnde4mNrqCKXdwa','CMvNAxn0zxjiyw5KBgvY','Dg9uAhjVDW','Dg9czuDYzwf0zxjuAgfU','CMvTB3zLtwLKzgXLD2fYzq','quDftLrFtu9erv9dsefor0ve','mtmZnZu1nKvuy0Lesa'];a0_0x43f6=function(){return _0x267d32;};return a0_0x43f6();}const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe(a0_0x28eed9(0x19d),()=>{test('constants module exports all required constants',async()=>{const _0x48e207=a0_0x4e1d,_0x225d80=await import('../../config/constants.js');expect(_0x225d80['UI_DIMENSIONS'])[_0x48e207(0x1bd)](),expect(_0x225d80[_0x48e207(0x1b1)])['toBeDefined'](),expect(_0x225d80[_0x48e207(0x186)])[_0x48e207(0x1bd)](),expect(_0x225d80[_0x48e207(0x1d0)])[_0x48e207(0x1bd)](),expect(_0x225d80['NETWORK'])['toBeDefined'](),expect(_0x225d80['CONNECTION_STATE'])[_0x48e207(0x1bd)](),expect(_0x225d80['AGENT_MODE'])['toBeDefined'](),expect(_0x225d80[_0x48e207(0x1ca)])['toBeDefined'](),expect(_0x225d80[_0x48e207(0x184)])['toBeDefined'](),expect(_0x225d80[_0x48e207(0x1c8)])[_0x48e207(0x1bd)](),expect(_0x225d80[_0x48e207(0x1af)]['DEFAULT_HOST'])['toBe']('localhost'),expect(_0x225d80['NETWORK'][_0x48e207(0x1d1)])[_0x48e207(0x191)](0x1f90),expect(_0x225d80['CONNECTION_STATE']['DISCONNECTED'])['toBe'](_0x48e207(0x19e)),expect(_0x225d80['CONNECTION_STATE']['CONNECTED'])[_0x48e207(0x191)](_0x48e207(0x1b6));}),test('WebSocketManager class can be imported',async()=>{const _0x550e06=a0_0x4e1d,{WebSocketManager:_0x52e25b}=await import('../../api/websocket.js');expect(_0x52e25b)['toBeDefined'](),expect(typeof _0x52e25b)[_0x550e06(0x191)]('function');const _0x26987c=new _0x52e25b('localhost',0x1f90);expect(_0x26987c)[_0x550e06(0x1bd)](),expect(_0x26987c['host'])['toBe']('localhost'),expect(_0x26987c[_0x550e06(0x1cc)])[_0x550e06(0x191)](0x1f90),expect(_0x26987c['url'])[_0x550e06(0x191)]('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0x5f424f=a0_0x4e1d,{SessionManager:_0x4cd211}=await import(_0x5f424f(0x18e));expect(_0x4cd211)[_0x5f424f(0x1bd)](),expect(typeof _0x4cd211)[_0x5f424f(0x191)]('function');const _0x5d543c=new _0x4cd211(_0x5f424f(0x195),0x1f90);expect(_0x5d543c)['toBeDefined'](),expect(_0x5d543c['host'])['toBe']('localhost'),expect(_0x5d543c[_0x5f424f(0x1cc)])[_0x5f424f(0x191)](0x1f90),expect(_0x5d543c[_0x5f424f(0x19a)])[_0x5f424f(0x191)](_0x5f424f(0x1cd));}),test('MessageRouter class can be imported',async()=>{const _0x1df6a8=a0_0x4e1d,{MessageRouter:_0x7a8a8}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x2f8302}=await import(_0x1df6a8(0x1b2));expect(_0x7a8a8)[_0x1df6a8(0x1bd)](),expect(typeof _0x7a8a8)[_0x1df6a8(0x191)]('function');const _0x1c41d1=new _0x2f8302('localhost',0x1f90),_0x4354e2=new _0x7a8a8(_0x1c41d1);expect(_0x4354e2)[_0x1df6a8(0x1bd)](),expect(_0x4354e2['ws'])['toBe'](_0x1c41d1);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x2512c7=a0_0x4e1d,{loggingMiddleware:_0x540bbe,filterMiddleware:_0x446405,transformMiddleware:_0x127bf3,timestampMiddleware:_0x296863,validationMiddleware:_0x347794}=await import('../../api/messageRouter.js');expect(typeof _0x540bbe)['toBe'](_0x2512c7(0x194)),expect(typeof _0x446405)['toBe'](_0x2512c7(0x194)),expect(typeof _0x127bf3)['toBe'](_0x2512c7(0x194)),expect(typeof _0x296863)[_0x2512c7(0x191)]('function'),expect(typeof _0x347794)[_0x2512c7(0x191)](_0x2512c7(0x194));}),test('useConnection hook can be imported',async()=>{const _0x5a6c50=a0_0x4e1d,{useConnection:_0x51a630,useConnectionStatus:_0x4b85bb}=await import('../../state/useConnection.js');expect(_0x51a630)[_0x5a6c50(0x1bd)](),expect(typeof _0x51a630)[_0x5a6c50(0x191)](_0x5a6c50(0x194)),expect(_0x4b85bb)[_0x5a6c50(0x1bd)](),expect(typeof _0x4b85bb)['toBe']('function');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x31319c=a0_0x28eed9;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x495c7d=a0_0x4e1d,{WebSocketManager:_0x4b7d9f}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x2c7253}=await import(_0x495c7d(0x1bb)),_0x5848b8=new _0x4b7d9f('test-host',0x2382);expect(_0x5848b8[_0x495c7d(0x1cb)])[_0x495c7d(0x191)](_0x2c7253['DISCONNECTED']),expect(_0x5848b8[_0x495c7d(0x18f)])[_0x495c7d(0x191)](null),expect(_0x5848b8['messageQueue'])['toEqual']([]),expect(_0x5848b8[_0x495c7d(0x193)])[_0x495c7d(0x191)](0x0),expect(_0x5848b8['shouldReconnect'])['toBe'](!![]);}),test(_0x31319c(0x1d3),async()=>{const _0x106145=_0x31319c,{SessionManager:_0x328194}=await import(_0x106145(0x18e)),_0x33fa5f=new _0x328194('test-host',0x2382);expect(_0x33fa5f['sessionId'])['toBe'](null),expect(_0x33fa5f[_0x106145(0x1b4)])['toBe'](null),expect(_0x33fa5f['loxiaApiKey'])[_0x106145(0x191)](null),expect(_0x33fa5f['vendorKeys'])[_0x106145(0x1d2)]({}),expect(_0x33fa5f['isValid']())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x17161a=_0x31319c,{MessageRouter:_0x36e19c}=await import(_0x17161a(0x188)),{WebSocketManager:_0x504756}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x5b30b2}=await import(_0x17161a(0x1bb)),_0x4f1077=new _0x504756('localhost',0x1f90),_0x2794a4=new _0x36e19c(_0x4f1077);expect(_0x2794a4[_0x17161a(0x1b0)](_0x5b30b2['MESSAGE_ADDED']))[_0x17161a(0x191)](!![]),expect(_0x2794a4['hasHandler'](_0x5b30b2[_0x17161a(0x1a9)]))['toBe'](!![]),expect(_0x2794a4[_0x17161a(0x1b0)](_0x5b30b2[_0x17161a(0x196)]))[_0x17161a(0x191)](!![]),expect(_0x2794a4['hasHandler'](_0x5b30b2[_0x17161a(0x183)]))[_0x17161a(0x191)](!![]),expect(_0x2794a4['hasHandler'](_0x5b30b2['IMAGE_RESULT']))['toBe'](!![]);}),test(_0x31319c(0x1cf),async()=>{const _0x5b7158=_0x31319c,{MessageRouter:_0x4fd8b4}=await import(_0x5b7158(0x188)),{WebSocketManager:_0x573f26}=await import('../../api/websocket.js'),_0x45ffeb=new _0x573f26(_0x5b7158(0x195),0x1f90),_0x452b3c=new _0x4fd8b4(_0x45ffeb),_0x2e3294=_0x3143d2=>_0x3143d2;expect(_0x452b3c['middleware'][_0x5b7158(0x1c0)])[_0x5b7158(0x1a0)](0x0),_0x452b3c['use'](_0x2e3294);const _0x3c4fb7=_0x452b3c[_0x5b7158(0x1d4)][_0x5b7158(0x1c0)];expect(_0x3c4fb7)[_0x5b7158(0x1a7)](0x0),_0x452b3c[_0x5b7158(0x1a8)](_0x2e3294),expect(_0x452b3c[_0x5b7158(0x1d4)]['length'])['toBe'](_0x3c4fb7-0x1);}),test('SessionManager\x20helper\x20methods\x20work',async()=>{const _0x3d2bd5=_0x31319c,{SessionManager:_0x2cba79}=await import(_0x3d2bd5(0x18e)),_0x3e87d4=new _0x2cba79('localhost',0x1f90);expect(_0x3e87d4['getSessionId']())[_0x3d2bd5(0x191)](null),expect(_0x3e87d4['getProjectDir']())['toBe'](null),expect(_0x3e87d4[_0x3d2bd5(0x192)]())[_0x3d2bd5(0x191)](![]);const _0x4139c9=_0x3e87d4[_0x3d2bd5(0x1a2)]();expect(_0x4139c9)[_0x3d2bd5(0x1b3)](_0x3d2bd5(0x18f)),expect(_0x4139c9)[_0x3d2bd5(0x1b3)](_0x3d2bd5(0x1b4)),expect(_0x4139c9)[_0x3d2bd5(0x1b3)]('hasLoxiaKey'),expect(_0x4139c9)[_0x3d2bd5(0x1b3)](_0x3d2bd5(0x1ba));}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x2713ba=_0x31319c,{WebSocketManager:_0x504bfd}=await import(_0x2713ba(0x1b2)),{CONNECTION_STATE:_0x16ae4d}=await import('../../config/constants.js'),_0x5230d2=new _0x504bfd('localhost',0x1f90);expect(_0x5230d2[_0x2713ba(0x18b)]())[_0x2713ba(0x191)](_0x16ae4d[_0x2713ba(0x1ad)]),expect(_0x5230d2[_0x2713ba(0x18c)]())['toBe'](![]),expect(_0x5230d2['getSessionId']())['toBe'](null);const _0x4b7157=_0x5230d2['getStats']();expect(_0x4b7157)['toHaveProperty'](_0x2713ba(0x1cb)),expect(_0x4b7157)['toHaveProperty'](_0x2713ba(0x18f)),expect(_0x4b7157)[_0x2713ba(0x1b3)](_0x2713ba(0x193)),expect(_0x4b7157)[_0x2713ba(0x1b3)](_0x2713ba(0x1b9)),expect(_0x4b7157)[_0x2713ba(0x1b3)](_0x2713ba(0x1c1));}),test(_0x31319c(0x1a1),async()=>{const _0x48c34a=_0x31319c,{MessageRouter:_0x530447}=await import(_0x48c34a(0x188)),{WebSocketManager:_0x199c00}=await import(_0x48c34a(0x1b2)),_0x6a6859=new _0x199c00('localhost',0x1f90),_0x367f53=new _0x530447(_0x6a6859),_0x24df93=()=>{};expect(_0x367f53[_0x48c34a(0x1b0)]('test-message'))[_0x48c34a(0x191)](![]),_0x367f53['registerHandler'](_0x48c34a(0x1b8),_0x24df93),expect(_0x367f53['hasHandler']('test-message'))['toBe'](!![]),_0x367f53[_0x48c34a(0x1c3)]('test-message'),expect(_0x367f53[_0x48c34a(0x1b0)]('test-message'))['toBe'](![]);}),test(_0x31319c(0x1ab),async()=>{const _0x2a79d4=_0x31319c,{loggingMiddleware:_0x46e8d0,timestampMiddleware:_0x2a0763,filterMiddleware:_0xed54af}=await import(_0x2a79d4(0x188)),_0x1eefe5=_0x46e8d0();expect(typeof _0x1eefe5)['toBe'](_0x2a79d4(0x194));const _0x1534db=_0x2a0763();expect(typeof _0x1534db)[_0x2a79d4(0x191)](_0x2a79d4(0x194));const _0xc5d08f={'type':'test'},_0x35b7a4=_0x1534db(_0xc5d08f);expect(_0x35b7a4)[_0x2a79d4(0x1b3)]('receivedAt'),expect(_0x35b7a4[_0x2a79d4(0x19c)])[_0x2a79d4(0x191)](_0x2a79d4(0x1c9));const _0x519463=_0xed54af(['allowed-type']);expect(typeof _0x519463)['toBe'](_0x2a79d4(0x194)),expect(_0x519463({'type':_0x2a79d4(0x1be)}))[_0x2a79d4(0x1d5)](),expect(_0x519463({'type':'blocked-type'}))[_0x2a79d4(0x191)](null);}),test(_0x31319c(0x1ac),async()=>{const _0x5c0e25=_0x31319c,_0x5024f9=await import('../../config/constants.js');expect(typeof _0x5024f9[_0x5c0e25(0x1d0)]['WEBSOCKET_RECONNECT_DELAY'])[_0x5c0e25(0x191)](_0x5c0e25(0x189)),expect(typeof _0x5024f9['TIMING'][_0x5c0e25(0x19b)])[_0x5c0e25(0x191)]('number'),expect(typeof _0x5024f9['NETWORK']['DEFAULT_PORT'])['toBe'](_0x5c0e25(0x189)),expect(typeof _0x5024f9['NETWORK']['MAX_RETRIES'])[_0x5c0e25(0x191)](_0x5c0e25(0x189)),expect(typeof _0x5024f9[_0x5c0e25(0x1af)][_0x5c0e25(0x19f)])['toBe']('number'),expect(typeof _0x5024f9[_0x5c0e25(0x1c6)][_0x5c0e25(0x1bc)])['toBe']('number'),expect(typeof _0x5024f9['UI_DIMENSIONS'][_0x5c0e25(0x1b7)])[_0x5c0e25(0x191)](_0x5c0e25(0x189));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x562536=a0_0x28eed9;test(_0x562536(0x1ce),async()=>{const _0xc8f5f4=_0x562536,{MessageRouter:_0x369ec3}=await import(_0xc8f5f4(0x188)),{WebSocketManager:_0x4ec41a}=await import(_0xc8f5f4(0x1b2)),_0x492d20=new _0x4ec41a(_0xc8f5f4(0x195),0x1f90),_0x433aa4=new _0x369ec3(_0x492d20);expect(()=>{const _0x5cf336=_0xc8f5f4;_0x433aa4[_0x5cf336(0x1a5)]('test',_0x5cf336(0x1ae));})[_0xc8f5f4(0x1a6)](_0xc8f5f4(0x18d));}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x43f741=_0x562536,{MessageRouter:_0x41ee2e}=await import(_0x43f741(0x188)),{WebSocketManager:_0x4e9b4d}=await import(_0x43f741(0x1b2)),_0x3e7d3a=new _0x4e9b4d(_0x43f741(0x195),0x1f90),_0x522b01=new _0x41ee2e(_0x3e7d3a);expect(()=>{const _0x5ed273=_0x43f741;_0x522b01['use'](_0x5ed273(0x1ae));})['toThrow']('Middleware\x20must\x20be\x20a\x20function');}),test(_0x562536(0x187),async()=>{const _0x56d96f=_0x562536,{SessionManager:_0x34c3d8}=await import('../../api/session.js'),_0x168bd7=new _0x34c3d8(_0x56d96f(0x195),0x1f90);_0x168bd7[_0x56d96f(0x18f)]=_0x56d96f(0x1b5),_0x168bd7[_0x56d96f(0x1b4)]=_0x56d96f(0x182),_0x168bd7[_0x56d96f(0x198)]=_0x56d96f(0x1c7),_0x168bd7['vendorKeys']={'openai':'key'},expect(_0x168bd7[_0x56d96f(0x192)]())['toBe'](!![]),_0x168bd7['clear'](),expect(_0x168bd7['sessionId'])['toBe'](null),expect(_0x168bd7[_0x56d96f(0x1b4)])['toBe'](null),expect(_0x168bd7['loxiaApiKey'])[_0x56d96f(0x191)](null),expect(_0x168bd7[_0x56d96f(0x199)])[_0x56d96f(0x1d2)]({}),expect(_0x168bd7[_0x56d96f(0x192)]())['toBe'](![]);}),test('WebSocketManager\x20generates\x20unique\x20request\x20IDs',async()=>{const _0x160e93=_0x562536,{WebSocketManager:_0x3596c7}=await import(_0x160e93(0x1b2)),_0xbcfea7=new _0x3596c7(_0x160e93(0x195),0x1f90),_0x28a5fe=_0xbcfea7['generateRequestId'](),_0x1c1d62=_0xbcfea7[_0x160e93(0x1c4)](),_0x3f84ca=_0xbcfea7['generateRequestId']();expect(_0x28a5fe)['not'][_0x160e93(0x191)](_0x1c1d62),expect(_0x1c1d62)['not']['toBe'](_0x3f84ca),expect(_0x28a5fe)['not']['toBe'](_0x3f84ca),expect(_0x28a5fe)['toMatch'](/^req-\d+-\d+$/),expect(_0x1c1d62)[_0x160e93(0x197)](/^req-\d+-\d+$/),expect(_0x3f84ca)['toMatch'](/^req-\d+-\d+$/);});});
@@ -1 +1 @@
1
- const a0_0x47b20f=a0_0x5a4c;function a0_0x5a4c(_0x173bc1,_0x2019b6){_0x173bc1=_0x173bc1-0x18e;const _0x13a13b=a0_0x13a1();let _0x5a4c99=_0x13a13b[_0x173bc1];if(a0_0x5a4c['ypiTLs']===undefined){var _0x5301d9=function(_0x5036f5){const _0x1c0883='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x559b0e='',_0x17b6f5='';for(let _0x46af30=0x0,_0x173d2e,_0x53a4ea,_0x169971=0x0;_0x53a4ea=_0x5036f5['charAt'](_0x169971++);~_0x53a4ea&&(_0x173d2e=_0x46af30%0x4?_0x173d2e*0x40+_0x53a4ea:_0x53a4ea,_0x46af30++%0x4)?_0x559b0e+=String['fromCharCode'](0xff&_0x173d2e>>(-0x2*_0x46af30&0x6)):0x0){_0x53a4ea=_0x1c0883['indexOf'](_0x53a4ea);}for(let _0x38eed8=0x0,_0x2af611=_0x559b0e['length'];_0x38eed8<_0x2af611;_0x38eed8++){_0x17b6f5+='%'+('00'+_0x559b0e['charCodeAt'](_0x38eed8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x17b6f5);};a0_0x5a4c['FyXXso']=_0x5301d9,a0_0x5a4c['JnQjBE']={},a0_0x5a4c['ypiTLs']=!![];}const _0x12f82f=_0x13a13b[0x0],_0x3f6c7a=_0x173bc1+_0x12f82f,_0x2fb250=a0_0x5a4c['JnQjBE'][_0x3f6c7a];return!_0x2fb250?(_0x5a4c99=a0_0x5a4c['FyXXso'](_0x5a4c99),a0_0x5a4c['JnQjBE'][_0x3f6c7a]=_0x5a4c99):_0x5a4c99=_0x2fb250,_0x5a4c99;}function a0_0x13a1(){const _0x4a29a0=['twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','lI4VlI4VyxbPl3nLC3nPB24UANm','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','C3LZDgvT','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','n0nHChfxtq','BNvTyMvY','Bg9JywXOB3n0','ywXS','quDftLrFtu9erv9dsefor0ve','ywDLBNrFBw9Kzv9JAgfUz2vK','DxnLCG','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','tufyx01fu1nbr0vtx0rju1bmqvK','twvZC2fNzsbnyw5Hz2vTzw50ic0GrxjYB3iGsgfUzgXPBMC','BgvUz3rO','BwvZC2fNzv9HzgrLza','quDftLrFuKvtue9ou0u','zgvMyxvSDa','DxnLtwvZC2fNzxmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','t3jJAgvZDhjHDg9YigvUzhbVAw50ignHBIbIzsb1C2vKigzVCIbTzxnZywDLig9WzxjHDgLVBNm','tuvtu0fhrv9st0Xf','Dg9czurLzMLUzwq','mtiYmJi2n0LzBxruvq','u1Ltvevnx05pveLgsunbveLptG','mZa5mdy0yKTYAwz4','og52CvLeCW','tuvtu0fhrv9brerfra','rvHfq1vusu9ox1nut1bqruq','tuvtu0fhrv9uwvbfignVBNn0yw50CYbHCMuGzgvMAw5Lza','zNvUy3rPB24','Dg9czuDYzwf0zxjuAgfU','mtm1nZG3nwjYrg1fAW','twvZC2fNzvjVDxrLCIbOyxmGBwvZC2fNzsbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','mJmYode2oe1Wug9mrW','DxnLCI1TzxnZywDL','qvntsvnuqu5u','uefhrv9tsvPf','DxnLtwvZC2fNzunVDw50ihjLDhvYBNmGzxHWzwn0zwqGAw50zxjMywnLihnOyxbL','CMvWzwf0','tufyx1bbr0vFu0LArq','DxnLtwvZC2fNzxm','Dg9czq','u1Ltvevn','tufyx01fu1nbr0vFtevor1ri','oteZnJCXzvnAEvz1','t1jdsevtvfjbve9s','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','mtjuzwzPwuW','tuvtu0fhrv9uwvbf','Dg9mB3DLCKnHC2u','mtG2mdC1mfDiBgLABW','C3LZDgvTlw5VDgLMAwnHDgLVBG','Dg9czuXLC3nuAgfUt3jfCxvHBa','mJC0mJuYmgnns3bwva','vvnfuG','AgfZsgfUzgXLCG','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbKAxnWBgf5ig1LC3nHz2vZ'];a0_0x13a1=function(){return _0x4a29a0;};return a0_0x13a1();}(function(_0x1e7038,_0x3a25cc){const _0x4d7064=a0_0x5a4c,_0x3ef80c=_0x1e7038();while(!![]){try{const _0x4e66ca=parseInt(_0x4d7064(0x1a1))/0x1+-parseInt(_0x4d7064(0x1a4))/0x2*(parseInt(_0x4d7064(0x1b7))/0x3)+-parseInt(_0x4d7064(0x1a3))/0x4+parseInt(_0x4d7064(0x1c0))/0x5*(parseInt(_0x4d7064(0x1ba))/0x6)+-parseInt(_0x4d7064(0x18e))/0x7*(parseInt(_0x4d7064(0x1ac))/0x8)+parseInt(_0x4d7064(0x1aa))/0x9+-parseInt(_0x4d7064(0x1bd))/0xa;if(_0x4e66ca===_0x3a25cc)break;else _0x3ef80c['push'](_0x3ef80c['shift']());}catch(_0x334174){_0x3ef80c['push'](_0x3ef80c['shift']());}}}(a0_0x13a1,0xaa4d8));import{describe,test,expect}from'@jest/globals';describe('Message\x20Management\x20-\x20Imports',()=>{test('useMessages hook can be imported',async()=>{const _0x1bc7ba=a0_0x5a4c,{useMessages:_0x559b0e}=await import('../../state/useMessages.js');expect(_0x559b0e)[_0x1bc7ba(0x1a0)](),expect(typeof _0x559b0e)[_0x1bc7ba(0x1b4)](_0x1bc7ba(0x1a8));}),test('useMessages is default export',async()=>{const _0x4af64d=a0_0x5a4c,module=await import(_0x4af64d(0x1c7));expect(module[_0x4af64d(0x19c)])[_0x4af64d(0x1a0)](),expect(typeof module[_0x4af64d(0x19c)])['toBe'](_0x4af64d(0x1a8)),expect(module[_0x4af64d(0x19c)])[_0x4af64d(0x1b4)](module[_0x4af64d(0x1b3)]);}),test('useMessageCount helper hook can be imported',async()=>{const _0x294d19=a0_0x5a4c,{useMessageCount:_0x17b6f5}=await import('../../state/useMessages.js');expect(_0x17b6f5)[_0x294d19(0x1a0)](),expect(typeof _0x17b6f5)['toBe'](_0x294d19(0x1a8));});}),describe('Message\x20Management\x20-\x20Constants',()=>{const _0x3190b8=a0_0x5a4c;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x497f20=a0_0x5a4c,{MESSAGE_ROLE:_0x46af30}=await import(_0x497f20(0x1c3));expect(_0x46af30)[_0x497f20(0x1a0)](),expect(_0x46af30['USER'])['toBe'](_0x497f20(0x194)),expect(_0x46af30['ASSISTANT'])[_0x497f20(0x1b4)]('assistant'),expect(_0x46af30['SYSTEM'])['toBe'](_0x497f20(0x1c8));}),test(_0x3190b8(0x1a7),async()=>{const _0x166c28=_0x3190b8,{MESSAGE_TYPE:_0x173d2e}=await import(_0x166c28(0x1c3));expect(_0x173d2e)['toBeDefined'](),expect(_0x173d2e['USER_MESSAGE'])['toBe'](_0x166c28(0x1ad)),expect(_0x173d2e[_0x166c28(0x19b)])['toBe']('agent-response'),expect(_0x173d2e[_0x166c28(0x1a2)])['toBe'](_0x166c28(0x1be));}),test('MESSAGE_CONFIG\x20constants\x20are\x20defined',async()=>{const _0xb3af6f=_0x3190b8,{MESSAGE_CONFIG:_0x53a4ea}=await import(_0xb3af6f(0x1c3));expect(_0x53a4ea)['toBeDefined'](),expect(_0x53a4ea[_0xb3af6f(0x1b6)])[_0xb3af6f(0x1a0)](),expect(_0x53a4ea[_0xb3af6f(0x197)])[_0xb3af6f(0x1a0)](),expect(typeof _0x53a4ea[_0xb3af6f(0x1b6)])['toBe'](_0xb3af6f(0x18f)),expect(typeof _0x53a4ea[_0xb3af6f(0x197)])[_0xb3af6f(0x1b4)]('number');}),test('PAGINATION\x20constants\x20are\x20defined',async()=>{const _0x2766c2=_0x3190b8,{PAGINATION:_0x169971}=await import('../../config/constants.js');expect(_0x169971)[_0x2766c2(0x1a0)](),expect(_0x169971[_0x2766c2(0x1af)])[_0x2766c2(0x1a0)](),expect(_0x169971['MAX_PAGE_SIZE'])[_0x2766c2(0x1a0)](),expect(typeof _0x169971['PAGE_SIZE'])[_0x2766c2(0x1b4)]('number'),expect(typeof _0x169971[_0x2766c2(0x1b2)])[_0x2766c2(0x1b4)]('number');}),test(_0x3190b8(0x196),async()=>{const _0xdaff51=_0x3190b8,{WS_MESSAGE_TYPE:_0x38eed8}=await import(_0xdaff51(0x1c3));expect(_0x38eed8)[_0xdaff51(0x1a0)](),expect(_0x38eed8['MESSAGE_ADDED'])['toBe'](_0xdaff51(0x19a)),expect(_0x38eed8[_0xdaff51(0x192)])['toBe'](_0xdaff51(0x193)),expect(_0x38eed8[_0xdaff51(0x1a6)])['toBe']('execution_stopped');});}),describe(a0_0x47b20f(0x1c5),()=>{const _0x14cf6f=a0_0x47b20f;test(_0x14cf6f(0x19d),async()=>{const _0x3e8d12=_0x14cf6f,{useMessages:_0x2af611}=await import('../../state/useMessages.js'),{SessionManager:_0x69ca30}=await import(_0x3e8d12(0x1c6)),{MessageRouter:_0x415fdb}=await import(_0x3e8d12(0x195)),{WebSocketManager:_0x5215d3}=await import('../../api/websocket.js'),_0x20c113=new _0x69ca30(_0x3e8d12(0x190),0x1f90),_0x4a4fa1=new _0x5215d3(_0x3e8d12(0x190),0x1f90),_0xb26690=new _0x415fdb(_0x4a4fa1);expect(_0x20c113)['toBeDefined'](),expect(_0xb26690)[_0x3e8d12(0x1a0)](),expect(typeof _0x2af611)[_0x3e8d12(0x1b4)](_0x3e8d12(0x1a8));}),test('Full message management stack can be imported together',async()=>{const _0x53d274=_0x14cf6f,[_0x1d9f15,_0x52612f,_0x48dbd9,_0x32417d,_0x3b2db2]=await Promise[_0x53d274(0x191)]([import(_0x53d274(0x1c3)),import(_0x53d274(0x1c6)),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import(_0x53d274(0x1c7))]);expect(_0x1d9f15[_0x53d274(0x19f)])[_0x53d274(0x1a0)](),expect(_0x1d9f15[_0x53d274(0x1bb)])[_0x53d274(0x1a0)](),expect(_0x1d9f15['MESSAGE_CONFIG'])[_0x53d274(0x1a0)](),expect(_0x52612f['SessionManager'])[_0x53d274(0x1a0)](),expect(_0x48dbd9['WebSocketManager'])['toBeDefined'](),expect(_0x32417d['MessageRouter'])[_0x53d274(0x1a0)](),expect(_0x3b2db2[_0x53d274(0x1b3)])[_0x53d274(0x1a0)]();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x236c8c=a0_0x47b20f;test(_0x236c8c(0x19e),async()=>{const _0x4ae65d=_0x236c8c,{API_ENDPOINTS:_0x2bf0a7}=await import('../../config/constants.js');expect(_0x2bf0a7[_0x4ae65d(0x1b8)])[_0x4ae65d(0x1a0)](),expect(_0x2bf0a7[_0x4ae65d(0x1b8)])['toBe']('/api/orchestrator');}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x3a6a88=_0x236c8c,{API_ENDPOINTS:_0x47cc0e}=await import(_0x3a6a88(0x1c3));expect(_0x47cc0e[_0x3a6a88(0x1b8)])['toMatch'](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x33ff83=a0_0x47b20f;test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x42e000=a0_0x5a4c,{useMessages:_0x4fc5cc}=await import(_0x42e000(0x1c7));expect(_0x4fc5cc[_0x42e000(0x199)])[_0x42e000(0x1b4)](0x3);}),test(_0x33ff83(0x1b0),async()=>{const _0x3a8020=_0x33ff83,{useMessageCount:_0x52ddb9}=await import('../../state/useMessages.js');expect(_0x52ddb9[_0x3a8020(0x199)])[_0x3a8020(0x1b4)](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x471e01=a0_0x5a4c,{MESSAGE_CONFIG:_0xf9ad92}=await import('../../config/constants.js');expect(_0xf9ad92[_0x471e01(0x1b6)])[_0x471e01(0x1a9)](0x0),expect(_0xf9ad92[_0x471e01(0x1b6)])['toBeLessThanOrEqual'](0x186a0),expect(_0xf9ad92['MAX_MESSAGES_DISPLAY'])[_0x471e01(0x1a9)](0x0),expect(_0xf9ad92['MAX_MESSAGES_DISPLAY'])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x2f0ec5=a0_0x5a4c,{PAGINATION:_0xbfd8d3}=await import(_0x2f0ec5(0x1c3));expect(_0xbfd8d3['PAGE_SIZE'])['toBeGreaterThan'](0x0),expect(_0xbfd8d3[_0x2f0ec5(0x1af)])[_0x2f0ec5(0x1bf)](0x3e8),expect(_0xbfd8d3[_0x2f0ec5(0x1b2)])['toBeGreaterThanOrEqual'](_0xbfd8d3['PAGE_SIZE']);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x265027=a0_0x5a4c,{MESSAGE_ROLE:_0x1842dc}=await import(_0x265027(0x1c3));expect(_0x1842dc[_0x265027(0x1c1)])['toBe'](_0x1842dc['USER'][_0x265027(0x1bc)]()),expect(_0x1842dc[_0x265027(0x1ae)])[_0x265027(0x1b4)](_0x1842dc[_0x265027(0x1ae)][_0x265027(0x1bc)]()),expect(_0x1842dc['SYSTEM'])[_0x265027(0x1b4)](_0x1842dc[_0x265027(0x1b5)]['toLowerCase']());});}),describe('Message\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{const _0x3ea614=a0_0x47b20f;test(_0x3ea614(0x1ab),async()=>{const _0x4578d3=_0x3ea614,{MessageRouter:_0x4bd1b9}=await import(_0x4578d3(0x195)),{WebSocketManager:_0x2f56b2}=await import(_0x4578d3(0x1b9)),{WS_MESSAGE_TYPE:_0x282ba2}=await import(_0x4578d3(0x1c3)),_0x3108f5=new _0x2f56b2(_0x4578d3(0x190),0x1f90),_0x114d27=new _0x4bd1b9(_0x3108f5);expect(_0x114d27[_0x4578d3(0x1c2)](_0x282ba2[_0x4578d3(0x1a5)]))[_0x4578d3(0x1b4)](!![]),expect(_0x114d27['hasHandler'](_0x282ba2[_0x4578d3(0x192)]))['toBe'](!![]);});}),describe(a0_0x47b20f(0x198),()=>{const _0x2fa3c5=a0_0x47b20f;test(_0x2fa3c5(0x1c9),async()=>{const _0x49b494=_0x2fa3c5,{MESSAGE_CONFIG:_0x22079f}=await import('../../config/constants.js');expect(_0x22079f['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(typeof _0x22079f['MAX_MESSAGE_LENGTH'])[_0x49b494(0x1b4)]('number');const _0x471160='a'[_0x49b494(0x1b1)](_0x22079f['MAX_MESSAGE_LENGTH']+0x1);expect(_0x471160[_0x49b494(0x199)])['toBeGreaterThan'](_0x22079f['MAX_MESSAGE_LENGTH']);}),test(_0x2fa3c5(0x1c4),async()=>{const _0x4a581a=_0x2fa3c5,{MESSAGE_CONFIG:_0x4441b8}=await import('../../config/constants.js');expect(_0x4441b8['MAX_MESSAGES_DISPLAY'])[_0x4a581a(0x1a0)](),expect(typeof _0x4441b8['MAX_MESSAGES_DISPLAY'])['toBe'](_0x4a581a(0x18f)),expect(_0x4441b8[_0x4a581a(0x197)])['toBeGreaterThan'](0x0);});}),describe('Message\x20Management\x20-\x20Pagination\x20Logic',()=>{test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x555195=a0_0x5a4c,{PAGINATION:_0xb9cee0}=await import(_0x555195(0x1c3)),_0x1f6f01=0x0,_0x2b2562=_0x1f6f01*_0xb9cee0[_0x555195(0x1af)];expect(_0x2b2562)[_0x555195(0x1b4)](0x0);const _0x516c25=0x1,_0x12aa31=_0x516c25*_0xb9cee0['PAGE_SIZE'];expect(_0x12aa31)['toBe'](_0xb9cee0['PAGE_SIZE']);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0x12287c=a0_0x5a4c,{PAGINATION:_0x4d7e29}=await import(_0x12287c(0x1c3)),_0x469293=0x3e8,_0x17d8b7=Math['min'](_0x469293,_0x4d7e29['MAX_PAGE_SIZE']);expect(_0x17d8b7)[_0x12287c(0x1bf)](_0x4d7e29[_0x12287c(0x1b2)]);});});
1
+ function a0_0x52d0(){const _0x25765d=['t1jdsevtvfjbve9s','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','rvHfq1vusu9ox1nut1bqruq','nJm4mtm2v0PdyNrc','t3jJAgvZDhjHDg9YigvUzhbVAw50ignHBIbIzsb1C2vKigzVCIbTzxnZywDLig9WzxjHDgLVBNm','DxnLCG','zNvUy3rPB24','tufyx1bbr0vFu0LArq','nZe4s2TPreDO','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','u1Ltvevn','tuvtu0fhrv9dt05gsuC','uefhsu5bveLptIbZDxbWB3j0CYbVzMzZzxqTyMfZzwqGCgfNAw5HDgLVBG','tufyx01fu1nbr0vFtevor1ri','Dg9czuDYzwf0zxjuAgfU','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','Dg9czurLzMLUzwq','Dg9czq','tufyx01fu1nbr0vtx0rju1bmqvK','DxnLtwvZC2fNzxm','DxnLCI1TzxnZywDL','lI4VlI4VyxbPl3nLC3nPB24UANm','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','C3LZDgvT','vvnfuG','mJGXoenqtLrtrW','BgvUz3rO','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','tuvtu0fhrv9brerfra','mJGWndqWBuP4DeXq','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','l2fWAs9VCMnOzxn0CMf0B3i','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','nJCZnte4Agf0B2fX','oeLAwNvhqq','mtr4yxHPq2y','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZifzHBgLKyxrPB24','otaZotmWu3P3Dwr5','Dg9mB3DLCKnHC2u','Dg9czuXLC3nuAgfUt3jfCxvHBa','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','mJyWnZaXnvreteXqAq','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','Dg9nyxrJAa','twvZC2fNzvjVDxrLCIbOyxmGBwvZC2fNzsbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','BNvTyMvY','mZaXoti1ndDkruXWyLG','DxnLtwvZC2fNzxmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','vvnfuL9nrvntquDf','uefhrv9tsvPf','twvZC2fNzvjVDxrLCG','mtq0AMjes3H4','Bg9JywXOB3n0','zxHLy3v0Aw9Ux3n0B3bWzwq','uefhsu5bveLptIbSAw1PDcbKB2vZig5VDcbLEgnLzwqGtufyx1bbr0vFu0LArq'];a0_0x52d0=function(){return _0x25765d;};return a0_0x52d0();}const a0_0xde4df3=a0_0x38a9;function a0_0x38a9(_0x16bccb,_0x379012){_0x16bccb=_0x16bccb-0x19e;const _0x52d03c=a0_0x52d0();let _0x38a945=_0x52d03c[_0x16bccb];if(a0_0x38a9['VYgYaa']===undefined){var _0x53e4ce=function(_0x451a9b){const _0x5203c0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1e6048='',_0x3d124b='';for(let _0x68e7bb=0x0,_0x513b9a,_0x3f91ba,_0x5daa81=0x0;_0x3f91ba=_0x451a9b['charAt'](_0x5daa81++);~_0x3f91ba&&(_0x513b9a=_0x68e7bb%0x4?_0x513b9a*0x40+_0x3f91ba:_0x3f91ba,_0x68e7bb++%0x4)?_0x1e6048+=String['fromCharCode'](0xff&_0x513b9a>>(-0x2*_0x68e7bb&0x6)):0x0){_0x3f91ba=_0x5203c0['indexOf'](_0x3f91ba);}for(let _0x400042=0x0,_0x300e12=_0x1e6048['length'];_0x400042<_0x300e12;_0x400042++){_0x3d124b+='%'+('00'+_0x1e6048['charCodeAt'](_0x400042)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3d124b);};a0_0x38a9['xcEDvn']=_0x53e4ce,a0_0x38a9['mesBNd']={},a0_0x38a9['VYgYaa']=!![];}const _0x58f994=_0x52d03c[0x0],_0x5d1fa6=_0x16bccb+_0x58f994,_0x81fe5a=a0_0x38a9['mesBNd'][_0x5d1fa6];return!_0x81fe5a?(_0x38a945=a0_0x38a9['xcEDvn'](_0x38a945),a0_0x38a9['mesBNd'][_0x5d1fa6]=_0x38a945):_0x38a945=_0x81fe5a,_0x38a945;}(function(_0x10c18d,_0x4633c6){const _0x1bcf54=a0_0x38a9,_0x26dd01=_0x10c18d();while(!![]){try{const _0x3bc104=parseInt(_0x1bcf54(0x1ae))/0x1*(-parseInt(_0x1bcf54(0x1bf))/0x2)+-parseInt(_0x1bcf54(0x1ca))/0x3*(parseInt(_0x1bcf54(0x1cb))/0x4)+-parseInt(_0x1bcf54(0x1d2))/0x5+parseInt(_0x1bcf54(0x1ce))/0x6+parseInt(_0x1bcf54(0x1cc))/0x7*(parseInt(_0x1bcf54(0x1a9))/0x8)+parseInt(_0x1bcf54(0x1a2))/0x9*(-parseInt(_0x1bcf54(0x1c4))/0xa)+parseInt(_0x1bcf54(0x1d7))/0xb;if(_0x3bc104===_0x4633c6)break;else _0x26dd01['push'](_0x26dd01['shift']());}catch(_0x50877e){_0x26dd01['push'](_0x26dd01['shift']());}}}(a0_0x52d0,0x98639));import{describe,test,expect}from'@jest/globals';describe(a0_0xde4df3(0x1c6),()=>{test('useMessages hook can be imported',async()=>{const _0x2a5bd4=a0_0x38a9,{useMessages:_0x1e6048}=await import(_0x2a5bd4(0x1b5));expect(_0x1e6048)['toBeDefined'](),expect(typeof _0x1e6048)['toBe'](_0x2a5bd4(0x1ac));}),test('useMessages is default export',async()=>{const _0x321339=a0_0x38a9,module=await import('../../state/useMessages.js');expect(module['default'])[_0x321339(0x1b6)](),expect(typeof module['default'])['toBe'](_0x321339(0x1ac)),expect(module['default'])['toBe'](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x47336d=a0_0x38a9,{useMessageCount:_0x3d124b}=await import(_0x47336d(0x1b5));expect(_0x3d124b)['toBeDefined'](),expect(typeof _0x3d124b)['toBe']('function');});}),describe(a0_0xde4df3(0x1c2),()=>{const _0x286532=a0_0xde4df3;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x3161b7=a0_0x38a9,{MESSAGE_ROLE:_0x68e7bb}=await import(_0x3161b7(0x1af));expect(_0x68e7bb)[_0x3161b7(0x1b6)](),expect(_0x68e7bb['USER'])[_0x3161b7(0x1b7)](_0x3161b7(0x1ab)),expect(_0x68e7bb['ASSISTANT'])['toBe']('assistant'),expect(_0x68e7bb[_0x3161b7(0x1b0)])['toBe'](_0x3161b7(0x1bd));}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x2c8222=a0_0x38a9,{MESSAGE_TYPE:_0x513b9a}=await import('../../config/constants.js');expect(_0x513b9a)[_0x2c8222(0x1b6)](),expect(_0x513b9a[_0x2c8222(0x19f)])['toBe'](_0x2c8222(0x1ba)),expect(_0x513b9a['AGENT_RESPONSE'])['toBe']('agent-response'),expect(_0x513b9a['SYSTEM_NOTIFICATION'])['toBe']('system-notification');}),test(_0x286532(0x1c5),async()=>{const _0x2f26ba=_0x286532,{MESSAGE_CONFIG:_0x3f91ba}=await import(_0x2f26ba(0x1af));expect(_0x3f91ba)[_0x2f26ba(0x1b6)](),expect(_0x3f91ba[_0x2f26ba(0x1b3)])[_0x2f26ba(0x1b6)](),expect(_0x3f91ba['MAX_MESSAGES_DISPLAY'])[_0x2f26ba(0x1b6)](),expect(typeof _0x3f91ba['MAX_MESSAGE_LENGTH'])[_0x2f26ba(0x1b7)](_0x2f26ba(0x1d6)),expect(typeof _0x3f91ba['MAX_MESSAGES_DISPLAY'])[_0x2f26ba(0x1b7)]('number');}),test(_0x286532(0x1bc),async()=>{const _0x1b0a30=_0x286532,{PAGINATION:_0x5daa81}=await import('../../config/constants.js');expect(_0x5daa81)[_0x1b0a30(0x1b6)](),expect(_0x5daa81[_0x1b0a30(0x1a0)])[_0x1b0a30(0x1b6)](),expect(_0x5daa81['MAX_PAGE_SIZE'])['toBeDefined'](),expect(typeof _0x5daa81['PAGE_SIZE'])['toBe'](_0x1b0a30(0x1d6)),expect(typeof _0x5daa81['MAX_PAGE_SIZE'])[_0x1b0a30(0x1b7)](_0x1b0a30(0x1d6));}),test('WS_MESSAGE_TYPE\x20includes\x20message\x20events',async()=>{const _0x398ea6=_0x286532,{WS_MESSAGE_TYPE:_0x400042}=await import(_0x398ea6(0x1af));expect(_0x400042)['toBeDefined'](),expect(_0x400042[_0x398ea6(0x1c3)])['toBe']('message_added'),expect(_0x400042['AGENT_MODE_CHANGED'])['toBe']('agent_mode_changed'),expect(_0x400042[_0x398ea6(0x1a8)])['toBe'](_0x398ea6(0x1a4));});}),describe(a0_0xde4df3(0x1c1),()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x33f312=a0_0x38a9,{useMessages:_0x300e12}=await import('../../state/useMessages.js'),{SessionManager:_0x52d03f}=await import('../../api/session.js'),{MessageRouter:_0x32f0c8}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x52a500}=await import('../../api/websocket.js'),_0xed65b2=new _0x52d03f('localhost',0x1f90),_0x422814=new _0x52a500(_0x33f312(0x1a3),0x1f90),_0x220d78=new _0x32f0c8(_0x422814);expect(_0xed65b2)[_0x33f312(0x1b6)](),expect(_0x220d78)['toBeDefined'](),expect(typeof _0x300e12)[_0x33f312(0x1b7)]('function');}),test('Full message management stack can be imported together',async()=>{const _0x5b4f61=a0_0x38a9,[_0x3a77ec,_0x243581,_0xab45ba,_0x37b110,_0x1c2504]=await Promise['all']([import(_0x5b4f61(0x1af)),import(_0x5b4f61(0x1bb)),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import('../../state/useMessages.js')]);expect(_0x3a77ec['MESSAGE_ROLE'])['toBeDefined'](),expect(_0x3a77ec['MESSAGE_TYPE'])[_0x5b4f61(0x1b6)](),expect(_0x3a77ec[_0x5b4f61(0x1b1)])['toBeDefined'](),expect(_0x243581['SessionManager'])['toBeDefined'](),expect(_0xab45ba['WebSocketManager'])['toBeDefined'](),expect(_0x37b110[_0x5b4f61(0x1a1)])[_0x5b4f61(0x1b6)](),expect(_0x1c2504[_0x5b4f61(0x1b9)])[_0x5b4f61(0x1b6)]();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x3f4a9f=a0_0xde4df3;test(_0x3f4a9f(0x1aa),async()=>{const _0x43e259=_0x3f4a9f,{API_ENDPOINTS:_0x51115e}=await import(_0x43e259(0x1af));expect(_0x51115e[_0x43e259(0x1a6)])[_0x43e259(0x1b6)](),expect(_0x51115e['ORCHESTRATOR'])[_0x43e259(0x1b7)](_0x43e259(0x1c7));}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x556299=_0x3f4a9f,{API_ENDPOINTS:_0x193370}=await import(_0x556299(0x1af));expect(_0x193370['ORCHESTRATOR'])[_0x556299(0x1d4)](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x57a9ea=a0_0xde4df3;test(_0x57a9ea(0x19e),async()=>{const _0x2f9568=_0x57a9ea,{useMessages:_0xd99186}=await import(_0x2f9568(0x1b5));expect(_0xd99186[_0x2f9568(0x1c0)])['toBe'](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x8ed4d6=_0x57a9ea,{useMessageCount:_0x17dfa5}=await import('../../state/useMessages.js');expect(_0x17dfa5['length'])[_0x8ed4d6(0x1b7)](0x1);});}),describe(a0_0xde4df3(0x1cd),()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x25a485=a0_0x38a9,{MESSAGE_CONFIG:_0x3c7d1a}=await import('../../config/constants.js');expect(_0x3c7d1a['MAX_MESSAGE_LENGTH'])['toBeGreaterThan'](0x0),expect(_0x3c7d1a['MAX_MESSAGE_LENGTH'])[_0x25a485(0x1d0)](0x186a0),expect(_0x3c7d1a[_0x25a485(0x1b8)])[_0x25a485(0x1b4)](0x0),expect(_0x3c7d1a[_0x25a485(0x1b8)])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x3cd5d4=a0_0x38a9,{PAGINATION:_0x122099}=await import('../../config/constants.js');expect(_0x122099[_0x3cd5d4(0x1a0)])['toBeGreaterThan'](0x0),expect(_0x122099['PAGE_SIZE'])['toBeLessThanOrEqual'](0x3e8),expect(_0x122099['MAX_PAGE_SIZE'])[_0x3cd5d4(0x1d1)](_0x122099[_0x3cd5d4(0x1a0)]);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x3ed275=a0_0x38a9,{MESSAGE_ROLE:_0x5b95b5}=await import('../../config/constants.js');expect(_0x5b95b5[_0x3ed275(0x1be)])[_0x3ed275(0x1b7)](_0x5b95b5[_0x3ed275(0x1be)]['toLowerCase']()),expect(_0x5b95b5['ASSISTANT'])['toBe'](_0x5b95b5['ASSISTANT'][_0x3ed275(0x1cf)]()),expect(_0x5b95b5['SYSTEM'])['toBe'](_0x5b95b5[_0x3ed275(0x1b0)]['toLowerCase']());});}),describe(a0_0xde4df3(0x1d3),()=>{const _0x33da45=a0_0xde4df3;test(_0x33da45(0x1d5),async()=>{const _0x18e654=_0x33da45,{MessageRouter:_0x2f095c}=await import(_0x18e654(0x1a7)),{WebSocketManager:_0x1dca1f}=await import(_0x18e654(0x1c8)),{WS_MESSAGE_TYPE:_0xb20252}=await import(_0x18e654(0x1af)),_0x869b74=new _0x1dca1f(_0x18e654(0x1a3),0x1f90),_0x3fd125=new _0x2f095c(_0x869b74);expect(_0x3fd125['hasHandler'](_0xb20252['MESSAGE_ADDED']))[_0x18e654(0x1b7)](!![]),expect(_0x3fd125['hasHandler'](_0xb20252['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe('Message\x20Management\x20-\x20Error\x20Handling',()=>{const _0x5f5ce0=a0_0xde4df3;test(_0x5f5ce0(0x1c9),async()=>{const _0x3db867=_0x5f5ce0,{MESSAGE_CONFIG:_0x5762b0}=await import(_0x3db867(0x1af));expect(_0x5762b0['MAX_MESSAGE_LENGTH'])[_0x3db867(0x1b6)](),expect(typeof _0x5762b0['MAX_MESSAGE_LENGTH'])['toBe'](_0x3db867(0x1d6));const _0x294186='a'['repeat'](_0x5762b0[_0x3db867(0x1b3)]+0x1);expect(_0x294186['length'])[_0x3db867(0x1b4)](_0x5762b0[_0x3db867(0x1b3)]);}),test('MESSAGE_CONFIG\x20enforces\x20maximum\x20display\x20messages',async()=>{const _0x3e386=_0x5f5ce0,{MESSAGE_CONFIG:_0x13aea4}=await import('../../config/constants.js');expect(_0x13aea4['MAX_MESSAGES_DISPLAY'])['toBeDefined'](),expect(typeof _0x13aea4[_0x3e386(0x1b8)])[_0x3e386(0x1b7)]('number'),expect(_0x13aea4[_0x3e386(0x1b8)])['toBeGreaterThan'](0x0);});}),describe('Message\x20Management\x20-\x20Pagination\x20Logic',()=>{const _0x40464a=a0_0xde4df3;test(_0x40464a(0x1b2),async()=>{const _0x4248a4=_0x40464a,{PAGINATION:_0x454780}=await import('../../config/constants.js'),_0x519476=0x0,_0x4d92b6=_0x519476*_0x454780['PAGE_SIZE'];expect(_0x4d92b6)[_0x4248a4(0x1b7)](0x0);const _0x54c95c=0x1,_0xd4fad2=_0x54c95c*_0x454780['PAGE_SIZE'];expect(_0xd4fad2)['toBe'](_0x454780[_0x4248a4(0x1a0)]);}),test(_0x40464a(0x1a5),async()=>{const _0x1b68a6=_0x40464a,{PAGINATION:_0x25a969}=await import(_0x1b68a6(0x1af)),_0x4991ef=0x3e8,_0x170e41=Math['min'](_0x4991ef,_0x25a969[_0x1b68a6(0x1ad)]);expect(_0x170e41)[_0x1b68a6(0x1d0)](_0x25a969[_0x1b68a6(0x1ad)]);});});
@@ -1 +1 @@
1
- const a0_0x59e042=a0_0x46f3;function a0_0x46f3(_0x4c35ed,_0x2ba4e8){_0x4c35ed=_0x4c35ed-0x131;const _0x2e45f4=a0_0x2e45();let _0x46f31e=_0x2e45f4[_0x4c35ed];if(a0_0x46f3['Qqcdoe']===undefined){var _0x4a26b4=function(_0x4576ed){const _0x2fb4be='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3b1028='',_0x1dddcd='';for(let _0x205a41=0x0,_0x4b3798,_0x1d4f72,_0x245f1c=0x0;_0x1d4f72=_0x4576ed['charAt'](_0x245f1c++);~_0x1d4f72&&(_0x4b3798=_0x205a41%0x4?_0x4b3798*0x40+_0x1d4f72:_0x1d4f72,_0x205a41++%0x4)?_0x3b1028+=String['fromCharCode'](0xff&_0x4b3798>>(-0x2*_0x205a41&0x6)):0x0){_0x1d4f72=_0x2fb4be['indexOf'](_0x1d4f72);}for(let _0x55856b=0x0,_0x49d222=_0x3b1028['length'];_0x55856b<_0x49d222;_0x55856b++){_0x1dddcd+='%'+('00'+_0x3b1028['charCodeAt'](_0x55856b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1dddcd);};a0_0x46f3['SRFBHx']=_0x4a26b4,a0_0x46f3['LYdCKz']={},a0_0x46f3['Qqcdoe']=!![];}const _0x5660b6=_0x2e45f4[0x0],_0x1fa5d2=_0x4c35ed+_0x5660b6,_0x5885b0=a0_0x46f3['LYdCKz'][_0x1fa5d2];return!_0x5885b0?(_0x46f31e=a0_0x46f3['SRFBHx'](_0x46f31e),a0_0x46f3['LYdCKz'][_0x1fa5d2]=_0x46f31e):_0x46f31e=_0x5885b0,_0x46f31e;}(function(_0x1726b8,_0x519c5c){const _0x3735c3=a0_0x46f3,_0x9a161b=_0x1726b8();while(!![]){try{const _0x23d4b9=-parseInt(_0x3735c3(0x17e))/0x1*(parseInt(_0x3735c3(0x168))/0x2)+parseInt(_0x3735c3(0x150))/0x3+parseInt(_0x3735c3(0x17a))/0x4+-parseInt(_0x3735c3(0x16e))/0x5+-parseInt(_0x3735c3(0x16c))/0x6+-parseInt(_0x3735c3(0x175))/0x7+parseInt(_0x3735c3(0x141))/0x8*(parseInt(_0x3735c3(0x15e))/0x9);if(_0x23d4b9===_0x519c5c)break;else _0x9a161b['push'](_0x9a161b['shift']());}catch(_0x12a753){_0x9a161b['push'](_0x9a161b['shift']());}}}(a0_0x2e45,0x6f298));import{describe,test,expect}from'@jest/globals';describe(a0_0x59e042(0x17f),()=>{test('useTools hook can be imported',async()=>{const _0x19a8d7=a0_0x46f3,{useTools:_0x3b1028}=await import('../../state/useTools.js');expect(_0x3b1028)[_0x19a8d7(0x138)](),expect(typeof _0x3b1028)['toBe'](_0x19a8d7(0x14b));}),test('useTools is default export',async()=>{const _0x484188=a0_0x46f3,module=await import(_0x484188(0x132));expect(module['default'])['toBeDefined'](),expect(typeof module[_0x484188(0x15c)])['toBe']('function'),expect(module['default'])[_0x484188(0x173)](module['useTools']);});}),describe(a0_0x59e042(0x179),()=>{const _0x3f2bb6=a0_0x59e042;test(_0x3f2bb6(0x13d),async()=>{const _0x1b28bb=_0x3f2bb6,{TOOL_CATEGORY:_0x1dddcd}=await import('../../config/constants.js');expect(_0x1dddcd)[_0x1b28bb(0x138)](),expect(_0x1dddcd['SYSTEM'])['toBeDefined'](),expect(_0x1dddcd[_0x1b28bb(0x14a)])[_0x1b28bb(0x138)](),expect(_0x1dddcd[_0x1b28bb(0x151)])['toBeDefined'](),expect(_0x1dddcd[_0x1b28bb(0x165)])[_0x1b28bb(0x138)](),expect(_0x1dddcd['COLLABORATION'])['toBeDefined'](),expect(_0x1dddcd['AI'])[_0x1b28bb(0x138)]();}),test('TOOL_CATEGORY\x20values\x20are\x20lowercase',async()=>{const _0x46b3ca=_0x3f2bb6,{TOOL_CATEGORY:_0x205a41}=await import(_0x46b3ca(0x154));expect(_0x205a41[_0x46b3ca(0x156)])[_0x46b3ca(0x173)](_0x205a41[_0x46b3ca(0x156)][_0x46b3ca(0x158)]()),expect(_0x205a41['AUTOMATION'])['toBe'](_0x205a41[_0x46b3ca(0x14a)]['toLowerCase']()),expect(_0x205a41['ANALYSIS'])['toBe'](_0x205a41['ANALYSIS'][_0x46b3ca(0x158)]()),expect(_0x205a41['UTILITY'])['toBe'](_0x205a41[_0x46b3ca(0x165)]['toLowerCase']());}),test('Tools\x20API\x20endpoint\x20is\x20defined',async()=>{const _0x427ce9=_0x3f2bb6,{API_ENDPOINTS:_0x4b3798}=await import('../../config/constants.js');expect(_0x4b3798['TOOLS'])[_0x427ce9(0x138)](),expect(_0x4b3798[_0x427ce9(0x139)])['toBe'](_0x427ce9(0x145));}),test(_0x3f2bb6(0x178),async()=>{const _0x2b0234=_0x3f2bb6,{API_ENDPOINTS:_0x1d4f72}=await import('../../config/constants.js');expect(_0x1d4f72['ORCHESTRATOR'])['toBeDefined'](),expect(_0x1d4f72[_0x2b0234(0x155)])[_0x2b0234(0x173)](_0x2b0234(0x143));});}),describe('Tools\x20Management\x20-\x20Integration',()=>{test('useTools\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x4c057c=a0_0x46f3,{useTools:_0x245f1c}=await import(_0x4c057c(0x132)),{SessionManager:_0x55856b}=await import(_0x4c057c(0x14d)),{MessageRouter:_0x49d222}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x3766de}=await import('../../api/websocket.js'),_0x4fefe9=new _0x55856b(_0x4c057c(0x164),0x1f90),_0x279b4d=new _0x3766de('localhost',0x1f90),_0x20a7f1=new _0x49d222(_0x279b4d);expect(_0x4fefe9)['toBeDefined'](),expect(_0x20a7f1)[_0x4c057c(0x138)](),expect(typeof _0x245f1c)['toBe'](_0x4c057c(0x14b));}),test('Full tools management stack can be imported together',async()=>{const _0x3e151c=a0_0x46f3,[_0x168e7a,_0x3075a9,_0x41492a,_0x436e19,_0x4b691a]=await Promise['all']([import(_0x3e151c(0x154)),import('../../api/session.js'),import(_0x3e151c(0x136)),import(_0x3e151c(0x140)),import(_0x3e151c(0x132))]);expect(_0x168e7a[_0x3e151c(0x135)])['toBeDefined'](),expect(_0x168e7a[_0x3e151c(0x16d)])['toBeDefined'](),expect(_0x3075a9['SessionManager'])['toBeDefined'](),expect(_0x41492a['WebSocketManager'])['toBeDefined'](),expect(_0x436e19['MessageRouter'])[_0x3e151c(0x138)](),expect(_0x4b691a[_0x3e151c(0x157)])['toBeDefined']();});}),describe('Tools\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x317cd1=a0_0x59e042;test('Tools\x20endpoint\x20follows\x20RESTful\x20pattern',async()=>{const _0x2566ba=a0_0x46f3,{API_ENDPOINTS:_0x3f4e2c}=await import(_0x2566ba(0x154));expect(_0x3f4e2c['TOOLS'])[_0x2566ba(0x13b)](/^\/api\//),expect(_0x3f4e2c[_0x2566ba(0x139)])['toBe']('/api/tools');}),test(_0x317cd1(0x15a),async()=>{const _0x606bb2=_0x317cd1,{API_ENDPOINTS:_0x25df38}=await import(_0x606bb2(0x154));expect(_0x25df38[_0x606bb2(0x155)])[_0x606bb2(0x138)](),expect(_0x25df38[_0x606bb2(0x155)])['toBe'](_0x606bb2(0x143));});}),describe('Tools\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useTools\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x56bae4=a0_0x46f3,{useTools:_0x5620cf}=await import(_0x56bae4(0x132));expect(_0x5620cf['length'])[_0x56bae4(0x173)](0x3);});}),describe(a0_0x59e042(0x163),()=>{const _0x37db4f=a0_0x59e042;test(_0x37db4f(0x14f),async()=>{const _0x1dfb65=_0x37db4f,{TOOL_CATEGORY:_0x3dd337}=await import(_0x1dfb65(0x154)),_0x353c0e=Object[_0x1dfb65(0x16f)](_0x3dd337);expect(_0x353c0e)[_0x1dfb65(0x174)](_0x1dfb65(0x156)),expect(_0x353c0e)['toContain']('AUTOMATION'),expect(_0x353c0e)['toContain'](_0x1dfb65(0x151)),expect(_0x353c0e)['toContain']('UTILITY'),expect(_0x353c0e)[_0x1dfb65(0x174)]('COLLABORATION'),expect(_0x353c0e)[_0x1dfb65(0x174)]('AI');}),test('TOOL_CATEGORY\x20values\x20match\x20expected\x20format',async()=>{const _0x11b7bb=_0x37db4f,{TOOL_CATEGORY:_0x1c31f8}=await import(_0x11b7bb(0x154));expect(_0x1c31f8['SYSTEM'])[_0x11b7bb(0x13b)](/^[a-z_]+$/),expect(_0x1c31f8[_0x11b7bb(0x14a)])['toMatch'](/^[a-z_]+$/),expect(_0x1c31f8[_0x11b7bb(0x151)])['toMatch'](/^[a-z_]+$/),expect(_0x1c31f8['UTILITY'])[_0x11b7bb(0x13b)](/^[a-z_]+$/);});}),describe('Tools\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{const _0x3e8f80=a0_0x59e042;test(_0x3e8f80(0x152),async()=>{const _0x49221c=_0x3e8f80,{MessageRouter:_0x16b4ad}=await import(_0x49221c(0x140)),{WebSocketManager:_0x1b668e}=await import(_0x49221c(0x136)),_0x3f0361=new _0x1b668e('localhost',0x1f90),_0x211e4d=new _0x16b4ad(_0x3f0361);expect(_0x211e4d['hasHandler'])['toBeDefined'](),expect(typeof _0x211e4d['hasHandler'])[_0x49221c(0x173)]('function');});}),describe(a0_0x59e042(0x160),()=>{test('TOOL_CATEGORY\x20can\x20be\x20used\x20to\x20filter\x20tools\x20by\x20category',async()=>{const _0x9f823b=a0_0x46f3,{TOOL_CATEGORY:_0xa79b46}=await import(_0x9f823b(0x154)),_0x46f821=[{'name':_0x9f823b(0x14c),'category':_0xa79b46[_0x9f823b(0x156)]},{'name':'terminal','category':_0xa79b46['SYSTEM']},{'name':_0x9f823b(0x13a),'category':_0xa79b46[_0x9f823b(0x151)]},{'name':_0x9f823b(0x13c),'category':_0xa79b46['UTILITY']},{'name':'ai_assistant','category':_0xa79b46['AI']}],_0x239a3d=_0x46f821[_0x9f823b(0x171)](_0x5184ff=>_0x5184ff['category']===_0xa79b46['SYSTEM']),_0x16dfc9=_0x46f821[_0x9f823b(0x171)](_0x41c2df=>_0x41c2df[_0x9f823b(0x166)]===_0xa79b46[_0x9f823b(0x151)]),_0x456644=_0x46f821[_0x9f823b(0x171)](_0x434d00=>_0x434d00[_0x9f823b(0x166)]===_0xa79b46[_0x9f823b(0x165)]),_0x3c5c84=_0x46f821[_0x9f823b(0x171)](_0x174598=>_0x174598['category']===_0xa79b46['AI']);expect(_0x239a3d[_0x9f823b(0x14e)])[_0x9f823b(0x173)](0x2),expect(_0x16dfc9['length'])['toBe'](0x1),expect(_0x456644[_0x9f823b(0x14e)])[_0x9f823b(0x173)](0x1),expect(_0x3c5c84['length'])[_0x9f823b(0x173)](0x1),expect(_0x239a3d[0x0][_0x9f823b(0x169)])['toBe'](_0x9f823b(0x14c)),expect(_0x16dfc9[0x0]['name'])['toBe'](_0x9f823b(0x13a));});}),describe('Tools\x20Management\x20-\x20Tool\x20Search',()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x15239c=a0_0x46f3,_0x421abb=[{'name':_0x15239c(0x176),'description':'Read\x20contents\x20of\x20a\x20file'},{'name':_0x15239c(0x159),'description':_0x15239c(0x133)},{'name':'analyze_code','description':_0x15239c(0x16a)}],_0x229397=_0x4354f9=>{const _0x574148=_0x15239c,_0xc80b3e=_0x4354f9[_0x574148(0x158)]();return _0x421abb['filter'](_0x321de2=>_0x321de2['name']?.['toLowerCase']()[_0x574148(0x17b)](_0xc80b3e)||_0x321de2['description']?.[_0x574148(0x158)]()['includes'](_0xc80b3e));},_0x260b93=_0x229397(_0x15239c(0x149));expect(_0x260b93[_0x15239c(0x14e)])['toBe'](0x2),expect(_0x260b93[_0x15239c(0x144)](_0x13a51f=>_0x13a51f[_0x15239c(0x169)]))[_0x15239c(0x174)](_0x15239c(0x176)),expect(_0x260b93['map'](_0x47f929=>_0x47f929[_0x15239c(0x169)]))[_0x15239c(0x174)](_0x15239c(0x159));const _0x3b67e8=_0x229397('analyze');expect(_0x3b67e8['length'])[_0x15239c(0x173)](0x1),expect(_0x3b67e8[0x0]['name'])[_0x15239c(0x173)](_0x15239c(0x13a));});}),describe(a0_0x59e042(0x13e),()=>{const _0x16fca7=a0_0x59e042;test(_0x16fca7(0x17d),async()=>{const _0x4c665d=_0x16fca7,_0x56054c=new Set();_0x56054c[_0x4c665d(0x177)]('read_file'),_0x56054c[_0x4c665d(0x177)](_0x4c665d(0x13a)),expect(_0x56054c['has']('read_file'))[_0x4c665d(0x173)](!![]),expect(_0x56054c['has'](_0x4c665d(0x13a)))[_0x4c665d(0x173)](!![]),expect(_0x56054c['size'])[_0x4c665d(0x173)](0x2),_0x56054c[_0x4c665d(0x170)](_0x4c665d(0x176)),expect(_0x56054c[_0x4c665d(0x147)](_0x4c665d(0x176)))['toBe'](![]),expect(_0x56054c[_0x4c665d(0x147)](_0x4c665d(0x13a)))['toBe'](!![]),expect(_0x56054c[_0x4c665d(0x137)])['toBe'](0x1);}),test(_0x16fca7(0x15b),async()=>{const _0x34a79c=_0x16fca7,_0x22d2ae=new Map();_0x22d2ae[_0x34a79c(0x13f)]('exec-1',{'success':!![],'data':'file\x20contents'}),_0x22d2ae['set']('exec-2',{'success':!![],'data':{'issues':[]}}),expect(_0x22d2ae[_0x34a79c(0x162)](_0x34a79c(0x153)))['toBeDefined'](),expect(_0x22d2ae['get']('exec-1')[_0x34a79c(0x161)])['toBe'](!![]),expect(_0x22d2ae[_0x34a79c(0x162)]('exec-1')['data'])[_0x34a79c(0x173)](_0x34a79c(0x15d)),expect(_0x22d2ae[_0x34a79c(0x162)]('exec-2'))[_0x34a79c(0x138)](),expect(_0x22d2ae['get']('exec-2')[_0x34a79c(0x131)]['issues'])[_0x34a79c(0x16b)]([]),expect(_0x22d2ae['size'])[_0x34a79c(0x173)](0x2);});}),describe(a0_0x59e042(0x134),()=>{test('Tool\x20cache\x20supports\x20TTL-based\x20caching',async()=>{const _0x43ec25=0x927c0;let _0x5d6057=null,_0x20b132=0x0;const _0x265ba8=[{'name':'read_file'}];_0x5d6057=_0x265ba8,_0x20b132=Date['now']();const _0x39d49e=Date['now'](),_0x2f6041=_0x39d49e-_0x20b132<_0x43ec25;expect(_0x2f6041)['toBe'](!![]),expect(_0x5d6057)['toBe'](_0x265ba8);}),test('Tool\x20cache\x20expires\x20after\x20TTL',async()=>{const _0x3d75dd=a0_0x46f3,_0x4c271f=0x64;let _0x16f11a=null,_0x52ac5e=0x0;const _0x332ecb=[{'name':'read_file'}];_0x16f11a=_0x332ecb,_0x52ac5e=Date['now'](),await new Promise(_0x21d777=>setTimeout(_0x21d777,0x96));const _0x40d02e=Date[_0x3d75dd(0x17c)](),_0x3298e8=_0x40d02e-_0x52ac5e<_0x4c271f;expect(_0x3298e8)[_0x3d75dd(0x173)](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{const _0x2617af=a0_0x59e042;test(_0x2617af(0x146),async()=>{const _0x106891=_0x2617af,{TOOL_CATEGORY:_0x273973}=await import(_0x106891(0x154)),_0x5cbe8f=[{'name':'execute_command','category':_0x273973['SYSTEM'],'enabled':!![]},{'name':'terminal','category':_0x273973['SYSTEM'],'enabled':![]},{'name':'analyze_code','category':_0x273973['ANALYSIS'],'enabled':!![]}],_0x13f5cf=_0x39384c=>{const _0xb07fce=_0x106891;let _0x46da28=[..._0x5cbe8f];return _0x39384c['category']&&(_0x46da28=_0x46da28['filter'](_0x2978e1=>_0x2978e1['category']===_0x39384c['category'])),_0x39384c['enabled']!==undefined&&(_0x46da28=_0x46da28['filter'](_0x33b971=>_0x33b971['enabled']===_0x39384c[_0xb07fce(0x172)])),_0x46da28;},_0x181b7e=_0x13f5cf({'category':_0x273973[_0x106891(0x156)]});expect(_0x181b7e['length'])[_0x106891(0x173)](0x2);const _0x70f141=_0x13f5cf({'enabled':!![]});expect(_0x70f141[_0x106891(0x14e)])['toBe'](0x2);const _0x577e94=_0x13f5cf({'category':_0x273973[_0x106891(0x156)],'enabled':!![]});expect(_0x577e94['length'])['toBe'](0x1),expect(_0x577e94[0x0][_0x106891(0x169)])['toBe'](_0x106891(0x14c));});}),describe(a0_0x59e042(0x15f),()=>{const _0x35c58a=a0_0x59e042;test(_0x35c58a(0x148),async()=>{const _0x4dec74=_0x35c58a,{TOOL_CATEGORY:_0x1c6fd6}=await import('../../config/constants.js'),_0x1a1d86=[{'name':_0x4dec74(0x14c),'category':_0x1c6fd6['SYSTEM']},{'name':_0x4dec74(0x142),'category':_0x1c6fd6['SYSTEM']},{'name':_0x4dec74(0x13a),'category':_0x1c6fd6[_0x4dec74(0x151)]},{'name':'web_search','category':_0x1c6fd6[_0x4dec74(0x165)]}],_0x237a80=_0x482170=>{const _0x31ae98=_0x4dec74,_0x125827={};for(const _0x4e40d8 of Object[_0x31ae98(0x167)](_0x1c6fd6)){_0x125827[_0x4e40d8]=_0x482170['filter'](_0x462b53=>_0x462b53[_0x31ae98(0x166)]===_0x4e40d8)[_0x31ae98(0x14e)];}return _0x125827;},_0x40e68d=_0x237a80(_0x1a1d86);expect(_0x40e68d[_0x1c6fd6[_0x4dec74(0x156)]])['toBe'](0x2),expect(_0x40e68d[_0x1c6fd6[_0x4dec74(0x151)]])['toBe'](0x1),expect(_0x40e68d[_0x1c6fd6['UTILITY']])[_0x4dec74(0x173)](0x1),expect(_0x40e68d[_0x1c6fd6[_0x4dec74(0x14a)]])['toBe'](0x0);});});function a0_0x2e45(){const _0xbec6f7=['ve9ptfm','yw5HBhL6zv9JB2rL','Dg9nyxrJAa','D2vIx3nLyxjJAa','ve9ptf9dqvrfr09swsbJB25ZDgfUDhmGyxjLigrLzMLUzwq','vg9VBhmGtwfUywDLBwvUDcaTiev4zwn1DgLVBIbtDgf0zsbuCMfJA2LUzW','C2v0','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','mJryCejIsM4','DgvYBwLUywW','l2fWAs9VCMnOzxn0CMf0B3i','BwfW','l2fWAs90B29SCW','vg9VBhmGy2fUigjLigzPBhrLCMvKigj5ig11BhrPCgXLignYAxrLCMLH','AgfZ','q2f0zwDVCNKGy291BNrZignHBIbIzsbJywXJDwXHDgvK','zMLSzq','qvvut01bveLptG','zNvUy3rPB24','zxHLy3v0zv9JB21Tyw5K','lI4VlI4VyxbPl3nLC3nPB24UANm','BgvUz3rO','ve9ptf9dqvrfr09swsbPBMnSDwrLCYbHBgWGBwfQB3iGy2f0zwDVCMLLCW','nJGZnZu0uwXNwNLN','qu5btfLtsvm','twvZC2fNzvjVDxrLCIbOyxmGDg9VBcbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','zxHLyY0X','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','t1jdsevtvfjbve9s','u1Ltvevn','DxnLvg9VBhm','Dg9mB3DLCKnHC2u','D3jPDgvFzMLSzq','vg9VBcbVCgvYyxrPB25ZihvZzsbVCMnOzxn0CMf0B3iGzw5KCg9PBNq','vg9VBcbYzxn1BhrZignHBIbIzsbZDg9YzwqGyNKGzxHLy3v0Aw9UieLe','zgvMyxvSDa','zMLSzsbJB250zw50CW','mZu3ntCYn0rQwvD4CW','vg9VBhmGtwfUywDLBwvUDcaTienHDgvNB3j5ienVDw50CW','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2f0zwDVCML6yxrPB24','C3vJy2vZCW','z2v0','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CYbwywXPzgf0Aw9U','Bg9JywXOB3n0','vvrjteLuwq','y2f0zwDVCNK','DMfSDwvZ','mteZndGXoeXJtNbLuW','BMfTzq','ugvYzM9YBsbZDgf0AwmGy29KzsbHBMfSExnPCW','Dg9fCxvHBa','mZm0otC0EeDPwLnR','qvbjx0vorfbpsu5uuW','mZGYodG2meDIrwDSyW','A2v5CW','zgvSzxrL','zMLSDgvY','zw5HyMXLza','Dg9czq','Dg9dB250ywLU','ndK3mZKYEhnxEfDq','CMvHzf9MAwXL','ywrK','t3jJAgvZDhjHDg9YigvUzhbVAw50igLZihvZzwqGzM9YihrVB2WGB3bLCMf0Aw9UCW','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CW','mtK4mJiZnM5Uue9iEG','Aw5JBhvKzxm','BM93','rxHLy3v0Aw9Uihn0yxrLignHBIb0CMfJAYbTDwX0AxbSzsb0B29SCW','murmuwnvAW','vg9VBhmGtwfUywDLBwvUDcaTieLTCg9YDhm','zgf0yq','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','v3jPDguGzgf0ysb0BYbHigzPBgu','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','ve9ptf9dqvrfr09swq','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','C2L6zq','Dg9czurLzMLUzwq'];a0_0x2e45=function(){return _0xbec6f7;};return a0_0x2e45();}
1
+ function a0_0x369c(_0x101cc0,_0x17a455){_0x101cc0=_0x101cc0-0xdd;const _0x362b9a=a0_0x362b();let _0x369caa=_0x362b9a[_0x101cc0];if(a0_0x369c['RLFNTG']===undefined){var _0x1441c7=function(_0x22e82a){const _0x3cc00='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4927e7='',_0x40abd0='';for(let _0x3c37a4=0x0,_0x15864e,_0xf0795c,_0x10ce97=0x0;_0xf0795c=_0x22e82a['charAt'](_0x10ce97++);~_0xf0795c&&(_0x15864e=_0x3c37a4%0x4?_0x15864e*0x40+_0xf0795c:_0xf0795c,_0x3c37a4++%0x4)?_0x4927e7+=String['fromCharCode'](0xff&_0x15864e>>(-0x2*_0x3c37a4&0x6)):0x0){_0xf0795c=_0x3cc00['indexOf'](_0xf0795c);}for(let _0x5e91b7=0x0,_0x9c5bfc=_0x4927e7['length'];_0x5e91b7<_0x9c5bfc;_0x5e91b7++){_0x40abd0+='%'+('00'+_0x4927e7['charCodeAt'](_0x5e91b7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x40abd0);};a0_0x369c['dnnuaS']=_0x1441c7,a0_0x369c['FOoKLx']={},a0_0x369c['RLFNTG']=!![];}const _0x7f6e5f=_0x362b9a[0x0],_0x2eb563=_0x101cc0+_0x7f6e5f,_0x4006ae=a0_0x369c['FOoKLx'][_0x2eb563];return!_0x4006ae?(_0x369caa=a0_0x369c['dnnuaS'](_0x369caa),a0_0x369c['FOoKLx'][_0x2eb563]=_0x369caa):_0x369caa=_0x4006ae,_0x369caa;}const a0_0xf768f4=a0_0x369c;function a0_0x362b(){const _0xe701c4=['t3jJAgvZDhjHDg9YigvUzhbVAw50igLZihvZzwqGzM9YihrVB2WGB3bLCMf0Aw9UCW','vg9VBhmGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','zMLSzsbJB250zw50CW','zxHLyY0Y','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGrMLSDgvYAw5N','t1jdsevtvfjbve9s','BwfW','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','D3jPDgvFzMLSzq','vg9VBhmGzw5KCg9PBNqGzM9SBg93CYbsrvnuzNvSihbHDhrLCM4','BMfTzq','mJK4mta0yNnmCenw','vg9VBcbVCgvYyxrPB25ZihvZzsbVCMnOzxn0CMf0B3iGzw5KCg9PBNq','CMvHzf9MAwXL','ywLFyxnZAxn0yw50','z2v0','u2vZC2LVBK1HBMfNzxi','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','BgvUz3rO','AgfZsgfUzgXLCG','mtrruxfPBu4','u1Ltvevn','y2f0zwDVCNK','l2fWAs90B29SCW','zgf0yq','mJe5nJmWDeTNCMfr','qvbjx0vorfbpsu5uuW','DMfSDwvZ','qvvut01bveLptG','Dg9czq','Dg9nyxrJAa','ve9ptfm','yw5HBhL6zv9JB2rL','qu5btfLtsvm','zgvSzxrL','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','ve9ptf9dqvrfr09swsb2ywX1zxmGBwf0y2GGzxHWzwn0zwqGzM9YBwf0','Dg9czurLzMLUzwq','AgfZ','Dg9mB3DLCKnHC2u','zxHLy3v0zv9JB21Tyw5K','C2L6zq','vvrjteLuwq','DgvYBwLUywW','vg9VBhmGtwfUywDLBwvUDcaTiev4zwn1DgLVBIbtDgf0zsbuCMfJA2LUzW','Dg9dB250ywLU','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CW','zw5HyMXLza','Aw5JBhvKzxm','zgvMyxvSDa','C2v0','zMLSDgvY','vg9VBhmGtwfUywDLBwvUDcaTienHDgvNB3j5ienVDw50CW','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','mtCXnZq3mMjkswLUza','vg9VBhmGy2fUigjLigzPBhrLCMvKigj5ig11BhrPCgXLignYAxrLCMLH','zNvUy3rPB24','zxHLyY0X','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','vg9VBcbYzxn1BhrZignHBIbIzsbZDg9YzwqGyNKGzxHLy3v0Aw9UieLe','ugvYzM9YBsbZDgf0AwmGy29KzsbHBMfSExnPCW','odG1ndqWsgryCKH2','nda3mdG5oxbxzgzuzG','Dg9fCxvHBa','ntK5nZaYng9prLr2wq','ntCYmti1tKHZz0X1'];a0_0x362b=function(){return _0xe701c4;};return a0_0x362b();}(function(_0x20e1cd,_0x56a701){const _0x333bff=a0_0x369c,_0x517cd5=_0x20e1cd();while(!![]){try{const _0x20d324=parseInt(_0x333bff(0x112))/0x1+parseInt(_0x333bff(0xe9))/0x2*(parseInt(_0x333bff(0xee))/0x3)+parseInt(_0x333bff(0x10b))/0x4+parseInt(_0x333bff(0x116))/0x5+parseInt(_0x333bff(0xe0))/0x6+-parseInt(_0x333bff(0x113))/0x7+-parseInt(_0x333bff(0x115))/0x8;if(_0x20d324===_0x56a701)break;else _0x517cd5['push'](_0x517cd5['shift']());}catch(_0x11eb0c){_0x517cd5['push'](_0x517cd5['shift']());}}}(a0_0x362b,0xa12ea));import{describe,test,expect}from'@jest/globals';describe('Tools\x20Management\x20-\x20Imports',()=>{test('useTools hook can be imported',async()=>{const _0x272d81=a0_0x369c,{useTools:_0x4927e7}=await import(_0x272d81(0xf8));expect(_0x4927e7)[_0x272d81(0xfa)](),expect(typeof _0x4927e7)[_0x272d81(0xf2)]('function');}),test('useTools is default export',async()=>{const _0x15cab4=a0_0x369c,module=await import('../../state/useTools.js');expect(module[_0x15cab4(0x106)])[_0x15cab4(0xfa)](),expect(typeof module['default'])['toBe']('function'),expect(module[_0x15cab4(0x106)])[_0x15cab4(0xf2)](module['useTools']);});}),describe(a0_0xf768f4(0x103),()=>{const _0x2748b6=a0_0xf768f4;test('TOOL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x2f439b=a0_0x369c,{TOOL_CATEGORY:_0x40abd0}=await import(_0x2f439b(0xe6));expect(_0x40abd0)[_0x2f439b(0xfa)](),expect(_0x40abd0['SYSTEM'])[_0x2f439b(0xfa)](),expect(_0x40abd0[_0x2f439b(0xf1)])[_0x2f439b(0xfa)](),expect(_0x40abd0[_0x2f439b(0xf6)])[_0x2f439b(0xfa)](),expect(_0x40abd0['UTILITY'])[_0x2f439b(0xfa)](),expect(_0x40abd0['COLLABORATION'])['toBeDefined'](),expect(_0x40abd0['AI'])['toBeDefined']();}),test('TOOL_CATEGORY\x20values\x20are\x20lowercase',async()=>{const _0x2ffa6d=a0_0x369c,{TOOL_CATEGORY:_0x3c37a4}=await import(_0x2ffa6d(0xe6));expect(_0x3c37a4[_0x2ffa6d(0xea)])[_0x2ffa6d(0xf2)](_0x3c37a4['SYSTEM'][_0x2ffa6d(0xfc)]()),expect(_0x3c37a4[_0x2ffa6d(0xf1)])[_0x2ffa6d(0xf2)](_0x3c37a4['AUTOMATION']['toLowerCase']()),expect(_0x3c37a4[_0x2ffa6d(0xf6)])[_0x2ffa6d(0xf2)](_0x3c37a4['ANALYSIS'][_0x2ffa6d(0xfc)]()),expect(_0x3c37a4[_0x2ffa6d(0xff)])['toBe'](_0x3c37a4['UTILITY'][_0x2ffa6d(0xfc)]());}),test('Tools\x20API\x20endpoint\x20is\x20defined',async()=>{const _0x5228f6=a0_0x369c,{API_ENDPOINTS:_0x15864e}=await import('../../config/constants.js');expect(_0x15864e[_0x5228f6(0xf4)])['toBeDefined'](),expect(_0x15864e[_0x5228f6(0xf4)])['toBe'](_0x5228f6(0xec));}),test(_0x2748b6(0x117),async()=>{const _0x4481f6=_0x2748b6,{API_ENDPOINTS:_0xf0795c}=await import('../../config/constants.js');expect(_0xf0795c[_0x4481f6(0x11c)])['toBeDefined'](),expect(_0xf0795c['ORCHESTRATOR'])[_0x4481f6(0xf2)]('/api/orchestrator');});}),describe(a0_0xf768f4(0x118),()=>{test('useTools\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x4815d2=a0_0x369c,{useTools:_0x10ce97}=await import(_0x4815d2(0xf8)),{SessionManager:_0x5e91b7}=await import('../../api/session.js'),{MessageRouter:_0x9c5bfc}=await import(_0x4815d2(0x10a)),{WebSocketManager:_0x2117b5}=await import(_0x4815d2(0x11e)),_0x2cee97=new _0x5e91b7('localhost',0x1f90),_0x115f26=new _0x2117b5('localhost',0x1f90),_0x5451b5=new _0x9c5bfc(_0x115f26);expect(_0x2cee97)[_0x4815d2(0xfa)](),expect(_0x5451b5)['toBeDefined'](),expect(typeof _0x10ce97)[_0x4815d2(0xf2)](_0x4815d2(0x10d));}),test('Full tools management stack can be imported together',async()=>{const _0x1e19d7=a0_0x369c,[_0x1cb4be,_0x54566b,_0x550653,_0x340c29,_0x914b81]=await Promise['all']([import(_0x1e19d7(0xe6)),import('../../api/session.js'),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import(_0x1e19d7(0xf8))]);expect(_0x1cb4be['TOOL_CATEGORY'])[_0x1e19d7(0xfa)](),expect(_0x1cb4be[_0x1e19d7(0xef)])[_0x1e19d7(0xfa)](),expect(_0x54566b[_0x1e19d7(0xe5)])['toBeDefined'](),expect(_0x550653['WebSocketManager'])['toBeDefined'](),expect(_0x340c29['MessageRouter'])[_0x1e19d7(0xfa)](),expect(_0x914b81['useTools'])[_0x1e19d7(0xfa)]();});}),describe('Tools\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x22284e=a0_0xf768f4;test(_0x22284e(0xde),async()=>{const _0x515bea=_0x22284e,{API_ENDPOINTS:_0x30ac4d}=await import(_0x515bea(0xe6));expect(_0x30ac4d['TOOLS'])[_0x515bea(0xf3)](/^\/api\//),expect(_0x30ac4d['TOOLS'])[_0x515bea(0xf2)]('/api/tools');}),test(_0x22284e(0xe1),async()=>{const _0x23d383=_0x22284e,{API_ENDPOINTS:_0x9dc8f7}=await import('../../config/constants.js');expect(_0x9dc8f7[_0x23d383(0x11c)])['toBeDefined'](),expect(_0x9dc8f7[_0x23d383(0x11c)])['toBe']('/api/orchestrator');});}),describe('Tools\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useTools\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x37b6f0=a0_0x369c,{useTools:_0x323ad2}=await import(_0x37b6f0(0xf8));expect(_0x323ad2['length'])[_0x37b6f0(0xf2)](0x3);});}),describe('Tools\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x101832=a0_0xf768f4;test('TOOL_CATEGORY\x20includes\x20all\x20major\x20categories',async()=>{const _0x5e61bf=a0_0x369c,{TOOL_CATEGORY:_0x23d0d7}=await import(_0x5e61bf(0xe6)),_0x445858=Object['keys'](_0x23d0d7);expect(_0x445858)[_0x5e61bf(0x102)](_0x5e61bf(0xea)),expect(_0x445858)[_0x5e61bf(0x102)]('AUTOMATION'),expect(_0x445858)['toContain'](_0x5e61bf(0xf6)),expect(_0x445858)[_0x5e61bf(0x102)](_0x5e61bf(0xff)),expect(_0x445858)['toContain']('COLLABORATION'),expect(_0x445858)[_0x5e61bf(0x102)]('AI');}),test(_0x101832(0xf9),async()=>{const _0x2c276f=_0x101832,{TOOL_CATEGORY:_0x1394aa}=await import('../../config/constants.js');expect(_0x1394aa[_0x2c276f(0xea)])['toMatch'](/^[a-z_]+$/),expect(_0x1394aa[_0x2c276f(0xf1)])[_0x2c276f(0xf3)](/^[a-z_]+$/),expect(_0x1394aa['ANALYSIS'])['toMatch'](/^[a-z_]+$/),expect(_0x1394aa[_0x2c276f(0xff)])['toMatch'](/^[a-z_]+$/);});}),describe('Tools\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{test('MessageRouter\x20has\x20tool\x20event\x20handlers\x20registered',async()=>{const _0x15a45b=a0_0x369c,{MessageRouter:_0x40da9f}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x3d0543}=await import('../../api/websocket.js'),_0x29460f=new _0x3d0543('localhost',0x1f90),_0x1b0916=new _0x40da9f(_0x29460f);expect(_0x1b0916[_0x15a45b(0xe8)])[_0x15a45b(0xfa)](),expect(typeof _0x1b0916['hasHandler'])['toBe']('function');});}),describe('Tools\x20Management\x20-\x20Tool\x20Categorization',()=>{test('TOOL_CATEGORY\x20can\x20be\x20used\x20to\x20filter\x20tools\x20by\x20category',async()=>{const _0x39605b=a0_0x369c,{TOOL_CATEGORY:_0x165e40}=await import('../../config/constants.js'),_0x22d7d9=[{'name':'execute_command','category':_0x165e40['SYSTEM']},{'name':'terminal','category':_0x165e40['SYSTEM']},{'name':'analyze_code','category':_0x165e40['ANALYSIS']},{'name':'web_search','category':_0x165e40['UTILITY']},{'name':_0x39605b(0xe3),'category':_0x165e40['AI']}],_0x5d8a95=_0x22d7d9['filter'](_0x2b55c0=>_0x2b55c0[_0x39605b(0xeb)]===_0x165e40[_0x39605b(0xea)]),_0xe54949=_0x22d7d9[_0x39605b(0x108)](_0x393cd9=>_0x393cd9[_0x39605b(0xeb)]===_0x165e40[_0x39605b(0xf6)]),_0x377a20=_0x22d7d9[_0x39605b(0x108)](_0xacd945=>_0xacd945[_0x39605b(0xeb)]===_0x165e40[_0x39605b(0xff)]),_0x357513=_0x22d7d9[_0x39605b(0x108)](_0x4393cb=>_0x4393cb[_0x39605b(0xeb)]===_0x165e40['AI']);expect(_0x5d8a95['length'])['toBe'](0x2),expect(_0xe54949['length'])['toBe'](0x1),expect(_0x377a20['length'])['toBe'](0x1),expect(_0x357513['length'])[_0x39605b(0xf2)](0x1),expect(_0x5d8a95[0x0][_0x39605b(0xdf)])[_0x39605b(0xf2)]('execute_command'),expect(_0xe54949[0x0]['name'])['toBe'](_0x39605b(0xf5));});}),describe('Tools\x20Management\x20-\x20Tool\x20Search',()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x49688f=a0_0x369c,_0x5ca2fc=[{'name':'read_file','description':'Read\x20contents\x20of\x20a\x20file'},{'name':_0x49688f(0xdd),'description':'Write\x20data\x20to\x20a\x20file'},{'name':'analyze_code','description':_0x49688f(0x111)}],_0x2c1424=_0x2a133f=>{const _0x2b594b=_0x49688f,_0x2a9b38=_0x2a133f['toLowerCase']();return _0x5ca2fc['filter'](_0x26a666=>_0x26a666['name']?.[_0x2b594b(0xfc)]()['includes'](_0x2a9b38)||_0x26a666['description']?.['toLowerCase']()[_0x2b594b(0x105)](_0x2a9b38));},_0x83e5a6=_0x2c1424('file');expect(_0x83e5a6[_0x49688f(0xe7)])[_0x49688f(0xf2)](0x2),expect(_0x83e5a6[_0x49688f(0x11d)](_0x372f0d=>_0x372f0d[_0x49688f(0xdf)]))[_0x49688f(0x102)]('read_file'),expect(_0x83e5a6['map'](_0x52fcd1=>_0x52fcd1[_0x49688f(0xdf)]))['toContain'](_0x49688f(0xdd));const _0x55f64f=_0x2c1424('analyze');expect(_0x55f64f[_0x49688f(0xe7)])['toBe'](0x1),expect(_0x55f64f[0x0]['name'])['toBe']('analyze_code');});}),describe(a0_0xf768f4(0x101),()=>{const _0x51133f=a0_0xf768f4;test('Execution\x20state\x20can\x20track\x20multiple\x20tools',async()=>{const _0x5a350a=a0_0x369c,_0x261737=new Set();_0x261737['add']('read_file'),_0x261737['add']('analyze_code'),expect(_0x261737['has'](_0x5a350a(0xe2)))['toBe'](!![]),expect(_0x261737['has']('analyze_code'))[_0x5a350a(0xf2)](!![]),expect(_0x261737[_0x5a350a(0xfe)])['toBe'](0x2),_0x261737[_0x5a350a(0xf7)](_0x5a350a(0xe2)),expect(_0x261737[_0x5a350a(0xfb)](_0x5a350a(0xe2)))[_0x5a350a(0xf2)](![]),expect(_0x261737['has'](_0x5a350a(0xf5)))['toBe'](!![]),expect(_0x261737[_0x5a350a(0xfe)])['toBe'](0x1);}),test(_0x51133f(0x110),async()=>{const _0x5c2070=_0x51133f,_0x2244f9=new Map();_0x2244f9[_0x5c2070(0x107)]('exec-1',{'success':!![],'data':_0x5c2070(0x119)}),_0x2244f9['set'](_0x5c2070(0x11a),{'success':!![],'data':{'issues':[]}}),expect(_0x2244f9[_0x5c2070(0xe4)]('exec-1'))['toBeDefined'](),expect(_0x2244f9[_0x5c2070(0xe4)](_0x5c2070(0x10e))['success'])[_0x5c2070(0xf2)](!![]),expect(_0x2244f9[_0x5c2070(0xe4)](_0x5c2070(0x10e))[_0x5c2070(0xed)])[_0x5c2070(0xf2)]('file\x20contents'),expect(_0x2244f9['get']('exec-2'))['toBeDefined'](),expect(_0x2244f9['get']('exec-2')[_0x5c2070(0xed)]['issues'])[_0x5c2070(0x114)]([]),expect(_0x2244f9['size'])[_0x5c2070(0xf2)](0x2);});}),describe(a0_0xf768f4(0x10f),()=>{test('Tool\x20cache\x20supports\x20TTL-based\x20caching',async()=>{const _0x12dbbf=a0_0x369c,_0x640f94=0x927c0;let _0x4f8699=null,_0xecd131=0x0;const _0x5c22bb=[{'name':_0x12dbbf(0xe2)}];_0x4f8699=_0x5c22bb,_0xecd131=Date['now']();const _0x503fbc=Date['now'](),_0x4d9d8d=_0x503fbc-_0xecd131<_0x640f94;expect(_0x4d9d8d)['toBe'](!![]),expect(_0x4f8699)[_0x12dbbf(0xf2)](_0x5c22bb);}),test('Tool\x20cache\x20expires\x20after\x20TTL',async()=>{const _0x42b8a5=a0_0x369c,_0x24dad4=0x64;let _0x5de5e9=null,_0x5c3cb5=0x0;const _0x4b8df4=[{'name':_0x42b8a5(0xe2)}];_0x5de5e9=_0x4b8df4,_0x5c3cb5=Date['now'](),await new Promise(_0x1589b1=>setTimeout(_0x1589b1,0x96));const _0x5af948=Date['now'](),_0x56b858=_0x5af948-_0x5c3cb5<_0x24dad4;expect(_0x56b858)['toBe'](![]);});}),describe(a0_0xf768f4(0x11b),()=>{const _0x38795e=a0_0xf768f4;test(_0x38795e(0x10c),async()=>{const _0xcf0a61=_0x38795e,{TOOL_CATEGORY:_0x3a6426}=await import(_0xcf0a61(0xe6)),_0x1c2d23=[{'name':_0xcf0a61(0xfd),'category':_0x3a6426[_0xcf0a61(0xea)],'enabled':!![]},{'name':'terminal','category':_0x3a6426['SYSTEM'],'enabled':![]},{'name':'analyze_code','category':_0x3a6426[_0xcf0a61(0xf6)],'enabled':!![]}],_0x5036e3=_0x10eec7=>{const _0x466583=_0xcf0a61;let _0x1b065c=[..._0x1c2d23];return _0x10eec7['category']&&(_0x1b065c=_0x1b065c[_0x466583(0x108)](_0x26f6d3=>_0x26f6d3['category']===_0x10eec7[_0x466583(0xeb)])),_0x10eec7[_0x466583(0x104)]!==undefined&&(_0x1b065c=_0x1b065c['filter'](_0x491c49=>_0x491c49[_0x466583(0x104)]===_0x10eec7['enabled'])),_0x1b065c;},_0x4d0028=_0x5036e3({'category':_0x3a6426['SYSTEM']});expect(_0x4d0028['length'])['toBe'](0x2);const _0x4caaae=_0x5036e3({'enabled':!![]});expect(_0x4caaae['length'])[_0xcf0a61(0xf2)](0x2);const _0x256b88=_0x5036e3({'category':_0x3a6426[_0xcf0a61(0xea)],'enabled':!![]});expect(_0x256b88['length'])[_0xcf0a61(0xf2)](0x1),expect(_0x256b88[0x0][_0xcf0a61(0xdf)])['toBe']('execute_command');});}),describe(a0_0xf768f4(0x109),()=>{test('Category\x20counts\x20can\x20be\x20calculated',async()=>{const _0x50aa33=a0_0x369c,{TOOL_CATEGORY:_0x201f26}=await import(_0x50aa33(0xe6)),_0x66ae59=[{'name':_0x50aa33(0xfd),'category':_0x201f26['SYSTEM']},{'name':_0x50aa33(0x100),'category':_0x201f26[_0x50aa33(0xea)]},{'name':_0x50aa33(0xf5),'category':_0x201f26[_0x50aa33(0xf6)]},{'name':'web_search','category':_0x201f26[_0x50aa33(0xff)]}],_0x4eff24=_0x3ef7c1=>{const _0x55cc90=_0x50aa33,_0x5f1eac={};for(const _0x19432d of Object[_0x55cc90(0xf0)](_0x201f26)){_0x5f1eac[_0x19432d]=_0x3ef7c1[_0x55cc90(0x108)](_0x5068ea=>_0x5068ea['category']===_0x19432d)['length'];}return _0x5f1eac;},_0x104c57=_0x4eff24(_0x66ae59);expect(_0x104c57[_0x201f26[_0x50aa33(0xea)]])['toBe'](0x2),expect(_0x104c57[_0x201f26['ANALYSIS']])[_0x50aa33(0xf2)](0x1),expect(_0x104c57[_0x201f26[_0x50aa33(0xff)]])['toBe'](0x1),expect(_0x104c57[_0x201f26['AUTOMATION']])[_0x50aa33(0xf2)](0x0);});});
@@ -1 +1 @@
1
- const a0_0x2c849a=a0_0x1e94;(function(_0x242c88,_0x156610){const _0x49784e=a0_0x1e94,_0x48ef8b=_0x242c88();while(!![]){try{const _0x5e6384=parseInt(_0x49784e(0x1fd))/0x1+parseInt(_0x49784e(0x202))/0x2*(parseInt(_0x49784e(0x1fe))/0x3)+-parseInt(_0x49784e(0x1f6))/0x4*(parseInt(_0x49784e(0x1fa))/0x5)+parseInt(_0x49784e(0x1ff))/0x6*(parseInt(_0x49784e(0x1ee))/0x7)+parseInt(_0x49784e(0x1e8))/0x8+-parseInt(_0x49784e(0x1ea))/0x9*(-parseInt(_0x49784e(0x1f0))/0xa)+-parseInt(_0x49784e(0x1e1))/0xb;if(_0x5e6384===_0x156610)break;else _0x48ef8b['push'](_0x48ef8b['shift']());}catch(_0x341283){_0x48ef8b['push'](_0x48ef8b['shift']());}}}(a0_0x1228,0xc5e4c));import{ERROR_MESSAGE}from'../config/constants.js';export class ApiClient{constructor(_0x40d04f,_0x5bd6ff=null){const _0x55188a=a0_0x1e94;this[_0x55188a(0x1e6)]=_0x40d04f,this['apiKey']=_0x5bd6ff;}[a0_0x2c849a(0x1e9)](_0x309ee7){const _0x2aaff9=a0_0x2c849a;this[_0x2aaff9(0x1df)]=_0x309ee7;}[a0_0x2c849a(0x1f4)](){const _0x1a00c7=a0_0x2c849a;return this[_0x1a00c7(0x1df)];}['clearApiKey'](){const _0xd10244=a0_0x2c849a;this[_0xd10244(0x1df)]=null;}[a0_0x2c849a(0x1fb)](_0x46dbe5={}){const _0x180361=a0_0x2c849a,_0x568622={'Content-Type':_0x180361(0x201),..._0x46dbe5};return this[_0x180361(0x1df)]&&(_0x568622['Authorization']='Bearer\x20'+this[_0x180361(0x1df)]),_0x568622;}async[a0_0x2c849a(0x1e5)](_0x5cdefc,_0x22d4e7,_0x5505b3={}){const _0xa5c5ac=a0_0x2c849a,{body:body=null,headers:headers={},query:query=null}=_0x5505b3;let _0x10ade9=''+this[_0xa5c5ac(0x1e6)]+_0x22d4e7;if(query){const _0x1e7121=new URLSearchParams(query)['toString']();_0x10ade9+='?'+_0x1e7121;}const _0x50b230={'method':_0x5cdefc,'headers':this['buildHeaders'](headers)};body&&[_0xa5c5ac(0x1eb),'PUT','PATCH'][_0xa5c5ac(0x1de)](_0x5cdefc[_0xa5c5ac(0x1f2)]())&&(_0x50b230['body']=JSON[_0xa5c5ac(0x1e2)](body));try{const _0x2555b2=await fetch(_0x10ade9,_0x50b230),_0x443268=await _0x2555b2[_0xa5c5ac(0x1f5)]()[_0xa5c5ac(0x1dd)](()=>({}));if(!_0x2555b2['ok']){const _0x36ff3d=new Error(_0x443268[_0xa5c5ac(0x1ec)]||'HTTP\x20'+_0x2555b2[_0xa5c5ac(0x200)]+':\x20'+_0x2555b2[_0xa5c5ac(0x1f1)]);_0x36ff3d['status']=_0x2555b2[_0xa5c5ac(0x200)],_0x36ff3d['response']=_0x443268;throw _0x36ff3d;}return _0x443268;}catch(_0x158bae){if(_0x158bae['message']['includes'](_0xa5c5ac(0x1f7))||_0x158bae[_0xa5c5ac(0x1fc)]==='TypeError'){const _0x60dfec=new Error(ERROR_MESSAGE[_0xa5c5ac(0x1f8)]+':\x20'+_0x158bae[_0xa5c5ac(0x1e4)]);_0x60dfec[_0xa5c5ac(0x1ef)]=_0x158bae;throw _0x60dfec;}throw _0x158bae;}}async[a0_0x2c849a(0x1e3)](_0x39aa2f,_0x4cc89d={}){return this['request']('GET',_0x39aa2f,_0x4cc89d);}async[a0_0x2c849a(0x1e7)](_0xb83526,_0x3255ea=null,_0x53ce42={}){const _0x5d9911=a0_0x2c849a;return this[_0x5d9911(0x1e5)](_0x5d9911(0x1eb),_0xb83526,{..._0x53ce42,'body':_0x3255ea});}async[a0_0x2c849a(0x1e0)](_0x2ffa03,_0x3a8007=null,_0x2c9b32={}){return this['request']('PUT',_0x2ffa03,{..._0x2c9b32,'body':_0x3a8007});}async[a0_0x2c849a(0x1ed)](_0x344171,_0x49bef8=null,_0x2c1981={}){return this['request']('PATCH',_0x344171,{..._0x2c1981,'body':_0x49bef8});}async[a0_0x2c849a(0x1f9)](_0x2bf9a5,_0x3f1371={}){const _0x36f8e6=a0_0x2c849a;return this[_0x36f8e6(0x1e5)]('DELETE',_0x2bf9a5,_0x3f1371);}}export function createApiClient(_0x4789fc=a0_0x2c849a(0x1f3),_0xfe0ad1=0x1f90,_0x4a2405=null){const _0xb9fb19='http://'+_0x4789fc+':'+_0xfe0ad1;return new ApiClient(_0xb9fb19,_0x4a2405);}function a0_0x1e94(_0x3fae8c,_0x5768ea){_0x3fae8c=_0x3fae8c-0x1dd;const _0x122876=a0_0x1228();let _0x1e94af=_0x122876[_0x3fae8c];if(a0_0x1e94['wZMQhg']===undefined){var _0x38d210=function(_0x1057b5){const _0x1d81de='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x40d04f='',_0x5bd6ff='';for(let _0x309ee7=0x0,_0x46dbe5,_0x568622,_0x5cdefc=0x0;_0x568622=_0x1057b5['charAt'](_0x5cdefc++);~_0x568622&&(_0x46dbe5=_0x309ee7%0x4?_0x46dbe5*0x40+_0x568622:_0x568622,_0x309ee7++%0x4)?_0x40d04f+=String['fromCharCode'](0xff&_0x46dbe5>>(-0x2*_0x309ee7&0x6)):0x0){_0x568622=_0x1d81de['indexOf'](_0x568622);}for(let _0x22d4e7=0x0,_0x5505b3=_0x40d04f['length'];_0x22d4e7<_0x5505b3;_0x22d4e7++){_0x5bd6ff+='%'+('00'+_0x40d04f['charCodeAt'](_0x22d4e7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5bd6ff);};a0_0x1e94['CAxlmu']=_0x38d210,a0_0x1e94['sVLqaB']={},a0_0x1e94['wZMQhg']=!![];}const _0x294b55=_0x122876[0x0],_0x36e1ca=_0x3fae8c+_0x294b55,_0xb7a4b6=a0_0x1e94['sVLqaB'][_0x36e1ca];return!_0xb7a4b6?(_0x1e94af=a0_0x1e94['CAxlmu'](_0x1e94af),a0_0x1e94['sVLqaB'][_0x36e1ca]=_0x1e94af):_0x1e94af=_0xb7a4b6,_0x1e94af;}function a0_0x1228(){const _0x309f73=['ntC4ntKWmLfnDK1PBW','ue9tva','zxjYB3i','Cgf0y2G','mtrSzvzdz2C','B3jPz2LUywXfCNjVCG','mtbfCKLIuhm','C3rHDhvZvgv4Da','Dg9vChbLCKnHC2u','Bg9JywXOB3n0','z2v0qxbPs2v5','ANnVBG','nJa3mZy0AhjHu0H4','zMv0y2G','tKvuv09ss19fuLjpuG','zgvSzxrL','ndbQzxHRCvm','yNvPBgrizwfKzxjZ','BMfTzq','mtq2oty0og5qDKvhCG','mtiWou5lCMToBG','mZu4mZG0mKvlB1buAG','C3rHDhvZ','yxbWBgLJyxrPB24VANnVBG','odaXmePgDNjqEq','y2f0y2G','Aw5JBhvKzxm','yxbPs2v5','Chv0','ndeZodiZndfUu3DZBeq','C3rYAw5NAwz5','z2v0','BwvZC2fNzq','CMvXDwvZDa','yMfZzvvYBa','Cg9ZDa','nJKYotqWoejYBK5wCq','C2v0qxbPs2v5'];a0_0x1228=function(){return _0x309f73;};return a0_0x1228();}export default ApiClient;
1
+ function a0_0x3dbe(_0x4dba87,_0x10ded3){_0x4dba87=_0x4dba87-0x1cf;const _0x1adfcf=a0_0x1adf();let _0x3dbe3b=_0x1adfcf[_0x4dba87];if(a0_0x3dbe['NjkbIu']===undefined){var _0x5195a6=function(_0x20ec80){const _0x529109='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5a5a12='',_0x138921='';for(let _0x4aecd3=0x0,_0x433f08,_0x10e3fe,_0x4fe86e=0x0;_0x10e3fe=_0x20ec80['charAt'](_0x4fe86e++);~_0x10e3fe&&(_0x433f08=_0x4aecd3%0x4?_0x433f08*0x40+_0x10e3fe:_0x10e3fe,_0x4aecd3++%0x4)?_0x5a5a12+=String['fromCharCode'](0xff&_0x433f08>>(-0x2*_0x4aecd3&0x6)):0x0){_0x10e3fe=_0x529109['indexOf'](_0x10e3fe);}for(let _0x298a15=0x0,_0x2776cc=_0x5a5a12['length'];_0x298a15<_0x2776cc;_0x298a15++){_0x138921+='%'+('00'+_0x5a5a12['charCodeAt'](_0x298a15)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x138921);};a0_0x3dbe['ecrZVU']=_0x5195a6,a0_0x3dbe['aXTjwc']={},a0_0x3dbe['NjkbIu']=!![];}const _0x139900=_0x1adfcf[0x0],_0x1a3029=_0x4dba87+_0x139900,_0x55e22e=a0_0x3dbe['aXTjwc'][_0x1a3029];return!_0x55e22e?(_0x3dbe3b=a0_0x3dbe['ecrZVU'](_0x3dbe3b),a0_0x3dbe['aXTjwc'][_0x1a3029]=_0x3dbe3b):_0x3dbe3b=_0x55e22e,_0x3dbe3b;}function a0_0x1adf(){const _0x35a7d2=['C3rHDhvZ','mte1ndq4v0fNBxzZ','Cg9ZDa','y2f0y2G','nZaXndvcuMXYtLu','Dg9vChbLCKnHC2u','vhLWzuvYCM9Y','yxbPs2v5','ndaYrgHzCwTA','mtGWoteWzvfSshfe','zMv0y2G','C3rHDhvZvgv4Da','CMvXDwvZDa','uefuq0G','BMfTzq','zgvSzxrL','nty5ndjYCKzIEMO','CMvZCg9UC2u','revmrvrf','mZqXuLbYyLn4','B3jPz2LUywXfCNjVCG','ue9tva','mtmYzKzPDwzz','ntaWnZaXnuf6Be9rwa','yNvPBgrizwfKzxjZ','nJfyDwzpDMe','z2v0qxbPs2v5','otK4odK1nMXYD3bLvW','qxv0Ag9YAxPHDgLVBG','zxjYB3i','yMfZzvvYBa','qMvHCMvYia','nJaZotKYqxvjzejt','BwvZC2fNzq','ndLKA3rNtvG'];a0_0x1adf=function(){return _0x35a7d2;};return a0_0x1adf();}const a0_0xd4db2b=a0_0x3dbe;(function(_0x4bae1d,_0x262166){const _0x2e0f72=a0_0x3dbe,_0x1fac8c=_0x4bae1d();while(!![]){try{const _0x3fa003=-parseInt(_0x2e0f72(0x1e8))/0x1*(-parseInt(_0x2e0f72(0x1df))/0x2)+parseInt(_0x2e0f72(0x1e5))/0x3*(-parseInt(_0x2e0f72(0x1d0))/0x4)+-parseInt(_0x2e0f72(0x1d3))/0x5*(parseInt(_0x2e0f72(0x1d7))/0x6)+-parseInt(_0x2e0f72(0x1f1))/0x7*(-parseInt(_0x2e0f72(0x1ef))/0x8)+-parseInt(_0x2e0f72(0x1e6))/0x9+parseInt(_0x2e0f72(0x1d8))/0xa*(parseInt(_0x2e0f72(0x1e2))/0xb)+parseInt(_0x2e0f72(0x1ea))/0xc;if(_0x3fa003===_0x262166)break;else _0x1fac8c['push'](_0x1fac8c['shift']());}catch(_0x3f75f8){_0x1fac8c['push'](_0x1fac8c['shift']());}}}(a0_0x1adf,0xd9d5c));import{ERROR_MESSAGE}from'../config/constants.js';export class ApiClient{constructor(_0x5a5a12,_0x138921=null){const _0x55c879=a0_0x3dbe;this[_0x55c879(0x1ed)]=_0x5a5a12,this[_0x55c879(0x1d6)]=_0x138921;}['setApiKey'](_0x4aecd3){this['apiKey']=_0x4aecd3;}[a0_0xd4db2b(0x1e9)](){const _0x839e83=a0_0xd4db2b;return this[_0x839e83(0x1d6)];}['clearApiKey'](){const _0x424e8d=a0_0xd4db2b;this[_0x424e8d(0x1d6)]=null;}['buildHeaders'](_0x433f08={}){const _0x3d9e2d=a0_0xd4db2b,_0x10e3fe={'Content-Type':'application/json',..._0x433f08};return this[_0x3d9e2d(0x1d6)]&&(_0x10e3fe[_0x3d9e2d(0x1eb)]=_0x3d9e2d(0x1ee)+this['apiKey']),_0x10e3fe;}async[a0_0xd4db2b(0x1db)](_0x4fe86e,_0x298a15,_0x2776cc={}){const _0x5a81f0=a0_0xd4db2b,{body:body=null,headers:headers={},query:query=null}=_0x2776cc;let _0x3c4787=''+this[_0x5a81f0(0x1ed)]+_0x298a15;if(query){const _0x2c8bd0=new URLSearchParams(query)['toString']();_0x3c4787+='?'+_0x2c8bd0;}const _0x10ec78={'method':_0x4fe86e,'headers':this[_0x5a81f0(0x1e7)](headers)};body&&[_0x5a81f0(0x1e4),'PUT','PATCH']['includes'](_0x4fe86e[_0x5a81f0(0x1d4)]())&&(_0x10ec78['body']=JSON['stringify'](body));try{const _0x5cb3a3=await fetch(_0x3c4787,_0x10ec78),_0x2865d3=await _0x5cb3a3['json']()[_0x5a81f0(0x1d2)](()=>({}));if(!_0x5cb3a3['ok']){const _0x14dbfb=new Error(_0x2865d3[_0x5a81f0(0x1ec)]||'HTTP\x20'+_0x5cb3a3[_0x5a81f0(0x1cf)]+':\x20'+_0x5cb3a3[_0x5a81f0(0x1da)]);_0x14dbfb['status']=_0x5cb3a3['status'],_0x14dbfb[_0x5a81f0(0x1e0)]=_0x2865d3;throw _0x14dbfb;}return _0x2865d3;}catch(_0x2b3103){if(_0x2b3103[_0x5a81f0(0x1f0)]['includes'](_0x5a81f0(0x1d9))||_0x2b3103[_0x5a81f0(0x1dd)]===_0x5a81f0(0x1d5)){const _0x4607c9=new Error(ERROR_MESSAGE['NETWORK_ERROR']+':\x20'+_0x2b3103['message']);_0x4607c9[_0x5a81f0(0x1e3)]=_0x2b3103;throw _0x4607c9;}throw _0x2b3103;}}async['get'](_0x1a17e1,_0x448d35={}){return this['request']('GET',_0x1a17e1,_0x448d35);}async[a0_0xd4db2b(0x1d1)](_0x5bbd81,_0x3fc3fd=null,_0x43a62d={}){const _0x2cf88a=a0_0xd4db2b;return this['request'](_0x2cf88a(0x1e4),_0x5bbd81,{..._0x43a62d,'body':_0x3fc3fd});}async['put'](_0x1d6fb3,_0x5194c1=null,_0x5f01a3={}){return this['request']('PUT',_0x1d6fb3,{..._0x5f01a3,'body':_0x5194c1});}async['patch'](_0x351020,_0x3cdbb4=null,_0x480461={}){const _0x729353=a0_0xd4db2b;return this[_0x729353(0x1db)](_0x729353(0x1dc),_0x351020,{..._0x480461,'body':_0x3cdbb4});}async[a0_0xd4db2b(0x1de)](_0x3ea8c1,_0x31e2a6={}){const _0x42a174=a0_0xd4db2b;return this[_0x42a174(0x1db)](_0x42a174(0x1e1),_0x3ea8c1,_0x31e2a6);}}export function createApiClient(_0x297c76='localhost',_0xb3ec5d=0x1f90,_0x5c1a51=null){const _0x4d577f='http://'+_0x297c76+':'+_0xb3ec5d;return new ApiClient(_0x4d577f,_0x5c1a51);}export default ApiClient;
@@ -1 +1 @@
1
- const a0_0xd5b808=a0_0x28d1;(function(_0x13163e,_0x361f49){const _0x38196a=a0_0x28d1,_0x1b8c47=_0x13163e();while(!![]){try{const _0x334749=-parseInt(_0x38196a(0x204))/0x1+parseInt(_0x38196a(0x20f))/0x2*(parseInt(_0x38196a(0x1f4))/0x3)+parseInt(_0x38196a(0x1f5))/0x4+-parseInt(_0x38196a(0x1ef))/0x5+parseInt(_0x38196a(0x1e9))/0x6+-parseInt(_0x38196a(0x1f6))/0x7*(parseInt(_0x38196a(0x1f9))/0x8)+parseInt(_0x38196a(0x206))/0x9*(parseInt(_0x38196a(0x1fa))/0xa);if(_0x334749===_0x361f49)break;else _0x1b8c47['push'](_0x1b8c47['shift']());}catch(_0x3c5e00){_0x1b8c47['push'](_0x1b8c47['shift']());}}}(a0_0x6e63,0xab7de));import{EventEmitter}from'events';import{WS_MESSAGE_TYPE}from'../config/constants.js';function a0_0x28d1(_0x1d11d9,_0x22dacd){_0x1d11d9=_0x1d11d9-0x1e9;const _0x6e63ae=a0_0x6e63();let _0x28d102=_0x6e63ae[_0x1d11d9];if(a0_0x28d1['StofBV']===undefined){var _0x3ddc82=function(_0x554176){const _0x352b0d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4b7666='',_0x5b7128='';for(let _0x2c00a9=0x0,_0x552eea,_0x121b17,_0x194bd2=0x0;_0x121b17=_0x554176['charAt'](_0x194bd2++);~_0x121b17&&(_0x552eea=_0x2c00a9%0x4?_0x552eea*0x40+_0x121b17:_0x121b17,_0x2c00a9++%0x4)?_0x4b7666+=String['fromCharCode'](0xff&_0x552eea>>(-0x2*_0x2c00a9&0x6)):0x0){_0x121b17=_0x352b0d['indexOf'](_0x121b17);}for(let _0x3e79cc=0x0,_0x4eed00=_0x4b7666['length'];_0x3e79cc<_0x4eed00;_0x3e79cc++){_0x5b7128+='%'+('00'+_0x4b7666['charCodeAt'](_0x3e79cc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5b7128);};a0_0x28d1['sEfURq']=_0x3ddc82,a0_0x28d1['SnThaN']={},a0_0x28d1['StofBV']=!![];}const _0x1a52fd=_0x6e63ae[0x0],_0x56ec0a=_0x1d11d9+_0x1a52fd,_0xf41f91=a0_0x28d1['SnThaN'][_0x56ec0a];return!_0xf41f91?(_0x28d102=a0_0x28d1['sEfURq'](_0x28d102),a0_0x28d1['SnThaN'][_0x56ec0a]=_0x28d102):_0x28d102=_0xf41f91,_0x28d102;}export class MessageRouter extends EventEmitter{constructor(_0x4b7666){super(),this['ws']=_0x4b7666,this['handlers']=new Map(),this['middleware']=[],this['ws']['on']('message',_0x5b7128=>this['route'](_0x5b7128)),this['registerDefaultHandlers']();}[a0_0xd5b808(0x20c)](){const _0x2edcea=a0_0xd5b808;this['registerHandler'](WS_MESSAGE_TYPE[_0x2edcea(0x1ee)],_0x2c00a9=>{const _0x138b9b=_0x2edcea;this[_0x138b9b(0x207)](_0x138b9b(0x1fb),_0x2c00a9['data']);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_MODE_CHANGED'],_0x552eea=>{this['emit']('agent:mode_changed',_0x552eea);}),this['registerHandler'](WS_MESSAGE_TYPE['EXECUTION_STOPPED'],_0x121b17=>{const _0x45e55f=_0x2edcea;this[_0x45e55f(0x207)]('agent:execution_stopped',_0x121b17[_0x45e55f(0x20b)]);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_ERROR'],_0x194bd2=>{const _0x4eab2c=_0x2edcea;this[_0x4eab2c(0x207)]('agent:error',_0x194bd2);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_WARNING'],_0x3e79cc=>{const _0x41d06b=_0x2edcea;this[_0x41d06b(0x207)](_0x41d06b(0x1f7),_0x3e79cc);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x2edcea(0x20d)],_0x4eed00=>{this['emit']('agent:imported',_0x4eed00['agent']);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0x1716aa=>{this['emit']('agent:communication',_0x1716aa['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x2edcea(0x208)],_0x2e57fd=>{const _0x429fb4=_0x2edcea;this[_0x429fb4(0x207)](_0x429fb4(0x1ec),_0x2e57fd[_0x429fb4(0x20b)]);}),this['registerHandler'](WS_MESSAGE_TYPE['IMAGE_RESULT'],_0x246281=>{const _0x575d5d=_0x2edcea;this[_0x575d5d(0x207)](_0x575d5d(0x1f2),_0x246281['data']);}),this['registerHandler'](WS_MESSAGE_TYPE['IMAGE_GENERATED'],_0x2b4437=>{const _0x3011aa=_0x2edcea;this[_0x3011aa(0x207)](_0x3011aa(0x209),_0x2b4437['data']);}),this['registerHandler'](WS_MESSAGE_TYPE['ERROR'],_0x5f105f=>{this['emit']('error',_0x5f105f);});}async['route'](_0x29f0fc){const _0x2479b4=a0_0xd5b808;let processedMessage=_0x29f0fc;for(const _0x53ec01 of this['middleware']){try{processedMessage=await _0x53ec01(processedMessage);if(!processedMessage)return;}catch(_0x58e4f3){this['emit']('middleware_error',{'error':_0x58e4f3,'message':_0x29f0fc});return;}}const _0xd05815=processedMessage['type'];if(!_0xd05815){this[_0x2479b4(0x207)]('invalid_message',processedMessage);return;}if(this[_0x2479b4(0x1ed)][_0x2479b4(0x200)](_0xd05815)){const _0x3b044e=this['handlers'][_0x2479b4(0x203)](_0xd05815);try{await _0x3b044e(processedMessage);}catch(_0x4b4220){this[_0x2479b4(0x207)]('handler_error',{'error':_0x4b4220,'message':processedMessage,'messageType':_0xd05815});}}this['emit']('message:'+_0xd05815,processedMessage),this['emit'](_0x2479b4(0x1fe),processedMessage);}[a0_0xd5b808(0x20a)](_0x2e260f,_0x50534a){const _0xfb4ad1=a0_0xd5b808;if(typeof _0x50534a!=='function')throw new Error(_0xfb4ad1(0x1ff));this[_0xfb4ad1(0x1ed)]['set'](_0x2e260f,_0x50534a);}['unregisterHandler'](_0x8a5e9b){this['handlers']['delete'](_0x8a5e9b);}[a0_0xd5b808(0x201)](_0x268ce0){const _0x6fc7b0=a0_0xd5b808;if(typeof _0x268ce0!=='function')throw new Error('Middleware\x20must\x20be\x20a\x20function');this[_0x6fc7b0(0x205)]['push'](_0x268ce0);}[a0_0xd5b808(0x1eb)](_0x1b5ba1){const _0x22f3fb=a0_0xd5b808,_0x2c86c9=this['middleware'][_0x22f3fb(0x202)](_0x1b5ba1);_0x2c86c9>-0x1&&this[_0x22f3fb(0x205)][_0x22f3fb(0x1fc)](_0x2c86c9,0x1);}[a0_0xd5b808(0x211)](){this['middleware']=[];}[a0_0xd5b808(0x1f0)](){const _0x167d6e=a0_0xd5b808;return Array[_0x167d6e(0x1f8)](this[_0x167d6e(0x1ed)]['keys']());}['hasHandler'](_0x5356dc){const _0xa50ff9=a0_0xd5b808;return this[_0xa50ff9(0x1ed)]['has'](_0x5356dc);}['clearHandlers'](){this['handlers']['clear']();}[a0_0xd5b808(0x1f3)](){this['clearHandlers'](),this['clearMiddleware'](),this['registerDefaultHandlers']();}}export function loggingMiddleware(_0x3a8015=console[a0_0xd5b808(0x1ea)]){return _0x3239c2=>{return _0x3a8015('[MessageRouter]',_0x3239c2['type'],_0x3239c2),_0x3239c2;};}function a0_0x6e63(){const _0x29892a=['q09nuefdveLptL9fvKvova','Aw1Hz2u6z2vUzxjHDgvK','CMvNAxn0zxjiyw5KBgvY','zgf0yq','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','quDftLrFsu1qt1juruq','twvZC2fNzsb2ywXPzgf0Aw9UigzHAwXLza','mKTjCe9Mvq','Dg9ju09tDhjPBMC','y2XLyxjnAwrKBgv3yxjL','nZGXnJGWnNjoy3viuG','Bg9N','CMvTB3zLtwLKzgXLD2fYzq','y29UDMvYC2f0Aw9UoMnVBxbHy3rPB24','AgfUzgXLCNm','tuvtu0fhrv9brerfra','nta3mtq0mgTWv214AG','z2v0uMvNAxn0zxjLzfr5CgvZ','Aw5JBhvKzxm','Aw1Hz2u6CMvZDwX0','CMvZzxq','mte2mdC2m1Lds1jtra','nduWmJaYmhnjBxDpAW','mZvKA1bjrei','ywDLBNq6D2fYBMLUzW','zNjVBq','mtC4mJi1nK5pBxzuEG','nJqYodK4mg9fuezjra','ywDLBNq6BwvZC2fNzv9HzgrLza','C3bSAwnL','DhLWzq','BwvZC2fNzq','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','AgfZ','DxnL','Aw5KzxHpzG','z2v0','mti3mdm5nvbZuKzvCq','BwLKzgXLD2fYzq','mtH4z0ndsMG','zw1PDa'];a0_0x6e63=function(){return _0x29892a;};return a0_0x6e63();}export function filterMiddleware(_0x339a2a){return _0x5b0c3e=>{const _0x5b031f=a0_0x28d1;if(_0x339a2a[_0x5b031f(0x1f1)](_0x5b0c3e[_0x5b031f(0x1fd)]))return _0x5b0c3e;return null;};}export function transformMiddleware(_0x1614ad){return async _0xdafa3b=>{return await _0x1614ad(_0xdafa3b);};}export function timestampMiddleware(){return _0x48f4e8=>{const _0x5878d9=a0_0x28d1;return{..._0x48f4e8,'receivedAt':new Date()[_0x5878d9(0x210)]()};};}export function validationMiddleware(_0xec8d6){return _0x47a108=>{const _0x1fb150=a0_0x28d1;if(_0xec8d6(_0x47a108))return _0x47a108;throw new Error(_0x1fb150(0x20e));};}export default MessageRouter;
1
+ const a0_0x15e81b=a0_0x1f5e;(function(_0x25346b,_0x267f91){const _0x3012c1=a0_0x1f5e,_0x273241=_0x25346b();while(!![]){try{const _0x1aa106=parseInt(_0x3012c1(0x125))/0x1+parseInt(_0x3012c1(0x13e))/0x2+-parseInt(_0x3012c1(0x129))/0x3+parseInt(_0x3012c1(0x12b))/0x4+-parseInt(_0x3012c1(0x12a))/0x5+parseInt(_0x3012c1(0x130))/0x6+parseInt(_0x3012c1(0x13d))/0x7*(-parseInt(_0x3012c1(0x14b))/0x8);if(_0x1aa106===_0x267f91)break;else _0x273241['push'](_0x273241['shift']());}catch(_0x54a946){_0x273241['push'](_0x273241['shift']());}}}(a0_0x20c0,0x64ff5));import{EventEmitter}from'events';import{WS_MESSAGE_TYPE}from'../config/constants.js';export class MessageRouter extends EventEmitter{constructor(_0x2ed02b){const _0x49e49e=a0_0x1f5e;super(),this['ws']=_0x2ed02b,this[_0x49e49e(0x142)]=new Map(),this['middleware']=[],this['ws']['on'](_0x49e49e(0x13b),_0x77cfeb=>this['route'](_0x77cfeb)),this[_0x49e49e(0x12d)]();}['registerDefaultHandlers'](){const _0xcbadb6=a0_0x1f5e;this[_0xcbadb6(0x149)](WS_MESSAGE_TYPE[_0xcbadb6(0x131)],_0x25bf27=>{const _0x5a0116=_0xcbadb6;this[_0x5a0116(0x13c)](_0x5a0116(0x123),_0x25bf27[_0x5a0116(0x143)]);}),this['registerHandler'](WS_MESSAGE_TYPE[_0xcbadb6(0x12c)],_0x2dac7f=>{const _0x1fe7eb=_0xcbadb6;this[_0x1fe7eb(0x13c)](_0x1fe7eb(0x136),_0x2dac7f);}),this[_0xcbadb6(0x149)](WS_MESSAGE_TYPE['EXECUTION_STOPPED'],_0x156df0=>{const _0xfaf61=_0xcbadb6;this[_0xfaf61(0x13c)]('agent:execution_stopped',_0x156df0[_0xfaf61(0x143)]);}),this[_0xcbadb6(0x149)](WS_MESSAGE_TYPE[_0xcbadb6(0x121)],_0x133f4c=>{this['emit']('agent:error',_0x133f4c);}),this[_0xcbadb6(0x149)](WS_MESSAGE_TYPE[_0xcbadb6(0x134)],_0x55810b=>{const _0x2d80e4=_0xcbadb6;this['emit'](_0x2d80e4(0x14a),_0x55810b);}),this[_0xcbadb6(0x149)](WS_MESSAGE_TYPE[_0xcbadb6(0x148)],_0x294f3f=>{const _0x5d0a7e=_0xcbadb6;this['emit']('agent:imported',_0x294f3f[_0x5d0a7e(0x120)]);}),this['registerHandler'](WS_MESSAGE_TYPE[_0xcbadb6(0x12f)],_0x5ceea8=>{this['emit']('agent:communication',_0x5ceea8['data']);}),this[_0xcbadb6(0x149)](WS_MESSAGE_TYPE[_0xcbadb6(0x147)],_0x19f690=>{const _0x23b88a=_0xcbadb6;this['emit'](_0x23b88a(0x138),_0x19f690['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0xcbadb6(0x14c)],_0x1005cc=>{const _0x1f6950=_0xcbadb6;this[_0x1f6950(0x13c)]('image:result',_0x1005cc['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0xcbadb6(0x11f)],_0x179c68=>{const _0x2cd3f6=_0xcbadb6;this['emit'](_0x2cd3f6(0x11e),_0x179c68['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0xcbadb6(0x135)],_0x1626bb=>{const _0xae096b=_0xcbadb6;this[_0xae096b(0x13c)](_0xae096b(0x145),_0x1626bb);});}async['route'](_0xbfc90b){const _0x5cd617=a0_0x1f5e;let processedMessage=_0xbfc90b;for(const _0x3fb665 of this[_0x5cd617(0x124)]){try{processedMessage=await _0x3fb665(processedMessage);if(!processedMessage)return;}catch(_0x27eea2){this['emit'](_0x5cd617(0x144),{'error':_0x27eea2,'message':_0xbfc90b});return;}}const _0x235dd3=processedMessage[_0x5cd617(0x13a)];if(!_0x235dd3){this['emit'](_0x5cd617(0x146),processedMessage);return;}if(this['handlers']['has'](_0x235dd3)){const _0x6e7614=this['handlers'][_0x5cd617(0x133)](_0x235dd3);try{await _0x6e7614(processedMessage);}catch(_0x3dd0d3){this['emit'](_0x5cd617(0x13f),{'error':_0x3dd0d3,'message':processedMessage,'messageType':_0x235dd3});}}this[_0x5cd617(0x13c)](_0x5cd617(0x126)+_0x235dd3,processedMessage),this['emit'](_0x5cd617(0x13b),processedMessage);}['registerHandler'](_0x137d2c,_0x38c0dc){const _0x569063=a0_0x1f5e;if(typeof _0x38c0dc!==_0x569063(0x11d))throw new Error('Handler\x20must\x20be\x20a\x20function');this[_0x569063(0x142)]['set'](_0x137d2c,_0x38c0dc);}['unregisterHandler'](_0x15d5bc){this['handlers']['delete'](_0x15d5bc);}['use'](_0x3eba43){const _0x8cdc6d=a0_0x1f5e;if(typeof _0x3eba43!=='function')throw new Error('Middleware\x20must\x20be\x20a\x20function');this[_0x8cdc6d(0x124)][_0x8cdc6d(0x141)](_0x3eba43);}['removeMiddleware'](_0x2626f5){const _0xfbde95=a0_0x1f5e,_0x4bb0fe=this['middleware']['indexOf'](_0x2626f5);_0x4bb0fe>-0x1&&this[_0xfbde95(0x124)]['splice'](_0x4bb0fe,0x1);}[a0_0x15e81b(0x128)](){const _0x1eef17=a0_0x15e81b;this[_0x1eef17(0x124)]=[];}[a0_0x15e81b(0x140)](){const _0x5de784=a0_0x15e81b;return Array[_0x5de784(0x132)](this[_0x5de784(0x142)]['keys']());}['hasHandler'](_0xb01a12){return this['handlers']['has'](_0xb01a12);}[a0_0x15e81b(0x122)](){const _0x2860eb=a0_0x15e81b;this[_0x2860eb(0x142)]['clear']();}[a0_0x15e81b(0x137)](){const _0x1cb4d8=a0_0x15e81b;this['clearHandlers'](),this[_0x1cb4d8(0x128)](),this[_0x1cb4d8(0x12d)]();}}export function loggingMiddleware(_0x515ee7=console['log']){return _0x2fdf8c=>{const _0x8a4e24=a0_0x1f5e;return _0x515ee7(_0x8a4e24(0x139),_0x2fdf8c['type'],_0x2fdf8c),_0x2fdf8c;};}function a0_0x1f5e(_0x2c92e3,_0x2ad560){_0x2c92e3=_0x2c92e3-0x11d;const _0x20c0c5=a0_0x20c0();let _0x1f5e62=_0x20c0c5[_0x2c92e3];if(a0_0x1f5e['EaOfHJ']===undefined){var _0x543397=function(_0x433d6e){const _0x3ca29c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2ed02b='',_0x77cfeb='';for(let _0x25bf27=0x0,_0x2dac7f,_0x156df0,_0x133f4c=0x0;_0x156df0=_0x433d6e['charAt'](_0x133f4c++);~_0x156df0&&(_0x2dac7f=_0x25bf27%0x4?_0x2dac7f*0x40+_0x156df0:_0x156df0,_0x25bf27++%0x4)?_0x2ed02b+=String['fromCharCode'](0xff&_0x2dac7f>>(-0x2*_0x25bf27&0x6)):0x0){_0x156df0=_0x3ca29c['indexOf'](_0x156df0);}for(let _0x55810b=0x0,_0x294f3f=_0x2ed02b['length'];_0x55810b<_0x294f3f;_0x55810b++){_0x77cfeb+='%'+('00'+_0x2ed02b['charCodeAt'](_0x55810b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x77cfeb);};a0_0x1f5e['kBjnFf']=_0x543397,a0_0x1f5e['NnnQmn']={},a0_0x1f5e['EaOfHJ']=!![];}const _0x4769da=_0x20c0c5[0x0],_0x364e58=_0x2c92e3+_0x4769da,_0x344dac=a0_0x1f5e['NnnQmn'][_0x364e58];return!_0x344dac?(_0x1f5e62=a0_0x1f5e['kBjnFf'](_0x1f5e62),a0_0x1f5e['NnnQmn'][_0x364e58]=_0x1f5e62):_0x1f5e62=_0x344dac,_0x1f5e62;}export function filterMiddleware(_0x4d1e93){return _0x53a500=>{const _0x108d02=a0_0x1f5e;if(_0x4d1e93[_0x108d02(0x12e)](_0x53a500['type']))return _0x53a500;return null;};}function a0_0x20c0(){const _0x31cbc1=['y2XLyxjiyw5KBgvYCW','ywDLBNq6BwvZC2fNzv9HzgrLza','BwLKzgXLD2fYzq','mJqYmtCYvxr1C0XY','BwvZC2fNztO','Dg9ju09tDhjPBMC','y2XLyxjnAwrKBgv3yxjL','mtyYmZC2nvPmv2v5sa','mZC4mdu5nvHYDhLXwG','mJi5mZuZnNHdBgznuG','quDftLrFtu9erv9dsefor0ve','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','Aw5JBhvKzxm','quDftLrFq09ntvvosunbveLptG','ndu0mJC1nLHnwwTuDG','tuvtu0fhrv9brerfra','zNjVBq','z2v0','quDftLrFv0fstKLorW','rvjst1i','ywDLBNq6Bw9Kzv9JAgfUz2vK','CMvZzxq','y29UDMvYC2f0Aw9UoMnVBxbHy3rPB24','w01LC3nHz2vsB3v0zxjD','DhLWzq','BwvZC2fNzq','zw1PDa','ndyWnJC3n3Dcs2LVsa','mtu5mJK3nKXAD3DNsa','AgfUzgXLCL9LCNjVCG','z2v0uMvNAxn0zxjLzfr5CgvZ','ChvZAa','AgfUzgXLCNm','zgf0yq','BwLKzgXLD2fYzv9LCNjVCG','zxjYB3i','Aw52ywXPzf9TzxnZywDL','q09nuefdveLptL9fvKvova','quDftLrFsu1qt1juruq','CMvNAxn0zxjiyw5KBgvY','ywDLBNq6D2fYBMLUzW','ohfQEfHLsW','su1br0vFuKvtvuXu','zNvUy3rPB24','Aw1Hz2u6z2vUzxjHDgvK','su1br0vFr0vorvjbveve','ywDLBNq','quDftLrFrvjst1i'];a0_0x20c0=function(){return _0x31cbc1;};return a0_0x20c0();}export function transformMiddleware(_0x6fb2ef){return async _0x2284d6=>{return await _0x6fb2ef(_0x2284d6);};}export function timestampMiddleware(){return _0x329ed8=>{const _0x579cbc=a0_0x1f5e;return{..._0x329ed8,'receivedAt':new Date()[_0x579cbc(0x127)]()};};}export function validationMiddleware(_0x52b27b){return _0x2d5520=>{if(_0x52b27b(_0x2d5520))return _0x2d5520;throw new Error('Message\x20validation\x20failed');};}export default MessageRouter;
@@ -1 +1 @@
1
- const a0_0x1aed56=a0_0x3b58;(function(_0x37f8f9,_0x4d2390){const _0x1d1630=a0_0x3b58,_0x29b66a=_0x37f8f9();while(!![]){try{const _0x2853b9=-parseInt(_0x1d1630(0x1a8))/0x1*(parseInt(_0x1d1630(0x1cb))/0x2)+parseInt(_0x1d1630(0x1ca))/0x3+-parseInt(_0x1d1630(0x1c7))/0x4+parseInt(_0x1d1630(0x1c6))/0x5+parseInt(_0x1d1630(0x1bf))/0x6+-parseInt(_0x1d1630(0x1ac))/0x7+parseInt(_0x1d1630(0x1a7))/0x8;if(_0x2853b9===_0x4d2390)break;else _0x29b66a['push'](_0x29b66a['shift']());}catch(_0x4c732f){_0x29b66a['push'](_0x29b66a['shift']());}}}(a0_0x4964,0x59c56));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';function a0_0x3b58(_0x3f9778,_0x1fcc84){_0x3f9778=_0x3f9778-0x19d;const _0x4964e7=a0_0x4964();let _0x3b5853=_0x4964e7[_0x3f9778];if(a0_0x3b58['upDrtU']===undefined){var _0x2e3b58=function(_0x4f17a2){const _0x2e9341='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x144a18='',_0x4a49b4='';for(let _0x3dc347=0x0,_0xdf1a23,_0x119eee,_0x453338=0x0;_0x119eee=_0x4f17a2['charAt'](_0x453338++);~_0x119eee&&(_0xdf1a23=_0x3dc347%0x4?_0xdf1a23*0x40+_0x119eee:_0x119eee,_0x3dc347++%0x4)?_0x144a18+=String['fromCharCode'](0xff&_0xdf1a23>>(-0x2*_0x3dc347&0x6)):0x0){_0x119eee=_0x2e9341['indexOf'](_0x119eee);}for(let _0x5c7168=0x0,_0x51134d=_0x144a18['length'];_0x5c7168<_0x51134d;_0x5c7168++){_0x4a49b4+='%'+('00'+_0x144a18['charCodeAt'](_0x5c7168)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4a49b4);};a0_0x3b58['auqAFZ']=_0x2e3b58,a0_0x3b58['OEwjWV']={},a0_0x3b58['upDrtU']=!![];}const _0x515a59=_0x4964e7[0x0],_0x14d6d8=_0x3f9778+_0x515a59,_0x3aa05f=a0_0x3b58['OEwjWV'][_0x14d6d8];return!_0x3aa05f?(_0x3b5853=a0_0x3b58['auqAFZ'](_0x3b5853),a0_0x3b58['OEwjWV'][_0x14d6d8]=_0x3b5853):_0x3b5853=_0x3aa05f,_0x3b5853;}function a0_0x4964(){const _0x4d9df5=['C2vZC2LVBG','BgfZDefJDgL2Axr5','ue9tva','BwvZC2fNzq','Bg94AwfbCgLlzxK','y3jLyxrLu2vZC2LVBG','z2v0uhjVAMvJDerPCG','DgLTzxn0yw1W','yMfZzvvYBa','BgvUz3rO','Aw5PDgLHBgL6zq','Ahr0CdOVlW','y2HLy2TizwfSDgG','zxjYB3i','oNnLC3nPB25jza','AxnwywXPza','ChjVAMvJDerPCG','BwfRzvjLCxvLC3q','mZKWmZC1nND1AK9Tza','z2v0u2vZC2LVBKLK','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CZOG','revgqvvmvf9qt1ju','rMfPBgvKihrVihnLDcbbueKGA2v5CZOG','z2v0u2vZC2LVBKLUzM8','u0vtu0LptL9jtLzbteLe','mtm3nJa0mhzxre56Aa','mty5mdKZnNDLqvj4uG','yxbPq2XPzw50','s0vzu19trvq','nde5nJa3yKHbqK5e','mJe0nJy2DeD6DgHI','C2v0qxbPs2v5','AgfZtg94AwflzxK','C3vJy2vZCW','s0vzu19hrvq','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CZOG','DMvUzg9Ys2v5CW','r0vu','revgqvvmvf9it1nu','y3DK','zgvSzxrLqxbPs2v5CW','y3jLyxrLzef0','mZG4mtC0ngz0EwveyW','mxzgq0zeEq','C2vZC2LVBKLK','Ag9ZDa','s0vzu19eruXfveu','ndu3mJa2neXPqMPmEq'];a0_0x4964=function(){return _0x4d9df5;};return a0_0x4964();}import{ApiClient}from'./apiClient.js';export class SessionManager{constructor(_0x144a18=NETWORK[a0_0x1aed56(0x1a3)],_0x4a49b4=NETWORK[a0_0x1aed56(0x1c2)]){const _0x30e7e2=a0_0x1aed56;this[_0x30e7e2(0x1aa)]=_0x144a18,this['port']=_0x4a49b4,this[_0x30e7e2(0x1b5)]=_0x30e7e2(0x1b8)+_0x144a18+':'+_0x4a49b4,this[_0x30e7e2(0x1a9)]=null,this['projectDir']=null,this[_0x30e7e2(0x1a6)]=null,this['lastActivity']=null,this['loxiaApiKey']=null,this['vendorKeys']={},this['apiClient']=new ApiClient(this['baseUrl'],this[_0x30e7e2(0x1b1)]);}async[a0_0x1aed56(0x1b2)](_0x3dc347=process['cwd']()){const _0x2636ca=a0_0x1aed56;try{const _0xdf1a23=await this['makeRequest'](_0x2636ca(0x1af),API_ENDPOINTS['SESSION_CREATE'],{'projectDir':_0x3dc347});if(_0xdf1a23['success']&&_0xdf1a23['session'])return this['sessionId']=_0xdf1a23['session']['id'],this[_0x2636ca(0x1bd)]=_0x3dc347,this[_0x2636ca(0x1a6)]=_0xdf1a23['session']['createdAt'],this['lastActivity']=_0xdf1a23[_0x2636ca(0x1ad)][_0x2636ca(0x1ae)],{'success':!![],'sessionId':this['sessionId'],'session':_0xdf1a23[_0x2636ca(0x1ad)]};else throw new Error(_0xdf1a23[_0x2636ca(0x1ba)]||ERROR_MESSAGE['SESSION_CREATE_FAILED']);}catch(_0x119eee){throw new Error(ERROR_MESSAGE['SESSION_CREATE_FAILED']+':\x20'+_0x119eee['message']);}}async['setApiKeys'](_0x453338=null,_0x5c7168={}){const _0x589715=a0_0x1aed56;if(!this[_0x589715(0x1a9)])throw new Error(ERROR_MESSAGE[_0x589715(0x1c5)]);try{const _0x51134d=await this[_0x589715(0x1be)]('POST',API_ENDPOINTS[_0x589715(0x1c9)],{'sessionId':this[_0x589715(0x1a9)],'loxiaApiKey':_0x453338,'vendorKeys':_0x5c7168});if(_0x51134d[_0x589715(0x19e)])return this[_0x589715(0x1b1)]=_0x453338,this[_0x589715(0x1a1)]=_0x5c7168,this[_0x589715(0x1c8)][_0x589715(0x1cc)](_0x453338),{'success':!![],'message':_0x51134d['message'],'hasLoxiaKey':_0x51134d['hasLoxiaKey'],'vendorKeys':_0x51134d['vendorKeys']};else throw new Error(_0x51134d[_0x589715(0x1ba)]||'Failed\x20to\x20set\x20API\x20keys');}catch(_0x21a9fc){throw new Error(_0x589715(0x1c3)+_0x21a9fc[_0x589715(0x1b0)]);}}async['getApiKeyStatus'](){const _0x3a3a70=a0_0x1aed56;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0x3a3a70(0x1c5)]);try{const _0x3db21c=API_ENDPOINTS[_0x3a3a70(0x19f)]['replace'](_0x3a3a70(0x1bb),this['sessionId']),_0x803257=await this[_0x3a3a70(0x1be)](_0x3a3a70(0x1a2),_0x3db21c);if(_0x803257['success'])return{'success':!![],'hasLoxiaKey':_0x803257[_0x3a3a70(0x19d)],'vendorKeys':_0x803257[_0x3a3a70(0x1a1)],'updatedAt':_0x803257['updatedAt']};else throw new Error(_0x803257['error']||'Failed\x20to\x20get\x20API\x20key\x20status');}catch(_0x57f7cf){throw new Error(_0x3a3a70(0x1c1)+_0x57f7cf[_0x3a3a70(0x1b0)]);}}async[a0_0x1aed56(0x1a5)](){const _0x509129=a0_0x1aed56;if(!this[_0x509129(0x1a9)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x464197=API_ENDPOINTS[_0x509129(0x1ab)]['replace'](':sessionId',this['sessionId']),_0x5a1b80=await this['makeRequest']('DELETE',_0x464197);if(_0x5a1b80[_0x509129(0x19e)])return this[_0x509129(0x1b1)]=null,this[_0x509129(0x1a1)]={},{'success':!![],'message':_0x5a1b80[_0x509129(0x1b0)]};else throw new Error(_0x5a1b80[_0x509129(0x1ba)]||'Failed\x20to\x20delete\x20API\x20keys');}catch(_0x4baf1c){throw new Error(_0x509129(0x1a0)+_0x4baf1c[_0x509129(0x1b0)]);}}async[a0_0x1aed56(0x1b7)](_0xe7bdc8=process[a0_0x1aed56(0x1a4)]()){const _0x4b6170=a0_0x1aed56;try{const _0x174935=await this[_0x4b6170(0x1b9)]();if(!_0x174935[_0x4b6170(0x19e)])throw new Error('Server\x20health\x20check\x20failed:\x20'+_0x174935['error']);const _0x5ce7b6=await this['createSession'](_0xe7bdc8);return{'success':!![],'sessionId':_0x5ce7b6[_0x4b6170(0x1a9)],'session':_0x5ce7b6[_0x4b6170(0x1ad)]};}catch(_0x27c3fc){return{'success':![],'error':_0x27c3fc[_0x4b6170(0x1b0)]};}}async['checkHealth'](){const _0x4a9ea5=a0_0x1aed56;try{const _0x28ff41=await this[_0x4a9ea5(0x1be)]('GET',API_ENDPOINTS['HEALTH']);return{'success':!![],'status':_0x28ff41['status'],'version':_0x28ff41['version'],'timestamp':_0x28ff41[_0x4a9ea5(0x1b4)]};}catch(_0x148e60){return{'success':![],'error':_0x148e60['message']};}}async[a0_0x1aed56(0x1be)](_0x34666a,_0x172bb2,_0x7c6ee0=null){const _0x206a03=a0_0x1aed56;return this[_0x206a03(0x1c8)]['request'](_0x34666a,_0x172bb2,{'body':_0x7c6ee0});}[a0_0x1aed56(0x1c0)](){return this['sessionId'];}[a0_0x1aed56(0x1b3)](){return this['projectDir'];}[a0_0x1aed56(0x1bc)](){const _0x46a8cb=a0_0x1aed56;return this[_0x46a8cb(0x1a9)]!==null;}['updateActivity'](){const _0x150c74=a0_0x1aed56;this[_0x150c74(0x1ae)]=new Date()['toISOString']();}[a0_0x1aed56(0x1c4)](){const _0x122147=a0_0x1aed56;return{'sessionId':this['sessionId'],'projectDir':this[_0x122147(0x1bd)],'createdAt':this['createdAt'],'lastActivity':this['lastActivity'],'hasLoxiaKey':!!this[_0x122147(0x1b1)],'vendorKeysCount':Object['keys'](this['vendorKeys'])[_0x122147(0x1b6)]};}['clear'](){const _0x4f58e3=a0_0x1aed56;this['sessionId']=null,this[_0x4f58e3(0x1bd)]=null,this[_0x4f58e3(0x1a6)]=null,this['lastActivity']=null,this[_0x4f58e3(0x1b1)]=null,this['vendorKeys']={};}}export default SessionManager;
1
+ const a0_0x2ff468=a0_0x49dc;(function(_0x14323e,_0x1c0c27){const _0x5a3fd0=a0_0x49dc,_0x3167cf=_0x14323e();while(!![]){try{const _0x41657a=-parseInt(_0x5a3fd0(0xfe))/0x1+parseInt(_0x5a3fd0(0xe0))/0x2*(-parseInt(_0x5a3fd0(0xf3))/0x3)+-parseInt(_0x5a3fd0(0xdf))/0x4+parseInt(_0x5a3fd0(0xe4))/0x5*(parseInt(_0x5a3fd0(0xf1))/0x6)+-parseInt(_0x5a3fd0(0x104))/0x7*(parseInt(_0x5a3fd0(0xe3))/0x8)+parseInt(_0x5a3fd0(0xea))/0x9*(parseInt(_0x5a3fd0(0x102))/0xa)+parseInt(_0x5a3fd0(0xf7))/0xb;if(_0x41657a===_0x1c0c27)break;else _0x3167cf['push'](_0x3167cf['shift']());}catch(_0x3715a9){_0x3167cf['push'](_0x3167cf['shift']());}}}(a0_0x2648,0x8908f));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';function a0_0x49dc(_0x520e04,_0x1ff7a9){_0x520e04=_0x520e04-0xd7;const _0x264878=a0_0x2648();let _0x49dc4d=_0x264878[_0x520e04];if(a0_0x49dc['LiSelX']===undefined){var _0x49b459=function(_0x1a08cd){const _0x120d81='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x150810='',_0x3daeb8='';for(let _0x4d375a=0x0,_0xe46f55,_0x3cd5d6,_0x514026=0x0;_0x3cd5d6=_0x1a08cd['charAt'](_0x514026++);~_0x3cd5d6&&(_0xe46f55=_0x4d375a%0x4?_0xe46f55*0x40+_0x3cd5d6:_0x3cd5d6,_0x4d375a++%0x4)?_0x150810+=String['fromCharCode'](0xff&_0xe46f55>>(-0x2*_0x4d375a&0x6)):0x0){_0x3cd5d6=_0x120d81['indexOf'](_0x3cd5d6);}for(let _0x4cd1ee=0x0,_0x209cb0=_0x150810['length'];_0x4cd1ee<_0x209cb0;_0x4cd1ee++){_0x3daeb8+='%'+('00'+_0x150810['charCodeAt'](_0x4cd1ee)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3daeb8);};a0_0x49dc['ZrTOSR']=_0x49b459,a0_0x49dc['FkRNoI']={},a0_0x49dc['LiSelX']=!![];}const _0x5f4099=_0x264878[0x0],_0x3230c2=_0x520e04+_0x5f4099,_0x4ed908=a0_0x49dc['FkRNoI'][_0x3230c2];return!_0x4ed908?(_0x49dc4d=a0_0x49dc['ZrTOSR'](_0x49dc4d),a0_0x49dc['FkRNoI'][_0x3230c2]=_0x49dc4d):_0x49dc4d=_0x4ed908,_0x49dc4d;}import{ApiClient}from'./apiClient.js';function a0_0x2648(){const _0x30c020=['z2v0u2vZC2LVBKLUzM8','ntK5nJi3wfzkwK1M','r0vu','z2v0qxbPs2v5u3rHDhvZ','z2v0uhjVAMvJDerPCG','s0vzu19trvq','ue9tva','u0vtu0LptL9duKvbvevFrKfjteve','Ag9ZDa','DgLTzxn0yw1W','CMvWBgfJzq','DxbKyxrLzef0','y2HLy2TizwfSDgG','oNnLC3nPB25jza','C2vZC2LVBKLK','mZG0mJa3nKHTz0HbsG','mKTXEwTOAa','u0vtu0LptL9jtLzbteLe','C2vZC2LVBG','oeDVtNHHAa','mtq5nJy1C0PsEvDU','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CZOG','z2v0u2vZC2LVBKLK','yMfZzvvYBa','rMfPBgvKihrVihnLDcbbueKGA2v5CW','y2XLyxi','mZa2owDhEgvIEq','C3vJy2vZCW','BwvZC2fNzq','revgqvvmvf9it1nu','y3jLyxrLu2vZC2LVBG','ChjVAMvJDerPCG','DMvYC2LVBG','mtGWEgfyzxLP','zxjYB3i','mti5mJC5rePcCMDq','s0vzu19eruXfveu','u2vYDMvYigHLywX0AcbJAgvJAYbMywLSzwq6ia','BwfRzvjLCxvLC3q','mte2mtaWodjyD0DSrwW','DMvUzg9Ys2v5CW','y3jLyxrLzef0','BgfZDefJDgL2Axr5','AgfZtg94AwflzxK','y3DK','Ahr0CdOVlW','ndy2ota1BhHmB3bM','Bg94AwfbCgLlzxK','DxbKyxrLqwn0AxzPDhK','Dg9ju09tDhjPBMC','ndGXmfnIvejrva'];a0_0x2648=function(){return _0x30c020;};return a0_0x2648();}export class SessionManager{constructor(_0x150810=NETWORK[a0_0x2ff468(0xed)],_0x3daeb8=NETWORK['DEFAULT_PORT']){const _0x415d6d=a0_0x2ff468;this[_0x415d6d(0xd8)]=_0x150810,this['port']=_0x3daeb8,this[_0x415d6d(0xe7)]=_0x415d6d(0xfd)+_0x150810+':'+_0x3daeb8,this[_0x415d6d(0xde)]=null,this['projectDir']=null,this['createdAt']=null,this[_0x415d6d(0xfa)]=null,this['loxiaApiKey']=null,this[_0x415d6d(0xf8)]={},this['apiClient']=new ApiClient(this['baseUrl'],this['loxiaApiKey']);}async['createSession'](_0x4d375a=process[a0_0x2ff468(0xfc)]()){const _0x55e7f1=a0_0x2ff468;try{const _0xe46f55=await this[_0x55e7f1(0xf6)](_0x55e7f1(0x109),API_ENDPOINTS['SESSION_CREATE'],{'projectDir':_0x4d375a});if(_0xe46f55['success']&&_0xe46f55[_0x55e7f1(0xe2)])return this['sessionId']=_0xe46f55['session']['id'],this[_0x55e7f1(0xef)]=_0x4d375a,this[_0x55e7f1(0xf9)]=_0xe46f55[_0x55e7f1(0xe2)]['createdAt'],this['lastActivity']=_0xe46f55[_0x55e7f1(0xe2)][_0x55e7f1(0xfa)],{'success':!![],'sessionId':this['sessionId'],'session':_0xe46f55[_0x55e7f1(0xe2)]};else throw new Error(_0xe46f55['error']||ERROR_MESSAGE[_0x55e7f1(0xd7)]);}catch(_0x3cd5d6){throw new Error(ERROR_MESSAGE[_0x55e7f1(0xd7)]+':\x20'+_0x3cd5d6[_0x55e7f1(0xec)]);}}async['setApiKeys'](_0x514026=null,_0x4cd1ee={}){const _0x2809c9=a0_0x2ff468;if(!this[_0x2809c9(0xde)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x209cb0=await this[_0x2809c9(0xf6)](_0x2809c9(0x109),API_ENDPOINTS[_0x2809c9(0x108)],{'sessionId':this[_0x2809c9(0xde)],'loxiaApiKey':_0x514026,'vendorKeys':_0x4cd1ee});if(_0x209cb0['success'])return this[_0x2809c9(0xff)]=_0x514026,this[_0x2809c9(0xf8)]=_0x4cd1ee,this['apiClient']['setApiKey'](_0x514026),{'success':!![],'message':_0x209cb0['message'],'hasLoxiaKey':_0x209cb0['hasLoxiaKey'],'vendorKeys':_0x209cb0['vendorKeys']};else throw new Error(_0x209cb0[_0x2809c9(0xf2)]||_0x2809c9(0xe8));}catch(_0x530cfa){throw new Error('Failed\x20to\x20set\x20API\x20keys:\x20'+_0x530cfa['message']);}}async[a0_0x2ff468(0x106)](){const _0x59fb2f=a0_0x2ff468;if(!this[_0x59fb2f(0xde)])throw new Error(ERROR_MESSAGE[_0x59fb2f(0xe1)]);try{const _0x65b324=API_ENDPOINTS['KEYS_GET']['replace'](':sessionId',this[_0x59fb2f(0xde)]),_0x25d490=await this[_0x59fb2f(0xf6)](_0x59fb2f(0x105),_0x65b324);if(_0x25d490['success'])return{'success':!![],'hasLoxiaKey':_0x25d490[_0x59fb2f(0xfb)],'vendorKeys':_0x25d490[_0x59fb2f(0xf8)],'updatedAt':_0x25d490[_0x59fb2f(0xdb)]};else throw new Error(_0x25d490[_0x59fb2f(0xf2)]||'Failed\x20to\x20get\x20API\x20key\x20status');}catch(_0x5533e1){throw new Error('Failed\x20to\x20get\x20API\x20key\x20status:\x20'+_0x5533e1[_0x59fb2f(0xec)]);}}async['deleteApiKeys'](){const _0x2abef6=a0_0x2ff468;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0x2abef6(0xe1)]);try{const _0xc93a9d=API_ENDPOINTS[_0x2abef6(0xf4)][_0x2abef6(0xda)](_0x2abef6(0xdd),this[_0x2abef6(0xde)]),_0x344f92=await this[_0x2abef6(0xf6)]('DELETE',_0xc93a9d);if(_0x344f92['success'])return this['loxiaApiKey']=null,this[_0x2abef6(0xf8)]={},{'success':!![],'message':_0x344f92['message']};else throw new Error(_0x344f92[_0x2abef6(0xf2)]||'Failed\x20to\x20delete\x20API\x20keys');}catch(_0x53286d){throw new Error(_0x2abef6(0xe5)+_0x53286d[_0x2abef6(0xec)]);}}async['initialize'](_0x3b832d=process['cwd']()){const _0x41e7f8=a0_0x2ff468;try{const _0x547735=await this['checkHealth']();if(!_0x547735[_0x41e7f8(0xeb)])throw new Error(_0x41e7f8(0xf5)+_0x547735[_0x41e7f8(0xf2)]);const _0x1233b0=await this[_0x41e7f8(0xee)](_0x3b832d);return{'success':!![],'sessionId':_0x1233b0[_0x41e7f8(0xde)],'session':_0x1233b0['session']};}catch(_0x41a9b6){return{'success':![],'error':_0x41a9b6[_0x41e7f8(0xec)]};}}async[a0_0x2ff468(0xdc)](){const _0x13422e=a0_0x2ff468;try{const _0x5d9e48=await this['makeRequest'](_0x13422e(0x105),API_ENDPOINTS['HEALTH']);return{'success':!![],'status':_0x5d9e48['status'],'version':_0x5d9e48[_0x13422e(0xf0)],'timestamp':_0x5d9e48[_0x13422e(0xd9)]};}catch(_0x4af236){return{'success':![],'error':_0x4af236[_0x13422e(0xec)]};}}async['makeRequest'](_0x3144b7,_0x3b2577,_0x2dbf9f=null){return this['apiClient']['request'](_0x3144b7,_0x3b2577,{'body':_0x2dbf9f});}[a0_0x2ff468(0xe6)](){const _0x36f756=a0_0x2ff468;return this[_0x36f756(0xde)];}[a0_0x2ff468(0x107)](){return this['projectDir'];}['isValid'](){const _0x16589e=a0_0x2ff468;return this[_0x16589e(0xde)]!==null;}[a0_0x2ff468(0x100)](){const _0x7f96c6=a0_0x2ff468;this[_0x7f96c6(0xfa)]=new Date()[_0x7f96c6(0x101)]();}[a0_0x2ff468(0x103)](){const _0x49a944=a0_0x2ff468;return{'sessionId':this[_0x49a944(0xde)],'projectDir':this[_0x49a944(0xef)],'createdAt':this['createdAt'],'lastActivity':this[_0x49a944(0xfa)],'hasLoxiaKey':!!this[_0x49a944(0xff)],'vendorKeysCount':Object['keys'](this[_0x49a944(0xf8)])['length']};}[a0_0x2ff468(0xe9)](){const _0x502dea=a0_0x2ff468;this['sessionId']=null,this[_0x502dea(0xef)]=null,this[_0x502dea(0xf9)]=null,this[_0x502dea(0xfa)]=null,this[_0x502dea(0xff)]=null,this['vendorKeys']={};}}export default SessionManager;
@@ -1 +1 @@
1
- const a0_0x345748=a0_0x188b;(function(_0x5e8ed4,_0xb84df1){const _0x4f90dd=a0_0x188b,_0x1e7021=_0x5e8ed4();while(!![]){try{const _0x22591e=parseInt(_0x4f90dd(0xe3))/0x1*(-parseInt(_0x4f90dd(0xe9))/0x2)+-parseInt(_0x4f90dd(0xd7))/0x3+-parseInt(_0x4f90dd(0xe1))/0x4+parseInt(_0x4f90dd(0xc5))/0x5+-parseInt(_0x4f90dd(0xbb))/0x6*(-parseInt(_0x4f90dd(0xec))/0x7)+parseInt(_0x4f90dd(0xb2))/0x8+parseInt(_0x4f90dd(0xd1))/0x9;if(_0x22591e===_0xb84df1)break;else _0x1e7021['push'](_0x1e7021['shift']());}catch(_0x5645dc){_0x1e7021['push'](_0x1e7021['shift']());}}}(a0_0x3c57,0xbbb2c));import a0_0x577c29 from'ws';function a0_0x3c57(){const _0x164bb8=['AgfUzgXLq2XVC2u','uMvXDwvZDcb0Aw1LB3v0','C3rHCNrizwfYDgjLyxq','ChjVy2vZC01LC3nHz2vrDwv1zq','zgvSzxrL','BwvZC2fNzq','v0vcu09ds0vux1jfq09otKvdvf9nvuXusvbmsuvs','z2vUzxjHDgvszxf1zxn0swq','C2HVDwXKuMvJB25Uzwn0','AgvHCNrIzwf0x3rPBwvVDxq','AgfUzgXLrxjYB3i','AgfUzgXLq29UBMvJDgLVBKvYCM9Y','AgfUzgXLt3bLBG','AgfZ','mti0nZi1nM1YsgL5zW','C2vUza','C2vZC2LVBKLK','B25Jzq','Cg9YDa','y2XLyw51Ca','BwvZC2fNzvf1zxvL','C3rYAw5NAwz5','C2v0DxbfDMvUDeHHBMrSzxjZ','odu3nZz3qNnxAeu','C2vUzf9LCNjVCG','DhLWzq','C3rHDgu','q09otKvdveve','CMvXlq','zw1PDa','CMvJB25Uzwn0qxr0zw1WDhm','AgvHCNrIzwf0sw50zxj2ywW','BgvUz3rO','mtq5mZe0nw54ChfdDq','C2nOzwr1BgvszwnVBM5Ly3q','y2XVC2u','zxjYB3i','CMvJB25Uzwn0vgLTzxi','BgfZDfbVBMDszwnLAxzLza','v0vcu09ds0vux1jfq09otKvdvf9nqvHFrevmqvK','C2vUzfbPBMC','C3rVCeHLyxj0yMvHDa','sfruuf9usu1ft1vu','BM93','AgfUzgXLtwvZC2fNzq','mJaWndm2nJznEuzZueO','C2v0u3rHDgu','ChvZAa','uKvdt05orunusu5h','v0vcu09ds0vux0nptK5fq1rFveLnru9vva','y29UBMvJDgvK','mZm5mtiZmg13D2zIBG','DxjS','y29UBMvJDa','Dg9tDhjPBMC','C3rHDgvFy2HHBMDL','z2v0u3rHDhm','y29UBMvJDgLUzW','CMvJB25Uzwn0rgvSyxK','y29UBMvJDgLVBL9LCNjVCG','CMvJB25Uzwn0Aw5N','ndG4ndK1mMPnv0nnCW','reLtq09otKvdveve','mLzAt2vPua','CgfYC2vFzxjYB3i','CgLUz0LUDgvYDMfS','CgfYC2u','C2vUze9Yy2HLC3rYyxrVCLjLCxvLC3q','Cg9Uz1rPBwvVDxq','mta5mdGYmMzmtLDkCq','revgqvvmvf9it1nu','B3bLBG','nZq5v3fMzhfr','v0vcu09ds0vux1bjtKDFsu5urvjwquW','CgLUz19LCNjVCG','q09otKvdveLorW','ue9orW','qwXYzwfKEsbJB25Uzwn0zwqGB3iGy29UBMvJDgLUzW','t1jdsevtvfjbve9sx1jfuvvfu1q','CgvUzgLUz1jLCxvLC3rZ'];a0_0x3c57=function(){return _0x164bb8;};return a0_0x3c57();}import{EventEmitter}from'events';import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';export class WebSocketManager extends EventEmitter{constructor(_0x27ec94=NETWORK[a0_0x345748(0xea)],_0x535b0e=NETWORK['DEFAULT_PORT'],_0x3d0eb3={}){const _0x352ef5=a0_0x345748;super(),this['host']=_0x27ec94,this[_0x352ef5(0xb6)]=_0x535b0e,this[_0x352ef5(0xd8)]='ws://'+_0x27ec94+':'+_0x535b0e,this['ws']=null,this['state']=CONNECTION_STATE[_0x352ef5(0xe2)],this['sessionId']=null,this[_0x352ef5(0xc2)]=0x0,this['reconnectDelay']=_0x3d0eb3['reconnectDelay']??TIMING['WEBSOCKET_RECONNECT_DELAY'],this['baseReconnectDelay']=this[_0x352ef5(0xde)],this['reconnectTimer']=null,this[_0x352ef5(0xac)]=!![],this['heartbeatInterval']=_0x3d0eb3['heartbeatInterval']??TIMING[_0x352ef5(0xed)],this[_0x352ef5(0xe5)]=null,this[_0x352ef5(0xe8)]=null,this[_0x352ef5(0xca)]=null,this[_0x352ef5(0xb8)]=[],this['requestIdCounter']=0x0,this['pendingRequests']=new Map();}async['connect'](){const _0x3eb713=a0_0x345748;if(this[_0x3eb713(0xbe)]===CONNECTION_STATE[_0x3eb713(0xbf)]||this['state']===CONNECTION_STATE[_0x3eb713(0xef)])return{'success':![],'error':_0x3eb713(0xf1)};this[_0x3eb713(0xd2)](CONNECTION_STATE[_0x3eb713(0xef)]),this['emit'](_0x3eb713(0xdd));try{return this['ws']=new a0_0x577c29(this['url']),this['setupEventHandlers'](),await this['waitForConnection'](),{'success':!![]};}catch(_0x3b20f1){return this['handleConnectionError'](_0x3b20f1),{'success':![],'error':_0x3b20f1[_0x3eb713(0xa9)]};}}['waitForConnection'](){return new Promise((_0x25efc9,_0xcb9c2d)=>{const _0x3d78c7=a0_0x188b,_0x490888=setTimeout(()=>{_0xcb9c2d(new Error('Connection\x20timeout'));},TIMING[_0x3d78c7(0xd5)]);this['ws']['once']('open',()=>{clearTimeout(_0x490888),_0x25efc9();}),this['ws'][_0x3d78c7(0xb5)](_0x3d78c7(0xc8),_0x3a3063=>{clearTimeout(_0x490888),_0xcb9c2d(_0x3a3063);});});}[a0_0x345748(0xba)](){const _0x1d6f89=a0_0x345748;this['ws']['on'](_0x1d6f89(0xeb),()=>this['handleOpen']()),this['ws']['on']('message',_0x349c40=>this['handleMessage'](_0x349c40)),this['ws']['on'](_0x1d6f89(0xc7),(_0x54651b,_0x141612)=>this['handleClose'](_0x54651b,_0x141612)),this['ws']['on']('error',_0x1f63f3=>this['handleError'](_0x1f63f3));}[a0_0x345748(0xb0)](){const _0x4c13f4=a0_0x345748;this[_0x4c13f4(0xd2)](CONNECTION_STATE[_0x4c13f4(0xbf)]),this['reconnectAttempts']=0x0,this['reconnectDelay']=this['baseReconnectDelay'],this[_0x4c13f4(0xc1)](_0x4c13f4(0xd6)),this[_0x4c13f4(0xf6)](),this[_0x4c13f4(0xf7)]();}[a0_0x345748(0xd0)](_0xbc7cba){const _0x379cba=a0_0x345748;try{const _0x3206a=JSON[_0x379cba(0xe6)](_0xbc7cba[_0x379cba(0xda)]());if(_0x3206a[_0x379cba(0xbd)]===WS_MESSAGE_TYPE[_0x379cba(0xf0)]){this['handlePong']();return;}if(_0x3206a['type']===WS_MESSAGE_TYPE['CONNECTED']){this[_0x379cba(0xc1)]('welcome',_0x3206a);return;}if(_0x3206a['type']===WS_MESSAGE_TYPE['SESSION_JOINED']){this[_0x379cba(0xb4)]=_0x3206a['sessionId'],this['emit']('session_joined',_0x3206a);return;}if(_0x3206a[_0x379cba(0xbd)]===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this['handleOrchestratorResponse'](_0x3206a);return;}this['emit'](_0x379cba(0xa9),_0x3206a),_0x3206a['type']&&this['emit'](_0x3206a['type'],_0x3206a);}catch(_0x2b0ab5){this['emit'](_0x379cba(0xe4),{'error':_0x2b0ab5,'data':_0xbc7cba});}}[a0_0x345748(0xf4)](_0x22d8da,_0x45fd96){const _0x3bb9c8=a0_0x345748;this[_0x3bb9c8(0xb7)]();const _0x2fbf26=_0x45fd96[_0x3bb9c8(0xda)]()||'Unknown\x20reason';this[_0x3bb9c8(0xc1)]('disconnected',{'code':_0x22d8da,'reason':_0x2fbf26}),this[_0x3bb9c8(0xac)]&&_0x22d8da!==0x3e8?this[_0x3bb9c8(0xc6)]():this['setState'](CONNECTION_STATE['DISCONNECTED']);}[a0_0x345748(0xae)](_0x168c54){const _0x1ceb25=a0_0x345748;this[_0x1ceb25(0xc1)](_0x1ceb25(0xc8),_0x168c54);}[a0_0x345748(0xaf)](_0x55d8b5){const _0x30c209=a0_0x345748;this['setState'](CONNECTION_STATE['ERROR']),this[_0x30c209(0xc1)](_0x30c209(0xdf),_0x55d8b5),this[_0x30c209(0xac)]&&this['scheduleReconnect']();}[a0_0x345748(0xc6)](){const _0xdde4c5=a0_0x345748;if(this['reconnectTimer'])return;this['setState'](CONNECTION_STATE[_0xdde4c5(0xd4)]),this['reconnectAttempts']++;const _0x207811=Math['min'](this['reconnectDelay']*Math['pow'](TIMING[_0xdde4c5(0xaa)],this[_0xdde4c5(0xc2)]-0x1),TIMING[_0xdde4c5(0xcb)]);this['emit'](_0xdde4c5(0xe0),{'attempt':this['reconnectAttempts'],'delay':_0x207811}),this[_0xdde4c5(0xc9)]=setTimeout(()=>{const _0x402c2e=_0xdde4c5;this['reconnectTimer']=null,this[_0x402c2e(0xd9)]();},_0x207811);}[a0_0x345748(0xf6)](){const _0x4cceb5=a0_0x345748;this['stopHeartbeat'](),this['pingInterval']=setInterval(()=>{const _0x576c7f=a0_0x188b;this[_0x576c7f(0xbe)]===CONNECTION_STATE['CONNECTED']&&this[_0x576c7f(0xcc)]();},this[_0x4cceb5(0xc3)]);}['stopHeartbeat'](){const _0x5da1e5=a0_0x345748;this[_0x5da1e5(0xe5)]&&(clearInterval(this['pingInterval']),this[_0x5da1e5(0xe5)]=null),this['pongTimeout']&&(clearTimeout(this[_0x5da1e5(0xe8)]),this[_0x5da1e5(0xe8)]=null);}['sendPing'](){const _0x2ddb1d=a0_0x345748;if(this['state']!==CONNECTION_STATE['CONNECTED'])return;try{this['send']({'type':WS_MESSAGE_TYPE['PING']}),this[_0x2ddb1d(0xe8)]=setTimeout(()=>{this['handlePongTimeout']();},TIMING['WEBSOCKET_PONG_TIMEOUT']);}catch(_0x3452d4){this[_0x2ddb1d(0xc1)](_0x2ddb1d(0xee),_0x3452d4);}}['handlePong'](){const _0x545dd=a0_0x345748;this[_0x545dd(0xca)]=Date['now'](),this[_0x545dd(0xe8)]&&(clearTimeout(this[_0x545dd(0xe8)]),this['pongTimeout']=null);}['handlePongTimeout'](){const _0x38b9f8=a0_0x345748;this[_0x38b9f8(0xc1)](_0x38b9f8(0xad)),this['disconnect'](),this[_0x38b9f8(0xac)]&&this['scheduleReconnect']();}['joinSession'](_0x570682){this['sessionId']=_0x570682,this['send']({'type':WS_MESSAGE_TYPE['JOIN_SESSION'],'sessionId':_0x570682});}[a0_0x345748(0xe7)](_0x54f082,_0x3aa464,_0xebe1eb){const _0x24a3aa=a0_0x345748,_0x262e27=this[_0x24a3aa(0xab)](),_0x5c2bfc={'type':WS_MESSAGE_TYPE[_0x24a3aa(0xf2)],'requestId':_0x262e27,'action':_0x54f082,'payload':_0x3aa464,'projectDir':_0xebe1eb};return new Promise((_0x6a6b39,_0x3166cc)=>{const _0x3b8d2a=_0x24a3aa;this[_0x3b8d2a(0xf3)]['set'](_0x262e27,{'resolve':_0x6a6b39,'reject':_0x3166cc,'timestamp':Date[_0x3b8d2a(0xcf)]()});try{this['send'](_0x5c2bfc);}catch(_0x54c050){this['pendingRequests'][_0x3b8d2a(0xf8)](_0x262e27),_0x3166cc(_0x54c050);}setTimeout(()=>{const _0x37bc3f=_0x3b8d2a;this['pendingRequests'][_0x37bc3f(0xb1)](_0x262e27)&&(this['pendingRequests'][_0x37bc3f(0xf8)](_0x262e27),_0x3166cc(new Error(_0x37bc3f(0xf5))));},TIMING[_0x3b8d2a(0xce)]);});}['handleOrchestratorResponse'](_0x29327b){const _0x780c4=a0_0x345748,{requestId:_0x312e26,response:_0x5d2494,error:_0x3e78ae}=_0x29327b;if(this['pendingRequests']['has'](_0x312e26)){const {resolve:_0x58e135,reject:_0x285618}=this['pendingRequests']['get'](_0x312e26);this[_0x780c4(0xf3)][_0x780c4(0xf8)](_0x312e26),_0x3e78ae?_0x285618(new Error(_0x3e78ae)):_0x58e135(_0x5d2494);}}['send'](_0x19638c){const _0x33af45=a0_0x345748;if(this[_0x33af45(0xbe)]!==CONNECTION_STATE['CONNECTED']){this['messageQueue'][_0x33af45(0xd3)](_0x19638c);return;}try{this['ws']['send'](JSON['stringify'](_0x19638c));}catch(_0x2c5df4){this['emit'](_0x33af45(0xbc),_0x2c5df4);throw _0x2c5df4;}}[a0_0x345748(0xf7)](){const _0x5571af=a0_0x345748;while(this[_0x5571af(0xb8)][_0x5571af(0xc4)]>0x0&&this[_0x5571af(0xbe)]===CONNECTION_STATE[_0x5571af(0xbf)]){const _0x1974d3=this[_0x5571af(0xb8)]['shift']();try{this['ws'][_0x5571af(0xb3)](JSON[_0x5571af(0xb9)](_0x1974d3));}catch(_0x2b4ccc){this[_0x5571af(0xc1)]('queue_process_error',_0x2b4ccc),this[_0x5571af(0xb8)]['unshift'](_0x1974d3);break;}}}['disconnect'](){const _0x29c0f1=a0_0x345748;this['shouldReconnect']=![],this['cleanup']();if(this['ws']){try{this['ws']['close'](0x3e8,'Client\x20disconnect');}catch(_0x54c065){}this['ws']=null;}this[_0x29c0f1(0xd2)](CONNECTION_STATE['DISCONNECTED']);}[a0_0x345748(0xb7)](){const _0x153aa1=a0_0x345748;this[_0x153aa1(0xcd)](),this['reconnectTimer']&&(clearTimeout(this['reconnectTimer']),this[_0x153aa1(0xc9)]=null),this['ws']&&this['ws']['removeAllListeners']();}[a0_0x345748(0xd2)](_0x3c99d3){const _0x4e6186=a0_0x345748,_0x30ffa0=this['state'];this[_0x4e6186(0xbe)]=_0x3c99d3,_0x30ffa0!==_0x3c99d3&&this[_0x4e6186(0xc1)](_0x4e6186(0xdb),{'oldState':_0x30ffa0,'newState':_0x3c99d3});}[a0_0x345748(0xab)](){const _0x4dbea3=a0_0x345748;return this['requestIdCounter']++,_0x4dbea3(0xc0)+Date['now']()+'-'+this['requestIdCounter'];}['getState'](){return this['state'];}['isConnected'](){const _0x2276d1=a0_0x345748;return this['state']===CONNECTION_STATE[_0x2276d1(0xbf)];}['getSessionId'](){const _0x2f7985=a0_0x345748;return this[_0x2f7985(0xb4)];}[a0_0x345748(0xdc)](){const _0x1c5145=a0_0x345748;return{'state':this[_0x1c5145(0xbe)],'sessionId':this['sessionId'],'reconnectAttempts':this[_0x1c5145(0xc2)],'queuedMessages':this['messageQueue'][_0x1c5145(0xc4)],'pendingRequests':this['pendingRequests']['size'],'lastPongReceived':this[_0x1c5145(0xca)]};}}function a0_0x188b(_0x273537,_0x4bfdac){_0x273537=_0x273537-0xa9;const _0x3c574e=a0_0x3c57();let _0x188b34=_0x3c574e[_0x273537];if(a0_0x188b['PcyFGu']===undefined){var _0x478b31=function(_0x10a91c){const _0x4b9517='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x577c29='',_0x27ec94='';for(let _0x535b0e=0x0,_0x3d0eb3,_0x3b20f1,_0x25efc9=0x0;_0x3b20f1=_0x10a91c['charAt'](_0x25efc9++);~_0x3b20f1&&(_0x3d0eb3=_0x535b0e%0x4?_0x3d0eb3*0x40+_0x3b20f1:_0x3b20f1,_0x535b0e++%0x4)?_0x577c29+=String['fromCharCode'](0xff&_0x3d0eb3>>(-0x2*_0x535b0e&0x6)):0x0){_0x3b20f1=_0x4b9517['indexOf'](_0x3b20f1);}for(let _0xcb9c2d=0x0,_0x490888=_0x577c29['length'];_0xcb9c2d<_0x490888;_0xcb9c2d++){_0x27ec94+='%'+('00'+_0x577c29['charCodeAt'](_0xcb9c2d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x27ec94);};a0_0x188b['XlkFHr']=_0x478b31,a0_0x188b['hZyjpM']={},a0_0x188b['PcyFGu']=!![];}const _0x232909=_0x3c574e[0x0],_0x2ac427=_0x273537+_0x232909,_0x1a2a5b=a0_0x188b['hZyjpM'][_0x2ac427];return!_0x1a2a5b?(_0x188b34=a0_0x188b['XlkFHr'](_0x188b34),a0_0x188b['hZyjpM'][_0x2ac427]=_0x188b34):_0x188b34=_0x1a2a5b,_0x188b34;}export default WebSocketManager;
1
+ function a0_0x1d9f(){const _0x28a326=['ChjVy2vZC01LC3nHz2vrDwv1zq','zgLZy29UBMvJDa','AgfUzgXLrxjYB3i','q09otKvdveLorW','AgfUzgXLtwvZC2fNzq','zgvSzxrL','Dw5ZAgLMDa','C2HVDwXKuMvJB25Uzwn0','C2vZC2LVBL9QB2LUzwq','AgfZ','AgfUzgXLt3jJAgvZDhjHDg9YuMvZCg9UC2u','C2v0u3rHDgu','C2vUza','mtKYrhbOC0rk','zw1PDa','vw5RBM93BIbYzwfZB24','nZKWmZzMuM1xtu4','sK9jtL9trvntsu9o','reLtq09otKvdveve','C2L6zq','BgvUz3rO','C2vUzfbPBMC','mZyXotG1ruHND3rT','AgvHCNrIzwf0sw50zxj2ywW','AgfUzgXLq29UBMvJDgLVBKvYCM9Y','BwvZC2fNzvf1zxvL','mteXuvL4r09W','uMvXDwvZDcb0Aw1LB3v0','DhLWzq','y2XVC2u','C3rYAw5NAwz5','Cg93','Ag9ZDa','CxvLDwvFChjVy2vZC19LCNjVCG','CMvJB25Uzwn0rgvSyxK','y29UBMvJDa','D3m6lY8','zxjYB3i','q09otKvdveve','C2vZC2LVBKLK','CgvUzgLUz1jLCxvLC3rZ','CgfYC2vFzxjYB3i','t1jdsevtvfjbve9sx1jfuvvfu1q','BgfZDfbVBMDszwnLAxzLza','B25Jzq','C3rVCeHLyxj0yMvHDa','C3rHDgu','z2v0u3rHDhm','v0vcu09ds0vux1jfq09otKvdvf9nqvHFrevmqvK','y29UBMvJDgvK','nJy4mZK3zgjlqwrh','z2v0u2vZC2LVBKLK','AgvHCNrIzwf0x3rPBwvVDxq','z2vUzxjHDgvszxf1zxn0swq','AgfUzgXLug9UzW','BwLU','mJy5mtvuDu1QB3u','C3rHCNrizwfYDgjLyxq','yMfZzvjLy29UBMvJDerLBgf5','mZa4nZyYnfD6q0f4zq','y2XLyw51Ca','AxndB25Uzwn0zwq','Cg9Uz1rPBwvVDxq','CMvXDwvZDeLKq291BNrLCG','C2v0','BwvZC2fNzq','C2nOzwr1BgvszwnVBM5Ly3q','u0vtu0LptL9kt0Loruq','CgLUz19LCNjVCG','y29UBMvJDgLVBL9LCNjVCG','CMvXlq','z2v0','CMvJB25Uzwn0vgLTzxi','Cg9YDa','C2vUzf9LCNjVCG','CMvJB25Uzwn0qxr0zw1WDhm','CMvJB25Uzwn0Aw5N','C2HPzNq','CgLUz0LUDgvYDMfS','AgfUzgXLug9Uz1rPBwvVDxq','uKvdt05orunusu5h','D2fPDezVCKnVBM5Ly3rPB24','mte0nte2ogTvDMrRBa','AgfUzgXLq2XVC2u','mtq3mJKWnhDdA2HVyW','B3bLBG','C2v0DxbfDMvUDeHHBMrSzxjZ','BM93','Dg9tDhjPBMC','revgqvvmvf9qt1ju'];a0_0x1d9f=function(){return _0x28a326;};return a0_0x1d9f();}const a0_0x186005=a0_0xb497;(function(_0x2c26b0,_0xe64f10){const _0xf0a16a=a0_0xb497,_0x4f4a5d=_0x2c26b0();while(!![]){try{const _0x5aab9d=parseInt(_0xf0a16a(0x8d))/0x1+parseInt(_0xf0a16a(0xad))/0x2+-parseInt(_0xf0a16a(0x75))/0x3*(parseInt(_0xf0a16a(0x6b))/0x4)+parseInt(_0xf0a16a(0x71))/0x5+parseInt(_0xf0a16a(0xc2))/0x6*(parseInt(_0xf0a16a(0x93))/0x7)+-parseInt(_0xf0a16a(0x96))/0x8+parseInt(_0xf0a16a(0xaf))/0x9;if(_0x5aab9d===_0xe64f10)break;else _0x4f4a5d['push'](_0x4f4a5d['shift']());}catch(_0x57282c){_0x4f4a5d['push'](_0x4f4a5d['shift']());}}}(a0_0x1d9f,0x75ede));function a0_0xb497(_0x457ef2,_0x1ff3aa){_0x457ef2=_0x457ef2-0x69;const _0x1d9fb7=a0_0x1d9f();let _0xb49701=_0x1d9fb7[_0x457ef2];if(a0_0xb497['ktSERM']===undefined){var _0x1e6bd2=function(_0x3ce19b){const _0xcbfd5a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f707d='',_0x59902c='';for(let _0x132f92=0x0,_0x263b45,_0x45caca,_0x21cc00=0x0;_0x45caca=_0x3ce19b['charAt'](_0x21cc00++);~_0x45caca&&(_0x263b45=_0x132f92%0x4?_0x263b45*0x40+_0x45caca:_0x45caca,_0x132f92++%0x4)?_0x3f707d+=String['fromCharCode'](0xff&_0x263b45>>(-0x2*_0x132f92&0x6)):0x0){_0x45caca=_0xcbfd5a['indexOf'](_0x45caca);}for(let _0x2ed9c1=0x0,_0x48e87e=_0x3f707d['length'];_0x2ed9c1<_0x48e87e;_0x2ed9c1++){_0x59902c+='%'+('00'+_0x3f707d['charCodeAt'](_0x2ed9c1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x59902c);};a0_0xb497['NAWJAt']=_0x1e6bd2,a0_0xb497['tQuGgd']={},a0_0xb497['ktSERM']=!![];}const _0x1138b8=_0x1d9fb7[0x0],_0xc85736=_0x457ef2+_0x1138b8,_0x159177=a0_0xb497['tQuGgd'][_0xc85736];return!_0x159177?(_0xb49701=a0_0xb497['NAWJAt'](_0xb49701),a0_0xb497['tQuGgd'][_0xc85736]=_0xb49701):_0xb49701=_0x159177,_0xb49701;}import a0_0x3f707d from'ws';import{EventEmitter}from'events';import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';export class WebSocketManager extends EventEmitter{constructor(_0x59902c=NETWORK['DEFAULT_HOST'],_0x132f92=NETWORK[a0_0x186005(0xb4)],_0x263b45={}){const _0x1b9b37=a0_0x186005;super(),this[_0x1b9b37(0x7b)]=_0x59902c,this[_0x1b9b37(0xa4)]=_0x132f92,this['url']=_0x1b9b37(0x7f)+_0x59902c+':'+_0x132f92,this['ws']=null,this[_0x1b9b37(0x89)]=CONNECTION_STATE['DISCONNECTED'],this[_0x1b9b37(0x82)]=null,this[_0x1b9b37(0xa6)]=0x0,this['reconnectDelay']=_0x263b45[_0x1b9b37(0x7d)]??TIMING['WEBSOCKET_RECONNECT_DELAY'],this['baseReconnectDelay']=this['reconnectDelay'],this['reconnectTimer']=null,this[_0x1b9b37(0xbc)]=!![],this[_0x1b9b37(0x72)]=_0x263b45[_0x1b9b37(0x72)]??TIMING['WEBSOCKET_PING_INTERVAL'],this['pingInterval']=null,this['pongTimeout']=null,this[_0x1b9b37(0x86)]=null,this[_0x1b9b37(0x74)]=[],this[_0x1b9b37(0x9a)]=0x0,this['pendingRequests']=new Map();}async['connect'](){const _0x230b9e=a0_0x186005;if(this[_0x230b9e(0x89)]===CONNECTION_STATE['CONNECTED']||this[_0x230b9e(0x89)]===CONNECTION_STATE[_0x230b9e(0xb8)])return{'success':![],'error':'Already\x20connected\x20or\x20connecting'};this[_0x230b9e(0xc0)](CONNECTION_STATE['CONNECTING']),this['emit']('connecting');try{return this['ws']=new a0_0x3f707d(this['url']),this[_0x230b9e(0xb1)](),await this[_0x230b9e(0xac)](),{'success':!![]};}catch(_0x45caca){return this['handleConnectionError'](_0x45caca),{'success':![],'error':_0x45caca['message']};}}[a0_0x186005(0xac)](){return new Promise((_0x21cc00,_0x2ed9c1)=>{const _0x338799=a0_0xb497,_0x48e87e=setTimeout(()=>{_0x2ed9c1(new Error('Connection\x20timeout'));},TIMING['WEBSOCKET_CONNECT_TIMEOUT']);this['ws'][_0x338799(0x87)](_0x338799(0xb0),()=>{clearTimeout(_0x48e87e),_0x21cc00();}),this['ws'][_0x338799(0x87)]('error',_0x29d988=>{clearTimeout(_0x48e87e),_0x2ed9c1(_0x29d988);});});}[a0_0x186005(0xb1)](){const _0x7c3cf1=a0_0x186005;this['ws']['on'](_0x7c3cf1(0xb0),()=>this['handleOpen']()),this['ws']['on'](_0x7c3cf1(0x9c),_0xe5916e=>this[_0x7c3cf1(0xb9)](_0xe5916e)),this['ws']['on'](_0x7c3cf1(0x78),(_0x470eb0,_0x4fe9ca)=>this[_0x7c3cf1(0xae)](_0x470eb0,_0x4fe9ca)),this['ws']['on']('error',_0x12cd4c=>this[_0x7c3cf1(0xb7)](_0x12cd4c));}['handleOpen'](){const _0xeae4e8=a0_0x186005;this[_0xeae4e8(0xc0)](CONNECTION_STATE[_0xeae4e8(0x81)]),this['reconnectAttempts']=0x0,this[_0xeae4e8(0x7d)]=this[_0xeae4e8(0x95)],this['emit'](_0xeae4e8(0x8c)),this['startHeartbeat'](),this['processMessageQueue']();}[a0_0x186005(0xb9)](_0x193e37){const _0x381d72=a0_0x186005;try{const _0x54e5cc=JSON['parse'](_0x193e37[_0x381d72(0xb3)]());if(_0x54e5cc[_0x381d72(0x77)]===WS_MESSAGE_TYPE['PONG']){this[_0x381d72(0x91)]();return;}if(_0x54e5cc['type']===WS_MESSAGE_TYPE[_0x381d72(0x81)]){this[_0x381d72(0x69)]('welcome',_0x54e5cc);return;}if(_0x54e5cc['type']===WS_MESSAGE_TYPE[_0x381d72(0x9e)]){this[_0x381d72(0x82)]=_0x54e5cc['sessionId'],this['emit'](_0x381d72(0xbd),_0x54e5cc);return;}if(_0x54e5cc['type']===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this['handleOrchestratorResponse'](_0x54e5cc);return;}this[_0x381d72(0x69)](_0x381d72(0x9c),_0x54e5cc),_0x54e5cc['type']&&this[_0x381d72(0x69)](_0x54e5cc['type'],_0x54e5cc);}catch(_0x509788){this['emit'](_0x381d72(0x84),{'error':_0x509788,'data':_0x193e37});}}['handleClose'](_0x30c8e3,_0x3be4a7){const _0x315452=a0_0x186005;this[_0x315452(0x97)]();const _0xd5268c=_0x3be4a7[_0x315452(0xb3)]()||_0x315452(0x6a);this[_0x315452(0x69)]('disconnected',{'code':_0x30c8e3,'reason':_0xd5268c}),this[_0x315452(0xbc)]&&_0x30c8e3!==0x3e8?this[_0x315452(0x9d)]():this['setState'](CONNECTION_STATE[_0x315452(0x6d)]);}['handleError'](_0x34c4e8){const _0x32dc73=a0_0x186005;this[_0x32dc73(0x69)](_0x32dc73(0x80),_0x34c4e8);}[a0_0x186005(0x73)](_0x2f27b9){const _0x1a5bb6=a0_0x186005;this['setState'](CONNECTION_STATE['ERROR']),this['emit'](_0x1a5bb6(0xa0),_0x2f27b9),this['shouldReconnect']&&this[_0x1a5bb6(0x9d)]();}['scheduleReconnect'](){const _0x276a6d=a0_0x186005;if(this[_0x276a6d(0xa3)])return;this['setState'](CONNECTION_STATE[_0x276a6d(0xab)]),this[_0x276a6d(0xa6)]++;const _0x5ba95f=Math[_0x276a6d(0x92)](this['reconnectDelay']*Math[_0x276a6d(0x7a)](TIMING['WEBSOCKET_RECONNECT_MULTIPLIER'],this['reconnectAttempts']-0x1),TIMING[_0x276a6d(0x8b)]);this[_0x276a6d(0x69)](_0x276a6d(0xa7),{'attempt':this[_0x276a6d(0xa6)],'delay':_0x5ba95f}),this['reconnectTimer']=setTimeout(()=>{const _0x3891e5=_0x276a6d;this['reconnectTimer']=null,this[_0x3891e5(0x7e)]();},_0x5ba95f);}[a0_0x186005(0x94)](){const _0x27cacf=a0_0x186005;this['stopHeartbeat'](),this[_0x27cacf(0xa9)]=setInterval(()=>{const _0xd8520b=_0x27cacf;this[_0xd8520b(0x89)]===CONNECTION_STATE[_0xd8520b(0x81)]&&this['sendPing']();},this[_0x27cacf(0x72)]);}[a0_0x186005(0x88)](){const _0xf0a7f6=a0_0x186005;this[_0xf0a7f6(0xa9)]&&(clearInterval(this[_0xf0a7f6(0xa9)]),this['pingInterval']=null),this['pongTimeout']&&(clearTimeout(this[_0xf0a7f6(0x99)]),this['pongTimeout']=null);}[a0_0x186005(0x70)](){const _0x4134b0=a0_0x186005;if(this['state']!==CONNECTION_STATE['CONNECTED'])return;try{this[_0x4134b0(0xc1)]({'type':WS_MESSAGE_TYPE['PING']}),this['pongTimeout']=setTimeout(()=>{this['handlePongTimeout']();},TIMING['WEBSOCKET_PONG_TIMEOUT']);}catch(_0x57a862){this['emit'](_0x4134b0(0x9f),_0x57a862);}}['handlePong'](){const _0x17b85f=a0_0x186005;this[_0x17b85f(0x86)]=Date['now'](),this[_0x17b85f(0x99)]&&(clearTimeout(this[_0x17b85f(0x99)]),this['pongTimeout']=null);}[a0_0x186005(0xaa)](){const _0x181e37=a0_0x186005;this['emit'](_0x181e37(0x8f)),this['disconnect'](),this['shouldReconnect']&&this[_0x181e37(0x9d)]();}['joinSession'](_0xdd2a3c){const _0x12c8e0=a0_0x186005;this['sessionId']=_0xdd2a3c,this[_0x12c8e0(0xc1)]({'type':WS_MESSAGE_TYPE[_0x12c8e0(0x6c)],'sessionId':_0xdd2a3c});}['sendOrchestratorRequest'](_0x40debe,_0xf8aa7c,_0xc5b565){const _0x5c4eb1=a0_0x186005,_0x1705cd=this[_0x5c4eb1(0x90)](),_0x2f0338={'type':WS_MESSAGE_TYPE[_0x5c4eb1(0x85)],'requestId':_0x1705cd,'action':_0x40debe,'payload':_0xf8aa7c,'projectDir':_0xc5b565};return new Promise((_0x44ed0a,_0x192c58)=>{const _0x525c75=_0x5c4eb1;this[_0x525c75(0x83)][_0x525c75(0x9b)](_0x1705cd,{'resolve':_0x44ed0a,'reject':_0x192c58,'timestamp':Date['now']()});try{this[_0x525c75(0xc1)](_0x2f0338);}catch(_0x448538){this['pendingRequests'][_0x525c75(0xba)](_0x1705cd),_0x192c58(_0x448538);}setTimeout(()=>{const _0x5814b8=_0x525c75;this['pendingRequests'][_0x5814b8(0xbe)](_0x1705cd)&&(this[_0x5814b8(0x83)][_0x5814b8(0xba)](_0x1705cd),_0x192c58(new Error(_0x5814b8(0x76))));},TIMING['HTTP_TIMEOUT']);});}[a0_0x186005(0xbf)](_0x22119b){const _0x11af6b=a0_0x186005,{requestId:_0x16fc98,response:_0x4354fe,error:_0x2fa58c}=_0x22119b;if(this[_0x11af6b(0x83)]['has'](_0x16fc98)){const {resolve:_0xc9f94e,reject:_0x475844}=this[_0x11af6b(0x83)][_0x11af6b(0xa2)](_0x16fc98);this['pendingRequests'][_0x11af6b(0xba)](_0x16fc98),_0x2fa58c?_0x475844(new Error(_0x2fa58c)):_0xc9f94e(_0x4354fe);}}['send'](_0xa5470d){const _0x4d5159=a0_0x186005;if(this['state']!==CONNECTION_STATE[_0x4d5159(0x81)]){this['messageQueue']['push'](_0xa5470d);return;}try{this['ws']['send'](JSON[_0x4d5159(0x79)](_0xa5470d));}catch(_0x314c59){this[_0x4d5159(0x69)](_0x4d5159(0xa5),_0x314c59);throw _0x314c59;}}[a0_0x186005(0xb5)](){const _0x5deca6=a0_0x186005;while(this['messageQueue']['length']>0x0&&this[_0x5deca6(0x89)]===CONNECTION_STATE[_0x5deca6(0x81)]){const _0x58cb0f=this[_0x5deca6(0x74)][_0x5deca6(0xa8)]();try{this['ws'][_0x5deca6(0xc1)](JSON[_0x5deca6(0x79)](_0x58cb0f));}catch(_0x22881f){this[_0x5deca6(0x69)](_0x5deca6(0x7c),_0x22881f),this['messageQueue'][_0x5deca6(0xbb)](_0x58cb0f);break;}}}[a0_0x186005(0xb6)](){const _0x24f729=a0_0x186005;this[_0x24f729(0xbc)]=![],this[_0x24f729(0x97)]();if(this['ws']){try{this['ws'][_0x24f729(0x78)](0x3e8,'Client\x20disconnect');}catch(_0x281c14){}this['ws']=null;}this['setState'](CONNECTION_STATE[_0x24f729(0x6d)]);}[a0_0x186005(0x97)](){const _0x56402f=a0_0x186005;this['stopHeartbeat'](),this[_0x56402f(0xa3)]&&(clearTimeout(this['reconnectTimer']),this['reconnectTimer']=null),this['ws']&&this['ws']['removeAllListeners']();}[a0_0x186005(0xc0)](_0xbc2723){const _0x266a81=a0_0x186005,_0x5c97ff=this['state'];this[_0x266a81(0x89)]=_0xbc2723,_0x5c97ff!==_0xbc2723&&this[_0x266a81(0x69)]('state_change',{'oldState':_0x5c97ff,'newState':_0xbc2723});}[a0_0x186005(0x90)](){const _0x4cad58=a0_0x186005;return this[_0x4cad58(0x9a)]++,_0x4cad58(0xa1)+Date[_0x4cad58(0xb2)]()+'-'+this[_0x4cad58(0x9a)];}['getState'](){const _0x1580c1=a0_0x186005;return this[_0x1580c1(0x89)];}[a0_0x186005(0x98)](){const _0x1f7ac9=a0_0x186005;return this['state']===CONNECTION_STATE[_0x1f7ac9(0x81)];}[a0_0x186005(0x8e)](){const _0x5be39a=a0_0x186005;return this[_0x5be39a(0x82)];}[a0_0x186005(0x8a)](){const _0x32d699=a0_0x186005;return{'state':this['state'],'sessionId':this['sessionId'],'reconnectAttempts':this['reconnectAttempts'],'queuedMessages':this['messageQueue'][_0x32d699(0x6f)],'pendingRequests':this['pendingRequests'][_0x32d699(0x6e)],'lastPongReceived':this[_0x32d699(0x86)]};}}export default WebSocketManager;