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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/bin/cli.js +1 -1
  2. package/bin/loxia-terminal-v2.js +1 -1
  3. package/bin/loxia-terminal.js +1 -1
  4. package/bin/start-with-terminal.js +1 -1
  5. package/package.json +1 -2
  6. package/scripts/install-scanners.js +1 -1
  7. package/src/analyzers/CSSAnalyzer.js +1 -1
  8. package/src/analyzers/ConfigValidator.js +1 -1
  9. package/src/analyzers/ESLintAnalyzer.js +1 -1
  10. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  11. package/src/analyzers/PrettierFormatter.js +1 -1
  12. package/src/analyzers/PythonAnalyzer.js +1 -1
  13. package/src/analyzers/SecurityAnalyzer.js +1 -1
  14. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  15. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  17. package/src/analyzers/codeCloneDetector/index.js +1 -1
  18. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  19. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  20. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  21. package/src/core/agentPool.js +1 -1
  22. package/src/core/agentScheduler.js +1 -1
  23. package/src/core/contextManager.js +1 -1
  24. package/src/core/messageProcessor.js +1 -1
  25. package/src/core/orchestrator.js +1 -1
  26. package/src/core/stateManager.js +1 -1
  27. package/src/index.js +1 -1
  28. package/src/interfaces/cli.js +1 -1
  29. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  38. package/src/interfaces/terminal/api/apiClient.js +1 -1
  39. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  40. package/src/interfaces/terminal/api/session.js +1 -1
  41. package/src/interfaces/terminal/api/websocket.js +1 -1
  42. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  43. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  44. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  45. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  47. package/src/interfaces/terminal/components/Header.js +1 -1
  48. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  49. package/src/interfaces/terminal/components/InputBox.js +1 -1
  50. package/src/interfaces/terminal/components/Layout.js +1 -1
  51. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  52. package/src/interfaces/terminal/components/MessageList.js +1 -1
  53. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  54. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  55. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  56. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  57. package/src/interfaces/terminal/components/TextInput.js +1 -1
  58. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  59. package/src/interfaces/terminal/config/constants.js +1 -1
  60. package/src/interfaces/terminal/index.js +1 -1
  61. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  62. package/src/interfaces/terminal/state/useAgents.js +1 -1
  63. package/src/interfaces/terminal/state/useConnection.js +1 -1
  64. package/src/interfaces/terminal/state/useMessages.js +1 -1
  65. package/src/interfaces/terminal/state/useTools.js +1 -1
  66. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  67. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  68. package/src/interfaces/terminal/utils/theme.js +1 -1
  69. package/src/interfaces/webServer.js +1 -1
  70. package/src/modules/fileExplorer/controller.js +1 -1
  71. package/src/modules/fileExplorer/index.js +1 -1
  72. package/src/modules/fileExplorer/middleware.js +1 -1
  73. package/src/modules/fileExplorer/routes.js +1 -1
  74. package/src/services/aiService.js +1 -1
  75. package/src/services/apiKeyManager.js +1 -1
  76. package/src/services/benchmarkService.js +1 -1
  77. package/src/services/budgetService.js +1 -1
  78. package/src/services/contextInjectionService.js +1 -1
  79. package/src/services/conversationCompactionService.js +1 -1
  80. package/src/services/errorHandler.js +1 -1
  81. package/src/services/fileAttachmentService.js +1 -1
  82. package/src/services/modelRouterService.js +1 -1
  83. package/src/services/modelsService.js +1 -1
  84. package/src/services/qualityInspector.js +1 -1
  85. package/src/services/tokenCountingService.js +1 -1
  86. package/src/tools/agentCommunicationTool.js +1 -1
  87. package/src/tools/agentDelayTool.js +1 -1
  88. package/src/tools/asyncToolManager.js +1 -1
  89. package/src/tools/baseTool.js +1 -1
  90. package/src/tools/browserTool.js +1 -1
  91. package/src/tools/cloneDetectionTool.js +1 -1
  92. package/src/tools/dependencyResolverTool.js +1 -1
  93. package/src/tools/fileContentReplaceTool.js +1 -1
  94. package/src/tools/fileSystemTool.js +1 -1
  95. package/src/tools/fileTreeTool.js +1 -1
  96. package/src/tools/imageTool.js +1 -1
  97. package/src/tools/importAnalyzerTool.js +1 -1
  98. package/src/tools/jobDoneTool.js +1 -1
  99. package/src/tools/seekTool.js +1 -1
  100. package/src/tools/staticAnalysisTool.js +1 -1
  101. package/src/tools/taskManagerTool.js +1 -1
  102. package/src/tools/terminalTool.js +1 -1
  103. package/src/tools/webTool.js +1 -1
  104. package/src/types/agent.js +1 -1
  105. package/src/types/contextReference.js +1 -1
  106. package/src/types/conversation.js +1 -1
  107. package/src/types/toolCommand.js +1 -1
  108. package/src/utilities/attachmentValidator.js +1 -1
  109. package/src/utilities/configManager.js +1 -1
  110. package/src/utilities/constants.js +1 -1
  111. package/src/utilities/directoryAccessManager.js +1 -1
  112. package/src/utilities/fileProcessor.js +1 -1
  113. package/src/utilities/logger.js +1 -1
  114. package/src/utilities/tagParser.js +1 -1
  115. package/src/utilities/toolConstants.js +1 -1
  116. package/src/utilities/userDataDir.js +1 -1
@@ -1 +1 @@
1
- (function(_0x152356,_0x3df282){const _0x28d36e=a0_0xadb3,_0x12a9c9=_0x152356();while(!![]){try{const _0x3f4dbc=parseInt(_0x28d36e(0x17d))/0x1*(-parseInt(_0x28d36e(0x161))/0x2)+-parseInt(_0x28d36e(0x192))/0x3*(parseInt(_0x28d36e(0x19b))/0x4)+parseInt(_0x28d36e(0x178))/0x5+parseInt(_0x28d36e(0x16d))/0x6+parseInt(_0x28d36e(0x173))/0x7+-parseInt(_0x28d36e(0x15c))/0x8+parseInt(_0x28d36e(0x171))/0x9*(-parseInt(_0x28d36e(0x190))/0xa);if(_0x3f4dbc===_0x3df282)break;else _0x12a9c9['push'](_0x12a9c9['shift']());}catch(_0x5b6783){_0x12a9c9['push'](_0x12a9c9['shift']());}}}(a0_0x3e24,0x98cac));import{describe,test,expect}from'@jest/globals';function a0_0x3e24(){const _0x2819a8=['mZK4nJy1vNznEgDO','z2v0u2vZC2LVBKLK','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','z2v0u2vZC2LVBKLUzM8','CMvJB25Uzwn0qxr0zw1WDhm','ntC4ntrKrejRBK4','BwLKzgXLD2fYzq','C2vZC2LVBKLK','Dg9czuDYzwf0zxjuAgfU','z2v0u3rHDhm','DMvUzg9Ys2v5CW','zNvUy3rPB24','z2vUzxjHDgvszxf1zxn0swq','qvbjx0vorfbpsu5uuW','Bg9JywXOB3n0','Ahr0CdOVl2XVy2fSAg9ZDdO4mdGW','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','Dg9czurLzMLUzwq','Bg94AwfbCgLlzxK','Dg9nyxrJAa','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','AgfZsgfUzgXLCG','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','mtuYmduWCfHxCuHN','AgfZtg94AwflzxK','mtKWmZm4m01vvM9sAG','BwvZC2fNzvf1zxvL','CMvJzwL2zwrbDa','BM90','Dg9iyxzLuhjVCgvYDhK','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','DgvZDc1TzxnZywDL','z2v0u3rHDgu','v1nFtuvtu0fhrv9uwvbf','nereBhLVAa','BgvUz3rO','y29UBMvJDgvK','Dg9fCxvHBa','tuvtu0fhrv9msvnux0HfsuDiva','C3rHDgu','veLnsu5h','tKvuv09ssW','DxnL','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','reLtq09otKvdveve','ntu2mdGWwvDIzMDX','AxndB25Uzwn0zwq','CMvNAxn0zxjiyw5KBgvY','DgvZDa','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','mtbYsKreCwK','ChjVAMvJDerPCG','revgqvvmvf9qt1ju','Dg9czq','uefhsu5bveLptG','Ag9ZDa','su1br0vFuKvtvuXu','tufyx1jfvfjjrvm','lI4VlI4VyxbPl3nLC3nPB24UANm','revgqvvmvf9it1nu','q29UC3rHBNrZigHHDMuGBM8GBwfNAwmGBNvTyMvYCW','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','ndKWoduYmKnWwwHLyW','zgLZy29UBMvJDgvK','DgvZDc1OB3n0','BNvTyMvY','mtuZqxDMvfvR','Cg9YDa','nJG1ode5ng5cq3jeqW','DgvZDc0XmJm','AxnwywXPza','BM90lweTzNvUy3rPB24','v2vIu29JA2v0twfUywDLCIbOzwXWzxiGBwv0Ag9KCYb3B3jR'];a0_0x3e24=function(){return _0x2819a8;};return a0_0x3e24();}import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function a0_0xadb3(_0x5d0832,_0x3f175b){_0x5d0832=_0x5d0832-0x153;const _0x3e24fa=a0_0x3e24();let _0xadb309=_0x3e24fa[_0x5d0832];if(a0_0xadb3['frcjBE']===undefined){var _0x17ed87=function(_0x40b777){const _0x247d52='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x18b6fb='',_0x11f89e='';for(let _0x30e215=0x0,_0x9356c0,_0x3b4a5d,_0x2ba0d9=0x0;_0x3b4a5d=_0x40b777['charAt'](_0x2ba0d9++);~_0x3b4a5d&&(_0x9356c0=_0x30e215%0x4?_0x9356c0*0x40+_0x3b4a5d:_0x3b4a5d,_0x30e215++%0x4)?_0x18b6fb+=String['fromCharCode'](0xff&_0x9356c0>>(-0x2*_0x30e215&0x6)):0x0){_0x3b4a5d=_0x247d52['indexOf'](_0x3b4a5d);}for(let _0x1927af=0x0,_0x5e07c7=_0x18b6fb['length'];_0x1927af<_0x5e07c7;_0x1927af++){_0x11f89e+='%'+('00'+_0x18b6fb['charCodeAt'](_0x1927af)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x11f89e);};a0_0xadb3['PshGRE']=_0x17ed87,a0_0xadb3['hDLGws']={},a0_0xadb3['frcjBE']=!![];}const _0x2ec3e4=_0x3e24fa[0x0],_0x728f0b=_0x5d0832+_0x2ec3e4,_0x198872=a0_0xadb3['hDLGws'][_0x728f0b];return!_0x198872?(_0xadb309=a0_0xadb3['PshGRE'](_0xadb309),a0_0xadb3['hDLGws'][_0x728f0b]=_0xadb309):_0xadb309=_0x198872,_0xadb309;}describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x4d038f=a0_0xadb3,_0x18b6fb=await import(_0x4d038f(0x18d));expect(_0x18b6fb['UI_DIMENSIONS'])['toBeDefined'](),expect(_0x18b6fb['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x18b6fb[_0x4d038f(0x165)])[_0x4d038f(0x189)](),expect(_0x18b6fb['TIMING'])[_0x4d038f(0x189)](),expect(_0x18b6fb[_0x4d038f(0x157)])[_0x4d038f(0x189)](),expect(_0x18b6fb['CONNECTION_STATE'])[_0x4d038f(0x189)](),expect(_0x18b6fb['AGENT_MODE'])[_0x4d038f(0x189)](),expect(_0x18b6fb[_0x4d038f(0x19a)])[_0x4d038f(0x189)](),expect(_0x18b6fb[_0x4d038f(0x185)])['toBeDefined'](),expect(_0x18b6fb['COMMANDS'])['toBeDefined'](),expect(_0x18b6fb[_0x4d038f(0x157)][_0x4d038f(0x16a)])['toBe'](_0x4d038f(0x186)),expect(_0x18b6fb[_0x4d038f(0x157)][_0x4d038f(0x163)])[_0x4d038f(0x164)](0x1f90),expect(_0x18b6fb['CONNECTION_STATE']['DISCONNECTED'])[_0x4d038f(0x164)](_0x4d038f(0x16e)),expect(_0x18b6fb['CONNECTION_STATE']['CONNECTED'])['toBe'](_0x4d038f(0x19d));}),test('WebSocketManager class can be imported',async()=>{const _0x6c86a0=a0_0xadb3,{WebSocketManager:_0x11f89e}=await import('../../api/websocket.js');expect(_0x11f89e)[_0x6c86a0(0x189)](),expect(typeof _0x11f89e)['toBe']('function');const _0x30e215=new _0x11f89e('localhost',0x1f90);expect(_0x30e215)[_0x6c86a0(0x189)](),expect(_0x30e215['host'])['toBe'](_0x6c86a0(0x186)),expect(_0x30e215['port'])['toBe'](0x1f90),expect(_0x30e215['url'])[_0x6c86a0(0x164)]('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0xf72d61=a0_0xadb3,{SessionManager:_0x9356c0}=await import(_0xf72d61(0x169));expect(_0x9356c0)[_0xf72d61(0x189)](),expect(typeof _0x9356c0)['toBe']('function');const _0x3b4a5d=new _0x9356c0(_0xf72d61(0x186),0x1f90);expect(_0x3b4a5d)[_0xf72d61(0x189)](),expect(_0x3b4a5d[_0xf72d61(0x166)])[_0xf72d61(0x164)]('localhost'),expect(_0x3b4a5d[_0xf72d61(0x172)])['toBe'](0x1f90),expect(_0x3b4a5d['baseUrl'])[_0xf72d61(0x164)](_0xf72d61(0x187));}),test('MessageRouter class can be imported',async()=>{const _0x3e7350=a0_0xadb3,{MessageRouter:_0x2ba0d9}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1927af}=await import(_0x3e7350(0x18c));expect(_0x2ba0d9)['toBeDefined'](),expect(typeof _0x2ba0d9)['toBe'](_0x3e7350(0x183));const _0x5e07c7=new _0x1927af(_0x3e7350(0x186),0x1f90),_0x279494=new _0x2ba0d9(_0x5e07c7);expect(_0x279494)['toBeDefined'](),expect(_0x279494['ws'])[_0x3e7350(0x164)](_0x5e07c7);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0xbb391=a0_0xadb3,{loggingMiddleware:_0x3f1cfe,filterMiddleware:_0x15fbb4,transformMiddleware:_0x40d13a,timestampMiddleware:_0x4883a1,validationMiddleware:_0x145db1}=await import('../../api/messageRouter.js');expect(typeof _0x3f1cfe)[_0xbb391(0x164)]('function'),expect(typeof _0x15fbb4)[_0xbb391(0x164)](_0xbb391(0x183)),expect(typeof _0x40d13a)[_0xbb391(0x164)]('function'),expect(typeof _0x4883a1)['toBe']('function'),expect(typeof _0x145db1)[_0xbb391(0x164)](_0xbb391(0x183));}),test('useConnection hook can be imported',async()=>{const _0x277266=a0_0xadb3,{useConnection:_0x24e437,useConnectionStatus:_0x4e7525}=await import('../../state/useConnection.js');expect(_0x24e437)['toBeDefined'](),expect(typeof _0x24e437)['toBe']('function'),expect(_0x4e7525)[_0x277266(0x189)](),expect(typeof _0x4e7525)[_0x277266(0x164)](_0x277266(0x183));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x2d99bd=a0_0xadb3;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0xd53ba9=a0_0xadb3,{WebSocketManager:_0x1568fb}=await import(_0xd53ba9(0x18c)),{CONNECTION_STATE:_0x146bcf}=await import(_0xd53ba9(0x18d)),_0x1bc3b7=new _0x1568fb(_0xd53ba9(0x16f),0x2382);expect(_0x1bc3b7[_0xd53ba9(0x155)])[_0xd53ba9(0x164)](_0x146bcf[_0xd53ba9(0x15b)]),expect(_0x1bc3b7['sessionId'])[_0xd53ba9(0x164)](null),expect(_0x1bc3b7[_0xd53ba9(0x193)])['toEqual']([]),expect(_0x1bc3b7[_0xd53ba9(0x17c)])[_0xd53ba9(0x164)](0x0),expect(_0x1bc3b7['shouldReconnect'])['toBe'](!![]);}),test(_0x2d99bd(0x197),async()=>{const _0xd9bd92=_0x2d99bd,{SessionManager:_0xbbbe99}=await import(_0xd9bd92(0x169)),_0x46dadd=new _0xbbbe99('test-host',0x2382);expect(_0x46dadd['sessionId'])[_0xd9bd92(0x164)](null),expect(_0x46dadd[_0xd9bd92(0x162)])['toBe'](null),expect(_0x46dadd['loxiaApiKey'])['toBe'](null),expect(_0x46dadd[_0xd9bd92(0x182)])['toEqual']({}),expect(_0x46dadd[_0xd9bd92(0x175)]())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x597fe3=_0x2d99bd,{MessageRouter:_0x19144e}=await import('../../api/messageRouter.js'),{WebSocketManager:_0xee755f}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x2506e7}=await import('../../config/constants.js'),_0x117039=new _0xee755f(_0x597fe3(0x186),0x1f90),_0x4af67b=new _0x19144e(_0x117039);expect(_0x4af67b['hasHandler'](_0x2506e7['MESSAGE_ADDED']))[_0x597fe3(0x164)](!![]),expect(_0x4af67b['hasHandler'](_0x2506e7['AGENT_MODE_CHANGED']))['toBe'](!![]),expect(_0x4af67b['hasHandler'](_0x2506e7['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0x4af67b['hasHandler'](_0x2506e7['COMPACTION_EVENT']))['toBe'](!![]),expect(_0x4af67b[_0x597fe3(0x18e)](_0x2506e7[_0x597fe3(0x167)]))['toBe'](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x233ce9=_0x2d99bd,{MessageRouter:_0x1cfb56}=await import(_0x233ce9(0x159)),{WebSocketManager:_0x60fb25}=await import(_0x233ce9(0x18c)),_0x34a393=new _0x60fb25(_0x233ce9(0x186),0x1f90),_0xd732f5=new _0x1cfb56(_0x34a393),_0x3cca9d=_0x207ada=>_0x207ada;expect(_0xd732f5['middleware']['length'])[_0x233ce9(0x16c)](0x0),_0xd732f5[_0x233ce9(0x158)](_0x3cca9d);const _0x29aa04=_0xd732f5[_0x233ce9(0x17e)][_0x233ce9(0x19c)];expect(_0x29aa04)[_0x233ce9(0x180)](0x0),_0xd732f5['removeMiddleware'](_0x3cca9d),expect(_0xd732f5[_0x233ce9(0x17e)]['length'])['toBe'](_0x29aa04-0x1);}),test(_0x2d99bd(0x15a),async()=>{const _0x4c52cd=_0x2d99bd,{SessionManager:_0x482b95}=await import(_0x4c52cd(0x169)),_0x472351=new _0x482b95(_0x4c52cd(0x186),0x1f90);expect(_0x472351['getSessionId']())[_0x4c52cd(0x164)](null),expect(_0x472351['getProjectDir']())['toBe'](null),expect(_0x472351['isValid']())[_0x4c52cd(0x164)](![]);const _0x31b4cf=_0x472351[_0x4c52cd(0x17b)]();expect(_0x31b4cf)['toHaveProperty']('sessionId'),expect(_0x31b4cf)[_0x4c52cd(0x196)](_0x4c52cd(0x162)),expect(_0x31b4cf)['toHaveProperty'](_0x4c52cd(0x191)),expect(_0x31b4cf)['toHaveProperty']('vendorKeysCount');}),test(_0x2d99bd(0x177),async()=>{const _0x5b3118=_0x2d99bd,{WebSocketManager:_0x5cbfc1}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x47a0d6}=await import('../../config/constants.js'),_0x194334=new _0x5cbfc1(_0x5b3118(0x186),0x1f90);expect(_0x194334[_0x5b3118(0x199)]())['toBe'](_0x47a0d6['DISCONNECTED']),expect(_0x194334[_0x5b3118(0x15d)]())['toBe'](![]),expect(_0x194334[_0x5b3118(0x179)]())['toBe'](null);const _0x997804=_0x194334[_0x5b3118(0x181)]();expect(_0x997804)['toHaveProperty'](_0x5b3118(0x155)),expect(_0x997804)['toHaveProperty'](_0x5b3118(0x17f)),expect(_0x997804)['toHaveProperty'](_0x5b3118(0x17c)),expect(_0x997804)[_0x5b3118(0x196)]('queuedMessages'),expect(_0x997804)['toHaveProperty']('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x5bbc9a=_0x2d99bd,{MessageRouter:_0x5b17fb}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x10444b}=await import(_0x5bbc9a(0x18c)),_0x53fdc9=new _0x10444b(_0x5bbc9a(0x186),0x1f90),_0xf94dfd=new _0x5b17fb(_0x53fdc9),_0x5092f3=()=>{};expect(_0xf94dfd[_0x5bbc9a(0x18e)](_0x5bbc9a(0x198)))['toBe'](![]),_0xf94dfd['registerHandler']('test-message',_0x5092f3),expect(_0xf94dfd['hasHandler']('test-message'))['toBe'](!![]),_0xf94dfd['unregisterHandler']('test-message'),expect(_0xf94dfd['hasHandler']('test-message'))['toBe'](![]);}),test('MessageRouter\x20middleware\x20helpers\x20create\x20valid\x20middleware',async()=>{const _0x20ab91=_0x2d99bd,{loggingMiddleware:_0x612525,timestampMiddleware:_0x547794,filterMiddleware:_0x187d3e}=await import(_0x20ab91(0x159)),_0x7b4355=_0x612525();expect(typeof _0x7b4355)['toBe'](_0x20ab91(0x183));const _0x3fd3c7=_0x547794();expect(typeof _0x3fd3c7)[_0x20ab91(0x164)](_0x20ab91(0x183));const _0x5c3c12={'type':'test'},_0x245893=_0x3fd3c7(_0x5c3c12);expect(_0x245893)[_0x20ab91(0x196)](_0x20ab91(0x194)),expect(_0x245893['type'])[_0x20ab91(0x164)](_0x20ab91(0x15f));const _0x46672=_0x187d3e(['allowed-type']);expect(typeof _0x46672)['toBe']('function'),expect(_0x46672({'type':'allowed-type'}))['toBeTruthy'](),expect(_0x46672({'type':'blocked-type'}))['toBe'](null);}),test(_0x2d99bd(0x16b),async()=>{const _0x5d3691=_0x2d99bd,_0x7a18d3=await import('../../config/constants.js');expect(typeof _0x7a18d3['TIMING'][_0x5d3691(0x160)])['toBe'](_0x5d3691(0x170)),expect(typeof _0x7a18d3[_0x5d3691(0x156)]['WEBSOCKET_PING_INTERVAL'])['toBe']('number'),expect(typeof _0x7a18d3[_0x5d3691(0x157)]['DEFAULT_PORT'])[_0x5d3691(0x164)](_0x5d3691(0x170)),expect(typeof _0x7a18d3['NETWORK'][_0x5d3691(0x168)])['toBe'](_0x5d3691(0x170)),expect(typeof _0x7a18d3[_0x5d3691(0x157)]['HTTP_TIMEOUT'])[_0x5d3691(0x164)]('number'),expect(typeof _0x7a18d3['UI_DIMENSIONS'][_0x5d3691(0x154)])['toBe'](_0x5d3691(0x170)),expect(typeof _0x7a18d3['UI_DIMENSIONS']['SIDEBAR_WIDTH'])[_0x5d3691(0x164)]('number');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x3b880e=a0_0xadb3;test('MessageRouter\x20throws\x20on\x20invalid\x20handler',async()=>{const {MessageRouter:_0x4274f7}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x5e1e94}=await import('../../api/websocket.js'),_0x52aba9=new _0x5e1e94('localhost',0x1f90),_0x488509=new _0x4274f7(_0x52aba9);expect(()=>{const _0x16bd06=a0_0xadb3;_0x488509[_0x16bd06(0x15e)]('test',_0x16bd06(0x176));})['toThrow']('Handler\x20must\x20be\x20a\x20function');}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x456dc6=a0_0xadb3,{MessageRouter:_0x35a9a5}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x34fd86}=await import(_0x456dc6(0x18c)),_0x2143a8=new _0x34fd86(_0x456dc6(0x186),0x1f90),_0x5d064d=new _0x35a9a5(_0x2143a8);expect(()=>{const _0x32b56b=_0x456dc6;_0x5d064d[_0x32b56b(0x158)]('not-a-function');})['toThrow'](_0x456dc6(0x18f));}),test(_0x3b880e(0x188),async()=>{const _0x4a51d9=_0x3b880e,{SessionManager:_0x3e6c17}=await import(_0x4a51d9(0x169)),_0x69e807=new _0x3e6c17(_0x4a51d9(0x186),0x1f90);_0x69e807[_0x4a51d9(0x17f)]=_0x4a51d9(0x174),_0x69e807['projectDir']='/test/dir',_0x69e807['loxiaApiKey']='test-key',_0x69e807['vendorKeys']={'openai':'key'},expect(_0x69e807[_0x4a51d9(0x175)]())['toBe'](!![]),_0x69e807['clear'](),expect(_0x69e807[_0x4a51d9(0x17f)])['toBe'](null),expect(_0x69e807['projectDir'])[_0x4a51d9(0x164)](null),expect(_0x69e807[_0x4a51d9(0x18a)])[_0x4a51d9(0x164)](null),expect(_0x69e807[_0x4a51d9(0x182)])[_0x4a51d9(0x153)]({}),expect(_0x69e807['isValid']())[_0x4a51d9(0x164)](![]);}),test(_0x3b880e(0x17a),async()=>{const _0x77d1f3=_0x3b880e,{WebSocketManager:_0x2eddb0}=await import('../../api/websocket.js'),_0x18eb4d=new _0x2eddb0('localhost',0x1f90),_0x3b4012=_0x18eb4d[_0x77d1f3(0x184)](),_0x162d18=_0x18eb4d[_0x77d1f3(0x184)](),_0x2210a9=_0x18eb4d[_0x77d1f3(0x184)]();expect(_0x3b4012)[_0x77d1f3(0x195)][_0x77d1f3(0x164)](_0x162d18),expect(_0x162d18)['not']['toBe'](_0x2210a9),expect(_0x3b4012)[_0x77d1f3(0x195)]['toBe'](_0x2210a9),expect(_0x3b4012)['toMatch'](/^req-\d+-\d+$/),expect(_0x162d18)[_0x77d1f3(0x18b)](/^req-\d+-\d+$/),expect(_0x2210a9)['toMatch'](/^req-\d+-\d+$/);});});
1
+ const a0_0x2dbea4=a0_0x8ca0;(function(_0x30fb83,_0x8abe3a){const _0x2c2baf=a0_0x8ca0,_0x29522a=_0x30fb83();while(!![]){try{const _0x254da6=parseInt(_0x2c2baf(0xa1))/0x1*(parseInt(_0x2c2baf(0xcf))/0x2)+parseInt(_0x2c2baf(0xb7))/0x3+parseInt(_0x2c2baf(0xd0))/0x4+-parseInt(_0x2c2baf(0xaf))/0x5*(-parseInt(_0x2c2baf(0x90))/0x6)+-parseInt(_0x2c2baf(0xc0))/0x7+-parseInt(_0x2c2baf(0xb1))/0x8+-parseInt(_0x2c2baf(0xcc))/0x9;if(_0x254da6===_0x8abe3a)break;else _0x29522a['push'](_0x29522a['shift']());}catch(_0x5c6c21){_0x29522a['push'](_0x29522a['shift']());}}}(a0_0xd12e,0x4c7e1));import{describe,test,expect}from'@jest/globals';function a0_0xd12e(){const _0x3c5ca4=['q09ntuforfm','mtmXoti0mxvouNvprG','veLnsu5h','v2vIu29JA2v0twfUywDLCIbPBML0AwfSAxPLCYb3AxrOignVCNjLy3qGC3rHDgu','Bg94AwfbCgLlzxK','Dg9czq','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','C3rHDgu','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbfCNjVCIbiyw5KBgLUzW','reLtq09otKvdveve','sfruuf9usu1ft1vu','ntu5ndGWnvHWrfvjyG','CMvJB25Uzwn0qxr0zw1WDhm','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLignHBIbIzsbHzgrLzcbHBMqGCMvTB3zLza','nfHAqNPpva','nZq4mZa4uMDbsg9d','AxndB25Uzwn0zwq','z2v0u2vZC2LVBKLK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLigHLBhbLCNmGy3jLyxrLihzHBgLKig1PzgrSzxDHCMu','z2v0uhjVAMvJDerPCG','u0LerujbuL9xsurusa','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','C2HVDwXKuMvJB25Uzwn0','mtq5nZuZneDOB0zNqq','uefhsu5bveLptG','DxnL','C2vZC2LVBKLK','tuvtu0fhrv9msvnux0HfsuDiva','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','DgvZDa','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbTAwrKBgv3yxjL','revgqvvmvf9it1nu','tKvuv09ssW','BwvZC2fNzvf1zxvL','Cg9YDa','Dg9iyxzLuhjVCgvYDhK','CMvNAxn0zxjiyw5KBgvY','Dg9fCxvHBa','AxnwywXPza','quDftLrFtu9erq','mtu2ndu0uMPSC2rO','z2vUzxjHDgvszxf1zxn0swq','Dg9uAhjVDW','ywXSB3DLzc10ExbL','DgvZDc1OB3n0','lI4VlI4VyxbPl3nLC3nPB24UANm','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','z2v0u2vZC2LVBKLUzM8','zNvUy3rPB24','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','z2v0u3rHDhm','Bg9JywXOB3n0','Dw5YzwDPC3rLCKHHBMrSzxi','Dg9nyxrJAa','nxvkCLrYuq','BM90lweTzNvUy3rPB24','mtyYndmWnhfqDvLSvq','DgvZDc1TzxnZywDL','AgfZsgfUzgXLCG','vuLFreLnru5tsu9ouW','BNvTyMvY','ChjVAMvJDerPCG','mtCZmdy1nvvSCNvQBG','tuvtu0fhrv9brerfra','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','A2v5','Dg9czurLzMLUzwq','BgvUz3rO','DgvZDc1RzxK','yMfZzvvYBa'];a0_0xd12e=function(){return _0x3c5ca4;};return a0_0xd12e();}import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function a0_0x8ca0(_0x3b4588,_0x59f666){_0x3b4588=_0x3b4588-0x8f;const _0xd12ed5=a0_0xd12e();let _0x8ca0aa=_0xd12ed5[_0x3b4588];if(a0_0x8ca0['ZPdoSA']===undefined){var _0x121c4b=function(_0x412d88){const _0x403854='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xf63be5='',_0x5d5325='';for(let _0x5670d1=0x0,_0x3bebaf,_0x5c306d,_0x44c31e=0x0;_0x5c306d=_0x412d88['charAt'](_0x44c31e++);~_0x5c306d&&(_0x3bebaf=_0x5670d1%0x4?_0x3bebaf*0x40+_0x5c306d:_0x5c306d,_0x5670d1++%0x4)?_0xf63be5+=String['fromCharCode'](0xff&_0x3bebaf>>(-0x2*_0x5670d1&0x6)):0x0){_0x5c306d=_0x403854['indexOf'](_0x5c306d);}for(let _0xa73c2b=0x0,_0x411c8d=_0xf63be5['length'];_0xa73c2b<_0x411c8d;_0xa73c2b++){_0x5d5325+='%'+('00'+_0xf63be5['charCodeAt'](_0xa73c2b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5d5325);};a0_0x8ca0['BLtKVn']=_0x121c4b,a0_0x8ca0['lmYBWB']={},a0_0x8ca0['ZPdoSA']=!![];}const _0x13f14c=_0xd12ed5[0x0],_0x1d3e4e=_0x3b4588+_0x13f14c,_0x5eff33=a0_0x8ca0['lmYBWB'][_0x1d3e4e];return!_0x5eff33?(_0x8ca0aa=a0_0x8ca0['BLtKVn'](_0x8ca0aa),a0_0x8ca0['lmYBWB'][_0x1d3e4e]=_0x8ca0aa):_0x8ca0aa=_0x5eff33,_0x8ca0aa;}describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x22ab59=a0_0x8ca0,_0xf63be5=await import('../../config/constants.js');expect(_0xf63be5['UI_DIMENSIONS'])['toBeDefined'](),expect(_0xf63be5['MESSAGE_CONFIG'])[_0x22ab59(0xbb)](),expect(_0xf63be5[_0x22ab59(0x91)])['toBeDefined'](),expect(_0xf63be5[_0x22ab59(0xc1)])['toBeDefined'](),expect(_0xf63be5['NETWORK'])['toBeDefined'](),expect(_0xf63be5['CONNECTION_STATE'])['toBeDefined'](),expect(_0xf63be5[_0x22ab59(0xa0)])[_0x22ab59(0xbb)](),expect(_0xf63be5['WS_MESSAGE_TYPE'])[_0x22ab59(0xbb)](),expect(_0xf63be5['API_ENDPOINTS'])[_0x22ab59(0xbb)](),expect(_0xf63be5[_0x22ab59(0xbf)])[_0x22ab59(0xbb)](),expect(_0xf63be5[_0x22ab59(0x99)][_0x22ab59(0x98)])[_0x22ab59(0xc4)]('localhost'),expect(_0xf63be5[_0x22ab59(0x99)]['DEFAULT_PORT'])['toBe'](0x1f90),expect(_0xf63be5['CONNECTION_STATE']['DISCONNECTED'])['toBe']('disconnected'),expect(_0xf63be5['CONNECTION_STATE']['CONNECTED'])[_0x22ab59(0xc4)]('connected');}),test('WebSocketManager class can be imported',async()=>{const _0x2ff192=a0_0x8ca0,{WebSocketManager:_0x5d5325}=await import('../../api/websocket.js');expect(_0x5d5325)[_0x2ff192(0xbb)](),expect(typeof _0x5d5325)[_0x2ff192(0xc4)](_0x2ff192(0xa9));const _0x5670d1=new _0x5d5325(_0x2ff192(0xac),0x1f90);expect(_0x5670d1)['toBeDefined'](),expect(_0x5670d1['host'])[_0x2ff192(0xc4)]('localhost'),expect(_0x5670d1[_0x2ff192(0x9b)])[_0x2ff192(0xc4)](0x1f90),expect(_0x5670d1['url'])['toBe']('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0x55ff3c=a0_0x8ca0,{SessionManager:_0x3bebaf}=await import(_0x55ff3c(0xa6));expect(_0x3bebaf)[_0x55ff3c(0xbb)](),expect(typeof _0x3bebaf)[_0x55ff3c(0xc4)](_0x55ff3c(0xa9));const _0x5c306d=new _0x3bebaf('localhost',0x1f90);expect(_0x5c306d)[_0x55ff3c(0xbb)](),expect(_0x5c306d['host'])['toBe']('localhost'),expect(_0x5c306d[_0x55ff3c(0x9b)])[_0x55ff3c(0xc4)](0x1f90),expect(_0x5c306d[_0x55ff3c(0xbe)])[_0x55ff3c(0xc4)]('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x285116=a0_0x8ca0,{MessageRouter:_0x44c31e}=await import(_0x285116(0xd3)),{WebSocketManager:_0xa73c2b}=await import('../../api/websocket.js');expect(_0x44c31e)[_0x285116(0xbb)](),expect(typeof _0x44c31e)[_0x285116(0xc4)]('function');const _0x411c8d=new _0xa73c2b('localhost',0x1f90),_0x2668b4=new _0x44c31e(_0x411c8d);expect(_0x2668b4)['toBeDefined'](),expect(_0x2668b4['ws'])['toBe'](_0x411c8d);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x12f4b4=a0_0x8ca0,{loggingMiddleware:_0x21b44d,filterMiddleware:_0x1df31f,transformMiddleware:_0x15421e,timestampMiddleware:_0x384b40,validationMiddleware:_0x2af480}=await import('../../api/messageRouter.js');expect(typeof _0x21b44d)['toBe']('function'),expect(typeof _0x1df31f)[_0x12f4b4(0xc4)](_0x12f4b4(0xa9)),expect(typeof _0x15421e)['toBe']('function'),expect(typeof _0x384b40)['toBe']('function'),expect(typeof _0x2af480)[_0x12f4b4(0xc4)]('function');}),test('useConnection hook can be imported',async()=>{const _0x42b7a6=a0_0x8ca0,{useConnection:_0x1742c8,useConnectionStatus:_0x523ba1}=await import('../../state/useConnection.js');expect(_0x1742c8)['toBeDefined'](),expect(typeof _0x1742c8)['toBe'](_0x42b7a6(0xa9)),expect(_0x523ba1)['toBeDefined'](),expect(typeof _0x523ba1)['toBe'](_0x42b7a6(0xa9));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x47f417=a0_0x8ca0;test(_0x47f417(0xc2),async()=>{const _0x4a2bed=_0x47f417,{WebSocketManager:_0x5f4b18}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x6003ac}=await import(_0x4a2bed(0x95)),_0xd5c59e=new _0x5f4b18(_0x4a2bed(0xa5),0x2382);expect(_0xd5c59e['state'])['toBe'](_0x6003ac[_0x4a2bed(0xca)]),expect(_0xd5c59e['sessionId'])['toBe'](null),expect(_0xd5c59e[_0x4a2bed(0x9a)])[_0x4a2bed(0x9e)]([]),expect(_0xd5c59e['reconnectAttempts'])['toBe'](0x0),expect(_0xd5c59e[_0x4a2bed(0x8f)])['toBe'](!![]);}),test(_0x47f417(0xc5),async()=>{const _0x468561=_0x47f417,{SessionManager:_0x2053de}=await import(_0x468561(0xa6)),_0x19afdb=new _0x2053de('test-host',0x2382);expect(_0x19afdb[_0x468561(0x93)])[_0x468561(0xc4)](null),expect(_0x19afdb['projectDir'])['toBe'](null),expect(_0x19afdb[_0x468561(0xc3)])['toBe'](null),expect(_0x19afdb['vendorKeys'])[_0x468561(0x9e)]({}),expect(_0x19afdb['isValid']())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x35ffb3=_0x47f417,{MessageRouter:_0x50f671}=await import(_0x35ffb3(0xd3)),{WebSocketManager:_0x4a9588}=await import(_0x35ffb3(0xd7)),{WS_MESSAGE_TYPE:_0x105c6e}=await import(_0x35ffb3(0x95)),_0x2ae882=new _0x4a9588(_0x35ffb3(0xac),0x1f90),_0xa57b2b=new _0x50f671(_0x2ae882);expect(_0xa57b2b[_0x35ffb3(0xb3)](_0x105c6e[_0x35ffb3(0xb8)]))['toBe'](!![]),expect(_0xa57b2b[_0x35ffb3(0xb3)](_0x105c6e['AGENT_MODE_CHANGED']))[_0x35ffb3(0xc4)](!![]),expect(_0xa57b2b['hasHandler'](_0x105c6e['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0xa57b2b['hasHandler'](_0x105c6e['COMPACTION_EVENT']))[_0x35ffb3(0xc4)](!![]),expect(_0xa57b2b['hasHandler'](_0x105c6e['IMAGE_RESULT']))['toBe'](!![]);}),test(_0x47f417(0xce),async()=>{const _0x3abf92=_0x47f417,{MessageRouter:_0x15282e}=await import(_0x3abf92(0xd3)),{WebSocketManager:_0x53e568}=await import(_0x3abf92(0xd7)),_0x2cfdd7=new _0x53e568('localhost',0x1f90),_0x5f57a5=new _0x15282e(_0x2cfdd7),_0x1a3261=_0x26c448=>_0x26c448;expect(_0x5f57a5['middleware']['length'])['toBeGreaterThanOrEqual'](0x0),_0x5f57a5[_0x3abf92(0x92)](_0x1a3261);const _0x9036fd=_0x5f57a5['middleware'][_0x3abf92(0xbc)];expect(_0x9036fd)['toBeGreaterThan'](0x0),_0x5f57a5['removeMiddleware'](_0x1a3261),expect(_0x5f57a5['middleware'][_0x3abf92(0xbc)])[_0x3abf92(0xc4)](_0x9036fd-0x1);}),test(_0x47f417(0xb9),async()=>{const _0x3a7aac=_0x47f417,{SessionManager:_0x3305c2}=await import(_0x3a7aac(0xa6)),_0x5e9516=new _0x3305c2(_0x3a7aac(0xac),0x1f90);expect(_0x5e9516[_0x3a7aac(0xd2)]())[_0x3a7aac(0xc4)](null),expect(_0x5e9516[_0x3a7aac(0xd5)]())[_0x3a7aac(0xc4)](null),expect(_0x5e9516['isValid']())['toBe'](![]);const _0x5ed445=_0x5e9516[_0x3a7aac(0xa8)]();expect(_0x5ed445)['toHaveProperty']('sessionId'),expect(_0x5ed445)['toHaveProperty']('projectDir'),expect(_0x5ed445)[_0x3a7aac(0x9c)]('hasLoxiaKey'),expect(_0x5ed445)[_0x3a7aac(0x9c)]('vendorKeysCount');}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x209c7a=_0x47f417,{WebSocketManager:_0x24c86f}=await import(_0x209c7a(0xd7)),{CONNECTION_STATE:_0x421cc0}=await import('../../config/constants.js'),_0x296b46=new _0x24c86f(_0x209c7a(0xac),0x1f90);expect(_0x296b46['getState']())['toBe'](_0x421cc0[_0x209c7a(0xca)]),expect(_0x296b46[_0x209c7a(0xd1)]())[_0x209c7a(0xc4)](![]),expect(_0x296b46[_0x209c7a(0xd2)]())[_0x209c7a(0xc4)](null);const _0x5698ae=_0x296b46[_0x209c7a(0xab)]();expect(_0x5698ae)['toHaveProperty'](_0x209c7a(0xc6)),expect(_0x5698ae)[_0x209c7a(0x9c)](_0x209c7a(0x93)),expect(_0x5698ae)['toHaveProperty'](_0x209c7a(0xcd)),expect(_0x5698ae)['toHaveProperty']('queuedMessages'),expect(_0x5698ae)['toHaveProperty']('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0xd1d667=_0x47f417,{MessageRouter:_0x1d45c1}=await import(_0xd1d667(0xd3)),{WebSocketManager:_0xd91313}=await import('../../api/websocket.js'),_0x549e8c=new _0xd91313(_0xd1d667(0xac),0x1f90),_0x5aaf4a=new _0x1d45c1(_0x549e8c),_0x590954=()=>{};expect(_0x5aaf4a['hasHandler']('test-message'))[_0xd1d667(0xc4)](![]),_0x5aaf4a[_0xd1d667(0x9d)](_0xd1d667(0xb2),_0x590954),expect(_0x5aaf4a['hasHandler'](_0xd1d667(0xb2)))[_0xd1d667(0xc4)](!![]),_0x5aaf4a[_0xd1d667(0xad)](_0xd1d667(0xb2)),expect(_0x5aaf4a[_0xd1d667(0xb3)]('test-message'))[_0xd1d667(0xc4)](![]);}),test(_0x47f417(0xd4),async()=>{const _0x2eb030=_0x47f417,{loggingMiddleware:_0xf82c02,timestampMiddleware:_0x26fe48,filterMiddleware:_0x15ba5e}=await import('../../api/messageRouter.js'),_0x21b140=_0xf82c02();expect(typeof _0x21b140)['toBe']('function');const _0x46dd2e=_0x26fe48();expect(typeof _0x46dd2e)['toBe']('function');const _0x1a644a={'type':'test'},_0x4ed7c6=_0x46dd2e(_0x1a644a);expect(_0x4ed7c6)['toHaveProperty']('receivedAt'),expect(_0x4ed7c6['type'])[_0x2eb030(0xc4)]('test');const _0x102509=_0x15ba5e([_0x2eb030(0xa4)]);expect(typeof _0x102509)['toBe']('function'),expect(_0x102509({'type':'allowed-type'}))['toBeTruthy'](),expect(_0x102509({'type':'blocked-type'}))[_0x2eb030(0xc4)](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x1e4103=_0x47f417,_0x3a7bbe=await import('../../config/constants.js');expect(typeof _0x3a7bbe[_0x1e4103(0xc1)][_0x1e4103(0xaa)])[_0x1e4103(0xc4)](_0x1e4103(0xb5)),expect(typeof _0x3a7bbe['TIMING']['WEBSOCKET_PING_INTERVAL'])[_0x1e4103(0xc4)]('number'),expect(typeof _0x3a7bbe['NETWORK']['DEFAULT_PORT'])['toBe']('number'),expect(typeof _0x3a7bbe['NETWORK']['MAX_RETRIES'])['toBe'](_0x1e4103(0xb5)),expect(typeof _0x3a7bbe['NETWORK'][_0x1e4103(0xcb)])['toBe'](_0x1e4103(0xb5)),expect(typeof _0x3a7bbe[_0x1e4103(0xb4)][_0x1e4103(0x94)])[_0x1e4103(0xc4)](_0x1e4103(0xb5)),expect(typeof _0x3a7bbe['UI_DIMENSIONS'][_0x1e4103(0xd6)])['toBe']('number');});}),describe(a0_0x2dbea4(0xc9),()=>{const _0x47d954=a0_0x2dbea4;test(_0x47d954(0xa7),async()=>{const _0x14f11b=_0x47d954,{MessageRouter:_0x12be9a}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x46de22}=await import(_0x14f11b(0xd7)),_0x410fb9=new _0x46de22(_0x14f11b(0xac),0x1f90),_0x433f86=new _0x12be9a(_0x410fb9);expect(()=>{const _0x366c7d=_0x14f11b;_0x433f86[_0x366c7d(0x9d)](_0x366c7d(0x96),_0x366c7d(0xb0));})['toThrow']('Handler\x20must\x20be\x20a\x20function');}),test(_0x47d954(0x97),async()=>{const _0x505325=_0x47d954,{MessageRouter:_0x5d9715}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x430cb0}=await import(_0x505325(0xd7)),_0x28a6e5=new _0x430cb0('localhost',0x1f90),_0x2f368f=new _0x5d9715(_0x28a6e5);expect(()=>{const _0x350d3d=_0x505325;_0x2f368f[_0x350d3d(0x92)](_0x350d3d(0xb0));})[_0x505325(0xa3)]('Middleware\x20must\x20be\x20a\x20function');}),test(_0x47d954(0xc8),async()=>{const _0x402b85=_0x47d954,{SessionManager:_0x5ba4f9}=await import(_0x402b85(0xa6)),_0x3dcbf8=new _0x5ba4f9(_0x402b85(0xac),0x1f90);_0x3dcbf8['sessionId']='test-123',_0x3dcbf8['projectDir']='/test/dir',_0x3dcbf8[_0x402b85(0xc3)]=_0x402b85(0xbd),_0x3dcbf8['vendorKeys']={'openai':_0x402b85(0xba)},expect(_0x3dcbf8['isValid']())['toBe'](!![]),_0x3dcbf8['clear'](),expect(_0x3dcbf8['sessionId'])['toBe'](null),expect(_0x3dcbf8[_0x402b85(0xb6)])[_0x402b85(0xc4)](null),expect(_0x3dcbf8['loxiaApiKey'])['toBe'](null),expect(_0x3dcbf8['vendorKeys'])[_0x402b85(0x9e)]({}),expect(_0x3dcbf8[_0x402b85(0x9f)]())['toBe'](![]);}),test(_0x47d954(0xc7),async()=>{const _0x284b6e=_0x47d954,{WebSocketManager:_0x14307c}=await import(_0x284b6e(0xd7)),_0x50c3ba=new _0x14307c('localhost',0x1f90),_0x1bd68b=_0x50c3ba[_0x284b6e(0xa2)](),_0x167a77=_0x50c3ba[_0x284b6e(0xa2)](),_0x10ea16=_0x50c3ba[_0x284b6e(0xa2)]();expect(_0x1bd68b)['not'][_0x284b6e(0xc4)](_0x167a77),expect(_0x167a77)['not']['toBe'](_0x10ea16),expect(_0x1bd68b)['not'][_0x284b6e(0xc4)](_0x10ea16),expect(_0x1bd68b)['toMatch'](/^req-\d+-\d+$/),expect(_0x167a77)['toMatch'](/^req-\d+-\d+$/),expect(_0x10ea16)[_0x284b6e(0xae)](/^req-\d+-\d+$/);});});
@@ -1 +1 @@
1
- const a0_0x37cf4a=a0_0x58ea;(function(_0x2d9759,_0x28a9b3){const _0x52de01=a0_0x58ea,_0x594853=_0x2d9759();while(!![]){try{const _0x9235c3=parseInt(_0x52de01(0xb9))/0x1*(-parseInt(_0x52de01(0xc7))/0x2)+parseInt(_0x52de01(0xbd))/0x3*(parseInt(_0x52de01(0xbb))/0x4)+parseInt(_0x52de01(0xcb))/0x5+parseInt(_0x52de01(0xdf))/0x6+parseInt(_0x52de01(0xd2))/0x7*(-parseInt(_0x52de01(0xbf))/0x8)+-parseInt(_0x52de01(0xc9))/0x9+parseInt(_0x52de01(0xdc))/0xa;if(_0x9235c3===_0x28a9b3)break;else _0x594853['push'](_0x594853['shift']());}catch(_0x48dbf9){_0x594853['push'](_0x594853['shift']());}}}(a0_0x35a0,0x59292));import{describe,test,expect}from'@jest/globals';function a0_0x58ea(_0x2139e0,_0x33691f){_0x2139e0=_0x2139e0-0xa1;const _0x35a0b5=a0_0x35a0();let _0x58ea11=_0x35a0b5[_0x2139e0];if(a0_0x58ea['eaKUcH']===undefined){var _0xd651a0=function(_0x4e2304){const _0x3989fc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2ccf7b='',_0x164d3c='';for(let _0x5b5e99=0x0,_0x29d787,_0x14cb12,_0x2084cc=0x0;_0x14cb12=_0x4e2304['charAt'](_0x2084cc++);~_0x14cb12&&(_0x29d787=_0x5b5e99%0x4?_0x29d787*0x40+_0x14cb12:_0x14cb12,_0x5b5e99++%0x4)?_0x2ccf7b+=String['fromCharCode'](0xff&_0x29d787>>(-0x2*_0x5b5e99&0x6)):0x0){_0x14cb12=_0x3989fc['indexOf'](_0x14cb12);}for(let _0x266686=0x0,_0x5c78e8=_0x2ccf7b['length'];_0x266686<_0x5c78e8;_0x266686++){_0x164d3c+='%'+('00'+_0x2ccf7b['charCodeAt'](_0x266686)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x164d3c);};a0_0x58ea['prhpaY']=_0xd651a0,a0_0x58ea['mixsia']={},a0_0x58ea['eaKUcH']=!![];}const _0xc1658c=_0x35a0b5[0x0],_0x5638cf=_0x2139e0+_0xc1658c,_0x44a675=a0_0x58ea['mixsia'][_0x5638cf];return!_0x44a675?(_0x58ea11=a0_0x58ea['prhpaY'](_0x58ea11),a0_0x58ea['mixsia'][_0x5638cf]=_0x58ea11):_0x58ea11=_0x44a675,_0x58ea11;}function a0_0x35a0(){const _0x50dc37=['tuvtu0fhrv9dt05gsuC','nhDpv3zXtG','vvnfuG','nJq4mZnvAvDdr1C','BgvUz3rO','mJuXmda1nKveshfpza','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','tuvtu0fhrv9uwvbf','l2fWAs9VCMnOzxn0CMf0B3i','Dg9czq','t1jdsevtvfjbve9s','zNvUy3rPB24','vvnfuL9nrvntquDf','otK4ndjhvwjnuLy','DxnLtwvZC2fNzxm','ntG2odK3mNrNB1D0vW','Dg9czuDYzwf0zxjuAgfU','mJe0mZy2nxHhBfLmyW','Bg9JywXOB3n0','tufyx01fu1nbr0vFtevor1ri','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZifzHBgLKyxrPB24','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','Dg9nyxrJAa','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','mtrkA3rlsMe','tuvtu0fhrv9st0Xf','Dg9mB3DLCKnHC2u','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbKAxnWBgf5ig1LC3nHz2vZ','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','quDftLrFuKvtue9ou0u','tufyx01fu1nbr0vtx0rju1bmqvK','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','qvntsvnuqu5u','C3LZDgvTlw5VDgLMAwnHDgLVBG','nZK2ndGYmgfJAevyBW','lI4VlI4VyxbPl3nLC3nPB24UANm','AgfZsgfUzgXLCG','nde4nte0ng1YtuT4wq','rvHfq1vusu9ox1nut1bqruq','zgvMyxvSDa','u1Ltvevn','ywDLBNqTCMvZCg9UC2u','tufyx1bbr0vFu0LArq','BNvTyMvY','tuvtu0fhrv9st0XfihzHBhvLCYbHCMuGBg93zxjJyxnL','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','BwLU','Dg9czurLzMLUzwq','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','twvZC2fNzsbnyw5Hz2vTzw50ic0GrxjYB3iGsgfUzgXPBMC','ywDLBNrFBw9Kzv9JAgfUz2vK','Dg9czuXLC3nuAgfUt3jfCxvHBa','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','yxnZAxn0yw50','tuvtu0fhrv9brerfra','zxHLy3v0Aw9Ux3n0B3bWzwq','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','uefhrv9tsvPf','u1Ltvevnx05pveLgsunbveLptG','CMvWzwf0','twvZC2fNzvjVDxrLCG','nKLLD3boEG'];a0_0x35a0=function(){return _0x50dc37;};return a0_0x35a0();}describe(a0_0x37cf4a(0xc0),()=>{test('useMessages hook can be imported',async()=>{const _0x1d1db5=a0_0x58ea,{useMessages:_0x2ccf7b}=await import(_0x1d1db5(0xb4));expect(_0x2ccf7b)[_0x1d1db5(0xa9)](),expect(typeof _0x2ccf7b)[_0x1d1db5(0xc3)]('function');}),test('useMessages is default export',async()=>{const _0x41da2f=a0_0x58ea,module=await import(_0x41da2f(0xb4));expect(module[_0x41da2f(0xa1)])['toBeDefined'](),expect(typeof module[_0x41da2f(0xa1)])[_0x41da2f(0xc3)]('function'),expect(module['default'])[_0x41da2f(0xc3)](module[_0x41da2f(0xc8)]);}),test('useMessageCount helper hook can be imported',async()=>{const _0x477faa=a0_0x58ea,{useMessageCount:_0x164d3c}=await import(_0x477faa(0xb4));expect(_0x164d3c)['toBeDefined'](),expect(typeof _0x164d3c)['toBe'](_0x477faa(0xc5));});}),describe('Message\x20Management\x20-\x20Constants',()=>{const _0x1b4823=a0_0x37cf4a;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x1ec5ff=a0_0x58ea,{MESSAGE_ROLE:_0x5b5e99}=await import(_0x1ec5ff(0xcf));expect(_0x5b5e99)['toBeDefined'](),expect(_0x5b5e99['USER'])[_0x1ec5ff(0xc3)]('user'),expect(_0x5b5e99['ASSISTANT'])['toBe'](_0x1ec5ff(0xb1)),expect(_0x5b5e99[_0x1ec5ff(0xa2)])['toBe']('system');}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x2b7b67=a0_0x58ea,{MESSAGE_TYPE:_0x29d787}=await import(_0x2b7b67(0xcf));expect(_0x29d787)['toBeDefined'](),expect(_0x29d787[_0x2b7b67(0xc6)])[_0x2b7b67(0xc3)]('user-message'),expect(_0x29d787[_0x2b7b67(0xd7)])['toBe'](_0x2b7b67(0xa3)),expect(_0x29d787[_0x2b7b67(0xb6)])[_0x2b7b67(0xc3)](_0x2b7b67(0xdb));}),test('MESSAGE_CONFIG\x20constants\x20are\x20defined',async()=>{const _0x35ef6e=a0_0x58ea,{MESSAGE_CONFIG:_0x14cb12}=await import('../../config/constants.js');expect(_0x14cb12)[_0x35ef6e(0xa9)](),expect(_0x14cb12['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(_0x14cb12[_0x35ef6e(0xd8)])[_0x35ef6e(0xa9)](),expect(typeof _0x14cb12[_0x35ef6e(0xcd)])['toBe']('number'),expect(typeof _0x14cb12[_0x35ef6e(0xd8)])['toBe'](_0x35ef6e(0xa5));}),test(_0x1b4823(0xae),async()=>{const _0x208921=_0x1b4823,{PAGINATION:_0x2084cc}=await import('../../config/constants.js');expect(_0x2084cc)[_0x208921(0xa9)](),expect(_0x2084cc['PAGE_SIZE'])[_0x208921(0xa9)](),expect(_0x2084cc['MAX_PAGE_SIZE'])['toBeDefined'](),expect(typeof _0x2084cc['PAGE_SIZE'])['toBe'](_0x208921(0xa5)),expect(typeof _0x2084cc[_0x208921(0xa4)])['toBe'](_0x208921(0xa5));}),test('WS_MESSAGE_TYPE\x20includes\x20message\x20events',async()=>{const _0x232227=_0x1b4823,{WS_MESSAGE_TYPE:_0x266686}=await import('../../config/constants.js');expect(_0x266686)['toBeDefined'](),expect(_0x266686[_0x232227(0xb2)])[_0x232227(0xc3)]('message_added'),expect(_0x266686['AGENT_MODE_CHANGED'])['toBe'](_0x232227(0xac)),expect(_0x266686[_0x232227(0xe0)])[_0x232227(0xc3)](_0x232227(0xb3));});}),describe(a0_0x37cf4a(0xd6),()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0xade50d=a0_0x58ea,{useMessages:_0x5c78e8}=await import('../../state/useMessages.js'),{SessionManager:_0x57245d}=await import('../../api/session.js'),{MessageRouter:_0x46524b}=await import(_0xade50d(0xa7)),{WebSocketManager:_0x50fc0a}=await import(_0xade50d(0xaf)),_0x1fc13b=new _0x57245d('localhost',0x1f90),_0x484243=new _0x50fc0a('localhost',0x1f90),_0x4e86d0=new _0x46524b(_0x484243);expect(_0x1fc13b)[_0xade50d(0xa9)](),expect(_0x4e86d0)[_0xade50d(0xa9)](),expect(typeof _0x5c78e8)[_0xade50d(0xc3)]('function');}),test('Full message management stack can be imported together',async()=>{const _0x4b7b74=a0_0x58ea,[_0x3e1f64,_0x1d26d2,_0x5cc1bb,_0x1cde50,_0x1d0811]=await Promise['all']([import(_0x4b7b74(0xcf)),import(_0x4b7b74(0xdd)),import('../../api/websocket.js'),import(_0x4b7b74(0xa7)),import(_0x4b7b74(0xb4))]);expect(_0x3e1f64[_0x4b7b74(0xd3)])[_0x4b7b74(0xa9)](),expect(_0x3e1f64[_0x4b7b74(0xc1)])[_0x4b7b74(0xa9)](),expect(_0x3e1f64[_0x4b7b74(0xba)])['toBeDefined'](),expect(_0x1d26d2['SessionManager'])[_0x4b7b74(0xa9)](),expect(_0x5cc1bb['WebSocketManager'])[_0x4b7b74(0xa9)](),expect(_0x1cde50[_0x4b7b74(0xb8)])[_0x4b7b74(0xa9)](),expect(_0x1d0811[_0x4b7b74(0xc8)])['toBeDefined']();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{test('Orchestrator\x20endpoint\x20can\x20be\x20used\x20for\x20message\x20operations',async()=>{const _0x491ffa=a0_0x58ea,{API_ENDPOINTS:_0x4ab4f1}=await import(_0x491ffa(0xcf));expect(_0x4ab4f1[_0x491ffa(0xc4)])['toBeDefined'](),expect(_0x4ab4f1['ORCHESTRATOR'])[_0x491ffa(0xc3)](_0x491ffa(0xc2));}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x5ae630=a0_0x58ea,{API_ENDPOINTS:_0x5b1e76}=await import(_0x5ae630(0xcf));expect(_0x5b1e76[_0x5ae630(0xc4)])[_0x5ae630(0xd0)](/^\/api\//);});}),describe(a0_0x37cf4a(0xaa),()=>{test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x39dc98=a0_0x58ea,{useMessages:_0x56f253}=await import(_0x39dc98(0xb4));expect(_0x56f253[_0x39dc98(0xbe)])['toBe'](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x4fff3b=a0_0x58ea,{useMessageCount:_0x51d51c}=await import('../../state/useMessages.js');expect(_0x51d51c[_0x4fff3b(0xbe)])[_0x4fff3b(0xc3)](0x1);});}),describe(a0_0x37cf4a(0xce),()=>{const _0x54ece3=a0_0x37cf4a;test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x3e2578=a0_0x58ea,{MESSAGE_CONFIG:_0x4e8d9a}=await import(_0x3e2578(0xcf));expect(_0x4e8d9a['MAX_MESSAGE_LENGTH'])[_0x3e2578(0xca)](0x0),expect(_0x4e8d9a['MAX_MESSAGE_LENGTH'])['toBeLessThanOrEqual'](0x186a0),expect(_0x4e8d9a[_0x3e2578(0xd8)])['toBeGreaterThan'](0x0),expect(_0x4e8d9a[_0x3e2578(0xd8)])[_0x3e2578(0xad)](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x3aa94a=a0_0x58ea,{PAGINATION:_0x32b03e}=await import(_0x3aa94a(0xcf));expect(_0x32b03e[_0x3aa94a(0xb5)])[_0x3aa94a(0xca)](0x0),expect(_0x32b03e['PAGE_SIZE'])['toBeLessThanOrEqual'](0x3e8),expect(_0x32b03e[_0x3aa94a(0xa4)])[_0x3aa94a(0xd9)](_0x32b03e['PAGE_SIZE']);}),test(_0x54ece3(0xa6),async()=>{const _0x5d32fa=_0x54ece3,{MESSAGE_ROLE:_0x88d0aa}=await import(_0x5d32fa(0xcf));expect(_0x88d0aa[_0x5d32fa(0xbc)])[_0x5d32fa(0xc3)](_0x88d0aa[_0x5d32fa(0xbc)]['toLowerCase']()),expect(_0x88d0aa['ASSISTANT'])['toBe'](_0x88d0aa[_0x5d32fa(0xda)][_0x5d32fa(0xd4)]()),expect(_0x88d0aa[_0x5d32fa(0xa2)])[_0x5d32fa(0xc3)](_0x88d0aa[_0x5d32fa(0xa2)]['toLowerCase']());});}),describe(a0_0x37cf4a(0xb0),()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0x5b2978=a0_0x58ea,{MessageRouter:_0x578b1d}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x26099b}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x2a9344}=await import(_0x5b2978(0xcf)),_0x51888c=new _0x26099b(_0x5b2978(0xcc),0x1f90),_0x5fcfc8=new _0x578b1d(_0x51888c);expect(_0x5fcfc8[_0x5b2978(0xde)](_0x2a9344[_0x5b2978(0xb2)]))['toBe'](!![]),expect(_0x5fcfc8[_0x5b2978(0xde)](_0x2a9344['AGENT_MODE_CHANGED']))[_0x5b2978(0xc3)](!![]);});}),describe(a0_0x37cf4a(0xab),()=>{const _0x209978=a0_0x37cf4a;test('MESSAGE_CONFIG\x20enforces\x20maximum\x20message\x20length',async()=>{const _0x596be0=a0_0x58ea,{MESSAGE_CONFIG:_0x4a37dd}=await import(_0x596be0(0xcf));expect(_0x4a37dd[_0x596be0(0xcd)])[_0x596be0(0xa9)](),expect(typeof _0x4a37dd['MAX_MESSAGE_LENGTH'])['toBe']('number');const _0x1d3bb0='a'[_0x596be0(0xb7)](_0x4a37dd['MAX_MESSAGE_LENGTH']+0x1);expect(_0x1d3bb0['length'])[_0x596be0(0xca)](_0x4a37dd[_0x596be0(0xcd)]);}),test(_0x209978(0xd5),async()=>{const _0x13ff07=_0x209978,{MESSAGE_CONFIG:_0x4716c1}=await import('../../config/constants.js');expect(_0x4716c1[_0x13ff07(0xd8)])[_0x13ff07(0xa9)](),expect(typeof _0x4716c1['MAX_MESSAGES_DISPLAY'])['toBe'](_0x13ff07(0xa5)),expect(_0x4716c1['MAX_MESSAGES_DISPLAY'])['toBeGreaterThan'](0x0);});}),describe(a0_0x37cf4a(0xd1),()=>{test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x33f82e=a0_0x58ea,{PAGINATION:_0x399056}=await import('../../config/constants.js'),_0x4a5e74=0x0,_0x2b75ce=_0x4a5e74*_0x399056[_0x33f82e(0xb5)];expect(_0x2b75ce)[_0x33f82e(0xc3)](0x0);const _0x2694d5=0x1,_0x6ac52a=_0x2694d5*_0x399056['PAGE_SIZE'];expect(_0x6ac52a)['toBe'](_0x399056['PAGE_SIZE']);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0x33815c=a0_0x58ea,{PAGINATION:_0x3f5417}=await import('../../config/constants.js'),_0x1b76cd=0x3e8,_0x51779b=Math[_0x33815c(0xa8)](_0x1b76cd,_0x3f5417[_0x33815c(0xa4)]);expect(_0x51779b)[_0x33815c(0xad)](_0x3f5417['MAX_PAGE_SIZE']);});});
1
+ const a0_0x35d151=a0_0x4879;function a0_0x5c88(){const _0x5ad14e=['qvntsvnuqu5u','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','tufyx1bbr0vFu0LArq','t1jdsevtvfjbve9s','zNvUy3rPB24','BgvUz3rO','twvZC2fNzvjVDxrLCIbOyxmGBwvZC2fNzsbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','zxHLy3v0Aw9Ux3n0B3bWzwq','quDftLrFuKvtue9ou0u','Dg9mB3DLCKnHC2u','twvZC2fNzsbbueKGzw5KCg9PBNrZigzVBgXVDYbsrvnuzNvSihbHDhrLCM4','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','DxnLCG','tuvtu0fhrv9uwvbfignVBNn0yw50CYbHCMuGzgvMAw5Lza','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','uefhrv9tsvPf','DxnLtwvZC2fNzxmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','yxnZAxn0yw50','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','vvnfuG','tufyx01fu1nbr0vFtevor1ri','quDftLrFtu9erv9dsefor0ve','mtyXotmYmtbYzgXWq3O','DxnLCI1TzxnZywDL','Dg9czq','ndGYnJG5mMfVDNvrBq','C3LZDgvTlw5VDgLMAwnHDgLVBG','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','vvnfuL9nrvntquDf','mZnOsKLAte0','Dg9czuXLC3nuAgfUt3jfCxvHBa','mJK0mJG3y1zWCxPi','Dg9czurLzMLUzwq','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','twvZC2fNzvjVDxrLCG','Dg9nyxrJAa','mNfgCvDtvq','mZb4u0frq2u','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','Bg9JywXOB3n0','tuvtu0fhrv9brerfra','t3jJAgvZDhjHDg9YigvUzhbVAw50ignHBIbIzsb1C2vKigzVCIbTzxnZywDLig9WzxjHDgLVBNm','uefhsu5bveLptIbZDxbWB3j0CYbVzMzZzxqTyMfZzwqGCgfNAw5HDgLVBG','ndm5mdq1y093t2Lz','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','tuvtu0fhrv9st0Xf','lI4VlI4VyxbPl3nLC3nPB24UANm','BNvTyMvY','u1Ltvevn','Dg9czuDYzwf0zxjuAgfU','twvZC2fNzsbnyw5Hz2vTzw50ic0GqvbjievUzhbVAw50CYbwywXPzgf0Aw9U','tuvtu0fhrv9dt05gsuC','l2fWAs9VCMnOzxn0CMf0B3i','mta1ntq5ndHkyMHbCMK','zgvMyxvSDa','tuvtu0fhrv9uwvbf','mtiWotyZr0PmveTU','C3LZDgvT','tufyx01fu1nbr0vtx0rju1bmqvK','u1Ltvevnx05pveLgsunbveLptG','BwvZC2fNzv9HzgrLza','mtmYotC0nwfUtM1nwa','mJy0t01Rq2Pm','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm'];a0_0x5c88=function(){return _0x5ad14e;};return a0_0x5c88();}(function(_0x2b7519,_0x404e09){const _0x2e52bd=a0_0x4879,_0x1e6dab=_0x2b7519();while(!![]){try{const _0x3b4045=parseInt(_0x2e52bd(0x1d8))/0x1+-parseInt(_0x2e52bd(0x1d1))/0x2*(-parseInt(_0x2e52bd(0x1e5))/0x3)+parseInt(_0x2e52bd(0x1c6))/0x4+-parseInt(_0x2e52bd(0x1ea))/0x5*(-parseInt(_0x2e52bd(0x1d2))/0x6)+-parseInt(_0x2e52bd(0x1cc))/0x7*(-parseInt(_0x2e52bd(0x1eb))/0x8)+parseInt(_0x2e52bd(0x1e2))/0x9+-parseInt(_0x2e52bd(0x1c3))/0xa*(parseInt(_0x2e52bd(0x1ca))/0xb);if(_0x3b4045===_0x404e09)break;else _0x1e6dab['push'](_0x1e6dab['shift']());}catch(_0x372282){_0x1e6dab['push'](_0x1e6dab['shift']());}}}(a0_0x5c88,0xaf4ac));import{describe,test,expect}from'@jest/globals';function a0_0x4879(_0x14ea5b,_0x15bed9){_0x14ea5b=_0x14ea5b-0x1ad;const _0x5c88fe=a0_0x5c88();let _0x4879a4=_0x5c88fe[_0x14ea5b];if(a0_0x4879['dLlhBc']===undefined){var _0x5316c9=function(_0x406e67){const _0x4ea551='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x38995c='',_0x4a90a8='';for(let _0x31d02e=0x0,_0x32868e,_0x2979ff,_0x5c05ae=0x0;_0x2979ff=_0x406e67['charAt'](_0x5c05ae++);~_0x2979ff&&(_0x32868e=_0x31d02e%0x4?_0x32868e*0x40+_0x2979ff:_0x2979ff,_0x31d02e++%0x4)?_0x38995c+=String['fromCharCode'](0xff&_0x32868e>>(-0x2*_0x31d02e&0x6)):0x0){_0x2979ff=_0x4ea551['indexOf'](_0x2979ff);}for(let _0x337acd=0x0,_0x8ee0c9=_0x38995c['length'];_0x337acd<_0x8ee0c9;_0x337acd++){_0x4a90a8+='%'+('00'+_0x38995c['charCodeAt'](_0x337acd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4a90a8);};a0_0x4879['gmTXhf']=_0x5316c9,a0_0x4879['imxVXl']={},a0_0x4879['dLlhBc']=!![];}const _0x34febc=_0x5c88fe[0x0],_0x304134=_0x14ea5b+_0x34febc,_0x413d71=a0_0x4879['imxVXl'][_0x304134];return!_0x413d71?(_0x4879a4=a0_0x4879['gmTXhf'](_0x4879a4),a0_0x4879['imxVXl'][_0x304134]=_0x4879a4):_0x4879a4=_0x413d71,_0x4879a4;}describe(a0_0x35d151(0x1c8),()=>{test('useMessages hook can be imported',async()=>{const _0x5a691d=a0_0x4879,{useMessages:_0x38995c}=await import('../../state/useMessages.js');expect(_0x38995c)['toBeDefined'](),expect(typeof _0x38995c)['toBe'](_0x5a691d(0x1b1));}),test('useMessages is default export',async()=>{const _0x40c808=a0_0x4879,module=await import('../../state/useMessages.js');expect(module[_0x40c808(0x1e3)])['toBeDefined'](),expect(typeof module[_0x40c808(0x1e3)])[_0x40c808(0x1c5)](_0x40c808(0x1b1)),expect(module[_0x40c808(0x1e3)])[_0x40c808(0x1c5)](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x153921=a0_0x4879,{useMessageCount:_0x4a90a8}=await import('../../state/useMessages.js');expect(_0x4a90a8)['toBeDefined'](),expect(typeof _0x4a90a8)[_0x153921(0x1c5)]('function');});}),describe(a0_0x35d151(0x1bf),()=>{const _0x5e54ed=a0_0x35d151;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x25bf13=a0_0x4879,{MESSAGE_ROLE:_0x31d02e}=await import(_0x25bf13(0x1d3));expect(_0x31d02e)['toBeDefined'](),expect(_0x31d02e['USER'])[_0x25bf13(0x1c5)](_0x25bf13(0x1b9)),expect(_0x31d02e['ASSISTANT'])[_0x25bf13(0x1c5)](_0x25bf13(0x1be)),expect(_0x31d02e['SYSTEM'])[_0x25bf13(0x1c5)](_0x25bf13(0x1e6));}),test(_0x5e54ed(0x1ba),async()=>{const _0x2867ee=_0x5e54ed,{MESSAGE_TYPE:_0x32868e}=await import(_0x2867ee(0x1d3));expect(_0x32868e)['toBeDefined'](),expect(_0x32868e[_0x2867ee(0x1c9)])['toBe'](_0x2867ee(0x1c4)),expect(_0x32868e[_0x2867ee(0x1b5)])[_0x2867ee(0x1c5)]('agent-response'),expect(_0x32868e[_0x2867ee(0x1e8)])['toBe'](_0x2867ee(0x1c7));}),test(_0x5e54ed(0x1ae),async()=>{const _0x4e568b=_0x5e54ed,{MESSAGE_CONFIG:_0x2979ff}=await import(_0x4e568b(0x1d3));expect(_0x2979ff)[_0x4e568b(0x1cd)](),expect(_0x2979ff['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(_0x2979ff[_0x4e568b(0x1e7)])[_0x4e568b(0x1cd)](),expect(typeof _0x2979ff[_0x4e568b(0x1c1)])[_0x4e568b(0x1c5)](_0x4e568b(0x1dc)),expect(typeof _0x2979ff['MAX_MESSAGES_DISPLAY'])[_0x4e568b(0x1c5)]('number');}),test(_0x5e54ed(0x1b8),async()=>{const _0x2790ef=_0x5e54ed,{PAGINATION:_0x5c05ae}=await import(_0x2790ef(0x1d3));expect(_0x5c05ae)[_0x2790ef(0x1cd)](),expect(_0x5c05ae['PAGE_SIZE'])['toBeDefined'](),expect(_0x5c05ae[_0x2790ef(0x1af)])[_0x2790ef(0x1cd)](),expect(typeof _0x5c05ae['PAGE_SIZE'])[_0x2790ef(0x1c5)](_0x2790ef(0x1dc)),expect(typeof _0x5c05ae[_0x2790ef(0x1af)])[_0x2790ef(0x1c5)](_0x2790ef(0x1dc));}),test('WS_MESSAGE_TYPE\x20includes\x20message\x20events',async()=>{const _0x419bfd=_0x5e54ed,{WS_MESSAGE_TYPE:_0x337acd}=await import('../../config/constants.js');expect(_0x337acd)['toBeDefined'](),expect(_0x337acd[_0x419bfd(0x1d5)])[_0x419bfd(0x1c5)](_0x419bfd(0x1e9)),expect(_0x337acd[_0x419bfd(0x1c2)])['toBe']('agent_mode_changed'),expect(_0x337acd['EXECUTION_STOPPED'])[_0x419bfd(0x1c5)](_0x419bfd(0x1b4));});}),describe('Message\x20Management\x20-\x20Integration',()=>{const _0x322149=a0_0x35d151;test(_0x322149(0x1bd),async()=>{const _0x3a01bd=_0x322149,{useMessages:_0x8ee0c9}=await import('../../state/useMessages.js'),{SessionManager:_0x3f99ce}=await import('../../api/session.js'),{MessageRouter:_0x2f76b0}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x273eb3}=await import('../../api/websocket.js'),_0x5dcce0=new _0x3f99ce('localhost',0x1f90),_0xc175d3=new _0x273eb3('localhost',0x1f90),_0x31e502=new _0x2f76b0(_0xc175d3);expect(_0x5dcce0)['toBeDefined'](),expect(_0x31e502)[_0x3a01bd(0x1cd)](),expect(typeof _0x8ee0c9)[_0x3a01bd(0x1c5)](_0x3a01bd(0x1b1));}),test('Full message management stack can be imported together',async()=>{const _0x151751=_0x322149,[_0x2ae9eb,_0x18c95c,_0x3eb0f2,_0x231424,_0x216c9c]=await Promise['all']([import(_0x151751(0x1d3)),import(_0x151751(0x1db)),import(_0x151751(0x1bb)),import(_0x151751(0x1d9)),import('../../state/useMessages.js')]);expect(_0x2ae9eb[_0x151751(0x1da)])['toBeDefined'](),expect(_0x2ae9eb[_0x151751(0x1e4)])[_0x151751(0x1cd)](),expect(_0x2ae9eb[_0x151751(0x1e0)])['toBeDefined'](),expect(_0x18c95c['SessionManager'])[_0x151751(0x1cd)](),expect(_0x3eb0f2['WebSocketManager'])[_0x151751(0x1cd)](),expect(_0x231424[_0x151751(0x1cf)])['toBeDefined'](),expect(_0x216c9c['useMessages'])['toBeDefined']();});}),describe(a0_0x35d151(0x1df),()=>{const _0x4cf324=a0_0x35d151;test(_0x4cf324(0x1d6),async()=>{const _0x3e6067=_0x4cf324,{API_ENDPOINTS:_0x48a856}=await import(_0x3e6067(0x1d3));expect(_0x48a856[_0x3e6067(0x1b0)])[_0x3e6067(0x1cd)](),expect(_0x48a856[_0x3e6067(0x1b0)])['toBe'](_0x3e6067(0x1e1));}),test(_0x4cf324(0x1b7),async()=>{const _0x7e835=_0x4cf324,{API_ENDPOINTS:_0x482444}=await import('../../config/constants.js');expect(_0x482444[_0x7e835(0x1b0)])[_0x7e835(0x1d0)](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x5bfea8=a0_0x4879,{useMessages:_0x5292ce}=await import(_0x5bfea8(0x1ec));expect(_0x5292ce[_0x5bfea8(0x1b2)])[_0x5bfea8(0x1c5)](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x5692e3=a0_0x4879,{useMessageCount:_0x417b3d}=await import('../../state/useMessages.js');expect(_0x417b3d[_0x5692e3(0x1b2)])[_0x5692e3(0x1c5)](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x38ae50=a0_0x4879,{MESSAGE_CONFIG:_0x219510}=await import(_0x38ae50(0x1d3));expect(_0x219510['MAX_MESSAGE_LENGTH'])['toBeGreaterThan'](0x0),expect(_0x219510['MAX_MESSAGE_LENGTH'])[_0x38ae50(0x1cb)](0x186a0),expect(_0x219510[_0x38ae50(0x1e7)])[_0x38ae50(0x1de)](0x0),expect(_0x219510['MAX_MESSAGES_DISPLAY'])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x2c5bb6=a0_0x4879,{PAGINATION:_0x1a8b73}=await import('../../config/constants.js');expect(_0x1a8b73['PAGE_SIZE'])[_0x2c5bb6(0x1de)](0x0),expect(_0x1a8b73['PAGE_SIZE'])['toBeLessThanOrEqual'](0x3e8),expect(_0x1a8b73[_0x2c5bb6(0x1af)])['toBeGreaterThanOrEqual'](_0x1a8b73['PAGE_SIZE']);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x4a381e=a0_0x4879,{MESSAGE_ROLE:_0x32000e}=await import(_0x4a381e(0x1d3));expect(_0x32000e['USER'])['toBe'](_0x32000e[_0x4a381e(0x1c0)][_0x4a381e(0x1b6)]()),expect(_0x32000e[_0x4a381e(0x1ad)])['toBe'](_0x32000e['ASSISTANT'][_0x4a381e(0x1b6)]()),expect(_0x32000e['SYSTEM'])[_0x4a381e(0x1c5)](_0x32000e[_0x4a381e(0x1dd)]['toLowerCase']());});}),describe('Message\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{const _0x4cf016=a0_0x35d151;test(_0x4cf016(0x1b3),async()=>{const _0x451f1f=_0x4cf016,{MessageRouter:_0x2fc6fb}=await import(_0x451f1f(0x1d9)),{WebSocketManager:_0xf15a54}=await import(_0x451f1f(0x1bb)),{WS_MESSAGE_TYPE:_0xa2d45b}=await import('../../config/constants.js'),_0x28fe5b=new _0xf15a54(_0x451f1f(0x1d4),0x1f90),_0xa74c5e=new _0x2fc6fb(_0x28fe5b);expect(_0xa74c5e['hasHandler'](_0xa2d45b[_0x451f1f(0x1d5)]))[_0x451f1f(0x1c5)](!![]),expect(_0xa74c5e['hasHandler'](_0xa2d45b['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe('Message\x20Management\x20-\x20Error\x20Handling',()=>{test('MESSAGE_CONFIG\x20enforces\x20maximum\x20message\x20length',async()=>{const _0x545b19=a0_0x4879,{MESSAGE_CONFIG:_0x2ad4d1}=await import('../../config/constants.js');expect(_0x2ad4d1['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(typeof _0x2ad4d1['MAX_MESSAGE_LENGTH'])[_0x545b19(0x1c5)](_0x545b19(0x1dc));const _0x2271cb='a'['repeat'](_0x2ad4d1[_0x545b19(0x1c1)]+0x1);expect(_0x2271cb['length'])['toBeGreaterThan'](_0x2ad4d1[_0x545b19(0x1c1)]);}),test('MESSAGE_CONFIG\x20enforces\x20maximum\x20display\x20messages',async()=>{const _0x5509ca=a0_0x4879,{MESSAGE_CONFIG:_0x452af9}=await import(_0x5509ca(0x1d3));expect(_0x452af9['MAX_MESSAGES_DISPLAY'])['toBeDefined'](),expect(typeof _0x452af9['MAX_MESSAGES_DISPLAY'])['toBe']('number'),expect(_0x452af9['MAX_MESSAGES_DISPLAY'])[_0x5509ca(0x1de)](0x0);});}),describe(a0_0x35d151(0x1ce),()=>{const _0x2c7911=a0_0x35d151;test(_0x2c7911(0x1d7),async()=>{const _0x5434b3=_0x2c7911,{PAGINATION:_0x1217b5}=await import(_0x5434b3(0x1d3)),_0x29cb14=0x0,_0x19c5e1=_0x29cb14*_0x1217b5[_0x5434b3(0x1bc)];expect(_0x19c5e1)[_0x5434b3(0x1c5)](0x0);const _0xe42031=0x1,_0x1c9896=_0xe42031*_0x1217b5[_0x5434b3(0x1bc)];expect(_0x1c9896)[_0x5434b3(0x1c5)](_0x1217b5['PAGE_SIZE']);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0xdb3ee2=_0x2c7911,{PAGINATION:_0x57bae4}=await import('../../config/constants.js'),_0x59baab=0x3e8,_0x2dc865=Math['min'](_0x59baab,_0x57bae4['MAX_PAGE_SIZE']);expect(_0x2dc865)[_0xdb3ee2(0x1cb)](_0x57bae4['MAX_PAGE_SIZE']);});});
@@ -1 +1 @@
1
- function a0_0x7975(_0x141cbd,_0x48e57c){_0x141cbd=_0x141cbd-0x115;const _0x27cd18=a0_0x27cd();let _0x7975db=_0x27cd18[_0x141cbd];if(a0_0x7975['TRWozG']===undefined){var _0x5d0e3a=function(_0x21725b){const _0x934640='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x551936='',_0x56e733='';for(let _0x29673b=0x0,_0x552aa1,_0x102b41,_0x53258a=0x0;_0x102b41=_0x21725b['charAt'](_0x53258a++);~_0x102b41&&(_0x552aa1=_0x29673b%0x4?_0x552aa1*0x40+_0x102b41:_0x102b41,_0x29673b++%0x4)?_0x551936+=String['fromCharCode'](0xff&_0x552aa1>>(-0x2*_0x29673b&0x6)):0x0){_0x102b41=_0x934640['indexOf'](_0x102b41);}for(let _0x48ebb2=0x0,_0x4bb828=_0x551936['length'];_0x48ebb2<_0x4bb828;_0x48ebb2++){_0x56e733+='%'+('00'+_0x551936['charCodeAt'](_0x48ebb2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x56e733);};a0_0x7975['RwMjvM']=_0x5d0e3a,a0_0x7975['qKQeOj']={},a0_0x7975['TRWozG']=!![];}const _0x50cbc9=_0x27cd18[0x0],_0xa75d31=_0x141cbd+_0x50cbc9,_0x3065d2=a0_0x7975['qKQeOj'][_0xa75d31];return!_0x3065d2?(_0x7975db=a0_0x7975['RwMjvM'](_0x7975db),a0_0x7975['qKQeOj'][_0xa75d31]=_0x7975db):_0x7975db=_0x3065d2,_0x7975db;}const a0_0x3cf175=a0_0x7975;(function(_0xc73742,_0x5823a8){const _0xdd4bbb=a0_0x7975,_0x34ea0a=_0xc73742();while(!![]){try{const _0x3a2cb8=-parseInt(_0xdd4bbb(0x164))/0x1*(-parseInt(_0xdd4bbb(0x12c))/0x2)+parseInt(_0xdd4bbb(0x153))/0x3+parseInt(_0xdd4bbb(0x11b))/0x4*(parseInt(_0xdd4bbb(0x140))/0x5)+parseInt(_0xdd4bbb(0x120))/0x6*(parseInt(_0xdd4bbb(0x134))/0x7)+-parseInt(_0xdd4bbb(0x165))/0x8+-parseInt(_0xdd4bbb(0x12e))/0x9*(parseInt(_0xdd4bbb(0x11a))/0xa)+parseInt(_0xdd4bbb(0x14b))/0xb;if(_0x3a2cb8===_0x5823a8)break;else _0x34ea0a['push'](_0x34ea0a['shift']());}catch(_0x58547c){_0x34ea0a['push'](_0x34ea0a['shift']());}}}(a0_0x27cd,0x1e4d9));function a0_0x27cd(){const _0xf93368=['uMvHzcbJB250zw50CYbVzIbHigzPBgu','twvZC2fNzvjVDxrLCIbOyxmGDg9VBcbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','BgvUz3rO','qvvut01bveLptG','Dg9czurLzMLUzwq','ywrK','ve9ptfm','lI4VlI4VyxbPl3nLC3nPB24UANm','vg9VBcbZzwfYy2GGC2HVDwXKihDVCMSGD2L0AcbUyw1LigfUzcbKzxnJCMLWDgLVBG','vg9VBhmGzw5KCg9PBNqGzM9SBg93CYbsrvnuzNvSihbHDhrLCM4','C3vJy2vZCW','mtbNCevWv2C','Dg9mB3DLCKnHC2u','owXtwxvoAq','DxnLvg9VBhmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','A2v5CW','yw5HBhL6zq','BM93','BMfTzq','mtu5mZy5s0nQsLj2','vg9VBhmGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','y2f0zwDVCNK','BwfW','AgfZ','DMfSDwvZ','D2vIx3nLyxjJAa','Dg9czq','Bg9JywXOB3n0','vvrjteLuwq','zxHLy3v0zv9JB21Tyw5K','nZvdtLHArvy','zgf0yq','qu5btfLtsvm','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','vg9VBhmGtwfUywDLBwvUDcaTienHDgvNB3j5ienVDw50CW','vg9VBhmGqvbjigvUzhbVAw50igLZigrLzMLUzwq','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','zw5HyMXLza','l2fWAs90B29SCW','Dg9nyxrJAa','zMLSDgvY','otiYnZaYzeLgqMLn','t1jdsevtvfjbve9s','v2vIu29JA2v0twfUywDLCG','zxHLyY0X','vg9VBcbVCgvYyxrPB25ZihvZzsbVCMnOzxn0CMf0B3iGzw5KCg9PBNq','q2f0zwDVCNKGy291BNrZignHBIbIzsbJywXJDwXHDgvK','vg9VBcbJywnOzsbLEhbPCMvZigfMDgvYifruta','ywLFyxnZAxn0yw50','mtm0nte0reHWs3f5','zgvMyxvSDa','rxHLy3v0Aw9Uihn0yxrLignHBIb0CMfJAYbTDwX0AxbSzsb0B29SCW','u1Ltvevn','CMvHzf9MAwXL','Dg9dB250ywLU','yw5HBhL6zv9JB2rL','zgvSzxrL','l2fWAs9VCMnOzxn0CMf0B3i','C2v0','qvbjx0vorfbpsu5uuW','zNvUy3rPB24','Aw5JBhvKzxm','D3jPDgvFzMLSzq','DgvYBwLUywW','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2f0zwDVCML6yxrPB24','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CYbwywXPzgf0Aw9U','ndK0mKzYzxLcua','odaYnZm2yKHcCgTm','zMLSzsbJB250zw50CW','vg9VBhmGtwfUywDLBwvUDcaTieLTCg9YDhm','z2v0','u2vZC2LVBK1HBMfNzxi','zxHLyY0Y','mti1mZm4mgrhCMnKBa','mZC5nMXez2TKCW','ve9ptf9dqvrfr09swsbJyw4GyMuGDxnLzcb0BYbMAwX0zxiGDg9VBhmGyNKGy2f0zwDVCNK','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','vg9VBhmGy2fUigjLigzPBhrLCMvKigj5ig11BhrPCgXLignYAxrLCMLH','vg9VBhmGtwfUywDLBwvUDcaTiev4zwn1DgLVBIbtDgf0zsbuCMfJA2LUzW','ndH3rNHLDMq'];a0_0x27cd=function(){return _0xf93368;};return a0_0x27cd();}import{describe,test,expect}from'@jest/globals';describe(a0_0x3cf175(0x116),()=>{test('useTools hook can be imported',async()=>{const _0x2ccb54=a0_0x7975,{useTools:_0x551936}=await import('../../state/useTools.js');expect(_0x551936)['toBeDefined'](),expect(typeof _0x551936)[_0x2ccb54(0x13c)](_0x2ccb54(0x15e));}),test('useTools is default export',async()=>{const _0x1bbaff=a0_0x7975,module=await import('../../state/useTools.js');expect(module['default'])[_0x1bbaff(0x125)](),expect(typeof module[_0x1bbaff(0x154)])['toBe']('function'),expect(module['default'])[_0x1bbaff(0x13c)](module['useTools']);});}),describe('Tools\x20Management\x20-\x20Constants',()=>{const _0x14ebf8=a0_0x3cf175;test('TOOL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x14d329=a0_0x7975,{TOOL_CATEGORY:_0x56e733}=await import('../../config/constants.js');expect(_0x56e733)[_0x14d329(0x125)](),expect(_0x56e733['SYSTEM'])['toBeDefined'](),expect(_0x56e733['AUTOMATION'])[_0x14d329(0x125)](),expect(_0x56e733[_0x14d329(0x142)])[_0x14d329(0x125)](),expect(_0x56e733['UTILITY'])['toBeDefined'](),expect(_0x56e733['COLLABORATION'])[_0x14d329(0x125)](),expect(_0x56e733['AI'])[_0x14d329(0x125)]();}),test('TOOL_CATEGORY\x20values\x20are\x20lowercase',async()=>{const _0x48b1c5=a0_0x7975,{TOOL_CATEGORY:_0x29673b}=await import(_0x48b1c5(0x143));expect(_0x29673b['SYSTEM'])['toBe'](_0x29673b[_0x48b1c5(0x156)]['toLowerCase']()),expect(_0x29673b[_0x48b1c5(0x124)])[_0x48b1c5(0x13c)](_0x29673b['AUTOMATION'][_0x48b1c5(0x12d)]()),expect(_0x29673b['ANALYSIS'])[_0x48b1c5(0x13c)](_0x29673b[_0x48b1c5(0x142)][_0x48b1c5(0x12d)]()),expect(_0x29673b[_0x48b1c5(0x13e)])['toBe'](_0x29673b[_0x48b1c5(0x13e)]['toLowerCase']());}),test(_0x14ebf8(0x145),async()=>{const _0x393c96=_0x14ebf8,{API_ENDPOINTS:_0x552aa1}=await import(_0x393c96(0x143));expect(_0x552aa1['TOOLS'])[_0x393c96(0x125)](),expect(_0x552aa1['TOOLS'])[_0x393c96(0x13c)](_0x393c96(0x148));}),test('Orchestrator\x20endpoint\x20is\x20used\x20for\x20tool\x20operations',async()=>{const _0x5df81f=_0x14ebf8,{API_ENDPOINTS:_0x102b41}=await import('../../config/constants.js');expect(_0x102b41[_0x5df81f(0x14c)])['toBeDefined'](),expect(_0x102b41['ORCHESTRATOR'])['toBe']('/api/orchestrator');});}),describe(a0_0x3cf175(0x135),()=>{test('useTools\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0xb1802b=a0_0x7975,{useTools:_0x53258a}=await import('../../state/useTools.js'),{SessionManager:_0x48ebb2}=await import(_0xb1802b(0x128)),{MessageRouter:_0x4bb828}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x3351ad}=await import(_0xb1802b(0x146)),_0x5f066f=new _0x48ebb2(_0xb1802b(0x13d),0x1f90),_0x418bbe=new _0x3351ad('localhost',0x1f90),_0x1e0158=new _0x4bb828(_0x418bbe);expect(_0x5f066f)[_0xb1802b(0x125)](),expect(_0x1e0158)[_0xb1802b(0x125)](),expect(typeof _0x53258a)['toBe'](_0xb1802b(0x15e));}),test('Full tools management stack can be imported together',async()=>{const _0x248288=a0_0x7975,[_0x522f4f,_0x512831,_0x6bdbcb,_0x15e5e3,_0x4cd53e]=await Promise['all']([import(_0x248288(0x143)),import('../../api/session.js'),import('../../api/websocket.js'),import(_0x248288(0x136)),import(_0x248288(0x11d))]);expect(_0x522f4f['TOOL_CATEGORY'])[_0x248288(0x125)](),expect(_0x522f4f[_0x248288(0x15d)])[_0x248288(0x125)](),expect(_0x512831[_0x248288(0x118)])['toBeDefined'](),expect(_0x6bdbcb[_0x248288(0x14d)])['toBeDefined'](),expect(_0x15e5e3['MessageRouter'])[_0x248288(0x125)](),expect(_0x4cd53e['useTools'])['toBeDefined']();});}),describe('Tools\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0xf90fb5=a0_0x3cf175;test(_0xf90fb5(0x12a),async()=>{const _0x5ac253=_0xf90fb5,{API_ENDPOINTS:_0x34f3ee}=await import(_0x5ac253(0x143));expect(_0x34f3ee[_0x5ac253(0x127)])[_0x5ac253(0x149)](/^\/api\//),expect(_0x34f3ee['TOOLS'])[_0x5ac253(0x13c)]('/api/tools');}),test(_0xf90fb5(0x14f),async()=>{const _0x4a8ee8=_0xf90fb5,{API_ENDPOINTS:_0x99e259}=await import('../../config/constants.js');expect(_0x99e259[_0x4a8ee8(0x14c)])['toBeDefined'](),expect(_0x99e259['ORCHESTRATOR'])[_0x4a8ee8(0x13c)](_0x4a8ee8(0x15b));});}),describe('Tools\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x31b90d=a0_0x3cf175;test(_0x31b90d(0x12f),async()=>{const _0x51642b=_0x31b90d,{useTools:_0x42e1a5}=await import(_0x51642b(0x11d));expect(_0x42e1a5['length'])['toBe'](0x3);});}),describe(a0_0x3cf175(0x163),()=>{test('TOOL_CATEGORY\x20includes\x20all\x20major\x20categories',async()=>{const _0x91547a=a0_0x7975,{TOOL_CATEGORY:_0x52f07c}=await import('../../config/constants.js'),_0x2fb147=Object[_0x91547a(0x130)](_0x52f07c);expect(_0x2fb147)['toContain'](_0x91547a(0x156)),expect(_0x2fb147)['toContain'](_0x91547a(0x124)),expect(_0x2fb147)['toContain'](_0x91547a(0x142)),expect(_0x2fb147)['toContain']('UTILITY'),expect(_0x2fb147)[_0x91547a(0x158)]('COLLABORATION'),expect(_0x2fb147)['toContain']('AI');}),test('TOOL_CATEGORY\x20values\x20match\x20expected\x20format',async()=>{const _0xd3d8c=a0_0x7975,{TOOL_CATEGORY:_0x5858a0}=await import('../../config/constants.js');expect(_0x5858a0['SYSTEM'])[_0xd3d8c(0x149)](/^[a-z_]+$/),expect(_0x5858a0[_0xd3d8c(0x124)])[_0xd3d8c(0x149)](/^[a-z_]+$/),expect(_0x5858a0['ANALYSIS'])[_0xd3d8c(0x149)](/^[a-z_]+$/),expect(_0x5858a0['UTILITY'])[_0xd3d8c(0x149)](/^[a-z_]+$/);});}),describe('Tools\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{const _0x52e795=a0_0x3cf175;test(_0x52e795(0x122),async()=>{const _0x515fcd=_0x52e795,{MessageRouter:_0x55b19f}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x10bee5}=await import(_0x515fcd(0x146)),_0x289f82=new _0x10bee5('localhost',0x1f90),_0x120c6c=new _0x55b19f(_0x289f82);expect(_0x120c6c['hasHandler'])[_0x515fcd(0x125)](),expect(typeof _0x120c6c['hasHandler'])[_0x515fcd(0x13c)](_0x515fcd(0x15e));});}),describe(a0_0x3cf175(0x162),()=>{const _0x225be9=a0_0x3cf175;test(_0x225be9(0x11c),async()=>{const _0x3f3e77=_0x225be9,{TOOL_CATEGORY:_0x16e31a}=await import('../../config/constants.js'),_0xade58b=[{'name':'execute_command','category':_0x16e31a[_0x3f3e77(0x156)]},{'name':_0x3f3e77(0x161),'category':_0x16e31a['SYSTEM']},{'name':'analyze_code','category':_0x16e31a[_0x3f3e77(0x142)]},{'name':_0x3f3e77(0x13b),'category':_0x16e31a[_0x3f3e77(0x13e)]},{'name':_0x3f3e77(0x152),'category':_0x16e31a['AI']}],_0x251cf8=_0xade58b[_0x3f3e77(0x14a)](_0xc478b0=>_0xc478b0[_0x3f3e77(0x137)]===_0x16e31a['SYSTEM']),_0x1ce62b=_0xade58b[_0x3f3e77(0x14a)](_0x3599a2=>_0x3599a2[_0x3f3e77(0x137)]===_0x16e31a['ANALYSIS']),_0xa60245=_0xade58b[_0x3f3e77(0x14a)](_0x562339=>_0x562339[_0x3f3e77(0x137)]===_0x16e31a[_0x3f3e77(0x13e)]),_0x983a8e=_0xade58b[_0x3f3e77(0x14a)](_0x1f6f9f=>_0x1f6f9f[_0x3f3e77(0x137)]===_0x16e31a['AI']);expect(_0x251cf8[_0x3f3e77(0x123)])[_0x3f3e77(0x13c)](0x2),expect(_0x1ce62b['length'])[_0x3f3e77(0x13c)](0x1),expect(_0xa60245['length'])['toBe'](0x1),expect(_0x983a8e[_0x3f3e77(0x123)])['toBe'](0x1),expect(_0x251cf8[0x0]['name'])[_0x3f3e77(0x13c)]('execute_command'),expect(_0x1ce62b[0x0][_0x3f3e77(0x133)])[_0x3f3e77(0x13c)](_0x3f3e77(0x159));});}),describe('Tools\x20Management\x20-\x20Tool\x20Search',()=>{const _0x17399c=a0_0x3cf175;test(_0x17399c(0x129),async()=>{const _0x4d6388=_0x17399c,_0x498527=[{'name':'read_file','description':_0x4d6388(0x121)},{'name':_0x4d6388(0x160),'description':'Write\x20data\x20to\x20a\x20file'},{'name':'analyze_code','description':'Perform\x20static\x20code\x20analysis'}],_0xfcecdc=_0x4a281e=>{const _0x1c8764=_0x4d6388,_0x13e3d4=_0x4a281e['toLowerCase']();return _0x498527['filter'](_0x369674=>_0x369674['name']?.[_0x1c8764(0x12d)]()['includes'](_0x13e3d4)||_0x369674['description']?.[_0x1c8764(0x12d)]()[_0x1c8764(0x15f)](_0x13e3d4));},_0xc9dfd7=_0xfcecdc('file');expect(_0xc9dfd7['length'])['toBe'](0x2),expect(_0xc9dfd7['map'](_0x2becfa=>_0x2becfa['name']))[_0x4d6388(0x158)](_0x4d6388(0x157)),expect(_0xc9dfd7[_0x4d6388(0x138)](_0x2cb400=>_0x2cb400[_0x4d6388(0x133)]))[_0x4d6388(0x158)](_0x4d6388(0x160));const _0x4de2fd=_0xfcecdc(_0x4d6388(0x131));expect(_0x4de2fd['length'])[_0x4d6388(0x13c)](0x1),expect(_0x4de2fd[0x0][_0x4d6388(0x133)])['toBe']('analyze_code');});}),describe(a0_0x3cf175(0x11f),()=>{const _0x2f44ea=a0_0x3cf175;test(_0x2f44ea(0x155),async()=>{const _0x3616fb=_0x2f44ea,_0x4230c4=new Set();_0x4230c4['add'](_0x3616fb(0x157)),_0x4230c4[_0x3616fb(0x126)]('analyze_code'),expect(_0x4230c4['has'](_0x3616fb(0x157)))['toBe'](!![]),expect(_0x4230c4[_0x3616fb(0x139)](_0x3616fb(0x159)))[_0x3616fb(0x13c)](!![]),expect(_0x4230c4['size'])[_0x3616fb(0x13c)](0x2),_0x4230c4[_0x3616fb(0x15a)]('read_file'),expect(_0x4230c4[_0x3616fb(0x139)]('read_file'))[_0x3616fb(0x13c)](![]),expect(_0x4230c4[_0x3616fb(0x139)](_0x3616fb(0x159)))['toBe'](!![]),expect(_0x4230c4['size'])[_0x3616fb(0x13c)](0x1);}),test('Tool\x20results\x20can\x20be\x20stored\x20by\x20execution\x20ID',async()=>{const _0x582109=_0x2f44ea,_0x5e93d0=new Map();_0x5e93d0['set'](_0x582109(0x14e),{'success':!![],'data':'file\x20contents'}),_0x5e93d0[_0x582109(0x15c)]('exec-2',{'success':!![],'data':{'issues':[]}}),expect(_0x5e93d0['get']('exec-1'))[_0x582109(0x125)](),expect(_0x5e93d0[_0x582109(0x117)](_0x582109(0x14e))[_0x582109(0x12b)])['toBe'](!![]),expect(_0x5e93d0[_0x582109(0x117)](_0x582109(0x14e))[_0x582109(0x141)])['toBe'](_0x582109(0x115)),expect(_0x5e93d0['get'](_0x582109(0x119)))['toBeDefined'](),expect(_0x5e93d0['get'](_0x582109(0x119))['data']['issues'])['toEqual']([]),expect(_0x5e93d0['size'])[_0x582109(0x13c)](0x2);});}),describe('Tools\x20Management\x20-\x20Tool\x20Caching',()=>{const _0x3032b3=a0_0x3cf175;test('Tool\x20cache\x20supports\x20TTL-based\x20caching',async()=>{const _0x1c702e=a0_0x7975,_0x100e70=0x927c0;let _0x1ab9d0=null,_0x91ff19=0x0;const _0x20d20a=[{'name':_0x1c702e(0x157)}];_0x1ab9d0=_0x20d20a,_0x91ff19=Date['now']();const _0x5de9ff=Date[_0x1c702e(0x132)](),_0x491251=_0x5de9ff-_0x91ff19<_0x100e70;expect(_0x491251)['toBe'](!![]),expect(_0x1ab9d0)['toBe'](_0x20d20a);}),test(_0x3032b3(0x151),async()=>{const _0xaf3d6a=_0x3032b3,_0x377d1b=0x64;let _0x4e0c66=null,_0x3080cc=0x0;const _0x3e100d=[{'name':_0xaf3d6a(0x157)}];_0x4e0c66=_0x3e100d,_0x3080cc=Date[_0xaf3d6a(0x132)](),await new Promise(_0x3570f0=>setTimeout(_0x3570f0,0x96));const _0x1dbf27=Date['now'](),_0x43bb8f=_0x1dbf27-_0x3080cc<_0x377d1b;expect(_0x43bb8f)['toBe'](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{const _0x15b2a4=a0_0x3cf175;test(_0x15b2a4(0x11e),async()=>{const _0x123ab3=_0x15b2a4,{TOOL_CATEGORY:_0x3cca5e}=await import('../../config/constants.js'),_0x546762=[{'name':_0x123ab3(0x13f),'category':_0x3cca5e['SYSTEM'],'enabled':!![]},{'name':_0x123ab3(0x161),'category':_0x3cca5e['SYSTEM'],'enabled':![]},{'name':_0x123ab3(0x159),'category':_0x3cca5e[_0x123ab3(0x142)],'enabled':!![]}],_0x47d2ca=_0x4738bf=>{const _0x2b8166=_0x123ab3;let _0x57ecb7=[..._0x546762];return _0x4738bf[_0x2b8166(0x137)]&&(_0x57ecb7=_0x57ecb7['filter'](_0x7f1930=>_0x7f1930['category']===_0x4738bf['category'])),_0x4738bf['enabled']!==undefined&&(_0x57ecb7=_0x57ecb7[_0x2b8166(0x14a)](_0x2ec03a=>_0x2ec03a[_0x2b8166(0x147)]===_0x4738bf['enabled'])),_0x57ecb7;},_0x3d0ff7=_0x47d2ca({'category':_0x3cca5e['SYSTEM']});expect(_0x3d0ff7['length'])[_0x123ab3(0x13c)](0x2);const _0x138011=_0x47d2ca({'enabled':!![]});expect(_0x138011['length'])['toBe'](0x2);const _0x172c1d=_0x47d2ca({'category':_0x3cca5e[_0x123ab3(0x156)],'enabled':!![]});expect(_0x172c1d[_0x123ab3(0x123)])[_0x123ab3(0x13c)](0x1),expect(_0x172c1d[0x0][_0x123ab3(0x133)])[_0x123ab3(0x13c)](_0x123ab3(0x13f));});}),describe(a0_0x3cf175(0x144),()=>{const _0x5c8a47=a0_0x3cf175;test(_0x5c8a47(0x150),async()=>{const _0x22a981=_0x5c8a47,{TOOL_CATEGORY:_0x54ccff}=await import('../../config/constants.js'),_0x1a34ba=[{'name':_0x22a981(0x13f),'category':_0x54ccff[_0x22a981(0x156)]},{'name':_0x22a981(0x161),'category':_0x54ccff[_0x22a981(0x156)]},{'name':_0x22a981(0x159),'category':_0x54ccff[_0x22a981(0x142)]},{'name':'web_search','category':_0x54ccff[_0x22a981(0x13e)]}],_0x477d0a=_0x50c21f=>{const _0x1c24b3=_0x22a981,_0x46d9b5={};for(const _0x2ad0e7 of Object[_0x1c24b3(0x13a)](_0x54ccff)){_0x46d9b5[_0x2ad0e7]=_0x50c21f['filter'](_0x1e4d42=>_0x1e4d42[_0x1c24b3(0x137)]===_0x2ad0e7)['length'];}return _0x46d9b5;},_0x89108d=_0x477d0a(_0x1a34ba);expect(_0x89108d[_0x54ccff[_0x22a981(0x156)]])[_0x22a981(0x13c)](0x2),expect(_0x89108d[_0x54ccff['ANALYSIS']])['toBe'](0x1),expect(_0x89108d[_0x54ccff[_0x22a981(0x13e)]])['toBe'](0x1),expect(_0x89108d[_0x54ccff[_0x22a981(0x124)]])[_0x22a981(0x13c)](0x0);});});
1
+ function a0_0x2327(_0x5b5d62,_0x1922b7){_0x5b5d62=_0x5b5d62-0x1d1;const _0x46eb15=a0_0x46eb();let _0x2327c3=_0x46eb15[_0x5b5d62];if(a0_0x2327['OHzWoJ']===undefined){var _0x4b7139=function(_0x43cabe){const _0x1c3d0f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f9aed='',_0x195e40='';for(let _0x383d10=0x0,_0x35bf26,_0x340e51,_0x3108cd=0x0;_0x340e51=_0x43cabe['charAt'](_0x3108cd++);~_0x340e51&&(_0x35bf26=_0x383d10%0x4?_0x35bf26*0x40+_0x340e51:_0x340e51,_0x383d10++%0x4)?_0x2f9aed+=String['fromCharCode'](0xff&_0x35bf26>>(-0x2*_0x383d10&0x6)):0x0){_0x340e51=_0x1c3d0f['indexOf'](_0x340e51);}for(let _0x13e248=0x0,_0x7d6d9=_0x2f9aed['length'];_0x13e248<_0x7d6d9;_0x13e248++){_0x195e40+='%'+('00'+_0x2f9aed['charCodeAt'](_0x13e248)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x195e40);};a0_0x2327['uNWdRY']=_0x4b7139,a0_0x2327['PxhuYV']={},a0_0x2327['OHzWoJ']=!![];}const _0x24043d=_0x46eb15[0x0],_0x2e6990=_0x5b5d62+_0x24043d,_0x1d3a6d=a0_0x2327['PxhuYV'][_0x2e6990];return!_0x1d3a6d?(_0x2327c3=a0_0x2327['uNWdRY'](_0x2327c3),a0_0x2327['PxhuYV'][_0x2e6990]=_0x2327c3):_0x2327c3=_0x1d3a6d,_0x2327c3;}function a0_0x46eb(){const _0x2a11c0=['C3vJy2vZCW','l2fWAs90B29SCW','mJu3nZuXnKffrKXkqG','Dg9czq','yw5HBhL6zv9JB2rL','BgvUz3rO','vg9VBcbYzxn1BhrZignHBIbIzsbZDg9YzwqGyNKGzxHLy3v0Aw9UieLe','y2f0zwDVCNK','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','vg9VBhmGtwfUywDLBwvUDcaTifDLyLnVy2TLDcbfDMvUDcbiyw5KBgvYCW','Dg9nyxrJAa','DxnLvg9VBhmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','vg9VBhmGtwfUywDLBwvUDcaTieLTCg9YDhm','ugvYzM9YBsbZDgf0AwmGy29KzsbHBMfSExnPCW','D3jPDgvFzMLSzq','AgfZ','u2vZC2LVBK1HBMfNzxi','zMLSzsbJB250zw50CW','otGZmJeZAKPzv3bP','v3jPDguGzgf0ysb0BYbHigzPBgu','ve9ptf9dqvrfr09swsb2ywX1zxmGBwf0y2GGzxHWzwn0zwqGzM9YBwf0','A2v5CW','Dg9czurLzMLUzwq','rxHLy3v0Aw9Uihn0yxrLignHBIb0CMfJAYbTDwX0AxbSzsb0B29SCW','yw5HBhL6zq','zw5HyMXLza','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2f0zwDVCML6yxrPB24','ve9ptfm','D2vIx3nLyxjJAa','Dg9dB250ywLU','zxHLyY0Y','BwfW','mJeYmdu2nunhA1v0Aq','z2v0','BM93','qvvut01bveLptG','ndqWmJuWmffzzLHPBa','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','vvrjteLuwq','vg9VBhmGtwfUywDLBwvUDcaTienHDgvNB3j5ienVDw50CW','DxnLvg9VBhmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','zxHLy3v0zv9JB21Tyw5K','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','zgvZy3jPChrPB24','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','zNvUy3rPB24','BMfTzq','C2v0','odaZodGYnevvAxPxrG','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGu2vHCMnO','l2fWAs9VCMnOzxn0CMf0B3i','t3jJAgvZDhjHDg9YigvUzhbVAw50igLZihvZzwqGzM9YihrVB2WGB3bLCMf0Aw9UCW','vg9VBhmGtwfUywDLBwvUDcaTieHVB2SGsw50zxjMywnLifzLCMLMAwnHDgLVBG','vg9VBhmGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG','mZy4ntmWofnIDuL1Eq','zMLSDgvY','DxnLvg9VBhm','ve9ptf9dqvrfr09swsb2ywX1zxmGyxjLigXVD2vYy2fZzq','Bg9JywXOB3n0','AxnZDwvZ','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','DgvYBwLUywW','C2L6zq','Dg9mB3DLCKnHC2u','u1Ltvevn','zxHLyY0X','lI4VlI4VyxbPl3nLC3nPB24UANm','twvZC2fNzvjVDxrLCG','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CW','t1jdsevtvfjbve9s','mta2mdq4Dxr0EvPt','AgfZsgfUzgXLCG','DMfSDwvZ','zgf0yq','ve9ptf9dqvrfr09swsbJyw4GyMuGDxnLzcb0BYbMAwX0zxiGDg9VBhmGyNKGy2f0zwDVCNK','qu5btfLtsvm','Dg9fCxvHBa','CMvHzf9MAwXL','ywrK','q09mtefct1jbveLptG'];a0_0x46eb=function(){return _0x2a11c0;};return a0_0x46eb();}const a0_0x4bfcb8=a0_0x2327;(function(_0x5ea545,_0x2fece2){const _0x3b712d=a0_0x2327,_0x3c9bcb=_0x5ea545();while(!![]){try{const _0x3452ed=parseInt(_0x3b712d(0x1ec))/0x1+parseInt(_0x3b712d(0x1dc))/0x2+parseInt(_0x3b712d(0x1f8))/0x3+-parseInt(_0x3b712d(0x21a))/0x4+parseInt(_0x3b712d(0x216))/0x5+-parseInt(_0x3b712d(0x1d6))/0x6+parseInt(_0x3b712d(0x208))/0x7;if(_0x3452ed===_0x2fece2)break;else _0x3c9bcb['push'](_0x3c9bcb['shift']());}catch(_0x187282){_0x3c9bcb['push'](_0x3c9bcb['shift']());}}}(a0_0x46eb,0xe38b1));import{describe,test,expect}from'@jest/globals';describe(a0_0x4bfcb8(0x202),()=>{test('useTools hook can be imported',async()=>{const _0x29b5ef=a0_0x2327,{useTools:_0x2f9aed}=await import('../../state/useTools.js');expect(_0x2f9aed)[_0x29b5ef(0x20c)](),expect(typeof _0x2f9aed)[_0x29b5ef(0x1f9)]('function');}),test('useTools is default export',async()=>{const _0x1c2290=a0_0x2327,module=await import(_0x1c2290(0x1fe));expect(module['default'])[_0x1c2290(0x20c)](),expect(typeof module['default'])['toBe'](_0x1c2290(0x1d3)),expect(module['default'])['toBe'](module['useTools']);});}),describe(a0_0x4bfcb8(0x1ea),()=>{const _0x43bf6e=a0_0x4bfcb8;test('TOOL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x56fead=a0_0x2327,{TOOL_CATEGORY:_0x195e40}=await import('../../config/constants.js');expect(_0x195e40)['toBeDefined'](),expect(_0x195e40['SYSTEM'])['toBeDefined'](),expect(_0x195e40[_0x56fead(0x219)])['toBeDefined'](),expect(_0x195e40[_0x56fead(0x1f1)])[_0x56fead(0x20c)](),expect(_0x195e40['UTILITY'])[_0x56fead(0x20c)](),expect(_0x195e40[_0x56fead(0x1f5)])[_0x56fead(0x20c)](),expect(_0x195e40['AI'])[_0x56fead(0x20c)]();}),test(_0x43bf6e(0x1df),async()=>{const _0x5598ef=_0x43bf6e,{TOOL_CATEGORY:_0x383d10}=await import(_0x5598ef(0x220));expect(_0x383d10['SYSTEM'])[_0x5598ef(0x1f9)](_0x383d10[_0x5598ef(0x1e6)][_0x5598ef(0x1e5)]()),expect(_0x383d10[_0x5598ef(0x219)])['toBe'](_0x383d10[_0x5598ef(0x219)]['toLowerCase']()),expect(_0x383d10['ANALYSIS'])[_0x5598ef(0x1f9)](_0x383d10[_0x5598ef(0x1f1)]['toLowerCase']()),expect(_0x383d10[_0x5598ef(0x21c)])[_0x5598ef(0x1f9)](_0x383d10[_0x5598ef(0x21c)]['toLowerCase']());}),test('Tools\x20API\x20endpoint\x20is\x20defined',async()=>{const _0x47eacc=_0x43bf6e,{API_ENDPOINTS:_0x35bf26}=await import(_0x47eacc(0x220));expect(_0x35bf26['TOOLS'])['toBeDefined'](),expect(_0x35bf26['TOOLS'])['toBe']('/api/tools');}),test(_0x43bf6e(0x1d9),async()=>{const _0x224bc7=_0x43bf6e,{API_ENDPOINTS:_0x340e51}=await import('../../config/constants.js');expect(_0x340e51[_0x224bc7(0x1eb)])['toBeDefined'](),expect(_0x340e51[_0x224bc7(0x1eb)])[_0x224bc7(0x1f9)](_0x224bc7(0x1d8));});}),describe('Tools\x20Management\x20-\x20Integration',()=>{const _0x1485cb=a0_0x4bfcb8;test(_0x1485cb(0x21e),async()=>{const _0xd46c09=_0x1485cb,{useTools:_0x3108cd}=await import(_0xd46c09(0x1fe)),{SessionManager:_0x13e248}=await import(_0xd46c09(0x1e8)),{MessageRouter:_0x7d6d9}=await import(_0xd46c09(0x21b)),{WebSocketManager:_0x4bcc1f}=await import('../../api/websocket.js'),_0x29a83e=new _0x13e248(_0xd46c09(0x1e0),0x1f90),_0x2aa9fb=new _0x4bcc1f(_0xd46c09(0x1e0),0x1f90),_0x457ac6=new _0x7d6d9(_0x2aa9fb);expect(_0x29a83e)[_0xd46c09(0x20c)](),expect(_0x457ac6)[_0xd46c09(0x20c)](),expect(typeof _0x3108cd)[_0xd46c09(0x1f9)](_0xd46c09(0x1d3));}),test('Full tools management stack can be imported together',async()=>{const _0x3344a1=_0x1485cb,[_0x1343b4,_0x4d8dae,_0x146abc,_0x30616c,_0x341eb6]=await Promise['all']([import('../../config/constants.js'),import('../../api/session.js'),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import(_0x3344a1(0x1fe))]);expect(_0x1343b4['TOOL_CATEGORY'])[_0x3344a1(0x20c)](),expect(_0x1343b4['API_ENDPOINTS'])[_0x3344a1(0x20c)](),expect(_0x4d8dae[_0x3344a1(0x206)])['toBeDefined'](),expect(_0x146abc['WebSocketManager'])['toBeDefined'](),expect(_0x30616c[_0x3344a1(0x1e9)])['toBeDefined'](),expect(_0x341eb6[_0x3344a1(0x1de)])[_0x3344a1(0x20c)]();});}),describe(a0_0x4bfcb8(0x1db),()=>{test('Tools\x20endpoint\x20follows\x20RESTful\x20pattern',async()=>{const _0x3d5533=a0_0x2327,{API_ENDPOINTS:_0x473fec}=await import(_0x3d5533(0x220));expect(_0x473fec[_0x3d5533(0x211)])['toMatch'](/^\/api\//),expect(_0x473fec['TOOLS'])['toBe'](_0x3d5533(0x1f7));}),test('Tool\x20operations\x20use\x20orchestrator\x20endpoint',async()=>{const _0x5e3b3d=a0_0x2327,{API_ENDPOINTS:_0x4556a0}=await import(_0x5e3b3d(0x220));expect(_0x4556a0['ORCHESTRATOR'])['toBeDefined'](),expect(_0x4556a0['ORCHESTRATOR'])[_0x5e3b3d(0x1f9)]('/api/orchestrator');});}),describe(a0_0x4bfcb8(0x1da),()=>{const _0x3003b2=a0_0x4bfcb8;test(_0x3003b2(0x201),async()=>{const _0x1561fc=_0x3003b2,{useTools:_0x5ebf3f}=await import('../../state/useTools.js');expect(_0x5ebf3f[_0x1561fc(0x1fb)])['toBe'](0x3);});}),describe('Tools\x20Management\x20-\x20Constants\x20Validation',()=>{const _0xc08f35=a0_0x4bfcb8;test('TOOL_CATEGORY\x20includes\x20all\x20major\x20categories',async()=>{const _0x3e5e61=a0_0x2327,{TOOL_CATEGORY:_0x44d08d}=await import(_0x3e5e61(0x220)),_0x5aada6=Object[_0x3e5e61(0x20b)](_0x44d08d);expect(_0x5aada6)['toContain'](_0x3e5e61(0x1e6)),expect(_0x5aada6)[_0x3e5e61(0x213)]('AUTOMATION'),expect(_0x5aada6)[_0x3e5e61(0x213)]('ANALYSIS'),expect(_0x5aada6)[_0x3e5e61(0x213)]('UTILITY'),expect(_0x5aada6)['toContain']('COLLABORATION'),expect(_0x5aada6)['toContain']('AI');}),test(_0xc08f35(0x20a),async()=>{const _0x65e8a3=_0xc08f35,{TOOL_CATEGORY:_0x1306cf}=await import(_0x65e8a3(0x220));expect(_0x1306cf[_0x65e8a3(0x1e6)])['toMatch'](/^[a-z_]+$/),expect(_0x1306cf[_0x65e8a3(0x219)])[_0x65e8a3(0x200)](/^[a-z_]+$/),expect(_0x1306cf[_0x65e8a3(0x1f1)])[_0x65e8a3(0x200)](/^[a-z_]+$/),expect(_0x1306cf['UTILITY'])[_0x65e8a3(0x200)](/^[a-z_]+$/);});}),describe(a0_0x4bfcb8(0x1ff),()=>{test('MessageRouter\x20has\x20tool\x20event\x20handlers\x20registered',async()=>{const _0x463099=a0_0x2327,{MessageRouter:_0x1ed6ae}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x416748}=await import(_0x463099(0x1d2)),_0x1b5944=new _0x416748(_0x463099(0x1e0),0x1f90),_0xe2e6b4=new _0x1ed6ae(_0x1b5944);expect(_0xe2e6b4[_0x463099(0x1ed)])[_0x463099(0x20c)](),expect(typeof _0xe2e6b4['hasHandler'])['toBe']('function');});}),describe(a0_0x4bfcb8(0x210),()=>{const _0x5adf39=a0_0x4bfcb8;test(_0x5adf39(0x1f0),async()=>{const _0x29aad2=_0x5adf39,{TOOL_CATEGORY:_0x2980f8}=await import(_0x29aad2(0x220)),_0x39eccd=[{'name':_0x29aad2(0x21f),'category':_0x2980f8[_0x29aad2(0x1e6)]},{'name':'terminal','category':_0x2980f8[_0x29aad2(0x1e6)]},{'name':_0x29aad2(0x1fa),'category':_0x2980f8[_0x29aad2(0x1f1)]},{'name':_0x29aad2(0x212),'category':_0x2980f8['UTILITY']},{'name':'ai_assistant','category':_0x2980f8['AI']}],_0x38fffc=_0x39eccd['filter'](_0x5a7af0=>_0x5a7af0[_0x29aad2(0x1fd)]===_0x2980f8['SYSTEM']),_0x27550b=_0x39eccd[_0x29aad2(0x1dd)](_0x22795e=>_0x22795e[_0x29aad2(0x1fd)]===_0x2980f8['ANALYSIS']),_0xa72265=_0x39eccd[_0x29aad2(0x1dd)](_0x4ebdd3=>_0x4ebdd3['category']===_0x2980f8[_0x29aad2(0x21c)]),_0x248b10=_0x39eccd[_0x29aad2(0x1dd)](_0x5d453f=>_0x5d453f[_0x29aad2(0x1fd)]===_0x2980f8['AI']);expect(_0x38fffc['length'])[_0x29aad2(0x1f9)](0x2),expect(_0x27550b[_0x29aad2(0x1fb)])[_0x29aad2(0x1f9)](0x1),expect(_0xa72265[_0x29aad2(0x1fb)])['toBe'](0x1),expect(_0x248b10['length'])['toBe'](0x1),expect(_0x38fffc[0x0][_0x29aad2(0x1d4)])[_0x29aad2(0x1f9)]('execute_command'),expect(_0x27550b[0x0][_0x29aad2(0x1d4)])[_0x29aad2(0x1f9)]('analyze_code');});}),describe(a0_0x4bfcb8(0x1d7),()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x12cb97=a0_0x2327,_0x4bf43b=[{'name':_0x12cb97(0x1f3),'description':'Read\x20contents\x20of\x20a\x20file'},{'name':'write_file','description':_0x12cb97(0x209)},{'name':'analyze_code','description':_0x12cb97(0x203)}],_0x4f3af7=_0x4081c3=>{const _0x3efa75=_0x12cb97,_0x44ee0d=_0x4081c3[_0x3efa75(0x1e5)]();return _0x4bf43b['filter'](_0x5a36e8=>_0x5a36e8['name']?.['toLowerCase']()['includes'](_0x44ee0d)||_0x5a36e8[_0x3efa75(0x1d1)]?.['toLowerCase']()['includes'](_0x44ee0d));},_0x4900a5=_0x4f3af7('file');expect(_0x4900a5['length'])[_0x12cb97(0x1f9)](0x2),expect(_0x4900a5[_0x12cb97(0x215)](_0x586e6d=>_0x586e6d[_0x12cb97(0x1d4)]))['toContain']('read_file'),expect(_0x4900a5['map'](_0x5d79b1=>_0x5d79b1['name']))['toContain'](_0x12cb97(0x204));const _0x7226b4=_0x4f3af7(_0x12cb97(0x20e));expect(_0x7226b4[_0x12cb97(0x1fb)])['toBe'](0x1),expect(_0x7226b4[0x0][_0x12cb97(0x1d4)])[_0x12cb97(0x1f9)]('analyze_code');});}),describe('Tools\x20Management\x20-\x20Execution\x20State\x20Tracking',()=>{const _0x268eb1=a0_0x4bfcb8;test(_0x268eb1(0x20d),async()=>{const _0x2c4c65=_0x268eb1,_0xbace48=new Set();_0xbace48['add'](_0x2c4c65(0x1f3)),_0xbace48[_0x2c4c65(0x1f4)](_0x2c4c65(0x1fa)),expect(_0xbace48[_0x2c4c65(0x205)](_0x2c4c65(0x1f3)))['toBe'](!![]),expect(_0xbace48[_0x2c4c65(0x205)]('analyze_code'))[_0x2c4c65(0x1f9)](!![]),expect(_0xbace48[_0x2c4c65(0x1e4)])['toBe'](0x2),_0xbace48['delete']('read_file'),expect(_0xbace48[_0x2c4c65(0x205)]('read_file'))['toBe'](![]),expect(_0xbace48[_0x2c4c65(0x205)](_0x2c4c65(0x1fa)))['toBe'](!![]),expect(_0xbace48['size'])[_0x2c4c65(0x1f9)](0x1);}),test(_0x268eb1(0x1fc),async()=>{const _0x4b5edf=_0x268eb1,_0x2fe26f=new Map();_0x2fe26f[_0x4b5edf(0x1d5)]('exec-1',{'success':!![],'data':_0x4b5edf(0x207)}),_0x2fe26f[_0x4b5edf(0x1d5)](_0x4b5edf(0x214),{'success':!![],'data':{'issues':[]}}),expect(_0x2fe26f['get'](_0x4b5edf(0x1e7)))[_0x4b5edf(0x20c)](),expect(_0x2fe26f[_0x4b5edf(0x217)]('exec-1')[_0x4b5edf(0x1f6)])['toBe'](!![]),expect(_0x2fe26f['get'](_0x4b5edf(0x1e7))[_0x4b5edf(0x1ef)])[_0x4b5edf(0x1f9)]('file\x20contents'),expect(_0x2fe26f[_0x4b5edf(0x217)](_0x4b5edf(0x214)))['toBeDefined'](),expect(_0x2fe26f[_0x4b5edf(0x217)]('exec-2')[_0x4b5edf(0x1ef)][_0x4b5edf(0x1e1)])[_0x4b5edf(0x1f2)]([]),expect(_0x2fe26f['size'])['toBe'](0x2);});}),describe(a0_0x4bfcb8(0x1e2),()=>{test('Tool\x20cache\x20supports\x20TTL-based\x20caching',async()=>{const _0xb5254a=a0_0x2327,_0x1b774b=0x927c0;let _0x19e74c=null,_0x3e7cba=0x0;const _0x31971a=[{'name':_0xb5254a(0x1f3)}];_0x19e74c=_0x31971a,_0x3e7cba=Date[_0xb5254a(0x218)]();const _0x244152=Date['now'](),_0x267ae1=_0x244152-_0x3e7cba<_0x1b774b;expect(_0x267ae1)['toBe'](!![]),expect(_0x19e74c)['toBe'](_0x31971a);}),test('Tool\x20cache\x20expires\x20after\x20TTL',async()=>{const _0x12dd27=a0_0x2327,_0x55a1e7=0x64;let _0xc0ea18=null,_0x18c6de=0x0;const _0x37db77=[{'name':_0x12dd27(0x1f3)}];_0xc0ea18=_0x37db77,_0x18c6de=Date[_0x12dd27(0x218)](),await new Promise(_0x1ec44a=>setTimeout(_0x1ec44a,0x96));const _0x21ecd0=Date[_0x12dd27(0x218)](),_0x313f32=_0x21ecd0-_0x18c6de<_0x55a1e7;expect(_0x313f32)[_0x12dd27(0x1f9)](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{test('Tools\x20can\x20be\x20filtered\x20by\x20multiple\x20criteria',async()=>{const _0xdbc048=a0_0x2327,{TOOL_CATEGORY:_0xef423f}=await import('../../config/constants.js'),_0x54b9a0=[{'name':'execute_command','category':_0xef423f['SYSTEM'],'enabled':!![]},{'name':_0xdbc048(0x1e3),'category':_0xef423f[_0xdbc048(0x1e6)],'enabled':![]},{'name':_0xdbc048(0x1fa),'category':_0xef423f[_0xdbc048(0x1f1)],'enabled':!![]}],_0x562e9e=_0x391a9a=>{const _0x5a9f0e=_0xdbc048;let _0x1b85b8=[..._0x54b9a0];return _0x391a9a[_0x5a9f0e(0x1fd)]&&(_0x1b85b8=_0x1b85b8[_0x5a9f0e(0x1dd)](_0x317142=>_0x317142['category']===_0x391a9a['category'])),_0x391a9a['enabled']!==undefined&&(_0x1b85b8=_0x1b85b8['filter'](_0x1a2166=>_0x1a2166[_0x5a9f0e(0x20f)]===_0x391a9a[_0x5a9f0e(0x20f)])),_0x1b85b8;},_0xdbec1=_0x562e9e({'category':_0xef423f[_0xdbc048(0x1e6)]});expect(_0xdbec1[_0xdbc048(0x1fb)])[_0xdbc048(0x1f9)](0x2);const _0x5e118c=_0x562e9e({'enabled':!![]});expect(_0x5e118c[_0xdbc048(0x1fb)])['toBe'](0x2);const _0x369875=_0x562e9e({'category':_0xef423f['SYSTEM'],'enabled':!![]});expect(_0x369875[_0xdbc048(0x1fb)])[_0xdbc048(0x1f9)](0x1),expect(_0x369875[0x0][_0xdbc048(0x1d4)])[_0xdbc048(0x1f9)](_0xdbc048(0x21f));});}),describe(a0_0x4bfcb8(0x21d),()=>{test('Category\x20counts\x20can\x20be\x20calculated',async()=>{const _0x15b3f3=a0_0x2327,{TOOL_CATEGORY:_0x346a3f}=await import(_0x15b3f3(0x220)),_0x589973=[{'name':'execute_command','category':_0x346a3f[_0x15b3f3(0x1e6)]},{'name':'terminal','category':_0x346a3f['SYSTEM']},{'name':'analyze_code','category':_0x346a3f['ANALYSIS']},{'name':'web_search','category':_0x346a3f['UTILITY']}],_0x4e1b2f=_0x1fc866=>{const _0x362b27=_0x15b3f3,_0x177ed6={};for(const _0x2380c8 of Object[_0x362b27(0x1ee)](_0x346a3f)){_0x177ed6[_0x2380c8]=_0x1fc866[_0x362b27(0x1dd)](_0x5048e1=>_0x5048e1['category']===_0x2380c8)['length'];}return _0x177ed6;},_0x22e45a=_0x4e1b2f(_0x589973);expect(_0x22e45a[_0x346a3f[_0x15b3f3(0x1e6)]])['toBe'](0x2),expect(_0x22e45a[_0x346a3f['ANALYSIS']])[_0x15b3f3(0x1f9)](0x1),expect(_0x22e45a[_0x346a3f[_0x15b3f3(0x21c)]])[_0x15b3f3(0x1f9)](0x1),expect(_0x22e45a[_0x346a3f[_0x15b3f3(0x219)]])['toBe'](0x0);});});
@@ -1 +1 @@
1
- const a0_0x4cfa28=a0_0x273b;function a0_0x12d0(){const _0x2f6ada=['qMvHCMvYia','revmrvrf','zMv0y2G','ue9tva','Aw5JBhvKzxm','yMfZzvvYBa','C3rHDhvZvgv4Da','sfruuca','C3rHDhvZ','Dg9tDhjPBMC','yNvPBgrizwfKzxjZ','Ahr0CdOVlW','mtCXnJvoz1nHtu0','zgvSzxrL','ovPYyuL1rG','yxbWBgLJyxrPB24VANnVBG','mZKZnZG1n09us0PADa','r0vu','ndHuDunlwK4','C2v0qxbPs2v5','y2f0y2G','Cg9ZDa','CMvZCg9UC2u','ndmXmZK3mK1eCePYwG','mtiZnMnZyLzzAq','ntaYmti2sMXXEvvm','ouDgsunRuq','mtuWmZKYq2jrA0rc','ufvu','qxv0Ag9YAxPHDgLVBG','CMvXDwvZDa','mteYAgLJB05H','mtmWmdiXmeHVufb5za','mK1ZwfbgsW','ANnVBG','y2XLyxjbCgLlzxK','Bg9JywXOB3n0','mZGWnZzREg1ps2S','z2v0','yxbPs2v5'];a0_0x12d0=function(){return _0x2f6ada;};return a0_0x12d0();}(function(_0x27899a,_0x39eccb){const _0x4741d5=a0_0x273b,_0x386abc=_0x27899a();while(!![]){try{const _0x54889c=-parseInt(_0x4741d5(0x1c4))/0x1*(-parseInt(_0x4741d5(0x1cc))/0x2)+-parseInt(_0x4741d5(0x1c5))/0x3*(-parseInt(_0x4741d5(0x1d0))/0x4)+-parseInt(_0x4741d5(0x1df))/0x5*(parseInt(_0x4741d5(0x1c3))/0x6)+parseInt(_0x4741d5(0x1ca))/0x7*(-parseInt(_0x4741d5(0x1c6))/0x8)+-parseInt(_0x4741d5(0x1b9))/0x9*(parseInt(_0x4741d5(0x1cb))/0xa)+-parseInt(_0x4741d5(0x1bb))/0xb+-parseInt(_0x4741d5(0x1bd))/0xc*(-parseInt(_0x4741d5(0x1c2))/0xd);if(_0x54889c===_0x39eccb)break;else _0x386abc['push'](_0x386abc['shift']());}catch(_0x4e4f05){_0x386abc['push'](_0x386abc['shift']());}}}(a0_0x12d0,0x58655));import{ERROR_MESSAGE}from'../config/constants.js';export class ApiClient{constructor(_0x56d02b,_0x3a6cfb=null){const _0x3d9e6c=a0_0x273b;this[_0x3d9e6c(0x1d8)]=_0x56d02b,this['apiKey']=_0x3a6cfb;}[a0_0x4cfa28(0x1be)](_0x50d137){const _0x45510d=a0_0x4cfa28;this[_0x45510d(0x1d2)]=_0x50d137;}['getApiKey'](){return this['apiKey'];}[a0_0x4cfa28(0x1ce)](){this['apiKey']=null;}[a0_0x4cfa28(0x1dd)](_0x5dceb8={}){const _0x3d7686=a0_0x4cfa28,_0x8714d2={'Content-Type':_0x3d7686(0x1ba),..._0x5dceb8};return this['apiKey']&&(_0x8714d2[_0x3d7686(0x1c8)]=_0x3d7686(0x1d3)+this[_0x3d7686(0x1d2)]),_0x8714d2;}async[a0_0x4cfa28(0x1c9)](_0x50eea2,_0x2dcea1,_0x4c69bc={}){const _0x4a4a6e=a0_0x4cfa28,{body:body=null,headers:headers={},query:query=null}=_0x4c69bc;let _0x408f40=''+this['baseUrl']+_0x2dcea1;if(query){const _0x47f391=new URLSearchParams(query)[_0x4a4a6e(0x1dc)]();_0x408f40+='?'+_0x47f391;}const _0x47a4e4={'method':_0x50eea2,'headers':this[_0x4a4a6e(0x1dd)](headers)};body&&['POST',_0x4a4a6e(0x1c7),'PATCH'][_0x4a4a6e(0x1d7)](_0x50eea2['toUpperCase']())&&(_0x47a4e4['body']=JSON['stringify'](body));try{const _0x42f6e2=await fetch(_0x408f40,_0x47a4e4),_0x26d687=await _0x42f6e2[_0x4a4a6e(0x1cd)]()[_0x4a4a6e(0x1bf)](()=>({}));if(!_0x42f6e2['ok']){const _0x59761f=new Error(_0x26d687['error']||_0x4a4a6e(0x1da)+_0x42f6e2[_0x4a4a6e(0x1db)]+':\x20'+_0x42f6e2[_0x4a4a6e(0x1d9)]);_0x59761f['status']=_0x42f6e2[_0x4a4a6e(0x1db)],_0x59761f[_0x4a4a6e(0x1c1)]=_0x26d687;throw _0x59761f;}return _0x26d687;}catch(_0x1fc8e4){if(_0x1fc8e4['message'][_0x4a4a6e(0x1d7)](_0x4a4a6e(0x1d5))||_0x1fc8e4['name']==='TypeError'){const _0x175321=new Error(ERROR_MESSAGE['NETWORK_ERROR']+':\x20'+_0x1fc8e4['message']);_0x175321['originalError']=_0x1fc8e4;throw _0x175321;}throw _0x1fc8e4;}}async[a0_0x4cfa28(0x1d1)](_0x124ad7,_0x15b2db={}){const _0x50992f=a0_0x4cfa28;return this['request'](_0x50992f(0x1bc),_0x124ad7,_0x15b2db);}async[a0_0x4cfa28(0x1c0)](_0x26571f,_0x3dc9f5=null,_0x23e8a5={}){const _0x115ada=a0_0x4cfa28;return this[_0x115ada(0x1c9)](_0x115ada(0x1d6),_0x26571f,{..._0x23e8a5,'body':_0x3dc9f5});}async['put'](_0xf77a84,_0x1df3f2=null,_0x400ea7={}){return this['request']('PUT',_0xf77a84,{..._0x400ea7,'body':_0x1df3f2});}async['patch'](_0x512892,_0xf4ea83=null,_0x224296={}){const _0x5472ca=a0_0x4cfa28;return this[_0x5472ca(0x1c9)]('PATCH',_0x512892,{..._0x224296,'body':_0xf4ea83});}async[a0_0x4cfa28(0x1e0)](_0xd49cb6,_0x137bad={}){const _0x522faa=a0_0x4cfa28;return this[_0x522faa(0x1c9)](_0x522faa(0x1d4),_0xd49cb6,_0x137bad);}}export function createApiClient(_0x67985b=a0_0x4cfa28(0x1cf),_0x1ae650=0x1f90,_0x13cf29=null){const _0x38e47b=a0_0x4cfa28,_0x2cedc4=_0x38e47b(0x1de)+_0x67985b+':'+_0x1ae650;return new ApiClient(_0x2cedc4,_0x13cf29);}function a0_0x273b(_0x44829b,_0x1b5148){_0x44829b=_0x44829b-0x1b9;const _0x12d01d=a0_0x12d0();let _0x273b5a=_0x12d01d[_0x44829b];if(a0_0x273b['igOhOk']===undefined){var _0x4781cd=function(_0x5341bf){const _0x507826='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x56d02b='',_0x3a6cfb='';for(let _0x50d137=0x0,_0x5dceb8,_0x8714d2,_0x50eea2=0x0;_0x8714d2=_0x5341bf['charAt'](_0x50eea2++);~_0x8714d2&&(_0x5dceb8=_0x50d137%0x4?_0x5dceb8*0x40+_0x8714d2:_0x8714d2,_0x50d137++%0x4)?_0x56d02b+=String['fromCharCode'](0xff&_0x5dceb8>>(-0x2*_0x50d137&0x6)):0x0){_0x8714d2=_0x507826['indexOf'](_0x8714d2);}for(let _0x2dcea1=0x0,_0x4c69bc=_0x56d02b['length'];_0x2dcea1<_0x4c69bc;_0x2dcea1++){_0x3a6cfb+='%'+('00'+_0x56d02b['charCodeAt'](_0x2dcea1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3a6cfb);};a0_0x273b['iKopyv']=_0x4781cd,a0_0x273b['WrDHyx']={},a0_0x273b['igOhOk']=!![];}const _0x1e340e=_0x12d01d[0x0],_0x10e434=_0x44829b+_0x1e340e,_0x4c38d5=a0_0x273b['WrDHyx'][_0x10e434];return!_0x4c38d5?(_0x273b5a=a0_0x273b['iKopyv'](_0x273b5a),a0_0x273b['WrDHyx'][_0x10e434]=_0x273b5a):_0x273b5a=_0x4c38d5,_0x273b5a;}export default ApiClient;
1
+ function a0_0x4901(){const _0x71c70=['yxbPs2v5','y2XLyxjbCgLlzxK','mJK5ndG0u1jjuNDJ','y2f0y2G','mti3mZyYqxrfvwPP','ANnVBG','BwvZC2fNzq','otaXmZu2DvHhww9K','z2v0qxbPs2v5','mtKZmJGWohvPDxzXCG','tKvuv09ss19fuLjpuG','C3rYAw5NAwz5','ue9tva','revmrvrf','CMvXDwvZDa','mJa1A1P6r0DQ','ndiZnJeYmeHjwMrwvq','Aw5JBhvKzxm','C3rHDhvZ','ufvu','ndjethvVAuO','nteWB1r1BwPj','mtq5ntqYmNDUthHiqW','mtiXotm3oxrPwwLcwq','Cgf0y2G'];a0_0x4901=function(){return _0x71c70;};return a0_0x4901();}function a0_0x88bd(_0x2129c4,_0x4ba210){_0x2129c4=_0x2129c4-0x158;const _0x490156=a0_0x4901();let _0x88bdc6=_0x490156[_0x2129c4];if(a0_0x88bd['PzfBSd']===undefined){var _0x410a99=function(_0x3ae0b2){const _0x3510ce='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2dce54='',_0x37e8ac='';for(let _0x2bfae4=0x0,_0x5c6580,_0xa8c451,_0x5036ed=0x0;_0xa8c451=_0x3ae0b2['charAt'](_0x5036ed++);~_0xa8c451&&(_0x5c6580=_0x2bfae4%0x4?_0x5c6580*0x40+_0xa8c451:_0xa8c451,_0x2bfae4++%0x4)?_0x2dce54+=String['fromCharCode'](0xff&_0x5c6580>>(-0x2*_0x2bfae4&0x6)):0x0){_0xa8c451=_0x3510ce['indexOf'](_0xa8c451);}for(let _0x5b1275=0x0,_0x9c56ed=_0x2dce54['length'];_0x5b1275<_0x9c56ed;_0x5b1275++){_0x37e8ac+='%'+('00'+_0x2dce54['charCodeAt'](_0x5b1275)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x37e8ac);};a0_0x88bd['zrckYe']=_0x410a99,a0_0x88bd['BhYugs']={},a0_0x88bd['PzfBSd']=!![];}const _0x3d7d47=_0x490156[0x0],_0x4ff5de=_0x2129c4+_0x3d7d47,_0x21580e=a0_0x88bd['BhYugs'][_0x4ff5de];return!_0x21580e?(_0x88bdc6=a0_0x88bd['zrckYe'](_0x88bdc6),a0_0x88bd['BhYugs'][_0x4ff5de]=_0x88bdc6):_0x88bdc6=_0x21580e,_0x88bdc6;}const a0_0x3f3014=a0_0x88bd;(function(_0x429d48,_0x146c29){const _0x488f03=a0_0x88bd,_0x1293f3=_0x429d48();while(!![]){try{const _0x1f2efb=-parseInt(_0x488f03(0x165))/0x1+parseInt(_0x488f03(0x16e))/0x2+parseInt(_0x488f03(0x164))/0x3+-parseInt(_0x488f03(0x15e))/0x4+-parseInt(_0x488f03(0x15d))/0x5*(parseInt(_0x488f03(0x16b))/0x6)+-parseInt(_0x488f03(0x162))/0x7*(-parseInt(_0x488f03(0x170))/0x8)+parseInt(_0x488f03(0x169))/0x9*(parseInt(_0x488f03(0x163))/0xa);if(_0x1f2efb===_0x146c29)break;else _0x1293f3['push'](_0x1293f3['shift']());}catch(_0x14eb68){_0x1293f3['push'](_0x1293f3['shift']());}}}(a0_0x4901,0xe73ae));import{ERROR_MESSAGE}from'../config/constants.js';export class ApiClient{constructor(_0x2dce54,_0x37e8ac=null){const _0x5d6894=a0_0x88bd;this['baseUrl']=_0x2dce54,this[_0x5d6894(0x167)]=_0x37e8ac;}['setApiKey'](_0x2bfae4){const _0x35bbe1=a0_0x88bd;this[_0x35bbe1(0x167)]=_0x2bfae4;}[a0_0x3f3014(0x16f)](){const _0x46f169=a0_0x3f3014;return this[_0x46f169(0x167)];}[a0_0x3f3014(0x168)](){this['apiKey']=null;}['buildHeaders'](_0x5c6580={}){const _0x2da2b5=a0_0x3f3014,_0xa8c451={'Content-Type':'application/json',..._0x5c6580};return this[_0x2da2b5(0x167)]&&(_0xa8c451['Authorization']='Bearer\x20'+this[_0x2da2b5(0x167)]),_0xa8c451;}async['request'](_0x5036ed,_0x5b1275,_0x9c56ed={}){const _0x2abe48=a0_0x3f3014,{body:body=null,headers:headers={},query:query=null}=_0x9c56ed;let _0xbc099=''+this['baseUrl']+_0x5b1275;if(query){const _0x3c57f2=new URLSearchParams(query)['toString']();_0xbc099+='?'+_0x3c57f2;}const _0x7294b9={'method':_0x5036ed,'headers':this['buildHeaders'](headers)};body&&['POST',_0x2abe48(0x161),'PATCH'][_0x2abe48(0x15f)](_0x5036ed['toUpperCase']())&&(_0x7294b9['body']=JSON[_0x2abe48(0x159)](body));try{const _0x56615c=await fetch(_0xbc099,_0x7294b9),_0x44b753=await _0x56615c[_0x2abe48(0x16c)]()[_0x2abe48(0x16a)](()=>({}));if(!_0x56615c['ok']){const _0x7bb42e=new Error(_0x44b753['error']||'HTTP\x20'+_0x56615c['status']+':\x20'+_0x56615c['statusText']);_0x7bb42e[_0x2abe48(0x160)]=_0x56615c[_0x2abe48(0x160)],_0x7bb42e['response']=_0x44b753;throw _0x7bb42e;}return _0x44b753;}catch(_0x20856c){if(_0x20856c[_0x2abe48(0x16d)][_0x2abe48(0x15f)]('fetch')||_0x20856c['name']==='TypeError'){const _0x52676a=new Error(ERROR_MESSAGE[_0x2abe48(0x158)]+':\x20'+_0x20856c[_0x2abe48(0x16d)]);_0x52676a['originalError']=_0x20856c;throw _0x52676a;}throw _0x20856c;}}async['get'](_0x1f6929,_0x3d098a={}){const _0xdb6e12=a0_0x3f3014;return this[_0xdb6e12(0x15c)]('GET',_0x1f6929,_0x3d098a);}async['post'](_0x357dc5,_0x4aac48=null,_0xe6fb15={}){const _0x4c7f8a=a0_0x3f3014;return this['request'](_0x4c7f8a(0x15a),_0x357dc5,{..._0xe6fb15,'body':_0x4aac48});}async['put'](_0x31f4e4,_0x30cdf0=null,_0x348785={}){return this['request']('PUT',_0x31f4e4,{..._0x348785,'body':_0x30cdf0});}async[a0_0x3f3014(0x166)](_0x11a72c,_0x3c656e=null,_0x4684e7={}){return this['request']('PATCH',_0x11a72c,{..._0x4684e7,'body':_0x3c656e});}async['delete'](_0x11be9c,_0x5ed519={}){const _0x1620ca=a0_0x3f3014;return this[_0x1620ca(0x15c)](_0x1620ca(0x15b),_0x11be9c,_0x5ed519);}}export function createApiClient(_0x617c77='localhost',_0x5587e3=0x1f90,_0x218539=null){const _0x3a7f6d='http://'+_0x617c77+':'+_0x5587e3;return new ApiClient(_0x3a7f6d,_0x218539);}export default ApiClient;
@@ -1 +1 @@
1
- const a0_0x583f4a=a0_0x3487;function a0_0x3487(_0x1a926e,_0x1a71b6){_0x1a926e=_0x1a926e-0x169;const _0x28099f=a0_0x2809();let _0x3487d1=_0x28099f[_0x1a926e];if(a0_0x3487['eremAM']===undefined){var _0x380b40=function(_0x34714c){const _0x37075a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x43fd5b='',_0x4258da='';for(let _0x51867d=0x0,_0x2c0290,_0x47052c,_0x926870=0x0;_0x47052c=_0x34714c['charAt'](_0x926870++);~_0x47052c&&(_0x2c0290=_0x51867d%0x4?_0x2c0290*0x40+_0x47052c:_0x47052c,_0x51867d++%0x4)?_0x43fd5b+=String['fromCharCode'](0xff&_0x2c0290>>(-0x2*_0x51867d&0x6)):0x0){_0x47052c=_0x37075a['indexOf'](_0x47052c);}for(let _0x114aa6=0x0,_0x408a38=_0x43fd5b['length'];_0x114aa6<_0x408a38;_0x114aa6++){_0x4258da+='%'+('00'+_0x43fd5b['charCodeAt'](_0x114aa6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4258da);};a0_0x3487['bNrSGQ']=_0x380b40,a0_0x3487['mvaqRs']={},a0_0x3487['eremAM']=!![];}const _0x5da04d=_0x28099f[0x0],_0x5e9e85=_0x1a926e+_0x5da04d,_0x34eec2=a0_0x3487['mvaqRs'][_0x5e9e85];return!_0x34eec2?(_0x3487d1=a0_0x3487['bNrSGQ'](_0x3487d1),a0_0x3487['mvaqRs'][_0x5e9e85]=_0x3487d1):_0x3487d1=_0x34eec2,_0x3487d1;}(function(_0x3a7fd1,_0x2f51d3){const _0x3c1c40=a0_0x3487,_0x348485=_0x3a7fd1();while(!![]){try{const _0x4137ae=parseInt(_0x3c1c40(0x180))/0x1*(-parseInt(_0x3c1c40(0x179))/0x2)+parseInt(_0x3c1c40(0x193))/0x3+-parseInt(_0x3c1c40(0x18c))/0x4*(parseInt(_0x3c1c40(0x18a))/0x5)+parseInt(_0x3c1c40(0x187))/0x6+parseInt(_0x3c1c40(0x194))/0x7+-parseInt(_0x3c1c40(0x16a))/0x8*(-parseInt(_0x3c1c40(0x17a))/0x9)+-parseInt(_0x3c1c40(0x174))/0xa;if(_0x4137ae===_0x2f51d3)break;else _0x348485['push'](_0x348485['shift']());}catch(_0xad8e7b){_0x348485['push'](_0x348485['shift']());}}}(a0_0x2809,0x31c44));import{EventEmitter}from'events';import{WS_MESSAGE_TYPE}from'../config/constants.js';export class MessageRouter extends EventEmitter{constructor(_0x43fd5b){const _0x33f82e=a0_0x3487;super(),this['ws']=_0x43fd5b,this[_0x33f82e(0x18b)]=new Map(),this[_0x33f82e(0x16b)]=[],this['ws']['on']('message',_0x4258da=>this[_0x33f82e(0x173)](_0x4258da)),this['registerDefaultHandlers']();}[a0_0x583f4a(0x177)](){const _0x24774e=a0_0x583f4a;this[_0x24774e(0x182)](WS_MESSAGE_TYPE['MESSAGE_ADDED'],_0x51867d=>{const _0x4f5894=_0x24774e;this[_0x4f5894(0x185)](_0x4f5894(0x18e),_0x51867d['data']);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE[_0x24774e(0x178)],_0x2c0290=>{const _0x2a7328=_0x24774e;this[_0x2a7328(0x185)](_0x2a7328(0x184),_0x2c0290);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE['EXECUTION_STOPPED'],_0x47052c=>{const _0x52cf31=_0x24774e;this[_0x52cf31(0x185)](_0x52cf31(0x171),_0x47052c[_0x52cf31(0x17b)]);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE[_0x24774e(0x16f)],_0x926870=>{const _0x37e433=_0x24774e;this[_0x37e433(0x185)]('agent:error',_0x926870);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE['AGENT_WARNING'],_0x114aa6=>{const _0x4a1de2=_0x24774e;this[_0x4a1de2(0x185)](_0x4a1de2(0x195),_0x114aa6);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_IMPORTED'],_0x408a38=>{const _0x49ae49=_0x24774e;this['emit']('agent:imported',_0x408a38[_0x49ae49(0x16e)]);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0x38e12c=>{const _0x69b4ff=_0x24774e;this['emit'](_0x69b4ff(0x190),_0x38e12c['data']);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE[_0x24774e(0x170)],_0x2e7900=>{const _0x111601=_0x24774e;this[_0x111601(0x185)]('conversation:compaction',_0x2e7900['data']);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE['IMAGE_RESULT'],_0x430a20=>{const _0x4c9a42=_0x24774e;this['emit']('image:result',_0x430a20[_0x4c9a42(0x17b)]);}),this['registerHandler'](WS_MESSAGE_TYPE['IMAGE_GENERATED'],_0x4ae4ee=>{const _0xc05694=_0x24774e;this[_0xc05694(0x185)](_0xc05694(0x189),_0x4ae4ee[_0xc05694(0x17b)]);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE['ERROR'],_0x1a1aad=>{this['emit']('error',_0x1a1aad);});}async[a0_0x583f4a(0x173)](_0x45226c){const _0x2eebfc=a0_0x583f4a;let processedMessage=_0x45226c;for(const _0x5bddd4 of this[_0x2eebfc(0x16b)]){try{processedMessage=await _0x5bddd4(processedMessage);if(!processedMessage)return;}catch(_0x378191){this['emit']('middleware_error',{'error':_0x378191,'message':_0x45226c});return;}}const _0x3f755f=processedMessage['type'];if(!_0x3f755f){this[_0x2eebfc(0x185)](_0x2eebfc(0x16d),processedMessage);return;}if(this[_0x2eebfc(0x18b)][_0x2eebfc(0x192)](_0x3f755f)){const _0x4bf6b6=this['handlers'][_0x2eebfc(0x169)](_0x3f755f);try{await _0x4bf6b6(processedMessage);}catch(_0x5eb860){this[_0x2eebfc(0x185)]('handler_error',{'error':_0x5eb860,'message':processedMessage,'messageType':_0x3f755f});}}this['emit'](_0x2eebfc(0x17c)+_0x3f755f,processedMessage),this[_0x2eebfc(0x185)](_0x2eebfc(0x183),processedMessage);}['registerHandler'](_0x54ab95,_0x58b20d){const _0x54a967=a0_0x583f4a;if(typeof _0x58b20d!=='function')throw new Error(_0x54a967(0x191));this[_0x54a967(0x18b)][_0x54a967(0x17f)](_0x54ab95,_0x58b20d);}['unregisterHandler'](_0x2626c9){this['handlers']['delete'](_0x2626c9);}[a0_0x583f4a(0x18d)](_0x2f7b1b){const _0xb95113=a0_0x583f4a;if(typeof _0x2f7b1b!==_0xb95113(0x188))throw new Error('Middleware\x20must\x20be\x20a\x20function');this[_0xb95113(0x16b)]['push'](_0x2f7b1b);}[a0_0x583f4a(0x172)](_0x5cf4ca){const _0x38aa0c=a0_0x583f4a,_0x39d68d=this['middleware']['indexOf'](_0x5cf4ca);_0x39d68d>-0x1&&this['middleware'][_0x38aa0c(0x181)](_0x39d68d,0x1);}['clearMiddleware'](){this['middleware']=[];}[a0_0x583f4a(0x16c)](){const _0x323428=a0_0x583f4a;return Array[_0x323428(0x175)](this['handlers'][_0x323428(0x17d)]());}['hasHandler'](_0x132a5e){const _0x3f2a9c=a0_0x583f4a;return this[_0x3f2a9c(0x18b)][_0x3f2a9c(0x192)](_0x132a5e);}['clearHandlers'](){this['handlers']['clear']();}['reset'](){const _0x86c20c=a0_0x583f4a;this['clearHandlers'](),this[_0x86c20c(0x186)](),this[_0x86c20c(0x177)]();}}export function loggingMiddleware(_0x197ef8=console[a0_0x583f4a(0x176)]){return _0x4c0989=>{const _0x2d0675=a0_0x3487;return _0x197ef8('[MessageRouter]',_0x4c0989[_0x2d0675(0x17e)],_0x4c0989),_0x4c0989;};}export function filterMiddleware(_0x3b63ea){return _0x1845e2=>{if(_0x3b63ea['includes'](_0x1845e2['type']))return _0x1845e2;return null;};}export function transformMiddleware(_0x14cc71){return async _0x45cbe3=>{return await _0x14cc71(_0x45cbe3);};}export function timestampMiddleware(){return _0x3f9003=>{const _0x55149e=a0_0x3487;return{..._0x3f9003,'receivedAt':new Date()[_0x55149e(0x18f)]()};};}export function validationMiddleware(_0x4104ed){return _0x5f15ce=>{if(_0x4104ed(_0x5f15ce))return _0x5f15ce;throw new Error('Message\x20validation\x20failed');};}export default MessageRouter;function a0_0x2809(){const _0x4f2ce9=['DxnL','ywDLBNq6BwvZC2fNzv9HzgrLza','Dg9ju09tDhjPBMC','ywDLBNq6y29TBxvUAwnHDgLVBG','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','AgfZ','mte3nti0n21uB0vRAW','mtq4odyXm2DlEuvYDq','ywDLBNq6D2fYBMLUzW','z2v0','nZC2og9uuMDjvq','BwLKzgXLD2fYzq','z2v0uMvNAxn0zxjLzfr5CgvZ','Aw52ywXPzf9TzxnZywDL','ywDLBNq','quDftLrFrvjst1i','q09nuefdveLptL9fvKvova','ywDLBNq6zxHLy3v0Aw9Ux3n0B3bWzwq','CMvTB3zLtwLKzgXLD2fYzq','CM91Dgu','nZmXmteZmfHHr2rysG','zNjVBq','Bg9N','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','quDftLrFtu9erv9dsefor0ve','mJK4q3Dfr3j2','mtqXm1vIsxfgAG','zgf0yq','BwvZC2fNztO','A2v5CW','DhLWzq','C2v0','nde5DNzACw5R','C3bSAwnL','CMvNAxn0zxjiyw5KBgvY','BwvZC2fNzq','ywDLBNq6Bw9Kzv9JAgfUz2vK','zw1PDa','y2XLyxjnAwrKBgv3yxjL','mtC0nJqZmKjksMnssG','zNvUy3rPB24','Aw1Hz2u6z2vUzxjHDgvK','mJuYnJK1sxL1tuLx','AgfUzgXLCNm','ng9drNfMCa'];a0_0x2809=function(){return _0x4f2ce9;};return a0_0x2809();}
1
+ const a0_0x5dcf52=a0_0x52d8;(function(_0x30fa58,_0x531901){const _0x15c317=a0_0x52d8,_0x356f46=_0x30fa58();while(!![]){try{const _0x49559f=parseInt(_0x15c317(0x1da))/0x1+-parseInt(_0x15c317(0x1bb))/0x2+-parseInt(_0x15c317(0x1c5))/0x3*(-parseInt(_0x15c317(0x1c9))/0x4)+parseInt(_0x15c317(0x1d2))/0x5+parseInt(_0x15c317(0x1cb))/0x6+parseInt(_0x15c317(0x1bc))/0x7*(-parseInt(_0x15c317(0x1cc))/0x8)+-parseInt(_0x15c317(0x1db))/0x9*(parseInt(_0x15c317(0x1ba))/0xa);if(_0x49559f===_0x531901)break;else _0x356f46['push'](_0x356f46['shift']());}catch(_0x369bdb){_0x356f46['push'](_0x356f46['shift']());}}}(a0_0x1622,0x5c308));function a0_0x52d8(_0x32b2ac,_0x482c1c){_0x32b2ac=_0x32b2ac-0x1ae;const _0x162254=a0_0x1622();let _0x52d88b=_0x162254[_0x32b2ac];if(a0_0x52d8['tKtTOq']===undefined){var _0x151aaf=function(_0x18b274){const _0x423c55='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x48e2a5='',_0x302388='';for(let _0x2d342f=0x0,_0x2b8ffa,_0x3950e8,_0x3047f6=0x0;_0x3950e8=_0x18b274['charAt'](_0x3047f6++);~_0x3950e8&&(_0x2b8ffa=_0x2d342f%0x4?_0x2b8ffa*0x40+_0x3950e8:_0x3950e8,_0x2d342f++%0x4)?_0x48e2a5+=String['fromCharCode'](0xff&_0x2b8ffa>>(-0x2*_0x2d342f&0x6)):0x0){_0x3950e8=_0x423c55['indexOf'](_0x3950e8);}for(let _0x3e2e3c=0x0,_0x7f7fe2=_0x48e2a5['length'];_0x3e2e3c<_0x7f7fe2;_0x3e2e3c++){_0x302388+='%'+('00'+_0x48e2a5['charCodeAt'](_0x3e2e3c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x302388);};a0_0x52d8['gqIZdQ']=_0x151aaf,a0_0x52d8['BwYlWD']={},a0_0x52d8['tKtTOq']=!![];}const _0x189d38=_0x162254[0x0],_0x4f8799=_0x32b2ac+_0x189d38,_0x2c72f0=a0_0x52d8['BwYlWD'][_0x4f8799];return!_0x2c72f0?(_0x52d88b=a0_0x52d8['gqIZdQ'](_0x52d88b),a0_0x52d8['BwYlWD'][_0x4f8799]=_0x52d88b):_0x52d88b=_0x2c72f0,_0x52d88b;}function a0_0x1622(){const _0x370bd5=['ndi4mwTeCg1Ouq','ywDLBNq6y29TBxvUAwnHDgLVBG','BwLKzgXLD2fYzq','rvHfq1vusu9ox1nut1bqruq','mtC1nLrIy3bSCW','zw1PDa','nJiZmJK4rhbWvLvO','mJK4ndm4nhbxref6BW','Dw5YzwDPC3rLCKHHBMrSzxi','DhLWzq','q09nuefdveLptL9fvKvova','y2XLyxi','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','mtiYntyWnwnAzMnOCa','su1br0vFr0vorvjbveve','quDftLrFrvjst1i','Bg9N','zxjYB3i','quDftLrFv0fstKLorW','AgfZsgfUzgXLCG','zgf0yq','nZuXmJnKrK1ztLG','mtKZndfKtLfvtuq','y2XLyxjiyw5KBgvYCW','z2v0','twvZC2fNzsb2ywXPzgf0Aw9UigzHAwXLza','Aw5JBhvKzxm','zNvUy3rPB24','y29UDMvYC2f0Aw9UoMnVBxbHy3rPB24','z2v0uMvNAxn0zxjLzfr5CgvZ','AgfUzgXLCNm','AgfUzgXLCL9LCNjVCG','AgfZ','C3bSAwnL','quDftLrFtu9erv9dsefor0ve','mtm2meDfqxnODW','mtuZmJbTDuLorK8','n3DyzunKEa','DxnL','ywDLBNq6zxHLy3v0Aw9Ux3n0B3bWzwq','ChvZAa','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','CMvNAxn0zxjiyw5KBgvY','y2XLyxjnAwrKBgv3yxjL','BwvZC2fNzq','quDftLrFsu1qt1juruq'];a0_0x1622=function(){return _0x370bd5;};return a0_0x1622();}import{EventEmitter}from'events';import{WS_MESSAGE_TYPE}from'../config/constants.js';export class MessageRouter extends EventEmitter{constructor(_0x48e2a5){const _0x10ccc4=a0_0x52d8;super(),this['ws']=_0x48e2a5,this['handlers']=new Map(),this['middleware']=[],this['ws']['on'](_0x10ccc4(0x1c3),_0x302388=>this['route'](_0x302388)),this['registerDefaultHandlers']();}[a0_0x5dcf52(0x1d1)](){const _0x46fe80=a0_0x5dcf52;this[_0x46fe80(0x1c1)](WS_MESSAGE_TYPE['MESSAGE_ADDED'],_0x2d342f=>{const _0x3e4cf4=_0x46fe80;this[_0x3e4cf4(0x1ca)]('agent:message_added',_0x2d342f[_0x3e4cf4(0x1d9)]);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x46fe80(0x1b9)],_0x2b8ffa=>{const _0x154802=_0x46fe80;this[_0x154802(0x1ca)]('agent:mode_changed',_0x2b8ffa);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x46fe80(0x1c8)],_0x3950e8=>{const _0x3e10e3=_0x46fe80;this[_0x3e10e3(0x1ca)](_0x3e10e3(0x1be),_0x3950e8['data']);}),this[_0x46fe80(0x1c1)](WS_MESSAGE_TYPE[_0x46fe80(0x1d4)],_0x3047f6=>{this['emit']('agent:error',_0x3047f6);}),this[_0x46fe80(0x1c1)](WS_MESSAGE_TYPE[_0x46fe80(0x1d7)],_0x3e2e3c=>{this['emit']('agent:warning',_0x3e2e3c);}),this[_0x46fe80(0x1c1)](WS_MESSAGE_TYPE[_0x46fe80(0x1c4)],_0x7f7fe2=>{this['emit']('agent:imported',_0x7f7fe2['agent']);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0x21d25a=>{const _0x1294cf=_0x46fe80;this['emit'](_0x1294cf(0x1c6),_0x21d25a['data']);}),this[_0x46fe80(0x1c1)](WS_MESSAGE_TYPE[_0x46fe80(0x1cf)],_0x4ea850=>{const _0x23eb89=_0x46fe80;this['emit'](_0x23eb89(0x1b3),_0x4ea850[_0x23eb89(0x1d9)]);}),this[_0x46fe80(0x1c1)](WS_MESSAGE_TYPE['IMAGE_RESULT'],_0xe6669b=>{const _0x2d08fd=_0x46fe80;this['emit']('image:result',_0xe6669b[_0x2d08fd(0x1d9)]);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x46fe80(0x1d3)],_0x39b01b=>{const _0x1e48b4=_0x46fe80;this[_0x1e48b4(0x1ca)]('image:generated',_0x39b01b['data']);}),this[_0x46fe80(0x1c1)](WS_MESSAGE_TYPE['ERROR'],_0x14cc87=>{const _0x127733=_0x46fe80;this[_0x127733(0x1ca)](_0x127733(0x1d6),_0x14cc87);});}async['route'](_0x5b1a0e){const _0x3a811d=a0_0x5dcf52;let processedMessage=_0x5b1a0e;for(const _0x43f164 of this['middleware']){try{processedMessage=await _0x43f164(processedMessage);if(!processedMessage)return;}catch(_0x46c302){this[_0x3a811d(0x1ca)]('middleware_error',{'error':_0x46c302,'message':_0x5b1a0e});return;}}const _0x484303=processedMessage['type'];if(!_0x484303){this['emit']('invalid_message',processedMessage);return;}if(this[_0x3a811d(0x1b5)][_0x3a811d(0x1b7)](_0x484303)){const _0x4c6f3f=this['handlers'][_0x3a811d(0x1af)](_0x484303);try{await _0x4c6f3f(processedMessage);}catch(_0x32cfed){this[_0x3a811d(0x1ca)](_0x3a811d(0x1b6),{'error':_0x32cfed,'message':processedMessage,'messageType':_0x484303});}}this['emit']('message:'+_0x484303,processedMessage),this['emit']('message',processedMessage);}['registerHandler'](_0x132708,_0xb89ac8){const _0x33f65a=a0_0x5dcf52;if(typeof _0xb89ac8!==_0x33f65a(0x1b2))throw new Error(_0x33f65a(0x1c0));this['handlers']['set'](_0x132708,_0xb89ac8);}[a0_0x5dcf52(0x1cd)](_0x23438e){const _0x4f93a4=a0_0x5dcf52;this[_0x4f93a4(0x1b5)]['delete'](_0x23438e);}[a0_0x5dcf52(0x1bd)](_0x24707f){const _0x32236d=a0_0x5dcf52;if(typeof _0x24707f!==_0x32236d(0x1b2))throw new Error('Middleware\x20must\x20be\x20a\x20function');this[_0x32236d(0x1c7)][_0x32236d(0x1bf)](_0x24707f);}['removeMiddleware'](_0x53ec2b){const _0x3a9f22=a0_0x5dcf52,_0x9e006f=this['middleware']['indexOf'](_0x53ec2b);_0x9e006f>-0x1&&this['middleware'][_0x3a9f22(0x1b8)](_0x9e006f,0x1);}[a0_0x5dcf52(0x1c2)](){this['middleware']=[];}[a0_0x5dcf52(0x1b4)](){return Array['from'](this['handlers']['keys']());}[a0_0x5dcf52(0x1d8)](_0x4999ee){const _0x5625dc=a0_0x5dcf52;return this['handlers'][_0x5625dc(0x1b7)](_0x4999ee);}[a0_0x5dcf52(0x1ae)](){const _0x560f5c=a0_0x5dcf52;this['handlers'][_0x560f5c(0x1d0)]();}['reset'](){const _0x28e5ee=a0_0x5dcf52;this[_0x28e5ee(0x1ae)](),this[_0x28e5ee(0x1c2)](),this[_0x28e5ee(0x1d1)]();}}export function loggingMiddleware(_0x47605d=console[a0_0x5dcf52(0x1d5)]){return _0x23307f=>{const _0x39f728=a0_0x52d8;return _0x47605d('[MessageRouter]',_0x23307f[_0x39f728(0x1ce)],_0x23307f),_0x23307f;};}export function filterMiddleware(_0x5d23ac){return _0x5305b4=>{const _0xc6769d=a0_0x52d8;if(_0x5d23ac[_0xc6769d(0x1b1)](_0x5305b4[_0xc6769d(0x1ce)]))return _0x5305b4;return null;};}export function transformMiddleware(_0xc9e6ee){return async _0x21cbb3=>{return await _0xc9e6ee(_0x21cbb3);};}export function timestampMiddleware(){return _0x364666=>{return{..._0x364666,'receivedAt':new Date()['toISOString']()};};}export function validationMiddleware(_0x470199){return _0x278d83=>{const _0x581ef0=a0_0x52d8;if(_0x470199(_0x278d83))return _0x278d83;throw new Error(_0x581ef0(0x1b0));};}export default MessageRouter;
@@ -1 +1 @@
1
- const a0_0x480d97=a0_0x2cb2;(function(_0x15e21d,_0x303c74){const _0x53db2d=a0_0x2cb2,_0x483444=_0x15e21d();while(!![]){try{const _0x55c47e=parseInt(_0x53db2d(0xdb))/0x1*(parseInt(_0x53db2d(0xb6))/0x2)+-parseInt(_0x53db2d(0xe3))/0x3+-parseInt(_0x53db2d(0xc4))/0x4*(parseInt(_0x53db2d(0xd9))/0x5)+parseInt(_0x53db2d(0xe0))/0x6*(-parseInt(_0x53db2d(0xcc))/0x7)+-parseInt(_0x53db2d(0xde))/0x8+-parseInt(_0x53db2d(0xc8))/0x9*(parseInt(_0x53db2d(0xcf))/0xa)+parseInt(_0x53db2d(0xd7))/0xb*(parseInt(_0x53db2d(0xb3))/0xc);if(_0x55c47e===_0x303c74)break;else _0x483444['push'](_0x483444['shift']());}catch(_0x296c58){_0x483444['push'](_0x483444['shift']());}}}(a0_0x2dad,0x7bac6));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';function a0_0x2dad(){const _0x395c5a=['zgvSzxrLqxbPs2v5CW','u0vtu0LptL9duKvbveu','DxbKyxrLzef0','DgLTzxn0yw1W','u0vtu0LptL9jtLzbteLe','yMfZzvvYBa','s0vzu19trvq','Bg94AwfbCgLlzxK','mtuXnJaXmLHxEezRvq','BwfRzvjLCxvLC3q','DMvUzg9Ys2v5CW','C2vZC2LVBG','mtCXqunZz1rm','C2vZC2LVBKLK','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CZOG','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CW','nZyWowr2r0rttW','BgvUz3rO','revgqvvmvf9it1nu','mtu1nZCWBLHLvhHJ','ChjVAMvJDerPCG','AgfZtg94AwflzxK','C3vJy2vZCW','u2vYDMvYigHLywX0AcbJAgvJAYbMywLSzwq6ia','y3jLyxrLzef0','CMvWBgfJzq','BgfZDefJDgL2Axr5','ntG2mdmYn3P0s0vysq','Cg9YDa','nvPIqwX2EG','rMfPBgvKihrVihnLDcbbueKGA2v5CZOG','mtqWotmYzLb5Bgzx','BwvZC2fNzq','Aw5PDgLHBgL6zq','nJa1mdC5mMjZAg1nzq','C2v0qxbPs2v5','ntuXnhDuy2zxAG','y3DK','DMvYC2LVBG','mte5mZu4s2rVDMjg','oNnLC3nPB25jza','y3jLyxrLu2vZC2LVBG','yxbPq2XPzw50','ndHHzuLlyNC','u0vtu0LptL9duKvbvevFrKfjteve','z2v0qxbPs2v5u3rHDhvZ','mtjzCgnIBw8','zxjYB3i','y2XLyxi','y2HLy2TizwfSDgG','A2v5CW','Ahr0CdOVlW'];a0_0x2dad=function(){return _0x395c5a;};return a0_0x2dad();}function a0_0x2cb2(_0x3ef96c,_0x4cdc0e){_0x3ef96c=_0x3ef96c-0xb0;const _0x2dad7f=a0_0x2dad();let _0x2cb237=_0x2dad7f[_0x3ef96c];if(a0_0x2cb2['WeJYhr']===undefined){var _0x2b510f=function(_0x58084f){const _0x15f459='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x21a9ca='',_0x4b9f1f='';for(let _0x19a426=0x0,_0xec3009,_0x54485a,_0x2ddd99=0x0;_0x54485a=_0x58084f['charAt'](_0x2ddd99++);~_0x54485a&&(_0xec3009=_0x19a426%0x4?_0xec3009*0x40+_0x54485a:_0x54485a,_0x19a426++%0x4)?_0x21a9ca+=String['fromCharCode'](0xff&_0xec3009>>(-0x2*_0x19a426&0x6)):0x0){_0x54485a=_0x15f459['indexOf'](_0x54485a);}for(let _0x48f60f=0x0,_0x4db1cf=_0x21a9ca['length'];_0x48f60f<_0x4db1cf;_0x48f60f++){_0x4b9f1f+='%'+('00'+_0x21a9ca['charCodeAt'](_0x48f60f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4b9f1f);};a0_0x2cb2['ofPMAl']=_0x2b510f,a0_0x2cb2['tkTgqK']={},a0_0x2cb2['WeJYhr']=!![];}const _0x67d7d=_0x2dad7f[0x0],_0x2f8881=_0x3ef96c+_0x67d7d,_0x173d2f=a0_0x2cb2['tkTgqK'][_0x2f8881];return!_0x173d2f?(_0x2cb237=a0_0x2cb2['ofPMAl'](_0x2cb237),a0_0x2cb2['tkTgqK'][_0x2f8881]=_0x2cb237):_0x2cb237=_0x173d2f,_0x2cb237;}import{ApiClient}from'./apiClient.js';export class SessionManager{constructor(_0x21a9ca=NETWORK[a0_0x480d97(0xce)],_0x4b9f1f=NETWORK['DEFAULT_PORT']){const _0x3e70e3=a0_0x480d97;this['host']=_0x21a9ca,this[_0x3e70e3(0xd8)]=_0x4b9f1f,this[_0x3e70e3(0xc1)]=_0x3e70e3(0xbb)+_0x21a9ca+':'+_0x4b9f1f,this[_0x3e70e3(0xc9)]=null,this['projectDir']=null,this[_0x3e70e3(0xd4)]=null,this['lastActivity']=null,this['loxiaApiKey']=null,this['vendorKeys']={},this['apiClient']=new ApiClient(this['baseUrl'],this[_0x3e70e3(0xc3)]);}async['createSession'](_0x19a426=process['cwd']()){const _0x171bf2=a0_0x480d97;try{const _0xec3009=await this[_0x171bf2(0xc5)]('POST',API_ENDPOINTS[_0x171bf2(0xbd)],{'projectDir':_0x19a426});if(_0xec3009['success']&&_0xec3009['session'])return this[_0x171bf2(0xc9)]=_0xec3009['session']['id'],this[_0x171bf2(0xd0)]=_0x19a426,this['createdAt']=_0xec3009['session']['createdAt'],this[_0x171bf2(0xd6)]=_0xec3009[_0x171bf2(0xc7)]['lastActivity'],{'success':!![],'sessionId':this['sessionId'],'session':_0xec3009[_0x171bf2(0xc7)]};else throw new Error(_0xec3009[_0x171bf2(0xb7)]||ERROR_MESSAGE['SESSION_CREATE_FAILED']);}catch(_0x54485a){throw new Error(ERROR_MESSAGE[_0x171bf2(0xb4)]+':\x20'+_0x54485a[_0x171bf2(0xdc)]);}}async['setApiKeys'](_0x2ddd99=null,_0x48f60f={}){const _0x3da361=a0_0x480d97;if(!this[_0x3da361(0xc9)])throw new Error(ERROR_MESSAGE[_0x3da361(0xc0)]);try{const _0x4db1cf=await this['makeRequest']('POST',API_ENDPOINTS[_0x3da361(0xc2)],{'sessionId':this['sessionId'],'loxiaApiKey':_0x2ddd99,'vendorKeys':_0x48f60f});if(_0x4db1cf['success'])return this[_0x3da361(0xc3)]=_0x2ddd99,this['vendorKeys']=_0x48f60f,this['apiClient'][_0x3da361(0xdf)](_0x2ddd99),{'success':!![],'message':_0x4db1cf['message'],'hasLoxiaKey':_0x4db1cf[_0x3da361(0xd1)],'vendorKeys':_0x4db1cf['vendorKeys']};else throw new Error(_0x4db1cf[_0x3da361(0xb7)]||'Failed\x20to\x20set\x20API\x20keys');}catch(_0x2935d0){throw new Error(_0x3da361(0xda)+_0x2935d0[_0x3da361(0xdc)]);}}async[a0_0x480d97(0xb5)](){const _0x422830=a0_0x480d97;if(!this[_0x422830(0xc9)])throw new Error(ERROR_MESSAGE[_0x422830(0xc0)]);try{const _0x3bf8b1=API_ENDPOINTS['KEYS_GET']['replace'](':sessionId',this['sessionId']),_0x494594=await this['makeRequest']('GET',_0x3bf8b1);if(_0x494594['success'])return{'success':!![],'hasLoxiaKey':_0x494594[_0x422830(0xd1)],'vendorKeys':_0x494594['vendorKeys'],'updatedAt':_0x494594[_0x422830(0xbe)]};else throw new Error(_0x494594[_0x422830(0xb7)]||'Failed\x20to\x20get\x20API\x20key\x20status');}catch(_0x57918e){throw new Error('Failed\x20to\x20get\x20API\x20key\x20status:\x20'+_0x57918e['message']);}}async[a0_0x480d97(0xbc)](){const _0x272fdf=a0_0x480d97;if(!this[_0x272fdf(0xc9)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x46c54e=API_ENDPOINTS['KEYS_DELETE'][_0x272fdf(0xd5)](_0x272fdf(0xb0),this['sessionId']),_0x526440=await this[_0x272fdf(0xc5)]('DELETE',_0x46c54e);if(_0x526440[_0x272fdf(0xd2)])return this[_0x272fdf(0xc3)]=null,this[_0x272fdf(0xc6)]={},{'success':!![],'message':_0x526440['message']};else throw new Error(_0x526440['error']||_0x272fdf(0xcb));}catch(_0xd6e088){throw new Error(_0x272fdf(0xca)+_0xd6e088[_0x272fdf(0xdc)]);}}async[a0_0x480d97(0xdd)](_0x50942e=process[a0_0x480d97(0xe1)]()){const _0x2bd8bd=a0_0x480d97;try{const _0x44f107=await this[_0x2bd8bd(0xb9)]();if(!_0x44f107['success'])throw new Error(_0x2bd8bd(0xd3)+_0x44f107[_0x2bd8bd(0xb7)]);const _0x589007=await this[_0x2bd8bd(0xb1)](_0x50942e);return{'success':!![],'sessionId':_0x589007['sessionId'],'session':_0x589007['session']};}catch(_0x134b77){return{'success':![],'error':_0x134b77['message']};}}async['checkHealth'](){const _0x2bf4fb=a0_0x480d97;try{const _0x341ac6=await this[_0x2bf4fb(0xc5)]('GET',API_ENDPOINTS['HEALTH']);return{'success':!![],'status':_0x341ac6['status'],'version':_0x341ac6[_0x2bf4fb(0xe2)],'timestamp':_0x341ac6[_0x2bf4fb(0xbf)]};}catch(_0x1c06c8){return{'success':![],'error':_0x1c06c8[_0x2bf4fb(0xdc)]};}}async['makeRequest'](_0x59b81a,_0x1f28ec,_0x11eadf=null){const _0x49cf6d=a0_0x480d97;return this[_0x49cf6d(0xb2)]['request'](_0x59b81a,_0x1f28ec,{'body':_0x11eadf});}['getSessionId'](){const _0x59d370=a0_0x480d97;return this[_0x59d370(0xc9)];}['getProjectDir'](){const _0x29be14=a0_0x480d97;return this[_0x29be14(0xd0)];}['isValid'](){return this['sessionId']!==null;}['updateActivity'](){const _0x50c699=a0_0x480d97;this[_0x50c699(0xd6)]=new Date()['toISOString']();}['getSessionInfo'](){const _0x1187b5=a0_0x480d97;return{'sessionId':this[_0x1187b5(0xc9)],'projectDir':this['projectDir'],'createdAt':this['createdAt'],'lastActivity':this['lastActivity'],'hasLoxiaKey':!!this['loxiaApiKey'],'vendorKeysCount':Object[_0x1187b5(0xba)](this[_0x1187b5(0xc6)])[_0x1187b5(0xcd)]};}[a0_0x480d97(0xb8)](){const _0x530e41=a0_0x480d97;this[_0x530e41(0xc9)]=null,this['projectDir']=null,this['createdAt']=null,this[_0x530e41(0xd6)]=null,this['loxiaApiKey']=null,this[_0x530e41(0xc6)]={};}}export default SessionManager;
1
+ const a0_0x17f4e7=a0_0x8291;(function(_0x32c08c,_0x5c60d1){const _0x3e782a=a0_0x8291,_0x7518b5=_0x32c08c();while(!![]){try{const _0x5abc1a=parseInt(_0x3e782a(0x120))/0x1+parseInt(_0x3e782a(0x129))/0x2*(-parseInt(_0x3e782a(0x127))/0x3)+-parseInt(_0x3e782a(0xfc))/0x4*(parseInt(_0x3e782a(0x101))/0x5)+parseInt(_0x3e782a(0x10c))/0x6+-parseInt(_0x3e782a(0xf9))/0x7*(-parseInt(_0x3e782a(0x124))/0x8)+-parseInt(_0x3e782a(0x11a))/0x9*(-parseInt(_0x3e782a(0x11f))/0xa)+-parseInt(_0x3e782a(0xfd))/0xb;if(_0x5abc1a===_0x5c60d1)break;else _0x7518b5['push'](_0x7518b5['shift']());}catch(_0x2ecce0){_0x7518b5['push'](_0x7518b5['shift']());}}}(a0_0x4376,0xe09e1));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';import{ApiClient}from'./apiClient.js';function a0_0x4376(){const _0x3d2261=['Ag9ZDa','u0vtu0LptL9duKvbveu','mte5mtG5me1sDLb2Aq','mtuWndu1oeD4BgngBG','DMvUzg9Ys2v5CW','oNnLC3nPB25jza','s0vzu19hrvq','ntzMDej1Ahi','C2vZC2LVBG','DMvYC2LVBG','nJnOAejuu1e','C2v0qxbPs2v5','mZKYnNjRD2Hpsa','y2XLyxi','sevbtfri','ue9tva','mtG2mJyZy3fWA1LS','yMfZzvvYBa','zxjYB3i','mZy2ntC1mLz3tu5nzW','mtm5mty3mJD0Ewzcsfy','C3vJy2vZCW','DgLTzxn0yw1W','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CW','nu5eA2Lzrq','u2vYDMvYigHLywX0AcbJAgvJAYbMywLSzwq6ia','AgfZtg94AwflzxK','y2HLy2TizwfSDgG','BwfRzvjLCxvLC3q','y3DK','BwvZC2fNzq','ChjVAMvJDerPCG','y3jLyxrLu2vZC2LVBG','BgfZDefJDgL2Axr5','z2v0u2vZC2LVBKLK','nZi4mtKXmLfswLfhEa','z2v0qxbPs2v5u3rHDhvZ','zgvSzxrLqxbPs2v5CW','C3rHDhvZ','s0vzu19trvq','Aw5PDgLHBgL6zq','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CW','revgqvvmvf9it1nu','AxnwywXPza','r0vu','u0vtu0LptL9duKvbvevFrKfjteve','Bg94AwfbCgLlzxK','C2vZC2LVBKLK','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CZOG','mtHOu1bxsKi','u0vtu0LptL9jtLzbteLe','DxbKyxrLqwn0AxzPDhK'];a0_0x4376=function(){return _0x3d2261;};return a0_0x4376();}export class SessionManager{constructor(_0x1f399b=NETWORK[a0_0x17f4e7(0x113)],_0x235840=NETWORK['DEFAULT_PORT']){const _0xcce062=a0_0x17f4e7;this[_0xcce062(0x11d)]=_0x1f399b,this['port']=_0x235840,this[_0xcce062(0xfa)]='http://'+_0x1f399b+':'+_0x235840,this['sessionId']=null,this[_0xcce062(0x108)]=null,this['createdAt']=null,this[_0xcce062(0x10a)]=null,this[_0xcce062(0x117)]=null,this[_0xcce062(0x121)]={},this['apiClient']=new ApiClient(this[_0xcce062(0xfa)],this[_0xcce062(0x117)]);}async[a0_0x17f4e7(0x109)](_0x173209=process[a0_0x17f4e7(0x106)]()){const _0x500435=a0_0x17f4e7;try{const _0x4d2d57=await this[_0x500435(0x105)](_0x500435(0x12c),API_ENDPOINTS[_0x500435(0x11e)],{'projectDir':_0x173209});if(_0x4d2d57['success']&&_0x4d2d57[_0x500435(0x125)])return this['sessionId']=_0x4d2d57[_0x500435(0x125)]['id'],this[_0x500435(0x108)]=_0x173209,this['createdAt']=_0x4d2d57[_0x500435(0x125)]['createdAt'],this['lastActivity']=_0x4d2d57[_0x500435(0x125)][_0x500435(0x10a)],{'success':!![],'sessionId':this['sessionId'],'session':_0x4d2d57['session']};else throw new Error(_0x4d2d57[_0x500435(0xfb)]||ERROR_MESSAGE[_0x500435(0x116)]);}catch(_0xe5beb3){throw new Error(ERROR_MESSAGE[_0x500435(0x116)]+':\x20'+_0xe5beb3[_0x500435(0x107)]);}}async['setApiKeys'](_0x2fe7bf=null,_0x5909c8={}){const _0x57ef40=a0_0x17f4e7;if(!this['sessionId'])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x61d72c=await this[_0x57ef40(0x105)](_0x57ef40(0x12c),API_ENDPOINTS[_0x57ef40(0x110)],{'sessionId':this[_0x57ef40(0x118)],'loxiaApiKey':_0x2fe7bf,'vendorKeys':_0x5909c8});if(_0x61d72c['success'])return this['loxiaApiKey']=_0x2fe7bf,this['vendorKeys']=_0x5909c8,this['apiClient'][_0x57ef40(0x128)](_0x2fe7bf),{'success':!![],'message':_0x61d72c['message'],'hasLoxiaKey':_0x61d72c[_0x57ef40(0x103)],'vendorKeys':_0x61d72c['vendorKeys']};else throw new Error(_0x61d72c[_0x57ef40(0xfb)]||'Failed\x20to\x20set\x20API\x20keys');}catch(_0x74306e){throw new Error('Failed\x20to\x20set\x20API\x20keys:\x20'+_0x74306e[_0x57ef40(0x107)]);}}async[a0_0x17f4e7(0x10d)](){const _0x483510=a0_0x17f4e7;if(!this[_0x483510(0x118)])throw new Error(ERROR_MESSAGE[_0x483510(0x11b)]);try{const _0x125177=API_ENDPOINTS[_0x483510(0x123)]['replace'](_0x483510(0x122),this['sessionId']),_0x3b7558=await this[_0x483510(0x105)]('GET',_0x125177);if(_0x3b7558[_0x483510(0xfe)])return{'success':!![],'hasLoxiaKey':_0x3b7558[_0x483510(0x103)],'vendorKeys':_0x3b7558[_0x483510(0x121)],'updatedAt':_0x3b7558['updatedAt']};else throw new Error(_0x3b7558['error']||_0x483510(0x100));}catch(_0x529b38){throw new Error(_0x483510(0x119)+_0x529b38['message']);}}async[a0_0x17f4e7(0x10e)](){const _0x19b7d0=a0_0x17f4e7;if(!this[_0x19b7d0(0x118)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x9dbcd1=API_ENDPOINTS['KEYS_DELETE']['replace'](':sessionId',this['sessionId']),_0x583d26=await this[_0x19b7d0(0x105)]('DELETE',_0x9dbcd1);if(_0x583d26[_0x19b7d0(0xfe)])return this[_0x19b7d0(0x117)]=null,this['vendorKeys']={},{'success':!![],'message':_0x583d26['message']};else throw new Error(_0x583d26[_0x19b7d0(0xfb)]||_0x19b7d0(0x112));}catch(_0x1f635a){throw new Error('Failed\x20to\x20delete\x20API\x20keys:\x20'+_0x1f635a[_0x19b7d0(0x107)]);}}async[a0_0x17f4e7(0x111)](_0x265d20=process['cwd']()){const _0x2b4172=a0_0x17f4e7;try{const _0x1cd525=await this[_0x2b4172(0x104)]();if(!_0x1cd525['success'])throw new Error(_0x2b4172(0x102)+_0x1cd525['error']);const _0xaec1ea=await this[_0x2b4172(0x109)](_0x265d20);return{'success':!![],'sessionId':_0xaec1ea['sessionId'],'session':_0xaec1ea['session']};}catch(_0x24313f){return{'success':![],'error':_0x24313f['message']};}}async[a0_0x17f4e7(0x104)](){const _0x260e79=a0_0x17f4e7;try{const _0x2b086b=await this[_0x260e79(0x105)](_0x260e79(0x115),API_ENDPOINTS[_0x260e79(0x12b)]);return{'success':!![],'status':_0x2b086b[_0x260e79(0x10f)],'version':_0x2b086b[_0x260e79(0x126)],'timestamp':_0x2b086b[_0x260e79(0xff)]};}catch(_0x3572da){return{'success':![],'error':_0x3572da['message']};}}async['makeRequest'](_0x261027,_0x536352,_0x46469f=null){return this['apiClient']['request'](_0x261027,_0x536352,{'body':_0x46469f});}[a0_0x17f4e7(0x10b)](){const _0x2784ad=a0_0x17f4e7;return this[_0x2784ad(0x118)];}['getProjectDir'](){const _0x5e6da5=a0_0x17f4e7;return this[_0x5e6da5(0x108)];}[a0_0x17f4e7(0x114)](){const _0x18d3d1=a0_0x17f4e7;return this[_0x18d3d1(0x118)]!==null;}[a0_0x17f4e7(0x11c)](){const _0x5b3f4a=a0_0x17f4e7;this[_0x5b3f4a(0x10a)]=new Date()['toISOString']();}['getSessionInfo'](){const _0x563b5e=a0_0x17f4e7;return{'sessionId':this['sessionId'],'projectDir':this['projectDir'],'createdAt':this['createdAt'],'lastActivity':this[_0x563b5e(0x10a)],'hasLoxiaKey':!!this[_0x563b5e(0x117)],'vendorKeysCount':Object['keys'](this[_0x563b5e(0x121)])['length']};}[a0_0x17f4e7(0x12a)](){const _0x3321a0=a0_0x17f4e7;this[_0x3321a0(0x118)]=null,this[_0x3321a0(0x108)]=null,this['createdAt']=null,this[_0x3321a0(0x10a)]=null,this['loxiaApiKey']=null,this[_0x3321a0(0x121)]={};}}function a0_0x8291(_0x291123,_0x18e6b1){_0x291123=_0x291123-0xf9;const _0x437678=a0_0x4376();let _0x82911b=_0x437678[_0x291123];if(a0_0x8291['LOxhwB']===undefined){var _0x532c86=function(_0x7dfc9b){const _0x4e72ac='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1f399b='',_0x235840='';for(let _0x173209=0x0,_0x4d2d57,_0xe5beb3,_0x2fe7bf=0x0;_0xe5beb3=_0x7dfc9b['charAt'](_0x2fe7bf++);~_0xe5beb3&&(_0x4d2d57=_0x173209%0x4?_0x4d2d57*0x40+_0xe5beb3:_0xe5beb3,_0x173209++%0x4)?_0x1f399b+=String['fromCharCode'](0xff&_0x4d2d57>>(-0x2*_0x173209&0x6)):0x0){_0xe5beb3=_0x4e72ac['indexOf'](_0xe5beb3);}for(let _0x5909c8=0x0,_0x61d72c=_0x1f399b['length'];_0x5909c8<_0x61d72c;_0x5909c8++){_0x235840+='%'+('00'+_0x1f399b['charCodeAt'](_0x5909c8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x235840);};a0_0x8291['IzpqDC']=_0x532c86,a0_0x8291['aAkhIl']={},a0_0x8291['LOxhwB']=!![];}const _0x104f3c=_0x437678[0x0],_0x42d612=_0x291123+_0x104f3c,_0x2b9fc=a0_0x8291['aAkhIl'][_0x42d612];return!_0x2b9fc?(_0x82911b=a0_0x8291['IzpqDC'](_0x82911b),a0_0x8291['aAkhIl'][_0x42d612]=_0x82911b):_0x82911b=_0x2b9fc,_0x82911b;}export default SessionManager;
@@ -1 +1 @@
1
- function a0_0x3865(){const _0x140fe5=['AgfUzgXLug9Uz1rPBwvVDxq','zxjYB3i','AgfUzgXLq2XVC2u','BgfZDfbVBMDszwnLAxzLza','C2vUza','Cg9YDa','DhLWzq','z2vUzxjHDgvszxf1zxn0swq','C2v0DxbfDMvUDeHHBMrSzxjZ','nZyYmZy3uev5whvV','C2v0u3rHDgu','AgfUzgXLug9UzW','q2XPzw50igrPC2nVBM5Ly3q','mty2nJy3mufZCNrvEq','mte2ndq2nfPTuuPprq','mK9luNPMzG','q29UBMvJDgLVBIb0Aw1LB3v0','C2HVDwXKuMvJB25Uzwn0','B25Jzq','y2XVC2u','DxjS','Cg9Uz1rPBwvVDxq','AgfUzgXLtwvZC2fNzq','B3bLBG','D3m6lY8','y29UBMvJDa','AgfUzgXLrxjYB3i','Dg9tDhjPBMC','nZa2nZq3mMjHy3PLzG','zgLZy29UBMvJDa','CMvJB25Uzwn0vgLTzxi','mZu5mZCWnxHZrfHHAa','CgfYC2u','zw1PDa','AxndB25Uzwn0zwq','CMvJB25Uzwn0qxr0zw1WDhm','ndaWuKzIB1Dw','C2v0','CMvXlq','uKvdt05orunusu5h','Dw5ZAgLMDa','q09otKvdveve','C2vZC2LVBKLK','C3rHDgu','yMfZzvjLy29UBMvJDerLBgf5','AgfUzgXLt3bLBG','BwvZC2fNzq','revgqvvmvf9it1nu','z2v0','ChvZAa','C3rVCeHLyxj0yMvHDa','ChjVy2vZC01LC3nHz2vrDwv1zq','C2vUzf9LCNjVCG','mtyWmte2v1nUBKLK','ode2m252vxnXzG','qwXYzwfKEsbJB25Uzwn0zwqGB3iGy29UBMvJDgLUzW','t1jdsevtvfjbve9sx1jfuvvfu1q','C3rHCNrizwfYDgjLyxq','y29UBMvJDgvK','C3rYAw5NAwz5','CgLUz0LUDgvYDMfS','CMvXDwvZDeLKq291BNrLCG','AgvHCNrIzwf0x3rPBwvVDxq','CgvUzgLUz1jLCxvLC3rZ','CMvJB25Uzwn0rgvSyxK','y29UBMvJDgLVBL9LCNjVCG','C2vUzfbPBMC','v0vcu09ds0vux1jfq09otKvdvf9nvuXusvbmsuvs','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','BgvUz3rO','zgvSzxrL','y29UBMvJDgLUzW','BwvZC2fNzvf1zxvL','AgfZ','reLtq09otKvdveve'];a0_0x3865=function(){return _0x140fe5;};return a0_0x3865();}function a0_0x3d67(_0x4b869c,_0x42de1c){_0x4b869c=_0x4b869c-0x1c2;const _0x38658f=a0_0x3865();let _0x3d67f4=_0x38658f[_0x4b869c];if(a0_0x3d67['UMeqqL']===undefined){var _0xdbba16=function(_0x579585){const _0x42294f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2bf2da='',_0x312365='';for(let _0x137346=0x0,_0x43b02a,_0x103556,_0x1f9473=0x0;_0x103556=_0x579585['charAt'](_0x1f9473++);~_0x103556&&(_0x43b02a=_0x137346%0x4?_0x43b02a*0x40+_0x103556:_0x103556,_0x137346++%0x4)?_0x2bf2da+=String['fromCharCode'](0xff&_0x43b02a>>(-0x2*_0x137346&0x6)):0x0){_0x103556=_0x42294f['indexOf'](_0x103556);}for(let _0x41c2cc=0x0,_0x537ca5=_0x2bf2da['length'];_0x41c2cc<_0x537ca5;_0x41c2cc++){_0x312365+='%'+('00'+_0x2bf2da['charCodeAt'](_0x41c2cc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x312365);};a0_0x3d67['NrKqLg']=_0xdbba16,a0_0x3d67['VBGvod']={},a0_0x3d67['UMeqqL']=!![];}const _0x4d20e9=_0x38658f[0x0],_0x419d3b=_0x4b869c+_0x4d20e9,_0x5d2368=a0_0x3d67['VBGvod'][_0x419d3b];return!_0x5d2368?(_0x3d67f4=a0_0x3d67['NrKqLg'](_0x3d67f4),a0_0x3d67['VBGvod'][_0x419d3b]=_0x3d67f4):_0x3d67f4=_0x5d2368,_0x3d67f4;}const a0_0x313184=a0_0x3d67;(function(_0x2088f3,_0x40ab97){const _0x2b9749=a0_0x3d67,_0x8af227=_0x2088f3();while(!![]){try{const _0x1f476b=-parseInt(_0x2b9749(0x1f2))/0x1+-parseInt(_0x2b9749(0x1f8))/0x2*(parseInt(_0x2b9749(0x1f6))/0x3)+-parseInt(_0x2b9749(0x1d3))/0x4+parseInt(_0x2b9749(0x208))/0x5+parseInt(_0x2b9749(0x205))/0x6+parseInt(_0x2b9749(0x1f7))/0x7+-parseInt(_0x2b9749(0x1c2))/0x8*(parseInt(_0x2b9749(0x1d4))/0x9);if(_0x1f476b===_0x40ab97)break;else _0x8af227['push'](_0x8af227['shift']());}catch(_0x55df83){_0x8af227['push'](_0x8af227['shift']());}}}(a0_0x3865,0xa10f6));import a0_0x2bf2da from'ws';import{EventEmitter}from'events';import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';export class WebSocketManager extends EventEmitter{constructor(_0x312365=NETWORK[a0_0x313184(0x1cd)],_0x137346=NETWORK['DEFAULT_PORT'],_0x43b02a={}){const _0x417c75=a0_0x313184;super(),this['host']=_0x312365,this[_0x417c75(0x1ee)]=_0x137346,this['url']=_0x417c75(0x201)+_0x312365+':'+_0x137346,this['ws']=null,this['state']=CONNECTION_STATE['DISCONNECTED'],this['sessionId']=null,this[_0x417c75(0x20c)]=0x0,this[_0x417c75(0x1de)]=_0x43b02a['reconnectDelay']??TIMING[_0x417c75(0x1e2)],this[_0x417c75(0x1ca)]=this['reconnectDelay'],this[_0x417c75(0x207)]=null,this['shouldReconnect']=!![],this['heartbeatInterval']=_0x43b02a['heartbeatInterval']??TIMING['WEBSOCKET_PING_INTERVAL'],this[_0x417c75(0x1da)]=null,this[_0x417c75(0x1fe)]=null,this[_0x417c75(0x1ec)]=null,this[_0x417c75(0x1e6)]=[],this['requestIdCounter']=0x0,this['pendingRequests']=new Map();}async['connect'](){const _0x223fe9=a0_0x313184;if(this['state']===CONNECTION_STATE['CONNECTED']||this['state']===CONNECTION_STATE['CONNECTING'])return{'success':![],'error':_0x223fe9(0x1d5)};this['setState'](CONNECTION_STATE['CONNECTING']),this['emit'](_0x223fe9(0x1e5));try{return this['ws']=new a0_0x2bf2da(this[_0x223fe9(0x1fd)]),this[_0x223fe9(0x1f1)](),await this['waitForConnection'](),{'success':!![]};}catch(_0x103556){return this['handleConnectionError'](_0x103556),{'success':![],'error':_0x103556[_0x223fe9(0x1cc)]};}}['waitForConnection'](){return new Promise((_0x1f9473,_0x41c2cc)=>{const _0x121f6e=a0_0x3d67,_0x537ca5=setTimeout(()=>{const _0x55b27c=a0_0x3d67;_0x41c2cc(new Error(_0x55b27c(0x1f9)));},TIMING['WEBSOCKET_CONNECT_TIMEOUT']);this['ws'][_0x121f6e(0x1fb)]('open',()=>{clearTimeout(_0x537ca5),_0x1f9473();}),this['ws']['once']('error',_0x206782=>{clearTimeout(_0x537ca5),_0x41c2cc(_0x206782);});});}['setupEventHandlers'](){const _0x3efd4a=a0_0x313184;this['ws']['on'](_0x3efd4a(0x200),()=>this['handleOpen']()),this['ws']['on'](_0x3efd4a(0x1cc),_0x4bb2e2=>this['handleMessage'](_0x4bb2e2)),this['ws']['on'](_0x3efd4a(0x1fc),(_0x50bfd4,_0x5995af)=>this[_0x3efd4a(0x1eb)](_0x50bfd4,_0x5995af)),this['ws']['on']('error',_0x44433c=>this[_0x3efd4a(0x203)](_0x44433c));}[a0_0x313184(0x1cb)](){const _0x1c22ea=a0_0x313184;this['setState'](CONNECTION_STATE['CONNECTED']),this['reconnectAttempts']=0x0,this[_0x1c22ea(0x1de)]=this[_0x1c22ea(0x1ca)],this[_0x1c22ea(0x20a)](_0x1c22ea(0x1d8)),this['startHeartbeat'](),this[_0x1c22ea(0x1d1)]();}[a0_0x313184(0x1ff)](_0x39900c){const _0xb6f4f=a0_0x313184;try{const _0x54cf38=JSON[_0xb6f4f(0x209)](_0x39900c[_0xb6f4f(0x204)]());if(_0x54cf38[_0xb6f4f(0x1ef)]===WS_MESSAGE_TYPE['PONG']){this['handlePong']();return;}if(_0x54cf38['type']===WS_MESSAGE_TYPE[_0xb6f4f(0x1c7)]){this[_0xb6f4f(0x20a)]('welcome',_0x54cf38);return;}if(_0x54cf38['type']===WS_MESSAGE_TYPE['SESSION_JOINED']){this[_0xb6f4f(0x1c8)]=_0x54cf38['sessionId'],this['emit']('session_joined',_0x54cf38);return;}if(_0x54cf38[_0xb6f4f(0x1ef)]===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this['handleOrchestratorResponse'](_0x54cf38);return;}this['emit'](_0xb6f4f(0x1cc),_0x54cf38),_0x54cf38['type']&&this['emit'](_0x54cf38['type'],_0x54cf38);}catch(_0xf3bde2){this[_0xb6f4f(0x20a)]('parse_error',{'error':_0xf3bde2,'data':_0x39900c});}}['handleClose'](_0x1dd792,_0x59e582){const _0x37f8a3=a0_0x313184;this['cleanup']();const _0x56a542=_0x59e582[_0x37f8a3(0x204)]()||'Unknown\x20reason';this['emit']('disconnected',{'code':_0x1dd792,'reason':_0x56a542}),this[_0x37f8a3(0x1fa)]&&_0x1dd792!==0x3e8?this['scheduleReconnect']():this[_0x37f8a3(0x1f3)](CONNECTION_STATE[_0x37f8a3(0x1e8)]);}[a0_0x313184(0x203)](_0x258eb3){const _0x281e4f=a0_0x313184;this['emit'](_0x281e4f(0x1ea),_0x258eb3);}['handleConnectionError'](_0x50f9a1){const _0x3c90e3=a0_0x313184;this['setState'](CONNECTION_STATE['ERROR']),this[_0x3c90e3(0x20a)](_0x3c90e3(0x1df),_0x50f9a1),this['shouldReconnect']&&this['scheduleReconnect']();}['scheduleReconnect'](){const _0x3b28de=a0_0x313184;if(this[_0x3b28de(0x207)])return;this['setState'](CONNECTION_STATE[_0x3b28de(0x1c5)]),this[_0x3b28de(0x20c)]++;const _0x28d65c=Math['min'](this[_0x3b28de(0x1de)]*Math['pow'](TIMING[_0x3b28de(0x1e1)],this['reconnectAttempts']-0x1),TIMING['WEBSOCKET_RECONNECT_MAX_DELAY']);this['emit']('reconnecting',{'attempt':this[_0x3b28de(0x20c)],'delay':_0x28d65c}),this[_0x3b28de(0x207)]=setTimeout(()=>{const _0x7db70=_0x3b28de;this[_0x7db70(0x207)]=null,this[_0x7db70(0x202)]();},_0x28d65c);}[a0_0x313184(0x1d7)](){const _0x180dc2=a0_0x313184;this[_0x180dc2(0x1d0)](),this[_0x180dc2(0x1da)]=setInterval(()=>{const _0x43135f=_0x180dc2;this[_0x43135f(0x1c9)]===CONNECTION_STATE[_0x43135f(0x1c7)]&&this[_0x43135f(0x1e0)]();},this['heartbeatInterval']);}[a0_0x313184(0x1d0)](){const _0x20818d=a0_0x313184;this[_0x20818d(0x1da)]&&(clearInterval(this['pingInterval']),this[_0x20818d(0x1da)]=null),this['pongTimeout']&&(clearTimeout(this[_0x20818d(0x1fe)]),this[_0x20818d(0x1fe)]=null);}[a0_0x313184(0x1e0)](){const _0x468407=a0_0x313184;if(this[_0x468407(0x1c9)]!==CONNECTION_STATE['CONNECTED'])return;try{this[_0x468407(0x1ed)]({'type':WS_MESSAGE_TYPE['PING']}),this[_0x468407(0x1fe)]=setTimeout(()=>{const _0x1c10ea=_0x468407;this[_0x1c10ea(0x1e9)]();},TIMING['WEBSOCKET_PONG_TIMEOUT']);}catch(_0x3a708b){this[_0x468407(0x20a)]('ping_error',_0x3a708b);}}[a0_0x313184(0x1f4)](){const _0x553c56=a0_0x313184;this[_0x553c56(0x1ec)]=Date['now'](),this['pongTimeout']&&(clearTimeout(this['pongTimeout']),this['pongTimeout']=null);}[a0_0x313184(0x1e9)](){const _0x3fc91f=a0_0x313184;this['emit'](_0x3fc91f(0x1dc)),this[_0x3fc91f(0x206)](),this['shouldReconnect']&&this['scheduleReconnect']();}['joinSession'](_0xd6a78d){const _0x3724f8=a0_0x313184;this[_0x3724f8(0x1c8)]=_0xd6a78d,this[_0x3724f8(0x1ed)]({'type':WS_MESSAGE_TYPE['JOIN_SESSION'],'sessionId':_0xd6a78d});}['sendOrchestratorRequest'](_0xa144c4,_0x2d964e,_0x22af27){const _0x26002d=a0_0x313184,_0x4a92e4=this[_0x26002d(0x1f0)](),_0x3d8e71={'type':WS_MESSAGE_TYPE[_0x26002d(0x1d6)],'requestId':_0x4a92e4,'action':_0xa144c4,'payload':_0x2d964e,'projectDir':_0x22af27};return new Promise((_0x2b29b4,_0x3d32e3)=>{const _0x2ccf08=_0x26002d;this[_0x2ccf08(0x1dd)][_0x2ccf08(0x1c3)](_0x4a92e4,{'resolve':_0x2b29b4,'reject':_0x3d32e3,'timestamp':Date['now']()});try{this['send'](_0x3d8e71);}catch(_0x4ca524){this[_0x2ccf08(0x1dd)][_0x2ccf08(0x1e4)](_0x4a92e4),_0x3d32e3(_0x4ca524);}setTimeout(()=>{const _0x2a41fd=_0x2ccf08;this[_0x2a41fd(0x1dd)]['has'](_0x4a92e4)&&(this[_0x2a41fd(0x1dd)]['delete'](_0x4a92e4),_0x3d32e3(new Error('Request\x20timeout')));},TIMING['HTTP_TIMEOUT']);});}['handleOrchestratorResponse'](_0x2bb782){const _0x2bf4bf=a0_0x313184,{requestId:_0x45372e,response:_0x36a5dd,error:_0x11291b}=_0x2bb782;if(this[_0x2bf4bf(0x1dd)][_0x2bf4bf(0x1e7)](_0x45372e)){const {resolve:_0x24d8ce,reject:_0x47e9b3}=this[_0x2bf4bf(0x1dd)][_0x2bf4bf(0x1ce)](_0x45372e);this[_0x2bf4bf(0x1dd)][_0x2bf4bf(0x1e4)](_0x45372e),_0x11291b?_0x47e9b3(new Error(_0x11291b)):_0x24d8ce(_0x36a5dd);}}[a0_0x313184(0x1ed)](_0x357afc){const _0x429bda=a0_0x313184;if(this['state']!==CONNECTION_STATE[_0x429bda(0x1c7)]){this['messageQueue'][_0x429bda(0x1cf)](_0x357afc);return;}try{this['ws']['send'](JSON[_0x429bda(0x1d9)](_0x357afc));}catch(_0x4597cf){this['emit'](_0x429bda(0x1d2),_0x4597cf);throw _0x4597cf;}}['processMessageQueue'](){const _0xa1f230=a0_0x313184;while(this['messageQueue'][_0xa1f230(0x1e3)]>0x0&&this[_0xa1f230(0x1c9)]===CONNECTION_STATE['CONNECTED']){const _0x2fd9e0=this[_0xa1f230(0x1e6)]['shift']();try{this['ws'][_0xa1f230(0x1ed)](JSON['stringify'](_0x2fd9e0));}catch(_0xe4316d){this[_0xa1f230(0x20a)]('queue_process_error',_0xe4316d),this[_0xa1f230(0x1e6)][_0xa1f230(0x1c6)](_0x2fd9e0);break;}}}[a0_0x313184(0x206)](){const _0x45e8ea=a0_0x313184;this['shouldReconnect']=![],this['cleanup']();if(this['ws']){try{this['ws'][_0x45e8ea(0x1fc)](0x3e8,_0x45e8ea(0x1f5));}catch(_0x53fbbb){}this['ws']=null;}this['setState'](CONNECTION_STATE[_0x45e8ea(0x1e8)]);}['cleanup'](){const _0x18790d=a0_0x313184;this['stopHeartbeat'](),this['reconnectTimer']&&(clearTimeout(this['reconnectTimer']),this[_0x18790d(0x207)]=null),this['ws']&&this['ws']['removeAllListeners']();}[a0_0x313184(0x1f3)](_0x13cc94){const _0x5bff4f=a0_0x313184,_0x5dbb6d=this[_0x5bff4f(0x1c9)];this['state']=_0x13cc94,_0x5dbb6d!==_0x13cc94&&this[_0x5bff4f(0x20a)]('state_change',{'oldState':_0x5dbb6d,'newState':_0x13cc94});}['generateRequestId'](){const _0x302454=a0_0x313184;return this[_0x302454(0x1db)]++,_0x302454(0x1c4)+Date['now']()+'-'+this['requestIdCounter'];}['getState'](){return this['state'];}[a0_0x313184(0x20b)](){return this['state']===CONNECTION_STATE['CONNECTED'];}['getSessionId'](){const _0x27fc6b=a0_0x313184;return this[_0x27fc6b(0x1c8)];}['getStats'](){const _0x3e3e12=a0_0x313184;return{'state':this[_0x3e3e12(0x1c9)],'sessionId':this[_0x3e3e12(0x1c8)],'reconnectAttempts':this[_0x3e3e12(0x20c)],'queuedMessages':this[_0x3e3e12(0x1e6)]['length'],'pendingRequests':this['pendingRequests']['size'],'lastPongReceived':this[_0x3e3e12(0x1ec)]};}}export default WebSocketManager;
1
+ const a0_0x7dfa8f=a0_0xf1b3;(function(_0x209270,_0x2b39c1){const _0x593200=a0_0xf1b3,_0x1c521a=_0x209270();while(!![]){try{const _0x4baad9=parseInt(_0x593200(0x19c))/0x1*(parseInt(_0x593200(0x1a0))/0x2)+-parseInt(_0x593200(0x18a))/0x3*(parseInt(_0x593200(0x177))/0x4)+parseInt(_0x593200(0x19f))/0x5+-parseInt(_0x593200(0x16c))/0x6*(parseInt(_0x593200(0x188))/0x7)+parseInt(_0x593200(0x182))/0x8+-parseInt(_0x593200(0x19e))/0x9+parseInt(_0x593200(0x168))/0xa;if(_0x4baad9===_0x2b39c1)break;else _0x1c521a['push'](_0x1c521a['shift']());}catch(_0x183269){_0x1c521a['push'](_0x1c521a['shift']());}}}(a0_0x25de,0x5f24d));import a0_0x4feb85 from'ws';import{EventEmitter}from'events';function a0_0xf1b3(_0x230d21,_0x2092a4){_0x230d21=_0x230d21-0x15a;const _0x25def6=a0_0x25de();let _0xf1b30d=_0x25def6[_0x230d21];if(a0_0xf1b3['KMQruu']===undefined){var _0x148584=function(_0xc14274){const _0x16f808='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4feb85='',_0x50dd1c='';for(let _0xa9b099=0x0,_0x4eb535,_0x15418b,_0x1ddf1e=0x0;_0x15418b=_0xc14274['charAt'](_0x1ddf1e++);~_0x15418b&&(_0x4eb535=_0xa9b099%0x4?_0x4eb535*0x40+_0x15418b:_0x15418b,_0xa9b099++%0x4)?_0x4feb85+=String['fromCharCode'](0xff&_0x4eb535>>(-0x2*_0xa9b099&0x6)):0x0){_0x15418b=_0x16f808['indexOf'](_0x15418b);}for(let _0x5d6cc0=0x0,_0xf60f72=_0x4feb85['length'];_0x5d6cc0<_0xf60f72;_0x5d6cc0++){_0x50dd1c+='%'+('00'+_0x4feb85['charCodeAt'](_0x5d6cc0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x50dd1c);};a0_0xf1b3['fGXRGh']=_0x148584,a0_0xf1b3['JoFJUO']={},a0_0xf1b3['KMQruu']=!![];}const _0x24af58=_0x25def6[0x0],_0x4098ab=_0x230d21+_0x24af58,_0x2b81c9=a0_0xf1b3['JoFJUO'][_0x4098ab];return!_0x2b81c9?(_0xf1b30d=a0_0xf1b3['fGXRGh'](_0xf1b30d),a0_0xf1b3['JoFJUO'][_0x4098ab]=_0xf1b30d):_0xf1b30d=_0x2b81c9,_0xf1b30d;}import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';function a0_0x25de(){const _0x237469=['nZu5mZa0thH2zNfT','DhLWzq','AgfZ','zw1PDa','zgLZy29UBMvJDa','rvjst1i','odu0t0Tvq0X4','C2v0DxbfDMvUDeHHBMrSzxjZ','m3rPy3DcDG','C2L6zq','C2v0','q29UBMvJDgLVBIb0Aw1LB3v0','B25Jzq','yMfZzvjLy29UBMvJDerLBgf5','AgfUzgXLt3bLBG','q09otKvdveve','z2v0u2vZC2LVBKLK','vw5RBM93BIbYzwfZB24','C3rVCeHLyxj0yMvHDa','AgfUzgXLtwvZC2fNzq','C2v0u3rHDgu','BgvUz3rO','reLtq09otKvdveve','zxjYB3i','CxvLDwvFChjVy2vZC19LCNjVCG','C3rHDgu','mxntDwLrCG','AgfUzgXLq29UBMvJDgLVBKvYCM9Y','nJKZnda3n01WChnXAq','mJK2mJK1nxf5uK5TtW','mteWmZiYngjhD3LwBW','AgfUzgXLrxjYB3i','y29UBMvJDgLVBL9LCNjVCG','ueLorW','Cg9Uz1rPBwvVDxq','C3rYAw5NAwz5','y29UBMvJDa','C2nOzwr1BgvszwnVBM5Ly3q','Dw5ZAgLMDa','AgvHCNrIzwf0sw50zxj2ywW','BwvZC2fNzvf1zxvL','BwLU','CMvJB25Uzwn0qxr0zw1WDhm','BwvZC2fNzq','C2vUza','qwXYzwfKEsbJB25Uzwn0zwqGB3iGy29UBMvJDgLUzW','CgLUz0LUDgvYDMfS','CgvUzgLUz1jLCxvLC3rZ','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','AgfUzgXLug9UzW','CgfYC2vFzxjYB3i','otiZodCZmefzCMLcyq','D3m6lY8','C2vUzfbPBMC','ChvZAa','mZuXmdb4zfHkAeS','Dg9tDhjPBMC','C2vZC2LVBKLK','y2XLyw51Ca','C2HVDwXKuMvJB25Uzwn0','Cg9YDa','BM93','CMvXlq','z2v0','z2vUzxjHDgvszxf1zxn0swq','CgLUz19LCNjVCG','mte1nJuWoenkz2zZrW','CMvJB25Uzwn0vgLTzxi','D2fPDezVCKnVBM5Ly3rPB24','BgfZDfbVBMDszwnLAxzLza','CMvXDwvZDeLKq291BNrLCG','y29UBMvJDgvK','ChjVy2vZC01LC3nHz2vrDwv1zq','sfruuf9usu1ft1vu','zgvSzxrL','v0vcu09ds0vux1jfq09otKvdvf9nvuXusvbmsuvs','CMvJB25Uzwn0rgvSyxK'];a0_0x25de=function(){return _0x237469;};return a0_0x25de();}export class WebSocketManager extends EventEmitter{constructor(_0x50dd1c=NETWORK['DEFAULT_HOST'],_0xa9b099=NETWORK['DEFAULT_PORT'],_0x4eb535={}){const _0x5e95c2=a0_0xf1b3;super(),this['host']=_0x50dd1c,this[_0x5e95c2(0x171)]=_0xa9b099,this['url']=_0x5e95c2(0x169)+_0x50dd1c+':'+_0xa9b099,this['ws']=null,this[_0x5e95c2(0x19b)]=CONNECTION_STATE['DISCONNECTED'],this[_0x5e95c2(0x16e)]=null,this['reconnectAttempts']=0x0,this['reconnectDelay']=_0x4eb535['reconnectDelay']??TIMING[_0x5e95c2(0x165)],this[_0x5e95c2(0x18f)]=this[_0x5e95c2(0x181)],this[_0x5e95c2(0x178)]=null,this['shouldReconnect']=!![],this['heartbeatInterval']=_0x4eb535[_0x5e95c2(0x15c)]??TIMING['WEBSOCKET_PING_INTERVAL'],this[_0x5e95c2(0x163)]=null,this[_0x5e95c2(0x1a4)]=null,this[_0x5e95c2(0x17a)]=null,this['messageQueue']=[],this[_0x5e95c2(0x17b)]=0x0,this['pendingRequests']=new Map();}async['connect'](){const _0x25d05e=a0_0xf1b3;if(this['state']===CONNECTION_STATE[_0x25d05e(0x191)]||this['state']===CONNECTION_STATE['CONNECTING'])return{'success':![],'error':_0x25d05e(0x162)};this['setState'](CONNECTION_STATE['CONNECTING']),this['emit']('connecting');try{return this['ws']=new a0_0x4feb85(this['url']),this[_0x25d05e(0x189)](),await this['waitForConnection'](),{'success':!![]};}catch(_0x15418b){return this[_0x25d05e(0x19d)](_0x15418b),{'success':![],'error':_0x15418b[_0x25d05e(0x160)]};}}[a0_0x7dfa8f(0x179)](){return new Promise((_0x1ddf1e,_0x5d6cc0)=>{const _0x3c7cd6=a0_0xf1b3,_0xf60f72=setTimeout(()=>{const _0x2c549c=a0_0xf1b3;_0x5d6cc0(new Error(_0x2c549c(0x18d)));},TIMING['WEBSOCKET_CONNECT_TIMEOUT']);this['ws']['once']('open',()=>{clearTimeout(_0xf60f72),_0x1ddf1e();}),this['ws'][_0x3c7cd6(0x18e)](_0x3c7cd6(0x199),_0x476bae=>{clearTimeout(_0xf60f72),_0x5d6cc0(_0x476bae);});});}['setupEventHandlers'](){const _0x275bd8=a0_0x7dfa8f;this['ws']['on']('open',()=>this[_0x275bd8(0x190)]()),this['ws']['on']('message',_0x59bc69=>this['handleMessage'](_0x59bc69)),this['ws']['on']('close',(_0x290314,_0x50fa81)=>this['handleClose'](_0x290314,_0x50fa81)),this['ws']['on']('error',_0x231da2=>this['handleError'](_0x231da2));}['handleOpen'](){const _0x1e0e82=a0_0x7dfa8f;this['setState'](CONNECTION_STATE[_0x1e0e82(0x191)]),this[_0x1e0e82(0x15f)]=0x0,this['reconnectDelay']=this['baseReconnectDelay'],this[_0x1e0e82(0x185)](_0x1e0e82(0x17c)),this['startHeartbeat'](),this['processMessageQueue']();}[a0_0x7dfa8f(0x195)](_0x2a79d2){const _0x5072f5=a0_0x7dfa8f;try{const _0x2adf74=JSON['parse'](_0x2a79d2[_0x5072f5(0x16d)]());if(_0x2adf74['type']===WS_MESSAGE_TYPE['PONG']){this['handlePong']();return;}if(_0x2adf74[_0x5072f5(0x183)]===WS_MESSAGE_TYPE[_0x5072f5(0x191)]){this[_0x5072f5(0x185)]('welcome',_0x2adf74);return;}if(_0x2adf74['type']===WS_MESSAGE_TYPE['SESSION_JOINED']){this['sessionId']=_0x2adf74['sessionId'],this['emit']('session_joined',_0x2adf74);return;}if(_0x2adf74['type']===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this['handleOrchestratorResponse'](_0x2adf74);return;}this[_0x5072f5(0x185)](_0x5072f5(0x160),_0x2adf74),_0x2adf74['type']&&this['emit'](_0x2adf74['type'],_0x2adf74);}catch(_0x9dca98){this['emit'](_0x5072f5(0x167),{'error':_0x9dca98,'data':_0x2a79d2});}}['handleClose'](_0x46a56d,_0x43591c){const _0x4d7eab=a0_0x7dfa8f;this['cleanup']();const _0x3e0c80=_0x43591c['toString']()||_0x4d7eab(0x193);this['emit']('disconnected',{'code':_0x46a56d,'reason':_0x3e0c80}),this[_0x4d7eab(0x170)]&&_0x46a56d!==0x3e8?this[_0x4d7eab(0x15a)]():this['setState'](CONNECTION_STATE[_0x4d7eab(0x198)]);}[a0_0x7dfa8f(0x1a1)](_0x49f5e0){const _0x313f11=a0_0x7dfa8f;this['emit'](_0x313f11(0x199),_0x49f5e0);}[a0_0x7dfa8f(0x19d)](_0x2d79d6){const _0x1fa228=a0_0x7dfa8f;this['setState'](CONNECTION_STATE[_0x1fa228(0x187)]),this['emit'](_0x1fa228(0x1a2),_0x2d79d6),this['shouldReconnect']&&this['scheduleReconnect']();}[a0_0x7dfa8f(0x15a)](){const _0x5ea0ae=a0_0x7dfa8f;if(this[_0x5ea0ae(0x178)])return;this[_0x5ea0ae(0x196)](CONNECTION_STATE['RECONNECTING']),this['reconnectAttempts']++;const _0x599004=Math[_0x5ea0ae(0x15e)](this[_0x5ea0ae(0x181)]*Math['pow'](TIMING[_0x5ea0ae(0x180)],this['reconnectAttempts']-0x1),TIMING['WEBSOCKET_RECONNECT_MAX_DELAY']);this[_0x5ea0ae(0x185)]('reconnecting',{'attempt':this['reconnectAttempts'],'delay':_0x599004}),this['reconnectTimer']=setTimeout(()=>{const _0x2b05d7=_0x5ea0ae;this[_0x2b05d7(0x178)]=null,this[_0x2b05d7(0x1a6)]();},_0x599004);}['startHeartbeat'](){const _0x11944d=a0_0x7dfa8f;this[_0x11944d(0x194)](),this[_0x11944d(0x163)]=setInterval(()=>{const _0x3c27f1=_0x11944d;this['state']===CONNECTION_STATE[_0x3c27f1(0x191)]&&this[_0x3c27f1(0x16a)]();},this['heartbeatInterval']);}['stopHeartbeat'](){const _0x155eb6=a0_0x7dfa8f;this[_0x155eb6(0x163)]&&(clearInterval(this['pingInterval']),this[_0x155eb6(0x163)]=null),this['pongTimeout']&&(clearTimeout(this[_0x155eb6(0x1a4)]),this['pongTimeout']=null);}[a0_0x7dfa8f(0x16a)](){const _0xbf3b86=a0_0x7dfa8f;if(this[_0xbf3b86(0x19b)]!==CONNECTION_STATE['CONNECTED'])return;try{this[_0xbf3b86(0x161)]({'type':WS_MESSAGE_TYPE[_0xbf3b86(0x1a3)]}),this['pongTimeout']=setTimeout(()=>{this['handlePongTimeout']();},TIMING['WEBSOCKET_PONG_TIMEOUT']);}catch(_0x1adcdf){this[_0xbf3b86(0x185)](_0xbf3b86(0x176),_0x1adcdf);}}[a0_0x7dfa8f(0x166)](){const _0x4d3c87=a0_0x7dfa8f;this[_0x4d3c87(0x17a)]=Date['now'](),this['pongTimeout']&&(clearTimeout(this['pongTimeout']),this[_0x4d3c87(0x1a4)]=null);}['handlePongTimeout'](){const _0x497f6f=a0_0x7dfa8f;this[_0x497f6f(0x185)]('heartbeat_timeout'),this[_0x497f6f(0x186)](),this[_0x497f6f(0x170)]&&this['scheduleReconnect']();}['joinSession'](_0x208dc1){this['sessionId']=_0x208dc1,this['send']({'type':WS_MESSAGE_TYPE['JOIN_SESSION'],'sessionId':_0x208dc1});}['sendOrchestratorRequest'](_0x35e110,_0x27050c,_0x171635){const _0x4f9400=a0_0x7dfa8f,_0x59c6ac=this[_0x4f9400(0x175)](),_0x520a38={'type':WS_MESSAGE_TYPE['ORCHESTRATOR_REQUEST'],'requestId':_0x59c6ac,'action':_0x35e110,'payload':_0x27050c,'projectDir':_0x171635};return new Promise((_0x39e0bd,_0x86a70)=>{const _0xcb66c7=_0x4f9400;this['pendingRequests'][_0xcb66c7(0x18c)](_0x59c6ac,{'resolve':_0x39e0bd,'reject':_0x86a70,'timestamp':Date['now']()});try{this['send'](_0x520a38);}catch(_0xa7a578){this['pendingRequests']['delete'](_0x59c6ac),_0x86a70(_0xa7a578);}setTimeout(()=>{const _0x2a94cb=_0xcb66c7;this['pendingRequests'][_0x2a94cb(0x184)](_0x59c6ac)&&(this['pendingRequests'][_0x2a94cb(0x17f)](_0x59c6ac),_0x86a70(new Error('Request\x20timeout')));},TIMING[_0xcb66c7(0x17e)]);});}['handleOrchestratorResponse'](_0x4926b0){const _0x306a84=a0_0x7dfa8f,{requestId:_0x5bdd1c,response:_0x28edb3,error:_0x47f3e6}=_0x4926b0;if(this[_0x306a84(0x164)][_0x306a84(0x184)](_0x5bdd1c)){const {resolve:_0x219230,reject:_0x176474}=this[_0x306a84(0x164)][_0x306a84(0x174)](_0x5bdd1c);this[_0x306a84(0x164)][_0x306a84(0x17f)](_0x5bdd1c),_0x47f3e6?_0x176474(new Error(_0x47f3e6)):_0x219230(_0x28edb3);}}[a0_0x7dfa8f(0x161)](_0x33e387){const _0x10cf25=a0_0x7dfa8f;if(this[_0x10cf25(0x19b)]!==CONNECTION_STATE[_0x10cf25(0x191)]){this[_0x10cf25(0x15d)][_0x10cf25(0x16b)](_0x33e387);return;}try{this['ws']['send'](JSON[_0x10cf25(0x1a5)](_0x33e387));}catch(_0x21e8f9){this[_0x10cf25(0x185)]('send_error',_0x21e8f9);throw _0x21e8f9;}}[a0_0x7dfa8f(0x17d)](){const _0x220304=a0_0x7dfa8f;while(this['messageQueue'][_0x220304(0x197)]>0x0&&this['state']===CONNECTION_STATE['CONNECTED']){const _0x4240ec=this['messageQueue']['shift']();try{this['ws']['send'](JSON[_0x220304(0x1a5)](_0x4240ec));}catch(_0x399627){this['emit'](_0x220304(0x19a),_0x399627),this['messageQueue'][_0x220304(0x15b)](_0x4240ec);break;}}}['disconnect'](){const _0xc1c762=a0_0x7dfa8f;this[_0xc1c762(0x170)]=![],this[_0xc1c762(0x16f)]();if(this['ws']){try{this['ws']['close'](0x3e8,'Client\x20disconnect');}catch(_0x3b6ef6){}this['ws']=null;}this[_0xc1c762(0x196)](CONNECTION_STATE[_0xc1c762(0x198)]);}[a0_0x7dfa8f(0x16f)](){const _0x45596b=a0_0x7dfa8f;this['stopHeartbeat'](),this[_0x45596b(0x178)]&&(clearTimeout(this['reconnectTimer']),this[_0x45596b(0x178)]=null),this['ws']&&this['ws']['removeAllListeners']();}['setState'](_0x397f9f){const _0x3ad050=a0_0x7dfa8f,_0xc3e4f8=this['state'];this['state']=_0x397f9f,_0xc3e4f8!==_0x397f9f&&this[_0x3ad050(0x185)]('state_change',{'oldState':_0xc3e4f8,'newState':_0x397f9f});}[a0_0x7dfa8f(0x175)](){const _0x2aaa64=a0_0x7dfa8f;return this['requestIdCounter']++,_0x2aaa64(0x173)+Date[_0x2aaa64(0x172)]()+'-'+this[_0x2aaa64(0x17b)];}['getState'](){return this['state'];}['isConnected'](){const _0x114152=a0_0x7dfa8f;return this[_0x114152(0x19b)]===CONNECTION_STATE['CONNECTED'];}[a0_0x7dfa8f(0x192)](){const _0x3333da=a0_0x7dfa8f;return this[_0x3333da(0x16e)];}['getStats'](){const _0x32dea0=a0_0x7dfa8f;return{'state':this[_0x32dea0(0x19b)],'sessionId':this['sessionId'],'reconnectAttempts':this['reconnectAttempts'],'queuedMessages':this['messageQueue'][_0x32dea0(0x197)],'pendingRequests':this['pendingRequests'][_0x32dea0(0x18b)],'lastPongReceived':this[_0x32dea0(0x17a)]};}}export default WebSocketManager;