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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +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
@@ -1 +1 @@
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
+ (function(_0x1e2f8e,_0x525a70){const _0x6b49e=a0_0x5d0b,_0x3b7756=_0x1e2f8e();while(!![]){try{const _0x10f28e=-parseInt(_0x6b49e(0xc8))/0x1+-parseInt(_0x6b49e(0xc3))/0x2+parseInt(_0x6b49e(0xc2))/0x3+parseInt(_0x6b49e(0xdb))/0x4*(parseInt(_0x6b49e(0xeb))/0x5)+-parseInt(_0x6b49e(0xb4))/0x6*(-parseInt(_0x6b49e(0xd1))/0x7)+-parseInt(_0x6b49e(0xcc))/0x8+-parseInt(_0x6b49e(0xdd))/0x9*(-parseInt(_0x6b49e(0xaa))/0xa);if(_0x10f28e===_0x525a70)break;else _0x3b7756['push'](_0x3b7756['shift']());}catch(_0x458ebb){_0x3b7756['push'](_0x3b7756['shift']());}}}(a0_0x1b24,0x78973));function a0_0x5d0b(_0x5a58bd,_0x16e04a){_0x5a58bd=_0x5a58bd-0xa8;const _0x1b24b6=a0_0x1b24();let _0x5d0b25=_0x1b24b6[_0x5a58bd];if(a0_0x5d0b['xnVynf']===undefined){var _0x11720e=function(_0x53b50b){const _0x5cdbcc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1f8e5c='',_0x24ce3b='';for(let _0x18f9f6=0x0,_0x3fa602,_0x59fe01,_0x347d8f=0x0;_0x59fe01=_0x53b50b['charAt'](_0x347d8f++);~_0x59fe01&&(_0x3fa602=_0x18f9f6%0x4?_0x3fa602*0x40+_0x59fe01:_0x59fe01,_0x18f9f6++%0x4)?_0x1f8e5c+=String['fromCharCode'](0xff&_0x3fa602>>(-0x2*_0x18f9f6&0x6)):0x0){_0x59fe01=_0x5cdbcc['indexOf'](_0x59fe01);}for(let _0x1ebeab=0x0,_0x2ac042=_0x1f8e5c['length'];_0x1ebeab<_0x2ac042;_0x1ebeab++){_0x24ce3b+='%'+('00'+_0x1f8e5c['charCodeAt'](_0x1ebeab)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x24ce3b);};a0_0x5d0b['XTbrQf']=_0x11720e,a0_0x5d0b['FULsLC']={},a0_0x5d0b['xnVynf']=!![];}const _0x12757d=_0x1b24b6[0x0],_0xa8828=_0x5a58bd+_0x12757d,_0x4fbd98=a0_0x5d0b['FULsLC'][_0xa8828];return!_0x4fbd98?(_0x5d0b25=a0_0x5d0b['XTbrQf'](_0x5d0b25),a0_0x5d0b['FULsLC'][_0xa8828]=_0x5d0b25):_0x5d0b25=_0x4fbd98,_0x5d0b25;}import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function a0_0x1b24(){const _0x4bf8c8=['BM90','tKvuv09ssW','Dg9iyxzLuhjVCgvYDhK','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','DxnL','ywXSB3DLzc10ExbL','Bg94AwfbCgLlzxK','BM90lweTzNvUy3rPB24','z2vUzxjHDgvszxf1zxn0swq','mtaYmZaWoxLJtLrbwG','mtqZmdeYohDuzK9ota','y29UBMvJDgvK','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','q09otKvdveLptL9tvefurq','Dg9nyxrJAa','mJKYnJy2BgnMqLnb','lI4VlI4VyxbPl3nLC3nPB24UANm','BwLKzgXLD2fYzq','z2v0u3rHDgu','mJiZntC2oerkrw5oBW','Dg9czq','D3m6lY9SB2nHBgHVC3q6oda4ma','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','A2v5','mJHUz3HLyxa','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','zNvUy3rPB24','quDftLrFtu9erq','DgvZDa','BgvUz3rO','Ag9ZDa','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','uefhsu5bveLptG','reLtq09otKvdveve','mtaYntzUrMXtyNK','z2v0u3rHDhm','nZqWn3jpzwz2qG','veLnsu5h','CMvJB25Uzwn0qxr0zw1WDhm','Bg9JywXOB3n0','AgfZsgfUzgXLCG','yMfZzvvYBa','BNvTyMvY','vuLFreLnru5tsu9ouW','DgvZDc1TzxnZywDL','tuvtu0fhrv9brerfra','Dg9czuDYzwf0zxjuAgfU','DgvZDc1RzxK','C3rHDgu','AgfZtg94AwflzxK','mtq5nxbKwef1CW','Cg9YDa','ChjVAMvJDerPCG','v0vcu09ds0vux1bjtKDFsu5urvjwquW','DMvUzg9Ys2v5C0nVDw50','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','C2vZC2LVBKLK','mZC1mgPeqwHAua','DgvZDc1OB3n0','yMXVy2TLzc10ExbL','Ahr0CdOVl2XVy2fSAg9ZDdO4mdGW','AxnwywXPza','u0LerujbuL9xsurusa','z2v0u2vZC2LVBKLK','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','DxjS','y2XLyxi','ntq3mZe0z3DowgvW','q29UC3rHBNrZigHHDMuGBM8GBwfNAwmGBNvTyMvYCW','Dg9czurLzMLUzwq','quDftLrFtu9erv9dsefor0ve','z2v0u2vZC2LVBKLUzM8'];a0_0x1b24=function(){return _0x4bf8c8;};return a0_0x1b24();}describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x3f4030=a0_0x5d0b,_0x1f8e5c=await import('../../config/constants.js');expect(_0x1f8e5c['UI_DIMENSIONS'])[_0x3f4030(0xb6)](),expect(_0x1f8e5c['MESSAGE_CONFIG'])[_0x3f4030(0xb6)](),expect(_0x1f8e5c[_0x3f4030(0xd9)])[_0x3f4030(0xb6)](),expect(_0x1f8e5c['TIMING'])[_0x3f4030(0xb6)](),expect(_0x1f8e5c['NETWORK'])['toBeDefined'](),expect(_0x1f8e5c[_0x3f4030(0xc6)])['toBeDefined'](),expect(_0x1f8e5c[_0x3f4030(0xd4)])['toBeDefined'](),expect(_0x1f8e5c['WS_MESSAGE_TYPE'])[_0x3f4030(0xb6)](),expect(_0x1f8e5c['API_ENDPOINTS'])['toBeDefined'](),expect(_0x1f8e5c['COMMANDS'])['toBeDefined'](),expect(_0x1f8e5c[_0x3f4030(0xba)]['DEFAULT_HOST'])[_0x3f4030(0xcd)]('localhost'),expect(_0x1f8e5c[_0x3f4030(0xba)]['DEFAULT_PORT'])[_0x3f4030(0xcd)](0x1f90),expect(_0x1f8e5c[_0x3f4030(0xc6)]['DISCONNECTED'])['toBe']('disconnected'),expect(_0x1f8e5c[_0x3f4030(0xc6)]['CONNECTED'])[_0x3f4030(0xcd)](_0x3f4030(0xc4));}),test('WebSocketManager class can be imported',async()=>{const _0x1935af=a0_0x5d0b,{WebSocketManager:_0x24ce3b}=await import('../../api/websocket.js');expect(_0x24ce3b)['toBeDefined'](),expect(typeof _0x24ce3b)[_0x1935af(0xcd)]('function');const _0x18f9f6=new _0x24ce3b('localhost',0x1f90);expect(_0x18f9f6)['toBeDefined'](),expect(_0x18f9f6[_0x1935af(0xd7)])['toBe']('localhost'),expect(_0x18f9f6[_0x1935af(0xec)])[_0x1935af(0xcd)](0x1f90),expect(_0x18f9f6[_0x1935af(0xb2)])['toBe'](_0x1935af(0xce));}),test('SessionManager class can be imported',async()=>{const _0xeb34a=a0_0x5d0b,{SessionManager:_0x3fa602}=await import('../../api/session.js');expect(_0x3fa602)[_0xeb34a(0xb6)](),expect(typeof _0x3fa602)[_0xeb34a(0xcd)]('function');const _0x59fe01=new _0x3fa602('localhost',0x1f90);expect(_0x59fe01)['toBeDefined'](),expect(_0x59fe01['host'])['toBe'](_0xeb34a(0xe0)),expect(_0x59fe01[_0xeb34a(0xec)])[_0xeb34a(0xcd)](0x1f90),expect(_0x59fe01[_0xeb34a(0xe2)])[_0xeb34a(0xcd)](_0xeb34a(0xad));}),test('MessageRouter class can be imported',async()=>{const _0x1fe0eb=a0_0x5d0b,{MessageRouter:_0x347d8f}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1ebeab}=await import(_0x1fe0eb(0xbc));expect(_0x347d8f)[_0x1fe0eb(0xb6)](),expect(typeof _0x347d8f)['toBe']('function');const _0x2ac042=new _0x1ebeab(_0x1fe0eb(0xe0),0x1f90),_0xec0f93=new _0x347d8f(_0x2ac042);expect(_0xec0f93)['toBeDefined'](),expect(_0xec0f93['ws'])['toBe'](_0x2ac042);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x245f54=a0_0x5d0b,{loggingMiddleware:_0x162b7c,filterMiddleware:_0x1b05c6,transformMiddleware:_0x431b37,timestampMiddleware:_0x3625e7,validationMiddleware:_0x5bc838}=await import('../../api/messageRouter.js');expect(typeof _0x162b7c)[_0x245f54(0xcd)]('function'),expect(typeof _0x1b05c6)[_0x245f54(0xcd)](_0x245f54(0xd3)),expect(typeof _0x431b37)[_0x245f54(0xcd)](_0x245f54(0xd3)),expect(typeof _0x3625e7)[_0x245f54(0xcd)](_0x245f54(0xd3)),expect(typeof _0x5bc838)[_0x245f54(0xcd)]('function');}),test('useConnection hook can be imported',async()=>{const _0x1ccf4a=a0_0x5d0b,{useConnection:_0x444599,useConnectionStatus:_0x5658e8}=await import('../../state/useConnection.js');expect(_0x444599)[_0x1ccf4a(0xb6)](),expect(typeof _0x444599)['toBe'](_0x1ccf4a(0xd3)),expect(_0x5658e8)['toBeDefined'](),expect(typeof _0x5658e8)['toBe'](_0x1ccf4a(0xd3));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0xf0eba2=a0_0x5d0b;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x2a501c=a0_0x5d0b,{WebSocketManager:_0x34f14e}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x5a7744}=await import(_0x2a501c(0xd2)),_0x53d2b3=new _0x34f14e('test-host',0x2382);expect(_0x53d2b3[_0x2a501c(0xe9)])[_0x2a501c(0xcd)](_0x5a7744[_0x2a501c(0xda)]),expect(_0x53d2b3['sessionId'])[_0x2a501c(0xcd)](null),expect(_0x53d2b3['messageQueue'])['toEqual']([]),expect(_0x53d2b3[_0x2a501c(0xdf)])[_0x2a501c(0xcd)](0x0),expect(_0x53d2b3['shouldReconnect'])['toBe'](!![]);}),test(_0xf0eba2(0xa8),async()=>{const _0x14baf7=_0xf0eba2,{SessionManager:_0x492365}=await import(_0x14baf7(0xc9)),_0x317363=new _0x492365(_0x14baf7(0xab),0x2382);expect(_0x317363[_0x14baf7(0xa9)])[_0x14baf7(0xcd)](null),expect(_0x317363['projectDir'])[_0x14baf7(0xcd)](null),expect(_0x317363[_0x14baf7(0xbf)])[_0x14baf7(0xcd)](null),expect(_0x317363['vendorKeys'])['toEqual']({}),expect(_0x317363[_0x14baf7(0xae)]())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x5eebb7=_0xf0eba2,{MessageRouter:_0x184d48}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1073c1}=await import(_0x5eebb7(0xbc)),{WS_MESSAGE_TYPE:_0x116f69}=await import('../../config/constants.js'),_0x573b8f=new _0x1073c1(_0x5eebb7(0xe0),0x1f90),_0x2fd90f=new _0x184d48(_0x573b8f);expect(_0x2fd90f[_0x5eebb7(0xe1)](_0x116f69[_0x5eebb7(0xe6)]))[_0x5eebb7(0xcd)](!![]),expect(_0x2fd90f['hasHandler'](_0x116f69[_0x5eebb7(0xb7)]))['toBe'](!![]),expect(_0x2fd90f[_0x5eebb7(0xe1)](_0x116f69['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0x2fd90f[_0x5eebb7(0xe1)](_0x116f69['COMPACTION_EVENT']))[_0x5eebb7(0xcd)](!![]),expect(_0x2fd90f[_0x5eebb7(0xe1)](_0x116f69['IMAGE_RESULT']))['toBe'](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x140bb8=_0xf0eba2,{MessageRouter:_0x15b254}=await import('../../api/messageRouter.js'),{WebSocketManager:_0xa2dc2d}=await import(_0x140bb8(0xbc)),_0x43b183=new _0xa2dc2d('localhost',0x1f90),_0x3c309a=new _0x15b254(_0x43b183),_0x2967c5=_0x11e924=>_0x11e924;expect(_0x3c309a['middleware'][_0x140bb8(0xd6)])[_0x140bb8(0xc5)](0x0),_0x3c309a[_0x140bb8(0xbd)](_0x2967c5);const _0x41f1de=_0x3c309a[_0x140bb8(0xca)][_0x140bb8(0xd6)];expect(_0x41f1de)[_0x140bb8(0xe7)](0x0),_0x3c309a['removeMiddleware'](_0x2967c5),expect(_0x3c309a['middleware']['length'])['toBe'](_0x41f1de-0x1);}),test(_0xf0eba2(0xd8),async()=>{const _0x279061=_0xf0eba2,{SessionManager:_0x512eae}=await import('../../api/session.js'),_0x5f5474=new _0x512eae('localhost',0x1f90);expect(_0x5f5474[_0x279061(0xb0)]())[_0x279061(0xcd)](null),expect(_0x5f5474['getProjectDir']())[_0x279061(0xcd)](null),expect(_0x5f5474['isValid']())[_0x279061(0xcd)](![]);const _0x298904=_0x5f5474[_0x279061(0xb8)]();expect(_0x298904)['toHaveProperty']('sessionId'),expect(_0x298904)[_0x279061(0xbb)](_0x279061(0xed)),expect(_0x298904)['toHaveProperty'](_0x279061(0xea)),expect(_0x298904)['toHaveProperty'](_0x279061(0xef));}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x38ce5a=_0xf0eba2,{WebSocketManager:_0x394369}=await import(_0x38ce5a(0xbc)),{CONNECTION_STATE:_0xbecd28}=await import('../../config/constants.js'),_0x4b0445=new _0x394369('localhost',0x1f90);expect(_0x4b0445[_0x38ce5a(0xcb)]())['toBe'](_0xbecd28[_0x38ce5a(0xda)]),expect(_0x4b0445['isConnected']())['toBe'](![]),expect(_0x4b0445[_0x38ce5a(0xb0)]())[_0x38ce5a(0xcd)](null);const _0x1aa910=_0x4b0445[_0x38ce5a(0xdc)]();expect(_0x1aa910)['toHaveProperty']('state'),expect(_0x1aa910)['toHaveProperty'](_0x38ce5a(0xa9)),expect(_0x1aa910)[_0x38ce5a(0xbb)]('reconnectAttempts'),expect(_0x1aa910)[_0x38ce5a(0xbb)]('queuedMessages'),expect(_0x1aa910)['toHaveProperty']('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x24d4f8=_0xf0eba2,{MessageRouter:_0xe558a0}=await import('../../api/messageRouter.js'),{WebSocketManager:_0xfc823b}=await import('../../api/websocket.js'),_0xeed70=new _0xfc823b('localhost',0x1f90),_0x588ca8=new _0xe558a0(_0xeed70),_0x258ff3=()=>{};expect(_0x588ca8['hasHandler']('test-message'))[_0x24d4f8(0xcd)](![]),_0x588ca8['registerHandler'](_0x24d4f8(0xe5),_0x258ff3),expect(_0x588ca8['hasHandler'](_0x24d4f8(0xe5)))[_0x24d4f8(0xcd)](!![]),_0x588ca8['unregisterHandler'](_0x24d4f8(0xe5)),expect(_0x588ca8[_0x24d4f8(0xe1)]('test-message'))['toBe'](![]);}),test('MessageRouter\x20middleware\x20helpers\x20create\x20valid\x20middleware',async()=>{const _0x476585=_0xf0eba2,{loggingMiddleware:_0x5c2092,timestampMiddleware:_0x45596a,filterMiddleware:_0x434c6f}=await import('../../api/messageRouter.js'),_0xae22c0=_0x5c2092();expect(typeof _0xae22c0)['toBe'](_0x476585(0xd3));const _0x1d8fee=_0x45596a();expect(typeof _0x1d8fee)['toBe'](_0x476585(0xd3));const _0x24d819={'type':_0x476585(0xd5)},_0x2a79a2=_0x1d8fee(_0x24d819);expect(_0x2a79a2)[_0x476585(0xbb)]('receivedAt'),expect(_0x2a79a2['type'])[_0x476585(0xcd)]('test');const _0x4b2b0d=_0x434c6f([_0x476585(0xbe)]);expect(typeof _0x4b2b0d)[_0x476585(0xcd)]('function'),expect(_0x4b2b0d({'type':_0x476585(0xbe)}))['toBeTruthy'](),expect(_0x4b2b0d({'type':_0x476585(0xac)}))['toBe'](null);}),test(_0xf0eba2(0xb5),async()=>{const _0x42274d=_0xf0eba2,_0x2ff8e6=await import('../../config/constants.js');expect(typeof _0x2ff8e6[_0x42274d(0xde)]['WEBSOCKET_RECONNECT_DELAY'])['toBe']('number'),expect(typeof _0x2ff8e6['TIMING'][_0x42274d(0xee)])['toBe'](_0x42274d(0xe3)),expect(typeof _0x2ff8e6['NETWORK']['DEFAULT_PORT'])[_0x42274d(0xcd)]('number'),expect(typeof _0x2ff8e6[_0x42274d(0xba)]['MAX_RETRIES'])['toBe']('number'),expect(typeof _0x2ff8e6['NETWORK']['HTTP_TIMEOUT'])[_0x42274d(0xcd)]('number'),expect(typeof _0x2ff8e6[_0x42274d(0xe4)]['MESSAGE_LIST_HEIGHT'])[_0x42274d(0xcd)](_0x42274d(0xe3)),expect(typeof _0x2ff8e6[_0x42274d(0xe4)][_0x42274d(0xaf)])['toBe'](_0x42274d(0xe3));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x3407c8=a0_0x5d0b;test(_0x3407c8(0xb1),async()=>{const _0x2aaf13=_0x3407c8,{MessageRouter:_0x13775b}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4c1c8e}=await import('../../api/websocket.js'),_0x143600=new _0x4c1c8e(_0x2aaf13(0xe0),0x1f90),_0x32de49=new _0x13775b(_0x143600);expect(()=>{const _0x394de5=_0x2aaf13;_0x32de49['registerHandler'](_0x394de5(0xd5),_0x394de5(0xc0));})['toThrow']('Handler\x20must\x20be\x20a\x20function');}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x1110d4=_0x3407c8,{MessageRouter:_0x24c84d}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4ce5c4}=await import(_0x1110d4(0xbc)),_0x2f1180=new _0x4ce5c4(_0x1110d4(0xe0),0x1f90),_0x30224b=new _0x24c84d(_0x2f1180);expect(()=>{_0x30224b['use']('not-a-function');})['toThrow']('Middleware\x20must\x20be\x20a\x20function');}),test(_0x3407c8(0xcf),async()=>{const _0x35132b=_0x3407c8,{SessionManager:_0x49e95f}=await import(_0x35132b(0xc9)),_0x14abd4=new _0x49e95f('localhost',0x1f90);_0x14abd4['sessionId']='test-123',_0x14abd4[_0x35132b(0xed)]='/test/dir',_0x14abd4[_0x35132b(0xbf)]=_0x35132b(0xe8),_0x14abd4['vendorKeys']={'openai':_0x35132b(0xd0)},expect(_0x14abd4[_0x35132b(0xae)]())['toBe'](!![]),_0x14abd4[_0x35132b(0xb3)](),expect(_0x14abd4[_0x35132b(0xa9)])[_0x35132b(0xcd)](null),expect(_0x14abd4['projectDir'])['toBe'](null),expect(_0x14abd4['loxiaApiKey'])[_0x35132b(0xcd)](null),expect(_0x14abd4['vendorKeys'])['toEqual']({}),expect(_0x14abd4[_0x35132b(0xae)]())[_0x35132b(0xcd)](![]);}),test('WebSocketManager\x20generates\x20unique\x20request\x20IDs',async()=>{const _0x2085b1=_0x3407c8,{WebSocketManager:_0x2cc7e9}=await import('../../api/websocket.js'),_0x4e2cbc=new _0x2cc7e9(_0x2085b1(0xe0),0x1f90),_0x5a9fd2=_0x4e2cbc['generateRequestId'](),_0x4d2cc0=_0x4e2cbc[_0x2085b1(0xc1)](),_0x3dc4af=_0x4e2cbc['generateRequestId']();expect(_0x5a9fd2)[_0x2085b1(0xb9)][_0x2085b1(0xcd)](_0x4d2cc0),expect(_0x4d2cc0)[_0x2085b1(0xb9)][_0x2085b1(0xcd)](_0x3dc4af),expect(_0x5a9fd2)[_0x2085b1(0xb9)][_0x2085b1(0xcd)](_0x3dc4af),expect(_0x5a9fd2)[_0x2085b1(0xc7)](/^req-\d+-\d+$/),expect(_0x4d2cc0)[_0x2085b1(0xc7)](/^req-\d+-\d+$/),expect(_0x3dc4af)['toMatch'](/^req-\d+-\d+$/);});});
@@ -1 +1 @@
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
+ const a0_0x47b20f=a0_0x5a4c;function a0_0x5a4c(_0x173bc1,_0x2019b6){_0x173bc1=_0x173bc1-0x18e;const _0x13a13b=a0_0x13a1();let _0x5a4c99=_0x13a13b[_0x173bc1];if(a0_0x5a4c['ypiTLs']===undefined){var _0x5301d9=function(_0x5036f5){const _0x1c0883='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x559b0e='',_0x17b6f5='';for(let _0x46af30=0x0,_0x173d2e,_0x53a4ea,_0x169971=0x0;_0x53a4ea=_0x5036f5['charAt'](_0x169971++);~_0x53a4ea&&(_0x173d2e=_0x46af30%0x4?_0x173d2e*0x40+_0x53a4ea:_0x53a4ea,_0x46af30++%0x4)?_0x559b0e+=String['fromCharCode'](0xff&_0x173d2e>>(-0x2*_0x46af30&0x6)):0x0){_0x53a4ea=_0x1c0883['indexOf'](_0x53a4ea);}for(let _0x38eed8=0x0,_0x2af611=_0x559b0e['length'];_0x38eed8<_0x2af611;_0x38eed8++){_0x17b6f5+='%'+('00'+_0x559b0e['charCodeAt'](_0x38eed8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x17b6f5);};a0_0x5a4c['FyXXso']=_0x5301d9,a0_0x5a4c['JnQjBE']={},a0_0x5a4c['ypiTLs']=!![];}const _0x12f82f=_0x13a13b[0x0],_0x3f6c7a=_0x173bc1+_0x12f82f,_0x2fb250=a0_0x5a4c['JnQjBE'][_0x3f6c7a];return!_0x2fb250?(_0x5a4c99=a0_0x5a4c['FyXXso'](_0x5a4c99),a0_0x5a4c['JnQjBE'][_0x3f6c7a]=_0x5a4c99):_0x5a4c99=_0x2fb250,_0x5a4c99;}function a0_0x13a1(){const _0x4a29a0=['twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','lI4VlI4VyxbPl3nLC3nPB24UANm','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','C3LZDgvT','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','n0nHChfxtq','BNvTyMvY','Bg9JywXOB3n0','ywXS','quDftLrFtu9erv9dsefor0ve','ywDLBNrFBw9Kzv9JAgfUz2vK','DxnLCG','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','tufyx01fu1nbr0vtx0rju1bmqvK','twvZC2fNzsbnyw5Hz2vTzw50ic0GrxjYB3iGsgfUzgXPBMC','BgvUz3rO','BwvZC2fNzv9HzgrLza','quDftLrFuKvtue9ou0u','zgvMyxvSDa','DxnLtwvZC2fNzxmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','t3jJAgvZDhjHDg9YigvUzhbVAw50ignHBIbIzsb1C2vKigzVCIbTzxnZywDLig9WzxjHDgLVBNm','tuvtu0fhrv9st0Xf','Dg9czurLzMLUzwq','mtiYmJi2n0LzBxruvq','u1Ltvevnx05pveLgsunbveLptG','mZa5mdy0yKTYAwz4','og52CvLeCW','tuvtu0fhrv9brerfra','rvHfq1vusu9ox1nut1bqruq','tuvtu0fhrv9uwvbfignVBNn0yw50CYbHCMuGzgvMAw5Lza','zNvUy3rPB24','Dg9czuDYzwf0zxjuAgfU','mtm1nZG3nwjYrg1fAW','twvZC2fNzvjVDxrLCIbOyxmGBwvZC2fNzsbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','mJmYode2oe1Wug9mrW','DxnLCI1TzxnZywDL','qvntsvnuqu5u','uefhrv9tsvPf','DxnLtwvZC2fNzunVDw50ihjLDhvYBNmGzxHWzwn0zwqGAw50zxjMywnLihnOyxbL','CMvWzwf0','tufyx1bbr0vFu0LArq','DxnLtwvZC2fNzxm','Dg9czq','u1Ltvevn','tufyx01fu1nbr0vFtevor1ri','oteZnJCXzvnAEvz1','t1jdsevtvfjbve9s','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','mtjuzwzPwuW','tuvtu0fhrv9uwvbf','Dg9mB3DLCKnHC2u','mtG2mdC1mfDiBgLABW','C3LZDgvTlw5VDgLMAwnHDgLVBG','Dg9czuXLC3nuAgfUt3jfCxvHBa','mJC0mJuYmgnns3bwva','vvnfuG','AgfZsgfUzgXLCG','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbKAxnWBgf5ig1LC3nHz2vZ'];a0_0x13a1=function(){return _0x4a29a0;};return a0_0x13a1();}(function(_0x1e7038,_0x3a25cc){const _0x4d7064=a0_0x5a4c,_0x3ef80c=_0x1e7038();while(!![]){try{const _0x4e66ca=parseInt(_0x4d7064(0x1a1))/0x1+-parseInt(_0x4d7064(0x1a4))/0x2*(parseInt(_0x4d7064(0x1b7))/0x3)+-parseInt(_0x4d7064(0x1a3))/0x4+parseInt(_0x4d7064(0x1c0))/0x5*(parseInt(_0x4d7064(0x1ba))/0x6)+-parseInt(_0x4d7064(0x18e))/0x7*(parseInt(_0x4d7064(0x1ac))/0x8)+parseInt(_0x4d7064(0x1aa))/0x9+-parseInt(_0x4d7064(0x1bd))/0xa;if(_0x4e66ca===_0x3a25cc)break;else _0x3ef80c['push'](_0x3ef80c['shift']());}catch(_0x334174){_0x3ef80c['push'](_0x3ef80c['shift']());}}}(a0_0x13a1,0xaa4d8));import{describe,test,expect}from'@jest/globals';describe('Message\x20Management\x20-\x20Imports',()=>{test('useMessages hook can be imported',async()=>{const _0x1bc7ba=a0_0x5a4c,{useMessages:_0x559b0e}=await import('../../state/useMessages.js');expect(_0x559b0e)[_0x1bc7ba(0x1a0)](),expect(typeof _0x559b0e)[_0x1bc7ba(0x1b4)](_0x1bc7ba(0x1a8));}),test('useMessages is default export',async()=>{const _0x4af64d=a0_0x5a4c,module=await import(_0x4af64d(0x1c7));expect(module[_0x4af64d(0x19c)])[_0x4af64d(0x1a0)](),expect(typeof module[_0x4af64d(0x19c)])['toBe'](_0x4af64d(0x1a8)),expect(module[_0x4af64d(0x19c)])[_0x4af64d(0x1b4)](module[_0x4af64d(0x1b3)]);}),test('useMessageCount helper hook can be imported',async()=>{const _0x294d19=a0_0x5a4c,{useMessageCount:_0x17b6f5}=await import('../../state/useMessages.js');expect(_0x17b6f5)[_0x294d19(0x1a0)](),expect(typeof _0x17b6f5)['toBe'](_0x294d19(0x1a8));});}),describe('Message\x20Management\x20-\x20Constants',()=>{const _0x3190b8=a0_0x5a4c;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x497f20=a0_0x5a4c,{MESSAGE_ROLE:_0x46af30}=await import(_0x497f20(0x1c3));expect(_0x46af30)[_0x497f20(0x1a0)](),expect(_0x46af30['USER'])['toBe'](_0x497f20(0x194)),expect(_0x46af30['ASSISTANT'])[_0x497f20(0x1b4)]('assistant'),expect(_0x46af30['SYSTEM'])['toBe'](_0x497f20(0x1c8));}),test(_0x3190b8(0x1a7),async()=>{const _0x166c28=_0x3190b8,{MESSAGE_TYPE:_0x173d2e}=await import(_0x166c28(0x1c3));expect(_0x173d2e)['toBeDefined'](),expect(_0x173d2e['USER_MESSAGE'])['toBe'](_0x166c28(0x1ad)),expect(_0x173d2e[_0x166c28(0x19b)])['toBe']('agent-response'),expect(_0x173d2e[_0x166c28(0x1a2)])['toBe'](_0x166c28(0x1be));}),test('MESSAGE_CONFIG\x20constants\x20are\x20defined',async()=>{const _0xb3af6f=_0x3190b8,{MESSAGE_CONFIG:_0x53a4ea}=await import(_0xb3af6f(0x1c3));expect(_0x53a4ea)['toBeDefined'](),expect(_0x53a4ea[_0xb3af6f(0x1b6)])[_0xb3af6f(0x1a0)](),expect(_0x53a4ea[_0xb3af6f(0x197)])[_0xb3af6f(0x1a0)](),expect(typeof _0x53a4ea[_0xb3af6f(0x1b6)])['toBe'](_0xb3af6f(0x18f)),expect(typeof _0x53a4ea[_0xb3af6f(0x197)])[_0xb3af6f(0x1b4)]('number');}),test('PAGINATION\x20constants\x20are\x20defined',async()=>{const _0x2766c2=_0x3190b8,{PAGINATION:_0x169971}=await import('../../config/constants.js');expect(_0x169971)[_0x2766c2(0x1a0)](),expect(_0x169971[_0x2766c2(0x1af)])[_0x2766c2(0x1a0)](),expect(_0x169971['MAX_PAGE_SIZE'])[_0x2766c2(0x1a0)](),expect(typeof _0x169971['PAGE_SIZE'])[_0x2766c2(0x1b4)]('number'),expect(typeof _0x169971[_0x2766c2(0x1b2)])[_0x2766c2(0x1b4)]('number');}),test(_0x3190b8(0x196),async()=>{const _0xdaff51=_0x3190b8,{WS_MESSAGE_TYPE:_0x38eed8}=await import(_0xdaff51(0x1c3));expect(_0x38eed8)[_0xdaff51(0x1a0)](),expect(_0x38eed8['MESSAGE_ADDED'])['toBe'](_0xdaff51(0x19a)),expect(_0x38eed8[_0xdaff51(0x192)])['toBe'](_0xdaff51(0x193)),expect(_0x38eed8[_0xdaff51(0x1a6)])['toBe']('execution_stopped');});}),describe(a0_0x47b20f(0x1c5),()=>{const _0x14cf6f=a0_0x47b20f;test(_0x14cf6f(0x19d),async()=>{const _0x3e8d12=_0x14cf6f,{useMessages:_0x2af611}=await import('../../state/useMessages.js'),{SessionManager:_0x69ca30}=await import(_0x3e8d12(0x1c6)),{MessageRouter:_0x415fdb}=await import(_0x3e8d12(0x195)),{WebSocketManager:_0x5215d3}=await import('../../api/websocket.js'),_0x20c113=new _0x69ca30(_0x3e8d12(0x190),0x1f90),_0x4a4fa1=new _0x5215d3(_0x3e8d12(0x190),0x1f90),_0xb26690=new _0x415fdb(_0x4a4fa1);expect(_0x20c113)['toBeDefined'](),expect(_0xb26690)[_0x3e8d12(0x1a0)](),expect(typeof _0x2af611)[_0x3e8d12(0x1b4)](_0x3e8d12(0x1a8));}),test('Full message management stack can be imported together',async()=>{const _0x53d274=_0x14cf6f,[_0x1d9f15,_0x52612f,_0x48dbd9,_0x32417d,_0x3b2db2]=await Promise[_0x53d274(0x191)]([import(_0x53d274(0x1c3)),import(_0x53d274(0x1c6)),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import(_0x53d274(0x1c7))]);expect(_0x1d9f15[_0x53d274(0x19f)])[_0x53d274(0x1a0)](),expect(_0x1d9f15[_0x53d274(0x1bb)])[_0x53d274(0x1a0)](),expect(_0x1d9f15['MESSAGE_CONFIG'])[_0x53d274(0x1a0)](),expect(_0x52612f['SessionManager'])[_0x53d274(0x1a0)](),expect(_0x48dbd9['WebSocketManager'])['toBeDefined'](),expect(_0x32417d['MessageRouter'])[_0x53d274(0x1a0)](),expect(_0x3b2db2[_0x53d274(0x1b3)])[_0x53d274(0x1a0)]();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x236c8c=a0_0x47b20f;test(_0x236c8c(0x19e),async()=>{const _0x4ae65d=_0x236c8c,{API_ENDPOINTS:_0x2bf0a7}=await import('../../config/constants.js');expect(_0x2bf0a7[_0x4ae65d(0x1b8)])[_0x4ae65d(0x1a0)](),expect(_0x2bf0a7[_0x4ae65d(0x1b8)])['toBe']('/api/orchestrator');}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x3a6a88=_0x236c8c,{API_ENDPOINTS:_0x47cc0e}=await import(_0x3a6a88(0x1c3));expect(_0x47cc0e[_0x3a6a88(0x1b8)])['toMatch'](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x33ff83=a0_0x47b20f;test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x42e000=a0_0x5a4c,{useMessages:_0x4fc5cc}=await import(_0x42e000(0x1c7));expect(_0x4fc5cc[_0x42e000(0x199)])[_0x42e000(0x1b4)](0x3);}),test(_0x33ff83(0x1b0),async()=>{const _0x3a8020=_0x33ff83,{useMessageCount:_0x52ddb9}=await import('../../state/useMessages.js');expect(_0x52ddb9[_0x3a8020(0x199)])[_0x3a8020(0x1b4)](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x471e01=a0_0x5a4c,{MESSAGE_CONFIG:_0xf9ad92}=await import('../../config/constants.js');expect(_0xf9ad92[_0x471e01(0x1b6)])[_0x471e01(0x1a9)](0x0),expect(_0xf9ad92[_0x471e01(0x1b6)])['toBeLessThanOrEqual'](0x186a0),expect(_0xf9ad92['MAX_MESSAGES_DISPLAY'])[_0x471e01(0x1a9)](0x0),expect(_0xf9ad92['MAX_MESSAGES_DISPLAY'])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x2f0ec5=a0_0x5a4c,{PAGINATION:_0xbfd8d3}=await import(_0x2f0ec5(0x1c3));expect(_0xbfd8d3['PAGE_SIZE'])['toBeGreaterThan'](0x0),expect(_0xbfd8d3[_0x2f0ec5(0x1af)])[_0x2f0ec5(0x1bf)](0x3e8),expect(_0xbfd8d3[_0x2f0ec5(0x1b2)])['toBeGreaterThanOrEqual'](_0xbfd8d3['PAGE_SIZE']);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x265027=a0_0x5a4c,{MESSAGE_ROLE:_0x1842dc}=await import(_0x265027(0x1c3));expect(_0x1842dc[_0x265027(0x1c1)])['toBe'](_0x1842dc['USER'][_0x265027(0x1bc)]()),expect(_0x1842dc[_0x265027(0x1ae)])[_0x265027(0x1b4)](_0x1842dc[_0x265027(0x1ae)][_0x265027(0x1bc)]()),expect(_0x1842dc['SYSTEM'])[_0x265027(0x1b4)](_0x1842dc[_0x265027(0x1b5)]['toLowerCase']());});}),describe('Message\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{const _0x3ea614=a0_0x47b20f;test(_0x3ea614(0x1ab),async()=>{const _0x4578d3=_0x3ea614,{MessageRouter:_0x4bd1b9}=await import(_0x4578d3(0x195)),{WebSocketManager:_0x2f56b2}=await import(_0x4578d3(0x1b9)),{WS_MESSAGE_TYPE:_0x282ba2}=await import(_0x4578d3(0x1c3)),_0x3108f5=new _0x2f56b2(_0x4578d3(0x190),0x1f90),_0x114d27=new _0x4bd1b9(_0x3108f5);expect(_0x114d27[_0x4578d3(0x1c2)](_0x282ba2[_0x4578d3(0x1a5)]))[_0x4578d3(0x1b4)](!![]),expect(_0x114d27['hasHandler'](_0x282ba2[_0x4578d3(0x192)]))['toBe'](!![]);});}),describe(a0_0x47b20f(0x198),()=>{const _0x2fa3c5=a0_0x47b20f;test(_0x2fa3c5(0x1c9),async()=>{const _0x49b494=_0x2fa3c5,{MESSAGE_CONFIG:_0x22079f}=await import('../../config/constants.js');expect(_0x22079f['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(typeof _0x22079f['MAX_MESSAGE_LENGTH'])[_0x49b494(0x1b4)]('number');const _0x471160='a'[_0x49b494(0x1b1)](_0x22079f['MAX_MESSAGE_LENGTH']+0x1);expect(_0x471160[_0x49b494(0x199)])['toBeGreaterThan'](_0x22079f['MAX_MESSAGE_LENGTH']);}),test(_0x2fa3c5(0x1c4),async()=>{const _0x4a581a=_0x2fa3c5,{MESSAGE_CONFIG:_0x4441b8}=await import('../../config/constants.js');expect(_0x4441b8['MAX_MESSAGES_DISPLAY'])[_0x4a581a(0x1a0)](),expect(typeof _0x4441b8['MAX_MESSAGES_DISPLAY'])['toBe'](_0x4a581a(0x18f)),expect(_0x4441b8[_0x4a581a(0x197)])['toBeGreaterThan'](0x0);});}),describe('Message\x20Management\x20-\x20Pagination\x20Logic',()=>{test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x555195=a0_0x5a4c,{PAGINATION:_0xb9cee0}=await import(_0x555195(0x1c3)),_0x1f6f01=0x0,_0x2b2562=_0x1f6f01*_0xb9cee0[_0x555195(0x1af)];expect(_0x2b2562)[_0x555195(0x1b4)](0x0);const _0x516c25=0x1,_0x12aa31=_0x516c25*_0xb9cee0['PAGE_SIZE'];expect(_0x12aa31)['toBe'](_0xb9cee0['PAGE_SIZE']);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0x12287c=a0_0x5a4c,{PAGINATION:_0x4d7e29}=await import(_0x12287c(0x1c3)),_0x469293=0x3e8,_0x17d8b7=Math['min'](_0x469293,_0x4d7e29['MAX_PAGE_SIZE']);expect(_0x17d8b7)[_0x12287c(0x1bf)](_0x4d7e29[_0x12287c(0x1b2)]);});});
@@ -1 +1 @@
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
+ const a0_0x59e042=a0_0x46f3;function a0_0x46f3(_0x4c35ed,_0x2ba4e8){_0x4c35ed=_0x4c35ed-0x131;const _0x2e45f4=a0_0x2e45();let _0x46f31e=_0x2e45f4[_0x4c35ed];if(a0_0x46f3['Qqcdoe']===undefined){var _0x4a26b4=function(_0x4576ed){const _0x2fb4be='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3b1028='',_0x1dddcd='';for(let _0x205a41=0x0,_0x4b3798,_0x1d4f72,_0x245f1c=0x0;_0x1d4f72=_0x4576ed['charAt'](_0x245f1c++);~_0x1d4f72&&(_0x4b3798=_0x205a41%0x4?_0x4b3798*0x40+_0x1d4f72:_0x1d4f72,_0x205a41++%0x4)?_0x3b1028+=String['fromCharCode'](0xff&_0x4b3798>>(-0x2*_0x205a41&0x6)):0x0){_0x1d4f72=_0x2fb4be['indexOf'](_0x1d4f72);}for(let _0x55856b=0x0,_0x49d222=_0x3b1028['length'];_0x55856b<_0x49d222;_0x55856b++){_0x1dddcd+='%'+('00'+_0x3b1028['charCodeAt'](_0x55856b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1dddcd);};a0_0x46f3['SRFBHx']=_0x4a26b4,a0_0x46f3['LYdCKz']={},a0_0x46f3['Qqcdoe']=!![];}const _0x5660b6=_0x2e45f4[0x0],_0x1fa5d2=_0x4c35ed+_0x5660b6,_0x5885b0=a0_0x46f3['LYdCKz'][_0x1fa5d2];return!_0x5885b0?(_0x46f31e=a0_0x46f3['SRFBHx'](_0x46f31e),a0_0x46f3['LYdCKz'][_0x1fa5d2]=_0x46f31e):_0x46f31e=_0x5885b0,_0x46f31e;}(function(_0x1726b8,_0x519c5c){const _0x3735c3=a0_0x46f3,_0x9a161b=_0x1726b8();while(!![]){try{const _0x23d4b9=-parseInt(_0x3735c3(0x17e))/0x1*(parseInt(_0x3735c3(0x168))/0x2)+parseInt(_0x3735c3(0x150))/0x3+parseInt(_0x3735c3(0x17a))/0x4+-parseInt(_0x3735c3(0x16e))/0x5+-parseInt(_0x3735c3(0x16c))/0x6+-parseInt(_0x3735c3(0x175))/0x7+parseInt(_0x3735c3(0x141))/0x8*(parseInt(_0x3735c3(0x15e))/0x9);if(_0x23d4b9===_0x519c5c)break;else _0x9a161b['push'](_0x9a161b['shift']());}catch(_0x12a753){_0x9a161b['push'](_0x9a161b['shift']());}}}(a0_0x2e45,0x6f298));import{describe,test,expect}from'@jest/globals';describe(a0_0x59e042(0x17f),()=>{test('useTools hook can be imported',async()=>{const _0x19a8d7=a0_0x46f3,{useTools:_0x3b1028}=await import('../../state/useTools.js');expect(_0x3b1028)[_0x19a8d7(0x138)](),expect(typeof _0x3b1028)['toBe'](_0x19a8d7(0x14b));}),test('useTools is default export',async()=>{const _0x484188=a0_0x46f3,module=await import(_0x484188(0x132));expect(module['default'])['toBeDefined'](),expect(typeof module[_0x484188(0x15c)])['toBe']('function'),expect(module['default'])[_0x484188(0x173)](module['useTools']);});}),describe(a0_0x59e042(0x179),()=>{const _0x3f2bb6=a0_0x59e042;test(_0x3f2bb6(0x13d),async()=>{const _0x1b28bb=_0x3f2bb6,{TOOL_CATEGORY:_0x1dddcd}=await import('../../config/constants.js');expect(_0x1dddcd)[_0x1b28bb(0x138)](),expect(_0x1dddcd['SYSTEM'])['toBeDefined'](),expect(_0x1dddcd[_0x1b28bb(0x14a)])[_0x1b28bb(0x138)](),expect(_0x1dddcd[_0x1b28bb(0x151)])['toBeDefined'](),expect(_0x1dddcd[_0x1b28bb(0x165)])[_0x1b28bb(0x138)](),expect(_0x1dddcd['COLLABORATION'])['toBeDefined'](),expect(_0x1dddcd['AI'])[_0x1b28bb(0x138)]();}),test('TOOL_CATEGORY\x20values\x20are\x20lowercase',async()=>{const _0x46b3ca=_0x3f2bb6,{TOOL_CATEGORY:_0x205a41}=await import(_0x46b3ca(0x154));expect(_0x205a41[_0x46b3ca(0x156)])[_0x46b3ca(0x173)](_0x205a41[_0x46b3ca(0x156)][_0x46b3ca(0x158)]()),expect(_0x205a41['AUTOMATION'])['toBe'](_0x205a41[_0x46b3ca(0x14a)]['toLowerCase']()),expect(_0x205a41['ANALYSIS'])['toBe'](_0x205a41['ANALYSIS'][_0x46b3ca(0x158)]()),expect(_0x205a41['UTILITY'])['toBe'](_0x205a41[_0x46b3ca(0x165)]['toLowerCase']());}),test('Tools\x20API\x20endpoint\x20is\x20defined',async()=>{const _0x427ce9=_0x3f2bb6,{API_ENDPOINTS:_0x4b3798}=await import('../../config/constants.js');expect(_0x4b3798['TOOLS'])[_0x427ce9(0x138)](),expect(_0x4b3798[_0x427ce9(0x139)])['toBe'](_0x427ce9(0x145));}),test(_0x3f2bb6(0x178),async()=>{const _0x2b0234=_0x3f2bb6,{API_ENDPOINTS:_0x1d4f72}=await import('../../config/constants.js');expect(_0x1d4f72['ORCHESTRATOR'])['toBeDefined'](),expect(_0x1d4f72[_0x2b0234(0x155)])[_0x2b0234(0x173)](_0x2b0234(0x143));});}),describe('Tools\x20Management\x20-\x20Integration',()=>{test('useTools\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x4c057c=a0_0x46f3,{useTools:_0x245f1c}=await import(_0x4c057c(0x132)),{SessionManager:_0x55856b}=await import(_0x4c057c(0x14d)),{MessageRouter:_0x49d222}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x3766de}=await import('../../api/websocket.js'),_0x4fefe9=new _0x55856b(_0x4c057c(0x164),0x1f90),_0x279b4d=new _0x3766de('localhost',0x1f90),_0x20a7f1=new _0x49d222(_0x279b4d);expect(_0x4fefe9)['toBeDefined'](),expect(_0x20a7f1)[_0x4c057c(0x138)](),expect(typeof _0x245f1c)['toBe'](_0x4c057c(0x14b));}),test('Full tools management stack can be imported together',async()=>{const _0x3e151c=a0_0x46f3,[_0x168e7a,_0x3075a9,_0x41492a,_0x436e19,_0x4b691a]=await Promise['all']([import(_0x3e151c(0x154)),import('../../api/session.js'),import(_0x3e151c(0x136)),import(_0x3e151c(0x140)),import(_0x3e151c(0x132))]);expect(_0x168e7a[_0x3e151c(0x135)])['toBeDefined'](),expect(_0x168e7a[_0x3e151c(0x16d)])['toBeDefined'](),expect(_0x3075a9['SessionManager'])['toBeDefined'](),expect(_0x41492a['WebSocketManager'])['toBeDefined'](),expect(_0x436e19['MessageRouter'])[_0x3e151c(0x138)](),expect(_0x4b691a[_0x3e151c(0x157)])['toBeDefined']();});}),describe('Tools\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x317cd1=a0_0x59e042;test('Tools\x20endpoint\x20follows\x20RESTful\x20pattern',async()=>{const _0x2566ba=a0_0x46f3,{API_ENDPOINTS:_0x3f4e2c}=await import(_0x2566ba(0x154));expect(_0x3f4e2c['TOOLS'])[_0x2566ba(0x13b)](/^\/api\//),expect(_0x3f4e2c[_0x2566ba(0x139)])['toBe']('/api/tools');}),test(_0x317cd1(0x15a),async()=>{const _0x606bb2=_0x317cd1,{API_ENDPOINTS:_0x25df38}=await import(_0x606bb2(0x154));expect(_0x25df38[_0x606bb2(0x155)])[_0x606bb2(0x138)](),expect(_0x25df38[_0x606bb2(0x155)])['toBe'](_0x606bb2(0x143));});}),describe('Tools\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useTools\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x56bae4=a0_0x46f3,{useTools:_0x5620cf}=await import(_0x56bae4(0x132));expect(_0x5620cf['length'])[_0x56bae4(0x173)](0x3);});}),describe(a0_0x59e042(0x163),()=>{const _0x37db4f=a0_0x59e042;test(_0x37db4f(0x14f),async()=>{const _0x1dfb65=_0x37db4f,{TOOL_CATEGORY:_0x3dd337}=await import(_0x1dfb65(0x154)),_0x353c0e=Object[_0x1dfb65(0x16f)](_0x3dd337);expect(_0x353c0e)[_0x1dfb65(0x174)](_0x1dfb65(0x156)),expect(_0x353c0e)['toContain']('AUTOMATION'),expect(_0x353c0e)['toContain'](_0x1dfb65(0x151)),expect(_0x353c0e)['toContain']('UTILITY'),expect(_0x353c0e)[_0x1dfb65(0x174)]('COLLABORATION'),expect(_0x353c0e)[_0x1dfb65(0x174)]('AI');}),test('TOOL_CATEGORY\x20values\x20match\x20expected\x20format',async()=>{const _0x11b7bb=_0x37db4f,{TOOL_CATEGORY:_0x1c31f8}=await import(_0x11b7bb(0x154));expect(_0x1c31f8['SYSTEM'])[_0x11b7bb(0x13b)](/^[a-z_]+$/),expect(_0x1c31f8[_0x11b7bb(0x14a)])['toMatch'](/^[a-z_]+$/),expect(_0x1c31f8[_0x11b7bb(0x151)])['toMatch'](/^[a-z_]+$/),expect(_0x1c31f8['UTILITY'])[_0x11b7bb(0x13b)](/^[a-z_]+$/);});}),describe('Tools\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{const _0x3e8f80=a0_0x59e042;test(_0x3e8f80(0x152),async()=>{const _0x49221c=_0x3e8f80,{MessageRouter:_0x16b4ad}=await import(_0x49221c(0x140)),{WebSocketManager:_0x1b668e}=await import(_0x49221c(0x136)),_0x3f0361=new _0x1b668e('localhost',0x1f90),_0x211e4d=new _0x16b4ad(_0x3f0361);expect(_0x211e4d['hasHandler'])['toBeDefined'](),expect(typeof _0x211e4d['hasHandler'])[_0x49221c(0x173)]('function');});}),describe(a0_0x59e042(0x160),()=>{test('TOOL_CATEGORY\x20can\x20be\x20used\x20to\x20filter\x20tools\x20by\x20category',async()=>{const _0x9f823b=a0_0x46f3,{TOOL_CATEGORY:_0xa79b46}=await import(_0x9f823b(0x154)),_0x46f821=[{'name':_0x9f823b(0x14c),'category':_0xa79b46[_0x9f823b(0x156)]},{'name':'terminal','category':_0xa79b46['SYSTEM']},{'name':_0x9f823b(0x13a),'category':_0xa79b46[_0x9f823b(0x151)]},{'name':_0x9f823b(0x13c),'category':_0xa79b46['UTILITY']},{'name':'ai_assistant','category':_0xa79b46['AI']}],_0x239a3d=_0x46f821[_0x9f823b(0x171)](_0x5184ff=>_0x5184ff['category']===_0xa79b46['SYSTEM']),_0x16dfc9=_0x46f821[_0x9f823b(0x171)](_0x41c2df=>_0x41c2df[_0x9f823b(0x166)]===_0xa79b46[_0x9f823b(0x151)]),_0x456644=_0x46f821[_0x9f823b(0x171)](_0x434d00=>_0x434d00[_0x9f823b(0x166)]===_0xa79b46[_0x9f823b(0x165)]),_0x3c5c84=_0x46f821[_0x9f823b(0x171)](_0x174598=>_0x174598['category']===_0xa79b46['AI']);expect(_0x239a3d[_0x9f823b(0x14e)])[_0x9f823b(0x173)](0x2),expect(_0x16dfc9['length'])['toBe'](0x1),expect(_0x456644[_0x9f823b(0x14e)])[_0x9f823b(0x173)](0x1),expect(_0x3c5c84['length'])[_0x9f823b(0x173)](0x1),expect(_0x239a3d[0x0][_0x9f823b(0x169)])['toBe'](_0x9f823b(0x14c)),expect(_0x16dfc9[0x0]['name'])['toBe'](_0x9f823b(0x13a));});}),describe('Tools\x20Management\x20-\x20Tool\x20Search',()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x15239c=a0_0x46f3,_0x421abb=[{'name':_0x15239c(0x176),'description':'Read\x20contents\x20of\x20a\x20file'},{'name':_0x15239c(0x159),'description':_0x15239c(0x133)},{'name':'analyze_code','description':_0x15239c(0x16a)}],_0x229397=_0x4354f9=>{const _0x574148=_0x15239c,_0xc80b3e=_0x4354f9[_0x574148(0x158)]();return _0x421abb['filter'](_0x321de2=>_0x321de2['name']?.['toLowerCase']()[_0x574148(0x17b)](_0xc80b3e)||_0x321de2['description']?.[_0x574148(0x158)]()['includes'](_0xc80b3e));},_0x260b93=_0x229397(_0x15239c(0x149));expect(_0x260b93[_0x15239c(0x14e)])['toBe'](0x2),expect(_0x260b93[_0x15239c(0x144)](_0x13a51f=>_0x13a51f[_0x15239c(0x169)]))[_0x15239c(0x174)](_0x15239c(0x176)),expect(_0x260b93['map'](_0x47f929=>_0x47f929[_0x15239c(0x169)]))[_0x15239c(0x174)](_0x15239c(0x159));const _0x3b67e8=_0x229397('analyze');expect(_0x3b67e8['length'])[_0x15239c(0x173)](0x1),expect(_0x3b67e8[0x0]['name'])[_0x15239c(0x173)](_0x15239c(0x13a));});}),describe(a0_0x59e042(0x13e),()=>{const _0x16fca7=a0_0x59e042;test(_0x16fca7(0x17d),async()=>{const _0x4c665d=_0x16fca7,_0x56054c=new Set();_0x56054c[_0x4c665d(0x177)]('read_file'),_0x56054c[_0x4c665d(0x177)](_0x4c665d(0x13a)),expect(_0x56054c['has']('read_file'))[_0x4c665d(0x173)](!![]),expect(_0x56054c['has'](_0x4c665d(0x13a)))[_0x4c665d(0x173)](!![]),expect(_0x56054c['size'])[_0x4c665d(0x173)](0x2),_0x56054c[_0x4c665d(0x170)](_0x4c665d(0x176)),expect(_0x56054c[_0x4c665d(0x147)](_0x4c665d(0x176)))['toBe'](![]),expect(_0x56054c[_0x4c665d(0x147)](_0x4c665d(0x13a)))['toBe'](!![]),expect(_0x56054c[_0x4c665d(0x137)])['toBe'](0x1);}),test(_0x16fca7(0x15b),async()=>{const _0x34a79c=_0x16fca7,_0x22d2ae=new Map();_0x22d2ae[_0x34a79c(0x13f)]('exec-1',{'success':!![],'data':'file\x20contents'}),_0x22d2ae['set']('exec-2',{'success':!![],'data':{'issues':[]}}),expect(_0x22d2ae[_0x34a79c(0x162)](_0x34a79c(0x153)))['toBeDefined'](),expect(_0x22d2ae['get']('exec-1')[_0x34a79c(0x161)])['toBe'](!![]),expect(_0x22d2ae[_0x34a79c(0x162)]('exec-1')['data'])[_0x34a79c(0x173)](_0x34a79c(0x15d)),expect(_0x22d2ae[_0x34a79c(0x162)]('exec-2'))[_0x34a79c(0x138)](),expect(_0x22d2ae['get']('exec-2')[_0x34a79c(0x131)]['issues'])[_0x34a79c(0x16b)]([]),expect(_0x22d2ae['size'])[_0x34a79c(0x173)](0x2);});}),describe(a0_0x59e042(0x134),()=>{test('Tool\x20cache\x20supports\x20TTL-based\x20caching',async()=>{const _0x43ec25=0x927c0;let _0x5d6057=null,_0x20b132=0x0;const _0x265ba8=[{'name':'read_file'}];_0x5d6057=_0x265ba8,_0x20b132=Date['now']();const _0x39d49e=Date['now'](),_0x2f6041=_0x39d49e-_0x20b132<_0x43ec25;expect(_0x2f6041)['toBe'](!![]),expect(_0x5d6057)['toBe'](_0x265ba8);}),test('Tool\x20cache\x20expires\x20after\x20TTL',async()=>{const _0x3d75dd=a0_0x46f3,_0x4c271f=0x64;let _0x16f11a=null,_0x52ac5e=0x0;const _0x332ecb=[{'name':'read_file'}];_0x16f11a=_0x332ecb,_0x52ac5e=Date['now'](),await new Promise(_0x21d777=>setTimeout(_0x21d777,0x96));const _0x40d02e=Date[_0x3d75dd(0x17c)](),_0x3298e8=_0x40d02e-_0x52ac5e<_0x4c271f;expect(_0x3298e8)[_0x3d75dd(0x173)](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{const _0x2617af=a0_0x59e042;test(_0x2617af(0x146),async()=>{const _0x106891=_0x2617af,{TOOL_CATEGORY:_0x273973}=await import(_0x106891(0x154)),_0x5cbe8f=[{'name':'execute_command','category':_0x273973['SYSTEM'],'enabled':!![]},{'name':'terminal','category':_0x273973['SYSTEM'],'enabled':![]},{'name':'analyze_code','category':_0x273973['ANALYSIS'],'enabled':!![]}],_0x13f5cf=_0x39384c=>{const _0xb07fce=_0x106891;let _0x46da28=[..._0x5cbe8f];return _0x39384c['category']&&(_0x46da28=_0x46da28['filter'](_0x2978e1=>_0x2978e1['category']===_0x39384c['category'])),_0x39384c['enabled']!==undefined&&(_0x46da28=_0x46da28['filter'](_0x33b971=>_0x33b971['enabled']===_0x39384c[_0xb07fce(0x172)])),_0x46da28;},_0x181b7e=_0x13f5cf({'category':_0x273973[_0x106891(0x156)]});expect(_0x181b7e['length'])[_0x106891(0x173)](0x2);const _0x70f141=_0x13f5cf({'enabled':!![]});expect(_0x70f141[_0x106891(0x14e)])['toBe'](0x2);const _0x577e94=_0x13f5cf({'category':_0x273973[_0x106891(0x156)],'enabled':!![]});expect(_0x577e94['length'])['toBe'](0x1),expect(_0x577e94[0x0][_0x106891(0x169)])['toBe'](_0x106891(0x14c));});}),describe(a0_0x59e042(0x15f),()=>{const _0x35c58a=a0_0x59e042;test(_0x35c58a(0x148),async()=>{const _0x4dec74=_0x35c58a,{TOOL_CATEGORY:_0x1c6fd6}=await import('../../config/constants.js'),_0x1a1d86=[{'name':_0x4dec74(0x14c),'category':_0x1c6fd6['SYSTEM']},{'name':_0x4dec74(0x142),'category':_0x1c6fd6['SYSTEM']},{'name':_0x4dec74(0x13a),'category':_0x1c6fd6[_0x4dec74(0x151)]},{'name':'web_search','category':_0x1c6fd6[_0x4dec74(0x165)]}],_0x237a80=_0x482170=>{const _0x31ae98=_0x4dec74,_0x125827={};for(const _0x4e40d8 of Object[_0x31ae98(0x167)](_0x1c6fd6)){_0x125827[_0x4e40d8]=_0x482170['filter'](_0x462b53=>_0x462b53[_0x31ae98(0x166)]===_0x4e40d8)[_0x31ae98(0x14e)];}return _0x125827;},_0x40e68d=_0x237a80(_0x1a1d86);expect(_0x40e68d[_0x1c6fd6[_0x4dec74(0x156)]])['toBe'](0x2),expect(_0x40e68d[_0x1c6fd6[_0x4dec74(0x151)]])['toBe'](0x1),expect(_0x40e68d[_0x1c6fd6['UTILITY']])[_0x4dec74(0x173)](0x1),expect(_0x40e68d[_0x1c6fd6[_0x4dec74(0x14a)]])['toBe'](0x0);});});function a0_0x2e45(){const _0xbec6f7=['ve9ptfm','yw5HBhL6zv9JB2rL','Dg9nyxrJAa','D2vIx3nLyxjJAa','ve9ptf9dqvrfr09swsbJB25ZDgfUDhmGyxjLigrLzMLUzwq','vg9VBhmGtwfUywDLBwvUDcaTiev4zwn1DgLVBIbtDgf0zsbuCMfJA2LUzW','C2v0','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','mJryCejIsM4','DgvYBwLUywW','l2fWAs9VCMnOzxn0CMf0B3i','BwfW','l2fWAs90B29SCW','vg9VBhmGy2fUigjLigzPBhrLCMvKigj5ig11BhrPCgXLignYAxrLCMLH','AgfZ','q2f0zwDVCNKGy291BNrZignHBIbIzsbJywXJDwXHDgvK','zMLSzq','qvvut01bveLptG','zNvUy3rPB24','zxHLy3v0zv9JB21Tyw5K','lI4VlI4VyxbPl3nLC3nPB24UANm','BgvUz3rO','ve9ptf9dqvrfr09swsbPBMnSDwrLCYbHBgWGBwfQB3iGy2f0zwDVCMLLCW','nJGZnZu0uwXNwNLN','qu5btfLtsvm','twvZC2fNzvjVDxrLCIbOyxmGDg9VBcbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','zxHLyY0X','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','t1jdsevtvfjbve9s','u1Ltvevn','DxnLvg9VBhm','Dg9mB3DLCKnHC2u','D3jPDgvFzMLSzq','vg9VBcbVCgvYyxrPB25ZihvZzsbVCMnOzxn0CMf0B3iGzw5KCg9PBNq','vg9VBcbYzxn1BhrZignHBIbIzsbZDg9YzwqGyNKGzxHLy3v0Aw9UieLe','zgvMyxvSDa','zMLSzsbJB250zw50CW','mZu3ntCYn0rQwvD4CW','vg9VBhmGtwfUywDLBwvUDcaTienHDgvNB3j5ienVDw50CW','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2f0zwDVCML6yxrPB24','C3vJy2vZCW','z2v0','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CYbwywXPzgf0Aw9U','Bg9JywXOB3n0','vvrjteLuwq','y2f0zwDVCNK','DMfSDwvZ','mteZndGXoeXJtNbLuW','BMfTzq','ugvYzM9YBsbZDgf0AwmGy29KzsbHBMfSExnPCW','Dg9fCxvHBa','mZm0otC0EeDPwLnR','qvbjx0vorfbpsu5uuW','mZGYodG2meDIrwDSyW','A2v5CW','zgvSzxrL','zMLSDgvY','zw5HyMXLza','Dg9czq','Dg9dB250ywLU','ndK3mZKYEhnxEfDq','CMvHzf9MAwXL','ywrK','t3jJAgvZDhjHDg9YigvUzhbVAw50igLZihvZzwqGzM9YihrVB2WGB3bLCMf0Aw9UCW','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CW','mtK4mJiZnM5Uue9iEG','Aw5JBhvKzxm','BM93','rxHLy3v0Aw9Uihn0yxrLignHBIb0CMfJAYbTDwX0AxbSzsb0B29SCW','murmuwnvAW','vg9VBhmGtwfUywDLBwvUDcaTieLTCg9YDhm','zgf0yq','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','v3jPDguGzgf0ysb0BYbHigzPBgu','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','ve9ptf9dqvrfr09swq','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','C2L6zq','Dg9czurLzMLUzwq'];a0_0x2e45=function(){return _0xbec6f7;};return a0_0x2e45();}
@@ -1 +1 @@
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
+ const a0_0x2c849a=a0_0x1e94;(function(_0x242c88,_0x156610){const _0x49784e=a0_0x1e94,_0x48ef8b=_0x242c88();while(!![]){try{const _0x5e6384=parseInt(_0x49784e(0x1fd))/0x1+parseInt(_0x49784e(0x202))/0x2*(parseInt(_0x49784e(0x1fe))/0x3)+-parseInt(_0x49784e(0x1f6))/0x4*(parseInt(_0x49784e(0x1fa))/0x5)+parseInt(_0x49784e(0x1ff))/0x6*(parseInt(_0x49784e(0x1ee))/0x7)+parseInt(_0x49784e(0x1e8))/0x8+-parseInt(_0x49784e(0x1ea))/0x9*(-parseInt(_0x49784e(0x1f0))/0xa)+-parseInt(_0x49784e(0x1e1))/0xb;if(_0x5e6384===_0x156610)break;else _0x48ef8b['push'](_0x48ef8b['shift']());}catch(_0x341283){_0x48ef8b['push'](_0x48ef8b['shift']());}}}(a0_0x1228,0xc5e4c));import{ERROR_MESSAGE}from'../config/constants.js';export class ApiClient{constructor(_0x40d04f,_0x5bd6ff=null){const _0x55188a=a0_0x1e94;this[_0x55188a(0x1e6)]=_0x40d04f,this['apiKey']=_0x5bd6ff;}[a0_0x2c849a(0x1e9)](_0x309ee7){const _0x2aaff9=a0_0x2c849a;this[_0x2aaff9(0x1df)]=_0x309ee7;}[a0_0x2c849a(0x1f4)](){const _0x1a00c7=a0_0x2c849a;return this[_0x1a00c7(0x1df)];}['clearApiKey'](){const _0xd10244=a0_0x2c849a;this[_0xd10244(0x1df)]=null;}[a0_0x2c849a(0x1fb)](_0x46dbe5={}){const _0x180361=a0_0x2c849a,_0x568622={'Content-Type':_0x180361(0x201),..._0x46dbe5};return this[_0x180361(0x1df)]&&(_0x568622['Authorization']='Bearer\x20'+this[_0x180361(0x1df)]),_0x568622;}async[a0_0x2c849a(0x1e5)](_0x5cdefc,_0x22d4e7,_0x5505b3={}){const _0xa5c5ac=a0_0x2c849a,{body:body=null,headers:headers={},query:query=null}=_0x5505b3;let _0x10ade9=''+this[_0xa5c5ac(0x1e6)]+_0x22d4e7;if(query){const _0x1e7121=new URLSearchParams(query)['toString']();_0x10ade9+='?'+_0x1e7121;}const _0x50b230={'method':_0x5cdefc,'headers':this['buildHeaders'](headers)};body&&[_0xa5c5ac(0x1eb),'PUT','PATCH'][_0xa5c5ac(0x1de)](_0x5cdefc[_0xa5c5ac(0x1f2)]())&&(_0x50b230['body']=JSON[_0xa5c5ac(0x1e2)](body));try{const _0x2555b2=await fetch(_0x10ade9,_0x50b230),_0x443268=await _0x2555b2[_0xa5c5ac(0x1f5)]()[_0xa5c5ac(0x1dd)](()=>({}));if(!_0x2555b2['ok']){const _0x36ff3d=new Error(_0x443268[_0xa5c5ac(0x1ec)]||'HTTP\x20'+_0x2555b2[_0xa5c5ac(0x200)]+':\x20'+_0x2555b2[_0xa5c5ac(0x1f1)]);_0x36ff3d['status']=_0x2555b2[_0xa5c5ac(0x200)],_0x36ff3d['response']=_0x443268;throw _0x36ff3d;}return _0x443268;}catch(_0x158bae){if(_0x158bae['message']['includes'](_0xa5c5ac(0x1f7))||_0x158bae[_0xa5c5ac(0x1fc)]==='TypeError'){const _0x60dfec=new Error(ERROR_MESSAGE[_0xa5c5ac(0x1f8)]+':\x20'+_0x158bae[_0xa5c5ac(0x1e4)]);_0x60dfec[_0xa5c5ac(0x1ef)]=_0x158bae;throw _0x60dfec;}throw _0x158bae;}}async[a0_0x2c849a(0x1e3)](_0x39aa2f,_0x4cc89d={}){return this['request']('GET',_0x39aa2f,_0x4cc89d);}async[a0_0x2c849a(0x1e7)](_0xb83526,_0x3255ea=null,_0x53ce42={}){const _0x5d9911=a0_0x2c849a;return this[_0x5d9911(0x1e5)](_0x5d9911(0x1eb),_0xb83526,{..._0x53ce42,'body':_0x3255ea});}async[a0_0x2c849a(0x1e0)](_0x2ffa03,_0x3a8007=null,_0x2c9b32={}){return this['request']('PUT',_0x2ffa03,{..._0x2c9b32,'body':_0x3a8007});}async[a0_0x2c849a(0x1ed)](_0x344171,_0x49bef8=null,_0x2c1981={}){return this['request']('PATCH',_0x344171,{..._0x2c1981,'body':_0x49bef8});}async[a0_0x2c849a(0x1f9)](_0x2bf9a5,_0x3f1371={}){const _0x36f8e6=a0_0x2c849a;return this[_0x36f8e6(0x1e5)]('DELETE',_0x2bf9a5,_0x3f1371);}}export function createApiClient(_0x4789fc=a0_0x2c849a(0x1f3),_0xfe0ad1=0x1f90,_0x4a2405=null){const _0xb9fb19='http://'+_0x4789fc+':'+_0xfe0ad1;return new ApiClient(_0xb9fb19,_0x4a2405);}function a0_0x1e94(_0x3fae8c,_0x5768ea){_0x3fae8c=_0x3fae8c-0x1dd;const _0x122876=a0_0x1228();let _0x1e94af=_0x122876[_0x3fae8c];if(a0_0x1e94['wZMQhg']===undefined){var _0x38d210=function(_0x1057b5){const _0x1d81de='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x40d04f='',_0x5bd6ff='';for(let _0x309ee7=0x0,_0x46dbe5,_0x568622,_0x5cdefc=0x0;_0x568622=_0x1057b5['charAt'](_0x5cdefc++);~_0x568622&&(_0x46dbe5=_0x309ee7%0x4?_0x46dbe5*0x40+_0x568622:_0x568622,_0x309ee7++%0x4)?_0x40d04f+=String['fromCharCode'](0xff&_0x46dbe5>>(-0x2*_0x309ee7&0x6)):0x0){_0x568622=_0x1d81de['indexOf'](_0x568622);}for(let _0x22d4e7=0x0,_0x5505b3=_0x40d04f['length'];_0x22d4e7<_0x5505b3;_0x22d4e7++){_0x5bd6ff+='%'+('00'+_0x40d04f['charCodeAt'](_0x22d4e7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5bd6ff);};a0_0x1e94['CAxlmu']=_0x38d210,a0_0x1e94['sVLqaB']={},a0_0x1e94['wZMQhg']=!![];}const _0x294b55=_0x122876[0x0],_0x36e1ca=_0x3fae8c+_0x294b55,_0xb7a4b6=a0_0x1e94['sVLqaB'][_0x36e1ca];return!_0xb7a4b6?(_0x1e94af=a0_0x1e94['CAxlmu'](_0x1e94af),a0_0x1e94['sVLqaB'][_0x36e1ca]=_0x1e94af):_0x1e94af=_0xb7a4b6,_0x1e94af;}function a0_0x1228(){const _0x309f73=['ntC4ntKWmLfnDK1PBW','ue9tva','zxjYB3i','Cgf0y2G','mtrSzvzdz2C','B3jPz2LUywXfCNjVCG','mtbfCKLIuhm','C3rHDhvZvgv4Da','Dg9vChbLCKnHC2u','Bg9JywXOB3n0','z2v0qxbPs2v5','ANnVBG','nJa3mZy0AhjHu0H4','zMv0y2G','tKvuv09ss19fuLjpuG','zgvSzxrL','ndbQzxHRCvm','yNvPBgrizwfKzxjZ','BMfTzq','mtq2oty0og5qDKvhCG','mtiWou5lCMToBG','mZu4mZG0mKvlB1buAG','C3rHDhvZ','yxbWBgLJyxrPB24VANnVBG','odaXmePgDNjqEq','y2f0y2G','Aw5JBhvKzxm','yxbPs2v5','Chv0','ndeZodiZndfUu3DZBeq','C3rYAw5NAwz5','z2v0','BwvZC2fNzq','CMvXDwvZDa','yMfZzvvYBa','Cg9ZDa','nJKYotqWoejYBK5wCq','C2v0qxbPs2v5'];a0_0x1228=function(){return _0x309f73;};return a0_0x1228();}export default ApiClient;
@@ -1 +1 @@
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
+ const a0_0xd5b808=a0_0x28d1;(function(_0x13163e,_0x361f49){const _0x38196a=a0_0x28d1,_0x1b8c47=_0x13163e();while(!![]){try{const _0x334749=-parseInt(_0x38196a(0x204))/0x1+parseInt(_0x38196a(0x20f))/0x2*(parseInt(_0x38196a(0x1f4))/0x3)+parseInt(_0x38196a(0x1f5))/0x4+-parseInt(_0x38196a(0x1ef))/0x5+parseInt(_0x38196a(0x1e9))/0x6+-parseInt(_0x38196a(0x1f6))/0x7*(parseInt(_0x38196a(0x1f9))/0x8)+parseInt(_0x38196a(0x206))/0x9*(parseInt(_0x38196a(0x1fa))/0xa);if(_0x334749===_0x361f49)break;else _0x1b8c47['push'](_0x1b8c47['shift']());}catch(_0x3c5e00){_0x1b8c47['push'](_0x1b8c47['shift']());}}}(a0_0x6e63,0xab7de));import{EventEmitter}from'events';import{WS_MESSAGE_TYPE}from'../config/constants.js';function a0_0x28d1(_0x1d11d9,_0x22dacd){_0x1d11d9=_0x1d11d9-0x1e9;const _0x6e63ae=a0_0x6e63();let _0x28d102=_0x6e63ae[_0x1d11d9];if(a0_0x28d1['StofBV']===undefined){var _0x3ddc82=function(_0x554176){const _0x352b0d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4b7666='',_0x5b7128='';for(let _0x2c00a9=0x0,_0x552eea,_0x121b17,_0x194bd2=0x0;_0x121b17=_0x554176['charAt'](_0x194bd2++);~_0x121b17&&(_0x552eea=_0x2c00a9%0x4?_0x552eea*0x40+_0x121b17:_0x121b17,_0x2c00a9++%0x4)?_0x4b7666+=String['fromCharCode'](0xff&_0x552eea>>(-0x2*_0x2c00a9&0x6)):0x0){_0x121b17=_0x352b0d['indexOf'](_0x121b17);}for(let _0x3e79cc=0x0,_0x4eed00=_0x4b7666['length'];_0x3e79cc<_0x4eed00;_0x3e79cc++){_0x5b7128+='%'+('00'+_0x4b7666['charCodeAt'](_0x3e79cc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5b7128);};a0_0x28d1['sEfURq']=_0x3ddc82,a0_0x28d1['SnThaN']={},a0_0x28d1['StofBV']=!![];}const _0x1a52fd=_0x6e63ae[0x0],_0x56ec0a=_0x1d11d9+_0x1a52fd,_0xf41f91=a0_0x28d1['SnThaN'][_0x56ec0a];return!_0xf41f91?(_0x28d102=a0_0x28d1['sEfURq'](_0x28d102),a0_0x28d1['SnThaN'][_0x56ec0a]=_0x28d102):_0x28d102=_0xf41f91,_0x28d102;}export class MessageRouter extends EventEmitter{constructor(_0x4b7666){super(),this['ws']=_0x4b7666,this['handlers']=new Map(),this['middleware']=[],this['ws']['on']('message',_0x5b7128=>this['route'](_0x5b7128)),this['registerDefaultHandlers']();}[a0_0xd5b808(0x20c)](){const _0x2edcea=a0_0xd5b808;this['registerHandler'](WS_MESSAGE_TYPE[_0x2edcea(0x1ee)],_0x2c00a9=>{const _0x138b9b=_0x2edcea;this[_0x138b9b(0x207)](_0x138b9b(0x1fb),_0x2c00a9['data']);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_MODE_CHANGED'],_0x552eea=>{this['emit']('agent:mode_changed',_0x552eea);}),this['registerHandler'](WS_MESSAGE_TYPE['EXECUTION_STOPPED'],_0x121b17=>{const _0x45e55f=_0x2edcea;this[_0x45e55f(0x207)]('agent:execution_stopped',_0x121b17[_0x45e55f(0x20b)]);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_ERROR'],_0x194bd2=>{const _0x4eab2c=_0x2edcea;this[_0x4eab2c(0x207)]('agent:error',_0x194bd2);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_WARNING'],_0x3e79cc=>{const _0x41d06b=_0x2edcea;this[_0x41d06b(0x207)](_0x41d06b(0x1f7),_0x3e79cc);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x2edcea(0x20d)],_0x4eed00=>{this['emit']('agent:imported',_0x4eed00['agent']);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0x1716aa=>{this['emit']('agent:communication',_0x1716aa['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x2edcea(0x208)],_0x2e57fd=>{const _0x429fb4=_0x2edcea;this[_0x429fb4(0x207)](_0x429fb4(0x1ec),_0x2e57fd[_0x429fb4(0x20b)]);}),this['registerHandler'](WS_MESSAGE_TYPE['IMAGE_RESULT'],_0x246281=>{const _0x575d5d=_0x2edcea;this[_0x575d5d(0x207)](_0x575d5d(0x1f2),_0x246281['data']);}),this['registerHandler'](WS_MESSAGE_TYPE['IMAGE_GENERATED'],_0x2b4437=>{const _0x3011aa=_0x2edcea;this[_0x3011aa(0x207)](_0x3011aa(0x209),_0x2b4437['data']);}),this['registerHandler'](WS_MESSAGE_TYPE['ERROR'],_0x5f105f=>{this['emit']('error',_0x5f105f);});}async['route'](_0x29f0fc){const _0x2479b4=a0_0xd5b808;let processedMessage=_0x29f0fc;for(const _0x53ec01 of this['middleware']){try{processedMessage=await _0x53ec01(processedMessage);if(!processedMessage)return;}catch(_0x58e4f3){this['emit']('middleware_error',{'error':_0x58e4f3,'message':_0x29f0fc});return;}}const _0xd05815=processedMessage['type'];if(!_0xd05815){this[_0x2479b4(0x207)]('invalid_message',processedMessage);return;}if(this[_0x2479b4(0x1ed)][_0x2479b4(0x200)](_0xd05815)){const _0x3b044e=this['handlers'][_0x2479b4(0x203)](_0xd05815);try{await _0x3b044e(processedMessage);}catch(_0x4b4220){this[_0x2479b4(0x207)]('handler_error',{'error':_0x4b4220,'message':processedMessage,'messageType':_0xd05815});}}this['emit']('message:'+_0xd05815,processedMessage),this['emit'](_0x2479b4(0x1fe),processedMessage);}[a0_0xd5b808(0x20a)](_0x2e260f,_0x50534a){const _0xfb4ad1=a0_0xd5b808;if(typeof _0x50534a!=='function')throw new Error(_0xfb4ad1(0x1ff));this[_0xfb4ad1(0x1ed)]['set'](_0x2e260f,_0x50534a);}['unregisterHandler'](_0x8a5e9b){this['handlers']['delete'](_0x8a5e9b);}[a0_0xd5b808(0x201)](_0x268ce0){const _0x6fc7b0=a0_0xd5b808;if(typeof _0x268ce0!=='function')throw new Error('Middleware\x20must\x20be\x20a\x20function');this[_0x6fc7b0(0x205)]['push'](_0x268ce0);}[a0_0xd5b808(0x1eb)](_0x1b5ba1){const _0x22f3fb=a0_0xd5b808,_0x2c86c9=this['middleware'][_0x22f3fb(0x202)](_0x1b5ba1);_0x2c86c9>-0x1&&this[_0x22f3fb(0x205)][_0x22f3fb(0x1fc)](_0x2c86c9,0x1);}[a0_0xd5b808(0x211)](){this['middleware']=[];}[a0_0xd5b808(0x1f0)](){const _0x167d6e=a0_0xd5b808;return Array[_0x167d6e(0x1f8)](this[_0x167d6e(0x1ed)]['keys']());}['hasHandler'](_0x5356dc){const _0xa50ff9=a0_0xd5b808;return this[_0xa50ff9(0x1ed)]['has'](_0x5356dc);}['clearHandlers'](){this['handlers']['clear']();}[a0_0xd5b808(0x1f3)](){this['clearHandlers'](),this['clearMiddleware'](),this['registerDefaultHandlers']();}}export function loggingMiddleware(_0x3a8015=console[a0_0xd5b808(0x1ea)]){return _0x3239c2=>{return _0x3a8015('[MessageRouter]',_0x3239c2['type'],_0x3239c2),_0x3239c2;};}function a0_0x6e63(){const _0x29892a=['q09nuefdveLptL9fvKvova','Aw1Hz2u6z2vUzxjHDgvK','CMvNAxn0zxjiyw5KBgvY','zgf0yq','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','quDftLrFsu1qt1juruq','twvZC2fNzsb2ywXPzgf0Aw9UigzHAwXLza','mKTjCe9Mvq','Dg9ju09tDhjPBMC','y2XLyxjnAwrKBgv3yxjL','nZGXnJGWnNjoy3viuG','Bg9N','CMvTB3zLtwLKzgXLD2fYzq','y29UDMvYC2f0Aw9UoMnVBxbHy3rPB24','AgfUzgXLCNm','tuvtu0fhrv9brerfra','nta3mtq0mgTWv214AG','z2v0uMvNAxn0zxjLzfr5CgvZ','Aw5JBhvKzxm','Aw1Hz2u6CMvZDwX0','CMvZzxq','mte2mdC2m1Lds1jtra','nduWmJaYmhnjBxDpAW','mZvKA1bjrei','ywDLBNq6D2fYBMLUzW','zNjVBq','mtC4mJi1nK5pBxzuEG','nJqYodK4mg9fuezjra','ywDLBNq6BwvZC2fNzv9HzgrLza','C3bSAwnL','DhLWzq','BwvZC2fNzq','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','AgfZ','DxnL','Aw5KzxHpzG','z2v0','mti3mdm5nvbZuKzvCq','BwLKzgXLD2fYzq','mtH4z0ndsMG','zw1PDa'];a0_0x6e63=function(){return _0x29892a;};return a0_0x6e63();}export function filterMiddleware(_0x339a2a){return _0x5b0c3e=>{const _0x5b031f=a0_0x28d1;if(_0x339a2a[_0x5b031f(0x1f1)](_0x5b0c3e[_0x5b031f(0x1fd)]))return _0x5b0c3e;return null;};}export function transformMiddleware(_0x1614ad){return async _0xdafa3b=>{return await _0x1614ad(_0xdafa3b);};}export function timestampMiddleware(){return _0x48f4e8=>{const _0x5878d9=a0_0x28d1;return{..._0x48f4e8,'receivedAt':new Date()[_0x5878d9(0x210)]()};};}export function validationMiddleware(_0xec8d6){return _0x47a108=>{const _0x1fb150=a0_0x28d1;if(_0xec8d6(_0x47a108))return _0x47a108;throw new Error(_0x1fb150(0x20e));};}export default MessageRouter;
@@ -1 +1 @@
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
+ const a0_0x1aed56=a0_0x3b58;(function(_0x37f8f9,_0x4d2390){const _0x1d1630=a0_0x3b58,_0x29b66a=_0x37f8f9();while(!![]){try{const _0x2853b9=-parseInt(_0x1d1630(0x1a8))/0x1*(parseInt(_0x1d1630(0x1cb))/0x2)+parseInt(_0x1d1630(0x1ca))/0x3+-parseInt(_0x1d1630(0x1c7))/0x4+parseInt(_0x1d1630(0x1c6))/0x5+parseInt(_0x1d1630(0x1bf))/0x6+-parseInt(_0x1d1630(0x1ac))/0x7+parseInt(_0x1d1630(0x1a7))/0x8;if(_0x2853b9===_0x4d2390)break;else _0x29b66a['push'](_0x29b66a['shift']());}catch(_0x4c732f){_0x29b66a['push'](_0x29b66a['shift']());}}}(a0_0x4964,0x59c56));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';function a0_0x3b58(_0x3f9778,_0x1fcc84){_0x3f9778=_0x3f9778-0x19d;const _0x4964e7=a0_0x4964();let _0x3b5853=_0x4964e7[_0x3f9778];if(a0_0x3b58['upDrtU']===undefined){var _0x2e3b58=function(_0x4f17a2){const _0x2e9341='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x144a18='',_0x4a49b4='';for(let _0x3dc347=0x0,_0xdf1a23,_0x119eee,_0x453338=0x0;_0x119eee=_0x4f17a2['charAt'](_0x453338++);~_0x119eee&&(_0xdf1a23=_0x3dc347%0x4?_0xdf1a23*0x40+_0x119eee:_0x119eee,_0x3dc347++%0x4)?_0x144a18+=String['fromCharCode'](0xff&_0xdf1a23>>(-0x2*_0x3dc347&0x6)):0x0){_0x119eee=_0x2e9341['indexOf'](_0x119eee);}for(let _0x5c7168=0x0,_0x51134d=_0x144a18['length'];_0x5c7168<_0x51134d;_0x5c7168++){_0x4a49b4+='%'+('00'+_0x144a18['charCodeAt'](_0x5c7168)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4a49b4);};a0_0x3b58['auqAFZ']=_0x2e3b58,a0_0x3b58['OEwjWV']={},a0_0x3b58['upDrtU']=!![];}const _0x515a59=_0x4964e7[0x0],_0x14d6d8=_0x3f9778+_0x515a59,_0x3aa05f=a0_0x3b58['OEwjWV'][_0x14d6d8];return!_0x3aa05f?(_0x3b5853=a0_0x3b58['auqAFZ'](_0x3b5853),a0_0x3b58['OEwjWV'][_0x14d6d8]=_0x3b5853):_0x3b5853=_0x3aa05f,_0x3b5853;}function a0_0x4964(){const _0x4d9df5=['C2vZC2LVBG','BgfZDefJDgL2Axr5','ue9tva','BwvZC2fNzq','Bg94AwfbCgLlzxK','y3jLyxrLu2vZC2LVBG','z2v0uhjVAMvJDerPCG','DgLTzxn0yw1W','yMfZzvvYBa','BgvUz3rO','Aw5PDgLHBgL6zq','Ahr0CdOVlW','y2HLy2TizwfSDgG','zxjYB3i','oNnLC3nPB25jza','AxnwywXPza','ChjVAMvJDerPCG','BwfRzvjLCxvLC3q','mZKWmZC1nND1AK9Tza','z2v0u2vZC2LVBKLK','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CZOG','revgqvvmvf9qt1ju','rMfPBgvKihrVihnLDcbbueKGA2v5CZOG','z2v0u2vZC2LVBKLUzM8','u0vtu0LptL9jtLzbteLe','mtm3nJa0mhzxre56Aa','mty5mdKZnNDLqvj4uG','yxbPq2XPzw50','s0vzu19trvq','nde5nJa3yKHbqK5e','mJe0nJy2DeD6DgHI','C2v0qxbPs2v5','AgfZtg94AwflzxK','C3vJy2vZCW','s0vzu19hrvq','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CZOG','DMvUzg9Ys2v5CW','r0vu','revgqvvmvf9it1nu','y3DK','zgvSzxrLqxbPs2v5CW','y3jLyxrLzef0','mZG4mtC0ngz0EwveyW','mxzgq0zeEq','C2vZC2LVBKLK','Ag9ZDa','s0vzu19eruXfveu','ndu3mJa2neXPqMPmEq'];a0_0x4964=function(){return _0x4d9df5;};return a0_0x4964();}import{ApiClient}from'./apiClient.js';export class SessionManager{constructor(_0x144a18=NETWORK[a0_0x1aed56(0x1a3)],_0x4a49b4=NETWORK[a0_0x1aed56(0x1c2)]){const _0x30e7e2=a0_0x1aed56;this[_0x30e7e2(0x1aa)]=_0x144a18,this['port']=_0x4a49b4,this[_0x30e7e2(0x1b5)]=_0x30e7e2(0x1b8)+_0x144a18+':'+_0x4a49b4,this[_0x30e7e2(0x1a9)]=null,this['projectDir']=null,this[_0x30e7e2(0x1a6)]=null,this['lastActivity']=null,this['loxiaApiKey']=null,this['vendorKeys']={},this['apiClient']=new ApiClient(this['baseUrl'],this[_0x30e7e2(0x1b1)]);}async[a0_0x1aed56(0x1b2)](_0x3dc347=process['cwd']()){const _0x2636ca=a0_0x1aed56;try{const _0xdf1a23=await this['makeRequest'](_0x2636ca(0x1af),API_ENDPOINTS['SESSION_CREATE'],{'projectDir':_0x3dc347});if(_0xdf1a23['success']&&_0xdf1a23['session'])return this['sessionId']=_0xdf1a23['session']['id'],this[_0x2636ca(0x1bd)]=_0x3dc347,this[_0x2636ca(0x1a6)]=_0xdf1a23['session']['createdAt'],this['lastActivity']=_0xdf1a23[_0x2636ca(0x1ad)][_0x2636ca(0x1ae)],{'success':!![],'sessionId':this['sessionId'],'session':_0xdf1a23[_0x2636ca(0x1ad)]};else throw new Error(_0xdf1a23[_0x2636ca(0x1ba)]||ERROR_MESSAGE['SESSION_CREATE_FAILED']);}catch(_0x119eee){throw new Error(ERROR_MESSAGE['SESSION_CREATE_FAILED']+':\x20'+_0x119eee['message']);}}async['setApiKeys'](_0x453338=null,_0x5c7168={}){const _0x589715=a0_0x1aed56;if(!this[_0x589715(0x1a9)])throw new Error(ERROR_MESSAGE[_0x589715(0x1c5)]);try{const _0x51134d=await this[_0x589715(0x1be)]('POST',API_ENDPOINTS[_0x589715(0x1c9)],{'sessionId':this[_0x589715(0x1a9)],'loxiaApiKey':_0x453338,'vendorKeys':_0x5c7168});if(_0x51134d[_0x589715(0x19e)])return this[_0x589715(0x1b1)]=_0x453338,this[_0x589715(0x1a1)]=_0x5c7168,this[_0x589715(0x1c8)][_0x589715(0x1cc)](_0x453338),{'success':!![],'message':_0x51134d['message'],'hasLoxiaKey':_0x51134d['hasLoxiaKey'],'vendorKeys':_0x51134d['vendorKeys']};else throw new Error(_0x51134d[_0x589715(0x1ba)]||'Failed\x20to\x20set\x20API\x20keys');}catch(_0x21a9fc){throw new Error(_0x589715(0x1c3)+_0x21a9fc[_0x589715(0x1b0)]);}}async['getApiKeyStatus'](){const _0x3a3a70=a0_0x1aed56;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0x3a3a70(0x1c5)]);try{const _0x3db21c=API_ENDPOINTS[_0x3a3a70(0x19f)]['replace'](_0x3a3a70(0x1bb),this['sessionId']),_0x803257=await this[_0x3a3a70(0x1be)](_0x3a3a70(0x1a2),_0x3db21c);if(_0x803257['success'])return{'success':!![],'hasLoxiaKey':_0x803257[_0x3a3a70(0x19d)],'vendorKeys':_0x803257[_0x3a3a70(0x1a1)],'updatedAt':_0x803257['updatedAt']};else throw new Error(_0x803257['error']||'Failed\x20to\x20get\x20API\x20key\x20status');}catch(_0x57f7cf){throw new Error(_0x3a3a70(0x1c1)+_0x57f7cf[_0x3a3a70(0x1b0)]);}}async[a0_0x1aed56(0x1a5)](){const _0x509129=a0_0x1aed56;if(!this[_0x509129(0x1a9)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x464197=API_ENDPOINTS[_0x509129(0x1ab)]['replace'](':sessionId',this['sessionId']),_0x5a1b80=await this['makeRequest']('DELETE',_0x464197);if(_0x5a1b80[_0x509129(0x19e)])return this[_0x509129(0x1b1)]=null,this[_0x509129(0x1a1)]={},{'success':!![],'message':_0x5a1b80[_0x509129(0x1b0)]};else throw new Error(_0x5a1b80[_0x509129(0x1ba)]||'Failed\x20to\x20delete\x20API\x20keys');}catch(_0x4baf1c){throw new Error(_0x509129(0x1a0)+_0x4baf1c[_0x509129(0x1b0)]);}}async[a0_0x1aed56(0x1b7)](_0xe7bdc8=process[a0_0x1aed56(0x1a4)]()){const _0x4b6170=a0_0x1aed56;try{const _0x174935=await this[_0x4b6170(0x1b9)]();if(!_0x174935[_0x4b6170(0x19e)])throw new Error('Server\x20health\x20check\x20failed:\x20'+_0x174935['error']);const _0x5ce7b6=await this['createSession'](_0xe7bdc8);return{'success':!![],'sessionId':_0x5ce7b6[_0x4b6170(0x1a9)],'session':_0x5ce7b6[_0x4b6170(0x1ad)]};}catch(_0x27c3fc){return{'success':![],'error':_0x27c3fc[_0x4b6170(0x1b0)]};}}async['checkHealth'](){const _0x4a9ea5=a0_0x1aed56;try{const _0x28ff41=await this[_0x4a9ea5(0x1be)]('GET',API_ENDPOINTS['HEALTH']);return{'success':!![],'status':_0x28ff41['status'],'version':_0x28ff41['version'],'timestamp':_0x28ff41[_0x4a9ea5(0x1b4)]};}catch(_0x148e60){return{'success':![],'error':_0x148e60['message']};}}async[a0_0x1aed56(0x1be)](_0x34666a,_0x172bb2,_0x7c6ee0=null){const _0x206a03=a0_0x1aed56;return this[_0x206a03(0x1c8)]['request'](_0x34666a,_0x172bb2,{'body':_0x7c6ee0});}[a0_0x1aed56(0x1c0)](){return this['sessionId'];}[a0_0x1aed56(0x1b3)](){return this['projectDir'];}[a0_0x1aed56(0x1bc)](){const _0x46a8cb=a0_0x1aed56;return this[_0x46a8cb(0x1a9)]!==null;}['updateActivity'](){const _0x150c74=a0_0x1aed56;this[_0x150c74(0x1ae)]=new Date()['toISOString']();}[a0_0x1aed56(0x1c4)](){const _0x122147=a0_0x1aed56;return{'sessionId':this['sessionId'],'projectDir':this[_0x122147(0x1bd)],'createdAt':this['createdAt'],'lastActivity':this['lastActivity'],'hasLoxiaKey':!!this[_0x122147(0x1b1)],'vendorKeysCount':Object['keys'](this['vendorKeys'])[_0x122147(0x1b6)]};}['clear'](){const _0x4f58e3=a0_0x1aed56;this['sessionId']=null,this[_0x4f58e3(0x1bd)]=null,this[_0x4f58e3(0x1a6)]=null,this['lastActivity']=null,this[_0x4f58e3(0x1b1)]=null,this['vendorKeys']={};}}export default SessionManager;
@@ -1 +1 @@
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;
1
+ const a0_0x345748=a0_0x188b;(function(_0x5e8ed4,_0xb84df1){const _0x4f90dd=a0_0x188b,_0x1e7021=_0x5e8ed4();while(!![]){try{const _0x22591e=parseInt(_0x4f90dd(0xe3))/0x1*(-parseInt(_0x4f90dd(0xe9))/0x2)+-parseInt(_0x4f90dd(0xd7))/0x3+-parseInt(_0x4f90dd(0xe1))/0x4+parseInt(_0x4f90dd(0xc5))/0x5+-parseInt(_0x4f90dd(0xbb))/0x6*(-parseInt(_0x4f90dd(0xec))/0x7)+parseInt(_0x4f90dd(0xb2))/0x8+parseInt(_0x4f90dd(0xd1))/0x9;if(_0x22591e===_0xb84df1)break;else _0x1e7021['push'](_0x1e7021['shift']());}catch(_0x5645dc){_0x1e7021['push'](_0x1e7021['shift']());}}}(a0_0x3c57,0xbbb2c));import a0_0x577c29 from'ws';function a0_0x3c57(){const _0x164bb8=['AgfUzgXLq2XVC2u','uMvXDwvZDcb0Aw1LB3v0','C3rHCNrizwfYDgjLyxq','ChjVy2vZC01LC3nHz2vrDwv1zq','zgvSzxrL','BwvZC2fNzq','v0vcu09ds0vux1jfq09otKvdvf9nvuXusvbmsuvs','z2vUzxjHDgvszxf1zxn0swq','C2HVDwXKuMvJB25Uzwn0','AgvHCNrIzwf0x3rPBwvVDxq','AgfUzgXLrxjYB3i','AgfUzgXLq29UBMvJDgLVBKvYCM9Y','AgfUzgXLt3bLBG','AgfZ','mti0nZi1nM1YsgL5zW','C2vUza','C2vZC2LVBKLK','B25Jzq','Cg9YDa','y2XLyw51Ca','BwvZC2fNzvf1zxvL','C3rYAw5NAwz5','C2v0DxbfDMvUDeHHBMrSzxjZ','odu3nZz3qNnxAeu','C2vUzf9LCNjVCG','DhLWzq','C3rHDgu','q09otKvdveve','CMvXlq','zw1PDa','CMvJB25Uzwn0qxr0zw1WDhm','AgvHCNrIzwf0sw50zxj2ywW','BgvUz3rO','mtq5mZe0nw54ChfdDq','C2nOzwr1BgvszwnVBM5Ly3q','y2XVC2u','zxjYB3i','CMvJB25Uzwn0vgLTzxi','BgfZDfbVBMDszwnLAxzLza','v0vcu09ds0vux1jfq09otKvdvf9nqvHFrevmqvK','C2vUzfbPBMC','C3rVCeHLyxj0yMvHDa','sfruuf9usu1ft1vu','BM93','AgfUzgXLtwvZC2fNzq','mJaWndm2nJznEuzZueO','C2v0u3rHDgu','ChvZAa','uKvdt05orunusu5h','v0vcu09ds0vux0nptK5fq1rFveLnru9vva','y29UBMvJDgvK','mZm5mtiZmg13D2zIBG','DxjS','y29UBMvJDa','Dg9tDhjPBMC','C3rHDgvFy2HHBMDL','z2v0u3rHDhm','y29UBMvJDgLUzW','CMvJB25Uzwn0rgvSyxK','y29UBMvJDgLVBL9LCNjVCG','CMvJB25Uzwn0Aw5N','ndG4ndK1mMPnv0nnCW','reLtq09otKvdveve','mLzAt2vPua','CgfYC2vFzxjYB3i','CgLUz0LUDgvYDMfS','CgfYC2u','C2vUze9Yy2HLC3rYyxrVCLjLCxvLC3q','Cg9Uz1rPBwvVDxq','mta5mdGYmMzmtLDkCq','revgqvvmvf9it1nu','B3bLBG','nZq5v3fMzhfr','v0vcu09ds0vux1bjtKDFsu5urvjwquW','CgLUz19LCNjVCG','q09otKvdveLorW','ue9orW','qwXYzwfKEsbJB25Uzwn0zwqGB3iGy29UBMvJDgLUzW','t1jdsevtvfjbve9sx1jfuvvfu1q','CgvUzgLUz1jLCxvLC3rZ'];a0_0x3c57=function(){return _0x164bb8;};return a0_0x3c57();}import{EventEmitter}from'events';import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';export class WebSocketManager extends EventEmitter{constructor(_0x27ec94=NETWORK[a0_0x345748(0xea)],_0x535b0e=NETWORK['DEFAULT_PORT'],_0x3d0eb3={}){const _0x352ef5=a0_0x345748;super(),this['host']=_0x27ec94,this[_0x352ef5(0xb6)]=_0x535b0e,this[_0x352ef5(0xd8)]='ws://'+_0x27ec94+':'+_0x535b0e,this['ws']=null,this['state']=CONNECTION_STATE[_0x352ef5(0xe2)],this['sessionId']=null,this[_0x352ef5(0xc2)]=0x0,this['reconnectDelay']=_0x3d0eb3['reconnectDelay']??TIMING['WEBSOCKET_RECONNECT_DELAY'],this['baseReconnectDelay']=this[_0x352ef5(0xde)],this['reconnectTimer']=null,this[_0x352ef5(0xac)]=!![],this['heartbeatInterval']=_0x3d0eb3['heartbeatInterval']??TIMING[_0x352ef5(0xed)],this[_0x352ef5(0xe5)]=null,this[_0x352ef5(0xe8)]=null,this[_0x352ef5(0xca)]=null,this[_0x352ef5(0xb8)]=[],this['requestIdCounter']=0x0,this['pendingRequests']=new Map();}async['connect'](){const _0x3eb713=a0_0x345748;if(this[_0x3eb713(0xbe)]===CONNECTION_STATE[_0x3eb713(0xbf)]||this['state']===CONNECTION_STATE[_0x3eb713(0xef)])return{'success':![],'error':_0x3eb713(0xf1)};this[_0x3eb713(0xd2)](CONNECTION_STATE[_0x3eb713(0xef)]),this['emit'](_0x3eb713(0xdd));try{return this['ws']=new a0_0x577c29(this['url']),this['setupEventHandlers'](),await this['waitForConnection'](),{'success':!![]};}catch(_0x3b20f1){return this['handleConnectionError'](_0x3b20f1),{'success':![],'error':_0x3b20f1[_0x3eb713(0xa9)]};}}['waitForConnection'](){return new Promise((_0x25efc9,_0xcb9c2d)=>{const _0x3d78c7=a0_0x188b,_0x490888=setTimeout(()=>{_0xcb9c2d(new Error('Connection\x20timeout'));},TIMING[_0x3d78c7(0xd5)]);this['ws']['once']('open',()=>{clearTimeout(_0x490888),_0x25efc9();}),this['ws'][_0x3d78c7(0xb5)](_0x3d78c7(0xc8),_0x3a3063=>{clearTimeout(_0x490888),_0xcb9c2d(_0x3a3063);});});}[a0_0x345748(0xba)](){const _0x1d6f89=a0_0x345748;this['ws']['on'](_0x1d6f89(0xeb),()=>this['handleOpen']()),this['ws']['on']('message',_0x349c40=>this['handleMessage'](_0x349c40)),this['ws']['on'](_0x1d6f89(0xc7),(_0x54651b,_0x141612)=>this['handleClose'](_0x54651b,_0x141612)),this['ws']['on']('error',_0x1f63f3=>this['handleError'](_0x1f63f3));}[a0_0x345748(0xb0)](){const _0x4c13f4=a0_0x345748;this[_0x4c13f4(0xd2)](CONNECTION_STATE[_0x4c13f4(0xbf)]),this['reconnectAttempts']=0x0,this['reconnectDelay']=this['baseReconnectDelay'],this[_0x4c13f4(0xc1)](_0x4c13f4(0xd6)),this[_0x4c13f4(0xf6)](),this[_0x4c13f4(0xf7)]();}[a0_0x345748(0xd0)](_0xbc7cba){const _0x379cba=a0_0x345748;try{const _0x3206a=JSON[_0x379cba(0xe6)](_0xbc7cba[_0x379cba(0xda)]());if(_0x3206a[_0x379cba(0xbd)]===WS_MESSAGE_TYPE[_0x379cba(0xf0)]){this['handlePong']();return;}if(_0x3206a['type']===WS_MESSAGE_TYPE['CONNECTED']){this[_0x379cba(0xc1)]('welcome',_0x3206a);return;}if(_0x3206a['type']===WS_MESSAGE_TYPE['SESSION_JOINED']){this[_0x379cba(0xb4)]=_0x3206a['sessionId'],this['emit']('session_joined',_0x3206a);return;}if(_0x3206a[_0x379cba(0xbd)]===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this['handleOrchestratorResponse'](_0x3206a);return;}this['emit'](_0x379cba(0xa9),_0x3206a),_0x3206a['type']&&this['emit'](_0x3206a['type'],_0x3206a);}catch(_0x2b0ab5){this['emit'](_0x379cba(0xe4),{'error':_0x2b0ab5,'data':_0xbc7cba});}}[a0_0x345748(0xf4)](_0x22d8da,_0x45fd96){const _0x3bb9c8=a0_0x345748;this[_0x3bb9c8(0xb7)]();const _0x2fbf26=_0x45fd96[_0x3bb9c8(0xda)]()||'Unknown\x20reason';this[_0x3bb9c8(0xc1)]('disconnected',{'code':_0x22d8da,'reason':_0x2fbf26}),this[_0x3bb9c8(0xac)]&&_0x22d8da!==0x3e8?this[_0x3bb9c8(0xc6)]():this['setState'](CONNECTION_STATE['DISCONNECTED']);}[a0_0x345748(0xae)](_0x168c54){const _0x1ceb25=a0_0x345748;this[_0x1ceb25(0xc1)](_0x1ceb25(0xc8),_0x168c54);}[a0_0x345748(0xaf)](_0x55d8b5){const _0x30c209=a0_0x345748;this['setState'](CONNECTION_STATE['ERROR']),this[_0x30c209(0xc1)](_0x30c209(0xdf),_0x55d8b5),this[_0x30c209(0xac)]&&this['scheduleReconnect']();}[a0_0x345748(0xc6)](){const _0xdde4c5=a0_0x345748;if(this['reconnectTimer'])return;this['setState'](CONNECTION_STATE[_0xdde4c5(0xd4)]),this['reconnectAttempts']++;const _0x207811=Math['min'](this['reconnectDelay']*Math['pow'](TIMING[_0xdde4c5(0xaa)],this[_0xdde4c5(0xc2)]-0x1),TIMING[_0xdde4c5(0xcb)]);this['emit'](_0xdde4c5(0xe0),{'attempt':this['reconnectAttempts'],'delay':_0x207811}),this[_0xdde4c5(0xc9)]=setTimeout(()=>{const _0x402c2e=_0xdde4c5;this['reconnectTimer']=null,this[_0x402c2e(0xd9)]();},_0x207811);}[a0_0x345748(0xf6)](){const _0x4cceb5=a0_0x345748;this['stopHeartbeat'](),this['pingInterval']=setInterval(()=>{const _0x576c7f=a0_0x188b;this[_0x576c7f(0xbe)]===CONNECTION_STATE['CONNECTED']&&this[_0x576c7f(0xcc)]();},this[_0x4cceb5(0xc3)]);}['stopHeartbeat'](){const _0x5da1e5=a0_0x345748;this[_0x5da1e5(0xe5)]&&(clearInterval(this['pingInterval']),this[_0x5da1e5(0xe5)]=null),this['pongTimeout']&&(clearTimeout(this[_0x5da1e5(0xe8)]),this[_0x5da1e5(0xe8)]=null);}['sendPing'](){const _0x2ddb1d=a0_0x345748;if(this['state']!==CONNECTION_STATE['CONNECTED'])return;try{this['send']({'type':WS_MESSAGE_TYPE['PING']}),this[_0x2ddb1d(0xe8)]=setTimeout(()=>{this['handlePongTimeout']();},TIMING['WEBSOCKET_PONG_TIMEOUT']);}catch(_0x3452d4){this[_0x2ddb1d(0xc1)](_0x2ddb1d(0xee),_0x3452d4);}}['handlePong'](){const _0x545dd=a0_0x345748;this[_0x545dd(0xca)]=Date['now'](),this[_0x545dd(0xe8)]&&(clearTimeout(this[_0x545dd(0xe8)]),this['pongTimeout']=null);}['handlePongTimeout'](){const _0x38b9f8=a0_0x345748;this[_0x38b9f8(0xc1)](_0x38b9f8(0xad)),this['disconnect'](),this[_0x38b9f8(0xac)]&&this['scheduleReconnect']();}['joinSession'](_0x570682){this['sessionId']=_0x570682,this['send']({'type':WS_MESSAGE_TYPE['JOIN_SESSION'],'sessionId':_0x570682});}[a0_0x345748(0xe7)](_0x54f082,_0x3aa464,_0xebe1eb){const _0x24a3aa=a0_0x345748,_0x262e27=this[_0x24a3aa(0xab)](),_0x5c2bfc={'type':WS_MESSAGE_TYPE[_0x24a3aa(0xf2)],'requestId':_0x262e27,'action':_0x54f082,'payload':_0x3aa464,'projectDir':_0xebe1eb};return new Promise((_0x6a6b39,_0x3166cc)=>{const _0x3b8d2a=_0x24a3aa;this[_0x3b8d2a(0xf3)]['set'](_0x262e27,{'resolve':_0x6a6b39,'reject':_0x3166cc,'timestamp':Date[_0x3b8d2a(0xcf)]()});try{this['send'](_0x5c2bfc);}catch(_0x54c050){this['pendingRequests'][_0x3b8d2a(0xf8)](_0x262e27),_0x3166cc(_0x54c050);}setTimeout(()=>{const _0x37bc3f=_0x3b8d2a;this['pendingRequests'][_0x37bc3f(0xb1)](_0x262e27)&&(this['pendingRequests'][_0x37bc3f(0xf8)](_0x262e27),_0x3166cc(new Error(_0x37bc3f(0xf5))));},TIMING[_0x3b8d2a(0xce)]);});}['handleOrchestratorResponse'](_0x29327b){const _0x780c4=a0_0x345748,{requestId:_0x312e26,response:_0x5d2494,error:_0x3e78ae}=_0x29327b;if(this['pendingRequests']['has'](_0x312e26)){const {resolve:_0x58e135,reject:_0x285618}=this['pendingRequests']['get'](_0x312e26);this[_0x780c4(0xf3)][_0x780c4(0xf8)](_0x312e26),_0x3e78ae?_0x285618(new Error(_0x3e78ae)):_0x58e135(_0x5d2494);}}['send'](_0x19638c){const _0x33af45=a0_0x345748;if(this[_0x33af45(0xbe)]!==CONNECTION_STATE['CONNECTED']){this['messageQueue'][_0x33af45(0xd3)](_0x19638c);return;}try{this['ws']['send'](JSON['stringify'](_0x19638c));}catch(_0x2c5df4){this['emit'](_0x33af45(0xbc),_0x2c5df4);throw _0x2c5df4;}}[a0_0x345748(0xf7)](){const _0x5571af=a0_0x345748;while(this[_0x5571af(0xb8)][_0x5571af(0xc4)]>0x0&&this[_0x5571af(0xbe)]===CONNECTION_STATE[_0x5571af(0xbf)]){const _0x1974d3=this[_0x5571af(0xb8)]['shift']();try{this['ws'][_0x5571af(0xb3)](JSON[_0x5571af(0xb9)](_0x1974d3));}catch(_0x2b4ccc){this[_0x5571af(0xc1)]('queue_process_error',_0x2b4ccc),this[_0x5571af(0xb8)]['unshift'](_0x1974d3);break;}}}['disconnect'](){const _0x29c0f1=a0_0x345748;this['shouldReconnect']=![],this['cleanup']();if(this['ws']){try{this['ws']['close'](0x3e8,'Client\x20disconnect');}catch(_0x54c065){}this['ws']=null;}this[_0x29c0f1(0xd2)](CONNECTION_STATE['DISCONNECTED']);}[a0_0x345748(0xb7)](){const _0x153aa1=a0_0x345748;this[_0x153aa1(0xcd)](),this['reconnectTimer']&&(clearTimeout(this['reconnectTimer']),this[_0x153aa1(0xc9)]=null),this['ws']&&this['ws']['removeAllListeners']();}[a0_0x345748(0xd2)](_0x3c99d3){const _0x4e6186=a0_0x345748,_0x30ffa0=this['state'];this[_0x4e6186(0xbe)]=_0x3c99d3,_0x30ffa0!==_0x3c99d3&&this[_0x4e6186(0xc1)](_0x4e6186(0xdb),{'oldState':_0x30ffa0,'newState':_0x3c99d3});}[a0_0x345748(0xab)](){const _0x4dbea3=a0_0x345748;return this['requestIdCounter']++,_0x4dbea3(0xc0)+Date['now']()+'-'+this['requestIdCounter'];}['getState'](){return this['state'];}['isConnected'](){const _0x2276d1=a0_0x345748;return this['state']===CONNECTION_STATE[_0x2276d1(0xbf)];}['getSessionId'](){const _0x2f7985=a0_0x345748;return this[_0x2f7985(0xb4)];}[a0_0x345748(0xdc)](){const _0x1c5145=a0_0x345748;return{'state':this[_0x1c5145(0xbe)],'sessionId':this['sessionId'],'reconnectAttempts':this[_0x1c5145(0xc2)],'queuedMessages':this['messageQueue'][_0x1c5145(0xc4)],'pendingRequests':this['pendingRequests']['size'],'lastPongReceived':this[_0x1c5145(0xca)]};}}function a0_0x188b(_0x273537,_0x4bfdac){_0x273537=_0x273537-0xa9;const _0x3c574e=a0_0x3c57();let _0x188b34=_0x3c574e[_0x273537];if(a0_0x188b['PcyFGu']===undefined){var _0x478b31=function(_0x10a91c){const _0x4b9517='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x577c29='',_0x27ec94='';for(let _0x535b0e=0x0,_0x3d0eb3,_0x3b20f1,_0x25efc9=0x0;_0x3b20f1=_0x10a91c['charAt'](_0x25efc9++);~_0x3b20f1&&(_0x3d0eb3=_0x535b0e%0x4?_0x3d0eb3*0x40+_0x3b20f1:_0x3b20f1,_0x535b0e++%0x4)?_0x577c29+=String['fromCharCode'](0xff&_0x3d0eb3>>(-0x2*_0x535b0e&0x6)):0x0){_0x3b20f1=_0x4b9517['indexOf'](_0x3b20f1);}for(let _0xcb9c2d=0x0,_0x490888=_0x577c29['length'];_0xcb9c2d<_0x490888;_0xcb9c2d++){_0x27ec94+='%'+('00'+_0x577c29['charCodeAt'](_0xcb9c2d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x27ec94);};a0_0x188b['XlkFHr']=_0x478b31,a0_0x188b['hZyjpM']={},a0_0x188b['PcyFGu']=!![];}const _0x232909=_0x3c574e[0x0],_0x2ac427=_0x273537+_0x232909,_0x1a2a5b=a0_0x188b['hZyjpM'][_0x2ac427];return!_0x1a2a5b?(_0x188b34=a0_0x188b['XlkFHr'](_0x188b34),a0_0x188b['hZyjpM'][_0x2ac427]=_0x188b34):_0x188b34=_0x1a2a5b,_0x188b34;}export default WebSocketManager;