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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +1 -1
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/aiService.js +1 -1
  76. package/src/services/apiKeyManager.js +1 -1
  77. package/src/services/benchmarkService.js +1 -1
  78. package/src/services/budgetService.js +1 -1
  79. package/src/services/contextInjectionService.js +1 -1
  80. package/src/services/conversationCompactionService.js +1 -1
  81. package/src/services/errorHandler.js +1 -1
  82. package/src/services/fileAttachmentService.js +1 -1
  83. package/src/services/modelRouterService.js +1 -1
  84. package/src/services/modelsService.js +1 -1
  85. package/src/services/qualityInspector.js +1 -1
  86. package/src/services/tokenCountingService.js +1 -1
  87. package/src/tools/agentCommunicationTool.js +1 -1
  88. package/src/tools/agentDelayTool.js +1 -1
  89. package/src/tools/asyncToolManager.js +1 -1
  90. package/src/tools/baseTool.js +1 -1
  91. package/src/tools/browserTool.js +1 -1
  92. package/src/tools/cloneDetectionTool.js +1 -1
  93. package/src/tools/dependencyResolverTool.js +1 -1
  94. package/src/tools/fileContentReplaceTool.js +1 -1
  95. package/src/tools/fileSystemTool.js +1 -1
  96. package/src/tools/fileTreeTool.js +1 -1
  97. package/src/tools/imageTool.js +1 -1
  98. package/src/tools/importAnalyzerTool.js +1 -1
  99. package/src/tools/jobDoneTool.js +1 -1
  100. package/src/tools/seekTool.js +1 -1
  101. package/src/tools/staticAnalysisTool.js +1 -1
  102. package/src/tools/taskManagerTool.js +1 -1
  103. package/src/tools/terminalTool.js +1 -1
  104. package/src/tools/webTool.js +1 -1
  105. package/src/types/agent.js +1 -1
  106. package/src/types/contextReference.js +1 -1
  107. package/src/types/conversation.js +1 -1
  108. package/src/types/toolCommand.js +1 -1
  109. package/src/utilities/attachmentValidator.js +1 -1
  110. package/src/utilities/configManager.js +1 -1
  111. package/src/utilities/constants.js +1 -1
  112. package/src/utilities/directoryAccessManager.js +1 -1
  113. package/src/utilities/fileProcessor.js +1 -1
  114. package/src/utilities/logger.js +1 -1
  115. package/src/utilities/tagParser.js +1 -1
  116. package/src/utilities/toolConstants.js +1 -1
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/index-BVF_10a5.css +1 -0
  119. package/web-ui/build/static/{index-CX8ZfpGw.js → index-DE5VFS1q.js} +69 -69
  120. package/web-ui/build/static/index-Dwg_JrlO.css +0 -1
@@ -1 +1 @@
1
- const a0_0x1f2cc4=a0_0x2e64;(function(_0x388e25,_0x5dd174){const _0x8bd005=a0_0x2e64,_0xb7a316=_0x388e25();while(!![]){try{const _0x5c5d99=-parseInt(_0x8bd005(0x1f8))/0x1*(-parseInt(_0x8bd005(0x1f5))/0x2)+parseInt(_0x8bd005(0x1e8))/0x3+-parseInt(_0x8bd005(0x200))/0x4*(parseInt(_0x8bd005(0x1f2))/0x5)+-parseInt(_0x8bd005(0x1fd))/0x6*(parseInt(_0x8bd005(0x20e))/0x7)+parseInt(_0x8bd005(0x1e6))/0x8+parseInt(_0x8bd005(0x1f7))/0x9*(-parseInt(_0x8bd005(0x205))/0xa)+parseInt(_0x8bd005(0x1ff))/0xb*(parseInt(_0x8bd005(0x1e7))/0xc);if(_0x5c5d99===_0x5dd174)break;else _0xb7a316['push'](_0xb7a316['shift']());}catch(_0x41bc18){_0xb7a316['push'](_0xb7a316['shift']());}}}(a0_0x51dd,0x527ab));function a0_0x2e64(_0xdd8034,_0x3dc315){_0xdd8034=_0xdd8034-0x1e3;const _0x51dd48=a0_0x51dd();let _0x2e6447=_0x51dd48[_0xdd8034];if(a0_0x2e64['PsrWyJ']===undefined){var _0x306e7a=function(_0x32fa6c){const _0x20177e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1221d8='',_0x2f298a='';for(let _0x3a0969=0x0,_0x4422eb,_0x522ba6,_0x5f5a9e=0x0;_0x522ba6=_0x32fa6c['charAt'](_0x5f5a9e++);~_0x522ba6&&(_0x4422eb=_0x3a0969%0x4?_0x4422eb*0x40+_0x522ba6:_0x522ba6,_0x3a0969++%0x4)?_0x1221d8+=String['fromCharCode'](0xff&_0x4422eb>>(-0x2*_0x3a0969&0x6)):0x0){_0x522ba6=_0x20177e['indexOf'](_0x522ba6);}for(let _0x428fa1=0x0,_0x34eb57=_0x1221d8['length'];_0x428fa1<_0x34eb57;_0x428fa1++){_0x2f298a+='%'+('00'+_0x1221d8['charCodeAt'](_0x428fa1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2f298a);};a0_0x2e64['XoXCJQ']=_0x306e7a,a0_0x2e64['GcmWSZ']={},a0_0x2e64['PsrWyJ']=!![];}const _0x5b9dee=_0x51dd48[0x0],_0x2b9095=_0xdd8034+_0x5b9dee,_0x2f9c3b=a0_0x2e64['GcmWSZ'][_0x2b9095];return!_0x2f9c3b?(_0x2e6447=a0_0x2e64['XoXCJQ'](_0x2e6447),a0_0x2e64['GcmWSZ'][_0x2b9095]=_0x2e6447):_0x2e6447=_0x2f9c3b,_0x2e6447;}function a0_0x51dd(){const _0x6720ba=['DxnLsw5WDxq','lI4VlI4Vy29TCg9Uzw50CY9bz2vUDfn3AxrJAgvYlMPZ','odi0nJq2ufHeAhLV','lI4VlI4Vy29TCg9Uzw50CY9izwXWugfUzwWUANm','mJK3CuH3Bfri','mZaWD0DJChDR','BgvUz3rO','lI4VlI4Vy29TCg9Uzw50CY9tzwfYy2Hqyw5LBc5QCW','qwDLBNrdCMvHDg9YigLZigeGzNvUy3rPB24Gy29TCg9Uzw50','qwDLBNrdCMvHDg9Y','nZqZmfPvqu5kyG','lI4VlI4Vy29TCg9Uzw50CY9tzxr0Aw5NC1bHBMvSlMPZ','ugHHC2uGmtaGlsbdB21WB25LBNqGq29UC3rHBNrZigfUzcbdB25MAwD1CMf0Aw9UCW','A2v5CW','u2vHCMnOugfUzwWGAxmGysbMDw5JDgLVBIbJB21WB25LBNq','C2L6zq','qwDLBNrdCMvHDg9YigrLzMLUzxmGC3rLCcbJB25ZDgfUDhm','DxnLu3rHDgu','BwfW','n0z5D3Deuq','ugHHC2uGmtaGlsbbz2vUDenYzwf0B3iGlsbtDhj1y3r1CMu','zNvUy3rPB24','Dg9czq','qwDLBNrtD2L0y2HLCIbPCYbHigz1BMn0Aw9UignVBxbVBMvUDa','u2vHCMnOugfUzwW','mJC2otmZnNLNtenYyW','mZm1nJrVAKj2CLC','mteYote3mgTMuKfHsG','vgv4Da','ugHHC2uGmtaGlsbizwXWugfUzwWGlsbtDhj1y3r1CMu','Dg9czurLzMLUzwq','ugHHC2uGmtaGlsbtzxr0Aw5NC1bHBMvSic0Gu3rYDwn0DxjL','u2v0DgLUz3nqyw5LBa','qwDLBNrtD2L0y2HLCG','ugHHC2uGmtaGlsbbz2vUDfn3AxrJAgvYic0Gu3rYDwn0DxjL','ChjVDg90ExbL','ugHHC2uGmtaGlsbjBNrLz3jHDgLVBIb3AxrOieXHEw91Da','mtq1mZbfC0jQyMG','lI4VlI4Vy29TCg9Uzw50CY9bz2vUDenYzwf0B3iUANm','CMvUzgvY','mNjnCvP1Ba','zgvMyxvSDa','nty3ovDsDuDIBG','mZyZotGZq0DxuLb4','Dg9czvvUzgvMAw5Lza','Aw5R'];a0_0x51dd=function(){return _0x6720ba;};return a0_0x51dd();}import{describe,test,expect}from'@jest/globals';describe('Phase\x2010\x20-\x20Advanced\x20Features\x20-\x20Imports',()=>{test('AgentSwitcher component can be imported',async()=>{const _0x3bcc7b=a0_0x2e64,{AgentSwitcher:_0x1221d8}=await import('../../components/AgentSwitcher.js');expect(_0x1221d8)[_0x3bcc7b(0x1eb)](),expect(typeof _0x1221d8)['toBe']('function');},0x7530),test('AgentCreator component can be imported',async()=>{const _0xed0a19=a0_0x2e64,{AgentCreator:_0x2f298a}=await import(_0xed0a19(0x1f3));expect(_0x2f298a)[_0xed0a19(0x1eb)](),expect(typeof _0x2f298a)[_0xed0a19(0x1e3)](_0xed0a19(0x210));}),test('SettingsPanel component can be imported',async()=>{const _0x28501e=a0_0x2e64,{SettingsPanel:_0x3a0969}=await import(_0x28501e(0x206));expect(_0x3a0969)['toBeDefined'](),expect(typeof _0x3a0969)[_0x28501e(0x1e3)]('function');}),test('SearchPanel component can be imported',async()=>{const _0x315c0c=a0_0x2e64,{SearchPanel:_0x4422eb}=await import(_0x315c0c(0x202));expect(_0x4422eb)['toBeDefined'](),expect(typeof _0x4422eb)['toBe'](_0x315c0c(0x210));}),test('HelpPanel component can be imported',async()=>{const {HelpPanel:_0x522ba6}=await import('../../components/HelpPanel.js');expect(_0x522ba6)['toBeDefined'](),expect(typeof _0x522ba6)['toBe']('function');});}),describe(a0_0x1f2cc4(0x1ef),()=>{const _0x1d8236=a0_0x1f2cc4;test(_0x1d8236(0x1e4),async()=>{const _0x848c9d=_0x1d8236,{AgentSwitcher:_0x5f5a9e}=await import(_0x848c9d(0x1fc));expect(typeof _0x5f5a9e)['toBe']('function'),expect(_0x5f5a9e['prototype']?.['render'])[_0x848c9d(0x1f9)]();}),test('AgentSwitcher is default export',async()=>{const _0x424e22=_0x1d8236,module=await import('../../components/AgentSwitcher.js');expect(module['default'])[_0x424e22(0x1eb)](),expect(module['default'])[_0x424e22(0x1e3)](module[_0x424e22(0x1ee)]);});}),describe(a0_0x1f2cc4(0x20f),()=>{const _0x552364=a0_0x1f2cc4;test(_0x552364(0x203),async()=>{const _0x22a74b=_0x552364,{AgentCreator:_0x428fa1}=await import(_0x22a74b(0x1f3));expect(typeof _0x428fa1)[_0x22a74b(0x1e3)]('function'),expect(_0x428fa1['prototype']?.[_0x22a74b(0x1f4)])[_0x22a74b(0x1f9)]();}),test('AgentCreator is default export',async()=>{const _0x14f06f=_0x552364,module=await import(_0x14f06f(0x1f3));expect(module[_0x14f06f(0x1f6)])[_0x14f06f(0x1eb)](),expect(module[_0x14f06f(0x1f6)])[_0x14f06f(0x1e3)](module[_0x14f06f(0x204)]);});}),describe(a0_0x1f2cc4(0x1ec),()=>{test('SettingsPanel\x20is\x20a\x20function\x20component',async()=>{const _0x5b06ec=a0_0x2e64,{SettingsPanel:_0x34eb57}=await import(_0x5b06ec(0x206));expect(typeof _0x34eb57)[_0x5b06ec(0x1e3)](_0x5b06ec(0x210)),expect(_0x34eb57[_0x5b06ec(0x1f0)]?.[_0x5b06ec(0x1f4)])[_0x5b06ec(0x1f9)]();}),test('SettingsPanel is default export',async()=>{const _0x2d5e42=a0_0x2e64,module=await import('../../components/SettingsPanel.js');expect(module['default'])[_0x2d5e42(0x1eb)](),expect(module['default'])[_0x2d5e42(0x1e3)](module['SettingsPanel']);});}),describe('Phase\x2010\x20-\x20SearchPanel\x20-\x20Structure',()=>{const _0x596185=a0_0x1f2cc4;test(_0x596185(0x209),async()=>{const _0x3c4ba4=_0x596185,{SearchPanel:_0x3b1928}=await import(_0x3c4ba4(0x202));expect(typeof _0x3b1928)[_0x3c4ba4(0x1e3)]('function'),expect(_0x3b1928[_0x3c4ba4(0x1f0)]?.[_0x3c4ba4(0x1f4)])[_0x3c4ba4(0x1f9)]();}),test('SearchPanel is default export',async()=>{const _0x2dfad9=_0x596185,module=await import(_0x2dfad9(0x202));expect(module[_0x2dfad9(0x1f6)])[_0x2dfad9(0x1eb)](),expect(module['default'])[_0x2dfad9(0x1e3)](module[_0x2dfad9(0x1e5)]);});}),describe(a0_0x1f2cc4(0x1ea),()=>{test('HelpPanel\x20is\x20a\x20function\x20component',async()=>{const _0xa09898=a0_0x2e64,{HelpPanel:_0x1001b4}=await import(_0xa09898(0x1fe));expect(typeof _0x1001b4)[_0xa09898(0x1e3)]('function'),expect(_0x1001b4['prototype']?.['render'])['toBeUndefined']();}),test('HelpPanel is default export',async()=>{const _0x5d905b=a0_0x2e64,module=await import(_0x5d905b(0x1fe));expect(module['default'])['toBeDefined'](),expect(module[_0x5d905b(0x1f6)])[_0x5d905b(0x1e3)](module['HelpPanel']);});}),describe(a0_0x1f2cc4(0x1f1),()=>{test('Layout component can import all Phase 10 components',async()=>{const _0x23202b=a0_0x2e64,[_0x314646,_0x575462,_0x243585,_0x1cebb9,_0x3a0208]=await Promise['all']([import(_0x23202b(0x1fc)),import(_0x23202b(0x1f3)),import(_0x23202b(0x206)),import('../../components/SearchPanel.js'),import('../../components/HelpPanel.js')]);expect(_0x314646[_0x23202b(0x1ee)])[_0x23202b(0x1eb)](),expect(_0x575462[_0x23202b(0x204)])[_0x23202b(0x1eb)](),expect(_0x243585[_0x23202b(0x1ed)])[_0x23202b(0x1eb)](),expect(_0x1cebb9[_0x23202b(0x1e5)])[_0x23202b(0x1eb)](),expect(_0x3a0208['HelpPanel'])['toBeDefined']();}),test('Layout\x20component\x20still\x20loads\x20after\x20Phase\x2010\x20additions',async()=>{const _0x183321=a0_0x2e64,{Layout:_0x1d7014}=await import('../../components/Layout.js');expect(_0x1d7014)['toBeDefined'](),expect(typeof _0x1d7014)['toBe'](_0x183321(0x210));}),test('All\x20Phase\x2010\x20components\x20use\x20React\x20and\x20Ink',async()=>{const _0x3a3ae6=a0_0x2e64,_0xacc192=await import('react'),_0x5c2548=await import(_0x3a3ae6(0x1fa));expect(_0xacc192['createElement'])[_0x3a3ae6(0x1eb)](),expect(_0xacc192[_0x3a3ae6(0x20c)])['toBeDefined'](),expect(_0x5c2548['Box'])[_0x3a3ae6(0x1eb)](),expect(_0x5c2548[_0x3a3ae6(0x1e9)])['toBeDefined'](),expect(_0x5c2548[_0x3a3ae6(0x1fb)])[_0x3a3ae6(0x1eb)]();});}),describe(a0_0x1f2cc4(0x207),()=>{const _0x50e4a2=a0_0x1f2cc4;test(_0x50e4a2(0x20b),async()=>{const module=await import('../../components/AgentCreator.js');expect(module['AgentCreator'])['toBeDefined']();}),test('SettingsPanel\x20defines\x20category\x20constants',async()=>{const _0x36b9a5=_0x50e4a2,module=await import(_0x36b9a5(0x206));expect(module['SettingsPanel'])['toBeDefined']();}),test('HelpPanel\x20defines\x20shortcut\x20configurations',async()=>{const _0x574958=_0x50e4a2,module=await import('../../components/HelpPanel.js');expect(module['HelpPanel'])[_0x574958(0x1eb)]();});}),describe('Phase\x2010\x20-\x20All\x20Components\x20Export\x20Correctly',()=>{test('All components can be imported together without conflicts',async()=>{const _0x14817c=a0_0x2e64,_0x5f046e=await Promise['all']([import('../../components/AgentSwitcher.js'),import('../../components/AgentCreator.js'),import(_0x14817c(0x206)),import('../../components/SearchPanel.js'),import(_0x14817c(0x1fe))]),_0x4e33b9=_0x5f046e[_0x14817c(0x20d)](_0x5b5b1b=>Object[_0x14817c(0x208)](_0x5b5b1b)[0x0]),_0x19e324=new Set(_0x4e33b9);expect(_0x19e324[_0x14817c(0x20a)])[_0x14817c(0x1e3)](_0x4e33b9[_0x14817c(0x201)]);});});
1
+ function a0_0x2288(_0x2b4b1b,_0x1b9815){_0x2b4b1b=_0x2b4b1b-0x122;const _0x1beadc=a0_0x1bea();let _0x228806=_0x1beadc[_0x2b4b1b];if(a0_0x2288['UVpLfT']===undefined){var _0x429a04=function(_0x2e802f){const _0x4401b8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29b4cc='',_0x4c8202='';for(let _0x201040=0x0,_0x1adeed,_0x52314b,_0x575c56=0x0;_0x52314b=_0x2e802f['charAt'](_0x575c56++);~_0x52314b&&(_0x1adeed=_0x201040%0x4?_0x1adeed*0x40+_0x52314b:_0x52314b,_0x201040++%0x4)?_0x29b4cc+=String['fromCharCode'](0xff&_0x1adeed>>(-0x2*_0x201040&0x6)):0x0){_0x52314b=_0x4401b8['indexOf'](_0x52314b);}for(let _0x193a7d=0x0,_0x65037c=_0x29b4cc['length'];_0x193a7d<_0x65037c;_0x193a7d++){_0x4c8202+='%'+('00'+_0x29b4cc['charCodeAt'](_0x193a7d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4c8202);};a0_0x2288['ynHtfL']=_0x429a04,a0_0x2288['XjUToo']={},a0_0x2288['UVpLfT']=!![];}const _0x5d5989=_0x1beadc[0x0],_0x4ba21d=_0x2b4b1b+_0x5d5989,_0x3c0858=a0_0x2288['XjUToo'][_0x4ba21d];return!_0x3c0858?(_0x228806=a0_0x2288['ynHtfL'](_0x228806),a0_0x2288['XjUToo'][_0x4ba21d]=_0x228806):_0x228806=_0x3c0858,_0x228806;}function a0_0x1bea(){const _0x42d69f=['lI4VlI4Vy29TCg9Uzw50CY9bz2vUDenYzwf0B3iUANm','lI4VlI4Vy29TCg9Uzw50CY9tzxr0Aw5NC1bHBMvSlMPZ','u2v0DgLUz3nqyw5LBcbKzwzPBMvZignHDgvNB3j5ignVBNn0yw50CW','DxnLu3rHDgu','zNvUy3rPB24','ugHHC2uGmtaGlsbizwXWugfUzwWGlsbtDhj1y3r1CMu','mLjgu3fKDq','lI4VlI4Vy29TCg9Uzw50CY9bz2vUDfn3AxrJAgvYlMPZ','odGYnJC3we5Xrhfw','zgvMyxvSDa','mZKYmZKXqu9fyLDd','BgvUz3rO','Dg9czvvUzgvMAw5Lza','mZy4ody0DgD1wK1V','ugHHC2uGmtaGlsbtzxr0Aw5NC1bHBMvSic0Gu3rYDwn0DxjL','sgvSCfbHBMvS','ody0nJKZnu5kqNroBG','u2v0DgLUz3nqyw5LBcbPCYbHigz1BMn0Aw9UignVBxbVBMvUDa','ugHHC2uGmtaGlsbbz2vUDenYzwf0B3iGlsbtDhj1y3r1CMu','qM94','mtK3mgHdC0vjCW','nZDUuxzVrLm','nteZnLDNqwXyva','ugHHC2uGmtaGlsbdB21WB25LBNqGq29UC3rHBNrZigfUzcbdB25MAwD1CMf0Aw9UCW','Dg9czurLzMLUzwq','ugHHC2uGmtaGlsbbBgWGq29TCg9Uzw50CYbfEhbVCNqGq29YCMvJDgX5','qwDLBNrdCMvHDg9YigLZigeGzNvUy3rPB24Gy29TCg9Uzw50','lI4VlI4Vy29TCg9Uzw50CY9tzwfYy2Hqyw5LBc5QCW','DxnLsw5WDxq','qwDLBNrdCMvHDg9Y','mZaYmgTkr2fQta','mtyWndDvt1rNwNG','CMvUzgvY','qwDLBNrtD2L0y2HLCG','ChjVDg90ExbL','sgvSCfbHBMvSigrLzMLUzxmGC2HVCNrJDxqGy29UzMLNDxjHDgLVBNm','lI4VlI4Vy29TCg9Uzw50CY9izwXWugfUzwWUANm','Aw5R','ugHHC2uGmtaGlsbtzwfYy2Hqyw5LBcaTifn0CNvJDhvYzq','Dg9czq','vgv4Da','mZiWntKYofzVzg9sCG'];a0_0x1bea=function(){return _0x42d69f;};return a0_0x1bea();}const a0_0x328389=a0_0x2288;(function(_0x1f4d22,_0x47d063){const _0xce1b41=a0_0x2288,_0x52a555=_0x1f4d22();while(!![]){try{const _0x3178cd=parseInt(_0xce1b41(0x145))/0x1+parseInt(_0xce1b41(0x143))/0x2*(-parseInt(_0xce1b41(0x147))/0x3)+-parseInt(_0xce1b41(0x13c))/0x4+parseInt(_0xce1b41(0x127))/0x5*(parseInt(_0xce1b41(0x129))/0x6)+parseInt(_0xce1b41(0x128))/0x7*(parseInt(_0xce1b41(0x14a))/0x8)+-parseInt(_0xce1b41(0x132))/0x9*(-parseInt(_0xce1b41(0x131))/0xa)+-parseInt(_0xce1b41(0x123))/0xb;if(_0x3178cd===_0x47d063)break;else _0x52a555['push'](_0x52a555['shift']());}catch(_0x279459){_0x52a555['push'](_0x52a555['shift']());}}}(a0_0x1bea,0x8599f));import{describe,test,expect}from'@jest/globals';describe('Phase\x2010\x20-\x20Advanced\x20Features\x20-\x20Imports',()=>{test('AgentSwitcher component can be imported',async()=>{const _0x2ca2ec=a0_0x2288,{AgentSwitcher:_0x29b4cc}=await import(_0x2ca2ec(0x144));expect(_0x29b4cc)[_0x2ca2ec(0x12b)](),expect(typeof _0x29b4cc)[_0x2ca2ec(0x13a)](_0x2ca2ec(0x141));},0x7530),test('AgentCreator component can be imported',async()=>{const _0x47779b=a0_0x2288,{AgentCreator:_0x4c8202}=await import(_0x47779b(0x13d));expect(_0x4c8202)[_0x47779b(0x12b)](),expect(typeof _0x4c8202)['toBe']('function');}),test('SettingsPanel component can be imported',async()=>{const _0x5a3540=a0_0x2288,{SettingsPanel:_0x201040}=await import(_0x5a3540(0x13e));expect(_0x201040)[_0x5a3540(0x12b)](),expect(typeof _0x201040)[_0x5a3540(0x13a)]('function');}),test('SearchPanel component can be imported',async()=>{const _0x20f74c=a0_0x2288,{SearchPanel:_0x1adeed}=await import('../../components/SearchPanel.js');expect(_0x1adeed)[_0x20f74c(0x12b)](),expect(typeof _0x1adeed)[_0x20f74c(0x13a)]('function');}),test('HelpPanel component can be imported',async()=>{const _0x50ec4b=a0_0x2288,{HelpPanel:_0x52314b}=await import(_0x50ec4b(0x137));expect(_0x52314b)[_0x50ec4b(0x12b)](),expect(typeof _0x52314b)[_0x50ec4b(0x13a)](_0x50ec4b(0x141));});}),describe('Phase\x2010\x20-\x20AgentSwitcher\x20-\x20Structure',()=>{test('AgentSwitcher\x20is\x20a\x20function\x20component',async()=>{const _0x23d267=a0_0x2288,{AgentSwitcher:_0x575c56}=await import(_0x23d267(0x144));expect(typeof _0x575c56)[_0x23d267(0x13a)](_0x23d267(0x141)),expect(_0x575c56['prototype']?.[_0x23d267(0x133)])[_0x23d267(0x149)]();}),test('AgentSwitcher is default export',async()=>{const _0x10f63e=a0_0x2288,module=await import(_0x10f63e(0x144));expect(module['default'])['toBeDefined'](),expect(module['default'])['toBe'](module['AgentSwitcher']);});}),describe(a0_0x328389(0x125),()=>{const _0xecb9c5=a0_0x328389;test(_0xecb9c5(0x12d),async()=>{const _0x1d7cd6=_0xecb9c5,{AgentCreator:_0x193a7d}=await import(_0x1d7cd6(0x13d));expect(typeof _0x193a7d)[_0x1d7cd6(0x13a)](_0x1d7cd6(0x141)),expect(_0x193a7d[_0x1d7cd6(0x135)]?.[_0x1d7cd6(0x133)])[_0x1d7cd6(0x149)]();}),test('AgentCreator is default export',async()=>{const _0x5d2db2=_0xecb9c5,module=await import(_0x5d2db2(0x13d));expect(module['default'])['toBeDefined'](),expect(module['default'])['toBe'](module[_0x5d2db2(0x130)]);});}),describe(a0_0x328389(0x14b),()=>{const _0xe623e3=a0_0x328389;test(_0xe623e3(0x124),async()=>{const _0x42cc07=_0xe623e3,{SettingsPanel:_0x65037c}=await import(_0x42cc07(0x13e));expect(typeof _0x65037c)[_0x42cc07(0x13a)]('function'),expect(_0x65037c['prototype']?.['render'])['toBeUndefined']();}),test('SettingsPanel is default export',async()=>{const _0x78bbe9=_0xe623e3,module=await import('../../components/SettingsPanel.js');expect(module[_0x78bbe9(0x146)])['toBeDefined'](),expect(module[_0x78bbe9(0x146)])[_0x78bbe9(0x13a)](module['SettingsPanel']);});}),describe(a0_0x328389(0x139),()=>{test('SearchPanel\x20is\x20a\x20function\x20component',async()=>{const _0x478806=a0_0x2288,{SearchPanel:_0x1504a4}=await import(_0x478806(0x12e));expect(typeof _0x1504a4)[_0x478806(0x13a)]('function'),expect(_0x1504a4[_0x478806(0x135)]?.['render'])[_0x478806(0x149)]();}),test('SearchPanel is default export',async()=>{const _0x1062c2=a0_0x2288,module=await import(_0x1062c2(0x12e));expect(module['default'])['toBeDefined'](),expect(module['default'])[_0x1062c2(0x13a)](module['SearchPanel']);});}),describe(a0_0x328389(0x142),()=>{test('HelpPanel\x20is\x20a\x20function\x20component',async()=>{const _0x4e0cb4=a0_0x2288,{HelpPanel:_0x463361}=await import(_0x4e0cb4(0x137));expect(typeof _0x463361)[_0x4e0cb4(0x13a)]('function'),expect(_0x463361['prototype']?.['render'])['toBeUndefined']();}),test('HelpPanel is default export',async()=>{const _0x3a61e8=a0_0x2288,module=await import(_0x3a61e8(0x137));expect(module['default'])[_0x3a61e8(0x12b)](),expect(module[_0x3a61e8(0x146)])['toBe'](module['HelpPanel']);});}),describe('Phase\x2010\x20-\x20Integration\x20with\x20Layout',()=>{test('Layout component can import all Phase 10 components',async()=>{const _0x1a343e=a0_0x2288,[_0x4217b0,_0x3be7c0,_0x1c42d1,_0xba7407,_0x3cecf5]=await Promise['all']([import(_0x1a343e(0x144)),import(_0x1a343e(0x13d)),import('../../components/SettingsPanel.js'),import(_0x1a343e(0x12e)),import(_0x1a343e(0x137))]);expect(_0x4217b0[_0x1a343e(0x134)])['toBeDefined'](),expect(_0x3be7c0[_0x1a343e(0x130)])['toBeDefined'](),expect(_0x1c42d1['SettingsPanel'])[_0x1a343e(0x12b)](),expect(_0xba7407['SearchPanel'])['toBeDefined'](),expect(_0x3cecf5['HelpPanel'])['toBeDefined']();}),test('Layout\x20component\x20still\x20loads\x20after\x20Phase\x2010\x20additions',async()=>{const _0x2d8c25=a0_0x2288,{Layout:_0x559138}=await import('../../components/Layout.js');expect(_0x559138)['toBeDefined'](),expect(typeof _0x559138)[_0x2d8c25(0x13a)]('function');}),test('All\x20Phase\x2010\x20components\x20use\x20React\x20and\x20Ink',async()=>{const _0x1aa8ea=a0_0x2288,_0x2b0a63=await import('react'),_0x37912b=await import(_0x1aa8ea(0x138));expect(_0x2b0a63['createElement'])['toBeDefined'](),expect(_0x2b0a63[_0x1aa8ea(0x140)])['toBeDefined'](),expect(_0x37912b[_0x1aa8ea(0x126)])[_0x1aa8ea(0x12b)](),expect(_0x37912b[_0x1aa8ea(0x13b)])[_0x1aa8ea(0x12b)](),expect(_0x37912b[_0x1aa8ea(0x12f)])[_0x1aa8ea(0x12b)]();});}),describe(a0_0x328389(0x12a),()=>{const _0x4216e2=a0_0x328389;test('AgentCreator\x20defines\x20step\x20constants',async()=>{const _0x3521f1=a0_0x2288,module=await import(_0x3521f1(0x13d));expect(module['AgentCreator'])[_0x3521f1(0x12b)]();}),test(_0x4216e2(0x13f),async()=>{const _0x4a40bd=_0x4216e2,module=await import(_0x4a40bd(0x13e));expect(module['SettingsPanel'])[_0x4a40bd(0x12b)]();}),test(_0x4216e2(0x136),async()=>{const _0x54d4f0=_0x4216e2,module=await import('../../components/HelpPanel.js');expect(module[_0x54d4f0(0x122)])[_0x54d4f0(0x12b)]();});}),describe(a0_0x328389(0x12c),()=>{test('All components can be imported together without conflicts',async()=>{const _0x2c128f=a0_0x2288,_0x2195ee=await Promise['all']([import('../../components/AgentSwitcher.js'),import(_0x2c128f(0x13d)),import(_0x2c128f(0x13e)),import('../../components/SearchPanel.js'),import(_0x2c128f(0x137))]),_0x532f63=_0x2195ee['map'](_0xa47854=>Object['keys'](_0xa47854)[0x0]),_0x1cd53f=new Set(_0x532f63);expect(_0x1cd53f['size'])['toBe'](_0x532f63[_0x2c128f(0x148)]);});});
@@ -1 +1 @@
1
- const a0_0x4ec4f6=a0_0x3451;(function(_0x18ccea,_0x4a7fe2){const _0x10be19=a0_0x3451,_0x3c2a86=_0x18ccea();while(!![]){try{const _0x19a712=-parseInt(_0x10be19(0x166))/0x1*(-parseInt(_0x10be19(0x174))/0x2)+-parseInt(_0x10be19(0x148))/0x3*(-parseInt(_0x10be19(0x16e))/0x4)+parseInt(_0x10be19(0x178))/0x5*(-parseInt(_0x10be19(0x168))/0x6)+parseInt(_0x10be19(0x176))/0x7*(-parseInt(_0x10be19(0x17b))/0x8)+parseInt(_0x10be19(0x155))/0x9*(parseInt(_0x10be19(0x15d))/0xa)+parseInt(_0x10be19(0x165))/0xb+-parseInt(_0x10be19(0x17c))/0xc*(parseInt(_0x10be19(0x16b))/0xd);if(_0x19a712===_0x4a7fe2)break;else _0x3c2a86['push'](_0x3c2a86['shift']());}catch(_0x1ecf3c){_0x3c2a86['push'](_0x3c2a86['shift']());}}}(a0_0x305d,0xa0422));import{describe,test,expect}from'@jest/globals';function a0_0x3451(_0x3f64b0,_0xa2c0d1){_0x3f64b0=_0x3f64b0-0x146;const _0x305d37=a0_0x305d();let _0x34512f=_0x305d37[_0x3f64b0];if(a0_0x3451['XzhfiA']===undefined){var _0x31b0dd=function(_0x3ba4f9){const _0x5dd8fe='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1a1d26='',_0x49c0ab='';for(let _0x5c6d99=0x0,_0x37c251,_0x55eb1b,_0x44ebb4=0x0;_0x55eb1b=_0x3ba4f9['charAt'](_0x44ebb4++);~_0x55eb1b&&(_0x37c251=_0x5c6d99%0x4?_0x37c251*0x40+_0x55eb1b:_0x55eb1b,_0x5c6d99++%0x4)?_0x1a1d26+=String['fromCharCode'](0xff&_0x37c251>>(-0x2*_0x5c6d99&0x6)):0x0){_0x55eb1b=_0x5dd8fe['indexOf'](_0x55eb1b);}for(let _0x52af54=0x0,_0x301e75=_0x1a1d26['length'];_0x52af54<_0x301e75;_0x52af54++){_0x49c0ab+='%'+('00'+_0x1a1d26['charCodeAt'](_0x52af54)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x49c0ab);};a0_0x3451['jlzmQK']=_0x31b0dd,a0_0x3451['WtosOa']={},a0_0x3451['XzhfiA']=!![];}const _0x1bd9e9=_0x305d37[0x0],_0x1c7708=_0x3f64b0+_0x1bd9e9,_0x1c362b=a0_0x3451['WtosOa'][_0x1c7708];return!_0x1c362b?(_0x34512f=a0_0x3451['jlzmQK'](_0x34512f),a0_0x3451['WtosOa'][_0x1c7708]=_0x34512f):_0x34512f=_0x1c362b,_0x34512f;}function a0_0x305d(){const _0x5c27cd=['mJyXmZy1y1LeB3vk','Dg9czurLzMLUzwq','lI4VlI4VC3rHDguVDxnLqwDLBNrdB250CM9SlMPZ','ne1lB0fzEG','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','tu9eruXFq0furuDpuLK','quDftLq','quDftLrFtu9erq','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gtw9KzwWGrMLSDgvYAw5N','mtKYnJuXmfLqCurxuW','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1VzguGyw5Kig1VzgvSignOyw5NzsbLDMvUDhm','mtm5mtm4m2LMvfHHyq','quDftLrFtu9ersbJB25ZDgfUDhmGyxjLigrLzMLUzwq','otbfwgHUuxm','quDftLrtx01prevFr0vu','tuLduK9tt0zu','mtz3AMH3rvG','mtu2AgfMCuvv','AgfZsgfUzgXLCG','DxnLqwDLBNrdB250CM9S','yw50AhjVCgLJ','Dg9czq','BwLJCM9ZB2z0','tu9eruXFq0furuDpuLKGDMfSDwvZigfYzsbSB3DLCMnHC2u','teXnx01prevmuW','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZifzHBgLKyxrPB24','quDftLrtx01prevFu0vu','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','mJC1ntiZrLDZzwTY','zMLSDgvY','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','oMfNzw50swq','z3b0ltq','y2f0zwDVCNK','A2v5CW','qvbjx0vorfbpsu5uuW','DxnLqwDLBNrdB250CM9SihjLDhvYBNmGzxHWzwn0zwqGAw50zxjMywnLihnOyxbL','DxnLqwDLBNrdB250CM9SigHVB2SGAw50zwDYyxrLCYb3AxrOifnLC3nPB24Gyw5Kie1LC3nHz2vsB3v0zxi','u2vZC2LVBK1HBMfNzxi','BgvUz3rO','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','nde0ouvfBxHIvG','Dg9nyxrJAa','l2fWAs9Hz2vUDhmVoMfNzw50swqVBw9Kzq','qu5usfjpueLd','tw9KzsbHBMqGBw9KzwWGqvbjigvUzhbVAw50CYbHCMuGzgvMAw5Lza','v2vIu29JA2v0twfUywDLCG','zNvUy3rPB24','Dg9dB250ywLU','nJC5meTgrhDHzW','lI4VlI4VyxbPl3nLC3nPB24UANm','zgvMyxvSDa','quDftLrFtu9ersbOyxmGzxHHy3rSEsb0D28GBw9Kzxm','B3bLBMfP','revfufnfruS','t1bftKfj','q0Hbva','otG5nta1mgjyuKr5ua','mxDyD0vLvG','Bg9JywXOB3n0','mZe3ndq4CMTXwuXt','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','twvZC2fNzvjVDxrLCG'];a0_0x305d=function(){return _0x5c27cd;};return a0_0x305d();}describe('Agent\x20Control\x20Management\x20-\x20Imports',()=>{test('useAgentControl hook can be imported',async()=>{const _0x588f9d=a0_0x3451,{useAgentControl:_0x1a1d26}=await import(_0x588f9d(0x16d));expect(_0x1a1d26)['toBeDefined'](),expect(typeof _0x1a1d26)[_0x588f9d(0x180)](_0x588f9d(0x15b));}),test('useAgentControl is default export',async()=>{const _0x373616=a0_0x3451,module=await import(_0x373616(0x16d));expect(module[_0x373616(0x15f)])['toBeDefined'](),expect(typeof module['default'])[_0x373616(0x180)](_0x373616(0x15b)),expect(module[_0x373616(0x15f)])[_0x373616(0x180)](module[_0x373616(0x17e)]);});}),describe(a0_0x4ec4f6(0x16f),()=>{const _0x153a60=a0_0x4ec4f6;test(_0x153a60(0x177),async()=>{const _0x48ab51=_0x153a60,{AGENT_MODE:_0x49c0ab}=await import('../../config/constants.js');expect(_0x49c0ab)['toBeDefined'](),expect(_0x49c0ab[_0x48ab51(0x164)])[_0x48ab51(0x180)](_0x48ab51(0x164)),expect(_0x49c0ab[_0x48ab51(0x171)])['toBe'](_0x48ab51(0x171));}),test('MODEL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x24adb4=_0x153a60,{MODEL_CATEGORY:_0x5c6d99}=await import(_0x24adb4(0x169));expect(_0x5c6d99)['toBeDefined'](),expect(_0x5c6d99[_0x24adb4(0x158)])['toBe'](_0x24adb4(0x17f)),expect(_0x5c6d99[_0x24adb4(0x163)])[_0x24adb4(0x180)](_0x24adb4(0x161)),expect(_0x5c6d99['DEEPSEEK'])[_0x24adb4(0x180)]('deepseek'),expect(_0x5c6d99['MICROSOFT'])['toBe'](_0x24adb4(0x181));}),test(_0x153a60(0x159),async()=>{const _0x7929f9=_0x153a60,{API_ENDPOINTS:_0x37c251}=await import('../../config/constants.js');expect(_0x37c251['AGENTS_MODE_SET'])[_0x7929f9(0x180)]('/api/agents/:agentId/mode'),expect(_0x37c251[_0x7929f9(0x179)])[_0x7929f9(0x180)](_0x7929f9(0x157)),expect(_0x37c251[_0x7929f9(0x183)])['toBe']('/api/llm/models');}),test(_0x153a60(0x175),async()=>{const _0xc10fd8=_0x153a60,{WS_MESSAGE_TYPE:_0x55eb1b}=await import(_0xc10fd8(0x169));expect(_0x55eb1b)[_0xc10fd8(0x16c)](),expect(_0x55eb1b['AGENT_MODE_CHANGED'])['toBe']('agent_mode_changed');});}),describe('Agent\x20Control\x20Management\x20-\x20Integration',()=>{const _0x4f9baa=a0_0x4ec4f6;test(_0x4f9baa(0x151),async()=>{const _0x2454a2=_0x4f9baa,{useAgentControl:_0x44ebb4}=await import('../../state/useAgentControl.js'),{SessionManager:_0x52af54}=await import(_0x2454a2(0x15e)),{MessageRouter:_0x301e75}=await import(_0x2454a2(0x146)),{WebSocketManager:_0x58ca55}=await import(_0x2454a2(0x154)),_0x7aac74=new _0x52af54(_0x2454a2(0x167),0x1f90),_0x1e7431=new _0x58ca55('localhost',0x1f90),_0x4bc23f=new _0x301e75(_0x1e7431);expect(_0x7aac74)['toBeDefined'](),expect(_0x4bc23f)[_0x2454a2(0x16c)](),expect(typeof _0x44ebb4)[_0x2454a2(0x180)](_0x2454a2(0x15b));}),test('Full agent control stack can be imported together',async()=>{const _0x3b4e0c=_0x4f9baa,[_0x1ccdb2,_0x251dee,_0x2548a6,_0x1cf2b9,_0x23c06b]=await Promise['all']([import(_0x3b4e0c(0x169)),import('../../api/session.js'),import(_0x3b4e0c(0x154)),import('../../api/messageRouter.js'),import(_0x3b4e0c(0x16d))]);expect(_0x1ccdb2[_0x3b4e0c(0x172)])[_0x3b4e0c(0x16c)](),expect(_0x1ccdb2[_0x3b4e0c(0x170)])['toBeDefined'](),expect(_0x1ccdb2[_0x3b4e0c(0x14f)])[_0x3b4e0c(0x16c)](),expect(_0x251dee[_0x3b4e0c(0x152)])[_0x3b4e0c(0x16c)](),expect(_0x2548a6[_0x3b4e0c(0x15a)])[_0x3b4e0c(0x16c)](),expect(_0x1cf2b9[_0x3b4e0c(0x16a)])['toBeDefined'](),expect(_0x23c06b[_0x3b4e0c(0x17e)])[_0x3b4e0c(0x16c)]();});}),describe('Agent\x20Control\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{test('Agent\x20mode\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x2fa66a=a0_0x3451,{API_ENDPOINTS:_0x4e1ff6}=await import(_0x2fa66a(0x169));expect(_0x4e1ff6[_0x2fa66a(0x185)])[_0x2fa66a(0x156)](/^\/api\/agents/),expect(_0x4e1ff6[_0x2fa66a(0x179)])[_0x2fa66a(0x156)](/^\/api\/agents/),expect(_0x4e1ff6['AGENTS_MODE_SET'])['toContain'](':agentId'),expect(_0x4e1ff6['AGENTS_MODE_GET'])['toContain'](_0x2fa66a(0x14b));}),test('LLM\x20models\x20endpoint\x20exists',async()=>{const _0x3a15af=a0_0x3451,{API_ENDPOINTS:_0x51794e}=await import(_0x3a15af(0x169));expect(_0x51794e['LLM_MODELS'])['toBeDefined'](),expect(_0x51794e['LLM_MODELS'])[_0x3a15af(0x180)]('/api/llm/models');}),test('Orchestrator\x20endpoint\x20exists\x20for\x20model\x20and\x20config\x20operations',async()=>{const _0x4f492a=a0_0x3451,{API_ENDPOINTS:_0x992ab6}=await import(_0x4f492a(0x169));expect(_0x992ab6['ORCHESTRATOR'])['toBeDefined'](),expect(_0x992ab6['ORCHESTRATOR'])[_0x4f492a(0x180)]('/api/orchestrator');});}),describe(a0_0x4ec4f6(0x14a),()=>{const _0x4e8d0a=a0_0x4ec4f6;test(_0x4e8d0a(0x150),async()=>{const _0x17d375=_0x4e8d0a,{useAgentControl:_0x1d24f2}=await import('../../state/useAgentControl.js');expect(_0x1d24f2[_0x17d375(0x153)])['toBe'](0x3);});}),describe(a0_0x4ec4f6(0x184),()=>{const _0x212063=a0_0x4ec4f6;test(_0x212063(0x160),async()=>{const _0xb2fc76=_0x212063,{AGENT_MODE:_0x4dc8aa}=await import('../../config/constants.js'),_0x1a10f7=Object[_0xb2fc76(0x14e)](_0x4dc8aa);expect(_0x1a10f7['length'])[_0xb2fc76(0x180)](0x2),expect(_0x1a10f7)[_0xb2fc76(0x15c)](_0xb2fc76(0x164)),expect(_0x1a10f7)['toContain'](_0xb2fc76(0x171));}),test('AGENT_MODE\x20values\x20are\x20uppercase',async()=>{const _0x57b18d=_0x212063,{AGENT_MODE:_0x172dcc}=await import(_0x57b18d(0x169));expect(_0x172dcc[_0x57b18d(0x164)])['toBe'](_0x57b18d(0x164)),expect(_0x172dcc['AGENT'])['toBe'](_0x57b18d(0x171)),expect(_0x172dcc['CHAT'])[_0x57b18d(0x180)](_0x172dcc[_0x57b18d(0x164)]['toUpperCase']()),expect(_0x172dcc[_0x57b18d(0x171)])['toBe'](_0x172dcc[_0x57b18d(0x171)]['toUpperCase']());}),test(_0x212063(0x182),async()=>{const _0xefd851=_0x212063,{MODEL_CATEGORY:_0x52340d}=await import(_0xefd851(0x169));expect(_0x52340d[_0xefd851(0x158)])[_0xefd851(0x180)](_0xefd851(0x17f)),expect(_0x52340d['OPENAI'])[_0xefd851(0x180)](_0xefd851(0x161)),expect(_0x52340d['DEEPSEEK'])['toBe']('deepseek'),expect(_0x52340d[_0xefd851(0x17a)])[_0xefd851(0x180)](_0xefd851(0x181)),expect(_0x52340d['ANTHROPIC'])['toBe'](_0x52340d[_0xefd851(0x158)]['toLowerCase']()),expect(_0x52340d[_0xefd851(0x163)])['toBe'](_0x52340d[_0xefd851(0x163)]['toLowerCase']());}),test('MODEL_CATEGORY\x20includes\x20major\x20LLM\x20providers',async()=>{const _0x1fa7fb=_0x212063,{MODEL_CATEGORY:_0x94aec2}=await import(_0x1fa7fb(0x169)),_0x17c4d0=Object['keys'](_0x94aec2);expect(_0x17c4d0)[_0x1fa7fb(0x15c)]('ANTHROPIC'),expect(_0x17c4d0)['toContain'](_0x1fa7fb(0x163)),expect(_0x17c4d0)['toContain'](_0x1fa7fb(0x162)),expect(_0x17c4d0)[_0x1fa7fb(0x15c)](_0x1fa7fb(0x17a));});}),describe(a0_0x4ec4f6(0x147),()=>{test('MessageRouter\x20has\x20mode\x20change\x20event\x20handler\x20registered',async()=>{const _0x3cd951=a0_0x3451,{MessageRouter:_0x5289ed}=await import(_0x3cd951(0x146)),{WebSocketManager:_0x162f26}=await import(_0x3cd951(0x154)),{WS_MESSAGE_TYPE:_0x5f2df0}=await import('../../config/constants.js'),_0x1dc67c=new _0x162f26(_0x3cd951(0x167),0x1f90),_0x6120a4=new _0x5289ed(_0x1dc67c);expect(_0x6120a4[_0x3cd951(0x17d)](_0x5f2df0['AGENT_MODE_CHANGED']))[_0x3cd951(0x180)](!![]);});}),describe('Agent\x20Control\x20Management\x20-\x20Mode\x20Switching\x20Logic',()=>{test('AGENT_MODE\x20supports\x20toggling\x20between\x20modes',async()=>{const _0x49c9fd=a0_0x3451,{AGENT_MODE:_0x41fbce}=await import('../../config/constants.js');let _0x455dcc=_0x41fbce[_0x49c9fd(0x164)],_0x15e6c7=_0x455dcc===_0x41fbce['CHAT']?_0x41fbce[_0x49c9fd(0x171)]:_0x41fbce['CHAT'];expect(_0x15e6c7)['toBe'](_0x41fbce[_0x49c9fd(0x171)]),_0x455dcc=_0x41fbce[_0x49c9fd(0x171)],_0x15e6c7=_0x455dcc===_0x41fbce['CHAT']?_0x41fbce['AGENT']:_0x41fbce['CHAT'],expect(_0x15e6c7)['toBe'](_0x41fbce[_0x49c9fd(0x164)]);});}),describe(a0_0x4ec4f6(0x173),()=>{test('MODEL_CATEGORY\x20can\x20be\x20used\x20to\x20filter\x20models\x20by\x20category',async()=>{const _0x46d85e=a0_0x3451,{MODEL_CATEGORY:_0x2437a6}=await import('../../config/constants.js'),_0x517095=[{'id':'claude-3-5-sonnet','category':_0x2437a6['ANTHROPIC']},{'id':'gpt-4','category':_0x2437a6[_0x46d85e(0x163)]},{'id':'deepseek-chat','category':_0x2437a6[_0x46d85e(0x162)]}],_0x1d0f90=_0x517095['filter'](_0x182dce=>_0x182dce[_0x46d85e(0x14d)]===_0x2437a6[_0x46d85e(0x158)]),_0x86849b=_0x517095[_0x46d85e(0x149)](_0x3b2ac9=>_0x3b2ac9[_0x46d85e(0x14d)]===_0x2437a6['OPENAI']);expect(_0x1d0f90['length'])[_0x46d85e(0x180)](0x1),expect(_0x1d0f90[0x0]['id'])['toBe']('claude-3-5-sonnet'),expect(_0x86849b[_0x46d85e(0x153)])[_0x46d85e(0x180)](0x1),expect(_0x86849b[0x0]['id'])['toBe'](_0x46d85e(0x14c));});});
1
+ const a0_0x5c75a7=a0_0x2fab;function a0_0x2fab(_0x50a0f2,_0x419a87){_0x50a0f2=_0x50a0f2-0x190;const _0x36cca9=a0_0x36cc();let _0x2fab60=_0x36cca9[_0x50a0f2];if(a0_0x2fab['HfqSjD']===undefined){var _0xdb0158=function(_0x394f4c){const _0x69e5a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x25dd00='',_0x38656a='';for(let _0xb4f693=0x0,_0x55ad5f,_0x3ebbcb,_0x2f4919=0x0;_0x3ebbcb=_0x394f4c['charAt'](_0x2f4919++);~_0x3ebbcb&&(_0x55ad5f=_0xb4f693%0x4?_0x55ad5f*0x40+_0x3ebbcb:_0x3ebbcb,_0xb4f693++%0x4)?_0x25dd00+=String['fromCharCode'](0xff&_0x55ad5f>>(-0x2*_0xb4f693&0x6)):0x0){_0x3ebbcb=_0x69e5a['indexOf'](_0x3ebbcb);}for(let _0x53fcf5=0x0,_0x4d6008=_0x25dd00['length'];_0x53fcf5<_0x4d6008;_0x53fcf5++){_0x38656a+='%'+('00'+_0x25dd00['charCodeAt'](_0x53fcf5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x38656a);};a0_0x2fab['FXgOmr']=_0xdb0158,a0_0x2fab['NsIpmj']={},a0_0x2fab['HfqSjD']=!![];}const _0x4bd6c5=_0x36cca9[0x0],_0x3f23ea=_0x50a0f2+_0x4bd6c5,_0xd8fd98=a0_0x2fab['NsIpmj'][_0x3f23ea];return!_0xd8fd98?(_0x2fab60=a0_0x2fab['FXgOmr'](_0x2fab60),a0_0x2fab['NsIpmj'][_0x3f23ea]=_0x2fab60):_0x2fab60=_0xd8fd98,_0x2fab60;}function a0_0x36cc(){const _0x56047e=['t3jJAgvZDhjHDg9YigvUzhbVAw50igv4Axn0CYbMB3iGBw9KzwWGyw5KignVBMzPzYbVCgvYyxrPB25Z','A2v5CW','zNvUy3rPB24','l2fWAs9SBg0VBw9KzwXZ','zMLSDgvY','yw50AhjVCgLJ','l2fWAs9VCMnOzxn0CMf0B3i','qu5usfjpueLd','zgvMyxvSDa','Dg9czurLzMLUzwq','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','Dg9nyxrJAa','tuLduK9tt0zu','y2f0zwDVCNK','mtK4mZC5m3v1B3HYrq','Bg9JywXOB3n0','nMnVrKLoEa','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','lI4VlI4VyxbPl3nLC3nPB24UANm','teXnx01prevmuW','u2vZC2LVBK1HBMfNzxi','B3bLBMfP','mtq5nNvlu0n6Cq','quDftLrFtu9erv9dsefor0ve','q0Hbva','tu9eruXFq0furuDpuLKGy2fUigjLihvZzwqGDg8GzMLSDgvYig1VzgvSCYbIEsbJyxrLz29YEq','ndu3mdC5wwDsAuDT','quDftLrtx01prevFu0vu','qvbjx0vorfbpsu5uuW','t1bftKfj','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZifzHBgLKyxrPB24','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','Dg9dB250ywLU','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0GqvbjievUzhbVAw50CYbwywXPzgf0Aw9U','zgvLChnLzwSTy2HHDa','quDftLq','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','mtyWntm1oe1rsgjkDa','quDftLrFtu9erq','quDftLrtx01prevFr0vu','tw9KzsbHBMqGBw9KzwWGqvbjigvUzhbVAw50CYbHCMuGzgvMAw5Lza','quDftLrFtu9ersbZDxbWB3j0CYb0B2DNBgLUzYbIzxr3zwvUig1VzgvZ','Dg9vChbLCKnHC2u','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','mta5ofvgEuH3sa','m0XfEwzTAa','mtyYmZy5nJHPEwXNu1a','y2XHDwrLltmTns1ZB25Uzxq','BgvUz3rO','oMfNzw50swq','tu9eruXFq0furuDpuLKGDMfSDwvZigfYzsbSB3DLCMnHC2u','l2fWAs9Hz2vUDhmVoMfNzw50swqVBw9Kzq','v2vIu29JA2v0twfUywDLCG','Dg9czq','DxnLqwDLBNrdB250CM9SihjLDhvYBNmGzxHWzwn0zwqGAw50zxjMywnLihnOyxbL','mtb4zxPMtLO','mJKZnJyXnMXlCg5mtq','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1VzguGyw5Kig1VzgvSignOyw5NzsbLDMvUDhm','zgvLChnLzwS','revfufnfruS','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','mJC2mdK5mgD5uwrRBG','DxnLqwDLBNrdB250CM9S','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ'];a0_0x36cc=function(){return _0x56047e;};return a0_0x36cc();}(function(_0x2dbd40,_0x58cfa4){const _0x16e329=a0_0x2fab,_0x3d4444=_0x2dbd40();while(!![]){try{const _0x48856e=-parseInt(_0x16e329(0x1c8))/0x1+parseInt(_0x16e329(0x193))/0x2+-parseInt(_0x16e329(0x19b))/0x3*(-parseInt(_0x16e329(0x1a6))/0x4)+parseInt(_0x16e329(0x1ab))/0x5+-parseInt(_0x16e329(0x1be))/0x6*(-parseInt(_0x16e329(0x1bc))/0x7)+-parseInt(_0x16e329(0x1c4))/0x8*(-parseInt(_0x16e329(0x19a))/0x9)+-parseInt(_0x16e329(0x1a5))/0xa*(parseInt(_0x16e329(0x19c))/0xb);if(_0x48856e===_0x58cfa4)break;else _0x3d4444['push'](_0x3d4444['shift']());}catch(_0x3676d2){_0x3d4444['push'](_0x3d4444['shift']());}}}(a0_0x36cc,0x70cfd));import{describe,test,expect}from'@jest/globals';describe('Agent\x20Control\x20Management\x20-\x20Imports',()=>{test('useAgentControl hook can be imported',async()=>{const _0xdd49bd=a0_0x2fab,{useAgentControl:_0x25dd00}=await import('../../state/useAgentControl.js');expect(_0x25dd00)[_0xdd49bd(0x1b7)](),expect(typeof _0x25dd00)['toBe'](_0xdd49bd(0x1b0));}),test('useAgentControl is default export',async()=>{const _0x42e7ff=a0_0x2fab,module=await import('../../state/useAgentControl.js');expect(module['default'])['toBeDefined'](),expect(typeof module['default'])['toBe'](_0x42e7ff(0x1b0)),expect(module[_0x42e7ff(0x1b6)])['toBe'](module['useAgentControl']);});}),describe(a0_0x5c75a7(0x1ad),()=>{const _0xd89af8=a0_0x5c75a7;test('AGENT_MODE\x20constants\x20are\x20defined',async()=>{const _0x3de6eb=a0_0x2fab,{AGENT_MODE:_0x38656a}=await import('../../config/constants.js');expect(_0x38656a)['toBeDefined'](),expect(_0x38656a['CHAT'])['toBe'](_0x3de6eb(0x1c6)),expect(_0x38656a['AGENT'])[_0x3de6eb(0x1a3)]('AGENT');}),test('MODEL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x463215=a0_0x2fab,{MODEL_CATEGORY:_0xb4f693}=await import('../../config/constants.js');expect(_0xb4f693)[_0x463215(0x1b7)](),expect(_0xb4f693[_0x463215(0x1b5)])['toBe']('anthropic'),expect(_0xb4f693['OPENAI'])['toBe'](_0x463215(0x1c3)),expect(_0xb4f693['DEEPSEEK'])['toBe'](_0x463215(0x1a8)),expect(_0xb4f693['MICROSOFT'])[_0x463215(0x1a3)]('microsoft');}),test(_0xd89af8(0x196),async()=>{const _0x4f67b6=_0xd89af8,{API_ENDPOINTS:_0x55ad5f}=await import(_0x4f67b6(0x1bf));expect(_0x55ad5f['AGENTS_MODE_SET'])['toBe'](_0x4f67b6(0x1a1)),expect(_0x55ad5f['AGENTS_MODE_GET'])[_0x4f67b6(0x1a3)]('/api/agents/:agentId/mode'),expect(_0x55ad5f['LLM_MODELS'])['toBe'](_0x4f67b6(0x1b1));}),test(_0xd89af8(0x1a7),async()=>{const _0x83d29d=_0xd89af8,{WS_MESSAGE_TYPE:_0x3ebbcb}=await import(_0x83d29d(0x1bf));expect(_0x3ebbcb)['toBeDefined'](),expect(_0x3ebbcb[_0x83d29d(0x1c5)])['toBe']('agent_mode_changed');});}),describe(a0_0x5c75a7(0x192),()=>{test('useAgentControl\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x4326f2=a0_0x2fab,{useAgentControl:_0x2f4919}=await import('../../state/useAgentControl.js'),{SessionManager:_0x53fcf5}=await import('../../api/session.js'),{MessageRouter:_0x4d6008}=await import(_0x4326f2(0x1b8)),{WebSocketManager:_0x423f2b}=await import(_0x4326f2(0x1aa)),_0x305641=new _0x53fcf5(_0x4326f2(0x1bd),0x1f90),_0x345a72=new _0x423f2b('localhost',0x1f90),_0x1cab16=new _0x4d6008(_0x345a72);expect(_0x305641)['toBeDefined'](),expect(_0x1cab16)[_0x4326f2(0x1b7)](),expect(typeof _0x2f4919)['toBe']('function');}),test('Full agent control stack can be imported together',async()=>{const _0x52be22=a0_0x2fab,[_0x1020c9,_0x9344ca,_0x4c3d5c,_0x65feef,_0x52f9bc]=await Promise['all']([import(_0x52be22(0x1bf)),import(_0x52be22(0x1c0)),import('../../api/websocket.js'),import(_0x52be22(0x1b8)),import('../../state/useAgentControl.js')]);expect(_0x1020c9[_0x52be22(0x194)])[_0x52be22(0x1b7)](),expect(_0x1020c9['MODEL_CATEGORY'])[_0x52be22(0x1b7)](),expect(_0x1020c9[_0x52be22(0x1ca)])['toBeDefined'](),expect(_0x9344ca[_0x52be22(0x1c2)])[_0x52be22(0x1b7)](),expect(_0x4c3d5c[_0x52be22(0x1a2)])[_0x52be22(0x1b7)](),expect(_0x65feef['MessageRouter'])['toBeDefined'](),expect(_0x52f9bc[_0x52be22(0x1ac)])[_0x52be22(0x1b7)]();});}),describe(a0_0x5c75a7(0x1cf),()=>{const _0x3f237b=a0_0x5c75a7;test('Agent\x20mode\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0xa0c9f9=a0_0x2fab,{API_ENDPOINTS:_0x170f48}=await import('../../config/constants.js');expect(_0x170f48['AGENTS_MODE_SET'])[_0xa0c9f9(0x1b9)](/^\/api\/agents/),expect(_0x170f48[_0xa0c9f9(0x195)])['toMatch'](/^\/api\/agents/),expect(_0x170f48[_0xa0c9f9(0x1c9)])[_0xa0c9f9(0x1ce)](_0xa0c9f9(0x19f)),expect(_0x170f48['AGENTS_MODE_GET'])['toContain'](':agentId');}),test('LLM\x20models\x20endpoint\x20exists',async()=>{const _0x2cfe47=a0_0x2fab,{API_ENDPOINTS:_0x1e5a67}=await import('../../config/constants.js');expect(_0x1e5a67[_0x2cfe47(0x1c1)])[_0x2cfe47(0x1b7)](),expect(_0x1e5a67[_0x2cfe47(0x1c1)])['toBe']('/api/llm/models');}),test(_0x3f237b(0x1ae),async()=>{const _0x2a5109=_0x3f237b,{API_ENDPOINTS:_0x29ed32}=await import(_0x2a5109(0x1bf));expect(_0x29ed32['ORCHESTRATOR'])[_0x2a5109(0x1b7)](),expect(_0x29ed32['ORCHESTRATOR'])[_0x2a5109(0x1a3)](_0x2a5109(0x1b4));});}),describe(a0_0x5c75a7(0x1cd),()=>{const _0x28868a=a0_0x5c75a7;test(_0x28868a(0x1a4),async()=>{const _0xcc0e90=_0x28868a,{useAgentControl:_0x4c6c6a}=await import('../../state/useAgentControl.js');expect(_0x4c6c6a[_0xcc0e90(0x19e)])[_0xcc0e90(0x1a3)](0x3);});}),describe(a0_0x5c75a7(0x1cc),()=>{const _0x29dbbe=a0_0x5c75a7;test('AGENT_MODE\x20has\x20exactly\x20two\x20modes',async()=>{const _0x2218b9=a0_0x2fab,{AGENT_MODE:_0x4ee83e}=await import(_0x2218b9(0x1bf)),_0x399896=Object[_0x2218b9(0x1af)](_0x4ee83e);expect(_0x399896['length'])['toBe'](0x2),expect(_0x399896)['toContain']('CHAT'),expect(_0x399896)[_0x2218b9(0x1ce)]('AGENT');}),test('AGENT_MODE\x20values\x20are\x20uppercase',async()=>{const _0x5ddebe=a0_0x2fab,{AGENT_MODE:_0x2dd698}=await import('../../config/constants.js');expect(_0x2dd698[_0x5ddebe(0x1c6)])[_0x5ddebe(0x1a3)]('CHAT'),expect(_0x2dd698[_0x5ddebe(0x191)])[_0x5ddebe(0x1a3)](_0x5ddebe(0x191)),expect(_0x2dd698['CHAT'])['toBe'](_0x2dd698['CHAT'][_0x5ddebe(0x198)]()),expect(_0x2dd698['AGENT'])['toBe'](_0x2dd698[_0x5ddebe(0x191)]['toUpperCase']());}),test(_0x29dbbe(0x1a0),async()=>{const _0x4bb588=_0x29dbbe,{MODEL_CATEGORY:_0x26d940}=await import('../../config/constants.js');expect(_0x26d940[_0x4bb588(0x1b5)])['toBe'](_0x4bb588(0x1b3)),expect(_0x26d940['OPENAI'])[_0x4bb588(0x1a3)](_0x4bb588(0x1c3)),expect(_0x26d940[_0x4bb588(0x1a9)])['toBe'](_0x4bb588(0x1a8)),expect(_0x26d940[_0x4bb588(0x1ba)])['toBe']('microsoft'),expect(_0x26d940['ANTHROPIC'])[_0x4bb588(0x1a3)](_0x26d940['ANTHROPIC']['toLowerCase']()),expect(_0x26d940[_0x4bb588(0x1cb)])[_0x4bb588(0x1a3)](_0x26d940['OPENAI']['toLowerCase']());}),test('MODEL_CATEGORY\x20includes\x20major\x20LLM\x20providers',async()=>{const _0x2a6127=_0x29dbbe,{MODEL_CATEGORY:_0x470c4f}=await import(_0x2a6127(0x1bf)),_0xd4660b=Object['keys'](_0x470c4f);expect(_0xd4660b)[_0x2a6127(0x1ce)]('ANTHROPIC'),expect(_0xd4660b)['toContain'](_0x2a6127(0x1cb)),expect(_0xd4660b)[_0x2a6127(0x1ce)]('DEEPSEEK'),expect(_0xd4660b)[_0x2a6127(0x1ce)](_0x2a6127(0x1ba));});}),describe(a0_0x5c75a7(0x199),()=>{test('MessageRouter\x20has\x20mode\x20change\x20event\x20handler\x20registered',async()=>{const _0x4d3183=a0_0x2fab,{MessageRouter:_0x1f8343}=await import(_0x4d3183(0x1b8)),{WebSocketManager:_0xfe1be4}=await import(_0x4d3183(0x1aa)),{WS_MESSAGE_TYPE:_0x3e8887}=await import(_0x4d3183(0x1bf)),_0x3e982b=new _0xfe1be4(_0x4d3183(0x1bd),0x1f90),_0xddf39b=new _0x1f8343(_0x3e982b);expect(_0xddf39b['hasHandler'](_0x3e8887[_0x4d3183(0x1c5)]))['toBe'](!![]);});}),describe('Agent\x20Control\x20Management\x20-\x20Mode\x20Switching\x20Logic',()=>{const _0x2c5f46=a0_0x5c75a7;test(_0x2c5f46(0x197),async()=>{const _0x3c7be0=_0x2c5f46,{AGENT_MODE:_0xa63196}=await import(_0x3c7be0(0x1bf));let _0x3a99f0=_0xa63196[_0x3c7be0(0x1c6)],_0x1a8d6e=_0x3a99f0===_0xa63196[_0x3c7be0(0x1c6)]?_0xa63196[_0x3c7be0(0x191)]:_0xa63196['CHAT'];expect(_0x1a8d6e)['toBe'](_0xa63196['AGENT']),_0x3a99f0=_0xa63196[_0x3c7be0(0x191)],_0x1a8d6e=_0x3a99f0===_0xa63196['CHAT']?_0xa63196['AGENT']:_0xa63196['CHAT'],expect(_0x1a8d6e)['toBe'](_0xa63196[_0x3c7be0(0x1c6)]);});}),describe('Agent\x20Control\x20Management\x20-\x20Model\x20Filtering',()=>{const _0x5d4534=a0_0x5c75a7;test(_0x5d4534(0x1c7),async()=>{const _0x1ac1dc=_0x5d4534,{MODEL_CATEGORY:_0x7817ea}=await import(_0x1ac1dc(0x1bf)),_0x5935b1=[{'id':_0x1ac1dc(0x19d),'category':_0x7817ea[_0x1ac1dc(0x1b5)]},{'id':'gpt-4','category':_0x7817ea['OPENAI']},{'id':_0x1ac1dc(0x190),'category':_0x7817ea['DEEPSEEK']}],_0xaef5e4=_0x5935b1[_0x1ac1dc(0x1b2)](_0x106191=>_0x106191[_0x1ac1dc(0x1bb)]===_0x7817ea['ANTHROPIC']),_0x2999ef=_0x5935b1['filter'](_0x1f3bfb=>_0x1f3bfb[_0x1ac1dc(0x1bb)]===_0x7817ea['OPENAI']);expect(_0xaef5e4[_0x1ac1dc(0x19e)])['toBe'](0x1),expect(_0xaef5e4[0x0]['id'])[_0x1ac1dc(0x1a3)](_0x1ac1dc(0x19d)),expect(_0x2999ef['length'])[_0x1ac1dc(0x1a3)](0x1),expect(_0x2999ef[0x0]['id'])['toBe']('gpt-4');});});
@@ -1 +1 @@
1
- const a0_0xb37efe=a0_0x2583;function a0_0x27f9(){const _0x4f7b3c=['mJrRy3HsyNi','quDftLrtx01fvefeqvrb','qunusvzf','zgf0ys1HBMfSExn0','refuqv9btKfmwvnu','l2fWAs9Hz2vUDhmVoMfNzw50swqVBwv0ywrHDge','mtC5ndaXnLLYEg1sBq','mNHurgvXtq','quDftLrFtu9ersbJB25ZDgfUDhmGyxjLigrLzMLUzwq','mZuZmZa3ovf1Ew1fra','qwDLBNqGtwfUywDLBwvUDcaTienVBNn0yw50CW','zgvMyxvSDa','l2fWAs9Hz2vUDhmVyxzHAwXHyMXL','quDftLrtx1nut1a','Dg9dB250ywLU','quDftLrtx01prevFr0vu','oMfNzw50swq','t1jdsevtvfjbve9s','lI4VlI4VC3rHDguVDxnLqwDLBNrZlMPZ','q1vtve9n','nZi5odCZv2nqBKD6','quDftLrtx01prevFu0vu','Dg9czq','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','mZC4otmYnuHMthnoAa','DxnLqwDLBNrZ','quDftLrFtu9erq','ohv0DhrsDa','Cgf1C2vK','ywn0AxzL','v2vIu29JA2v0twfUywDLCG','q09esu5hx0ftu0Ltvefova','t3jJAgvZDhjHDg9YigvUzhbVAw50igv4Axn0CYbMB3iGywDLBNqGB3bLCMf0Aw9UCW','C3LZDgvTlwfKBwLUAxn0CMf0B3i','mJuWmte4mhzMAgXTBG','mJmWBxjlzKrV','mtiWq092tMj0','y29KAw5NlwfZC2LZDgfUDa','l2fWAs9Hz2vUDhmVoMfNzw50swqVBw9Kzq','ywXS','surmrq','zNvUy3rPB24','ode1mJy2u3zwseXs','Dg9nyxrJAa','mtuZnZyWmZjiA0fwueC','qwDLBNqGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG','Dg9czurLzMLUzwq'];a0_0x27f9=function(){return _0x4f7b3c;};return a0_0x27f9();}function a0_0x2583(_0x5af625,_0x12c3c6){_0x5af625=_0x5af625-0x11e;const _0x27f9c4=a0_0x27f9();let _0x25831e=_0x27f9c4[_0x5af625];if(a0_0x2583['ZufLAD']===undefined){var _0x1c6f78=function(_0x4c59ab){const _0x54dc64='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x36bf9b='',_0x51bebc='';for(let _0x445a3f=0x0,_0xe1780f,_0x5af77a,_0x18c336=0x0;_0x5af77a=_0x4c59ab['charAt'](_0x18c336++);~_0x5af77a&&(_0xe1780f=_0x445a3f%0x4?_0xe1780f*0x40+_0x5af77a:_0x5af77a,_0x445a3f++%0x4)?_0x36bf9b+=String['fromCharCode'](0xff&_0xe1780f>>(-0x2*_0x445a3f&0x6)):0x0){_0x5af77a=_0x54dc64['indexOf'](_0x5af77a);}for(let _0x493557=0x0,_0x447cbe=_0x36bf9b['length'];_0x493557<_0x447cbe;_0x493557++){_0x51bebc+='%'+('00'+_0x36bf9b['charCodeAt'](_0x493557)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x51bebc);};a0_0x2583['upPkGK']=_0x1c6f78,a0_0x2583['jfccTX']={},a0_0x2583['ZufLAD']=!![];}const _0x59de1b=_0x27f9c4[0x0],_0x35cc10=_0x5af625+_0x59de1b,_0x46c836=a0_0x2583['jfccTX'][_0x35cc10];return!_0x46c836?(_0x25831e=a0_0x2583['upPkGK'](_0x25831e),a0_0x2583['jfccTX'][_0x35cc10]=_0x25831e):_0x25831e=_0x46c836,_0x25831e;}(function(_0x2efaf4,_0x476597){const _0x53f597=a0_0x2583,_0x41efce=_0x2efaf4();while(!![]){try{const _0x1db1f9=parseInt(_0x53f597(0x13d))/0x1*(parseInt(_0x53f597(0x131))/0x2)+parseInt(_0x53f597(0x13f))/0x3+parseInt(_0x53f597(0x122))/0x4*(-parseInt(_0x53f597(0x11f))/0x5)+parseInt(_0x53f597(0x136))/0x6*(-parseInt(_0x53f597(0x13c))/0x7)+parseInt(_0x53f597(0x133))/0x8+parseInt(_0x53f597(0x14a))/0x9*(parseInt(_0x53f597(0x12a))/0xa)+-parseInt(_0x53f597(0x129))/0xb*(parseInt(_0x53f597(0x12b))/0xc);if(_0x1db1f9===_0x476597)break;else _0x41efce['push'](_0x41efce['shift']());}catch(_0x1b97ab){_0x41efce['push'](_0x41efce['shift']());}}}(a0_0x27f9,0xebb88));import{describe,test,expect}from'@jest/globals';describe('Agent\x20Management\x20-\x20Imports',()=>{test('useAgents hook can be imported',async()=>{const _0x4c5209=a0_0x2583,{useAgents:_0x36bf9b}=await import(_0x4c5209(0x148));expect(_0x36bf9b)[_0x4c5209(0x135)](),expect(typeof _0x36bf9b)['toBe'](_0x4c5209(0x130));}),test('useAgents is default export',async()=>{const _0x76bdb9=a0_0x2583,module=await import(_0x76bdb9(0x148));expect(module[_0x76bdb9(0x141)])['toBeDefined'](),expect(typeof module['default'])['toBe']('function'),expect(module['default'])['toBe'](module[_0x76bdb9(0x120)]);});}),describe(a0_0xb37efe(0x140),()=>{const _0x5a7a82=a0_0xb37efe;test(_0x5a7a82(0x13e),async()=>{const _0x46bcd8=_0x5a7a82,{AGENT_MODE:_0x51bebc}=await import(_0x46bcd8(0x11e));expect(_0x51bebc)[_0x46bcd8(0x135)](),expect(_0x51bebc['CHAT'])[_0x46bcd8(0x14c)]('CHAT'),expect(_0x51bebc['AGENT'])['toBe']('AGENT');}),test('AGENT_STATUS\x20constants\x20are\x20defined',async()=>{const _0x4e15df=_0x5a7a82,{AGENT_STATUS:_0x445a3f}=await import(_0x4e15df(0x11e));expect(_0x445a3f)[_0x4e15df(0x135)](),expect(_0x445a3f[_0x4e15df(0x138)])['toBe'](_0x4e15df(0x124)),expect(_0x445a3f['PAUSED'])['toBe'](_0x4e15df(0x123)),expect(_0x445a3f[_0x4e15df(0x12f)])[_0x4e15df(0x14c)]('idle'),expect(_0x445a3f['ERROR'])[_0x4e15df(0x14c)]('error'),expect(_0x445a3f['ARCHIVED'])[_0x4e15df(0x14c)]('archived');}),test('Agent\x20API\x20endpoints\x20are\x20defined',async()=>{const _0x53de0c=_0x5a7a82,{API_ENDPOINTS:_0xe1780f}=await import(_0x53de0c(0x11e));expect(_0xe1780f['AGENTS_AVAILABLE'])[_0x53de0c(0x14c)](_0x53de0c(0x142)),expect(_0xe1780f['AGENTS_METADATA'])['toBe'](_0x53de0c(0x13b)),expect(_0xe1780f['AGENTS_IMPORT'])['toBe']('/api/agents/import'),expect(_0xe1780f[_0x53de0c(0x14b)])['toBe']('/api/agents/:agentId/mode'),expect(_0xe1780f['AGENTS_MODE_GET'])[_0x53de0c(0x14c)](_0x53de0c(0x12d)),expect(_0xe1780f['AGENTS_STOP'])[_0x53de0c(0x14c)]('/api/agents/:agentId/stop');}),test('AGENT_TEMPLATES\x20constants\x20are\x20defined',async()=>{const _0x1cb4e2=_0x5a7a82,{AGENT_TEMPLATES:_0x5af77a}=await import('../../config/constants.js');expect(_0x5af77a)['toBeDefined'](),expect(_0x5af77a[_0x1cb4e2(0x126)])[_0x1cb4e2(0x14c)](_0x1cb4e2(0x12c)),expect(_0x5af77a[_0x1cb4e2(0x13a)])['toBe'](_0x1cb4e2(0x139)),expect(_0x5af77a['CREATIVE_WRITER'])['toBe']('creative-writer'),expect(_0x5af77a['SYSTEM_ADMINISTRATOR'])['toBe'](_0x1cb4e2(0x128)),expect(_0x5af77a[_0x1cb4e2(0x149)])[_0x1cb4e2(0x14c)]('custom');});}),describe('Agent\x20Management\x20-\x20Integration',()=>{test('useAgents\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x3e2c2a=a0_0x2583,{useAgents:_0x18c336}=await import('../../state/useAgents.js'),{SessionManager:_0x493557}=await import('../../api/session.js'),{MessageRouter:_0x447cbe}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x9d6006}=await import('../../api/websocket.js'),_0x3d97d4=new _0x493557('localhost',0x1f90),_0x4bd7b8=new _0x9d6006('localhost',0x1f90),_0x3ac482=new _0x447cbe(_0x4bd7b8);expect(_0x3d97d4)[_0x3e2c2a(0x135)](),expect(_0x3ac482)['toBeDefined'](),expect(typeof _0x18c336)['toBe']('function');}),test('Full agent management stack can be imported together',async()=>{const _0x147d7b=a0_0x2583,[_0x526bc5,_0x26ce01,_0x320863,_0x5753b5,_0x195768]=await Promise[_0x147d7b(0x12e)]([import(_0x147d7b(0x11e)),import('../../api/session.js'),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import(_0x147d7b(0x148))]);expect(_0x526bc5[_0x147d7b(0x121)])[_0x147d7b(0x135)](),expect(_0x26ce01['SessionManager'])[_0x147d7b(0x135)](),expect(_0x320863[_0x147d7b(0x125)])[_0x147d7b(0x135)](),expect(_0x5753b5['MessageRouter'])['toBeDefined'](),expect(_0x195768['useAgents'])['toBeDefined']();});}),describe(a0_0xb37efe(0x134),()=>{const _0x31363e=a0_0xb37efe;test('All\x20agent\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x2ca650=a0_0x2583,{API_ENDPOINTS:_0x1d23a9}=await import(_0x2ca650(0x11e));expect(_0x1d23a9['AGENTS_AVAILABLE'])['toMatch'](/^\/api\/agents/),expect(_0x1d23a9[_0x2ca650(0x137)])['toMatch'](/^\/api\/agents/),expect(_0x1d23a9['AGENTS_IMPORT'])['toMatch'](/^\/api\/agents/),expect(_0x1d23a9['AGENTS_MODE_SET'])['toMatch'](/^\/api\/agents/),expect(_0x1d23a9[_0x2ca650(0x145)])['toMatch'](/^\/api\/agents/),expect(_0x1d23a9[_0x2ca650(0x143)])[_0x2ca650(0x132)](/^\/api\/agents/),expect(_0x1d23a9['AGENTS_METADATA'])['toContain'](_0x2ca650(0x146)),expect(_0x1d23a9[_0x2ca650(0x14b)])[_0x2ca650(0x144)](':agentId'),expect(_0x1d23a9['AGENTS_MODE_GET'])['toContain'](_0x2ca650(0x146)),expect(_0x1d23a9['AGENTS_STOP'])[_0x2ca650(0x144)](':agentId');}),test(_0x31363e(0x127),async()=>{const _0x5cdde3=_0x31363e,{API_ENDPOINTS:_0x218db8}=await import(_0x5cdde3(0x11e));expect(_0x218db8['ORCHESTRATOR'])[_0x5cdde3(0x135)](),expect(_0x218db8[_0x5cdde3(0x147)])[_0x5cdde3(0x14c)]('/api/orchestrator');});});
1
+ const a0_0x2aaeee=a0_0xba5d;function a0_0xba5d(_0x5b84b1,_0x4df845){_0x5b84b1=_0x5b84b1-0x8a;const _0x3cbd36=a0_0x3cbd();let _0xba5dec=_0x3cbd36[_0x5b84b1];if(a0_0xba5d['mfPJdo']===undefined){var _0x3a24bd=function(_0x123a55){const _0x1cffb7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4bc6b7='',_0x2e3c21='';for(let _0x1500a8=0x0,_0x5d39a1,_0x4c5000,_0x53ef1b=0x0;_0x4c5000=_0x123a55['charAt'](_0x53ef1b++);~_0x4c5000&&(_0x5d39a1=_0x1500a8%0x4?_0x5d39a1*0x40+_0x4c5000:_0x4c5000,_0x1500a8++%0x4)?_0x4bc6b7+=String['fromCharCode'](0xff&_0x5d39a1>>(-0x2*_0x1500a8&0x6)):0x0){_0x4c5000=_0x1cffb7['indexOf'](_0x4c5000);}for(let _0x400def=0x0,_0x5b0cf1=_0x4bc6b7['length'];_0x400def<_0x5b0cf1;_0x400def++){_0x2e3c21+='%'+('00'+_0x4bc6b7['charCodeAt'](_0x400def)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2e3c21);};a0_0xba5d['MSnveD']=_0x3a24bd,a0_0xba5d['nAuSZi']={},a0_0xba5d['mfPJdo']=!![];}const _0x15d320=_0x3cbd36[0x0],_0x40d280=_0x5b84b1+_0x15d320,_0x342087=a0_0xba5d['nAuSZi'][_0x40d280];return!_0x342087?(_0xba5dec=a0_0xba5d['MSnveD'](_0xba5dec),a0_0xba5d['nAuSZi'][_0x40d280]=_0xba5dec):_0xba5dec=_0x342087,_0xba5dec;}function a0_0x3cbd(){const _0x4b98ce=['quDftLrtx01fvefeqvrb','DxnLqwDLBNrZ','qunusvzf','t3jJAgvZDhjHDg9YigvUzhbVAw50igv4Axn0CYbMB3iGywDLBNqGB3bLCMf0Aw9UCW','Cgf1C2vK','zgvMyxvSDa','mJy3y2nAq1nl','qwDLBNqGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','nZiWm3nVug15sa','mtiWode3nJbJtKDnBKm','l2fWAs9VCMnOzxn0CMf0B3i','mZq4ruPAB2v3','u1Ltvevnx0fetuLosvnuuKfut1i','zNvUy3rPB24','ywn0AxzL','quDftLrtx01prevFu0vu','q1jfqvrjvKvFv1jjvevs','lI4VlI4VyxbPl3nLC3nPB24UANm','v2vIu29JA2v0twfUywDLCG','quDftLq','quDftLrFtu9ersbJB25ZDgfUDhmGyxjLigrLzMLUzwq','oMfNzw50swq','q0Hbva','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','quDftLrFvevnueXbvevtignVBNn0yw50CYbHCMuGzgvMAw5Lza','quDftLrtx0fwquLmqujmrq','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','C3LZDgvTlwfKBwLUAxn0CMf0B3i','qwDLBNqGqvbjigvUzhbVAw50CYbHCMuGzgvMAw5Lza','quDftLrtx1nut1a','Dg9czq','refuqv9btKfmwvnu','Dg9czurLzMLUzwq','otK0otm1D2rbzKLj','yxjJAgL2zwq','quDftLrtx01prevFr0vu','ody3ntu3n1jVD3nlza','nZi3nZq4mhbIzvnpBW','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','qwDLBNqGtwfUywDLBwvUDcaTienVBNn0yw50CW','lI4VlI4VC3rHDguVDxnLqwDLBNrZlMPZ','Dg9dB250ywLU','mJm2mJbJEKnJwLG','y3vZDg9T','mZiYn3HAsxrMsa','l2fWAs9Hz2vUDhmVoMfNzw50swqVBwv0ywrHDge','qwDLBNqGtwfUywDLBwvUDcaTieLTCg9YDhm','Bg9JywXOB3n0','ywXS','mJC2u1rvuMTW','quDftLrFtu9erq','Dg9nyxrJAa'];a0_0x3cbd=function(){return _0x4b98ce;};return a0_0x3cbd();}(function(_0x3c75cc,_0x3d7031){const _0x1a7dea=a0_0xba5d,_0x328c3f=_0x3c75cc();while(!![]){try{const _0x1ac4d7=-parseInt(_0x1a7dea(0xbb))/0x1*(-parseInt(_0x1a7dea(0x8a))/0x2)+-parseInt(_0x1a7dea(0xb9))/0x3*(-parseInt(_0x1a7dea(0xa9))/0x4)+parseInt(_0x1a7dea(0xa0))/0x5+-parseInt(_0x1a7dea(0xb0))/0x6*(parseInt(_0x1a7dea(0xab))/0x7)+parseInt(_0x1a7dea(0xa4))/0x8+-parseInt(_0x1a7dea(0xa3))/0x9+-parseInt(_0x1a7dea(0xbc))/0xa;if(_0x1ac4d7===_0x3d7031)break;else _0x328c3f['push'](_0x328c3f['shift']());}catch(_0x32dc99){_0x328c3f['push'](_0x328c3f['shift']());}}}(a0_0x3cbd,0xa97bc));import{describe,test,expect}from'@jest/globals';describe(a0_0x2aaeee(0xad),()=>{test('useAgents hook can be imported',async()=>{const _0x406611=a0_0xba5d,{useAgents:_0x4bc6b7}=await import(_0x406611(0xa7));expect(_0x4bc6b7)[_0x406611(0x9f)](),expect(typeof _0x4bc6b7)['toBe']('function');}),test('useAgents is default export',async()=>{const _0x545f32=a0_0xba5d,module=await import('../../state/useAgents.js');expect(module[_0x545f32(0xb8)])['toBeDefined'](),expect(typeof module[_0x545f32(0xb8)])['toBe'](_0x545f32(0x8c)),expect(module[_0x545f32(0xb8)])['toBe'](module['useAgents']);});}),describe(a0_0x2aaeee(0xa6),()=>{const _0x32e9a1=a0_0x2aaeee;test(_0x32e9a1(0x93),async()=>{const _0x4ca837=_0x32e9a1,{AGENT_MODE:_0x2e3c21}=await import(_0x4ca837(0xa5));expect(_0x2e3c21)[_0x4ca837(0x9f)](),expect(_0x2e3c21[_0x4ca837(0x95)])['toBe']('CHAT'),expect(_0x2e3c21[_0x4ca837(0x92)])['toBe']('AGENT');}),test('AGENT_STATUS\x20constants\x20are\x20defined',async()=>{const _0x1461af=_0x32e9a1,{AGENT_STATUS:_0x1500a8}=await import(_0x1461af(0xa5));expect(_0x1500a8)['toBeDefined'](),expect(_0x1500a8[_0x1461af(0xb5)])['toBe'](_0x1461af(0x8d)),expect(_0x1500a8['PAUSED'])[_0x1461af(0x9d)](_0x1461af(0xb7)),expect(_0x1500a8['IDLE'])['toBe']('idle'),expect(_0x1500a8['ERROR'])[_0x1461af(0x9d)]('error'),expect(_0x1500a8['ARCHIVED'])[_0x1461af(0x9d)](_0x1461af(0xa1));}),test(_0x32e9a1(0x9b),async()=>{const _0x2fd7ee=_0x32e9a1,{API_ENDPOINTS:_0x5d39a1}=await import(_0x2fd7ee(0xa5));expect(_0x5d39a1[_0x2fd7ee(0x98)])['toBe']('/api/agents/available'),expect(_0x5d39a1[_0x2fd7ee(0xb3)])['toBe'](_0x2fd7ee(0xac)),expect(_0x5d39a1['AGENTS_IMPORT'])['toBe']('/api/agents/import'),expect(_0x5d39a1[_0x2fd7ee(0x8e)])['toBe']('/api/agents/:agentId/mode'),expect(_0x5d39a1['AGENTS_MODE_GET'])[_0x2fd7ee(0x9d)]('/api/agents/:agentId/mode'),expect(_0x5d39a1[_0x2fd7ee(0x9c)])[_0x2fd7ee(0x9d)]('/api/agents/:agentId/stop');}),test(_0x32e9a1(0x97),async()=>{const _0x11f68e=_0x32e9a1,{AGENT_TEMPLATES:_0x4c5000}=await import('../../config/constants.js');expect(_0x4c5000)[_0x11f68e(0x9f)](),expect(_0x4c5000['CODING_ASSISTANT'])['toBe']('coding-assistant'),expect(_0x4c5000[_0x11f68e(0x9e)])['toBe']('data-analyst'),expect(_0x4c5000[_0x11f68e(0x8f)])[_0x11f68e(0x9d)]('creative-writer'),expect(_0x4c5000[_0x11f68e(0x8b)])['toBe'](_0x11f68e(0x9a)),expect(_0x4c5000['CUSTOM'])[_0x11f68e(0x9d)](_0x11f68e(0xaa));});}),describe(a0_0x2aaeee(0xba),()=>{test('useAgents\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x5f1df8=a0_0xba5d,{useAgents:_0x53ef1b}=await import('../../state/useAgents.js'),{SessionManager:_0x400def}=await import(_0x5f1df8(0x90)),{MessageRouter:_0x5b0cf1}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x3c5b97}=await import(_0x5f1df8(0x99)),_0x2858f5=new _0x400def(_0x5f1df8(0xae),0x1f90),_0x3fd69d=new _0x3c5b97(_0x5f1df8(0xae),0x1f90),_0xfc02f5=new _0x5b0cf1(_0x3fd69d);expect(_0x2858f5)['toBeDefined'](),expect(_0xfc02f5)['toBeDefined'](),expect(typeof _0x53ef1b)['toBe'](_0x5f1df8(0x8c));}),test('Full agent management stack can be imported together',async()=>{const _0x4d4546=a0_0xba5d,[_0x57c266,_0xf62e9a,_0x332d10,_0x20b234,_0x1b384b]=await Promise[_0x4d4546(0xaf)]([import('../../config/constants.js'),import('../../api/session.js'),import('../../api/websocket.js'),import(_0x4d4546(0x96)),import(_0x4d4546(0xa7))]);expect(_0x57c266[_0x4d4546(0xb1)])[_0x4d4546(0x9f)](),expect(_0xf62e9a['SessionManager'])['toBeDefined'](),expect(_0x332d10[_0x4d4546(0x91)])[_0x4d4546(0x9f)](),expect(_0x20b234['MessageRouter'])['toBeDefined'](),expect(_0x1b384b[_0x4d4546(0xb4)])['toBeDefined']();});}),describe('Agent\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x2f301d=a0_0x2aaeee;test('All\x20agent\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0xd6ff09=a0_0xba5d,{API_ENDPOINTS:_0x279474}=await import('../../config/constants.js');expect(_0x279474['AGENTS_AVAILABLE'])[_0xd6ff09(0xb2)](/^\/api\/agents/),expect(_0x279474['AGENTS_METADATA'])[_0xd6ff09(0xb2)](/^\/api\/agents/),expect(_0x279474['AGENTS_IMPORT'])[_0xd6ff09(0xb2)](/^\/api\/agents/),expect(_0x279474[_0xd6ff09(0x8e)])[_0xd6ff09(0xb2)](/^\/api\/agents/),expect(_0x279474[_0xd6ff09(0xa2)])[_0xd6ff09(0xb2)](/^\/api\/agents/),expect(_0x279474['AGENTS_STOP'])[_0xd6ff09(0xb2)](/^\/api\/agents/),expect(_0x279474['AGENTS_METADATA'])['toContain'](_0xd6ff09(0x94)),expect(_0x279474['AGENTS_MODE_SET'])[_0xd6ff09(0xa8)](_0xd6ff09(0x94)),expect(_0x279474['AGENTS_MODE_GET'])['toContain'](':agentId'),expect(_0x279474[_0xd6ff09(0x9c)])[_0xd6ff09(0xa8)](_0xd6ff09(0x94));}),test(_0x2f301d(0xb6),async()=>{const _0x58fd2c=_0x2f301d,{API_ENDPOINTS:_0xb269b6}=await import(_0x58fd2c(0xa5));expect(_0xb269b6['ORCHESTRATOR'])['toBeDefined'](),expect(_0xb269b6['ORCHESTRATOR'])['toBe'](_0x58fd2c(0xbd));});});
@@ -1 +1 @@
1
- (function(_0x413a48,_0x2091c1){const _0x3221c5=a0_0xc469,_0x3a4e35=_0x413a48();while(!![]){try{const _0x6dc8f5=parseInt(_0x3221c5(0x126))/0x1+-parseInt(_0x3221c5(0x124))/0x2+-parseInt(_0x3221c5(0x117))/0x3+-parseInt(_0x3221c5(0x12b))/0x4*(parseInt(_0x3221c5(0x12e))/0x5)+parseInt(_0x3221c5(0x123))/0x6*(-parseInt(_0x3221c5(0x129))/0x7)+parseInt(_0x3221c5(0x121))/0x8+-parseInt(_0x3221c5(0x11f))/0x9*(-parseInt(_0x3221c5(0x130))/0xa);if(_0x6dc8f5===_0x2091c1)break;else _0x3a4e35['push'](_0x3a4e35['shift']());}catch(_0x2ea085){_0x3a4e35['push'](_0x3a4e35['shift']());}}}(a0_0x210a,0xb1724));function a0_0x210a(){const _0x3b3b36=['DxnLu3rHDgu','tgf5B3v0','lI4VlI4VC3rHDguVDxnLqwDLBNrZlMPZ','sgvHzgvY','zgvMyxvSDa','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','sw5WDxrcB3G','mta5otCXzvjxDKP4','twvZC2fNzuXPC3q','otK3mdq2ng93uhL3tW','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','otyYnZzlAhP3sxK','mta4mZeZohfuB3D0yq','lI4VlI4VC3rHDguVDxnLqwDLBNrdB250CM9SlMPZ','mtqXndGZnM5Oz1DUDq','Dg9czq','Aw5R','ntC0wxDoug1l','DxnLrwzMzwn0','ndaWmZq5mMTHy1zurW','ywXS','zNvUy3rPB24','nujWwujpAa','lI4VlI4Vy29TCg9Uzw50CY9jBNb1DejVEc5QCW','mty3mezyvffQvG','Dg9czurLzMLUzwq','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','lI4VlI4Vy29TCg9Uzw50CY9izwfKzxiUANm','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','mZm1mda0ow5vqun0uq'];a0_0x210a=function(){return _0x3b3b36;};return a0_0x210a();}function a0_0xc469(_0x45f624,_0x211275){_0x45f624=_0x45f624-0x115;const _0x210afc=a0_0x210a();let _0xc469f=_0x210afc[_0x45f624];if(a0_0xc469['BcSHMZ']===undefined){var _0x45924c=function(_0x39bda3){const _0x339b79='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x442d9a='',_0x278384='';for(let _0x356102=0x0,_0x54d7fe,_0x207d2e,_0x16a3e2=0x0;_0x207d2e=_0x39bda3['charAt'](_0x16a3e2++);~_0x207d2e&&(_0x54d7fe=_0x356102%0x4?_0x54d7fe*0x40+_0x207d2e:_0x207d2e,_0x356102++%0x4)?_0x442d9a+=String['fromCharCode'](0xff&_0x54d7fe>>(-0x2*_0x356102&0x6)):0x0){_0x207d2e=_0x339b79['indexOf'](_0x207d2e);}for(let _0x484816=0x0,_0x571372=_0x442d9a['length'];_0x484816<_0x571372;_0x484816++){_0x278384+='%'+('00'+_0x442d9a['charCodeAt'](_0x484816)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x278384);};a0_0xc469['QIkKvn']=_0x45924c,a0_0xc469['FoDsBo']={},a0_0xc469['BcSHMZ']=!![];}const _0x58c4a2=_0x210afc[0x0],_0x1db42c=_0x45f624+_0x58c4a2,_0x2ef26a=a0_0xc469['FoDsBo'][_0x1db42c];return!_0x2ef26a?(_0xc469f=a0_0xc469['QIkKvn'](_0xc469f),a0_0xc469['FoDsBo'][_0x1db42c]=_0xc469f):_0xc469f=_0x2ef26a,_0xc469f;}import{describe,test,expect}from'@jest/globals';describe('Component\x20Management\x20-\x20Imports',()=>{test('Layout component can be imported',async()=>{const _0x39f42c=a0_0xc469,{Layout:_0x442d9a}=await import(_0x39f42c(0x122));expect(_0x442d9a)[_0x39f42c(0x131)](),expect(typeof _0x442d9a)[_0x39f42c(0x127)](_0x39f42c(0x12d));}),test('Layout is default export',async()=>{const _0x5e86d0=a0_0xc469,module=await import('../../components/Layout.js');expect(module['default'])['toBeDefined'](),expect(typeof module['default'])['toBe'](_0x5e86d0(0x12d)),expect(module[_0x5e86d0(0x11c)])[_0x5e86d0(0x127)](module[_0x5e86d0(0x119)]);}),test('Header component can be imported',async()=>{const _0x38be57=a0_0xc469,{Header:_0x278384}=await import(_0x38be57(0x115));expect(_0x278384)[_0x38be57(0x131)](),expect(typeof _0x278384)[_0x38be57(0x127)]('function');}),test('Header is default export',async()=>{const _0x2571c4=a0_0xc469,module=await import('../../components/Header.js');expect(module[_0x2571c4(0x11c)])['toBeDefined'](),expect(module[_0x2571c4(0x11c)])['toBe'](module['Header']);}),test('StatusBar component can be imported',async()=>{const _0x2b1a8b=a0_0xc469,{StatusBar:_0x356102}=await import('../../components/StatusBar.js');expect(_0x356102)[_0x2b1a8b(0x131)](),expect(typeof _0x356102)[_0x2b1a8b(0x127)]('function');}),test('StatusBar is default export',async()=>{const _0x21b6aa=a0_0xc469,module=await import('../../components/StatusBar.js');expect(module[_0x21b6aa(0x11c)])['toBeDefined'](),expect(module['default'])['toBe'](module['StatusBar']);}),test('MessageList component can be imported',async()=>{const _0x397ad1=a0_0xc469,{MessageList:_0x54d7fe}=await import('../../components/MessageList.js');expect(_0x54d7fe)['toBeDefined'](),expect(typeof _0x54d7fe)['toBe'](_0x397ad1(0x12d));}),test('MessageList is default export',async()=>{const _0x50b76d=a0_0xc469,module=await import('../../components/MessageList.js');expect(module[_0x50b76d(0x11c)])[_0x50b76d(0x131)](),expect(module['default'])[_0x50b76d(0x127)](module[_0x50b76d(0x120)]);}),test('InputBox component can be imported',async()=>{const _0x40a9e6=a0_0xc469,{InputBox:_0x207d2e}=await import('../../components/InputBox.js');expect(_0x207d2e)[_0x40a9e6(0x131)](),expect(typeof _0x207d2e)['toBe'](_0x40a9e6(0x12d));}),test('InputBox is default export',async()=>{const _0x28ff8a=a0_0xc469,module=await import('../../components/InputBox.js');expect(module['default'])[_0x28ff8a(0x131)](),expect(module[_0x28ff8a(0x11c)])[_0x28ff8a(0x127)](module['InputBox']);});}),describe('Component\x20Management\x20-\x20Integration',()=>{test('All components can be imported together',async()=>{const _0x1dcfb8=a0_0xc469,[_0x16a3e2,_0x484816,_0x571372,_0x11e301,_0x3d4e2b]=await Promise[_0x1dcfb8(0x12c)]([import(_0x1dcfb8(0x122)),import(_0x1dcfb8(0x115)),import('../../components/StatusBar.js'),import('../../components/MessageList.js'),import(_0x1dcfb8(0x12f))]);expect(_0x16a3e2[_0x1dcfb8(0x119)])['toBeDefined'](),expect(_0x484816[_0x1dcfb8(0x11b)])[_0x1dcfb8(0x131)](),expect(_0x571372['StatusBar'])[_0x1dcfb8(0x131)](),expect(_0x11e301['MessageList'])['toBeDefined'](),expect(_0x3d4e2b[_0x1dcfb8(0x11e)])['toBeDefined']();}),test('Layout\x20component\x20integrates\x20with\x20all\x20state\x20hooks',async()=>{const _0x3b805c=a0_0xc469,{Layout:_0x5809f1}=await import('../../components/Layout.js'),{useConnection:_0x1ac280}=await import(_0x3b805c(0x116)),{useAgents:_0x34986b}=await import(_0x3b805c(0x11a)),{useMessages:_0x3ddc56}=await import(_0x3b805c(0x132)),{useAgentControl:_0x5a7b36}=await import(_0x3b805c(0x125)),{useTools:_0x1f4fe8}=await import(_0x3b805c(0x11d));expect(_0x5809f1)['toBeDefined'](),expect(_0x1ac280)['toBeDefined'](),expect(_0x34986b)['toBeDefined'](),expect(_0x3ddc56)['toBeDefined'](),expect(_0x5a7b36)[_0x3b805c(0x131)](),expect(_0x1f4fe8)['toBeDefined']();});}),describe('Component\x20Management\x20-\x20React/Ink\x20Dependencies',()=>{test('Ink components can be imported',async()=>{const _0x39de45=a0_0xc469,{Box:_0x423c5c,Text:_0x4a24ee}=await import(_0x39de45(0x128));expect(_0x423c5c)['toBeDefined'](),expect(_0x4a24ee)['toBeDefined']();}),test('React can be imported',async()=>{const _0x22cc37=a0_0xc469,_0x4f092d=await import('react');expect(_0x4f092d[_0x22cc37(0x11c)])['toBeDefined'](),expect(_0x4f092d[_0x22cc37(0x118)])[_0x22cc37(0x131)](),expect(_0x4f092d[_0x22cc37(0x12a)])['toBeDefined']();});});
1
+ const a0_0x17c076=a0_0x2ea9;function a0_0x2ea9(_0x6cf828,_0x10b0b4){_0x6cf828=_0x6cf828-0x16e;const _0x38f082=a0_0x38f0();let _0x2ea9c8=_0x38f082[_0x6cf828];if(a0_0x2ea9['ZQnqNs']===undefined){var _0x14aa28=function(_0x3df7f2){const _0x56e3ee='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x56c13d='',_0x361399='';for(let _0x1557e1=0x0,_0x1e4eb6,_0xec9ce3,_0x169723=0x0;_0xec9ce3=_0x3df7f2['charAt'](_0x169723++);~_0xec9ce3&&(_0x1e4eb6=_0x1557e1%0x4?_0x1e4eb6*0x40+_0xec9ce3:_0xec9ce3,_0x1557e1++%0x4)?_0x56c13d+=String['fromCharCode'](0xff&_0x1e4eb6>>(-0x2*_0x1557e1&0x6)):0x0){_0xec9ce3=_0x56e3ee['indexOf'](_0xec9ce3);}for(let _0x55c626=0x0,_0x277a88=_0x56c13d['length'];_0x55c626<_0x277a88;_0x55c626++){_0x361399+='%'+('00'+_0x56c13d['charCodeAt'](_0x55c626)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x361399);};a0_0x2ea9['XeCaHe']=_0x14aa28,a0_0x2ea9['iCXqlc']={},a0_0x2ea9['ZQnqNs']=!![];}const _0x4f4276=_0x38f082[0x0],_0x9d7183=_0x6cf828+_0x4f4276,_0x955fb4=a0_0x2ea9['iCXqlc'][_0x9d7183];return!_0x955fb4?(_0x2ea9c8=a0_0x2ea9['XeCaHe'](_0x2ea9c8),a0_0x2ea9['iCXqlc'][_0x9d7183]=_0x2ea9c8):_0x2ea9c8=_0x955fb4,_0x2ea9c8;}function a0_0x38f0(){const _0x27d7b5=['nJq5mdq2tvDHEgHJ','twvZC2fNzuXPC3q','ndC5ntC5mKvQBevpDa','Dg9czurLzMLUzwq','zgvMyxvSDa','odeZnZG4y3nrsNHr','CMvHy3q','mJKWodKYmejAt1DkAW','Dg9czq','lI4VlI4Vy29TCg9Uzw50CY9jBNb1DejVEc5QCW','tgf5B3v0','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','lI4VlI4Vy29TCg9Uzw50CY9nzxnZywDLtgLZDc5QCW','zNvUy3rPB24','mte2oda0ngLTv2Xhtq','sw5WDxrcB3G','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','mJy4nteYmg1WzeHSyG','lI4VlI4Vy29TCg9Uzw50CY9tDgf0DxncyxiUANm','lI4VlI4VC3rHDguVDxnLqwDLBNrZlMPZ','sgvHzgvY','q29TCg9Uzw50ie1HBMfNzw1LBNqGlsbszwfJDc9jBMSGrgvWzw5Kzw5JAwvZ','tgf5B3v0ignVBxbVBMvUDcbPBNrLz3jHDgvZihDPDgGGywXSihn0yxrLigHVB2TZ','mtmZmte2mgvnzxHjqq','mvfPwM1AyW'];a0_0x38f0=function(){return _0x27d7b5;};return a0_0x38f0();}(function(_0x5d41b5,_0x32c49d){const _0x5311ae=a0_0x2ea9,_0x59bf20=_0x5d41b5();while(!![]){try{const _0x2e73bf=-parseInt(_0x5311ae(0x170))/0x1*(parseInt(_0x5311ae(0x171))/0x2)+parseInt(_0x5311ae(0x17f))/0x3+parseInt(_0x5311ae(0x176))/0x4+-parseInt(_0x5311ae(0x16f))/0x5+parseInt(_0x5311ae(0x182))/0x6+parseInt(_0x5311ae(0x178))/0x7+-parseInt(_0x5311ae(0x173))/0x8;if(_0x2e73bf===_0x32c49d)break;else _0x59bf20['push'](_0x59bf20['shift']());}catch(_0x2ac508){_0x59bf20['push'](_0x59bf20['shift']());}}}(a0_0x38f0,0x40dae));import{describe,test,expect}from'@jest/globals';describe('Component\x20Management\x20-\x20Imports',()=>{test('Layout component can be imported',async()=>{const _0x58609f=a0_0x2ea9,{Layout:_0x56c13d}=await import('../../components/Layout.js');expect(_0x56c13d)[_0x58609f(0x174)](),expect(typeof _0x56c13d)['toBe']('function');}),test('Layout is default export',async()=>{const _0x24fe2c=a0_0x2ea9,module=await import('../../components/Layout.js');expect(module['default'])[_0x24fe2c(0x174)](),expect(typeof module['default'])[_0x24fe2c(0x179)]('function'),expect(module['default'])['toBe'](module[_0x24fe2c(0x17b)]);}),test('Header component can be imported',async()=>{const _0x56c815=a0_0x2ea9,{Header:_0x361399}=await import('../../components/Header.js');expect(_0x361399)[_0x56c815(0x174)](),expect(typeof _0x361399)[_0x56c815(0x179)](_0x56c815(0x17e));}),test('Header is default export',async()=>{const _0x27179f=a0_0x2ea9,module=await import('../../components/Header.js');expect(module['default'])['toBeDefined'](),expect(module[_0x27179f(0x175)])[_0x27179f(0x179)](module[_0x27179f(0x185)]);}),test('StatusBar component can be imported',async()=>{const _0x4ef6f6=a0_0x2ea9,{StatusBar:_0x1557e1}=await import('../../components/StatusBar.js');expect(_0x1557e1)[_0x4ef6f6(0x174)](),expect(typeof _0x1557e1)[_0x4ef6f6(0x179)]('function');}),test('StatusBar is default export',async()=>{const _0x9156c2=a0_0x2ea9,module=await import(_0x9156c2(0x183));expect(module[_0x9156c2(0x175)])[_0x9156c2(0x174)](),expect(module['default'])[_0x9156c2(0x179)](module['StatusBar']);}),test('MessageList component can be imported',async()=>{const _0x424af8=a0_0x2ea9,{MessageList:_0x1e4eb6}=await import(_0x424af8(0x17d));expect(_0x1e4eb6)[_0x424af8(0x174)](),expect(typeof _0x1e4eb6)[_0x424af8(0x179)]('function');}),test('MessageList is default export',async()=>{const _0x500932=a0_0x2ea9,module=await import('../../components/MessageList.js');expect(module[_0x500932(0x175)])[_0x500932(0x174)](),expect(module[_0x500932(0x175)])['toBe'](module[_0x500932(0x172)]);}),test('InputBox component can be imported',async()=>{const _0x2eee9a=a0_0x2ea9,{InputBox:_0xec9ce3}=await import('../../components/InputBox.js');expect(_0xec9ce3)[_0x2eee9a(0x174)](),expect(typeof _0xec9ce3)['toBe']('function');}),test('InputBox is default export',async()=>{const _0x4df60e=a0_0x2ea9,module=await import('../../components/InputBox.js');expect(module['default'])['toBeDefined'](),expect(module[_0x4df60e(0x175)])[_0x4df60e(0x179)](module[_0x4df60e(0x180)]);});}),describe('Component\x20Management\x20-\x20Integration',()=>{const _0x3eeee9=a0_0x2ea9;test('All components can be imported together',async()=>{const _0x195358=a0_0x2ea9,[_0x169723,_0x55c626,_0x277a88,_0x505bac,_0x1b85f1]=await Promise['all']([import(_0x195358(0x181)),import('../../components/Header.js'),import('../../components/StatusBar.js'),import('../../components/MessageList.js'),import(_0x195358(0x17a))]);expect(_0x169723[_0x195358(0x17b)])['toBeDefined'](),expect(_0x55c626['Header'])['toBeDefined'](),expect(_0x277a88['StatusBar'])['toBeDefined'](),expect(_0x505bac['MessageList'])['toBeDefined'](),expect(_0x1b85f1['InputBox'])['toBeDefined']();}),test(_0x3eeee9(0x16e),async()=>{const _0x25ae8a=_0x3eeee9,{Layout:_0xb4e15c}=await import('../../components/Layout.js'),{useConnection:_0x5434a3}=await import(_0x25ae8a(0x17c)),{useAgents:_0x164d4}=await import(_0x25ae8a(0x184)),{useMessages:_0x23716a}=await import('../../state/useMessages.js'),{useAgentControl:_0x4d3aea}=await import('../../state/useAgentControl.js'),{useTools:_0x13a613}=await import('../../state/useTools.js');expect(_0xb4e15c)['toBeDefined'](),expect(_0x5434a3)['toBeDefined'](),expect(_0x164d4)['toBeDefined'](),expect(_0x23716a)['toBeDefined'](),expect(_0x4d3aea)['toBeDefined'](),expect(_0x13a613)['toBeDefined']();});}),describe(a0_0x17c076(0x186),()=>{test('Ink components can be imported',async()=>{const _0x4081d5=a0_0x2ea9,{Box:_0x393258,Text:_0x78a21c}=await import('ink');expect(_0x393258)[_0x4081d5(0x174)](),expect(_0x78a21c)['toBeDefined']();}),test('React can be imported',async()=>{const _0x5a208d=a0_0x2ea9,_0x2ad9fe=await import(_0x5a208d(0x177));expect(_0x2ad9fe['default'])[_0x5a208d(0x174)](),expect(_0x2ad9fe['useState'])['toBeDefined'](),expect(_0x2ad9fe['useEffect'])['toBeDefined']();});});
@@ -1 +1 @@
1
- const a0_0x3416bd=a0_0x5cfd;(function(_0x2a4340,_0x560b77){const _0x56299e=a0_0x5cfd,_0xa1acb3=_0x2a4340();while(!![]){try{const _0x173114=-parseInt(_0x56299e(0x1b7))/0x1*(-parseInt(_0x56299e(0x185))/0x2)+-parseInt(_0x56299e(0x1bb))/0x3*(-parseInt(_0x56299e(0x1ba))/0x4)+parseInt(_0x56299e(0x1c2))/0x5+-parseInt(_0x56299e(0x1a4))/0x6*(parseInt(_0x56299e(0x1a6))/0x7)+-parseInt(_0x56299e(0x18a))/0x8*(parseInt(_0x56299e(0x1a8))/0x9)+-parseInt(_0x56299e(0x18d))/0xa*(-parseInt(_0x56299e(0x192))/0xb)+-parseInt(_0x56299e(0x1a5))/0xc;if(_0x173114===_0x560b77)break;else _0xa1acb3['push'](_0xa1acb3['shift']());}catch(_0xd3b69b){_0xa1acb3['push'](_0xa1acb3['shift']());}}}(a0_0x141b,0xd0df3));function a0_0x5cfd(_0x320691,_0x35d226){_0x320691=_0x320691-0x17e;const _0x141b57=a0_0x141b();let _0x5cfdd5=_0x141b57[_0x320691];if(a0_0x5cfd['YrQWJf']===undefined){var _0x17a8a3=function(_0x2a27e5){const _0x8dc14='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2b0947='',_0x5c2acf='';for(let _0x733a03=0x0,_0x145024,_0xd763ea,_0x1bb099=0x0;_0xd763ea=_0x2a27e5['charAt'](_0x1bb099++);~_0xd763ea&&(_0x145024=_0x733a03%0x4?_0x145024*0x40+_0xd763ea:_0xd763ea,_0x733a03++%0x4)?_0x2b0947+=String['fromCharCode'](0xff&_0x145024>>(-0x2*_0x733a03&0x6)):0x0){_0xd763ea=_0x8dc14['indexOf'](_0xd763ea);}for(let _0x1c6c77=0x0,_0x13a4b1=_0x2b0947['length'];_0x1c6c77<_0x13a4b1;_0x1c6c77++){_0x5c2acf+='%'+('00'+_0x2b0947['charCodeAt'](_0x1c6c77)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5c2acf);};a0_0x5cfd['CDgXot']=_0x17a8a3,a0_0x5cfd['MfUxfD']={},a0_0x5cfd['YrQWJf']=!![];}const _0x5df4d8=_0x141b57[0x0],_0x221231=_0x320691+_0x5df4d8,_0x2941bc=a0_0x5cfd['MfUxfD'][_0x221231];return!_0x2941bc?(_0x5cfdd5=a0_0x5cfd['CDgXot'](_0x5cfdd5),a0_0x5cfd['MfUxfD'][_0x221231]=_0x5cfdd5):_0x5cfdd5=_0x2941bc,_0x5cfdd5;}function a0_0x141b(){const _0xee74b4=['Dxb0Aw1L','BwLU','Dg9czq','nZm5oduWmhLKqwLKvG','DxnLq29UBMvJDgLVBG','Bg9JywXOB3n0','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','lI4VlI4VyxbPl3nLC3nPB24UANm','q29UBMvJDgLVBIbPBMzVihnOB3vSzcbJB250ywLUigfSBcbTzxrYAwnZ','su5jveLbtf9eruXbwq','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','B2zM','nJqXmJjSy0P1EvO','q29UBMvJDgLVBIb1ChrPBwuGy2fUigjLihrYywnRzwq','u2vZC2LVBK1HBMfNzxi','CMvJB25Uzwn0Aw5N','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','ofbetwXVuq','uKvdt05orunux0nptKzjrYb2ywX1zxmGyxjLihjLyxnVBMfIBgu','uMvJB25Uzwn0Aw9UihnOB3vSzcbZDg9WigfMDgvYig1HEcbHDhrLBxb0CW','mti4mdCXmg13rLvYwq','Dg9czu51BgW','uKvdt05orunux0nptKzjrYbJB25ZDgfUDhmGyxjLigrLzMLUzwq','AxnszwnVBM5Ly3rPBMC','A2v5CW','mJj0BKreshy','Dg9czurLzMLUzwq','Dg9czuXLC3nuAgfUt3jfCxvHBa','ywXS','DxnLq29UBMvJDgLVBIbYzxr1CM5Zigv4CgvJDgvKigLUDgvYzMfJzsbZAgfWzq','C3rYAw5N','zgLZy29UBMvJDgvK','y29UBMvJDgvK','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gtwf4ief0DgvTChrZieXPBwL0','q09otKvdveLptL9tvefuvvmGDMfSDwvZigfYzsbSB3DLCMnHC2uGC3rYAw5NCW','C2vZC2LVBKLK','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','reLtq09otKvdveve','uKvdt05orunux0nptKzjrW','q29UBMvJDgLVBIbZDgf0DxmGDhjHBNnPDgLVBNmGzM9SBg93ihzHBgLKigzSB3C','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','zNvUy3rPB24','v2vIu29JA2v0twfUywDLCG','ndG2BwzTvw9g','otG5mJiXmMTJsgPbzW','mteYmJH3z1nNv1m','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','mJu5nJu4mxHxt2Lqua','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','q09otKvdveLorW','uKvdt05orunusu5h','tufyx0rftefz','tufyx0fuvevnufrt','qKfds09grL9nvuXusvbmsuvs','uMvJB25Uzwn0Aw9Uigf0DgvTChrZignHBIbIzsb0CMfJA2vK','q29UBMvJDgLVBIbTzxrYAwnZihrYywnRihrPBwvZDgfTChm','Dg9czuDYzwf0zxjuAgfU','BM93','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','zgvMyxvSDa','y29UBMvJDgLUzW','DgvZDc1ZzxnZAw9UlteYmW','n2riz0vWyG','q09otKvdveLptL9tvefuvvmGAxmGywXPyxmGzM9YienptK5fq1rjt05Fu1rbveu','Dg9mB3DLCKnHC2u','nZzoAhviBLK','mJe3otHAzffjvxG','q09otKvdveLptL9tvefuvvmGAgfZigfSBcbYzxf1AxjLzcbZDgf0zxm','Dg9dB250ywLU','q09otKvdveve'];a0_0x141b=function(){return _0xee74b4;};return a0_0x141b();}import{describe,test,expect}from'@jest/globals';describe(a0_0x3416bd(0x183),()=>{test('useConnection hook can be imported',async()=>{const _0x4e2f28=a0_0x5cfd,{useConnection:_0x2b0947}=await import(_0x4e2f28(0x189));expect(_0x2b0947)['toBeDefined'](),expect(typeof _0x2b0947)[_0x4e2f28(0x1c1)](_0x4e2f28(0x1a2));}),test('useConnection is default export',async()=>{const _0x2aad11=a0_0x5cfd,module=await import(_0x2aad11(0x189));expect(module['default'])['toBeDefined'](),expect(typeof module[_0x2aad11(0x1b4)])[_0x2aad11(0x1c1)](_0x2aad11(0x1a2)),expect(module[_0x2aad11(0x1b4)])['toBe'](module['useConnection']);});}),describe(a0_0x3416bd(0x1a9),()=>{const _0x50689b=a0_0x3416bd;test('CONNECTION_STATUS\x20constants\x20are\x20defined',async()=>{const _0x48de5e=a0_0x5cfd,{CONNECTION_STATUS:_0x5c2acf}=await import(_0x48de5e(0x1a1));expect(_0x5c2acf)[_0x48de5e(0x193)](),expect(_0x5c2acf['CONNECTING'])['toBe'](_0x48de5e(0x1b5)),expect(_0x5c2acf[_0x48de5e(0x1be)])['toBe']('connected'),expect(_0x5c2acf['DISCONNECTED'])['toBe']('disconnected'),expect(_0x5c2acf['RECONNECTING'])['toBe'](_0x48de5e(0x188));}),test(_0x50689b(0x1b8),async()=>{const _0x40f899=_0x50689b,{CONNECTION_STATUS:_0x733a03,CONNECTION_STATE:_0x145024}=await import('../../config/constants.js');expect(_0x733a03)[_0x40f899(0x1c1)](_0x145024);}),test(_0x50689b(0x18f),async()=>{const _0x17f05f=_0x50689b,{RECONNECT_CONFIG:_0xd763ea}=await import(_0x17f05f(0x1a1));expect(_0xd763ea)['toBeDefined'](),expect(_0xd763ea['INITIAL_DELAY'])[_0x17f05f(0x193)](),expect(_0xd763ea['MAX_DELAY'])[_0x17f05f(0x193)](),expect(_0xd763ea['BACKOFF_MULTIPLIER'])[_0x17f05f(0x193)](),expect(_0xd763ea['MAX_ATTEMPTS'])['toBeDefined']();}),test(_0x50689b(0x18b),async()=>{const _0x478bd5=_0x50689b,{RECONNECT_CONFIG:_0x1bb099}=await import('../../config/constants.js');expect(_0x1bb099[_0x478bd5(0x182)])['toBeGreaterThan'](0x0),expect(_0x1bb099[_0x478bd5(0x1ac)])['toBeGreaterThan'](_0x1bb099[_0x478bd5(0x182)]),expect(_0x1bb099['BACKOFF_MULTIPLIER'])['toBeGreaterThan'](0x1),expect(_0x1bb099[_0x478bd5(0x1ad)])[_0x478bd5(0x1b1)](0x0);});}),describe(a0_0x3416bd(0x1a7),()=>{test('useConnection\x20hook\x20integrates\x20with\x20SessionManager\x20and\x20WebSocketManager',async()=>{const _0x24c3fc=a0_0x5cfd,{useConnection:_0x1c6c77}=await import(_0x24c3fc(0x189)),{SessionManager:_0x13a4b1}=await import(_0x24c3fc(0x180)),{WebSocketManager:_0x52dc67}=await import('../../api/websocket.js'),_0x44bf7a=new _0x13a4b1('localhost',0x1f90),_0x48b7ae=new _0x52dc67(_0x24c3fc(0x17e),0x1f90);expect(_0x44bf7a)['toBeDefined'](),expect(_0x48b7ae)['toBeDefined'](),expect(typeof _0x1c6c77)['toBe']('function');}),test('Full connection stack can be imported together',async()=>{const _0x5b6511=a0_0x5cfd,[_0x1310d7,_0x5b30f9,_0x5aa21c,_0x39d976]=await Promise[_0x5b6511(0x195)]([import('../../config/constants.js'),import('../../api/session.js'),import('../../api/websocket.js'),import('../../state/useConnection.js')]);expect(_0x1310d7['CONNECTION_STATUS'])[_0x5b6511(0x193)](),expect(_0x1310d7[_0x5b6511(0x19f)])['toBeDefined'](),expect(_0x5b30f9[_0x5b6511(0x187)])[_0x5b6511(0x193)](),expect(_0x5aa21c[_0x5b6511(0x1a3)])['toBeDefined'](),expect(_0x39d976[_0x5b6511(0x1c3)])['toBeDefined']();});}),describe(a0_0x3416bd(0x1b3),()=>{const _0x334db3=a0_0x3416bd;test(_0x334db3(0x196),async()=>{const _0x215287=_0x334db3,{useConnection:_0x45b6e1}=await import(_0x215287(0x189));expect(_0x45b6e1['length'])['toBe'](0x2);});}),describe('Connection\x20Management\x20-\x20Status\x20Values',()=>{const _0x363309=a0_0x3416bd;test(_0x363309(0x19b),async()=>{const _0x136ebe=_0x363309,{CONNECTION_STATUS:_0x264a9c}=await import('../../config/constants.js');expect(typeof _0x264a9c[_0x136ebe(0x1aa)])['toBe']('string'),expect(typeof _0x264a9c['CONNECTED'])['toBe'](_0x136ebe(0x197)),expect(typeof _0x264a9c[_0x136ebe(0x19e)])['toBe']('string'),expect(typeof _0x264a9c[_0x136ebe(0x1ab)])[_0x136ebe(0x1c1)]('string'),expect(_0x264a9c['CONNECTING'])['toBe'](_0x264a9c['CONNECTING'][_0x136ebe(0x1b9)]()),expect(_0x264a9c[_0x136ebe(0x1be)])['toBe'](_0x264a9c['CONNECTED'][_0x136ebe(0x1b9)]());}),test(_0x363309(0x1bc),async()=>{const _0x58fd1a=_0x363309,{CONNECTION_STATUS:_0x2e8928}=await import('../../config/constants.js'),_0x2be042=Object[_0x58fd1a(0x191)](_0x2e8928);expect(_0x2be042)[_0x58fd1a(0x1bd)]('CONNECTING'),expect(_0x2be042)[_0x58fd1a(0x1bd)](_0x58fd1a(0x1be)),expect(_0x2be042)['toContain'](_0x58fd1a(0x19e)),expect(_0x2be042)['toContain']('RECONNECTING');});}),describe('Connection\x20Management\x20-\x20Exponential\x20Backoff\x20Logic',()=>{test('Exponential\x20backoff\x20delay\x20calculation\x20works\x20correctly',async()=>{const _0x2a5d32=a0_0x5cfd,{RECONNECT_CONFIG:_0x59b550}=await import('../../config/constants.js'),_0x43f9f2=_0x12ac24=>{const _0x530eed=a0_0x5cfd;return Math['min'](_0x59b550[_0x530eed(0x182)]*Math['pow'](_0x59b550['BACKOFF_MULTIPLIER'],_0x12ac24),_0x59b550['MAX_DELAY']);},_0x521ad3=_0x43f9f2(0x0),_0x67a80=_0x43f9f2(0x1),_0x4d1dda=_0x43f9f2(0x2);expect(_0x521ad3)[_0x2a5d32(0x1c1)](_0x59b550[_0x2a5d32(0x182)]),expect(_0x67a80)[_0x2a5d32(0x1b1)](_0x521ad3),expect(_0x4d1dda)['toBeGreaterThan'](_0x67a80);}),test('Exponential\x20backoff\x20respects\x20max\x20delay',async()=>{const _0x3c12af=a0_0x5cfd,{RECONNECT_CONFIG:_0x58f7ee}=await import(_0x3c12af(0x1a1)),_0x2a348e=_0x5170cd=>{const _0x2220e7=_0x3c12af;return Math[_0x2220e7(0x1c0)](_0x58f7ee[_0x2220e7(0x182)]*Math['pow'](_0x58f7ee[_0x2220e7(0x1ae)],_0x5170cd),_0x58f7ee['MAX_DELAY']);},_0x58a079=_0x2a348e(0x64);expect(_0x58a079)['toBe'](_0x58f7ee[_0x3c12af(0x1ac)]),expect(_0x58a079)['toBeLessThanOrEqual'](_0x58f7ee[_0x3c12af(0x1ac)]);});}),describe('Connection\x20Management\x20-\x20Session\x20State',()=>{test('Session\x20state\x20should\x20track\x20validity',async()=>{const _0x399c41=a0_0x5cfd;let _0x4db8b6=null,_0x53b681=![],_0x40a172=null;_0x4db8b6='test-session-123',_0x53b681=!![],_0x40a172=Date[_0x399c41(0x1b2)]()+0x36ee80,expect(_0x4db8b6)['toBeDefined'](),expect(_0x53b681)['toBe'](!![]),expect(_0x40a172)[_0x399c41(0x1b1)](Date['now']());}),test('Session\x20state\x20should\x20invalidate',async()=>{const _0x37f813=a0_0x5cfd;let _0x396f16=_0x37f813(0x1b6),_0x5cf475=!![];_0x396f16=null,_0x5cf475=![],expect(_0x396f16)[_0x37f813(0x18e)](),expect(_0x5cf475)['toBe'](![]);});}),describe('Connection\x20Management\x20-\x20Connection\x20Metrics',()=>{const _0x141282=a0_0x3416bd;test(_0x141282(0x186),async()=>{const _0x47eed4=_0x141282,_0x59fab2=Date['now']();await new Promise(_0x160614=>setTimeout(_0x160614,0x64));const _0x2806b6=Date['now']()-_0x59fab2;expect(_0x2806b6)[_0x47eed4(0x1b1)](0x0),expect(_0x2806b6)[_0x47eed4(0x17f)](0x64);}),test(_0x141282(0x1b0),async()=>{const _0x3802ff=_0x141282,_0x4b4ca9=Date['now']();await new Promise(_0x5735d9=>setTimeout(_0x5735d9,0x32));const _0x5b11fa=Date[_0x3802ff(0x1b2)]();expect(_0x4b4ca9)['toBeDefined'](),expect(_0x5b11fa)['toBeDefined'](),expect(_0x5b11fa)[_0x3802ff(0x1b1)](_0x4b4ca9);}),test(_0x141282(0x1af),async()=>{const _0x71b8bc=_0x141282;let _0x531c1a=0x0;_0x531c1a+=0x1,expect(_0x531c1a)['toBe'](0x1),_0x531c1a+=0x1,expect(_0x531c1a)[_0x71b8bc(0x1c1)](0x2),_0x531c1a=0x0,expect(_0x531c1a)[_0x71b8bc(0x1c1)](0x0);});}),describe('Connection\x20Management\x20-\x20Connection\x20Status\x20Transitions',()=>{const _0x4c6d2b=a0_0x3416bd;test(_0x4c6d2b(0x1a0),async()=>{const _0x1cd554=_0x4c6d2b,{CONNECTION_STATUS:_0xae8ab6}=await import('../../config/constants.js');let _0x13f1ea=_0xae8ab6['DISCONNECTED'];expect(_0x13f1ea)[_0x1cd554(0x1c1)](_0x1cd554(0x198)),_0x13f1ea=_0xae8ab6['CONNECTING'],expect(_0x13f1ea)['toBe']('connecting'),_0x13f1ea=_0xae8ab6[_0x1cd554(0x1be)],expect(_0x13f1ea)['toBe'](_0x1cd554(0x199)),_0x13f1ea=_0xae8ab6['DISCONNECTED'],expect(_0x13f1ea)[_0x1cd554(0x1c1)]('disconnected'),_0x13f1ea=_0xae8ab6['RECONNECTING'],expect(_0x13f1ea)[_0x1cd554(0x1c1)](_0x1cd554(0x188)),_0x13f1ea=_0xae8ab6[_0x1cd554(0x1be)],expect(_0x13f1ea)[_0x1cd554(0x1c1)](_0x1cd554(0x199));});}),describe('Connection\x20Management\x20-\x20WebSocket\x20Event\x20Integration',()=>{test('WebSocketManager\x20has\x20event\x20emitter\x20methods',async()=>{const _0x17a778=a0_0x5cfd,{WebSocketManager:_0x5d1569}=await import(_0x17a778(0x19d)),_0x485575=new _0x5d1569(_0x17a778(0x17e),0x1f90);expect(_0x485575['on'])[_0x17a778(0x193)](),expect(_0x485575[_0x17a778(0x184)])[_0x17a778(0x193)](),expect(typeof _0x485575['on'])['toBe']('function'),expect(typeof _0x485575[_0x17a778(0x184)])['toBe']('function');});}),describe(a0_0x3416bd(0x19a),()=>{const _0x5ac926=a0_0x3416bd;test(_0x5ac926(0x18c),async()=>{const _0x582e92=_0x5ac926,{RECONNECT_CONFIG:_0x519009}=await import(_0x582e92(0x1a1));let _0x312eec=0x0;for(let _0x41fea6=0x0;_0x41fea6<_0x519009[_0x582e92(0x1ad)]+0x5;_0x41fea6++){if(_0x312eec<_0x519009[_0x582e92(0x1ad)])_0x312eec+=0x1;else break;}expect(_0x312eec)[_0x582e92(0x1c1)](_0x519009['MAX_ATTEMPTS']),expect(_0x312eec)[_0x582e92(0x194)](_0x519009[_0x582e92(0x1ad)]);});}),describe('Connection\x20Management\x20-\x20Connection\x20Info',()=>{const _0x4878d2=a0_0x3416bd;test(_0x4878d2(0x181),async()=>{const _0x1a429c=_0x4878d2,{CONNECTION_STATUS:_0x4704b1}=await import('../../config/constants.js'),_0x3179b0={'status':_0x4704b1['CONNECTED'],'isConnected':!![],'isReconnecting':![],'sessionId':'test-session-123','sessionValid':!![],'sessionExpiration':Date['now']()+0x36ee80,'uptime':0x1388,'lastConnectedAt':Date['now']()-0x1388,'lastDisconnectedAt':null,'reconnectAttempts':0x0};expect(_0x3179b0['status'])[_0x1a429c(0x193)](),expect(_0x3179b0['isConnected'])['toBe'](!![]),expect(_0x3179b0[_0x1a429c(0x190)])['toBe'](![]),expect(_0x3179b0[_0x1a429c(0x19c)])['toBeDefined'](),expect(_0x3179b0['sessionValid'])['toBe'](!![]),expect(_0x3179b0[_0x1a429c(0x1bf)])[_0x1a429c(0x1b1)](0x0);});});
1
+ function a0_0x3a1b(){const _0x477d0b=['q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gu2vZC2LVBIbtDgf0zq','ntjRCuHXAve','zNvUy3rPB24','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','q09otKvdveLptL9tvefuvvmGy29UC3rHBNrZigfYzsbKzwzPBMvK','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','y29UBMvJDgLUzW','nZK2nZa1mhntBNHwwG','Dg9czurLzMLUzwq','u2vZC2LVBIbZDgf0zsbZAg91BgqGDhjHy2SGDMfSAwrPDhK','uMvJB25Uzwn0Aw9UihnOB3vSzcbZDg9WigfMDgvYig1HEcbHDhrLBxb0CW','Dg9czu51BgW','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','DxnLq29UBMvJDgLVBG','su5jveLbtf9eruXbwq','Dg9mB3DLCKnHC2u','mteYndLSruXmyM4','ndm1s3flD1rY','BM93','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','q09otKvdveLptL9tvefuvvm','tufyx0rftefz','otG0mtiYmhLoCLvwzq','q09otKvdveLorW','Dg9czuDYzwf0zxjuAgfU','Dg9dB250ywLU','nZi3ohHpuNHkEq','B2zM','q09otKvdveve','nZa2mZC2neT1yuX5AG','u2vZC2LVBK1HBMfNzxi','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gq29UBMvJDgLVBIbtDgf0DxmGvhjHBNnPDgLVBNm','zgLZy29UBMvJDgvK','odG2nZe0mNjYzgHRDq','u2vZC2LVBIbZDgf0zsbZAg91BgqGAw52ywXPzgf0zq','Dg9czuXLC3nuAgfUt3jfCxvHBa','y29UBMvJDgvK','CMvJB25Uzwn0Aw5N','DxnLq29UBMvJDgLVBIbOB29RigLUDgvNCMf0zxmGD2L0AcbtzxnZAw9UtwfUywDLCIbHBMqGv2vIu29JA2v0twfUywDLCG','Bg9JywXOB3n0','nJKYoe1MuurNEa','q29UBMvJDgLVBIbZDgf0DxmGDhjHBNnPDgLVBNmGzM9SBg93ihzHBgLKigzSB3C','zgvMyxvSDa','reLtq09otKvdveve','Dg9czq','q09otKvdveLptL9tvefuvvmGAgfZigfSBcbYzxf1AxjLzcbZDgf0zxm','mtu3mduWqLPgsvjL','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gq29UBMvJDgLVBIbnzxrYAwnZ','tufyx0fuvevnufrt','uMvJB25Uzwn0Aw9Uigf0DgvTChrZignHBIbIzsb0CMfJA2vK','q29UBMvJDgLVBIb1ChrPBwuGy2fUigjLihrYywnRzwq','qKfds09grL9nvuXusvbmsuvs','Cg93','uKvdt05orunusu5h','ntvSvKfWDeO'];a0_0x3a1b=function(){return _0x477d0b;};return a0_0x3a1b();}const a0_0x14677b=a0_0xd57a;function a0_0xd57a(_0x3ed3a4,_0x1d6d10){_0x3ed3a4=_0x3ed3a4-0x18d;const _0x3a1b61=a0_0x3a1b();let _0xd57a01=_0x3a1b61[_0x3ed3a4];if(a0_0xd57a['RrzfYY']===undefined){var _0x2a86a6=function(_0x3e7a8e){const _0x130bf9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xc81404='',_0xe4a90d='';for(let _0x517a04=0x0,_0x2afe59,_0x4f1288,_0x2f34ef=0x0;_0x4f1288=_0x3e7a8e['charAt'](_0x2f34ef++);~_0x4f1288&&(_0x2afe59=_0x517a04%0x4?_0x2afe59*0x40+_0x4f1288:_0x4f1288,_0x517a04++%0x4)?_0xc81404+=String['fromCharCode'](0xff&_0x2afe59>>(-0x2*_0x517a04&0x6)):0x0){_0x4f1288=_0x130bf9['indexOf'](_0x4f1288);}for(let _0x26f05a=0x0,_0x5179de=_0xc81404['length'];_0x26f05a<_0x5179de;_0x26f05a++){_0xe4a90d+='%'+('00'+_0xc81404['charCodeAt'](_0x26f05a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xe4a90d);};a0_0xd57a['Cgfrjk']=_0x2a86a6,a0_0xd57a['HMKizE']={},a0_0xd57a['RrzfYY']=!![];}const _0x310030=_0x3a1b61[0x0],_0x5d845c=_0x3ed3a4+_0x310030,_0x4a2eb7=a0_0xd57a['HMKizE'][_0x5d845c];return!_0x4a2eb7?(_0xd57a01=a0_0xd57a['Cgfrjk'](_0xd57a01),a0_0xd57a['HMKizE'][_0x5d845c]=_0xd57a01):_0xd57a01=_0x4a2eb7,_0xd57a01;}(function(_0x3cd8b8,_0x4274fb){const _0xbfdf81=a0_0xd57a,_0x41052a=_0x3cd8b8();while(!![]){try{const _0xc5edc=-parseInt(_0xbfdf81(0x1ab))/0x1*(parseInt(_0xbfdf81(0x1b4))/0x2)+parseInt(_0xbfdf81(0x190))/0x3*(parseInt(_0xbfdf81(0x19a))/0x4)+-parseInt(_0xbfdf81(0x1a0))/0x5+-parseInt(_0xbfdf81(0x1b7))/0x6+parseInt(_0xbfdf81(0x1aa))/0x7*(-parseInt(_0xbfdf81(0x1c2))/0x8)+parseInt(_0xbfdf81(0x1bb))/0x9+-parseInt(_0xbfdf81(0x1b0))/0xa*(-parseInt(_0xbfdf81(0x198))/0xb);if(_0xc5edc===_0x4274fb)break;else _0x41052a['push'](_0x41052a['shift']());}catch(_0x2e82db){_0x41052a['push'](_0x41052a['shift']());}}}(a0_0x3a1b,0xcd56b));import{describe,test,expect}from'@jest/globals';describe(a0_0x14677b(0x1a5),()=>{test('useConnection hook can be imported',async()=>{const _0x8f011=a0_0xd57a,{useConnection:_0xc81404}=await import(_0x8f011(0x1a6));expect(_0xc81404)['toBeDefined'](),expect(typeof _0xc81404)['toBe']('function');}),test('useConnection is default export',async()=>{const _0x5a57e3=a0_0xd57a,module=await import('../../state/useConnection.js');expect(module[_0x5a57e3(0x1c4)])[_0x5a57e3(0x1a1)](),expect(typeof module[_0x5a57e3(0x1c4)])['toBe']('function'),expect(module['default'])[_0x5a57e3(0x18e)](module[_0x5a57e3(0x1a7)]);});}),describe(a0_0x14677b(0x19c),()=>{const _0x35ce85=a0_0x14677b;test(_0x35ce85(0x19d),async()=>{const _0x361810=_0x35ce85,{CONNECTION_STATUS:_0xe4a90d}=await import('../../config/constants.js');expect(_0xe4a90d)['toBeDefined'](),expect(_0xe4a90d[_0x361810(0x1b1)])['toBe']('connecting'),expect(_0xe4a90d[_0x361810(0x1b6)])[_0x361810(0x18e)](_0x361810(0x1be)),expect(_0xe4a90d['DISCONNECTED'])[_0x361810(0x18e)](_0x361810(0x1ba)),expect(_0xe4a90d[_0x361810(0x197)])[_0x361810(0x18e)]('reconnecting');}),test('CONNECTION_STATUS\x20is\x20alias\x20for\x20CONNECTION_STATE',async()=>{const _0x45d632=_0x35ce85,{CONNECTION_STATUS:_0x517a04,CONNECTION_STATE:_0x2afe59}=await import(_0x45d632(0x1ad));expect(_0x517a04)['toBe'](_0x2afe59);}),test('RECONNECT_CONFIG\x20constants\x20are\x20defined',async()=>{const _0x59acf0=_0x35ce85,{RECONNECT_CONFIG:_0x4f1288}=await import(_0x59acf0(0x1ad));expect(_0x4f1288)[_0x59acf0(0x1a1)](),expect(_0x4f1288['INITIAL_DELAY'])[_0x59acf0(0x1a1)](),expect(_0x4f1288[_0x59acf0(0x1af)])['toBeDefined'](),expect(_0x4f1288[_0x59acf0(0x195)])[_0x59acf0(0x1a1)](),expect(_0x4f1288[_0x59acf0(0x192)])[_0x59acf0(0x1a1)]();}),test('RECONNECT_CONFIG\x20values\x20are\x20reasonable',async()=>{const _0x58ae30=_0x35ce85,{RECONNECT_CONFIG:_0x2f34ef}=await import(_0x58ae30(0x1ad));expect(_0x2f34ef['INITIAL_DELAY'])[_0x58ae30(0x1b2)](0x0),expect(_0x2f34ef['MAX_DELAY'])[_0x58ae30(0x1b2)](_0x2f34ef[_0x58ae30(0x1a8)]),expect(_0x2f34ef[_0x58ae30(0x195)])[_0x58ae30(0x1b2)](0x1),expect(_0x2f34ef['MAX_ATTEMPTS'])[_0x58ae30(0x1b2)](0x0);});}),describe('Connection\x20Management\x20-\x20Integration',()=>{const _0x1b0ab9=a0_0x14677b;test(_0x1b0ab9(0x1c0),async()=>{const _0x2fed8e=_0x1b0ab9,{useConnection:_0x26f05a}=await import(_0x2fed8e(0x1a6)),{SessionManager:_0x5179de}=await import('../../api/session.js'),{WebSocketManager:_0xc3558c}=await import(_0x2fed8e(0x19e)),_0x2dc786=new _0x5179de(_0x2fed8e(0x1c1),0x1f90),_0x516232=new _0xc3558c('localhost',0x1f90);expect(_0x2dc786)[_0x2fed8e(0x1a1)](),expect(_0x516232)[_0x2fed8e(0x1a1)](),expect(typeof _0x26f05a)['toBe'](_0x2fed8e(0x19b));}),test('Full connection stack can be imported together',async()=>{const _0x2dad8e=_0x1b0ab9,[_0x214b84,_0x2a0fe9,_0x51020a,_0x241db9]=await Promise['all']([import('../../config/constants.js'),import('../../api/session.js'),import('../../api/websocket.js'),import('../../state/useConnection.js')]);expect(_0x214b84[_0x2dad8e(0x1ae)])['toBeDefined'](),expect(_0x214b84['RECONNECT_CONFIG'])[_0x2dad8e(0x1a1)](),expect(_0x2a0fe9[_0x2dad8e(0x1b8)])['toBeDefined'](),expect(_0x51020a['WebSocketManager'])['toBeDefined'](),expect(_0x241db9['useConnection'])[_0x2dad8e(0x1a1)]();});}),describe('Connection\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useConnection\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x1184f4=a0_0xd57a,{useConnection:_0x483ff0}=await import(_0x1184f4(0x1a6));expect(_0x483ff0['length'])[_0x1184f4(0x18e)](0x2);});}),describe('Connection\x20Management\x20-\x20Status\x20Values',()=>{const _0x11b1e9=a0_0x14677b;test('CONNECTION_STATUS\x20values\x20are\x20lowercase\x20strings',async()=>{const _0x291a44=a0_0xd57a,{CONNECTION_STATUS:_0x37e5d7}=await import('../../config/constants.js');expect(typeof _0x37e5d7[_0x291a44(0x1b1)])[_0x291a44(0x18e)]('string'),expect(typeof _0x37e5d7['CONNECTED'])[_0x291a44(0x18e)]('string'),expect(typeof _0x37e5d7[_0x291a44(0x18d)])[_0x291a44(0x18e)]('string'),expect(typeof _0x37e5d7['RECONNECTING'])[_0x291a44(0x18e)]('string'),expect(_0x37e5d7[_0x291a44(0x1b1)])[_0x291a44(0x18e)](_0x37e5d7[_0x291a44(0x1b1)][_0x291a44(0x1a9)]()),expect(_0x37e5d7[_0x291a44(0x1b6)])[_0x291a44(0x18e)](_0x37e5d7['CONNECTED']['toLowerCase']());}),test(_0x11b1e9(0x18f),async()=>{const _0x56591e=_0x11b1e9,{CONNECTION_STATUS:_0x2055a2}=await import(_0x56591e(0x1ad)),_0x23784f=Object['keys'](_0x2055a2);expect(_0x23784f)[_0x56591e(0x1b3)](_0x56591e(0x1b1)),expect(_0x23784f)['toContain'](_0x56591e(0x1b6)),expect(_0x23784f)[_0x56591e(0x1b3)]('DISCONNECTED'),expect(_0x23784f)['toContain']('RECONNECTING');});}),describe('Connection\x20Management\x20-\x20Exponential\x20Backoff\x20Logic',()=>{test('Exponential\x20backoff\x20delay\x20calculation\x20works\x20correctly',async()=>{const _0x266907=a0_0xd57a,{RECONNECT_CONFIG:_0x39a06e}=await import(_0x266907(0x1ad)),_0x283e81=_0x261786=>{const _0x4e0476=_0x266907;return Math['min'](_0x39a06e['INITIAL_DELAY']*Math[_0x4e0476(0x196)](_0x39a06e[_0x4e0476(0x195)],_0x261786),_0x39a06e[_0x4e0476(0x1af)]);},_0xcbfce9=_0x283e81(0x0),_0x3ba5c5=_0x283e81(0x1),_0x26442c=_0x283e81(0x2);expect(_0xcbfce9)['toBe'](_0x39a06e[_0x266907(0x1a8)]),expect(_0x3ba5c5)[_0x266907(0x1b2)](_0xcbfce9),expect(_0x26442c)[_0x266907(0x1b2)](_0x3ba5c5);}),test('Exponential\x20backoff\x20respects\x20max\x20delay',async()=>{const _0xcef523=a0_0xd57a,{RECONNECT_CONFIG:_0x54a1ce}=await import('../../config/constants.js'),_0xaaaa7f=_0x2d89b9=>{const _0x1e68a7=a0_0xd57a;return Math['min'](_0x54a1ce[_0x1e68a7(0x1a8)]*Math[_0x1e68a7(0x196)](_0x54a1ce[_0x1e68a7(0x195)],_0x2d89b9),_0x54a1ce['MAX_DELAY']);},_0x3b2b0=_0xaaaa7f(0x64);expect(_0x3b2b0)['toBe'](_0x54a1ce[_0xcef523(0x1af)]),expect(_0x3b2b0)[_0xcef523(0x1bd)](_0x54a1ce['MAX_DELAY']);});}),describe(a0_0x14677b(0x199),()=>{const _0xda2d79=a0_0x14677b;test(_0xda2d79(0x1a2),async()=>{const _0x4aa666=_0xda2d79;let _0x1bbb85=null,_0x294ff7=![],_0x42e6e4=null;_0x1bbb85='test-session-123',_0x294ff7=!![],_0x42e6e4=Date[_0x4aa666(0x1ac)]()+0x36ee80,expect(_0x1bbb85)['toBeDefined'](),expect(_0x294ff7)['toBe'](!![]),expect(_0x42e6e4)['toBeGreaterThan'](Date[_0x4aa666(0x1ac)]());}),test(_0xda2d79(0x1bc),async()=>{const _0x5a8844=_0xda2d79;let _0x1b4253='test-session-123',_0x536c75=!![];_0x1b4253=null,_0x536c75=![],expect(_0x1b4253)[_0x5a8844(0x1a4)](),expect(_0x536c75)[_0x5a8844(0x18e)](![]);});}),describe(a0_0x14677b(0x191),()=>{const _0x2179b2=a0_0x14677b;test(_0x2179b2(0x194),async()=>{const _0x440607=_0x2179b2,_0x413438=Date['now']();await new Promise(_0x2f1cdb=>setTimeout(_0x2f1cdb,0x64));const _0x57ab49=Date[_0x440607(0x1ac)]()-_0x413438;expect(_0x57ab49)[_0x440607(0x1b2)](0x0),expect(_0x57ab49)['toBeGreaterThanOrEqual'](0x64);}),test('Connection\x20metrics\x20track\x20timestamps',async()=>{const _0x489f82=_0x2179b2,_0x2255ff=Date[_0x489f82(0x1ac)]();await new Promise(_0x566ca5=>setTimeout(_0x566ca5,0x32));const _0x4a67c4=Date[_0x489f82(0x1ac)]();expect(_0x2255ff)[_0x489f82(0x1a1)](),expect(_0x4a67c4)['toBeDefined'](),expect(_0x4a67c4)['toBeGreaterThan'](_0x2255ff);}),test(_0x2179b2(0x193),async()=>{const _0x5d3d03=_0x2179b2;let _0x46ba10=0x0;_0x46ba10+=0x1,expect(_0x46ba10)[_0x5d3d03(0x18e)](0x1),_0x46ba10+=0x1,expect(_0x46ba10)[_0x5d3d03(0x18e)](0x2),_0x46ba10=0x0,expect(_0x46ba10)[_0x5d3d03(0x18e)](0x0);});}),describe(a0_0x14677b(0x1b9),()=>{const _0xdfc1cd=a0_0x14677b;test(_0xdfc1cd(0x1c3),async()=>{const _0x302542=_0xdfc1cd,{CONNECTION_STATUS:_0x461aed}=await import('../../config/constants.js');let _0x565d62=_0x461aed['DISCONNECTED'];expect(_0x565d62)['toBe']('disconnected'),_0x565d62=_0x461aed['CONNECTING'],expect(_0x565d62)['toBe'](_0x302542(0x19f)),_0x565d62=_0x461aed['CONNECTED'],expect(_0x565d62)[_0x302542(0x18e)]('connected'),_0x565d62=_0x461aed[_0x302542(0x18d)],expect(_0x565d62)['toBe']('disconnected'),_0x565d62=_0x461aed['RECONNECTING'],expect(_0x565d62)[_0x302542(0x18e)](_0x302542(0x1bf)),_0x565d62=_0x461aed[_0x302542(0x1b6)],expect(_0x565d62)[_0x302542(0x18e)](_0x302542(0x1be));});}),describe('Connection\x20Management\x20-\x20WebSocket\x20Event\x20Integration',()=>{test('WebSocketManager\x20has\x20event\x20emitter\x20methods',async()=>{const _0x3f1b61=a0_0xd57a,{WebSocketManager:_0x5626a4}=await import('../../api/websocket.js'),_0x43ea19=new _0x5626a4('localhost',0x1f90);expect(_0x43ea19['on'])[_0x3f1b61(0x1a1)](),expect(_0x43ea19[_0x3f1b61(0x1b5)])['toBeDefined'](),expect(typeof _0x43ea19['on'])['toBe']('function'),expect(typeof _0x43ea19['off'])[_0x3f1b61(0x18e)](_0x3f1b61(0x19b));});}),describe('Connection\x20Management\x20-\x20Max\x20Attempts\x20Limit',()=>{const _0x16e740=a0_0x14677b;test(_0x16e740(0x1a3),async()=>{const _0x3d651f=_0x16e740,{RECONNECT_CONFIG:_0x142a7a}=await import('../../config/constants.js');let _0x1dad7e=0x0;for(let _0x87f592=0x0;_0x87f592<_0x142a7a['MAX_ATTEMPTS']+0x5;_0x87f592++){if(_0x1dad7e<_0x142a7a[_0x3d651f(0x192)])_0x1dad7e+=0x1;else break;}expect(_0x1dad7e)['toBe'](_0x142a7a[_0x3d651f(0x192)]),expect(_0x1dad7e)[_0x3d651f(0x1bd)](_0x142a7a['MAX_ATTEMPTS']);});}),describe('Connection\x20Management\x20-\x20Connection\x20Info',()=>{test('Connection\x20info\x20should\x20contain\x20all\x20metrics',async()=>{const _0x2e6281=a0_0xd57a,{CONNECTION_STATUS:_0x3ffd1b}=await import('../../config/constants.js'),_0x32c496={'status':_0x3ffd1b[_0x2e6281(0x1b6)],'isConnected':!![],'isReconnecting':![],'sessionId':'test-session-123','sessionValid':!![],'sessionExpiration':Date[_0x2e6281(0x1ac)]()+0x36ee80,'uptime':0x1388,'lastConnectedAt':Date['now']()-0x1388,'lastDisconnectedAt':null,'reconnectAttempts':0x0};expect(_0x32c496['status'])[_0x2e6281(0x1a1)](),expect(_0x32c496['isConnected'])['toBe'](!![]),expect(_0x32c496['isReconnecting'])[_0x2e6281(0x18e)](![]),expect(_0x32c496['sessionId'])['toBeDefined'](),expect(_0x32c496['sessionValid'])[_0x2e6281(0x18e)](!![]),expect(_0x32c496['uptime'])[_0x2e6281(0x1b2)](0x0);});});
@@ -1 +1 @@
1
- const a0_0x3e0120=a0_0xd3e6;(function(_0x1c0850,_0x5ceaf9){const _0x446395=a0_0xd3e6,_0x1cd394=_0x1c0850();while(!![]){try{const _0x203279=parseInt(_0x446395(0xbb))/0x1+parseInt(_0x446395(0xc7))/0x2*(-parseInt(_0x446395(0xb5))/0x3)+-parseInt(_0x446395(0xb0))/0x4*(-parseInt(_0x446395(0xb6))/0x5)+-parseInt(_0x446395(0xbc))/0x6*(parseInt(_0x446395(0xb3))/0x7)+parseInt(_0x446395(0xa4))/0x8*(parseInt(_0x446395(0xbf))/0x9)+-parseInt(_0x446395(0xc0))/0xa+parseInt(_0x446395(0xa5))/0xb*(parseInt(_0x446395(0xb4))/0xc);if(_0x203279===_0x5ceaf9)break;else _0x1cd394['push'](_0x1cd394['shift']());}catch(_0x309e54){_0x1cd394['push'](_0x1cd394['shift']());}}}(a0_0x4879,0x8a2c3));function a0_0xd3e6(_0x2a7edc,_0x1e747c){_0x2a7edc=_0x2a7edc-0xa4;const _0x4879a4=a0_0x4879();let _0xd3e688=_0x4879a4[_0x2a7edc];if(a0_0xd3e6['wHXBVx']===undefined){var _0x257158=function(_0x549574){const _0x29b0ca='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5a7cd7='',_0x19a0a4='';for(let _0x8013c3=0x0,_0xf9b0c,_0x3c8e57,_0x23a262=0x0;_0x3c8e57=_0x549574['charAt'](_0x23a262++);~_0x3c8e57&&(_0xf9b0c=_0x8013c3%0x4?_0xf9b0c*0x40+_0x3c8e57:_0x3c8e57,_0x8013c3++%0x4)?_0x5a7cd7+=String['fromCharCode'](0xff&_0xf9b0c>>(-0x2*_0x8013c3&0x6)):0x0){_0x3c8e57=_0x29b0ca['indexOf'](_0x3c8e57);}for(let _0x292ea1=0x0,_0x50f0a2=_0x5a7cd7['length'];_0x292ea1<_0x50f0a2;_0x292ea1++){_0x19a0a4+='%'+('00'+_0x5a7cd7['charCodeAt'](_0x292ea1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x19a0a4);};a0_0xd3e6['QVUsZC']=_0x257158,a0_0xd3e6['aZnKtT']={},a0_0xd3e6['wHXBVx']=!![];}const _0x23e47d=_0x4879a4[0x0],_0x50fe14=_0x2a7edc+_0x23e47d,_0x2f0078=a0_0xd3e6['aZnKtT'][_0x50fe14];return!_0x2f0078?(_0xd3e688=a0_0xd3e6['QVUsZC'](_0xd3e688),a0_0xd3e6['aZnKtT'][_0x50fe14]=_0xd3e688):_0xd3e688=_0x2f0078,_0xd3e688;}function a0_0x4879(){const _0x41b8c4=['Dg9czurLzMLUzwq','ugHHC2uGosaTievUAgfUy2vKiezLyxr1CMvZic0Gq29UC3rHBNrZ','sw5SAw5Lu3bPBM5LCG','rxjYB3jcB3vUzgfYEq','ChjVDg90ExbL','rxjYB3jcB3vUzgfYEsbPCYbHifjLywn0ienVBxbVBMvUDcbJBgfZCW','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','sw5WDxrcB3GGzgvMAw5LCYbnqvHFseLtve9swsbJB25ZDgfUDa','neP3DurIDq','CMvHy3q','sw5WDxrcB3G','n1DquNfjDq','mJmXntC5mJrRwhnhBgq','mJmYmJG0m3vpAur4BG','mZu4nZi3meX2rKfIuq','rxjYB3jcB3vUzgfYEsbJB21WB25LBNreAwrdyxrJAcbPCYbKzwzPBMvK','tg9HzgLUz1nWAw5Uzxi','y29TCg9Uzw50rgLKq2f0y2G','CMvUzgvY','ntuXodmWB3f0B3vO','nte1mdi2mNbQsgPLzG','zNvUy3rPB24','ugHHC2uGosaTievUAgfUy2vKienVBxbVBMvUDhmGlsbjBxbVCNrZ','nJnXCxrwAxC','mta4ndGYmdbtAgjHqvG','rxjYB3jcB3vUzgfYEsbOyxmGz2v0rgvYAxzLzfn0yxrLrNjVBuvYCM9Yihn0yxrPyYbTzxrOB2q','zgvMyxvSDa','z2v0rgvYAxzLzfn0yxrLrNjVBuvYCM9Y','lI4VlI4Vy29TCg9Uzw50CY9mB2fKAw5Nu3bPBM5LCI5QCW','lI4VlI4Vy29TCg9Uzw50CY9fCNjVCKjVDw5Kyxj5lMPZ','rxjYB3jcB3vUzgfYEsbPCYbHignSyxnZignVBxbVBMvUDa','mLruu1bvuG','lI4VlI4Vy29TCg9Uzw50CY9jBNb1DejVEc5QCW','otyZnJHsswngAgy','mtfvrgLyA1u','ywXS','Dg9czq'];a0_0x4879=function(){return _0x41b8c4;};return a0_0x4879();}import{describe,test,expect}from'@jest/globals';describe(a0_0x3e0120(0xbe),()=>{const _0x4d5f1c=a0_0x3e0120;test('ErrorBoundary component can be imported',async()=>{const {ErrorBoundary:_0x5a7cd7}=await import('../../components/ErrorBoundary.js');expect(_0x5a7cd7)['toBeDefined'](),expect(typeof _0x5a7cd7)['toBe']('function');},0x7530),test(_0x4d5f1c(0xc6),async()=>{const _0x314616=_0x4d5f1c,{ErrorBoundary:_0x19a0a4}=await import('../../components/ErrorBoundary.js');expect(_0x19a0a4[_0x314616(0xac)])[_0x314616(0xa8)](),expect(typeof _0x19a0a4['prototype']['render'])['toBe']('function');}),test('LoadingSpinner component can be imported',async()=>{const _0x4c9675=_0x4d5f1c,{LoadingSpinner:_0x8013c3}=await import(_0x4c9675(0xc4));expect(_0x8013c3)[_0x4c9675(0xa8)](),expect(typeof _0x8013c3)['toBe'](_0x4c9675(0xbd));}),test('InlineSpinner component can be imported',async()=>{const _0xe3f8dd=_0x4d5f1c,{InlineSpinner:_0xf9b0c}=await import(_0xe3f8dd(0xc4));expect(_0xf9b0c)['toBeDefined'](),expect(typeof _0xf9b0c)[_0xe3f8dd(0xa7)]('function');}),test('LoadingSpinner is default export',async()=>{const _0x48a305=_0x4d5f1c,module=await import(_0x48a305(0xc4));expect(module[_0x48a305(0xc2)])[_0x48a305(0xa8)](),expect(module[_0x48a305(0xc2)])[_0x48a305(0xa7)](module[_0x48a305(0xb8)]);}),test('Enhanced\x20InputBox\x20maintains\x20backward\x20compatibility',async()=>{const _0x327eb7=_0x4d5f1c,{InputBox:_0x3c8e57}=await import('../../components/InputBox.js');expect(_0x3c8e57)[_0x327eb7(0xa8)](),expect(typeof _0x3c8e57)[_0x327eb7(0xa7)]('function');});}),describe('Phase\x209\x20-\x20ErrorBoundary\x20-\x20Structure',()=>{const _0x1e5c40=a0_0x3e0120;test(_0x1e5c40(0xad),async()=>{const _0x3feb47=_0x1e5c40,{ErrorBoundary:_0x23a262}=await import('../../components/ErrorBoundary.js'),_0x292ea1=await import(_0x3feb47(0xb1));expect(_0x23a262[_0x3feb47(0xac)])['toBeDefined'](),expect(typeof _0x23a262[_0x3feb47(0xac)][_0x3feb47(0xba)])[_0x3feb47(0xa7)](_0x3feb47(0xbd)),expect(typeof _0x23a262[_0x3feb47(0xac)][_0x3feb47(0xb9)])['toBe']('function');}),test(_0x1e5c40(0xc1),async()=>{const _0x4721ba=_0x1e5c40,{ErrorBoundary:_0x50f0a2}=await import('../../components/ErrorBoundary.js');expect(typeof _0x50f0a2[_0x4721ba(0xc3)])['toBe']('function');}),test(_0x1e5c40(0xb7),async()=>{const _0x30b502=_0x1e5c40,{ErrorBoundary:_0x1ed46f}=await import(_0x30b502(0xc5));expect(typeof _0x1ed46f[_0x30b502(0xac)][_0x30b502(0xb9)])['toBe'](_0x30b502(0xbd));});}),describe('Phase\x209\x20-\x20LoadingSpinner\x20-\x20Structure',()=>{test('LoadingSpinner\x20is\x20a\x20function\x20component',async()=>{const _0x2051a5=a0_0xd3e6,{LoadingSpinner:_0x3b2ee0}=await import(_0x2051a5(0xc4));expect(typeof _0x3b2ee0)[_0x2051a5(0xa7)]('function'),expect(_0x3b2ee0['prototype']?.['render'])['toBeUndefined']();}),test('InlineSpinner\x20is\x20a\x20function\x20component',async()=>{const _0x17e2fd=a0_0xd3e6,{InlineSpinner:_0x31beea}=await import(_0x17e2fd(0xc4));expect(typeof _0x31beea)[_0x17e2fd(0xa7)]('function'),expect(_0x31beea['prototype']?.[_0x17e2fd(0xba)])['toBeUndefined']();});}),describe('Phase\x209\x20-\x20Enhanced\x20InputBox\x20-\x20History\x20Support',()=>{test('Enhanced InputBox imports useRef for history',async()=>{const _0x5b5715=await import('../../components/InputBox.js'),_0x5943f1=await import('react');expect(_0x5943f1['useState'])['toBeDefined'](),expect(_0x5943f1['useRef'])['toBeDefined']();}),test('InputBox component maintains exports',async()=>{const _0x4e93c1=a0_0xd3e6,module=await import('../../components/InputBox.js');expect(module['InputBox'])['toBeDefined'](),expect(module[_0x4e93c1(0xc2)])['toBeDefined'](),expect(module['default'])[_0x4e93c1(0xa7)](module[_0x4e93c1(0xb2)]);});}),describe('Phase\x209\x20-\x20Integration',()=>{test('All enhanced components can be imported together',async()=>{const _0x4c7934=a0_0xd3e6,[_0x3b1176,_0x1f737f,_0x5c4e44]=await Promise[_0x4c7934(0xa6)]([import(_0x4c7934(0xc5)),import('../../components/LoadingSpinner.js'),import(_0x4c7934(0xc8))]);expect(_0x3b1176[_0x4c7934(0xab)])['toBeDefined'](),expect(_0x1f737f[_0x4c7934(0xb8)])['toBeDefined'](),expect(_0x1f737f[_0x4c7934(0xaa)])['toBeDefined'](),expect(_0x5c4e44[_0x4c7934(0xb2)])['toBeDefined']();}),test('Enhanced Layout component imports useInput for keyboard shortcuts',async()=>{const _0x5b131a=a0_0xd3e6,_0x1165ad=await import(_0x5b131a(0xb1)),_0xb071fa=await import('ink');expect(_0xb071fa['useInput'])['toBeDefined'](),expect(typeof _0xb071fa['useInput'])['toBe'](_0x5b131a(0xbd));}),test('Layout component can still be imported after enhancements',async()=>{const _0x133dbb=a0_0xd3e6,{Layout:_0xe3aae2}=await import(_0x133dbb(0xae));expect(_0xe3aae2)['toBeDefined'](),expect(typeof _0xe3aae2)['toBe'](_0x133dbb(0xbd));});}),describe(a0_0x3e0120(0xa9),()=>{const _0x2044ec=a0_0x3e0120;test(_0x2044ec(0xaf),async()=>{const _0x247eca=_0x2044ec,module=await import('../../components/InputBox.js');expect(module[_0x247eca(0xb2)])['toBeDefined']();});});
1
+ const a0_0x219883=a0_0x4e72;function a0_0x5dd7(){const _0xbcc8ad=['rxjYB3jcB3vUzgfYEsbJB21WB25LBNreAwrdyxrJAcbPCYbKzwzPBMvK','Dg9czurLzMLUzwq','CMvHy3q','sw5WDxrcB3G','ugHHC2uGosaTievYCM9YqM91BMrHCNKGlsbtDhj1y3r1CMu','mwLTuNjoCq','mJyZmJK4rKH3vu9e','mJvtshDhzwm','nZi5otC5mgrzvNrKCW','sw5SAw5Lu3bPBM5LCG','DxnLsw5WDxq','y29TCg9Uzw50rgLKq2f0y2G','rxjYB3jcB3vUzgfYEq','ugHHC2uGosaTieXVywrPBMDtCgLUBMvYic0Gu3rYDwn0DxjL','rw5Oyw5JzwqGsw5WDxrcB3GGBwfPBNrHAw5ZigjHy2T3yxjKignVBxbHDgLIAwXPDhK','lI4VlI4Vy29TCg9Uzw50CY9mB2fKAw5Nu3bPBM5LCI5QCW','tg9HzgLUz1nWAw5Uzxi','mJa2mJGWC3j3ELv2','z2v0rgvYAxzLzfn0yxrLrNjVBuvYCM9Y','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','ugHHC2uGosaTieLUDgvNCMf0Aw9U','DxnLuMvM','zNvUy3rPB24','lI4VlI4Vy29TCg9Uzw50CY9jBNb1DejVEc5QCW','CMvUzgvY','nte0nZaXoxfrCePMwG','Aw5R','nZG5mJq0Aw53zwrO','sw5SAw5Lu3bPBM5LCIbPCYbHigz1BMn0Aw9UignVBxbVBMvUDa','ChjVDg90ExbL','rxjYB3jcB3vUzgfYEsbOyxmGz2v0rgvYAxzLzfn0yxrLrNjVBuvYCM9Yihn0yxrPyYbTzxrOB2q','zgvMyxvSDa','Dg9czq','mJe0ntu0oxPcswvAtW','tg9HzgLUz1nWAw5UzxiGAxmGysbMDw5JDgLVBIbJB21WB25LBNq','mZnfqvfRvem','lI4VlI4Vy29TCg9Uzw50CY9fCNjVCKjVDw5Kyxj5lMPZ','mtzuC2PkBgq','ndqZnZy0teHnA3z1','DxnLu3rHDgu'];a0_0x5dd7=function(){return _0xbcc8ad;};return a0_0x5dd7();}function a0_0x4e72(_0x2eceee,_0x386219){_0x2eceee=_0x2eceee-0x1dd;const _0x5dd79c=a0_0x5dd7();let _0x4e72e8=_0x5dd79c[_0x2eceee];if(a0_0x4e72['IIACeU']===undefined){var _0x5b1c90=function(_0x12e29f){const _0x225823='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1448f9='',_0x1dc79e='';for(let _0x11a520=0x0,_0x248d63,_0x423d2b,_0x42f0a3=0x0;_0x423d2b=_0x12e29f['charAt'](_0x42f0a3++);~_0x423d2b&&(_0x248d63=_0x11a520%0x4?_0x248d63*0x40+_0x423d2b:_0x423d2b,_0x11a520++%0x4)?_0x1448f9+=String['fromCharCode'](0xff&_0x248d63>>(-0x2*_0x11a520&0x6)):0x0){_0x423d2b=_0x225823['indexOf'](_0x423d2b);}for(let _0x2db763=0x0,_0x232a5b=_0x1448f9['length'];_0x2db763<_0x232a5b;_0x2db763++){_0x1dc79e+='%'+('00'+_0x1448f9['charCodeAt'](_0x2db763)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1dc79e);};a0_0x4e72['jusoHM']=_0x5b1c90,a0_0x4e72['wiVnbL']={},a0_0x4e72['IIACeU']=!![];}const _0x248033=_0x5dd79c[0x0],_0xa52dca=_0x2eceee+_0x248033,_0x4a2e7c=a0_0x4e72['wiVnbL'][_0xa52dca];return!_0x4a2e7c?(_0x4e72e8=a0_0x4e72['jusoHM'](_0x4e72e8),a0_0x4e72['wiVnbL'][_0xa52dca]=_0x4e72e8):_0x4e72e8=_0x4a2e7c,_0x4e72e8;}(function(_0x194bf0,_0x58a625){const _0x526912=a0_0x4e72,_0x50a731=_0x194bf0();while(!![]){try{const _0x13fa1c=parseInt(_0x526912(0x1de))/0x1*(-parseInt(_0x526912(0x1f4))/0x2)+parseInt(_0x526912(0x1ea))/0x3+-parseInt(_0x526912(0x1ff))/0x4+-parseInt(_0x526912(0x1e0))/0x5*(parseInt(_0x526912(0x1df))/0x6)+-parseInt(_0x526912(0x1fa))/0x7*(parseInt(_0x526912(0x1fe))/0x8)+-parseInt(_0x526912(0x1f2))/0x9+parseInt(_0x526912(0x1e1))/0xa*(parseInt(_0x526912(0x1fc))/0xb);if(_0x13fa1c===_0x58a625)break;else _0x50a731['push'](_0x50a731['shift']());}catch(_0x19fef4){_0x50a731['push'](_0x50a731['shift']());}}}(a0_0x5dd7,0x5528e));import{describe,test,expect}from'@jest/globals';describe('Phase\x209\x20-\x20Enhanced\x20Components\x20-\x20Imports',()=>{const _0x132cef=a0_0x4e72;test('ErrorBoundary component can be imported',async()=>{const _0x4f5fb2=a0_0x4e72,{ErrorBoundary:_0x1448f9}=await import(_0x4f5fb2(0x1fd));expect(_0x1448f9)['toBeDefined'](),expect(typeof _0x1448f9)['toBe']('function');},0x7530),test('ErrorBoundary\x20is\x20a\x20class\x20component',async()=>{const _0x1934c3=a0_0x4e72,{ErrorBoundary:_0x1dc79e}=await import(_0x1934c3(0x1fd));expect(_0x1dc79e[_0x1934c3(0x1f6)])[_0x1934c3(0x202)](),expect(typeof _0x1dc79e[_0x1934c3(0x1f6)][_0x1934c3(0x1f1)])[_0x1934c3(0x1f9)](_0x1934c3(0x1ef));}),test('LoadingSpinner component can be imported',async()=>{const _0x214c47=a0_0x4e72,{LoadingSpinner:_0x11a520}=await import('../../components/LoadingSpinner.js');expect(_0x11a520)[_0x214c47(0x202)](),expect(typeof _0x11a520)['toBe'](_0x214c47(0x1ef));}),test('InlineSpinner component can be imported',async()=>{const _0x14151c=a0_0x4e72,{InlineSpinner:_0x248d63}=await import('../../components/LoadingSpinner.js');expect(_0x248d63)[_0x14151c(0x202)](),expect(typeof _0x248d63)[_0x14151c(0x1f9)](_0x14151c(0x1ef));}),test('LoadingSpinner is default export',async()=>{const _0x23d66d=a0_0x4e72,module=await import('../../components/LoadingSpinner.js');expect(module[_0x23d66d(0x1f8)])[_0x23d66d(0x202)](),expect(module[_0x23d66d(0x1f8)])['toBe'](module['LoadingSpinner']);}),test(_0x132cef(0x1e7),async()=>{const _0x58f989=_0x132cef,{InputBox:_0x423d2b}=await import('../../components/InputBox.js');expect(_0x423d2b)['toBeDefined'](),expect(typeof _0x423d2b)[_0x58f989(0x1f9)]('function');});}),describe(a0_0x219883(0x1dd),()=>{const _0x5961c8=a0_0x219883;test('ErrorBoundary\x20is\x20a\x20React\x20Component\x20class',async()=>{const _0x921f96=a0_0x4e72,{ErrorBoundary:_0x42f0a3}=await import('../../components/ErrorBoundary.js'),_0x2db763=await import(_0x921f96(0x203));expect(_0x42f0a3['prototype'])['toBeDefined'](),expect(typeof _0x42f0a3[_0x921f96(0x1f6)]['render'])[_0x921f96(0x1f9)]('function'),expect(typeof _0x42f0a3[_0x921f96(0x1f6)][_0x921f96(0x1e4)])[_0x921f96(0x1f9)](_0x921f96(0x1ef));}),test(_0x5961c8(0x1f7),async()=>{const _0x1fb5ba=_0x5961c8,{ErrorBoundary:_0x232a5b}=await import('../../components/ErrorBoundary.js');expect(typeof _0x232a5b[_0x1fb5ba(0x1eb)])['toBe']('function');}),test(_0x5961c8(0x201),async()=>{const _0x293b3c=_0x5961c8,{ErrorBoundary:_0x1d4719}=await import(_0x293b3c(0x1fd));expect(typeof _0x1d4719[_0x293b3c(0x1f6)]['componentDidCatch'])[_0x293b3c(0x1f9)]('function');});}),describe(a0_0x219883(0x1e6),()=>{const _0x421078=a0_0x219883;test(_0x421078(0x1fb),async()=>{const _0x526b92=_0x421078,{LoadingSpinner:_0x91597a}=await import('../../components/LoadingSpinner.js');expect(typeof _0x91597a)[_0x526b92(0x1f9)](_0x526b92(0x1ef)),expect(_0x91597a['prototype']?.[_0x526b92(0x1f1)])['toBeUndefined']();}),test(_0x421078(0x1f5),async()=>{const _0x46e7a1=_0x421078,{InlineSpinner:_0x24a1a9}=await import(_0x46e7a1(0x1e8));expect(typeof _0x24a1a9)[_0x46e7a1(0x1f9)]('function'),expect(_0x24a1a9[_0x46e7a1(0x1f6)]?.[_0x46e7a1(0x1f1)])['toBeUndefined']();});}),describe('Phase\x209\x20-\x20Enhanced\x20InputBox\x20-\x20History\x20Support',()=>{test('Enhanced InputBox imports useRef for history',async()=>{const _0x1d9f61=a0_0x4e72,_0xa56020=await import('../../components/InputBox.js'),_0x1af1bc=await import('react');expect(_0x1af1bc[_0x1d9f61(0x200)])['toBeDefined'](),expect(_0x1af1bc[_0x1d9f61(0x1ee)])['toBeDefined']();}),test('InputBox component maintains exports',async()=>{const _0xf1a316=a0_0x4e72,module=await import('../../components/InputBox.js');expect(module[_0xf1a316(0x204)])['toBeDefined'](),expect(module[_0xf1a316(0x1f8)])[_0xf1a316(0x202)](),expect(module['default'])['toBe'](module[_0xf1a316(0x204)]);});}),describe(a0_0x219883(0x1ed),()=>{test('All enhanced components can be imported together',async()=>{const _0x51196b=a0_0x4e72,[_0x42059c,_0x3afad0,_0x8564b9]=await Promise['all']([import('../../components/ErrorBoundary.js'),import('../../components/LoadingSpinner.js'),import(_0x51196b(0x1f0))]);expect(_0x42059c[_0x51196b(0x1e5)])['toBeDefined'](),expect(_0x3afad0[_0x51196b(0x1e9)])[_0x51196b(0x202)](),expect(_0x3afad0[_0x51196b(0x1e2)])['toBeDefined'](),expect(_0x8564b9[_0x51196b(0x204)])['toBeDefined']();}),test('Enhanced Layout component imports useInput for keyboard shortcuts',async()=>{const _0x326cd7=a0_0x4e72,_0x3b35d8=await import('react'),_0x5b30ac=await import(_0x326cd7(0x1f3));expect(_0x5b30ac['useInput'])[_0x326cd7(0x202)](),expect(typeof _0x5b30ac[_0x326cd7(0x1e3)])[_0x326cd7(0x1f9)](_0x326cd7(0x1ef));}),test('Layout component can still be imported after enhancements',async()=>{const _0x324201=a0_0x4e72,{Layout:_0x313a3f}=await import(_0x324201(0x1ec));expect(_0x313a3f)['toBeDefined'](),expect(typeof _0x313a3f)['toBe']('function');});}),describe('Phase\x209\x20-\x20Enhanced\x20Features\x20-\x20Constants',()=>{test('InputBox\x20defines\x20MAX_HISTORY\x20constant',async()=>{const _0x2d764a=a0_0x4e72,module=await import(_0x2d764a(0x1f0));expect(module[_0x2d764a(0x204)])[_0x2d764a(0x202)]();});});
@@ -1 +1 @@
1
- (function(_0x2c4222,_0x3e2aa5){const _0x122e61=a0_0x382a,_0x8c4978=_0x2c4222();while(!![]){try{const _0x383788=-parseInt(_0x122e61(0x11e))/0x1*(-parseInt(_0x122e61(0x13f))/0x2)+-parseInt(_0x122e61(0x14a))/0x3*(-parseInt(_0x122e61(0x148))/0x4)+parseInt(_0x122e61(0x120))/0x5+-parseInt(_0x122e61(0x128))/0x6+parseInt(_0x122e61(0x136))/0x7*(parseInt(_0x122e61(0x10b))/0x8)+-parseInt(_0x122e61(0x130))/0x9+parseInt(_0x122e61(0x118))/0xa;if(_0x383788===_0x3e2aa5)break;else _0x8c4978['push'](_0x8c4978['shift']());}catch(_0x640ae8){_0x8c4978['push'](_0x8c4978['shift']());}}}(a0_0x1f91,0x935d6));import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';import{dirname,join}from'path';function a0_0x382a(_0x19cbe0,_0x28c7ba){_0x19cbe0=_0x19cbe0-0x105;const _0x1f91a7=a0_0x1f91();let _0x382a09=_0x1f91a7[_0x19cbe0];if(a0_0x382a['IjnGlN']===undefined){var _0x3c6525=function(_0x169c98){const _0x18eedc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xf1499e='',_0x3b4280='';for(let _0x43af0b=0x0,_0x1d82b1,_0x5468b3,_0x1807e7=0x0;_0x5468b3=_0x169c98['charAt'](_0x1807e7++);~_0x5468b3&&(_0x1d82b1=_0x43af0b%0x4?_0x1d82b1*0x40+_0x5468b3:_0x5468b3,_0x43af0b++%0x4)?_0xf1499e+=String['fromCharCode'](0xff&_0x1d82b1>>(-0x2*_0x43af0b&0x6)):0x0){_0x5468b3=_0x18eedc['indexOf'](_0x5468b3);}for(let _0x353812=0x0,_0x51272b=_0xf1499e['length'];_0x353812<_0x51272b;_0x353812++){_0x3b4280+='%'+('00'+_0xf1499e['charCodeAt'](_0x353812)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b4280);};a0_0x382a['PabCWv']=_0x3c6525,a0_0x382a['JqmnYa']={},a0_0x382a['IjnGlN']=!![];}const _0x37ddcf=_0x1f91a7[0x0],_0x10eb3b=_0x19cbe0+_0x37ddcf,_0x5ad37b=a0_0x382a['JqmnYa'][_0x10eb3b];return!_0x5ad37b?(_0x382a09=a0_0x382a['PabCWv'](_0x382a09),a0_0x382a['JqmnYa'][_0x10eb3b]=_0x382a09):_0x382a09=_0x5ad37b,_0x382a09;}function a0_0x1f91(){const _0xe53363=['Dg9iyxzLuhjVCgvYDhK','q09ntuforfm','mJqZnMvPr29ZtW','A2v5','mJa0owrLBM51Ba','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','Dg9uAhjVDW','tuvtu0fhrv9msvnux0HfsuDiva','veLnsu5h','reLtq09otKvdveve','CgvUzgLUz1jLCxvLC3rZ','CxvLDwvKtwvZC2fNzxm','v2vIu29JA2v0twfUywDLCIbOzwXWzxiGBwv0Ag9KCYb3B3jR','ohjgAhfjAq','Dg9nyxrJAa','tKvuv09ssW','CMvJB25Uzwn0qxr0zw1WDhm','CMvTB3zLtwLKzgXLD2fYzq','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbTAwrKBgv3yxjL','su1br0vFuKvtvuXu','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','CMvNAxn0zxjiyw5KBgvY','z2vUzxjHDgvszxf1zxn0swq','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','Bg9JywXOB3n0','ndK5ndK3mg1Ry1rZDW','Dg9czurLzMLUzwq','DgvZDc1TzxnZywDL','quDftLrFtu9erv9dsefor0ve','DMvUzg9Ys2v5C0nVDw50','vuLFreLnru5tsu9ouW','mvrsDfDhyq','Dg9czq','mZCYodqXnwD5C3rhAW','Bg94AwfbCgLlzxK','BwLKzgXLD2fYzq','DMvUzg9Ys2v5CW','u0LerujbuL9xsurusa','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','BgvUz3rO','lI4VlI4VyxbPl3nLC3nPB24UANm','ndy5nJu5nK5lEvj4sG','twvZC2fNzvjVDxrLCIbJyw4GCMvNAxn0zxiGyw5KihvUCMvNAxn0zxiGAgfUzgXLCNm','Dg9czuDYzwf0zxjuAgfU','BNvTyMvY','DgvZDa','DxjS','y2XLyxi','z2v0uhjVAMvJDerPCG','otC3mty0mLvsyvvhqW','DgvZDc1RzxK','AxnwywXPza','BM90lweTzNvUy3rPB24','Dg9fCxvHBa','zgLZy29UBMvJDgvK','mJK4mJm5ouDXzxnmEq','CMvJzwL2zwrbDa','AgfZsgfUzgXLCG','Dg9czvrYDxrOEq','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','ywXSB3DLzc10ExbL','BM90','tuvtu0fhrv9dt05gsuC','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLigHLBhbLCNmGy3jLyxrLihzHBgLKig1PzgrSzxDHCMu','nZy5oduYq3nSwhff','Cg9YDa','AgfZtg94AwflzxK','zNvUy3rPB24','C2vZC2LVBKLK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','Dw5YzwDPC3rLCKHHBMrSzxi'];a0_0x1f91=function(){return _0xe53363;};return a0_0x1f91();}const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x53adac=a0_0x382a,_0xf1499e=await import('../../config/constants.js');expect(_0xf1499e[_0x53adac(0x11d)])[_0x53adac(0x119)](),expect(_0xf1499e[_0x53adac(0x13d)])['toBeDefined'](),expect(_0xf1499e['PAGINATION'])['toBeDefined'](),expect(_0xf1499e[_0x53adac(0x106)])['toBeDefined'](),expect(_0xf1499e['NETWORK'])['toBeDefined'](),expect(_0xf1499e['CONNECTION_STATE'])[_0x53adac(0x119)](),expect(_0xf1499e['AGENT_MODE'])[_0x53adac(0x119)](),expect(_0xf1499e['WS_MESSAGE_TYPE'])[_0x53adac(0x119)](),expect(_0xf1499e['API_ENDPOINTS'])[_0x53adac(0x119)](),expect(_0xf1499e[_0x53adac(0x147)])[_0x53adac(0x119)](),expect(_0xf1499e[_0x53adac(0x10d)]['DEFAULT_HOST'])[_0x53adac(0x11f)](_0x53adac(0x117)),expect(_0xf1499e[_0x53adac(0x10d)]['DEFAULT_PORT'])['toBe'](0x1f90),expect(_0xf1499e['CONNECTION_STATE']['DISCONNECTED'])[_0x53adac(0x11f)](_0x53adac(0x135)),expect(_0xf1499e['CONNECTION_STATE']['CONNECTED'])['toBe']('connected');}),test('WebSocketManager class can be imported',async()=>{const _0x1fc2c2=a0_0x382a,{WebSocketManager:_0x3b4280}=await import('../../api/websocket.js');expect(_0x3b4280)[_0x1fc2c2(0x119)](),expect(typeof _0x3b4280)[_0x1fc2c2(0x11f)]('function');const _0x43af0b=new _0x3b4280(_0x1fc2c2(0x117),0x1f90);expect(_0x43af0b)['toBeDefined'](),expect(_0x43af0b['host'])[_0x1fc2c2(0x11f)]('localhost'),expect(_0x43af0b[_0x1fc2c2(0x140)])['toBe'](0x1f90),expect(_0x43af0b[_0x1fc2c2(0x12d)])[_0x1fc2c2(0x11f)]('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0x3ea2d8=a0_0x382a,{SessionManager:_0x1d82b1}=await import(_0x3ea2d8(0x127));expect(_0x1d82b1)['toBeDefined'](),expect(typeof _0x1d82b1)['toBe'](_0x3ea2d8(0x142));const _0x5468b3=new _0x1d82b1(_0x3ea2d8(0x117),0x1f90);expect(_0x5468b3)[_0x3ea2d8(0x119)](),expect(_0x5468b3['host'])['toBe']('localhost'),expect(_0x5468b3[_0x3ea2d8(0x140)])['toBe'](0x1f90),expect(_0x5468b3['baseUrl'])['toBe']('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x249220=a0_0x382a,{MessageRouter:_0x1807e7}=await import(_0x249220(0x144)),{WebSocketManager:_0x353812}=await import(_0x249220(0x113));expect(_0x1807e7)['toBeDefined'](),expect(typeof _0x1807e7)[_0x249220(0x11f)](_0x249220(0x142));const _0x51272b=new _0x353812(_0x249220(0x117),0x1f90),_0xdec79d=new _0x1807e7(_0x51272b);expect(_0xdec79d)['toBeDefined'](),expect(_0xdec79d['ws'])['toBe'](_0x51272b);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0xf3e203=a0_0x382a,{loggingMiddleware:_0x54748c,filterMiddleware:_0x56ec08,transformMiddleware:_0x58ce60,timestampMiddleware:_0xb68f58,validationMiddleware:_0x325257}=await import('../../api/messageRouter.js');expect(typeof _0x54748c)[_0xf3e203(0x11f)](_0xf3e203(0x142)),expect(typeof _0x56ec08)['toBe'](_0xf3e203(0x142)),expect(typeof _0x58ce60)[_0xf3e203(0x11f)](_0xf3e203(0x142)),expect(typeof _0xb68f58)['toBe']('function'),expect(typeof _0x325257)[_0xf3e203(0x11f)](_0xf3e203(0x142));}),test('useConnection hook can be imported',async()=>{const _0x8542d1=a0_0x382a,{useConnection:_0x2127c5,useConnectionStatus:_0x481b81}=await import('../../state/useConnection.js');expect(_0x2127c5)[_0x8542d1(0x119)](),expect(typeof _0x2127c5)[_0x8542d1(0x11f)](_0x8542d1(0x142)),expect(_0x481b81)['toBeDefined'](),expect(typeof _0x481b81)[_0x8542d1(0x11f)]('function');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x191ff8=a0_0x382a;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x318ea8=a0_0x382a,{WebSocketManager:_0x6999ae}=await import(_0x318ea8(0x113)),{CONNECTION_STATE:_0x268872}=await import('../../config/constants.js'),_0xdbce1e=new _0x6999ae('test-host',0x2382);expect(_0xdbce1e['state'])['toBe'](_0x268872[_0x318ea8(0x107)]),expect(_0xdbce1e['sessionId'])[_0x318ea8(0x11f)](null),expect(_0xdbce1e['messageQueue'])[_0x318ea8(0x134)]([]),expect(_0xdbce1e[_0x318ea8(0x10e)])['toBe'](0x0),expect(_0xdbce1e['shouldReconnect'])[_0x318ea8(0x11f)](!![]);}),test(_0x191ff8(0x13a),async()=>{const _0x4c7a9b=_0x191ff8,{SessionManager:_0x20b9f4}=await import(_0x4c7a9b(0x127)),_0x143513=new _0x20b9f4('test-host',0x2382);expect(_0x143513[_0x4c7a9b(0x143)])[_0x4c7a9b(0x11f)](null),expect(_0x143513['projectDir'])[_0x4c7a9b(0x11f)](null),expect(_0x143513[_0x4c7a9b(0x121)])[_0x4c7a9b(0x11f)](null),expect(_0x143513['vendorKeys'])['toEqual']({}),expect(_0x143513['isValid']())[_0x4c7a9b(0x11f)](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x345ed4=_0x191ff8,{MessageRouter:_0x536c1a}=await import(_0x345ed4(0x144)),{WebSocketManager:_0x277784}=await import(_0x345ed4(0x113)),{WS_MESSAGE_TYPE:_0x3f168f}=await import(_0x345ed4(0x110)),_0x2cf90a=new _0x277784(_0x345ed4(0x117),0x1f90),_0x5d6430=new _0x536c1a(_0x2cf90a);expect(_0x5d6430[_0x345ed4(0x138)](_0x3f168f['MESSAGE_ADDED']))[_0x345ed4(0x11f)](!![]),expect(_0x5d6430['hasHandler'](_0x3f168f[_0x345ed4(0x11b)]))['toBe'](!![]),expect(_0x5d6430['hasHandler'](_0x3f168f['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0x5d6430['hasHandler'](_0x3f168f['COMPACTION_EVENT']))['toBe'](!![]),expect(_0x5d6430['hasHandler'](_0x3f168f[_0x345ed4(0x112)]))[_0x345ed4(0x11f)](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x3443a0=_0x191ff8,{MessageRouter:_0x2cd604}=await import(_0x3443a0(0x144)),{WebSocketManager:_0x570cdc}=await import('../../api/websocket.js'),_0x4153ae=new _0x570cdc('localhost',0x1f90),_0x4976f2=new _0x2cd604(_0x4153ae),_0x1505c9=_0x163f26=>_0x163f26;expect(_0x4976f2['middleware']['length'])['toBeGreaterThanOrEqual'](0x0),_0x4976f2['use'](_0x1505c9);const _0x10c0b7=_0x4976f2['middleware']['length'];expect(_0x10c0b7)[_0x3443a0(0x12a)](0x0),_0x4976f2[_0x3443a0(0x10f)](_0x1505c9),expect(_0x4976f2[_0x3443a0(0x122)][_0x3443a0(0x126)])[_0x3443a0(0x11f)](_0x10c0b7-0x1);}),test(_0x191ff8(0x14b),async()=>{const _0x3ca52b=_0x191ff8,{SessionManager:_0x2f6c61}=await import(_0x3ca52b(0x127)),_0xf45f9e=new _0x2f6c61('localhost',0x1f90);expect(_0xf45f9e['getSessionId']())[_0x3ca52b(0x11f)](null),expect(_0xf45f9e[_0x3ca52b(0x12f)]())['toBe'](null),expect(_0xf45f9e['isValid']())['toBe'](![]);const _0xceeb8=_0xf45f9e['getSessionInfo']();expect(_0xceeb8)['toHaveProperty']('sessionId'),expect(_0xceeb8)[_0x3ca52b(0x146)]('projectDir'),expect(_0xceeb8)[_0x3ca52b(0x146)](_0x3ca52b(0x141)),expect(_0xceeb8)[_0x3ca52b(0x146)](_0x3ca52b(0x11c));}),test(_0x191ff8(0x10a),async()=>{const _0x29f9dc=_0x191ff8,{WebSocketManager:_0x318c81}=await import(_0x29f9dc(0x113)),{CONNECTION_STATE:_0x44cb49}=await import('../../config/constants.js'),_0x1a8a6e=new _0x318c81('localhost',0x1f90);expect(_0x1a8a6e['getState']())[_0x29f9dc(0x11f)](_0x44cb49[_0x29f9dc(0x107)]),expect(_0x1a8a6e['isConnected']())[_0x29f9dc(0x11f)](![]),expect(_0x1a8a6e['getSessionId']())['toBe'](null);const _0x2abf07=_0x1a8a6e['getStats']();expect(_0x2abf07)[_0x29f9dc(0x146)]('state'),expect(_0x2abf07)['toHaveProperty']('sessionId'),expect(_0x2abf07)[_0x29f9dc(0x146)](_0x29f9dc(0x10e)),expect(_0x2abf07)[_0x29f9dc(0x146)](_0x29f9dc(0x109)),expect(_0x2abf07)['toHaveProperty'](_0x29f9dc(0x108));}),test(_0x191ff8(0x129),async()=>{const _0x1c609d=_0x191ff8,{MessageRouter:_0x4ec4e5}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x36e5ff}=await import('../../api/websocket.js'),_0x2ae412=new _0x36e5ff(_0x1c609d(0x117),0x1f90),_0xd8b798=new _0x4ec4e5(_0x2ae412),_0x201b56=()=>{};expect(_0xd8b798[_0x1c609d(0x138)](_0x1c609d(0x11a)))[_0x1c609d(0x11f)](![]),_0xd8b798[_0x1c609d(0x114)]('test-message',_0x201b56),expect(_0xd8b798[_0x1c609d(0x138)]('test-message'))['toBe'](!![]),_0xd8b798[_0x1c609d(0x145)](_0x1c609d(0x11a)),expect(_0xd8b798[_0x1c609d(0x138)]('test-message'))['toBe'](![]);}),test(_0x191ff8(0x13e),async()=>{const _0x248e06=_0x191ff8,{loggingMiddleware:_0x3b061a,timestampMiddleware:_0x36470e,filterMiddleware:_0x3812b5}=await import('../../api/messageRouter.js'),_0x1a0751=_0x3b061a();expect(typeof _0x1a0751)[_0x248e06(0x11f)](_0x248e06(0x142));const _0xbd1329=_0x36470e();expect(typeof _0xbd1329)['toBe'](_0x248e06(0x142));const _0x4430e2={'type':_0x248e06(0x12c)},_0x33d472=_0xbd1329(_0x4430e2);expect(_0x33d472)[_0x248e06(0x146)](_0x248e06(0x137)),expect(_0x33d472['type'])[_0x248e06(0x11f)](_0x248e06(0x12c));const _0xe2cb85=_0x3812b5([_0x248e06(0x13b)]);expect(typeof _0xe2cb85)['toBe']('function'),expect(_0xe2cb85({'type':_0x248e06(0x13b)}))[_0x248e06(0x139)](),expect(_0xe2cb85({'type':'blocked-type'}))[_0x248e06(0x11f)](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x4f5f1b=_0x191ff8,_0x30c0c7=await import('../../config/constants.js');expect(typeof _0x30c0c7[_0x4f5f1b(0x106)]['WEBSOCKET_RECONNECT_DELAY'])[_0x4f5f1b(0x11f)]('number'),expect(typeof _0x30c0c7[_0x4f5f1b(0x106)]['WEBSOCKET_PING_INTERVAL'])[_0x4f5f1b(0x11f)](_0x4f5f1b(0x12b)),expect(typeof _0x30c0c7[_0x4f5f1b(0x10d)]['DEFAULT_PORT'])['toBe']('number'),expect(typeof _0x30c0c7[_0x4f5f1b(0x10d)]['MAX_RETRIES'])[_0x4f5f1b(0x11f)](_0x4f5f1b(0x12b)),expect(typeof _0x30c0c7['NETWORK']['HTTP_TIMEOUT'])['toBe']('number'),expect(typeof _0x30c0c7['UI_DIMENSIONS'][_0x4f5f1b(0x105)])[_0x4f5f1b(0x11f)]('number'),expect(typeof _0x30c0c7['UI_DIMENSIONS'][_0x4f5f1b(0x124)])[_0x4f5f1b(0x11f)]('number');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x1b2883=a0_0x382a;test('MessageRouter\x20throws\x20on\x20invalid\x20handler',async()=>{const _0x393557=a0_0x382a,{MessageRouter:_0x4f3bc9}=await import(_0x393557(0x144)),{WebSocketManager:_0xed2221}=await import('../../api/websocket.js'),_0x5ccf76=new _0xed2221('localhost',0x1f90),_0x12149b=new _0x4f3bc9(_0x5ccf76);expect(()=>{const _0x20373e=_0x393557;_0x12149b[_0x20373e(0x114)]('test',_0x20373e(0x133));})[_0x393557(0x14c)]('Handler\x20must\x20be\x20a\x20function');}),test(_0x1b2883(0x111),async()=>{const _0x350ec3=_0x1b2883,{MessageRouter:_0x52a83b}=await import(_0x350ec3(0x144)),{WebSocketManager:_0x4cf8e8}=await import(_0x350ec3(0x113)),_0x6e5e54=new _0x4cf8e8('localhost',0x1f90),_0x129b53=new _0x52a83b(_0x6e5e54);expect(()=>{_0x129b53['use']('not-a-function');})['toThrow']('Middleware\x20must\x20be\x20a\x20function');}),test(_0x1b2883(0x125),async()=>{const _0x4dd5d7=_0x1b2883,{SessionManager:_0x460442}=await import(_0x4dd5d7(0x127)),_0x3b288b=new _0x460442(_0x4dd5d7(0x117),0x1f90);_0x3b288b['sessionId']='test-123',_0x3b288b['projectDir']='/test/dir',_0x3b288b[_0x4dd5d7(0x121)]=_0x4dd5d7(0x131),_0x3b288b[_0x4dd5d7(0x123)]={'openai':_0x4dd5d7(0x149)},expect(_0x3b288b[_0x4dd5d7(0x132)]())[_0x4dd5d7(0x11f)](!![]),_0x3b288b[_0x4dd5d7(0x12e)](),expect(_0x3b288b['sessionId'])[_0x4dd5d7(0x11f)](null),expect(_0x3b288b['projectDir'])['toBe'](null),expect(_0x3b288b['loxiaApiKey'])['toBe'](null),expect(_0x3b288b[_0x4dd5d7(0x123)])['toEqual']({}),expect(_0x3b288b[_0x4dd5d7(0x132)]())['toBe'](![]);}),test(_0x1b2883(0x116),async()=>{const _0x5dcac7=_0x1b2883,{WebSocketManager:_0x3810cb}=await import('../../api/websocket.js'),_0x4beecb=new _0x3810cb(_0x5dcac7(0x117),0x1f90),_0x46132a=_0x4beecb['generateRequestId'](),_0x443efd=_0x4beecb[_0x5dcac7(0x115)](),_0x56584d=_0x4beecb[_0x5dcac7(0x115)]();expect(_0x46132a)[_0x5dcac7(0x13c)][_0x5dcac7(0x11f)](_0x443efd),expect(_0x443efd)[_0x5dcac7(0x13c)]['toBe'](_0x56584d),expect(_0x46132a)['not']['toBe'](_0x56584d),expect(_0x46132a)['toMatch'](/^req-\d+-\d+$/),expect(_0x443efd)[_0x5dcac7(0x10c)](/^req-\d+-\d+$/),expect(_0x56584d)[_0x5dcac7(0x10c)](/^req-\d+-\d+$/);});});
1
+ const a0_0x56476d=a0_0x4b4b;function a0_0x41cd(){const _0x2910a1=['ywXSB3DLzc10ExbL','Dg9nyxrJAa','q29UC3rHBNrZigHHDMuGBM8GBwfNAwmGBNvTyMvYCW','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','tKvuv09ssW','rvHfq1vusu9ox1nut1bqruq','mtiXmJeYn2nHzLH0ta','DgvZDa','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','ChjVAMvJDerPCG','C3rHDgu','qvbjx0vorfbpsu5uuW','AgfZtg94AwflzxK','DhLWzq','lI4VlI4VyxbPl3nLC3nPB24UANm','quDftLrFtu9erv9dsefor0ve','DMvUzg9Ys2v5C0nVDw50','Cg9YDa','yMfZzvvYBa','AxnwywXPza','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','v0vcu09ds0vux1bjtKDFsu5urvjwquW','DMvUzg9Ys2v5CW','z2vUzxjHDgvszxf1zxn0swq','tufyx1jfvfjjrvm','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLignHBIbIzsbHzgrLzcbHBMqGCMvTB3zLza','odC5nJHJCunmAgW','CMvNAxn0zxjiyw5KBgvY','Dg9czvrYDxrOEq','zNvUy3rPB24','q09otKvdveve','Dg9fCxvHBa','sfruuf9usu1ft1vu','BgvUz3rO','Ag9ZDa','CMvJzwL2zwrbDa','BNvTyMvY','z2v0u2vZC2LVBKLK','ndu4nty1DeTSzuru','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','BM90lweTzNvUy3rPB24','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','tuvtu0fhrv9dt05gsuC','Dg9iyxzLuhjVCgvYDhK','DgvZDc1TzxnZywDL','nZu5mJG0oevevwjJAa','v2vIu29JA2v0twfUywDLCIbPBML0AwfSAxPLCYb3AxrOignVCNjLy3qGC3rHDgu','Ahr0CdOVl2XVy2fSAg9ZDdO4mdGW','Dg9czurLzMLUzwq','veLnsu5h','DgvZDc1OB3n0','DxnL','D3m6lY9SB2nHBgHVC3q6oda4ma','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','mwXNCvLuqq','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','C2HVDwXKuMvJB25Uzwn0','tuvtu0fhrv9brerfra','q09otKvdveLptL9tvefurq','revgqvvmvf9it1nu','ntm4ntGWAMPNCgD6','y29UBMvJDgvK','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbjBxbVCNrZ','BM90','AgfZsgfUzgXLCG','DgvZDc0XmJm','Dg9uAhjVDW','uefhsu5bveLptG','C2vZC2LVBKLK','q09ntuforfm','zgLZy29UBMvJDgvK','mti5mda4nerZv0zwzq','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','BwLKzgXLD2fYzq','nJu1mJiYrLnmwhnk','Dg9czq','CxvLDwvKtwvZC2fNzxm','v1nFtuvtu0fhrv9uwvbf','z2v0u3rHDhm','DxjS','vuLFreLnru5tsu9ouW','Bg9JywXOB3n0','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','tuvtu0fhrv9msvnux0HfsuDiva','yMXVy2TLzc10ExbL'];a0_0x41cd=function(){return _0x2910a1;};return a0_0x41cd();}(function(_0x5d4fb2,_0x47e38a){const _0x226782=a0_0x4b4b,_0x5d1364=_0x5d4fb2();while(!![]){try{const _0x191835=-parseInt(_0x226782(0x1a0))/0x1*(parseInt(_0x226782(0x1b4))/0x2)+-parseInt(_0x226782(0x190))/0x3+-parseInt(_0x226782(0x184))/0x4+parseInt(_0x226782(0x1a6))/0x5+-parseInt(_0x226782(0x1b1))/0x6+-parseInt(_0x226782(0x1c5))/0x7+parseInt(_0x226782(0x197))/0x8;if(_0x191835===_0x47e38a)break;else _0x5d1364['push'](_0x5d1364['shift']());}catch(_0x1f0b68){_0x5d1364['push'](_0x5d1364['shift']());}}}(a0_0x41cd,0x2892d));import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';function a0_0x4b4b(_0x552ead,_0x3902ed){_0x552ead=_0x552ead-0x175;const _0x41cd77=a0_0x41cd();let _0x4b4b65=_0x41cd77[_0x552ead];if(a0_0x4b4b['kNgvAj']===undefined){var _0x59ffb6=function(_0x5f904){const _0xce29fa='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x16efc2='',_0x5cd6b1='';for(let _0x183658=0x0,_0x566fe8,_0x282a7e,_0x40a35e=0x0;_0x282a7e=_0x5f904['charAt'](_0x40a35e++);~_0x282a7e&&(_0x566fe8=_0x183658%0x4?_0x566fe8*0x40+_0x282a7e:_0x282a7e,_0x183658++%0x4)?_0x16efc2+=String['fromCharCode'](0xff&_0x566fe8>>(-0x2*_0x183658&0x6)):0x0){_0x282a7e=_0xce29fa['indexOf'](_0x282a7e);}for(let _0x34239b=0x0,_0x546630=_0x16efc2['length'];_0x34239b<_0x546630;_0x34239b++){_0x5cd6b1+='%'+('00'+_0x16efc2['charCodeAt'](_0x34239b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5cd6b1);};a0_0x4b4b['UCtlug']=_0x59ffb6,a0_0x4b4b['BoDwwG']={},a0_0x4b4b['kNgvAj']=!![];}const _0xb263ab=_0x41cd77[0x0],_0x51cc0a=_0x552ead+_0xb263ab,_0x52ebff=a0_0x4b4b['BoDwwG'][_0x51cc0a];return!_0x52ebff?(_0x4b4b65=a0_0x4b4b['UCtlug'](_0x4b4b65),a0_0x4b4b['BoDwwG'][_0x51cc0a]=_0x4b4b65):_0x4b4b65=_0x52ebff,_0x4b4b65;}import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe(a0_0x56476d(0x1a8),()=>{test('constants module exports all required constants',async()=>{const _0x29b9c9=a0_0x4b4b,_0x16efc2=await import(_0x29b9c9(0x1bc));expect(_0x16efc2[_0x29b9c9(0x1ba)])[_0x29b9c9(0x19a)](),expect(_0x16efc2[_0x29b9c9(0x194)])['toBeDefined'](),expect(_0x16efc2[_0x29b9c9(0x1ad)])[_0x29b9c9(0x19a)](),expect(_0x16efc2['TIMING'])[_0x29b9c9(0x19a)](),expect(_0x16efc2['NETWORK'])['toBeDefined'](),expect(_0x16efc2[_0x29b9c9(0x1a4)])[_0x29b9c9(0x19a)](),expect(_0x16efc2['AGENT_MODE'])['toBeDefined'](),expect(_0x16efc2[_0x29b9c9(0x1b7)])[_0x29b9c9(0x19a)](),expect(_0x16efc2[_0x29b9c9(0x175)])['toBeDefined'](),expect(_0x16efc2[_0x29b9c9(0x1af)])['toBeDefined'](),expect(_0x16efc2['NETWORK'][_0x29b9c9(0x1a5)])[_0x29b9c9(0x1b5)]('localhost'),expect(_0x16efc2[_0x29b9c9(0x1c3)]['DEFAULT_PORT'])[_0x29b9c9(0x1b5)](0x1f90),expect(_0x16efc2[_0x29b9c9(0x1a4)]['DISCONNECTED'])[_0x29b9c9(0x1b5)](_0x29b9c9(0x1b0)),expect(_0x16efc2['CONNECTION_STATE'][_0x29b9c9(0x188)])['toBe'](_0x29b9c9(0x1a7));}),test('WebSocketManager class can be imported',async()=>{const _0x30e4cb=a0_0x4b4b,{WebSocketManager:_0x5cd6b1}=await import('../../api/websocket.js');expect(_0x5cd6b1)[_0x30e4cb(0x19a)](),expect(typeof _0x5cd6b1)['toBe'](_0x30e4cb(0x187));const _0x183658=new _0x5cd6b1('localhost',0x1f90);expect(_0x183658)[_0x30e4cb(0x19a)](),expect(_0x183658[_0x30e4cb(0x18c)])[_0x30e4cb(0x1b5)](_0x30e4cb(0x1bb)),expect(_0x183658[_0x30e4cb(0x17b)])['toBe'](0x1f90),expect(_0x183658[_0x30e4cb(0x1b9)])[_0x30e4cb(0x1b5)](_0x30e4cb(0x19e));}),test('SessionManager class can be imported',async()=>{const _0x48535d=a0_0x4b4b,{SessionManager:_0x566fe8}=await import(_0x48535d(0x178));expect(_0x566fe8)[_0x48535d(0x19a)](),expect(typeof _0x566fe8)['toBe']('function');const _0x282a7e=new _0x566fe8(_0x48535d(0x1bb),0x1f90);expect(_0x282a7e)[_0x48535d(0x19a)](),expect(_0x282a7e['host'])[_0x48535d(0x1b5)](_0x48535d(0x1bb)),expect(_0x282a7e[_0x48535d(0x17b)])[_0x48535d(0x1b5)](0x1f90),expect(_0x282a7e[_0x48535d(0x17c)])[_0x48535d(0x1b5)](_0x48535d(0x199));}),test('MessageRouter class can be imported',async()=>{const _0x8e2212=a0_0x4b4b,{MessageRouter:_0x40a35e}=await import(_0x8e2212(0x1a1)),{WebSocketManager:_0x34239b}=await import('../../api/websocket.js');expect(_0x40a35e)['toBeDefined'](),expect(typeof _0x40a35e)['toBe']('function');const _0x546630=new _0x34239b('localhost',0x1f90),_0x3f9eef=new _0x40a35e(_0x546630);expect(_0x3f9eef)[_0x8e2212(0x19a)](),expect(_0x3f9eef['ws'])[_0x8e2212(0x1b5)](_0x546630);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x2a1e12=a0_0x4b4b,{loggingMiddleware:_0x46f00e,filterMiddleware:_0x2c6376,transformMiddleware:_0x3eb948,timestampMiddleware:_0x504bee,validationMiddleware:_0x705869}=await import(_0x2a1e12(0x1a1));expect(typeof _0x46f00e)[_0x2a1e12(0x1b5)](_0x2a1e12(0x187)),expect(typeof _0x2c6376)[_0x2a1e12(0x1b5)](_0x2a1e12(0x187)),expect(typeof _0x3eb948)['toBe'](_0x2a1e12(0x187)),expect(typeof _0x504bee)[_0x2a1e12(0x1b5)]('function'),expect(typeof _0x705869)['toBe']('function');}),test('useConnection hook can be imported',async()=>{const _0x30fc66=a0_0x4b4b,{useConnection:_0x3cd209,useConnectionStatus:_0x23c2de}=await import(_0x30fc66(0x17e));expect(_0x3cd209)['toBeDefined'](),expect(typeof _0x3cd209)['toBe']('function'),expect(_0x23c2de)['toBeDefined'](),expect(typeof _0x23c2de)[_0x30fc66(0x1b5)](_0x30fc66(0x187));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x260068=a0_0x56476d;test(_0x260068(0x198),async()=>{const _0x4decf4=_0x260068,{WebSocketManager:_0x21eb65}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x400360}=await import(_0x4decf4(0x1bc)),_0x57bcb9=new _0x21eb65(_0x4decf4(0x19c),0x2382);expect(_0x57bcb9[_0x4decf4(0x1c9)])[_0x4decf4(0x1b5)](_0x400360['DISCONNECTED']),expect(_0x57bcb9[_0x4decf4(0x1ae)])[_0x4decf4(0x1b5)](null),expect(_0x57bcb9['messageQueue'])[_0x4decf4(0x189)]([]),expect(_0x57bcb9['reconnectAttempts'])[_0x4decf4(0x1b5)](0x0),expect(_0x57bcb9[_0x4decf4(0x1a2)])[_0x4decf4(0x1b5)](!![]);}),test(_0x260068(0x1c2),async()=>{const _0x5bd2d0=_0x260068,{SessionManager:_0x5e618b}=await import('../../api/session.js'),_0x4f5876=new _0x5e618b('test-host',0x2382);expect(_0x4f5876['sessionId'])['toBe'](null),expect(_0x4f5876['projectDir'])[_0x5bd2d0(0x1b5)](null),expect(_0x4f5876['loxiaApiKey'])['toBe'](null),expect(_0x4f5876['vendorKeys'])[_0x5bd2d0(0x189)]({}),expect(_0x4f5876['isValid']())[_0x5bd2d0(0x1b5)](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x27545b=_0x260068,{MessageRouter:_0x224d9a}=await import(_0x27545b(0x1a1)),{WebSocketManager:_0x543fb5}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x30c6e5}=await import(_0x27545b(0x1bc)),_0x425000=new _0x543fb5('localhost',0x1f90),_0x1bb12a=new _0x224d9a(_0x425000);expect(_0x1bb12a['hasHandler'](_0x30c6e5[_0x27545b(0x1a3)]))[_0x27545b(0x1b5)](!![]),expect(_0x1bb12a[_0x27545b(0x1aa)](_0x30c6e5[_0x27545b(0x179)]))[_0x27545b(0x1b5)](!![]),expect(_0x1bb12a[_0x27545b(0x1aa)](_0x30c6e5[_0x27545b(0x1c4)]))['toBe'](!![]),expect(_0x1bb12a[_0x27545b(0x1aa)](_0x30c6e5['COMPACTION_EVENT']))[_0x27545b(0x1b5)](!![]),expect(_0x1bb12a[_0x27545b(0x1aa)](_0x30c6e5['IMAGE_RESULT']))['toBe'](!![]);}),test(_0x260068(0x183),async()=>{const _0x53b97d=_0x260068,{MessageRouter:_0x439713}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x5231a1}=await import('../../api/websocket.js'),_0xf4ead5=new _0x5231a1(_0x53b97d(0x1bb),0x1f90),_0x35aa16=new _0x439713(_0xf4ead5),_0x56a3db=_0x5edadb=>_0x5edadb;expect(_0x35aa16[_0x53b97d(0x1b3)]['length'])['toBeGreaterThanOrEqual'](0x0),_0x35aa16['use'](_0x56a3db);const _0x51a749=_0x35aa16[_0x53b97d(0x1b3)][_0x53b97d(0x18b)];expect(_0x51a749)['toBeGreaterThan'](0x0),_0x35aa16['removeMiddleware'](_0x56a3db),expect(_0x35aa16[_0x53b97d(0x1b3)]['length'])['toBe'](_0x51a749-0x1);}),test(_0x260068(0x1c7),async()=>{const _0x5c6c96=_0x260068,{SessionManager:_0x3b3591}=await import('../../api/session.js'),_0x233ff9=new _0x3b3591('localhost',0x1f90);expect(_0x233ff9[_0x5c6c96(0x18f)]())['toBe'](null),expect(_0x233ff9['getProjectDir']())['toBe'](null),expect(_0x233ff9[_0x5c6c96(0x17d)]())[_0x5c6c96(0x1b5)](![]);const _0x3e2ed2=_0x233ff9['getSessionInfo']();expect(_0x3e2ed2)['toHaveProperty'](_0x5c6c96(0x1ae)),expect(_0x3e2ed2)[_0x5c6c96(0x195)]('projectDir'),expect(_0x3e2ed2)['toHaveProperty'](_0x5c6c96(0x176)),expect(_0x3e2ed2)['toHaveProperty'](_0x5c6c96(0x17a));}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x56e9b2=_0x260068,{WebSocketManager:_0x32670e}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x4c6e3a}=await import('../../config/constants.js'),_0x2b1359=new _0x32670e(_0x56e9b2(0x1bb),0x1f90);expect(_0x2b1359['getState']())[_0x56e9b2(0x1b5)](_0x4c6e3a['DISCONNECTED']),expect(_0x2b1359['isConnected']())['toBe'](![]),expect(_0x2b1359[_0x56e9b2(0x18f)]())[_0x56e9b2(0x1b5)](null);const _0x585fc2=_0x2b1359[_0x56e9b2(0x1b8)]();expect(_0x585fc2)['toHaveProperty']('state'),expect(_0x585fc2)[_0x56e9b2(0x195)](_0x56e9b2(0x1ae)),expect(_0x585fc2)[_0x56e9b2(0x195)]('reconnectAttempts'),expect(_0x585fc2)[_0x56e9b2(0x195)](_0x56e9b2(0x1b6)),expect(_0x585fc2)['toHaveProperty']('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x3b724a=_0x260068,{MessageRouter:_0x2921ce}=await import(_0x3b724a(0x1a1)),{WebSocketManager:_0x52b4d9}=await import(_0x3b724a(0x1b2)),_0x2ae96d=new _0x52b4d9(_0x3b724a(0x1bb),0x1f90),_0x1e94a2=new _0x2921ce(_0x2ae96d),_0x236eb1=()=>{};expect(_0x1e94a2['hasHandler'](_0x3b724a(0x196)))[_0x3b724a(0x1b5)](![]),_0x1e94a2[_0x3b724a(0x185)](_0x3b724a(0x196),_0x236eb1),expect(_0x1e94a2['hasHandler']('test-message'))['toBe'](!![]),_0x1e94a2['unregisterHandler']('test-message'),expect(_0x1e94a2['hasHandler'](_0x3b724a(0x196)))['toBe'](![]);}),test('MessageRouter\x20middleware\x20helpers\x20create\x20valid\x20middleware',async()=>{const _0x1f7348=_0x260068,{loggingMiddleware:_0x10e19c,timestampMiddleware:_0x5a861f,filterMiddleware:_0x384967}=await import(_0x1f7348(0x1a1)),_0x22f3f0=_0x10e19c();expect(typeof _0x22f3f0)[_0x1f7348(0x1b5)]('function');const _0x3b51a8=_0x5a861f();expect(typeof _0x3b51a8)[_0x1f7348(0x1b5)](_0x1f7348(0x187));const _0x1bb276={'type':'test'},_0x221ce5=_0x3b51a8(_0x1bb276);expect(_0x221ce5)[_0x1f7348(0x195)](_0x1f7348(0x18d)),expect(_0x221ce5[_0x1f7348(0x177)])['toBe']('test');const _0x4f375e=_0x384967([_0x1f7348(0x1bf)]);expect(typeof _0x4f375e)['toBe'](_0x1f7348(0x187)),expect(_0x4f375e({'type':'allowed-type'}))[_0x1f7348(0x186)](),expect(_0x4f375e({'type':_0x1f7348(0x1be)}))[_0x1f7348(0x1b5)](null);}),test(_0x260068(0x1c1),async()=>{const _0x382699=_0x260068,_0x290eea=await import('../../config/constants.js');expect(typeof _0x290eea['TIMING']['WEBSOCKET_RECONNECT_DELAY'])['toBe'](_0x382699(0x18e)),expect(typeof _0x290eea[_0x382699(0x19b)][_0x382699(0x17f)])[_0x382699(0x1b5)]('number'),expect(typeof _0x290eea[_0x382699(0x1c3)]['DEFAULT_PORT'])['toBe']('number'),expect(typeof _0x290eea[_0x382699(0x1c3)][_0x382699(0x182)])[_0x382699(0x1b5)]('number'),expect(typeof _0x290eea['NETWORK'][_0x382699(0x18a)])[_0x382699(0x1b5)](_0x382699(0x18e)),expect(typeof _0x290eea[_0x382699(0x1ba)][_0x382699(0x1bd)])[_0x382699(0x1b5)](_0x382699(0x18e)),expect(typeof _0x290eea[_0x382699(0x1ba)]['SIDEBAR_WIDTH'])['toBe'](_0x382699(0x18e));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x1f8fbd=a0_0x56476d;test(_0x1f8fbd(0x191),async()=>{const _0x43aa5e=_0x1f8fbd,{MessageRouter:_0x1fd358}=await import(_0x43aa5e(0x1a1)),{WebSocketManager:_0x4cc083}=await import(_0x43aa5e(0x1b2)),_0x43ba03=new _0x4cc083('localhost',0x1f90),_0xe15b69=new _0x1fd358(_0x43ba03);expect(()=>{const _0x51cd5a=_0x43aa5e;_0xe15b69['registerHandler'](_0x51cd5a(0x1c6),_0x51cd5a(0x192));})[_0x43aa5e(0x1ac)](_0x43aa5e(0x19f));}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x1f1340=_0x1f8fbd,{MessageRouter:_0x4baac8}=await import(_0x1f1340(0x1a1)),{WebSocketManager:_0x365f46}=await import(_0x1f1340(0x1b2)),_0x24e887=new _0x365f46(_0x1f1340(0x1bb),0x1f90),_0x516e3d=new _0x4baac8(_0x24e887);expect(()=>{const _0x28448f=_0x1f1340;_0x516e3d[_0x28448f(0x19d)]('not-a-function');})['toThrow']('Middleware\x20must\x20be\x20a\x20function');}),test('SessionManager\x20clear()\x20resets\x20all\x20state',async()=>{const _0x492c6d=_0x1f8fbd,{SessionManager:_0x301132}=await import(_0x492c6d(0x178)),_0x4f7b04=new _0x301132('localhost',0x1f90);_0x4f7b04['sessionId']=_0x492c6d(0x1ab),_0x4f7b04[_0x492c6d(0x1c8)]='/test/dir',_0x4f7b04['loxiaApiKey']='test-key',_0x4f7b04['vendorKeys']={'openai':'key'},expect(_0x4f7b04[_0x492c6d(0x17d)]())[_0x492c6d(0x1b5)](!![]),_0x4f7b04['clear'](),expect(_0x4f7b04['sessionId'])['toBe'](null),expect(_0x4f7b04[_0x492c6d(0x1c8)])[_0x492c6d(0x1b5)](null),expect(_0x4f7b04['loxiaApiKey'])['toBe'](null),expect(_0x4f7b04[_0x492c6d(0x180)])['toEqual']({}),expect(_0x4f7b04[_0x492c6d(0x17d)]())[_0x492c6d(0x1b5)](![]);}),test(_0x1f8fbd(0x193),async()=>{const _0x5668c7=_0x1f8fbd,{WebSocketManager:_0x1fdd5a}=await import(_0x5668c7(0x1b2)),_0x20f6e6=new _0x1fdd5a(_0x5668c7(0x1bb),0x1f90),_0x3627f0=_0x20f6e6[_0x5668c7(0x181)](),_0x3ccc59=_0x20f6e6[_0x5668c7(0x181)](),_0x218bb9=_0x20f6e6['generateRequestId']();expect(_0x3627f0)['not']['toBe'](_0x3ccc59),expect(_0x3ccc59)[_0x5668c7(0x1a9)][_0x5668c7(0x1b5)](_0x218bb9),expect(_0x3627f0)['not']['toBe'](_0x218bb9),expect(_0x3627f0)[_0x5668c7(0x1c0)](/^req-\d+-\d+$/),expect(_0x3ccc59)[_0x5668c7(0x1c0)](/^req-\d+-\d+$/),expect(_0x218bb9)['toMatch'](/^req-\d+-\d+$/);});});
@@ -1 +1 @@
1
- const a0_0x5dc8e7=a0_0x82b7;function a0_0x82b7(_0x540df0,_0x666939){_0x540df0=_0x540df0-0x8d;const _0x559a38=a0_0x559a();let _0x82b7f3=_0x559a38[_0x540df0];if(a0_0x82b7['SnijTS']===undefined){var _0x275fd1=function(_0xfd62bf){const _0x47b9f3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4f353b='',_0x524892='';for(let _0x10149e=0x0,_0x1c3877,_0x213be9,_0x171840=0x0;_0x213be9=_0xfd62bf['charAt'](_0x171840++);~_0x213be9&&(_0x1c3877=_0x10149e%0x4?_0x1c3877*0x40+_0x213be9:_0x213be9,_0x10149e++%0x4)?_0x4f353b+=String['fromCharCode'](0xff&_0x1c3877>>(-0x2*_0x10149e&0x6)):0x0){_0x213be9=_0x47b9f3['indexOf'](_0x213be9);}for(let _0x329183=0x0,_0x4451ef=_0x4f353b['length'];_0x329183<_0x4451ef;_0x329183++){_0x524892+='%'+('00'+_0x4f353b['charCodeAt'](_0x329183)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x524892);};a0_0x82b7['EGDkoI']=_0x275fd1,a0_0x82b7['aYWFLc']={},a0_0x82b7['SnijTS']=!![];}const _0x20f858=_0x559a38[0x0],_0x3c4cc2=_0x540df0+_0x20f858,_0x472164=a0_0x82b7['aYWFLc'][_0x3c4cc2];return!_0x472164?(_0x82b7f3=a0_0x82b7['EGDkoI'](_0x82b7f3),a0_0x82b7['aYWFLc'][_0x3c4cc2]=_0x82b7f3):_0x82b7f3=_0x472164,_0x82b7f3;}function a0_0x559a(){const _0x577a02=['u2vZC2LVBK1HBMfNzxi','quDftLrFuKvtue9ou0u','l2fWAs9VCMnOzxn0CMf0B3i','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','nwP3rffmuq','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','DxnLCI1TzxnZywDL','tuvtu0fhrv9brerfra','zNvUy3rPB24','mtrsugnQu3i','zgvMyxvSDa','tufyx01fu1nbr0vFtevor1ri','twvZC2fNzsbnyw5Hz2vTzw50ic0GqvbjievUzhbVAw50CYbwywXPzgf0Aw9U','nZyZmZCYCLPdu05Y','twvZC2fNzsbnyw5Hz2vTzw50ic0GrxjYB3iGsgfUzgXPBMC','vvnfuG','ywDLBNrFBw9Kzv9JAgfUz2vK','t1jdsevtvfjbve9s','uefhsu5bveLptIbSAw1PDcbKB2vZig5VDcbLEgnLzwqGtufyx1bbr0vFu0LArq','mZrRDhr5EwS','Dg9czq','Bg9JywXOB3n0','nte1mdmWmfLLDvHZAW','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','Dg9mB3DLCKnHC2u','Dg9czuXLC3nuAgfUt3jfCxvHBa','mJC2ndi1n0XdBurqBG','mJC1nJe0nfzNtwrtEq','tuvtu0fhrv9dt05gsuC','DxnLtwvZC2fNzxm','Dg9czurLzMLUzwq','ywXS','DxnLCG','uefhrv9tsvPf','mtqXmZvov0n4Avi','tufyx1bbr0vFu0LArq','mJeXmdfutM9iq1u','lI4VlI4VyxbPl3nLC3nPB24UANm','mty1ndHiwhzgsvC','ywDLBNqTCMvZCg9UC2u','qvntsvnuqu5u','CMvWzwf0','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','BNvTyMvY','rvHfq1vusu9ox1nut1bqruq','tufyx01fu1nbr0vtx0rju1bmqvK','BwLU','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','oxjkwNzTAa','mte2ntm3nhnItM1sBG','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbKAxnWBgf5ig1LC3nHz2vZ','Dg9czuDYzwf0zxjuAgfU','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ'];a0_0x559a=function(){return _0x577a02;};return a0_0x559a();}(function(_0x4ee230,_0x317c79){const _0x5e3b24=a0_0x82b7,_0x32b4c3=_0x4ee230();while(!![]){try{const _0x2a66fe=-parseInt(_0x5e3b24(0x90))/0x1*(parseInt(_0x5e3b24(0xb8))/0x2)+-parseInt(_0x5e3b24(0xbf))/0x3+parseInt(_0x5e3b24(0xb2))/0x4*(parseInt(_0x5e3b24(0xa9))/0x5)+parseInt(_0x5e3b24(0x9f))/0x6*(-parseInt(_0x5e3b24(0xae))/0x7)+-parseInt(_0x5e3b24(0xc0))/0x8+-parseInt(_0x5e3b24(0x9e))/0x9*(-parseInt(_0x5e3b24(0xbb))/0xa)+parseInt(_0x5e3b24(0x8e))/0xb*(parseInt(_0x5e3b24(0x92))/0xc);if(_0x2a66fe===_0x317c79)break;else _0x32b4c3['push'](_0x32b4c3['shift']());}catch(_0x220ec4){_0x32b4c3['push'](_0x32b4c3['shift']());}}}(a0_0x559a,0x71788));import{describe,test,expect}from'@jest/globals';describe(a0_0x5dc8e7(0x9d),()=>{test('useMessages hook can be imported',async()=>{const _0x312085=a0_0x82b7,{useMessages:_0x4f353b}=await import('../../state/useMessages.js');expect(_0x4f353b)['toBeDefined'](),expect(typeof _0x4f353b)[_0x312085(0xb9)](_0x312085(0xad));}),test('useMessages is default export',async()=>{const _0x3bf772=a0_0x82b7,module=await import('../../state/useMessages.js');expect(module['default'])[_0x3bf772(0xc3)](),expect(typeof module[_0x3bf772(0xaf)])[_0x3bf772(0xb9)](_0x3bf772(0xad)),expect(module[_0x3bf772(0xaf)])['toBe'](module[_0x3bf772(0xc2)]);}),test('useMessageCount helper hook can be imported',async()=>{const _0x4cfa11=a0_0x82b7,{useMessageCount:_0x524892}=await import('../../state/useMessages.js');expect(_0x524892)['toBeDefined'](),expect(typeof _0x524892)['toBe'](_0x4cfa11(0xad));});}),describe('Message\x20Management\x20-\x20Constants',()=>{const _0x2bdf93=a0_0x5dc8e7;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x40fb56=a0_0x82b7,{MESSAGE_ROLE:_0x10149e}=await import('../../config/constants.js');expect(_0x10149e)[_0x40fb56(0xc3)](),expect(_0x10149e['USER'])['toBe'](_0x40fb56(0xc5)),expect(_0x10149e[_0x40fb56(0x94)])['toBe']('assistant'),expect(_0x10149e['SYSTEM'])['toBe']('system');}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x3acc81=a0_0x82b7,{MESSAGE_TYPE:_0x1c3877}=await import(_0x3acc81(0x9b));expect(_0x1c3877)[_0x3acc81(0xc3)](),expect(_0x1c3877['USER_MESSAGE'])[_0x3acc81(0xb9)](_0x3acc81(0xab)),expect(_0x1c3877[_0x3acc81(0xa6)])[_0x3acc81(0xb9)](_0x3acc81(0x93)),expect(_0x1c3877['SYSTEM_NOTIFICATION'])['toBe']('system-notification');}),test(_0x2bdf93(0x96),async()=>{const _0x315569=_0x2bdf93,{MESSAGE_CONFIG:_0x213be9}=await import(_0x315569(0x9b));expect(_0x213be9)['toBeDefined'](),expect(_0x213be9[_0x315569(0xb0)])[_0x315569(0xc3)](),expect(_0x213be9['MAX_MESSAGES_DISPLAY'])[_0x315569(0xc3)](),expect(typeof _0x213be9['MAX_MESSAGE_LENGTH'])[_0x315569(0xb9)]('number'),expect(typeof _0x213be9[_0x315569(0x99)])[_0x315569(0xb9)]('number');}),test(_0x2bdf93(0xa8),async()=>{const _0x154d46=_0x2bdf93,{PAGINATION:_0x171840}=await import('../../config/constants.js');expect(_0x171840)[_0x154d46(0xc3)](),expect(_0x171840[_0x154d46(0x8d)])[_0x154d46(0xc3)](),expect(_0x171840['MAX_PAGE_SIZE'])['toBeDefined'](),expect(typeof _0x171840[_0x154d46(0x8d)])['toBe']('number'),expect(typeof _0x171840[_0x154d46(0x8f)])[_0x154d46(0xb9)]('number');}),test(_0x2bdf93(0xbc),async()=>{const _0x54003d=_0x2bdf93,{WS_MESSAGE_TYPE:_0x329183}=await import(_0x54003d(0x9b));expect(_0x329183)['toBeDefined'](),expect(_0x329183[_0x54003d(0xac)])['toBe']('message_added'),expect(_0x329183['AGENT_MODE_CHANGED'])['toBe'](_0x54003d(0xb5)),expect(_0x329183[_0x54003d(0x98)])[_0x54003d(0xb9)]('execution_stopped');});}),describe(a0_0x5dc8e7(0x9c),()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x1b11d3=a0_0x82b7,{useMessages:_0x4451ef}=await import('../../state/useMessages.js'),{SessionManager:_0x325d7f}=await import(_0x1b11d3(0x91)),{MessageRouter:_0x1b81f3}=await import(_0x1b11d3(0xa2)),{WebSocketManager:_0xd91faa}=await import('../../api/websocket.js'),_0x93edce=new _0x325d7f('localhost',0x1f90),_0x2a8d64=new _0xd91faa('localhost',0x1f90),_0x3c0a43=new _0x1b81f3(_0x2a8d64);expect(_0x93edce)[_0x1b11d3(0xc3)](),expect(_0x3c0a43)['toBeDefined'](),expect(typeof _0x4451ef)['toBe']('function');}),test('Full message management stack can be imported together',async()=>{const _0x27fc23=a0_0x82b7,[_0x53ede1,_0x412852,_0x140c0d,_0x1c66ea,_0x491757]=await Promise[_0x27fc23(0xc4)]([import('../../config/constants.js'),import('../../api/session.js'),import('../../api/websocket.js'),import(_0x27fc23(0xa2)),import('../../state/useMessages.js')]);expect(_0x53ede1['MESSAGE_ROLE'])['toBeDefined'](),expect(_0x53ede1['MESSAGE_TYPE'])['toBeDefined'](),expect(_0x53ede1[_0x27fc23(0xc1)])[_0x27fc23(0xc3)](),expect(_0x412852[_0x27fc23(0xa5)])['toBeDefined'](),expect(_0x140c0d['WebSocketManager'])[_0x27fc23(0xc3)](),expect(_0x1c66ea['MessageRouter'])['toBeDefined'](),expect(_0x491757['useMessages'])[_0x27fc23(0xc3)]();});}),describe(a0_0x5dc8e7(0xb1),()=>{test('Orchestrator\x20endpoint\x20can\x20be\x20used\x20for\x20message\x20operations',async()=>{const _0x3cf44c=a0_0x82b7,{API_ENDPOINTS:_0x1e6abc}=await import('../../config/constants.js');expect(_0x1e6abc[_0x3cf44c(0xb6)])['toBeDefined'](),expect(_0x1e6abc['ORCHESTRATOR'])['toBe'](_0x3cf44c(0xa7));}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x4d5d6f=a0_0x82b7,{API_ENDPOINTS:_0x3381bf}=await import(_0x4d5d6f(0x9b));expect(_0x3381bf['ORCHESTRATOR'])['toMatch'](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const {useMessages:_0x949f84}=await import('../../state/useMessages.js');expect(_0x949f84['length'])['toBe'](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const {useMessageCount:_0x1c99f9}=await import('../../state/useMessages.js');expect(_0x1c99f9['length'])['toBe'](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x329ad2=a0_0x82b7,{MESSAGE_CONFIG:_0x4103e4}=await import('../../config/constants.js');expect(_0x4103e4[_0x329ad2(0xb0)])[_0x329ad2(0xa1)](0x0),expect(_0x4103e4[_0x329ad2(0xb0)])[_0x329ad2(0xbe)](0x186a0),expect(_0x4103e4[_0x329ad2(0x99)])['toBeGreaterThan'](0x0),expect(_0x4103e4['MAX_MESSAGES_DISPLAY'])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x31a900=a0_0x82b7,{PAGINATION:_0xc1fe88}=await import(_0x31a900(0x9b));expect(_0xc1fe88[_0x31a900(0x8d)])['toBeGreaterThan'](0x0),expect(_0xc1fe88[_0x31a900(0x8d)])['toBeLessThanOrEqual'](0x3e8),expect(_0xc1fe88['MAX_PAGE_SIZE'])['toBeGreaterThanOrEqual'](_0xc1fe88['PAGE_SIZE']);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0xf17205=a0_0x82b7,{MESSAGE_ROLE:_0x3701e3}=await import(_0xf17205(0x9b));expect(_0x3701e3['USER'])[_0xf17205(0xb9)](_0x3701e3[_0xf17205(0xb4)][_0xf17205(0xbd)]()),expect(_0x3701e3[_0xf17205(0x94)])[_0xf17205(0xb9)](_0x3701e3['ASSISTANT'][_0xf17205(0xbd)]()),expect(_0x3701e3['SYSTEM'])['toBe'](_0x3701e3['SYSTEM']['toLowerCase']());});}),describe(a0_0x5dc8e7(0xa4),()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0x41a658=a0_0x82b7,{MessageRouter:_0xd09c1}=await import(_0x41a658(0xa2)),{WebSocketManager:_0x4ff0e8}=await import(_0x41a658(0xa3)),{WS_MESSAGE_TYPE:_0x4bd5ac}=await import('../../config/constants.js'),_0x2fb22a=new _0x4ff0e8(_0x41a658(0xba),0x1f90),_0xd28603=new _0xd09c1(_0x2fb22a);expect(_0xd28603['hasHandler'](_0x4bd5ac['MESSAGE_ADDED']))[_0x41a658(0xb9)](!![]),expect(_0xd28603['hasHandler'](_0x4bd5ac['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe(a0_0x5dc8e7(0xb3),()=>{const _0xd42305=a0_0x5dc8e7;test(_0xd42305(0xaa),async()=>{const _0x2c5c1c=_0xd42305,{MESSAGE_CONFIG:_0x305143}=await import('../../config/constants.js');expect(_0x305143[_0x2c5c1c(0xb0)])['toBeDefined'](),expect(typeof _0x305143[_0x2c5c1c(0xb0)])[_0x2c5c1c(0xb9)]('number');const _0x56e123='a'[_0x2c5c1c(0x95)](_0x305143['MAX_MESSAGE_LENGTH']+0x1);expect(_0x56e123['length'])[_0x2c5c1c(0xa1)](_0x305143['MAX_MESSAGE_LENGTH']);}),test(_0xd42305(0xa0),async()=>{const _0x2a06a3=_0xd42305,{MESSAGE_CONFIG:_0x1ce2fa}=await import('../../config/constants.js');expect(_0x1ce2fa['MAX_MESSAGES_DISPLAY'])[_0x2a06a3(0xc3)](),expect(typeof _0x1ce2fa[_0x2a06a3(0x99)])['toBe'](_0x2a06a3(0x97)),expect(_0x1ce2fa[_0x2a06a3(0x99)])['toBeGreaterThan'](0x0);});}),describe('Message\x20Management\x20-\x20Pagination\x20Logic',()=>{const _0x2dd89c=a0_0x5dc8e7;test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x4d68a6=a0_0x82b7,{PAGINATION:_0x1861e9}=await import(_0x4d68a6(0x9b)),_0x42d0af=0x0,_0x12d995=_0x42d0af*_0x1861e9[_0x4d68a6(0x8d)];expect(_0x12d995)[_0x4d68a6(0xb9)](0x0);const _0x43cb73=0x1,_0x551c9c=_0x43cb73*_0x1861e9[_0x4d68a6(0x8d)];expect(_0x551c9c)['toBe'](_0x1861e9['PAGE_SIZE']);}),test(_0x2dd89c(0xb7),async()=>{const _0x1d5e40=_0x2dd89c,{PAGINATION:_0x496ea4}=await import('../../config/constants.js'),_0x5b7f85=0x3e8,_0x1eb71d=Math[_0x1d5e40(0x9a)](_0x5b7f85,_0x496ea4['MAX_PAGE_SIZE']);expect(_0x1eb71d)['toBeLessThanOrEqual'](_0x496ea4[_0x1d5e40(0x8f)]);});});
1
+ const a0_0x1c0dc8=a0_0x2082;(function(_0x94f03b,_0x2216e7){const _0x3324ae=a0_0x2082,_0x386e81=_0x94f03b();while(!![]){try{const _0x1ca434=-parseInt(_0x3324ae(0x104))/0x1+-parseInt(_0x3324ae(0x103))/0x2*(parseInt(_0x3324ae(0x124))/0x3)+-parseInt(_0x3324ae(0x11a))/0x4*(-parseInt(_0x3324ae(0x10a))/0x5)+-parseInt(_0x3324ae(0xfd))/0x6+parseInt(_0x3324ae(0x101))/0x7+parseInt(_0x3324ae(0x113))/0x8+-parseInt(_0x3324ae(0x122))/0x9;if(_0x1ca434===_0x2216e7)break;else _0x386e81['push'](_0x386e81['shift']());}catch(_0x1ae462){_0x386e81['push'](_0x386e81['shift']());}}}(a0_0x2998,0x6f0d8));function a0_0x2082(_0x17a81e,_0x193745){_0x17a81e=_0x17a81e-0xf1;const _0x29980b=a0_0x2998();let _0x20820f=_0x29980b[_0x17a81e];if(a0_0x2082['hqqtII']===undefined){var _0x780e2c=function(_0x2266a8){const _0x35f63a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xee155a='',_0x4962cd='';for(let _0x120df6=0x0,_0x259601,_0x109c5c,_0x3ba682=0x0;_0x109c5c=_0x2266a8['charAt'](_0x3ba682++);~_0x109c5c&&(_0x259601=_0x120df6%0x4?_0x259601*0x40+_0x109c5c:_0x109c5c,_0x120df6++%0x4)?_0xee155a+=String['fromCharCode'](0xff&_0x259601>>(-0x2*_0x120df6&0x6)):0x0){_0x109c5c=_0x35f63a['indexOf'](_0x109c5c);}for(let _0x2ff68e=0x0,_0x1bae35=_0xee155a['length'];_0x2ff68e<_0x1bae35;_0x2ff68e++){_0x4962cd+='%'+('00'+_0xee155a['charCodeAt'](_0x2ff68e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4962cd);};a0_0x2082['wVUqyi']=_0x780e2c,a0_0x2082['jyWaTC']={},a0_0x2082['hqqtII']=!![];}const _0x15270b=_0x29980b[0x0],_0x5519dd=_0x17a81e+_0x15270b,_0x4e33bb=a0_0x2082['jyWaTC'][_0x5519dd];return!_0x4e33bb?(_0x20820f=a0_0x2082['wVUqyi'](_0x20820f),a0_0x2082['jyWaTC'][_0x5519dd]=_0x20820f):_0x20820f=_0x4e33bb,_0x20820f;}import{describe,test,expect}from'@jest/globals';function a0_0x2998(){const _0x141d8d=['tuvtu0fhrv9st0Xf','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','mJe3mJy4nwHLs0PLtq','tuvtu0fhrv9uwvbfignVBNn0yw50CYbHCMuGzgvMAw5Lza','AgfZsgfUzgXLCG','tufyx01fu1nbr0vFtevor1ri','t3jJAgvZDhjHDg9YigvUzhbVAw50ignHBIbIzsb1C2vKigzVCIbTzxnZywDLig9WzxjHDgLVBNm','vvnfuG','tufyx01fu1nbr0vtx0rju1bmqvK','quDftLrFuKvtue9ou0u','twvZC2fNzvjVDxrLCG','ntqXnZC3nNLuBfLNAa','Dg9czurLzMLUzwq','BgvUz3rO','zgvMyxvSDa','DxnLCI1TzxnZywDL','tuvtu0fhrv9st0XfignVBNn0yw50CYbHCMuGzgvMAw5Lza','l2fWAs9VCMnOzxn0CMf0B3i','ohPTBeL2zG','uefhsu5bveLptIbZDxbWB3j0CYbVzMzZzxqTyMfZzwqGCgfNAw5HDgLVBG','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','DxnLtwvZC2fNzxmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','Dg9czq','zxHLy3v0Aw9Ux3n0B3bWzwq','CMvWzwf0','mJm3mZC0mwPNEMDuvG','Dg9czuXLC3nuAgfUt3jfCxvHBa','ndCXAufnquPc','tuvtu0fhrv9dt05gsuC','Dg9czuDYzwf0zxjuAgfU','rvHfq1vusu9ox1nut1bqruq','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','tufyx1bbr0vFu0LArq','BwLU','ywDLBNrFBw9Kzv9JAgfUz2vK','Bg9JywXOB3n0','qvntsvnuqu5u','twvZC2fNzsbnyw5Hz2vTzw50ic0GqvbjievUzhbVAw50CYbwywXPzgf0Aw9U','tuvtu0fhrv9uwvbf','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','lI4VlI4VyxbPl3nLC3nPB24UANm','t1jdsevtvfjbve9s','quDftLrFtu9erv9dsefor0ve','u1Ltvevn','mJy1mtCXog13y1Hnta','uefhrv9tsvPf','twvZC2fNzsbnyw5Hz2vTzw50ic0GrxjYB3iGsgfUzgXPBMC','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','mtm4mZK0mNvRCg1hEG','Dg9nyxrJAa','mtm4nefdA0nhra','ndC0nZG0z1LUuMz0','tuvtu0fhrv9brerfra','C3LZDgvTlw5VDgLMAwnHDgLVBG','BNvTyMvY'];a0_0x2998=function(){return _0x141d8d;};return a0_0x2998();}describe('Message\x20Management\x20-\x20Imports',()=>{test('useMessages hook can be imported',async()=>{const _0x50fb24=a0_0x2082,{useMessages:_0xee155a}=await import(_0x50fb24(0x100));expect(_0xee155a)[_0x50fb24(0x114)](),expect(typeof _0xee155a)[_0x50fb24(0x11f)]('function');}),test('useMessages is default export',async()=>{const _0x26fb65=a0_0x2082,module=await import('../../state/useMessages.js');expect(module['default'])[_0x26fb65(0x114)](),expect(typeof module['default'])['toBe']('function'),expect(module[_0x26fb65(0x116)])[_0x26fb65(0x11f)](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x3f081f=a0_0x2082,{useMessageCount:_0x4962cd}=await import('../../state/useMessages.js');expect(_0x4962cd)['toBeDefined'](),expect(typeof _0x4962cd)[_0x3f081f(0x11f)]('function');});}),describe('Message\x20Management\x20-\x20Constants',()=>{const _0x27b929=a0_0x2082;test(_0x27b929(0x118),async()=>{const _0x33b905=_0x27b929,{MESSAGE_ROLE:_0x120df6}=await import(_0x33b905(0x11e));expect(_0x120df6)[_0x33b905(0x114)](),expect(_0x120df6[_0x33b905(0x10f)])[_0x33b905(0x11f)]('user'),expect(_0x120df6[_0x33b905(0xf5)])[_0x33b905(0x11f)]('assistant'),expect(_0x120df6[_0x33b905(0xfc)])[_0x33b905(0x11f)]('system');}),test(_0x27b929(0x10b),async()=>{const _0x226687=_0x27b929,{MESSAGE_TYPE:_0x259601}=await import(_0x226687(0x11e));expect(_0x259601)['toBeDefined'](),expect(_0x259601['USER_MESSAGE'])['toBe'](_0x226687(0x117)),expect(_0x259601[_0x226687(0x111)])['toBe']('agent-response'),expect(_0x259601['SYSTEM_NOTIFICATION'])[_0x226687(0x11f)](_0x226687(0x106));}),test('MESSAGE_CONFIG\x20constants\x20are\x20defined',async()=>{const _0x33cde9=_0x27b929,{MESSAGE_CONFIG:_0x109c5c}=await import('../../config/constants.js');expect(_0x109c5c)[_0x33cde9(0x114)](),expect(_0x109c5c['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(_0x109c5c['MAX_MESSAGES_DISPLAY'])[_0x33cde9(0x114)](),expect(typeof _0x109c5c[_0x33cde9(0x10d)])[_0x33cde9(0x11f)](_0x33cde9(0x107)),expect(typeof _0x109c5c['MAX_MESSAGES_DISPLAY'])[_0x33cde9(0x11f)]('number');}),test('PAGINATION\x20constants\x20are\x20defined',async()=>{const _0x10fb20=_0x27b929,{PAGINATION:_0x3ba682}=await import(_0x10fb20(0x11e));expect(_0x3ba682)[_0x10fb20(0x114)](),expect(_0x3ba682['PAGE_SIZE'])['toBeDefined'](),expect(_0x3ba682['MAX_PAGE_SIZE'])[_0x10fb20(0x114)](),expect(typeof _0x3ba682[_0x10fb20(0xfe)])[_0x10fb20(0x11f)]('number'),expect(typeof _0x3ba682[_0x10fb20(0xf1)])['toBe']('number');}),test(_0x27b929(0x109),async()=>{const _0x478031=_0x27b929,{WS_MESSAGE_TYPE:_0x2ff68e}=await import('../../config/constants.js');expect(_0x2ff68e)[_0x478031(0x114)](),expect(_0x2ff68e[_0x478031(0x105)])[_0x478031(0x11f)]('message_added'),expect(_0x2ff68e['AGENT_MODE_CHANGED'])['toBe'](_0x478031(0xf3)),expect(_0x2ff68e[_0x478031(0x127)])[_0x478031(0x11f)](_0x478031(0x120));});}),describe('Message\x20Management\x20-\x20Integration',()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x74a0a2=a0_0x2082,{useMessages:_0x1bae35}=await import(_0x74a0a2(0x100)),{SessionManager:_0x21a0a3}=await import(_0x74a0a2(0xf9)),{MessageRouter:_0x52b580}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x2c0e67}=await import(_0x74a0a2(0x129)),_0x193624=new _0x21a0a3('localhost',0x1f90),_0x54c99b=new _0x2c0e67('localhost',0x1f90),_0x1f078f=new _0x52b580(_0x54c99b);expect(_0x193624)[_0x74a0a2(0x114)](),expect(_0x1f078f)['toBeDefined'](),expect(typeof _0x1bae35)[_0x74a0a2(0x11f)]('function');}),test('Full message management stack can be imported together',async()=>{const _0xdd851e=a0_0x2082,[_0x28de67,_0x39241d,_0x497994,_0x4dd1c9,_0x5d3d4a]=await Promise['all']([import('../../config/constants.js'),import(_0xdd851e(0xf9)),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import(_0xdd851e(0x100))]);expect(_0x28de67[_0xdd851e(0x108)])['toBeDefined'](),expect(_0x28de67[_0xdd851e(0xf7)])['toBeDefined'](),expect(_0x28de67[_0xdd851e(0x125)])['toBeDefined'](),expect(_0x39241d['SessionManager'])['toBeDefined'](),expect(_0x497994['WebSocketManager'])['toBeDefined'](),expect(_0x4dd1c9[_0xdd851e(0x112)])['toBeDefined'](),expect(_0x5d3d4a['useMessages'])['toBeDefined']();});}),describe(a0_0x1c0dc8(0xf6),()=>{const _0x35a730=a0_0x1c0dc8;test(_0x35a730(0x10e),async()=>{const _0x29ac26=_0x35a730,{API_ENDPOINTS:_0x2711a8}=await import(_0x29ac26(0x11e));expect(_0x2711a8['ORCHESTRATOR'])[_0x29ac26(0x114)](),expect(_0x2711a8['ORCHESTRATOR'])['toBe'](_0x29ac26(0x119));}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x2712ae=_0x35a730,{API_ENDPOINTS:_0xa9e3f3}=await import(_0x2712ae(0x11e));expect(_0xa9e3f3[_0x2712ae(0xfa)])[_0x2712ae(0x102)](/^\/api\//);});}),describe(a0_0x1c0dc8(0x11c),()=>{const _0x3e79c2=a0_0x1c0dc8;test(_0x3e79c2(0x11d),async()=>{const _0x2291c7=_0x3e79c2,{useMessages:_0x1115df}=await import('../../state/useMessages.js');expect(_0x1115df[_0x2291c7(0x115)])[_0x2291c7(0x11f)](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x415ac8=_0x3e79c2,{useMessageCount:_0x41cb6f}=await import(_0x415ac8(0x100));expect(_0x41cb6f['length'])['toBe'](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x4943ae=a0_0x2082,{MESSAGE_CONFIG:_0x12895d}=await import(_0x4943ae(0x11e));expect(_0x12895d['MAX_MESSAGE_LENGTH'])[_0x4943ae(0x126)](0x0),expect(_0x12895d[_0x4943ae(0x10d)])[_0x4943ae(0x123)](0x186a0),expect(_0x12895d['MAX_MESSAGES_DISPLAY'])['toBeGreaterThan'](0x0),expect(_0x12895d['MAX_MESSAGES_DISPLAY'])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x3b4331=a0_0x2082,{PAGINATION:_0x58d2c8}=await import(_0x3b4331(0x11e));expect(_0x58d2c8[_0x3b4331(0xfe)])[_0x3b4331(0x126)](0x0),expect(_0x58d2c8['PAGE_SIZE'])[_0x3b4331(0x123)](0x3e8),expect(_0x58d2c8['MAX_PAGE_SIZE'])[_0x3b4331(0x128)](_0x58d2c8[_0x3b4331(0xfe)]);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x3f9170=a0_0x2082,{MESSAGE_ROLE:_0x5961d2}=await import('../../config/constants.js');expect(_0x5961d2[_0x3f9170(0x10f)])[_0x3f9170(0x11f)](_0x5961d2[_0x3f9170(0x10f)]['toLowerCase']()),expect(_0x5961d2[_0x3f9170(0xf5)])[_0x3f9170(0x11f)](_0x5961d2['ASSISTANT']['toLowerCase']()),expect(_0x5961d2['SYSTEM'])['toBe'](_0x5961d2[_0x3f9170(0xfc)]['toLowerCase']());});}),describe('Message\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0x599ea7=a0_0x2082,{MessageRouter:_0xe67f45}=await import(_0x599ea7(0xf8)),{WebSocketManager:_0x383c35}=await import(_0x599ea7(0x129)),{WS_MESSAGE_TYPE:_0x925c3e}=await import(_0x599ea7(0x11e)),_0x2dd366=new _0x383c35(_0x599ea7(0xf4),0x1f90),_0x6aa4af=new _0xe67f45(_0x2dd366);expect(_0x6aa4af[_0x599ea7(0x10c)](_0x925c3e[_0x599ea7(0x105)]))[_0x599ea7(0x11f)](!![]),expect(_0x6aa4af['hasHandler'](_0x925c3e[_0x599ea7(0xfb)]))[_0x599ea7(0x11f)](!![]);});}),describe(a0_0x1c0dc8(0xff),()=>{test('MESSAGE_CONFIG\x20enforces\x20maximum\x20message\x20length',async()=>{const _0x361084=a0_0x2082,{MESSAGE_CONFIG:_0x1b9960}=await import(_0x361084(0x11e));expect(_0x1b9960[_0x361084(0x10d)])['toBeDefined'](),expect(typeof _0x1b9960[_0x361084(0x10d)])['toBe'](_0x361084(0x107));const _0x34bda1='a'[_0x361084(0x121)](_0x1b9960[_0x361084(0x10d)]+0x1);expect(_0x34bda1['length'])['toBeGreaterThan'](_0x1b9960['MAX_MESSAGE_LENGTH']);}),test('MESSAGE_CONFIG\x20enforces\x20maximum\x20display\x20messages',async()=>{const _0x26b695=a0_0x2082,{MESSAGE_CONFIG:_0x49d0e3}=await import(_0x26b695(0x11e));expect(_0x49d0e3[_0x26b695(0x110)])['toBeDefined'](),expect(typeof _0x49d0e3[_0x26b695(0x110)])[_0x26b695(0x11f)](_0x26b695(0x107)),expect(_0x49d0e3[_0x26b695(0x110)])[_0x26b695(0x126)](0x0);});}),describe('Message\x20Management\x20-\x20Pagination\x20Logic',()=>{const _0x5131b5=a0_0x1c0dc8;test(_0x5131b5(0x11b),async()=>{const _0x205e34=_0x5131b5,{PAGINATION:_0x52b7a9}=await import(_0x205e34(0x11e)),_0x4bc413=0x0,_0x1b7fc3=_0x4bc413*_0x52b7a9[_0x205e34(0xfe)];expect(_0x1b7fc3)[_0x205e34(0x11f)](0x0);const _0x394dac=0x1,_0x33d3a0=_0x394dac*_0x52b7a9['PAGE_SIZE'];expect(_0x33d3a0)[_0x205e34(0x11f)](_0x52b7a9[_0x205e34(0xfe)]);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0x4489a6=_0x5131b5,{PAGINATION:_0x322398}=await import(_0x4489a6(0x11e)),_0x3386f5=0x3e8,_0xcade4f=Math[_0x4489a6(0xf2)](_0x3386f5,_0x322398['MAX_PAGE_SIZE']);expect(_0xcade4f)['toBeLessThanOrEqual'](_0x322398[_0x4489a6(0xf1)]);});});