@loxia-labs/loxia-autopilot-one 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +2 -2
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/aiService.js +1 -1
  76. package/src/services/apiKeyManager.js +1 -1
  77. package/src/services/benchmarkService.js +1 -1
  78. package/src/services/budgetService.js +1 -1
  79. package/src/services/contextInjectionService.js +1 -1
  80. package/src/services/conversationCompactionService.js +1 -1
  81. package/src/services/errorHandler.js +1 -1
  82. package/src/services/fileAttachmentService.js +1 -1
  83. package/src/services/modelRouterService.js +1 -1
  84. package/src/services/modelsService.js +1 -1
  85. package/src/services/qualityInspector.js +1 -1
  86. package/src/services/tokenCountingService.js +1 -1
  87. package/src/tools/agentCommunicationTool.js +1 -1
  88. package/src/tools/agentDelayTool.js +1 -1
  89. package/src/tools/asyncToolManager.js +1 -1
  90. package/src/tools/baseTool.js +1 -1
  91. package/src/tools/browserTool.js +1 -1
  92. package/src/tools/cloneDetectionTool.js +1 -1
  93. package/src/tools/dependencyResolverTool.js +1 -1
  94. package/src/tools/fileContentReplaceTool.js +1 -1
  95. package/src/tools/fileSystemTool.js +1 -1
  96. package/src/tools/fileTreeTool.js +1 -1
  97. package/src/tools/imageTool.js +1 -1
  98. package/src/tools/importAnalyzerTool.js +1 -1
  99. package/src/tools/jobDoneTool.js +1 -1
  100. package/src/tools/seekTool.js +1 -1
  101. package/src/tools/staticAnalysisTool.js +1 -1
  102. package/src/tools/taskManagerTool.js +1 -1
  103. package/src/tools/terminalTool.js +1 -1
  104. package/src/tools/webTool.js +1 -1
  105. package/src/types/agent.js +1 -1
  106. package/src/types/contextReference.js +1 -1
  107. package/src/types/conversation.js +1 -1
  108. package/src/types/toolCommand.js +1 -1
  109. package/src/utilities/attachmentValidator.js +1 -1
  110. package/src/utilities/configManager.js +1 -1
  111. package/src/utilities/constants.js +1 -1
  112. package/src/utilities/directoryAccessManager.js +1 -1
  113. package/src/utilities/fileProcessor.js +1 -1
  114. package/src/utilities/logger.js +1 -1
  115. package/src/utilities/tagParser.js +1 -1
  116. package/src/utilities/toolConstants.js +1 -1
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/index-BmKxmRe3.css +1 -0
  119. package/web-ui/build/static/{index-CX8ZfpGw.js → index-BzXbDs8z.js} +69 -69
  120. package/web-ui/build/static/index-Dwg_JrlO.css +0 -1
@@ -1 +1 @@
1
- (function(_0x2c4222,_0x3e2aa5){const _0x122e61=a0_0x382a,_0x8c4978=_0x2c4222();while(!![]){try{const _0x383788=-parseInt(_0x122e61(0x11e))/0x1*(-parseInt(_0x122e61(0x13f))/0x2)+-parseInt(_0x122e61(0x14a))/0x3*(-parseInt(_0x122e61(0x148))/0x4)+parseInt(_0x122e61(0x120))/0x5+-parseInt(_0x122e61(0x128))/0x6+parseInt(_0x122e61(0x136))/0x7*(parseInt(_0x122e61(0x10b))/0x8)+-parseInt(_0x122e61(0x130))/0x9+parseInt(_0x122e61(0x118))/0xa;if(_0x383788===_0x3e2aa5)break;else _0x8c4978['push'](_0x8c4978['shift']());}catch(_0x640ae8){_0x8c4978['push'](_0x8c4978['shift']());}}}(a0_0x1f91,0x935d6));import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';import{dirname,join}from'path';function a0_0x382a(_0x19cbe0,_0x28c7ba){_0x19cbe0=_0x19cbe0-0x105;const _0x1f91a7=a0_0x1f91();let _0x382a09=_0x1f91a7[_0x19cbe0];if(a0_0x382a['IjnGlN']===undefined){var _0x3c6525=function(_0x169c98){const _0x18eedc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xf1499e='',_0x3b4280='';for(let _0x43af0b=0x0,_0x1d82b1,_0x5468b3,_0x1807e7=0x0;_0x5468b3=_0x169c98['charAt'](_0x1807e7++);~_0x5468b3&&(_0x1d82b1=_0x43af0b%0x4?_0x1d82b1*0x40+_0x5468b3:_0x5468b3,_0x43af0b++%0x4)?_0xf1499e+=String['fromCharCode'](0xff&_0x1d82b1>>(-0x2*_0x43af0b&0x6)):0x0){_0x5468b3=_0x18eedc['indexOf'](_0x5468b3);}for(let _0x353812=0x0,_0x51272b=_0xf1499e['length'];_0x353812<_0x51272b;_0x353812++){_0x3b4280+='%'+('00'+_0xf1499e['charCodeAt'](_0x353812)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b4280);};a0_0x382a['PabCWv']=_0x3c6525,a0_0x382a['JqmnYa']={},a0_0x382a['IjnGlN']=!![];}const _0x37ddcf=_0x1f91a7[0x0],_0x10eb3b=_0x19cbe0+_0x37ddcf,_0x5ad37b=a0_0x382a['JqmnYa'][_0x10eb3b];return!_0x5ad37b?(_0x382a09=a0_0x382a['PabCWv'](_0x382a09),a0_0x382a['JqmnYa'][_0x10eb3b]=_0x382a09):_0x382a09=_0x5ad37b,_0x382a09;}function a0_0x1f91(){const _0xe53363=['Dg9iyxzLuhjVCgvYDhK','q09ntuforfm','mJqZnMvPr29ZtW','A2v5','mJa0owrLBM51Ba','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','Dg9uAhjVDW','tuvtu0fhrv9msvnux0HfsuDiva','veLnsu5h','reLtq09otKvdveve','CgvUzgLUz1jLCxvLC3rZ','CxvLDwvKtwvZC2fNzxm','v2vIu29JA2v0twfUywDLCIbOzwXWzxiGBwv0Ag9KCYb3B3jR','ohjgAhfjAq','Dg9nyxrJAa','tKvuv09ssW','CMvJB25Uzwn0qxr0zw1WDhm','CMvTB3zLtwLKzgXLD2fYzq','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbTAwrKBgv3yxjL','su1br0vFuKvtvuXu','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','CMvNAxn0zxjiyw5KBgvY','z2vUzxjHDgvszxf1zxn0swq','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','Bg9JywXOB3n0','ndK5ndK3mg1Ry1rZDW','Dg9czurLzMLUzwq','DgvZDc1TzxnZywDL','quDftLrFtu9erv9dsefor0ve','DMvUzg9Ys2v5C0nVDw50','vuLFreLnru5tsu9ouW','mvrsDfDhyq','Dg9czq','mZCYodqXnwD5C3rhAW','Bg94AwfbCgLlzxK','BwLKzgXLD2fYzq','DMvUzg9Ys2v5CW','u0LerujbuL9xsurusa','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','BgvUz3rO','lI4VlI4VyxbPl3nLC3nPB24UANm','ndy5nJu5nK5lEvj4sG','twvZC2fNzvjVDxrLCIbJyw4GCMvNAxn0zxiGyw5KihvUCMvNAxn0zxiGAgfUzgXLCNm','Dg9czuDYzwf0zxjuAgfU','BNvTyMvY','DgvZDa','DxjS','y2XLyxi','z2v0uhjVAMvJDerPCG','otC3mty0mLvsyvvhqW','DgvZDc1RzxK','AxnwywXPza','BM90lweTzNvUy3rPB24','Dg9fCxvHBa','zgLZy29UBMvJDgvK','mJK4mJm5ouDXzxnmEq','CMvJzwL2zwrbDa','AgfZsgfUzgXLCG','Dg9czvrYDxrOEq','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','ywXSB3DLzc10ExbL','BM90','tuvtu0fhrv9dt05gsuC','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLigHLBhbLCNmGy3jLyxrLihzHBgLKig1PzgrSzxDHCMu','nZy5oduYq3nSwhff','Cg9YDa','AgfZtg94AwflzxK','zNvUy3rPB24','C2vZC2LVBKLK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','Dw5YzwDPC3rLCKHHBMrSzxi'];a0_0x1f91=function(){return _0xe53363;};return a0_0x1f91();}const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x53adac=a0_0x382a,_0xf1499e=await import('../../config/constants.js');expect(_0xf1499e[_0x53adac(0x11d)])[_0x53adac(0x119)](),expect(_0xf1499e[_0x53adac(0x13d)])['toBeDefined'](),expect(_0xf1499e['PAGINATION'])['toBeDefined'](),expect(_0xf1499e[_0x53adac(0x106)])['toBeDefined'](),expect(_0xf1499e['NETWORK'])['toBeDefined'](),expect(_0xf1499e['CONNECTION_STATE'])[_0x53adac(0x119)](),expect(_0xf1499e['AGENT_MODE'])[_0x53adac(0x119)](),expect(_0xf1499e['WS_MESSAGE_TYPE'])[_0x53adac(0x119)](),expect(_0xf1499e['API_ENDPOINTS'])[_0x53adac(0x119)](),expect(_0xf1499e[_0x53adac(0x147)])[_0x53adac(0x119)](),expect(_0xf1499e[_0x53adac(0x10d)]['DEFAULT_HOST'])[_0x53adac(0x11f)](_0x53adac(0x117)),expect(_0xf1499e[_0x53adac(0x10d)]['DEFAULT_PORT'])['toBe'](0x1f90),expect(_0xf1499e['CONNECTION_STATE']['DISCONNECTED'])[_0x53adac(0x11f)](_0x53adac(0x135)),expect(_0xf1499e['CONNECTION_STATE']['CONNECTED'])['toBe']('connected');}),test('WebSocketManager class can be imported',async()=>{const _0x1fc2c2=a0_0x382a,{WebSocketManager:_0x3b4280}=await import('../../api/websocket.js');expect(_0x3b4280)[_0x1fc2c2(0x119)](),expect(typeof _0x3b4280)[_0x1fc2c2(0x11f)]('function');const _0x43af0b=new _0x3b4280(_0x1fc2c2(0x117),0x1f90);expect(_0x43af0b)['toBeDefined'](),expect(_0x43af0b['host'])[_0x1fc2c2(0x11f)]('localhost'),expect(_0x43af0b[_0x1fc2c2(0x140)])['toBe'](0x1f90),expect(_0x43af0b[_0x1fc2c2(0x12d)])[_0x1fc2c2(0x11f)]('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0x3ea2d8=a0_0x382a,{SessionManager:_0x1d82b1}=await import(_0x3ea2d8(0x127));expect(_0x1d82b1)['toBeDefined'](),expect(typeof _0x1d82b1)['toBe'](_0x3ea2d8(0x142));const _0x5468b3=new _0x1d82b1(_0x3ea2d8(0x117),0x1f90);expect(_0x5468b3)[_0x3ea2d8(0x119)](),expect(_0x5468b3['host'])['toBe']('localhost'),expect(_0x5468b3[_0x3ea2d8(0x140)])['toBe'](0x1f90),expect(_0x5468b3['baseUrl'])['toBe']('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x249220=a0_0x382a,{MessageRouter:_0x1807e7}=await import(_0x249220(0x144)),{WebSocketManager:_0x353812}=await import(_0x249220(0x113));expect(_0x1807e7)['toBeDefined'](),expect(typeof _0x1807e7)[_0x249220(0x11f)](_0x249220(0x142));const _0x51272b=new _0x353812(_0x249220(0x117),0x1f90),_0xdec79d=new _0x1807e7(_0x51272b);expect(_0xdec79d)['toBeDefined'](),expect(_0xdec79d['ws'])['toBe'](_0x51272b);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0xf3e203=a0_0x382a,{loggingMiddleware:_0x54748c,filterMiddleware:_0x56ec08,transformMiddleware:_0x58ce60,timestampMiddleware:_0xb68f58,validationMiddleware:_0x325257}=await import('../../api/messageRouter.js');expect(typeof _0x54748c)[_0xf3e203(0x11f)](_0xf3e203(0x142)),expect(typeof _0x56ec08)['toBe'](_0xf3e203(0x142)),expect(typeof _0x58ce60)[_0xf3e203(0x11f)](_0xf3e203(0x142)),expect(typeof _0xb68f58)['toBe']('function'),expect(typeof _0x325257)[_0xf3e203(0x11f)](_0xf3e203(0x142));}),test('useConnection hook can be imported',async()=>{const _0x8542d1=a0_0x382a,{useConnection:_0x2127c5,useConnectionStatus:_0x481b81}=await import('../../state/useConnection.js');expect(_0x2127c5)[_0x8542d1(0x119)](),expect(typeof _0x2127c5)[_0x8542d1(0x11f)](_0x8542d1(0x142)),expect(_0x481b81)['toBeDefined'](),expect(typeof _0x481b81)[_0x8542d1(0x11f)]('function');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x191ff8=a0_0x382a;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x318ea8=a0_0x382a,{WebSocketManager:_0x6999ae}=await import(_0x318ea8(0x113)),{CONNECTION_STATE:_0x268872}=await import('../../config/constants.js'),_0xdbce1e=new _0x6999ae('test-host',0x2382);expect(_0xdbce1e['state'])['toBe'](_0x268872[_0x318ea8(0x107)]),expect(_0xdbce1e['sessionId'])[_0x318ea8(0x11f)](null),expect(_0xdbce1e['messageQueue'])[_0x318ea8(0x134)]([]),expect(_0xdbce1e[_0x318ea8(0x10e)])['toBe'](0x0),expect(_0xdbce1e['shouldReconnect'])[_0x318ea8(0x11f)](!![]);}),test(_0x191ff8(0x13a),async()=>{const _0x4c7a9b=_0x191ff8,{SessionManager:_0x20b9f4}=await import(_0x4c7a9b(0x127)),_0x143513=new _0x20b9f4('test-host',0x2382);expect(_0x143513[_0x4c7a9b(0x143)])[_0x4c7a9b(0x11f)](null),expect(_0x143513['projectDir'])[_0x4c7a9b(0x11f)](null),expect(_0x143513[_0x4c7a9b(0x121)])[_0x4c7a9b(0x11f)](null),expect(_0x143513['vendorKeys'])['toEqual']({}),expect(_0x143513['isValid']())[_0x4c7a9b(0x11f)](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x345ed4=_0x191ff8,{MessageRouter:_0x536c1a}=await import(_0x345ed4(0x144)),{WebSocketManager:_0x277784}=await import(_0x345ed4(0x113)),{WS_MESSAGE_TYPE:_0x3f168f}=await import(_0x345ed4(0x110)),_0x2cf90a=new _0x277784(_0x345ed4(0x117),0x1f90),_0x5d6430=new _0x536c1a(_0x2cf90a);expect(_0x5d6430[_0x345ed4(0x138)](_0x3f168f['MESSAGE_ADDED']))[_0x345ed4(0x11f)](!![]),expect(_0x5d6430['hasHandler'](_0x3f168f[_0x345ed4(0x11b)]))['toBe'](!![]),expect(_0x5d6430['hasHandler'](_0x3f168f['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0x5d6430['hasHandler'](_0x3f168f['COMPACTION_EVENT']))['toBe'](!![]),expect(_0x5d6430['hasHandler'](_0x3f168f[_0x345ed4(0x112)]))[_0x345ed4(0x11f)](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x3443a0=_0x191ff8,{MessageRouter:_0x2cd604}=await import(_0x3443a0(0x144)),{WebSocketManager:_0x570cdc}=await import('../../api/websocket.js'),_0x4153ae=new _0x570cdc('localhost',0x1f90),_0x4976f2=new _0x2cd604(_0x4153ae),_0x1505c9=_0x163f26=>_0x163f26;expect(_0x4976f2['middleware']['length'])['toBeGreaterThanOrEqual'](0x0),_0x4976f2['use'](_0x1505c9);const _0x10c0b7=_0x4976f2['middleware']['length'];expect(_0x10c0b7)[_0x3443a0(0x12a)](0x0),_0x4976f2[_0x3443a0(0x10f)](_0x1505c9),expect(_0x4976f2[_0x3443a0(0x122)][_0x3443a0(0x126)])[_0x3443a0(0x11f)](_0x10c0b7-0x1);}),test(_0x191ff8(0x14b),async()=>{const _0x3ca52b=_0x191ff8,{SessionManager:_0x2f6c61}=await import(_0x3ca52b(0x127)),_0xf45f9e=new _0x2f6c61('localhost',0x1f90);expect(_0xf45f9e['getSessionId']())[_0x3ca52b(0x11f)](null),expect(_0xf45f9e[_0x3ca52b(0x12f)]())['toBe'](null),expect(_0xf45f9e['isValid']())['toBe'](![]);const _0xceeb8=_0xf45f9e['getSessionInfo']();expect(_0xceeb8)['toHaveProperty']('sessionId'),expect(_0xceeb8)[_0x3ca52b(0x146)]('projectDir'),expect(_0xceeb8)[_0x3ca52b(0x146)](_0x3ca52b(0x141)),expect(_0xceeb8)[_0x3ca52b(0x146)](_0x3ca52b(0x11c));}),test(_0x191ff8(0x10a),async()=>{const _0x29f9dc=_0x191ff8,{WebSocketManager:_0x318c81}=await import(_0x29f9dc(0x113)),{CONNECTION_STATE:_0x44cb49}=await import('../../config/constants.js'),_0x1a8a6e=new _0x318c81('localhost',0x1f90);expect(_0x1a8a6e['getState']())[_0x29f9dc(0x11f)](_0x44cb49[_0x29f9dc(0x107)]),expect(_0x1a8a6e['isConnected']())[_0x29f9dc(0x11f)](![]),expect(_0x1a8a6e['getSessionId']())['toBe'](null);const _0x2abf07=_0x1a8a6e['getStats']();expect(_0x2abf07)[_0x29f9dc(0x146)]('state'),expect(_0x2abf07)['toHaveProperty']('sessionId'),expect(_0x2abf07)[_0x29f9dc(0x146)](_0x29f9dc(0x10e)),expect(_0x2abf07)[_0x29f9dc(0x146)](_0x29f9dc(0x109)),expect(_0x2abf07)['toHaveProperty'](_0x29f9dc(0x108));}),test(_0x191ff8(0x129),async()=>{const _0x1c609d=_0x191ff8,{MessageRouter:_0x4ec4e5}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x36e5ff}=await import('../../api/websocket.js'),_0x2ae412=new _0x36e5ff(_0x1c609d(0x117),0x1f90),_0xd8b798=new _0x4ec4e5(_0x2ae412),_0x201b56=()=>{};expect(_0xd8b798[_0x1c609d(0x138)](_0x1c609d(0x11a)))[_0x1c609d(0x11f)](![]),_0xd8b798[_0x1c609d(0x114)]('test-message',_0x201b56),expect(_0xd8b798[_0x1c609d(0x138)]('test-message'))['toBe'](!![]),_0xd8b798[_0x1c609d(0x145)](_0x1c609d(0x11a)),expect(_0xd8b798[_0x1c609d(0x138)]('test-message'))['toBe'](![]);}),test(_0x191ff8(0x13e),async()=>{const _0x248e06=_0x191ff8,{loggingMiddleware:_0x3b061a,timestampMiddleware:_0x36470e,filterMiddleware:_0x3812b5}=await import('../../api/messageRouter.js'),_0x1a0751=_0x3b061a();expect(typeof _0x1a0751)[_0x248e06(0x11f)](_0x248e06(0x142));const _0xbd1329=_0x36470e();expect(typeof _0xbd1329)['toBe'](_0x248e06(0x142));const _0x4430e2={'type':_0x248e06(0x12c)},_0x33d472=_0xbd1329(_0x4430e2);expect(_0x33d472)[_0x248e06(0x146)](_0x248e06(0x137)),expect(_0x33d472['type'])[_0x248e06(0x11f)](_0x248e06(0x12c));const _0xe2cb85=_0x3812b5([_0x248e06(0x13b)]);expect(typeof _0xe2cb85)['toBe']('function'),expect(_0xe2cb85({'type':_0x248e06(0x13b)}))[_0x248e06(0x139)](),expect(_0xe2cb85({'type':'blocked-type'}))[_0x248e06(0x11f)](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x4f5f1b=_0x191ff8,_0x30c0c7=await import('../../config/constants.js');expect(typeof _0x30c0c7[_0x4f5f1b(0x106)]['WEBSOCKET_RECONNECT_DELAY'])[_0x4f5f1b(0x11f)]('number'),expect(typeof _0x30c0c7[_0x4f5f1b(0x106)]['WEBSOCKET_PING_INTERVAL'])[_0x4f5f1b(0x11f)](_0x4f5f1b(0x12b)),expect(typeof _0x30c0c7[_0x4f5f1b(0x10d)]['DEFAULT_PORT'])['toBe']('number'),expect(typeof _0x30c0c7[_0x4f5f1b(0x10d)]['MAX_RETRIES'])[_0x4f5f1b(0x11f)](_0x4f5f1b(0x12b)),expect(typeof _0x30c0c7['NETWORK']['HTTP_TIMEOUT'])['toBe']('number'),expect(typeof _0x30c0c7['UI_DIMENSIONS'][_0x4f5f1b(0x105)])[_0x4f5f1b(0x11f)]('number'),expect(typeof _0x30c0c7['UI_DIMENSIONS'][_0x4f5f1b(0x124)])[_0x4f5f1b(0x11f)]('number');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x1b2883=a0_0x382a;test('MessageRouter\x20throws\x20on\x20invalid\x20handler',async()=>{const _0x393557=a0_0x382a,{MessageRouter:_0x4f3bc9}=await import(_0x393557(0x144)),{WebSocketManager:_0xed2221}=await import('../../api/websocket.js'),_0x5ccf76=new _0xed2221('localhost',0x1f90),_0x12149b=new _0x4f3bc9(_0x5ccf76);expect(()=>{const _0x20373e=_0x393557;_0x12149b[_0x20373e(0x114)]('test',_0x20373e(0x133));})[_0x393557(0x14c)]('Handler\x20must\x20be\x20a\x20function');}),test(_0x1b2883(0x111),async()=>{const _0x350ec3=_0x1b2883,{MessageRouter:_0x52a83b}=await import(_0x350ec3(0x144)),{WebSocketManager:_0x4cf8e8}=await import(_0x350ec3(0x113)),_0x6e5e54=new _0x4cf8e8('localhost',0x1f90),_0x129b53=new _0x52a83b(_0x6e5e54);expect(()=>{_0x129b53['use']('not-a-function');})['toThrow']('Middleware\x20must\x20be\x20a\x20function');}),test(_0x1b2883(0x125),async()=>{const _0x4dd5d7=_0x1b2883,{SessionManager:_0x460442}=await import(_0x4dd5d7(0x127)),_0x3b288b=new _0x460442(_0x4dd5d7(0x117),0x1f90);_0x3b288b['sessionId']='test-123',_0x3b288b['projectDir']='/test/dir',_0x3b288b[_0x4dd5d7(0x121)]=_0x4dd5d7(0x131),_0x3b288b[_0x4dd5d7(0x123)]={'openai':_0x4dd5d7(0x149)},expect(_0x3b288b[_0x4dd5d7(0x132)]())[_0x4dd5d7(0x11f)](!![]),_0x3b288b[_0x4dd5d7(0x12e)](),expect(_0x3b288b['sessionId'])[_0x4dd5d7(0x11f)](null),expect(_0x3b288b['projectDir'])['toBe'](null),expect(_0x3b288b['loxiaApiKey'])['toBe'](null),expect(_0x3b288b[_0x4dd5d7(0x123)])['toEqual']({}),expect(_0x3b288b[_0x4dd5d7(0x132)]())['toBe'](![]);}),test(_0x1b2883(0x116),async()=>{const _0x5dcac7=_0x1b2883,{WebSocketManager:_0x3810cb}=await import('../../api/websocket.js'),_0x4beecb=new _0x3810cb(_0x5dcac7(0x117),0x1f90),_0x46132a=_0x4beecb['generateRequestId'](),_0x443efd=_0x4beecb[_0x5dcac7(0x115)](),_0x56584d=_0x4beecb[_0x5dcac7(0x115)]();expect(_0x46132a)[_0x5dcac7(0x13c)][_0x5dcac7(0x11f)](_0x443efd),expect(_0x443efd)[_0x5dcac7(0x13c)]['toBe'](_0x56584d),expect(_0x46132a)['not']['toBe'](_0x56584d),expect(_0x46132a)['toMatch'](/^req-\d+-\d+$/),expect(_0x443efd)[_0x5dcac7(0x10c)](/^req-\d+-\d+$/),expect(_0x56584d)[_0x5dcac7(0x10c)](/^req-\d+-\d+$/);});});
1
+ const a0_0x348eb1=a0_0xa9c0;(function(_0x187a66,_0x3c60bf){const _0x62882a=a0_0xa9c0,_0x4086ef=_0x187a66();while(!![]){try{const _0x4d670b=parseInt(_0x62882a(0x1d8))/0x1*(parseInt(_0x62882a(0x1ee))/0x2)+-parseInt(_0x62882a(0x1d0))/0x3*(parseInt(_0x62882a(0x1b0))/0x4)+-parseInt(_0x62882a(0x1f6))/0x5+-parseInt(_0x62882a(0x1d6))/0x6*(parseInt(_0x62882a(0x1f3))/0x7)+parseInt(_0x62882a(0x1c7))/0x8*(parseInt(_0x62882a(0x1b7))/0x9)+-parseInt(_0x62882a(0x1db))/0xa*(parseInt(_0x62882a(0x1ba))/0xb)+parseInt(_0x62882a(0x1e3))/0xc;if(_0x4d670b===_0x3c60bf)break;else _0x4086ef['push'](_0x4086ef['shift']());}catch(_0x2af027){_0x4086ef['push'](_0x4086ef['shift']());}}}(a0_0x2d05,0x609d2));import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe(a0_0x348eb1(0x1ea),()=>{test('constants module exports all required constants',async()=>{const _0x48ab9a=a0_0xa9c0,_0x2e03cb=await import(_0x48ab9a(0x1e1));expect(_0x2e03cb[_0x48ab9a(0x1b1)])[_0x48ab9a(0x1ec)](),expect(_0x2e03cb[_0x48ab9a(0x1b2)])['toBeDefined'](),expect(_0x2e03cb[_0x48ab9a(0x1cd)])['toBeDefined'](),expect(_0x2e03cb['TIMING'])[_0x48ab9a(0x1ec)](),expect(_0x2e03cb['NETWORK'])[_0x48ab9a(0x1ec)](),expect(_0x2e03cb['CONNECTION_STATE'])[_0x48ab9a(0x1ec)](),expect(_0x2e03cb[_0x48ab9a(0x1ab)])[_0x48ab9a(0x1ec)](),expect(_0x2e03cb['WS_MESSAGE_TYPE'])[_0x48ab9a(0x1ec)](),expect(_0x2e03cb['API_ENDPOINTS'])['toBeDefined'](),expect(_0x2e03cb['COMMANDS'])['toBeDefined'](),expect(_0x2e03cb['NETWORK'][_0x48ab9a(0x1ae)])['toBe'](_0x48ab9a(0x1de)),expect(_0x2e03cb['NETWORK'][_0x48ab9a(0x1d1)])[_0x48ab9a(0x1eb)](0x1f90),expect(_0x2e03cb[_0x48ab9a(0x1f9)][_0x48ab9a(0x1e9)])['toBe'](_0x48ab9a(0x1f5)),expect(_0x2e03cb['CONNECTION_STATE']['CONNECTED'])['toBe'](_0x48ab9a(0x1e0));}),test('WebSocketManager class can be imported',async()=>{const _0x166689=a0_0xa9c0,{WebSocketManager:_0x3db502}=await import('../../api/websocket.js');expect(_0x3db502)[_0x166689(0x1ec)](),expect(typeof _0x3db502)['toBe']('function');const _0x135113=new _0x3db502('localhost',0x1f90);expect(_0x135113)['toBeDefined'](),expect(_0x135113['host'])['toBe'](_0x166689(0x1de)),expect(_0x135113[_0x166689(0x1dc)])[_0x166689(0x1eb)](0x1f90),expect(_0x135113['url'])['toBe']('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0x266701=a0_0xa9c0,{SessionManager:_0x392594}=await import('../../api/session.js');expect(_0x392594)['toBeDefined'](),expect(typeof _0x392594)[_0x266701(0x1eb)]('function');const _0x4d3774=new _0x392594(_0x266701(0x1de),0x1f90);expect(_0x4d3774)['toBeDefined'](),expect(_0x4d3774[_0x266701(0x1cc)])['toBe'](_0x266701(0x1de)),expect(_0x4d3774[_0x266701(0x1dc)])[_0x266701(0x1eb)](0x1f90),expect(_0x4d3774[_0x266701(0x1c6)])['toBe'](_0x266701(0x1a9));}),test('MessageRouter class can be imported',async()=>{const _0x5a66d2=a0_0xa9c0,{MessageRouter:_0x4a9468}=await import(_0x5a66d2(0x1b3)),{WebSocketManager:_0x5dc241}=await import('../../api/websocket.js');expect(_0x4a9468)['toBeDefined'](),expect(typeof _0x4a9468)[_0x5a66d2(0x1eb)](_0x5a66d2(0x1b5));const _0xecd9ea=new _0x5dc241('localhost',0x1f90),_0x381206=new _0x4a9468(_0xecd9ea);expect(_0x381206)[_0x5a66d2(0x1ec)](),expect(_0x381206['ws'])[_0x5a66d2(0x1eb)](_0xecd9ea);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x495948=a0_0xa9c0,{loggingMiddleware:_0x553bcb,filterMiddleware:_0x2a7f28,transformMiddleware:_0x1e23af,timestampMiddleware:_0x1623a4,validationMiddleware:_0x481534}=await import('../../api/messageRouter.js');expect(typeof _0x553bcb)[_0x495948(0x1eb)](_0x495948(0x1b5)),expect(typeof _0x2a7f28)['toBe'](_0x495948(0x1b5)),expect(typeof _0x1e23af)[_0x495948(0x1eb)](_0x495948(0x1b5)),expect(typeof _0x1623a4)['toBe'](_0x495948(0x1b5)),expect(typeof _0x481534)['toBe'](_0x495948(0x1b5));}),test('useConnection hook can be imported',async()=>{const _0x4c03a3=a0_0xa9c0,{useConnection:_0x12e753,useConnectionStatus:_0x57b32b}=await import('../../state/useConnection.js');expect(_0x12e753)['toBeDefined'](),expect(typeof _0x12e753)['toBe'](_0x4c03a3(0x1b5)),expect(_0x57b32b)['toBeDefined'](),expect(typeof _0x57b32b)[_0x4c03a3(0x1eb)]('function');});}),describe(a0_0x348eb1(0x1cb),()=>{const _0x20aae1=a0_0x348eb1;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x32ce02=a0_0xa9c0,{WebSocketManager:_0x5628cb}=await import(_0x32ce02(0x1c0)),{CONNECTION_STATE:_0xda8a41}=await import('../../config/constants.js'),_0x11e647=new _0x5628cb(_0x32ce02(0x1ef),0x2382);expect(_0x11e647['state'])['toBe'](_0xda8a41[_0x32ce02(0x1e9)]),expect(_0x11e647[_0x32ce02(0x1d9)])[_0x32ce02(0x1eb)](null),expect(_0x11e647['messageQueue'])['toEqual']([]),expect(_0x11e647['reconnectAttempts'])[_0x32ce02(0x1eb)](0x0),expect(_0x11e647[_0x32ce02(0x1af)])[_0x32ce02(0x1eb)](!![]);}),test('SessionManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x47c557=a0_0xa9c0,{SessionManager:_0x2dbfeb}=await import(_0x47c557(0x1b9)),_0x5cf8ba=new _0x2dbfeb(_0x47c557(0x1ef),0x2382);expect(_0x5cf8ba['sessionId'])['toBe'](null),expect(_0x5cf8ba[_0x47c557(0x1c9)])[_0x47c557(0x1eb)](null),expect(_0x5cf8ba[_0x47c557(0x1bd)])[_0x47c557(0x1eb)](null),expect(_0x5cf8ba[_0x47c557(0x1e5)])['toEqual']({}),expect(_0x5cf8ba[_0x47c557(0x1b8)]())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x47189d=a0_0xa9c0,{MessageRouter:_0x46eb3b}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4b4fb1}=await import(_0x47189d(0x1c0)),{WS_MESSAGE_TYPE:_0x360a07}=await import(_0x47189d(0x1e1)),_0x657ddf=new _0x4b4fb1('localhost',0x1f90),_0x5e3447=new _0x46eb3b(_0x657ddf);expect(_0x5e3447['hasHandler'](_0x360a07['MESSAGE_ADDED']))['toBe'](!![]),expect(_0x5e3447[_0x47189d(0x1d2)](_0x360a07['AGENT_MODE_CHANGED']))['toBe'](!![]),expect(_0x5e3447['hasHandler'](_0x360a07['EXECUTION_STOPPED']))[_0x47189d(0x1eb)](!![]),expect(_0x5e3447['hasHandler'](_0x360a07[_0x47189d(0x1c2)]))['toBe'](!![]),expect(_0x5e3447['hasHandler'](_0x360a07['IMAGE_RESULT']))[_0x47189d(0x1eb)](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x1e73be=a0_0xa9c0,{MessageRouter:_0x4a8b70}=await import(_0x1e73be(0x1b3)),{WebSocketManager:_0x5ab161}=await import(_0x1e73be(0x1c0)),_0x5b366c=new _0x5ab161('localhost',0x1f90),_0x3e2f85=new _0x4a8b70(_0x5b366c),_0x40fb9c=_0x5efcdb=>_0x5efcdb;expect(_0x3e2f85[_0x1e73be(0x1f1)][_0x1e73be(0x1a8)])['toBeGreaterThanOrEqual'](0x0),_0x3e2f85['use'](_0x40fb9c);const _0x1d5d6f=_0x3e2f85[_0x1e73be(0x1f1)]['length'];expect(_0x1d5d6f)['toBeGreaterThan'](0x0),_0x3e2f85[_0x1e73be(0x1fa)](_0x40fb9c),expect(_0x3e2f85[_0x1e73be(0x1f1)][_0x1e73be(0x1a8)])[_0x1e73be(0x1eb)](_0x1d5d6f-0x1);}),test(_0x20aae1(0x1c4),async()=>{const _0x3a26d7=_0x20aae1,{SessionManager:_0x5623d5}=await import(_0x3a26d7(0x1b9)),_0x5a523f=new _0x5623d5(_0x3a26d7(0x1de),0x1f90);expect(_0x5a523f[_0x3a26d7(0x1be)]())['toBe'](null),expect(_0x5a523f['getProjectDir']())[_0x3a26d7(0x1eb)](null),expect(_0x5a523f[_0x3a26d7(0x1b8)]())[_0x3a26d7(0x1eb)](![]);const _0x12c4e0=_0x5a523f['getSessionInfo']();expect(_0x12c4e0)[_0x3a26d7(0x1df)]('sessionId'),expect(_0x12c4e0)[_0x3a26d7(0x1df)]('projectDir'),expect(_0x12c4e0)[_0x3a26d7(0x1df)](_0x3a26d7(0x1e7)),expect(_0x12c4e0)['toHaveProperty']('vendorKeysCount');}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x3424a8=_0x20aae1,{WebSocketManager:_0x4bde7c}=await import(_0x3424a8(0x1c0)),{CONNECTION_STATE:_0x3cb5d8}=await import('../../config/constants.js'),_0x4ba9a6=new _0x4bde7c(_0x3424a8(0x1de),0x1f90);expect(_0x4ba9a6[_0x3424a8(0x1d7)]())[_0x3424a8(0x1eb)](_0x3cb5d8['DISCONNECTED']),expect(_0x4ba9a6['isConnected']())[_0x3424a8(0x1eb)](![]),expect(_0x4ba9a6['getSessionId']())[_0x3424a8(0x1eb)](null);const _0x4c0345=_0x4ba9a6[_0x3424a8(0x1d4)]();expect(_0x4c0345)['toHaveProperty'](_0x3424a8(0x1c5)),expect(_0x4c0345)['toHaveProperty'](_0x3424a8(0x1d9)),expect(_0x4c0345)[_0x3424a8(0x1df)](_0x3424a8(0x1b6)),expect(_0x4c0345)[_0x3424a8(0x1df)]('queuedMessages'),expect(_0x4c0345)['toHaveProperty']('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x432d58=_0x20aae1,{MessageRouter:_0x4c439d}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x5084f1}=await import('../../api/websocket.js'),_0x236c6d=new _0x5084f1(_0x432d58(0x1de),0x1f90),_0x3ccaa4=new _0x4c439d(_0x236c6d),_0x50d7c9=()=>{};expect(_0x3ccaa4[_0x432d58(0x1d2)](_0x432d58(0x1bf)))[_0x432d58(0x1eb)](![]),_0x3ccaa4[_0x432d58(0x1aa)](_0x432d58(0x1bf),_0x50d7c9),expect(_0x3ccaa4['hasHandler'](_0x432d58(0x1bf)))['toBe'](!![]),_0x3ccaa4[_0x432d58(0x1e4)](_0x432d58(0x1bf)),expect(_0x3ccaa4['hasHandler']('test-message'))['toBe'](![]);}),test('MessageRouter\x20middleware\x20helpers\x20create\x20valid\x20middleware',async()=>{const _0x512e81=_0x20aae1,{loggingMiddleware:_0x478030,timestampMiddleware:_0x2ce2ed,filterMiddleware:_0x2ab92c}=await import('../../api/messageRouter.js'),_0x140832=_0x478030();expect(typeof _0x140832)[_0x512e81(0x1eb)](_0x512e81(0x1b5));const _0x49c77d=_0x2ce2ed();expect(typeof _0x49c77d)['toBe'](_0x512e81(0x1b5));const _0x425c80={'type':'test'},_0x2b1998=_0x49c77d(_0x425c80);expect(_0x2b1998)['toHaveProperty']('receivedAt'),expect(_0x2b1998[_0x512e81(0x1d5)])['toBe'](_0x512e81(0x1e2));const _0x19eec3=_0x2ab92c([_0x512e81(0x1f2)]);expect(typeof _0x19eec3)['toBe'](_0x512e81(0x1b5)),expect(_0x19eec3({'type':'allowed-type'}))['toBeTruthy'](),expect(_0x19eec3({'type':'blocked-type'}))[_0x512e81(0x1eb)](null);}),test(_0x20aae1(0x1da),async()=>{const _0x46cae1=_0x20aae1,_0x409056=await import('../../config/constants.js');expect(typeof _0x409056[_0x46cae1(0x1cf)][_0x46cae1(0x1bc)])['toBe'](_0x46cae1(0x1b4)),expect(typeof _0x409056['TIMING']['WEBSOCKET_PING_INTERVAL'])['toBe'](_0x46cae1(0x1b4)),expect(typeof _0x409056['NETWORK'][_0x46cae1(0x1d1)])[_0x46cae1(0x1eb)](_0x46cae1(0x1b4)),expect(typeof _0x409056[_0x46cae1(0x1f7)][_0x46cae1(0x1c3)])[_0x46cae1(0x1eb)](_0x46cae1(0x1b4)),expect(typeof _0x409056['NETWORK']['HTTP_TIMEOUT'])['toBe'](_0x46cae1(0x1b4)),expect(typeof _0x409056['UI_DIMENSIONS'][_0x46cae1(0x1bb)])[_0x46cae1(0x1eb)](_0x46cae1(0x1b4)),expect(typeof _0x409056['UI_DIMENSIONS']['SIDEBAR_WIDTH'])['toBe']('number');});}),describe(a0_0x348eb1(0x1f0),()=>{const _0x3b0039=a0_0x348eb1;test(_0x3b0039(0x1d3),async()=>{const _0x12fd66=_0x3b0039,{MessageRouter:_0x331f2b}=await import(_0x12fd66(0x1b3)),{WebSocketManager:_0x48abba}=await import('../../api/websocket.js'),_0xe8f5ee=new _0x48abba('localhost',0x1f90),_0x4c0716=new _0x331f2b(_0xe8f5ee);expect(()=>{const _0x4314e5=_0x12fd66;_0x4c0716['registerHandler'](_0x4314e5(0x1e2),'not-a-function');})[_0x12fd66(0x1e8)]('Handler\x20must\x20be\x20a\x20function');}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x5f07c1=_0x3b0039,{MessageRouter:_0x3052aa}=await import('../../api/messageRouter.js'),{WebSocketManager:_0xbb3ea0}=await import(_0x5f07c1(0x1c0)),_0x5f4517=new _0xbb3ea0(_0x5f07c1(0x1de),0x1f90),_0x29aef2=new _0x3052aa(_0x5f4517);expect(()=>{const _0x558aa4=_0x5f07c1;_0x29aef2[_0x558aa4(0x1ed)](_0x558aa4(0x1c8));})['toThrow'](_0x5f07c1(0x1dd));}),test(_0x3b0039(0x1ac),async()=>{const _0x4fb19e=_0x3b0039,{SessionManager:_0x42cf41}=await import('../../api/session.js'),_0x91713=new _0x42cf41('localhost',0x1f90);_0x91713[_0x4fb19e(0x1d9)]=_0x4fb19e(0x1c1),_0x91713[_0x4fb19e(0x1c9)]=_0x4fb19e(0x1e6),_0x91713['loxiaApiKey']='test-key',_0x91713['vendorKeys']={'openai':_0x4fb19e(0x1ad)},expect(_0x91713[_0x4fb19e(0x1b8)]())['toBe'](!![]),_0x91713[_0x4fb19e(0x1f8)](),expect(_0x91713['sessionId'])['toBe'](null),expect(_0x91713['projectDir'])['toBe'](null),expect(_0x91713[_0x4fb19e(0x1bd)])[_0x4fb19e(0x1eb)](null),expect(_0x91713['vendorKeys'])['toEqual']({}),expect(_0x91713[_0x4fb19e(0x1b8)]())[_0x4fb19e(0x1eb)](![]);}),test('WebSocketManager\x20generates\x20unique\x20request\x20IDs',async()=>{const _0x2bddcb=_0x3b0039,{WebSocketManager:_0x6d89}=await import(_0x2bddcb(0x1c0)),_0x2ab768=new _0x6d89(_0x2bddcb(0x1de),0x1f90),_0x1f85fa=_0x2ab768['generateRequestId'](),_0x46620a=_0x2ab768[_0x2bddcb(0x1ce)](),_0x498f10=_0x2ab768[_0x2bddcb(0x1ce)]();expect(_0x1f85fa)['not']['toBe'](_0x46620a),expect(_0x46620a)[_0x2bddcb(0x1ca)]['toBe'](_0x498f10),expect(_0x1f85fa)['not']['toBe'](_0x498f10),expect(_0x1f85fa)['toMatch'](/^req-\d+-\d+$/),expect(_0x46620a)[_0x2bddcb(0x1f4)](/^req-\d+-\d+$/),expect(_0x498f10)[_0x2bddcb(0x1f4)](/^req-\d+-\d+$/);});});function a0_0xa9c0(_0x56e614,_0x38e6da){_0x56e614=_0x56e614-0x1a8;const _0x2d05d7=a0_0x2d05();let _0xa9c02e=_0x2d05d7[_0x56e614];if(a0_0xa9c0['pQAWFs']===undefined){var _0xe9e139=function(_0x31d38e){const _0x397432='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2e03cb='',_0x3db502='';for(let _0x135113=0x0,_0x392594,_0x4d3774,_0x4a9468=0x0;_0x4d3774=_0x31d38e['charAt'](_0x4a9468++);~_0x4d3774&&(_0x392594=_0x135113%0x4?_0x392594*0x40+_0x4d3774:_0x4d3774,_0x135113++%0x4)?_0x2e03cb+=String['fromCharCode'](0xff&_0x392594>>(-0x2*_0x135113&0x6)):0x0){_0x4d3774=_0x397432['indexOf'](_0x4d3774);}for(let _0x5dc241=0x0,_0xecd9ea=_0x2e03cb['length'];_0x5dc241<_0xecd9ea;_0x5dc241++){_0x3db502+='%'+('00'+_0x2e03cb['charCodeAt'](_0x5dc241)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3db502);};a0_0xa9c0['xLsbHN']=_0xe9e139,a0_0xa9c0['kZEXtK']={},a0_0xa9c0['pQAWFs']=!![];}const _0x25398b=_0x2d05d7[0x0],_0x2348fc=_0x56e614+_0x25398b,_0x115e17=a0_0xa9c0['kZEXtK'][_0x2348fc];return!_0x115e17?(_0xa9c02e=a0_0xa9c0['xLsbHN'](_0xa9c02e),a0_0xa9c0['kZEXtK'][_0x2348fc]=_0xa9c02e):_0xa9c02e=_0x115e17,_0xa9c02e;}function a0_0x2d05(){const _0x2d7edb=['DhLWzq','mtyYndaWoe5AtfrWDG','z2v0u3rHDgu','mw9bwxzMvG','C2vZC2LVBKLK','q29UC3rHBNrZigHHDMuGBM8GBwfNAwmGBNvTyMvYCW','nZbSr0rXwfm','Cg9YDa','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','Bg9JywXOB3n0','Dg9iyxzLuhjVCgvYDhK','y29UBMvJDgvK','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','DgvZDa','nteYmZKYofn5wKjuEa','Dw5YzwDPC3rLCKHHBMrSzxi','DMvUzg9Ys2v5CW','l3rLC3qVzgLY','AgfZtg94AwflzxK','Dg9uAhjVDW','reLtq09otKvdveve','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbjBxbVCNrZ','Dg9czq','Dg9czurLzMLUzwq','DxnL','nJe4mtm2zwTNz0T6','DgvZDc1OB3n0','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbfCNjVCIbiyw5KBgLUzW','BwLKzgXLD2fYzq','ywXSB3DLzc10ExbL','mtrlAuzXC3u','Dg9nyxrJAa','zgLZy29UBMvJDgvK','mtqYodu1tKnztMHy','tKvuv09ssW','y2XLyxi','q09otKvdveLptL9tvefurq','CMvTB3zLtwLKzgXLD2fYzq','BgvUz3rO','Ahr0CdOVl2XVy2fSAg9ZDdO4mdGW','CMvNAxn0zxjiyw5KBgvY','quDftLrFtu9erq','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','A2v5','revgqvvmvf9it1nu','C2HVDwXKuMvJB25Uzwn0','mtyZnZq2nhLJyLjVsW','vuLFreLnru5tsu9ouW','tuvtu0fhrv9dt05gsuC','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','BNvTyMvY','zNvUy3rPB24','CMvJB25Uzwn0qxr0zw1WDhm','mtHdsxrWBxe','AxnwywXPza','lI4VlI4VyxbPl3nLC3nPB24UANm','mtGYotyZrMPzq1vU','tuvtu0fhrv9msvnux0HfsuDiva','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','Bg94AwfbCgLlzxK','z2v0u2vZC2LVBKLK','DgvZDc1TzxnZywDL','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','DgvZDc0XmJm','q09nuefdveLptL9fvKvova','tufyx1jfvfjjrvm','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','C3rHDgu','yMfZzvvYBa','mZaYmtq4oeveqvLPtW','BM90lweTzNvUy3rPB24','ChjVAMvJDerPCG','BM90','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbcyxnPyYbgDw5JDgLVBMfSAxr5','Ag9ZDa','uefhsu5bveLptG','z2vUzxjHDgvszxf1zxn0swq','veLnsu5h','m0zUAhzlDG','revgqvvmvf9qt1ju','AgfZsgfUzgXLCG','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','z2v0u3rHDhm'];a0_0x2d05=function(){return _0x2d7edb;};return a0_0x2d05();}
@@ -1 +1 @@
1
- const a0_0x5dc8e7=a0_0x82b7;function a0_0x82b7(_0x540df0,_0x666939){_0x540df0=_0x540df0-0x8d;const _0x559a38=a0_0x559a();let _0x82b7f3=_0x559a38[_0x540df0];if(a0_0x82b7['SnijTS']===undefined){var _0x275fd1=function(_0xfd62bf){const _0x47b9f3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4f353b='',_0x524892='';for(let _0x10149e=0x0,_0x1c3877,_0x213be9,_0x171840=0x0;_0x213be9=_0xfd62bf['charAt'](_0x171840++);~_0x213be9&&(_0x1c3877=_0x10149e%0x4?_0x1c3877*0x40+_0x213be9:_0x213be9,_0x10149e++%0x4)?_0x4f353b+=String['fromCharCode'](0xff&_0x1c3877>>(-0x2*_0x10149e&0x6)):0x0){_0x213be9=_0x47b9f3['indexOf'](_0x213be9);}for(let _0x329183=0x0,_0x4451ef=_0x4f353b['length'];_0x329183<_0x4451ef;_0x329183++){_0x524892+='%'+('00'+_0x4f353b['charCodeAt'](_0x329183)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x524892);};a0_0x82b7['EGDkoI']=_0x275fd1,a0_0x82b7['aYWFLc']={},a0_0x82b7['SnijTS']=!![];}const _0x20f858=_0x559a38[0x0],_0x3c4cc2=_0x540df0+_0x20f858,_0x472164=a0_0x82b7['aYWFLc'][_0x3c4cc2];return!_0x472164?(_0x82b7f3=a0_0x82b7['EGDkoI'](_0x82b7f3),a0_0x82b7['aYWFLc'][_0x3c4cc2]=_0x82b7f3):_0x82b7f3=_0x472164,_0x82b7f3;}function a0_0x559a(){const _0x577a02=['u2vZC2LVBK1HBMfNzxi','quDftLrFuKvtue9ou0u','l2fWAs9VCMnOzxn0CMf0B3i','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','nwP3rffmuq','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','DxnLCI1TzxnZywDL','tuvtu0fhrv9brerfra','zNvUy3rPB24','mtrsugnQu3i','zgvMyxvSDa','tufyx01fu1nbr0vFtevor1ri','twvZC2fNzsbnyw5Hz2vTzw50ic0GqvbjievUzhbVAw50CYbwywXPzgf0Aw9U','nZyZmZCYCLPdu05Y','twvZC2fNzsbnyw5Hz2vTzw50ic0GrxjYB3iGsgfUzgXPBMC','vvnfuG','ywDLBNrFBw9Kzv9JAgfUz2vK','t1jdsevtvfjbve9s','uefhsu5bveLptIbSAw1PDcbKB2vZig5VDcbLEgnLzwqGtufyx1bbr0vFu0LArq','mZrRDhr5EwS','Dg9czq','Bg9JywXOB3n0','nte1mdmWmfLLDvHZAW','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','Dg9mB3DLCKnHC2u','Dg9czuXLC3nuAgfUt3jfCxvHBa','mJC2ndi1n0XdBurqBG','mJC1nJe0nfzNtwrtEq','tuvtu0fhrv9dt05gsuC','DxnLtwvZC2fNzxm','Dg9czurLzMLUzwq','ywXS','DxnLCG','uefhrv9tsvPf','mtqXmZvov0n4Avi','tufyx1bbr0vFu0LArq','mJeXmdfutM9iq1u','lI4VlI4VyxbPl3nLC3nPB24UANm','mty1ndHiwhzgsvC','ywDLBNqTCMvZCg9UC2u','qvntsvnuqu5u','CMvWzwf0','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','BNvTyMvY','rvHfq1vusu9ox1nut1bqruq','tufyx01fu1nbr0vtx0rju1bmqvK','BwLU','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','oxjkwNzTAa','mte2ntm3nhnItM1sBG','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbKAxnWBgf5ig1LC3nHz2vZ','Dg9czuDYzwf0zxjuAgfU','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ'];a0_0x559a=function(){return _0x577a02;};return a0_0x559a();}(function(_0x4ee230,_0x317c79){const _0x5e3b24=a0_0x82b7,_0x32b4c3=_0x4ee230();while(!![]){try{const _0x2a66fe=-parseInt(_0x5e3b24(0x90))/0x1*(parseInt(_0x5e3b24(0xb8))/0x2)+-parseInt(_0x5e3b24(0xbf))/0x3+parseInt(_0x5e3b24(0xb2))/0x4*(parseInt(_0x5e3b24(0xa9))/0x5)+parseInt(_0x5e3b24(0x9f))/0x6*(-parseInt(_0x5e3b24(0xae))/0x7)+-parseInt(_0x5e3b24(0xc0))/0x8+-parseInt(_0x5e3b24(0x9e))/0x9*(-parseInt(_0x5e3b24(0xbb))/0xa)+parseInt(_0x5e3b24(0x8e))/0xb*(parseInt(_0x5e3b24(0x92))/0xc);if(_0x2a66fe===_0x317c79)break;else _0x32b4c3['push'](_0x32b4c3['shift']());}catch(_0x220ec4){_0x32b4c3['push'](_0x32b4c3['shift']());}}}(a0_0x559a,0x71788));import{describe,test,expect}from'@jest/globals';describe(a0_0x5dc8e7(0x9d),()=>{test('useMessages hook can be imported',async()=>{const _0x312085=a0_0x82b7,{useMessages:_0x4f353b}=await import('../../state/useMessages.js');expect(_0x4f353b)['toBeDefined'](),expect(typeof _0x4f353b)[_0x312085(0xb9)](_0x312085(0xad));}),test('useMessages is default export',async()=>{const _0x3bf772=a0_0x82b7,module=await import('../../state/useMessages.js');expect(module['default'])[_0x3bf772(0xc3)](),expect(typeof module[_0x3bf772(0xaf)])[_0x3bf772(0xb9)](_0x3bf772(0xad)),expect(module[_0x3bf772(0xaf)])['toBe'](module[_0x3bf772(0xc2)]);}),test('useMessageCount helper hook can be imported',async()=>{const _0x4cfa11=a0_0x82b7,{useMessageCount:_0x524892}=await import('../../state/useMessages.js');expect(_0x524892)['toBeDefined'](),expect(typeof _0x524892)['toBe'](_0x4cfa11(0xad));});}),describe('Message\x20Management\x20-\x20Constants',()=>{const _0x2bdf93=a0_0x5dc8e7;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x40fb56=a0_0x82b7,{MESSAGE_ROLE:_0x10149e}=await import('../../config/constants.js');expect(_0x10149e)[_0x40fb56(0xc3)](),expect(_0x10149e['USER'])['toBe'](_0x40fb56(0xc5)),expect(_0x10149e[_0x40fb56(0x94)])['toBe']('assistant'),expect(_0x10149e['SYSTEM'])['toBe']('system');}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x3acc81=a0_0x82b7,{MESSAGE_TYPE:_0x1c3877}=await import(_0x3acc81(0x9b));expect(_0x1c3877)[_0x3acc81(0xc3)](),expect(_0x1c3877['USER_MESSAGE'])[_0x3acc81(0xb9)](_0x3acc81(0xab)),expect(_0x1c3877[_0x3acc81(0xa6)])[_0x3acc81(0xb9)](_0x3acc81(0x93)),expect(_0x1c3877['SYSTEM_NOTIFICATION'])['toBe']('system-notification');}),test(_0x2bdf93(0x96),async()=>{const _0x315569=_0x2bdf93,{MESSAGE_CONFIG:_0x213be9}=await import(_0x315569(0x9b));expect(_0x213be9)['toBeDefined'](),expect(_0x213be9[_0x315569(0xb0)])[_0x315569(0xc3)](),expect(_0x213be9['MAX_MESSAGES_DISPLAY'])[_0x315569(0xc3)](),expect(typeof _0x213be9['MAX_MESSAGE_LENGTH'])[_0x315569(0xb9)]('number'),expect(typeof _0x213be9[_0x315569(0x99)])[_0x315569(0xb9)]('number');}),test(_0x2bdf93(0xa8),async()=>{const _0x154d46=_0x2bdf93,{PAGINATION:_0x171840}=await import('../../config/constants.js');expect(_0x171840)[_0x154d46(0xc3)](),expect(_0x171840[_0x154d46(0x8d)])[_0x154d46(0xc3)](),expect(_0x171840['MAX_PAGE_SIZE'])['toBeDefined'](),expect(typeof _0x171840[_0x154d46(0x8d)])['toBe']('number'),expect(typeof _0x171840[_0x154d46(0x8f)])[_0x154d46(0xb9)]('number');}),test(_0x2bdf93(0xbc),async()=>{const _0x54003d=_0x2bdf93,{WS_MESSAGE_TYPE:_0x329183}=await import(_0x54003d(0x9b));expect(_0x329183)['toBeDefined'](),expect(_0x329183[_0x54003d(0xac)])['toBe']('message_added'),expect(_0x329183['AGENT_MODE_CHANGED'])['toBe'](_0x54003d(0xb5)),expect(_0x329183[_0x54003d(0x98)])[_0x54003d(0xb9)]('execution_stopped');});}),describe(a0_0x5dc8e7(0x9c),()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x1b11d3=a0_0x82b7,{useMessages:_0x4451ef}=await import('../../state/useMessages.js'),{SessionManager:_0x325d7f}=await import(_0x1b11d3(0x91)),{MessageRouter:_0x1b81f3}=await import(_0x1b11d3(0xa2)),{WebSocketManager:_0xd91faa}=await import('../../api/websocket.js'),_0x93edce=new _0x325d7f('localhost',0x1f90),_0x2a8d64=new _0xd91faa('localhost',0x1f90),_0x3c0a43=new _0x1b81f3(_0x2a8d64);expect(_0x93edce)[_0x1b11d3(0xc3)](),expect(_0x3c0a43)['toBeDefined'](),expect(typeof _0x4451ef)['toBe']('function');}),test('Full message management stack can be imported together',async()=>{const _0x27fc23=a0_0x82b7,[_0x53ede1,_0x412852,_0x140c0d,_0x1c66ea,_0x491757]=await Promise[_0x27fc23(0xc4)]([import('../../config/constants.js'),import('../../api/session.js'),import('../../api/websocket.js'),import(_0x27fc23(0xa2)),import('../../state/useMessages.js')]);expect(_0x53ede1['MESSAGE_ROLE'])['toBeDefined'](),expect(_0x53ede1['MESSAGE_TYPE'])['toBeDefined'](),expect(_0x53ede1[_0x27fc23(0xc1)])[_0x27fc23(0xc3)](),expect(_0x412852[_0x27fc23(0xa5)])['toBeDefined'](),expect(_0x140c0d['WebSocketManager'])[_0x27fc23(0xc3)](),expect(_0x1c66ea['MessageRouter'])['toBeDefined'](),expect(_0x491757['useMessages'])[_0x27fc23(0xc3)]();});}),describe(a0_0x5dc8e7(0xb1),()=>{test('Orchestrator\x20endpoint\x20can\x20be\x20used\x20for\x20message\x20operations',async()=>{const _0x3cf44c=a0_0x82b7,{API_ENDPOINTS:_0x1e6abc}=await import('../../config/constants.js');expect(_0x1e6abc[_0x3cf44c(0xb6)])['toBeDefined'](),expect(_0x1e6abc['ORCHESTRATOR'])['toBe'](_0x3cf44c(0xa7));}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x4d5d6f=a0_0x82b7,{API_ENDPOINTS:_0x3381bf}=await import(_0x4d5d6f(0x9b));expect(_0x3381bf['ORCHESTRATOR'])['toMatch'](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const {useMessages:_0x949f84}=await import('../../state/useMessages.js');expect(_0x949f84['length'])['toBe'](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const {useMessageCount:_0x1c99f9}=await import('../../state/useMessages.js');expect(_0x1c99f9['length'])['toBe'](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x329ad2=a0_0x82b7,{MESSAGE_CONFIG:_0x4103e4}=await import('../../config/constants.js');expect(_0x4103e4[_0x329ad2(0xb0)])[_0x329ad2(0xa1)](0x0),expect(_0x4103e4[_0x329ad2(0xb0)])[_0x329ad2(0xbe)](0x186a0),expect(_0x4103e4[_0x329ad2(0x99)])['toBeGreaterThan'](0x0),expect(_0x4103e4['MAX_MESSAGES_DISPLAY'])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x31a900=a0_0x82b7,{PAGINATION:_0xc1fe88}=await import(_0x31a900(0x9b));expect(_0xc1fe88[_0x31a900(0x8d)])['toBeGreaterThan'](0x0),expect(_0xc1fe88[_0x31a900(0x8d)])['toBeLessThanOrEqual'](0x3e8),expect(_0xc1fe88['MAX_PAGE_SIZE'])['toBeGreaterThanOrEqual'](_0xc1fe88['PAGE_SIZE']);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0xf17205=a0_0x82b7,{MESSAGE_ROLE:_0x3701e3}=await import(_0xf17205(0x9b));expect(_0x3701e3['USER'])[_0xf17205(0xb9)](_0x3701e3[_0xf17205(0xb4)][_0xf17205(0xbd)]()),expect(_0x3701e3[_0xf17205(0x94)])[_0xf17205(0xb9)](_0x3701e3['ASSISTANT'][_0xf17205(0xbd)]()),expect(_0x3701e3['SYSTEM'])['toBe'](_0x3701e3['SYSTEM']['toLowerCase']());});}),describe(a0_0x5dc8e7(0xa4),()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0x41a658=a0_0x82b7,{MessageRouter:_0xd09c1}=await import(_0x41a658(0xa2)),{WebSocketManager:_0x4ff0e8}=await import(_0x41a658(0xa3)),{WS_MESSAGE_TYPE:_0x4bd5ac}=await import('../../config/constants.js'),_0x2fb22a=new _0x4ff0e8(_0x41a658(0xba),0x1f90),_0xd28603=new _0xd09c1(_0x2fb22a);expect(_0xd28603['hasHandler'](_0x4bd5ac['MESSAGE_ADDED']))[_0x41a658(0xb9)](!![]),expect(_0xd28603['hasHandler'](_0x4bd5ac['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe(a0_0x5dc8e7(0xb3),()=>{const _0xd42305=a0_0x5dc8e7;test(_0xd42305(0xaa),async()=>{const _0x2c5c1c=_0xd42305,{MESSAGE_CONFIG:_0x305143}=await import('../../config/constants.js');expect(_0x305143[_0x2c5c1c(0xb0)])['toBeDefined'](),expect(typeof _0x305143[_0x2c5c1c(0xb0)])[_0x2c5c1c(0xb9)]('number');const _0x56e123='a'[_0x2c5c1c(0x95)](_0x305143['MAX_MESSAGE_LENGTH']+0x1);expect(_0x56e123['length'])[_0x2c5c1c(0xa1)](_0x305143['MAX_MESSAGE_LENGTH']);}),test(_0xd42305(0xa0),async()=>{const _0x2a06a3=_0xd42305,{MESSAGE_CONFIG:_0x1ce2fa}=await import('../../config/constants.js');expect(_0x1ce2fa['MAX_MESSAGES_DISPLAY'])[_0x2a06a3(0xc3)](),expect(typeof _0x1ce2fa[_0x2a06a3(0x99)])['toBe'](_0x2a06a3(0x97)),expect(_0x1ce2fa[_0x2a06a3(0x99)])['toBeGreaterThan'](0x0);});}),describe('Message\x20Management\x20-\x20Pagination\x20Logic',()=>{const _0x2dd89c=a0_0x5dc8e7;test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x4d68a6=a0_0x82b7,{PAGINATION:_0x1861e9}=await import(_0x4d68a6(0x9b)),_0x42d0af=0x0,_0x12d995=_0x42d0af*_0x1861e9[_0x4d68a6(0x8d)];expect(_0x12d995)[_0x4d68a6(0xb9)](0x0);const _0x43cb73=0x1,_0x551c9c=_0x43cb73*_0x1861e9[_0x4d68a6(0x8d)];expect(_0x551c9c)['toBe'](_0x1861e9['PAGE_SIZE']);}),test(_0x2dd89c(0xb7),async()=>{const _0x1d5e40=_0x2dd89c,{PAGINATION:_0x496ea4}=await import('../../config/constants.js'),_0x5b7f85=0x3e8,_0x1eb71d=Math[_0x1d5e40(0x9a)](_0x5b7f85,_0x496ea4['MAX_PAGE_SIZE']);expect(_0x1eb71d)['toBeLessThanOrEqual'](_0x496ea4[_0x1d5e40(0x8f)]);});});
1
+ const a0_0x274634=a0_0xec8a;function a0_0xec8a(_0x1131d9,_0x2ca96f){_0x1131d9=_0x1131d9-0x1e6;const _0x9c3154=a0_0x9c31();let _0xec8a9d=_0x9c3154[_0x1131d9];if(a0_0xec8a['mytalC']===undefined){var _0x3f488b=function(_0x23be53){const _0x4c3196='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x30612f='',_0x44768c='';for(let _0x3ba2e1=0x0,_0x3f42e6,_0x336302,_0x3eedc2=0x0;_0x336302=_0x23be53['charAt'](_0x3eedc2++);~_0x336302&&(_0x3f42e6=_0x3ba2e1%0x4?_0x3f42e6*0x40+_0x336302:_0x336302,_0x3ba2e1++%0x4)?_0x30612f+=String['fromCharCode'](0xff&_0x3f42e6>>(-0x2*_0x3ba2e1&0x6)):0x0){_0x336302=_0x4c3196['indexOf'](_0x336302);}for(let _0x2a5583=0x0,_0x677279=_0x30612f['length'];_0x2a5583<_0x677279;_0x2a5583++){_0x44768c+='%'+('00'+_0x30612f['charCodeAt'](_0x2a5583)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x44768c);};a0_0xec8a['qJEhab']=_0x3f488b,a0_0xec8a['IAuuOW']={},a0_0xec8a['mytalC']=!![];}const _0x1f9fbb=_0x9c3154[0x0],_0x2b346f=_0x1131d9+_0x1f9fbb,_0x4550b4=a0_0xec8a['IAuuOW'][_0x2b346f];return!_0x4550b4?(_0xec8a9d=a0_0xec8a['qJEhab'](_0xec8a9d),a0_0xec8a['IAuuOW'][_0x2b346f]=_0xec8a9d):_0xec8a9d=_0x4550b4,_0xec8a9d;}(function(_0x20977c,_0x1bc790){const _0x3929a6=a0_0xec8a,_0x35747a=_0x20977c();while(!![]){try{const _0x497a47=parseInt(_0x3929a6(0x215))/0x1+parseInt(_0x3929a6(0x1ea))/0x2+-parseInt(_0x3929a6(0x1fb))/0x3*(parseInt(_0x3929a6(0x206))/0x4)+-parseInt(_0x3929a6(0x218))/0x5+parseInt(_0x3929a6(0x21b))/0x6+parseInt(_0x3929a6(0x1fe))/0x7*(parseInt(_0x3929a6(0x20c))/0x8)+parseInt(_0x3929a6(0x1e7))/0x9;if(_0x497a47===_0x1bc790)break;else _0x35747a['push'](_0x35747a['shift']());}catch(_0x119ea1){_0x35747a['push'](_0x35747a['shift']());}}}(a0_0x9c31,0x23881));function a0_0x9c31(){const _0x5c2fea=['twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','ywDLBNrFBw9Kzv9JAgfUz2vK','mZuXmda5zu9gzfPq','DxnLtwvZC2fNzunVDw50ihjLDhvYBNmGzxHWzwn0zwqGAw50zxjMywnLihnOyxbL','Dg9czuXLC3nuAgfUt3jfCxvHBa','mtC5ndyWDuLiCxPp','BgvUz3rO','tuvtu0fhrv9brerfra','zNvUy3rPB24','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbKAxnWBgf5ig1LC3nHz2vZ','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','BwLU','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','Dg9czq','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','u1Ltvevnx05pveLgsunbveLptG','zgvMyxvSDa','Dg9nyxrJAa','v2vIu29JA2v0twfUywDLCG','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','nJm2owriD3PlCG','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','Bg9JywXOB3n0','ntK2odLLteH3su4','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZifzHBgLKyxrPB24','C3LZDgvT','Dg9czurLzMLUzwq','vvnfuL9nrvntquDf','DxnLtwvZC2fNzxmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','lI4VlI4VyxbPl3nLC3nPB24UANm','ndm2DxPMA1fH','Dg9mB3DLCKnHC2u','Dg9czuDYzwf0zxjuAgfU','ywDLBNqTCMvZCg9UC2u','tufyx1bbr0vFu0LArq','rvHfq1vusu9ox1nut1bqruq','mti4ChrJrvzt','tufyx01fu1nbr0vtx0rju1bmqvK','uefhrv9tsvPf','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','u2vZC2LVBK1HBMfNzxi','twvZC2fNzsbnyw5Hz2vTzw50ic0GrxjYB3iGsgfUzgXPBMC','t3jJAgvZDhjHDg9YigvUzhbVAw50ignHBIbIzsb1C2vKigzVCIbTzxnZywDLig9WzxjHDgLVBNm','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','t1jdsevtvfjbve9s','mJyZmZK5ufHyB0zW','tufyx01fu1nbr0vFtevor1ri','tuvtu0fhrv9st0XfihzHBhvLCYbHCMuGBg93zxjJyxnL','mtqXmtmYnw9dyMzzCa','DxnLCG','twvZC2fNzsbbueKGzw5KCg9PBNrZigzVBgXVDYbsrvnuzNvSihbHDhrLCM4','nZGZodGYCe9ysM92'];a0_0x9c31=function(){return _0x5c2fea;};return a0_0x9c31();}import{describe,test,expect}from'@jest/globals';describe(a0_0x274634(0x1fc),()=>{test('useMessages hook can be imported',async()=>{const _0x2897be=a0_0xec8a,{useMessages:_0x30612f}=await import(_0x2897be(0x213));expect(_0x30612f)[_0x2897be(0x202)](),expect(typeof _0x30612f)['toBe'](_0x2897be(0x1ed));}),test('useMessages is default export',async()=>{const _0x397221=a0_0xec8a,module=await import(_0x397221(0x213));expect(module['default'])['toBeDefined'](),expect(typeof module['default'])['toBe'](_0x397221(0x1ed)),expect(module[_0x397221(0x1f6)])[_0x397221(0x1f3)](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x7f16cd=a0_0xec8a,{useMessageCount:_0x44768c}=await import('../../state/useMessages.js');expect(_0x44768c)['toBeDefined'](),expect(typeof _0x44768c)[_0x7f16cd(0x1f3)]('function');});}),describe(a0_0x274634(0x1f4),()=>{const _0x4cfc82=a0_0x274634;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x358604=a0_0xec8a,{MESSAGE_ROLE:_0x3ba2e1}=await import('../../config/constants.js');expect(_0x3ba2e1)['toBeDefined'](),expect(_0x3ba2e1['USER'])[_0x358604(0x1f3)](_0x358604(0x219)),expect(_0x3ba2e1['ASSISTANT'])[_0x358604(0x1f3)]('assistant'),expect(_0x3ba2e1['SYSTEM'])['toBe'](_0x358604(0x201));}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x3effe7=a0_0xec8a,{MESSAGE_TYPE:_0x3f42e6}=await import('../../config/constants.js');expect(_0x3f42e6)[_0x3effe7(0x202)](),expect(_0x3f42e6[_0x3effe7(0x203)])['toBe']('user-message'),expect(_0x3f42e6['AGENT_RESPONSE'])[_0x3effe7(0x1f3)](_0x3effe7(0x209)),expect(_0x3f42e6[_0x3effe7(0x1f5)])['toBe']('system-notification');}),test(_0x4cfc82(0x1f9),async()=>{const _0x414309=_0x4cfc82,{MESSAGE_CONFIG:_0x336302}=await import(_0x414309(0x1f1));expect(_0x336302)['toBeDefined'](),expect(_0x336302[_0x414309(0x216)])['toBeDefined'](),expect(_0x336302[_0x414309(0x20d)])['toBeDefined'](),expect(typeof _0x336302[_0x414309(0x216)])[_0x414309(0x1f3)]('number'),expect(typeof _0x336302['MAX_MESSAGES_DISPLAY'])[_0x414309(0x1f3)]('number');}),test(_0x4cfc82(0x1fa),async()=>{const _0x46af6e=_0x4cfc82,{PAGINATION:_0x3eedc2}=await import(_0x46af6e(0x1f1));expect(_0x3eedc2)[_0x46af6e(0x202)](),expect(_0x3eedc2['PAGE_SIZE'])['toBeDefined'](),expect(_0x3eedc2[_0x46af6e(0x20a)])[_0x46af6e(0x202)](),expect(typeof _0x3eedc2[_0x46af6e(0x20e)])[_0x46af6e(0x1f3)]('number'),expect(typeof _0x3eedc2['MAX_PAGE_SIZE'])['toBe']('number');}),test(_0x4cfc82(0x20f),async()=>{const _0x47965a=_0x4cfc82,{WS_MESSAGE_TYPE:_0x2a5583}=await import('../../config/constants.js');expect(_0x2a5583)['toBeDefined'](),expect(_0x2a5583[_0x47965a(0x1ec)])['toBe']('message_added'),expect(_0x2a5583['AGENT_MODE_CHANGED'])[_0x47965a(0x1f3)](_0x47965a(0x1e6)),expect(_0x2a5583[_0x47965a(0x20b)])[_0x47965a(0x1f3)]('execution_stopped');});}),describe('Message\x20Management\x20-\x20Integration',()=>{const _0x6cc376=a0_0x274634;test(_0x6cc376(0x204),async()=>{const _0x50b179=_0x6cc376,{useMessages:_0x677279}=await import('../../state/useMessages.js'),{SessionManager:_0xe5896}=await import(_0x50b179(0x205)),{MessageRouter:_0x29f6cb}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4c04b0}=await import('../../api/websocket.js'),_0x4b3387=new _0xe5896(_0x50b179(0x1fd),0x1f90),_0x1a670f=new _0x4c04b0(_0x50b179(0x1fd),0x1f90),_0x270a5a=new _0x29f6cb(_0x1a670f);expect(_0x4b3387)['toBeDefined'](),expect(_0x270a5a)['toBeDefined'](),expect(typeof _0x677279)[_0x50b179(0x1f3)]('function');}),test('Full message management stack can be imported together',async()=>{const _0x248942=_0x6cc376,[_0x1a97b7,_0x31292d,_0x3156f0,_0x3c53db,_0x3d1091]=await Promise['all']([import('../../config/constants.js'),import('../../api/session.js'),import(_0x248942(0x1f2)),import('../../api/messageRouter.js'),import(_0x248942(0x213))]);expect(_0x1a97b7['MESSAGE_ROLE'])['toBeDefined'](),expect(_0x1a97b7['MESSAGE_TYPE'])[_0x248942(0x202)](),expect(_0x1a97b7['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x31292d[_0x248942(0x210)])[_0x248942(0x202)](),expect(_0x3156f0[_0x248942(0x1f8)])['toBeDefined'](),expect(_0x3c53db['MessageRouter'])[_0x248942(0x202)](),expect(_0x3d1091['useMessages'])['toBeDefined']();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x3f29e2=a0_0x274634;test(_0x3f29e2(0x212),async()=>{const _0x5e7213=_0x3f29e2,{API_ENDPOINTS:_0x4275f6}=await import('../../config/constants.js');expect(_0x4275f6[_0x5e7213(0x214)])['toBeDefined'](),expect(_0x4275f6[_0x5e7213(0x214)])['toBe']('/api/orchestrator');}),test(_0x3f29e2(0x21a),async()=>{const _0x57f776=_0x3f29e2,{API_ENDPOINTS:_0x44b356}=await import('../../config/constants.js');expect(_0x44b356['ORCHESTRATOR'])[_0x57f776(0x1f7)](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x1c0d16=a0_0x274634;test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x528689=a0_0xec8a,{useMessages:_0x1b7253}=await import(_0x528689(0x213));expect(_0x1b7253[_0x528689(0x1eb)])[_0x528689(0x1f3)](0x3);}),test(_0x1c0d16(0x1e8),async()=>{const _0x52f958=_0x1c0d16,{useMessageCount:_0x36212d}=await import(_0x52f958(0x213));expect(_0x36212d['length'])[_0x52f958(0x1f3)](0x1);});}),describe(a0_0x274634(0x200),()=>{const _0x6748c0=a0_0x274634;test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x309a90=a0_0xec8a,{MESSAGE_CONFIG:_0x3b68f4}=await import(_0x309a90(0x1f1));expect(_0x3b68f4['MAX_MESSAGE_LENGTH'])['toBeGreaterThan'](0x0),expect(_0x3b68f4['MAX_MESSAGE_LENGTH'])[_0x309a90(0x1e9)](0x186a0),expect(_0x3b68f4['MAX_MESSAGES_DISPLAY'])[_0x309a90(0x208)](0x0),expect(_0x3b68f4['MAX_MESSAGES_DISPLAY'])[_0x309a90(0x1e9)](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x347273=a0_0xec8a,{PAGINATION:_0x42757d}=await import(_0x347273(0x1f1));expect(_0x42757d['PAGE_SIZE'])['toBeGreaterThan'](0x0),expect(_0x42757d[_0x347273(0x20e)])[_0x347273(0x1e9)](0x3e8),expect(_0x42757d[_0x347273(0x20a)])[_0x347273(0x1ef)](_0x42757d['PAGE_SIZE']);}),test(_0x6748c0(0x217),async()=>{const _0x597b5d=_0x6748c0,{MESSAGE_ROLE:_0x135868}=await import('../../config/constants.js');expect(_0x135868['USER'])['toBe'](_0x135868['USER']['toLowerCase']()),expect(_0x135868['ASSISTANT'])['toBe'](_0x135868['ASSISTANT'][_0x597b5d(0x207)]()),expect(_0x135868['SYSTEM'])[_0x597b5d(0x1f3)](_0x135868['SYSTEM']['toLowerCase']());});}),describe(a0_0x274634(0x21c),()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0xc5f426=a0_0xec8a,{MessageRouter:_0x3ffb86}=await import(_0xc5f426(0x1ff)),{WebSocketManager:_0x55df4a}=await import(_0xc5f426(0x1f2)),{WS_MESSAGE_TYPE:_0x429d38}=await import('../../config/constants.js'),_0x38e95e=new _0x55df4a(_0xc5f426(0x1fd),0x1f90),_0x147498=new _0x3ffb86(_0x38e95e);expect(_0x147498['hasHandler'](_0x429d38[_0xc5f426(0x1ec)]))[_0xc5f426(0x1f3)](!![]),expect(_0x147498['hasHandler'](_0x429d38['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe(a0_0x274634(0x211),()=>{const _0x375ac7=a0_0x274634;test('MESSAGE_CONFIG\x20enforces\x20maximum\x20message\x20length',async()=>{const _0x3d0680=a0_0xec8a,{MESSAGE_CONFIG:_0x3d9706}=await import('../../config/constants.js');expect(_0x3d9706[_0x3d0680(0x216)])[_0x3d0680(0x202)](),expect(typeof _0x3d9706[_0x3d0680(0x216)])[_0x3d0680(0x1f3)]('number');const _0x51387b='a'['repeat'](_0x3d9706['MAX_MESSAGE_LENGTH']+0x1);expect(_0x51387b[_0x3d0680(0x1eb)])[_0x3d0680(0x208)](_0x3d9706[_0x3d0680(0x216)]);}),test(_0x375ac7(0x1ee),async()=>{const _0x1a72cb=_0x375ac7,{MESSAGE_CONFIG:_0x219f23}=await import(_0x1a72cb(0x1f1));expect(_0x219f23[_0x1a72cb(0x20d)])[_0x1a72cb(0x202)](),expect(typeof _0x219f23[_0x1a72cb(0x20d)])[_0x1a72cb(0x1f3)]('number'),expect(_0x219f23['MAX_MESSAGES_DISPLAY'])[_0x1a72cb(0x208)](0x0);});}),describe('Message\x20Management\x20-\x20Pagination\x20Logic',()=>{test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x13f064=a0_0xec8a,{PAGINATION:_0x4e6e9c}=await import('../../config/constants.js'),_0xb15d74=0x0,_0x4a0457=_0xb15d74*_0x4e6e9c[_0x13f064(0x20e)];expect(_0x4a0457)[_0x13f064(0x1f3)](0x0);const _0x4cb505=0x1,_0x39a096=_0x4cb505*_0x4e6e9c['PAGE_SIZE'];expect(_0x39a096)['toBe'](_0x4e6e9c[_0x13f064(0x20e)]);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0x49a528=a0_0xec8a,{PAGINATION:_0x2869e8}=await import('../../config/constants.js'),_0x42239f=0x3e8,_0xfa96a6=Math[_0x49a528(0x1f0)](_0x42239f,_0x2869e8[_0x49a528(0x20a)]);expect(_0xfa96a6)[_0x49a528(0x1e9)](_0x2869e8[_0x49a528(0x20a)]);});});
@@ -1 +1 @@
1
- const a0_0x177d61=a0_0x35f7;function a0_0x39bb(){const _0x191895=['q2f0zwDVCNKGy291BNrZignHBIbIzsbJywXJDwXHDgvK','AxnZDwvZ','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','l2fWAs90B29SCW','mtq4mZu3BMzREvrX','vg9VBhmGtwfUywDLBwvUDcaTifDLyLnVy2TLDcbfDMvUDcbiyw5KBgvYCW','ve9ptf9dqvrfr09swsbJB25ZDgfUDhmGyxjLigrLzMLUzwq','A2v5CW','ve9ptf9dqvrfr09swsb2ywX1zxmGBwf0y2GGzxHWzwn0zwqGzM9YBwf0','y2f0zwDVCNK','ve9ptfm','twvZC2fNzvjVDxrLCG','DxnLvg9VBhmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','mJeZy1vqDeTL','zgvMyxvSDa','DMfSDwvZ','vvrjteLuwq','zNvUy3rPB24','zxHLyY0X','BgvUz3rO','mZe2mdCYve9Xvw5K','Aw5JBhvKzxm','vg9VBhmGqvbjigvUzhbVAw50igLZigrLzMLUzwq','yw5HBhL6zv9JB2rL','v3jPDguGzgf0ysb0BYbHigzPBgu','qvvut01bveLptG','mZu2nJaXnwXOzwrUEG','zMLSDgvY','ve9ptf9dqvrfr09swq','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','vg9VBhmGzw5KCg9PBNqGzM9SBg93CYbsrvnuzNvSihbHDhrLCM4','BwfW','DxnLvg9VBhm','lI4VlI4VyxbPl3nLC3nPB24UANm','mte5rMLqALfT','nJyWngTbquXwDW','q09mtefct1jbveLptG','CMvHzf9MAwXL','zgf0yq','vg9VBcbJywnOzsbZDxbWB3j0CYbuveWTyMfZzwqGy2fJAgLUzW','AgfZ','zw5HyMXLza','zMLSzsbJB250zw50CW','zxHLyY0Y','vg9VBhmGtwfUywDLBwvUDcaTieHVB2SGsw50zxjMywnLifzLCMLMAwnHDgLVBG','l2fWAs9VCMnOzxn0CMf0B3i','Dg9dB250ywLU','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGu2vHCMnO','Bg9JywXOB3n0','Dg9fCxvHBa','mJqXodKWmtjqzKzUA3e','Dg9czq','u1Ltvevn','z2v0','mJK1mZCYneT2sLnbvG','ntuXmtKWnK5WEfrLEG','ywXS','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','DxnLvg9VBhmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','C2L6zq','t1jdsevtvfjbve9s','uMvHzcbJB250zw50CYbVzIbHigzPBgu','C3vJy2vZCW','Dg9mB3DLCKnHC2u','vg9VBhmGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','BMfTzq','C2v0','D2vIx3nLyxjJAa','zgvSzxrL','BM93','qu5btfLtsvm','u2vZC2LVBK1HBMfNzxi','zMLSzq','D3jPDgvFzMLSzq','Dg9nyxrJAa','Dg9czurLzMLUzwq','zxHLy3v0zv9JB21Tyw5K'];a0_0x39bb=function(){return _0x191895;};return a0_0x39bb();}(function(_0xbb019a,_0x387c78){const _0x15e473=a0_0x35f7,_0x2be319=_0xbb019a();while(!![]){try{const _0x455d8f=-parseInt(_0x15e473(0x154))/0x1+-parseInt(_0x15e473(0x125))/0x2*(parseInt(_0x15e473(0x15d))/0x3)+-parseInt(_0x15e473(0x138))/0x4+-parseInt(_0x15e473(0x11c))/0x5+-parseInt(_0x15e473(0x139))/0x6+parseInt(_0x15e473(0x124))/0x7*(parseInt(_0x15e473(0x116))/0x8)+parseInt(_0x15e473(0x134))/0x9;if(_0x455d8f===_0x387c78)break;else _0x2be319['push'](_0x2be319['shift']());}catch(_0x3e30cd){_0x2be319['push'](_0x2be319['shift']());}}}(a0_0x39bb,0x9401d));import{describe,test,expect}from'@jest/globals';function a0_0x35f7(_0x20a316,_0x6aa1eb){_0x20a316=_0x20a316-0x110;const _0x39bb66=a0_0x39bb();let _0x35f7cd=_0x39bb66[_0x20a316];if(a0_0x35f7['JhFJuP']===undefined){var _0x5cd484=function(_0xae4ca6){const _0x28be5a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d115f='',_0x3adf6e='';for(let _0x7743bf=0x0,_0x14b5e8,_0x16944f,_0x46fc26=0x0;_0x16944f=_0xae4ca6['charAt'](_0x46fc26++);~_0x16944f&&(_0x14b5e8=_0x7743bf%0x4?_0x14b5e8*0x40+_0x16944f:_0x16944f,_0x7743bf++%0x4)?_0x2d115f+=String['fromCharCode'](0xff&_0x14b5e8>>(-0x2*_0x7743bf&0x6)):0x0){_0x16944f=_0x28be5a['indexOf'](_0x16944f);}for(let _0xd87d88=0x0,_0x5d2f58=_0x2d115f['length'];_0xd87d88<_0x5d2f58;_0xd87d88++){_0x3adf6e+='%'+('00'+_0x2d115f['charCodeAt'](_0xd87d88)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3adf6e);};a0_0x35f7['owsiuM']=_0x5cd484,a0_0x35f7['sjELHq']={},a0_0x35f7['JhFJuP']=!![];}const _0x4a637a=_0x39bb66[0x0],_0x16cd0f=_0x20a316+_0x4a637a,_0x1f975a=a0_0x35f7['sjELHq'][_0x16cd0f];return!_0x1f975a?(_0x35f7cd=a0_0x35f7['owsiuM'](_0x35f7cd),a0_0x35f7['sjELHq'][_0x16cd0f]=_0x35f7cd):_0x35f7cd=_0x1f975a,_0x35f7cd;}describe('Tools\x20Management\x20-\x20Imports',()=>{test('useTools hook can be imported',async()=>{const _0x44e10e=a0_0x35f7,{useTools:_0x2d115f}=await import('../../state/useTools.js');expect(_0x2d115f)[_0x44e10e(0x14e)](),expect(typeof _0x2d115f)[_0x44e10e(0x135)]('function');}),test('useTools is default export',async()=>{const _0xde935b=a0_0x35f7,module=await import('../../state/useTools.js');expect(module[_0xde935b(0x110)])['toBeDefined'](),expect(typeof module['default'])[_0xde935b(0x135)]('function'),expect(module[_0xde935b(0x110)])[_0xde935b(0x135)](module['useTools']);});}),describe('Tools\x20Management\x20-\x20Constants',()=>{const _0x1350b1=a0_0x35f7;test(_0x1350b1(0x156),async()=>{const _0x514b3d=_0x1350b1,{TOOL_CATEGORY:_0x3adf6e}=await import('../../config/constants.js');expect(_0x3adf6e)['toBeDefined'](),expect(_0x3adf6e['SYSTEM'])[_0x514b3d(0x14e)](),expect(_0x3adf6e[_0x514b3d(0x11b)])[_0x514b3d(0x14e)](),expect(_0x3adf6e['ANALYSIS'])['toBeDefined'](),expect(_0x3adf6e[_0x514b3d(0x112)])[_0x514b3d(0x14e)](),expect(_0x3adf6e[_0x514b3d(0x126)])['toBeDefined'](),expect(_0x3adf6e['AI'])[_0x514b3d(0x14e)]();}),test('TOOL_CATEGORY\x20values\x20are\x20lowercase',async()=>{const _0x4f4ec7=_0x1350b1,{TOOL_CATEGORY:_0x7743bf}=await import('../../config/constants.js');expect(_0x7743bf['SYSTEM'])['toBe'](_0x7743bf['SYSTEM']['toLowerCase']()),expect(_0x7743bf['AUTOMATION'])[_0x4f4ec7(0x135)](_0x7743bf[_0x4f4ec7(0x11b)]['toLowerCase']()),expect(_0x7743bf[_0x4f4ec7(0x149)])['toBe'](_0x7743bf[_0x4f4ec7(0x149)]['toLowerCase']()),expect(_0x7743bf[_0x4f4ec7(0x112)])['toBe'](_0x7743bf[_0x4f4ec7(0x112)][_0x4f4ec7(0x141)]());}),test(_0x1350b1(0x118),async()=>{const _0xe4e40e=_0x1350b1,{API_ENDPOINTS:_0x14b5e8}=await import(_0xe4e40e(0x143));expect(_0x14b5e8['TOOLS'])['toBeDefined'](),expect(_0x14b5e8['TOOLS'])['toBe'](_0xe4e40e(0x153));}),test('Orchestrator\x20endpoint\x20is\x20used\x20for\x20tool\x20operations',async()=>{const _0x449616=_0x1350b1,{API_ENDPOINTS:_0x16944f}=await import(_0x449616(0x143));expect(_0x16944f['ORCHESTRATOR'])['toBeDefined'](),expect(_0x16944f[_0x449616(0x13e)])[_0x449616(0x135)](_0x449616(0x12f));});}),describe(a0_0x177d61(0x142),()=>{const _0x44d911=a0_0x177d61;test(_0x44d911(0x15c),async()=>{const _0x110216=_0x44d911,{useTools:_0x46fc26}=await import(_0x110216(0x13b)),{SessionManager:_0xd87d88}=await import('../../api/session.js'),{MessageRouter:_0x5d2f58}=await import(_0x110216(0x152)),{WebSocketManager:_0x415a2f}=await import('../../api/websocket.js'),_0x3f805a=new _0xd87d88('localhost',0x1f90),_0x17347d=new _0x415a2f('localhost',0x1f90),_0x483c5d=new _0x5d2f58(_0x17347d);expect(_0x3f805a)[_0x110216(0x14e)](),expect(_0x483c5d)[_0x110216(0x14e)](),expect(typeof _0x46fc26)['toBe'](_0x110216(0x113));}),test('Full tools management stack can be imported together',async()=>{const _0x46d1d7=_0x44d911,[_0x3a0e60,_0x4bbb84,_0x3b8a84,_0x4efb31,_0x112630]=await Promise[_0x46d1d7(0x13a)]([import('../../config/constants.js'),import(_0x46d1d7(0x123)),import('../../api/websocket.js'),import(_0x46d1d7(0x152)),import('../../state/useTools.js')]);expect(_0x3a0e60[_0x46d1d7(0x11e)])[_0x46d1d7(0x14e)](),expect(_0x3a0e60['API_ENDPOINTS'])['toBeDefined'](),expect(_0x4bbb84[_0x46d1d7(0x14a)])[_0x46d1d7(0x14e)](),expect(_0x3b8a84['WebSocketManager'])['toBeDefined'](),expect(_0x4efb31[_0x46d1d7(0x15b)])[_0x46d1d7(0x14e)](),expect(_0x112630[_0x46d1d7(0x122)])[_0x46d1d7(0x14e)]();});}),describe('Tools\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x50ce47=a0_0x177d61;test(_0x50ce47(0x120),async()=>{const _0x520754=_0x50ce47,{API_ENDPOINTS:_0x403eb9}=await import(_0x520754(0x143));expect(_0x403eb9['TOOLS'])['toMatch'](/^\/api\//),expect(_0x403eb9[_0x520754(0x15a)])[_0x520754(0x135)](_0x520754(0x153));}),test('Tool\x20operations\x20use\x20orchestrator\x20endpoint',async()=>{const _0x5ba80d=_0x50ce47,{API_ENDPOINTS:_0x5534a4}=await import(_0x5ba80d(0x143));expect(_0x5534a4['ORCHESTRATOR'])[_0x5ba80d(0x14e)](),expect(_0x5534a4['ORCHESTRATOR'])['toBe'](_0x5ba80d(0x12f));});}),describe(a0_0x177d61(0x12e),()=>{const _0x1822bb=a0_0x177d61;test(_0x1822bb(0x13c),async()=>{const _0x32c8d6=_0x1822bb,{useTools:_0x4ab925}=await import(_0x32c8d6(0x13b));expect(_0x4ab925['length'])['toBe'](0x3);});}),describe('Tools\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x23f484=a0_0x177d61;test('TOOL_CATEGORY\x20includes\x20all\x20major\x20categories',async()=>{const _0x1193c3=a0_0x35f7,{TOOL_CATEGORY:_0x1ed54d}=await import('../../config/constants.js'),_0x168b55=Object[_0x1193c3(0x157)](_0x1ed54d);expect(_0x168b55)[_0x1193c3(0x130)](_0x1193c3(0x136)),expect(_0x168b55)[_0x1193c3(0x130)](_0x1193c3(0x11b)),expect(_0x168b55)[_0x1193c3(0x130)](_0x1193c3(0x149)),expect(_0x168b55)[_0x1193c3(0x130)]('UTILITY'),expect(_0x168b55)[_0x1193c3(0x130)]('COLLABORATION'),expect(_0x168b55)['toContain']('AI');}),test(_0x23f484(0x158),async()=>{const _0x336ed2=_0x23f484,{TOOL_CATEGORY:_0x9d49c1}=await import('../../config/constants.js');expect(_0x9d49c1[_0x336ed2(0x136)])['toMatch'](/^[a-z_]+$/),expect(_0x9d49c1[_0x336ed2(0x11b)])[_0x336ed2(0x14d)](/^[a-z_]+$/),expect(_0x9d49c1['ANALYSIS'])['toMatch'](/^[a-z_]+$/),expect(_0x9d49c1[_0x336ed2(0x112)])['toMatch'](/^[a-z_]+$/);});}),describe(a0_0x177d61(0x155),()=>{test('MessageRouter\x20has\x20tool\x20event\x20handlers\x20registered',async()=>{const _0x272eb7=a0_0x35f7,{MessageRouter:_0x54594c}=await import(_0x272eb7(0x152)),{WebSocketManager:_0x39b495}=await import('../../api/websocket.js'),_0xff9b7f=new _0x39b495(_0x272eb7(0x132),0x1f90),_0x1861e7=new _0x54594c(_0xff9b7f);expect(_0x1861e7['hasHandler'])[_0x272eb7(0x14e)](),expect(typeof _0x1861e7['hasHandler'])['toBe']('function');});}),describe('Tools\x20Management\x20-\x20Tool\x20Categorization',()=>{test('TOOL_CATEGORY\x20can\x20be\x20used\x20to\x20filter\x20tools\x20by\x20category',async()=>{const _0x301399=a0_0x35f7,{TOOL_CATEGORY:_0x5dbadd}=await import('../../config/constants.js'),_0x1693cf=[{'name':'execute_command','category':_0x5dbadd['SYSTEM']},{'name':'terminal','category':_0x5dbadd[_0x301399(0x136)]},{'name':_0x301399(0x119),'category':_0x5dbadd[_0x301399(0x149)]},{'name':_0x301399(0x146),'category':_0x5dbadd['UTILITY']},{'name':'ai_assistant','category':_0x5dbadd['AI']}],_0x536e42=_0x1693cf[_0x301399(0x11d)](_0x4d6de9=>_0x4d6de9['category']===_0x5dbadd['SYSTEM']),_0x2493b9=_0x1693cf['filter'](_0x66b3d3=>_0x66b3d3['category']===_0x5dbadd['ANALYSIS']),_0x15a604=_0x1693cf['filter'](_0x431c32=>_0x431c32['category']===_0x5dbadd[_0x301399(0x112)]),_0x161df7=_0x1693cf['filter'](_0xaa1bf5=>_0xaa1bf5[_0x301399(0x159)]===_0x5dbadd['AI']);expect(_0x536e42['length'])[_0x301399(0x135)](0x2),expect(_0x2493b9[_0x301399(0x115)])[_0x301399(0x135)](0x1),expect(_0x15a604['length'])[_0x301399(0x135)](0x1),expect(_0x161df7['length'])['toBe'](0x1),expect(_0x536e42[0x0][_0x301399(0x144)])['toBe'](_0x301399(0x14f)),expect(_0x2493b9[0x0]['name'])['toBe']('analyze_code');});}),describe(a0_0x177d61(0x131),()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x48fd29=a0_0x35f7,_0x24c2cc=[{'name':_0x48fd29(0x127),'description':_0x48fd29(0x13f)},{'name':_0x48fd29(0x14c),'description':_0x48fd29(0x11a)},{'name':_0x48fd29(0x119),'description':'Perform\x20static\x20code\x20analysis'}],_0x1bdbf6=_0xb41eba=>{const _0x42250c=_0x48fd29,_0xf00543=_0xb41eba['toLowerCase']();return _0x24c2cc[_0x42250c(0x11d)](_0x77cafc=>_0x77cafc[_0x42250c(0x144)]?.['toLowerCase']()[_0x42250c(0x117)](_0xf00543)||_0x77cafc['description']?.[_0x42250c(0x141)]()['includes'](_0xf00543));},_0x1f0ef7=_0x1bdbf6(_0x48fd29(0x14b));expect(_0x1f0ef7['length'])['toBe'](0x2),expect(_0x1f0ef7[_0x48fd29(0x121)](_0x3a8af0=>_0x3a8af0[_0x48fd29(0x144)]))['toContain']('read_file'),expect(_0x1f0ef7['map'](_0x453a03=>_0x453a03[_0x48fd29(0x144)]))['toContain']('write_file');const _0x5696f4=_0x1bdbf6('analyze');expect(_0x5696f4['length'])['toBe'](0x1),expect(_0x5696f4[0x0]['name'])['toBe']('analyze_code');});}),describe('Tools\x20Management\x20-\x20Execution\x20State\x20Tracking',()=>{test('Execution\x20state\x20can\x20track\x20multiple\x20tools',async()=>{const _0xb59757=a0_0x35f7,_0x27f27e=new Set();_0x27f27e['add']('read_file'),_0x27f27e['add'](_0xb59757(0x119)),expect(_0x27f27e['has']('read_file'))['toBe'](!![]),expect(_0x27f27e[_0xb59757(0x12a)](_0xb59757(0x119)))['toBe'](!![]),expect(_0x27f27e[_0xb59757(0x13d)])[_0xb59757(0x135)](0x2),_0x27f27e[_0xb59757(0x147)](_0xb59757(0x127)),expect(_0x27f27e[_0xb59757(0x12a)](_0xb59757(0x127)))[_0xb59757(0x135)](![]),expect(_0x27f27e['has']('analyze_code'))['toBe'](!![]),expect(_0x27f27e['size'])['toBe'](0x1);}),test('Tool\x20results\x20can\x20be\x20stored\x20by\x20execution\x20ID',async()=>{const _0x22c046=a0_0x35f7,_0x537ac5=new Map();_0x537ac5[_0x22c046(0x145)](_0x22c046(0x114),{'success':!![],'data':'file\x20contents'}),_0x537ac5[_0x22c046(0x145)](_0x22c046(0x12d),{'success':!![],'data':{'issues':[]}}),expect(_0x537ac5[_0x22c046(0x137)](_0x22c046(0x114)))['toBeDefined'](),expect(_0x537ac5[_0x22c046(0x137)]('exec-1')[_0x22c046(0x140)])['toBe'](!![]),expect(_0x537ac5[_0x22c046(0x137)](_0x22c046(0x114))['data'])[_0x22c046(0x135)](_0x22c046(0x12c)),expect(_0x537ac5[_0x22c046(0x137)](_0x22c046(0x12d)))[_0x22c046(0x14e)](),expect(_0x537ac5['get'](_0x22c046(0x12d))[_0x22c046(0x128)][_0x22c046(0x151)])[_0x22c046(0x133)]([]),expect(_0x537ac5[_0x22c046(0x13d)])[_0x22c046(0x135)](0x2);});}),describe(a0_0x177d61(0x11f),()=>{const _0x57ecab=a0_0x177d61;test(_0x57ecab(0x129),async()=>{const _0x19112d=_0x57ecab,_0x3de74e=0x927c0;let _0x538cd6=null,_0x37e401=0x0;const _0x375c1e=[{'name':_0x19112d(0x127)}];_0x538cd6=_0x375c1e,_0x37e401=Date[_0x19112d(0x148)]();const _0x561abc=Date[_0x19112d(0x148)](),_0x187ffa=_0x561abc-_0x37e401<_0x3de74e;expect(_0x187ffa)['toBe'](!![]),expect(_0x538cd6)[_0x19112d(0x135)](_0x375c1e);}),test('Tool\x20cache\x20expires\x20after\x20TTL',async()=>{const _0x422e59=_0x57ecab,_0x3751c8=0x64;let _0x37ea0a=null,_0x33f260=0x0;const _0x1d3d05=[{'name':'read_file'}];_0x37ea0a=_0x1d3d05,_0x33f260=Date[_0x422e59(0x148)](),await new Promise(_0x4021e9=>setTimeout(_0x4021e9,0x96));const _0xde03a1=Date[_0x422e59(0x148)](),_0x295656=_0xde03a1-_0x33f260<_0x3751c8;expect(_0x295656)['toBe'](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{test('Tools\x20can\x20be\x20filtered\x20by\x20multiple\x20criteria',async()=>{const _0x592ab1=a0_0x35f7,{TOOL_CATEGORY:_0x23609c}=await import(_0x592ab1(0x143)),_0xc26b41=[{'name':_0x592ab1(0x14f),'category':_0x23609c[_0x592ab1(0x136)],'enabled':!![]},{'name':'terminal','category':_0x23609c[_0x592ab1(0x136)],'enabled':![]},{'name':'analyze_code','category':_0x23609c[_0x592ab1(0x149)],'enabled':!![]}],_0x40f847=_0x1c0fd2=>{const _0xbe7369=_0x592ab1;let _0x2f29a6=[..._0xc26b41];return _0x1c0fd2[_0xbe7369(0x159)]&&(_0x2f29a6=_0x2f29a6['filter'](_0x31f942=>_0x31f942['category']===_0x1c0fd2['category'])),_0x1c0fd2['enabled']!==undefined&&(_0x2f29a6=_0x2f29a6['filter'](_0x35dff2=>_0x35dff2[_0xbe7369(0x12b)]===_0x1c0fd2[_0xbe7369(0x12b)])),_0x2f29a6;},_0x510535=_0x40f847({'category':_0x23609c['SYSTEM']});expect(_0x510535[_0x592ab1(0x115)])[_0x592ab1(0x135)](0x2);const _0x58f10a=_0x40f847({'enabled':!![]});expect(_0x58f10a['length'])[_0x592ab1(0x135)](0x2);const _0x441a86=_0x40f847({'category':_0x23609c['SYSTEM'],'enabled':!![]});expect(_0x441a86[_0x592ab1(0x115)])['toBe'](0x1),expect(_0x441a86[0x0][_0x592ab1(0x144)])['toBe'](_0x592ab1(0x14f));});}),describe('Tools\x20Management\x20-\x20Category\x20Counts',()=>{const _0x244ea0=a0_0x177d61;test(_0x244ea0(0x150),async()=>{const _0x38ebf5=_0x244ea0,{TOOL_CATEGORY:_0x4d0186}=await import('../../config/constants.js'),_0x59ccfd=[{'name':'execute_command','category':_0x4d0186['SYSTEM']},{'name':'terminal','category':_0x4d0186['SYSTEM']},{'name':'analyze_code','category':_0x4d0186['ANALYSIS']},{'name':'web_search','category':_0x4d0186['UTILITY']}],_0x22d3dd=_0x7f2572=>{const _0x273006=a0_0x35f7,_0x2e0e7a={};for(const _0x3eaa4e of Object[_0x273006(0x111)](_0x4d0186)){_0x2e0e7a[_0x3eaa4e]=_0x7f2572['filter'](_0x27a0d3=>_0x27a0d3['category']===_0x3eaa4e)['length'];}return _0x2e0e7a;},_0x14d5de=_0x22d3dd(_0x59ccfd);expect(_0x14d5de[_0x4d0186[_0x38ebf5(0x136)]])[_0x38ebf5(0x135)](0x2),expect(_0x14d5de[_0x4d0186['ANALYSIS']])[_0x38ebf5(0x135)](0x1),expect(_0x14d5de[_0x4d0186['UTILITY']])['toBe'](0x1),expect(_0x14d5de[_0x4d0186[_0x38ebf5(0x11b)]])['toBe'](0x0);});});
1
+ function a0_0x20e3(){const _0x494432=['vg9VBhmGtwfUywDLBwvUDcaTieHVB2SGsw50zxjMywnLifzLCMLMAwnHDgLVBG','DxnLvg9VBhm','zgvSzxrL','AgfZsgfUzgXLCG','m3HjCxjTvW','mtG2mtCWmfr5DwrqCq','ywrK','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','Dg9fCxvHBa','ntG5nZu0nePRrgjxBa','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGu2vHCMnO','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','v2vIu29JA2v0twfUywDLCG','Bg9JywXOB3n0','mtbYBxv6ENu','qvbjx0vorfbpsu5uuW','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','zMLSzq','y2f0zwDVCNK','u2vZC2LVBK1HBMfNzxi','ugvYzM9YBsbZDgf0AwmGy29KzsbHBMfSExnPCW','zgvMyxvSDa','qu5btfLtsvm','CMvHzf9MAwXL','Dg9mB3DLCKnHC2u','vg9VBhmGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','mJy0ntf1DgjLyNy','q09mtefct1jbveLptG','ywXS','DxnLvg9VBhmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','lI4VlI4VyxbPl3nLC3nPB24UANm','AxnZDwvZ','ve9ptf9dqvrfr09swsbJB25ZDgfUDhmGyxjLigrLzMLUzwq','zNvUy3rPB24','rxHLy3v0Aw9Uihn0yxrLignHBIb0CMfJAYbTDwX0AxbSzsb0B29SCW','t3jJAgvZDhjHDg9YigvUzhbVAw50igLZihvZzwqGzM9YihrVB2WGB3bLCMf0Aw9UCW','vvrjteLuwq','ve9ptf9dqvrfr09swq','BMfTzq','l2fWAs90B29SCW','u1Ltvevn','vg9VBhmGtwfUywDLBwvUDcaTienHDgvNB3j5ienVDw50CW','q2f0zwDVCNKGy291BNrZignHBIbIzsbJywXJDwXHDgvK','vg9VBhmGqvbjigvUzhbVAw50igLZigrLzMLUzwq','mtqXmdyWmMvusfvQyq','Dg9nyxrJAa','BgvUz3rO','BwfW','Dg9czurLzMLUzwq','twvZC2fNzvjVDxrLCIbOyxmGDg9VBcbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','nde3ndaYovLguwLABa','C2L6zq','z2v0','zMLSzsbJB250zw50CW','yw5HBhL6zv9JB2rL','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','AgfZ','ve9ptfm','zw5HyMXLza','vg9VBcbVCgvYyxrPB25ZihvZzsbVCMnOzxn0CMf0B3iGzw5KCg9PBNq','t1jdsevtvfjbve9s','mJGWmdCXnuXkz05WtW','zxHLy3v0zv9JB21Tyw5K','vg9VBhmGtwfUywDLBwvUDcaTiev4zwn1DgLVBIbtDgf0zsbuCMfJA2LUzW','zxHLyY0Y','BM93','DgvYBwLUywW','zgvZy3jPChrPB24','vg9VBhmGy2fUigjLigzPBhrLCMvKigj5ig11BhrPCgXLignYAxrLCMLH','mZa0vvvctKT2','nJq0mdDRuvPLtuG','zgf0yq','qvvut01bveLptG','ve9ptf9dqvrfr09swsb2ywX1zxmGyxjLigXVD2vYy2fZzq','vg9VBhmGtwfUywDLBwvUDcaTieLTCg9YDhm','D3jPDgvFzMLSzq','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','ywLFyxnZAxn0yw50','zMLSDgvY','Dg9dB250ywLU','Dg9czq','zxHLyY0X','D2vIx3nLyxjJAa','ve9ptf9dqvrfr09swsbJyw4GyMuGDxnLzcb0BYbMAwX0zxiGDg9VBhmGyNKGy2f0zwDVCNK'];a0_0x20e3=function(){return _0x494432;};return a0_0x20e3();}const a0_0x3d0d11=a0_0x9d29;(function(_0x33d5de,_0x2a6abc){const _0x59effe=a0_0x9d29,_0x199356=_0x33d5de();while(!![]){try{const _0x30186e=-parseInt(_0x59effe(0x159))/0x1+parseInt(_0x59effe(0x16b))/0x2+parseInt(_0x59effe(0x143))/0x3*(-parseInt(_0x59effe(0x144))/0x4)+-parseInt(_0x59effe(0x17c))/0x5+parseInt(_0x59effe(0x148))/0x6+-parseInt(_0x59effe(0x185))/0x7*(parseInt(_0x59effe(0x184))/0x8)+parseInt(_0x59effe(0x171))/0x9*(parseInt(_0x59effe(0x14d))/0xa);if(_0x30186e===_0x2a6abc)break;else _0x199356['push'](_0x199356['shift']());}catch(_0x119be1){_0x199356['push'](_0x199356['shift']());}}}(a0_0x20e3,0xb730d));function a0_0x9d29(_0x2b2dd8,_0x5975b5){_0x2b2dd8=_0x2b2dd8-0x13b;const _0x20e3a5=a0_0x20e3();let _0x9d2924=_0x20e3a5[_0x2b2dd8];if(a0_0x9d29['EkXPbI']===undefined){var _0x1ec203=function(_0x58a9e7){const _0x37ebce='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1ee575='',_0x5a5b10='';for(let _0x59f0b2=0x0,_0x3e9dc0,_0x1de226,_0x17265c=0x0;_0x1de226=_0x58a9e7['charAt'](_0x17265c++);~_0x1de226&&(_0x3e9dc0=_0x59f0b2%0x4?_0x3e9dc0*0x40+_0x1de226:_0x1de226,_0x59f0b2++%0x4)?_0x1ee575+=String['fromCharCode'](0xff&_0x3e9dc0>>(-0x2*_0x59f0b2&0x6)):0x0){_0x1de226=_0x37ebce['indexOf'](_0x1de226);}for(let _0x57536c=0x0,_0x72e8fb=_0x1ee575['length'];_0x57536c<_0x72e8fb;_0x57536c++){_0x5a5b10+='%'+('00'+_0x1ee575['charCodeAt'](_0x57536c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5a5b10);};a0_0x9d29['evVgha']=_0x1ec203,a0_0x9d29['OuiAew']={},a0_0x9d29['EkXPbI']=!![];}const _0x4a3ab3=_0x20e3a5[0x0],_0x394806=_0x2b2dd8+_0x4a3ab3,_0x1eb88f=a0_0x9d29['OuiAew'][_0x394806];return!_0x1eb88f?(_0x9d2924=a0_0x9d29['evVgha'](_0x9d2924),a0_0x9d29['OuiAew'][_0x394806]=_0x9d2924):_0x9d2924=_0x1eb88f,_0x9d2924;}import{describe,test,expect}from'@jest/globals';describe(a0_0x3d0d11(0x189),()=>{test('useTools hook can be imported',async()=>{const _0x51bf40=a0_0x9d29,{useTools:_0x1ee575}=await import(_0x51bf40(0x176));expect(_0x1ee575)['toBeDefined'](),expect(typeof _0x1ee575)[_0x51bf40(0x13b)](_0x51bf40(0x160));}),test('useTools is default export',async()=>{const _0x4cb48c=a0_0x9d29,module=await import('../../state/useTools.js');expect(module['default'])[_0x4cb48c(0x16f)](),expect(typeof module[_0x4cb48c(0x154)])[_0x4cb48c(0x13b)](_0x4cb48c(0x160)),expect(module['default'])[_0x4cb48c(0x13b)](module[_0x4cb48c(0x140)]);});}),describe('Tools\x20Management\x20-\x20Constants',()=>{const _0x4bf03b=a0_0x3d0d11;test(_0x4bf03b(0x15f),async()=>{const _0x2842c1=_0x4bf03b,{TOOL_CATEGORY:_0x5a5b10}=await import('../../config/constants.js');expect(_0x5a5b10)[_0x2842c1(0x16f)](),expect(_0x5a5b10['SYSTEM'])['toBeDefined'](),expect(_0x5a5b10['AUTOMATION'])['toBeDefined'](),expect(_0x5a5b10[_0x2842c1(0x155)])['toBeDefined'](),expect(_0x5a5b10[_0x2842c1(0x163)])[_0x2842c1(0x16f)](),expect(_0x5a5b10['COLLABORATION'])['toBeDefined'](),expect(_0x5a5b10['AI'])['toBeDefined']();}),test(_0x4bf03b(0x188),async()=>{const _0x1430b9=_0x4bf03b,{TOOL_CATEGORY:_0x59f0b2}=await import('../../config/constants.js');expect(_0x59f0b2['SYSTEM'])['toBe'](_0x59f0b2[_0x1430b9(0x167)][_0x1430b9(0x157)]()),expect(_0x59f0b2['AUTOMATION'])[_0x1430b9(0x13b)](_0x59f0b2['AUTOMATION']['toLowerCase']()),expect(_0x59f0b2['ANALYSIS'])[_0x1430b9(0x13b)](_0x59f0b2['ANALYSIS'][_0x1430b9(0x157)]()),expect(_0x59f0b2['UTILITY'])[_0x1430b9(0x13b)](_0x59f0b2['UTILITY']['toLowerCase']());}),test(_0x4bf03b(0x16a),async()=>{const _0x1436bf=_0x4bf03b,{API_ENDPOINTS:_0x3e9dc0}=await import('../../config/constants.js');expect(_0x3e9dc0['TOOLS'])[_0x1436bf(0x16f)](),expect(_0x3e9dc0[_0x1436bf(0x178)])['toBe']('/api/tools');}),test(_0x4bf03b(0x162),async()=>{const _0x2e8f8a=_0x4bf03b,{API_ENDPOINTS:_0x1de226}=await import('../../config/constants.js');expect(_0x1de226[_0x2e8f8a(0x17b)])['toBeDefined'](),expect(_0x1de226['ORCHESTRATOR'])[_0x2e8f8a(0x13b)]('/api/orchestrator');});}),describe(a0_0x3d0d11(0x158),()=>{test('useTools\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0xc8343b=a0_0x9d29,{useTools:_0x17265c}=await import('../../state/useTools.js'),{SessionManager:_0x57536c}=await import(_0xc8343b(0x15d)),{MessageRouter:_0x72e8fb}=await import(_0xc8343b(0x14f)),{WebSocketManager:_0x12af8e}=await import('../../api/websocket.js'),_0x4cdec4=new _0x57536c(_0xc8343b(0x14c),0x1f90),_0x3929d4=new _0x12af8e(_0xc8343b(0x14c),0x1f90),_0x4b47b2=new _0x72e8fb(_0x3929d4);expect(_0x4cdec4)['toBeDefined'](),expect(_0x4b47b2)[_0xc8343b(0x16f)](),expect(typeof _0x17265c)[_0xc8343b(0x13b)]('function');}),test('Full tools management stack can be imported together',async()=>{const _0x39658d=a0_0x9d29,[_0x35c315,_0x37edf3,_0x3a48e9,_0x485adf,_0x36ec27]=await Promise[_0x39658d(0x15b)]([import('../../config/constants.js'),import(_0x39658d(0x15d)),import(_0x39658d(0x146)),import(_0x39658d(0x14f)),import(_0x39658d(0x176))]);expect(_0x35c315[_0x39658d(0x164)])[_0x39658d(0x16f)](),expect(_0x35c315[_0x39658d(0x14e)])[_0x39658d(0x16f)](),expect(_0x37edf3[_0x39658d(0x152)])[_0x39658d(0x16f)](),expect(_0x3a48e9[_0x39658d(0x14b)])[_0x39658d(0x16f)](),expect(_0x485adf['MessageRouter'])['toBeDefined'](),expect(_0x36ec27['useTools'])['toBeDefined']();});}),describe('Tools\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x4a508a=a0_0x3d0d11;test('Tools\x20endpoint\x20follows\x20RESTful\x20pattern',async()=>{const _0x809c66=a0_0x9d29,{API_ENDPOINTS:_0x5cb81d}=await import(_0x809c66(0x14a));expect(_0x5cb81d['TOOLS'])['toMatch'](/^\/api\//),expect(_0x5cb81d[_0x809c66(0x178)])['toBe'](_0x809c66(0x166));}),test(_0x4a508a(0x17a),async()=>{const _0x38152a=_0x4a508a,{API_ENDPOINTS:_0x1fc872}=await import('../../config/constants.js');expect(_0x1fc872[_0x38152a(0x17b)])['toBeDefined'](),expect(_0x1fc872['ORCHESTRATOR'])[_0x38152a(0x13b)]('/api/orchestrator');});}),describe(a0_0x3d0d11(0x13f),()=>{const _0x27d87e=a0_0x3d0d11;test(_0x27d87e(0x15c),async()=>{const _0x642d4a=_0x27d87e,{useTools:_0x57cd0d}=await import(_0x642d4a(0x176));expect(_0x57cd0d['length'])['toBe'](0x3);});}),describe('Tools\x20Management\x20-\x20Constants\x20Validation',()=>{test('TOOL_CATEGORY\x20includes\x20all\x20major\x20categories',async()=>{const _0x3cac45=a0_0x9d29,{TOOL_CATEGORY:_0x294f8e}=await import('../../config/constants.js'),_0x33311a=Object['keys'](_0x294f8e);expect(_0x33311a)['toContain'](_0x3cac45(0x167)),expect(_0x33311a)['toContain'](_0x3cac45(0x187)),expect(_0x33311a)['toContain'](_0x3cac45(0x155)),expect(_0x33311a)['toContain'](_0x3cac45(0x163)),expect(_0x33311a)['toContain'](_0x3cac45(0x15a)),expect(_0x33311a)['toContain']('AI');}),test('TOOL_CATEGORY\x20values\x20match\x20expected\x20format',async()=>{const _0x539bfe=a0_0x9d29,{TOOL_CATEGORY:_0x170a43}=await import('../../config/constants.js');expect(_0x170a43['SYSTEM'])['toMatch'](/^[a-z_]+$/),expect(_0x170a43['AUTOMATION'])[_0x539bfe(0x16c)](/^[a-z_]+$/),expect(_0x170a43[_0x539bfe(0x155)])[_0x539bfe(0x16c)](/^[a-z_]+$/),expect(_0x170a43[_0x539bfe(0x163)])[_0x539bfe(0x16c)](/^[a-z_]+$/);});}),describe('Tools\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{const _0x30f890=a0_0x3d0d11;test(_0x30f890(0x170),async()=>{const _0x4e7d80=_0x30f890,{MessageRouter:_0x3c589a}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x5da9a4}=await import(_0x4e7d80(0x146)),_0x3c6c8f=new _0x5da9a4('localhost',0x1f90),_0x552e73=new _0x3c589a(_0x3c6c8f);expect(_0x552e73[_0x4e7d80(0x142)])[_0x4e7d80(0x16f)](),expect(typeof _0x552e73[_0x4e7d80(0x142)])['toBe'](_0x4e7d80(0x160));});}),describe('Tools\x20Management\x20-\x20Tool\x20Categorization',()=>{const _0x294028=a0_0x3d0d11;test(_0x294028(0x13e),async()=>{const _0x3f759a=_0x294028,{TOOL_CATEGORY:_0x15d612}=await import(_0x3f759a(0x14a)),_0x3748fd=[{'name':_0x3f759a(0x17d),'category':_0x15d612['SYSTEM']},{'name':_0x3f759a(0x181),'category':_0x15d612[_0x3f759a(0x167)]},{'name':'analyze_code','category':_0x15d612['ANALYSIS']},{'name':'web_search','category':_0x15d612['UTILITY']},{'name':_0x3f759a(0x18c),'category':_0x15d612['AI']}],_0x482301=_0x3748fd[_0x3f759a(0x18d)](_0x21fa06=>_0x21fa06[_0x3f759a(0x151)]===_0x15d612[_0x3f759a(0x167)]),_0x1d9c02=_0x3748fd[_0x3f759a(0x18d)](_0x31a362=>_0x31a362['category']===_0x15d612['ANALYSIS']),_0x18cfab=_0x3748fd['filter'](_0x5962b8=>_0x5962b8['category']===_0x15d612[_0x3f759a(0x163)]),_0x46dd18=_0x3748fd[_0x3f759a(0x18d)](_0x5c5f85=>_0x5c5f85[_0x3f759a(0x151)]===_0x15d612['AI']);expect(_0x482301[_0x3f759a(0x16d)])[_0x3f759a(0x13b)](0x2),expect(_0x1d9c02[_0x3f759a(0x16d)])[_0x3f759a(0x13b)](0x1),expect(_0x18cfab['length'])[_0x3f759a(0x13b)](0x1),expect(_0x46dd18['length'])['toBe'](0x1),expect(_0x482301[0x0][_0x3f759a(0x165)])['toBe'](_0x3f759a(0x17d)),expect(_0x1d9c02[0x0]['name'])['toBe'](_0x3f759a(0x175));});}),describe(a0_0x3d0d11(0x149),()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x8855b6=a0_0x9d29,_0x4d2717=[{'name':_0x8855b6(0x156),'description':'Read\x20contents\x20of\x20a\x20file'},{'name':'write_file','description':'Write\x20data\x20to\x20a\x20file'},{'name':_0x8855b6(0x175),'description':_0x8855b6(0x153)}],_0x391c5f=_0x5c3a55=>{const _0x33951f=_0x8855b6,_0x29e6a8=_0x5c3a55[_0x33951f(0x157)]();return _0x4d2717[_0x33951f(0x18d)](_0x5b8993=>_0x5b8993[_0x33951f(0x165)]?.[_0x33951f(0x157)]()['includes'](_0x29e6a8)||_0x5b8993[_0x33951f(0x182)]?.['toLowerCase']()['includes'](_0x29e6a8));},_0x396ac5=_0x391c5f(_0x8855b6(0x150));expect(_0x396ac5['length'])['toBe'](0x2),expect(_0x396ac5['map'](_0x1b46a2=>_0x1b46a2[_0x8855b6(0x165)]))[_0x8855b6(0x18e)]('read_file'),expect(_0x396ac5[_0x8855b6(0x16e)](_0x3d8087=>_0x3d8087[_0x8855b6(0x165)]))[_0x8855b6(0x18e)](_0x8855b6(0x18a));const _0x54dbe2=_0x391c5f('analyze');expect(_0x54dbe2[_0x8855b6(0x16d)])['toBe'](0x1),expect(_0x54dbe2[0x0][_0x8855b6(0x165)])['toBe']('analyze_code');});}),describe(a0_0x3d0d11(0x17e),()=>{const _0x2e2143=a0_0x3d0d11;test(_0x2e2143(0x161),async()=>{const _0x5a3900=_0x2e2143,_0x538218=new Set();_0x538218['add']('read_file'),_0x538218[_0x5a3900(0x145)]('analyze_code'),expect(_0x538218[_0x5a3900(0x177)](_0x5a3900(0x156)))['toBe'](!![]),expect(_0x538218[_0x5a3900(0x177)](_0x5a3900(0x175)))['toBe'](!![]),expect(_0x538218[_0x5a3900(0x172)])['toBe'](0x2),_0x538218[_0x5a3900(0x141)]('read_file'),expect(_0x538218[_0x5a3900(0x177)](_0x5a3900(0x156)))['toBe'](![]),expect(_0x538218['has']('analyze_code'))['toBe'](!![]),expect(_0x538218[_0x5a3900(0x172)])['toBe'](0x1);}),test('Tool\x20results\x20can\x20be\x20stored\x20by\x20execution\x20ID',async()=>{const _0x49591f=_0x2e2143,_0x36340d=new Map();_0x36340d['set']('exec-1',{'success':!![],'data':_0x49591f(0x174)}),_0x36340d['set']('exec-2',{'success':!![],'data':{'issues':[]}}),expect(_0x36340d[_0x49591f(0x173)]('exec-1'))[_0x49591f(0x16f)](),expect(_0x36340d[_0x49591f(0x173)](_0x49591f(0x13c))['success'])['toBe'](!![]),expect(_0x36340d[_0x49591f(0x173)](_0x49591f(0x13c))[_0x49591f(0x186)])['toBe']('file\x20contents'),expect(_0x36340d[_0x49591f(0x173)](_0x49591f(0x17f)))[_0x49591f(0x16f)](),expect(_0x36340d['get'](_0x49591f(0x17f))[_0x49591f(0x186)][_0x49591f(0x15e)])[_0x49591f(0x147)]([]),expect(_0x36340d['size'])['toBe'](0x2);});}),describe(a0_0x3d0d11(0x18b),()=>{test('Tool\x20cache\x20supports\x20TTL-based\x20caching',async()=>{const _0x4b7f1a=a0_0x9d29,_0x409892=0x927c0;let _0x10d354=null,_0x560773=0x0;const _0x345719=[{'name':_0x4b7f1a(0x156)}];_0x10d354=_0x345719,_0x560773=Date[_0x4b7f1a(0x180)]();const _0x262e12=Date[_0x4b7f1a(0x180)](),_0xc4d423=_0x262e12-_0x560773<_0x409892;expect(_0xc4d423)['toBe'](!![]),expect(_0x10d354)[_0x4b7f1a(0x13b)](_0x345719);}),test('Tool\x20cache\x20expires\x20after\x20TTL',async()=>{const _0x35915b=a0_0x9d29,_0x2ecd87=0x64;let _0x306b56=null,_0x1f1130=0x0;const _0x4b5872=[{'name':'read_file'}];_0x306b56=_0x4b5872,_0x1f1130=Date['now'](),await new Promise(_0x36e7d9=>setTimeout(_0x36e7d9,0x96));const _0x12c216=Date['now'](),_0x47789a=_0x12c216-_0x1f1130<_0x2ecd87;expect(_0x47789a)[_0x35915b(0x13b)](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{const _0x309cb9=a0_0x3d0d11;test(_0x309cb9(0x183),async()=>{const _0x31582e=_0x309cb9,{TOOL_CATEGORY:_0x5001f4}=await import('../../config/constants.js'),_0x2862a3=[{'name':'execute_command','category':_0x5001f4[_0x31582e(0x167)],'enabled':!![]},{'name':_0x31582e(0x181),'category':_0x5001f4['SYSTEM'],'enabled':![]},{'name':_0x31582e(0x175),'category':_0x5001f4[_0x31582e(0x155)],'enabled':!![]}],_0x586785=_0x2a4c26=>{const _0xbe98cf=_0x31582e;let _0x322cd6=[..._0x2862a3];return _0x2a4c26[_0xbe98cf(0x151)]&&(_0x322cd6=_0x322cd6[_0xbe98cf(0x18d)](_0xecbb13=>_0xecbb13[_0xbe98cf(0x151)]===_0x2a4c26[_0xbe98cf(0x151)])),_0x2a4c26[_0xbe98cf(0x179)]!==undefined&&(_0x322cd6=_0x322cd6[_0xbe98cf(0x18d)](_0x9925e1=>_0x9925e1[_0xbe98cf(0x179)]===_0x2a4c26[_0xbe98cf(0x179)])),_0x322cd6;},_0x52e770=_0x586785({'category':_0x5001f4[_0x31582e(0x167)]});expect(_0x52e770['length'])['toBe'](0x2);const _0x5a4fd1=_0x586785({'enabled':!![]});expect(_0x5a4fd1['length'])['toBe'](0x2);const _0x3d90d4=_0x586785({'category':_0x5001f4['SYSTEM'],'enabled':!![]});expect(_0x3d90d4['length'])[_0x31582e(0x13b)](0x1),expect(_0x3d90d4[0x0]['name'])['toBe'](_0x31582e(0x17d));});}),describe(a0_0x3d0d11(0x168),()=>{const _0x265a90=a0_0x3d0d11;test(_0x265a90(0x169),async()=>{const _0x3f901f=_0x265a90,{TOOL_CATEGORY:_0x2bfb82}=await import(_0x3f901f(0x14a)),_0x393fe2=[{'name':'execute_command','category':_0x2bfb82['SYSTEM']},{'name':_0x3f901f(0x181),'category':_0x2bfb82['SYSTEM']},{'name':'analyze_code','category':_0x2bfb82[_0x3f901f(0x155)]},{'name':_0x3f901f(0x13d),'category':_0x2bfb82['UTILITY']}],_0x3d82ad=_0x5acfe3=>{const _0x3270e2=_0x3f901f,_0x482813={};for(const _0x51ec3c of Object['values'](_0x2bfb82)){_0x482813[_0x51ec3c]=_0x5acfe3[_0x3270e2(0x18d)](_0xa01b47=>_0xa01b47['category']===_0x51ec3c)['length'];}return _0x482813;},_0xf20796=_0x3d82ad(_0x393fe2);expect(_0xf20796[_0x2bfb82[_0x3f901f(0x167)]])[_0x3f901f(0x13b)](0x2),expect(_0xf20796[_0x2bfb82[_0x3f901f(0x155)]])[_0x3f901f(0x13b)](0x1),expect(_0xf20796[_0x2bfb82['UTILITY']])[_0x3f901f(0x13b)](0x1),expect(_0xf20796[_0x2bfb82['AUTOMATION']])['toBe'](0x0);});});
@@ -1 +1 @@
1
- const a0_0x294418=a0_0x41a9;(function(_0x2cb196,_0x11cc45){const _0x48b6ad=a0_0x41a9,_0x1c83ee=_0x2cb196();while(!![]){try{const _0x4fa122=-parseInt(_0x48b6ad(0xc0))/0x1+parseInt(_0x48b6ad(0xc9))/0x2+parseInt(_0x48b6ad(0xd2))/0x3*(parseInt(_0x48b6ad(0xd9))/0x4)+-parseInt(_0x48b6ad(0xbc))/0x5+parseInt(_0x48b6ad(0xcf))/0x6*(parseInt(_0x48b6ad(0xdc))/0x7)+parseInt(_0x48b6ad(0xcd))/0x8+-parseInt(_0x48b6ad(0xdb))/0x9;if(_0x4fa122===_0x11cc45)break;else _0x1c83ee['push'](_0x1c83ee['shift']());}catch(_0xafdaa1){_0x1c83ee['push'](_0x1c83ee['shift']());}}}(a0_0x25bf,0x808ad));function a0_0x41a9(_0x32a210,_0x1332da){_0x32a210=_0x32a210-0xbc;const _0x25bf67=a0_0x25bf();let _0x41a950=_0x25bf67[_0x32a210];if(a0_0x41a9['AyXPnl']===undefined){var _0xf6742b=function(_0x19b138){const _0x40127a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xfacad3='',_0x3605f5='';for(let _0x89f0cb=0x0,_0xc69cff,_0x3f0369,_0x51874b=0x0;_0x3f0369=_0x19b138['charAt'](_0x51874b++);~_0x3f0369&&(_0xc69cff=_0x89f0cb%0x4?_0xc69cff*0x40+_0x3f0369:_0x3f0369,_0x89f0cb++%0x4)?_0xfacad3+=String['fromCharCode'](0xff&_0xc69cff>>(-0x2*_0x89f0cb&0x6)):0x0){_0x3f0369=_0x40127a['indexOf'](_0x3f0369);}for(let _0x468812=0x0,_0x4dbd95=_0xfacad3['length'];_0x468812<_0x4dbd95;_0x468812++){_0x3605f5+='%'+('00'+_0xfacad3['charCodeAt'](_0x468812)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3605f5);};a0_0x41a9['ZaMjcQ']=_0xf6742b,a0_0x41a9['oCBvet']={},a0_0x41a9['AyXPnl']=!![];}const _0x4121fd=_0x25bf67[0x0],_0x495310=_0x32a210+_0x4121fd,_0x315fac=a0_0x41a9['oCBvet'][_0x495310];return!_0x315fac?(_0x41a950=a0_0x41a9['ZaMjcQ'](_0x41a950),a0_0x41a9['oCBvet'][_0x495310]=_0x41a950):_0x41a950=_0x315fac,_0x41a950;}function a0_0x25bf(){const _0x53d3a6=['C3rYAw5NAwz5','ufvu','Dg9tDhjPBMC','odaYntq5nM1hthfsza','Dg9vChbLCKnHC2u','mtK0odC2nffnsu1SDG','y2f0y2G','qMvHCMvYia','nJq4mJfnzfDnwMW','Cgf0y2G','yxbPs2v5','yMfZzvvYBa','C3rHDhvZvgv4Da','CMvXDwvZDa','zMv0y2G','ntjjrfn3Cuu','yM9KEq','mteYnZuZodbzDKrIBgK','mJfqAhDuvLO','mJq0odCYmffUEhzyBa','yNvPBgrizwfKzxjZ','Aw5JBhvKzxm','zgvSzxrL','nti3mdm3t2rwuNnH','z2v0qxbPs2v5','sfruuca','zxjYB3i','Bg9JywXOB3n0','BwvZC2fNzq','ue9tva','C3rHDhvZ','qxv0Ag9YAxPHDgLVBG','mta3ntmWmg1dzgXfwq'];a0_0x25bf=function(){return _0x53d3a6;};return a0_0x25bf();}import{ERROR_MESSAGE}from'../config/constants.js';export class ApiClient{constructor(_0xfacad3,_0x3605f5=null){const _0x5b42dd=a0_0x41a9;this[_0x5b42dd(0xd5)]=_0xfacad3,this['apiKey']=_0x3605f5;}['setApiKey'](_0x89f0cb){const _0x273185=a0_0x41a9;this[_0x273185(0xd4)]=_0x89f0cb;}[a0_0x294418(0xc1)](){return this['apiKey'];}['clearApiKey'](){const _0xd47ff6=a0_0x294418;this[_0xd47ff6(0xd4)]=null;}[a0_0x294418(0xbd)](_0xc69cff={}){const _0x44e50e=a0_0x294418,_0x3f0369={'Content-Type':'application/json',..._0xc69cff};return this[_0x44e50e(0xd4)]&&(_0x3f0369[_0x44e50e(0xc8)]=_0x44e50e(0xd1)+this['apiKey']),_0x3f0369;}async['request'](_0x51874b,_0x468812,_0x4dbd95={}){const _0x586aa2=a0_0x294418,{body:body=null,headers:headers={},query:query=null}=_0x4dbd95;let _0x3b97de=''+this['baseUrl']+_0x468812;if(query){const _0x458eef=new URLSearchParams(query)[_0x586aa2(0xcc)]();_0x3b97de+='?'+_0x458eef;}const _0x44ff8a={'method':_0x51874b,'headers':this['buildHeaders'](headers)};body&&[_0x586aa2(0xc6),_0x586aa2(0xcb),'PATCH']['includes'](_0x51874b[_0x586aa2(0xce)]())&&(_0x44ff8a[_0x586aa2(0xda)]=JSON[_0x586aa2(0xca)](body));try{const _0x287528=await fetch(_0x3b97de,_0x44ff8a),_0x2b2fc1=await _0x287528['json']()[_0x586aa2(0xd0)](()=>({}));if(!_0x287528['ok']){const _0x1c5e27=new Error(_0x2b2fc1[_0x586aa2(0xc3)]||_0x586aa2(0xc2)+_0x287528[_0x586aa2(0xc7)]+':\x20'+_0x287528[_0x586aa2(0xd6)]);_0x1c5e27[_0x586aa2(0xc7)]=_0x287528['status'],_0x1c5e27['response']=_0x2b2fc1;throw _0x1c5e27;}return _0x2b2fc1;}catch(_0x5b9414){if(_0x5b9414[_0x586aa2(0xc5)][_0x586aa2(0xbe)](_0x586aa2(0xd8))||_0x5b9414['name']==='TypeError'){const _0x3a989d=new Error(ERROR_MESSAGE['NETWORK_ERROR']+':\x20'+_0x5b9414['message']);_0x3a989d['originalError']=_0x5b9414;throw _0x3a989d;}throw _0x5b9414;}}async['get'](_0x1d705c,_0x28f9c0={}){const _0x14661d=a0_0x294418;return this[_0x14661d(0xd7)]('GET',_0x1d705c,_0x28f9c0);}async['post'](_0x924201,_0x29b649=null,_0x56e2f1={}){const _0x15994e=a0_0x294418;return this['request'](_0x15994e(0xc6),_0x924201,{..._0x56e2f1,'body':_0x29b649});}async['put'](_0x4e2b47,_0x2ec09e=null,_0x4ece33={}){const _0x3de804=a0_0x294418;return this[_0x3de804(0xd7)](_0x3de804(0xcb),_0x4e2b47,{..._0x4ece33,'body':_0x2ec09e});}async[a0_0x294418(0xd3)](_0x52e8af,_0x3dff5d=null,_0x52ef7c={}){return this['request']('PATCH',_0x52e8af,{..._0x52ef7c,'body':_0x3dff5d});}async[a0_0x294418(0xbf)](_0x533080,_0x4d5bc8={}){return this['request']('DELETE',_0x533080,_0x4d5bc8);}}export function createApiClient(_0x3cb4c1=a0_0x294418(0xc4),_0x3ccd06=0x1f90,_0x43b1bd=null){const _0x34a631='http://'+_0x3cb4c1+':'+_0x3ccd06;return new ApiClient(_0x34a631,_0x43b1bd);}export default ApiClient;
1
+ function a0_0x30ce(){const _0x50864d=['mJiXota0r0LMqMTQ','CMvXDwvZDa','nJy4mtqYu3DZwuLv','zMv0y2G','nNHJrfHJtq','yxbPs2v5','z2v0qxbPs2v5','mJmYq29HBxLH','mJqWnvDbzgzWwG','mZu3nti1n0n1vKXxDW','ufvu','CMvZCg9UC2u','zgvSzxrL','y2f0y2G','Ahr0CdOVlW','ANnVBG','C2v0qxbPs2v5','z2v0','BwvZC2fNzq','tKvuv09ss19fuLjpuG','C3rHDhvZ','nduYCvHzrwvW','yM9KEq','Aw5JBhvKzxm','yMfZzvvYBa','mtCZnZLIB2zJu1G','C3rYAw5NAwz5','mJC5oti1ExnesvDb','Cgf0y2G','mtu1mte5mdbwEuzhAgS'];a0_0x30ce=function(){return _0x50864d;};return a0_0x30ce();}const a0_0x52935b=a0_0x1afa;(function(_0x2be6e6,_0x55621d){const _0x1508da=a0_0x1afa,_0x166fbe=_0x2be6e6();while(!![]){try{const _0x465454=-parseInt(_0x1508da(0xda))/0x1+-parseInt(_0x1508da(0xc1))/0x2+-parseInt(_0x1508da(0xbf))/0x3+parseInt(_0x1508da(0xd4))/0x4*(parseInt(_0x1508da(0xc7))/0x5)+-parseInt(_0x1508da(0xc3))/0x6*(parseInt(_0x1508da(0xc8))/0x7)+-parseInt(_0x1508da(0xc6))/0x8*(parseInt(_0x1508da(0xd8))/0x9)+parseInt(_0x1508da(0xbe))/0xa;if(_0x465454===_0x55621d)break;else _0x166fbe['push'](_0x166fbe['shift']());}catch(_0x1eb07e){_0x166fbe['push'](_0x166fbe['shift']());}}}(a0_0x30ce,0x55a6d));import{ERROR_MESSAGE}from'../config/constants.js';export class ApiClient{constructor(_0x159ad8,_0x11ed90=null){const _0x368499=a0_0x1afa;this['baseUrl']=_0x159ad8,this[_0x368499(0xc4)]=_0x11ed90;}[a0_0x52935b(0xcf)](_0x2fc373){const _0x366738=a0_0x52935b;this[_0x366738(0xc4)]=_0x2fc373;}[a0_0x52935b(0xc5)](){return this['apiKey'];}['clearApiKey'](){this['apiKey']=null;}['buildHeaders'](_0x4f80a2={}){const _0x9db74b={'Content-Type':'application/json',..._0x4f80a2};return this['apiKey']&&(_0x9db74b['Authorization']='Bearer\x20'+this['apiKey']),_0x9db74b;}async[a0_0x52935b(0xc0)](_0x4d3109,_0x2146bc,_0x53f9f2={}){const _0x1ffe85=a0_0x52935b,{body:body=null,headers:headers={},query:query=null}=_0x53f9f2;let _0x5ef23f=''+this[_0x1ffe85(0xd7)]+_0x2146bc;if(query){const _0x93c064=new URLSearchParams(query)['toString']();_0x5ef23f+='?'+_0x93c064;}const _0x915ed={'method':_0x4d3109,'headers':this['buildHeaders'](headers)};body&&['POST',_0x1ffe85(0xc9),'PATCH'][_0x1ffe85(0xd6)](_0x4d3109['toUpperCase']())&&(_0x915ed[_0x1ffe85(0xd5)]=JSON[_0x1ffe85(0xd9)](body));try{const _0x541323=await fetch(_0x5ef23f,_0x915ed),_0x4321fe=await _0x541323[_0x1ffe85(0xce)]()[_0x1ffe85(0xcc)](()=>({}));if(!_0x541323['ok']){const _0x2430cf=new Error(_0x4321fe['error']||'HTTP\x20'+_0x541323['status']+':\x20'+_0x541323['statusText']);_0x2430cf[_0x1ffe85(0xd3)]=_0x541323[_0x1ffe85(0xd3)],_0x2430cf[_0x1ffe85(0xca)]=_0x4321fe;throw _0x2430cf;}return _0x4321fe;}catch(_0x4173f1){if(_0x4173f1[_0x1ffe85(0xd1)]['includes'](_0x1ffe85(0xc2))||_0x4173f1['name']==='TypeError'){const _0x192456=new Error(ERROR_MESSAGE[_0x1ffe85(0xd2)]+':\x20'+_0x4173f1[_0x1ffe85(0xd1)]);_0x192456['originalError']=_0x4173f1;throw _0x192456;}throw _0x4173f1;}}async[a0_0x52935b(0xd0)](_0x174be2,_0x4c4570={}){return this['request']('GET',_0x174be2,_0x4c4570);}async['post'](_0x6a3262,_0x2413c0=null,_0x53c1ed={}){const _0xd76d88=a0_0x52935b;return this[_0xd76d88(0xc0)]('POST',_0x6a3262,{..._0x53c1ed,'body':_0x2413c0});}async['put'](_0x1963af,_0x3cc83a=null,_0x274183={}){const _0x36c2c9=a0_0x52935b;return this[_0x36c2c9(0xc0)](_0x36c2c9(0xc9),_0x1963af,{..._0x274183,'body':_0x3cc83a});}async[a0_0x52935b(0xbd)](_0x5cf1c4,_0x29bcdd=null,_0x694a5a={}){const _0x2d27d7=a0_0x52935b;return this[_0x2d27d7(0xc0)]('PATCH',_0x5cf1c4,{..._0x694a5a,'body':_0x29bcdd});}async[a0_0x52935b(0xcb)](_0x53930a,_0x1aa542={}){return this['request']('DELETE',_0x53930a,_0x1aa542);}}function a0_0x1afa(_0xbc4892,_0x4db8d0){_0xbc4892=_0xbc4892-0xbd;const _0x30ce98=a0_0x30ce();let _0x1afa45=_0x30ce98[_0xbc4892];if(a0_0x1afa['wOgOls']===undefined){var _0x37ecb3=function(_0x1f64db){const _0x18e9bf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x159ad8='',_0x11ed90='';for(let _0x2fc373=0x0,_0x4f80a2,_0x9db74b,_0x4d3109=0x0;_0x9db74b=_0x1f64db['charAt'](_0x4d3109++);~_0x9db74b&&(_0x4f80a2=_0x2fc373%0x4?_0x4f80a2*0x40+_0x9db74b:_0x9db74b,_0x2fc373++%0x4)?_0x159ad8+=String['fromCharCode'](0xff&_0x4f80a2>>(-0x2*_0x2fc373&0x6)):0x0){_0x9db74b=_0x18e9bf['indexOf'](_0x9db74b);}for(let _0x2146bc=0x0,_0x53f9f2=_0x159ad8['length'];_0x2146bc<_0x53f9f2;_0x2146bc++){_0x11ed90+='%'+('00'+_0x159ad8['charCodeAt'](_0x2146bc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x11ed90);};a0_0x1afa['ODaaNq']=_0x37ecb3,a0_0x1afa['dsCasO']={},a0_0x1afa['wOgOls']=!![];}const _0x46ab5e=_0x30ce98[0x0],_0x4a8941=_0xbc4892+_0x46ab5e,_0x219b02=a0_0x1afa['dsCasO'][_0x4a8941];return!_0x219b02?(_0x1afa45=a0_0x1afa['ODaaNq'](_0x1afa45),a0_0x1afa['dsCasO'][_0x4a8941]=_0x1afa45):_0x1afa45=_0x219b02,_0x1afa45;}export function createApiClient(_0x15aa78='localhost',_0x284019=0x1f90,_0x38ca70=null){const _0x5640af=a0_0x52935b,_0x4038f4=_0x5640af(0xcd)+_0x15aa78+':'+_0x284019;return new ApiClient(_0x4038f4,_0x38ca70);}export default ApiClient;
@@ -1 +1 @@
1
- const a0_0x4dd00b=a0_0x1f16;(function(_0x1ef16b,_0xed7550){const _0x27e6c7=a0_0x1f16,_0x383780=_0x1ef16b();while(!![]){try{const _0x149c3d=-parseInt(_0x27e6c7(0x8f))/0x1*(parseInt(_0x27e6c7(0x72))/0x2)+-parseInt(_0x27e6c7(0x67))/0x3*(-parseInt(_0x27e6c7(0x84))/0x4)+parseInt(_0x27e6c7(0x7a))/0x5*(-parseInt(_0x27e6c7(0x86))/0x6)+parseInt(_0x27e6c7(0x6d))/0x7+parseInt(_0x27e6c7(0x74))/0x8+-parseInt(_0x27e6c7(0x6b))/0x9*(-parseInt(_0x27e6c7(0x89))/0xa)+-parseInt(_0x27e6c7(0x66))/0xb;if(_0x149c3d===_0xed7550)break;else _0x383780['push'](_0x383780['shift']());}catch(_0x15df15){_0x383780['push'](_0x383780['shift']());}}}(a0_0x3de9,0xf0411));import{EventEmitter}from'events';import{WS_MESSAGE_TYPE}from'../config/constants.js';export class MessageRouter extends EventEmitter{constructor(_0x4c20d3){const _0x28c977=a0_0x1f16;super(),this['ws']=_0x4c20d3,this['handlers']=new Map(),this[_0x28c977(0x88)]=[],this['ws']['on'](_0x28c977(0x7e),_0x40396f=>this['route'](_0x40396f)),this['registerDefaultHandlers']();}[a0_0x4dd00b(0x65)](){const _0x2f1608=a0_0x4dd00b;this['registerHandler'](WS_MESSAGE_TYPE['MESSAGE_ADDED'],_0x1fb4d5=>{const _0xe90a81=a0_0x1f16;this[_0xe90a81(0x7b)](_0xe90a81(0x8c),_0x1fb4d5[_0xe90a81(0x76)]);}),this[_0x2f1608(0x71)](WS_MESSAGE_TYPE['AGENT_MODE_CHANGED'],_0x30f91c=>{const _0x68962=_0x2f1608;this[_0x68962(0x7b)]('agent:mode_changed',_0x30f91c);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x2f1608(0x8a)],_0x35b30a=>{this['emit']('agent:execution_stopped',_0x35b30a['data']);}),this[_0x2f1608(0x71)](WS_MESSAGE_TYPE[_0x2f1608(0x8d)],_0x3c111b=>{this['emit']('agent:error',_0x3c111b);}),this[_0x2f1608(0x71)](WS_MESSAGE_TYPE['AGENT_WARNING'],_0x2a0865=>{this['emit']('agent:warning',_0x2a0865);}),this[_0x2f1608(0x71)](WS_MESSAGE_TYPE['AGENT_IMPORTED'],_0x3e2c4c=>{const _0x2d1e4c=_0x2f1608;this[_0x2d1e4c(0x7b)]('agent:imported',_0x3e2c4c[_0x2d1e4c(0x75)]);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0x15b1a9=>{const _0x1ace62=_0x2f1608;this[_0x1ace62(0x7b)]('agent:communication',_0x15b1a9['data']);}),this['registerHandler'](WS_MESSAGE_TYPE['COMPACTION_EVENT'],_0x46863e=>{this['emit']('conversation:compaction',_0x46863e['data']);}),this[_0x2f1608(0x71)](WS_MESSAGE_TYPE['IMAGE_RESULT'],_0x1bba94=>{const _0x2e939a=_0x2f1608;this['emit']('image:result',_0x1bba94[_0x2e939a(0x76)]);}),this[_0x2f1608(0x71)](WS_MESSAGE_TYPE[_0x2f1608(0x78)],_0x4abb35=>{const _0x221277=_0x2f1608;this[_0x221277(0x7b)]('image:generated',_0x4abb35[_0x221277(0x76)]);}),this['registerHandler'](WS_MESSAGE_TYPE['ERROR'],_0x28de2d=>{const _0x471206=_0x2f1608;this['emit'](_0x471206(0x7f),_0x28de2d);});}async['route'](_0x54623a){const _0x2573f1=a0_0x4dd00b;let processedMessage=_0x54623a;for(const _0x8703a of this['middleware']){try{processedMessage=await _0x8703a(processedMessage);if(!processedMessage)return;}catch(_0x480d6f){this['emit'](_0x2573f1(0x6c),{'error':_0x480d6f,'message':_0x54623a});return;}}const _0x201cab=processedMessage['type'];if(!_0x201cab){this['emit']('invalid_message',processedMessage);return;}if(this[_0x2573f1(0x70)]['has'](_0x201cab)){const _0x4b91dd=this[_0x2573f1(0x70)][_0x2573f1(0x68)](_0x201cab);try{await _0x4b91dd(processedMessage);}catch(_0x2f07f9){this[_0x2573f1(0x7b)]('handler_error',{'error':_0x2f07f9,'message':processedMessage,'messageType':_0x201cab});}}this['emit']('message:'+_0x201cab,processedMessage),this['emit']('message',processedMessage);}[a0_0x4dd00b(0x71)](_0x51cd4a,_0xa701c7){const _0x2b869a=a0_0x4dd00b;if(typeof _0xa701c7!==_0x2b869a(0x8e))throw new Error('Handler\x20must\x20be\x20a\x20function');this[_0x2b869a(0x70)][_0x2b869a(0x81)](_0x51cd4a,_0xa701c7);}['unregisterHandler'](_0x24546d){this['handlers']['delete'](_0x24546d);}[a0_0x4dd00b(0x82)](_0x3eca09){const _0x2fba47=a0_0x4dd00b;if(typeof _0x3eca09!==_0x2fba47(0x8e))throw new Error(_0x2fba47(0x80));this['middleware'][_0x2fba47(0x79)](_0x3eca09);}[a0_0x4dd00b(0x6e)](_0x1556c6){const _0x2669d0=a0_0x4dd00b,_0x61be8a=this[_0x2669d0(0x88)][_0x2669d0(0x69)](_0x1556c6);_0x61be8a>-0x1&&this[_0x2669d0(0x88)]['splice'](_0x61be8a,0x1);}[a0_0x4dd00b(0x7c)](){this['middleware']=[];}[a0_0x4dd00b(0x8b)](){const _0x1a7a2b=a0_0x4dd00b;return Array[_0x1a7a2b(0x6a)](this[_0x1a7a2b(0x70)][_0x1a7a2b(0x83)]());}[a0_0x4dd00b(0x7d)](_0x112585){const _0x4a45dc=a0_0x4dd00b;return this[_0x4a45dc(0x70)]['has'](_0x112585);}[a0_0x4dd00b(0x6f)](){const _0x2bf0b7=a0_0x4dd00b;this['handlers'][_0x2bf0b7(0x85)]();}['reset'](){const _0x5a2d5a=a0_0x4dd00b;this[_0x5a2d5a(0x6f)](),this[_0x5a2d5a(0x7c)](),this[_0x5a2d5a(0x65)]();}}export function loggingMiddleware(_0x1aa8e5=console['log']){return _0x30665b=>{const _0x3023f5=a0_0x1f16;return _0x1aa8e5('[MessageRouter]',_0x30665b[_0x3023f5(0x73)],_0x30665b),_0x30665b;};}export function filterMiddleware(_0x31443a){return _0x41e86a=>{const _0x35e653=a0_0x1f16;if(_0x31443a[_0x35e653(0x77)](_0x41e86a[_0x35e653(0x73)]))return _0x41e86a;return null;};}export function transformMiddleware(_0xc03f26){return async _0x48f671=>{return await _0xc03f26(_0x48f671);};}function a0_0x1f16(_0x18fdd7,_0xc644bc){_0x18fdd7=_0x18fdd7-0x65;const _0x3de95a=a0_0x3de9();let _0x1f16f6=_0x3de95a[_0x18fdd7];if(a0_0x1f16['qrdmdi']===undefined){var _0x11d799=function(_0xb2d801){const _0x5b783f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4c20d3='',_0x40396f='';for(let _0x1fb4d5=0x0,_0x30f91c,_0x35b30a,_0x3c111b=0x0;_0x35b30a=_0xb2d801['charAt'](_0x3c111b++);~_0x35b30a&&(_0x30f91c=_0x1fb4d5%0x4?_0x30f91c*0x40+_0x35b30a:_0x35b30a,_0x1fb4d5++%0x4)?_0x4c20d3+=String['fromCharCode'](0xff&_0x30f91c>>(-0x2*_0x1fb4d5&0x6)):0x0){_0x35b30a=_0x5b783f['indexOf'](_0x35b30a);}for(let _0x2a0865=0x0,_0x3e2c4c=_0x4c20d3['length'];_0x2a0865<_0x3e2c4c;_0x2a0865++){_0x40396f+='%'+('00'+_0x4c20d3['charCodeAt'](_0x2a0865)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x40396f);};a0_0x1f16['ncBKAa']=_0x11d799,a0_0x1f16['WoeDuZ']={},a0_0x1f16['qrdmdi']=!![];}const _0x3927cf=_0x3de95a[0x0],_0x3e0642=_0x18fdd7+_0x3927cf,_0x1747c3=a0_0x1f16['WoeDuZ'][_0x3e0642];return!_0x1747c3?(_0x1f16f6=a0_0x1f16['ncBKAa'](_0x1f16f6),a0_0x1f16['WoeDuZ'][_0x3e0642]=_0x1f16f6):_0x1f16f6=_0x1747c3,_0x1f16f6;}function a0_0x3de9(){const _0x540056=['twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','C2v0','DxnL','A2v5CW','mJr3vMHgwvm','y2XLyxi','mZGXodG5mLj1DgDNqq','Dg9ju09tDhjPBMC','BwLKzgXLD2fYzq','otCWwLngyKj5','rvHfq1vusu9ox1nut1bqruq','z2v0uMvNAxn0zxjLzfr5CgvZ','ywDLBNq6BwvZC2fNzv9HzgrLza','quDftLrFrvjst1i','zNvUy3rPB24','mtm0nJm1renutMLN','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','mJe1otmZntj6u2DUvxa','ody5mtu3zNvetvfH','z2v0','Aw5KzxHpzG','zNjVBq','mtaZndCZzNvssefw','BwLKzgXLD2fYzv9LCNjVCG','ndGXndy5ofnos1bztG','CMvTB3zLtwLKzgXLD2fYzq','y2XLyxjiyw5KBgvYCW','AgfUzgXLCNm','CMvNAxn0zxjiyw5KBgvY','mMTJwKT0qW','DhLWzq','mtqXnte0ng5Ay0vNAG','ywDLBNq','zgf0yq','Aw5JBhvKzxm','su1br0vFr0vorvjbveve','ChvZAa','nw51A1bYvq','zw1PDa','y2XLyxjnAwrKBgv3yxjL','AgfZsgfUzgXLCG','BwvZC2fNzq','zxjYB3i'];a0_0x3de9=function(){return _0x540056;};return a0_0x3de9();}export function timestampMiddleware(){return _0x2b1a4d=>{const _0x447e49=a0_0x1f16;return{..._0x2b1a4d,'receivedAt':new Date()[_0x447e49(0x87)]()};};}export function validationMiddleware(_0x39713b){return _0x49f5b9=>{if(_0x39713b(_0x49f5b9))return _0x49f5b9;throw new Error('Message\x20validation\x20failed');};}export default MessageRouter;
1
+ const a0_0x3d591d=a0_0x50a0;function a0_0x2495(){const _0x5e8d05=['zgf0yq','y2XLyxjnAwrKBgv3yxjL','CMvZzxq','Aw1Hz2u6z2vUzxjHDgvK','zw1PDa','CM91Dgu','AgfUzgXLCNm','DhLWzq','w01LC3nHz2vsB3v0zxjD','nteYnde4A3Pwv01Y','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','AgfZ','ywDLBNq6zxHLy3v0Aw9Ux3n0B3bWzwq','ywDLBNq6zxjYB3i','nwvNDNjMwG','mJu4otCZmNvyyKreDq','A2v5CW','mtmZnZyXmhHorNLTAG','C3bSAwnL','ndi3otjYu1Dduem','zNvUy3rPB24','mtaWmde1odbRA1bMC0q','Dg9ju09tDhjPBMC','rvHfq1vusu9ox1nut1bqruq','quDftLrFtu9erv9dsefor0ve','mJHAC1vIueu','mJeWmZi2qNDoCezq','zNjVBq','Aw5JBhvKzxm','ChvZAa','AgfUzgXLCL9LCNjVCG','y29UDMvYC2f0Aw9UoMnVBxbHy3rPB24','CMvNAxn0zxjiyw5KBgvY','BwLKzgXLD2fYzq','Aw52ywXPzf9TzxnZywDL','su1br0vFr0vorvjbveve','q09nuefdveLptL9fvKvova','nZa0ntK2rhj6zw1q','nhD3uffSBq','AgfZsgfUzgXLCG','ywDLBNq6Bw9Kzv9JAgfUz2vK','ywDLBNq6D2fYBMLUzW','zxjYB3i','BwvZC2fNztO','zgvSzxrL','CMvTB3zLtwLKzgXLD2fYzq'];a0_0x2495=function(){return _0x5e8d05;};return a0_0x2495();}(function(_0x3f668b,_0x40a030){const _0x3809a1=a0_0x50a0,_0x340fd1=_0x3f668b();while(!![]){try{const _0x52690d=-parseInt(_0x3809a1(0x185))/0x1+-parseInt(_0x3809a1(0x190))/0x2+-parseInt(_0x3809a1(0x1a2))/0x3*(parseInt(_0x3809a1(0x191))/0x4)+-parseInt(_0x3809a1(0x1a7))/0x5*(-parseInt(_0x3809a1(0x1aa))/0x6)+-parseInt(_0x3809a1(0x184))/0x7*(parseInt(_0x3809a1(0x1ac))/0x8)+-parseInt(_0x3809a1(0x1a8))/0x9+parseInt(_0x3809a1(0x1ae))/0xa;if(_0x52690d===_0x40a030)break;else _0x340fd1['push'](_0x340fd1['shift']());}catch(_0x1cda32){_0x340fd1['push'](_0x340fd1['shift']());}}}(a0_0x2495,0x2c127));import{EventEmitter}from'events';function a0_0x50a0(_0x5a619e,_0x366b3a){_0x5a619e=_0x5a619e-0x182;const _0x2495ad=a0_0x2495();let _0x50a0fc=_0x2495ad[_0x5a619e];if(a0_0x50a0['fSgnFx']===undefined){var _0x49ea34=function(_0x424c29){const _0x8a26a8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x277942='',_0x3b7057='';for(let _0x9b2c8b=0x0,_0x33a6ff,_0x31554a,_0x3646e4=0x0;_0x31554a=_0x424c29['charAt'](_0x3646e4++);~_0x31554a&&(_0x33a6ff=_0x9b2c8b%0x4?_0x33a6ff*0x40+_0x31554a:_0x31554a,_0x9b2c8b++%0x4)?_0x277942+=String['fromCharCode'](0xff&_0x33a6ff>>(-0x2*_0x9b2c8b&0x6)):0x0){_0x31554a=_0x8a26a8['indexOf'](_0x31554a);}for(let _0x4717f4=0x0,_0x37bdd8=_0x277942['length'];_0x4717f4<_0x37bdd8;_0x4717f4++){_0x3b7057+='%'+('00'+_0x277942['charCodeAt'](_0x4717f4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b7057);};a0_0x50a0['yuyTdF']=_0x49ea34,a0_0x50a0['JZnwnT']={},a0_0x50a0['fSgnFx']=!![];}const _0xc37fe6=_0x2495ad[0x0],_0x575e3c=_0x5a619e+_0xc37fe6,_0x32378f=a0_0x50a0['JZnwnT'][_0x575e3c];return!_0x32378f?(_0x50a0fc=a0_0x50a0['yuyTdF'](_0x50a0fc),a0_0x50a0['JZnwnT'][_0x575e3c]=_0x50a0fc):_0x50a0fc=_0x32378f,_0x50a0fc;}import{WS_MESSAGE_TYPE}from'../config/constants.js';export class MessageRouter extends EventEmitter{constructor(_0x277942){const _0x22df00=a0_0x50a0;super(),this['ws']=_0x277942,this['handlers']=new Map(),this['middleware']=[],this['ws']['on']('message',_0x3b7057=>this[_0x22df00(0x19e)](_0x3b7057)),this['registerDefaultHandlers']();}[a0_0x3d591d(0x1a3)](){const _0x40fbb3=a0_0x3d591d;this['registerHandler'](WS_MESSAGE_TYPE['MESSAGE_ADDED'],_0x9b2c8b=>{this['emit']('agent:message_added',_0x9b2c8b['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x40fbb3(0x183)],_0x33a6ff=>{const _0x55abec=_0x40fbb3;this[_0x55abec(0x19d)](_0x55abec(0x193),_0x33a6ff);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x40fbb3(0x182)],_0x31554a=>{const _0x378d25=_0x40fbb3;this['emit'](_0x378d25(0x1a5),_0x31554a['data']);}),this[_0x40fbb3(0x18b)](WS_MESSAGE_TYPE['AGENT_ERROR'],_0x3646e4=>{const _0x2af3af=_0x40fbb3;this['emit'](_0x2af3af(0x1a6),_0x3646e4);}),this[_0x40fbb3(0x18b)](WS_MESSAGE_TYPE['AGENT_WARNING'],_0x4717f4=>{const _0x56c79c=_0x40fbb3;this['emit'](_0x56c79c(0x194),_0x4717f4);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_IMPORTED'],_0x37bdd8=>{const _0x146892=_0x40fbb3;this[_0x146892(0x19d)]('agent:imported',_0x37bdd8['agent']);}),this[_0x40fbb3(0x18b)](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0x392ec7=>{const _0x221b9c=_0x40fbb3;this[_0x221b9c(0x19d)]('agent:communication',_0x392ec7[_0x221b9c(0x199)]);}),this[_0x40fbb3(0x18b)](WS_MESSAGE_TYPE[_0x40fbb3(0x18f)],_0x33a422=>{const _0x5b3d61=_0x40fbb3;this['emit'](_0x5b3d61(0x18a),_0x33a422[_0x5b3d61(0x199)]);}),this[_0x40fbb3(0x18b)](WS_MESSAGE_TYPE['IMAGE_RESULT'],_0x4e6a25=>{const _0x36dd60=_0x40fbb3;this[_0x36dd60(0x19d)]('image:result',_0x4e6a25['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x40fbb3(0x18e)],_0x1f998b=>{const _0x26ec1c=_0x40fbb3;this[_0x26ec1c(0x19d)](_0x26ec1c(0x19c),_0x1f998b[_0x26ec1c(0x199)]);}),this[_0x40fbb3(0x18b)](WS_MESSAGE_TYPE['ERROR'],_0xe88de1=>{const _0x59cabc=_0x40fbb3;this['emit'](_0x59cabc(0x195),_0xe88de1);});}async['route'](_0x56d38c){const _0x5563d7=a0_0x3d591d;let processedMessage=_0x56d38c;for(const _0x487c4b of this[_0x5563d7(0x18c)]){try{processedMessage=await _0x487c4b(processedMessage);if(!processedMessage)return;}catch(_0x528ac0){this[_0x5563d7(0x19d)]('middleware_error',{'error':_0x528ac0,'message':_0x56d38c});return;}}const _0x13f2c2=processedMessage[_0x5563d7(0x1a0)];if(!_0x13f2c2){this[_0x5563d7(0x19d)](_0x5563d7(0x18d),processedMessage);return;}if(this['handlers']['has'](_0x13f2c2)){const _0x2e814e=this[_0x5563d7(0x19f)]['get'](_0x13f2c2);try{await _0x2e814e(processedMessage);}catch(_0x3c1b96){this[_0x5563d7(0x19d)](_0x5563d7(0x189),{'error':_0x3c1b96,'message':processedMessage,'messageType':_0x13f2c2});}}this[_0x5563d7(0x19d)](_0x5563d7(0x196)+_0x13f2c2,processedMessage),this['emit']('message',processedMessage);}['registerHandler'](_0x4a8702,_0x40b7af){const _0x4057b0=a0_0x3d591d;if(typeof _0x40b7af!=='function')throw new Error('Handler\x20must\x20be\x20a\x20function');this[_0x4057b0(0x19f)]['set'](_0x4a8702,_0x40b7af);}['unregisterHandler'](_0x151de1){const _0x427e2e=a0_0x3d591d;this['handlers'][_0x427e2e(0x197)](_0x151de1);}['use'](_0x259005){const _0x646a47=a0_0x3d591d;if(typeof _0x259005!==_0x646a47(0x1ad))throw new Error('Middleware\x20must\x20be\x20a\x20function');this[_0x646a47(0x18c)][_0x646a47(0x188)](_0x259005);}[a0_0x3d591d(0x198)](_0x1c0f7d){const _0x1d8391=a0_0x3d591d,_0x321c78=this[_0x1d8391(0x18c)]['indexOf'](_0x1c0f7d);_0x321c78>-0x1&&this[_0x1d8391(0x18c)][_0x1d8391(0x1ab)](_0x321c78,0x1);}[a0_0x3d591d(0x19a)](){const _0x24620c=a0_0x3d591d;this[_0x24620c(0x18c)]=[];}['getRegisteredTypes'](){const _0xd4ad2b=a0_0x3d591d;return Array[_0xd4ad2b(0x186)](this[_0xd4ad2b(0x19f)][_0xd4ad2b(0x1a9)]());}[a0_0x3d591d(0x192)](_0x50910c){const _0x426a8d=a0_0x3d591d;return this[_0x426a8d(0x19f)][_0x426a8d(0x1a4)](_0x50910c);}['clearHandlers'](){this['handlers']['clear']();}[a0_0x3d591d(0x19b)](){const _0x4028de=a0_0x3d591d;this['clearHandlers'](),this['clearMiddleware'](),this[_0x4028de(0x1a3)]();}}export function loggingMiddleware(_0x550971=console['log']){return _0x4d6a93=>{const _0x31c4ae=a0_0x50a0;return _0x550971(_0x31c4ae(0x1a1),_0x4d6a93['type'],_0x4d6a93),_0x4d6a93;};}export function filterMiddleware(_0x2fa837){return _0x14d5a0=>{const _0x5f0fcc=a0_0x50a0;if(_0x2fa837[_0x5f0fcc(0x187)](_0x14d5a0[_0x5f0fcc(0x1a0)]))return _0x14d5a0;return null;};}export function transformMiddleware(_0x3bfc36){return async _0x11c585=>{return await _0x3bfc36(_0x11c585);};}export function timestampMiddleware(){return _0x121711=>{const _0x165853=a0_0x50a0;return{..._0x121711,'receivedAt':new Date()[_0x165853(0x1af)]()};};}export function validationMiddleware(_0x4a08f6){return _0xc59571=>{if(_0x4a08f6(_0xc59571))return _0xc59571;throw new Error('Message\x20validation\x20failed');};}export default MessageRouter;
@@ -1 +1 @@
1
- function a0_0x5811(){const _0x50e09d=['DgLTzxn0yw1W','r0vu','mZuZntuXoeT0BNrJDW','DxbKyxrLqwn0AxzPDhK','yxbPq2XPzw50','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CW','mtGXmJngq1bnvvC','u0vtu0LptL9jtLzbteLe','C2vZC2LVBKLK','DxbKyxrLzef0','zxjYB3i','nde3mgH0vxvuuW','yMfZzvvYBa','ue9tva','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CZOG','mZuYmZuXANLZEg9Z','C3vJy2vZCW','DMvUzg9Ys2v5CW','s0vzu19hrvq','Ag9ZDa','BgvUz3rO','ChjVAMvJDerPCG','CMvWBgfJzq','y2HLy2TizwfSDgG','Cg9YDa','BgfZDefJDgL2Axr5','Bg94AwfbCgLlzxK','rMfPBgvKihrVihnLDcbbueKGA2v5CW','C2vZC2LVBG','otmXmJqYnuLyu0DbAa','sevbtfri','zgvSzxrLqxbPs2v5CW','oNnLC3nPB25jza','mtmZotu1muLPuKjNrq','BwfRzvjLCxvLC3q','y3jLyxrLu2vZC2LVBG','u0vtu0LptL9duKvbvevFrKfjteve','y3DK','BwvZC2fNzq','z2v0u2vZC2LVBKLK','y3jLyxrLzef0','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CZOG','mZa2mJm2n3rrrfPUyW','ndbgq3Hiqxi','nJmYmdG4mhb1wMvdyq'];a0_0x5811=function(){return _0x50e09d;};return a0_0x5811();}const a0_0x445115=a0_0x5193;(function(_0x5c12ec,_0x472dbe){const _0x304023=a0_0x5193,_0x4f37ce=_0x5c12ec();while(!![]){try{const _0x1dec8e=parseInt(_0x304023(0x1f0))/0x1+-parseInt(_0x304023(0x1e3))/0x2+parseInt(_0x304023(0x1de))/0x3+-parseInt(_0x304023(0x1e0))/0x4+parseInt(_0x304023(0x1d1))/0x5+-parseInt(_0x304023(0x1ec))/0x6*(-parseInt(_0x304023(0x1e7))/0x7)+parseInt(_0x304023(0x1df))/0x8*(-parseInt(_0x304023(0x1d5))/0x9);if(_0x1dec8e===_0x472dbe)break;else _0x4f37ce['push'](_0x4f37ce['shift']());}catch(_0x58fc09){_0x4f37ce['push'](_0x4f37ce['shift']());}}}(a0_0x5811,0xe62d6));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';import{ApiClient}from'./apiClient.js';function a0_0x5193(_0x1e2774,_0x419d06){_0x1e2774=_0x1e2774-0x1cd;const _0x581168=a0_0x5811();let _0x519329=_0x581168[_0x1e2774];if(a0_0x5193['uRhaDK']===undefined){var _0xfc6be5=function(_0x3d8375){const _0x1df5cb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5ae61f='',_0x545936='';for(let _0xdf33bc=0x0,_0x5572a8,_0x5196e1,_0x3dcbe6=0x0;_0x5196e1=_0x3d8375['charAt'](_0x3dcbe6++);~_0x5196e1&&(_0x5572a8=_0xdf33bc%0x4?_0x5572a8*0x40+_0x5196e1:_0x5196e1,_0xdf33bc++%0x4)?_0x5ae61f+=String['fromCharCode'](0xff&_0x5572a8>>(-0x2*_0xdf33bc&0x6)):0x0){_0x5196e1=_0x1df5cb['indexOf'](_0x5196e1);}for(let _0x7d1bd=0x0,_0x533818=_0x5ae61f['length'];_0x7d1bd<_0x533818;_0x7d1bd++){_0x545936+='%'+('00'+_0x5ae61f['charCodeAt'](_0x7d1bd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x545936);};a0_0x5193['qnnEXO']=_0xfc6be5,a0_0x5193['KHbUhp']={},a0_0x5193['uRhaDK']=!![];}const _0x1e385a=_0x581168[0x0],_0x52f367=_0x1e2774+_0x1e385a,_0x7aa9c3=a0_0x5193['KHbUhp'][_0x52f367];return!_0x7aa9c3?(_0x519329=a0_0x5193['qnnEXO'](_0x519329),a0_0x5193['KHbUhp'][_0x52f367]=_0x519329):_0x519329=_0x7aa9c3,_0x519329;}export class SessionManager{constructor(_0x5ae61f=NETWORK['DEFAULT_HOST'],_0x545936=NETWORK['DEFAULT_PORT']){const _0x14e267=a0_0x5193;this[_0x14e267(0x1f4)]=_0x5ae61f,this[_0x14e267(0x1f9)]=_0x545936,this[_0x14e267(0x1ed)]='http://'+_0x5ae61f+':'+_0x545936,this['sessionId']=null,this['projectDir']=null,this[_0x14e267(0x1dc)]=null,this['lastActivity']=null,this['loxiaApiKey']=null,this['vendorKeys']={},this[_0x14e267(0x1e5)]=new ApiClient(this[_0x14e267(0x1ed)],this[_0x14e267(0x1ce)]);}async['createSession'](_0xdf33bc=process[a0_0x445115(0x1d9)]()){const _0x558732=a0_0x445115;try{const _0x5572a8=await this[_0x558732(0x1d6)](_0x558732(0x1ee),API_ENDPOINTS['SESSION_CREATE'],{'projectDir':_0xdf33bc});if(_0x5572a8['success']&&_0x5572a8['session'])return this[_0x558732(0x1e9)]=_0x5572a8[_0x558732(0x1d0)]['id'],this['projectDir']=_0xdf33bc,this[_0x558732(0x1dc)]=_0x5572a8[_0x558732(0x1d0)][_0x558732(0x1dc)],this[_0x558732(0x1cd)]=_0x5572a8[_0x558732(0x1d0)][_0x558732(0x1cd)],{'success':!![],'sessionId':this[_0x558732(0x1e9)],'session':_0x5572a8[_0x558732(0x1d0)]};else throw new Error(_0x5572a8[_0x558732(0x1eb)]||ERROR_MESSAGE[_0x558732(0x1d8)]);}catch(_0x5196e1){throw new Error(ERROR_MESSAGE['SESSION_CREATE_FAILED']+':\x20'+_0x5196e1['message']);}}async['setApiKeys'](_0x3dcbe6=null,_0x7d1bd={}){const _0x328ae3=a0_0x445115;if(!this['sessionId'])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x533818=await this[_0x328ae3(0x1d6)]('POST',API_ENDPOINTS['KEYS_SET'],{'sessionId':this['sessionId'],'loxiaApiKey':_0x3dcbe6,'vendorKeys':_0x7d1bd});if(_0x533818[_0x328ae3(0x1f1)])return this['loxiaApiKey']=_0x3dcbe6,this[_0x328ae3(0x1f2)]=_0x7d1bd,this[_0x328ae3(0x1e5)]['setApiKey'](_0x3dcbe6),{'success':!![],'message':_0x533818['message'],'hasLoxiaKey':_0x533818['hasLoxiaKey'],'vendorKeys':_0x533818['vendorKeys']};else throw new Error(_0x533818['error']||_0x328ae3(0x1cf));}catch(_0xde820d){throw new Error('Failed\x20to\x20set\x20API\x20keys:\x20'+_0xde820d[_0x328ae3(0x1da)]);}}async['getApiKeyStatus'](){const _0x3f4422=a0_0x445115;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0x3f4422(0x1e8)]);try{const _0x3ddaa7=API_ENDPOINTS[_0x3f4422(0x1f3)][_0x3f4422(0x1f7)](':sessionId',this[_0x3f4422(0x1e9)]),_0x197e6c=await this['makeRequest']('GET',_0x3ddaa7);if(_0x197e6c[_0x3f4422(0x1f1)])return{'success':!![],'hasLoxiaKey':_0x197e6c['hasLoxiaKey'],'vendorKeys':_0x197e6c[_0x3f4422(0x1f2)],'updatedAt':_0x197e6c[_0x3f4422(0x1ea)]};else throw new Error(_0x197e6c['error']||'Failed\x20to\x20get\x20API\x20key\x20status');}catch(_0x517872){throw new Error(_0x3f4422(0x1ef)+_0x517872[_0x3f4422(0x1da)]);}}async[a0_0x445115(0x1d3)](){const _0x13979d=a0_0x445115;if(!this['sessionId'])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x1f44d7=API_ENDPOINTS['KEYS_DELETE']['replace'](_0x13979d(0x1d4),this['sessionId']),_0x5157db=await this['makeRequest']('DELETE',_0x1f44d7);if(_0x5157db[_0x13979d(0x1f1)])return this['loxiaApiKey']=null,this[_0x13979d(0x1f2)]={},{'success':!![],'message':_0x5157db[_0x13979d(0x1da)]};else throw new Error(_0x5157db['error']||_0x13979d(0x1e6));}catch(_0x11733c){throw new Error(_0x13979d(0x1dd)+_0x11733c[_0x13979d(0x1da)]);}}async['initialize'](_0x562127=process['cwd']()){const _0x15a9b5=a0_0x445115;try{const _0x3c7d21=await this['checkHealth']();if(!_0x3c7d21['success'])throw new Error('Server\x20health\x20check\x20failed:\x20'+_0x3c7d21['error']);const _0x46a4f0=await this[_0x15a9b5(0x1d7)](_0x562127);return{'success':!![],'sessionId':_0x46a4f0['sessionId'],'session':_0x46a4f0[_0x15a9b5(0x1d0)]};}catch(_0x4b1fbc){return{'success':![],'error':_0x4b1fbc['message']};}}async[a0_0x445115(0x1f8)](){const _0x1e29bd=a0_0x445115;try{const _0x5c21bb=await this[_0x1e29bd(0x1d6)](_0x1e29bd(0x1e2),API_ENDPOINTS[_0x1e29bd(0x1d2)]);return{'success':!![],'status':_0x5c21bb['status'],'version':_0x5c21bb['version'],'timestamp':_0x5c21bb[_0x1e29bd(0x1e1)]};}catch(_0x5b30fd){return{'success':![],'error':_0x5b30fd['message']};}}async['makeRequest'](_0x4466ff,_0x2966db,_0x227984=null){const _0x58216a=a0_0x445115;return this[_0x58216a(0x1e5)]['request'](_0x4466ff,_0x2966db,{'body':_0x227984});}[a0_0x445115(0x1db)](){return this['sessionId'];}['getProjectDir'](){const _0x4e5f7c=a0_0x445115;return this[_0x4e5f7c(0x1f6)];}['isValid'](){return this['sessionId']!==null;}[a0_0x445115(0x1e4)](){const _0x1ac78a=a0_0x445115;this[_0x1ac78a(0x1cd)]=new Date()['toISOString']();}['getSessionInfo'](){const _0x35c91d=a0_0x445115;return{'sessionId':this['sessionId'],'projectDir':this['projectDir'],'createdAt':this[_0x35c91d(0x1dc)],'lastActivity':this[_0x35c91d(0x1cd)],'hasLoxiaKey':!!this[_0x35c91d(0x1ce)],'vendorKeysCount':Object['keys'](this['vendorKeys'])[_0x35c91d(0x1f5)]};}['clear'](){const _0x4daec=a0_0x445115;this['sessionId']=null,this['projectDir']=null,this['createdAt']=null,this['lastActivity']=null,this[_0x4daec(0x1ce)]=null,this['vendorKeys']={};}}export default SessionManager;
1
+ function a0_0x421b(_0x48b50f,_0x47fd23){_0x48b50f=_0x48b50f-0x1e5;const _0xe62d27=a0_0xe62d();let _0x421b12=_0xe62d27[_0x48b50f];if(a0_0x421b['eYGRZC']===undefined){var _0x352dfd=function(_0x3dbbf3){const _0x15be21='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3e7b7c='',_0x21397a='';for(let _0x14253b=0x0,_0x5cfac9,_0x28ac2c,_0x1c2be7=0x0;_0x28ac2c=_0x3dbbf3['charAt'](_0x1c2be7++);~_0x28ac2c&&(_0x5cfac9=_0x14253b%0x4?_0x5cfac9*0x40+_0x28ac2c:_0x28ac2c,_0x14253b++%0x4)?_0x3e7b7c+=String['fromCharCode'](0xff&_0x5cfac9>>(-0x2*_0x14253b&0x6)):0x0){_0x28ac2c=_0x15be21['indexOf'](_0x28ac2c);}for(let _0x57d3ca=0x0,_0x252a39=_0x3e7b7c['length'];_0x57d3ca<_0x252a39;_0x57d3ca++){_0x21397a+='%'+('00'+_0x3e7b7c['charCodeAt'](_0x57d3ca)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x21397a);};a0_0x421b['DHAAxS']=_0x352dfd,a0_0x421b['kuCAkp']={},a0_0x421b['eYGRZC']=!![];}const _0x57ecd6=_0xe62d27[0x0],_0x2fbe40=_0x48b50f+_0x57ecd6,_0x5b66d6=a0_0x421b['kuCAkp'][_0x2fbe40];return!_0x5b66d6?(_0x421b12=a0_0x421b['DHAAxS'](_0x421b12),a0_0x421b['kuCAkp'][_0x2fbe40]=_0x421b12):_0x421b12=_0x5b66d6,_0x421b12;}const a0_0x3088b7=a0_0x421b;function a0_0xe62d(){const _0xe4f32e=['y3jLyxrLzef0','u0vtu0LptL9duKvbvevFrKfjteve','zxjYB3i','z2v0u2vZC2LVBKLK','C2vZC2LVBKLK','u2vYDMvYigHLywX0AcbJAgvJAYbMywLSzwq6ia','z2v0uhjVAMvJDerPCG','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CZOG','revgqvvmvf9it1nu','rMfPBgvKihrVihnLDcbbueKGA2v5CW','Dg9ju09tDhjPBMC','s0vzu19trvq','C3vJy2vZCW','DxbKyxrLzef0','revgqvvmvf9qt1ju','AxnwywXPza','Ahr0CdOVlW','ndyYnJK5uwnMseHQ','nM9nCKPPBW','BwfRzvjLCxvLC3q','y2HLy2TizwfSDgG','odHRrvbrDxe','CMvWBgfJzq','mJy5nJaWC0Touxbm','y2XLyxi','mtfYvgX3z3u','mJmYmtLOD0rKuhO','C2v0qxbPs2v5','yxbPq2XPzw50','mZK2mdiZmfH6A0fxDa','ue9tva','revmrvrf','CMvXDwvZDa','C2vZC2LVBG','mti0otCXvhryrgXT','s0vzu19hrvq','r0vu','BgfZDefJDgL2Axr5','ChjVAMvJDerPCG','u0vtu0LptL9jtLzbteLe','nZC0mte1ze1NAhDK','DMvYC2LVBG','nZK0nZnIvgPNy2O','DMvUzg9Ys2v5CW','mNviCuXhEq','Cg9YDa','BwvZC2fNzq','AgfZtg94AwflzxK','y3DK','oNnLC3nPB25jza','BgvUz3rO','Bg94AwfbCgLlzxK','rMfPBgvKihrVihnLDcbbueKGA2v5CZOG','y3jLyxrLu2vZC2LVBG'];a0_0xe62d=function(){return _0xe4f32e;};return a0_0xe62d();}(function(_0x2aa934,_0x3a59a2){const _0x11e7fb=a0_0x421b,_0x1e441d=_0x2aa934();while(!![]){try{const _0x5a5aef=-parseInt(_0x11e7fb(0x1e8))/0x1+parseInt(_0x11e7fb(0x1f2))/0x2*(-parseInt(_0x11e7fb(0x1f0))/0x3)+-parseInt(_0x11e7fb(0x213))/0x4+-parseInt(_0x11e7fb(0x1ee))/0x5*(parseInt(_0x11e7fb(0x20e))/0x6)+parseInt(_0x11e7fb(0x216))/0x7*(parseInt(_0x11e7fb(0x211))/0x8)+parseInt(_0x11e7fb(0x20d))/0x9+-parseInt(_0x11e7fb(0x219))/0xa*(-parseInt(_0x11e7fb(0x215))/0xb);if(_0x5a5aef===_0x3a59a2)break;else _0x1e441d['push'](_0x1e441d['shift']());}catch(_0x4c21ec){_0x1e441d['push'](_0x1e441d['shift']());}}}(a0_0xe62d,0x1ae9c));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';import{ApiClient}from'./apiClient.js';export class SessionManager{constructor(_0x3e7b7c=NETWORK[a0_0x3088b7(0x204)],_0x21397a=NETWORK[a0_0x3088b7(0x20a)]){const _0x26ac12=a0_0x3088b7;this['host']=_0x3e7b7c,this[_0x26ac12(0x1f3)]=_0x21397a,this['baseUrl']=_0x26ac12(0x20c)+_0x3e7b7c+':'+_0x21397a,this['sessionId']=null,this[_0x26ac12(0x1ec)]=null,this['createdAt']=null,this[_0x26ac12(0x1eb)]=null,this['loxiaApiKey']=null,this[_0x26ac12(0x1f1)]={},this[_0x26ac12(0x218)]=new ApiClient(this['baseUrl'],this['loxiaApiKey']);}async[a0_0x3088b7(0x1fb)](_0x14253b=process['cwd']()){const _0x3fd7fc=a0_0x3088b7;try{const _0x5cfac9=await this['makeRequest'](_0x3fd7fc(0x21a),API_ENDPOINTS['SESSION_CREATE'],{'projectDir':_0x14253b});if(_0x5cfac9[_0x3fd7fc(0x208)]&&_0x5cfac9['session'])return this['sessionId']=_0x5cfac9['session']['id'],this[_0x3fd7fc(0x1ec)]=_0x14253b,this['createdAt']=_0x5cfac9[_0x3fd7fc(0x1e7)][_0x3fd7fc(0x1fc)],this[_0x3fd7fc(0x1eb)]=_0x5cfac9['session']['lastActivity'],{'success':!![],'sessionId':this[_0x3fd7fc(0x200)],'session':_0x5cfac9['session']};else throw new Error(_0x5cfac9[_0x3fd7fc(0x1fe)]||ERROR_MESSAGE[_0x3fd7fc(0x1fd)]);}catch(_0x28ac2c){throw new Error(ERROR_MESSAGE[_0x3fd7fc(0x1fd)]+':\x20'+_0x28ac2c['message']);}}async['setApiKeys'](_0x1c2be7=null,_0x57d3ca={}){const _0x743ac0=a0_0x3088b7;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0x743ac0(0x1ed)]);try{const _0x252a39=await this[_0x743ac0(0x20f)]('POST',API_ENDPOINTS[_0x743ac0(0x207)],{'sessionId':this['sessionId'],'loxiaApiKey':_0x1c2be7,'vendorKeys':_0x57d3ca});if(_0x252a39[_0x743ac0(0x208)])return this[_0x743ac0(0x1f9)]=_0x1c2be7,this[_0x743ac0(0x1f1)]=_0x57d3ca,this['apiClient'][_0x743ac0(0x217)](_0x1c2be7),{'success':!![],'message':_0x252a39['message'],'hasLoxiaKey':_0x252a39[_0x743ac0(0x1f5)],'vendorKeys':_0x252a39['vendorKeys']};else throw new Error(_0x252a39['error']||_0x743ac0(0x205));}catch(_0x3db42d){throw new Error(_0x743ac0(0x1fa)+_0x3db42d['message']);}}async['getApiKeyStatus'](){const _0x27bbaf=a0_0x3088b7;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0x27bbaf(0x1ed)]);try{const _0x522254=API_ENDPOINTS[_0x27bbaf(0x1e9)]['replace'](_0x27bbaf(0x1f7),this[_0x27bbaf(0x200)]),_0x3bf821=await this[_0x27bbaf(0x20f)]('GET',_0x522254);if(_0x3bf821[_0x27bbaf(0x208)])return{'success':!![],'hasLoxiaKey':_0x3bf821[_0x27bbaf(0x1f5)],'vendorKeys':_0x3bf821['vendorKeys'],'updatedAt':_0x3bf821[_0x27bbaf(0x209)]};else throw new Error(_0x3bf821[_0x27bbaf(0x1fe)]||'Failed\x20to\x20get\x20API\x20key\x20status');}catch(_0x12d55e){throw new Error('Failed\x20to\x20get\x20API\x20key\x20status:\x20'+_0x12d55e[_0x27bbaf(0x1f4)]);}}async['deleteApiKeys'](){const _0x206da1=a0_0x3088b7;if(!this[_0x206da1(0x200)])throw new Error(ERROR_MESSAGE[_0x206da1(0x1ed)]);try{const _0x5e0e48=API_ENDPOINTS['KEYS_DELETE'][_0x206da1(0x212)](_0x206da1(0x1f7),this['sessionId']),_0x1aa95f=await this['makeRequest'](_0x206da1(0x1e5),_0x5e0e48);if(_0x1aa95f['success'])return this[_0x206da1(0x1f9)]=null,this['vendorKeys']={},{'success':!![],'message':_0x1aa95f[_0x206da1(0x1f4)]};else throw new Error(_0x1aa95f['error']||'Failed\x20to\x20delete\x20API\x20keys');}catch(_0x5625a7){throw new Error(_0x206da1(0x203)+_0x5625a7[_0x206da1(0x1f4)]);}}async['initialize'](_0x23c0e1=process[a0_0x3088b7(0x1f6)]()){const _0x5189d5=a0_0x3088b7;try{const _0x1cc232=await this['checkHealth']();if(!_0x1cc232['success'])throw new Error(_0x5189d5(0x201)+_0x1cc232[_0x5189d5(0x1fe)]);const _0x3bd04c=await this['createSession'](_0x23c0e1);return{'success':!![],'sessionId':_0x3bd04c[_0x5189d5(0x200)],'session':_0x3bd04c['session']};}catch(_0x2bbf03){return{'success':![],'error':_0x2bbf03[_0x5189d5(0x1f4)]};}}async[a0_0x3088b7(0x210)](){const _0x702202=a0_0x3088b7;try{const _0x2b79a2=await this[_0x702202(0x20f)](_0x702202(0x1ea),API_ENDPOINTS['HEALTH']);return{'success':!![],'status':_0x2b79a2['status'],'version':_0x2b79a2[_0x702202(0x1ef)],'timestamp':_0x2b79a2['timestamp']};}catch(_0x5c9afb){return{'success':![],'error':_0x5c9afb[_0x702202(0x1f4)]};}}async['makeRequest'](_0x10f3e6,_0x32b042,_0x2eec0b=null){const _0x43240e=a0_0x3088b7;return this['apiClient'][_0x43240e(0x1e6)](_0x10f3e6,_0x32b042,{'body':_0x2eec0b});}[a0_0x3088b7(0x1ff)](){const _0x319f59=a0_0x3088b7;return this[_0x319f59(0x200)];}[a0_0x3088b7(0x202)](){return this['projectDir'];}[a0_0x3088b7(0x20b)](){const _0x514e33=a0_0x3088b7;return this[_0x514e33(0x200)]!==null;}['updateActivity'](){const _0x527256=a0_0x3088b7;this['lastActivity']=new Date()[_0x527256(0x206)]();}['getSessionInfo'](){const _0x48c2a0=a0_0x3088b7;return{'sessionId':this['sessionId'],'projectDir':this[_0x48c2a0(0x1ec)],'createdAt':this['createdAt'],'lastActivity':this['lastActivity'],'hasLoxiaKey':!!this['loxiaApiKey'],'vendorKeysCount':Object['keys'](this['vendorKeys'])[_0x48c2a0(0x1f8)]};}[a0_0x3088b7(0x214)](){const _0x374827=a0_0x3088b7;this[_0x374827(0x200)]=null,this[_0x374827(0x1ec)]=null,this[_0x374827(0x1fc)]=null,this[_0x374827(0x1eb)]=null,this['loxiaApiKey']=null,this['vendorKeys']={};}}export default SessionManager;
@@ -1 +1 @@
1
- const a0_0x42fe4f=a0_0x2218;(function(_0x49912c,_0x4a7d5d){const _0x5c96c1=a0_0x2218,_0xb5036b=_0x49912c();while(!![]){try{const _0x14f9c3=parseInt(_0x5c96c1(0x189))/0x1+-parseInt(_0x5c96c1(0x185))/0x2+-parseInt(_0x5c96c1(0x1b8))/0x3*(-parseInt(_0x5c96c1(0x1a4))/0x4)+parseInt(_0x5c96c1(0x1b4))/0x5+parseInt(_0x5c96c1(0x19a))/0x6*(parseInt(_0x5c96c1(0x18e))/0x7)+parseInt(_0x5c96c1(0x1a1))/0x8+parseInt(_0x5c96c1(0x1c8))/0x9*(-parseInt(_0x5c96c1(0x196))/0xa);if(_0x14f9c3===_0x4a7d5d)break;else _0xb5036b['push'](_0xb5036b['shift']());}catch(_0xf576b7){_0xb5036b['push'](_0xb5036b['shift']());}}}(a0_0x1c30,0xc1ffc));function a0_0x1c30(){const _0x2d2d44=['u0vtu0LptL9kt0Loruq','CMvXlq','Cg9YDa','CxvLDwvFChjVy2vZC19LCNjVCG','zgvSzxrL','mtHuBMLgwhe','AgfUzgXLt3bLBG','C2vUzfbPBMC','B3bLBG','sfruuf9usu1ft1vu','CMvJB25Uzwn0vgLTzxi','C2HVDwXKuMvJB25Uzwn0','CMvJB25Uzwn0qxr0zw1WDhm','C2vZC2LVBKLK','z2v0u2vZC2LVBKLK','qwXYzwfKEsbJB25Uzwn0zwqGB3iGy29UBMvJDgLUzW','CMvXDwvZDeLKq291BNrLCG','BM93','zgLZy29UBMvJDa','C3rHDgu','y2XLyw51Ca','ota4nta2u1DMuLnA','CMvJB25Uzwn0rgvSyxK','sK9jtL9trvntsu9o','AgfUzgXLq29UBMvJDgLVBKvYCM9Y','oda5ndu4D3vNEwPy','z2v0u3rHDhm','AgfUzgXLug9Uz1rPBwvVDxq','AgfUzgXLug9UzW','BwvZC2fNzvf1zxvL','n0rWC29tEq','Cg9Uz1rPBwvVDxq','revgqvvmvf9it1nu','v0vcu09ds0vux1jfq09otKvdvf9nqvHFrevmqvK','ue9orW','q09otKvdveve','CgLUz0LUDgvYDMfS','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','mte1mti5nZbbv0rsuum','C2v0u3rHDgu','Dg9tDhjPBMC','yMfZzvjLy29UBMvJDerLBgf5','mZCWntCWogXxDM1VwG','ChvZAa','v0vcu09ds0vux1jfq09otKvdvf9nvuXusvbmsuvs','y29UBMvJDgLVBL9LCNjVCG','C3rVCeHLyxj0yMvHDa','DhLWzq','y29UBMvJDgLUzW','nZi3mdy0mg9gshPVuW','rvjst1i','BwvZC2fNzq','mZjwrhjLq08','CgvUzgLUz1jLCxvLC3rZ','AxndB25Uzwn0zwq','ChjVy2vZC01LC3nHz2vrDwv1zq','AgvHCNrIzwf0sw50zxj2ywW','AgfUzgXLtwvZC2fNzq','z2vUzxjHDgvszxf1zxn0swq','AgfUzgXLq2XVC2u','C3rHCNrizwfYDgjLyxq','CMvTB3zLqwXStgLZDgvUzxjZ','Ag9ZDa','v0vcu09ds0vux1bptKDFveLnru9vva','C2L6zq','reLtq09otKvdveve','AM9PBLnLC3nPB24','C2HPzNq','nti0nJi0nxLpt0Lkrq','zw1PDa','C2nOzwr1BgvszwnVBM5Ly3q','AgfUzgXLt3jJAgvZDhjHDg9YuMvZCg9UC2u','nJiZnJDPExHhvK4','BgfZDfbVBMDszwnLAxzLza','BwLU','zxjYB3i','DxjS','ueLorW','C2vUza','AgfZ','B25Jzq','BgvUz3rO','t1jdsevtvfjbve9sx1jfuvvfu1q'];a0_0x1c30=function(){return _0x2d2d44;};return a0_0x1c30();}function a0_0x2218(_0x12fab6,_0x33f1ed){_0x12fab6=_0x12fab6-0x181;const _0x1c30b2=a0_0x1c30();let _0x22183a=_0x1c30b2[_0x12fab6];if(a0_0x2218['WGerHH']===undefined){var _0x503087=function(_0x4fe296){const _0x1edcd9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xfe3591='',_0xf9f19f='';for(let _0x497ede=0x0,_0x1f84b4,_0x388eaa,_0x15ce9b=0x0;_0x388eaa=_0x4fe296['charAt'](_0x15ce9b++);~_0x388eaa&&(_0x1f84b4=_0x497ede%0x4?_0x1f84b4*0x40+_0x388eaa:_0x388eaa,_0x497ede++%0x4)?_0xfe3591+=String['fromCharCode'](0xff&_0x1f84b4>>(-0x2*_0x497ede&0x6)):0x0){_0x388eaa=_0x1edcd9['indexOf'](_0x388eaa);}for(let _0x3d5403=0x0,_0xbee6e4=_0xfe3591['length'];_0x3d5403<_0xbee6e4;_0x3d5403++){_0xf9f19f+='%'+('00'+_0xfe3591['charCodeAt'](_0x3d5403)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xf9f19f);};a0_0x2218['UbyIwS']=_0x503087,a0_0x2218['vbjMhy']={},a0_0x2218['WGerHH']=!![];}const _0x21dc12=_0x1c30b2[0x0],_0x1a67e3=_0x12fab6+_0x21dc12,_0x118b9a=a0_0x2218['vbjMhy'][_0x1a67e3];return!_0x118b9a?(_0x22183a=a0_0x2218['UbyIwS'](_0x22183a),a0_0x2218['vbjMhy'][_0x1a67e3]=_0x22183a):_0x22183a=_0x118b9a,_0x22183a;}import a0_0xfe3591 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(_0xf9f19f=NETWORK[a0_0x42fe4f(0x190)],_0x497ede=NETWORK['DEFAULT_PORT'],_0x1f84b4={}){const _0x4c8713=a0_0x42fe4f;super(),this[_0x4c8713(0x1ae)]=_0xf9f19f,this[_0x4c8713(0x1c5)]=_0x497ede,this[_0x4c8713(0x1bc)]='ws://'+_0xf9f19f+':'+_0x497ede,this['ws']=null,this['state']=CONNECTION_STATE['DISCONNECTED'],this['sessionId']=null,this[_0x4c8713(0x1cf)]=0x0,this['reconnectDelay']=_0x1f84b4[_0x4c8713(0x186)]??TIMING[_0x4c8713(0x195)],this['baseReconnectDelay']=this[_0x4c8713(0x186)],this['reconnectTimer']=null,this[_0x4c8713(0x1ce)]=!![],this[_0x4c8713(0x1a8)]=_0x1f84b4[_0x4c8713(0x1a8)]??TIMING['WEBSOCKET_PING_INTERVAL'],this[_0x4c8713(0x194)]=null,this[_0x4c8713(0x18f)]=null,this[_0x4c8713(0x1b9)]=null,this[_0x4c8713(0x18d)]=[],this[_0x4c8713(0x1d3)]=0x0,this['pendingRequests']=new Map();}async['connect'](){const _0x4bc853=a0_0x42fe4f;if(this['state']===CONNECTION_STATE[_0x4bc853(0x193)]||this[_0x4bc853(0x183)]===CONNECTION_STATE['CONNECTING'])return{'success':![],'error':_0x4bc853(0x1d2)};this['setState'](CONNECTION_STATE['CONNECTING']),this[_0x4bc853(0x1b5)](_0x4bc853(0x1a0));try{return this['ws']=new a0_0xfe3591(this[_0x4bc853(0x1bc)]),this['setupEventHandlers'](),await this['waitForConnection'](),{'success':!![]};}catch(_0x388eaa){return this[_0x4bc853(0x188)](_0x388eaa),{'success':![],'error':_0x388eaa[_0x4bc853(0x1a3)]};}}['waitForConnection'](){return new Promise((_0x15ce9b,_0x3d5403)=>{const _0x87583f=a0_0x2218,_0xbee6e4=setTimeout(()=>{_0x3d5403(new Error('Connection\x20timeout'));},TIMING['WEBSOCKET_CONNECT_TIMEOUT']);this['ws']['once'](_0x87583f(0x1cb),()=>{clearTimeout(_0xbee6e4),_0x15ce9b();}),this['ws'][_0x87583f(0x1c0)](_0x87583f(0x1bb),_0x271e21=>{clearTimeout(_0xbee6e4),_0x3d5403(_0x271e21);});});}['setupEventHandlers'](){const _0x3f56af=a0_0x42fe4f;this['ws']['on']('open',()=>this['handleOpen']()),this['ws']['on']('message',_0x2f01ca=>this[_0x3f56af(0x1a9)](_0x2f01ca)),this['ws']['on']('close',(_0x2635ad,_0x9ed020)=>this['handleClose'](_0x2635ad,_0x9ed020)),this['ws']['on'](_0x3f56af(0x1bb),_0x59b654=>this['handleError'](_0x59b654));}[a0_0x42fe4f(0x1c9)](){const _0x55d8ad=a0_0x42fe4f;this[_0x55d8ad(0x197)](CONNECTION_STATE['CONNECTED']),this[_0x55d8ad(0x1cf)]=0x0,this['reconnectDelay']=this[_0x55d8ad(0x199)],this['emit']('connected'),this[_0x55d8ad(0x1ac)](),this[_0x55d8ad(0x1a7)]();}[a0_0x42fe4f(0x1a9)](_0x369dac){const _0x5cfd8f=a0_0x42fe4f;try{const _0x40044e=JSON['parse'](_0x369dac[_0x5cfd8f(0x198)]());if(_0x40044e[_0x5cfd8f(0x19f)]===WS_MESSAGE_TYPE[_0x5cfd8f(0x192)]){this[_0x5cfd8f(0x18c)]();return;}if(_0x40044e[_0x5cfd8f(0x19f)]===WS_MESSAGE_TYPE['CONNECTED']){this[_0x5cfd8f(0x1b5)]('welcome',_0x40044e);return;}if(_0x40044e[_0x5cfd8f(0x19f)]===WS_MESSAGE_TYPE[_0x5cfd8f(0x1c3)]){this[_0x5cfd8f(0x1d0)]=_0x40044e[_0x5cfd8f(0x1d0)],this[_0x5cfd8f(0x1b5)]('session_joined',_0x40044e);return;}if(_0x40044e['type']===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this[_0x5cfd8f(0x1b7)](_0x40044e);return;}this[_0x5cfd8f(0x1b5)]('message',_0x40044e),_0x40044e['type']&&this['emit'](_0x40044e['type'],_0x40044e);}catch(_0x1929a2){this[_0x5cfd8f(0x1b5)]('parse_error',{'error':_0x1929a2,'data':_0x369dac});}}[a0_0x42fe4f(0x1ab)](_0x269515,_0x52202a){const _0x5e14c3=a0_0x42fe4f;this[_0x5e14c3(0x184)]();const _0x404be1=_0x52202a[_0x5e14c3(0x198)]()||'Unknown\x20reason';this['emit']('disconnected',{'code':_0x269515,'reason':_0x404be1}),this[_0x5e14c3(0x1ce)]&&_0x269515!==0x3e8?this['scheduleReconnect']():this[_0x5e14c3(0x197)](CONNECTION_STATE['DISCONNECTED']);}['handleError'](_0x1795a3){const _0x58e9f6=a0_0x42fe4f;this[_0x58e9f6(0x1b5)](_0x58e9f6(0x1bb),_0x1795a3);}['handleConnectionError'](_0x1834de){const _0x17c944=a0_0x42fe4f;this['setState'](CONNECTION_STATE[_0x17c944(0x1a2)]),this['emit'](_0x17c944(0x19d),_0x1834de),this['shouldReconnect']&&this[_0x17c944(0x1b6)]();}['scheduleReconnect'](){const _0x5d185a=a0_0x42fe4f;if(this['reconnectTimer'])return;this[_0x5d185a(0x197)](CONNECTION_STATE['RECONNECTING']),this[_0x5d185a(0x1cf)]++;const _0x966caf=Math[_0x5d185a(0x1ba)](this['reconnectDelay']*Math['pow'](TIMING[_0x5d185a(0x19c)],this[_0x5d185a(0x1cf)]-0x1),TIMING[_0x5d185a(0x191)]);this['emit']('reconnecting',{'attempt':this['reconnectAttempts'],'delay':_0x966caf}),this[_0x5d185a(0x1cd)]=setTimeout(()=>{const _0x3efdfc=_0x5d185a;this[_0x3efdfc(0x1cd)]=null,this['connect']();},_0x966caf);}[a0_0x42fe4f(0x1ac)](){const _0xe77898=a0_0x42fe4f;this[_0xe77898(0x19e)](),this[_0xe77898(0x194)]=setInterval(()=>{const _0x5a1003=_0xe77898;this[_0x5a1003(0x183)]===CONNECTION_STATE['CONNECTED']&&this[_0x5a1003(0x1ca)]();},this['heartbeatInterval']);}[a0_0x42fe4f(0x19e)](){const _0x2f6f1b=a0_0x42fe4f;this[_0x2f6f1b(0x194)]&&(clearInterval(this['pingInterval']),this[_0x2f6f1b(0x194)]=null),this[_0x2f6f1b(0x18f)]&&(clearTimeout(this[_0x2f6f1b(0x18f)]),this[_0x2f6f1b(0x18f)]=null);}[a0_0x42fe4f(0x1ca)](){const _0x137dd5=a0_0x42fe4f;if(this['state']!==CONNECTION_STATE['CONNECTED'])return;try{this['send']({'type':WS_MESSAGE_TYPE[_0x137dd5(0x1bd)]}),this['pongTimeout']=setTimeout(()=>{const _0x31bab3=_0x137dd5;this[_0x31bab3(0x18b)]();},TIMING[_0x137dd5(0x1af)]);}catch(_0x122031){this['emit']('ping_error',_0x122031);}}[a0_0x42fe4f(0x18c)](){const _0x336803=a0_0x42fe4f;this['lastPongReceived']=Date['now'](),this[_0x336803(0x18f)]&&(clearTimeout(this['pongTimeout']),this[_0x336803(0x18f)]=null);}[a0_0x42fe4f(0x18b)](){const _0x541922=a0_0x42fe4f;this[_0x541922(0x1b5)]('heartbeat_timeout'),this[_0x541922(0x182)](),this['shouldReconnect']&&this['scheduleReconnect']();}[a0_0x42fe4f(0x1b2)](_0x194b21){const _0xa14abc=a0_0x42fe4f;this['sessionId']=_0x194b21,this['send']({'type':WS_MESSAGE_TYPE[_0xa14abc(0x187)],'sessionId':_0x194b21});}['sendOrchestratorRequest'](_0x23960a,_0x476283,_0x2cac0e){const _0x436727=a0_0x42fe4f,_0x17245c=this['generateRequestId'](),_0x50e88f={'type':WS_MESSAGE_TYPE[_0x436727(0x1c2)],'requestId':_0x17245c,'action':_0x23960a,'payload':_0x476283,'projectDir':_0x2cac0e};return new Promise((_0x4dcdac,_0x29445c)=>{const _0x1d2998=_0x436727;this[_0x1d2998(0x1a5)]['set'](_0x17245c,{'resolve':_0x4dcdac,'reject':_0x29445c,'timestamp':Date[_0x1d2998(0x181)]()});try{this[_0x1d2998(0x1be)](_0x50e88f);}catch(_0x10c62a){this[_0x1d2998(0x1a5)]['delete'](_0x17245c),_0x29445c(_0x10c62a);}setTimeout(()=>{const _0x5ae2fb=_0x1d2998;this['pendingRequests'][_0x5ae2fb(0x1bf)](_0x17245c)&&(this['pendingRequests'][_0x5ae2fb(0x1c7)](_0x17245c),_0x29445c(new Error('Request\x20timeout')));},TIMING[_0x1d2998(0x1cc)]);});}['handleOrchestratorResponse'](_0x1d7828){const _0x3be041=a0_0x42fe4f,{requestId:_0x3c8ca3,response:_0x2ae356,error:_0x342e0c}=_0x1d7828;if(this[_0x3be041(0x1a5)][_0x3be041(0x1bf)](_0x3c8ca3)){const {resolve:_0x5dbeb2,reject:_0x38f157}=this['pendingRequests']['get'](_0x3c8ca3);this[_0x3be041(0x1a5)]['delete'](_0x3c8ca3),_0x342e0c?_0x38f157(new Error(_0x342e0c)):_0x5dbeb2(_0x2ae356);}}[a0_0x42fe4f(0x1be)](_0xf3bf5b){const _0x2d3e46=a0_0x42fe4f;if(this['state']!==CONNECTION_STATE[_0x2d3e46(0x193)]){this[_0x2d3e46(0x18d)][_0x2d3e46(0x19b)](_0xf3bf5b);return;}try{this['ws']['send'](JSON['stringify'](_0xf3bf5b));}catch(_0x1d2881){this['emit']('send_error',_0x1d2881);throw _0x1d2881;}}['processMessageQueue'](){const _0x43fce0=a0_0x42fe4f;while(this[_0x43fce0(0x18d)]['length']>0x0&&this[_0x43fce0(0x183)]===CONNECTION_STATE['CONNECTED']){const _0x3a1e65=this[_0x43fce0(0x18d)][_0x43fce0(0x1b3)]();try{this['ws']['send'](JSON['stringify'](_0x3a1e65));}catch(_0x4bd162){this['emit'](_0x43fce0(0x1c6),_0x4bd162),this['messageQueue']['unshift'](_0x3a1e65);break;}}}[a0_0x42fe4f(0x182)](){const _0xadc3d8=a0_0x42fe4f;this[_0xadc3d8(0x1ce)]=![],this[_0xadc3d8(0x184)]();if(this['ws']){try{this['ws']['close'](0x3e8,'Client\x20disconnect');}catch(_0x1381e4){}this['ws']=null;}this['setState'](CONNECTION_STATE[_0xadc3d8(0x1b1)]);}[a0_0x42fe4f(0x184)](){const _0x799687=a0_0x42fe4f;this['stopHeartbeat'](),this[_0x799687(0x1cd)]&&(clearTimeout(this[_0x799687(0x1cd)]),this[_0x799687(0x1cd)]=null),this['ws']&&this['ws'][_0x799687(0x1ad)]();}[a0_0x42fe4f(0x197)](_0x1cede2){const _0x8f4a12=a0_0x42fe4f,_0x528113=this[_0x8f4a12(0x183)];this['state']=_0x1cede2,_0x528113!==_0x1cede2&&this['emit']('state_change',{'oldState':_0x528113,'newState':_0x1cede2});}[a0_0x42fe4f(0x1aa)](){const _0x5914ea=a0_0x42fe4f;return this[_0x5914ea(0x1d3)]++,_0x5914ea(0x1c4)+Date[_0x5914ea(0x181)]()+'-'+this['requestIdCounter'];}['getState'](){const _0x5ce620=a0_0x42fe4f;return this[_0x5ce620(0x183)];}[a0_0x42fe4f(0x1a6)](){const _0x26301e=a0_0x42fe4f;return this[_0x26301e(0x183)]===CONNECTION_STATE['CONNECTED'];}[a0_0x42fe4f(0x1d1)](){const _0x7744ba=a0_0x42fe4f;return this[_0x7744ba(0x1d0)];}[a0_0x42fe4f(0x18a)](){const _0x304927=a0_0x42fe4f;return{'state':this[_0x304927(0x183)],'sessionId':this['sessionId'],'reconnectAttempts':this['reconnectAttempts'],'queuedMessages':this['messageQueue'][_0x304927(0x1c1)],'pendingRequests':this['pendingRequests'][_0x304927(0x1b0)],'lastPongReceived':this['lastPongReceived']};}}export default WebSocketManager;
1
+ const a0_0x15886a=a0_0xa51a;function a0_0xa51a(_0x11cd82,_0x290ef3){_0x11cd82=_0x11cd82-0x19d;const _0x4bf19d=a0_0x4bf1();let _0xa51afe=_0x4bf19d[_0x11cd82];if(a0_0xa51a['TLHBUb']===undefined){var _0x4acb20=function(_0x17d642){const _0x297b95='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x561329='',_0x532600='';for(let _0x582aef=0x0,_0x560a94,_0x38cc80,_0x5caefa=0x0;_0x38cc80=_0x17d642['charAt'](_0x5caefa++);~_0x38cc80&&(_0x560a94=_0x582aef%0x4?_0x560a94*0x40+_0x38cc80:_0x38cc80,_0x582aef++%0x4)?_0x561329+=String['fromCharCode'](0xff&_0x560a94>>(-0x2*_0x582aef&0x6)):0x0){_0x38cc80=_0x297b95['indexOf'](_0x38cc80);}for(let _0x5a8bd8=0x0,_0x163b8b=_0x561329['length'];_0x5a8bd8<_0x163b8b;_0x5a8bd8++){_0x532600+='%'+('00'+_0x561329['charCodeAt'](_0x5a8bd8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x532600);};a0_0xa51a['WEbZYl']=_0x4acb20,a0_0xa51a['dTIWCv']={},a0_0xa51a['TLHBUb']=!![];}const _0x4f3573=_0x4bf19d[0x0],_0x5b046a=_0x11cd82+_0x4f3573,_0x4a0d9b=a0_0xa51a['dTIWCv'][_0x5b046a];return!_0x4a0d9b?(_0xa51afe=a0_0xa51a['WEbZYl'](_0xa51afe),a0_0xa51a['dTIWCv'][_0x5b046a]=_0xa51afe):_0xa51afe=_0x4a0d9b,_0xa51afe;}(function(_0x5dfa12,_0x327043){const _0x34aee3=a0_0xa51a,_0xfd6364=_0x5dfa12();while(!![]){try{const _0x2f83e3=-parseInt(_0x34aee3(0x1cf))/0x1+parseInt(_0x34aee3(0x1ac))/0x2*(-parseInt(_0x34aee3(0x1c7))/0x3)+-parseInt(_0x34aee3(0x19e))/0x4*(parseInt(_0x34aee3(0x1d5))/0x5)+parseInt(_0x34aee3(0x1d4))/0x6+-parseInt(_0x34aee3(0x1d8))/0x7+-parseInt(_0x34aee3(0x1b3))/0x8+parseInt(_0x34aee3(0x1dd))/0x9;if(_0x2f83e3===_0x327043)break;else _0xfd6364['push'](_0xfd6364['shift']());}catch(_0x5c0bd1){_0xfd6364['push'](_0xfd6364['shift']());}}}(a0_0x4bf1,0xab273));import a0_0x561329 from'ws';function a0_0x4bf1(){const _0x572cd4=['y29UBMvJDa','zxjYB3i','rvjst1i','Dg9tDhjPBMC','AgfUzgXLq2XVC2u','C2HPzNq','Ag9ZDa','z2v0','C2v0DxbfDMvUDeHHBMrSzxjZ','CMvJB25Uzwn0Aw5N','zgLZy29UBMvJDa','BM93','CgvUzgLUz1jLCxvLC3rZ','ChvZAa','D2fPDezVCKnVBM5Ly3rPB24','Dw5ZAgLMDa','CMvJB25Uzwn0vgLTzxi','reLtq09otKvdveve','odqZEM1Vu1Dk','C2vZC2LVBKLK','C2nOzwr1BgvszwnVBM5Ly3q','CMvJB25Uzwn0qxr0zw1WDhm','y29UBMvJDgLVBL9LCNjVCG','zgvSzxrL','AgfUzgXLt3jJAgvZDhjHDg9YuMvZCg9UC2u','ChjVy2vZC01LC3nHz2vrDwv1zq','nJCXnti0sxb1zgXi','AgfUzgXLtwvZC2fNzq','C3rHDgu','zw1PDa','BgvUz3rO','nZGWmti3mNLkDgT4BG','nxngyufxEq','y2XVC2u','DhLWzq','ndq2odGWn3z1tKHmuq','C3rVCeHLyxj0yMvHDa','yMfZzvjLy29UBMvJDerLBgf5','C3rHDgvFy2HHBMDL','BgfZDfbVBMDszwnLAxzLza','mJm3mZmXndrpugPLrNG','CMvXDwvZDeLKq291BNrLCG','C2vUze9Yy2HLC3rYyxrVCLjLCxvLC3q','C2v0u3rHDgu','B25Jzq','CgfYC2vFzxjYB3i','ueLorW','CgLUz0LUDgvYDMfS','C2vUza','y29UBMvJDgLUzW','C2HVDwXKuMvJB25Uzwn0','AgfUzgXLug9Uz1rPBwvVDxq','C3rYAw5NAwz5','y2XLyw51Ca','mtG1mte5nMfusNDXCa','C3rHCNrizwfYDgjLyxq','CgfYC2u','Cg93','q09otKvdveve','CMvJB25Uzwn0rgvSyxK','AgfUzgXLrxjYB3i','z2v0u3rHDhm','z2vUzxjHDgvszxf1zxn0swq','D3m6lY8','q2XPzw50igrPC2nVBM5Ly3q','zgLZy29UBMvJDgvK','AgfUzgXLq29UBMvJDgLVBKvYCM9Y','BwvZC2fNzq','otK0ngThz3DosG','t1jdsevtvfjbve9sx1jfu1bptLnf','z2v0u2vZC2LVBKLK','Cg9Uz1rPBwvVDxq','B3bLBG','C2vZC2LVBL9QB2LUzwq','BwvZC2fNzvf1zxvL','ntmWnJmYwvjvzNDn','v0vcu09ds0vux0nptK5fq1rFveLnru9vva'];a0_0x4bf1=function(){return _0x572cd4;};return a0_0x4bf1();}import{EventEmitter}from'events';import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';export class WebSocketManager extends EventEmitter{constructor(_0x532600=NETWORK['DEFAULT_HOST'],_0x582aef=NETWORK['DEFAULT_PORT'],_0x560a94={}){const _0x503d60=a0_0xa51a;super(),this[_0x503d60(0x1bb)]=_0x532600,this['port']=_0x582aef,this['url']=_0x503d60(0x1a7)+_0x532600+':'+_0x582aef,this['ws']=null,this['state']=CONNECTION_STATE[_0x503d60(0x1c6)],this['sessionId']=null,this[_0x503d60(0x1ca)]=0x0,this[_0x503d60(0x1a3)]=_0x560a94['reconnectDelay']??TIMING['WEBSOCKET_RECONNECT_DELAY'],this[_0x503d60(0x1da)]=this[_0x503d60(0x1a3)],this['reconnectTimer']=null,this[_0x503d60(0x1e7)]=!![],this['heartbeatInterval']=_0x560a94['heartbeatInterval']??TIMING['WEBSOCKET_PING_INTERVAL'],this[_0x503d60(0x1e4)]=null,this[_0x503d60(0x1af)]=null,this[_0x503d60(0x1dc)]=null,this[_0x503d60(0x1b2)]=[],this[_0x503d60(0x1de)]=0x0,this['pendingRequests']=new Map();}async[a0_0x15886a(0x1b5)](){const _0xed6688=a0_0x15886a;if(this['state']===CONNECTION_STATE['CONNECTED']||this[_0xed6688(0x1d1)]===CONNECTION_STATE['CONNECTING'])return{'success':![],'error':'Already\x20connected\x20or\x20connecting'};this[_0xed6688(0x1e0)](CONNECTION_STATE['CONNECTING']),this['emit'](_0xed6688(0x1e6));try{return this['ws']=new a0_0x561329(this['url']),this['setupEventHandlers'](),await this[_0xed6688(0x1c3)](),{'success':!![]};}catch(_0x38cc80){return this['handleConnectionError'](_0x38cc80),{'success':![],'error':_0x38cc80[_0xed6688(0x1ab)]};}}[a0_0x15886a(0x1c3)](){return new Promise((_0x5caefa,_0x5a8bd8)=>{const _0x36d86c=a0_0xa51a,_0x163b8b=setTimeout(()=>{_0x5a8bd8(new Error('Connection\x20timeout'));},TIMING[_0x36d86c(0x1b4)]);this['ws'][_0x36d86c(0x1e1)](_0x36d86c(0x1b0),()=>{clearTimeout(_0x163b8b),_0x5caefa();}),this['ws']['once'](_0x36d86c(0x1b6),_0x4d1285=>{clearTimeout(_0x163b8b),_0x5a8bd8(_0x4d1285);});});}[a0_0x15886a(0x1bd)](){const _0x2229bc=a0_0x15886a;this['ws']['on']('open',()=>this['handleOpen']()),this['ws']['on'](_0x2229bc(0x1ab),_0x4bdad3=>this[_0x2229bc(0x1d0)](_0x4bdad3)),this['ws']['on'](_0x2229bc(0x1d6),(_0x5e526f,_0x4d07d5)=>this['handleClose'](_0x5e526f,_0x4d07d5)),this['ws']['on'](_0x2229bc(0x1b6),_0x1da391=>this[_0x2229bc(0x1a4)](_0x1da391));}['handleOpen'](){const _0x4e00db=a0_0x15886a;this[_0x4e00db(0x1e0)](CONNECTION_STATE['CONNECTED']),this[_0x4e00db(0x1ca)]=0x0,this['reconnectDelay']=this[_0x4e00db(0x1da)],this[_0x4e00db(0x1d2)]('connected'),this['startHeartbeat'](),this[_0x4e00db(0x1ce)]();}['handleMessage'](_0x5c23e5){const _0x38ec56=a0_0x15886a;try{const _0x31d3fe=JSON[_0x38ec56(0x1a0)](_0x5c23e5['toString']());if(_0x31d3fe[_0x38ec56(0x1d7)]===WS_MESSAGE_TYPE['PONG']){this['handlePong']();return;}if(_0x31d3fe[_0x38ec56(0x1d7)]===WS_MESSAGE_TYPE[_0x38ec56(0x1a2)]){this[_0x38ec56(0x1d2)]('welcome',_0x31d3fe);return;}if(_0x31d3fe[_0x38ec56(0x1d7)]===WS_MESSAGE_TYPE['SESSION_JOINED']){this[_0x38ec56(0x1c8)]=_0x31d3fe['sessionId'],this[_0x38ec56(0x1d2)](_0x38ec56(0x1b1),_0x31d3fe);return;}if(_0x31d3fe[_0x38ec56(0x1d7)]===WS_MESSAGE_TYPE[_0x38ec56(0x1ad)]){this[_0x38ec56(0x1cd)](_0x31d3fe);return;}this[_0x38ec56(0x1d2)]('message',_0x31d3fe),_0x31d3fe['type']&&this['emit'](_0x31d3fe[_0x38ec56(0x1d7)],_0x31d3fe);}catch(_0x153c7c){this[_0x38ec56(0x1d2)](_0x38ec56(0x1e2),{'error':_0x153c7c,'data':_0x5c23e5});}}[a0_0x15886a(0x1b9)](_0x74d91a,_0x4048f6){const _0x45096b=a0_0x15886a;this['cleanup']();const _0x2be582=_0x4048f6[_0x45096b(0x1b8)]()||'Unknown\x20reason';this['emit'](_0x45096b(0x1a9),{'code':_0x74d91a,'reason':_0x2be582}),this[_0x45096b(0x1e7)]&&_0x74d91a!==0x3e8?this[_0x45096b(0x1c9)]():this['setState'](CONNECTION_STATE[_0x45096b(0x1c6)]);}['handleError'](_0x16b1a3){const _0x313b88=a0_0x15886a;this[_0x313b88(0x1d2)](_0x313b88(0x1b6),_0x16b1a3);}[a0_0x15886a(0x1aa)](_0x131caf){const _0x4cec39=a0_0x15886a;this['setState'](CONNECTION_STATE[_0x4cec39(0x1b7)]),this['emit'](_0x4cec39(0x1cb),_0x131caf),this[_0x4cec39(0x1e7)]&&this['scheduleReconnect']();}['scheduleReconnect'](){const _0x121a2c=a0_0x15886a;if(this[_0x121a2c(0x1c5)])return;this['setState'](CONNECTION_STATE['RECONNECTING']),this[_0x121a2c(0x1ca)]++;const _0x22764a=Math['min'](this[_0x121a2c(0x1a3)]*Math[_0x121a2c(0x1a1)](TIMING['WEBSOCKET_RECONNECT_MULTIPLIER'],this[_0x121a2c(0x1ca)]-0x1),TIMING['WEBSOCKET_RECONNECT_MAX_DELAY']);this['emit'](_0x121a2c(0x1be),{'attempt':this['reconnectAttempts'],'delay':_0x22764a}),this['reconnectTimer']=setTimeout(()=>{const _0x1aad55=_0x121a2c;this['reconnectTimer']=null,this[_0x1aad55(0x1b5)]();},_0x22764a);}[a0_0x15886a(0x19f)](){const _0x34e2d1=a0_0x15886a;this[_0x34e2d1(0x1d9)](),this[_0x34e2d1(0x1e4)]=setInterval(()=>{const _0x24128f=_0x34e2d1;this['state']===CONNECTION_STATE[_0x24128f(0x1a2)]&&this['sendPing']();},this['heartbeatInterval']);}[a0_0x15886a(0x1d9)](){const _0x2ce90c=a0_0x15886a;this['pingInterval']&&(clearInterval(this['pingInterval']),this['pingInterval']=null),this[_0x2ce90c(0x1af)]&&(clearTimeout(this['pongTimeout']),this[_0x2ce90c(0x1af)]=null);}['sendPing'](){const _0x161533=a0_0x15886a;if(this[_0x161533(0x1d1)]!==CONNECTION_STATE[_0x161533(0x1a2)])return;try{this[_0x161533(0x1e5)]({'type':WS_MESSAGE_TYPE[_0x161533(0x1e3)]}),this['pongTimeout']=setTimeout(()=>{const _0x28956d=_0x161533;this[_0x28956d(0x1e8)]();},TIMING['WEBSOCKET_PONG_TIMEOUT']);}catch(_0x35d8c9){this[_0x161533(0x1d2)]('ping_error',_0x35d8c9);}}['handlePong'](){const _0x250bea=a0_0x15886a;this['lastPongReceived']=Date['now'](),this[_0x250bea(0x1af)]&&(clearTimeout(this[_0x250bea(0x1af)]),this[_0x250bea(0x1af)]=null);}['handlePongTimeout'](){const _0x54ce2d=a0_0x15886a;this['emit']('heartbeat_timeout'),this['disconnect'](),this['shouldReconnect']&&this[_0x54ce2d(0x1c9)]();}['joinSession'](_0xfe56b){const _0x491124=a0_0x15886a;this[_0x491124(0x1c8)]=_0xfe56b,this['send']({'type':WS_MESSAGE_TYPE['JOIN_SESSION'],'sessionId':_0xfe56b});}[a0_0x15886a(0x1df)](_0x3cfc80,_0x4cef26,_0x52ca7b){const _0x5df353=a0_0x15886a,_0x3a6b23=this[_0x5df353(0x1a6)](),_0x243e16={'type':WS_MESSAGE_TYPE['ORCHESTRATOR_REQUEST'],'requestId':_0x3a6b23,'action':_0x3cfc80,'payload':_0x4cef26,'projectDir':_0x52ca7b};return new Promise((_0x3de001,_0x42f780)=>{const _0x205216=_0x5df353;this['pendingRequests']['set'](_0x3a6b23,{'resolve':_0x3de001,'reject':_0x42f780,'timestamp':Date[_0x205216(0x1c0)]()});try{this['send'](_0x243e16);}catch(_0x9566cd){this['pendingRequests'][_0x205216(0x1cc)](_0x3a6b23),_0x42f780(_0x9566cd);}setTimeout(()=>{const _0x4f5f71=_0x205216;this[_0x4f5f71(0x1c1)]['has'](_0x3a6b23)&&(this['pendingRequests'][_0x4f5f71(0x1cc)](_0x3a6b23),_0x42f780(new Error('Request\x20timeout')));},TIMING['HTTP_TIMEOUT']);});}[a0_0x15886a(0x1cd)](_0x462ef0){const _0x3ecac7=a0_0x15886a,{requestId:_0x56406e,response:_0x1d68e5,error:_0x6d9bcd}=_0x462ef0;if(this[_0x3ecac7(0x1c1)]['has'](_0x56406e)){const {resolve:_0x3d5eec,reject:_0x2e4f3c}=this['pendingRequests'][_0x3ecac7(0x1bc)](_0x56406e);this['pendingRequests'][_0x3ecac7(0x1cc)](_0x56406e),_0x6d9bcd?_0x2e4f3c(new Error(_0x6d9bcd)):_0x3d5eec(_0x1d68e5);}}[a0_0x15886a(0x1e5)](_0x32ed31){const _0x9dea4e=a0_0x15886a;if(this[_0x9dea4e(0x1d1)]!==CONNECTION_STATE[_0x9dea4e(0x1a2)]){this[_0x9dea4e(0x1b2)][_0x9dea4e(0x1c2)](_0x32ed31);return;}try{this['ws'][_0x9dea4e(0x1e5)](JSON[_0x9dea4e(0x1e9)](_0x32ed31));}catch(_0x2085d7){this['emit']('send_error',_0x2085d7);throw _0x2085d7;}}['processMessageQueue'](){const _0x4f51f3=a0_0x15886a;while(this['messageQueue'][_0x4f51f3(0x1d3)]>0x0&&this[_0x4f51f3(0x1d1)]===CONNECTION_STATE['CONNECTED']){const _0x174940=this['messageQueue'][_0x4f51f3(0x1ba)]();try{this['ws'][_0x4f51f3(0x1e5)](JSON['stringify'](_0x174940));}catch(_0x923f6){this[_0x4f51f3(0x1d2)]('queue_process_error',_0x923f6),this['messageQueue'][_0x4f51f3(0x1c4)](_0x174940);break;}}}[a0_0x15886a(0x1bf)](){const _0x4647bd=a0_0x15886a;this['shouldReconnect']=![],this['cleanup']();if(this['ws']){try{this['ws'][_0x4647bd(0x1d6)](0x3e8,_0x4647bd(0x1a8));}catch(_0x58fcc2){}this['ws']=null;}this['setState'](CONNECTION_STATE[_0x4647bd(0x1c6)]);}[a0_0x15886a(0x19d)](){const _0x1a0de1=a0_0x15886a;this['stopHeartbeat'](),this[_0x1a0de1(0x1c5)]&&(clearTimeout(this[_0x1a0de1(0x1c5)]),this[_0x1a0de1(0x1c5)]=null),this['ws']&&this['ws']['removeAllListeners']();}[a0_0x15886a(0x1e0)](_0x55a2d0){const _0xa2f243=a0_0x15886a,_0x2dcdc5=this[_0xa2f243(0x1d1)];this[_0xa2f243(0x1d1)]=_0x55a2d0,_0x2dcdc5!==_0x55a2d0&&this['emit'](_0xa2f243(0x1db),{'oldState':_0x2dcdc5,'newState':_0x55a2d0});}['generateRequestId'](){const _0x5bf13c=a0_0x15886a;return this['requestIdCounter']++,'req-'+Date['now']()+'-'+this[_0x5bf13c(0x1de)];}['getState'](){return this['state'];}['isConnected'](){return this['state']===CONNECTION_STATE['CONNECTED'];}[a0_0x15886a(0x1ae)](){return this['sessionId'];}[a0_0x15886a(0x1a5)](){const _0x2af98e=a0_0x15886a;return{'state':this[_0x2af98e(0x1d1)],'sessionId':this['sessionId'],'reconnectAttempts':this[_0x2af98e(0x1ca)],'queuedMessages':this['messageQueue'][_0x2af98e(0x1d3)],'pendingRequests':this[_0x2af98e(0x1c1)]['size'],'lastPongReceived':this[_0x2af98e(0x1dc)]};}}export default WebSocketManager;