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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) 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 -1
  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 -0
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/{index-C5X7qBNF.js → index-DXN850Y2.js} +69 -65
  119. package/web-ui/build/static/index-an-YRzUX.css +1 -0
  120. package/web-ui/build/static/index-g2UFuTwG.css +0 -1
@@ -1 +1 @@
1
- const a0_0x5ec0a8=a0_0x2687;(function(_0x23165f,_0x1c9b52){const _0x40334a=a0_0x2687,_0x5c47a8=_0x23165f();while(!![]){try{const _0x2e9781=-parseInt(_0x40334a(0x103))/0x1*(parseInt(_0x40334a(0xe7))/0x2)+parseInt(_0x40334a(0xcd))/0x3*(-parseInt(_0x40334a(0xeb))/0x4)+-parseInt(_0x40334a(0xf1))/0x5*(parseInt(_0x40334a(0x106))/0x6)+-parseInt(_0x40334a(0xe2))/0x7*(parseInt(_0x40334a(0xea))/0x8)+parseInt(_0x40334a(0xd9))/0x9*(parseInt(_0x40334a(0xcb))/0xa)+parseInt(_0x40334a(0xf8))/0xb*(parseInt(_0x40334a(0x102))/0xc)+parseInt(_0x40334a(0xbd))/0xd;if(_0x2e9781===_0x1c9b52)break;else _0x5c47a8['push'](_0x5c47a8['shift']());}catch(_0x2dfa8a){_0x5c47a8['push'](_0x5c47a8['shift']());}}}(a0_0x1249,0x60755));function a0_0x2687(_0x1c1a3b,_0x2d6df5){_0x1c1a3b=_0x1c1a3b-0xbb;const _0x12492b=a0_0x1249();let _0x268703=_0x12492b[_0x1c1a3b];if(a0_0x2687['wJQJun']===undefined){var _0x5b05c5=function(_0x2f72d1){const _0x151fe3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x529120='',_0x59336d='';for(let _0x4951d4=0x0,_0x22e180,_0x169a48,_0x4a65b2=0x0;_0x169a48=_0x2f72d1['charAt'](_0x4a65b2++);~_0x169a48&&(_0x22e180=_0x4951d4%0x4?_0x22e180*0x40+_0x169a48:_0x169a48,_0x4951d4++%0x4)?_0x529120+=String['fromCharCode'](0xff&_0x22e180>>(-0x2*_0x4951d4&0x6)):0x0){_0x169a48=_0x151fe3['indexOf'](_0x169a48);}for(let _0x19d782=0x0,_0x2736dd=_0x529120['length'];_0x19d782<_0x2736dd;_0x19d782++){_0x59336d+='%'+('00'+_0x529120['charCodeAt'](_0x19d782)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x59336d);};a0_0x2687['VjvfaY']=_0x5b05c5,a0_0x2687['BDgzvb']={},a0_0x2687['wJQJun']=!![];}const _0x158c4f=_0x12492b[0x0],_0x1e7667=_0x1c1a3b+_0x158c4f,_0x272dd5=a0_0x2687['BDgzvb'][_0x1e7667];return!_0x272dd5?(_0x268703=a0_0x2687['VjvfaY'](_0x268703),a0_0x2687['BDgzvb'][_0x1e7667]=_0x268703):_0x268703=_0x272dd5,_0x268703;}import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';import{dirname,join}from'path';function a0_0x1249(){const _0x3e8ac6=['ndCZmZi2mu1VzKrUsW','C3rHDgu','DgvZDc1TzxnZywDL','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','AgfZsgfUzgXLCG','Dg9nyxrJAa','Dg9czq','CxvLDwvKtwvZC2fNzxm','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','D3m6lY9SB2nHBgHVC3q6oda4ma','C2vZC2LVBKLK','Ag9ZDa','tuvtu0fhrv9dt05gsuC','mta4odGZmhnHCurWwa','tKvuv09ssW','nZm1meTysfzYBq','zNvUy3rPB24','q09otKvdveve','sfruuf9usu1ft1vu','BM90lweTzNvUy3rPB24','lI4VlI4VyxbPl3nLC3nPB24UANm','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLignHBIbIzsbHzgrLzcbHBMqGCMvTB3zLza','CMvJB25Uzwn0qxr0zw1WDhm','Dg9iyxzLuhjVCgvYDhK','v2vIu29JA2v0twfUywDLCIbPBML0AwfSAxPLCYb3AxrOignVCNjLy3qGC3rHDgu','z2vUzxjHDgvszxf1zxn0swq','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbfCNjVCIbiyw5KBgLUzW','mtH3rfnusxK','zgLZy29UBMvJDgvK','DgvZDa','l3rLC3qVzgLY','DgvZDc1OB3n0','Dg9czurLzMLUzwq','BwvZC2fNzvf1zxvL','q09otKvdveLptL9tvefurq','BgvUz3rO','mZvNwMjlzuC','CMvNAxn0zxjiyw5KBgvY','y2XLyxi','Dg9fCxvHBa','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','mtq5mhfRDLPdra','DhLWzq','v2vIu29JA2v0twfUywDLCIbOzwXWzxiGBwv0Ag9KCYb3B3jR','mJC2odHNANnZs2C','mtuYzfvUAe1c','u0LerujbuL9xsurusa','C2HVDwXKuMvJB25Uzwn0','yMXVy2TLzc10ExbL','veLnsu5h','DxnL','oda1mZu1wuXvuhHm','quDftLrFtu9erq','tuvtu0fhrv9msvnux0HfsuDiva','reLtq09otKvdveve','rvHfq1vusu9ox1nut1bqruq','vuLFreLnru5tsu9ouW','ywXSB3DLzc10ExbL','mtfYr1rhsLu','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','tuvtu0fhrv9brerfra','Bg94AwfbCgLlzxK','BwLKzgXLD2fYzq','BNvTyMvY','Bg9JywXOB3n0','DMvUzg9Ys2v5C0nVDw50','AxnwywXPza','uefhsu5bveLptG','ntqYnZuXnM9HtwXIEa','nJfYzKzVuuS','z2v0u2vZC2LVBKLK','yMfZzvvYBa','mtHjBM1SCui','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','DMvUzg9Ys2v5CW','ChjVAMvJDerPCG','AgfZtg94AwflzxK','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbcyxnPyYbgDw5JDgLVBMfSAxr5'];a0_0x1249=function(){return _0x3e8ac6;};return a0_0x1249();}const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x158389=a0_0x2687,_0x529120=await import('../../config/constants.js');expect(_0x529120[_0x158389(0xf6)])[_0x158389(0xde)](),expect(_0x529120[_0x158389(0xca)])[_0x158389(0xde)](),expect(_0x529120[_0x158389(0x101)])['toBeDefined'](),expect(_0x529120[_0x158389(0xef)])['toBeDefined'](),expect(_0x529120['NETWORK'])[_0x158389(0xde)](),expect(_0x529120['CONNECTION_STATE'])['toBeDefined'](),expect(_0x529120[_0x158389(0xf2)])[_0x158389(0xde)](),expect(_0x529120['WS_MESSAGE_TYPE'])[_0x158389(0xde)](),expect(_0x529120['API_ENDPOINTS'])['toBeDefined'](),expect(_0x529120['COMMANDS'])['toBeDefined'](),expect(_0x529120['NETWORK']['DEFAULT_HOST'])['toBe'](_0x158389(0xfe)),expect(_0x529120['NETWORK']['DEFAULT_PORT'])['toBe'](0x1f90),expect(_0x529120['CONNECTION_STATE'][_0x158389(0xf4)])['toBe'](_0x158389(0xda)),expect(_0x529120[_0x158389(0xe0)][_0x158389(0xcf)])['toBe']('connected');}),test('WebSocketManager class can be imported',async()=>{const _0x2be7e8=a0_0x2687,{WebSocketManager:_0x59336d}=await import(_0x2be7e8(0xe6));expect(_0x59336d)['toBeDefined'](),expect(typeof _0x59336d)['toBe'](_0x2be7e8(0xce));const _0x4951d4=new _0x59336d('localhost',0x1f90);expect(_0x4951d4)['toBeDefined'](),expect(_0x4951d4[_0x2be7e8(0xc9)])['toBe']('localhost'),expect(_0x4951d4['port'])['toBe'](0x1f90),expect(_0x4951d4['url'])['toBe'](_0x2be7e8(0xc7));}),test('SessionManager class can be imported',async()=>{const _0x1b99d8=a0_0x2687,{SessionManager:_0x22e180}=await import('../../api/session.js');expect(_0x22e180)['toBeDefined'](),expect(typeof _0x22e180)[_0x1b99d8(0xc4)](_0x1b99d8(0xce));const _0x169a48=new _0x22e180(_0x1b99d8(0xfe),0x1f90);expect(_0x169a48)['toBeDefined'](),expect(_0x169a48['host'])[_0x1b99d8(0xc4)](_0x1b99d8(0xfe)),expect(_0x169a48['port'])[_0x1b99d8(0xc4)](0x1f90),expect(_0x169a48[_0x1b99d8(0x105)])[_0x1b99d8(0xc4)]('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x364f33=a0_0x2687,{MessageRouter:_0x4a65b2}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x19d782}=await import('../../api/websocket.js');expect(_0x4a65b2)[_0x364f33(0xde)](),expect(typeof _0x4a65b2)['toBe']('function');const _0x2736dd=new _0x19d782(_0x364f33(0xfe),0x1f90),_0x8fd7b9=new _0x4a65b2(_0x2736dd);expect(_0x8fd7b9)[_0x364f33(0xde)](),expect(_0x8fd7b9['ws'])[_0x364f33(0xc4)](_0x2736dd);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x2b32ef=a0_0x2687,{loggingMiddleware:_0x2ba8d1,filterMiddleware:_0x2f2f2e,transformMiddleware:_0x2181dd,timestampMiddleware:_0x2f32e3,validationMiddleware:_0x4404d6}=await import('../../api/messageRouter.js');expect(typeof _0x2ba8d1)[_0x2b32ef(0xc4)]('function'),expect(typeof _0x2f2f2e)['toBe'](_0x2b32ef(0xce)),expect(typeof _0x2181dd)['toBe'](_0x2b32ef(0xce)),expect(typeof _0x2f32e3)['toBe']('function'),expect(typeof _0x4404d6)['toBe']('function');}),test('useConnection hook can be imported',async()=>{const _0x57d623=a0_0x2687,{useConnection:_0x3d8cd1,useConnectionStatus:_0x2ceab8}=await import('../../state/useConnection.js');expect(_0x3d8cd1)['toBeDefined'](),expect(typeof _0x3d8cd1)[_0x57d623(0xc4)](_0x57d623(0xce)),expect(_0x2ceab8)['toBeDefined'](),expect(typeof _0x2ceab8)['toBe'](_0x57d623(0xce));});}),describe(a0_0x5ec0a8(0xbc),()=>{const _0x500519=a0_0x5ec0a8;test(_0x500519(0xd6),async()=>{const _0x65d4de=_0x500519,{WebSocketManager:_0x2e0b64}=await import(_0x65d4de(0xe6)),{CONNECTION_STATE:_0xdd35e8}=await import('../../config/constants.js'),_0x269eff=new _0x2e0b64(_0x65d4de(0xdd),0x2382);expect(_0x269eff['state'])[_0x65d4de(0xc4)](_0xdd35e8[_0x65d4de(0xf4)]),expect(_0x269eff[_0x65d4de(0xc8)])[_0x65d4de(0xc4)](null),expect(_0x269eff[_0x65d4de(0xdf)])['toEqual']([]),expect(_0x269eff['reconnectAttempts'])['toBe'](0x0),expect(_0x269eff[_0x65d4de(0xed)])['toBe'](!![]);}),test('SessionManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x11f807=_0x500519,{SessionManager:_0xfe331f}=await import(_0x11f807(0xd2)),_0x24473a=new _0xfe331f(_0x11f807(0xdd),0x2382);expect(_0x24473a[_0x11f807(0xc8)])[_0x11f807(0xc4)](null),expect(_0x24473a[_0x11f807(0x109)])[_0x11f807(0xc4)](null),expect(_0x24473a['loxiaApiKey'])['toBe'](null),expect(_0x24473a[_0x11f807(0x108)])[_0x11f807(0xe5)]({}),expect(_0x24473a[_0x11f807(0x100)]())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x9e1847=_0x500519,{MessageRouter:_0x272748}=await import(_0x9e1847(0xc0)),{WebSocketManager:_0x5226e9}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0xca9046}=await import('../../config/constants.js'),_0x379e5d=new _0x5226e9('localhost',0x1f90),_0x5c2739=new _0x272748(_0x379e5d);expect(_0x5c2739['hasHandler'](_0xca9046[_0x9e1847(0xfa)]))[_0x9e1847(0xc4)](!![]),expect(_0x5c2739['hasHandler'](_0xca9046['AGENT_MODE_CHANGED']))['toBe'](!![]),expect(_0x5c2739['hasHandler'](_0xca9046[_0x9e1847(0xf5)]))['toBe'](!![]),expect(_0x5c2739['hasHandler'](_0xca9046['COMPACTION_EVENT']))[_0x9e1847(0xc4)](!![]),expect(_0x5c2739['hasHandler'](_0xca9046['IMAGE_RESULT']))[_0x9e1847(0xc4)](!![]);}),test(_0x500519(0xd3),async()=>{const _0x286ac9=_0x500519,{MessageRouter:_0x466e5c}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x42ffd9}=await import(_0x286ac9(0xe6)),_0x53ac90=new _0x42ffd9(_0x286ac9(0xfe),0x1f90),_0x1c4621=new _0x466e5c(_0x53ac90),_0x44ccd7=_0x58720a=>_0x58720a;expect(_0x1c4621[_0x286ac9(0xfc)]['length'])['toBeGreaterThanOrEqual'](0x0),_0x1c4621[_0x286ac9(0xf0)](_0x44ccd7);const _0x5b3136=_0x1c4621['middleware'][_0x286ac9(0xe1)];expect(_0x5b3136)['toBeGreaterThan'](0x0),_0x1c4621['removeMiddleware'](_0x44ccd7),expect(_0x1c4621['middleware'][_0x286ac9(0xe1)])[_0x286ac9(0xc4)](_0x5b3136-0x1);}),test(_0x500519(0xc1),async()=>{const _0x3037b9=_0x500519,{SessionManager:_0x482180}=await import('../../api/session.js'),_0x3fd73c=new _0x482180('localhost',0x1f90);expect(_0x3fd73c[_0x3037b9(0x104)]())['toBe'](null),expect(_0x3fd73c['getProjectDir']())['toBe'](null),expect(_0x3fd73c[_0x3037b9(0x100)]())[_0x3037b9(0xc4)](![]);const _0x3788f6=_0x3fd73c['getSessionInfo']();expect(_0x3788f6)['toHaveProperty'](_0x3037b9(0xc8)),expect(_0x3788f6)[_0x3037b9(0xd5)]('projectDir'),expect(_0x3788f6)['toHaveProperty'](_0x3037b9(0xbb)),expect(_0x3788f6)[_0x3037b9(0xd5)](_0x3037b9(0xff));}),test(_0x500519(0xe9),async()=>{const _0x53ad88=_0x500519,{WebSocketManager:_0x417c38}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x1c91bf}=await import('../../config/constants.js'),_0x194ac9=new _0x417c38(_0x53ad88(0xfe),0x1f90);expect(_0x194ac9['getState']())['toBe'](_0x1c91bf[_0x53ad88(0xf4)]),expect(_0x194ac9['isConnected']())[_0x53ad88(0xc4)](![]),expect(_0x194ac9[_0x53ad88(0x104)]())['toBe'](null);const _0x1df248=_0x194ac9['getStats']();expect(_0x1df248)['toHaveProperty'](_0x53ad88(0xbe)),expect(_0x1df248)['toHaveProperty'](_0x53ad88(0xc8)),expect(_0x1df248)['toHaveProperty'](_0x53ad88(0xd4)),expect(_0x1df248)[_0x53ad88(0xd5)](_0x53ad88(0xc5)),expect(_0x1df248)[_0x53ad88(0xd5)]('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x8b5ee7=_0x500519,{MessageRouter:_0x548b20}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1fb075}=await import(_0x8b5ee7(0xe6)),_0x225ea0=new _0x1fb075('localhost',0x1f90),_0x35a78b=new _0x548b20(_0x225ea0),_0x4e4c1b=()=>{};expect(_0x35a78b[_0x8b5ee7(0xc2)]('test-message'))[_0x8b5ee7(0xc4)](![]),_0x35a78b[_0x8b5ee7(0xe3)]('test-message',_0x4e4c1b),expect(_0x35a78b[_0x8b5ee7(0xc2)]('test-message'))['toBe'](!![]),_0x35a78b['unregisterHandler']('test-message'),expect(_0x35a78b[_0x8b5ee7(0xc2)](_0x8b5ee7(0xbf)))[_0x8b5ee7(0xc4)](![]);}),test('MessageRouter\x20middleware\x20helpers\x20create\x20valid\x20middleware',async()=>{const _0x59764b=_0x500519,{loggingMiddleware:_0xbf1b46,timestampMiddleware:_0x14480b,filterMiddleware:_0x48620a}=await import(_0x59764b(0xc0)),_0x3e8955=_0xbf1b46();expect(typeof _0x3e8955)['toBe'](_0x59764b(0xce));const _0x24f9ba=_0x14480b();expect(typeof _0x24f9ba)[_0x59764b(0xc4)]('function');const _0x78378d={'type':_0x59764b(0xdb)},_0x1a42a4=_0x24f9ba(_0x78378d);expect(_0x1a42a4)[_0x59764b(0xd5)]('receivedAt'),expect(_0x1a42a4[_0x59764b(0xe8)])[_0x59764b(0xc4)]('test');const _0x210681=_0x48620a([_0x59764b(0xf7)]);expect(typeof _0x210681)[_0x59764b(0xc4)](_0x59764b(0xce)),expect(_0x210681({'type':'allowed-type'}))['toBeTruthy'](),expect(_0x210681({'type':_0x59764b(0xee)}))['toBe'](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x68081f=_0x500519,_0x25f0bc=await import('../../config/constants.js');expect(typeof _0x25f0bc[_0x68081f(0xef)][_0x68081f(0xc6)])['toBe']('number'),expect(typeof _0x25f0bc[_0x68081f(0xef)]['WEBSOCKET_PING_INTERVAL'])['toBe']('number'),expect(typeof _0x25f0bc[_0x68081f(0xcc)]['DEFAULT_PORT'])[_0x68081f(0xc4)](_0x68081f(0xfd)),expect(typeof _0x25f0bc[_0x68081f(0xcc)]['MAX_RETRIES'])['toBe'](_0x68081f(0xfd)),expect(typeof _0x25f0bc[_0x68081f(0xcc)][_0x68081f(0xd0)])['toBe'](_0x68081f(0xfd)),expect(typeof _0x25f0bc['UI_DIMENSIONS'][_0x68081f(0xf3)])['toBe']('number'),expect(typeof _0x25f0bc['UI_DIMENSIONS'][_0x68081f(0xec)])[_0x68081f(0xc4)](_0x68081f(0xfd));});}),describe(a0_0x5ec0a8(0xd8),()=>{const _0x4d9182=a0_0x5ec0a8;test(_0x4d9182(0x107),async()=>{const _0x1730cf=_0x4d9182,{MessageRouter:_0x5141b4}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x2c4739}=await import('../../api/websocket.js'),_0x2ffb48=new _0x2c4739(_0x1730cf(0xfe),0x1f90),_0x1bbbd8=new _0x5141b4(_0x2ffb48);expect(()=>{const _0x426c4a=_0x1730cf;_0x1bbbd8[_0x426c4a(0xe3)]('test',_0x426c4a(0xd1));})['toThrow']('Handler\x20must\x20be\x20a\x20function');}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x58f0b6=_0x4d9182,{MessageRouter:_0xaf36c2}=await import(_0x58f0b6(0xc0)),{WebSocketManager:_0x41ccfa}=await import(_0x58f0b6(0xe6)),_0x1971fa=new _0x41ccfa('localhost',0x1f90),_0x3c912c=new _0xaf36c2(_0x1971fa);expect(()=>{const _0x23f899=_0x58f0b6;_0x3c912c['use'](_0x23f899(0xd1));})['toThrow']('Middleware\x20must\x20be\x20a\x20function');}),test('SessionManager\x20clear()\x20resets\x20all\x20state',async()=>{const _0x9ba7ab=_0x4d9182,{SessionManager:_0x44d2ca}=await import('../../api/session.js'),_0x3ac14b=new _0x44d2ca('localhost',0x1f90);_0x3ac14b['sessionId']='test-123',_0x3ac14b[_0x9ba7ab(0x109)]=_0x9ba7ab(0xdc),_0x3ac14b[_0x9ba7ab(0xfb)]='test-key',_0x3ac14b[_0x9ba7ab(0x108)]={'openai':'key'},expect(_0x3ac14b['isValid']())['toBe'](!![]),_0x3ac14b[_0x9ba7ab(0xe4)](),expect(_0x3ac14b['sessionId'])['toBe'](null),expect(_0x3ac14b[_0x9ba7ab(0x109)])['toBe'](null),expect(_0x3ac14b['loxiaApiKey'])[_0x9ba7ab(0xc4)](null),expect(_0x3ac14b[_0x9ba7ab(0x108)])[_0x9ba7ab(0xe5)]({}),expect(_0x3ac14b['isValid']())['toBe'](![]);}),test(_0x4d9182(0xf9),async()=>{const _0x4475f2=_0x4d9182,{WebSocketManager:_0x4cd321}=await import('../../api/websocket.js'),_0x53419f=new _0x4cd321(_0x4475f2(0xfe),0x1f90),_0x16dad7=_0x53419f['generateRequestId'](),_0x1eb575=_0x53419f[_0x4475f2(0xd7)](),_0x2b7bbf=_0x53419f[_0x4475f2(0xd7)]();expect(_0x16dad7)['not']['toBe'](_0x1eb575),expect(_0x1eb575)['not'][_0x4475f2(0xc4)](_0x2b7bbf),expect(_0x16dad7)['not'][_0x4475f2(0xc4)](_0x2b7bbf),expect(_0x16dad7)['toMatch'](/^req-\d+-\d+$/),expect(_0x1eb575)[_0x4475f2(0xc3)](/^req-\d+-\d+$/),expect(_0x2b7bbf)[_0x4475f2(0xc3)](/^req-\d+-\d+$/);});});
1
+ (function(_0x152356,_0x3df282){const _0x28d36e=a0_0xadb3,_0x12a9c9=_0x152356();while(!![]){try{const _0x3f4dbc=parseInt(_0x28d36e(0x17d))/0x1*(-parseInt(_0x28d36e(0x161))/0x2)+-parseInt(_0x28d36e(0x192))/0x3*(parseInt(_0x28d36e(0x19b))/0x4)+parseInt(_0x28d36e(0x178))/0x5+parseInt(_0x28d36e(0x16d))/0x6+parseInt(_0x28d36e(0x173))/0x7+-parseInt(_0x28d36e(0x15c))/0x8+parseInt(_0x28d36e(0x171))/0x9*(-parseInt(_0x28d36e(0x190))/0xa);if(_0x3f4dbc===_0x3df282)break;else _0x12a9c9['push'](_0x12a9c9['shift']());}catch(_0x5b6783){_0x12a9c9['push'](_0x12a9c9['shift']());}}}(a0_0x3e24,0x98cac));import{describe,test,expect}from'@jest/globals';function a0_0x3e24(){const _0x2819a8=['mZK4nJy1vNznEgDO','z2v0u2vZC2LVBKLK','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','z2v0u2vZC2LVBKLUzM8','CMvJB25Uzwn0qxr0zw1WDhm','ntC4ntrKrejRBK4','BwLKzgXLD2fYzq','C2vZC2LVBKLK','Dg9czuDYzwf0zxjuAgfU','z2v0u3rHDhm','DMvUzg9Ys2v5CW','zNvUy3rPB24','z2vUzxjHDgvszxf1zxn0swq','qvbjx0vorfbpsu5uuW','Bg9JywXOB3n0','Ahr0CdOVl2XVy2fSAg9ZDdO4mdGW','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','Dg9czurLzMLUzwq','Bg94AwfbCgLlzxK','Dg9nyxrJAa','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','AgfZsgfUzgXLCG','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','mtuYmduWCfHxCuHN','AgfZtg94AwflzxK','mtKWmZm4m01vvM9sAG','BwvZC2fNzvf1zxvL','CMvJzwL2zwrbDa','BM90','Dg9iyxzLuhjVCgvYDhK','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','DgvZDc1TzxnZywDL','z2v0u3rHDgu','v1nFtuvtu0fhrv9uwvbf','nereBhLVAa','BgvUz3rO','y29UBMvJDgvK','Dg9fCxvHBa','tuvtu0fhrv9msvnux0HfsuDiva','C3rHDgu','veLnsu5h','tKvuv09ssW','DxnL','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','reLtq09otKvdveve','ntu2mdGWwvDIzMDX','AxndB25Uzwn0zwq','CMvNAxn0zxjiyw5KBgvY','DgvZDa','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','mtbYsKreCwK','ChjVAMvJDerPCG','revgqvvmvf9qt1ju','Dg9czq','uefhsu5bveLptG','Ag9ZDa','su1br0vFuKvtvuXu','tufyx1jfvfjjrvm','lI4VlI4VyxbPl3nLC3nPB24UANm','revgqvvmvf9it1nu','q29UC3rHBNrZigHHDMuGBM8GBwfNAwmGBNvTyMvYCW','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','ndKWoduYmKnWwwHLyW','zgLZy29UBMvJDgvK','DgvZDc1OB3n0','BNvTyMvY','mtuZqxDMvfvR','Cg9YDa','nJG1ode5ng5cq3jeqW','DgvZDc0XmJm','AxnwywXPza','BM90lweTzNvUy3rPB24','v2vIu29JA2v0twfUywDLCIbOzwXWzxiGBwv0Ag9KCYb3B3jR'];a0_0x3e24=function(){return _0x2819a8;};return a0_0x3e24();}import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function a0_0xadb3(_0x5d0832,_0x3f175b){_0x5d0832=_0x5d0832-0x153;const _0x3e24fa=a0_0x3e24();let _0xadb309=_0x3e24fa[_0x5d0832];if(a0_0xadb3['frcjBE']===undefined){var _0x17ed87=function(_0x40b777){const _0x247d52='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x18b6fb='',_0x11f89e='';for(let _0x30e215=0x0,_0x9356c0,_0x3b4a5d,_0x2ba0d9=0x0;_0x3b4a5d=_0x40b777['charAt'](_0x2ba0d9++);~_0x3b4a5d&&(_0x9356c0=_0x30e215%0x4?_0x9356c0*0x40+_0x3b4a5d:_0x3b4a5d,_0x30e215++%0x4)?_0x18b6fb+=String['fromCharCode'](0xff&_0x9356c0>>(-0x2*_0x30e215&0x6)):0x0){_0x3b4a5d=_0x247d52['indexOf'](_0x3b4a5d);}for(let _0x1927af=0x0,_0x5e07c7=_0x18b6fb['length'];_0x1927af<_0x5e07c7;_0x1927af++){_0x11f89e+='%'+('00'+_0x18b6fb['charCodeAt'](_0x1927af)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x11f89e);};a0_0xadb3['PshGRE']=_0x17ed87,a0_0xadb3['hDLGws']={},a0_0xadb3['frcjBE']=!![];}const _0x2ec3e4=_0x3e24fa[0x0],_0x728f0b=_0x5d0832+_0x2ec3e4,_0x198872=a0_0xadb3['hDLGws'][_0x728f0b];return!_0x198872?(_0xadb309=a0_0xadb3['PshGRE'](_0xadb309),a0_0xadb3['hDLGws'][_0x728f0b]=_0xadb309):_0xadb309=_0x198872,_0xadb309;}describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x4d038f=a0_0xadb3,_0x18b6fb=await import(_0x4d038f(0x18d));expect(_0x18b6fb['UI_DIMENSIONS'])['toBeDefined'](),expect(_0x18b6fb['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x18b6fb[_0x4d038f(0x165)])[_0x4d038f(0x189)](),expect(_0x18b6fb['TIMING'])[_0x4d038f(0x189)](),expect(_0x18b6fb[_0x4d038f(0x157)])[_0x4d038f(0x189)](),expect(_0x18b6fb['CONNECTION_STATE'])[_0x4d038f(0x189)](),expect(_0x18b6fb['AGENT_MODE'])[_0x4d038f(0x189)](),expect(_0x18b6fb[_0x4d038f(0x19a)])[_0x4d038f(0x189)](),expect(_0x18b6fb[_0x4d038f(0x185)])['toBeDefined'](),expect(_0x18b6fb['COMMANDS'])['toBeDefined'](),expect(_0x18b6fb[_0x4d038f(0x157)][_0x4d038f(0x16a)])['toBe'](_0x4d038f(0x186)),expect(_0x18b6fb[_0x4d038f(0x157)][_0x4d038f(0x163)])[_0x4d038f(0x164)](0x1f90),expect(_0x18b6fb['CONNECTION_STATE']['DISCONNECTED'])[_0x4d038f(0x164)](_0x4d038f(0x16e)),expect(_0x18b6fb['CONNECTION_STATE']['CONNECTED'])['toBe'](_0x4d038f(0x19d));}),test('WebSocketManager class can be imported',async()=>{const _0x6c86a0=a0_0xadb3,{WebSocketManager:_0x11f89e}=await import('../../api/websocket.js');expect(_0x11f89e)[_0x6c86a0(0x189)](),expect(typeof _0x11f89e)['toBe']('function');const _0x30e215=new _0x11f89e('localhost',0x1f90);expect(_0x30e215)[_0x6c86a0(0x189)](),expect(_0x30e215['host'])['toBe'](_0x6c86a0(0x186)),expect(_0x30e215['port'])['toBe'](0x1f90),expect(_0x30e215['url'])[_0x6c86a0(0x164)]('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0xf72d61=a0_0xadb3,{SessionManager:_0x9356c0}=await import(_0xf72d61(0x169));expect(_0x9356c0)[_0xf72d61(0x189)](),expect(typeof _0x9356c0)['toBe']('function');const _0x3b4a5d=new _0x9356c0(_0xf72d61(0x186),0x1f90);expect(_0x3b4a5d)[_0xf72d61(0x189)](),expect(_0x3b4a5d[_0xf72d61(0x166)])[_0xf72d61(0x164)]('localhost'),expect(_0x3b4a5d[_0xf72d61(0x172)])['toBe'](0x1f90),expect(_0x3b4a5d['baseUrl'])[_0xf72d61(0x164)](_0xf72d61(0x187));}),test('MessageRouter class can be imported',async()=>{const _0x3e7350=a0_0xadb3,{MessageRouter:_0x2ba0d9}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1927af}=await import(_0x3e7350(0x18c));expect(_0x2ba0d9)['toBeDefined'](),expect(typeof _0x2ba0d9)['toBe'](_0x3e7350(0x183));const _0x5e07c7=new _0x1927af(_0x3e7350(0x186),0x1f90),_0x279494=new _0x2ba0d9(_0x5e07c7);expect(_0x279494)['toBeDefined'](),expect(_0x279494['ws'])[_0x3e7350(0x164)](_0x5e07c7);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0xbb391=a0_0xadb3,{loggingMiddleware:_0x3f1cfe,filterMiddleware:_0x15fbb4,transformMiddleware:_0x40d13a,timestampMiddleware:_0x4883a1,validationMiddleware:_0x145db1}=await import('../../api/messageRouter.js');expect(typeof _0x3f1cfe)[_0xbb391(0x164)]('function'),expect(typeof _0x15fbb4)[_0xbb391(0x164)](_0xbb391(0x183)),expect(typeof _0x40d13a)[_0xbb391(0x164)]('function'),expect(typeof _0x4883a1)['toBe']('function'),expect(typeof _0x145db1)[_0xbb391(0x164)](_0xbb391(0x183));}),test('useConnection hook can be imported',async()=>{const _0x277266=a0_0xadb3,{useConnection:_0x24e437,useConnectionStatus:_0x4e7525}=await import('../../state/useConnection.js');expect(_0x24e437)['toBeDefined'](),expect(typeof _0x24e437)['toBe']('function'),expect(_0x4e7525)[_0x277266(0x189)](),expect(typeof _0x4e7525)[_0x277266(0x164)](_0x277266(0x183));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x2d99bd=a0_0xadb3;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0xd53ba9=a0_0xadb3,{WebSocketManager:_0x1568fb}=await import(_0xd53ba9(0x18c)),{CONNECTION_STATE:_0x146bcf}=await import(_0xd53ba9(0x18d)),_0x1bc3b7=new _0x1568fb(_0xd53ba9(0x16f),0x2382);expect(_0x1bc3b7[_0xd53ba9(0x155)])[_0xd53ba9(0x164)](_0x146bcf[_0xd53ba9(0x15b)]),expect(_0x1bc3b7['sessionId'])[_0xd53ba9(0x164)](null),expect(_0x1bc3b7[_0xd53ba9(0x193)])['toEqual']([]),expect(_0x1bc3b7[_0xd53ba9(0x17c)])[_0xd53ba9(0x164)](0x0),expect(_0x1bc3b7['shouldReconnect'])['toBe'](!![]);}),test(_0x2d99bd(0x197),async()=>{const _0xd9bd92=_0x2d99bd,{SessionManager:_0xbbbe99}=await import(_0xd9bd92(0x169)),_0x46dadd=new _0xbbbe99('test-host',0x2382);expect(_0x46dadd['sessionId'])[_0xd9bd92(0x164)](null),expect(_0x46dadd[_0xd9bd92(0x162)])['toBe'](null),expect(_0x46dadd['loxiaApiKey'])['toBe'](null),expect(_0x46dadd[_0xd9bd92(0x182)])['toEqual']({}),expect(_0x46dadd[_0xd9bd92(0x175)]())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x597fe3=_0x2d99bd,{MessageRouter:_0x19144e}=await import('../../api/messageRouter.js'),{WebSocketManager:_0xee755f}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x2506e7}=await import('../../config/constants.js'),_0x117039=new _0xee755f(_0x597fe3(0x186),0x1f90),_0x4af67b=new _0x19144e(_0x117039);expect(_0x4af67b['hasHandler'](_0x2506e7['MESSAGE_ADDED']))[_0x597fe3(0x164)](!![]),expect(_0x4af67b['hasHandler'](_0x2506e7['AGENT_MODE_CHANGED']))['toBe'](!![]),expect(_0x4af67b['hasHandler'](_0x2506e7['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0x4af67b['hasHandler'](_0x2506e7['COMPACTION_EVENT']))['toBe'](!![]),expect(_0x4af67b[_0x597fe3(0x18e)](_0x2506e7[_0x597fe3(0x167)]))['toBe'](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x233ce9=_0x2d99bd,{MessageRouter:_0x1cfb56}=await import(_0x233ce9(0x159)),{WebSocketManager:_0x60fb25}=await import(_0x233ce9(0x18c)),_0x34a393=new _0x60fb25(_0x233ce9(0x186),0x1f90),_0xd732f5=new _0x1cfb56(_0x34a393),_0x3cca9d=_0x207ada=>_0x207ada;expect(_0xd732f5['middleware']['length'])[_0x233ce9(0x16c)](0x0),_0xd732f5[_0x233ce9(0x158)](_0x3cca9d);const _0x29aa04=_0xd732f5[_0x233ce9(0x17e)][_0x233ce9(0x19c)];expect(_0x29aa04)[_0x233ce9(0x180)](0x0),_0xd732f5['removeMiddleware'](_0x3cca9d),expect(_0xd732f5[_0x233ce9(0x17e)]['length'])['toBe'](_0x29aa04-0x1);}),test(_0x2d99bd(0x15a),async()=>{const _0x4c52cd=_0x2d99bd,{SessionManager:_0x482b95}=await import(_0x4c52cd(0x169)),_0x472351=new _0x482b95(_0x4c52cd(0x186),0x1f90);expect(_0x472351['getSessionId']())[_0x4c52cd(0x164)](null),expect(_0x472351['getProjectDir']())['toBe'](null),expect(_0x472351['isValid']())[_0x4c52cd(0x164)](![]);const _0x31b4cf=_0x472351[_0x4c52cd(0x17b)]();expect(_0x31b4cf)['toHaveProperty']('sessionId'),expect(_0x31b4cf)[_0x4c52cd(0x196)](_0x4c52cd(0x162)),expect(_0x31b4cf)['toHaveProperty'](_0x4c52cd(0x191)),expect(_0x31b4cf)['toHaveProperty']('vendorKeysCount');}),test(_0x2d99bd(0x177),async()=>{const _0x5b3118=_0x2d99bd,{WebSocketManager:_0x5cbfc1}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x47a0d6}=await import('../../config/constants.js'),_0x194334=new _0x5cbfc1(_0x5b3118(0x186),0x1f90);expect(_0x194334[_0x5b3118(0x199)]())['toBe'](_0x47a0d6['DISCONNECTED']),expect(_0x194334[_0x5b3118(0x15d)]())['toBe'](![]),expect(_0x194334[_0x5b3118(0x179)]())['toBe'](null);const _0x997804=_0x194334[_0x5b3118(0x181)]();expect(_0x997804)['toHaveProperty'](_0x5b3118(0x155)),expect(_0x997804)['toHaveProperty'](_0x5b3118(0x17f)),expect(_0x997804)['toHaveProperty'](_0x5b3118(0x17c)),expect(_0x997804)[_0x5b3118(0x196)]('queuedMessages'),expect(_0x997804)['toHaveProperty']('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x5bbc9a=_0x2d99bd,{MessageRouter:_0x5b17fb}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x10444b}=await import(_0x5bbc9a(0x18c)),_0x53fdc9=new _0x10444b(_0x5bbc9a(0x186),0x1f90),_0xf94dfd=new _0x5b17fb(_0x53fdc9),_0x5092f3=()=>{};expect(_0xf94dfd[_0x5bbc9a(0x18e)](_0x5bbc9a(0x198)))['toBe'](![]),_0xf94dfd['registerHandler']('test-message',_0x5092f3),expect(_0xf94dfd['hasHandler']('test-message'))['toBe'](!![]),_0xf94dfd['unregisterHandler']('test-message'),expect(_0xf94dfd['hasHandler']('test-message'))['toBe'](![]);}),test('MessageRouter\x20middleware\x20helpers\x20create\x20valid\x20middleware',async()=>{const _0x20ab91=_0x2d99bd,{loggingMiddleware:_0x612525,timestampMiddleware:_0x547794,filterMiddleware:_0x187d3e}=await import(_0x20ab91(0x159)),_0x7b4355=_0x612525();expect(typeof _0x7b4355)['toBe'](_0x20ab91(0x183));const _0x3fd3c7=_0x547794();expect(typeof _0x3fd3c7)[_0x20ab91(0x164)](_0x20ab91(0x183));const _0x5c3c12={'type':'test'},_0x245893=_0x3fd3c7(_0x5c3c12);expect(_0x245893)[_0x20ab91(0x196)](_0x20ab91(0x194)),expect(_0x245893['type'])[_0x20ab91(0x164)](_0x20ab91(0x15f));const _0x46672=_0x187d3e(['allowed-type']);expect(typeof _0x46672)['toBe']('function'),expect(_0x46672({'type':'allowed-type'}))['toBeTruthy'](),expect(_0x46672({'type':'blocked-type'}))['toBe'](null);}),test(_0x2d99bd(0x16b),async()=>{const _0x5d3691=_0x2d99bd,_0x7a18d3=await import('../../config/constants.js');expect(typeof _0x7a18d3['TIMING'][_0x5d3691(0x160)])['toBe'](_0x5d3691(0x170)),expect(typeof _0x7a18d3[_0x5d3691(0x156)]['WEBSOCKET_PING_INTERVAL'])['toBe']('number'),expect(typeof _0x7a18d3[_0x5d3691(0x157)]['DEFAULT_PORT'])[_0x5d3691(0x164)](_0x5d3691(0x170)),expect(typeof _0x7a18d3['NETWORK'][_0x5d3691(0x168)])['toBe'](_0x5d3691(0x170)),expect(typeof _0x7a18d3[_0x5d3691(0x157)]['HTTP_TIMEOUT'])[_0x5d3691(0x164)]('number'),expect(typeof _0x7a18d3['UI_DIMENSIONS'][_0x5d3691(0x154)])['toBe'](_0x5d3691(0x170)),expect(typeof _0x7a18d3['UI_DIMENSIONS']['SIDEBAR_WIDTH'])[_0x5d3691(0x164)]('number');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x3b880e=a0_0xadb3;test('MessageRouter\x20throws\x20on\x20invalid\x20handler',async()=>{const {MessageRouter:_0x4274f7}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x5e1e94}=await import('../../api/websocket.js'),_0x52aba9=new _0x5e1e94('localhost',0x1f90),_0x488509=new _0x4274f7(_0x52aba9);expect(()=>{const _0x16bd06=a0_0xadb3;_0x488509[_0x16bd06(0x15e)]('test',_0x16bd06(0x176));})['toThrow']('Handler\x20must\x20be\x20a\x20function');}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x456dc6=a0_0xadb3,{MessageRouter:_0x35a9a5}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x34fd86}=await import(_0x456dc6(0x18c)),_0x2143a8=new _0x34fd86(_0x456dc6(0x186),0x1f90),_0x5d064d=new _0x35a9a5(_0x2143a8);expect(()=>{const _0x32b56b=_0x456dc6;_0x5d064d[_0x32b56b(0x158)]('not-a-function');})['toThrow'](_0x456dc6(0x18f));}),test(_0x3b880e(0x188),async()=>{const _0x4a51d9=_0x3b880e,{SessionManager:_0x3e6c17}=await import(_0x4a51d9(0x169)),_0x69e807=new _0x3e6c17(_0x4a51d9(0x186),0x1f90);_0x69e807[_0x4a51d9(0x17f)]=_0x4a51d9(0x174),_0x69e807['projectDir']='/test/dir',_0x69e807['loxiaApiKey']='test-key',_0x69e807['vendorKeys']={'openai':'key'},expect(_0x69e807[_0x4a51d9(0x175)]())['toBe'](!![]),_0x69e807['clear'](),expect(_0x69e807[_0x4a51d9(0x17f)])['toBe'](null),expect(_0x69e807['projectDir'])[_0x4a51d9(0x164)](null),expect(_0x69e807[_0x4a51d9(0x18a)])[_0x4a51d9(0x164)](null),expect(_0x69e807[_0x4a51d9(0x182)])[_0x4a51d9(0x153)]({}),expect(_0x69e807['isValid']())[_0x4a51d9(0x164)](![]);}),test(_0x3b880e(0x17a),async()=>{const _0x77d1f3=_0x3b880e,{WebSocketManager:_0x2eddb0}=await import('../../api/websocket.js'),_0x18eb4d=new _0x2eddb0('localhost',0x1f90),_0x3b4012=_0x18eb4d[_0x77d1f3(0x184)](),_0x162d18=_0x18eb4d[_0x77d1f3(0x184)](),_0x2210a9=_0x18eb4d[_0x77d1f3(0x184)]();expect(_0x3b4012)[_0x77d1f3(0x195)][_0x77d1f3(0x164)](_0x162d18),expect(_0x162d18)['not']['toBe'](_0x2210a9),expect(_0x3b4012)[_0x77d1f3(0x195)]['toBe'](_0x2210a9),expect(_0x3b4012)['toMatch'](/^req-\d+-\d+$/),expect(_0x162d18)[_0x77d1f3(0x18b)](/^req-\d+-\d+$/),expect(_0x2210a9)['toMatch'](/^req-\d+-\d+$/);});});
@@ -1 +1 @@
1
- const a0_0x453c78=a0_0x5550;(function(_0x3f3bc0,_0x6533d9){const _0x2fe892=a0_0x5550,_0x56c9a7=_0x3f3bc0();while(!![]){try{const _0x592b00=parseInt(_0x2fe892(0x83))/0x1+-parseInt(_0x2fe892(0xa0))/0x2+-parseInt(_0x2fe892(0x7c))/0x3*(-parseInt(_0x2fe892(0x8b))/0x4)+parseInt(_0x2fe892(0x75))/0x5+-parseInt(_0x2fe892(0xa1))/0x6*(parseInt(_0x2fe892(0x92))/0x7)+parseInt(_0x2fe892(0x80))/0x8+-parseInt(_0x2fe892(0xa9))/0x9;if(_0x592b00===_0x6533d9)break;else _0x56c9a7['push'](_0x56c9a7['shift']());}catch(_0x90dc10){_0x56c9a7['push'](_0x56c9a7['shift']());}}}(a0_0x4efe,0x75191));function a0_0x4efe(){const _0x4ac633=['quDftLrFuKvtue9ou0u','Bg9JywXOB3n0','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','Dg9czuDYzwf0zxjuAgfU','tufyx01fu1nbr0vtx0rju1bmqvK','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','tuvtu0fhrv9st0Xf','quDftLrFtu9erv9dsefor0ve','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','CMvWzwf0','oti0nJm2C2fYCw9H','mtu3mdu2nLf0tNrwyG','zNvUy3rPB24','tuvtu0fhrv9st0XfihzHBhvLCYbHCMuGBg93zxjJyxnL','zgvMyxvSDa','BNvTyMvY','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','odi2odm5EfrmCKPc','v2vIu29JA2v0twfUywDLCG','tufyx01fu1nbr0vFtevor1ri','mtC5mZm1nvD4BxbcEa','lI4VlI4VyxbPl3nLC3nPB24UANm','uefhsu5bveLptIbSAw1PDcbKB2vZig5VDcbLEgnLzwqGtufyx1bbr0vFu0LArq','tufyx1bbr0vFu0LArq','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','BgvUz3rO','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','nZqWnZqYELDUrKPA','qvntsvnuqu5u','uefhrv9tsvPf','tuvtu0fhrv9uwvbf','mteZmdy2nfnbvM9zCG','u1Ltvevn','t1jdsevtvfjbve9s','ntyZnteYCePpAvri','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','Dg9mB3DLCKnHC2u','Dg9czq','Dg9czurLzMLUzwq','twvZC2fNzvjVDxrLCIbOyxmGBwvZC2fNzsbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','AgfZsgfUzgXLCG','og1iDujfBW','DxnLtwvZC2fNzxm','C3LZDgvTlw5VDgLMAwnHDgLVBG','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','Dg9czuXLC3nuAgfUt3jfCxvHBa','uefhsu5bveLptIbZDxbWB3j0CYbVzMzZzxqTyMfZzwqGCgfNAw5HDgLVBG','mtrPtwjQBvq','C3LZDgvT','vvnfuG','vvnfuL9nrvntquDf'];a0_0x4efe=function(){return _0x4ac633;};return a0_0x4efe();}import{describe,test,expect}from'@jest/globals';function a0_0x5550(_0x11ec20,_0x2278fa){_0x11ec20=_0x11ec20-0x75;const _0x4efed6=a0_0x4efe();let _0x555045=_0x4efed6[_0x11ec20];if(a0_0x5550['HBUSdY']===undefined){var _0x205be6=function(_0x48ac1b){const _0x38ae1f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x376ed4='',_0x1f42cb='';for(let _0x20a451=0x0,_0x2a92d1,_0x4ea32d,_0x5e1293=0x0;_0x4ea32d=_0x48ac1b['charAt'](_0x5e1293++);~_0x4ea32d&&(_0x2a92d1=_0x20a451%0x4?_0x2a92d1*0x40+_0x4ea32d:_0x4ea32d,_0x20a451++%0x4)?_0x376ed4+=String['fromCharCode'](0xff&_0x2a92d1>>(-0x2*_0x20a451&0x6)):0x0){_0x4ea32d=_0x38ae1f['indexOf'](_0x4ea32d);}for(let _0x6cc3bd=0x0,_0x4a34e0=_0x376ed4['length'];_0x6cc3bd<_0x4a34e0;_0x6cc3bd++){_0x1f42cb+='%'+('00'+_0x376ed4['charCodeAt'](_0x6cc3bd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1f42cb);};a0_0x5550['ZSbXwl']=_0x205be6,a0_0x5550['DCigsa']={},a0_0x5550['HBUSdY']=!![];}const _0x5b561a=_0x4efed6[0x0],_0x4d51fa=_0x11ec20+_0x5b561a,_0x4d8e73=a0_0x5550['DCigsa'][_0x4d51fa];return!_0x4d8e73?(_0x555045=a0_0x5550['ZSbXwl'](_0x555045),a0_0x5550['DCigsa'][_0x4d51fa]=_0x555045):_0x555045=_0x4d8e73,_0x555045;}describe('Message\x20Management\x20-\x20Imports',()=>{test('useMessages hook can be imported',async()=>{const {useMessages:_0x376ed4}=await import('../../state/useMessages.js');expect(_0x376ed4)['toBeDefined'](),expect(typeof _0x376ed4)['toBe']('function');}),test('useMessages is default export',async()=>{const _0x1b93ca=a0_0x5550,module=await import('../../state/useMessages.js');expect(module[_0x1b93ca(0xa4)])['toBeDefined'](),expect(typeof module['default'])['toBe'](_0x1b93ca(0xa2)),expect(module['default'])[_0x1b93ca(0x86)](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0xe9dd71=a0_0x5550,{useMessageCount:_0x1f42cb}=await import('../../state/useMessages.js');expect(_0x1f42cb)[_0xe9dd71(0x87)](),expect(typeof _0x1f42cb)[_0xe9dd71(0x86)]('function');});}),describe(a0_0x453c78(0x89),()=>{const _0x5245ec=a0_0x453c78;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x3058d0=a0_0x5550,{MESSAGE_ROLE:_0x20a451}=await import('../../config/constants.js');expect(_0x20a451)['toBeDefined'](),expect(_0x20a451[_0x3058d0(0x94)])['toBe']('user'),expect(_0x20a451[_0x3058d0(0x7d)])['toBe']('assistant'),expect(_0x20a451[_0x3058d0(0x81)])['toBe'](_0x3058d0(0x93));}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x245eeb=a0_0x5550,{MESSAGE_TYPE:_0x2a92d1}=await import(_0x245eeb(0x8e));expect(_0x2a92d1)[_0x245eeb(0x87)](),expect(_0x2a92d1[_0x245eeb(0x95)])[_0x245eeb(0x86)]('user-message'),expect(_0x2a92d1[_0x245eeb(0x96)])['toBe']('agent-response'),expect(_0x2a92d1['SYSTEM_NOTIFICATION'])['toBe'](_0x245eeb(0x8d));}),test('MESSAGE_CONFIG\x20constants\x20are\x20defined',async()=>{const _0x33d2d6=a0_0x5550,{MESSAGE_CONFIG:_0x4ea32d}=await import('../../config/constants.js');expect(_0x4ea32d)[_0x33d2d6(0x87)](),expect(_0x4ea32d['MAX_MESSAGE_LENGTH'])[_0x33d2d6(0x87)](),expect(_0x4ea32d['MAX_MESSAGES_DISPLAY'])[_0x33d2d6(0x87)](),expect(typeof _0x4ea32d['MAX_MESSAGE_LENGTH'])[_0x33d2d6(0x86)]('number'),expect(typeof _0x4ea32d[_0x33d2d6(0x9a)])['toBe']('number');}),test(_0x5245ec(0xa6),async()=>{const _0x4fd96d=_0x5245ec,{PAGINATION:_0x5e1293}=await import(_0x4fd96d(0x8e));expect(_0x5e1293)[_0x4fd96d(0x87)](),expect(_0x5e1293['PAGE_SIZE'])[_0x4fd96d(0x87)](),expect(_0x5e1293[_0x4fd96d(0x78)])['toBeDefined'](),expect(typeof _0x5e1293[_0x4fd96d(0x7e)])[_0x4fd96d(0x86)](_0x4fd96d(0xa5)),expect(typeof _0x5e1293['MAX_PAGE_SIZE'])[_0x4fd96d(0x86)](_0x4fd96d(0xa5));}),test(_0x5245ec(0x98),async()=>{const _0x161bf3=_0x5245ec,{WS_MESSAGE_TYPE:_0x6cc3bd}=await import(_0x161bf3(0x8e));expect(_0x6cc3bd)['toBeDefined'](),expect(_0x6cc3bd['MESSAGE_ADDED'])[_0x161bf3(0x86)]('message_added'),expect(_0x6cc3bd[_0x161bf3(0x9d)])[_0x161bf3(0x86)]('agent_mode_changed'),expect(_0x6cc3bd['EXECUTION_STOPPED'])['toBe']('execution_stopped');});}),describe('Message\x20Management\x20-\x20Integration',()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x201a87=a0_0x5550,{useMessages:_0x4a34e0}=await import('../../state/useMessages.js'),{SessionManager:_0x36fa07}=await import('../../api/session.js'),{MessageRouter:_0x39ded6}=await import(_0x201a87(0x7b)),{WebSocketManager:_0x38077e}=await import('../../api/websocket.js'),_0x53109d=new _0x36fa07(_0x201a87(0x97),0x1f90),_0x2ba859=new _0x38077e('localhost',0x1f90),_0x1c2448=new _0x39ded6(_0x2ba859);expect(_0x53109d)['toBeDefined'](),expect(_0x1c2448)['toBeDefined'](),expect(typeof _0x4a34e0)[_0x201a87(0x86)](_0x201a87(0xa2));}),test('Full message management stack can be imported together',async()=>{const _0x50175d=a0_0x5550,[_0x1d7f29,_0x171d4e,_0x108620,_0x35e9eb,_0x26fb12]=await Promise['all']([import(_0x50175d(0x8e)),import(_0x50175d(0x76)),import(_0x50175d(0xa8)),import('../../api/messageRouter.js'),import(_0x50175d(0x84))]);expect(_0x1d7f29[_0x50175d(0x9c)])['toBeDefined'](),expect(_0x1d7f29[_0x50175d(0x7f)])['toBeDefined'](),expect(_0x1d7f29['MESSAGE_CONFIG'])[_0x50175d(0x87)](),expect(_0x171d4e['SessionManager'])['toBeDefined'](),expect(_0x108620[_0x50175d(0xaa)])[_0x50175d(0x87)](),expect(_0x35e9eb['MessageRouter'])[_0x50175d(0x87)](),expect(_0x26fb12[_0x50175d(0x8c)])['toBeDefined']();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{test('Orchestrator\x20endpoint\x20can\x20be\x20used\x20for\x20message\x20operations',async()=>{const _0x25be99=a0_0x5550,{API_ENDPOINTS:_0x1fc3d8}=await import('../../config/constants.js');expect(_0x1fc3d8[_0x25be99(0x82)])['toBeDefined'](),expect(_0x1fc3d8[_0x25be99(0x82)])['toBe']('/api/orchestrator');}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x2d749d=a0_0x5550,{API_ENDPOINTS:_0x9ed451}=await import(_0x2d749d(0x8e));expect(_0x9ed451['ORCHESTRATOR'])['toMatch'](/^\/api\//);});}),describe(a0_0x453c78(0xa7),()=>{test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const {useMessages:_0x541897}=await import('../../state/useMessages.js');expect(_0x541897['length'])['toBe'](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const {useMessageCount:_0x1ee58d}=await import('../../state/useMessages.js');expect(_0x1ee58d['length'])['toBe'](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x3e6b57=a0_0x453c78;test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x4a333f=a0_0x5550,{MESSAGE_CONFIG:_0x5d603b}=await import(_0x4a333f(0x8e));expect(_0x5d603b['MAX_MESSAGE_LENGTH'])[_0x4a333f(0x99)](0x0),expect(_0x5d603b['MAX_MESSAGE_LENGTH'])[_0x4a333f(0x90)](0x186a0),expect(_0x5d603b[_0x4a333f(0x9a)])['toBeGreaterThan'](0x0),expect(_0x5d603b['MAX_MESSAGES_DISPLAY'])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x5a4d2b=a0_0x5550,{PAGINATION:_0x3663cb}=await import(_0x5a4d2b(0x8e));expect(_0x3663cb[_0x5a4d2b(0x7e)])['toBeGreaterThan'](0x0),expect(_0x3663cb[_0x5a4d2b(0x7e)])['toBeLessThanOrEqual'](0x3e8),expect(_0x3663cb[_0x5a4d2b(0x78)])[_0x5a4d2b(0x9b)](_0x3663cb[_0x5a4d2b(0x7e)]);}),test(_0x3e6b57(0xa3),async()=>{const _0x1d772d=_0x3e6b57,{MESSAGE_ROLE:_0x476ad6}=await import(_0x1d772d(0x8e));expect(_0x476ad6[_0x1d772d(0x94)])['toBe'](_0x476ad6[_0x1d772d(0x94)][_0x1d772d(0x85)]()),expect(_0x476ad6[_0x1d772d(0x7d)])['toBe'](_0x476ad6[_0x1d772d(0x7d)]['toLowerCase']()),expect(_0x476ad6['SYSTEM'])[_0x1d772d(0x86)](_0x476ad6[_0x1d772d(0x81)][_0x1d772d(0x85)]());});}),describe(a0_0x453c78(0x79),()=>{const _0x569ac7=a0_0x453c78;test(_0x569ac7(0x88),async()=>{const _0x513d01=_0x569ac7,{MessageRouter:_0xcbe0d4}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1db165}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x12f8a8}=await import('../../config/constants.js'),_0x3f1df7=new _0x1db165('localhost',0x1f90),_0x29eba7=new _0xcbe0d4(_0x3f1df7);expect(_0x29eba7[_0x513d01(0x8a)](_0x12f8a8['MESSAGE_ADDED']))[_0x513d01(0x86)](!![]),expect(_0x29eba7['hasHandler'](_0x12f8a8['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe('Message\x20Management\x20-\x20Error\x20Handling',()=>{const _0x1d5631=a0_0x453c78;test(_0x1d5631(0x8f),async()=>{const _0x229d44=_0x1d5631,{MESSAGE_CONFIG:_0x4cecf3}=await import('../../config/constants.js');expect(_0x4cecf3['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(typeof _0x4cecf3['MAX_MESSAGE_LENGTH'])[_0x229d44(0x86)](_0x229d44(0xa5));const _0x1b7f03='a'[_0x229d44(0x9f)](_0x4cecf3[_0x229d44(0xab)]+0x1);expect(_0x1b7f03[_0x229d44(0x7a)])['toBeGreaterThan'](_0x4cecf3['MAX_MESSAGE_LENGTH']);}),test('MESSAGE_CONFIG\x20enforces\x20maximum\x20display\x20messages',async()=>{const _0x42a79c=_0x1d5631,{MESSAGE_CONFIG:_0x2772be}=await import(_0x42a79c(0x8e));expect(_0x2772be['MAX_MESSAGES_DISPLAY'])['toBeDefined'](),expect(typeof _0x2772be['MAX_MESSAGES_DISPLAY'])['toBe']('number'),expect(_0x2772be[_0x42a79c(0x9a)])[_0x42a79c(0x99)](0x0);});}),describe(a0_0x453c78(0x9e),()=>{const _0x4eb3cb=a0_0x453c78;test(_0x4eb3cb(0x91),async()=>{const _0x27c543=_0x4eb3cb,{PAGINATION:_0x5059d1}=await import('../../config/constants.js'),_0x2d92ab=0x0,_0x274b47=_0x2d92ab*_0x5059d1['PAGE_SIZE'];expect(_0x274b47)['toBe'](0x0);const _0xc01aa6=0x1,_0x2397b6=_0xc01aa6*_0x5059d1['PAGE_SIZE'];expect(_0x2397b6)[_0x27c543(0x86)](_0x5059d1[_0x27c543(0x7e)]);}),test(_0x4eb3cb(0x77),async()=>{const _0x16ff45=_0x4eb3cb,{PAGINATION:_0x446ea2}=await import(_0x16ff45(0x8e)),_0xc60876=0x3e8,_0x14bc94=Math['min'](_0xc60876,_0x446ea2[_0x16ff45(0x78)]);expect(_0x14bc94)[_0x16ff45(0x90)](_0x446ea2['MAX_PAGE_SIZE']);});});
1
+ const a0_0x37cf4a=a0_0x58ea;(function(_0x2d9759,_0x28a9b3){const _0x52de01=a0_0x58ea,_0x594853=_0x2d9759();while(!![]){try{const _0x9235c3=parseInt(_0x52de01(0xb9))/0x1*(-parseInt(_0x52de01(0xc7))/0x2)+parseInt(_0x52de01(0xbd))/0x3*(parseInt(_0x52de01(0xbb))/0x4)+parseInt(_0x52de01(0xcb))/0x5+parseInt(_0x52de01(0xdf))/0x6+parseInt(_0x52de01(0xd2))/0x7*(-parseInt(_0x52de01(0xbf))/0x8)+-parseInt(_0x52de01(0xc9))/0x9+parseInt(_0x52de01(0xdc))/0xa;if(_0x9235c3===_0x28a9b3)break;else _0x594853['push'](_0x594853['shift']());}catch(_0x48dbf9){_0x594853['push'](_0x594853['shift']());}}}(a0_0x35a0,0x59292));import{describe,test,expect}from'@jest/globals';function a0_0x58ea(_0x2139e0,_0x33691f){_0x2139e0=_0x2139e0-0xa1;const _0x35a0b5=a0_0x35a0();let _0x58ea11=_0x35a0b5[_0x2139e0];if(a0_0x58ea['eaKUcH']===undefined){var _0xd651a0=function(_0x4e2304){const _0x3989fc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2ccf7b='',_0x164d3c='';for(let _0x5b5e99=0x0,_0x29d787,_0x14cb12,_0x2084cc=0x0;_0x14cb12=_0x4e2304['charAt'](_0x2084cc++);~_0x14cb12&&(_0x29d787=_0x5b5e99%0x4?_0x29d787*0x40+_0x14cb12:_0x14cb12,_0x5b5e99++%0x4)?_0x2ccf7b+=String['fromCharCode'](0xff&_0x29d787>>(-0x2*_0x5b5e99&0x6)):0x0){_0x14cb12=_0x3989fc['indexOf'](_0x14cb12);}for(let _0x266686=0x0,_0x5c78e8=_0x2ccf7b['length'];_0x266686<_0x5c78e8;_0x266686++){_0x164d3c+='%'+('00'+_0x2ccf7b['charCodeAt'](_0x266686)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x164d3c);};a0_0x58ea['prhpaY']=_0xd651a0,a0_0x58ea['mixsia']={},a0_0x58ea['eaKUcH']=!![];}const _0xc1658c=_0x35a0b5[0x0],_0x5638cf=_0x2139e0+_0xc1658c,_0x44a675=a0_0x58ea['mixsia'][_0x5638cf];return!_0x44a675?(_0x58ea11=a0_0x58ea['prhpaY'](_0x58ea11),a0_0x58ea['mixsia'][_0x5638cf]=_0x58ea11):_0x58ea11=_0x44a675,_0x58ea11;}function a0_0x35a0(){const _0x50dc37=['tuvtu0fhrv9dt05gsuC','nhDpv3zXtG','vvnfuG','nJq4mZnvAvDdr1C','BgvUz3rO','mJuXmda1nKveshfpza','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','tuvtu0fhrv9uwvbf','l2fWAs9VCMnOzxn0CMf0B3i','Dg9czq','t1jdsevtvfjbve9s','zNvUy3rPB24','vvnfuL9nrvntquDf','otK4ndjhvwjnuLy','DxnLtwvZC2fNzxm','ntG2odK3mNrNB1D0vW','Dg9czuDYzwf0zxjuAgfU','mJe0mZy2nxHhBfLmyW','Bg9JywXOB3n0','tufyx01fu1nbr0vFtevor1ri','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZifzHBgLKyxrPB24','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','Dg9nyxrJAa','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','mtrkA3rlsMe','tuvtu0fhrv9st0Xf','Dg9mB3DLCKnHC2u','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbKAxnWBgf5ig1LC3nHz2vZ','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','quDftLrFuKvtue9ou0u','tufyx01fu1nbr0vtx0rju1bmqvK','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','qvntsvnuqu5u','C3LZDgvTlw5VDgLMAwnHDgLVBG','nZK2ndGYmgfJAevyBW','lI4VlI4VyxbPl3nLC3nPB24UANm','AgfZsgfUzgXLCG','nde4nte0ng1YtuT4wq','rvHfq1vusu9ox1nut1bqruq','zgvMyxvSDa','u1Ltvevn','ywDLBNqTCMvZCg9UC2u','tufyx1bbr0vFu0LArq','BNvTyMvY','tuvtu0fhrv9st0XfihzHBhvLCYbHCMuGBg93zxjJyxnL','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','BwLU','Dg9czurLzMLUzwq','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','twvZC2fNzsbnyw5Hz2vTzw50ic0GrxjYB3iGsgfUzgXPBMC','ywDLBNrFBw9Kzv9JAgfUz2vK','Dg9czuXLC3nuAgfUt3jfCxvHBa','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','yxnZAxn0yw50','tuvtu0fhrv9brerfra','zxHLy3v0Aw9Ux3n0B3bWzwq','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','uefhrv9tsvPf','u1Ltvevnx05pveLgsunbveLptG','CMvWzwf0','twvZC2fNzvjVDxrLCG','nKLLD3boEG'];a0_0x35a0=function(){return _0x50dc37;};return a0_0x35a0();}describe(a0_0x37cf4a(0xc0),()=>{test('useMessages hook can be imported',async()=>{const _0x1d1db5=a0_0x58ea,{useMessages:_0x2ccf7b}=await import(_0x1d1db5(0xb4));expect(_0x2ccf7b)[_0x1d1db5(0xa9)](),expect(typeof _0x2ccf7b)[_0x1d1db5(0xc3)]('function');}),test('useMessages is default export',async()=>{const _0x41da2f=a0_0x58ea,module=await import(_0x41da2f(0xb4));expect(module[_0x41da2f(0xa1)])['toBeDefined'](),expect(typeof module[_0x41da2f(0xa1)])[_0x41da2f(0xc3)]('function'),expect(module['default'])[_0x41da2f(0xc3)](module[_0x41da2f(0xc8)]);}),test('useMessageCount helper hook can be imported',async()=>{const _0x477faa=a0_0x58ea,{useMessageCount:_0x164d3c}=await import(_0x477faa(0xb4));expect(_0x164d3c)['toBeDefined'](),expect(typeof _0x164d3c)['toBe'](_0x477faa(0xc5));});}),describe('Message\x20Management\x20-\x20Constants',()=>{const _0x1b4823=a0_0x37cf4a;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x1ec5ff=a0_0x58ea,{MESSAGE_ROLE:_0x5b5e99}=await import(_0x1ec5ff(0xcf));expect(_0x5b5e99)['toBeDefined'](),expect(_0x5b5e99['USER'])[_0x1ec5ff(0xc3)]('user'),expect(_0x5b5e99['ASSISTANT'])['toBe'](_0x1ec5ff(0xb1)),expect(_0x5b5e99[_0x1ec5ff(0xa2)])['toBe']('system');}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x2b7b67=a0_0x58ea,{MESSAGE_TYPE:_0x29d787}=await import(_0x2b7b67(0xcf));expect(_0x29d787)['toBeDefined'](),expect(_0x29d787[_0x2b7b67(0xc6)])[_0x2b7b67(0xc3)]('user-message'),expect(_0x29d787[_0x2b7b67(0xd7)])['toBe'](_0x2b7b67(0xa3)),expect(_0x29d787[_0x2b7b67(0xb6)])[_0x2b7b67(0xc3)](_0x2b7b67(0xdb));}),test('MESSAGE_CONFIG\x20constants\x20are\x20defined',async()=>{const _0x35ef6e=a0_0x58ea,{MESSAGE_CONFIG:_0x14cb12}=await import('../../config/constants.js');expect(_0x14cb12)[_0x35ef6e(0xa9)](),expect(_0x14cb12['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(_0x14cb12[_0x35ef6e(0xd8)])[_0x35ef6e(0xa9)](),expect(typeof _0x14cb12[_0x35ef6e(0xcd)])['toBe']('number'),expect(typeof _0x14cb12[_0x35ef6e(0xd8)])['toBe'](_0x35ef6e(0xa5));}),test(_0x1b4823(0xae),async()=>{const _0x208921=_0x1b4823,{PAGINATION:_0x2084cc}=await import('../../config/constants.js');expect(_0x2084cc)[_0x208921(0xa9)](),expect(_0x2084cc['PAGE_SIZE'])[_0x208921(0xa9)](),expect(_0x2084cc['MAX_PAGE_SIZE'])['toBeDefined'](),expect(typeof _0x2084cc['PAGE_SIZE'])['toBe'](_0x208921(0xa5)),expect(typeof _0x2084cc[_0x208921(0xa4)])['toBe'](_0x208921(0xa5));}),test('WS_MESSAGE_TYPE\x20includes\x20message\x20events',async()=>{const _0x232227=_0x1b4823,{WS_MESSAGE_TYPE:_0x266686}=await import('../../config/constants.js');expect(_0x266686)['toBeDefined'](),expect(_0x266686[_0x232227(0xb2)])[_0x232227(0xc3)]('message_added'),expect(_0x266686['AGENT_MODE_CHANGED'])['toBe'](_0x232227(0xac)),expect(_0x266686[_0x232227(0xe0)])[_0x232227(0xc3)](_0x232227(0xb3));});}),describe(a0_0x37cf4a(0xd6),()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0xade50d=a0_0x58ea,{useMessages:_0x5c78e8}=await import('../../state/useMessages.js'),{SessionManager:_0x57245d}=await import('../../api/session.js'),{MessageRouter:_0x46524b}=await import(_0xade50d(0xa7)),{WebSocketManager:_0x50fc0a}=await import(_0xade50d(0xaf)),_0x1fc13b=new _0x57245d('localhost',0x1f90),_0x484243=new _0x50fc0a('localhost',0x1f90),_0x4e86d0=new _0x46524b(_0x484243);expect(_0x1fc13b)[_0xade50d(0xa9)](),expect(_0x4e86d0)[_0xade50d(0xa9)](),expect(typeof _0x5c78e8)[_0xade50d(0xc3)]('function');}),test('Full message management stack can be imported together',async()=>{const _0x4b7b74=a0_0x58ea,[_0x3e1f64,_0x1d26d2,_0x5cc1bb,_0x1cde50,_0x1d0811]=await Promise['all']([import(_0x4b7b74(0xcf)),import(_0x4b7b74(0xdd)),import('../../api/websocket.js'),import(_0x4b7b74(0xa7)),import(_0x4b7b74(0xb4))]);expect(_0x3e1f64[_0x4b7b74(0xd3)])[_0x4b7b74(0xa9)](),expect(_0x3e1f64[_0x4b7b74(0xc1)])[_0x4b7b74(0xa9)](),expect(_0x3e1f64[_0x4b7b74(0xba)])['toBeDefined'](),expect(_0x1d26d2['SessionManager'])[_0x4b7b74(0xa9)](),expect(_0x5cc1bb['WebSocketManager'])[_0x4b7b74(0xa9)](),expect(_0x1cde50[_0x4b7b74(0xb8)])[_0x4b7b74(0xa9)](),expect(_0x1d0811[_0x4b7b74(0xc8)])['toBeDefined']();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{test('Orchestrator\x20endpoint\x20can\x20be\x20used\x20for\x20message\x20operations',async()=>{const _0x491ffa=a0_0x58ea,{API_ENDPOINTS:_0x4ab4f1}=await import(_0x491ffa(0xcf));expect(_0x4ab4f1[_0x491ffa(0xc4)])['toBeDefined'](),expect(_0x4ab4f1['ORCHESTRATOR'])[_0x491ffa(0xc3)](_0x491ffa(0xc2));}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x5ae630=a0_0x58ea,{API_ENDPOINTS:_0x5b1e76}=await import(_0x5ae630(0xcf));expect(_0x5b1e76[_0x5ae630(0xc4)])[_0x5ae630(0xd0)](/^\/api\//);});}),describe(a0_0x37cf4a(0xaa),()=>{test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x39dc98=a0_0x58ea,{useMessages:_0x56f253}=await import(_0x39dc98(0xb4));expect(_0x56f253[_0x39dc98(0xbe)])['toBe'](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x4fff3b=a0_0x58ea,{useMessageCount:_0x51d51c}=await import('../../state/useMessages.js');expect(_0x51d51c[_0x4fff3b(0xbe)])[_0x4fff3b(0xc3)](0x1);});}),describe(a0_0x37cf4a(0xce),()=>{const _0x54ece3=a0_0x37cf4a;test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x3e2578=a0_0x58ea,{MESSAGE_CONFIG:_0x4e8d9a}=await import(_0x3e2578(0xcf));expect(_0x4e8d9a['MAX_MESSAGE_LENGTH'])[_0x3e2578(0xca)](0x0),expect(_0x4e8d9a['MAX_MESSAGE_LENGTH'])['toBeLessThanOrEqual'](0x186a0),expect(_0x4e8d9a[_0x3e2578(0xd8)])['toBeGreaterThan'](0x0),expect(_0x4e8d9a[_0x3e2578(0xd8)])[_0x3e2578(0xad)](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x3aa94a=a0_0x58ea,{PAGINATION:_0x32b03e}=await import(_0x3aa94a(0xcf));expect(_0x32b03e[_0x3aa94a(0xb5)])[_0x3aa94a(0xca)](0x0),expect(_0x32b03e['PAGE_SIZE'])['toBeLessThanOrEqual'](0x3e8),expect(_0x32b03e[_0x3aa94a(0xa4)])[_0x3aa94a(0xd9)](_0x32b03e['PAGE_SIZE']);}),test(_0x54ece3(0xa6),async()=>{const _0x5d32fa=_0x54ece3,{MESSAGE_ROLE:_0x88d0aa}=await import(_0x5d32fa(0xcf));expect(_0x88d0aa[_0x5d32fa(0xbc)])[_0x5d32fa(0xc3)](_0x88d0aa[_0x5d32fa(0xbc)]['toLowerCase']()),expect(_0x88d0aa['ASSISTANT'])['toBe'](_0x88d0aa[_0x5d32fa(0xda)][_0x5d32fa(0xd4)]()),expect(_0x88d0aa[_0x5d32fa(0xa2)])[_0x5d32fa(0xc3)](_0x88d0aa[_0x5d32fa(0xa2)]['toLowerCase']());});}),describe(a0_0x37cf4a(0xb0),()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0x5b2978=a0_0x58ea,{MessageRouter:_0x578b1d}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x26099b}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x2a9344}=await import(_0x5b2978(0xcf)),_0x51888c=new _0x26099b(_0x5b2978(0xcc),0x1f90),_0x5fcfc8=new _0x578b1d(_0x51888c);expect(_0x5fcfc8[_0x5b2978(0xde)](_0x2a9344[_0x5b2978(0xb2)]))['toBe'](!![]),expect(_0x5fcfc8[_0x5b2978(0xde)](_0x2a9344['AGENT_MODE_CHANGED']))[_0x5b2978(0xc3)](!![]);});}),describe(a0_0x37cf4a(0xab),()=>{const _0x209978=a0_0x37cf4a;test('MESSAGE_CONFIG\x20enforces\x20maximum\x20message\x20length',async()=>{const _0x596be0=a0_0x58ea,{MESSAGE_CONFIG:_0x4a37dd}=await import(_0x596be0(0xcf));expect(_0x4a37dd[_0x596be0(0xcd)])[_0x596be0(0xa9)](),expect(typeof _0x4a37dd['MAX_MESSAGE_LENGTH'])['toBe']('number');const _0x1d3bb0='a'[_0x596be0(0xb7)](_0x4a37dd['MAX_MESSAGE_LENGTH']+0x1);expect(_0x1d3bb0['length'])[_0x596be0(0xca)](_0x4a37dd[_0x596be0(0xcd)]);}),test(_0x209978(0xd5),async()=>{const _0x13ff07=_0x209978,{MESSAGE_CONFIG:_0x4716c1}=await import('../../config/constants.js');expect(_0x4716c1[_0x13ff07(0xd8)])[_0x13ff07(0xa9)](),expect(typeof _0x4716c1['MAX_MESSAGES_DISPLAY'])['toBe'](_0x13ff07(0xa5)),expect(_0x4716c1['MAX_MESSAGES_DISPLAY'])['toBeGreaterThan'](0x0);});}),describe(a0_0x37cf4a(0xd1),()=>{test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x33f82e=a0_0x58ea,{PAGINATION:_0x399056}=await import('../../config/constants.js'),_0x4a5e74=0x0,_0x2b75ce=_0x4a5e74*_0x399056[_0x33f82e(0xb5)];expect(_0x2b75ce)[_0x33f82e(0xc3)](0x0);const _0x2694d5=0x1,_0x6ac52a=_0x2694d5*_0x399056['PAGE_SIZE'];expect(_0x6ac52a)['toBe'](_0x399056['PAGE_SIZE']);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0x33815c=a0_0x58ea,{PAGINATION:_0x3f5417}=await import('../../config/constants.js'),_0x1b76cd=0x3e8,_0x51779b=Math[_0x33815c(0xa8)](_0x1b76cd,_0x3f5417[_0x33815c(0xa4)]);expect(_0x51779b)[_0x33815c(0xad)](_0x3f5417['MAX_PAGE_SIZE']);});});
@@ -1 +1 @@
1
- const a0_0x3203ea=a0_0x30c0;(function(_0x40d6ee,_0x3320e0){const _0x4d1942=a0_0x30c0,_0x3e6acf=_0x40d6ee();while(!![]){try{const _0x513642=parseInt(_0x4d1942(0x92))/0x1*(parseInt(_0x4d1942(0x8a))/0x2)+parseInt(_0x4d1942(0xa6))/0x3+-parseInt(_0x4d1942(0x88))/0x4*(-parseInt(_0x4d1942(0x79))/0x5)+parseInt(_0x4d1942(0xbf))/0x6+parseInt(_0x4d1942(0x9e))/0x7+parseInt(_0x4d1942(0xb6))/0x8*(parseInt(_0x4d1942(0xad))/0x9)+-parseInt(_0x4d1942(0xac))/0xa;if(_0x513642===_0x3320e0)break;else _0x3e6acf['push'](_0x3e6acf['shift']());}catch(_0x12d74b){_0x3e6acf['push'](_0x3e6acf['shift']());}}}(a0_0x3ade,0x9c6a1));import{describe,test,expect}from'@jest/globals';function a0_0x30c0(_0x1b3de,_0x182470){_0x1b3de=_0x1b3de-0x76;const _0x3ade75=a0_0x3ade();let _0x30c0c4=_0x3ade75[_0x1b3de];if(a0_0x30c0['CkZVKq']===undefined){var _0x57ae2f=function(_0x15b726){const _0x472275='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2be362='',_0x522994='';for(let _0x1735e8=0x0,_0x403114,_0x19c79e,_0x2526b2=0x0;_0x19c79e=_0x15b726['charAt'](_0x2526b2++);~_0x19c79e&&(_0x403114=_0x1735e8%0x4?_0x403114*0x40+_0x19c79e:_0x19c79e,_0x1735e8++%0x4)?_0x2be362+=String['fromCharCode'](0xff&_0x403114>>(-0x2*_0x1735e8&0x6)):0x0){_0x19c79e=_0x472275['indexOf'](_0x19c79e);}for(let _0x17f8dc=0x0,_0x2a43b0=_0x2be362['length'];_0x17f8dc<_0x2a43b0;_0x17f8dc++){_0x522994+='%'+('00'+_0x2be362['charCodeAt'](_0x17f8dc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x522994);};a0_0x30c0['WNjrcY']=_0x57ae2f,a0_0x30c0['MLwXNr']={},a0_0x30c0['CkZVKq']=!![];}const _0x5197a7=_0x3ade75[0x0],_0x22387f=_0x1b3de+_0x5197a7,_0x3eb616=a0_0x30c0['MLwXNr'][_0x22387f];return!_0x3eb616?(_0x30c0c4=a0_0x30c0['WNjrcY'](_0x30c0c4),a0_0x30c0['MLwXNr'][_0x22387f]=_0x30c0c4):_0x30c0c4=_0x3eb616,_0x30c0c4;}function a0_0x3ade(){const _0xb2ce28=['qu5btfLtsvm','zxHLy3v0zv9JB21Tyw5K','C2L6zq','mtaWuuvwquPV','vg9VBcbVCgvYyxrPB25ZihvZzsbVCMnOzxn0CMf0B3iGzw5KCg9PBNq','vg9VBhmGtwfUywDLBwvUDcaTienHDgvNB3j5ienVDw50CW','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CW','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','Dg9czurLzMLUzwq','AgfZsgfUzgXLCG','vg9VBcbZzwfYy2GGC2HVDwXKihDVCMSGD2L0AcbUyw1LigfUzcbKzxnJCMLWDgLVBG','zNvUy3rPB24','ve9ptf9dqvrfr09swsbJyw4GyMuGDxnLzcb0BYbMAwX0zxiGDg9VBhmGyNKGy2f0zwDVCNK','zgvMyxvSDa','vg9VBhmGtwfUywDLBwvUDcaTieLTCg9YDhm','mJy3mJC4mNzAzKnMua','lI4VlI4VyxbPl3nLC3nPB24UANm','zMLSDgvY','CMvHzf9MAwXL','vg9VBhmGtwfUywDLBwvUDcaTiev4zwn1DgLVBIbtDgf0zsbuCMfJA2LUzW','Dg9mB3DLCKnHC2u','ywrK','AxnZDwvZ','mJGWmtiYnMD5wvLZyW','zgf0yq','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','ve9ptf9dqvrfr09swsb2ywX1zxmGyxjLigXVD2vYy2fZzq','vg9VBhmGtwfUywDLBwvUDcaTieHVB2SGsw50zxjMywnLifzLCMLMAwnHDgLVBG','qvbjx0vorfbpsu5uuW','mZG2ndi0mtbsBfzNAvy','oty1mduYDwjTwuTh','u1Ltvevn','DxnLvg9VBhmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','z2v0','ve9ptf9dqvrfr09swsbPBMnSDwrLCYbHBgWGBwfQB3iGy2f0zwDVCMLLCW','ugvYzM9YBsbZDgf0AwmGy29KzsbHBMfSExnPCW','v3jPDguGzgf0ysb0BYbHigzPBgu','l2fWAs9VCMnOzxn0CMf0B3i','zMLSzq','mZjNuML5ELK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','zxHLyY0Y','AgfZ','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','v2vIu29JA2v0twfUywDLCG','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CYbwywXPzgf0Aw9U','y2f0zwDVCNK','ywXS','nZeZmdGWmK5xCvD5uq','Dg9nyxrJAa','D2vIx3nLyxjJAa','DgvYBwLUywW','t1jdsevtvfjbve9s','BMfTzq','nxjgEwTIvG','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','BgvUz3rO','vvrjteLuwq','zxHLyY0X','qvvut01bveLptG','BM93','D3jPDgvFzMLSzq','zw5HyMXLza','vg9VBhmGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','vg9VBcbJywnOzsbLEhbPCMvZigfMDgvYifruta','t3jJAgvZDhjHDg9YigvUzhbVAw50igLZihvZzwqGzM9YihrVB2WGB3bLCMf0Aw9UCW','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGrMLSDgvYAw5N','vg9VBhmGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG','DxnLvg9VBhmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','mZeWotq2oezhtgnHsG','Dg9czq','mtu4otjMzw5Utwu','ywLFyxnZAxn0yw50','vg9VBcbJywnOzsbZDxbWB3j0CYbuveWTyMfZzwqGy2fJAgLUzW','Dg9dB250ywLU','yw5HBhL6zv9JB2rL'];a0_0x3ade=function(){return _0xb2ce28;};return a0_0x3ade();}describe(a0_0x3203ea(0x9d),()=>{test('useTools hook can be imported',async()=>{const _0x2d281f=a0_0x30c0,{useTools:_0x2be362}=await import('../../state/useTools.js');expect(_0x2be362)[_0x2d281f(0x97)](),expect(typeof _0x2be362)['toBe']('function');}),test('useTools is default export',async()=>{const _0x65c913=a0_0x30c0,module=await import(_0x65c913(0xba));expect(module[_0x65c913(0x9c)])['toBeDefined'](),expect(typeof module[_0x65c913(0x9c)])['toBe']('function'),expect(module[_0x65c913(0x9c)])['toBe'](module['useTools']);});}),describe(a0_0x3203ea(0x95),()=>{const _0x1f6ae5=a0_0x3203ea;test('TOOL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x417630=a0_0x30c0,{TOOL_CATEGORY:_0x522994}=await import('../../config/constants.js');expect(_0x522994)[_0x417630(0x97)](),expect(_0x522994['SYSTEM'])[_0x417630(0x97)](),expect(_0x522994[_0x417630(0x7e)])['toBeDefined'](),expect(_0x522994['ANALYSIS'])['toBeDefined'](),expect(_0x522994['UTILITY'])[_0x417630(0x97)](),expect(_0x522994['COLLABORATION'])[_0x417630(0x97)](),expect(_0x522994['AI'])['toBeDefined']();}),test(_0x1f6ae5(0xa9),async()=>{const _0x584e61=_0x1f6ae5,{TOOL_CATEGORY:_0x1735e8}=await import(_0x584e61(0x96));expect(_0x1735e8['SYSTEM'])[_0x584e61(0x89)](_0x1735e8[_0x584e61(0xae)][_0x584e61(0xa3)]()),expect(_0x1735e8['AUTOMATION'])[_0x584e61(0x89)](_0x1735e8[_0x584e61(0x7e)]['toLowerCase']()),expect(_0x1735e8[_0x584e61(0x8f)])['toBe'](_0x1735e8[_0x584e61(0x8f)]['toLowerCase']()),expect(_0x1735e8['UTILITY'])['toBe'](_0x1735e8['UTILITY']['toLowerCase']());}),test('Tools\x20API\x20endpoint\x20is\x20defined',async()=>{const _0x80d6cc=_0x1f6ae5,{API_ENDPOINTS:_0x403114}=await import(_0x80d6cc(0x96));expect(_0x403114['TOOLS'])[_0x80d6cc(0x97)](),expect(_0x403114['TOOLS'])[_0x80d6cc(0x89)]('/api/tools');}),test(_0x1f6ae5(0x84),async()=>{const _0x269dc5=_0x1f6ae5,{API_ENDPOINTS:_0x19c79e}=await import(_0x269dc5(0x96));expect(_0x19c79e[_0x269dc5(0x77)])[_0x269dc5(0x97)](),expect(_0x19c79e[_0x269dc5(0x77)])[_0x269dc5(0x89)]('/api/orchestrator');});}),describe(a0_0x3203ea(0x82),()=>{const _0x2903c8=a0_0x3203ea;test(_0x2903c8(0x87),async()=>{const _0x3a0a61=_0x2903c8,{useTools:_0x2526b2}=await import(_0x3a0a61(0xba)),{SessionManager:_0x17f8dc}=await import('../../api/session.js'),{MessageRouter:_0x2a43b0}=await import(_0x3a0a61(0xb7)),{WebSocketManager:_0x206470}=await import(_0x3a0a61(0x7a)),_0x5a1e8b=new _0x17f8dc('localhost',0x1f90),_0x7cbeab=new _0x206470('localhost',0x1f90),_0x270b3b=new _0x2a43b0(_0x7cbeab);expect(_0x5a1e8b)['toBeDefined'](),expect(_0x270b3b)['toBeDefined'](),expect(typeof _0x2526b2)['toBe']('function');}),test('Full tools management stack can be imported together',async()=>{const _0x5d81da=_0x2903c8,[_0x2f49c2,_0x2d52c0,_0x5ad407,_0x588713,_0x2e2fa0]=await Promise[_0x5d81da(0xbe)]([import('../../config/constants.js'),import(_0x5d81da(0x9f)),import('../../api/websocket.js'),import(_0x5d81da(0xb7)),import('../../state/useTools.js')]);expect(_0x2f49c2['TOOL_CATEGORY'])['toBeDefined'](),expect(_0x2f49c2[_0x5d81da(0xab)])['toBeDefined'](),expect(_0x2d52c0['SessionManager'])[_0x5d81da(0x97)](),expect(_0x5ad407[_0x5d81da(0xbb)])['toBeDefined'](),expect(_0x588713['MessageRouter'])[_0x5d81da(0x97)](),expect(_0x2e2fa0['useTools'])['toBeDefined']();});}),describe(a0_0x3203ea(0x86),()=>{const _0x1a7056=a0_0x3203ea;test('Tools\x20endpoint\x20follows\x20RESTful\x20pattern',async()=>{const _0x9827ad=a0_0x30c0,{API_ENDPOINTS:_0x22be17}=await import(_0x9827ad(0x96));expect(_0x22be17['TOOLS'])['toMatch'](/^\/api\//),expect(_0x22be17['TOOLS'])[_0x9827ad(0x89)]('/api/tools');}),test(_0x1a7056(0x93),async()=>{const _0x3e7c9a=_0x1a7056,{API_ENDPOINTS:_0x126764}=await import('../../config/constants.js');expect(_0x126764['ORCHESTRATOR'])['toBeDefined'](),expect(_0x126764[_0x3e7c9a(0x77)])['toBe'](_0x3e7c9a(0xb4));});}),describe(a0_0x3203ea(0xaa),()=>{const _0x3333a7=a0_0x3203ea;test(_0x3333a7(0xaf),async()=>{const _0x2cc9a5=_0x3333a7,{useTools:_0x2c0b6d}=await import('../../state/useTools.js');expect(_0x2c0b6d[_0x2cc9a5(0x7b)])[_0x2cc9a5(0x89)](0x3);});}),describe(a0_0x3203ea(0xbc),()=>{const _0x3334da=a0_0x3203ea;test(_0x3334da(0xb1),async()=>{const _0x5627a9=_0x3334da,{TOOL_CATEGORY:_0x58fc1b}=await import('../../config/constants.js'),_0x52fab5=Object['keys'](_0x58fc1b);expect(_0x52fab5)['toContain']('SYSTEM'),expect(_0x52fab5)[_0x5627a9(0x8d)]('AUTOMATION'),expect(_0x52fab5)[_0x5627a9(0x8d)]('ANALYSIS'),expect(_0x52fab5)['toContain']('UTILITY'),expect(_0x52fab5)[_0x5627a9(0x8d)]('COLLABORATION'),expect(_0x52fab5)[_0x5627a9(0x8d)]('AI');}),test('TOOL_CATEGORY\x20values\x20match\x20expected\x20format',async()=>{const _0x4c3a57=_0x3334da,{TOOL_CATEGORY:_0x1ee68e}=await import(_0x4c3a57(0x96));expect(_0x1ee68e[_0x4c3a57(0xae)])['toMatch'](/^[a-z_]+$/),expect(_0x1ee68e[_0x4c3a57(0x7e)])[_0x4c3a57(0xc0)](/^[a-z_]+$/),expect(_0x1ee68e[_0x4c3a57(0x8f)])['toMatch'](/^[a-z_]+$/),expect(_0x1ee68e[_0x4c3a57(0x7c)])[_0x4c3a57(0xc0)](/^[a-z_]+$/);});}),describe('Tools\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{test('MessageRouter\x20has\x20tool\x20event\x20handlers\x20registered',async()=>{const _0xce6f49=a0_0x30c0,{MessageRouter:_0x4ac657}=await import(_0xce6f49(0xb7)),{WebSocketManager:_0x3c30ae}=await import(_0xce6f49(0x7a)),_0x2848d0=new _0x3c30ae('localhost',0x1f90),_0x15c1a1=new _0x4ac657(_0x2848d0);expect(_0x15c1a1['hasHandler'])['toBeDefined'](),expect(typeof _0x15c1a1[_0xce6f49(0x98)])['toBe'](_0xce6f49(0x9a));});}),describe('Tools\x20Management\x20-\x20Tool\x20Categorization',()=>{const _0x40f07a=a0_0x3203ea;test(_0x40f07a(0x9b),async()=>{const _0x478d92=_0x40f07a,{TOOL_CATEGORY:_0x275607}=await import(_0x478d92(0x96)),_0x4fede3=[{'name':'execute_command','category':_0x275607[_0x478d92(0xae)]},{'name':'terminal','category':_0x275607['SYSTEM']},{'name':'analyze_code','category':_0x275607['ANALYSIS']},{'name':'web_search','category':_0x275607['UTILITY']},{'name':_0x478d92(0x8b),'category':_0x275607['AI']}],_0x5050cd=_0x4fede3['filter'](_0x3f70bf=>_0x3f70bf[_0x478d92(0xbd)]===_0x275607['SYSTEM']),_0x6675c1=_0x4fede3['filter'](_0x4d241e=>_0x4d241e['category']===_0x275607['ANALYSIS']),_0x366103=_0x4fede3[_0x478d92(0xa0)](_0x2132dd=>_0x2132dd['category']===_0x275607['UTILITY']),_0xf37abd=_0x4fede3[_0x478d92(0xa0)](_0x1dbebd=>_0x1dbebd[_0x478d92(0xbd)]===_0x275607['AI']);expect(_0x5050cd[_0x478d92(0x7b)])['toBe'](0x2),expect(_0x6675c1[_0x478d92(0x7b)])[_0x478d92(0x89)](0x1),expect(_0x366103[_0x478d92(0x7b)])[_0x478d92(0x89)](0x1),expect(_0xf37abd[_0x478d92(0x7b)])[_0x478d92(0x89)](0x1),expect(_0x5050cd[0x0]['name'])[_0x478d92(0x89)]('execute_command'),expect(_0x6675c1[0x0][_0x478d92(0x78)])[_0x478d92(0x89)]('analyze_code');});}),describe('Tools\x20Management\x20-\x20Tool\x20Search',()=>{const _0x13305f=a0_0x3203ea;test(_0x13305f(0x99),async()=>{const _0x2bc563=_0x13305f,_0x307d31=[{'name':'read_file','description':'Read\x20contents\x20of\x20a\x20file'},{'name':'write_file','description':_0x2bc563(0xb3)},{'name':'analyze_code','description':_0x2bc563(0xb2)}],_0x5da390=_0x3486de=>{const _0x3734a2=_0x2bc563,_0x3010d7=_0x3486de['toLowerCase']();return _0x307d31[_0x3734a2(0xa0)](_0x347c90=>_0x347c90[_0x3734a2(0x78)]?.['toLowerCase']()['includes'](_0x3010d7)||_0x347c90['description']?.[_0x3734a2(0xa3)]()['includes'](_0x3010d7));},_0xe36539=_0x5da390(_0x2bc563(0xb5));expect(_0xe36539['length'])[_0x2bc563(0x89)](0x2),expect(_0xe36539['map'](_0x7dd4d3=>_0x7dd4d3[_0x2bc563(0x78)]))[_0x2bc563(0x8d)](_0x2bc563(0xa1)),expect(_0xe36539['map'](_0xa1ca70=>_0xa1ca70[_0x2bc563(0x78)]))[_0x2bc563(0x8d)](_0x2bc563(0x80));const _0x553f13=_0x5da390('analyze');expect(_0x553f13['length'])[_0x2bc563(0x89)](0x1),expect(_0x553f13[0x0][_0x2bc563(0x78)])[_0x2bc563(0x89)]('analyze_code');});}),describe(a0_0x3203ea(0xa2),()=>{test('Execution\x20state\x20can\x20track\x20multiple\x20tools',async()=>{const _0x37e9d=a0_0x30c0,_0x2d93ce=new Set();_0x2d93ce[_0x37e9d(0xa4)](_0x37e9d(0xa1)),_0x2d93ce[_0x37e9d(0xa4)](_0x37e9d(0x8e)),expect(_0x2d93ce['has']('read_file'))[_0x37e9d(0x89)](!![]),expect(_0x2d93ce['has'](_0x37e9d(0x8e)))['toBe'](!![]),expect(_0x2d93ce[_0x37e9d(0x91)])[_0x37e9d(0x89)](0x2),_0x2d93ce['delete']('read_file'),expect(_0x2d93ce['has'](_0x37e9d(0xa1)))['toBe'](![]),expect(_0x2d93ce[_0x37e9d(0xb9)]('analyze_code'))[_0x37e9d(0x89)](!![]),expect(_0x2d93ce[_0x37e9d(0x91)])['toBe'](0x1);}),test('Tool\x20results\x20can\x20be\x20stored\x20by\x20execution\x20ID',async()=>{const _0x250623=a0_0x30c0,_0x2cb466=new Map();_0x2cb466['set'](_0x250623(0x7d),{'success':!![],'data':'file\x20contents'}),_0x2cb466['set'](_0x250623(0xb8),{'success':!![],'data':{'issues':[]}}),expect(_0x2cb466['get']('exec-1'))['toBeDefined'](),expect(_0x2cb466['get'](_0x250623(0x7d))['success'])[_0x250623(0x89)](!![]),expect(_0x2cb466['get'](_0x250623(0x7d))['data'])[_0x250623(0x89)]('file\x20contents'),expect(_0x2cb466[_0x250623(0xb0)](_0x250623(0xb8)))['toBeDefined'](),expect(_0x2cb466[_0x250623(0xb0)]('exec-2')[_0x250623(0xa7)][_0x250623(0xa5)])['toEqual']([]),expect(_0x2cb466['size'])[_0x250623(0x89)](0x2);});}),describe(a0_0x3203ea(0xa8),()=>{const _0x1e2cd2=a0_0x3203ea;test(_0x1e2cd2(0x8c),async()=>{const _0x38a175=_0x1e2cd2,_0x8c7ca4=0x927c0;let _0x42d5fe=null,_0x2180ae=0x0;const _0x528ae3=[{'name':_0x38a175(0xa1)}];_0x42d5fe=_0x528ae3,_0x2180ae=Date['now']();const _0x4b70a1=Date[_0x38a175(0x7f)](),_0x4838e2=_0x4b70a1-_0x2180ae<_0x8c7ca4;expect(_0x4838e2)[_0x38a175(0x89)](!![]),expect(_0x42d5fe)['toBe'](_0x528ae3);}),test(_0x1e2cd2(0x83),async()=>{const _0x11b343=_0x1e2cd2,_0x7b719b=0x64;let _0x52a2c2=null,_0x57815e=0x0;const _0x141bb5=[{'name':_0x11b343(0xa1)}];_0x52a2c2=_0x141bb5,_0x57815e=Date['now'](),await new Promise(_0x183ffa=>setTimeout(_0x183ffa,0x96));const _0x1fe89c=Date[_0x11b343(0x7f)](),_0x50267e=_0x1fe89c-_0x57815e<_0x7b719b;expect(_0x50267e)['toBe'](![]);});}),describe(a0_0x3203ea(0x85),()=>{test('Tools\x20can\x20be\x20filtered\x20by\x20multiple\x20criteria',async()=>{const _0x2c9dfa=a0_0x30c0,{TOOL_CATEGORY:_0x2f99ce}=await import('../../config/constants.js'),_0x26b34d=[{'name':'execute_command','category':_0x2f99ce[_0x2c9dfa(0xae)],'enabled':!![]},{'name':_0x2c9dfa(0x76),'category':_0x2f99ce['SYSTEM'],'enabled':![]},{'name':_0x2c9dfa(0x8e),'category':_0x2f99ce[_0x2c9dfa(0x8f)],'enabled':!![]}],_0x26ed1d=_0x583383=>{const _0x5bacc4=_0x2c9dfa;let _0x613e3c=[..._0x26b34d];return _0x583383[_0x5bacc4(0xbd)]&&(_0x613e3c=_0x613e3c['filter'](_0x531e2d=>_0x531e2d['category']===_0x583383['category'])),_0x583383[_0x5bacc4(0x81)]!==undefined&&(_0x613e3c=_0x613e3c[_0x5bacc4(0xa0)](_0x255924=>_0x255924['enabled']===_0x583383['enabled'])),_0x613e3c;},_0x2c7d55=_0x26ed1d({'category':_0x2f99ce['SYSTEM']});expect(_0x2c7d55['length'])['toBe'](0x2);const _0x408c3f=_0x26ed1d({'enabled':!![]});expect(_0x408c3f[_0x2c9dfa(0x7b)])[_0x2c9dfa(0x89)](0x2);const _0x21993a=_0x26ed1d({'category':_0x2f99ce['SYSTEM'],'enabled':!![]});expect(_0x21993a[_0x2c9dfa(0x7b)])[_0x2c9dfa(0x89)](0x1),expect(_0x21993a[0x0][_0x2c9dfa(0x78)])['toBe'](_0x2c9dfa(0x90));});}),describe(a0_0x3203ea(0x94),()=>{test('Category\x20counts\x20can\x20be\x20calculated',async()=>{const _0x602cdd=a0_0x30c0,{TOOL_CATEGORY:_0x54f18b}=await import(_0x602cdd(0x96)),_0xc27309=[{'name':_0x602cdd(0x90),'category':_0x54f18b[_0x602cdd(0xae)]},{'name':_0x602cdd(0x76),'category':_0x54f18b[_0x602cdd(0xae)]},{'name':'analyze_code','category':_0x54f18b['ANALYSIS']},{'name':_0x602cdd(0xc1),'category':_0x54f18b['UTILITY']}],_0xced8ac=_0x22f72c=>{const _0x3c4dd6=_0x602cdd,_0x13de19={};for(const _0x39b651 of Object['values'](_0x54f18b)){_0x13de19[_0x39b651]=_0x22f72c['filter'](_0x182968=>_0x182968['category']===_0x39b651)[_0x3c4dd6(0x7b)];}return _0x13de19;},_0x3aa390=_0xced8ac(_0xc27309);expect(_0x3aa390[_0x54f18b[_0x602cdd(0xae)]])['toBe'](0x2),expect(_0x3aa390[_0x54f18b['ANALYSIS']])['toBe'](0x1),expect(_0x3aa390[_0x54f18b['UTILITY']])['toBe'](0x1),expect(_0x3aa390[_0x54f18b[_0x602cdd(0x7e)]])[_0x602cdd(0x89)](0x0);});});
1
+ function a0_0x7975(_0x141cbd,_0x48e57c){_0x141cbd=_0x141cbd-0x115;const _0x27cd18=a0_0x27cd();let _0x7975db=_0x27cd18[_0x141cbd];if(a0_0x7975['TRWozG']===undefined){var _0x5d0e3a=function(_0x21725b){const _0x934640='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x551936='',_0x56e733='';for(let _0x29673b=0x0,_0x552aa1,_0x102b41,_0x53258a=0x0;_0x102b41=_0x21725b['charAt'](_0x53258a++);~_0x102b41&&(_0x552aa1=_0x29673b%0x4?_0x552aa1*0x40+_0x102b41:_0x102b41,_0x29673b++%0x4)?_0x551936+=String['fromCharCode'](0xff&_0x552aa1>>(-0x2*_0x29673b&0x6)):0x0){_0x102b41=_0x934640['indexOf'](_0x102b41);}for(let _0x48ebb2=0x0,_0x4bb828=_0x551936['length'];_0x48ebb2<_0x4bb828;_0x48ebb2++){_0x56e733+='%'+('00'+_0x551936['charCodeAt'](_0x48ebb2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x56e733);};a0_0x7975['RwMjvM']=_0x5d0e3a,a0_0x7975['qKQeOj']={},a0_0x7975['TRWozG']=!![];}const _0x50cbc9=_0x27cd18[0x0],_0xa75d31=_0x141cbd+_0x50cbc9,_0x3065d2=a0_0x7975['qKQeOj'][_0xa75d31];return!_0x3065d2?(_0x7975db=a0_0x7975['RwMjvM'](_0x7975db),a0_0x7975['qKQeOj'][_0xa75d31]=_0x7975db):_0x7975db=_0x3065d2,_0x7975db;}const a0_0x3cf175=a0_0x7975;(function(_0xc73742,_0x5823a8){const _0xdd4bbb=a0_0x7975,_0x34ea0a=_0xc73742();while(!![]){try{const _0x3a2cb8=-parseInt(_0xdd4bbb(0x164))/0x1*(-parseInt(_0xdd4bbb(0x12c))/0x2)+parseInt(_0xdd4bbb(0x153))/0x3+parseInt(_0xdd4bbb(0x11b))/0x4*(parseInt(_0xdd4bbb(0x140))/0x5)+parseInt(_0xdd4bbb(0x120))/0x6*(parseInt(_0xdd4bbb(0x134))/0x7)+-parseInt(_0xdd4bbb(0x165))/0x8+-parseInt(_0xdd4bbb(0x12e))/0x9*(parseInt(_0xdd4bbb(0x11a))/0xa)+parseInt(_0xdd4bbb(0x14b))/0xb;if(_0x3a2cb8===_0x5823a8)break;else _0x34ea0a['push'](_0x34ea0a['shift']());}catch(_0x58547c){_0x34ea0a['push'](_0x34ea0a['shift']());}}}(a0_0x27cd,0x1e4d9));function a0_0x27cd(){const _0xf93368=['uMvHzcbJB250zw50CYbVzIbHigzPBgu','twvZC2fNzvjVDxrLCIbOyxmGDg9VBcbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','BgvUz3rO','qvvut01bveLptG','Dg9czurLzMLUzwq','ywrK','ve9ptfm','lI4VlI4VyxbPl3nLC3nPB24UANm','vg9VBcbZzwfYy2GGC2HVDwXKihDVCMSGD2L0AcbUyw1LigfUzcbKzxnJCMLWDgLVBG','vg9VBhmGzw5KCg9PBNqGzM9SBg93CYbsrvnuzNvSihbHDhrLCM4','C3vJy2vZCW','mtbNCevWv2C','Dg9mB3DLCKnHC2u','owXtwxvoAq','DxnLvg9VBhmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','A2v5CW','yw5HBhL6zq','BM93','BMfTzq','mtu5mZy5s0nQsLj2','vg9VBhmGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','y2f0zwDVCNK','BwfW','AgfZ','DMfSDwvZ','D2vIx3nLyxjJAa','Dg9czq','Bg9JywXOB3n0','vvrjteLuwq','zxHLy3v0zv9JB21Tyw5K','nZvdtLHArvy','zgf0yq','qu5btfLtsvm','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','vg9VBhmGtwfUywDLBwvUDcaTienHDgvNB3j5ienVDw50CW','vg9VBhmGqvbjigvUzhbVAw50igLZigrLzMLUzwq','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','zw5HyMXLza','l2fWAs90B29SCW','Dg9nyxrJAa','zMLSDgvY','otiYnZaYzeLgqMLn','t1jdsevtvfjbve9s','v2vIu29JA2v0twfUywDLCG','zxHLyY0X','vg9VBcbVCgvYyxrPB25ZihvZzsbVCMnOzxn0CMf0B3iGzw5KCg9PBNq','q2f0zwDVCNKGy291BNrZignHBIbIzsbJywXJDwXHDgvK','vg9VBcbJywnOzsbLEhbPCMvZigfMDgvYifruta','ywLFyxnZAxn0yw50','mtm0nte0reHWs3f5','zgvMyxvSDa','rxHLy3v0Aw9Uihn0yxrLignHBIb0CMfJAYbTDwX0AxbSzsb0B29SCW','u1Ltvevn','CMvHzf9MAwXL','Dg9dB250ywLU','yw5HBhL6zv9JB2rL','zgvSzxrL','l2fWAs9VCMnOzxn0CMf0B3i','C2v0','qvbjx0vorfbpsu5uuW','zNvUy3rPB24','Aw5JBhvKzxm','D3jPDgvFzMLSzq','DgvYBwLUywW','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2f0zwDVCML6yxrPB24','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CYbwywXPzgf0Aw9U','ndK0mKzYzxLcua','odaYnZm2yKHcCgTm','zMLSzsbJB250zw50CW','vg9VBhmGtwfUywDLBwvUDcaTieLTCg9YDhm','z2v0','u2vZC2LVBK1HBMfNzxi','zxHLyY0Y','mti1mZm4mgrhCMnKBa','mZC5nMXez2TKCW','ve9ptf9dqvrfr09swsbJyw4GyMuGDxnLzcb0BYbMAwX0zxiGDg9VBhmGyNKGy2f0zwDVCNK','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','vg9VBhmGy2fUigjLigzPBhrLCMvKigj5ig11BhrPCgXLignYAxrLCMLH','vg9VBhmGtwfUywDLBwvUDcaTiev4zwn1DgLVBIbtDgf0zsbuCMfJA2LUzW','ndH3rNHLDMq'];a0_0x27cd=function(){return _0xf93368;};return a0_0x27cd();}import{describe,test,expect}from'@jest/globals';describe(a0_0x3cf175(0x116),()=>{test('useTools hook can be imported',async()=>{const _0x2ccb54=a0_0x7975,{useTools:_0x551936}=await import('../../state/useTools.js');expect(_0x551936)['toBeDefined'](),expect(typeof _0x551936)[_0x2ccb54(0x13c)](_0x2ccb54(0x15e));}),test('useTools is default export',async()=>{const _0x1bbaff=a0_0x7975,module=await import('../../state/useTools.js');expect(module['default'])[_0x1bbaff(0x125)](),expect(typeof module[_0x1bbaff(0x154)])['toBe']('function'),expect(module['default'])[_0x1bbaff(0x13c)](module['useTools']);});}),describe('Tools\x20Management\x20-\x20Constants',()=>{const _0x14ebf8=a0_0x3cf175;test('TOOL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x14d329=a0_0x7975,{TOOL_CATEGORY:_0x56e733}=await import('../../config/constants.js');expect(_0x56e733)[_0x14d329(0x125)](),expect(_0x56e733['SYSTEM'])['toBeDefined'](),expect(_0x56e733['AUTOMATION'])[_0x14d329(0x125)](),expect(_0x56e733[_0x14d329(0x142)])[_0x14d329(0x125)](),expect(_0x56e733['UTILITY'])['toBeDefined'](),expect(_0x56e733['COLLABORATION'])[_0x14d329(0x125)](),expect(_0x56e733['AI'])[_0x14d329(0x125)]();}),test('TOOL_CATEGORY\x20values\x20are\x20lowercase',async()=>{const _0x48b1c5=a0_0x7975,{TOOL_CATEGORY:_0x29673b}=await import(_0x48b1c5(0x143));expect(_0x29673b['SYSTEM'])['toBe'](_0x29673b[_0x48b1c5(0x156)]['toLowerCase']()),expect(_0x29673b[_0x48b1c5(0x124)])[_0x48b1c5(0x13c)](_0x29673b['AUTOMATION'][_0x48b1c5(0x12d)]()),expect(_0x29673b['ANALYSIS'])[_0x48b1c5(0x13c)](_0x29673b[_0x48b1c5(0x142)][_0x48b1c5(0x12d)]()),expect(_0x29673b[_0x48b1c5(0x13e)])['toBe'](_0x29673b[_0x48b1c5(0x13e)]['toLowerCase']());}),test(_0x14ebf8(0x145),async()=>{const _0x393c96=_0x14ebf8,{API_ENDPOINTS:_0x552aa1}=await import(_0x393c96(0x143));expect(_0x552aa1['TOOLS'])[_0x393c96(0x125)](),expect(_0x552aa1['TOOLS'])[_0x393c96(0x13c)](_0x393c96(0x148));}),test('Orchestrator\x20endpoint\x20is\x20used\x20for\x20tool\x20operations',async()=>{const _0x5df81f=_0x14ebf8,{API_ENDPOINTS:_0x102b41}=await import('../../config/constants.js');expect(_0x102b41[_0x5df81f(0x14c)])['toBeDefined'](),expect(_0x102b41['ORCHESTRATOR'])['toBe']('/api/orchestrator');});}),describe(a0_0x3cf175(0x135),()=>{test('useTools\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0xb1802b=a0_0x7975,{useTools:_0x53258a}=await import('../../state/useTools.js'),{SessionManager:_0x48ebb2}=await import(_0xb1802b(0x128)),{MessageRouter:_0x4bb828}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x3351ad}=await import(_0xb1802b(0x146)),_0x5f066f=new _0x48ebb2(_0xb1802b(0x13d),0x1f90),_0x418bbe=new _0x3351ad('localhost',0x1f90),_0x1e0158=new _0x4bb828(_0x418bbe);expect(_0x5f066f)[_0xb1802b(0x125)](),expect(_0x1e0158)[_0xb1802b(0x125)](),expect(typeof _0x53258a)['toBe'](_0xb1802b(0x15e));}),test('Full tools management stack can be imported together',async()=>{const _0x248288=a0_0x7975,[_0x522f4f,_0x512831,_0x6bdbcb,_0x15e5e3,_0x4cd53e]=await Promise['all']([import(_0x248288(0x143)),import('../../api/session.js'),import('../../api/websocket.js'),import(_0x248288(0x136)),import(_0x248288(0x11d))]);expect(_0x522f4f['TOOL_CATEGORY'])[_0x248288(0x125)](),expect(_0x522f4f[_0x248288(0x15d)])[_0x248288(0x125)](),expect(_0x512831[_0x248288(0x118)])['toBeDefined'](),expect(_0x6bdbcb[_0x248288(0x14d)])['toBeDefined'](),expect(_0x15e5e3['MessageRouter'])[_0x248288(0x125)](),expect(_0x4cd53e['useTools'])['toBeDefined']();});}),describe('Tools\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0xf90fb5=a0_0x3cf175;test(_0xf90fb5(0x12a),async()=>{const _0x5ac253=_0xf90fb5,{API_ENDPOINTS:_0x34f3ee}=await import(_0x5ac253(0x143));expect(_0x34f3ee[_0x5ac253(0x127)])[_0x5ac253(0x149)](/^\/api\//),expect(_0x34f3ee['TOOLS'])[_0x5ac253(0x13c)]('/api/tools');}),test(_0xf90fb5(0x14f),async()=>{const _0x4a8ee8=_0xf90fb5,{API_ENDPOINTS:_0x99e259}=await import('../../config/constants.js');expect(_0x99e259[_0x4a8ee8(0x14c)])['toBeDefined'](),expect(_0x99e259['ORCHESTRATOR'])[_0x4a8ee8(0x13c)](_0x4a8ee8(0x15b));});}),describe('Tools\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x31b90d=a0_0x3cf175;test(_0x31b90d(0x12f),async()=>{const _0x51642b=_0x31b90d,{useTools:_0x42e1a5}=await import(_0x51642b(0x11d));expect(_0x42e1a5['length'])['toBe'](0x3);});}),describe(a0_0x3cf175(0x163),()=>{test('TOOL_CATEGORY\x20includes\x20all\x20major\x20categories',async()=>{const _0x91547a=a0_0x7975,{TOOL_CATEGORY:_0x52f07c}=await import('../../config/constants.js'),_0x2fb147=Object[_0x91547a(0x130)](_0x52f07c);expect(_0x2fb147)['toContain'](_0x91547a(0x156)),expect(_0x2fb147)['toContain'](_0x91547a(0x124)),expect(_0x2fb147)['toContain'](_0x91547a(0x142)),expect(_0x2fb147)['toContain']('UTILITY'),expect(_0x2fb147)[_0x91547a(0x158)]('COLLABORATION'),expect(_0x2fb147)['toContain']('AI');}),test('TOOL_CATEGORY\x20values\x20match\x20expected\x20format',async()=>{const _0xd3d8c=a0_0x7975,{TOOL_CATEGORY:_0x5858a0}=await import('../../config/constants.js');expect(_0x5858a0['SYSTEM'])[_0xd3d8c(0x149)](/^[a-z_]+$/),expect(_0x5858a0[_0xd3d8c(0x124)])[_0xd3d8c(0x149)](/^[a-z_]+$/),expect(_0x5858a0['ANALYSIS'])[_0xd3d8c(0x149)](/^[a-z_]+$/),expect(_0x5858a0['UTILITY'])[_0xd3d8c(0x149)](/^[a-z_]+$/);});}),describe('Tools\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{const _0x52e795=a0_0x3cf175;test(_0x52e795(0x122),async()=>{const _0x515fcd=_0x52e795,{MessageRouter:_0x55b19f}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x10bee5}=await import(_0x515fcd(0x146)),_0x289f82=new _0x10bee5('localhost',0x1f90),_0x120c6c=new _0x55b19f(_0x289f82);expect(_0x120c6c['hasHandler'])[_0x515fcd(0x125)](),expect(typeof _0x120c6c['hasHandler'])[_0x515fcd(0x13c)](_0x515fcd(0x15e));});}),describe(a0_0x3cf175(0x162),()=>{const _0x225be9=a0_0x3cf175;test(_0x225be9(0x11c),async()=>{const _0x3f3e77=_0x225be9,{TOOL_CATEGORY:_0x16e31a}=await import('../../config/constants.js'),_0xade58b=[{'name':'execute_command','category':_0x16e31a[_0x3f3e77(0x156)]},{'name':_0x3f3e77(0x161),'category':_0x16e31a['SYSTEM']},{'name':'analyze_code','category':_0x16e31a[_0x3f3e77(0x142)]},{'name':_0x3f3e77(0x13b),'category':_0x16e31a[_0x3f3e77(0x13e)]},{'name':_0x3f3e77(0x152),'category':_0x16e31a['AI']}],_0x251cf8=_0xade58b[_0x3f3e77(0x14a)](_0xc478b0=>_0xc478b0[_0x3f3e77(0x137)]===_0x16e31a['SYSTEM']),_0x1ce62b=_0xade58b[_0x3f3e77(0x14a)](_0x3599a2=>_0x3599a2[_0x3f3e77(0x137)]===_0x16e31a['ANALYSIS']),_0xa60245=_0xade58b[_0x3f3e77(0x14a)](_0x562339=>_0x562339[_0x3f3e77(0x137)]===_0x16e31a[_0x3f3e77(0x13e)]),_0x983a8e=_0xade58b[_0x3f3e77(0x14a)](_0x1f6f9f=>_0x1f6f9f[_0x3f3e77(0x137)]===_0x16e31a['AI']);expect(_0x251cf8[_0x3f3e77(0x123)])[_0x3f3e77(0x13c)](0x2),expect(_0x1ce62b['length'])[_0x3f3e77(0x13c)](0x1),expect(_0xa60245['length'])['toBe'](0x1),expect(_0x983a8e[_0x3f3e77(0x123)])['toBe'](0x1),expect(_0x251cf8[0x0]['name'])[_0x3f3e77(0x13c)]('execute_command'),expect(_0x1ce62b[0x0][_0x3f3e77(0x133)])[_0x3f3e77(0x13c)](_0x3f3e77(0x159));});}),describe('Tools\x20Management\x20-\x20Tool\x20Search',()=>{const _0x17399c=a0_0x3cf175;test(_0x17399c(0x129),async()=>{const _0x4d6388=_0x17399c,_0x498527=[{'name':'read_file','description':_0x4d6388(0x121)},{'name':_0x4d6388(0x160),'description':'Write\x20data\x20to\x20a\x20file'},{'name':'analyze_code','description':'Perform\x20static\x20code\x20analysis'}],_0xfcecdc=_0x4a281e=>{const _0x1c8764=_0x4d6388,_0x13e3d4=_0x4a281e['toLowerCase']();return _0x498527['filter'](_0x369674=>_0x369674['name']?.[_0x1c8764(0x12d)]()['includes'](_0x13e3d4)||_0x369674['description']?.[_0x1c8764(0x12d)]()[_0x1c8764(0x15f)](_0x13e3d4));},_0xc9dfd7=_0xfcecdc('file');expect(_0xc9dfd7['length'])['toBe'](0x2),expect(_0xc9dfd7['map'](_0x2becfa=>_0x2becfa['name']))[_0x4d6388(0x158)](_0x4d6388(0x157)),expect(_0xc9dfd7[_0x4d6388(0x138)](_0x2cb400=>_0x2cb400[_0x4d6388(0x133)]))[_0x4d6388(0x158)](_0x4d6388(0x160));const _0x4de2fd=_0xfcecdc(_0x4d6388(0x131));expect(_0x4de2fd['length'])[_0x4d6388(0x13c)](0x1),expect(_0x4de2fd[0x0][_0x4d6388(0x133)])['toBe']('analyze_code');});}),describe(a0_0x3cf175(0x11f),()=>{const _0x2f44ea=a0_0x3cf175;test(_0x2f44ea(0x155),async()=>{const _0x3616fb=_0x2f44ea,_0x4230c4=new Set();_0x4230c4['add'](_0x3616fb(0x157)),_0x4230c4[_0x3616fb(0x126)]('analyze_code'),expect(_0x4230c4['has'](_0x3616fb(0x157)))['toBe'](!![]),expect(_0x4230c4[_0x3616fb(0x139)](_0x3616fb(0x159)))[_0x3616fb(0x13c)](!![]),expect(_0x4230c4['size'])[_0x3616fb(0x13c)](0x2),_0x4230c4[_0x3616fb(0x15a)]('read_file'),expect(_0x4230c4[_0x3616fb(0x139)]('read_file'))[_0x3616fb(0x13c)](![]),expect(_0x4230c4[_0x3616fb(0x139)](_0x3616fb(0x159)))['toBe'](!![]),expect(_0x4230c4['size'])[_0x3616fb(0x13c)](0x1);}),test('Tool\x20results\x20can\x20be\x20stored\x20by\x20execution\x20ID',async()=>{const _0x582109=_0x2f44ea,_0x5e93d0=new Map();_0x5e93d0['set'](_0x582109(0x14e),{'success':!![],'data':'file\x20contents'}),_0x5e93d0[_0x582109(0x15c)]('exec-2',{'success':!![],'data':{'issues':[]}}),expect(_0x5e93d0['get']('exec-1'))[_0x582109(0x125)](),expect(_0x5e93d0[_0x582109(0x117)](_0x582109(0x14e))[_0x582109(0x12b)])['toBe'](!![]),expect(_0x5e93d0[_0x582109(0x117)](_0x582109(0x14e))[_0x582109(0x141)])['toBe'](_0x582109(0x115)),expect(_0x5e93d0['get'](_0x582109(0x119)))['toBeDefined'](),expect(_0x5e93d0['get'](_0x582109(0x119))['data']['issues'])['toEqual']([]),expect(_0x5e93d0['size'])[_0x582109(0x13c)](0x2);});}),describe('Tools\x20Management\x20-\x20Tool\x20Caching',()=>{const _0x3032b3=a0_0x3cf175;test('Tool\x20cache\x20supports\x20TTL-based\x20caching',async()=>{const _0x1c702e=a0_0x7975,_0x100e70=0x927c0;let _0x1ab9d0=null,_0x91ff19=0x0;const _0x20d20a=[{'name':_0x1c702e(0x157)}];_0x1ab9d0=_0x20d20a,_0x91ff19=Date['now']();const _0x5de9ff=Date[_0x1c702e(0x132)](),_0x491251=_0x5de9ff-_0x91ff19<_0x100e70;expect(_0x491251)['toBe'](!![]),expect(_0x1ab9d0)['toBe'](_0x20d20a);}),test(_0x3032b3(0x151),async()=>{const _0xaf3d6a=_0x3032b3,_0x377d1b=0x64;let _0x4e0c66=null,_0x3080cc=0x0;const _0x3e100d=[{'name':_0xaf3d6a(0x157)}];_0x4e0c66=_0x3e100d,_0x3080cc=Date[_0xaf3d6a(0x132)](),await new Promise(_0x3570f0=>setTimeout(_0x3570f0,0x96));const _0x1dbf27=Date['now'](),_0x43bb8f=_0x1dbf27-_0x3080cc<_0x377d1b;expect(_0x43bb8f)['toBe'](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{const _0x15b2a4=a0_0x3cf175;test(_0x15b2a4(0x11e),async()=>{const _0x123ab3=_0x15b2a4,{TOOL_CATEGORY:_0x3cca5e}=await import('../../config/constants.js'),_0x546762=[{'name':_0x123ab3(0x13f),'category':_0x3cca5e['SYSTEM'],'enabled':!![]},{'name':_0x123ab3(0x161),'category':_0x3cca5e['SYSTEM'],'enabled':![]},{'name':_0x123ab3(0x159),'category':_0x3cca5e[_0x123ab3(0x142)],'enabled':!![]}],_0x47d2ca=_0x4738bf=>{const _0x2b8166=_0x123ab3;let _0x57ecb7=[..._0x546762];return _0x4738bf[_0x2b8166(0x137)]&&(_0x57ecb7=_0x57ecb7['filter'](_0x7f1930=>_0x7f1930['category']===_0x4738bf['category'])),_0x4738bf['enabled']!==undefined&&(_0x57ecb7=_0x57ecb7[_0x2b8166(0x14a)](_0x2ec03a=>_0x2ec03a[_0x2b8166(0x147)]===_0x4738bf['enabled'])),_0x57ecb7;},_0x3d0ff7=_0x47d2ca({'category':_0x3cca5e['SYSTEM']});expect(_0x3d0ff7['length'])[_0x123ab3(0x13c)](0x2);const _0x138011=_0x47d2ca({'enabled':!![]});expect(_0x138011['length'])['toBe'](0x2);const _0x172c1d=_0x47d2ca({'category':_0x3cca5e[_0x123ab3(0x156)],'enabled':!![]});expect(_0x172c1d[_0x123ab3(0x123)])[_0x123ab3(0x13c)](0x1),expect(_0x172c1d[0x0][_0x123ab3(0x133)])[_0x123ab3(0x13c)](_0x123ab3(0x13f));});}),describe(a0_0x3cf175(0x144),()=>{const _0x5c8a47=a0_0x3cf175;test(_0x5c8a47(0x150),async()=>{const _0x22a981=_0x5c8a47,{TOOL_CATEGORY:_0x54ccff}=await import('../../config/constants.js'),_0x1a34ba=[{'name':_0x22a981(0x13f),'category':_0x54ccff[_0x22a981(0x156)]},{'name':_0x22a981(0x161),'category':_0x54ccff[_0x22a981(0x156)]},{'name':_0x22a981(0x159),'category':_0x54ccff[_0x22a981(0x142)]},{'name':'web_search','category':_0x54ccff[_0x22a981(0x13e)]}],_0x477d0a=_0x50c21f=>{const _0x1c24b3=_0x22a981,_0x46d9b5={};for(const _0x2ad0e7 of Object[_0x1c24b3(0x13a)](_0x54ccff)){_0x46d9b5[_0x2ad0e7]=_0x50c21f['filter'](_0x1e4d42=>_0x1e4d42[_0x1c24b3(0x137)]===_0x2ad0e7)['length'];}return _0x46d9b5;},_0x89108d=_0x477d0a(_0x1a34ba);expect(_0x89108d[_0x54ccff[_0x22a981(0x156)]])[_0x22a981(0x13c)](0x2),expect(_0x89108d[_0x54ccff['ANALYSIS']])['toBe'](0x1),expect(_0x89108d[_0x54ccff[_0x22a981(0x13e)]])['toBe'](0x1),expect(_0x89108d[_0x54ccff[_0x22a981(0x124)]])[_0x22a981(0x13c)](0x0);});});
@@ -1 +1 @@
1
- const a0_0x54393a=a0_0x4bdb;function a0_0x1e52(){const _0x34d9bd=['qxv0Ag9YAxPHDgLVBG','uefuq0G','tKvuv09ss19fuLjpuG','mtm3odmZnuf0CgPLra','mtG0nJmYEgfjre5Q','nda1odu2mfHus0Plvq','r0vu','yNvPBgrizwfKzxjZ','mtjTrunWuNG','Cg9ZDa','ue9tva','C3rHDhvZvgv4Da','yM9KEq','ngvpr2vpDG','BMfTzq','mZyWmZa1tKD6vwjd','ovj6tfbMBG','mte4mJyXnK9zre9Rra','BwvZC2fNzq','B3jPz2LUywXfCNjVCG','yMfZzvvYBa','Aw5JBhvKzxm','CMvXDwvZDa','yxbPs2v5','odq2otnbyMTKC0m','y2f0y2G','C3rHDhvZ','Ahr0CdOVlW','Chv0','mtqWndiXnM9NywzMqW','Cgf0y2G','ANnVBG','sfruuca'];a0_0x1e52=function(){return _0x34d9bd;};return a0_0x1e52();}(function(_0x2a4235,_0x45cb77){const _0x51e6af=a0_0x4bdb,_0x240449=_0x2a4235();while(!![]){try{const _0x550b0b=-parseInt(_0x51e6af(0x1cd))/0x1+-parseInt(_0x51e6af(0x1d6))/0x2*(parseInt(_0x51e6af(0x1e1))/0x3)+-parseInt(_0x51e6af(0x1d1))/0x4*(parseInt(_0x51e6af(0x1d8))/0x5)+parseInt(_0x51e6af(0x1e6))/0x6+-parseInt(_0x51e6af(0x1cc))/0x7+parseInt(_0x51e6af(0x1da))/0x8*(parseInt(_0x51e6af(0x1d9))/0x9)+parseInt(_0x51e6af(0x1ce))/0xa;if(_0x550b0b===_0x45cb77)break;else _0x240449['push'](_0x240449['shift']());}catch(_0x152baa){_0x240449['push'](_0x240449['shift']());}}}(a0_0x1e52,0x209a1));import{ERROR_MESSAGE}from'../config/constants.js';function a0_0x4bdb(_0x1f21f5,_0x4bf2b3){_0x1f21f5=_0x1f21f5-0x1cb;const _0x1e5222=a0_0x1e52();let _0x4bdb67=_0x1e5222[_0x1f21f5];if(a0_0x4bdb['mFtBYK']===undefined){var _0x3e5ba0=function(_0x3ccab4){const _0x45a369='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x102fdb='',_0x53dee2='';for(let _0x22320c=0x0,_0x336154,_0x1bf736,_0x196fc8=0x0;_0x1bf736=_0x3ccab4['charAt'](_0x196fc8++);~_0x1bf736&&(_0x336154=_0x22320c%0x4?_0x336154*0x40+_0x1bf736:_0x1bf736,_0x22320c++%0x4)?_0x102fdb+=String['fromCharCode'](0xff&_0x336154>>(-0x2*_0x22320c&0x6)):0x0){_0x1bf736=_0x45a369['indexOf'](_0x1bf736);}for(let _0x468f2b=0x0,_0x459715=_0x102fdb['length'];_0x468f2b<_0x459715;_0x468f2b++){_0x53dee2+='%'+('00'+_0x102fdb['charCodeAt'](_0x468f2b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x53dee2);};a0_0x4bdb['EMiEDn']=_0x3e5ba0,a0_0x4bdb['RMTkfq']={},a0_0x4bdb['mFtBYK']=!![];}const _0x4d4cdc=_0x1e5222[0x0],_0x3fd691=_0x1f21f5+_0x4d4cdc,_0x2a002e=a0_0x4bdb['RMTkfq'][_0x3fd691];return!_0x2a002e?(_0x4bdb67=a0_0x4bdb['EMiEDn'](_0x4bdb67),a0_0x4bdb['RMTkfq'][_0x3fd691]=_0x4bdb67):_0x4bdb67=_0x2a002e,_0x4bdb67;}export class ApiClient{constructor(_0x102fdb,_0x53dee2=null){const _0x59da8c=a0_0x4bdb;this['baseUrl']=_0x102fdb,this[_0x59da8c(0x1e0)]=_0x53dee2;}['setApiKey'](_0x22320c){this['apiKey']=_0x22320c;}['getApiKey'](){return this['apiKey'];}['clearApiKey'](){this['apiKey']=null;}[a0_0x54393a(0x1d0)](_0x336154={}){const _0xed24f4=a0_0x54393a,_0x1bf736={'Content-Type':'application/json',..._0x336154};return this[_0xed24f4(0x1e0)]&&(_0x1bf736[_0xed24f4(0x1ea)]='Bearer\x20'+this[_0xed24f4(0x1e0)]),_0x1bf736;}async[a0_0x54393a(0x1df)](_0x196fc8,_0x468f2b,_0x459715={}){const _0xdffeb=a0_0x54393a,{body:body=null,headers:headers={},query:query=null}=_0x459715;let _0x90c983=''+this[_0xdffeb(0x1dd)]+_0x468f2b;if(query){const _0x20fe98=new URLSearchParams(query)['toString']();_0x90c983+='?'+_0x20fe98;}const _0x31752a={'method':_0x196fc8,'headers':this[_0xdffeb(0x1d0)](headers)};body&&[_0xdffeb(0x1d3),'PUT',_0xdffeb(0x1eb)][_0xdffeb(0x1de)](_0x196fc8['toUpperCase']())&&(_0x31752a[_0xdffeb(0x1d5)]=JSON['stringify'](body));try{const _0x1feaaa=await fetch(_0x90c983,_0x31752a),_0x433808=await _0x1feaaa[_0xdffeb(0x1e8)]()[_0xdffeb(0x1e2)](()=>({}));if(!_0x1feaaa['ok']){const _0x447e93=new Error(_0x433808['error']||_0xdffeb(0x1e9)+_0x1feaaa[_0xdffeb(0x1e3)]+':\x20'+_0x1feaaa[_0xdffeb(0x1d4)]);_0x447e93['status']=_0x1feaaa['status'],_0x447e93['response']=_0x433808;throw _0x447e93;}return _0x433808;}catch(_0x2a7a18){if(_0x2a7a18['message']['includes']('fetch')||_0x2a7a18[_0xdffeb(0x1d7)]==='TypeError'){const _0x177687=new Error(ERROR_MESSAGE[_0xdffeb(0x1cb)]+':\x20'+_0x2a7a18[_0xdffeb(0x1db)]);_0x177687[_0xdffeb(0x1dc)]=_0x2a7a18;throw _0x177687;}throw _0x2a7a18;}}async['get'](_0x40cab4,_0x1c89ea={}){const _0x39a21e=a0_0x54393a;return this[_0x39a21e(0x1df)](_0x39a21e(0x1cf),_0x40cab4,_0x1c89ea);}async[a0_0x54393a(0x1d2)](_0x2e1235,_0x22ff95=null,_0x299086={}){const _0x55e142=a0_0x54393a;return this[_0x55e142(0x1df)]('POST',_0x2e1235,{..._0x299086,'body':_0x22ff95});}async[a0_0x54393a(0x1e5)](_0x5d2b6d,_0x478ddc=null,_0x3a2bc1={}){const _0x5a012d=a0_0x54393a;return this[_0x5a012d(0x1df)]('PUT',_0x5d2b6d,{..._0x3a2bc1,'body':_0x478ddc});}async[a0_0x54393a(0x1e7)](_0x3aef60,_0x1f7144=null,_0x135a08={}){return this['request']('PATCH',_0x3aef60,{..._0x135a08,'body':_0x1f7144});}async['delete'](_0x12ffed,_0x5ee426={}){return this['request']('DELETE',_0x12ffed,_0x5ee426);}}export function createApiClient(_0x46a16a='localhost',_0x35dc4f=0x1f90,_0x20093e=null){const _0x35d7ae=a0_0x54393a,_0x25f066=_0x35d7ae(0x1e4)+_0x46a16a+':'+_0x35dc4f;return new ApiClient(_0x25f066,_0x20093e);}export default ApiClient;
1
+ const a0_0x4cfa28=a0_0x273b;function a0_0x12d0(){const _0x2f6ada=['qMvHCMvYia','revmrvrf','zMv0y2G','ue9tva','Aw5JBhvKzxm','yMfZzvvYBa','C3rHDhvZvgv4Da','sfruuca','C3rHDhvZ','Dg9tDhjPBMC','yNvPBgrizwfKzxjZ','Ahr0CdOVlW','mtCXnJvoz1nHtu0','zgvSzxrL','ovPYyuL1rG','yxbWBgLJyxrPB24VANnVBG','mZKZnZG1n09us0PADa','r0vu','ndHuDunlwK4','C2v0qxbPs2v5','y2f0y2G','Cg9ZDa','CMvZCg9UC2u','ndmXmZK3mK1eCePYwG','mtiZnMnZyLzzAq','ntaYmti2sMXXEvvm','ouDgsunRuq','mtuWmZKYq2jrA0rc','ufvu','qxv0Ag9YAxPHDgLVBG','CMvXDwvZDa','mteYAgLJB05H','mtmWmdiXmeHVufb5za','mK1ZwfbgsW','ANnVBG','y2XLyxjbCgLlzxK','Bg9JywXOB3n0','mZGWnZzREg1ps2S','z2v0','yxbPs2v5'];a0_0x12d0=function(){return _0x2f6ada;};return a0_0x12d0();}(function(_0x27899a,_0x39eccb){const _0x4741d5=a0_0x273b,_0x386abc=_0x27899a();while(!![]){try{const _0x54889c=-parseInt(_0x4741d5(0x1c4))/0x1*(-parseInt(_0x4741d5(0x1cc))/0x2)+-parseInt(_0x4741d5(0x1c5))/0x3*(-parseInt(_0x4741d5(0x1d0))/0x4)+-parseInt(_0x4741d5(0x1df))/0x5*(parseInt(_0x4741d5(0x1c3))/0x6)+parseInt(_0x4741d5(0x1ca))/0x7*(-parseInt(_0x4741d5(0x1c6))/0x8)+-parseInt(_0x4741d5(0x1b9))/0x9*(parseInt(_0x4741d5(0x1cb))/0xa)+-parseInt(_0x4741d5(0x1bb))/0xb+-parseInt(_0x4741d5(0x1bd))/0xc*(-parseInt(_0x4741d5(0x1c2))/0xd);if(_0x54889c===_0x39eccb)break;else _0x386abc['push'](_0x386abc['shift']());}catch(_0x4e4f05){_0x386abc['push'](_0x386abc['shift']());}}}(a0_0x12d0,0x58655));import{ERROR_MESSAGE}from'../config/constants.js';export class ApiClient{constructor(_0x56d02b,_0x3a6cfb=null){const _0x3d9e6c=a0_0x273b;this[_0x3d9e6c(0x1d8)]=_0x56d02b,this['apiKey']=_0x3a6cfb;}[a0_0x4cfa28(0x1be)](_0x50d137){const _0x45510d=a0_0x4cfa28;this[_0x45510d(0x1d2)]=_0x50d137;}['getApiKey'](){return this['apiKey'];}[a0_0x4cfa28(0x1ce)](){this['apiKey']=null;}[a0_0x4cfa28(0x1dd)](_0x5dceb8={}){const _0x3d7686=a0_0x4cfa28,_0x8714d2={'Content-Type':_0x3d7686(0x1ba),..._0x5dceb8};return this['apiKey']&&(_0x8714d2[_0x3d7686(0x1c8)]=_0x3d7686(0x1d3)+this[_0x3d7686(0x1d2)]),_0x8714d2;}async[a0_0x4cfa28(0x1c9)](_0x50eea2,_0x2dcea1,_0x4c69bc={}){const _0x4a4a6e=a0_0x4cfa28,{body:body=null,headers:headers={},query:query=null}=_0x4c69bc;let _0x408f40=''+this['baseUrl']+_0x2dcea1;if(query){const _0x47f391=new URLSearchParams(query)[_0x4a4a6e(0x1dc)]();_0x408f40+='?'+_0x47f391;}const _0x47a4e4={'method':_0x50eea2,'headers':this[_0x4a4a6e(0x1dd)](headers)};body&&['POST',_0x4a4a6e(0x1c7),'PATCH'][_0x4a4a6e(0x1d7)](_0x50eea2['toUpperCase']())&&(_0x47a4e4['body']=JSON['stringify'](body));try{const _0x42f6e2=await fetch(_0x408f40,_0x47a4e4),_0x26d687=await _0x42f6e2[_0x4a4a6e(0x1cd)]()[_0x4a4a6e(0x1bf)](()=>({}));if(!_0x42f6e2['ok']){const _0x59761f=new Error(_0x26d687['error']||_0x4a4a6e(0x1da)+_0x42f6e2[_0x4a4a6e(0x1db)]+':\x20'+_0x42f6e2[_0x4a4a6e(0x1d9)]);_0x59761f['status']=_0x42f6e2[_0x4a4a6e(0x1db)],_0x59761f[_0x4a4a6e(0x1c1)]=_0x26d687;throw _0x59761f;}return _0x26d687;}catch(_0x1fc8e4){if(_0x1fc8e4['message'][_0x4a4a6e(0x1d7)](_0x4a4a6e(0x1d5))||_0x1fc8e4['name']==='TypeError'){const _0x175321=new Error(ERROR_MESSAGE['NETWORK_ERROR']+':\x20'+_0x1fc8e4['message']);_0x175321['originalError']=_0x1fc8e4;throw _0x175321;}throw _0x1fc8e4;}}async[a0_0x4cfa28(0x1d1)](_0x124ad7,_0x15b2db={}){const _0x50992f=a0_0x4cfa28;return this['request'](_0x50992f(0x1bc),_0x124ad7,_0x15b2db);}async[a0_0x4cfa28(0x1c0)](_0x26571f,_0x3dc9f5=null,_0x23e8a5={}){const _0x115ada=a0_0x4cfa28;return this[_0x115ada(0x1c9)](_0x115ada(0x1d6),_0x26571f,{..._0x23e8a5,'body':_0x3dc9f5});}async['put'](_0xf77a84,_0x1df3f2=null,_0x400ea7={}){return this['request']('PUT',_0xf77a84,{..._0x400ea7,'body':_0x1df3f2});}async['patch'](_0x512892,_0xf4ea83=null,_0x224296={}){const _0x5472ca=a0_0x4cfa28;return this[_0x5472ca(0x1c9)]('PATCH',_0x512892,{..._0x224296,'body':_0xf4ea83});}async[a0_0x4cfa28(0x1e0)](_0xd49cb6,_0x137bad={}){const _0x522faa=a0_0x4cfa28;return this[_0x522faa(0x1c9)](_0x522faa(0x1d4),_0xd49cb6,_0x137bad);}}export function createApiClient(_0x67985b=a0_0x4cfa28(0x1cf),_0x1ae650=0x1f90,_0x13cf29=null){const _0x38e47b=a0_0x4cfa28,_0x2cedc4=_0x38e47b(0x1de)+_0x67985b+':'+_0x1ae650;return new ApiClient(_0x2cedc4,_0x13cf29);}function a0_0x273b(_0x44829b,_0x1b5148){_0x44829b=_0x44829b-0x1b9;const _0x12d01d=a0_0x12d0();let _0x273b5a=_0x12d01d[_0x44829b];if(a0_0x273b['igOhOk']===undefined){var _0x4781cd=function(_0x5341bf){const _0x507826='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x56d02b='',_0x3a6cfb='';for(let _0x50d137=0x0,_0x5dceb8,_0x8714d2,_0x50eea2=0x0;_0x8714d2=_0x5341bf['charAt'](_0x50eea2++);~_0x8714d2&&(_0x5dceb8=_0x50d137%0x4?_0x5dceb8*0x40+_0x8714d2:_0x8714d2,_0x50d137++%0x4)?_0x56d02b+=String['fromCharCode'](0xff&_0x5dceb8>>(-0x2*_0x50d137&0x6)):0x0){_0x8714d2=_0x507826['indexOf'](_0x8714d2);}for(let _0x2dcea1=0x0,_0x4c69bc=_0x56d02b['length'];_0x2dcea1<_0x4c69bc;_0x2dcea1++){_0x3a6cfb+='%'+('00'+_0x56d02b['charCodeAt'](_0x2dcea1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3a6cfb);};a0_0x273b['iKopyv']=_0x4781cd,a0_0x273b['WrDHyx']={},a0_0x273b['igOhOk']=!![];}const _0x1e340e=_0x12d01d[0x0],_0x10e434=_0x44829b+_0x1e340e,_0x4c38d5=a0_0x273b['WrDHyx'][_0x10e434];return!_0x4c38d5?(_0x273b5a=a0_0x273b['iKopyv'](_0x273b5a),a0_0x273b['WrDHyx'][_0x10e434]=_0x273b5a):_0x273b5a=_0x4c38d5,_0x273b5a;}export default ApiClient;
@@ -1 +1 @@
1
- const a0_0x3d6448=a0_0x178e;function a0_0x178e(_0x5dbe4e,_0x46b70f){_0x5dbe4e=_0x5dbe4e-0xe3;const _0x52bdd7=a0_0x52bd();let _0x178efc=_0x52bdd7[_0x5dbe4e];if(a0_0x178e['yUyVHs']===undefined){var _0x1ded3b=function(_0x4f9570){const _0x234caa='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3b6317='',_0x436497='';for(let _0x47d38a=0x0,_0x20921c,_0x3405bb,_0x28fff2=0x0;_0x3405bb=_0x4f9570['charAt'](_0x28fff2++);~_0x3405bb&&(_0x20921c=_0x47d38a%0x4?_0x20921c*0x40+_0x3405bb:_0x3405bb,_0x47d38a++%0x4)?_0x3b6317+=String['fromCharCode'](0xff&_0x20921c>>(-0x2*_0x47d38a&0x6)):0x0){_0x3405bb=_0x234caa['indexOf'](_0x3405bb);}for(let _0x31fc32=0x0,_0x5ef1f2=_0x3b6317['length'];_0x31fc32<_0x5ef1f2;_0x31fc32++){_0x436497+='%'+('00'+_0x3b6317['charCodeAt'](_0x31fc32)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x436497);};a0_0x178e['PMVByS']=_0x1ded3b,a0_0x178e['gYGMXJ']={},a0_0x178e['yUyVHs']=!![];}const _0x3b6da8=_0x52bdd7[0x0],_0x39ad30=_0x5dbe4e+_0x3b6da8,_0x41f43e=a0_0x178e['gYGMXJ'][_0x39ad30];return!_0x41f43e?(_0x178efc=a0_0x178e['PMVByS'](_0x178efc),a0_0x178e['gYGMXJ'][_0x39ad30]=_0x178efc):_0x178efc=_0x41f43e,_0x178efc;}(function(_0x4640a3,_0x5c8ff4){const _0x49a54f=a0_0x178e,_0x595a71=_0x4640a3();while(!![]){try{const _0x101003=-parseInt(_0x49a54f(0x10d))/0x1+parseInt(_0x49a54f(0xff))/0x2+-parseInt(_0x49a54f(0xe9))/0x3+-parseInt(_0x49a54f(0x104))/0x4+-parseInt(_0x49a54f(0xf3))/0x5+parseInt(_0x49a54f(0xf5))/0x6*(-parseInt(_0x49a54f(0x101))/0x7)+parseInt(_0x49a54f(0xf4))/0x8*(parseInt(_0x49a54f(0xfb))/0x9);if(_0x101003===_0x5c8ff4)break;else _0x595a71['push'](_0x595a71['shift']());}catch(_0x244b67){_0x595a71['push'](_0x595a71['shift']());}}}(a0_0x52bd,0x8e720));import{EventEmitter}from'events';function a0_0x52bd(){const _0x1e0418=['n0Xcyvjutq','y2XLyxjnAwrKBgv3yxjL','DxnL','mZK2otyXnNLYAxfSDW','q09nuefdveLptL9fvKvova','rvHfq1vusu9ox1nut1bqruq','CMvNAxn0zxjiyw5KBgvY','Aw1Hz2u6z2vUzxjHDgvK','ywDLBNq','zgf0yq','zw1PDa','Aw52ywXPzf9TzxnZywDL','mty2ndiXEu5SAufA','zNvUy3rPB24','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','BwvZC2fNztO','Dg9ju09tDhjPBMC','z2v0','zgvSzxrL','BwvZC2fNzq','AgfZ','y29UDMvYC2f0Aw9UoMnVBxbHy3rPB24','C3bSAwnL','mtqXnJK0oeXYruvQBW','CMvTB3zLtwLKzgXLD2fYzq','zNjVBq','BwLKzgXLD2fYzq','su1br0vFr0vorvjbveve','su1br0vFuKvtvuXu','rvjst1i','AgfZsgfUzgXLCG','DhLWzq','ywDLBNq6zxHLy3v0Aw9Ux3n0B3bWzwq','mtu0ntG0nxHQtMXcwG','ohjxu0jWDG','otmXmtuYCevtr09t','Aw5JBhvKzxm','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','CM91Dgu','z2v0uMvNAxn0zxjLzfr5CgvZ','AgfUzgXLCNm','mJe5otK4ndn3EuHZweG','zxjYB3i','AgfUzgXLCL9LCNjVCG','quDftLrFtu9erv9dsefor0ve','ndy5mdyYCK9kuuzH','y2XLyxjiyw5KBgvYCW'];a0_0x52bd=function(){return _0x1e0418;};return a0_0x52bd();}import{WS_MESSAGE_TYPE}from'../config/constants.js';export class MessageRouter extends EventEmitter{constructor(_0x3b6317){const _0x180ff7=a0_0x178e;super(),this['ws']=_0x3b6317,this[_0x180ff7(0xfa)]=new Map(),this['middleware']=[],this['ws']['on'](_0x180ff7(0xe5),_0x436497=>this[_0x180ff7(0xf8)](_0x436497)),this[_0x180ff7(0xf7)]();}['registerDefaultHandlers'](){const _0x46737f=a0_0x178e;this['registerHandler'](WS_MESSAGE_TYPE['MESSAGE_ADDED'],_0x47d38a=>{const _0x28bf88=a0_0x178e;this[_0x28bf88(0x10b)]('agent:message_added',_0x47d38a[_0x28bf88(0x10a)]);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x46737f(0xfe)],_0x20921c=>{this['emit']('agent:mode_changed',_0x20921c);}),this[_0x46737f(0x107)](WS_MESSAGE_TYPE[_0x46737f(0x106)],_0x3405bb=>{const _0x4e104d=_0x46737f;this['emit'](_0x4e104d(0xf2),_0x3405bb['data']);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_ERROR'],_0x28fff2=>{this['emit']('agent:error',_0x28fff2);}),this[_0x46737f(0x107)](WS_MESSAGE_TYPE['AGENT_WARNING'],_0x31fc32=>{this['emit']('agent:warning',_0x31fc32);}),this[_0x46737f(0x107)](WS_MESSAGE_TYPE['AGENT_IMPORTED'],_0x5ef1f2=>{const _0x1cedac=_0x46737f;this['emit']('agent:imported',_0x5ef1f2[_0x1cedac(0x109)]);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0xfcc00=>{const _0x307de6=_0x46737f;this[_0x307de6(0x10b)]('agent:communication',_0xfcc00['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x46737f(0x105)],_0x6e4140=>{const _0x5ddab7=_0x46737f;this[_0x5ddab7(0x10b)](_0x5ddab7(0xe7),_0x6e4140['data']);}),this[_0x46737f(0x107)](WS_MESSAGE_TYPE[_0x46737f(0xee)],_0x1ef88c=>{this['emit']('image:result',_0x1ef88c['data']);}),this[_0x46737f(0x107)](WS_MESSAGE_TYPE[_0x46737f(0xed)],_0x34afa3=>{const _0x42df86=_0x46737f;this[_0x42df86(0x10b)](_0x42df86(0x108),_0x34afa3['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x46737f(0xef)],_0x18dd36=>{const _0x1e5d71=_0x46737f;this['emit'](_0x1e5d71(0xfc),_0x18dd36);});}async['route'](_0x31971e){const _0x5bd59d=a0_0x178e;let processedMessage=_0x31971e;for(const _0x561b3f of this['middleware']){try{processedMessage=await _0x561b3f(processedMessage);if(!processedMessage)return;}catch(_0x273396){this['emit']('middleware_error',{'error':_0x273396,'message':_0x31971e});return;}}const _0x32e01f=processedMessage[_0x5bd59d(0xf1)];if(!_0x32e01f){this[_0x5bd59d(0x10b)](_0x5bd59d(0x10c),processedMessage);return;}if(this[_0x5bd59d(0xfa)][_0x5bd59d(0xe6)](_0x32e01f)){const _0x500656=this[_0x5bd59d(0xfa)][_0x5bd59d(0xe3)](_0x32e01f);try{await _0x500656(processedMessage);}catch(_0x51fc36){this[_0x5bd59d(0x10b)](_0x5bd59d(0xfd),{'error':_0x51fc36,'message':processedMessage,'messageType':_0x32e01f});}}this[_0x5bd59d(0x10b)](_0x5bd59d(0x110)+_0x32e01f,processedMessage),this['emit'](_0x5bd59d(0xe5),processedMessage);}['registerHandler'](_0x5b464c,_0x1f3659){const _0x5ad11d=a0_0x178e;if(typeof _0x1f3659!==_0x5ad11d(0x10e))throw new Error('Handler\x20must\x20be\x20a\x20function');this[_0x5ad11d(0xfa)]['set'](_0x5b464c,_0x1f3659);}['unregisterHandler'](_0x17ffc2){const _0x23a9e5=a0_0x178e;this[_0x23a9e5(0xfa)][_0x23a9e5(0xe4)](_0x17ffc2);}[a0_0x3d6448(0x103)](_0x567d7b){const _0x2ef495=a0_0x3d6448;if(typeof _0x567d7b!=='function')throw new Error(_0x2ef495(0x10f));this[_0x2ef495(0xec)]['push'](_0x567d7b);}[a0_0x3d6448(0xea)](_0x49e4fb){const _0x13e5ef=a0_0x3d6448,_0x2e374f=this['middleware']['indexOf'](_0x49e4fb);_0x2e374f>-0x1&&this[_0x13e5ef(0xec)][_0x13e5ef(0xe8)](_0x2e374f,0x1);}['clearMiddleware'](){this['middleware']=[];}[a0_0x3d6448(0xf9)](){const _0x5f453b=a0_0x3d6448;return Array[_0x5f453b(0xeb)](this['handlers']['keys']());}[a0_0x3d6448(0xf0)](_0x5be2c9){return this['handlers']['has'](_0x5be2c9);}['clearHandlers'](){this['handlers']['clear']();}['reset'](){const _0x2d64c8=a0_0x3d6448;this[_0x2d64c8(0x100)](),this[_0x2d64c8(0x102)](),this['registerDefaultHandlers']();}}export function loggingMiddleware(_0x2d7758=console['log']){return _0x3502af=>{return _0x2d7758('[MessageRouter]',_0x3502af['type'],_0x3502af),_0x3502af;};}export function filterMiddleware(_0x5bf005){return _0x2b7332=>{const _0x282d62=a0_0x178e;if(_0x5bf005[_0x282d62(0xf6)](_0x2b7332[_0x282d62(0xf1)]))return _0x2b7332;return null;};}export function transformMiddleware(_0x58cfb2){return async _0x36de04=>{return await _0x58cfb2(_0x36de04);};}export function timestampMiddleware(){return _0x2946f0=>{const _0x213fa7=a0_0x178e;return{..._0x2946f0,'receivedAt':new Date()[_0x213fa7(0x111)]()};};}export function validationMiddleware(_0x523ba5){return _0x1ccb46=>{if(_0x523ba5(_0x1ccb46))return _0x1ccb46;throw new Error('Message\x20validation\x20failed');};}export default MessageRouter;
1
+ const a0_0x583f4a=a0_0x3487;function a0_0x3487(_0x1a926e,_0x1a71b6){_0x1a926e=_0x1a926e-0x169;const _0x28099f=a0_0x2809();let _0x3487d1=_0x28099f[_0x1a926e];if(a0_0x3487['eremAM']===undefined){var _0x380b40=function(_0x34714c){const _0x37075a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x43fd5b='',_0x4258da='';for(let _0x51867d=0x0,_0x2c0290,_0x47052c,_0x926870=0x0;_0x47052c=_0x34714c['charAt'](_0x926870++);~_0x47052c&&(_0x2c0290=_0x51867d%0x4?_0x2c0290*0x40+_0x47052c:_0x47052c,_0x51867d++%0x4)?_0x43fd5b+=String['fromCharCode'](0xff&_0x2c0290>>(-0x2*_0x51867d&0x6)):0x0){_0x47052c=_0x37075a['indexOf'](_0x47052c);}for(let _0x114aa6=0x0,_0x408a38=_0x43fd5b['length'];_0x114aa6<_0x408a38;_0x114aa6++){_0x4258da+='%'+('00'+_0x43fd5b['charCodeAt'](_0x114aa6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4258da);};a0_0x3487['bNrSGQ']=_0x380b40,a0_0x3487['mvaqRs']={},a0_0x3487['eremAM']=!![];}const _0x5da04d=_0x28099f[0x0],_0x5e9e85=_0x1a926e+_0x5da04d,_0x34eec2=a0_0x3487['mvaqRs'][_0x5e9e85];return!_0x34eec2?(_0x3487d1=a0_0x3487['bNrSGQ'](_0x3487d1),a0_0x3487['mvaqRs'][_0x5e9e85]=_0x3487d1):_0x3487d1=_0x34eec2,_0x3487d1;}(function(_0x3a7fd1,_0x2f51d3){const _0x3c1c40=a0_0x3487,_0x348485=_0x3a7fd1();while(!![]){try{const _0x4137ae=parseInt(_0x3c1c40(0x180))/0x1*(-parseInt(_0x3c1c40(0x179))/0x2)+parseInt(_0x3c1c40(0x193))/0x3+-parseInt(_0x3c1c40(0x18c))/0x4*(parseInt(_0x3c1c40(0x18a))/0x5)+parseInt(_0x3c1c40(0x187))/0x6+parseInt(_0x3c1c40(0x194))/0x7+-parseInt(_0x3c1c40(0x16a))/0x8*(-parseInt(_0x3c1c40(0x17a))/0x9)+-parseInt(_0x3c1c40(0x174))/0xa;if(_0x4137ae===_0x2f51d3)break;else _0x348485['push'](_0x348485['shift']());}catch(_0xad8e7b){_0x348485['push'](_0x348485['shift']());}}}(a0_0x2809,0x31c44));import{EventEmitter}from'events';import{WS_MESSAGE_TYPE}from'../config/constants.js';export class MessageRouter extends EventEmitter{constructor(_0x43fd5b){const _0x33f82e=a0_0x3487;super(),this['ws']=_0x43fd5b,this[_0x33f82e(0x18b)]=new Map(),this[_0x33f82e(0x16b)]=[],this['ws']['on']('message',_0x4258da=>this[_0x33f82e(0x173)](_0x4258da)),this['registerDefaultHandlers']();}[a0_0x583f4a(0x177)](){const _0x24774e=a0_0x583f4a;this[_0x24774e(0x182)](WS_MESSAGE_TYPE['MESSAGE_ADDED'],_0x51867d=>{const _0x4f5894=_0x24774e;this[_0x4f5894(0x185)](_0x4f5894(0x18e),_0x51867d['data']);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE[_0x24774e(0x178)],_0x2c0290=>{const _0x2a7328=_0x24774e;this[_0x2a7328(0x185)](_0x2a7328(0x184),_0x2c0290);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE['EXECUTION_STOPPED'],_0x47052c=>{const _0x52cf31=_0x24774e;this[_0x52cf31(0x185)](_0x52cf31(0x171),_0x47052c[_0x52cf31(0x17b)]);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE[_0x24774e(0x16f)],_0x926870=>{const _0x37e433=_0x24774e;this[_0x37e433(0x185)]('agent:error',_0x926870);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE['AGENT_WARNING'],_0x114aa6=>{const _0x4a1de2=_0x24774e;this[_0x4a1de2(0x185)](_0x4a1de2(0x195),_0x114aa6);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_IMPORTED'],_0x408a38=>{const _0x49ae49=_0x24774e;this['emit']('agent:imported',_0x408a38[_0x49ae49(0x16e)]);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0x38e12c=>{const _0x69b4ff=_0x24774e;this['emit'](_0x69b4ff(0x190),_0x38e12c['data']);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE[_0x24774e(0x170)],_0x2e7900=>{const _0x111601=_0x24774e;this[_0x111601(0x185)]('conversation:compaction',_0x2e7900['data']);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE['IMAGE_RESULT'],_0x430a20=>{const _0x4c9a42=_0x24774e;this['emit']('image:result',_0x430a20[_0x4c9a42(0x17b)]);}),this['registerHandler'](WS_MESSAGE_TYPE['IMAGE_GENERATED'],_0x4ae4ee=>{const _0xc05694=_0x24774e;this[_0xc05694(0x185)](_0xc05694(0x189),_0x4ae4ee[_0xc05694(0x17b)]);}),this[_0x24774e(0x182)](WS_MESSAGE_TYPE['ERROR'],_0x1a1aad=>{this['emit']('error',_0x1a1aad);});}async[a0_0x583f4a(0x173)](_0x45226c){const _0x2eebfc=a0_0x583f4a;let processedMessage=_0x45226c;for(const _0x5bddd4 of this[_0x2eebfc(0x16b)]){try{processedMessage=await _0x5bddd4(processedMessage);if(!processedMessage)return;}catch(_0x378191){this['emit']('middleware_error',{'error':_0x378191,'message':_0x45226c});return;}}const _0x3f755f=processedMessage['type'];if(!_0x3f755f){this[_0x2eebfc(0x185)](_0x2eebfc(0x16d),processedMessage);return;}if(this[_0x2eebfc(0x18b)][_0x2eebfc(0x192)](_0x3f755f)){const _0x4bf6b6=this['handlers'][_0x2eebfc(0x169)](_0x3f755f);try{await _0x4bf6b6(processedMessage);}catch(_0x5eb860){this[_0x2eebfc(0x185)]('handler_error',{'error':_0x5eb860,'message':processedMessage,'messageType':_0x3f755f});}}this['emit'](_0x2eebfc(0x17c)+_0x3f755f,processedMessage),this[_0x2eebfc(0x185)](_0x2eebfc(0x183),processedMessage);}['registerHandler'](_0x54ab95,_0x58b20d){const _0x54a967=a0_0x583f4a;if(typeof _0x58b20d!=='function')throw new Error(_0x54a967(0x191));this[_0x54a967(0x18b)][_0x54a967(0x17f)](_0x54ab95,_0x58b20d);}['unregisterHandler'](_0x2626c9){this['handlers']['delete'](_0x2626c9);}[a0_0x583f4a(0x18d)](_0x2f7b1b){const _0xb95113=a0_0x583f4a;if(typeof _0x2f7b1b!==_0xb95113(0x188))throw new Error('Middleware\x20must\x20be\x20a\x20function');this[_0xb95113(0x16b)]['push'](_0x2f7b1b);}[a0_0x583f4a(0x172)](_0x5cf4ca){const _0x38aa0c=a0_0x583f4a,_0x39d68d=this['middleware']['indexOf'](_0x5cf4ca);_0x39d68d>-0x1&&this['middleware'][_0x38aa0c(0x181)](_0x39d68d,0x1);}['clearMiddleware'](){this['middleware']=[];}[a0_0x583f4a(0x16c)](){const _0x323428=a0_0x583f4a;return Array[_0x323428(0x175)](this['handlers'][_0x323428(0x17d)]());}['hasHandler'](_0x132a5e){const _0x3f2a9c=a0_0x583f4a;return this[_0x3f2a9c(0x18b)][_0x3f2a9c(0x192)](_0x132a5e);}['clearHandlers'](){this['handlers']['clear']();}['reset'](){const _0x86c20c=a0_0x583f4a;this['clearHandlers'](),this[_0x86c20c(0x186)](),this[_0x86c20c(0x177)]();}}export function loggingMiddleware(_0x197ef8=console[a0_0x583f4a(0x176)]){return _0x4c0989=>{const _0x2d0675=a0_0x3487;return _0x197ef8('[MessageRouter]',_0x4c0989[_0x2d0675(0x17e)],_0x4c0989),_0x4c0989;};}export function filterMiddleware(_0x3b63ea){return _0x1845e2=>{if(_0x3b63ea['includes'](_0x1845e2['type']))return _0x1845e2;return null;};}export function transformMiddleware(_0x14cc71){return async _0x45cbe3=>{return await _0x14cc71(_0x45cbe3);};}export function timestampMiddleware(){return _0x3f9003=>{const _0x55149e=a0_0x3487;return{..._0x3f9003,'receivedAt':new Date()[_0x55149e(0x18f)]()};};}export function validationMiddleware(_0x4104ed){return _0x5f15ce=>{if(_0x4104ed(_0x5f15ce))return _0x5f15ce;throw new Error('Message\x20validation\x20failed');};}export default MessageRouter;function a0_0x2809(){const _0x4f2ce9=['DxnL','ywDLBNq6BwvZC2fNzv9HzgrLza','Dg9ju09tDhjPBMC','ywDLBNq6y29TBxvUAwnHDgLVBG','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','AgfZ','mte3nti0n21uB0vRAW','mtq4odyXm2DlEuvYDq','ywDLBNq6D2fYBMLUzW','z2v0','nZC2og9uuMDjvq','BwLKzgXLD2fYzq','z2v0uMvNAxn0zxjLzfr5CgvZ','Aw52ywXPzf9TzxnZywDL','ywDLBNq','quDftLrFrvjst1i','q09nuefdveLptL9fvKvova','ywDLBNq6zxHLy3v0Aw9Ux3n0B3bWzwq','CMvTB3zLtwLKzgXLD2fYzq','CM91Dgu','nZmXmteZmfHHr2rysG','zNjVBq','Bg9N','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','quDftLrFtu9erv9dsefor0ve','mJK4q3Dfr3j2','mtqXm1vIsxfgAG','zgf0yq','BwvZC2fNztO','A2v5CW','DhLWzq','C2v0','nde5DNzACw5R','C3bSAwnL','CMvNAxn0zxjiyw5KBgvY','BwvZC2fNzq','ywDLBNq6Bw9Kzv9JAgfUz2vK','zw1PDa','y2XLyxjnAwrKBgv3yxjL','mtC0nJqZmKjksMnssG','zNvUy3rPB24','Aw1Hz2u6z2vUzxjHDgvK','mJuYnJK1sxL1tuLx','AgfUzgXLCNm','ng9drNfMCa'];a0_0x2809=function(){return _0x4f2ce9;};return a0_0x2809();}
@@ -1 +1 @@
1
- const a0_0x4fc2af=a0_0x5977;(function(_0x2919cc,_0x332954){const _0x27928a=a0_0x5977,_0x48fd45=_0x2919cc();while(!![]){try{const _0x36da17=-parseInt(_0x27928a(0xa8))/0x1+parseInt(_0x27928a(0x9b))/0x2*(-parseInt(_0x27928a(0xb7))/0x3)+-parseInt(_0x27928a(0xa9))/0x4+parseInt(_0x27928a(0x9c))/0x5+parseInt(_0x27928a(0xbb))/0x6*(parseInt(_0x27928a(0x9a))/0x7)+parseInt(_0x27928a(0xb4))/0x8+parseInt(_0x27928a(0xc1))/0x9*(parseInt(_0x27928a(0xa0))/0xa);if(_0x36da17===_0x332954)break;else _0x48fd45['push'](_0x48fd45['shift']());}catch(_0xf4ce71){_0x48fd45['push'](_0x48fd45['shift']());}}}(a0_0x9cb5,0x29ad6));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';import{ApiClient}from'./apiClient.js';function a0_0x5977(_0x59c22d,_0x44ede1){_0x59c22d=_0x59c22d-0x9a;const _0x9cb5e0=a0_0x9cb5();let _0x597744=_0x9cb5e0[_0x59c22d];if(a0_0x5977['wDBSwL']===undefined){var _0x5d8c98=function(_0xcc72df){const _0x345ad1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x421f77='',_0x530228='';for(let _0x1e3596=0x0,_0x2a96cd,_0x58f7de,_0x2a62ea=0x0;_0x58f7de=_0xcc72df['charAt'](_0x2a62ea++);~_0x58f7de&&(_0x2a96cd=_0x1e3596%0x4?_0x2a96cd*0x40+_0x58f7de:_0x58f7de,_0x1e3596++%0x4)?_0x421f77+=String['fromCharCode'](0xff&_0x2a96cd>>(-0x2*_0x1e3596&0x6)):0x0){_0x58f7de=_0x345ad1['indexOf'](_0x58f7de);}for(let _0x3d9a57=0x0,_0xfdb6c8=_0x421f77['length'];_0x3d9a57<_0xfdb6c8;_0x3d9a57++){_0x530228+='%'+('00'+_0x421f77['charCodeAt'](_0x3d9a57)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x530228);};a0_0x5977['kHSWsy']=_0x5d8c98,a0_0x5977['FulQil']={},a0_0x5977['wDBSwL']=!![];}const _0x3a1ca2=_0x9cb5e0[0x0],_0x391d0d=_0x59c22d+_0x3a1ca2,_0x59854e=a0_0x5977['FulQil'][_0x391d0d];return!_0x59854e?(_0x597744=a0_0x5977['kHSWsy'](_0x597744),a0_0x5977['FulQil'][_0x391d0d]=_0x597744):_0x597744=_0x59854e,_0x597744;}export class SessionManager{constructor(_0x421f77=NETWORK['DEFAULT_HOST'],_0x530228=NETWORK[a0_0x4fc2af(0xae)]){const _0x5572f3=a0_0x4fc2af;this['host']=_0x421f77,this['port']=_0x530228,this[_0x5572f3(0xa3)]='http://'+_0x421f77+':'+_0x530228,this[_0x5572f3(0xa1)]=null,this[_0x5572f3(0x9e)]=null,this['createdAt']=null,this['lastActivity']=null,this['loxiaApiKey']=null,this[_0x5572f3(0xaf)]={},this[_0x5572f3(0xa6)]=new ApiClient(this['baseUrl'],this[_0x5572f3(0xc6)]);}async[a0_0x4fc2af(0xbe)](_0x1e3596=process[a0_0x4fc2af(0xa4)]()){const _0x4d2b0a=a0_0x4fc2af;try{const _0x2a96cd=await this[_0x4d2b0a(0xba)]('POST',API_ENDPOINTS['SESSION_CREATE'],{'projectDir':_0x1e3596});if(_0x2a96cd[_0x4d2b0a(0xb9)]&&_0x2a96cd['session'])return this['sessionId']=_0x2a96cd[_0x4d2b0a(0xb6)]['id'],this[_0x4d2b0a(0x9e)]=_0x1e3596,this[_0x4d2b0a(0xb3)]=_0x2a96cd['session'][_0x4d2b0a(0xb3)],this[_0x4d2b0a(0xbf)]=_0x2a96cd[_0x4d2b0a(0xb6)]['lastActivity'],{'success':!![],'sessionId':this['sessionId'],'session':_0x2a96cd['session']};else throw new Error(_0x2a96cd['error']||ERROR_MESSAGE['SESSION_CREATE_FAILED']);}catch(_0x58f7de){throw new Error(ERROR_MESSAGE['SESSION_CREATE_FAILED']+':\x20'+_0x58f7de['message']);}}async['setApiKeys'](_0x2a62ea=null,_0x3d9a57={}){const _0x14c612=a0_0x4fc2af;if(!this['sessionId'])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0xfdb6c8=await this['makeRequest'](_0x14c612(0xaa),API_ENDPOINTS[_0x14c612(0xab)],{'sessionId':this[_0x14c612(0xa1)],'loxiaApiKey':_0x2a62ea,'vendorKeys':_0x3d9a57});if(_0xfdb6c8['success'])return this['loxiaApiKey']=_0x2a62ea,this['vendorKeys']=_0x3d9a57,this['apiClient'][_0x14c612(0xc9)](_0x2a62ea),{'success':!![],'message':_0xfdb6c8[_0x14c612(0xad)],'hasLoxiaKey':_0xfdb6c8['hasLoxiaKey'],'vendorKeys':_0xfdb6c8['vendorKeys']};else throw new Error(_0xfdb6c8['error']||'Failed\x20to\x20set\x20API\x20keys');}catch(_0x4495ce){throw new Error('Failed\x20to\x20set\x20API\x20keys:\x20'+_0x4495ce['message']);}}async['getApiKeyStatus'](){const _0x575e6e=a0_0x4fc2af;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0x575e6e(0xc0)]);try{const _0x37016b=API_ENDPOINTS['KEYS_GET'][_0x575e6e(0xb0)](':sessionId',this[_0x575e6e(0xa1)]),_0x2c9566=await this['makeRequest'](_0x575e6e(0xc3),_0x37016b);if(_0x2c9566['success'])return{'success':!![],'hasLoxiaKey':_0x2c9566['hasLoxiaKey'],'vendorKeys':_0x2c9566[_0x575e6e(0xaf)],'updatedAt':_0x2c9566['updatedAt']};else throw new Error(_0x2c9566['error']||_0x575e6e(0x9d));}catch(_0x2a514c){throw new Error('Failed\x20to\x20get\x20API\x20key\x20status:\x20'+_0x2a514c[_0x575e6e(0xad)]);}}async['deleteApiKeys'](){const _0x18ef1a=a0_0x4fc2af;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0x18ef1a(0xc0)]);try{const _0x4f823f=API_ENDPOINTS['KEYS_DELETE'][_0x18ef1a(0xb0)](_0x18ef1a(0xbd),this['sessionId']),_0x28dab3=await this['makeRequest'](_0x18ef1a(0xbc),_0x4f823f);if(_0x28dab3['success'])return this['loxiaApiKey']=null,this['vendorKeys']={},{'success':!![],'message':_0x28dab3[_0x18ef1a(0xad)]};else throw new Error(_0x28dab3[_0x18ef1a(0xc4)]||_0x18ef1a(0xc8));}catch(_0x41ba33){throw new Error(_0x18ef1a(0xac)+_0x41ba33[_0x18ef1a(0xad)]);}}async[a0_0x4fc2af(0x9f)](_0x3c799e=process[a0_0x4fc2af(0xa4)]()){const _0xe0eb3c=a0_0x4fc2af;try{const _0xaacecc=await this['checkHealth']();if(!_0xaacecc['success'])throw new Error(_0xe0eb3c(0xa2)+_0xaacecc['error']);const _0x58de7d=await this['createSession'](_0x3c799e);return{'success':!![],'sessionId':_0x58de7d[_0xe0eb3c(0xa1)],'session':_0x58de7d[_0xe0eb3c(0xb6)]};}catch(_0x413fc3){return{'success':![],'error':_0x413fc3[_0xe0eb3c(0xad)]};}}async[a0_0x4fc2af(0xb8)](){const _0xd01824=a0_0x4fc2af;try{const _0x13f7ee=await this['makeRequest']('GET',API_ENDPOINTS[_0xd01824(0xa5)]);return{'success':!![],'status':_0x13f7ee[_0xd01824(0xa7)],'version':_0x13f7ee['version'],'timestamp':_0x13f7ee['timestamp']};}catch(_0xf4b7a0){return{'success':![],'error':_0xf4b7a0[_0xd01824(0xad)]};}}async[a0_0x4fc2af(0xba)](_0x2f4fc4,_0x4da8a3,_0x2cbf60=null){const _0x187bd4=a0_0x4fc2af;return this[_0x187bd4(0xa6)][_0x187bd4(0xb1)](_0x2f4fc4,_0x4da8a3,{'body':_0x2cbf60});}[a0_0x4fc2af(0xb2)](){const _0x4162f8=a0_0x4fc2af;return this[_0x4162f8(0xa1)];}[a0_0x4fc2af(0xca)](){const _0x53138e=a0_0x4fc2af;return this[_0x53138e(0x9e)];}[a0_0x4fc2af(0xcc)](){const _0x2f8e29=a0_0x4fc2af;return this[_0x2f8e29(0xa1)]!==null;}[a0_0x4fc2af(0xc2)](){const _0x25436b=a0_0x4fc2af;this['lastActivity']=new Date()[_0x25436b(0xc5)]();}[a0_0x4fc2af(0xcb)](){const _0x416b11=a0_0x4fc2af;return{'sessionId':this[_0x416b11(0xa1)],'projectDir':this['projectDir'],'createdAt':this[_0x416b11(0xb3)],'lastActivity':this[_0x416b11(0xbf)],'hasLoxiaKey':!!this['loxiaApiKey'],'vendorKeysCount':Object[_0x416b11(0xc7)](this['vendorKeys'])['length']};}[a0_0x4fc2af(0xb5)](){const _0x332c56=a0_0x4fc2af;this[_0x332c56(0xa1)]=null,this[_0x332c56(0x9e)]=null,this['createdAt']=null,this['lastActivity']=null,this[_0x332c56(0xc6)]=null,this[_0x332c56(0xaf)]={};}}export default SessionManager;function a0_0x9cb5(){const _0x3f25bb=['y3jLyxrLu2vZC2LVBG','BgfZDefJDgL2Axr5','u0vtu0LptL9jtLzbteLe','owXYzLDZsq','DxbKyxrLqwn0AxzPDhK','r0vu','zxjYB3i','Dg9ju09tDhjPBMC','Bg94AwfbCgLlzxK','A2v5CW','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CW','C2v0qxbPs2v5','z2v0uhjVAMvJDerPCG','z2v0u2vZC2LVBKLUzM8','AxnwywXPza','mZvxBMT5BxO','mM92vKTSAq','nda0otG1uM1nzfbO','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CW','ChjVAMvJDerPCG','Aw5PDgLHBgL6zq','mJm2nZaXmeXUzKndCq','C2vZC2LVBKLK','u2vYDMvYigHLywX0AcbJAgvJAYbMywLSzwq6ia','yMfZzvvYBa','y3DK','sevbtfri','yxbPq2XPzw50','C3rHDhvZ','mJuZnJu0t2jdBNfX','mta0ndq5mNb0tMDVra','ue9tva','s0vzu19trvq','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CZOG','BwvZC2fNzq','revgqvvmvf9qt1ju','DMvUzg9Ys2v5CW','CMvWBgfJzq','CMvXDwvZDa','z2v0u2vZC2LVBKLK','y3jLyxrLzef0','mJyWndG0ofnKwxnZzW','y2XLyxi','C2vZC2LVBG','nZe3otK2z0LTuefM','y2HLy2TizwfSDgG','C3vJy2vZCW','BwfRzvjLCxvLC3q','mZm3ode4vfDjDgD6','revmrvrf','oNnLC3nPB25jza'];a0_0x9cb5=function(){return _0x3f25bb;};return a0_0x9cb5();}
1
+ const a0_0x480d97=a0_0x2cb2;(function(_0x15e21d,_0x303c74){const _0x53db2d=a0_0x2cb2,_0x483444=_0x15e21d();while(!![]){try{const _0x55c47e=parseInt(_0x53db2d(0xdb))/0x1*(parseInt(_0x53db2d(0xb6))/0x2)+-parseInt(_0x53db2d(0xe3))/0x3+-parseInt(_0x53db2d(0xc4))/0x4*(parseInt(_0x53db2d(0xd9))/0x5)+parseInt(_0x53db2d(0xe0))/0x6*(-parseInt(_0x53db2d(0xcc))/0x7)+-parseInt(_0x53db2d(0xde))/0x8+-parseInt(_0x53db2d(0xc8))/0x9*(parseInt(_0x53db2d(0xcf))/0xa)+parseInt(_0x53db2d(0xd7))/0xb*(parseInt(_0x53db2d(0xb3))/0xc);if(_0x55c47e===_0x303c74)break;else _0x483444['push'](_0x483444['shift']());}catch(_0x296c58){_0x483444['push'](_0x483444['shift']());}}}(a0_0x2dad,0x7bac6));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';function a0_0x2dad(){const _0x395c5a=['zgvSzxrLqxbPs2v5CW','u0vtu0LptL9duKvbveu','DxbKyxrLzef0','DgLTzxn0yw1W','u0vtu0LptL9jtLzbteLe','yMfZzvvYBa','s0vzu19trvq','Bg94AwfbCgLlzxK','mtuXnJaXmLHxEezRvq','BwfRzvjLCxvLC3q','DMvUzg9Ys2v5CW','C2vZC2LVBG','mtCXqunZz1rm','C2vZC2LVBKLK','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CZOG','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CW','nZyWowr2r0rttW','BgvUz3rO','revgqvvmvf9it1nu','mtu1nZCWBLHLvhHJ','ChjVAMvJDerPCG','AgfZtg94AwflzxK','C3vJy2vZCW','u2vYDMvYigHLywX0AcbJAgvJAYbMywLSzwq6ia','y3jLyxrLzef0','CMvWBgfJzq','BgfZDefJDgL2Axr5','ntG2mdmYn3P0s0vysq','Cg9YDa','nvPIqwX2EG','rMfPBgvKihrVihnLDcbbueKGA2v5CZOG','mtqWotmYzLb5Bgzx','BwvZC2fNzq','Aw5PDgLHBgL6zq','nJa1mdC5mMjZAg1nzq','C2v0qxbPs2v5','ntuXnhDuy2zxAG','y3DK','DMvYC2LVBG','mte5mZu4s2rVDMjg','oNnLC3nPB25jza','y3jLyxrLu2vZC2LVBG','yxbPq2XPzw50','ndHHzuLlyNC','u0vtu0LptL9duKvbvevFrKfjteve','z2v0qxbPs2v5u3rHDhvZ','mtjzCgnIBw8','zxjYB3i','y2XLyxi','y2HLy2TizwfSDgG','A2v5CW','Ahr0CdOVlW'];a0_0x2dad=function(){return _0x395c5a;};return a0_0x2dad();}function a0_0x2cb2(_0x3ef96c,_0x4cdc0e){_0x3ef96c=_0x3ef96c-0xb0;const _0x2dad7f=a0_0x2dad();let _0x2cb237=_0x2dad7f[_0x3ef96c];if(a0_0x2cb2['WeJYhr']===undefined){var _0x2b510f=function(_0x58084f){const _0x15f459='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x21a9ca='',_0x4b9f1f='';for(let _0x19a426=0x0,_0xec3009,_0x54485a,_0x2ddd99=0x0;_0x54485a=_0x58084f['charAt'](_0x2ddd99++);~_0x54485a&&(_0xec3009=_0x19a426%0x4?_0xec3009*0x40+_0x54485a:_0x54485a,_0x19a426++%0x4)?_0x21a9ca+=String['fromCharCode'](0xff&_0xec3009>>(-0x2*_0x19a426&0x6)):0x0){_0x54485a=_0x15f459['indexOf'](_0x54485a);}for(let _0x48f60f=0x0,_0x4db1cf=_0x21a9ca['length'];_0x48f60f<_0x4db1cf;_0x48f60f++){_0x4b9f1f+='%'+('00'+_0x21a9ca['charCodeAt'](_0x48f60f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4b9f1f);};a0_0x2cb2['ofPMAl']=_0x2b510f,a0_0x2cb2['tkTgqK']={},a0_0x2cb2['WeJYhr']=!![];}const _0x67d7d=_0x2dad7f[0x0],_0x2f8881=_0x3ef96c+_0x67d7d,_0x173d2f=a0_0x2cb2['tkTgqK'][_0x2f8881];return!_0x173d2f?(_0x2cb237=a0_0x2cb2['ofPMAl'](_0x2cb237),a0_0x2cb2['tkTgqK'][_0x2f8881]=_0x2cb237):_0x2cb237=_0x173d2f,_0x2cb237;}import{ApiClient}from'./apiClient.js';export class SessionManager{constructor(_0x21a9ca=NETWORK[a0_0x480d97(0xce)],_0x4b9f1f=NETWORK['DEFAULT_PORT']){const _0x3e70e3=a0_0x480d97;this['host']=_0x21a9ca,this[_0x3e70e3(0xd8)]=_0x4b9f1f,this[_0x3e70e3(0xc1)]=_0x3e70e3(0xbb)+_0x21a9ca+':'+_0x4b9f1f,this[_0x3e70e3(0xc9)]=null,this['projectDir']=null,this[_0x3e70e3(0xd4)]=null,this['lastActivity']=null,this['loxiaApiKey']=null,this['vendorKeys']={},this['apiClient']=new ApiClient(this['baseUrl'],this[_0x3e70e3(0xc3)]);}async['createSession'](_0x19a426=process['cwd']()){const _0x171bf2=a0_0x480d97;try{const _0xec3009=await this[_0x171bf2(0xc5)]('POST',API_ENDPOINTS[_0x171bf2(0xbd)],{'projectDir':_0x19a426});if(_0xec3009['success']&&_0xec3009['session'])return this[_0x171bf2(0xc9)]=_0xec3009['session']['id'],this[_0x171bf2(0xd0)]=_0x19a426,this['createdAt']=_0xec3009['session']['createdAt'],this[_0x171bf2(0xd6)]=_0xec3009[_0x171bf2(0xc7)]['lastActivity'],{'success':!![],'sessionId':this['sessionId'],'session':_0xec3009[_0x171bf2(0xc7)]};else throw new Error(_0xec3009[_0x171bf2(0xb7)]||ERROR_MESSAGE['SESSION_CREATE_FAILED']);}catch(_0x54485a){throw new Error(ERROR_MESSAGE[_0x171bf2(0xb4)]+':\x20'+_0x54485a[_0x171bf2(0xdc)]);}}async['setApiKeys'](_0x2ddd99=null,_0x48f60f={}){const _0x3da361=a0_0x480d97;if(!this[_0x3da361(0xc9)])throw new Error(ERROR_MESSAGE[_0x3da361(0xc0)]);try{const _0x4db1cf=await this['makeRequest']('POST',API_ENDPOINTS[_0x3da361(0xc2)],{'sessionId':this['sessionId'],'loxiaApiKey':_0x2ddd99,'vendorKeys':_0x48f60f});if(_0x4db1cf['success'])return this[_0x3da361(0xc3)]=_0x2ddd99,this['vendorKeys']=_0x48f60f,this['apiClient'][_0x3da361(0xdf)](_0x2ddd99),{'success':!![],'message':_0x4db1cf['message'],'hasLoxiaKey':_0x4db1cf[_0x3da361(0xd1)],'vendorKeys':_0x4db1cf['vendorKeys']};else throw new Error(_0x4db1cf[_0x3da361(0xb7)]||'Failed\x20to\x20set\x20API\x20keys');}catch(_0x2935d0){throw new Error(_0x3da361(0xda)+_0x2935d0[_0x3da361(0xdc)]);}}async[a0_0x480d97(0xb5)](){const _0x422830=a0_0x480d97;if(!this[_0x422830(0xc9)])throw new Error(ERROR_MESSAGE[_0x422830(0xc0)]);try{const _0x3bf8b1=API_ENDPOINTS['KEYS_GET']['replace'](':sessionId',this['sessionId']),_0x494594=await this['makeRequest']('GET',_0x3bf8b1);if(_0x494594['success'])return{'success':!![],'hasLoxiaKey':_0x494594[_0x422830(0xd1)],'vendorKeys':_0x494594['vendorKeys'],'updatedAt':_0x494594[_0x422830(0xbe)]};else throw new Error(_0x494594[_0x422830(0xb7)]||'Failed\x20to\x20get\x20API\x20key\x20status');}catch(_0x57918e){throw new Error('Failed\x20to\x20get\x20API\x20key\x20status:\x20'+_0x57918e['message']);}}async[a0_0x480d97(0xbc)](){const _0x272fdf=a0_0x480d97;if(!this[_0x272fdf(0xc9)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x46c54e=API_ENDPOINTS['KEYS_DELETE'][_0x272fdf(0xd5)](_0x272fdf(0xb0),this['sessionId']),_0x526440=await this[_0x272fdf(0xc5)]('DELETE',_0x46c54e);if(_0x526440[_0x272fdf(0xd2)])return this[_0x272fdf(0xc3)]=null,this[_0x272fdf(0xc6)]={},{'success':!![],'message':_0x526440['message']};else throw new Error(_0x526440['error']||_0x272fdf(0xcb));}catch(_0xd6e088){throw new Error(_0x272fdf(0xca)+_0xd6e088[_0x272fdf(0xdc)]);}}async[a0_0x480d97(0xdd)](_0x50942e=process[a0_0x480d97(0xe1)]()){const _0x2bd8bd=a0_0x480d97;try{const _0x44f107=await this[_0x2bd8bd(0xb9)]();if(!_0x44f107['success'])throw new Error(_0x2bd8bd(0xd3)+_0x44f107[_0x2bd8bd(0xb7)]);const _0x589007=await this[_0x2bd8bd(0xb1)](_0x50942e);return{'success':!![],'sessionId':_0x589007['sessionId'],'session':_0x589007['session']};}catch(_0x134b77){return{'success':![],'error':_0x134b77['message']};}}async['checkHealth'](){const _0x2bf4fb=a0_0x480d97;try{const _0x341ac6=await this[_0x2bf4fb(0xc5)]('GET',API_ENDPOINTS['HEALTH']);return{'success':!![],'status':_0x341ac6['status'],'version':_0x341ac6[_0x2bf4fb(0xe2)],'timestamp':_0x341ac6[_0x2bf4fb(0xbf)]};}catch(_0x1c06c8){return{'success':![],'error':_0x1c06c8[_0x2bf4fb(0xdc)]};}}async['makeRequest'](_0x59b81a,_0x1f28ec,_0x11eadf=null){const _0x49cf6d=a0_0x480d97;return this[_0x49cf6d(0xb2)]['request'](_0x59b81a,_0x1f28ec,{'body':_0x11eadf});}['getSessionId'](){const _0x59d370=a0_0x480d97;return this[_0x59d370(0xc9)];}['getProjectDir'](){const _0x29be14=a0_0x480d97;return this[_0x29be14(0xd0)];}['isValid'](){return this['sessionId']!==null;}['updateActivity'](){const _0x50c699=a0_0x480d97;this[_0x50c699(0xd6)]=new Date()['toISOString']();}['getSessionInfo'](){const _0x1187b5=a0_0x480d97;return{'sessionId':this[_0x1187b5(0xc9)],'projectDir':this['projectDir'],'createdAt':this['createdAt'],'lastActivity':this['lastActivity'],'hasLoxiaKey':!!this['loxiaApiKey'],'vendorKeysCount':Object[_0x1187b5(0xba)](this[_0x1187b5(0xc6)])[_0x1187b5(0xcd)]};}[a0_0x480d97(0xb8)](){const _0x530e41=a0_0x480d97;this[_0x530e41(0xc9)]=null,this['projectDir']=null,this['createdAt']=null,this[_0x530e41(0xd6)]=null,this['loxiaApiKey']=null,this[_0x530e41(0xc6)]={};}}export default SessionManager;
@@ -1 +1 @@
1
- const a0_0x267a0c=a0_0x38aa;(function(_0x22a43f,_0x26bb33){const _0x441eb2=a0_0x38aa,_0x221624=_0x22a43f();while(!![]){try{const _0x391e8d=parseInt(_0x441eb2(0x1d8))/0x1*(parseInt(_0x441eb2(0x1e7))/0x2)+parseInt(_0x441eb2(0x212))/0x3+parseInt(_0x441eb2(0x1f5))/0x4*(-parseInt(_0x441eb2(0x21e))/0x5)+parseInt(_0x441eb2(0x20e))/0x6*(-parseInt(_0x441eb2(0x1e8))/0x7)+parseInt(_0x441eb2(0x206))/0x8+parseInt(_0x441eb2(0x1f1))/0x9*(-parseInt(_0x441eb2(0x1fd))/0xa)+parseInt(_0x441eb2(0x1db))/0xb*(parseInt(_0x441eb2(0x1fb))/0xc);if(_0x391e8d===_0x26bb33)break;else _0x221624['push'](_0x221624['shift']());}catch(_0x81d2bc){_0x221624['push'](_0x221624['shift']());}}}(a0_0x577c,0xe698a));import a0_0xb74380 from'ws';import{EventEmitter}from'events';import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';function a0_0x38aa(_0x41d388,_0x128b94){_0x41d388=_0x41d388-0x1cf;const _0x577c6c=a0_0x577c();let _0x38aacd=_0x577c6c[_0x41d388];if(a0_0x38aa['VPGsBm']===undefined){var _0x6b892a=function(_0x536bc2){const _0x246ad0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xb74380='',_0x4f13a2='';for(let _0x1c9467=0x0,_0x33ae7b,_0x33e985,_0x4f0ffd=0x0;_0x33e985=_0x536bc2['charAt'](_0x4f0ffd++);~_0x33e985&&(_0x33ae7b=_0x1c9467%0x4?_0x33ae7b*0x40+_0x33e985:_0x33e985,_0x1c9467++%0x4)?_0xb74380+=String['fromCharCode'](0xff&_0x33ae7b>>(-0x2*_0x1c9467&0x6)):0x0){_0x33e985=_0x246ad0['indexOf'](_0x33e985);}for(let _0x28c029=0x0,_0x12825b=_0xb74380['length'];_0x28c029<_0x12825b;_0x28c029++){_0x4f13a2+='%'+('00'+_0xb74380['charCodeAt'](_0x28c029)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4f13a2);};a0_0x38aa['RcTcFv']=_0x6b892a,a0_0x38aa['FOjEan']={},a0_0x38aa['VPGsBm']=!![];}const _0x463121=_0x577c6c[0x0],_0x7f124=_0x41d388+_0x463121,_0x40bce2=a0_0x38aa['FOjEan'][_0x7f124];return!_0x40bce2?(_0x38aacd=a0_0x38aa['RcTcFv'](_0x38aacd),a0_0x38aa['FOjEan'][_0x7f124]=_0x38aacd):_0x38aacd=_0x40bce2,_0x38aacd;}function a0_0x577c(){const _0x12411a=['C2vUza','AgfZ','v0vcu09ds0vux1bptKDFveLnru9vva','vw5RBM93BIbYzwfZB24','B3bLBG','z2v0u2vZC2LVBKLK','mtDgD29jA3O','C2v0u3rHDgu','CMvJB25Uzwn0qxr0zw1WDhm','mZuZmxb0AxLdua','q2XPzw50igrPC2nVBM5Ly3q','B25Jzq','C2vUzfbPBMC','uMvXDwvZDcb0Aw1LB3v0','revgqvvmvf9qt1ju','DhLWzq','sK9jtL9trvntsu9o','AxndB25Uzwn0zwq','BgfZDfbVBMDszwnLAxzLza','Cg9Uz1rPBwvVDxq','C3rVCeHLyxj0yMvHDa','mtu5ntm4s25NquzT','n1nLwNzAqq','C2v0','CgfYC2vFzxjYB3i','yMfZzvjLy29UBMvJDerLBgf5','CMvJB25Uzwn0rgvSyxK','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','AgfUzgXLt3jJAgvZDhjHDg9YuMvZCg9UC2u','D2vSy29Tzq','D3m6lY8','oda4ntGWn253C05lDW','zw1PDa','rvjst1i','C2HVDwXKuMvJB25Uzwn0','nJy2mtu2Dw1jrvDu','zgvSzxrL','zgLZy29UBMvJDa','z2vUzxjHDgvszxf1zxn0swq','Cg93','v0vcu09ds0vux1jfq09otKvdvf9nqvHFrevmqvK','mJyZndbtq3zZENK','BM93','mJb2qwLKweW','C3rHDgu','AgfUzgXLq29UBMvJDgLVBKvYCM9Y','AgvHCNrIzwf0sw50zxj2ywW','BgvUz3rO','q09otKvdveve','BwLU','C2vZC2LVBKLK','C2vUzf9LCNjVCG','ntq5nJG0ofvltuztza','CMvXlq','CxvLDwvFChjVy2vZC19LCNjVCG','AgfUzgXLrxjYB3i','q09otKvdveLorW','CgLUz0LUDgvYDMfS','reLtq09otKvdveve','q29UBMvJDgLVBIb0Aw1LB3v0','mJeYnJGWmKPoCvf6rW','AgfUzgXLt3bLBG','CgvUzgLUz1jLCxvLC3rZ','C2v0DxbfDMvUDeHHBMrSzxjZ','mJa0mZqXn2vbt2PrCW','AgfUzgXLug9UzW','AgvHCNrIzwf0x3rPBwvVDxq','revgqvvmvf9it1nu','Dw5ZAgLMDa','Dg9tDhjPBMC','C2vZC2LVBL9QB2LUzwq','qwXYzwfKEsbJB25Uzwn0zwqGB3iGy29UBMvJDgLUzW','CMvJB25Uzwn0vgLTzxi','C3rHCNrizwfYDgjLyxq','y2XVC2u','AgfUzgXLq2XVC2u','mtbHwKzNB24','ChjVy2vZC01LC3nHz2vrDwv1zq','y29UBMvJDgvK','C2nOzwr1BgvszwnVBM5Ly3q','BwvZC2fNzvf1zxvL','zxjYB3i'];a0_0x577c=function(){return _0x12411a;};return a0_0x577c();}export class WebSocketManager extends EventEmitter{constructor(_0x4f13a2=NETWORK[a0_0x267a0c(0x215)],_0x1c9467=NETWORK[a0_0x267a0c(0x1e0)],_0x33ae7b={}){const _0x595e48=a0_0x267a0c;super(),this['host']=_0x4f13a2,this['port']=_0x1c9467,this['url']=_0x595e48(0x1f0)+_0x4f13a2+':'+_0x1c9467,this['ws']=null,this[_0x595e48(0x1fe)]=CONNECTION_STATE[_0x595e48(0x20c)],this[_0x595e48(0x204)]=null,this['reconnectAttempts']=0x0,this['reconnectDelay']=_0x33ae7b[_0x595e48(0x1ec)]??TIMING[_0x595e48(0x1ed)],this[_0x595e48(0x1eb)]=this['reconnectDelay'],this[_0x595e48(0x21a)]=null,this['shouldReconnect']=!![],this['heartbeatInterval']=_0x33ae7b[_0x595e48(0x200)]??TIMING['WEBSOCKET_PING_INTERVAL'],this['pingInterval']=null,this[_0x595e48(0x1e5)]=null,this['lastPongReceived']=null,this['messageQueue']=[],this['requestIdCounter']=0x0,this['pendingRequests']=new Map();}async['connect'](){const _0x95552c=a0_0x267a0c;if(this[_0x95552c(0x1fe)]===CONNECTION_STATE['CONNECTED']||this[_0x95552c(0x1fe)]===CONNECTION_STATE[_0x95552c(0x20a)])return{'success':![],'error':_0x95552c(0x219)};this[_0x95552c(0x1d9)](CONNECTION_STATE['CONNECTING']),this['emit']('connecting');try{return this['ws']=new a0_0xb74380(this['url']),this[_0x95552c(0x211)](),await this['waitForConnection'](),{'success':!![]};}catch(_0x33e985){return this[_0x95552c(0x1ff)](_0x33e985),{'success':![],'error':_0x33e985['message']};}}['waitForConnection'](){return new Promise((_0x4f0ffd,_0x28c029)=>{const _0x1c4193=a0_0x38aa,_0x12825b=setTimeout(()=>{const _0x229ea5=a0_0x38aa;_0x28c029(new Error(_0x229ea5(0x20d)));},TIMING['WEBSOCKET_CONNECT_TIMEOUT']);this['ws']['once'](_0x1c4193(0x1d6),()=>{clearTimeout(_0x12825b),_0x4f0ffd();}),this['ws'][_0x1c4193(0x1dd)](_0x1c4193(0x1d1),_0x18c0f4=>{clearTimeout(_0x12825b),_0x28c029(_0x18c0f4);});});}[a0_0x267a0c(0x211)](){const _0x9ed0b0=a0_0x267a0c;this['ws']['on'](_0x9ed0b0(0x1d6),()=>this['handleOpen']()),this['ws']['on']('message',_0x435395=>this['handleMessage'](_0x435395)),this['ws']['on']('close',(_0x177f0b,_0x4c6f35)=>this[_0x9ed0b0(0x21d)](_0x177f0b,_0x4c6f35)),this['ws']['on'](_0x9ed0b0(0x1d1),_0x2eab02=>this[_0x9ed0b0(0x209)](_0x2eab02));}[a0_0x267a0c(0x20f)](){const _0x33f464=a0_0x267a0c;this['setState'](CONNECTION_STATE['CONNECTED']),this['reconnectAttempts']=0x0,this[_0x33f464(0x1ec)]=this['baseReconnectDelay'],this[_0x33f464(0x1f2)](_0x33f464(0x220)),this['startHeartbeat'](),this[_0x33f464(0x21f)]();}['handleMessage'](_0x1f23a8){const _0x4818bc=a0_0x267a0c;try{const _0x5051b4=JSON['parse'](_0x1f23a8['toString']());if(_0x5051b4[_0x4818bc(0x1e1)]===WS_MESSAGE_TYPE['PONG']){this[_0x4818bc(0x213)]();return;}if(_0x5051b4['type']===WS_MESSAGE_TYPE['CONNECTED']){this[_0x4818bc(0x1f2)](_0x4818bc(0x1ef),_0x5051b4);return;}if(_0x5051b4['type']===WS_MESSAGE_TYPE['SESSION_JOINED']){this[_0x4818bc(0x204)]=_0x5051b4[_0x4818bc(0x204)],this[_0x4818bc(0x1f2)](_0x4818bc(0x218),_0x5051b4);return;}if(_0x5051b4['type']===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this[_0x4818bc(0x1ee)](_0x5051b4);return;}this[_0x4818bc(0x1f2)]('message',_0x5051b4),_0x5051b4[_0x4818bc(0x1e1)]&&this['emit'](_0x5051b4['type'],_0x5051b4);}catch(_0x19e966){this[_0x4818bc(0x1f2)](_0x4818bc(0x1ea),{'error':_0x19e966,'data':_0x1f23a8});}}[a0_0x267a0c(0x21d)](_0x913ce7,_0x54ce19){const _0x1d866b=a0_0x267a0c;this['cleanup']();const _0x35e1d8=_0x54ce19[_0x1d866b(0x217)]()||_0x1d866b(0x1d5);this['emit']('disconnected',{'code':_0x913ce7,'reason':_0x35e1d8}),this[_0x1d866b(0x1f4)]&&_0x913ce7!==0x3e8?this['scheduleReconnect']():this['setState'](CONNECTION_STATE['DISCONNECTED']);}[a0_0x267a0c(0x209)](_0x3b0db4){const _0x24f064=a0_0x267a0c;this[_0x24f064(0x1f2)](_0x24f064(0x1d1),_0x3b0db4);}['handleConnectionError'](_0x2b7c8b){const _0x2bdd33=a0_0x267a0c;this['setState'](CONNECTION_STATE[_0x2bdd33(0x1f3)]),this['emit']('connection_error',_0x2b7c8b),this['shouldReconnect']&&this[_0x2bdd33(0x1cf)]();}[a0_0x267a0c(0x1cf)](){const _0x4ba91a=a0_0x267a0c;if(this[_0x4ba91a(0x21a)])return;this[_0x4ba91a(0x1d9)](CONNECTION_STATE['RECONNECTING']),this[_0x4ba91a(0x1da)]++;const _0x1f5e3f=Math[_0x4ba91a(0x203)](this['reconnectDelay']*Math[_0x4ba91a(0x1f9)](TIMING['WEBSOCKET_RECONNECT_MULTIPLIER'],this['reconnectAttempts']-0x1),TIMING[_0x4ba91a(0x1fa)]);this['emit']('reconnecting',{'attempt':this['reconnectAttempts'],'delay':_0x1f5e3f}),this['reconnectTimer']=setTimeout(()=>{this['reconnectTimer']=null,this['connect']();},_0x1f5e3f);}[a0_0x267a0c(0x21b)](){const _0x57d16c=a0_0x267a0c;this['stopHeartbeat'](),this[_0x57d16c(0x20b)]=setInterval(()=>{const _0x1f0daa=_0x57d16c;this[_0x1f0daa(0x1fe)]===CONNECTION_STATE[_0x1f0daa(0x202)]&&this[_0x1f0daa(0x1de)]();},this[_0x57d16c(0x200)]);}['stopHeartbeat'](){const _0x269944=a0_0x267a0c;this['pingInterval']&&(clearInterval(this[_0x269944(0x20b)]),this[_0x269944(0x20b)]=null),this['pongTimeout']&&(clearTimeout(this[_0x269944(0x1e5)]),this['pongTimeout']=null);}[a0_0x267a0c(0x1de)](){const _0x36ca26=a0_0x267a0c;if(this[_0x36ca26(0x1fe)]!==CONNECTION_STATE[_0x36ca26(0x202)])return;try{this[_0x36ca26(0x1d2)]({'type':WS_MESSAGE_TYPE['PING']}),this[_0x36ca26(0x1e5)]=setTimeout(()=>{this['handlePongTimeout']();},TIMING[_0x36ca26(0x1d4)]);}catch(_0x153d8e){this['emit']('ping_error',_0x153d8e);}}[a0_0x267a0c(0x213)](){const _0x146ddd=a0_0x267a0c;this[_0x146ddd(0x1e4)]=Date[_0x146ddd(0x1fc)](),this['pongTimeout']&&(clearTimeout(this['pongTimeout']),this[_0x146ddd(0x1e5)]=null);}['handlePongTimeout'](){const _0x51347a=a0_0x267a0c;this[_0x51347a(0x1f2)](_0x51347a(0x214)),this['disconnect'](),this[_0x51347a(0x1f4)]&&this['scheduleReconnect']();}['joinSession'](_0x2012ae){const _0x3b990a=a0_0x267a0c;this[_0x3b990a(0x204)]=_0x2012ae,this['send']({'type':WS_MESSAGE_TYPE[_0x3b990a(0x1e2)],'sessionId':_0x2012ae});}['sendOrchestratorRequest'](_0x29ae91,_0x3cad42,_0x53a29e){const _0x1f7196=a0_0x267a0c,_0x52d7b6=this[_0x1f7196(0x1f8)](),_0x180a33={'type':WS_MESSAGE_TYPE['ORCHESTRATOR_REQUEST'],'requestId':_0x52d7b6,'action':_0x29ae91,'payload':_0x3cad42,'projectDir':_0x53a29e};return new Promise((_0x4c34f0,_0x548c96)=>{const _0x5b000a=_0x1f7196;this['pendingRequests'][_0x5b000a(0x1e9)](_0x52d7b6,{'resolve':_0x4c34f0,'reject':_0x548c96,'timestamp':Date[_0x5b000a(0x1fc)]()});try{this[_0x5b000a(0x1d2)](_0x180a33);}catch(_0x5412d8){this[_0x5b000a(0x210)]['delete'](_0x52d7b6),_0x548c96(_0x5412d8);}setTimeout(()=>{const _0x468705=_0x5b000a;this['pendingRequests'][_0x468705(0x1d3)](_0x52d7b6)&&(this['pendingRequests']['delete'](_0x52d7b6),_0x548c96(new Error(_0x468705(0x1df))));},TIMING['HTTP_TIMEOUT']);});}[a0_0x267a0c(0x1ee)](_0x3c7c1e){const _0x5b7422=a0_0x267a0c,{requestId:_0x1c2864,response:_0x3def6a,error:_0x5b5f8d}=_0x3c7c1e;if(this['pendingRequests'][_0x5b7422(0x1d3)](_0x1c2864)){const {resolve:_0xde8c9e,reject:_0x33703a}=this['pendingRequests']['get'](_0x1c2864);this['pendingRequests'][_0x5b7422(0x1f6)](_0x1c2864),_0x5b5f8d?_0x33703a(new Error(_0x5b5f8d)):_0xde8c9e(_0x3def6a);}}['send'](_0x5148f8){const _0x1839f7=a0_0x267a0c;if(this['state']!==CONNECTION_STATE[_0x1839f7(0x202)]){this[_0x1839f7(0x1d0)]['push'](_0x5148f8);return;}try{this['ws'][_0x1839f7(0x1d2)](JSON['stringify'](_0x5148f8));}catch(_0x54ddd8){this[_0x1839f7(0x1f2)](_0x1839f7(0x205),_0x54ddd8);throw _0x54ddd8;}}['processMessageQueue'](){const _0x36288b=a0_0x267a0c;while(this['messageQueue']['length']>0x0&&this[_0x36288b(0x1fe)]===CONNECTION_STATE[_0x36288b(0x202)]){const _0x5af02e=this[_0x36288b(0x1d0)]['shift']();try{this['ws'][_0x36288b(0x1d2)](JSON['stringify'](_0x5af02e));}catch(_0x4f0ca0){this['emit'](_0x36288b(0x208),_0x4f0ca0),this[_0x36288b(0x1d0)][_0x36288b(0x216)](_0x5af02e);break;}}}[a0_0x267a0c(0x1f7)](){const _0x4c9051=a0_0x267a0c;this[_0x4c9051(0x1f4)]=![],this['cleanup']();if(this['ws']){try{this['ws'][_0x4c9051(0x21c)](0x3e8,_0x4c9051(0x1dc));}catch(_0x41dcdc){}this['ws']=null;}this['setState'](CONNECTION_STATE['DISCONNECTED']);}['cleanup'](){const _0x36a91d=a0_0x267a0c;this[_0x36a91d(0x1e6)](),this[_0x36a91d(0x21a)]&&(clearTimeout(this[_0x36a91d(0x21a)]),this[_0x36a91d(0x21a)]=null),this['ws']&&this['ws']['removeAllListeners']();}['setState'](_0x4de60b){const _0xdddef0=a0_0x267a0c,_0x2d36d3=this[_0xdddef0(0x1fe)];this[_0xdddef0(0x1fe)]=_0x4de60b,_0x2d36d3!==_0x4de60b&&this['emit']('state_change',{'oldState':_0x2d36d3,'newState':_0x4de60b});}['generateRequestId'](){const _0x44477b=a0_0x267a0c;return this['requestIdCounter']++,_0x44477b(0x207)+Date[_0x44477b(0x1fc)]()+'-'+this['requestIdCounter'];}['getState'](){return this['state'];}[a0_0x267a0c(0x1e3)](){const _0x572285=a0_0x267a0c;return this[_0x572285(0x1fe)]===CONNECTION_STATE[_0x572285(0x202)];}[a0_0x267a0c(0x1d7)](){const _0x4edba5=a0_0x267a0c;return this[_0x4edba5(0x204)];}['getStats'](){const _0x3353f2=a0_0x267a0c;return{'state':this['state'],'sessionId':this['sessionId'],'reconnectAttempts':this[_0x3353f2(0x1da)],'queuedMessages':this[_0x3353f2(0x1d0)][_0x3353f2(0x201)],'pendingRequests':this[_0x3353f2(0x210)]['size'],'lastPongReceived':this['lastPongReceived']};}}export default WebSocketManager;
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;