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

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 (118) hide show
  1. package/README.md +7 -3
  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/agentActivityService.js +1 -0
  76. package/src/services/aiService.js +1 -1
  77. package/src/services/apiKeyManager.js +1 -1
  78. package/src/services/benchmarkService.js +1 -1
  79. package/src/services/budgetService.js +1 -1
  80. package/src/services/contextInjectionService.js +1 -1
  81. package/src/services/conversationCompactionService.js +1 -1
  82. package/src/services/errorHandler.js +1 -1
  83. package/src/services/fileAttachmentService.js +1 -1
  84. package/src/services/modelRouterService.js +1 -1
  85. package/src/services/modelsService.js +1 -1
  86. package/src/services/qualityInspector.js +1 -1
  87. package/src/services/tokenCountingService.js +1 -1
  88. package/src/tools/agentCommunicationTool.js +1 -1
  89. package/src/tools/agentDelayTool.js +1 -1
  90. package/src/tools/asyncToolManager.js +1 -1
  91. package/src/tools/baseTool.js +1 -1
  92. package/src/tools/browserTool.js +1 -1
  93. package/src/tools/cloneDetectionTool.js +1 -1
  94. package/src/tools/dependencyResolverTool.js +1 -1
  95. package/src/tools/fileContentReplaceTool.js +1 -1
  96. package/src/tools/fileSystemTool.js +1 -1
  97. package/src/tools/fileTreeTool.js +1 -1
  98. package/src/tools/imageTool.js +1 -1
  99. package/src/tools/importAnalyzerTool.js +1 -1
  100. package/src/tools/jobDoneTool.js +1 -1
  101. package/src/tools/seekTool.js +1 -1
  102. package/src/tools/staticAnalysisTool.js +1 -1
  103. package/src/tools/taskManagerTool.js +1 -1
  104. package/src/tools/terminalTool.js +1 -1
  105. package/src/tools/webTool.js +1 -1
  106. package/src/types/agent.js +1 -1
  107. package/src/types/contextReference.js +1 -1
  108. package/src/types/conversation.js +1 -1
  109. package/src/types/toolCommand.js +1 -1
  110. package/src/utilities/attachmentValidator.js +1 -1
  111. package/src/utilities/configManager.js +1 -1
  112. package/src/utilities/constants.js +1 -1
  113. package/src/utilities/directoryAccessManager.js +1 -1
  114. package/src/utilities/fileProcessor.js +1 -1
  115. package/src/utilities/logger.js +1 -1
  116. package/src/utilities/tagParser.js +1 -1
  117. package/src/utilities/toolConstants.js +1 -1
  118. package/src/utilities/userDataDir.js +1 -1
@@ -1 +1 @@
1
- const a0_0x4b73af=a0_0x42fd;(function(_0x6386e2,_0x34aeb7){const _0x5aafba=a0_0x42fd,_0x23ebaf=_0x6386e2();while(!![]){try{const _0x448813=parseInt(_0x5aafba(0x13d))/0x1+parseInt(_0x5aafba(0x149))/0x2+parseInt(_0x5aafba(0x136))/0x3+-parseInt(_0x5aafba(0x130))/0x4+parseInt(_0x5aafba(0x13f))/0x5+-parseInt(_0x5aafba(0x131))/0x6+-parseInt(_0x5aafba(0x132))/0x7;if(_0x448813===_0x34aeb7)break;else _0x23ebaf['push'](_0x23ebaf['shift']());}catch(_0x39a946){_0x23ebaf['push'](_0x23ebaf['shift']());}}}(a0_0x5c04,0x69897));function a0_0x42fd(_0x566749,_0x3f735e){_0x566749=_0x566749-0x11b;const _0x5c0470=a0_0x5c04();let _0x42fd9a=_0x5c0470[_0x566749];if(a0_0x42fd['czaijL']===undefined){var _0x12899b=function(_0x47ea03){const _0x20923d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4cc9df='',_0x478975='';for(let _0x5a47f3=0x0,_0x3c2a1d,_0x453784,_0x25ad18=0x0;_0x453784=_0x47ea03['charAt'](_0x25ad18++);~_0x453784&&(_0x3c2a1d=_0x5a47f3%0x4?_0x3c2a1d*0x40+_0x453784:_0x453784,_0x5a47f3++%0x4)?_0x4cc9df+=String['fromCharCode'](0xff&_0x3c2a1d>>(-0x2*_0x5a47f3&0x6)):0x0){_0x453784=_0x20923d['indexOf'](_0x453784);}for(let _0x5f025d=0x0,_0x5f4ddf=_0x4cc9df['length'];_0x5f025d<_0x5f4ddf;_0x5f025d++){_0x478975+='%'+('00'+_0x4cc9df['charCodeAt'](_0x5f025d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x478975);};a0_0x42fd['TDXyuj']=_0x12899b,a0_0x42fd['tyhxGR']={},a0_0x42fd['czaijL']=!![];}const _0xa168bb=_0x5c0470[0x0],_0x112da7=_0x566749+_0xa168bb,_0x4e6cd3=a0_0x42fd['tyhxGR'][_0x112da7];return!_0x4e6cd3?(_0x42fd9a=a0_0x42fd['TDXyuj'](_0x42fd9a),a0_0x42fd['tyhxGR'][_0x112da7]=_0x42fd9a):_0x42fd9a=_0x4e6cd3,_0x42fd9a;}function a0_0x5c04(){const _0x23f608=['mtm0mdiWogjguufABW','mJG1nJq1mhbjwxbqyq','mtaXmJq0nxjYzxP4qq','t1bftKfj','t1jdsevtvfjbve9s','Dg9nyxrJAa','mtq0mZmZsfvpzLf4','DxnLqwDLBNrdB250CM9SihjLDhvYBNmGzxHWzwn0zwqGAw50zxjMywnLihnOyxbL','tu9eruXFq0furuDpuLKGy29UC3rHBNrZigfYzsbKzwzPBMvK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','teXnig1VzgvSCYbLBMrWB2LUDcbLEgLZDhm','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0GqvbjievUzhbVAw50CYbwywXPzgf0Aw9U','Dg9dB250ywLU','mtK5nJu1z0fzuMDr','DxnLqwDLBNrdB250CM9S','mZG1nJuXnuTswLfRyG','zNvUy3rPB24','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','zgvMyxvSDa','q0Hbva','twvZC2fNzvjVDxrLCIbOyxmGBw9KzsbJAgfUz2uGzxzLBNqGAgfUzgXLCIbYzwDPC3rLCMvK','B3bLBMfP','quDftLq','Dg9vChbLCKnHC2u','y2XHDwrLltmTns1ZB25Uzxq','nZm3otq0r1riwhfV','l2fWAs9SBg0VBw9KzwXZ','yw50AhjVCgLJ','revfufnfruS','qwDLBNqGBw9KzsbLBMrWB2LUDhmGzM9SBg93ifjfu1rMDwWGCgf0DgvYBG','l2fWAs9Hz2vUDhmVoMfNzw50swqVBw9Kzq','quDftLrFtu9erv9dsefor0ve','teXnx01prevmuW','quDftLrtx01prevFr0vu','t3jJAgvZDhjHDg9YigvUzhbVAw50igv4Axn0CYbMB3iGBw9KzwWGyw5KignVBMzPzYbVCgvYyxrPB25Z','v2vIu29JA2v0twfUywDLCG','tuLduK9tt0zu','BgvUz3rO','Dg9czq','Dg9czurLzMLUzwq','tu9eruXFq0furuDpuLKGDMfSDwvZigfYzsbSB3DLCMnHC2u','quDftLrFtu9erq','quDftLrtx01prevFu0vu','zgvLChnLzwSTy2HHDa','AgfZsgfUzgXLCG','Dg9mB3DLCKnHC2u','Bg9JywXOB3n0','lI4VlI4VyxbPl3nLC3nPB24UANm','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','oMfNzw50swq','zMLSDgvY','DxnLqwDLBNrdB250CM9SigHVB2SGAw50zwDYyxrLCYb3AxrOifnLC3nPB24Gyw5Kie1LC3nHz2vsB3v0zxi','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gtw9KzsbtD2L0y2HPBMCGtg9NAwm','lI4VlI4VC3rHDguVDxnLqwDLBNrdB250CM9SlMPZ','tu9eruXFq0furuDpuLK','qu5usfjpueLd','z3b0ltq','BwLJCM9ZB2z0'];a0_0x5c04=function(){return _0x23f608;};return a0_0x5c04();}import{describe,test,expect}from'@jest/globals';describe('Agent\x20Control\x20Management\x20-\x20Imports',()=>{test('useAgentControl hook can be imported',async()=>{const _0xf1ecb=a0_0x42fd,{useAgentControl:_0x4cc9df}=await import(_0xf1ecb(0x12b));expect(_0x4cc9df)[_0xf1ecb(0x11d)](),expect(typeof _0x4cc9df)['toBe']('function');}),test('useAgentControl is default export',async()=>{const _0x4cc288=a0_0x42fd,module=await import('../../state/useAgentControl.js');expect(module[_0x4cc288(0x142)])[_0x4cc288(0x11d)](),expect(typeof module['default'])['toBe'](_0x4cc288(0x140)),expect(module[_0x4cc288(0x142)])['toBe'](module[_0x4cc288(0x13e)]);});}),describe(a0_0x4b73af(0x126),()=>{const _0x5ce5d5=a0_0x4b73af;test('AGENT_MODE\x20constants\x20are\x20defined',async()=>{const _0x1eeefb=a0_0x42fd,{AGENT_MODE:_0x478975}=await import('../../config/constants.js');expect(_0x478975)[_0x1eeefb(0x11d)](),expect(_0x478975['CHAT'])[_0x1eeefb(0x11c)](_0x1eeefb(0x143)),expect(_0x478975['AGENT'])['toBe'](_0x1eeefb(0x146));}),test(_0x5ce5d5(0x138),async()=>{const _0x4ecf6c=_0x5ce5d5,{MODEL_CATEGORY:_0x5a47f3}=await import('../../config/constants.js');expect(_0x5a47f3)['toBeDefined'](),expect(_0x5a47f3['ANTHROPIC'])['toBe']('anthropic'),expect(_0x5a47f3['OPENAI'])[_0x4ecf6c(0x11c)]('openai'),expect(_0x5a47f3['DEEPSEEK'])[_0x4ecf6c(0x11c)]('deepseek'),expect(_0x5a47f3[_0x4ecf6c(0x154)])[_0x4ecf6c(0x11c)]('microsoft');}),test('Mode\x20and\x20model\x20API\x20endpoints\x20are\x20defined',async()=>{const _0x215994=_0x5ce5d5,{API_ENDPOINTS:_0x3c2a1d}=await import(_0x215994(0x141));expect(_0x3c2a1d['AGENTS_MODE_SET'])[_0x215994(0x11c)](_0x215994(0x14e)),expect(_0x3c2a1d[_0x215994(0x151)])['toBe']('/api/agents/:agentId/mode'),expect(_0x3c2a1d[_0x215994(0x150)])['toBe'](_0x215994(0x14a));}),test('WS_MESSAGE_TYPE\x20includes\x20mode\x20and\x20model\x20change\x20events',async()=>{const _0x596395=_0x5ce5d5,{WS_MESSAGE_TYPE:_0x453784}=await import(_0x596395(0x141));expect(_0x453784)[_0x596395(0x11d)](),expect(_0x453784[_0x596395(0x14f)])[_0x596395(0x11c)]('agent_mode_changed');});}),describe('Agent\x20Control\x20Management\x20-\x20Integration',()=>{const _0x323da5=a0_0x4b73af;test(_0x323da5(0x129),async()=>{const _0x531b82=_0x323da5,{useAgentControl:_0x25ad18}=await import('../../state/useAgentControl.js'),{SessionManager:_0x5f025d}=await import(_0x531b82(0x125)),{MessageRouter:_0x5f4ddf}=await import(_0x531b82(0x139)),{WebSocketManager:_0x2d4bdf}=await import('../../api/websocket.js'),_0x17427f=new _0x5f025d(_0x531b82(0x124),0x1f90),_0xa8ebfc=new _0x2d4bdf('localhost',0x1f90),_0x484191=new _0x5f4ddf(_0xa8ebfc);expect(_0x17427f)[_0x531b82(0x11d)](),expect(_0x484191)[_0x531b82(0x11d)](),expect(typeof _0x25ad18)[_0x531b82(0x11c)](_0x531b82(0x140));}),test('Full agent control stack can be imported together',async()=>{const _0x2b7707=_0x323da5,[_0x20ca5e,_0x14958f,_0x5ead43,_0x4e928b,_0x3bd5a1]=await Promise['all']([import(_0x2b7707(0x141)),import('../../api/session.js'),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import('../../state/useAgentControl.js')]);expect(_0x20ca5e[_0x2b7707(0x11f)])['toBeDefined'](),expect(_0x20ca5e[_0x2b7707(0x12c)])[_0x2b7707(0x11d)](),expect(_0x20ca5e['API_ENDPOINTS'])['toBeDefined'](),expect(_0x14958f['SessionManager'])[_0x2b7707(0x11d)](),expect(_0x5ead43[_0x2b7707(0x153)])[_0x2b7707(0x11d)](),expect(_0x4e928b['MessageRouter'])[_0x2b7707(0x11d)](),expect(_0x3bd5a1[_0x2b7707(0x13e)])['toBeDefined']();});}),describe(a0_0x4b73af(0x13b),()=>{const _0x1edb63=a0_0x4b73af;test(_0x1edb63(0x14d),async()=>{const _0x2c9248=_0x1edb63,{API_ENDPOINTS:_0x5535a2}=await import('../../config/constants.js');expect(_0x5535a2[_0x2c9248(0x120)])['toMatch'](/^\/api\/agents/),expect(_0x5535a2['AGENTS_MODE_GET'])[_0x2c9248(0x135)](/^\/api\/agents/),expect(_0x5535a2[_0x2c9248(0x120)])['toContain'](_0x2c9248(0x127)),expect(_0x5535a2[_0x2c9248(0x151)])[_0x2c9248(0x13c)](_0x2c9248(0x127));}),test(_0x1edb63(0x13a),async()=>{const _0x30b9b3=_0x1edb63,{API_ENDPOINTS:_0x40310b}=await import('../../config/constants.js');expect(_0x40310b[_0x30b9b3(0x150)])[_0x30b9b3(0x11d)](),expect(_0x40310b[_0x30b9b3(0x150)])[_0x30b9b3(0x11c)](_0x30b9b3(0x14a));}),test(_0x1edb63(0x152),async()=>{const _0x45c62e=_0x1edb63,{API_ENDPOINTS:_0x44d10c}=await import('../../config/constants.js');expect(_0x44d10c[_0x45c62e(0x134)])[_0x45c62e(0x11d)](),expect(_0x44d10c[_0x45c62e(0x134)])[_0x45c62e(0x11c)]('/api/orchestrator');});}),describe('Agent\x20Control\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x5db618=a0_0x4b73af;test(_0x5db618(0x137),async()=>{const _0x90a705=_0x5db618,{useAgentControl:_0x1b77e4}=await import('../../state/useAgentControl.js');expect(_0x1b77e4[_0x90a705(0x11b)])['toBe'](0x3);});}),describe('Agent\x20Control\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x34f80e=a0_0x4b73af;test('AGENT_MODE\x20has\x20exactly\x20two\x20modes',async()=>{const _0x185c17=a0_0x42fd,{AGENT_MODE:_0x23f59d}=await import('../../config/constants.js'),_0x4a532b=Object['keys'](_0x23f59d);expect(_0x4a532b['length'])['toBe'](0x2),expect(_0x4a532b)[_0x185c17(0x13c)](_0x185c17(0x143)),expect(_0x4a532b)[_0x185c17(0x13c)]('AGENT');}),test('AGENT_MODE\x20values\x20are\x20uppercase',async()=>{const _0x1c9d64=a0_0x42fd,{AGENT_MODE:_0xb3a871}=await import('../../config/constants.js');expect(_0xb3a871['CHAT'])['toBe'](_0x1c9d64(0x143)),expect(_0xb3a871[_0x1c9d64(0x146)])['toBe']('AGENT'),expect(_0xb3a871['CHAT'])[_0x1c9d64(0x11c)](_0xb3a871['CHAT'][_0x1c9d64(0x147)]()),expect(_0xb3a871[_0x1c9d64(0x146)])[_0x1c9d64(0x11c)](_0xb3a871[_0x1c9d64(0x146)][_0x1c9d64(0x147)]());}),test(_0x34f80e(0x11e),async()=>{const _0x265d24=_0x34f80e,{MODEL_CATEGORY:_0x178c10}=await import('../../config/constants.js');expect(_0x178c10[_0x265d24(0x12d)])[_0x265d24(0x11c)](_0x265d24(0x14b)),expect(_0x178c10['OPENAI'])[_0x265d24(0x11c)](_0x265d24(0x145)),expect(_0x178c10[_0x265d24(0x14c)])[_0x265d24(0x11c)]('deepseek'),expect(_0x178c10[_0x265d24(0x154)])[_0x265d24(0x11c)](_0x265d24(0x12f)),expect(_0x178c10[_0x265d24(0x12d)])[_0x265d24(0x11c)](_0x178c10['ANTHROPIC']['toLowerCase']()),expect(_0x178c10[_0x265d24(0x133)])[_0x265d24(0x11c)](_0x178c10['OPENAI'][_0x265d24(0x123)]());}),test('MODEL_CATEGORY\x20includes\x20major\x20LLM\x20providers',async()=>{const _0x436b24=_0x34f80e,{MODEL_CATEGORY:_0x45cfe0}=await import(_0x436b24(0x141)),_0x2a13d9=Object['keys'](_0x45cfe0);expect(_0x2a13d9)[_0x436b24(0x13c)]('ANTHROPIC'),expect(_0x2a13d9)['toContain']('OPENAI'),expect(_0x2a13d9)['toContain']('DEEPSEEK'),expect(_0x2a13d9)[_0x436b24(0x13c)]('MICROSOFT');});}),describe('Agent\x20Control\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{const _0x4814c0=a0_0x4b73af;test(_0x4814c0(0x144),async()=>{const _0x2522c5=_0x4814c0,{MessageRouter:_0x1337e2}=await import(_0x2522c5(0x139)),{WebSocketManager:_0x50bafa}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x1f3fe7}=await import(_0x2522c5(0x141)),_0x321f1b=new _0x50bafa('localhost',0x1f90),_0x20777a=new _0x1337e2(_0x321f1b);expect(_0x20777a[_0x2522c5(0x122)](_0x1f3fe7['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe(a0_0x4b73af(0x12a),()=>{test('AGENT_MODE\x20supports\x20toggling\x20between\x20modes',async()=>{const _0x104371=a0_0x42fd,{AGENT_MODE:_0x4f83b0}=await import('../../config/constants.js');let _0x563ab8=_0x4f83b0['CHAT'],_0x21b2af=_0x563ab8===_0x4f83b0['CHAT']?_0x4f83b0[_0x104371(0x146)]:_0x4f83b0['CHAT'];expect(_0x21b2af)[_0x104371(0x11c)](_0x4f83b0['AGENT']),_0x563ab8=_0x4f83b0[_0x104371(0x146)],_0x21b2af=_0x563ab8===_0x4f83b0['CHAT']?_0x4f83b0[_0x104371(0x146)]:_0x4f83b0['CHAT'],expect(_0x21b2af)[_0x104371(0x11c)](_0x4f83b0['CHAT']);});}),describe('Agent\x20Control\x20Management\x20-\x20Model\x20Filtering',()=>{test('MODEL_CATEGORY\x20can\x20be\x20used\x20to\x20filter\x20models\x20by\x20category',async()=>{const _0xfd3baf=a0_0x42fd,{MODEL_CATEGORY:_0x552c7a}=await import('../../config/constants.js'),_0x235b7d=[{'id':_0xfd3baf(0x148),'category':_0x552c7a[_0xfd3baf(0x12d)]},{'id':'gpt-4','category':_0x552c7a[_0xfd3baf(0x133)]},{'id':_0xfd3baf(0x121),'category':_0x552c7a['DEEPSEEK']}],_0x481598=_0x235b7d[_0xfd3baf(0x128)](_0x386b76=>_0x386b76['category']===_0x552c7a[_0xfd3baf(0x12d)]),_0x9e434=_0x235b7d['filter'](_0x4833f0=>_0x4833f0['category']===_0x552c7a['OPENAI']);expect(_0x481598[_0xfd3baf(0x11b)])[_0xfd3baf(0x11c)](0x1),expect(_0x481598[0x0]['id'])['toBe'](_0xfd3baf(0x148)),expect(_0x9e434[_0xfd3baf(0x11b)])[_0xfd3baf(0x11c)](0x1),expect(_0x9e434[0x0]['id'])[_0xfd3baf(0x11c)](_0xfd3baf(0x12e));});});
1
+ const a0_0x425c9f=a0_0x1f66;(function(_0xa65b60,_0x25902f){const _0x517b34=a0_0x1f66,_0x2dc76f=_0xa65b60();while(!![]){try{const _0x4ddd4a=-parseInt(_0x517b34(0x9b))/0x1*(-parseInt(_0x517b34(0x90))/0x2)+-parseInt(_0x517b34(0x8c))/0x3*(parseInt(_0x517b34(0x8f))/0x4)+-parseInt(_0x517b34(0x9d))/0x5+-parseInt(_0x517b34(0xbb))/0x6*(-parseInt(_0x517b34(0x93))/0x7)+-parseInt(_0x517b34(0x9e))/0x8*(parseInt(_0x517b34(0xb5))/0x9)+-parseInt(_0x517b34(0xb3))/0xa+parseInt(_0x517b34(0x9c))/0xb;if(_0x4ddd4a===_0x25902f)break;else _0x2dc76f['push'](_0x2dc76f['shift']());}catch(_0xe1c7d7){_0x2dc76f['push'](_0x2dc76f['shift']());}}}(a0_0x6c8b,0xc3849));import{describe,test,expect}from'@jest/globals';function a0_0x1f66(_0x22e47f,_0x3bfcc7){_0x22e47f=_0x22e47f-0x7c;const _0x6c8ba0=a0_0x6c8b();let _0x1f6644=_0x6c8ba0[_0x22e47f];if(a0_0x1f66['WBhSZS']===undefined){var _0x5a2cd2=function(_0x86cc1){const _0x3d00ad='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x455680='',_0x6ae1fc='';for(let _0x54fe69=0x0,_0x500882,_0x48a16c,_0x966d2d=0x0;_0x48a16c=_0x86cc1['charAt'](_0x966d2d++);~_0x48a16c&&(_0x500882=_0x54fe69%0x4?_0x500882*0x40+_0x48a16c:_0x48a16c,_0x54fe69++%0x4)?_0x455680+=String['fromCharCode'](0xff&_0x500882>>(-0x2*_0x54fe69&0x6)):0x0){_0x48a16c=_0x3d00ad['indexOf'](_0x48a16c);}for(let _0x1bda16=0x0,_0x4573ef=_0x455680['length'];_0x1bda16<_0x4573ef;_0x1bda16++){_0x6ae1fc+='%'+('00'+_0x455680['charCodeAt'](_0x1bda16)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x6ae1fc);};a0_0x1f66['vZUham']=_0x5a2cd2,a0_0x1f66['ijKSin']={},a0_0x1f66['WBhSZS']=!![];}const _0x300f5d=_0x6c8ba0[0x0],_0x5a06b5=_0x22e47f+_0x300f5d,_0x5ec753=a0_0x1f66['ijKSin'][_0x5a06b5];return!_0x5ec753?(_0x1f6644=a0_0x1f66['vZUham'](_0x1f6644),a0_0x1f66['ijKSin'][_0x5a06b5]=_0x1f6644):_0x1f6644=_0x5ec753,_0x1f6644;}describe(a0_0x425c9f(0x88),()=>{test('useAgentControl hook can be imported',async()=>{const _0x87ea83=a0_0x1f66,{useAgentControl:_0x455680}=await import(_0x87ea83(0x82));expect(_0x455680)[_0x87ea83(0x86)](),expect(typeof _0x455680)['toBe']('function');}),test('useAgentControl is default export',async()=>{const _0x4cac88=a0_0x1f66,module=await import('../../state/useAgentControl.js');expect(module['default'])[_0x4cac88(0x86)](),expect(typeof module['default'])[_0x4cac88(0xaf)](_0x4cac88(0x9a)),expect(module[_0x4cac88(0x98)])['toBe'](module[_0x4cac88(0x8d)]);});}),describe(a0_0x425c9f(0xba),()=>{const _0x5e28cc=a0_0x425c9f;test(_0x5e28cc(0xb8),async()=>{const _0x11f624=_0x5e28cc,{AGENT_MODE:_0x6ae1fc}=await import(_0x11f624(0xa2));expect(_0x6ae1fc)['toBeDefined'](),expect(_0x6ae1fc[_0x11f624(0xb7)])['toBe'](_0x11f624(0xb7)),expect(_0x6ae1fc[_0x11f624(0x96)])['toBe'](_0x11f624(0x96));}),test(_0x5e28cc(0xb2),async()=>{const _0x5c01f3=_0x5e28cc,{MODEL_CATEGORY:_0x54fe69}=await import('../../config/constants.js');expect(_0x54fe69)['toBeDefined'](),expect(_0x54fe69[_0x5c01f3(0xa9)])[_0x5c01f3(0xaf)]('anthropic'),expect(_0x54fe69['OPENAI'])['toBe']('openai'),expect(_0x54fe69[_0x5c01f3(0xb9)])['toBe'](_0x5c01f3(0x81)),expect(_0x54fe69['MICROSOFT'])['toBe'](_0x5c01f3(0x85));}),test('Mode\x20and\x20model\x20API\x20endpoints\x20are\x20defined',async()=>{const _0x2f0299=_0x5e28cc,{API_ENDPOINTS:_0x500882}=await import('../../config/constants.js');expect(_0x500882['AGENTS_MODE_SET'])['toBe']('/api/agents/:agentId/mode'),expect(_0x500882[_0x2f0299(0x7d)])[_0x2f0299(0xaf)](_0x2f0299(0x8b)),expect(_0x500882[_0x2f0299(0xab)])[_0x2f0299(0xaf)]('/api/llm/models');}),test(_0x5e28cc(0x84),async()=>{const _0xa29d1c=_0x5e28cc,{WS_MESSAGE_TYPE:_0x48a16c}=await import(_0xa29d1c(0xa2));expect(_0x48a16c)['toBeDefined'](),expect(_0x48a16c[_0xa29d1c(0x80)])[_0xa29d1c(0xaf)](_0xa29d1c(0xb6));});}),describe('Agent\x20Control\x20Management\x20-\x20Integration',()=>{test('useAgentControl\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x36a9db=a0_0x1f66,{useAgentControl:_0x966d2d}=await import('../../state/useAgentControl.js'),{SessionManager:_0x1bda16}=await import('../../api/session.js'),{MessageRouter:_0x4573ef}=await import(_0x36a9db(0xa5)),{WebSocketManager:_0x5d4b89}=await import('../../api/websocket.js'),_0x59b693=new _0x1bda16('localhost',0x1f90),_0x1afb68=new _0x5d4b89('localhost',0x1f90),_0x9963cb=new _0x4573ef(_0x1afb68);expect(_0x59b693)['toBeDefined'](),expect(_0x9963cb)[_0x36a9db(0x86)](),expect(typeof _0x966d2d)['toBe']('function');}),test('Full agent control stack can be imported together',async()=>{const _0x8184ea=a0_0x1f66,[_0x1234f3,_0x5a042b,_0x383af0,_0x184a8e,_0x374a84]=await Promise['all']([import(_0x8184ea(0xa2)),import('../../api/session.js'),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import(_0x8184ea(0x82))]);expect(_0x1234f3[_0x8184ea(0x83)])['toBeDefined'](),expect(_0x1234f3['MODEL_CATEGORY'])['toBeDefined'](),expect(_0x1234f3['API_ENDPOINTS'])['toBeDefined'](),expect(_0x5a042b[_0x8184ea(0xae)])['toBeDefined'](),expect(_0x383af0['WebSocketManager'])['toBeDefined'](),expect(_0x184a8e['MessageRouter'])[_0x8184ea(0x86)](),expect(_0x374a84['useAgentControl'])[_0x8184ea(0x86)]();});}),describe('Agent\x20Control\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x554b71=a0_0x425c9f;test(_0x554b71(0x8a),async()=>{const _0x9e7628=_0x554b71,{API_ENDPOINTS:_0x409e2f}=await import(_0x9e7628(0xa2));expect(_0x409e2f['AGENTS_MODE_SET'])[_0x9e7628(0x8e)](/^\/api\/agents/),expect(_0x409e2f['AGENTS_MODE_GET'])[_0x9e7628(0x8e)](/^\/api\/agents/),expect(_0x409e2f[_0x9e7628(0x7f)])[_0x9e7628(0x99)](_0x9e7628(0xa4)),expect(_0x409e2f[_0x9e7628(0x7d)])[_0x9e7628(0x99)](':agentId');}),test(_0x554b71(0xb4),async()=>{const _0x891945=_0x554b71,{API_ENDPOINTS:_0x134a06}=await import(_0x891945(0xa2));expect(_0x134a06[_0x891945(0xab)])['toBeDefined'](),expect(_0x134a06[_0x891945(0xab)])['toBe']('/api/llm/models');}),test('Orchestrator\x20endpoint\x20exists\x20for\x20model\x20and\x20config\x20operations',async()=>{const _0x3252b5=_0x554b71,{API_ENDPOINTS:_0x48147b}=await import('../../config/constants.js');expect(_0x48147b[_0x3252b5(0xa7)])[_0x3252b5(0x86)](),expect(_0x48147b[_0x3252b5(0xa7)])[_0x3252b5(0xaf)]('/api/orchestrator');});}),describe('Agent\x20Control\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x4c5891=a0_0x425c9f;test(_0x4c5891(0xad),async()=>{const _0x3051a9=_0x4c5891,{useAgentControl:_0x5aa825}=await import(_0x3051a9(0x82));expect(_0x5aa825[_0x3051a9(0xa8)])[_0x3051a9(0xaf)](0x3);});}),describe(a0_0x425c9f(0xac),()=>{const _0x3437c3=a0_0x425c9f;test(_0x3437c3(0x97),async()=>{const _0x4e102c=_0x3437c3,{AGENT_MODE:_0x8aaa4a}=await import(_0x4e102c(0xa2)),_0x856f53=Object[_0x4e102c(0x91)](_0x8aaa4a);expect(_0x856f53['length'])['toBe'](0x2),expect(_0x856f53)['toContain']('CHAT'),expect(_0x856f53)['toContain']('AGENT');}),test(_0x3437c3(0xb0),async()=>{const _0x3fa782=_0x3437c3,{AGENT_MODE:_0x13801c}=await import('../../config/constants.js');expect(_0x13801c['CHAT'])[_0x3fa782(0xaf)]('CHAT'),expect(_0x13801c['AGENT'])['toBe']('AGENT'),expect(_0x13801c[_0x3fa782(0xb7)])['toBe'](_0x13801c['CHAT'][_0x3fa782(0x92)]()),expect(_0x13801c[_0x3fa782(0x96)])[_0x3fa782(0xaf)](_0x13801c['AGENT'][_0x3fa782(0x92)]());}),test(_0x3437c3(0xaa),async()=>{const _0x4627dc=_0x3437c3,{MODEL_CATEGORY:_0x3b187c}=await import(_0x4627dc(0xa2));expect(_0x3b187c['ANTHROPIC'])[_0x4627dc(0xaf)]('anthropic'),expect(_0x3b187c['OPENAI'])['toBe'](_0x4627dc(0x89)),expect(_0x3b187c[_0x4627dc(0xb9)])['toBe'](_0x4627dc(0x81)),expect(_0x3b187c['MICROSOFT'])['toBe']('microsoft'),expect(_0x3b187c[_0x4627dc(0xa9)])['toBe'](_0x3b187c[_0x4627dc(0xa9)]['toLowerCase']()),expect(_0x3b187c[_0x4627dc(0x95)])['toBe'](_0x3b187c[_0x4627dc(0x95)][_0x4627dc(0xa3)]());}),test(_0x3437c3(0xa1),async()=>{const _0x24af07=_0x3437c3,{MODEL_CATEGORY:_0x3c86f4}=await import(_0x24af07(0xa2)),_0x5559d1=Object[_0x24af07(0x91)](_0x3c86f4);expect(_0x5559d1)['toContain'](_0x24af07(0xa9)),expect(_0x5559d1)[_0x24af07(0x99)]('OPENAI'),expect(_0x5559d1)[_0x24af07(0x99)](_0x24af07(0xb9)),expect(_0x5559d1)[_0x24af07(0x99)](_0x24af07(0xa6));});}),describe('Agent\x20Control\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{const _0x262f72=a0_0x425c9f;test(_0x262f72(0x94),async()=>{const _0x5c5df7=_0x262f72,{MessageRouter:_0x466fc4}=await import(_0x5c5df7(0xa5)),{WebSocketManager:_0x7b2fa7}=await import(_0x5c5df7(0x87)),{WS_MESSAGE_TYPE:_0x59aa14}=await import('../../config/constants.js'),_0x7ba42a=new _0x7b2fa7('localhost',0x1f90),_0x306b2c=new _0x466fc4(_0x7ba42a);expect(_0x306b2c[_0x5c5df7(0xb1)](_0x59aa14['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe('Agent\x20Control\x20Management\x20-\x20Mode\x20Switching\x20Logic',()=>{test('AGENT_MODE\x20supports\x20toggling\x20between\x20modes',async()=>{const _0x4f5f91=a0_0x1f66,{AGENT_MODE:_0x51f6ad}=await import(_0x4f5f91(0xa2));let _0x2fcce2=_0x51f6ad[_0x4f5f91(0xb7)],_0x4c877b=_0x2fcce2===_0x51f6ad['CHAT']?_0x51f6ad[_0x4f5f91(0x96)]:_0x51f6ad[_0x4f5f91(0xb7)];expect(_0x4c877b)['toBe'](_0x51f6ad[_0x4f5f91(0x96)]),_0x2fcce2=_0x51f6ad['AGENT'],_0x4c877b=_0x2fcce2===_0x51f6ad[_0x4f5f91(0xb7)]?_0x51f6ad['AGENT']:_0x51f6ad[_0x4f5f91(0xb7)],expect(_0x4c877b)['toBe'](_0x51f6ad['CHAT']);});}),describe('Agent\x20Control\x20Management\x20-\x20Model\x20Filtering',()=>{const _0x22da36=a0_0x425c9f;test(_0x22da36(0x7c),async()=>{const _0x210007=_0x22da36,{MODEL_CATEGORY:_0x15c390}=await import(_0x210007(0xa2)),_0x100d64=[{'id':'claude-3-5-sonnet','category':_0x15c390['ANTHROPIC']},{'id':'gpt-4','category':_0x15c390['OPENAI']},{'id':_0x210007(0xa0),'category':_0x15c390[_0x210007(0xb9)]}],_0x3c0dc2=_0x100d64[_0x210007(0x9f)](_0x5302b4=>_0x5302b4[_0x210007(0x7e)]===_0x15c390['ANTHROPIC']),_0x176fe2=_0x100d64['filter'](_0x33eb49=>_0x33eb49['category']===_0x15c390[_0x210007(0x95)]);expect(_0x3c0dc2['length'])[_0x210007(0xaf)](0x1),expect(_0x3c0dc2[0x0]['id'])[_0x210007(0xaf)]('claude-3-5-sonnet'),expect(_0x176fe2[_0x210007(0xa8)])['toBe'](0x1),expect(_0x176fe2[0x0]['id'])[_0x210007(0xaf)]('gpt-4');});});function a0_0x6c8b(){const _0x5c66b4=['quDftLrFtu9ersbOyxmGzxHHy3rSEsb0D28GBw9Kzxm','zgvMyxvSDa','Dg9dB250ywLU','zNvUy3rPB24','nJCZnZGXBKjcrNPj','mtyXntiXodb4zgnTu1G','otiXnty1v0zUwvbf','oty4tevJD2nx','zMLSDgvY','zgvLChnLzwSTy2HHDa','tu9eruXFq0furuDpuLKGAw5JBhvKzxmGBwfQB3iGteXnihbYB3zPzgvYCW','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','Dg9mB3DLCKnHC2u','oMfNzw50swq','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','tuLduK9tt0zu','t1jdsevtvfjbve9s','BgvUz3rO','qu5usfjpueLd','tu9eruXFq0furuDpuLKGDMfSDwvZigfYzsbSB3DLCMnHC2u','teXnx01prevmuW','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZifzHBgLKyxrPB24','DxnLqwDLBNrdB250CM9SihjLDhvYBNmGzxHWzwn0zwqGAw50zxjMywnLihnOyxbL','u2vZC2LVBK1HBMfNzxi','Dg9czq','quDftLrFtu9ersb2ywX1zxmGyxjLihvWCgvYy2fZzq','AgfZsgfUzgXLCG','tu9eruXFq0furuDpuLKGy29UC3rHBNrZigfYzsbKzwzPBMvK','mtqZndu4odbLwujNzva','teXnig1VzgvSCYbLBMrWB2LUDcbLEgLZDhm','mteZmZfbuunevLO','ywDLBNrFBw9Kzv9JAgfUz2vK','q0Hbva','quDftLrFtu9ersbJB25ZDgfUDhmGyxjLigrLzMLUzwq','revfufnfruS','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','nZuYndu0nMz5rvjNuq','tu9eruXFq0furuDpuLKGy2fUigjLihvZzwqGDg8GzMLSDgvYig1VzgvSCYbIEsbJyxrLz29YEq','quDftLrtx01prevFr0vu','y2f0zwDVCNK','quDftLrtx01prevFu0vu','quDftLrFtu9erv9dsefor0ve','zgvLChnLzwS','lI4VlI4VC3rHDguVDxnLqwDLBNrdB250CM9SlMPZ','quDftLrFtu9erq','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1VzguGyw5Kig1VzgvSignOyw5NzsbLDMvUDhm','BwLJCM9ZB2z0','Dg9czurLzMLUzwq','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','B3bLBMfP','qwDLBNqGBw9KzsbLBMrWB2LUDhmGzM9SBg93ifjfu1rMDwWGCgf0DgvYBG','l2fWAs9Hz2vUDhmVoMfNzw50swqVBw9Kzq','nda1mZnPBejbqva','DxnLqwDLBNrdB250CM9S','Dg9nyxrJAa','mJq0B3z4C3LO','mNzdAxPtta','A2v5CW','Dg9vChbLCKnHC2u','n1fsrfPtAa','twvZC2fNzvjVDxrLCIbOyxmGBw9KzsbJAgfUz2uGzxzLBNqGAgfUzgXLCIbYzwDPC3rLCMvK','t1bftKfj','quDftLq'];a0_0x6c8b=function(){return _0x5c66b4;};return a0_0x6c8b();}
@@ -1 +1 @@
1
- const a0_0x505eb6=a0_0x2673;(function(_0x39628d,_0x3e3603){const _0x3a27d0=a0_0x2673,_0x203385=_0x39628d();while(!![]){try{const _0x22bd6f=parseInt(_0x3a27d0(0x1bb))/0x1+-parseInt(_0x3a27d0(0x1c7))/0x2*(-parseInt(_0x3a27d0(0x1cd))/0x3)+parseInt(_0x3a27d0(0x1ce))/0x4*(-parseInt(_0x3a27d0(0x1d0))/0x5)+-parseInt(_0x3a27d0(0x1e0))/0x6+parseInt(_0x3a27d0(0x1d5))/0x7*(parseInt(_0x3a27d0(0x1dd))/0x8)+parseInt(_0x3a27d0(0x1c1))/0x9*(parseInt(_0x3a27d0(0x1c9))/0xa)+-parseInt(_0x3a27d0(0x1ba))/0xb;if(_0x22bd6f===_0x3e3603)break;else _0x203385['push'](_0x203385['shift']());}catch(_0x2f84f8){_0x203385['push'](_0x203385['shift']());}}}(a0_0x5855,0x312bd));import{describe,test,expect}from'@jest/globals';function a0_0x2673(_0x12faf9,_0xb836b){_0x12faf9=_0x12faf9-0x1b7;const _0x585512=a0_0x5855();let _0x267306=_0x585512[_0x12faf9];if(a0_0x2673['emOocs']===undefined){var _0x12268a=function(_0x403def){const _0x16c811='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x236b84='',_0x224ae4='';for(let _0x1f22ae=0x0,_0x3356e4,_0x4b1424,_0x41a306=0x0;_0x4b1424=_0x403def['charAt'](_0x41a306++);~_0x4b1424&&(_0x3356e4=_0x1f22ae%0x4?_0x3356e4*0x40+_0x4b1424:_0x4b1424,_0x1f22ae++%0x4)?_0x236b84+=String['fromCharCode'](0xff&_0x3356e4>>(-0x2*_0x1f22ae&0x6)):0x0){_0x4b1424=_0x16c811['indexOf'](_0x4b1424);}for(let _0x4d0941=0x0,_0x83e04c=_0x236b84['length'];_0x4d0941<_0x83e04c;_0x4d0941++){_0x224ae4+='%'+('00'+_0x236b84['charCodeAt'](_0x4d0941)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x224ae4);};a0_0x2673['GbhXaj']=_0x12268a,a0_0x2673['HnUkfi']={},a0_0x2673['emOocs']=!![];}const _0x1d94ae=_0x585512[0x0],_0xa6322=_0x12faf9+_0x1d94ae,_0x448598=a0_0x2673['HnUkfi'][_0xa6322];return!_0x448598?(_0x267306=a0_0x2673['GbhXaj'](_0x267306),a0_0x2673['HnUkfi'][_0xa6322]=_0x267306):_0x267306=_0x448598,_0x267306;}describe('Agent\x20Management\x20-\x20Imports',()=>{test('useAgents hook can be imported',async()=>{const _0x45d808=a0_0x2673,{useAgents:_0x236b84}=await import('../../state/useAgents.js');expect(_0x236b84)[_0x45d808(0x1b8)](),expect(typeof _0x236b84)[_0x45d808(0x1e3)]('function');}),test('useAgents is default export',async()=>{const _0x54b2e8=a0_0x2673,module=await import('../../state/useAgents.js');expect(module['default'])[_0x54b2e8(0x1b8)](),expect(typeof module['default'])['toBe'](_0x54b2e8(0x1cc)),expect(module[_0x54b2e8(0x1c0)])['toBe'](module['useAgents']);});}),describe('Agent\x20Management\x20-\x20Constants',()=>{const _0x44d86a=a0_0x2673;test('AGENT_MODE\x20constants\x20are\x20defined',async()=>{const _0xa4ebf3=a0_0x2673,{AGENT_MODE:_0x224ae4}=await import(_0xa4ebf3(0x1c6));expect(_0x224ae4)['toBeDefined'](),expect(_0x224ae4['CHAT'])['toBe'](_0xa4ebf3(0x1d2)),expect(_0x224ae4['AGENT'])[_0xa4ebf3(0x1e3)]('AGENT');}),test(_0x44d86a(0x1da),async()=>{const _0x342dff=_0x44d86a,{AGENT_STATUS:_0x1f22ae}=await import('../../config/constants.js');expect(_0x1f22ae)['toBeDefined'](),expect(_0x1f22ae['ACTIVE'])['toBe']('active'),expect(_0x1f22ae[_0x342dff(0x1d3)])[_0x342dff(0x1e3)](_0x342dff(0x1b9)),expect(_0x1f22ae[_0x342dff(0x1e1)])[_0x342dff(0x1e3)]('idle'),expect(_0x1f22ae['ERROR'])[_0x342dff(0x1e3)]('error'),expect(_0x1f22ae['ARCHIVED'])['toBe'](_0x342dff(0x1d7));}),test('Agent\x20API\x20endpoints\x20are\x20defined',async()=>{const _0x468abe=_0x44d86a,{API_ENDPOINTS:_0x3356e4}=await import('../../config/constants.js');expect(_0x3356e4['AGENTS_AVAILABLE'])['toBe']('/api/agents/available'),expect(_0x3356e4['AGENTS_METADATA'])[_0x468abe(0x1e3)]('/api/agents/:agentId/metadata'),expect(_0x3356e4['AGENTS_IMPORT'])['toBe']('/api/agents/import'),expect(_0x3356e4['AGENTS_MODE_SET'])['toBe']('/api/agents/:agentId/mode'),expect(_0x3356e4['AGENTS_MODE_GET'])['toBe'](_0x468abe(0x1be)),expect(_0x3356e4[_0x468abe(0x1e6)])[_0x468abe(0x1e3)]('/api/agents/:agentId/stop');}),test(_0x44d86a(0x1e4),async()=>{const _0x12dd5b=_0x44d86a,{AGENT_TEMPLATES:_0x4b1424}=await import('../../config/constants.js');expect(_0x4b1424)[_0x12dd5b(0x1b8)](),expect(_0x4b1424[_0x12dd5b(0x1cb)])['toBe']('coding-assistant'),expect(_0x4b1424[_0x12dd5b(0x1e2)])['toBe']('data-analyst'),expect(_0x4b1424['CREATIVE_WRITER'])[_0x12dd5b(0x1e3)]('creative-writer'),expect(_0x4b1424[_0x12dd5b(0x1b7)])['toBe']('system-administrator'),expect(_0x4b1424['CUSTOM'])[_0x12dd5b(0x1e3)](_0x12dd5b(0x1e5));});}),describe(a0_0x505eb6(0x1c5),()=>{test('useAgents\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x583a4c=a0_0x2673,{useAgents:_0x41a306}=await import(_0x583a4c(0x1d4)),{SessionManager:_0x4d0941}=await import(_0x583a4c(0x1ca)),{MessageRouter:_0x83e04c}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x33e7f7}=await import('../../api/websocket.js'),_0x195f52=new _0x4d0941(_0x583a4c(0x1db),0x1f90),_0x4f71d2=new _0x33e7f7(_0x583a4c(0x1db),0x1f90),_0x51f408=new _0x83e04c(_0x4f71d2);expect(_0x195f52)['toBeDefined'](),expect(_0x51f408)[_0x583a4c(0x1b8)](),expect(typeof _0x41a306)[_0x583a4c(0x1e3)](_0x583a4c(0x1cc));}),test('Full agent management stack can be imported together',async()=>{const _0x1a76bb=a0_0x2673,[_0x4add34,_0x3e6243,_0x2de2c2,_0x50b596,_0x32b5e8]=await Promise['all']([import(_0x1a76bb(0x1c6)),import(_0x1a76bb(0x1ca)),import(_0x1a76bb(0x1de)),import('../../api/messageRouter.js'),import(_0x1a76bb(0x1d4))]);expect(_0x4add34[_0x1a76bb(0x1bf)])['toBeDefined'](),expect(_0x3e6243['SessionManager'])['toBeDefined'](),expect(_0x2de2c2[_0x1a76bb(0x1bd)])[_0x1a76bb(0x1b8)](),expect(_0x50b596[_0x1a76bb(0x1bc)])['toBeDefined'](),expect(_0x32b5e8[_0x1a76bb(0x1cf)])['toBeDefined']();});}),describe(a0_0x505eb6(0x1d8),()=>{const _0x383d01=a0_0x505eb6;test(_0x383d01(0x1d6),async()=>{const _0x256929=_0x383d01,{API_ENDPOINTS:_0x213717}=await import(_0x256929(0x1c6));expect(_0x213717[_0x256929(0x1c2)])[_0x256929(0x1c8)](/^\/api\/agents/),expect(_0x213717['AGENTS_METADATA'])['toMatch'](/^\/api\/agents/),expect(_0x213717['AGENTS_IMPORT'])['toMatch'](/^\/api\/agents/),expect(_0x213717[_0x256929(0x1df)])['toMatch'](/^\/api\/agents/),expect(_0x213717['AGENTS_MODE_GET'])[_0x256929(0x1c8)](/^\/api\/agents/),expect(_0x213717['AGENTS_STOP'])['toMatch'](/^\/api\/agents/),expect(_0x213717[_0x256929(0x1d1)])[_0x256929(0x1c4)](':agentId'),expect(_0x213717[_0x256929(0x1df)])['toContain'](_0x256929(0x1c3)),expect(_0x213717['AGENTS_MODE_GET'])['toContain'](_0x256929(0x1c3)),expect(_0x213717['AGENTS_STOP'])[_0x256929(0x1c4)](_0x256929(0x1c3));}),test(_0x383d01(0x1dc),async()=>{const _0x19339a=_0x383d01,{API_ENDPOINTS:_0x2cb718}=await import(_0x19339a(0x1c6));expect(_0x2cb718[_0x19339a(0x1d9)])['toBeDefined'](),expect(_0x2cb718[_0x19339a(0x1d9)])[_0x19339a(0x1e3)]('/api/orchestrator');});});function a0_0x5855(){const _0x512235=['nZu3odC4tM1AueXx','surmrq','refuqv9btKfmwvnu','Dg9czq','quDftLrFvevnueXbvevtignVBNn0yw50CYbHCMuGzgvMAw5Lza','y3vZDg9T','quDftLrtx1nut1a','u1Ltvevnx0fetuLosvnuuKfut1i','Dg9czurLzMLUzwq','Cgf1C2vK','mtqXode1m1H4yNLsqG','otaXmJfHwLLrruq','twvZC2fNzvjVDxrLCG','v2vIu29JA2v0twfUywDLCG','l2fWAs9Hz2vUDhmVoMfNzw50swqVBw9Kzq','quDftLrFtu9erq','zgvMyxvSDa','mZzitKTYBwi','quDftLrtx0fwquLmqujmrq','oMfNzw50swq','Dg9dB250ywLU','qwDLBNqGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','nZi5ndHKy2reu0q','Dg9nyxrJAa','ndiWodbstxbHwhm','lI4VlI4VyxbPl3nLC3nPB24UANm','q09esu5hx0ftu0Ltvefova','zNvUy3rPB24','mtjLu2DHD1C','mtyWy2jHELDd','DxnLqwDLBNrZ','mti5ntvOzvn0vhq','quDftLrtx01fvefeqvrb','q0Hbva','uefvu0ve','lI4VlI4VC3rHDguVDxnLqwDLBNrZlMPZ','mti5nJroCLPYEgu','qwXSigfNzw50igvUzhbVAw50CYbMB2XSB3CGuKvtvgz1BcbWyxr0zxjU','yxjJAgL2zwq','qwDLBNqGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG','t1jdsevtvfjbve9s','quDftLrFu1rbvfvtignVBNn0yw50CYbHCMuGzgvMAw5Lza','Bg9JywXOB3n0','t3jJAgvZDhjHDg9YigvUzhbVAw50igv4Axn0CYbMB3iGywDLBNqGB3bLCMf0Aw9UCW','mtmYofPJy0fhzG','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','quDftLrtx01prevFu0vu'];a0_0x5855=function(){return _0x512235;};return a0_0x5855();}
1
+ function a0_0x5227(){const _0x4b9e3c=['lI4VlI4VyxbPl3nLC3nPB24UANm','qwXSigfNzw50igvUzhbVAw50CYbMB2XSB3CGuKvtvgz1BcbWyxr0zxjU','u2vZC2LVBK1HBMfNzxi','qwDLBNqGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG','Dg9nyxrJAa','quDftLrFtu9erq','l2fWAs9VCMnOzxn0CMf0B3i','rvjst1i','oMfNzw50swq','lI4VlI4VC3rHDguVDxnLqwDLBNrZlMPZ','m1HKAMHIra','Dg9czq','l2fWAs9Hz2vUDhmVoMfNzw50swqVBw9Kzq','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','ywn0AxzL','yxjJAgL2zwq','v2vIu29JA2v0twfUywDLCG','ndiXmdm2wLfHthro','Dg9czurLzMLUzwq','qwDLBNqGqvbjigvUzhbVAw50CYbHCMuGzgvMAw5Lza','qvjdseLwruq','AwrSzq','quDftLq','mtaYnZeWreDiuwzb','q0Hbva','mtiWu1fltvbA','Dg9dB250ywLU','mtu3ntnwvgjtAKu','quDftLrtx01fvefeqvrb','t1jdsevtvfjbve9s','quDftLrtx01prevFr0vu','mZaZmtmYAuj6seLf','quDftLrtx01prevFu0vu','mJKXote4terOuMP2','ndiWmdzSCvfRDeS','zNvUy3rPB24','uefvu0ve','l2fWAs9Hz2vUDhmVoMfNzw50swqVC3rVCa','mJq0ndC2wwvMD0vb','Cgf1C2vK','nZDiuxPvA3i','quDftLrtx1nut1a','quDftLrtx0Lnue9sva','mtzbvfnMt0u','l2fWAs9Hz2vUDhmVyxzHAwXHyMXL'];a0_0x5227=function(){return _0x4b9e3c;};return a0_0x5227();}const a0_0x18d357=a0_0x2242;function a0_0x2242(_0x57bc7d,_0x2c2a6e){_0x57bc7d=_0x57bc7d-0xef;const _0x5227e3=a0_0x5227();let _0x224243=_0x5227e3[_0x57bc7d];if(a0_0x2242['cmKbkq']===undefined){var _0x5ad39e=function(_0x4016b1){const _0x5bce7f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x56c421='',_0x4c91f4='';for(let _0x54328d=0x0,_0x29a0dc,_0x1b0091,_0x288f88=0x0;_0x1b0091=_0x4016b1['charAt'](_0x288f88++);~_0x1b0091&&(_0x29a0dc=_0x54328d%0x4?_0x29a0dc*0x40+_0x1b0091:_0x1b0091,_0x54328d++%0x4)?_0x56c421+=String['fromCharCode'](0xff&_0x29a0dc>>(-0x2*_0x54328d&0x6)):0x0){_0x1b0091=_0x5bce7f['indexOf'](_0x1b0091);}for(let _0x325704=0x0,_0x4185e4=_0x56c421['length'];_0x325704<_0x4185e4;_0x325704++){_0x4c91f4+='%'+('00'+_0x56c421['charCodeAt'](_0x325704)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4c91f4);};a0_0x2242['oYSzCW']=_0x5ad39e,a0_0x2242['xrOUvd']={},a0_0x2242['cmKbkq']=!![];}const _0x4cb2aa=_0x5227e3[0x0],_0x3c1fc5=_0x57bc7d+_0x4cb2aa,_0x54aa47=a0_0x2242['xrOUvd'][_0x3c1fc5];return!_0x54aa47?(_0x224243=a0_0x2242['oYSzCW'](_0x224243),a0_0x2242['xrOUvd'][_0x3c1fc5]=_0x224243):_0x224243=_0x54aa47,_0x224243;}(function(_0x5cf68d,_0x492cc8){const _0x5bff6a=a0_0x2242,_0x22e7f0=_0x5cf68d();while(!![]){try{const _0x49abe0=-parseInt(_0x5bff6a(0x109))/0x1+-parseInt(_0x5bff6a(0x10f))/0x2*(parseInt(_0x5bff6a(0xf7))/0x3)+-parseInt(_0x5bff6a(0x10d))/0x4+-parseInt(_0x5bff6a(0x107))/0x5*(-parseInt(_0x5bff6a(0x110))/0x6)+parseInt(_0x5bff6a(0xff))/0x7+-parseInt(_0x5bff6a(0x119))/0x8*(-parseInt(_0x5bff6a(0x114))/0x9)+-parseInt(_0x5bff6a(0x105))/0xa*(-parseInt(_0x5bff6a(0x116))/0xb);if(_0x49abe0===_0x492cc8)break;else _0x22e7f0['push'](_0x22e7f0['shift']());}catch(_0x242b85){_0x22e7f0['push'](_0x22e7f0['shift']());}}}(a0_0x5227,0x1c8a6));import{describe,test,expect}from'@jest/globals';describe('Agent\x20Management\x20-\x20Imports',()=>{test('useAgents hook can be imported',async()=>{const _0x571806=a0_0x2242,{useAgents:_0x56c421}=await import('../../state/useAgents.js');expect(_0x56c421)['toBeDefined'](),expect(typeof _0x56c421)[_0x571806(0xf8)](_0x571806(0x111));}),test('useAgents is default export',async()=>{const _0x1dec95=a0_0x2242,module=await import(_0x1dec95(0xf6));expect(module['default'])[_0x1dec95(0x100)](),expect(typeof module['default'])['toBe'](_0x1dec95(0x111)),expect(module['default'])['toBe'](module['useAgents']);});}),describe('Agent\x20Management\x20-\x20Constants',()=>{const _0x528c44=a0_0x2242;test('AGENT_MODE\x20constants\x20are\x20defined',async()=>{const _0x2e998=a0_0x2242,{AGENT_MODE:_0x4c91f4}=await import(_0x2e998(0xfa));expect(_0x4c91f4)[_0x2e998(0x100)](),expect(_0x4c91f4['CHAT'])['toBe'](_0x2e998(0x106)),expect(_0x4c91f4['AGENT'])['toBe'](_0x2e998(0x104));}),test('AGENT_STATUS\x20constants\x20are\x20defined',async()=>{const _0x9f73ca=a0_0x2242,{AGENT_STATUS:_0x54328d}=await import('../../config/constants.js');expect(_0x54328d)['toBeDefined'](),expect(_0x54328d['ACTIVE'])[_0x9f73ca(0xf8)](_0x9f73ca(0xfc)),expect(_0x54328d[_0x9f73ca(0x112)])[_0x9f73ca(0xf8)](_0x9f73ca(0x115)),expect(_0x54328d['IDLE'])['toBe'](_0x9f73ca(0x103)),expect(_0x54328d[_0x9f73ca(0xf4)])['toBe']('error'),expect(_0x54328d[_0x9f73ca(0x102)])[_0x9f73ca(0xf8)](_0x9f73ca(0xfd));}),test(_0x528c44(0x101),async()=>{const _0x3397e6=_0x528c44,{API_ENDPOINTS:_0x29a0dc}=await import(_0x3397e6(0xfa));expect(_0x29a0dc['AGENTS_AVAILABLE'])[_0x3397e6(0xf8)](_0x3397e6(0x11a)),expect(_0x29a0dc['AGENTS_METADATA'])[_0x3397e6(0xf8)]('/api/agents/:agentId/metadata'),expect(_0x29a0dc[_0x3397e6(0x118)])[_0x3397e6(0xf8)]('/api/agents/import'),expect(_0x29a0dc[_0x3397e6(0x10e)])['toBe']('/api/agents/:agentId/mode'),expect(_0x29a0dc[_0x3397e6(0x10c)])['toBe'](_0x3397e6(0xf9)),expect(_0x29a0dc[_0x3397e6(0x117)])[_0x3397e6(0xf8)](_0x3397e6(0x113));}),test('AGENT_TEMPLATES\x20constants\x20are\x20defined',async()=>{const _0x5a84d5=_0x528c44,{AGENT_TEMPLATES:_0x1b0091}=await import(_0x5a84d5(0xfa));expect(_0x1b0091)['toBeDefined'](),expect(_0x1b0091['CODING_ASSISTANT'])['toBe']('coding-assistant'),expect(_0x1b0091['DATA_ANALYST'])[_0x5a84d5(0xf8)]('data-analyst'),expect(_0x1b0091['CREATIVE_WRITER'])[_0x5a84d5(0xf8)]('creative-writer'),expect(_0x1b0091['SYSTEM_ADMINISTRATOR'])['toBe']('system-administrator'),expect(_0x1b0091['CUSTOM'])[_0x5a84d5(0xf8)]('custom');});}),describe('Agent\x20Management\x20-\x20Integration',()=>{test('useAgents\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x3c0651=a0_0x2242,{useAgents:_0x288f88}=await import(_0x3c0651(0xf6)),{SessionManager:_0x325704}=await import(_0x3c0651(0x11b)),{MessageRouter:_0x4185e4}=await import(_0x3c0651(0xfb)),{WebSocketManager:_0x31280c}=await import('../../api/websocket.js'),_0x2e3d82=new _0x325704('localhost',0x1f90),_0x578208=new _0x31280c('localhost',0x1f90),_0x18f4c2=new _0x4185e4(_0x578208);expect(_0x2e3d82)[_0x3c0651(0x100)](),expect(_0x18f4c2)[_0x3c0651(0x100)](),expect(typeof _0x288f88)[_0x3c0651(0xf8)]('function');}),test('Full agent management stack can be imported together',async()=>{const _0x3d790f=a0_0x2242,[_0x19fcb2,_0x233e05,_0x1c9579,_0x47abb9,_0x7b4ca4]=await Promise['all']([import('../../config/constants.js'),import(_0x3d790f(0x11b)),import('../../api/websocket.js'),import(_0x3d790f(0xfb)),import(_0x3d790f(0xf6))]);expect(_0x19fcb2[_0x3d790f(0xf2)])[_0x3d790f(0x100)](),expect(_0x233e05[_0x3d790f(0xef)])[_0x3d790f(0x100)](),expect(_0x1c9579[_0x3d790f(0xfe)])[_0x3d790f(0x100)](),expect(_0x47abb9['MessageRouter'])['toBeDefined'](),expect(_0x7b4ca4['useAgents'])['toBeDefined']();});}),describe(a0_0x18d357(0xf0),()=>{const _0x141fef=a0_0x18d357;test(_0x141fef(0x11c),async()=>{const _0x33ba5c=_0x141fef,{API_ENDPOINTS:_0x3bc7c9}=await import('../../config/constants.js');expect(_0x3bc7c9['AGENTS_AVAILABLE'])[_0x33ba5c(0xf1)](/^\/api\/agents/),expect(_0x3bc7c9[_0x33ba5c(0x10a)])['toMatch'](/^\/api\/agents/),expect(_0x3bc7c9[_0x33ba5c(0x118)])['toMatch'](/^\/api\/agents/),expect(_0x3bc7c9['AGENTS_MODE_SET'])[_0x33ba5c(0xf1)](/^\/api\/agents/),expect(_0x3bc7c9['AGENTS_MODE_GET'])[_0x33ba5c(0xf1)](/^\/api\/agents/),expect(_0x3bc7c9['AGENTS_STOP'])['toMatch'](/^\/api\/agents/),expect(_0x3bc7c9[_0x33ba5c(0x10a)])['toContain'](_0x33ba5c(0xf5)),expect(_0x3bc7c9[_0x33ba5c(0x10e)])['toContain'](':agentId'),expect(_0x3bc7c9['AGENTS_MODE_GET'])[_0x33ba5c(0x108)](':agentId'),expect(_0x3bc7c9[_0x33ba5c(0x117)])['toContain'](':agentId');}),test('Orchestrator\x20endpoint\x20exists\x20for\x20agent\x20operations',async()=>{const _0x53fc49=_0x141fef,{API_ENDPOINTS:_0x4532da}=await import('../../config/constants.js');expect(_0x4532da[_0x53fc49(0x10b)])['toBeDefined'](),expect(_0x4532da['ORCHESTRATOR'])['toBe'](_0x53fc49(0xf3));});});
@@ -1 +1 @@
1
- function a0_0x3c53(){const _0x462e87=['sgvHzgvY','zNvUy3rPB24','DxnLrwzMzwn0','mtzns0LwBNG','Dg9czurLzMLUzwq','twvZC2fNzuXPC3q','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','mJrOBMnwBfq','mJrTtNLRBwu','q29TCg9Uzw50ie1HBMfNzw1LBNqGlsbszwfJDc9jBMSGrgvWzw5Kzw5JAwvZ','mJK3nZG3ALHJu3v1','ywXS','Aw5R','mtC5mtCWtLDStM5j','mJuWntKZwKnpsez6','zgvMyxvSDa','lI4VlI4Vy29TCg9Uzw50CY9jBNb1DejVEc5QCW','lI4VlI4Vy29TCg9Uzw50CY9izwfKzxiUANm','DxnLu3rHDgu','ndaWote0v1rnB1PN','lI4VlI4Vy29TCg9Uzw50CY9nzxnZywDLtgLZDc5QCW','mJrPAvrpzxO','tgf5B3v0ignVBxbVBMvUDcbPBNrLz3jHDgvZihDPDgGGywXSihn0yxrLigHVB2TZ','sw5WDxrcB3G','mtbAq01gBLG','ndm5otC0merAzxj5AW','odG4mJe3qKz5DhzA','u3rHDhvZqMfY','mJCXmdqXv0TAqwHQ','lI4VlI4Vy29TCg9Uzw50CY9tDgf0DxncyxiUANm','CMvHy3q','q29TCg9Uzw50ie1HBMfNzw1LBNqGlsbjBNrLz3jHDgLVBG','Dg9czq'];a0_0x3c53=function(){return _0x462e87;};return a0_0x3c53();}const a0_0x33a82d=a0_0x3cc5;function a0_0x3cc5(_0x5277a6,_0x44231a){_0x5277a6=_0x5277a6-0x174;const _0x3c536c=a0_0x3c53();let _0x3cc5f9=_0x3c536c[_0x5277a6];if(a0_0x3cc5['bZKhoE']===undefined){var _0x10280f=function(_0x30e8f1){const _0x2b41b5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x42ec27='',_0x2c2a1e='';for(let _0x1fbab4=0x0,_0x2a531d,_0x24746d,_0x8af352=0x0;_0x24746d=_0x30e8f1['charAt'](_0x8af352++);~_0x24746d&&(_0x2a531d=_0x1fbab4%0x4?_0x2a531d*0x40+_0x24746d:_0x24746d,_0x1fbab4++%0x4)?_0x42ec27+=String['fromCharCode'](0xff&_0x2a531d>>(-0x2*_0x1fbab4&0x6)):0x0){_0x24746d=_0x2b41b5['indexOf'](_0x24746d);}for(let _0xea6378=0x0,_0x3932c7=_0x42ec27['length'];_0xea6378<_0x3932c7;_0xea6378++){_0x2c2a1e+='%'+('00'+_0x42ec27['charCodeAt'](_0xea6378)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2c2a1e);};a0_0x3cc5['rlDLSe']=_0x10280f,a0_0x3cc5['YOoyjJ']={},a0_0x3cc5['bZKhoE']=!![];}const _0x5afd9a=_0x3c536c[0x0],_0x1f000b=_0x5277a6+_0x5afd9a,_0x5f29fd=a0_0x3cc5['YOoyjJ'][_0x1f000b];return!_0x5f29fd?(_0x3cc5f9=a0_0x3cc5['rlDLSe'](_0x3cc5f9),a0_0x3cc5['YOoyjJ'][_0x1f000b]=_0x3cc5f9):_0x3cc5f9=_0x5f29fd,_0x3cc5f9;}(function(_0x44363a,_0x4ea0d1){const _0x3cda0f=a0_0x3cc5,_0x41d23f=_0x44363a();while(!![]){try{const _0x21a1d2=parseInt(_0x3cda0f(0x179))/0x1+-parseInt(_0x3cda0f(0x183))/0x2*(parseInt(_0x3cda0f(0x187))/0x3)+-parseInt(_0x3cda0f(0x18f))/0x4*(parseInt(_0x3cda0f(0x178))/0x5)+-parseInt(_0x3cda0f(0x194))/0x6*(-parseInt(_0x3cda0f(0x175))/0x7)+-parseInt(_0x3cda0f(0x180))/0x8*(-parseInt(_0x3cda0f(0x17e))/0x9)+parseInt(_0x3cda0f(0x184))/0xa+parseInt(_0x3cda0f(0x185))/0xb*(-parseInt(_0x3cda0f(0x193))/0xc);if(_0x21a1d2===_0x4ea0d1)break;else _0x41d23f['push'](_0x41d23f['shift']());}catch(_0x4dae08){_0x41d23f['push'](_0x41d23f['shift']());}}}(a0_0x3c53,0x3a0ec));import{describe,test,expect}from'@jest/globals';describe('Component\x20Management\x20-\x20Imports',()=>{test('Layout component can be imported',async()=>{const _0x3579bd=a0_0x3cc5,{Layout:_0x42ec27}=await import(_0x3579bd(0x192));expect(_0x42ec27)[_0x3579bd(0x190)](),expect(typeof _0x42ec27)['toBe']('function');}),test('Layout is default export',async()=>{const _0x5aba69=a0_0x3cc5,module=await import(_0x5aba69(0x192));expect(module['default'])['toBeDefined'](),expect(typeof module['default'])[_0x5aba69(0x18b)](_0x5aba69(0x18d)),expect(module[_0x5aba69(0x17a)])[_0x5aba69(0x18b)](module['Layout']);}),test('Header component can be imported',async()=>{const _0x375824=a0_0x3cc5,{Header:_0x2c2a1e}=await import('../../components/Header.js');expect(_0x2c2a1e)[_0x375824(0x190)](),expect(typeof _0x2c2a1e)[_0x375824(0x18b)](_0x375824(0x18d));}),test('Header is default export',async()=>{const _0x4d5780=a0_0x3cc5,module=await import(_0x4d5780(0x17c));expect(module[_0x4d5780(0x17a)])['toBeDefined'](),expect(module['default'])[_0x4d5780(0x18b)](module['Header']);}),test('StatusBar component can be imported',async()=>{const _0x34ef34=a0_0x3cc5,{StatusBar:_0x1fbab4}=await import(_0x34ef34(0x188));expect(_0x1fbab4)['toBeDefined'](),expect(typeof _0x1fbab4)[_0x34ef34(0x18b)]('function');}),test('StatusBar is default export',async()=>{const _0x4bc41d=a0_0x3cc5,module=await import(_0x4bc41d(0x188));expect(module['default'])['toBeDefined'](),expect(module['default'])['toBe'](module[_0x4bc41d(0x186)]);}),test('MessageList component can be imported',async()=>{const _0x1311ac=a0_0x3cc5,{MessageList:_0x2a531d}=await import(_0x1311ac(0x17f));expect(_0x2a531d)['toBeDefined'](),expect(typeof _0x2a531d)[_0x1311ac(0x18b)]('function');}),test('MessageList is default export',async()=>{const _0x1446dd=a0_0x3cc5,module=await import(_0x1446dd(0x17f));expect(module[_0x1446dd(0x17a)])[_0x1446dd(0x190)](),expect(module['default'])[_0x1446dd(0x18b)](module['MessageList']);}),test('InputBox component can be imported',async()=>{const _0x30ef1a=a0_0x3cc5,{InputBox:_0x24746d}=await import('../../components/InputBox.js');expect(_0x24746d)[_0x30ef1a(0x190)](),expect(typeof _0x24746d)[_0x30ef1a(0x18b)]('function');}),test('InputBox is default export',async()=>{const module=await import('../../components/InputBox.js');expect(module['default'])['toBeDefined'](),expect(module['default'])['toBe'](module['InputBox']);});}),describe(a0_0x33a82d(0x18a),()=>{const _0x8cd600=a0_0x33a82d;test('All components can be imported together',async()=>{const _0x56120b=a0_0x3cc5,[_0x8af352,_0xea6378,_0x3932c7,_0x4b6359,_0x694ca4]=await Promise[_0x56120b(0x176)]([import(_0x56120b(0x192)),import(_0x56120b(0x17c)),import('../../components/StatusBar.js'),import('../../components/MessageList.js'),import(_0x56120b(0x17b))]);expect(_0x8af352['Layout'])['toBeDefined'](),expect(_0xea6378[_0x56120b(0x18c)])[_0x56120b(0x190)](),expect(_0x3932c7['StatusBar'])[_0x56120b(0x190)](),expect(_0x4b6359[_0x56120b(0x191)])[_0x56120b(0x190)](),expect(_0x694ca4[_0x56120b(0x182)])['toBeDefined']();}),test(_0x8cd600(0x181),async()=>{const _0x5094b9=_0x8cd600,{Layout:_0x5a33be}=await import('../../components/Layout.js'),{useConnection:_0x42fcd7}=await import('../../state/useConnection.js'),{useAgents:_0x620708}=await import('../../state/useAgents.js'),{useMessages:_0x4b33ff}=await import('../../state/useMessages.js'),{useAgentControl:_0x8dce37}=await import('../../state/useAgentControl.js'),{useTools:_0x5d5d19}=await import('../../state/useTools.js');expect(_0x5a33be)[_0x5094b9(0x190)](),expect(_0x42fcd7)['toBeDefined'](),expect(_0x620708)['toBeDefined'](),expect(_0x4b33ff)[_0x5094b9(0x190)](),expect(_0x8dce37)[_0x5094b9(0x190)](),expect(_0x5d5d19)[_0x5094b9(0x190)]();});}),describe(a0_0x33a82d(0x174),()=>{test('Ink components can be imported',async()=>{const _0xebeacf=a0_0x3cc5,{Box:_0x4f6bb6,Text:_0xf342cf}=await import(_0xebeacf(0x177));expect(_0x4f6bb6)['toBeDefined'](),expect(_0xf342cf)['toBeDefined']();}),test('React can be imported',async()=>{const _0x5a7c50=a0_0x3cc5,_0x5ead1e=await import(_0x5a7c50(0x189));expect(_0x5ead1e[_0x5a7c50(0x17a)])['toBeDefined'](),expect(_0x5ead1e[_0x5a7c50(0x17d)])['toBeDefined'](),expect(_0x5ead1e[_0x5a7c50(0x18e)])['toBeDefined']();});});
1
+ (function(_0x1bca62,_0x5919e5){const _0x586bee=a0_0x34de,_0xd96729=_0x1bca62();while(!![]){try{const _0x348416=parseInt(_0x586bee(0x1d0))/0x1+-parseInt(_0x586bee(0x1b6))/0x2*(parseInt(_0x586bee(0x1d1))/0x3)+-parseInt(_0x586bee(0x1c5))/0x4+-parseInt(_0x586bee(0x1bb))/0x5*(-parseInt(_0x586bee(0x1cb))/0x6)+-parseInt(_0x586bee(0x1b5))/0x7+-parseInt(_0x586bee(0x1bc))/0x8*(-parseInt(_0x586bee(0x1c8))/0x9)+-parseInt(_0x586bee(0x1cf))/0xa*(-parseInt(_0x586bee(0x1ce))/0xb);if(_0x348416===_0x5919e5)break;else _0xd96729['push'](_0xd96729['shift']());}catch(_0x2f7ad3){_0xd96729['push'](_0xd96729['shift']());}}}(a0_0x2f37,0x1d25f));import{describe,test,expect}from'@jest/globals';function a0_0x34de(_0x17c01d,_0x2ca2a9){_0x17c01d=_0x17c01d-0x1b4;const _0x2f37b6=a0_0x2f37();let _0x34deb9=_0x2f37b6[_0x17c01d];if(a0_0x34de['ERhYdS']===undefined){var _0x4a9759=function(_0x52fcc6){const _0x58a3f9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4e14ae='',_0x21c60c='';for(let _0x410b21=0x0,_0x2aab21,_0xbbfa75,_0xbc71f3=0x0;_0xbbfa75=_0x52fcc6['charAt'](_0xbc71f3++);~_0xbbfa75&&(_0x2aab21=_0x410b21%0x4?_0x2aab21*0x40+_0xbbfa75:_0xbbfa75,_0x410b21++%0x4)?_0x4e14ae+=String['fromCharCode'](0xff&_0x2aab21>>(-0x2*_0x410b21&0x6)):0x0){_0xbbfa75=_0x58a3f9['indexOf'](_0xbbfa75);}for(let _0x95d437=0x0,_0x4d1729=_0x4e14ae['length'];_0x95d437<_0x4d1729;_0x95d437++){_0x21c60c+='%'+('00'+_0x4e14ae['charCodeAt'](_0x95d437)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x21c60c);};a0_0x34de['KTpTOh']=_0x4a9759,a0_0x34de['sNfeGo']={},a0_0x34de['ERhYdS']=!![];}const _0x4a495e=_0x2f37b6[0x0],_0x506e6a=_0x17c01d+_0x4a495e,_0x59f0bf=a0_0x34de['sNfeGo'][_0x506e6a];return!_0x59f0bf?(_0x34deb9=a0_0x34de['KTpTOh'](_0x34deb9),a0_0x34de['sNfeGo'][_0x506e6a]=_0x34deb9):_0x34deb9=_0x59f0bf,_0x34deb9;}describe('Component\x20Management\x20-\x20Imports',()=>{test('Layout component can be imported',async()=>{const _0x536572=a0_0x34de,{Layout:_0x4e14ae}=await import(_0x536572(0x1b8));expect(_0x4e14ae)[_0x536572(0x1b4)](),expect(typeof _0x4e14ae)['toBe'](_0x536572(0x1bf));}),test('Layout is default export',async()=>{const _0x5b6e31=a0_0x34de,module=await import('../../components/Layout.js');expect(module[_0x5b6e31(0x1ca)])[_0x5b6e31(0x1b4)](),expect(typeof module['default'])['toBe']('function'),expect(module['default'])['toBe'](module[_0x5b6e31(0x1bd)]);}),test('Header component can be imported',async()=>{const _0x4a6c4c=a0_0x34de,{Header:_0x21c60c}=await import('../../components/Header.js');expect(_0x21c60c)[_0x4a6c4c(0x1b4)](),expect(typeof _0x21c60c)['toBe'](_0x4a6c4c(0x1bf));}),test('Header is default export',async()=>{const _0xa8ada5=a0_0x34de,module=await import(_0xa8ada5(0x1c3));expect(module['default'])[_0xa8ada5(0x1b4)](),expect(module['default'])['toBe'](module['Header']);}),test('StatusBar component can be imported',async()=>{const _0x5bd3b2=a0_0x34de,{StatusBar:_0x410b21}=await import('../../components/StatusBar.js');expect(_0x410b21)['toBeDefined'](),expect(typeof _0x410b21)[_0x5bd3b2(0x1c1)]('function');}),test('StatusBar is default export',async()=>{const _0x1814c7=a0_0x34de,module=await import('../../components/StatusBar.js');expect(module['default'])['toBeDefined'](),expect(module[_0x1814c7(0x1ca)])[_0x1814c7(0x1c1)](module[_0x1814c7(0x1b9)]);}),test('MessageList component can be imported',async()=>{const _0x1df1cd=a0_0x34de,{MessageList:_0x2aab21}=await import(_0x1df1cd(0x1c0));expect(_0x2aab21)[_0x1df1cd(0x1b4)](),expect(typeof _0x2aab21)[_0x1df1cd(0x1c1)]('function');}),test('MessageList is default export',async()=>{const _0x534e0c=a0_0x34de,module=await import('../../components/MessageList.js');expect(module[_0x534e0c(0x1ca)])[_0x534e0c(0x1b4)](),expect(module[_0x534e0c(0x1ca)])['toBe'](module[_0x534e0c(0x1c2)]);}),test('InputBox component can be imported',async()=>{const _0x5864d3=a0_0x34de,{InputBox:_0xbbfa75}=await import(_0x5864d3(0x1c7));expect(_0xbbfa75)['toBeDefined'](),expect(typeof _0xbbfa75)['toBe']('function');}),test('InputBox is default export',async()=>{const _0x5b9182=a0_0x34de,module=await import(_0x5b9182(0x1c7));expect(module[_0x5b9182(0x1ca)])[_0x5b9182(0x1b4)](),expect(module[_0x5b9182(0x1ca)])[_0x5b9182(0x1c1)](module[_0x5b9182(0x1ba)]);});}),describe('Component\x20Management\x20-\x20Integration',()=>{test('All components can be imported together',async()=>{const _0x59ba79=a0_0x34de,[_0xbc71f3,_0x95d437,_0x4d1729,_0x4e6534,_0x122d09]=await Promise[_0x59ba79(0x1cc)]([import(_0x59ba79(0x1b8)),import('../../components/Header.js'),import(_0x59ba79(0x1b7)),import(_0x59ba79(0x1c0)),import('../../components/InputBox.js')]);expect(_0xbc71f3[_0x59ba79(0x1bd)])[_0x59ba79(0x1b4)](),expect(_0x95d437['Header'])[_0x59ba79(0x1b4)](),expect(_0x4d1729['StatusBar'])[_0x59ba79(0x1b4)](),expect(_0x4e6534['MessageList'])['toBeDefined'](),expect(_0x122d09['InputBox'])['toBeDefined']();}),test('Layout\x20component\x20integrates\x20with\x20all\x20state\x20hooks',async()=>{const _0x23291d=a0_0x34de,{Layout:_0x110aa0}=await import('../../components/Layout.js'),{useConnection:_0x2b17a9}=await import(_0x23291d(0x1be)),{useAgents:_0x5024a8}=await import('../../state/useAgents.js'),{useMessages:_0x20c6ae}=await import(_0x23291d(0x1c6)),{useAgentControl:_0x3c86bf}=await import(_0x23291d(0x1c4)),{useTools:_0x56d689}=await import(_0x23291d(0x1c9));expect(_0x110aa0)['toBeDefined'](),expect(_0x2b17a9)['toBeDefined'](),expect(_0x5024a8)['toBeDefined'](),expect(_0x20c6ae)['toBeDefined'](),expect(_0x3c86bf)[_0x23291d(0x1b4)](),expect(_0x56d689)[_0x23291d(0x1b4)]();});}),describe('Component\x20Management\x20-\x20React/Ink\x20Dependencies',()=>{test('Ink components can be imported',async()=>{const _0xa3d2a7=a0_0x34de,{Box:_0x2229f2,Text:_0x249c49}=await import('ink');expect(_0x2229f2)['toBeDefined'](),expect(_0x249c49)[_0xa3d2a7(0x1b4)]();}),test('React can be imported',async()=>{const _0x585840=a0_0x34de,_0x109f78=await import('react');expect(_0x109f78['default'])[_0x585840(0x1b4)](),expect(_0x109f78[_0x585840(0x1cd)])['toBeDefined'](),expect(_0x109f78['useEffect'])[_0x585840(0x1b4)]();});});function a0_0x2f37(){const _0x1aef6e=['zgvMyxvSDa','mZbUtfrRC1q','ywXS','DxnLu3rHDgu','mtfjrw9QDha','mtqZndy3mfzQEgXICa','mJeWntHVthnrwgO','m0LQrMn1qq','Dg9czurLzMLUzwq','ntm2odG2CLnRwMjO','mZq1mty2ywTWzhPA','lI4VlI4Vy29TCg9Uzw50CY9tDgf0DxncyxiUANm','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','u3rHDhvZqMfY','sw5WDxrcB3G','mtm0ndu1v0rHv2Pr','mJrPENroAMq','tgf5B3v0','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','zNvUy3rPB24','lI4VlI4Vy29TCg9Uzw50CY9nzxnZywDLtgLZDc5QCW','Dg9czq','twvZC2fNzuXPC3q','lI4VlI4Vy29TCg9Uzw50CY9izwfKzxiUANm','lI4VlI4VC3rHDguVDxnLqwDLBNrdB250CM9SlMPZ','mtm0nJiWrw1OvfHn','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','lI4VlI4Vy29TCg9Uzw50CY9jBNb1DejVEc5QCW','mZeWmdqXyNjoqM9t','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm'];a0_0x2f37=function(){return _0x1aef6e;};return a0_0x2f37();}
@@ -1 +1 @@
1
- const a0_0x4a46e8=a0_0x5873;(function(_0x5f31ef,_0x55a5f7){const _0x167329=a0_0x5873,_0x5a111d=_0x5f31ef();while(!![]){try{const _0x1f6b69=parseInt(_0x167329(0xad))/0x1+-parseInt(_0x167329(0x96))/0x2+parseInt(_0x167329(0x9d))/0x3+-parseInt(_0x167329(0x82))/0x4+parseInt(_0x167329(0xab))/0x5*(parseInt(_0x167329(0x87))/0x6)+-parseInt(_0x167329(0xa1))/0x7+-parseInt(_0x167329(0xa7))/0x8*(-parseInt(_0x167329(0xa8))/0x9);if(_0x1f6b69===_0x55a5f7)break;else _0x5a111d['push'](_0x5a111d['shift']());}catch(_0x41ed54){_0x5a111d['push'](_0x5a111d['shift']());}}}(a0_0x5b1c,0x6c55b));function a0_0x5b1c(){const _0x5d8fb6=['q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gu2vZC2LVBIbtDgf0zq','mZiZmduWn1vWuwvmsG','y29UBMvJDgvK','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','q09otKvdveLorW','BgvUz3rO','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gq29UBMvJDgLVBIbjBMzV','ohDeuLLcqG','mJe4nZiWn3rvsLLHAa','AxndB25Uzwn0zwq','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gq29UBMvJDgLVBIbtDgf0DxmGvhjHBNnPDgLVBNm','nduXodm1ugryCfHP','Dg9czuXLC3nuAgfUt3jfCxvHBa','mtu3otuXv2L5zgL1','y29UBMvJDgLUzW','uKvdt05orunux0nptKzjrYb2ywX1zxmGyxjLihjLyxnVBMfIBgu','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gq29UBMvJDgLVBIbnzxrYAwnZ','Dg9czurLzMLUzwq','zNvUy3rPB24','qKfds09grL9nvuXusvbmsuvs','B2zM','Cg93','q29UBMvJDgLVBIb1ChrPBwuGy2fUigjLihrYywnRzwq','uKvdt05orunusu5h','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0GrxHWB25LBNrPywWGqMfJA29MzIbmB2DPyW','uKvdt05orunux0nptKzjrW','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','uKvdt05orunux0nptKzjrYbJB25ZDgfUDhmGyxjLigrLzMLUzwq','q29UBMvJDgLVBIbPBMzVihnOB3vSzcbJB250ywLUigfSBcbTzxrYAwnZ','mJyWmdeYzKjltgLe','Dg9czq','BM93','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gtwf4ief0DgvTChrZieXPBwL0','C3rYAw5N','mtjRD1nQD1O','DxnLq29UBMvJDgLVBIbYzxr1CM5Zigv4CgvJDgvKigLUDgvYzMfJzsbZAgfWzq','DgvZDc1ZzxnZAw9UlteYmW','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','Dg9dB250ywLU','Dg9mB3DLCKnHC2u','q09otKvdveLptL9tvefuvvmGy29UC3rHBNrZigfYzsbKzwzPBMvK','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieLUDgvNCMf0Aw9U','q09otKvdveLptL9tvefuvvmGDMfSDwvZigfYzsbSB3DLCMnHC2uGC3rYAw5NCW','q09otKvdveve','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','q29UBMvJDgLVBIbZDgf0DxmGDhjHBNnPDgLVBNmGzM9SBg93ihzHBgLKigzSB3C','A2v5CW','Dg9czuDYzwf0zxjuAgfU','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','nZGXnJC0y2D5wvzY','reLtq09otKvdveve','CMvJB25Uzwn0Aw5N','tufyx0rftefz','Bg9JywXOB3n0','tufyx0fuvevnufrt','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gu3rHDhvZifzHBhvLCW','mJmZodeXnMz3zKD4qW','rxHWB25LBNrPywWGyMfJA29MzIbKzwXHEsbJywXJDwXHDgLVBIb3B3jRCYbJB3jYzwn0BhK','su5jveLbtf9eruXbwq'];a0_0x5b1c=function(){return _0x5d8fb6;};return a0_0x5b1c();}import{describe,test,expect}from'@jest/globals';function a0_0x5873(_0x28e582,_0x590bf2){_0x28e582=_0x28e582-0x7b;const _0x5b1ca1=a0_0x5b1c();let _0x5873fe=_0x5b1ca1[_0x28e582];if(a0_0x5873['nmSPxS']===undefined){var _0x3c74ef=function(_0x3953d0){const _0x58a8c1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x26f320='',_0x19bf18='';for(let _0x56b3e2=0x0,_0x4cc96c,_0x27d873,_0x12fb4c=0x0;_0x27d873=_0x3953d0['charAt'](_0x12fb4c++);~_0x27d873&&(_0x4cc96c=_0x56b3e2%0x4?_0x4cc96c*0x40+_0x27d873:_0x27d873,_0x56b3e2++%0x4)?_0x26f320+=String['fromCharCode'](0xff&_0x4cc96c>>(-0x2*_0x56b3e2&0x6)):0x0){_0x27d873=_0x58a8c1['indexOf'](_0x27d873);}for(let _0x55e53c=0x0,_0x99cd7a=_0x26f320['length'];_0x55e53c<_0x99cd7a;_0x55e53c++){_0x19bf18+='%'+('00'+_0x26f320['charCodeAt'](_0x55e53c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x19bf18);};a0_0x5873['nUOwUP']=_0x3c74ef,a0_0x5873['LtIjJK']={},a0_0x5873['nmSPxS']=!![];}const _0x277291=_0x5b1ca1[0x0],_0x321337=_0x28e582+_0x277291,_0x288b1b=a0_0x5873['LtIjJK'][_0x321337];return!_0x288b1b?(_0x5873fe=a0_0x5873['nUOwUP'](_0x5873fe),a0_0x5873['LtIjJK'][_0x321337]=_0x5873fe):_0x5873fe=_0x288b1b,_0x5873fe;}describe(a0_0x4a46e8(0x8a),()=>{test('useConnection hook can be imported',async()=>{const _0xff891e=a0_0x5873,{useConnection:_0x26f320}=await import(_0xff891e(0xa3));expect(_0x26f320)['toBeDefined'](),expect(typeof _0x26f320)[_0xff891e(0x83)](_0xff891e(0xb2));}),test('useConnection is default export',async()=>{const _0x27ee92=a0_0x5873,module=await import(_0x27ee92(0xa3));expect(module['default'])[_0x27ee92(0xb1)](),expect(typeof module['default'])[_0x27ee92(0x83)](_0x27ee92(0xb2)),expect(module['default'])['toBe'](module['useConnection']);});}),describe('Connection\x20Management\x20-\x20Constants',()=>{const _0x1fb383=a0_0x4a46e8;test(_0x1fb383(0x8d),async()=>{const _0x483ce6=_0x1fb383,{CONNECTION_STATUS:_0x19bf18}=await import(_0x483ce6(0x7f));expect(_0x19bf18)['toBeDefined'](),expect(_0x19bf18['CONNECTING'])[_0x483ce6(0x83)](_0x483ce6(0xae)),expect(_0x19bf18[_0x483ce6(0x90)])['toBe']('connected'),expect(_0x19bf18[_0x483ce6(0x97)])['toBe']('disconnected'),expect(_0x19bf18['RECONNECTING'])[_0x483ce6(0x83)]('reconnecting');}),test('CONNECTION_STATUS\x20is\x20alias\x20for\x20CONNECTION_STATE',async()=>{const _0x2ed363=_0x1fb383,{CONNECTION_STATUS:_0x56b3e2,CONNECTION_STATE:_0x4cc96c}=await import(_0x2ed363(0x7f));expect(_0x56b3e2)[_0x2ed363(0x83)](_0x4cc96c);}),test(_0x1fb383(0x80),async()=>{const _0x43bf3c=_0x1fb383,{RECONNECT_CONFIG:_0x27d873}=await import(_0x43bf3c(0x7f));expect(_0x27d873)[_0x43bf3c(0xb1)](),expect(_0x27d873['INITIAL_DELAY'])[_0x43bf3c(0xb1)](),expect(_0x27d873[_0x43bf3c(0x99)])['toBeDefined'](),expect(_0x27d873['BACKOFF_MULTIPLIER'])[_0x43bf3c(0xb1)](),expect(_0x27d873[_0x43bf3c(0x9b)])[_0x43bf3c(0xb1)]();}),test(_0x1fb383(0xaf),async()=>{const _0x4a26d8=_0x1fb383,{RECONNECT_CONFIG:_0x12fb4c}=await import(_0x4a26d8(0x7f));expect(_0x12fb4c[_0x4a26d8(0x9f)])[_0x4a26d8(0x94)](0x0),expect(_0x12fb4c['MAX_DELAY'])['toBeGreaterThan'](_0x12fb4c['INITIAL_DELAY']),expect(_0x12fb4c[_0x4a26d8(0xb3)])['toBeGreaterThan'](0x1),expect(_0x12fb4c[_0x4a26d8(0x9b)])['toBeGreaterThan'](0x0);});}),describe('Connection\x20Management\x20-\x20Integration',()=>{test('useConnection\x20hook\x20integrates\x20with\x20SessionManager\x20and\x20WebSocketManager',async()=>{const _0x5c014a=a0_0x5873,{useConnection:_0x55e53c}=await import(_0x5c014a(0xa3)),{SessionManager:_0x99cd7a}=await import('../../api/session.js'),{WebSocketManager:_0x26a401}=await import(_0x5c014a(0x95)),_0x1b29b3=new _0x99cd7a(_0x5c014a(0x9a),0x1f90),_0x279cb9=new _0x26a401(_0x5c014a(0x9a),0x1f90);expect(_0x1b29b3)[_0x5c014a(0xb1)](),expect(_0x279cb9)['toBeDefined'](),expect(typeof _0x55e53c)['toBe'](_0x5c014a(0xb2));}),test('Full connection stack can be imported together',async()=>{const _0x1e1582=a0_0x5873,[_0x4f915b,_0x3d2989,_0x131818,_0x57ff8a]=await Promise['all']([import('../../config/constants.js'),import('../../api/session.js'),import('../../api/websocket.js'),import('../../state/useConnection.js')]);expect(_0x4f915b['CONNECTION_STATUS'])[_0x1e1582(0xb1)](),expect(_0x4f915b[_0x1e1582(0x7e)])['toBeDefined'](),expect(_0x3d2989['SessionManager'])['toBeDefined'](),expect(_0x131818['WebSocketManager'])['toBeDefined'](),expect(_0x57ff8a['useConnection'])['toBeDefined']();});}),describe('Connection\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x19291a=a0_0x4a46e8;test(_0x19291a(0x88),async()=>{const _0x3c8057=_0x19291a,{useConnection:_0x2ef0fb}=await import(_0x3c8057(0xa3));expect(_0x2ef0fb[_0x3c8057(0xa5)])['toBe'](0x2);});}),describe(a0_0x4a46e8(0x9c),()=>{const _0x56004d=a0_0x4a46e8;test(_0x56004d(0x8f),async()=>{const _0x3e3455=_0x56004d,{CONNECTION_STATUS:_0x37ece3}=await import('../../config/constants.js');expect(typeof _0x37ece3['CONNECTING'])[_0x3e3455(0x83)](_0x3e3455(0x86)),expect(typeof _0x37ece3['CONNECTED'])[_0x3e3455(0x83)](_0x3e3455(0x86)),expect(typeof _0x37ece3['DISCONNECTED'])[_0x3e3455(0x83)]('string'),expect(typeof _0x37ece3[_0x3e3455(0x7c)])[_0x3e3455(0x83)](_0x3e3455(0x86)),expect(_0x37ece3['CONNECTING'])['toBe'](_0x37ece3[_0x3e3455(0xa4)][_0x3e3455(0x8c)]()),expect(_0x37ece3[_0x3e3455(0x90)])[_0x3e3455(0x83)](_0x37ece3[_0x3e3455(0x90)]['toLowerCase']());}),test('CONNECTION_STATUS\x20has\x20all\x20required\x20states',async()=>{const _0x3b9b68=_0x56004d,{CONNECTION_STATUS:_0x11ea3f}=await import(_0x3b9b68(0x7f)),_0x344a32=Object[_0x3b9b68(0x93)](_0x11ea3f);expect(_0x344a32)[_0x3b9b68(0x8b)](_0x3b9b68(0xa4)),expect(_0x344a32)[_0x3b9b68(0x8b)](_0x3b9b68(0x90)),expect(_0x344a32)[_0x3b9b68(0x8b)]('DISCONNECTED'),expect(_0x344a32)[_0x3b9b68(0x8b)]('RECONNECTING');});}),describe(a0_0x4a46e8(0x7d),()=>{const _0x1976c4=a0_0x4a46e8;test(_0x1976c4(0x9e),async()=>{const _0x5cea74=_0x1976c4,{RECONNECT_CONFIG:_0x39b7ff}=await import('../../config/constants.js'),_0x414baa=_0x12929a=>{const _0x2ac080=a0_0x5873;return Math['min'](_0x39b7ff['INITIAL_DELAY']*Math[_0x2ac080(0xb5)](_0x39b7ff['BACKOFF_MULTIPLIER'],_0x12929a),_0x39b7ff[_0x2ac080(0x99)]);},_0x4eac7e=_0x414baa(0x0),_0x38e9b5=_0x414baa(0x1),_0xaa1950=_0x414baa(0x2);expect(_0x4eac7e)['toBe'](_0x39b7ff[_0x5cea74(0x9f)]),expect(_0x38e9b5)[_0x5cea74(0x94)](_0x4eac7e),expect(_0xaa1950)['toBeGreaterThan'](_0x38e9b5);}),test('Exponential\x20backoff\x20respects\x20max\x20delay',async()=>{const _0x1e2b7a=_0x1976c4,{RECONNECT_CONFIG:_0x44b014}=await import(_0x1e2b7a(0x7f)),_0x2d561f=_0x583baa=>{const _0x517b28=_0x1e2b7a;return Math['min'](_0x44b014[_0x517b28(0x9f)]*Math['pow'](_0x44b014[_0x517b28(0xb3)],_0x583baa),_0x44b014[_0x517b28(0x99)]);},_0x619d79=_0x2d561f(0x64);expect(_0x619d79)[_0x1e2b7a(0x83)](_0x44b014[_0x1e2b7a(0x99)]),expect(_0x619d79)[_0x1e2b7a(0xac)](_0x44b014[_0x1e2b7a(0x99)]);});}),describe(a0_0x4a46e8(0xa0),()=>{test('Session\x20state\x20should\x20track\x20validity',async()=>{const _0x52a69f=a0_0x5873;let _0x3e41d7=null,_0x26ed36=![],_0xbefa22=null;_0x3e41d7=_0x52a69f(0x89),_0x26ed36=!![],_0xbefa22=Date[_0x52a69f(0x84)]()+0x36ee80,expect(_0x3e41d7)['toBeDefined'](),expect(_0x26ed36)[_0x52a69f(0x83)](!![]),expect(_0xbefa22)['toBeGreaterThan'](Date[_0x52a69f(0x84)]());}),test('Session\x20state\x20should\x20invalidate',async()=>{const _0x538985=a0_0x5873;let _0x1b98f7='test-session-123',_0x2c81fc=!![];_0x1b98f7=null,_0x2c81fc=![],expect(_0x1b98f7)['toBeNull'](),expect(_0x2c81fc)[_0x538985(0x83)](![]);});}),describe(a0_0x4a46e8(0xb0),()=>{const _0x26ca0d=a0_0x4a46e8;test(_0x26ca0d(0x7b),async()=>{const _0x5ae278=_0x26ca0d,_0x947af8=Date[_0x5ae278(0x84)]();await new Promise(_0x1ca2d5=>setTimeout(_0x1ca2d5,0x64));const _0x478d03=Date['now']()-_0x947af8;expect(_0x478d03)['toBeGreaterThan'](0x0),expect(_0x478d03)[_0x5ae278(0x91)](0x64);}),test('Connection\x20metrics\x20track\x20timestamps',async()=>{const _0x324962=_0x26ca0d,_0x1a9a2d=Date['now']();await new Promise(_0x5137cc=>setTimeout(_0x5137cc,0x32));const _0x2ae109=Date[_0x324962(0x84)]();expect(_0x1a9a2d)['toBeDefined'](),expect(_0x2ae109)['toBeDefined'](),expect(_0x2ae109)['toBeGreaterThan'](_0x1a9a2d);}),test('Reconnection\x20attempts\x20can\x20be\x20tracked',async()=>{const _0xe49df4=_0x26ca0d;let _0x4e9aff=0x0;_0x4e9aff+=0x1,expect(_0x4e9aff)['toBe'](0x1),_0x4e9aff+=0x1,expect(_0x4e9aff)[_0xe49df4(0x83)](0x2),_0x4e9aff=0x0,expect(_0x4e9aff)[_0xe49df4(0x83)](0x0);});}),describe(a0_0x4a46e8(0xaa),()=>{const _0x2c067e=a0_0x4a46e8;test(_0x2c067e(0x92),async()=>{const _0x11b98b=_0x2c067e,{CONNECTION_STATUS:_0x554003}=await import('../../config/constants.js');let _0x13ff0f=_0x554003[_0x11b98b(0x97)];expect(_0x13ff0f)[_0x11b98b(0x83)]('disconnected'),_0x13ff0f=_0x554003['CONNECTING'],expect(_0x13ff0f)['toBe'](_0x11b98b(0xae)),_0x13ff0f=_0x554003[_0x11b98b(0x90)],expect(_0x13ff0f)['toBe'](_0x11b98b(0xa2)),_0x13ff0f=_0x554003[_0x11b98b(0x97)],expect(_0x13ff0f)['toBe']('disconnected'),_0x13ff0f=_0x554003[_0x11b98b(0x7c)],expect(_0x13ff0f)['toBe'](_0x11b98b(0x98)),_0x13ff0f=_0x554003['CONNECTED'],expect(_0x13ff0f)[_0x11b98b(0x83)]('connected');});}),describe(a0_0x4a46e8(0x8e),()=>{test('WebSocketManager\x20has\x20event\x20emitter\x20methods',async()=>{const _0x58bc73=a0_0x5873,{WebSocketManager:_0x363525}=await import('../../api/websocket.js'),_0xcb9e3f=new _0x363525('localhost',0x1f90);expect(_0xcb9e3f['on'])[_0x58bc73(0xb1)](),expect(_0xcb9e3f[_0x58bc73(0xb4)])[_0x58bc73(0xb1)](),expect(typeof _0xcb9e3f['on'])[_0x58bc73(0x83)]('function'),expect(typeof _0xcb9e3f[_0x58bc73(0xb4)])['toBe']('function');});}),describe(a0_0x4a46e8(0x85),()=>{test('Reconnection\x20should\x20stop\x20after\x20max\x20attempts',async()=>{const _0x81f7e3=a0_0x5873,{RECONNECT_CONFIG:_0x2c5841}=await import('../../config/constants.js');let _0x5236cc=0x0;for(let _0x67b7be=0x0;_0x67b7be<_0x2c5841['MAX_ATTEMPTS']+0x5;_0x67b7be++){if(_0x5236cc<_0x2c5841[_0x81f7e3(0x9b)])_0x5236cc+=0x1;else break;}expect(_0x5236cc)['toBe'](_0x2c5841[_0x81f7e3(0x9b)]),expect(_0x5236cc)[_0x81f7e3(0xac)](_0x2c5841[_0x81f7e3(0x9b)]);});}),describe(a0_0x4a46e8(0xa6),()=>{const _0x578489=a0_0x4a46e8;test(_0x578489(0x81),async()=>{const _0x47615f=_0x578489,{CONNECTION_STATUS:_0x42b13c}=await import(_0x47615f(0x7f)),_0x4834a9={'status':_0x42b13c[_0x47615f(0x90)],'isConnected':!![],'isReconnecting':![],'sessionId':'test-session-123','sessionValid':!![],'sessionExpiration':Date['now']()+0x36ee80,'uptime':0x1388,'lastConnectedAt':Date[_0x47615f(0x84)]()-0x1388,'lastDisconnectedAt':null,'reconnectAttempts':0x0};expect(_0x4834a9['status'])[_0x47615f(0xb1)](),expect(_0x4834a9[_0x47615f(0xa9)])[_0x47615f(0x83)](!![]),expect(_0x4834a9['isReconnecting'])['toBe'](![]),expect(_0x4834a9['sessionId'])[_0x47615f(0xb1)](),expect(_0x4834a9['sessionValid'])[_0x47615f(0x83)](!![]),expect(_0x4834a9['uptime'])[_0x47615f(0x94)](0x0);});});
1
+ const a0_0x3efa8c=a0_0x45f0;function a0_0x45f0(_0x2b2ca5,_0x41b05c){_0x2b2ca5=_0x2b2ca5-0xd8;const _0x328c91=a0_0x328c();let _0x45f078=_0x328c91[_0x2b2ca5];if(a0_0x45f0['VodgVo']===undefined){var _0x41526c=function(_0x15c3ad){const _0x4e5abc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x30a671='',_0x3f41fd='';for(let _0x381e32=0x0,_0x283185,_0x3d7981,_0x20bafd=0x0;_0x3d7981=_0x15c3ad['charAt'](_0x20bafd++);~_0x3d7981&&(_0x283185=_0x381e32%0x4?_0x283185*0x40+_0x3d7981:_0x3d7981,_0x381e32++%0x4)?_0x30a671+=String['fromCharCode'](0xff&_0x283185>>(-0x2*_0x381e32&0x6)):0x0){_0x3d7981=_0x4e5abc['indexOf'](_0x3d7981);}for(let _0x303636=0x0,_0x7cffd3=_0x30a671['length'];_0x303636<_0x7cffd3;_0x303636++){_0x3f41fd+='%'+('00'+_0x30a671['charCodeAt'](_0x303636)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3f41fd);};a0_0x45f0['AKDXRE']=_0x41526c,a0_0x45f0['jxJbPX']={},a0_0x45f0['VodgVo']=!![];}const _0x1eaee1=_0x328c91[0x0],_0x333f53=_0x2b2ca5+_0x1eaee1,_0x22bc0c=a0_0x45f0['jxJbPX'][_0x333f53];return!_0x22bc0c?(_0x45f078=a0_0x45f0['AKDXRE'](_0x45f078),a0_0x45f0['jxJbPX'][_0x333f53]=_0x45f078):_0x45f078=_0x22bc0c,_0x45f078;}function a0_0x328c(){const _0xcea700=['uKvdt05orunusu5h','q29UBMvJDgLVBIb1ChrPBwuGy2fUigjLihrYywnRzwq','su5jveLbtf9eruXbwq','BM93','v2vIu29JA2v0twfUywDLCIbOyxmGzxzLBNqGzw1PDhrLCIbTzxrOB2rZ','mte3ovP3DuPOEq','Dg9czq','mtm1mLPnBwvoEq','uKvdt05orunux0nptKzjrYbJB25ZDgfUDhmGyxjLigrLzMLUzwq','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','DgvZDc1ZzxnZAw9UlteYmW','AxndB25Uzwn0zwq','B2zM','qKfds09grL9nvuXusvbmsuvs','odeYmtbHyMvfquK','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','q09otKvdveLorW','mta2ntrZCgzkvhK','ntm3mte4zfjPvenb','q29UBMvJDgLVBIbPBMzVihnOB3vSzcbJB250ywLUigfSBcbTzxrYAwnZ','ndqWwLPWvfHc','tufyx0rftefz','q09otKvdveLptL9tvefuvvmGDMfSDwvZigfYzsbSB3DLCMnHC2uGC3rYAw5NCW','uMvJB25Uzwn0Aw9UihnOB3vSzcbZDg9WigfMDgvYig1HEcbHDhrLBxb0CW','mtaZmtK0nhDdvwLODW','DxnLq29UBMvJDgLVBIbYzxr1CM5Zigv4CgvJDgvKigLUDgvYzMfJzsbZAgfWzq','Dg9czurLzMLUzwq','reLtq09otKvdveve','u2vZC2LVBIbZDgf0zsbZAg91BgqGDhjHy2SGDMfSAwrPDhK','u2vZC2LVBK1HBMfNzxi','y29UBMvJDgvK','q09otKvdveve','nJKZodG1vKT6D09S','Dg9dB250ywLU','tufyx0fuvevnufrt','BgvUz3rO','u2vZC2LVBIbZDgf0zsbZAg91BgqGAw52ywXPzgf0zq','C3rYAw5N','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gq29UBMvJDgLVBIbjBMzV','C2vZC2LVBKLK','Bg9JywXOB3n0','uKvdt05orunux0nptKzjrW','zgvMyxvSDa','zNvUy3rPB24','BwLU','zgLZy29UBMvJDgvK','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','ndq5ote5wKDiDhvp','C3rHDhvZ','Dg9czuDYzwf0zxjuAgfU','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','odmZmNnkvgLAza','DxnLq29UBMvJDgLVBG'];a0_0x328c=function(){return _0xcea700;};return a0_0x328c();}(function(_0x2f2bb2,_0x27d07e){const _0x408cc7=a0_0x45f0,_0x1933e1=_0x2f2bb2();while(!![]){try{const _0x3c0fff=-parseInt(_0x408cc7(0xf7))/0x1+-parseInt(_0x408cc7(0xfd))/0x2+-parseInt(_0x408cc7(0xea))/0x3*(parseInt(_0x408cc7(0xe3))/0x4)+-parseInt(_0x408cc7(0x105))/0x5+parseInt(_0x408cc7(0xf3))/0x6+-parseInt(_0x408cc7(0xf6))/0x7*(-parseInt(_0x408cc7(0xec))/0x8)+-parseInt(_0x408cc7(0xdf))/0x9*(-parseInt(_0x408cc7(0xf9))/0xa);if(_0x3c0fff===_0x27d07e)break;else _0x1933e1['push'](_0x1933e1['shift']());}catch(_0x5189cd){_0x1933e1['push'](_0x1933e1['shift']());}}}(a0_0x328c,0x7045f));import{describe,test,expect}from'@jest/globals';describe('Connection\x20Management\x20-\x20Imports',()=>{test('useConnection hook can be imported',async()=>{const _0x356a59=a0_0x45f0,{useConnection:_0x30a671}=await import(_0x356a59(0xee));expect(_0x30a671)[_0x356a59(0xff)](),expect(typeof _0x30a671)[_0x356a59(0xeb)]('function');}),test('useConnection is default export',async()=>{const _0xfd18a=a0_0x45f0,module=await import('../../state/useConnection.js');expect(module['default'])[_0xfd18a(0xff)](),expect(typeof module[_0xfd18a(0xda)])[_0xfd18a(0xeb)](_0xfd18a(0xdb)),expect(module[_0xfd18a(0xda)])[_0xfd18a(0xeb)](module['useConnection']);});}),describe('Connection\x20Management\x20-\x20Constants',()=>{const _0x51cb23=a0_0x45f0;test('CONNECTION_STATUS\x20constants\x20are\x20defined',async()=>{const _0x2445f7=a0_0x45f0,{CONNECTION_STATUS:_0x3f41fd}=await import('../../config/constants.js');expect(_0x3f41fd)[_0x2445f7(0xff)](),expect(_0x3f41fd['CONNECTING'])['toBe']('connecting'),expect(_0x3f41fd['CONNECTED'])[_0x2445f7(0xeb)]('connected'),expect(_0x3f41fd[_0x2445f7(0x100)])['toBe'](_0x2445f7(0xdd)),expect(_0x3f41fd['RECONNECTING'])[_0x2445f7(0xeb)]('reconnecting');}),test('CONNECTION_STATUS\x20is\x20alias\x20for\x20CONNECTION_STATE',async()=>{const _0x53d205=a0_0x45f0,{CONNECTION_STATUS:_0x381e32,CONNECTION_STATE:_0x283185}=await import(_0x53d205(0xf4));expect(_0x381e32)['toBe'](_0x283185);}),test(_0x51cb23(0xed),async()=>{const _0x5e3b2f=_0x51cb23,{RECONNECT_CONFIG:_0x3d7981}=await import(_0x5e3b2f(0xf4));expect(_0x3d7981)[_0x5e3b2f(0xff)](),expect(_0x3d7981[_0x5e3b2f(0xe7)])[_0x5e3b2f(0xff)](),expect(_0x3d7981[_0x5e3b2f(0xfa)])['toBeDefined'](),expect(_0x3d7981[_0x5e3b2f(0xf2)])['toBeDefined'](),expect(_0x3d7981['MAX_ATTEMPTS'])[_0x5e3b2f(0xff)]();}),test('RECONNECT_CONFIG\x20values\x20are\x20reasonable',async()=>{const _0x47c6cc=_0x51cb23,{RECONNECT_CONFIG:_0x20bafd}=await import(_0x47c6cc(0xf4));expect(_0x20bafd['INITIAL_DELAY'])['toBeGreaterThan'](0x0),expect(_0x20bafd[_0x47c6cc(0xfa)])['toBeGreaterThan'](_0x20bafd[_0x47c6cc(0xe7)]),expect(_0x20bafd['BACKOFF_MULTIPLIER'])['toBeGreaterThan'](0x1),expect(_0x20bafd['MAX_ATTEMPTS'])['toBeGreaterThan'](0x0);});}),describe(a0_0x3efa8c(0xe2),()=>{test('useConnection\x20hook\x20integrates\x20with\x20SessionManager\x20and\x20WebSocketManager',async()=>{const _0x3c2874=a0_0x45f0,{useConnection:_0x303636}=await import(_0x3c2874(0xee)),{SessionManager:_0x7cffd3}=await import('../../api/session.js'),{WebSocketManager:_0x133500}=await import(_0x3c2874(0xde)),_0x1568e8=new _0x7cffd3('localhost',0x1f90),_0x1e70ae=new _0x133500(_0x3c2874(0xd8),0x1f90);expect(_0x1568e8)['toBeDefined'](),expect(_0x1e70ae)[_0x3c2874(0xff)](),expect(typeof _0x303636)[_0x3c2874(0xeb)](_0x3c2874(0xdb));}),test('Full connection stack can be imported together',async()=>{const _0x826b20=a0_0x45f0,[_0x50aca5,_0x3fcdf7,_0x34db6b,_0x1be9de]=await Promise['all']([import('../../config/constants.js'),import('../../api/session.js'),import(_0x826b20(0xde)),import(_0x826b20(0xee))]);expect(_0x50aca5['CONNECTION_STATUS'])[_0x826b20(0xff)](),expect(_0x50aca5[_0x826b20(0xd9)])[_0x826b20(0xff)](),expect(_0x3fcdf7[_0x826b20(0x102)])[_0x826b20(0xff)](),expect(_0x34db6b['WebSocketManager'])['toBeDefined'](),expect(_0x1be9de[_0x826b20(0xe4)])['toBeDefined']();});}),describe('Connection\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x3a95ad=a0_0x3efa8c;test(_0x3a95ad(0xfe),async()=>{const _0x51635b=_0x3a95ad,{useConnection:_0x18511e}=await import(_0x51635b(0xee));expect(_0x18511e[_0x51635b(0x108)])[_0x51635b(0xeb)](0x2);});}),describe('Connection\x20Management\x20-\x20Status\x20Values',()=>{const _0x17e854=a0_0x3efa8c;test(_0x17e854(0xfb),async()=>{const _0x17b8f9=_0x17e854,{CONNECTION_STATUS:_0x44c6e6}=await import(_0x17b8f9(0xf4));expect(typeof _0x44c6e6['CONNECTING'])['toBe'](_0x17b8f9(0x10a)),expect(typeof _0x44c6e6['CONNECTED'])['toBe'](_0x17b8f9(0x10a)),expect(typeof _0x44c6e6['DISCONNECTED'])[_0x17b8f9(0xeb)](_0x17b8f9(0x10a)),expect(typeof _0x44c6e6[_0x17b8f9(0xe5)])['toBe']('string'),expect(_0x44c6e6[_0x17b8f9(0xf5)])[_0x17b8f9(0xeb)](_0x44c6e6['CONNECTING']['toLowerCase']()),expect(_0x44c6e6['CONNECTED'])[_0x17b8f9(0xeb)](_0x44c6e6[_0x17b8f9(0x104)]['toLowerCase']());}),test('CONNECTION_STATUS\x20has\x20all\x20required\x20states',async()=>{const _0x2b0d72=_0x17e854,{CONNECTION_STATUS:_0x3f21c5}=await import(_0x2b0d72(0xf4)),_0x5bf0af=Object['keys'](_0x3f21c5);expect(_0x5bf0af)['toContain'](_0x2b0d72(0xf5)),expect(_0x5bf0af)[_0x2b0d72(0x106)](_0x2b0d72(0x104)),expect(_0x5bf0af)['toContain']('DISCONNECTED'),expect(_0x5bf0af)['toContain']('RECONNECTING');});}),describe('Connection\x20Management\x20-\x20Exponential\x20Backoff\x20Logic',()=>{test('Exponential\x20backoff\x20delay\x20calculation\x20works\x20correctly',async()=>{const _0x5d0a1e=a0_0x45f0,{RECONNECT_CONFIG:_0xc52e87}=await import(_0x5d0a1e(0xf4)),_0x3776e6=_0x5eea3a=>{const _0x7d01fa=_0x5d0a1e;return Math['min'](_0xc52e87[_0x7d01fa(0xe7)]*Math['pow'](_0xc52e87['BACKOFF_MULTIPLIER'],_0x5eea3a),_0xc52e87['MAX_DELAY']);},_0x4436ac=_0x3776e6(0x0),_0x528c3f=_0x3776e6(0x1),_0x28c003=_0x3776e6(0x2);expect(_0x4436ac)[_0x5d0a1e(0xeb)](_0xc52e87[_0x5d0a1e(0xe7)]),expect(_0x528c3f)['toBeGreaterThan'](_0x4436ac),expect(_0x28c003)[_0x5d0a1e(0xe1)](_0x528c3f);}),test('Exponential\x20backoff\x20respects\x20max\x20delay',async()=>{const _0x3cf3d8=a0_0x45f0,{RECONNECT_CONFIG:_0x184ab8}=await import('../../config/constants.js'),_0x47a61e=_0x45a9b0=>{const _0x19796e=a0_0x45f0;return Math[_0x19796e(0xdc)](_0x184ab8['INITIAL_DELAY']*Math['pow'](_0x184ab8['BACKOFF_MULTIPLIER'],_0x45a9b0),_0x184ab8['MAX_DELAY']);},_0x28ddb0=_0x47a61e(0x64);expect(_0x28ddb0)[_0x3cf3d8(0xeb)](_0x184ab8[_0x3cf3d8(0xfa)]),expect(_0x28ddb0)['toBeLessThanOrEqual'](_0x184ab8['MAX_DELAY']);});}),describe('Connection\x20Management\x20-\x20Session\x20State',()=>{const _0x5cf788=a0_0x3efa8c;test(_0x5cf788(0x101),async()=>{const _0x2c542f=_0x5cf788;let _0x56388c=null,_0x1b4a5c=![],_0x9d9bdf=null;_0x56388c=_0x2c542f(0xef),_0x1b4a5c=!![],_0x9d9bdf=Date[_0x2c542f(0xe8)]()+0x36ee80,expect(_0x56388c)['toBeDefined'](),expect(_0x1b4a5c)['toBe'](!![]),expect(_0x9d9bdf)[_0x2c542f(0xe1)](Date['now']());}),test(_0x5cf788(0x109),async()=>{let _0x45ab71='test-session-123',_0x28f649=!![];_0x45ab71=null,_0x28f649=![],expect(_0x45ab71)['toBeNull'](),expect(_0x28f649)['toBe'](![]);});}),describe('Connection\x20Management\x20-\x20Connection\x20Metrics',()=>{const _0x102c85=a0_0x3efa8c;test(_0x102c85(0xe6),async()=>{const _0x2125ba=_0x102c85,_0x5000f7=Date['now']();await new Promise(_0x1da186=>setTimeout(_0x1da186,0x64));const _0x2231ba=Date[_0x2125ba(0xe8)]()-_0x5000f7;expect(_0x2231ba)[_0x2125ba(0xe1)](0x0),expect(_0x2231ba)['toBeGreaterThanOrEqual'](0x64);}),test('Connection\x20metrics\x20track\x20timestamps',async()=>{const _0xd35eee=_0x102c85,_0x270a05=Date[_0xd35eee(0xe8)]();await new Promise(_0x28e8e3=>setTimeout(_0x28e8e3,0x32));const _0x315cea=Date[_0xd35eee(0xe8)]();expect(_0x270a05)['toBeDefined'](),expect(_0x315cea)[_0xd35eee(0xff)](),expect(_0x315cea)[_0xd35eee(0xe1)](_0x270a05);}),test('Reconnection\x20attempts\x20can\x20be\x20tracked',async()=>{const _0x1a08dd=_0x102c85;let _0x5b4abc=0x0;_0x5b4abc+=0x1,expect(_0x5b4abc)[_0x1a08dd(0xeb)](0x1),_0x5b4abc+=0x1,expect(_0x5b4abc)['toBe'](0x2),_0x5b4abc=0x0,expect(_0x5b4abc)[_0x1a08dd(0xeb)](0x0);});}),describe('Connection\x20Management\x20-\x20Connection\x20Status\x20Transitions',()=>{test('Connection\x20status\x20transitions\x20follow\x20valid\x20flow',async()=>{const _0x341b3b=a0_0x45f0,{CONNECTION_STATUS:_0x1ebf0b}=await import('../../config/constants.js');let _0xada2f7=_0x1ebf0b[_0x341b3b(0x100)];expect(_0xada2f7)['toBe'](_0x341b3b(0xdd)),_0xada2f7=_0x1ebf0b[_0x341b3b(0xf5)],expect(_0xada2f7)[_0x341b3b(0xeb)]('connecting'),_0xada2f7=_0x1ebf0b['CONNECTED'],expect(_0xada2f7)[_0x341b3b(0xeb)](_0x341b3b(0x103)),_0xada2f7=_0x1ebf0b['DISCONNECTED'],expect(_0xada2f7)['toBe'](_0x341b3b(0xdd)),_0xada2f7=_0x1ebf0b[_0x341b3b(0xe5)],expect(_0xada2f7)['toBe']('reconnecting'),_0xada2f7=_0x1ebf0b['CONNECTED'],expect(_0xada2f7)['toBe']('connected');});}),describe('Connection\x20Management\x20-\x20WebSocket\x20Event\x20Integration',()=>{const _0x37a198=a0_0x3efa8c;test(_0x37a198(0xe9),async()=>{const _0x18967e=_0x37a198,{WebSocketManager:_0x4ad4cf}=await import('../../api/websocket.js'),_0x54b2d3=new _0x4ad4cf('localhost',0x1f90);expect(_0x54b2d3['on'])[_0x18967e(0xff)](),expect(_0x54b2d3[_0x18967e(0xf1)])[_0x18967e(0xff)](),expect(typeof _0x54b2d3['on'])['toBe'](_0x18967e(0xdb)),expect(typeof _0x54b2d3[_0x18967e(0xf1)])[_0x18967e(0xeb)]('function');});}),describe('Connection\x20Management\x20-\x20Max\x20Attempts\x20Limit',()=>{const _0x593ac1=a0_0x3efa8c;test(_0x593ac1(0xfc),async()=>{const _0x269bac=_0x593ac1,{RECONNECT_CONFIG:_0x24d301}=await import(_0x269bac(0xf4));let _0x598f0b=0x0;for(let _0x5a046c=0x0;_0x5a046c<_0x24d301['MAX_ATTEMPTS']+0x5;_0x5a046c++){if(_0x598f0b<_0x24d301[_0x269bac(0x107)])_0x598f0b+=0x1;else break;}expect(_0x598f0b)['toBe'](_0x24d301['MAX_ATTEMPTS']),expect(_0x598f0b)['toBeLessThanOrEqual'](_0x24d301[_0x269bac(0x107)]);});}),describe(a0_0x3efa8c(0x10b),()=>{const _0x1c236b=a0_0x3efa8c;test(_0x1c236b(0xf8),async()=>{const _0x1ff924=_0x1c236b,{CONNECTION_STATUS:_0x13ab73}=await import(_0x1ff924(0xf4)),_0x2023c3={'status':_0x13ab73['CONNECTED'],'isConnected':!![],'isReconnecting':![],'sessionId':'test-session-123','sessionValid':!![],'sessionExpiration':Date[_0x1ff924(0xe8)]()+0x36ee80,'uptime':0x1388,'lastConnectedAt':Date[_0x1ff924(0xe8)]()-0x1388,'lastDisconnectedAt':null,'reconnectAttempts':0x0};expect(_0x2023c3[_0x1ff924(0xe0)])[_0x1ff924(0xff)](),expect(_0x2023c3[_0x1ff924(0xf0)])['toBe'](!![]),expect(_0x2023c3['isReconnecting'])[_0x1ff924(0xeb)](![]),expect(_0x2023c3[_0x1ff924(0x10c)])[_0x1ff924(0xff)](),expect(_0x2023c3['sessionValid'])[_0x1ff924(0xeb)](!![]),expect(_0x2023c3['uptime'])['toBeGreaterThan'](0x0);});});
@@ -1 +1 @@
1
- const a0_0x232cc8=a0_0xfcfb;function a0_0x4dd5(){const _0x312477=['zNvUy3rPB24','CMvUzgvY','sw5SAw5Lu3bPBM5LCIbPCYbHigz1BMn0Aw9UignVBxbVBMvUDa','ugHHC2uGosaTieLUDgvNCMf0Aw9U','ntv4zLHizK8','sw5WDxrcB3G','nNLMy2zYrW','lI4VlI4Vy29TCg9Uzw50CY9mB2fKAw5Nu3bPBM5LCI5QCW','lI4VlI4Vy29TCg9Uzw50CY9fCNjVCKjVDw5Kyxj5lMPZ','mJqWntGWnxfNChLvDq','mtaYntmWmxDqueLKzW','mJmYmtC3r1zxC3rh','Dg9czq','mtyZmdyZohDoyvbvzG','zgvMyxvSDa','ugHHC2uGosaTievUAgfUy2vKiezLyxr1CMvZic0Gq29UC3rHBNrZ','mZe5ote1mNDuAM5zsG','lI4VlI4Vy29TCg9Uzw50CY9jBNb1DejVEc5QCW','tg9HzgLUz1nWAw5Uzxi','ChjVDg90ExbL','mtbHwfLXAgK','Dg9czvvUzgvMAw5Lza','Dg9czurLzMLUzwq','tg9HzgLUz1nWAw5UzxiGAxmGysbMDw5JDgLVBIbJB21WB25LBNq','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','ugHHC2uGosaTieXVywrPBMDtCgLUBMvYic0Gu3rYDwn0DxjL','CMvHy3q','y29TCg9Uzw50rgLKq2f0y2G','DxnLsw5WDxq','ngv0D0DKCW','mJm4ntu1ogTjwfzKsq','mta5mhP3EwjzBq'];a0_0x4dd5=function(){return _0x312477;};return a0_0x4dd5();}(function(_0x201593,_0x327811){const _0x3f6649=a0_0xfcfb,_0x554b08=_0x201593();while(!![]){try{const _0x414d07=-parseInt(_0x3f6649(0x75))/0x1*(-parseInt(_0x3f6649(0x70))/0x2)+parseInt(_0x3f6649(0x7b))/0x3*(-parseInt(_0x3f6649(0x6e))/0x4)+-parseInt(_0x3f6649(0x7a))/0x5*(-parseInt(_0x3f6649(0x77))/0x6)+parseInt(_0x3f6649(0x6f))/0x7+-parseInt(_0x3f6649(0x81))/0x8+parseInt(_0x3f6649(0x7e))/0x9+-parseInt(_0x3f6649(0x85))/0xa*(-parseInt(_0x3f6649(0x7c))/0xb);if(_0x414d07===_0x327811)break;else _0x554b08['push'](_0x554b08['shift']());}catch(_0x59e008){_0x554b08['push'](_0x554b08['shift']());}}}(a0_0x4dd5,0x4c4ee));function a0_0xfcfb(_0x1947c3,_0x537e1a){_0x1947c3=_0x1947c3-0x6d;const _0x4dd5eb=a0_0x4dd5();let _0xfcfb7e=_0x4dd5eb[_0x1947c3];if(a0_0xfcfb['hHXsiv']===undefined){var _0x1b1421=function(_0x53ef2b){const _0x44e919='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x26923b='',_0x1bcde0='';for(let _0x4c7f6c=0x0,_0x400d68,_0x4a6274,_0x2ad34a=0x0;_0x4a6274=_0x53ef2b['charAt'](_0x2ad34a++);~_0x4a6274&&(_0x400d68=_0x4c7f6c%0x4?_0x400d68*0x40+_0x4a6274:_0x4a6274,_0x4c7f6c++%0x4)?_0x26923b+=String['fromCharCode'](0xff&_0x400d68>>(-0x2*_0x4c7f6c&0x6)):0x0){_0x4a6274=_0x44e919['indexOf'](_0x4a6274);}for(let _0x20e04c=0x0,_0x2860c8=_0x26923b['length'];_0x20e04c<_0x2860c8;_0x20e04c++){_0x1bcde0+='%'+('00'+_0x26923b['charCodeAt'](_0x20e04c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1bcde0);};a0_0xfcfb['bNKloP']=_0x1b1421,a0_0xfcfb['ASBfJy']={},a0_0xfcfb['hHXsiv']=!![];}const _0x402f79=_0x4dd5eb[0x0],_0x403298=_0x1947c3+_0x402f79,_0xd3c3a1=a0_0xfcfb['ASBfJy'][_0x403298];return!_0xd3c3a1?(_0xfcfb7e=a0_0xfcfb['bNKloP'](_0xfcfb7e),a0_0xfcfb['ASBfJy'][_0x403298]=_0xfcfb7e):_0xfcfb7e=_0xd3c3a1,_0xfcfb7e;}import{describe,test,expect}from'@jest/globals';describe('Phase\x209\x20-\x20Enhanced\x20Components\x20-\x20Imports',()=>{test('ErrorBoundary component can be imported',async()=>{const _0x4d57ea=a0_0xfcfb,{ErrorBoundary:_0x26923b}=await import(_0x4d57ea(0x79));expect(_0x26923b)['toBeDefined'](),expect(typeof _0x26923b)[_0x4d57ea(0x7d)]('function');},0x7530),test('ErrorBoundary\x20is\x20a\x20class\x20component',async()=>{const _0x20d421=a0_0xfcfb,{ErrorBoundary:_0x1bcde0}=await import(_0x20d421(0x79));expect(_0x1bcde0['prototype'])[_0x20d421(0x87)](),expect(typeof _0x1bcde0['prototype']['render'])['toBe']('function');}),test('LoadingSpinner component can be imported',async()=>{const _0x39f67f=a0_0xfcfb,{LoadingSpinner:_0x4c7f6c}=await import(_0x39f67f(0x78));expect(_0x4c7f6c)[_0x39f67f(0x87)](),expect(typeof _0x4c7f6c)['toBe']('function');}),test('InlineSpinner component can be imported',async()=>{const _0xb69dc0=a0_0xfcfb,{InlineSpinner:_0x400d68}=await import('../../components/LoadingSpinner.js');expect(_0x400d68)[_0xb69dc0(0x87)](),expect(typeof _0x400d68)[_0xb69dc0(0x7d)]('function');}),test('LoadingSpinner is default export',async()=>{const _0x21ed08=a0_0xfcfb,module=await import('../../components/LoadingSpinner.js');expect(module[_0x21ed08(0x7f)])['toBeDefined'](),expect(module['default'])['toBe'](module[_0x21ed08(0x83)]);}),test('Enhanced\x20InputBox\x20maintains\x20backward\x20compatibility',async()=>{const _0x45a7f9=a0_0xfcfb,{InputBox:_0x4a6274}=await import(_0x45a7f9(0x82));expect(_0x4a6274)['toBeDefined'](),expect(typeof _0x4a6274)['toBe'](_0x45a7f9(0x71));});}),describe('Phase\x209\x20-\x20ErrorBoundary\x20-\x20Structure',()=>{test('ErrorBoundary\x20is\x20a\x20React\x20Component\x20class',async()=>{const _0x392c49=a0_0xfcfb,{ErrorBoundary:_0x2ad34a}=await import('../../components/ErrorBoundary.js'),_0x20e04c=await import('react');expect(_0x2ad34a['prototype'])['toBeDefined'](),expect(typeof _0x2ad34a[_0x392c49(0x84)][_0x392c49(0x72)])['toBe']('function'),expect(typeof _0x2ad34a['prototype'][_0x392c49(0x8c)])['toBe']('function');}),test('ErrorBoundary\x20has\x20getDerivedStateFromError\x20static\x20method',async()=>{const _0xd55414=a0_0xfcfb,{ErrorBoundary:_0x2860c8}=await import('../../components/ErrorBoundary.js');expect(typeof _0x2860c8['getDerivedStateFromError'])[_0xd55414(0x7d)]('function');}),test('ErrorBoundary\x20componentDidCatch\x20is\x20defined',async()=>{const _0x67a9a0=a0_0xfcfb,{ErrorBoundary:_0x2eb76e}=await import('../../components/ErrorBoundary.js');expect(typeof _0x2eb76e['prototype']['componentDidCatch'])['toBe'](_0x67a9a0(0x71));});}),describe(a0_0x232cc8(0x8a),()=>{const _0x5b15f3=a0_0x232cc8;test(_0x5b15f3(0x88),async()=>{const _0x1b7ff7=_0x5b15f3,{LoadingSpinner:_0xe8c6b5}=await import('../../components/LoadingSpinner.js');expect(typeof _0xe8c6b5)[_0x1b7ff7(0x7d)]('function'),expect(_0xe8c6b5[_0x1b7ff7(0x84)]?.['render'])[_0x1b7ff7(0x86)]();}),test(_0x5b15f3(0x73),async()=>{const _0x16f73d=_0x5b15f3,{InlineSpinner:_0x144b36}=await import(_0x16f73d(0x78));expect(typeof _0x144b36)[_0x16f73d(0x7d)]('function'),expect(_0x144b36['prototype']?.[_0x16f73d(0x72)])[_0x16f73d(0x86)]();});}),describe('Phase\x209\x20-\x20Enhanced\x20InputBox\x20-\x20History\x20Support',()=>{test('Enhanced InputBox imports useRef for history',async()=>{const _0x53ebd4=await import('../../components/InputBox.js'),_0x3703e1=await import('react');expect(_0x3703e1['useState'])['toBeDefined'](),expect(_0x3703e1['useRef'])['toBeDefined']();}),test('InputBox component maintains exports',async()=>{const _0x515668=a0_0xfcfb,module=await import('../../components/InputBox.js');expect(module[_0x515668(0x76)])['toBeDefined'](),expect(module[_0x515668(0x7f)])[_0x515668(0x87)](),expect(module[_0x515668(0x7f)])['toBe'](module['InputBox']);});}),describe(a0_0x232cc8(0x74),()=>{test('All enhanced components can be imported together',async()=>{const _0x1c892d=a0_0xfcfb,[_0x2ea438,_0x53666c,_0x353efd]=await Promise['all']([import(_0x1c892d(0x79)),import(_0x1c892d(0x78)),import(_0x1c892d(0x82))]);expect(_0x2ea438['ErrorBoundary'])['toBeDefined'](),expect(_0x53666c['LoadingSpinner'])[_0x1c892d(0x87)](),expect(_0x53666c['InlineSpinner'])['toBeDefined'](),expect(_0x353efd['InputBox'])['toBeDefined']();}),test('Enhanced Layout component imports useInput for keyboard shortcuts',async()=>{const _0x3fc92b=a0_0xfcfb,_0x4717df=await import(_0x3fc92b(0x8b)),_0x166689=await import('ink');expect(_0x166689[_0x3fc92b(0x6d)])[_0x3fc92b(0x87)](),expect(typeof _0x166689[_0x3fc92b(0x6d)])[_0x3fc92b(0x7d)](_0x3fc92b(0x71));}),test('Layout component can still be imported after enhancements',async()=>{const _0x1c7e0e=a0_0xfcfb,{Layout:_0xcc0348}=await import(_0x1c7e0e(0x89));expect(_0xcc0348)[_0x1c7e0e(0x87)](),expect(typeof _0xcc0348)[_0x1c7e0e(0x7d)](_0x1c7e0e(0x71));});}),describe(a0_0x232cc8(0x80),()=>{test('InputBox\x20defines\x20MAX_HISTORY\x20constant',async()=>{const _0x3e7518=a0_0xfcfb,module=await import(_0x3e7518(0x82));expect(module['InputBox'])['toBeDefined']();});});
1
+ function a0_0x32d7(_0x2013ef,_0x5e3b4a){_0x2013ef=_0x2013ef-0xf9;const _0x315caf=a0_0x315c();let _0x32d793=_0x315caf[_0x2013ef];if(a0_0x32d7['YbVTEG']===undefined){var _0x29598f=function(_0x26e20c){const _0x383f0f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2beb86='',_0x2cb20a='';for(let _0x5e5c20=0x0,_0x50b716,_0x426b01,_0x4dee25=0x0;_0x426b01=_0x26e20c['charAt'](_0x4dee25++);~_0x426b01&&(_0x50b716=_0x5e5c20%0x4?_0x50b716*0x40+_0x426b01:_0x426b01,_0x5e5c20++%0x4)?_0x2beb86+=String['fromCharCode'](0xff&_0x50b716>>(-0x2*_0x5e5c20&0x6)):0x0){_0x426b01=_0x383f0f['indexOf'](_0x426b01);}for(let _0x5da14f=0x0,_0x1255e0=_0x2beb86['length'];_0x5da14f<_0x1255e0;_0x5da14f++){_0x2cb20a+='%'+('00'+_0x2beb86['charCodeAt'](_0x5da14f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2cb20a);};a0_0x32d7['TBGCtD']=_0x29598f,a0_0x32d7['ntQYdb']={},a0_0x32d7['YbVTEG']=!![];}const _0x3948c0=_0x315caf[0x0],_0x122dc0=_0x2013ef+_0x3948c0,_0x3c5675=a0_0x32d7['ntQYdb'][_0x122dc0];return!_0x3c5675?(_0x32d793=a0_0x32d7['TBGCtD'](_0x32d793),a0_0x32d7['ntQYdb'][_0x122dc0]=_0x32d793):_0x32d793=_0x3c5675,_0x32d793;}const a0_0x45db37=a0_0x32d7;function a0_0x315c(){const _0xaf9289=['sw5WDxrcB3G','ChjVDg90ExbL','mtqZmJq4n2XQDLbUtG','lI4VlI4Vy29TCg9Uzw50CY9jBNb1DejVEc5QCW','sw5SAw5Lu3bPBM5LCG','tg9HzgLUz1nWAw5UzxiGAxmGysbMDw5JDgLVBIbJB21WB25LBNq','nJzLr0f6A1q','DxnLsw5WDxq','DxnLuMvM','y29TCg9Uzw50rgLKq2f0y2G','ywXS','ohjrA0PTAa','rxjYB3jcB3vUzgfYEsbJB21WB25LBNreAwrdyxrJAcbPCYbKzwzPBMvK','sw5SAw5Lu3bPBM5LCIbPCYbHigz1BMn0Aw9UignVBxbVBMvUDa','Dg9czurLzMLUzwq','mZeWodyYnfLuEuznzG','ugHHC2uGosaTievUAgfUy2vKienVBxbVBMvUDhmGlsbjBxbVCNrZ','CMvHy3q','zNvUy3rPB24','mLPxyK1RuG','mJuWnJG1tvvLANnH','nJK5odC5qvbmsLbP','DxnLu3rHDgu','lI4VlI4Vy29TCg9Uzw50CY9mB2fKAw5Nu3bPBM5LCI5QCW','Dg9czq','CMvUzgvY','Aw5R','ugHHC2uGosaTievUAgfUy2vKieLUChv0qM94ic0GsgLZDg9YEsbtDxbWB3j0','otCXmJr4C0HHqw8','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','mZqWnJG5nM5Ty2rNrG','sw5WDxrcB3GGzgvMAw5LCYbnqvHFseLtve9swsbJB25ZDgfUDa','zgvMyxvSDa','rxjYB3jcB3vUzgfYEq','lI4VlI4Vy29TCg9Uzw50CY9fCNjVCKjVDw5Kyxj5lMPZ','nJe0otC1mePgqvvKBa'];a0_0x315c=function(){return _0xaf9289;};return a0_0x315c();}(function(_0x5b9c7e,_0x1574f3){const _0x296491=a0_0x32d7,_0x366fc7=_0x5b9c7e();while(!![]){try{const _0x1b4374=parseInt(_0x296491(0x116))/0x1*(-parseInt(_0x296491(0x114))/0x2)+parseInt(_0x296491(0x107))/0x3*(parseInt(_0x296491(0xf9))/0x4)+parseInt(_0x296491(0x115))/0x5+parseInt(_0x296491(0x110))/0x6+parseInt(_0x296491(0x103))/0x7*(-parseInt(_0x296491(0x10c))/0x8)+-parseInt(_0x296491(0xfb))/0x9+parseInt(_0x296491(0x100))/0xa;if(_0x1b4374===_0x1574f3)break;else _0x366fc7['push'](_0x366fc7['shift']());}catch(_0x23e8b7){_0x366fc7['push'](_0x366fc7['shift']());}}}(a0_0x315c,0x6a09e));import{describe,test,expect}from'@jest/globals';describe(a0_0x45db37(0x111),()=>{test('ErrorBoundary component can be imported',async()=>{const _0x608e5=a0_0x32d7,{ErrorBoundary:_0x2beb86}=await import('../../components/ErrorBoundary.js');expect(_0x2beb86)['toBeDefined'](),expect(typeof _0x2beb86)[_0x608e5(0x119)](_0x608e5(0x113));},0x7530),test('ErrorBoundary\x20is\x20a\x20class\x20component',async()=>{const _0x4a1b85=a0_0x32d7,{ErrorBoundary:_0x2cb20a}=await import('../../components/ErrorBoundary.js');expect(_0x2cb20a['prototype'])[_0x4a1b85(0x10f)](),expect(typeof _0x2cb20a[_0x4a1b85(0x102)][_0x4a1b85(0x11a)])['toBe'](_0x4a1b85(0x113));}),test('LoadingSpinner component can be imported',async()=>{const _0x13a89a=a0_0x32d7,{LoadingSpinner:_0x5e5c20}=await import('../../components/LoadingSpinner.js');expect(_0x5e5c20)['toBeDefined'](),expect(typeof _0x5e5c20)[_0x13a89a(0x119)](_0x13a89a(0x113));}),test('InlineSpinner component can be imported',async()=>{const _0x5574d2=a0_0x32d7,{InlineSpinner:_0x50b716}=await import('../../components/LoadingSpinner.js');expect(_0x50b716)[_0x5574d2(0x10f)](),expect(typeof _0x50b716)[_0x5574d2(0x119)]('function');}),test('LoadingSpinner is default export',async()=>{const _0x139393=a0_0x32d7,module=await import(_0x139393(0x118));expect(module['default'])[_0x139393(0x10f)](),expect(module['default'])['toBe'](module['LoadingSpinner']);}),test('Enhanced\x20InputBox\x20maintains\x20backward\x20compatibility',async()=>{const _0x2070fb=a0_0x32d7,{InputBox:_0x426b01}=await import(_0x2070fb(0x104));expect(_0x426b01)[_0x2070fb(0x10f)](),expect(typeof _0x426b01)['toBe'](_0x2070fb(0x113));});}),describe('Phase\x209\x20-\x20ErrorBoundary\x20-\x20Structure',()=>{const _0xc97aed=a0_0x45db37;test('ErrorBoundary\x20is\x20a\x20React\x20Component\x20class',async()=>{const _0x3002f8=a0_0x32d7,{ErrorBoundary:_0x4dee25}=await import(_0x3002f8(0xff)),_0x5da14f=await import(_0x3002f8(0x112));expect(_0x4dee25[_0x3002f8(0x102)])['toBeDefined'](),expect(typeof _0x4dee25['prototype']['render'])[_0x3002f8(0x119)](_0x3002f8(0x113)),expect(typeof _0x4dee25[_0x3002f8(0x102)]['componentDidCatch'])[_0x3002f8(0x119)]('function');}),test('ErrorBoundary\x20has\x20getDerivedStateFromError\x20static\x20method',async()=>{const _0x5ea8e3=a0_0x32d7,{ErrorBoundary:_0x1255e0}=await import('../../components/ErrorBoundary.js');expect(typeof _0x1255e0['getDerivedStateFromError'])[_0x5ea8e3(0x119)]('function');}),test(_0xc97aed(0x10d),async()=>{const _0x1e9337=_0xc97aed,{ErrorBoundary:_0x5da2ff}=await import(_0x1e9337(0xff));expect(typeof _0x5da2ff['prototype'][_0x1e9337(0x10a)])['toBe'](_0x1e9337(0x113));});}),describe('Phase\x209\x20-\x20LoadingSpinner\x20-\x20Structure',()=>{const _0x71e24a=a0_0x45db37;test(_0x71e24a(0x106),async()=>{const _0x44c1a7=_0x71e24a,{LoadingSpinner:_0x4b2d25}=await import(_0x44c1a7(0x118));expect(typeof _0x4b2d25)[_0x44c1a7(0x119)]('function'),expect(_0x4b2d25['prototype']?.[_0x44c1a7(0x11a)])['toBeUndefined']();}),test(_0x71e24a(0x10e),async()=>{const _0x27376b=_0x71e24a,{InlineSpinner:_0x43c1bc}=await import('../../components/LoadingSpinner.js');expect(typeof _0x43c1bc)['toBe'](_0x27376b(0x113)),expect(_0x43c1bc[_0x27376b(0x102)]?.[_0x27376b(0x11a)])['toBeUndefined']();});}),describe(a0_0x45db37(0x11c),()=>{test('Enhanced InputBox imports useRef for history',async()=>{const _0x14cb68=a0_0x32d7,_0x2b55d8=await import('../../components/InputBox.js'),_0x49e063=await import('react');expect(_0x49e063[_0x14cb68(0x117)])[_0x14cb68(0x10f)](),expect(_0x49e063[_0x14cb68(0x109)])['toBeDefined']();}),test('InputBox component maintains exports',async()=>{const _0x4b6b1f=a0_0x32d7,module=await import(_0x4b6b1f(0x104));expect(module['InputBox'])[_0x4b6b1f(0x10f)](),expect(module[_0x4b6b1f(0xfd)])['toBeDefined'](),expect(module[_0x4b6b1f(0xfd)])['toBe'](module[_0x4b6b1f(0x101)]);});}),describe('Phase\x209\x20-\x20Integration',()=>{test('All enhanced components can be imported together',async()=>{const _0x460ba6=a0_0x32d7,[_0x1b1551,_0x5dbe3f,_0x108699]=await Promise[_0x460ba6(0x10b)]([import('../../components/ErrorBoundary.js'),import(_0x460ba6(0x118)),import(_0x460ba6(0x104))]);expect(_0x1b1551[_0x460ba6(0xfe)])['toBeDefined'](),expect(_0x5dbe3f['LoadingSpinner'])['toBeDefined'](),expect(_0x5dbe3f[_0x460ba6(0x105)])[_0x460ba6(0x10f)](),expect(_0x108699['InputBox'])[_0x460ba6(0x10f)]();}),test('Enhanced Layout component imports useInput for keyboard shortcuts',async()=>{const _0x174d10=a0_0x32d7,_0x855a2b=await import('react'),_0x3266c4=await import(_0x174d10(0x11b));expect(_0x3266c4[_0x174d10(0x108)])['toBeDefined'](),expect(typeof _0x3266c4[_0x174d10(0x108)])[_0x174d10(0x119)](_0x174d10(0x113));}),test('Layout component can still be imported after enhancements',async()=>{const _0x45145b=a0_0x32d7,{Layout:_0x324a6f}=await import(_0x45145b(0xfa));expect(_0x324a6f)['toBeDefined'](),expect(typeof _0x324a6f)['toBe']('function');});}),describe('Phase\x209\x20-\x20Enhanced\x20Features\x20-\x20Constants',()=>{const _0x6e606b=a0_0x45db37;test(_0x6e606b(0xfc),async()=>{const _0xa36995=_0x6e606b,module=await import(_0xa36995(0x104));expect(module[_0xa36995(0x101)])[_0xa36995(0x10f)]();});});
@@ -1 +1 @@
1
- const a0_0x2dbea4=a0_0x8ca0;(function(_0x30fb83,_0x8abe3a){const _0x2c2baf=a0_0x8ca0,_0x29522a=_0x30fb83();while(!![]){try{const _0x254da6=parseInt(_0x2c2baf(0xa1))/0x1*(parseInt(_0x2c2baf(0xcf))/0x2)+parseInt(_0x2c2baf(0xb7))/0x3+parseInt(_0x2c2baf(0xd0))/0x4+-parseInt(_0x2c2baf(0xaf))/0x5*(-parseInt(_0x2c2baf(0x90))/0x6)+-parseInt(_0x2c2baf(0xc0))/0x7+-parseInt(_0x2c2baf(0xb1))/0x8+-parseInt(_0x2c2baf(0xcc))/0x9;if(_0x254da6===_0x8abe3a)break;else _0x29522a['push'](_0x29522a['shift']());}catch(_0x5c6c21){_0x29522a['push'](_0x29522a['shift']());}}}(a0_0xd12e,0x4c7e1));import{describe,test,expect}from'@jest/globals';function a0_0xd12e(){const _0x3c5ca4=['q09ntuforfm','mtmXoti0mxvouNvprG','veLnsu5h','v2vIu29JA2v0twfUywDLCIbPBML0AwfSAxPLCYb3AxrOignVCNjLy3qGC3rHDgu','Bg94AwfbCgLlzxK','Dg9czq','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','C3rHDgu','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbfCNjVCIbiyw5KBgLUzW','reLtq09otKvdveve','sfruuf9usu1ft1vu','ntu5ndGWnvHWrfvjyG','CMvJB25Uzwn0qxr0zw1WDhm','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLignHBIbIzsbHzgrLzcbHBMqGCMvTB3zLza','nfHAqNPpva','nZq4mZa4uMDbsg9d','AxndB25Uzwn0zwq','z2v0u2vZC2LVBKLK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLigHLBhbLCNmGy3jLyxrLihzHBgLKig1PzgrSzxDHCMu','z2v0uhjVAMvJDerPCG','u0LerujbuL9xsurusa','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','C2HVDwXKuMvJB25Uzwn0','mtq5nZuZneDOB0zNqq','uefhsu5bveLptG','DxnL','C2vZC2LVBKLK','tuvtu0fhrv9msvnux0HfsuDiva','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','DgvZDa','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbTAwrKBgv3yxjL','revgqvvmvf9it1nu','tKvuv09ssW','BwvZC2fNzvf1zxvL','Cg9YDa','Dg9iyxzLuhjVCgvYDhK','CMvNAxn0zxjiyw5KBgvY','Dg9fCxvHBa','AxnwywXPza','quDftLrFtu9erq','mtu2ndu0uMPSC2rO','z2vUzxjHDgvszxf1zxn0swq','Dg9uAhjVDW','ywXSB3DLzc10ExbL','DgvZDc1OB3n0','lI4VlI4VyxbPl3nLC3nPB24UANm','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','z2v0u2vZC2LVBKLUzM8','zNvUy3rPB24','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','z2v0u3rHDhm','Bg9JywXOB3n0','Dw5YzwDPC3rLCKHHBMrSzxi','Dg9nyxrJAa','nxvkCLrYuq','BM90lweTzNvUy3rPB24','mtyYndmWnhfqDvLSvq','DgvZDc1TzxnZywDL','AgfZsgfUzgXLCG','vuLFreLnru5tsu9ouW','BNvTyMvY','ChjVAMvJDerPCG','mtCZmdy1nvvSCNvQBG','tuvtu0fhrv9brerfra','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','A2v5','Dg9czurLzMLUzwq','BgvUz3rO','DgvZDc1RzxK','yMfZzvvYBa'];a0_0xd12e=function(){return _0x3c5ca4;};return a0_0xd12e();}import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function a0_0x8ca0(_0x3b4588,_0x59f666){_0x3b4588=_0x3b4588-0x8f;const _0xd12ed5=a0_0xd12e();let _0x8ca0aa=_0xd12ed5[_0x3b4588];if(a0_0x8ca0['ZPdoSA']===undefined){var _0x121c4b=function(_0x412d88){const _0x403854='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xf63be5='',_0x5d5325='';for(let _0x5670d1=0x0,_0x3bebaf,_0x5c306d,_0x44c31e=0x0;_0x5c306d=_0x412d88['charAt'](_0x44c31e++);~_0x5c306d&&(_0x3bebaf=_0x5670d1%0x4?_0x3bebaf*0x40+_0x5c306d:_0x5c306d,_0x5670d1++%0x4)?_0xf63be5+=String['fromCharCode'](0xff&_0x3bebaf>>(-0x2*_0x5670d1&0x6)):0x0){_0x5c306d=_0x403854['indexOf'](_0x5c306d);}for(let _0xa73c2b=0x0,_0x411c8d=_0xf63be5['length'];_0xa73c2b<_0x411c8d;_0xa73c2b++){_0x5d5325+='%'+('00'+_0xf63be5['charCodeAt'](_0xa73c2b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5d5325);};a0_0x8ca0['BLtKVn']=_0x121c4b,a0_0x8ca0['lmYBWB']={},a0_0x8ca0['ZPdoSA']=!![];}const _0x13f14c=_0xd12ed5[0x0],_0x1d3e4e=_0x3b4588+_0x13f14c,_0x5eff33=a0_0x8ca0['lmYBWB'][_0x1d3e4e];return!_0x5eff33?(_0x8ca0aa=a0_0x8ca0['BLtKVn'](_0x8ca0aa),a0_0x8ca0['lmYBWB'][_0x1d3e4e]=_0x8ca0aa):_0x8ca0aa=_0x5eff33,_0x8ca0aa;}describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x22ab59=a0_0x8ca0,_0xf63be5=await import('../../config/constants.js');expect(_0xf63be5['UI_DIMENSIONS'])['toBeDefined'](),expect(_0xf63be5['MESSAGE_CONFIG'])[_0x22ab59(0xbb)](),expect(_0xf63be5[_0x22ab59(0x91)])['toBeDefined'](),expect(_0xf63be5[_0x22ab59(0xc1)])['toBeDefined'](),expect(_0xf63be5['NETWORK'])['toBeDefined'](),expect(_0xf63be5['CONNECTION_STATE'])['toBeDefined'](),expect(_0xf63be5[_0x22ab59(0xa0)])[_0x22ab59(0xbb)](),expect(_0xf63be5['WS_MESSAGE_TYPE'])[_0x22ab59(0xbb)](),expect(_0xf63be5['API_ENDPOINTS'])[_0x22ab59(0xbb)](),expect(_0xf63be5[_0x22ab59(0xbf)])[_0x22ab59(0xbb)](),expect(_0xf63be5[_0x22ab59(0x99)][_0x22ab59(0x98)])[_0x22ab59(0xc4)]('localhost'),expect(_0xf63be5[_0x22ab59(0x99)]['DEFAULT_PORT'])['toBe'](0x1f90),expect(_0xf63be5['CONNECTION_STATE']['DISCONNECTED'])['toBe']('disconnected'),expect(_0xf63be5['CONNECTION_STATE']['CONNECTED'])[_0x22ab59(0xc4)]('connected');}),test('WebSocketManager class can be imported',async()=>{const _0x2ff192=a0_0x8ca0,{WebSocketManager:_0x5d5325}=await import('../../api/websocket.js');expect(_0x5d5325)[_0x2ff192(0xbb)](),expect(typeof _0x5d5325)[_0x2ff192(0xc4)](_0x2ff192(0xa9));const _0x5670d1=new _0x5d5325(_0x2ff192(0xac),0x1f90);expect(_0x5670d1)['toBeDefined'](),expect(_0x5670d1['host'])[_0x2ff192(0xc4)]('localhost'),expect(_0x5670d1[_0x2ff192(0x9b)])[_0x2ff192(0xc4)](0x1f90),expect(_0x5670d1['url'])['toBe']('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0x55ff3c=a0_0x8ca0,{SessionManager:_0x3bebaf}=await import(_0x55ff3c(0xa6));expect(_0x3bebaf)[_0x55ff3c(0xbb)](),expect(typeof _0x3bebaf)[_0x55ff3c(0xc4)](_0x55ff3c(0xa9));const _0x5c306d=new _0x3bebaf('localhost',0x1f90);expect(_0x5c306d)[_0x55ff3c(0xbb)](),expect(_0x5c306d['host'])['toBe']('localhost'),expect(_0x5c306d[_0x55ff3c(0x9b)])[_0x55ff3c(0xc4)](0x1f90),expect(_0x5c306d[_0x55ff3c(0xbe)])[_0x55ff3c(0xc4)]('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x285116=a0_0x8ca0,{MessageRouter:_0x44c31e}=await import(_0x285116(0xd3)),{WebSocketManager:_0xa73c2b}=await import('../../api/websocket.js');expect(_0x44c31e)[_0x285116(0xbb)](),expect(typeof _0x44c31e)[_0x285116(0xc4)]('function');const _0x411c8d=new _0xa73c2b('localhost',0x1f90),_0x2668b4=new _0x44c31e(_0x411c8d);expect(_0x2668b4)['toBeDefined'](),expect(_0x2668b4['ws'])['toBe'](_0x411c8d);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x12f4b4=a0_0x8ca0,{loggingMiddleware:_0x21b44d,filterMiddleware:_0x1df31f,transformMiddleware:_0x15421e,timestampMiddleware:_0x384b40,validationMiddleware:_0x2af480}=await import('../../api/messageRouter.js');expect(typeof _0x21b44d)['toBe']('function'),expect(typeof _0x1df31f)[_0x12f4b4(0xc4)](_0x12f4b4(0xa9)),expect(typeof _0x15421e)['toBe']('function'),expect(typeof _0x384b40)['toBe']('function'),expect(typeof _0x2af480)[_0x12f4b4(0xc4)]('function');}),test('useConnection hook can be imported',async()=>{const _0x42b7a6=a0_0x8ca0,{useConnection:_0x1742c8,useConnectionStatus:_0x523ba1}=await import('../../state/useConnection.js');expect(_0x1742c8)['toBeDefined'](),expect(typeof _0x1742c8)['toBe'](_0x42b7a6(0xa9)),expect(_0x523ba1)['toBeDefined'](),expect(typeof _0x523ba1)['toBe'](_0x42b7a6(0xa9));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x47f417=a0_0x8ca0;test(_0x47f417(0xc2),async()=>{const _0x4a2bed=_0x47f417,{WebSocketManager:_0x5f4b18}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x6003ac}=await import(_0x4a2bed(0x95)),_0xd5c59e=new _0x5f4b18(_0x4a2bed(0xa5),0x2382);expect(_0xd5c59e['state'])['toBe'](_0x6003ac[_0x4a2bed(0xca)]),expect(_0xd5c59e['sessionId'])['toBe'](null),expect(_0xd5c59e[_0x4a2bed(0x9a)])[_0x4a2bed(0x9e)]([]),expect(_0xd5c59e['reconnectAttempts'])['toBe'](0x0),expect(_0xd5c59e[_0x4a2bed(0x8f)])['toBe'](!![]);}),test(_0x47f417(0xc5),async()=>{const _0x468561=_0x47f417,{SessionManager:_0x2053de}=await import(_0x468561(0xa6)),_0x19afdb=new _0x2053de('test-host',0x2382);expect(_0x19afdb[_0x468561(0x93)])[_0x468561(0xc4)](null),expect(_0x19afdb['projectDir'])['toBe'](null),expect(_0x19afdb[_0x468561(0xc3)])['toBe'](null),expect(_0x19afdb['vendorKeys'])[_0x468561(0x9e)]({}),expect(_0x19afdb['isValid']())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x35ffb3=_0x47f417,{MessageRouter:_0x50f671}=await import(_0x35ffb3(0xd3)),{WebSocketManager:_0x4a9588}=await import(_0x35ffb3(0xd7)),{WS_MESSAGE_TYPE:_0x105c6e}=await import(_0x35ffb3(0x95)),_0x2ae882=new _0x4a9588(_0x35ffb3(0xac),0x1f90),_0xa57b2b=new _0x50f671(_0x2ae882);expect(_0xa57b2b[_0x35ffb3(0xb3)](_0x105c6e[_0x35ffb3(0xb8)]))['toBe'](!![]),expect(_0xa57b2b[_0x35ffb3(0xb3)](_0x105c6e['AGENT_MODE_CHANGED']))[_0x35ffb3(0xc4)](!![]),expect(_0xa57b2b['hasHandler'](_0x105c6e['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0xa57b2b['hasHandler'](_0x105c6e['COMPACTION_EVENT']))[_0x35ffb3(0xc4)](!![]),expect(_0xa57b2b['hasHandler'](_0x105c6e['IMAGE_RESULT']))['toBe'](!![]);}),test(_0x47f417(0xce),async()=>{const _0x3abf92=_0x47f417,{MessageRouter:_0x15282e}=await import(_0x3abf92(0xd3)),{WebSocketManager:_0x53e568}=await import(_0x3abf92(0xd7)),_0x2cfdd7=new _0x53e568('localhost',0x1f90),_0x5f57a5=new _0x15282e(_0x2cfdd7),_0x1a3261=_0x26c448=>_0x26c448;expect(_0x5f57a5['middleware']['length'])['toBeGreaterThanOrEqual'](0x0),_0x5f57a5[_0x3abf92(0x92)](_0x1a3261);const _0x9036fd=_0x5f57a5['middleware'][_0x3abf92(0xbc)];expect(_0x9036fd)['toBeGreaterThan'](0x0),_0x5f57a5['removeMiddleware'](_0x1a3261),expect(_0x5f57a5['middleware'][_0x3abf92(0xbc)])[_0x3abf92(0xc4)](_0x9036fd-0x1);}),test(_0x47f417(0xb9),async()=>{const _0x3a7aac=_0x47f417,{SessionManager:_0x3305c2}=await import(_0x3a7aac(0xa6)),_0x5e9516=new _0x3305c2(_0x3a7aac(0xac),0x1f90);expect(_0x5e9516[_0x3a7aac(0xd2)]())[_0x3a7aac(0xc4)](null),expect(_0x5e9516[_0x3a7aac(0xd5)]())[_0x3a7aac(0xc4)](null),expect(_0x5e9516['isValid']())['toBe'](![]);const _0x5ed445=_0x5e9516[_0x3a7aac(0xa8)]();expect(_0x5ed445)['toHaveProperty']('sessionId'),expect(_0x5ed445)['toHaveProperty']('projectDir'),expect(_0x5ed445)[_0x3a7aac(0x9c)]('hasLoxiaKey'),expect(_0x5ed445)[_0x3a7aac(0x9c)]('vendorKeysCount');}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x209c7a=_0x47f417,{WebSocketManager:_0x24c86f}=await import(_0x209c7a(0xd7)),{CONNECTION_STATE:_0x421cc0}=await import('../../config/constants.js'),_0x296b46=new _0x24c86f(_0x209c7a(0xac),0x1f90);expect(_0x296b46['getState']())['toBe'](_0x421cc0[_0x209c7a(0xca)]),expect(_0x296b46[_0x209c7a(0xd1)]())[_0x209c7a(0xc4)](![]),expect(_0x296b46[_0x209c7a(0xd2)]())[_0x209c7a(0xc4)](null);const _0x5698ae=_0x296b46[_0x209c7a(0xab)]();expect(_0x5698ae)['toHaveProperty'](_0x209c7a(0xc6)),expect(_0x5698ae)[_0x209c7a(0x9c)](_0x209c7a(0x93)),expect(_0x5698ae)['toHaveProperty'](_0x209c7a(0xcd)),expect(_0x5698ae)['toHaveProperty']('queuedMessages'),expect(_0x5698ae)['toHaveProperty']('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0xd1d667=_0x47f417,{MessageRouter:_0x1d45c1}=await import(_0xd1d667(0xd3)),{WebSocketManager:_0xd91313}=await import('../../api/websocket.js'),_0x549e8c=new _0xd91313(_0xd1d667(0xac),0x1f90),_0x5aaf4a=new _0x1d45c1(_0x549e8c),_0x590954=()=>{};expect(_0x5aaf4a['hasHandler']('test-message'))[_0xd1d667(0xc4)](![]),_0x5aaf4a[_0xd1d667(0x9d)](_0xd1d667(0xb2),_0x590954),expect(_0x5aaf4a['hasHandler'](_0xd1d667(0xb2)))[_0xd1d667(0xc4)](!![]),_0x5aaf4a[_0xd1d667(0xad)](_0xd1d667(0xb2)),expect(_0x5aaf4a[_0xd1d667(0xb3)]('test-message'))[_0xd1d667(0xc4)](![]);}),test(_0x47f417(0xd4),async()=>{const _0x2eb030=_0x47f417,{loggingMiddleware:_0xf82c02,timestampMiddleware:_0x26fe48,filterMiddleware:_0x15ba5e}=await import('../../api/messageRouter.js'),_0x21b140=_0xf82c02();expect(typeof _0x21b140)['toBe']('function');const _0x46dd2e=_0x26fe48();expect(typeof _0x46dd2e)['toBe']('function');const _0x1a644a={'type':'test'},_0x4ed7c6=_0x46dd2e(_0x1a644a);expect(_0x4ed7c6)['toHaveProperty']('receivedAt'),expect(_0x4ed7c6['type'])[_0x2eb030(0xc4)]('test');const _0x102509=_0x15ba5e([_0x2eb030(0xa4)]);expect(typeof _0x102509)['toBe']('function'),expect(_0x102509({'type':'allowed-type'}))['toBeTruthy'](),expect(_0x102509({'type':'blocked-type'}))[_0x2eb030(0xc4)](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x1e4103=_0x47f417,_0x3a7bbe=await import('../../config/constants.js');expect(typeof _0x3a7bbe[_0x1e4103(0xc1)][_0x1e4103(0xaa)])[_0x1e4103(0xc4)](_0x1e4103(0xb5)),expect(typeof _0x3a7bbe['TIMING']['WEBSOCKET_PING_INTERVAL'])[_0x1e4103(0xc4)]('number'),expect(typeof _0x3a7bbe['NETWORK']['DEFAULT_PORT'])['toBe']('number'),expect(typeof _0x3a7bbe['NETWORK']['MAX_RETRIES'])['toBe'](_0x1e4103(0xb5)),expect(typeof _0x3a7bbe['NETWORK'][_0x1e4103(0xcb)])['toBe'](_0x1e4103(0xb5)),expect(typeof _0x3a7bbe[_0x1e4103(0xb4)][_0x1e4103(0x94)])[_0x1e4103(0xc4)](_0x1e4103(0xb5)),expect(typeof _0x3a7bbe['UI_DIMENSIONS'][_0x1e4103(0xd6)])['toBe']('number');});}),describe(a0_0x2dbea4(0xc9),()=>{const _0x47d954=a0_0x2dbea4;test(_0x47d954(0xa7),async()=>{const _0x14f11b=_0x47d954,{MessageRouter:_0x12be9a}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x46de22}=await import(_0x14f11b(0xd7)),_0x410fb9=new _0x46de22(_0x14f11b(0xac),0x1f90),_0x433f86=new _0x12be9a(_0x410fb9);expect(()=>{const _0x366c7d=_0x14f11b;_0x433f86[_0x366c7d(0x9d)](_0x366c7d(0x96),_0x366c7d(0xb0));})['toThrow']('Handler\x20must\x20be\x20a\x20function');}),test(_0x47d954(0x97),async()=>{const _0x505325=_0x47d954,{MessageRouter:_0x5d9715}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x430cb0}=await import(_0x505325(0xd7)),_0x28a6e5=new _0x430cb0('localhost',0x1f90),_0x2f368f=new _0x5d9715(_0x28a6e5);expect(()=>{const _0x350d3d=_0x505325;_0x2f368f[_0x350d3d(0x92)](_0x350d3d(0xb0));})[_0x505325(0xa3)]('Middleware\x20must\x20be\x20a\x20function');}),test(_0x47d954(0xc8),async()=>{const _0x402b85=_0x47d954,{SessionManager:_0x5ba4f9}=await import(_0x402b85(0xa6)),_0x3dcbf8=new _0x5ba4f9(_0x402b85(0xac),0x1f90);_0x3dcbf8['sessionId']='test-123',_0x3dcbf8['projectDir']='/test/dir',_0x3dcbf8[_0x402b85(0xc3)]=_0x402b85(0xbd),_0x3dcbf8['vendorKeys']={'openai':_0x402b85(0xba)},expect(_0x3dcbf8['isValid']())['toBe'](!![]),_0x3dcbf8['clear'](),expect(_0x3dcbf8['sessionId'])['toBe'](null),expect(_0x3dcbf8[_0x402b85(0xb6)])[_0x402b85(0xc4)](null),expect(_0x3dcbf8['loxiaApiKey'])['toBe'](null),expect(_0x3dcbf8['vendorKeys'])[_0x402b85(0x9e)]({}),expect(_0x3dcbf8[_0x402b85(0x9f)]())['toBe'](![]);}),test(_0x47d954(0xc7),async()=>{const _0x284b6e=_0x47d954,{WebSocketManager:_0x14307c}=await import(_0x284b6e(0xd7)),_0x50c3ba=new _0x14307c('localhost',0x1f90),_0x1bd68b=_0x50c3ba[_0x284b6e(0xa2)](),_0x167a77=_0x50c3ba[_0x284b6e(0xa2)](),_0x10ea16=_0x50c3ba[_0x284b6e(0xa2)]();expect(_0x1bd68b)['not'][_0x284b6e(0xc4)](_0x167a77),expect(_0x167a77)['not']['toBe'](_0x10ea16),expect(_0x1bd68b)['not'][_0x284b6e(0xc4)](_0x10ea16),expect(_0x1bd68b)['toMatch'](/^req-\d+-\d+$/),expect(_0x167a77)['toMatch'](/^req-\d+-\d+$/),expect(_0x10ea16)[_0x284b6e(0xae)](/^req-\d+-\d+$/);});});
1
+ const a0_0x2e0074=a0_0x3c5b;function a0_0x3c5b(_0x18b654,_0x641fbf){_0x18b654=_0x18b654-0x19d;const _0x1fc3a4=a0_0x1fc3();let _0x3c5b7b=_0x1fc3a4[_0x18b654];if(a0_0x3c5b['MgDTtd']===undefined){var _0x41bbf7=function(_0xecf91e){const _0x136246='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39ed86='',_0x52042a='';for(let _0x548c87=0x0,_0x2efba8,_0x305c93,_0x12ae6d=0x0;_0x305c93=_0xecf91e['charAt'](_0x12ae6d++);~_0x305c93&&(_0x2efba8=_0x548c87%0x4?_0x2efba8*0x40+_0x305c93:_0x305c93,_0x548c87++%0x4)?_0x39ed86+=String['fromCharCode'](0xff&_0x2efba8>>(-0x2*_0x548c87&0x6)):0x0){_0x305c93=_0x136246['indexOf'](_0x305c93);}for(let _0x481f13=0x0,_0x3f5aeb=_0x39ed86['length'];_0x481f13<_0x3f5aeb;_0x481f13++){_0x52042a+='%'+('00'+_0x39ed86['charCodeAt'](_0x481f13)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x52042a);};a0_0x3c5b['LnThSs']=_0x41bbf7,a0_0x3c5b['dXoElR']={},a0_0x3c5b['MgDTtd']=!![];}const _0x4527ce=_0x1fc3a4[0x0],_0xc49b28=_0x18b654+_0x4527ce,_0x456ff3=a0_0x3c5b['dXoElR'][_0xc49b28];return!_0x456ff3?(_0x3c5b7b=a0_0x3c5b['LnThSs'](_0x3c5b7b),a0_0x3c5b['dXoElR'][_0xc49b28]=_0x3c5b7b):_0x3c5b7b=_0x456ff3,_0x3c5b7b;}(function(_0x4cffbe,_0x2a866f){const _0x445664=a0_0x3c5b,_0x1478c6=_0x4cffbe();while(!![]){try{const _0x59e979=parseInt(_0x445664(0x1f1))/0x1*(-parseInt(_0x445664(0x1d8))/0x2)+parseInt(_0x445664(0x1ac))/0x3*(parseInt(_0x445664(0x1be))/0x4)+-parseInt(_0x445664(0x1a4))/0x5+parseInt(_0x445664(0x1de))/0x6+parseInt(_0x445664(0x1da))/0x7*(-parseInt(_0x445664(0x1e2))/0x8)+-parseInt(_0x445664(0x1d5))/0x9+parseInt(_0x445664(0x1dc))/0xa*(parseInt(_0x445664(0x1d0))/0xb);if(_0x59e979===_0x2a866f)break;else _0x1478c6['push'](_0x1478c6['shift']());}catch(_0x119621){_0x1478c6['push'](_0x1478c6['shift']());}}}(a0_0x1fc3,0x1ae72));import{describe,test,expect}from'@jest/globals';function a0_0x1fc3(){const _0x4c15f6=['AgfZtg94AwflzxK','otq0mdHvBePkCLm','DMvUzg9Ys2v5CW','CMvNAxn0zxjiyw5KBgvY','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','Ahr0CdOVl2XVy2fSAg9ZDdO4mdGW','Bg94AwfbCgLlzxK','Bg9JywXOB3n0','BwLKzgXLD2fYzq','lI4VlI4VyxbPl3nLC3nPB24UANm','DhLWzq','Dg9czvrYDxrOEq','AgfZsgfUzgXLCG','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','quDftLrFtu9erv9dsefor0ve','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','oda4wwnTqxP3','v2vIu29JA2v0twfUywDLCIbPBML0AwfSAxPLCYb3AxrOignVCNjLy3qGC3rHDgu','z2v0u2vZC2LVBKLK','DMvUzg9Ys2v5C0nVDw50','Dg9nyxrJAa','CxvLDwvKtwvZC2fNzxm','DgvZDc1TzxnZywDL','q09otKvdveLptL9tvefurq','nZi4ntbxvg1cEwi','DgvZDc0XmJm','zNvUy3rPB24','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbfCNjVCIbiyw5KBgLUzW','C3rHDgu','DxjS','qvbjx0vorfbpsu5uuW','v2vIu29JA2v0twfUywDLCIbOzwXWzxiGBwv0Ag9KCYb3B3jR','oujPsg5kAa','revgqvvmvf9it1nu','reLtq09otKvdveve','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','tuvtu0fhrv9dt05gsuC','Dg9iyxzLuhjVCgvYDhK','DxnL','CMvJzwL2zwrbDa','tKvuv09ssW','DgvZDa','Dg9fCxvHBa','Cg9YDa','z2vUzxjHDgvszxf1zxn0swq','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbjBxbVCNrZ','C2HVDwXKuMvJB25Uzwn0','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','q09otKvdveve','BNvTyMvY','mJu5odeYExzXA0vW','z2v0uhjVAMvJDerPCG','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','C2vZC2LVBKLK','tuvtu0fhrv9msvnux0HfsuDiva','q09ntuforfm','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','rvHfq1vusu9ox1nut1bqruq','yMXVy2TLzc10ExbL','q29UC3rHBNrZigHHDMuGBM8GBwfNAwmGBNvTyMvYCW','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbcyxnPyYbgDw5JDgLVBMfSAxr5','DgvZDc1OB3n0','ChjVAMvJDerPCG','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','CMvJB25Uzwn0qxr0zw1WDhm','Dg9czurLzMLUzwq','y29UBMvJDgvK','quDftLrFtu9erq','mJmXmJa5Buj2BMPV','Dg9uAhjVDW','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLigHLBhbLCNmGy3jLyxrLihzHBgLKig1PzgrSzxDHCMu','veLnsu5h','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','mtKXodGXogfhCeTVAa','AxnwywXPza','CMvTB3zLtwLKzgXLD2fYzq','mJaWqMfgsvHu','z2v0u2vZC2LVBKLUzM8','mJHor0HNrMS','BgvUz3rO','ntbiyNrNqM0','D3m6lY9SB2nHBgHVC3q6oda4ma','otK2mdK2EhHcuNvg','zgLZy29UBMvJDgvK','Dg9czq'];a0_0x1fc3=function(){return _0x4c15f6;};return a0_0x1fc3();}import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe(a0_0x2e0074(0x1b9),()=>{test('constants module exports all required constants',async()=>{const _0x15fea8=a0_0x3c5b,_0x39ed86=await import('../../config/constants.js');expect(_0x39ed86['UI_DIMENSIONS'])['toBeDefined'](),expect(_0x39ed86[_0x15fea8(0x1b0)])[_0x15fea8(0x1cd)](),expect(_0x39ed86['PAGINATION'])['toBeDefined'](),expect(_0x39ed86['TIMING'])['toBeDefined'](),expect(_0x39ed86[_0x15fea8(0x1b4)])[_0x15fea8(0x1cd)](),expect(_0x39ed86[_0x15fea8(0x1a3)])[_0x15fea8(0x1cd)](),expect(_0x39ed86[_0x15fea8(0x1cf)])[_0x15fea8(0x1cd)](),expect(_0x39ed86['WS_MESSAGE_TYPE'])['toBeDefined'](),expect(_0x39ed86[_0x15fea8(0x1aa)])['toBeDefined'](),expect(_0x39ed86[_0x15fea8(0x1c3)])['toBeDefined'](),expect(_0x39ed86[_0x15fea8(0x1b4)][_0x15fea8(0x1ad)])['toBe']('localhost'),expect(_0x39ed86[_0x15fea8(0x1b4)]['DEFAULT_PORT'])['toBe'](0x1f90),expect(_0x39ed86[_0x15fea8(0x1a3)][_0x15fea8(0x1ae)])['toBe'](_0x15fea8(0x1df)),expect(_0x39ed86[_0x15fea8(0x1a3)][_0x15fea8(0x1bc)])[_0x15fea8(0x1e0)](_0x15fea8(0x1ce));}),test('WebSocketManager class can be imported',async()=>{const _0x3bb82=a0_0x3c5b,{WebSocketManager:_0x52042a}=await import('../../api/websocket.js');expect(_0x52042a)['toBeDefined'](),expect(typeof _0x52042a)['toBe'](_0x3bb82(0x1a6));const _0x548c87=new _0x52042a('localhost',0x1f90);expect(_0x548c87)['toBeDefined'](),expect(_0x548c87['host'])[_0x3bb82(0x1e0)]('localhost'),expect(_0x548c87[_0x3bb82(0x1b7)])[_0x3bb82(0x1e0)](0x1f90),expect(_0x548c87[_0x3bb82(0x1a9)])['toBe'](_0x3bb82(0x1dd));}),test('SessionManager class can be imported',async()=>{const _0xf5a4c=a0_0x3c5b,{SessionManager:_0x2efba8}=await import(_0xf5a4c(0x1ea));expect(_0x2efba8)[_0xf5a4c(0x1cd)](),expect(typeof _0x2efba8)[_0xf5a4c(0x1e0)]('function');const _0x305c93=new _0x2efba8(_0xf5a4c(0x1e8),0x1f90);expect(_0x305c93)[_0xf5a4c(0x1cd)](),expect(_0x305c93['host'])[_0xf5a4c(0x1e0)]('localhost'),expect(_0x305c93[_0xf5a4c(0x1b7)])[_0xf5a4c(0x1e0)](0x1f90),expect(_0x305c93['baseUrl'])['toBe'](_0xf5a4c(0x1e6));}),test('MessageRouter class can be imported',async()=>{const _0x3ff872=a0_0x3c5b,{MessageRouter:_0x12ae6d}=await import(_0x3ff872(0x1cb)),{WebSocketManager:_0x481f13}=await import('../../api/websocket.js');expect(_0x12ae6d)[_0x3ff872(0x1cd)](),expect(typeof _0x12ae6d)['toBe']('function');const _0x3f5aeb=new _0x481f13('localhost',0x1f90),_0x29f4b5=new _0x12ae6d(_0x3f5aeb);expect(_0x29f4b5)['toBeDefined'](),expect(_0x29f4b5['ws'])['toBe'](_0x3f5aeb);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x3b6959=a0_0x3c5b,{loggingMiddleware:_0x3d8e94,filterMiddleware:_0x2fa872,transformMiddleware:_0x24eff3,timestampMiddleware:_0x7d8168,validationMiddleware:_0x343a9d}=await import(_0x3b6959(0x1cb));expect(typeof _0x3d8e94)[_0x3b6959(0x1e0)](_0x3b6959(0x1a6)),expect(typeof _0x2fa872)['toBe']('function'),expect(typeof _0x24eff3)['toBe']('function'),expect(typeof _0x7d8168)['toBe'](_0x3b6959(0x1a6)),expect(typeof _0x343a9d)[_0x3b6959(0x1e0)]('function');}),test('useConnection hook can be imported',async()=>{const _0x40579b=a0_0x3c5b,{useConnection:_0x475540,useConnectionStatus:_0x2ea0ba}=await import(_0x40579b(0x1d4));expect(_0x475540)['toBeDefined'](),expect(typeof _0x475540)[_0x40579b(0x1e0)](_0x40579b(0x1a6)),expect(_0x2ea0ba)['toBeDefined'](),expect(typeof _0x2ea0ba)[_0x40579b(0x1e0)](_0x40579b(0x1a6));});}),describe(a0_0x2e0074(0x1c8),()=>{const _0xde3e59=a0_0x2e0074;test(_0xde3e59(0x19d),async()=>{const _0x4199a7=_0xde3e59,{WebSocketManager:_0x5a9b86}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x403698}=await import(_0x4199a7(0x1e5)),_0x4481d8=new _0x5a9b86(_0x4199a7(0x1c9),0x2382);expect(_0x4481d8['state'])[_0x4199a7(0x1e0)](_0x403698['DISCONNECTED']),expect(_0x4481d8['sessionId'])['toBe'](null),expect(_0x4481d8['messageQueue'])['toEqual']([]),expect(_0x4481d8[_0x4199a7(0x1cc)])[_0x4199a7(0x1e0)](0x0),expect(_0x4481d8[_0x4199a7(0x1ba)])['toBe'](!![]);}),test('SessionManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x25c842=_0xde3e59,{SessionManager:_0x36dc30}=await import('../../api/session.js'),_0xd219cc=new _0x36dc30(_0x25c842(0x1c9),0x2382);expect(_0xd219cc['sessionId'])[_0x25c842(0x1e0)](null),expect(_0xd219cc['projectDir'])['toBe'](null),expect(_0xd219cc['loxiaApiKey'])[_0x25c842(0x1e0)](null),expect(_0xd219cc['vendorKeys'])[_0x25c842(0x1b6)]({}),expect(_0xd219cc['isValid']())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x38d276=_0xde3e59,{MessageRouter:_0x2fec92}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4b4240}=await import(_0x38d276(0x1ee)),{WS_MESSAGE_TYPE:_0x4e3070}=await import('../../config/constants.js'),_0x266c54=new _0x4b4240(_0x38d276(0x1e8),0x1f90),_0x32fd23=new _0x2fec92(_0x266c54);expect(_0x32fd23['hasHandler'](_0x4e3070['MESSAGE_ADDED']))[_0x38d276(0x1e0)](!![]),expect(_0x32fd23[_0x38d276(0x1ed)](_0x4e3070[_0x38d276(0x1ef)]))['toBe'](!![]),expect(_0x32fd23['hasHandler'](_0x4e3070[_0x38d276(0x1c5)]))[_0x38d276(0x1e0)](!![]),expect(_0x32fd23['hasHandler'](_0x4e3070['COMPACTION_EVENT']))['toBe'](!![]),expect(_0x32fd23[_0x38d276(0x1ed)](_0x4e3070['IMAGE_RESULT']))['toBe'](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x35059a=_0xde3e59,{MessageRouter:_0x1e91e5}=await import(_0x35059a(0x1cb)),{WebSocketManager:_0x599ce7}=await import('../../api/websocket.js'),_0x1ae9aa=new _0x599ce7(_0x35059a(0x1e8),0x1f90),_0x55c8a1=new _0x1e91e5(_0x1ae9aa),_0x2aa050=_0x5db5c0=>_0x5db5c0;expect(_0x55c8a1[_0x35059a(0x1e9)][_0x35059a(0x1db)])[_0x35059a(0x1c0)](0x0),_0x55c8a1['use'](_0x2aa050);const _0x28b15f=_0x55c8a1['middleware'][_0x35059a(0x1db)];expect(_0x28b15f)['toBeGreaterThan'](0x0),_0x55c8a1[_0x35059a(0x1d7)](_0x2aa050),expect(_0x55c8a1['middleware']['length'])[_0x35059a(0x1e0)](_0x28b15f-0x1);}),test(_0xde3e59(0x1f0),async()=>{const _0xffc274=_0xde3e59,{SessionManager:_0x5ba7e0}=await import(_0xffc274(0x1ea)),_0xb30026=new _0x5ba7e0('localhost',0x1f90);expect(_0xb30026[_0xffc274(0x19e)]())['toBe'](null),expect(_0xb30026[_0xffc274(0x1bf)]())['toBe'](null),expect(_0xb30026['isValid']())[_0xffc274(0x1e0)](![]);const _0x1db516=_0xb30026[_0xffc274(0x1d9)]();expect(_0x1db516)['toHaveProperty']('sessionId'),expect(_0x1db516)['toHaveProperty']('projectDir'),expect(_0x1db516)['toHaveProperty'](_0xffc274(0x1e1)),expect(_0x1db516)['toHaveProperty'](_0xffc274(0x19f));}),test(_0xde3e59(0x1ab),async()=>{const _0x5b2158=_0xde3e59,{WebSocketManager:_0x337212}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0xae6054}=await import(_0x5b2158(0x1e5)),_0x3e8f64=new _0x337212(_0x5b2158(0x1e8),0x1f90);expect(_0x3e8f64['getState']())[_0x5b2158(0x1e0)](_0xae6054['DISCONNECTED']),expect(_0x3e8f64['isConnected']())[_0x5b2158(0x1e0)](![]),expect(_0x3e8f64[_0x5b2158(0x19e)]())[_0x5b2158(0x1e0)](null);const _0x379434=_0x3e8f64['getStats']();expect(_0x379434)[_0x5b2158(0x1b1)](_0x5b2158(0x1a8)),expect(_0x379434)[_0x5b2158(0x1b1)](_0x5b2158(0x1c1)),expect(_0x379434)[_0x5b2158(0x1b1)](_0x5b2158(0x1cc)),expect(_0x379434)['toHaveProperty'](_0x5b2158(0x1a1)),expect(_0x379434)[_0x5b2158(0x1b1)]('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x253ba1=_0xde3e59,{MessageRouter:_0x324aaa}=await import(_0x253ba1(0x1cb)),{WebSocketManager:_0xf11d8e}=await import('../../api/websocket.js'),_0x1b3231=new _0xf11d8e('localhost',0x1f90),_0x5dd287=new _0x324aaa(_0x1b3231),_0x5d8ca2=()=>{};expect(_0x5dd287['hasHandler']('test-message'))[_0x253ba1(0x1e0)](![]),_0x5dd287[_0x253ba1(0x1e4)](_0x253ba1(0x1a2),_0x5d8ca2),expect(_0x5dd287[_0x253ba1(0x1ed)]('test-message'))[_0x253ba1(0x1e0)](!![]),_0x5dd287['unregisterHandler']('test-message'),expect(_0x5dd287[_0x253ba1(0x1ed)](_0x253ba1(0x1a2)))[_0x253ba1(0x1e0)](![]);}),test(_0xde3e59(0x1d2),async()=>{const _0x3b0479=_0xde3e59,{loggingMiddleware:_0x1bde63,timestampMiddleware:_0x2748f5,filterMiddleware:_0x39762d}=await import('../../api/messageRouter.js'),_0x5d5169=_0x1bde63();expect(typeof _0x5d5169)[_0x3b0479(0x1e0)](_0x3b0479(0x1a6));const _0x12c14f=_0x2748f5();expect(typeof _0x12c14f)['toBe']('function');const _0x4beddc={'type':'test'},_0x193f57=_0x12c14f(_0x4beddc);expect(_0x193f57)['toHaveProperty'](_0x3b0479(0x1b3)),expect(_0x193f57[_0x3b0479(0x1eb)])['toBe']('test');const _0x33f5ca=_0x39762d(['allowed-type']);expect(typeof _0x33f5ca)[_0x3b0479(0x1e0)](_0x3b0479(0x1a6)),expect(_0x33f5ca({'type':'allowed-type'}))[_0x3b0479(0x1ec)](),expect(_0x33f5ca({'type':_0x3b0479(0x1c6)}))['toBe'](null);}),test(_0xde3e59(0x1c7),async()=>{const _0x8d4a8c=_0xde3e59,_0x1f7adf=await import(_0x8d4a8c(0x1e5));expect(typeof _0x1f7adf[_0x8d4a8c(0x1d3)]['WEBSOCKET_RECONNECT_DELAY'])[_0x8d4a8c(0x1e0)](_0x8d4a8c(0x1bd)),expect(typeof _0x1f7adf['TIMING']['WEBSOCKET_PING_INTERVAL'])['toBe']('number'),expect(typeof _0x1f7adf[_0x8d4a8c(0x1b4)]['DEFAULT_PORT'])[_0x8d4a8c(0x1e0)](_0x8d4a8c(0x1bd)),expect(typeof _0x1f7adf['NETWORK']['MAX_RETRIES'])['toBe']('number'),expect(typeof _0x1f7adf[_0x8d4a8c(0x1b4)]['HTTP_TIMEOUT'])['toBe'](_0x8d4a8c(0x1bd)),expect(typeof _0x1f7adf['UI_DIMENSIONS'][_0x8d4a8c(0x1c2)])['toBe'](_0x8d4a8c(0x1bd)),expect(typeof _0x1f7adf['UI_DIMENSIONS']['SIDEBAR_WIDTH'])[_0x8d4a8c(0x1e0)](_0x8d4a8c(0x1bd));});}),describe(a0_0x2e0074(0x1a7),()=>{const _0x521a1b=a0_0x2e0074;test(_0x521a1b(0x1af),async()=>{const _0x1e321b=_0x521a1b,{MessageRouter:_0x16c0d0}=await import(_0x1e321b(0x1cb)),{WebSocketManager:_0x11860c}=await import(_0x1e321b(0x1ee)),_0x4b6429=new _0x11860c('localhost',0x1f90),_0x23bd2f=new _0x16c0d0(_0x4b6429);expect(()=>{const _0x3e84fe=_0x1e321b;_0x23bd2f['registerHandler'](_0x3e84fe(0x1b5),'not-a-function');})[_0x1e321b(0x1d1)](_0x1e321b(0x1c4));}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x5a0964=_0x521a1b,{MessageRouter:_0x28c468}=await import(_0x5a0964(0x1cb)),{WebSocketManager:_0x5ce28f}=await import('../../api/websocket.js'),_0x2fdf8e=new _0x5ce28f(_0x5a0964(0x1e8),0x1f90),_0x1841ae=new _0x28c468(_0x2fdf8e);expect(()=>{const _0x59aef7=_0x5a0964;_0x1841ae[_0x59aef7(0x1b2)]('not-a-function');})[_0x5a0964(0x1d1)]('Middleware\x20must\x20be\x20a\x20function');}),test('SessionManager\x20clear()\x20resets\x20all\x20state',async()=>{const _0x370128=_0x521a1b,{SessionManager:_0x2efe16}=await import(_0x370128(0x1ea)),_0x366d58=new _0x2efe16('localhost',0x1f90);_0x366d58[_0x370128(0x1c1)]=_0x370128(0x1a5),_0x366d58[_0x370128(0x1ca)]='/test/dir',_0x366d58[_0x370128(0x1e7)]='test-key',_0x366d58['vendorKeys']={'openai':'key'},expect(_0x366d58['isValid']())[_0x370128(0x1e0)](!![]),_0x366d58['clear'](),expect(_0x366d58['sessionId'])[_0x370128(0x1e0)](null),expect(_0x366d58[_0x370128(0x1ca)])[_0x370128(0x1e0)](null),expect(_0x366d58[_0x370128(0x1e7)])['toBe'](null),expect(_0x366d58[_0x370128(0x1e3)])['toEqual']({}),expect(_0x366d58[_0x370128(0x1d6)]())['toBe'](![]);}),test(_0x521a1b(0x1bb),async()=>{const _0xdbf749=_0x521a1b,{WebSocketManager:_0x3eeb59}=await import(_0xdbf749(0x1ee)),_0x3dc391=new _0x3eeb59('localhost',0x1f90),_0x11353c=_0x3dc391[_0xdbf749(0x1b8)](),_0x387c96=_0x3dc391['generateRequestId'](),_0x5424be=_0x3dc391[_0xdbf749(0x1b8)]();expect(_0x11353c)['not']['toBe'](_0x387c96),expect(_0x387c96)['not'][_0xdbf749(0x1e0)](_0x5424be),expect(_0x11353c)['not'][_0xdbf749(0x1e0)](_0x5424be),expect(_0x11353c)['toMatch'](/^req-\d+-\d+$/),expect(_0x387c96)[_0xdbf749(0x1a0)](/^req-\d+-\d+$/),expect(_0x5424be)['toMatch'](/^req-\d+-\d+$/);});});
@@ -1 +1 @@
1
- const a0_0x35d151=a0_0x4879;function a0_0x5c88(){const _0x5ad14e=['qvntsvnuqu5u','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','tufyx1bbr0vFu0LArq','t1jdsevtvfjbve9s','zNvUy3rPB24','BgvUz3rO','twvZC2fNzvjVDxrLCIbOyxmGBwvZC2fNzsbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','zxHLy3v0Aw9Ux3n0B3bWzwq','quDftLrFuKvtue9ou0u','Dg9mB3DLCKnHC2u','twvZC2fNzsbbueKGzw5KCg9PBNrZigzVBgXVDYbsrvnuzNvSihbHDhrLCM4','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','DxnLCG','tuvtu0fhrv9uwvbfignVBNn0yw50CYbHCMuGzgvMAw5Lza','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','uefhrv9tsvPf','DxnLtwvZC2fNzxmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','yxnZAxn0yw50','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','vvnfuG','tufyx01fu1nbr0vFtevor1ri','quDftLrFtu9erv9dsefor0ve','mtyXotmYmtbYzgXWq3O','DxnLCI1TzxnZywDL','Dg9czq','ndGYnJG5mMfVDNvrBq','C3LZDgvTlw5VDgLMAwnHDgLVBG','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','vvnfuL9nrvntquDf','mZnOsKLAte0','Dg9czuXLC3nuAgfUt3jfCxvHBa','mJK0mJG3y1zWCxPi','Dg9czurLzMLUzwq','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','twvZC2fNzvjVDxrLCG','Dg9nyxrJAa','mNfgCvDtvq','mZb4u0frq2u','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','Bg9JywXOB3n0','tuvtu0fhrv9brerfra','t3jJAgvZDhjHDg9YigvUzhbVAw50ignHBIbIzsb1C2vKigzVCIbTzxnZywDLig9WzxjHDgLVBNm','uefhsu5bveLptIbZDxbWB3j0CYbVzMzZzxqTyMfZzwqGCgfNAw5HDgLVBG','ndm5mdq1y093t2Lz','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','tuvtu0fhrv9st0Xf','lI4VlI4VyxbPl3nLC3nPB24UANm','BNvTyMvY','u1Ltvevn','Dg9czuDYzwf0zxjuAgfU','twvZC2fNzsbnyw5Hz2vTzw50ic0GqvbjievUzhbVAw50CYbwywXPzgf0Aw9U','tuvtu0fhrv9dt05gsuC','l2fWAs9VCMnOzxn0CMf0B3i','mta1ntq5ndHkyMHbCMK','zgvMyxvSDa','tuvtu0fhrv9uwvbf','mtiWotyZr0PmveTU','C3LZDgvT','tufyx01fu1nbr0vtx0rju1bmqvK','u1Ltvevnx05pveLgsunbveLptG','BwvZC2fNzv9HzgrLza','mtmYotC0nwfUtM1nwa','mJy0t01Rq2Pm','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm'];a0_0x5c88=function(){return _0x5ad14e;};return a0_0x5c88();}(function(_0x2b7519,_0x404e09){const _0x2e52bd=a0_0x4879,_0x1e6dab=_0x2b7519();while(!![]){try{const _0x3b4045=parseInt(_0x2e52bd(0x1d8))/0x1+-parseInt(_0x2e52bd(0x1d1))/0x2*(-parseInt(_0x2e52bd(0x1e5))/0x3)+parseInt(_0x2e52bd(0x1c6))/0x4+-parseInt(_0x2e52bd(0x1ea))/0x5*(-parseInt(_0x2e52bd(0x1d2))/0x6)+-parseInt(_0x2e52bd(0x1cc))/0x7*(-parseInt(_0x2e52bd(0x1eb))/0x8)+parseInt(_0x2e52bd(0x1e2))/0x9+-parseInt(_0x2e52bd(0x1c3))/0xa*(parseInt(_0x2e52bd(0x1ca))/0xb);if(_0x3b4045===_0x404e09)break;else _0x1e6dab['push'](_0x1e6dab['shift']());}catch(_0x372282){_0x1e6dab['push'](_0x1e6dab['shift']());}}}(a0_0x5c88,0xaf4ac));import{describe,test,expect}from'@jest/globals';function a0_0x4879(_0x14ea5b,_0x15bed9){_0x14ea5b=_0x14ea5b-0x1ad;const _0x5c88fe=a0_0x5c88();let _0x4879a4=_0x5c88fe[_0x14ea5b];if(a0_0x4879['dLlhBc']===undefined){var _0x5316c9=function(_0x406e67){const _0x4ea551='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x38995c='',_0x4a90a8='';for(let _0x31d02e=0x0,_0x32868e,_0x2979ff,_0x5c05ae=0x0;_0x2979ff=_0x406e67['charAt'](_0x5c05ae++);~_0x2979ff&&(_0x32868e=_0x31d02e%0x4?_0x32868e*0x40+_0x2979ff:_0x2979ff,_0x31d02e++%0x4)?_0x38995c+=String['fromCharCode'](0xff&_0x32868e>>(-0x2*_0x31d02e&0x6)):0x0){_0x2979ff=_0x4ea551['indexOf'](_0x2979ff);}for(let _0x337acd=0x0,_0x8ee0c9=_0x38995c['length'];_0x337acd<_0x8ee0c9;_0x337acd++){_0x4a90a8+='%'+('00'+_0x38995c['charCodeAt'](_0x337acd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4a90a8);};a0_0x4879['gmTXhf']=_0x5316c9,a0_0x4879['imxVXl']={},a0_0x4879['dLlhBc']=!![];}const _0x34febc=_0x5c88fe[0x0],_0x304134=_0x14ea5b+_0x34febc,_0x413d71=a0_0x4879['imxVXl'][_0x304134];return!_0x413d71?(_0x4879a4=a0_0x4879['gmTXhf'](_0x4879a4),a0_0x4879['imxVXl'][_0x304134]=_0x4879a4):_0x4879a4=_0x413d71,_0x4879a4;}describe(a0_0x35d151(0x1c8),()=>{test('useMessages hook can be imported',async()=>{const _0x5a691d=a0_0x4879,{useMessages:_0x38995c}=await import('../../state/useMessages.js');expect(_0x38995c)['toBeDefined'](),expect(typeof _0x38995c)['toBe'](_0x5a691d(0x1b1));}),test('useMessages is default export',async()=>{const _0x40c808=a0_0x4879,module=await import('../../state/useMessages.js');expect(module[_0x40c808(0x1e3)])['toBeDefined'](),expect(typeof module[_0x40c808(0x1e3)])[_0x40c808(0x1c5)](_0x40c808(0x1b1)),expect(module[_0x40c808(0x1e3)])[_0x40c808(0x1c5)](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x153921=a0_0x4879,{useMessageCount:_0x4a90a8}=await import('../../state/useMessages.js');expect(_0x4a90a8)['toBeDefined'](),expect(typeof _0x4a90a8)[_0x153921(0x1c5)]('function');});}),describe(a0_0x35d151(0x1bf),()=>{const _0x5e54ed=a0_0x35d151;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x25bf13=a0_0x4879,{MESSAGE_ROLE:_0x31d02e}=await import(_0x25bf13(0x1d3));expect(_0x31d02e)['toBeDefined'](),expect(_0x31d02e['USER'])[_0x25bf13(0x1c5)](_0x25bf13(0x1b9)),expect(_0x31d02e['ASSISTANT'])[_0x25bf13(0x1c5)](_0x25bf13(0x1be)),expect(_0x31d02e['SYSTEM'])[_0x25bf13(0x1c5)](_0x25bf13(0x1e6));}),test(_0x5e54ed(0x1ba),async()=>{const _0x2867ee=_0x5e54ed,{MESSAGE_TYPE:_0x32868e}=await import(_0x2867ee(0x1d3));expect(_0x32868e)['toBeDefined'](),expect(_0x32868e[_0x2867ee(0x1c9)])['toBe'](_0x2867ee(0x1c4)),expect(_0x32868e[_0x2867ee(0x1b5)])[_0x2867ee(0x1c5)]('agent-response'),expect(_0x32868e[_0x2867ee(0x1e8)])['toBe'](_0x2867ee(0x1c7));}),test(_0x5e54ed(0x1ae),async()=>{const _0x4e568b=_0x5e54ed,{MESSAGE_CONFIG:_0x2979ff}=await import(_0x4e568b(0x1d3));expect(_0x2979ff)[_0x4e568b(0x1cd)](),expect(_0x2979ff['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(_0x2979ff[_0x4e568b(0x1e7)])[_0x4e568b(0x1cd)](),expect(typeof _0x2979ff[_0x4e568b(0x1c1)])[_0x4e568b(0x1c5)](_0x4e568b(0x1dc)),expect(typeof _0x2979ff['MAX_MESSAGES_DISPLAY'])[_0x4e568b(0x1c5)]('number');}),test(_0x5e54ed(0x1b8),async()=>{const _0x2790ef=_0x5e54ed,{PAGINATION:_0x5c05ae}=await import(_0x2790ef(0x1d3));expect(_0x5c05ae)[_0x2790ef(0x1cd)](),expect(_0x5c05ae['PAGE_SIZE'])['toBeDefined'](),expect(_0x5c05ae[_0x2790ef(0x1af)])[_0x2790ef(0x1cd)](),expect(typeof _0x5c05ae['PAGE_SIZE'])[_0x2790ef(0x1c5)](_0x2790ef(0x1dc)),expect(typeof _0x5c05ae[_0x2790ef(0x1af)])[_0x2790ef(0x1c5)](_0x2790ef(0x1dc));}),test('WS_MESSAGE_TYPE\x20includes\x20message\x20events',async()=>{const _0x419bfd=_0x5e54ed,{WS_MESSAGE_TYPE:_0x337acd}=await import('../../config/constants.js');expect(_0x337acd)['toBeDefined'](),expect(_0x337acd[_0x419bfd(0x1d5)])[_0x419bfd(0x1c5)](_0x419bfd(0x1e9)),expect(_0x337acd[_0x419bfd(0x1c2)])['toBe']('agent_mode_changed'),expect(_0x337acd['EXECUTION_STOPPED'])[_0x419bfd(0x1c5)](_0x419bfd(0x1b4));});}),describe('Message\x20Management\x20-\x20Integration',()=>{const _0x322149=a0_0x35d151;test(_0x322149(0x1bd),async()=>{const _0x3a01bd=_0x322149,{useMessages:_0x8ee0c9}=await import('../../state/useMessages.js'),{SessionManager:_0x3f99ce}=await import('../../api/session.js'),{MessageRouter:_0x2f76b0}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x273eb3}=await import('../../api/websocket.js'),_0x5dcce0=new _0x3f99ce('localhost',0x1f90),_0xc175d3=new _0x273eb3('localhost',0x1f90),_0x31e502=new _0x2f76b0(_0xc175d3);expect(_0x5dcce0)['toBeDefined'](),expect(_0x31e502)[_0x3a01bd(0x1cd)](),expect(typeof _0x8ee0c9)[_0x3a01bd(0x1c5)](_0x3a01bd(0x1b1));}),test('Full message management stack can be imported together',async()=>{const _0x151751=_0x322149,[_0x2ae9eb,_0x18c95c,_0x3eb0f2,_0x231424,_0x216c9c]=await Promise['all']([import(_0x151751(0x1d3)),import(_0x151751(0x1db)),import(_0x151751(0x1bb)),import(_0x151751(0x1d9)),import('../../state/useMessages.js')]);expect(_0x2ae9eb[_0x151751(0x1da)])['toBeDefined'](),expect(_0x2ae9eb[_0x151751(0x1e4)])[_0x151751(0x1cd)](),expect(_0x2ae9eb[_0x151751(0x1e0)])['toBeDefined'](),expect(_0x18c95c['SessionManager'])[_0x151751(0x1cd)](),expect(_0x3eb0f2['WebSocketManager'])[_0x151751(0x1cd)](),expect(_0x231424[_0x151751(0x1cf)])['toBeDefined'](),expect(_0x216c9c['useMessages'])['toBeDefined']();});}),describe(a0_0x35d151(0x1df),()=>{const _0x4cf324=a0_0x35d151;test(_0x4cf324(0x1d6),async()=>{const _0x3e6067=_0x4cf324,{API_ENDPOINTS:_0x48a856}=await import(_0x3e6067(0x1d3));expect(_0x48a856[_0x3e6067(0x1b0)])[_0x3e6067(0x1cd)](),expect(_0x48a856[_0x3e6067(0x1b0)])['toBe'](_0x3e6067(0x1e1));}),test(_0x4cf324(0x1b7),async()=>{const _0x7e835=_0x4cf324,{API_ENDPOINTS:_0x482444}=await import('../../config/constants.js');expect(_0x482444[_0x7e835(0x1b0)])[_0x7e835(0x1d0)](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x5bfea8=a0_0x4879,{useMessages:_0x5292ce}=await import(_0x5bfea8(0x1ec));expect(_0x5292ce[_0x5bfea8(0x1b2)])[_0x5bfea8(0x1c5)](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x5692e3=a0_0x4879,{useMessageCount:_0x417b3d}=await import('../../state/useMessages.js');expect(_0x417b3d[_0x5692e3(0x1b2)])[_0x5692e3(0x1c5)](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x38ae50=a0_0x4879,{MESSAGE_CONFIG:_0x219510}=await import(_0x38ae50(0x1d3));expect(_0x219510['MAX_MESSAGE_LENGTH'])['toBeGreaterThan'](0x0),expect(_0x219510['MAX_MESSAGE_LENGTH'])[_0x38ae50(0x1cb)](0x186a0),expect(_0x219510[_0x38ae50(0x1e7)])[_0x38ae50(0x1de)](0x0),expect(_0x219510['MAX_MESSAGES_DISPLAY'])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x2c5bb6=a0_0x4879,{PAGINATION:_0x1a8b73}=await import('../../config/constants.js');expect(_0x1a8b73['PAGE_SIZE'])[_0x2c5bb6(0x1de)](0x0),expect(_0x1a8b73['PAGE_SIZE'])['toBeLessThanOrEqual'](0x3e8),expect(_0x1a8b73[_0x2c5bb6(0x1af)])['toBeGreaterThanOrEqual'](_0x1a8b73['PAGE_SIZE']);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x4a381e=a0_0x4879,{MESSAGE_ROLE:_0x32000e}=await import(_0x4a381e(0x1d3));expect(_0x32000e['USER'])['toBe'](_0x32000e[_0x4a381e(0x1c0)][_0x4a381e(0x1b6)]()),expect(_0x32000e[_0x4a381e(0x1ad)])['toBe'](_0x32000e['ASSISTANT'][_0x4a381e(0x1b6)]()),expect(_0x32000e['SYSTEM'])[_0x4a381e(0x1c5)](_0x32000e[_0x4a381e(0x1dd)]['toLowerCase']());});}),describe('Message\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{const _0x4cf016=a0_0x35d151;test(_0x4cf016(0x1b3),async()=>{const _0x451f1f=_0x4cf016,{MessageRouter:_0x2fc6fb}=await import(_0x451f1f(0x1d9)),{WebSocketManager:_0xf15a54}=await import(_0x451f1f(0x1bb)),{WS_MESSAGE_TYPE:_0xa2d45b}=await import('../../config/constants.js'),_0x28fe5b=new _0xf15a54(_0x451f1f(0x1d4),0x1f90),_0xa74c5e=new _0x2fc6fb(_0x28fe5b);expect(_0xa74c5e['hasHandler'](_0xa2d45b[_0x451f1f(0x1d5)]))[_0x451f1f(0x1c5)](!![]),expect(_0xa74c5e['hasHandler'](_0xa2d45b['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe('Message\x20Management\x20-\x20Error\x20Handling',()=>{test('MESSAGE_CONFIG\x20enforces\x20maximum\x20message\x20length',async()=>{const _0x545b19=a0_0x4879,{MESSAGE_CONFIG:_0x2ad4d1}=await import('../../config/constants.js');expect(_0x2ad4d1['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(typeof _0x2ad4d1['MAX_MESSAGE_LENGTH'])[_0x545b19(0x1c5)](_0x545b19(0x1dc));const _0x2271cb='a'['repeat'](_0x2ad4d1[_0x545b19(0x1c1)]+0x1);expect(_0x2271cb['length'])['toBeGreaterThan'](_0x2ad4d1[_0x545b19(0x1c1)]);}),test('MESSAGE_CONFIG\x20enforces\x20maximum\x20display\x20messages',async()=>{const _0x5509ca=a0_0x4879,{MESSAGE_CONFIG:_0x452af9}=await import(_0x5509ca(0x1d3));expect(_0x452af9['MAX_MESSAGES_DISPLAY'])['toBeDefined'](),expect(typeof _0x452af9['MAX_MESSAGES_DISPLAY'])['toBe']('number'),expect(_0x452af9['MAX_MESSAGES_DISPLAY'])[_0x5509ca(0x1de)](0x0);});}),describe(a0_0x35d151(0x1ce),()=>{const _0x2c7911=a0_0x35d151;test(_0x2c7911(0x1d7),async()=>{const _0x5434b3=_0x2c7911,{PAGINATION:_0x1217b5}=await import(_0x5434b3(0x1d3)),_0x29cb14=0x0,_0x19c5e1=_0x29cb14*_0x1217b5[_0x5434b3(0x1bc)];expect(_0x19c5e1)[_0x5434b3(0x1c5)](0x0);const _0xe42031=0x1,_0x1c9896=_0xe42031*_0x1217b5[_0x5434b3(0x1bc)];expect(_0x1c9896)[_0x5434b3(0x1c5)](_0x1217b5['PAGE_SIZE']);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0xdb3ee2=_0x2c7911,{PAGINATION:_0x57bae4}=await import('../../config/constants.js'),_0x59baab=0x3e8,_0x2dc865=Math['min'](_0x59baab,_0x57bae4['MAX_PAGE_SIZE']);expect(_0x2dc865)[_0xdb3ee2(0x1cb)](_0x57bae4['MAX_PAGE_SIZE']);});});
1
+ function a0_0xf810(_0x3a7057,_0xf256b6){_0x3a7057=_0x3a7057-0x19a;const _0x1d550b=a0_0x1d55();let _0xf81090=_0x1d550b[_0x3a7057];if(a0_0xf810['eQrMzs']===undefined){var _0x7aa2c0=function(_0x23732d){const _0x4b9b5d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x437494='',_0x183927='';for(let _0x2cb69c=0x0,_0x336f54,_0x3f8b84,_0x5eb937=0x0;_0x3f8b84=_0x23732d['charAt'](_0x5eb937++);~_0x3f8b84&&(_0x336f54=_0x2cb69c%0x4?_0x336f54*0x40+_0x3f8b84:_0x3f8b84,_0x2cb69c++%0x4)?_0x437494+=String['fromCharCode'](0xff&_0x336f54>>(-0x2*_0x2cb69c&0x6)):0x0){_0x3f8b84=_0x4b9b5d['indexOf'](_0x3f8b84);}for(let _0x31a865=0x0,_0x360b42=_0x437494['length'];_0x31a865<_0x360b42;_0x31a865++){_0x183927+='%'+('00'+_0x437494['charCodeAt'](_0x31a865)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x183927);};a0_0xf810['GGRGna']=_0x7aa2c0,a0_0xf810['WtDjWs']={},a0_0xf810['eQrMzs']=!![];}const _0xfa13d2=_0x1d550b[0x0],_0x2101f7=_0x3a7057+_0xfa13d2,_0x32ea05=a0_0xf810['WtDjWs'][_0x2101f7];return!_0x32ea05?(_0xf81090=a0_0xf810['GGRGna'](_0xf81090),a0_0xf810['WtDjWs'][_0x2101f7]=_0xf81090):_0xf81090=_0x32ea05,_0xf81090;}const a0_0xb6adff=a0_0xf810;(function(_0x237e09,_0x23f593){const _0x5d3f1e=a0_0xf810,_0x1eb036=_0x237e09();while(!![]){try{const _0x50d7f7=parseInt(_0x5d3f1e(0x1c3))/0x1+-parseInt(_0x5d3f1e(0x1b2))/0x2+parseInt(_0x5d3f1e(0x1c0))/0x3+-parseInt(_0x5d3f1e(0x1d1))/0x4*(-parseInt(_0x5d3f1e(0x1c5))/0x5)+parseInt(_0x5d3f1e(0x1ac))/0x6+-parseInt(_0x5d3f1e(0x1d0))/0x7*(-parseInt(_0x5d3f1e(0x1a2))/0x8)+parseInt(_0x5d3f1e(0x1b6))/0x9*(-parseInt(_0x5d3f1e(0x1c4))/0xa);if(_0x50d7f7===_0x23f593)break;else _0x1eb036['push'](_0x1eb036['shift']());}catch(_0x3deb27){_0x1eb036['push'](_0x1eb036['shift']());}}}(a0_0x1d55,0xe9870));function a0_0x1d55(){const _0x25fbc3=['u1Ltvevnx05pveLgsunbveLptG','ywDLBNqTCMvZCg9UC2u','BgvUz3rO','ndeXmdnRuu56s2e','u2vZC2LVBK1HBMfNzxi','tuvtu0fhrv9uwvbfignVBNn0yw50CYbHCMuGzgvMAw5Lza','BNvTyMvY','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','zgvMyxvSDa','C3LZDgvT','l2fWAs9VCMnOzxn0CMf0B3i','tufyx01fu1nbr0vFtevor1ri','vvnfuL9nrvntquDf','ndC0mZi0ovDgrNfswG','quDftLrFtu9erv9dsefor0ve','yxnZAxn0yw50','mtGXnJi3ng50BKfeCG','odC3mgzQBhr6AG','mtbkEeLVz0m','u1Ltvevn','quDftLrFuKvtue9ou0u','Dg9czq','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','vvnfuG','DxnLCI1TzxnZywDL','qvntsvnuqu5u','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','uefhrv9tsvPf','tuvtu0fhrv9dt05gsuC','mtq4mZn5Ew5ksNK','mti3mdGYofflwvvOsa','twvZC2fNzsbnyw5Hz2vTzw50ic0GrxjYB3iGsgfUzgXPBMC','Dg9czuDYzwf0zxjuAgfU','Bg9JywXOB3n0','tufyx01fu1nbr0vtx0rju1bmqvK','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','t1jdsevtvfjbve9s','v2vIu29JA2v0twfUywDLCG','twvZC2fNzvjVDxrLCG','BwvZC2fNzv9HzgrLza','t3jJAgvZDhjHDg9YigvUzhbVAw50ignHBIbIzsb1C2vKigzVCIbTzxnZywDLig9WzxjHDgLVBNm','ntm5mKXKu3fXwa','AgfZsgfUzgXLCG','Dg9czurLzMLUzwq','Dg9czuXLC3nuAgfUt3jfCxvHBa','tuvtu0fhrv9uwvbf','twvZC2fNzsbbueKGzw5KCg9PBNrZigzVBgXVDYbsrvnuzNvSihbHDhrLCM4','BwLU','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','ywDLBNrFBw9Kzv9JAgfUz2vK','tufyx1bbr0vFu0LArq','nde5mtyYnhv5t3LWsa','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','DxnLtwvZC2fNzunVDw50ihjLDhvYBNmGzxHWzwn0zwqGAw50zxjMywnLihnOyxbL','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZifzHBgLKyxrPB24','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','tuvtu0fhrv9st0XfignVBNn0yw50CYbHCMuGzgvMAw5Lza','mJm5ntu4ogLRz2rlDq'];a0_0x1d55=function(){return _0x25fbc3;};return a0_0x1d55();}import{describe,test,expect}from'@jest/globals';describe('Message\x20Management\x20-\x20Imports',()=>{test('useMessages hook can be imported',async()=>{const _0x295774=a0_0xf810,{useMessages:_0x437494}=await import(_0x295774(0x1cd));expect(_0x437494)['toBeDefined'](),expect(typeof _0x437494)['toBe']('function');}),test('useMessages is default export',async()=>{const _0x5dc61d=a0_0xf810,module=await import(_0x5dc61d(0x1cd));expect(module[_0x5dc61d(0x1bb)])[_0x5dc61d(0x1a4)](),expect(typeof module['default'])['toBe']('function'),expect(module[_0x5dc61d(0x1bb)])['toBe'](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const {useMessageCount:_0x183927}=await import('../../state/useMessages.js');expect(_0x183927)['toBeDefined'](),expect(typeof _0x183927)['toBe']('function');});}),describe('Message\x20Management\x20-\x20Constants',()=>{const _0x5b1155=a0_0xf810;test(_0x5b1155(0x1b1),async()=>{const _0x565866=_0x5b1155,{MESSAGE_ROLE:_0x2cb69c}=await import('../../config/constants.js');expect(_0x2cb69c)['toBeDefined'](),expect(_0x2cb69c[_0x565866(0x1ca)])[_0x565866(0x1c8)]('user'),expect(_0x2cb69c[_0x565866(0x1cc)])['toBe'](_0x565866(0x1c2)),expect(_0x2cb69c['SYSTEM'])[_0x565866(0x1c8)](_0x565866(0x1bc));}),test(_0x5b1155(0x1b8),async()=>{const _0x1e0eca=_0x5b1155,{MESSAGE_TYPE:_0x336f54}=await import('../../config/constants.js');expect(_0x336f54)[_0x1e0eca(0x1a4)](),expect(_0x336f54[_0x1e0eca(0x1bf)])['toBe'](_0x1e0eca(0x1cb)),expect(_0x336f54[_0x1e0eca(0x1c7)])['toBe'](_0x1e0eca(0x1b4)),expect(_0x336f54[_0x1e0eca(0x1b3)])[_0x1e0eca(0x1c8)]('system-notification');}),test('MESSAGE_CONFIG\x20constants\x20are\x20defined',async()=>{const _0x56a092=_0x5b1155,{MESSAGE_CONFIG:_0x3f8b84}=await import('../../config/constants.js');expect(_0x3f8b84)['toBeDefined'](),expect(_0x3f8b84['MAX_MESSAGE_LENGTH'])[_0x56a092(0x1a4)](),expect(_0x3f8b84[_0x56a092(0x19b)])['toBeDefined'](),expect(typeof _0x3f8b84[_0x56a092(0x1be)])['toBe'](_0x56a092(0x1b9)),expect(typeof _0x3f8b84[_0x56a092(0x19b)])[_0x56a092(0x1c8)](_0x56a092(0x1b9));}),test('PAGINATION\x20constants\x20are\x20defined',async()=>{const _0xaeeebe=_0x5b1155,{PAGINATION:_0x5eb937}=await import(_0xaeeebe(0x1b0));expect(_0x5eb937)['toBeDefined'](),expect(_0x5eb937[_0xaeeebe(0x1ce)])['toBeDefined'](),expect(_0x5eb937[_0xaeeebe(0x1ab)])['toBeDefined'](),expect(typeof _0x5eb937['PAGE_SIZE'])['toBe'](_0xaeeebe(0x1b9)),expect(typeof _0x5eb937['MAX_PAGE_SIZE'])['toBe']('number');}),test('WS_MESSAGE_TYPE\x20includes\x20message\x20events',async()=>{const _0x5db810=_0x5b1155,{WS_MESSAGE_TYPE:_0x31a865}=await import('../../config/constants.js');expect(_0x31a865)['toBeDefined'](),expect(_0x31a865['MESSAGE_ADDED'])['toBe'](_0x5db810(0x1a0)),expect(_0x31a865[_0x5db810(0x1c1)])[_0x5db810(0x1c8)](_0x5db810(0x1aa)),expect(_0x31a865['EXECUTION_STOPPED'])[_0x5db810(0x1c8)]('execution_stopped');});}),describe('Message\x20Management\x20-\x20Integration',()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x3c2a60=a0_0xf810,{useMessages:_0x360b42}=await import(_0x3c2a60(0x1cd)),{SessionManager:_0x48dbfd}=await import('../../api/session.js'),{MessageRouter:_0x831dbe}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x5e6161}=await import('../../api/websocket.js'),_0x5eb323=new _0x48dbfd(_0x3c2a60(0x19a),0x1f90),_0x16ea1f=new _0x5e6161('localhost',0x1f90),_0x3c2bba=new _0x831dbe(_0x16ea1f);expect(_0x5eb323)[_0x3c2a60(0x1a4)](),expect(_0x3c2bba)['toBeDefined'](),expect(typeof _0x360b42)['toBe']('function');}),test('Full message management stack can be imported together',async()=>{const _0x7d19c=a0_0xf810,[_0x3c8df1,_0x15bf25,_0x5af6c0,_0x4635fb,_0x20a905]=await Promise['all']([import(_0x7d19c(0x1b0)),import('../../api/session.js'),import('../../api/websocket.js'),import(_0x7d19c(0x1ad)),import(_0x7d19c(0x1cd))]);expect(_0x3c8df1['MESSAGE_ROLE'])[_0x7d19c(0x1a4)](),expect(_0x3c8df1[_0x7d19c(0x1a6)])['toBeDefined'](),expect(_0x3c8df1[_0x7d19c(0x1cf)])[_0x7d19c(0x1a4)](),expect(_0x15bf25[_0x7d19c(0x1b7)])[_0x7d19c(0x1a4)](),expect(_0x5af6c0[_0x7d19c(0x19e)])[_0x7d19c(0x1a4)](),expect(_0x4635fb[_0x7d19c(0x19f)])['toBeDefined'](),expect(_0x20a905['useMessages'])[_0x7d19c(0x1a4)]();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x48abcb=a0_0xf810;test(_0x48abcb(0x1a1),async()=>{const _0x15fb4e=_0x48abcb,{API_ENDPOINTS:_0x4e1201}=await import('../../config/constants.js');expect(_0x4e1201['ORCHESTRATOR'])['toBeDefined'](),expect(_0x4e1201[_0x15fb4e(0x19d)])['toBe'](_0x15fb4e(0x1bd));}),test(_0x48abcb(0x1a7),async()=>{const {API_ENDPOINTS:_0x1b99d6}=await import('../../config/constants.js');expect(_0x1b99d6['ORCHESTRATOR'])['toMatch'](/^\/api\//);});}),describe(a0_0xb6adff(0x19c),()=>{const _0x2f72b1=a0_0xb6adff;test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x20f663=a0_0xf810,{useMessages:_0xa12096}=await import('../../state/useMessages.js');expect(_0xa12096['length'])[_0x20f663(0x1c8)](0x3);}),test(_0x2f72b1(0x1ae),async()=>{const _0xfbb452=_0x2f72b1,{useMessageCount:_0x219cd6}=await import(_0xfbb452(0x1cd));expect(_0x219cd6[_0xfbb452(0x1b5)])['toBe'](0x1);});}),describe(a0_0xb6adff(0x1af),()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x57f3b0=a0_0xf810,{MESSAGE_CONFIG:_0x5162cc}=await import('../../config/constants.js');expect(_0x5162cc[_0x57f3b0(0x1be)])[_0x57f3b0(0x1d3)](0x0),expect(_0x5162cc[_0x57f3b0(0x1be)])[_0x57f3b0(0x1a5)](0x186a0),expect(_0x5162cc['MAX_MESSAGES_DISPLAY'])[_0x57f3b0(0x1d3)](0x0),expect(_0x5162cc[_0x57f3b0(0x19b)])[_0x57f3b0(0x1a5)](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x2f4bea=a0_0xf810,{PAGINATION:_0x5732f1}=await import('../../config/constants.js');expect(_0x5732f1[_0x2f4bea(0x1ce)])[_0x2f4bea(0x1d3)](0x0),expect(_0x5732f1['PAGE_SIZE'])[_0x2f4bea(0x1a5)](0x3e8),expect(_0x5732f1[_0x2f4bea(0x1ab)])['toBeGreaterThanOrEqual'](_0x5732f1['PAGE_SIZE']);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x149232=a0_0xf810,{MESSAGE_ROLE:_0x422148}=await import(_0x149232(0x1b0));expect(_0x422148[_0x149232(0x1ca)])[_0x149232(0x1c8)](_0x422148['USER']['toLowerCase']()),expect(_0x422148[_0x149232(0x1cc)])['toBe'](_0x422148[_0x149232(0x1cc)]['toLowerCase']()),expect(_0x422148[_0x149232(0x1c6)])[_0x149232(0x1c8)](_0x422148[_0x149232(0x1c6)]['toLowerCase']());});}),describe(a0_0xb6adff(0x1a9),()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0x345296=a0_0xf810,{MessageRouter:_0x607ca5}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x22deaa}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x5d7735}=await import('../../config/constants.js'),_0x269aa3=new _0x22deaa('localhost',0x1f90),_0x4b15a4=new _0x607ca5(_0x269aa3);expect(_0x4b15a4[_0x345296(0x1a3)](_0x5d7735['MESSAGE_ADDED']))[_0x345296(0x1c8)](!![]),expect(_0x4b15a4[_0x345296(0x1a3)](_0x5d7735['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe(a0_0xb6adff(0x1d2),()=>{const _0x3fd8dc=a0_0xb6adff;test(_0x3fd8dc(0x1ba),async()=>{const _0x17394c=_0x3fd8dc,{MESSAGE_CONFIG:_0x2b8b7e}=await import(_0x17394c(0x1b0));expect(_0x2b8b7e[_0x17394c(0x1be)])[_0x17394c(0x1a4)](),expect(typeof _0x2b8b7e['MAX_MESSAGE_LENGTH'])[_0x17394c(0x1c8)]('number');const _0x2e53c4='a'['repeat'](_0x2b8b7e['MAX_MESSAGE_LENGTH']+0x1);expect(_0x2e53c4[_0x17394c(0x1b5)])[_0x17394c(0x1d3)](_0x2b8b7e[_0x17394c(0x1be)]);}),test('MESSAGE_CONFIG\x20enforces\x20maximum\x20display\x20messages',async()=>{const _0x13b875=_0x3fd8dc,{MESSAGE_CONFIG:_0x536eb7}=await import(_0x13b875(0x1b0));expect(_0x536eb7['MAX_MESSAGES_DISPLAY'])['toBeDefined'](),expect(typeof _0x536eb7[_0x13b875(0x19b)])['toBe']('number'),expect(_0x536eb7['MAX_MESSAGES_DISPLAY'])[_0x13b875(0x1d3)](0x0);});}),describe(a0_0xb6adff(0x1c9),()=>{test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x4b7311=a0_0xf810,{PAGINATION:_0x2099d4}=await import(_0x4b7311(0x1b0)),_0x53c2f1=0x0,_0x1a9eba=_0x53c2f1*_0x2099d4['PAGE_SIZE'];expect(_0x1a9eba)['toBe'](0x0);const _0x2efdcb=0x1,_0x33decd=_0x2efdcb*_0x2099d4[_0x4b7311(0x1ce)];expect(_0x33decd)[_0x4b7311(0x1c8)](_0x2099d4[_0x4b7311(0x1ce)]);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0x17af94=a0_0xf810,{PAGINATION:_0x4aa290}=await import('../../config/constants.js'),_0x14c8f4=0x3e8,_0x9fa545=Math[_0x17af94(0x1a8)](_0x14c8f4,_0x4aa290['MAX_PAGE_SIZE']);expect(_0x9fa545)[_0x17af94(0x1a5)](_0x4aa290['MAX_PAGE_SIZE']);});});
@@ -1 +1 @@
1
- function a0_0x2327(_0x5b5d62,_0x1922b7){_0x5b5d62=_0x5b5d62-0x1d1;const _0x46eb15=a0_0x46eb();let _0x2327c3=_0x46eb15[_0x5b5d62];if(a0_0x2327['OHzWoJ']===undefined){var _0x4b7139=function(_0x43cabe){const _0x1c3d0f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f9aed='',_0x195e40='';for(let _0x383d10=0x0,_0x35bf26,_0x340e51,_0x3108cd=0x0;_0x340e51=_0x43cabe['charAt'](_0x3108cd++);~_0x340e51&&(_0x35bf26=_0x383d10%0x4?_0x35bf26*0x40+_0x340e51:_0x340e51,_0x383d10++%0x4)?_0x2f9aed+=String['fromCharCode'](0xff&_0x35bf26>>(-0x2*_0x383d10&0x6)):0x0){_0x340e51=_0x1c3d0f['indexOf'](_0x340e51);}for(let _0x13e248=0x0,_0x7d6d9=_0x2f9aed['length'];_0x13e248<_0x7d6d9;_0x13e248++){_0x195e40+='%'+('00'+_0x2f9aed['charCodeAt'](_0x13e248)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x195e40);};a0_0x2327['uNWdRY']=_0x4b7139,a0_0x2327['PxhuYV']={},a0_0x2327['OHzWoJ']=!![];}const _0x24043d=_0x46eb15[0x0],_0x2e6990=_0x5b5d62+_0x24043d,_0x1d3a6d=a0_0x2327['PxhuYV'][_0x2e6990];return!_0x1d3a6d?(_0x2327c3=a0_0x2327['uNWdRY'](_0x2327c3),a0_0x2327['PxhuYV'][_0x2e6990]=_0x2327c3):_0x2327c3=_0x1d3a6d,_0x2327c3;}function a0_0x46eb(){const _0x2a11c0=['C3vJy2vZCW','l2fWAs90B29SCW','mJu3nZuXnKffrKXkqG','Dg9czq','yw5HBhL6zv9JB2rL','BgvUz3rO','vg9VBcbYzxn1BhrZignHBIbIzsbZDg9YzwqGyNKGzxHLy3v0Aw9UieLe','y2f0zwDVCNK','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','vg9VBhmGtwfUywDLBwvUDcaTifDLyLnVy2TLDcbfDMvUDcbiyw5KBgvYCW','Dg9nyxrJAa','DxnLvg9VBhmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','vg9VBhmGtwfUywDLBwvUDcaTieLTCg9YDhm','ugvYzM9YBsbZDgf0AwmGy29KzsbHBMfSExnPCW','D3jPDgvFzMLSzq','AgfZ','u2vZC2LVBK1HBMfNzxi','zMLSzsbJB250zw50CW','otGZmJeZAKPzv3bP','v3jPDguGzgf0ysb0BYbHigzPBgu','ve9ptf9dqvrfr09swsb2ywX1zxmGBwf0y2GGzxHWzwn0zwqGzM9YBwf0','A2v5CW','Dg9czurLzMLUzwq','rxHLy3v0Aw9Uihn0yxrLignHBIb0CMfJAYbTDwX0AxbSzsb0B29SCW','yw5HBhL6zq','zw5HyMXLza','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2f0zwDVCML6yxrPB24','ve9ptfm','D2vIx3nLyxjJAa','Dg9dB250ywLU','zxHLyY0Y','BwfW','mJeYmdu2nunhA1v0Aq','z2v0','BM93','qvvut01bveLptG','ndqWmJuWmffzzLHPBa','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','vvrjteLuwq','vg9VBhmGtwfUywDLBwvUDcaTienHDgvNB3j5ienVDw50CW','DxnLvg9VBhmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','zxHLy3v0zv9JB21Tyw5K','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','zgvZy3jPChrPB24','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','zNvUy3rPB24','BMfTzq','C2v0','odaZodGYnevvAxPxrG','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGu2vHCMnO','l2fWAs9VCMnOzxn0CMf0B3i','t3jJAgvZDhjHDg9YigvUzhbVAw50igLZihvZzwqGzM9YihrVB2WGB3bLCMf0Aw9UCW','vg9VBhmGtwfUywDLBwvUDcaTieHVB2SGsw50zxjMywnLifzLCMLMAwnHDgLVBG','vg9VBhmGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG','mZy4ntmWofnIDuL1Eq','zMLSDgvY','DxnLvg9VBhm','ve9ptf9dqvrfr09swsb2ywX1zxmGyxjLigXVD2vYy2fZzq','Bg9JywXOB3n0','AxnZDwvZ','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','DgvYBwLUywW','C2L6zq','Dg9mB3DLCKnHC2u','u1Ltvevn','zxHLyY0X','lI4VlI4VyxbPl3nLC3nPB24UANm','twvZC2fNzvjVDxrLCG','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CW','t1jdsevtvfjbve9s','mta2mdq4Dxr0EvPt','AgfZsgfUzgXLCG','DMfSDwvZ','zgf0yq','ve9ptf9dqvrfr09swsbJyw4GyMuGDxnLzcb0BYbMAwX0zxiGDg9VBhmGyNKGy2f0zwDVCNK','qu5btfLtsvm','Dg9fCxvHBa','CMvHzf9MAwXL','ywrK','q09mtefct1jbveLptG'];a0_0x46eb=function(){return _0x2a11c0;};return a0_0x46eb();}const a0_0x4bfcb8=a0_0x2327;(function(_0x5ea545,_0x2fece2){const _0x3b712d=a0_0x2327,_0x3c9bcb=_0x5ea545();while(!![]){try{const _0x3452ed=parseInt(_0x3b712d(0x1ec))/0x1+parseInt(_0x3b712d(0x1dc))/0x2+parseInt(_0x3b712d(0x1f8))/0x3+-parseInt(_0x3b712d(0x21a))/0x4+parseInt(_0x3b712d(0x216))/0x5+-parseInt(_0x3b712d(0x1d6))/0x6+parseInt(_0x3b712d(0x208))/0x7;if(_0x3452ed===_0x2fece2)break;else _0x3c9bcb['push'](_0x3c9bcb['shift']());}catch(_0x187282){_0x3c9bcb['push'](_0x3c9bcb['shift']());}}}(a0_0x46eb,0xe38b1));import{describe,test,expect}from'@jest/globals';describe(a0_0x4bfcb8(0x202),()=>{test('useTools hook can be imported',async()=>{const _0x29b5ef=a0_0x2327,{useTools:_0x2f9aed}=await import('../../state/useTools.js');expect(_0x2f9aed)[_0x29b5ef(0x20c)](),expect(typeof _0x2f9aed)[_0x29b5ef(0x1f9)]('function');}),test('useTools is default export',async()=>{const _0x1c2290=a0_0x2327,module=await import(_0x1c2290(0x1fe));expect(module['default'])[_0x1c2290(0x20c)](),expect(typeof module['default'])['toBe'](_0x1c2290(0x1d3)),expect(module['default'])['toBe'](module['useTools']);});}),describe(a0_0x4bfcb8(0x1ea),()=>{const _0x43bf6e=a0_0x4bfcb8;test('TOOL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x56fead=a0_0x2327,{TOOL_CATEGORY:_0x195e40}=await import('../../config/constants.js');expect(_0x195e40)['toBeDefined'](),expect(_0x195e40['SYSTEM'])['toBeDefined'](),expect(_0x195e40[_0x56fead(0x219)])['toBeDefined'](),expect(_0x195e40[_0x56fead(0x1f1)])[_0x56fead(0x20c)](),expect(_0x195e40['UTILITY'])[_0x56fead(0x20c)](),expect(_0x195e40[_0x56fead(0x1f5)])[_0x56fead(0x20c)](),expect(_0x195e40['AI'])[_0x56fead(0x20c)]();}),test(_0x43bf6e(0x1df),async()=>{const _0x5598ef=_0x43bf6e,{TOOL_CATEGORY:_0x383d10}=await import(_0x5598ef(0x220));expect(_0x383d10['SYSTEM'])[_0x5598ef(0x1f9)](_0x383d10[_0x5598ef(0x1e6)][_0x5598ef(0x1e5)]()),expect(_0x383d10[_0x5598ef(0x219)])['toBe'](_0x383d10[_0x5598ef(0x219)]['toLowerCase']()),expect(_0x383d10['ANALYSIS'])[_0x5598ef(0x1f9)](_0x383d10[_0x5598ef(0x1f1)]['toLowerCase']()),expect(_0x383d10[_0x5598ef(0x21c)])[_0x5598ef(0x1f9)](_0x383d10[_0x5598ef(0x21c)]['toLowerCase']());}),test('Tools\x20API\x20endpoint\x20is\x20defined',async()=>{const _0x47eacc=_0x43bf6e,{API_ENDPOINTS:_0x35bf26}=await import(_0x47eacc(0x220));expect(_0x35bf26['TOOLS'])['toBeDefined'](),expect(_0x35bf26['TOOLS'])['toBe']('/api/tools');}),test(_0x43bf6e(0x1d9),async()=>{const _0x224bc7=_0x43bf6e,{API_ENDPOINTS:_0x340e51}=await import('../../config/constants.js');expect(_0x340e51[_0x224bc7(0x1eb)])['toBeDefined'](),expect(_0x340e51[_0x224bc7(0x1eb)])[_0x224bc7(0x1f9)](_0x224bc7(0x1d8));});}),describe('Tools\x20Management\x20-\x20Integration',()=>{const _0x1485cb=a0_0x4bfcb8;test(_0x1485cb(0x21e),async()=>{const _0xd46c09=_0x1485cb,{useTools:_0x3108cd}=await import(_0xd46c09(0x1fe)),{SessionManager:_0x13e248}=await import(_0xd46c09(0x1e8)),{MessageRouter:_0x7d6d9}=await import(_0xd46c09(0x21b)),{WebSocketManager:_0x4bcc1f}=await import('../../api/websocket.js'),_0x29a83e=new _0x13e248(_0xd46c09(0x1e0),0x1f90),_0x2aa9fb=new _0x4bcc1f(_0xd46c09(0x1e0),0x1f90),_0x457ac6=new _0x7d6d9(_0x2aa9fb);expect(_0x29a83e)[_0xd46c09(0x20c)](),expect(_0x457ac6)[_0xd46c09(0x20c)](),expect(typeof _0x3108cd)[_0xd46c09(0x1f9)](_0xd46c09(0x1d3));}),test('Full tools management stack can be imported together',async()=>{const _0x3344a1=_0x1485cb,[_0x1343b4,_0x4d8dae,_0x146abc,_0x30616c,_0x341eb6]=await Promise['all']([import('../../config/constants.js'),import('../../api/session.js'),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import(_0x3344a1(0x1fe))]);expect(_0x1343b4['TOOL_CATEGORY'])[_0x3344a1(0x20c)](),expect(_0x1343b4['API_ENDPOINTS'])[_0x3344a1(0x20c)](),expect(_0x4d8dae[_0x3344a1(0x206)])['toBeDefined'](),expect(_0x146abc['WebSocketManager'])['toBeDefined'](),expect(_0x30616c[_0x3344a1(0x1e9)])['toBeDefined'](),expect(_0x341eb6[_0x3344a1(0x1de)])[_0x3344a1(0x20c)]();});}),describe(a0_0x4bfcb8(0x1db),()=>{test('Tools\x20endpoint\x20follows\x20RESTful\x20pattern',async()=>{const _0x3d5533=a0_0x2327,{API_ENDPOINTS:_0x473fec}=await import(_0x3d5533(0x220));expect(_0x473fec[_0x3d5533(0x211)])['toMatch'](/^\/api\//),expect(_0x473fec['TOOLS'])['toBe'](_0x3d5533(0x1f7));}),test('Tool\x20operations\x20use\x20orchestrator\x20endpoint',async()=>{const _0x5e3b3d=a0_0x2327,{API_ENDPOINTS:_0x4556a0}=await import(_0x5e3b3d(0x220));expect(_0x4556a0['ORCHESTRATOR'])['toBeDefined'](),expect(_0x4556a0['ORCHESTRATOR'])[_0x5e3b3d(0x1f9)]('/api/orchestrator');});}),describe(a0_0x4bfcb8(0x1da),()=>{const _0x3003b2=a0_0x4bfcb8;test(_0x3003b2(0x201),async()=>{const _0x1561fc=_0x3003b2,{useTools:_0x5ebf3f}=await import('../../state/useTools.js');expect(_0x5ebf3f[_0x1561fc(0x1fb)])['toBe'](0x3);});}),describe('Tools\x20Management\x20-\x20Constants\x20Validation',()=>{const _0xc08f35=a0_0x4bfcb8;test('TOOL_CATEGORY\x20includes\x20all\x20major\x20categories',async()=>{const _0x3e5e61=a0_0x2327,{TOOL_CATEGORY:_0x44d08d}=await import(_0x3e5e61(0x220)),_0x5aada6=Object[_0x3e5e61(0x20b)](_0x44d08d);expect(_0x5aada6)['toContain'](_0x3e5e61(0x1e6)),expect(_0x5aada6)[_0x3e5e61(0x213)]('AUTOMATION'),expect(_0x5aada6)[_0x3e5e61(0x213)]('ANALYSIS'),expect(_0x5aada6)[_0x3e5e61(0x213)]('UTILITY'),expect(_0x5aada6)['toContain']('COLLABORATION'),expect(_0x5aada6)['toContain']('AI');}),test(_0xc08f35(0x20a),async()=>{const _0x65e8a3=_0xc08f35,{TOOL_CATEGORY:_0x1306cf}=await import(_0x65e8a3(0x220));expect(_0x1306cf[_0x65e8a3(0x1e6)])['toMatch'](/^[a-z_]+$/),expect(_0x1306cf[_0x65e8a3(0x219)])[_0x65e8a3(0x200)](/^[a-z_]+$/),expect(_0x1306cf[_0x65e8a3(0x1f1)])[_0x65e8a3(0x200)](/^[a-z_]+$/),expect(_0x1306cf['UTILITY'])[_0x65e8a3(0x200)](/^[a-z_]+$/);});}),describe(a0_0x4bfcb8(0x1ff),()=>{test('MessageRouter\x20has\x20tool\x20event\x20handlers\x20registered',async()=>{const _0x463099=a0_0x2327,{MessageRouter:_0x1ed6ae}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x416748}=await import(_0x463099(0x1d2)),_0x1b5944=new _0x416748(_0x463099(0x1e0),0x1f90),_0xe2e6b4=new _0x1ed6ae(_0x1b5944);expect(_0xe2e6b4[_0x463099(0x1ed)])[_0x463099(0x20c)](),expect(typeof _0xe2e6b4['hasHandler'])['toBe']('function');});}),describe(a0_0x4bfcb8(0x210),()=>{const _0x5adf39=a0_0x4bfcb8;test(_0x5adf39(0x1f0),async()=>{const _0x29aad2=_0x5adf39,{TOOL_CATEGORY:_0x2980f8}=await import(_0x29aad2(0x220)),_0x39eccd=[{'name':_0x29aad2(0x21f),'category':_0x2980f8[_0x29aad2(0x1e6)]},{'name':'terminal','category':_0x2980f8[_0x29aad2(0x1e6)]},{'name':_0x29aad2(0x1fa),'category':_0x2980f8[_0x29aad2(0x1f1)]},{'name':_0x29aad2(0x212),'category':_0x2980f8['UTILITY']},{'name':'ai_assistant','category':_0x2980f8['AI']}],_0x38fffc=_0x39eccd['filter'](_0x5a7af0=>_0x5a7af0[_0x29aad2(0x1fd)]===_0x2980f8['SYSTEM']),_0x27550b=_0x39eccd[_0x29aad2(0x1dd)](_0x22795e=>_0x22795e[_0x29aad2(0x1fd)]===_0x2980f8['ANALYSIS']),_0xa72265=_0x39eccd[_0x29aad2(0x1dd)](_0x4ebdd3=>_0x4ebdd3['category']===_0x2980f8[_0x29aad2(0x21c)]),_0x248b10=_0x39eccd[_0x29aad2(0x1dd)](_0x5d453f=>_0x5d453f[_0x29aad2(0x1fd)]===_0x2980f8['AI']);expect(_0x38fffc['length'])[_0x29aad2(0x1f9)](0x2),expect(_0x27550b[_0x29aad2(0x1fb)])[_0x29aad2(0x1f9)](0x1),expect(_0xa72265[_0x29aad2(0x1fb)])['toBe'](0x1),expect(_0x248b10['length'])['toBe'](0x1),expect(_0x38fffc[0x0][_0x29aad2(0x1d4)])[_0x29aad2(0x1f9)]('execute_command'),expect(_0x27550b[0x0][_0x29aad2(0x1d4)])[_0x29aad2(0x1f9)]('analyze_code');});}),describe(a0_0x4bfcb8(0x1d7),()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x12cb97=a0_0x2327,_0x4bf43b=[{'name':_0x12cb97(0x1f3),'description':'Read\x20contents\x20of\x20a\x20file'},{'name':'write_file','description':_0x12cb97(0x209)},{'name':'analyze_code','description':_0x12cb97(0x203)}],_0x4f3af7=_0x4081c3=>{const _0x3efa75=_0x12cb97,_0x44ee0d=_0x4081c3[_0x3efa75(0x1e5)]();return _0x4bf43b['filter'](_0x5a36e8=>_0x5a36e8['name']?.['toLowerCase']()['includes'](_0x44ee0d)||_0x5a36e8[_0x3efa75(0x1d1)]?.['toLowerCase']()['includes'](_0x44ee0d));},_0x4900a5=_0x4f3af7('file');expect(_0x4900a5['length'])[_0x12cb97(0x1f9)](0x2),expect(_0x4900a5[_0x12cb97(0x215)](_0x586e6d=>_0x586e6d[_0x12cb97(0x1d4)]))['toContain']('read_file'),expect(_0x4900a5['map'](_0x5d79b1=>_0x5d79b1['name']))['toContain'](_0x12cb97(0x204));const _0x7226b4=_0x4f3af7(_0x12cb97(0x20e));expect(_0x7226b4[_0x12cb97(0x1fb)])['toBe'](0x1),expect(_0x7226b4[0x0][_0x12cb97(0x1d4)])[_0x12cb97(0x1f9)]('analyze_code');});}),describe('Tools\x20Management\x20-\x20Execution\x20State\x20Tracking',()=>{const _0x268eb1=a0_0x4bfcb8;test(_0x268eb1(0x20d),async()=>{const _0x2c4c65=_0x268eb1,_0xbace48=new Set();_0xbace48['add'](_0x2c4c65(0x1f3)),_0xbace48[_0x2c4c65(0x1f4)](_0x2c4c65(0x1fa)),expect(_0xbace48[_0x2c4c65(0x205)](_0x2c4c65(0x1f3)))['toBe'](!![]),expect(_0xbace48[_0x2c4c65(0x205)]('analyze_code'))[_0x2c4c65(0x1f9)](!![]),expect(_0xbace48[_0x2c4c65(0x1e4)])['toBe'](0x2),_0xbace48['delete']('read_file'),expect(_0xbace48[_0x2c4c65(0x205)]('read_file'))['toBe'](![]),expect(_0xbace48[_0x2c4c65(0x205)](_0x2c4c65(0x1fa)))['toBe'](!![]),expect(_0xbace48['size'])[_0x2c4c65(0x1f9)](0x1);}),test(_0x268eb1(0x1fc),async()=>{const _0x4b5edf=_0x268eb1,_0x2fe26f=new Map();_0x2fe26f[_0x4b5edf(0x1d5)]('exec-1',{'success':!![],'data':_0x4b5edf(0x207)}),_0x2fe26f[_0x4b5edf(0x1d5)](_0x4b5edf(0x214),{'success':!![],'data':{'issues':[]}}),expect(_0x2fe26f['get'](_0x4b5edf(0x1e7)))[_0x4b5edf(0x20c)](),expect(_0x2fe26f[_0x4b5edf(0x217)]('exec-1')[_0x4b5edf(0x1f6)])['toBe'](!![]),expect(_0x2fe26f['get'](_0x4b5edf(0x1e7))[_0x4b5edf(0x1ef)])[_0x4b5edf(0x1f9)]('file\x20contents'),expect(_0x2fe26f[_0x4b5edf(0x217)](_0x4b5edf(0x214)))['toBeDefined'](),expect(_0x2fe26f[_0x4b5edf(0x217)]('exec-2')[_0x4b5edf(0x1ef)][_0x4b5edf(0x1e1)])[_0x4b5edf(0x1f2)]([]),expect(_0x2fe26f['size'])['toBe'](0x2);});}),describe(a0_0x4bfcb8(0x1e2),()=>{test('Tool\x20cache\x20supports\x20TTL-based\x20caching',async()=>{const _0xb5254a=a0_0x2327,_0x1b774b=0x927c0;let _0x19e74c=null,_0x3e7cba=0x0;const _0x31971a=[{'name':_0xb5254a(0x1f3)}];_0x19e74c=_0x31971a,_0x3e7cba=Date[_0xb5254a(0x218)]();const _0x244152=Date['now'](),_0x267ae1=_0x244152-_0x3e7cba<_0x1b774b;expect(_0x267ae1)['toBe'](!![]),expect(_0x19e74c)['toBe'](_0x31971a);}),test('Tool\x20cache\x20expires\x20after\x20TTL',async()=>{const _0x12dd27=a0_0x2327,_0x55a1e7=0x64;let _0xc0ea18=null,_0x18c6de=0x0;const _0x37db77=[{'name':_0x12dd27(0x1f3)}];_0xc0ea18=_0x37db77,_0x18c6de=Date[_0x12dd27(0x218)](),await new Promise(_0x1ec44a=>setTimeout(_0x1ec44a,0x96));const _0x21ecd0=Date[_0x12dd27(0x218)](),_0x313f32=_0x21ecd0-_0x18c6de<_0x55a1e7;expect(_0x313f32)[_0x12dd27(0x1f9)](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{test('Tools\x20can\x20be\x20filtered\x20by\x20multiple\x20criteria',async()=>{const _0xdbc048=a0_0x2327,{TOOL_CATEGORY:_0xef423f}=await import('../../config/constants.js'),_0x54b9a0=[{'name':'execute_command','category':_0xef423f['SYSTEM'],'enabled':!![]},{'name':_0xdbc048(0x1e3),'category':_0xef423f[_0xdbc048(0x1e6)],'enabled':![]},{'name':_0xdbc048(0x1fa),'category':_0xef423f[_0xdbc048(0x1f1)],'enabled':!![]}],_0x562e9e=_0x391a9a=>{const _0x5a9f0e=_0xdbc048;let _0x1b85b8=[..._0x54b9a0];return _0x391a9a[_0x5a9f0e(0x1fd)]&&(_0x1b85b8=_0x1b85b8[_0x5a9f0e(0x1dd)](_0x317142=>_0x317142['category']===_0x391a9a['category'])),_0x391a9a['enabled']!==undefined&&(_0x1b85b8=_0x1b85b8['filter'](_0x1a2166=>_0x1a2166[_0x5a9f0e(0x20f)]===_0x391a9a[_0x5a9f0e(0x20f)])),_0x1b85b8;},_0xdbec1=_0x562e9e({'category':_0xef423f[_0xdbc048(0x1e6)]});expect(_0xdbec1[_0xdbc048(0x1fb)])[_0xdbc048(0x1f9)](0x2);const _0x5e118c=_0x562e9e({'enabled':!![]});expect(_0x5e118c[_0xdbc048(0x1fb)])['toBe'](0x2);const _0x369875=_0x562e9e({'category':_0xef423f['SYSTEM'],'enabled':!![]});expect(_0x369875[_0xdbc048(0x1fb)])[_0xdbc048(0x1f9)](0x1),expect(_0x369875[0x0][_0xdbc048(0x1d4)])[_0xdbc048(0x1f9)](_0xdbc048(0x21f));});}),describe(a0_0x4bfcb8(0x21d),()=>{test('Category\x20counts\x20can\x20be\x20calculated',async()=>{const _0x15b3f3=a0_0x2327,{TOOL_CATEGORY:_0x346a3f}=await import(_0x15b3f3(0x220)),_0x589973=[{'name':'execute_command','category':_0x346a3f[_0x15b3f3(0x1e6)]},{'name':'terminal','category':_0x346a3f['SYSTEM']},{'name':'analyze_code','category':_0x346a3f['ANALYSIS']},{'name':'web_search','category':_0x346a3f['UTILITY']}],_0x4e1b2f=_0x1fc866=>{const _0x362b27=_0x15b3f3,_0x177ed6={};for(const _0x2380c8 of Object[_0x362b27(0x1ee)](_0x346a3f)){_0x177ed6[_0x2380c8]=_0x1fc866[_0x362b27(0x1dd)](_0x5048e1=>_0x5048e1['category']===_0x2380c8)['length'];}return _0x177ed6;},_0x22e45a=_0x4e1b2f(_0x589973);expect(_0x22e45a[_0x346a3f[_0x15b3f3(0x1e6)]])['toBe'](0x2),expect(_0x22e45a[_0x346a3f['ANALYSIS']])[_0x15b3f3(0x1f9)](0x1),expect(_0x22e45a[_0x346a3f[_0x15b3f3(0x21c)]])[_0x15b3f3(0x1f9)](0x1),expect(_0x22e45a[_0x346a3f[_0x15b3f3(0x219)]])['toBe'](0x0);});});
1
+ function a0_0x21f5(_0x3d568e,_0x2bdd36){_0x3d568e=_0x3d568e-0x103;const _0x5b8ffd=a0_0x5b8f();let _0x21f57d=_0x5b8ffd[_0x3d568e];if(a0_0x21f5['qyXgXr']===undefined){var _0x410efd=function(_0x20c02){const _0x28c961='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2c433e='',_0xe4750b='';for(let _0x5a69b4=0x0,_0x511556,_0x3c208e,_0x4a4bef=0x0;_0x3c208e=_0x20c02['charAt'](_0x4a4bef++);~_0x3c208e&&(_0x511556=_0x5a69b4%0x4?_0x511556*0x40+_0x3c208e:_0x3c208e,_0x5a69b4++%0x4)?_0x2c433e+=String['fromCharCode'](0xff&_0x511556>>(-0x2*_0x5a69b4&0x6)):0x0){_0x3c208e=_0x28c961['indexOf'](_0x3c208e);}for(let _0x236124=0x0,_0x470327=_0x2c433e['length'];_0x236124<_0x470327;_0x236124++){_0xe4750b+='%'+('00'+_0x2c433e['charCodeAt'](_0x236124)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xe4750b);};a0_0x21f5['fyNUub']=_0x410efd,a0_0x21f5['dSxoEQ']={},a0_0x21f5['qyXgXr']=!![];}const _0x3b85f6=_0x5b8ffd[0x0],_0x3f5e4c=_0x3d568e+_0x3b85f6,_0xcec0c3=a0_0x21f5['dSxoEQ'][_0x3f5e4c];return!_0xcec0c3?(_0x21f57d=a0_0x21f5['fyNUub'](_0x21f57d),a0_0x21f5['dSxoEQ'][_0x3f5e4c]=_0x21f57d):_0x21f57d=_0xcec0c3,_0x21f57d;}const a0_0xa95e53=a0_0x21f5;function a0_0x5b8f(){const _0x594090=['Dg9czurLzMLUzwq','zw5HyMXLza','BwfW','AgfZsgfUzgXLCG','BMfTzq','uMvHzcbJB250zw50CYbVzIbHigzPBgu','C2L6zq','mNDUCw1hyG','ve9ptf9dqvrfr09swsbJB25ZDgfUDhmGyxjLigrLzMLUzwq','vg9VBhmGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG','l2fWAs9VCMnOzxn0CMf0B3i','Dg9czq','ve9ptfm','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CW','vg9VBhmGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','mZzODxHsBMW','y2f0zwDVCNK','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','Dg9fCxvHBa','t3jJAgvZDhjHDg9YigvUzhbVAw50igLZihvZzwqGzM9YihrVB2WGB3bLCMf0Aw9UCW','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','DxnLvg9VBhm','AgfZ','lI4VlI4VyxbPl3nLC3nPB24UANm','l2fWAs90B29SCW','qvvut01bveLptG','Dg9nyxrJAa','mtiYmJa1mhnsr2nvzq','zNvUy3rPB24','nZC3nZDLwgnACg4','ywLFyxnZAxn0yw50','mJGWndi0ofvOALrJCq','vvrjteLuwq','mZzpB3vREK4','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','nJq3mJm0nxP0yKnRqG','vg9VBhmGtwfUywDLBwvUDcaTieLTCg9YDhm','z2v0','zxHLy3v0zv9JB21Tyw5K','Dg9mB3DLCKnHC2u','q09mtefct1jbveLptG','ve9ptf9dqvrfr09swq','ve9ptf9dqvrfr09swsbPBMnSDwrLCYbHBgWGBwfQB3iGy2f0zwDVCMLLCW','C3vJy2vZCW','BM93','zxHLyY0X','yw5HBhL6zq','Dg9dB250ywLU','t1jdsevtvfjbve9s','DxnLvg9VBhmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','ndeXnZuYs0XVCxvr','vg9VBhmGtwfUywDLBwvUDcaTifDLyLnVy2TLDcbfDMvUDcbiyw5KBgvYCW','zgvMyxvSDa','ve9ptf9dqvrfr09swsb2ywX1zxmGyxjLigXVD2vYy2fZzq','rxHLy3v0Aw9Uihn0yxrLignHBIb0CMfJAYbTDwX0AxbSzsb0B29SCW','zMLSzsbJB250zw50CW','zgvSzxrL','DgvYBwLUywW','twvZC2fNzvjVDxrLCIbOyxmGDg9VBcbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','BgvUz3rO','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CYbwywXPzgf0Aw9U','D2vIx3nLyxjJAa','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','yw5HBhL6zv9JB2rL','CMvHzf9MAwXL','ywrK','q2f0zwDVCNKGy291BNrZignHBIbIzsbJywXJDwXHDgvK','Aw5JBhvKzxm','vg9VBcbJywnOzsbLEhbPCMvZigfMDgvYifruta','mtmZnZC5mefkEMjIEG','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGrMLSDgvYAw5N','nZKWnZa4seXZCMDO','nujJAfD5Ea','Bg9JywXOB3n0','vg9VBhmGqvbjigvUzhbVAw50igLZigrLzMLUzwq','qu5btfLtsvm','zMLSDgvY','u1Ltvevn'];a0_0x5b8f=function(){return _0x594090;};return a0_0x5b8f();}(function(_0x4c4b5f,_0x3eca6c){const _0x2754e6=a0_0x21f5,_0x20e353=_0x4c4b5f();while(!![]){try{const _0x5e5d61=parseInt(_0x2754e6(0x138))/0x1+parseInt(_0x2754e6(0x10c))/0x2*(parseInt(_0x2754e6(0x14b))/0x3)+-parseInt(_0x2754e6(0x14d))/0x4*(parseInt(_0x2754e6(0x14e))/0x5)+-parseInt(_0x2754e6(0x126))/0x6*(-parseInt(_0x2754e6(0x122))/0x7)+-parseInt(_0x2754e6(0x124))/0x8+parseInt(_0x2754e6(0x114))/0x9*(parseInt(_0x2754e6(0x120))/0xa)+-parseInt(_0x2754e6(0x128))/0xb;if(_0x5e5d61===_0x3eca6c)break;else _0x20e353['push'](_0x20e353['shift']());}catch(_0xe508b3){_0x20e353['push'](_0x20e353['shift']());}}}(a0_0x5b8f,0x43855));import{describe,test,expect}from'@jest/globals';describe(a0_0xa95e53(0x129),()=>{test('useTools hook can be imported',async()=>{const {useTools:_0x2c433e}=await import('../../state/useTools.js');expect(_0x2c433e)['toBeDefined'](),expect(typeof _0x2c433e)['toBe']('function');}),test('useTools is default export',async()=>{const _0x487e84=a0_0x21f5,module=await import('../../state/useTools.js');expect(module['default'])['toBeDefined'](),expect(typeof module[_0x487e84(0x13a)])['toBe'](_0x487e84(0x121)),expect(module['default'])[_0x487e84(0x110)](module['useTools']);});}),describe(a0_0xa95e53(0x112),()=>{const _0x4b0017=a0_0xa95e53;test(_0x4b0017(0x10d),async()=>{const _0x177eec=_0x4b0017,{TOOL_CATEGORY:_0xe4750b}=await import(_0x177eec(0x119));expect(_0xe4750b)['toBeDefined'](),expect(_0xe4750b[_0x177eec(0x104)])['toBeDefined'](),expect(_0xe4750b['AUTOMATION'])['toBeDefined'](),expect(_0xe4750b[_0x177eec(0x151)])[_0x177eec(0x105)](),expect(_0xe4750b[_0x177eec(0x125)])['toBeDefined'](),expect(_0xe4750b[_0x177eec(0x12d)])[_0x177eec(0x105)](),expect(_0xe4750b['AI'])['toBeDefined']();}),test(_0x4b0017(0x13b),async()=>{const _0x3ce858=_0x4b0017,{TOOL_CATEGORY:_0x5a69b4}=await import(_0x3ce858(0x119));expect(_0x5a69b4['SYSTEM'])[_0x3ce858(0x110)](_0x5a69b4[_0x3ce858(0x104)][_0x3ce858(0x12c)]()),expect(_0x5a69b4[_0x3ce858(0x11e)])['toBe'](_0x5a69b4['AUTOMATION'][_0x3ce858(0x12c)]()),expect(_0x5a69b4['ANALYSIS'])[_0x3ce858(0x110)](_0x5a69b4['ANALYSIS'][_0x3ce858(0x12c)]()),expect(_0x5a69b4[_0x3ce858(0x125)])[_0x3ce858(0x110)](_0x5a69b4[_0x3ce858(0x125)][_0x3ce858(0x12c)]());}),test(_0x4b0017(0x150),async()=>{const _0x1063df=_0x4b0017,{API_ENDPOINTS:_0x511556}=await import(_0x1063df(0x119));expect(_0x511556[_0x1063df(0x111)])['toBeDefined'](),expect(_0x511556['TOOLS'])[_0x1063df(0x110)](_0x1063df(0x11d));}),test(_0x4b0017(0x118),async()=>{const _0x5ad519=_0x4b0017,{API_ENDPOINTS:_0x3c208e}=await import(_0x5ad519(0x119));expect(_0x3c208e[_0x5ad519(0x135)])[_0x5ad519(0x105)](),expect(_0x3c208e['ORCHESTRATOR'])['toBe'](_0x5ad519(0x10f));});}),describe(a0_0xa95e53(0x113),()=>{const _0x6f0a5f=a0_0xa95e53;test(_0x6f0a5f(0x136),async()=>{const _0x2d3e93=_0x6f0a5f,{useTools:_0x4a4bef}=await import(_0x2d3e93(0x127)),{SessionManager:_0x236124}=await import(_0x2d3e93(0x11c)),{MessageRouter:_0x470327}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x34f442}=await import(_0x2d3e93(0x116)),_0x2d133f=new _0x236124(_0x2d3e93(0x14f),0x1f90),_0x34555b=new _0x34f442(_0x2d3e93(0x14f),0x1f90),_0x11253e=new _0x470327(_0x34555b);expect(_0x2d133f)['toBeDefined'](),expect(_0x11253e)[_0x2d3e93(0x105)](),expect(typeof _0x4a4bef)['toBe'](_0x2d3e93(0x121));}),test('Full tools management stack can be imported together',async()=>{const _0x37668f=_0x6f0a5f,[_0x3e0285,_0x542869,_0x2867e3,_0x5abd95,_0x23b281]=await Promise['all']([import(_0x37668f(0x119)),import('../../api/session.js'),import('../../api/websocket.js'),import(_0x37668f(0x137)),import('../../state/useTools.js')]);expect(_0x3e0285[_0x37668f(0x12e)])['toBeDefined'](),expect(_0x3e0285['API_ENDPOINTS'])['toBeDefined'](),expect(_0x542869['SessionManager'])['toBeDefined'](),expect(_0x2867e3['WebSocketManager'])['toBeDefined'](),expect(_0x5abd95['MessageRouter'])[_0x37668f(0x105)](),expect(_0x23b281[_0x37668f(0x11a)])['toBeDefined']();});}),describe(a0_0xa95e53(0x10e),()=>{test('Tools\x20endpoint\x20follows\x20RESTful\x20pattern',async()=>{const _0xa7e51f=a0_0x21f5,{API_ENDPOINTS:_0x1a858b}=await import(_0xa7e51f(0x119));expect(_0x1a858b['TOOLS'])[_0xa7e51f(0x11f)](/^\/api\//),expect(_0x1a858b[_0xa7e51f(0x111)])['toBe'](_0xa7e51f(0x11d));}),test('Tool\x20operations\x20use\x20orchestrator\x20endpoint',async()=>{const _0x56e2e1=a0_0x21f5,{API_ENDPOINTS:_0xd80206}=await import('../../config/constants.js');expect(_0xd80206[_0x56e2e1(0x135)])['toBeDefined'](),expect(_0xd80206['ORCHESTRATOR'])['toBe']('/api/orchestrator');});}),describe('Tools\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useTools\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x191f65=a0_0x21f5,{useTools:_0x12f671}=await import('../../state/useTools.js');expect(_0x12f671[_0x191f65(0x141)])[_0x191f65(0x110)](0x3);});}),describe(a0_0xa95e53(0x142),()=>{const _0x399eab=a0_0xa95e53;test(_0x399eab(0x12f),async()=>{const _0x2fcbb9=_0x399eab,{TOOL_CATEGORY:_0x173085}=await import(_0x2fcbb9(0x119)),_0x5ade85=Object['keys'](_0x173085);expect(_0x5ade85)[_0x2fcbb9(0x134)]('SYSTEM'),expect(_0x5ade85)['toContain']('AUTOMATION'),expect(_0x5ade85)['toContain'](_0x2fcbb9(0x151)),expect(_0x5ade85)[_0x2fcbb9(0x134)]('UTILITY'),expect(_0x5ade85)[_0x2fcbb9(0x134)]('COLLABORATION'),expect(_0x5ade85)[_0x2fcbb9(0x134)]('AI');}),test('TOOL_CATEGORY\x20values\x20match\x20expected\x20format',async()=>{const _0x561c95=_0x399eab,{TOOL_CATEGORY:_0xaeedc7}=await import('../../config/constants.js');expect(_0xaeedc7[_0x561c95(0x104)])['toMatch'](/^[a-z_]+$/),expect(_0xaeedc7['AUTOMATION'])['toMatch'](/^[a-z_]+$/),expect(_0xaeedc7['ANALYSIS'])[_0x561c95(0x11f)](/^[a-z_]+$/),expect(_0xaeedc7[_0x561c95(0x125)])['toMatch'](/^[a-z_]+$/);});}),describe(a0_0xa95e53(0x139),()=>{const _0x3bc2ad=a0_0xa95e53;test(_0x3bc2ad(0x140),async()=>{const _0x1e36c2=_0x3bc2ad,{MessageRouter:_0x3b2949}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x373970}=await import(_0x1e36c2(0x116)),_0x3df326=new _0x373970('localhost',0x1f90),_0xcc36a9=new _0x3b2949(_0x3df326);expect(_0xcc36a9[_0x1e36c2(0x108)])['toBeDefined'](),expect(typeof _0xcc36a9[_0x1e36c2(0x108)])[_0x1e36c2(0x110)](_0x1e36c2(0x121));});}),describe('Tools\x20Management\x20-\x20Tool\x20Categorization',()=>{test('TOOL_CATEGORY\x20can\x20be\x20used\x20to\x20filter\x20tools\x20by\x20category',async()=>{const _0x1e7904=a0_0x21f5,{TOOL_CATEGORY:_0x483bdb}=await import('../../config/constants.js'),_0xd5eefc=[{'name':_0x1e7904(0x12b),'category':_0x483bdb[_0x1e7904(0x104)]},{'name':_0x1e7904(0x13f),'category':_0x483bdb['SYSTEM']},{'name':_0x1e7904(0x145),'category':_0x483bdb[_0x1e7904(0x151)]},{'name':_0x1e7904(0x143),'category':_0x483bdb[_0x1e7904(0x125)]},{'name':_0x1e7904(0x123),'category':_0x483bdb['AI']}],_0x6aa139=_0xd5eefc['filter'](_0x10e204=>_0x10e204['category']===_0x483bdb[_0x1e7904(0x104)]),_0x309aac=_0xd5eefc[_0x1e7904(0x103)](_0x54bb57=>_0x54bb57[_0x1e7904(0x115)]===_0x483bdb[_0x1e7904(0x151)]),_0x4c3bb0=_0xd5eefc['filter'](_0x1adfb8=>_0x1adfb8[_0x1e7904(0x115)]===_0x483bdb[_0x1e7904(0x125)]),_0x154552=_0xd5eefc[_0x1e7904(0x103)](_0xd2d0be=>_0xd2d0be['category']===_0x483bdb['AI']);expect(_0x6aa139['length'])[_0x1e7904(0x110)](0x2),expect(_0x309aac['length'])[_0x1e7904(0x110)](0x1),expect(_0x4c3bb0['length'])['toBe'](0x1),expect(_0x154552[_0x1e7904(0x141)])[_0x1e7904(0x110)](0x1),expect(_0x6aa139[0x0]['name'])[_0x1e7904(0x110)](_0x1e7904(0x12b)),expect(_0x309aac[0x0]['name'])['toBe'](_0x1e7904(0x145));});}),describe('Tools\x20Management\x20-\x20Tool\x20Search',()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x2cf65a=a0_0x21f5,_0x5a811c=[{'name':_0x2cf65a(0x146),'description':_0x2cf65a(0x10a)},{'name':'write_file','description':'Write\x20data\x20to\x20a\x20file'},{'name':_0x2cf65a(0x145),'description':'Perform\x20static\x20code\x20analysis'}],_0x2f164e=_0x4f87d9=>{const _0xc2f455=_0x2cf65a,_0x13eb11=_0x4f87d9[_0xc2f455(0x12c)]();return _0x5a811c['filter'](_0x38b3f5=>_0x38b3f5[_0xc2f455(0x109)]?.['toLowerCase']()[_0xc2f455(0x149)](_0x13eb11)||_0x38b3f5['description']?.[_0xc2f455(0x12c)]()['includes'](_0x13eb11));},_0x10247c=_0x2f164e('file');expect(_0x10247c['length'])['toBe'](0x2),expect(_0x10247c[_0x2cf65a(0x107)](_0x38ac3f=>_0x38ac3f[_0x2cf65a(0x109)]))['toContain'](_0x2cf65a(0x146)),expect(_0x10247c[_0x2cf65a(0x107)](_0x2f1952=>_0x2f1952[_0x2cf65a(0x109)]))['toContain']('write_file');const _0x1992b6=_0x2f164e(_0x2cf65a(0x133));expect(_0x1992b6[_0x2cf65a(0x141)])['toBe'](0x1),expect(_0x1992b6[0x0][_0x2cf65a(0x109)])[_0x2cf65a(0x110)](_0x2cf65a(0x145));});}),describe('Tools\x20Management\x20-\x20Execution\x20State\x20Tracking',()=>{const _0x546c9f=a0_0xa95e53;test(_0x546c9f(0x13c),async()=>{const _0x845df7=_0x546c9f,_0x5692a3=new Set();_0x5692a3[_0x845df7(0x147)]('read_file'),_0x5692a3['add'](_0x845df7(0x145)),expect(_0x5692a3[_0x845df7(0x11b)](_0x845df7(0x146)))[_0x845df7(0x110)](!![]),expect(_0x5692a3['has']('analyze_code'))['toBe'](!![]),expect(_0x5692a3[_0x845df7(0x10b)])[_0x845df7(0x110)](0x2),_0x5692a3[_0x845df7(0x13e)]('read_file'),expect(_0x5692a3['has']('read_file'))['toBe'](![]),expect(_0x5692a3['has']('analyze_code'))[_0x845df7(0x110)](!![]),expect(_0x5692a3['size'])[_0x845df7(0x110)](0x1);}),test('Tool\x20results\x20can\x20be\x20stored\x20by\x20execution\x20ID',async()=>{const _0x10e37d=_0x546c9f,_0x1c34c1=new Map();_0x1c34c1['set'](_0x10e37d(0x132),{'success':!![],'data':_0x10e37d(0x13d)}),_0x1c34c1['set']('exec-2',{'success':!![],'data':{'issues':[]}}),expect(_0x1c34c1['get'](_0x10e37d(0x132)))['toBeDefined'](),expect(_0x1c34c1[_0x10e37d(0x12a)](_0x10e37d(0x132))[_0x10e37d(0x130)])[_0x10e37d(0x110)](!![]),expect(_0x1c34c1['get']('exec-1')['data'])['toBe']('file\x20contents'),expect(_0x1c34c1[_0x10e37d(0x12a)]('exec-2'))['toBeDefined'](),expect(_0x1c34c1[_0x10e37d(0x12a)]('exec-2')['data']['issues'])[_0x10e37d(0x117)]([]),expect(_0x1c34c1['size'])[_0x10e37d(0x110)](0x2);});}),describe(a0_0xa95e53(0x144),()=>{const _0x1504d6=a0_0xa95e53;test('Tool\x20cache\x20supports\x20TTL-based\x20caching',async()=>{const _0x59faef=a0_0x21f5,_0x32080e=0x927c0;let _0x1dfd4d=null,_0x3ca177=0x0;const _0x41836b=[{'name':'read_file'}];_0x1dfd4d=_0x41836b,_0x3ca177=Date['now']();const _0x101bfc=Date['now'](),_0x218fe9=_0x101bfc-_0x3ca177<_0x32080e;expect(_0x218fe9)['toBe'](!![]),expect(_0x1dfd4d)[_0x59faef(0x110)](_0x41836b);}),test(_0x1504d6(0x14a),async()=>{const _0x458026=_0x1504d6,_0x39a06e=0x64;let _0x1db134=null,_0x1b08a9=0x0;const _0x599a3d=[{'name':'read_file'}];_0x1db134=_0x599a3d,_0x1b08a9=Date[_0x458026(0x131)](),await new Promise(_0xe96345=>setTimeout(_0xe96345,0x96));const _0x3de601=Date['now'](),_0x459d1b=_0x3de601-_0x1b08a9<_0x39a06e;expect(_0x459d1b)['toBe'](![]);});}),describe(a0_0xa95e53(0x14c),()=>{test('Tools\x20can\x20be\x20filtered\x20by\x20multiple\x20criteria',async()=>{const _0x39f1ab=a0_0x21f5,{TOOL_CATEGORY:_0xd665de}=await import('../../config/constants.js'),_0x30af38=[{'name':'execute_command','category':_0xd665de['SYSTEM'],'enabled':!![]},{'name':_0x39f1ab(0x13f),'category':_0xd665de['SYSTEM'],'enabled':![]},{'name':'analyze_code','category':_0xd665de['ANALYSIS'],'enabled':!![]}],_0x3f18eb=_0x59fdff=>{const _0x47c9cc=_0x39f1ab;let _0xdabebd=[..._0x30af38];return _0x59fdff[_0x47c9cc(0x115)]&&(_0xdabebd=_0xdabebd['filter'](_0x3f3690=>_0x3f3690[_0x47c9cc(0x115)]===_0x59fdff[_0x47c9cc(0x115)])),_0x59fdff['enabled']!==undefined&&(_0xdabebd=_0xdabebd[_0x47c9cc(0x103)](_0x46131e=>_0x46131e['enabled']===_0x59fdff[_0x47c9cc(0x106)])),_0xdabebd;},_0x34cf24=_0x3f18eb({'category':_0xd665de[_0x39f1ab(0x104)]});expect(_0x34cf24['length'])['toBe'](0x2);const _0x102037=_0x3f18eb({'enabled':!![]});expect(_0x102037['length'])[_0x39f1ab(0x110)](0x2);const _0x4fcd8d=_0x3f18eb({'category':_0xd665de[_0x39f1ab(0x104)],'enabled':!![]});expect(_0x4fcd8d['length'])[_0x39f1ab(0x110)](0x1),expect(_0x4fcd8d[0x0]['name'])[_0x39f1ab(0x110)]('execute_command');});}),describe('Tools\x20Management\x20-\x20Category\x20Counts',()=>{const _0x1fdff2=a0_0xa95e53;test(_0x1fdff2(0x148),async()=>{const _0x48f4d2=_0x1fdff2,{TOOL_CATEGORY:_0x2c41a5}=await import(_0x48f4d2(0x119)),_0x1e3e92=[{'name':_0x48f4d2(0x12b),'category':_0x2c41a5['SYSTEM']},{'name':_0x48f4d2(0x13f),'category':_0x2c41a5['SYSTEM']},{'name':'analyze_code','category':_0x2c41a5['ANALYSIS']},{'name':'web_search','category':_0x2c41a5[_0x48f4d2(0x125)]}],_0x13ec3a=_0x557b56=>{const _0x36f795=_0x48f4d2,_0x33aa2b={};for(const _0x12e8de of Object['values'](_0x2c41a5)){_0x33aa2b[_0x12e8de]=_0x557b56['filter'](_0x282ab3=>_0x282ab3[_0x36f795(0x115)]===_0x12e8de)[_0x36f795(0x141)];}return _0x33aa2b;},_0x18d359=_0x13ec3a(_0x1e3e92);expect(_0x18d359[_0x2c41a5[_0x48f4d2(0x104)]])[_0x48f4d2(0x110)](0x2),expect(_0x18d359[_0x2c41a5['ANALYSIS']])[_0x48f4d2(0x110)](0x1),expect(_0x18d359[_0x2c41a5['UTILITY']])['toBe'](0x1),expect(_0x18d359[_0x2c41a5['AUTOMATION']])[_0x48f4d2(0x110)](0x0);});});