@loxia-labs/loxia-autopilot-one 1.0.5 → 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-lCBai6dX.js → index-DE5VFS1q.js} +121 -68
  120. package/web-ui/build/static/index-CClD1090.css +0 -1
@@ -1 +1 @@
1
- const a0_0x231ecd=a0_0x5aee;(function(_0x3897bd,_0x229e69){const _0x34d785=a0_0x5aee,_0xc9cf14=_0x3897bd();while(!![]){try{const _0x49ce67=parseInt(_0x34d785(0x120))/0x1+parseInt(_0x34d785(0x103))/0x2+parseInt(_0x34d785(0x112))/0x3+-parseInt(_0x34d785(0x108))/0x4+parseInt(_0x34d785(0xf8))/0x5+parseInt(_0x34d785(0x10b))/0x6*(parseInt(_0x34d785(0x118))/0x7)+-parseInt(_0x34d785(0x115))/0x8;if(_0x49ce67===_0x229e69)break;else _0xc9cf14['push'](_0xc9cf14['shift']());}catch(_0x5b9c55){_0xc9cf14['push'](_0xc9cf14['shift']());}}}(a0_0x43b4,0xcec5c));function a0_0x5aee(_0x58fe48,_0x5452e2){_0x58fe48=_0x58fe48-0xf3;const _0x43b451=a0_0x43b4();let _0x5aee0c=_0x43b451[_0x58fe48];if(a0_0x5aee['lYfslH']===undefined){var _0x4f3f99=function(_0x3f7944){const _0x3e7fc6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x423302='',_0x3528a1='';for(let _0x3ec3fb=0x0,_0x3240dc,_0x1d65b0,_0x50e991=0x0;_0x1d65b0=_0x3f7944['charAt'](_0x50e991++);~_0x1d65b0&&(_0x3240dc=_0x3ec3fb%0x4?_0x3240dc*0x40+_0x1d65b0:_0x1d65b0,_0x3ec3fb++%0x4)?_0x423302+=String['fromCharCode'](0xff&_0x3240dc>>(-0x2*_0x3ec3fb&0x6)):0x0){_0x1d65b0=_0x3e7fc6['indexOf'](_0x1d65b0);}for(let _0x124421=0x0,_0x1fe329=_0x423302['length'];_0x124421<_0x1fe329;_0x124421++){_0x3528a1+='%'+('00'+_0x423302['charCodeAt'](_0x124421)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3528a1);};a0_0x5aee['sVsNFy']=_0x4f3f99,a0_0x5aee['WHQpJv']={},a0_0x5aee['lYfslH']=!![];}const _0x427347=_0x43b451[0x0],_0x4df9e1=_0x58fe48+_0x427347,_0x3be849=a0_0x5aee['WHQpJv'][_0x4df9e1];return!_0x3be849?(_0x5aee0c=a0_0x5aee['sVsNFy'](_0x5aee0c),a0_0x5aee['WHQpJv'][_0x4df9e1]=_0x5aee0c):_0x5aee0c=_0x3be849,_0x5aee0c;}function a0_0x43b4(){const _0x113202=['u2v0DgLUz3nqyw5LBa','qwDLBNrdCMvHDg9Y','nZm3nJCWrwTSqKLR','lI4VlI4Vy29TCg9Uzw50CY9tzxr0Aw5NC1bHBMvSlMPZ','qM94','qwDLBNrdCMvHDg9YigLZigeGzNvUy3rPB24Gy29TCg9Uzw50','zgvMyxvSDa','qwDLBNrdCMvHDg9YigrLzMLUzxmGC3rLCcbJB25ZDgfUDhm','BgvUz3rO','zNvUy3rPB24','lI4VlI4Vy29TCg9Uzw50CY9tzwfYy2Hqyw5LBc5QCW','y3jLyxrLrwXLBwvUDa','qwXSifbOyxnLideWignVBxbVBMvUDhmGDxnLifjLywn0igfUzcbjBMS','mZe1nZCWogrHrK5TsG','sgvSCfbHBMvSigLZigeGzNvUy3rPB24Gy29TCg9Uzw50','Dg9czvvUzgvMAw5Lza','C2L6zq','ugHHC2uGmtaGlsbbzhzHBMnLzcbgzwf0DxjLCYaTieLTCg9YDhm','mJK5nZCZnM1vtgXczq','BwfW','qwDLBNrtD2L0y2HLCG','mty2mLfsv2nyvG','DxnLsw5WDxq','u2v0DgLUz3nqyw5LBcbPCYbHigz1BMn0Aw9UignVBxbVBMvUDa','ugHHC2uGmtaGlsbtzxr0Aw5NC1bHBMvSic0Gu3rYDwn0DxjL','sgvSCfbHBMvS','ugHHC2uGmtaGlsbizwXWugfUzwWGlsbtDhj1y3r1CMu','Aw5R','ntG1odKXyNHbtfLH','lI4VlI4Vy29TCg9Uzw50CY9izwXWugfUzwWUANm','sgvSCfbHBMvSigrLzMLUzxmGC2HVCNrJDxqGy29UzMLNDxjHDgLVBNm','mJa1mdm0ndHZu0XPAvi','ugHHC2uGmtaGlsbtzwfYy2Hqyw5LBcaTifn0CNvJDhvYzq','ugHHC2uGmtaGlsbbz2vUDenYzwf0B3iGlsbtDhj1y3r1CMu','mtm5otntqK1Su2O','ugHHC2uGmtaGlsbbz2vUDfn3AxrJAgvYic0Gu3rYDwn0DxjL','ywXS','ugHHC2uGmtaGlsbjBNrLz3jHDgLVBIb3AxrOieXHEw91Da','Dg9czq','Dg9czurLzMLUzwq','ChjVDg90ExbL','CMvUzgvY','mty4mZG5n0LZzunpAq','vgv4Da','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','lI4VlI4Vy29TCg9Uzw50CY9bz2vUDenYzwf0B3iUANm','lI4VlI4Vy29TCg9Uzw50CY9bz2vUDfn3AxrJAgvYlMPZ'];a0_0x43b4=function(){return _0x113202;};return a0_0x43b4();}import{describe,test,expect}from'@jest/globals';describe(a0_0x231ecd(0x107),()=>{test('AgentSwitcher component can be imported',async()=>{const _0x36dba9=a0_0x5aee,{AgentSwitcher:_0x423302}=await import(_0x36dba9(0xf5));expect(_0x423302)[_0x36dba9(0x11d)](),expect(typeof _0x423302)[_0x36dba9(0x11c)](_0x36dba9(0xff));},0x7530),test('AgentCreator component can be imported',async()=>{const {AgentCreator:_0x3528a1}=await import('../../components/AgentCreator.js');expect(_0x3528a1)['toBeDefined'](),expect(typeof _0x3528a1)['toBe']('function');}),test('SettingsPanel component can be imported',async()=>{const _0x5c7948=a0_0x5aee,{SettingsPanel:_0x3ec3fb}=await import('../../components/SettingsPanel.js');expect(_0x3ec3fb)['toBeDefined'](),expect(typeof _0x3ec3fb)[_0x5c7948(0x11c)](_0x5c7948(0xff));}),test('SearchPanel component can be imported',async()=>{const _0x157871=a0_0x5aee,{SearchPanel:_0x3240dc}=await import('../../components/SearchPanel.js');expect(_0x3240dc)[_0x157871(0x11d)](),expect(typeof _0x3240dc)[_0x157871(0x11c)]('function');}),test('HelpPanel component can be imported',async()=>{const _0x4d961d=a0_0x5aee,{HelpPanel:_0x1d65b0}=await import(_0x4d961d(0x113));expect(_0x1d65b0)[_0x4d961d(0x11d)](),expect(typeof _0x1d65b0)['toBe'](_0x4d961d(0xff));});}),describe(a0_0x231ecd(0x119),()=>{test('AgentSwitcher\x20is\x20a\x20function\x20component',async()=>{const _0x395e4f=a0_0x5aee,{AgentSwitcher:_0x50e991}=await import('../../components/AgentSwitcher.js');expect(typeof _0x50e991)[_0x395e4f(0x11c)](_0x395e4f(0xff)),expect(_0x50e991['prototype']?.['render'])[_0x395e4f(0x105)]();}),test('AgentSwitcher is default export',async()=>{const _0x145a77=a0_0x5aee,module=await import('../../components/AgentSwitcher.js');expect(module[_0x145a77(0xfc)])['toBeDefined'](),expect(module[_0x145a77(0xfc)])[_0x145a77(0x11c)](module[_0x145a77(0x10a)]);});}),describe(a0_0x231ecd(0x117),()=>{const _0x128ce6=a0_0x231ecd;test(_0x128ce6(0xfb),async()=>{const _0x392051=_0x128ce6,{AgentCreator:_0x124421}=await import(_0x392051(0xf4));expect(typeof _0x124421)['toBe'](_0x392051(0xff)),expect(_0x124421['prototype']?.['render'])['toBeUndefined']();}),test('AgentCreator is default export',async()=>{const _0x1980c0=_0x128ce6,module=await import('../../components/AgentCreator.js');expect(module[_0x1980c0(0xfc)])['toBeDefined'](),expect(module[_0x1980c0(0xfc)])['toBe'](module['AgentCreator']);});}),describe(a0_0x231ecd(0x10e),()=>{const _0x41bcd1=a0_0x231ecd;test(_0x41bcd1(0x10d),async()=>{const _0x139d38=_0x41bcd1,{SettingsPanel:_0x1fe329}=await import('../../components/SettingsPanel.js');expect(typeof _0x1fe329)['toBe'](_0x139d38(0xff)),expect(_0x1fe329['prototype']?.[_0x139d38(0x11f)])[_0x139d38(0x105)]();}),test('SettingsPanel is default export',async()=>{const _0x524abe=_0x41bcd1,module=await import(_0x524abe(0xf9));expect(module['default'])['toBeDefined'](),expect(module['default'])['toBe'](module[_0x524abe(0xf6)]);});}),describe(a0_0x231ecd(0x116),()=>{test('SearchPanel\x20is\x20a\x20function\x20component',async()=>{const _0x18b065=a0_0x5aee,{SearchPanel:_0x4c830d}=await import(_0x18b065(0x100));expect(typeof _0x4c830d)[_0x18b065(0x11c)]('function'),expect(_0x4c830d['prototype']?.[_0x18b065(0x11f)])[_0x18b065(0x105)]();}),test('SearchPanel is default export',async()=>{const _0x1a7c74=a0_0x5aee,module=await import(_0x1a7c74(0x100));expect(module['default'])[_0x1a7c74(0x11d)](),expect(module[_0x1a7c74(0xfc)])['toBe'](module['SearchPanel']);});}),describe(a0_0x231ecd(0x110),()=>{const _0x2ff1a3=a0_0x231ecd;test(_0x2ff1a3(0x104),async()=>{const _0x23669f=_0x2ff1a3,{HelpPanel:_0x59cb4e}=await import(_0x23669f(0x113));expect(typeof _0x59cb4e)[_0x23669f(0x11c)]('function'),expect(_0x59cb4e[_0x23669f(0x11e)]?.[_0x23669f(0x11f)])[_0x23669f(0x105)]();}),test('HelpPanel is default export',async()=>{const _0x5d25b8=_0x2ff1a3,module=await import(_0x5d25b8(0x113));expect(module['default'])[_0x5d25b8(0x11d)](),expect(module[_0x5d25b8(0xfc)])['toBe'](module[_0x5d25b8(0x10f)]);});}),describe(a0_0x231ecd(0x11b),()=>{const _0x5a99a9=a0_0x231ecd;test('Layout component can import all Phase 10 components',async()=>{const _0x4c1163=a0_0x5aee,[_0x3c91ec,_0x1a3a1e,_0x569381,_0x51b5f5,_0x409ec8]=await Promise[_0x4c1163(0x11a)]([import('../../components/AgentSwitcher.js'),import('../../components/AgentCreator.js'),import('../../components/SettingsPanel.js'),import('../../components/SearchPanel.js'),import('../../components/HelpPanel.js')]);expect(_0x3c91ec['AgentSwitcher'])['toBeDefined'](),expect(_0x1a3a1e['AgentCreator'])[_0x4c1163(0x11d)](),expect(_0x569381['SettingsPanel'])['toBeDefined'](),expect(_0x51b5f5['SearchPanel'])[_0x4c1163(0x11d)](),expect(_0x409ec8['HelpPanel'])['toBeDefined']();}),test('Layout\x20component\x20still\x20loads\x20after\x20Phase\x2010\x20additions',async()=>{const _0x21cfa0=a0_0x5aee,{Layout:_0xa91ee3}=await import(_0x21cfa0(0xf3));expect(_0xa91ee3)['toBeDefined'](),expect(typeof _0xa91ee3)['toBe']('function');}),test(_0x5a99a9(0x102),async()=>{const _0x16fad9=_0x5a99a9,_0x7ed59a=await import('react'),_0x3af13b=await import(_0x16fad9(0x111));expect(_0x7ed59a[_0x16fad9(0x101)])[_0x16fad9(0x11d)](),expect(_0x7ed59a['useState'])['toBeDefined'](),expect(_0x3af13b[_0x16fad9(0xfa)])['toBeDefined'](),expect(_0x3af13b[_0x16fad9(0x121)])[_0x16fad9(0x11d)](),expect(_0x3af13b[_0x16fad9(0x10c)])[_0x16fad9(0x11d)]();});}),describe('Phase\x2010\x20-\x20Component\x20Constants\x20and\x20Configurations',()=>{const _0x3d86f7=a0_0x231ecd;test(_0x3d86f7(0xfd),async()=>{const _0x5eee77=_0x3d86f7,module=await import('../../components/AgentCreator.js');expect(module[_0x5eee77(0xf7)])[_0x5eee77(0x11d)]();}),test('SettingsPanel\x20defines\x20category\x20constants',async()=>{const _0x48dd2a=_0x3d86f7,module=await import('../../components/SettingsPanel.js');expect(module[_0x48dd2a(0xf6)])['toBeDefined']();}),test(_0x3d86f7(0x114),async()=>{const _0x4b61af=_0x3d86f7,module=await import(_0x4b61af(0x113));expect(module['HelpPanel'])[_0x4b61af(0x11d)]();});}),describe('Phase\x2010\x20-\x20All\x20Components\x20Export\x20Correctly',()=>{test('All components can be imported together without conflicts',async()=>{const _0x43be5a=a0_0x5aee,_0x3812fc=await Promise['all']([import('../../components/AgentSwitcher.js'),import('../../components/AgentCreator.js'),import(_0x43be5a(0xf9)),import('../../components/SearchPanel.js'),import(_0x43be5a(0x113))]),_0x52bf80=_0x3812fc[_0x43be5a(0x109)](_0x537601=>Object['keys'](_0x537601)[0x0]),_0xab35de=new Set(_0x52bf80);expect(_0xab35de[_0x43be5a(0x106)])['toBe'](_0x52bf80[_0x43be5a(0xfe)]);});});
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_0xba9125=a0_0x2d61;(function(_0x29cc5c,_0x4d6e61){const _0x37c39b=a0_0x2d61,_0x28b887=_0x29cc5c();while(!![]){try{const _0x1d2f49=-parseInt(_0x37c39b(0xb4))/0x1*(parseInt(_0x37c39b(0xde))/0x2)+parseInt(_0x37c39b(0xc1))/0x3*(parseInt(_0x37c39b(0xd5))/0x4)+parseInt(_0x37c39b(0xce))/0x5*(parseInt(_0x37c39b(0xe1))/0x6)+parseInt(_0x37c39b(0xc5))/0x7+-parseInt(_0x37c39b(0xea))/0x8+-parseInt(_0x37c39b(0xd3))/0x9*(parseInt(_0x37c39b(0xb1))/0xa)+-parseInt(_0x37c39b(0xb7))/0xb*(-parseInt(_0x37c39b(0xbb))/0xc);if(_0x1d2f49===_0x4d6e61)break;else _0x28b887['push'](_0x28b887['shift']());}catch(_0x4d8a87){_0x28b887['push'](_0x28b887['shift']());}}}(a0_0x42c4,0xa0fdd));function a0_0x2d61(_0x4a9e79,_0x9e8e1e){_0x4a9e79=_0x4a9e79-0xae;const _0x42c45b=a0_0x42c4();let _0x2d61b6=_0x42c45b[_0x4a9e79];if(a0_0x2d61['CNNEAQ']===undefined){var _0x367096=function(_0x38f8fe){const _0x2d8979='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xa3fb59='',_0x37b296='';for(let _0x2816f9=0x0,_0x444184,_0x469a88,_0x9105e=0x0;_0x469a88=_0x38f8fe['charAt'](_0x9105e++);~_0x469a88&&(_0x444184=_0x2816f9%0x4?_0x444184*0x40+_0x469a88:_0x469a88,_0x2816f9++%0x4)?_0xa3fb59+=String['fromCharCode'](0xff&_0x444184>>(-0x2*_0x2816f9&0x6)):0x0){_0x469a88=_0x2d8979['indexOf'](_0x469a88);}for(let _0x1c8a47=0x0,_0x4668d6=_0xa3fb59['length'];_0x1c8a47<_0x4668d6;_0x1c8a47++){_0x37b296+='%'+('00'+_0xa3fb59['charCodeAt'](_0x1c8a47)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x37b296);};a0_0x2d61['vwcLZp']=_0x367096,a0_0x2d61['lxwmJY']={},a0_0x2d61['CNNEAQ']=!![];}const _0x323884=_0x42c45b[0x0],_0x4bc4fd=_0x4a9e79+_0x323884,_0x51d54d=a0_0x2d61['lxwmJY'][_0x4bc4fd];return!_0x51d54d?(_0x2d61b6=a0_0x2d61['vwcLZp'](_0x2d61b6),a0_0x2d61['lxwmJY'][_0x4bc4fd]=_0x2d61b6):_0x2d61b6=_0x51d54d,_0x2d61b6;}import{describe,test,expect}from'@jest/globals';function a0_0x42c4(){const _0x4c24a8=['tuLduK9tt0zu','Bg9JywXOB3n0','B3bLBMfP','v2vIu29JA2v0twfUywDLCG','zMLSDgvY','zNvUy3rPB24','DxnLqwDLBNrdB250CM9S','yw50AhjVCgLJ','nZGXnZCXmK9kzfbPua','q0Hbva','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','u2vZC2LVBK1HBMfNzxi','lI4VlI4VC3rHDguVDxnLqwDLBNrdB250CM9SlMPZ','revfufnfruS','oMfNzw50swq','z3b0ltq','zgvLChnLzwS','zgvMyxvSDa','teXnig1VzgvSCYbLBMrWB2LUDcbLEgLZDhm','mtaWDeH4qu5Z','Dg9czurLzMLUzwq','tu9eruXFq0furuDpuLKGAw5JBhvKzxmGBwfQB3iGteXnihbYB3zPzgvYCW','mLn5wgvctW','t1jdsevtvfjbve9s','BwLJCM9ZB2z0','ndGYour4rvnfBa','qwDLBNqGBw9KzsbLBMrWB2LUDhmGzM9SBg93ifjfu1rMDwWGCgf0DgvYBG','twvZC2fNzvjVDxrLCIbOyxmGBw9KzsbJAgfUz2uGzxzLBNqGAgfUzgXLCIbYzwDPC3rLCMvK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','odm3nMPMvgnpuW','quDftLrtx01prevFr0vu','tw9KzsbHBMqGBw9KzwWGqvbjigvUzhbVAw50CYbHCMuGzgvMAw5Lza','twvZC2fNzvjVDxrLCG','qu5usfjpueLd','qvbjx0vorfbpsu5uuW','mtmYnZG5uKnyC2jK','ywDLBNrFBw9Kzv9JAgfUz2vK','quDftLrFtu9erv9dsefor0ve','DxnLqwDLBNrdB250CM9SigHVB2SGAw50zwDYyxrLCYb3AxrOifnLC3nPB24Gyw5Kie1LC3nHz2vsB3v0zxi','nZq4ndqZnxvYDNzjBW','lI4VlI4VyxbPl3nLC3nPB24UANm','Dg9czq','tu9eruXFq0furuDpuLKGy2fUigjLihvZzwqGDg8GzMLSDgvYig1VzgvSCYbIEsbJyxrLz29YEq','y2XHDwrLltmTns1ZB25Uzxq','BgvUz3rO','tu9eruXFq0furuDpuLKGy29UC3rHBNrZigfYzsbKzwzPBMvK','AgfZsgfUzgXLCG','Dg9nyxrJAa','mJbNsKjru0K','quDftLrFtu9ersb2ywX1zxmGyxjLihvWCgvYy2fZzq','zgvLChnLzwSTy2HHDa','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','quDftLrFtu9ersbZDxbWB3j0CYb0B2DNBgLUzYbIzxr3zwvUig1VzgvZ','mJa0ndG5r0rZsLLZ','A2v5CW','odHSq05iDhi','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gtw9KzwWGrMLSDgvYAw5N','quDftLq','quDftLrFtu9erq','t1bftKfj','teXnx01prevmuW','Dg9vChbLCKnHC2u','y2f0zwDVCNK','l2fWAs9SBg0VBw9KzwXZ','nti0mtq0DvjPsxfX','Dg9dB250ywLU','quDftLrtx01prevFu0vu','ntC4nJrxEw5dC2W'];a0_0x42c4=function(){return _0x4c24a8;};return a0_0x42c4();}describe(a0_0xba9125(0xd1),()=>{test('useAgentControl hook can be imported',async()=>{const _0x50df8f=a0_0x2d61,{useAgentControl:_0xa3fb59}=await import(_0x50df8f(0xee));expect(_0xa3fb59)['toBeDefined'](),expect(typeof _0xa3fb59)[_0x50df8f(0xc7)]('function');}),test('useAgentControl is default export',async()=>{const _0x4ba169=a0_0x2d61,module=await import('../../state/useAgentControl.js');expect(module['default'])['toBeDefined'](),expect(typeof module[_0x4ba169(0xaf)])['toBe'](_0x4ba169(0xe7)),expect(module[_0x4ba169(0xaf)])['toBe'](module[_0x4ba169(0xe8)]);});}),describe('Agent\x20Control\x20Management\x20-\x20Constants',()=>{const _0x706fc2=a0_0xba9125;test('AGENT_MODE\x20constants\x20are\x20defined',async()=>{const _0x33a912=a0_0x2d61,{AGENT_MODE:_0x37b296}=await import('../../config/constants.js');expect(_0x37b296)['toBeDefined'](),expect(_0x37b296[_0x33a912(0xeb)])['toBe'](_0x33a912(0xeb)),expect(_0x37b296['AGENT'])[_0x33a912(0xc7)]('AGENT');}),test(_0x706fc2(0xcb),async()=>{const _0xb08e5=_0x706fc2,{MODEL_CATEGORY:_0x2816f9}=await import(_0xb08e5(0xec));expect(_0x2816f9)['toBeDefined'](),expect(_0x2816f9[_0xb08e5(0xbf)])[_0xb08e5(0xc7)](_0xb08e5(0xe9)),expect(_0x2816f9[_0xb08e5(0xd9)])[_0xb08e5(0xc7)](_0xb08e5(0xe4)),expect(_0x2816f9['DEEPSEEK'])['toBe']('deepseek'),expect(_0x2816f9['MICROSOFT'])['toBe'](_0xb08e5(0xb6));}),test(_0x706fc2(0xbd),async()=>{const _0x261dd7=_0x706fc2,{API_ENDPOINTS:_0x444184}=await import('../../config/constants.js');expect(_0x444184[_0x261dd7(0xe0)])['toBe']('/api/agents/:agentId/mode'),expect(_0x444184[_0x261dd7(0xbc)])['toBe']('/api/agents/:agentId/mode'),expect(_0x444184[_0x261dd7(0xda)])[_0x261dd7(0xc7)]('/api/llm/models');}),test('WS_MESSAGE_TYPE\x20includes\x20mode\x20and\x20model\x20change\x20events',async()=>{const _0x57f9c3=_0x706fc2,{WS_MESSAGE_TYPE:_0x469a88}=await import(_0x57f9c3(0xec));expect(_0x469a88)[_0x57f9c3(0xb2)](),expect(_0x469a88['AGENT_MODE_CHANGED'])['toBe'](_0x57f9c3(0xc2));});}),describe('Agent\x20Control\x20Management\x20-\x20Integration',()=>{const _0x1b6f8d=a0_0xba9125;test(_0x1b6f8d(0xc4),async()=>{const _0x2babdc=_0x1b6f8d,{useAgentControl:_0x9105e}=await import('../../state/useAgentControl.js'),{SessionManager:_0x1c8a47}=await import('../../api/session.js'),{MessageRouter:_0x4668d6}=await import(_0x2babdc(0xba)),{WebSocketManager:_0x5afa71}=await import('../../api/websocket.js'),_0x5a50b9=new _0x1c8a47(_0x2babdc(0xe3),0x1f90),_0x52a7a8=new _0x5afa71(_0x2babdc(0xe3),0x1f90),_0x547a31=new _0x4668d6(_0x52a7a8);expect(_0x5a50b9)['toBeDefined'](),expect(_0x547a31)[_0x2babdc(0xb2)](),expect(typeof _0x9105e)['toBe']('function');}),test('Full agent control stack can be imported together',async()=>{const _0x399fb0=_0x1b6f8d,[_0x1c1af7,_0x2016bd,_0x16d18f,_0x34d3e7,_0x654497]=await Promise['all']([import('../../config/constants.js'),import(_0x399fb0(0xc6)),import('../../api/websocket.js'),import(_0x399fb0(0xba)),import(_0x399fb0(0xee))]);expect(_0x1c1af7[_0x399fb0(0xd8)])['toBeDefined'](),expect(_0x1c1af7['MODEL_CATEGORY'])['toBeDefined'](),expect(_0x1c1af7[_0x399fb0(0xc0)])['toBeDefined'](),expect(_0x2016bd[_0x399fb0(0xed)])['toBeDefined'](),expect(_0x16d18f[_0x399fb0(0xe5)])['toBeDefined'](),expect(_0x34d3e7[_0x399fb0(0xbe)])[_0x399fb0(0xb2)](),expect(_0x654497[_0x399fb0(0xe8)])['toBeDefined']();});}),describe('Agent\x20Control\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x209348=a0_0xba9125;test(_0x209348(0xb8),async()=>{const _0x556980=_0x209348,{API_ENDPOINTS:_0x2148ed}=await import('../../config/constants.js');expect(_0x2148ed[_0x556980(0xe0)])[_0x556980(0xcd)](/^\/api\/agents/),expect(_0x2148ed[_0x556980(0xbc)])[_0x556980(0xcd)](/^\/api\/agents/),expect(_0x2148ed[_0x556980(0xe0)])['toContain'](':agentId'),expect(_0x2148ed['AGENTS_MODE_GET'])[_0x556980(0xdf)](_0x556980(0xf0));}),test(_0x209348(0xb0),async()=>{const _0x4eb065=_0x209348,{API_ENDPOINTS:_0x421937}=await import(_0x4eb065(0xec));expect(_0x421937[_0x4eb065(0xda)])[_0x4eb065(0xb2)](),expect(_0x421937['LLM_MODELS'])[_0x4eb065(0xc7)](_0x4eb065(0xdd));}),test('Orchestrator\x20endpoint\x20exists\x20for\x20model\x20and\x20config\x20operations',async()=>{const _0x5d05b9=_0x209348,{API_ENDPOINTS:_0x3d5978}=await import(_0x5d05b9(0xec));expect(_0x3d5978[_0x5d05b9(0xb5)])['toBeDefined'](),expect(_0x3d5978['ORCHESTRATOR'])['toBe']('/api/orchestrator');});}),describe('Agent\x20Control\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useAgentControl\x20returns\x20expected\x20interface\x20shape',async()=>{const {useAgentControl:_0x48a244}=await import('../../state/useAgentControl.js');expect(_0x48a244['length'])['toBe'](0x3);});}),describe('Agent\x20Control\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x56cc5e=a0_0xba9125;test('AGENT_MODE\x20has\x20exactly\x20two\x20modes',async()=>{const _0x15d10=a0_0x2d61,{AGENT_MODE:_0x4c18f8}=await import(_0x15d10(0xec)),_0x401563=Object[_0x15d10(0xd4)](_0x4c18f8);expect(_0x401563['length'])[_0x15d10(0xc7)](0x2),expect(_0x401563)[_0x15d10(0xdf)]('CHAT'),expect(_0x401563)[_0x15d10(0xdf)]('AGENT');}),test(_0x56cc5e(0xcf),async()=>{const _0x581f43=_0x56cc5e,{AGENT_MODE:_0x3f6d16}=await import('../../config/constants.js');expect(_0x3f6d16[_0x581f43(0xeb)])['toBe'](_0x581f43(0xeb)),expect(_0x3f6d16['AGENT'])['toBe'](_0x581f43(0xd7)),expect(_0x3f6d16[_0x581f43(0xeb)])['toBe'](_0x3f6d16['CHAT'][_0x581f43(0xdb)]()),expect(_0x3f6d16['AGENT'])[_0x581f43(0xc7)](_0x3f6d16[_0x581f43(0xd7)][_0x581f43(0xdb)]());}),test('MODEL_CATEGORY\x20values\x20are\x20lowercase',async()=>{const _0x5781d6=_0x56cc5e,{MODEL_CATEGORY:_0x260d5c}=await import('../../config/constants.js');expect(_0x260d5c[_0x5781d6(0xbf)])['toBe'](_0x5781d6(0xe9)),expect(_0x260d5c[_0x5781d6(0xd9)])['toBe']('openai'),expect(_0x260d5c['DEEPSEEK'])[_0x5781d6(0xc7)](_0x5781d6(0xae)),expect(_0x260d5c[_0x5781d6(0xe2)])['toBe']('microsoft'),expect(_0x260d5c['ANTHROPIC'])['toBe'](_0x260d5c['ANTHROPIC']['toLowerCase']()),expect(_0x260d5c['OPENAI'])['toBe'](_0x260d5c['OPENAI']['toLowerCase']());}),test(_0x56cc5e(0xb3),async()=>{const _0x5e9fd6=_0x56cc5e,{MODEL_CATEGORY:_0x14c5f6}=await import(_0x5e9fd6(0xec)),_0x108282=Object[_0x5e9fd6(0xd4)](_0x14c5f6);expect(_0x108282)[_0x5e9fd6(0xdf)](_0x5e9fd6(0xbf)),expect(_0x108282)['toContain'](_0x5e9fd6(0xd9)),expect(_0x108282)[_0x5e9fd6(0xdf)](_0x5e9fd6(0xef)),expect(_0x108282)[_0x5e9fd6(0xdf)](_0x5e9fd6(0xe2));});}),describe('Agent\x20Control\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{const _0x42cafe=a0_0xba9125;test(_0x42cafe(0xb9),async()=>{const _0x218133=_0x42cafe,{MessageRouter:_0xafb3fa}=await import(_0x218133(0xba)),{WebSocketManager:_0x5674ae}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x4ea2b8}=await import(_0x218133(0xec)),_0x4ebece=new _0x5674ae(_0x218133(0xe3),0x1f90),_0x589b33=new _0xafb3fa(_0x4ebece);expect(_0x589b33[_0x218133(0xcc)](_0x4ea2b8[_0x218133(0xc3)]))['toBe'](!![]);});}),describe('Agent\x20Control\x20Management\x20-\x20Mode\x20Switching\x20Logic',()=>{const _0x52d4ac=a0_0xba9125;test(_0x52d4ac(0xd2),async()=>{const _0x1d0dc9=_0x52d4ac,{AGENT_MODE:_0x2cf1ed}=await import(_0x1d0dc9(0xec));let _0x4f1fdb=_0x2cf1ed['CHAT'],_0x5832de=_0x4f1fdb===_0x2cf1ed['CHAT']?_0x2cf1ed[_0x1d0dc9(0xd7)]:_0x2cf1ed['CHAT'];expect(_0x5832de)['toBe'](_0x2cf1ed['AGENT']),_0x4f1fdb=_0x2cf1ed[_0x1d0dc9(0xd7)],_0x5832de=_0x4f1fdb===_0x2cf1ed['CHAT']?_0x2cf1ed[_0x1d0dc9(0xd7)]:_0x2cf1ed['CHAT'],expect(_0x5832de)['toBe'](_0x2cf1ed[_0x1d0dc9(0xeb)]);});}),describe(a0_0xba9125(0xd6),()=>{const _0xd88d70=a0_0xba9125;test(_0xd88d70(0xc8),async()=>{const _0x10b792=_0xd88d70,{MODEL_CATEGORY:_0x222a71}=await import(_0x10b792(0xec)),_0x2e8745=[{'id':_0x10b792(0xc9),'category':_0x222a71['ANTHROPIC']},{'id':'gpt-4','category':_0x222a71['OPENAI']},{'id':_0x10b792(0xd0),'category':_0x222a71[_0x10b792(0xef)]}],_0x481ec4=_0x2e8745['filter'](_0x6aa5c4=>_0x6aa5c4[_0x10b792(0xdc)]===_0x222a71['ANTHROPIC']),_0x4a40ea=_0x2e8745[_0x10b792(0xe6)](_0x1dad14=>_0x1dad14[_0x10b792(0xdc)]===_0x222a71[_0x10b792(0xd9)]);expect(_0x481ec4[_0x10b792(0xca)])[_0x10b792(0xc7)](0x1),expect(_0x481ec4[0x0]['id'])['toBe'](_0x10b792(0xc9)),expect(_0x4a40ea[_0x10b792(0xca)])['toBe'](0x1),expect(_0x4a40ea[0x0]['id'])['toBe'](_0x10b792(0xf1));});});
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
- function a0_0x295a(_0x190dee,_0x5b7097){_0x190dee=_0x190dee-0x92;const _0x11db16=a0_0x11db();let _0x295a07=_0x11db16[_0x190dee];if(a0_0x295a['kHLuwb']===undefined){var _0x34f53e=function(_0x9c6bf5){const _0x58c8b7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x52648e='',_0x1f2898='';for(let _0x5a0376=0x0,_0x2b8137,_0x3903b3,_0x3e1260=0x0;_0x3903b3=_0x9c6bf5['charAt'](_0x3e1260++);~_0x3903b3&&(_0x2b8137=_0x5a0376%0x4?_0x2b8137*0x40+_0x3903b3:_0x3903b3,_0x5a0376++%0x4)?_0x52648e+=String['fromCharCode'](0xff&_0x2b8137>>(-0x2*_0x5a0376&0x6)):0x0){_0x3903b3=_0x58c8b7['indexOf'](_0x3903b3);}for(let _0x95cf50=0x0,_0x4b9429=_0x52648e['length'];_0x95cf50<_0x4b9429;_0x95cf50++){_0x1f2898+='%'+('00'+_0x52648e['charCodeAt'](_0x95cf50)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1f2898);};a0_0x295a['WUxeLb']=_0x34f53e,a0_0x295a['nKxEwG']={},a0_0x295a['kHLuwb']=!![];}const _0xd71b8d=_0x11db16[0x0],_0x5ab1b8=_0x190dee+_0xd71b8d,_0x2e093d=a0_0x295a['nKxEwG'][_0x5ab1b8];return!_0x2e093d?(_0x295a07=a0_0x295a['WUxeLb'](_0x295a07),a0_0x295a['nKxEwG'][_0x5ab1b8]=_0x295a07):_0x295a07=_0x2e093d,_0x295a07;}const a0_0x272701=a0_0x295a;(function(_0x3e1476,_0x5115d4){const _0x435f83=a0_0x295a,_0x5136eb=_0x3e1476();while(!![]){try{const _0x4dfdfb=-parseInt(_0x435f83(0xa4))/0x1*(-parseInt(_0x435f83(0xa9))/0x2)+parseInt(_0x435f83(0x9b))/0x3*(-parseInt(_0x435f83(0x9a))/0x4)+-parseInt(_0x435f83(0xc1))/0x5*(parseInt(_0x435f83(0x9f))/0x6)+parseInt(_0x435f83(0xa1))/0x7*(parseInt(_0x435f83(0xb2))/0x8)+parseInt(_0x435f83(0xb0))/0x9*(-parseInt(_0x435f83(0xa5))/0xa)+-parseInt(_0x435f83(0xc6))/0xb*(-parseInt(_0x435f83(0x92))/0xc)+parseInt(_0x435f83(0x9d))/0xd*(-parseInt(_0x435f83(0xc8))/0xe);if(_0x4dfdfb===_0x5115d4)break;else _0x5136eb['push'](_0x5136eb['shift']());}catch(_0x229068){_0x5136eb['push'](_0x5136eb['shift']());}}}(a0_0x11db,0x4cfdc));import{describe,test,expect}from'@jest/globals';function a0_0x11db(){const _0x5ae818=['mtmWmtvxzfHuqvK','l2fWAs9Hz2vUDhmVyxzHAwXHyMXL','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','quDftLrtx01prevFr0vu','quDftLrtx0fwquLmqujmrq','mJi5mtKWnxHRqLL5yq','yxjJAgL2zwq','mtrKzxzJrxq','quDftLrtx0Lnue9sva','DxnLqwDLBNrZ','mZz5txPKAum','Dg9czurLzMLUzwq','qwDLBNqGqvbjigvUzhbVAw50CYbHCMuGzgvMAw5Lza','quDftLrtx1nut1a','Dg9dB250ywLU','DxnLqwDLBNrZigHVB2SGAw50zwDYyxrLCYb3AxrOifnLC3nPB24Gyw5Kie1LC3nHz2vsB3v0zxi','qwDLBNqGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG','l2fWAs9Hz2vUDhmVoMfNzw50swqVBw9Kzq','ngjpzwnqBa','oti3odDZCLHADhC','uefvu0ve','mJy1nZC1ovD4vxfOra','lI4VlI4VC3rHDguVDxnLqwDLBNrZlMPZ','nZa4qwnVvKTI','Dg9nyxrJAa','mtK1mdLXwLbOrKy','qwDLBNqGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','qvjdseLwruq','mJu2mJLRu2ncAMO','ntGWmZi3meXZqK5vuq','Dg9czq','q09esu5hx0ftu0Ltvefova','qwDLBNqGtwfUywDLBwvUDcaTienVBNn0yw50CW','mtH3t3byqKi','l2fWAs9VCMnOzxn0CMf0B3i','qunusvzf','zgf0ys1HBMfSExn0','zNvUy3rPB24','zgvMyxvSDa','t3jJAgvZDhjHDg9YigvUzhbVAw50igv4Axn0CYbMB3iGywDLBNqGB3bLCMf0Aw9UCW','ow1xtNH5ta','y3vZDg9T','mty3mLzPsg9svq','q1jfqvrjvKvFv1jjvevs','oMfNzw50swq','quDftLrtx01prevFu0vu','l2fWAs9Hz2vUDhmVoMfNzw50swqVBwv0ywrHDge','quDftLrtx01fvefeqvrb','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','ywXS','zxjYB3i','quDftLrFtu9erq','surmrq','y29KAw5NlwfZC2LZDgfUDa','quDftLq','l2fWAs9Hz2vUDhmVoMfNzw50swqVC3rVCa','quDftLrFtu9ersbJB25ZDgfUDhmGyxjLigrLzMLUzwq'];a0_0x11db=function(){return _0x5ae818;};return a0_0x11db();}describe('Agent\x20Management\x20-\x20Imports',()=>{test('useAgents hook can be imported',async()=>{const _0x46878c=a0_0x295a,{useAgents:_0x52648e}=await import(_0x46878c(0x9e));expect(_0x52648e)[_0x46878c(0x93)](),expect(typeof _0x52648e)[_0x46878c(0xa6)](_0x46878c(0xad));}),test('useAgents is default export',async()=>{const _0x53ada2=a0_0x295a,module=await import('../../state/useAgents.js');expect(module['default'])[_0x53ada2(0x93)](),expect(typeof module[_0x53ada2(0xae)])[_0x53ada2(0xa6)](_0x53ada2(0xad)),expect(module['default'])['toBe'](module['useAgents']);});}),describe(a0_0x272701(0xa8),()=>{const _0x15623a=a0_0x272701;test(_0x15623a(0xc0),async()=>{const _0x3d2451=_0x15623a,{AGENT_MODE:_0x1f2898}=await import(_0x3d2451(0xb8));expect(_0x1f2898)[_0x3d2451(0x93)](),expect(_0x1f2898['CHAT'])['toBe']('CHAT'),expect(_0x1f2898[_0x3d2451(0xbe)])['toBe'](_0x3d2451(0xbe));}),test('AGENT_STATUS\x20constants\x20are\x20defined',async()=>{const _0x20a1d8=_0x15623a,{AGENT_STATUS:_0x5a0376}=await import(_0x20a1d8(0xb8));expect(_0x5a0376)[_0x20a1d8(0x93)](),expect(_0x5a0376[_0x20a1d8(0xab)])[_0x20a1d8(0xa6)]('active'),expect(_0x5a0376[_0x20a1d8(0x9c)])['toBe']('paused'),expect(_0x5a0376[_0x20a1d8(0xbc)])[_0x20a1d8(0xa6)]('idle'),expect(_0x5a0376['ERROR'])['toBe'](_0x20a1d8(0xba)),expect(_0x5a0376[_0x20a1d8(0xa3)])['toBe'](_0x20a1d8(0xc7));}),test(_0x15623a(0x94),async()=>{const _0x1efb42=_0x15623a,{API_ENDPOINTS:_0x2b8137}=await import(_0x1efb42(0xb8));expect(_0x2b8137[_0x1efb42(0xc5)])[_0x1efb42(0xa6)](_0x1efb42(0xc2)),expect(_0x2b8137['AGENTS_METADATA'])['toBe'](_0x1efb42(0xb6)),expect(_0x2b8137[_0x1efb42(0xc9)])['toBe']('/api/agents/import'),expect(_0x2b8137['AGENTS_MODE_SET'])[_0x1efb42(0xa6)](_0x1efb42(0x99)),expect(_0x2b8137[_0x1efb42(0xc4)])[_0x1efb42(0xa6)]('/api/agents/:agentId/mode'),expect(_0x2b8137['AGENTS_STOP'])[_0x1efb42(0xa6)](_0x1efb42(0xbf));}),test('AGENT_TEMPLATES\x20constants\x20are\x20defined',async()=>{const _0x7d0dc2=_0x15623a,{AGENT_TEMPLATES:_0x3903b3}=await import('../../config/constants.js');expect(_0x3903b3)['toBeDefined'](),expect(_0x3903b3[_0x7d0dc2(0xa7)])['toBe'](_0x7d0dc2(0xbd)),expect(_0x3903b3['DATA_ANALYST'])['toBe'](_0x7d0dc2(0xac)),expect(_0x3903b3[_0x7d0dc2(0xb3)])[_0x7d0dc2(0xa6)]('creative-writer'),expect(_0x3903b3['SYSTEM_ADMINISTRATOR'])['toBe']('system-administrator'),expect(_0x3903b3['CUSTOM'])[_0x7d0dc2(0xa6)](_0x7d0dc2(0xb1));});}),describe(a0_0x272701(0xa2),()=>{const _0x3e3e3e=a0_0x272701;test(_0x3e3e3e(0x97),async()=>{const _0x55e083=_0x3e3e3e,{useAgents:_0x3e1260}=await import('../../state/useAgents.js'),{SessionManager:_0x95cf50}=await import('../../api/session.js'),{MessageRouter:_0x4b9429}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x2f68ea}=await import(_0x55e083(0xc3)),_0x4e4f04=new _0x95cf50('localhost',0x1f90),_0x5d50e3=new _0x2f68ea('localhost',0x1f90),_0x1d335d=new _0x4b9429(_0x5d50e3);expect(_0x4e4f04)['toBeDefined'](),expect(_0x1d335d)['toBeDefined'](),expect(typeof _0x3e1260)[_0x55e083(0xa6)]('function');}),test('Full agent management stack can be imported together',async()=>{const _0x32fcca=_0x3e3e3e,[_0x9daceb,_0x43f981,_0x323958,_0x128fad,_0x442434]=await Promise[_0x32fcca(0xb9)]([import('../../config/constants.js'),import('../../api/session.js'),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import('../../state/useAgents.js')]);expect(_0x9daceb[_0x32fcca(0xbb)])['toBeDefined'](),expect(_0x43f981['SessionManager'])['toBeDefined'](),expect(_0x323958['WebSocketManager'])['toBeDefined'](),expect(_0x128fad['MessageRouter'])['toBeDefined'](),expect(_0x442434[_0x32fcca(0xca)])[_0x32fcca(0x93)]();});}),describe(a0_0x272701(0x98),()=>{const _0x58bab7=a0_0x272701;test('All\x20agent\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0xdac964=a0_0x295a,{API_ENDPOINTS:_0x4aad9d}=await import('../../config/constants.js');expect(_0x4aad9d['AGENTS_AVAILABLE'])['toMatch'](/^\/api\/agents/),expect(_0x4aad9d['AGENTS_METADATA'])['toMatch'](/^\/api\/agents/),expect(_0x4aad9d['AGENTS_IMPORT'])[_0xdac964(0xa0)](/^\/api\/agents/),expect(_0x4aad9d[_0xdac964(0xb5)])['toMatch'](/^\/api\/agents/),expect(_0x4aad9d[_0xdac964(0xc4)])[_0xdac964(0xa0)](/^\/api\/agents/),expect(_0x4aad9d['AGENTS_STOP'])['toMatch'](/^\/api\/agents/),expect(_0x4aad9d[_0xdac964(0xb7)])['toContain'](_0xdac964(0xb4)),expect(_0x4aad9d['AGENTS_MODE_SET'])[_0xdac964(0x96)](':agentId'),expect(_0x4aad9d[_0xdac964(0xc4)])[_0xdac964(0x96)](_0xdac964(0xb4)),expect(_0x4aad9d[_0xdac964(0x95)])[_0xdac964(0x96)](_0xdac964(0xb4));}),test(_0x58bab7(0xaf),async()=>{const _0x11fb69=_0x58bab7,{API_ENDPOINTS:_0x2b9c68}=await import('../../config/constants.js');expect(_0x2b9c68['ORCHESTRATOR'])[_0x11fb69(0x93)](),expect(_0x2b9c68['ORCHESTRATOR'])['toBe'](_0x11fb69(0xaa));});});
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 a0_0x54a0(){const _0xc482af=['mtGXndqXmeLOzKHKwq','lI4VlI4VC3rHDguVDxnLqwDLBNrZlMPZ','DxnLrwzMzwn0','zgvMyxvSDa','zNvUy3rPB24','sgvHzgvY','lI4VlI4VC3rHDguVDxnLqwDLBNrdB250CM9SlMPZ','Dg9czurLzMLUzwq','nwfAyufqzq','lI4VlI4Vy29TCg9Uzw50CY9jBNb1DejVEc5QCW','mJyYmJq5ogjqyKrWva','mK9OEePPsW','mZC3nZCZsxroC0HQ','nti3oda5AM5LvLbQ','mtHNsND5B1C','mtKZnJeXnZn3zgjNAMO','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','nJe5ntzmshr4qMq','Dg9czq','u3rHDhvZqMfY','tgf5B3v0','mJa0AxDotMTW','mZLtqxbtq00','CMvHy3q','lI4VlI4Vy29TCg9Uzw50CY9nzxnZywDLtgLZDc5QCW','mtrxt2z0r0K','twvZC2fNzuXPC3q','Aw5R','q29TCg9Uzw50ie1HBMfNzw1LBNqGlsbjBxbVCNrZ','lI4VlI4Vy29TCg9Uzw50CY9tDgf0DxncyxiUANm','mZmXmtC2uxD3vufY','lI4VlI4Vy29TCg9Uzw50CY9izwfKzxiUANm'];a0_0x54a0=function(){return _0xc482af;};return a0_0x54a0();}function a0_0x1ec1(_0x5029e5,_0x173bbb){_0x5029e5=_0x5029e5-0x14e;const _0x54a068=a0_0x54a0();let _0x1ec127=_0x54a068[_0x5029e5];if(a0_0x1ec1['hJEbdv']===undefined){var _0x415345=function(_0x5cd3fd){const _0x55ebd2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x381436='',_0x26f7c7='';for(let _0x49393a=0x0,_0x14de89,_0x222be4,_0x6b2963=0x0;_0x222be4=_0x5cd3fd['charAt'](_0x6b2963++);~_0x222be4&&(_0x14de89=_0x49393a%0x4?_0x14de89*0x40+_0x222be4:_0x222be4,_0x49393a++%0x4)?_0x381436+=String['fromCharCode'](0xff&_0x14de89>>(-0x2*_0x49393a&0x6)):0x0){_0x222be4=_0x55ebd2['indexOf'](_0x222be4);}for(let _0x1735e0=0x0,_0xbd73a9=_0x381436['length'];_0x1735e0<_0xbd73a9;_0x1735e0++){_0x26f7c7+='%'+('00'+_0x381436['charCodeAt'](_0x1735e0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x26f7c7);};a0_0x1ec1['EUsqiG']=_0x415345,a0_0x1ec1['vQvvtb']={},a0_0x1ec1['hJEbdv']=!![];}const _0x506c3e=_0x54a068[0x0],_0x222312=_0x5029e5+_0x506c3e,_0x3138f5=a0_0x1ec1['vQvvtb'][_0x222312];return!_0x3138f5?(_0x1ec127=a0_0x1ec1['EUsqiG'](_0x1ec127),a0_0x1ec1['vQvvtb'][_0x222312]=_0x1ec127):_0x1ec127=_0x3138f5,_0x1ec127;}const a0_0x33e7cf=a0_0x1ec1;(function(_0x344f73,_0x470b45){const _0xe5a336=a0_0x1ec1,_0x4d3418=_0x344f73();while(!![]){try{const _0xbfc2c5=parseInt(_0xe5a336(0x166))/0x1*(-parseInt(_0xe5a336(0x164))/0x2)+-parseInt(_0xe5a336(0x14f))/0x3*(parseInt(_0xe5a336(0x16a))/0x4)+-parseInt(_0xe5a336(0x161))/0x5*(parseInt(_0xe5a336(0x163))/0x6)+parseInt(_0xe5a336(0x152))/0x7*(-parseInt(_0xe5a336(0x157))/0x8)+parseInt(_0xe5a336(0x167))/0x9*(-parseInt(_0xe5a336(0x159))/0xa)+-parseInt(_0xe5a336(0x165))/0xb*(-parseInt(_0xe5a336(0x14e))/0xc)+parseInt(_0xe5a336(0x168))/0xd;if(_0xbfc2c5===_0x470b45)break;else _0x4d3418['push'](_0x4d3418['shift']());}catch(_0x3a4641){_0x4d3418['push'](_0x4d3418['shift']());}}}(a0_0x54a0,0x709ab));import{describe,test,expect}from'@jest/globals';describe(a0_0x33e7cf(0x155),()=>{test('Layout component can be imported',async()=>{const _0x5c04c2=a0_0x1ec1,{Layout:_0x381436}=await import(_0x5c04c2(0x169));expect(_0x381436)['toBeDefined'](),expect(typeof _0x381436)['toBe'](_0x5c04c2(0x15d));}),test('Layout is default export',async()=>{const _0x2b6491=a0_0x1ec1,module=await import('../../components/Layout.js');expect(module['default'])[_0x2b6491(0x160)](),expect(typeof module[_0x2b6491(0x15c)])['toBe'](_0x2b6491(0x15d)),expect(module[_0x2b6491(0x15c)])[_0x2b6491(0x16b)](module[_0x2b6491(0x16d)]);}),test('Header component can be imported',async()=>{const {Header:_0x26f7c7}=await import('../../components/Header.js');expect(_0x26f7c7)['toBeDefined'](),expect(typeof _0x26f7c7)['toBe']('function');}),test('Header is default export',async()=>{const _0x42ed57=a0_0x1ec1,module=await import(_0x42ed57(0x158));expect(module[_0x42ed57(0x15c)])['toBeDefined'](),expect(module['default'])['toBe'](module['Header']);}),test('StatusBar component can be imported',async()=>{const _0x59da85=a0_0x1ec1,{StatusBar:_0x49393a}=await import(_0x59da85(0x156));expect(_0x49393a)[_0x59da85(0x160)](),expect(typeof _0x49393a)['toBe']('function');}),test('StatusBar is default export',async()=>{const _0x1c84e7=a0_0x1ec1,module=await import(_0x1c84e7(0x156));expect(module['default'])[_0x1c84e7(0x160)](),expect(module['default'])[_0x1c84e7(0x16b)](module[_0x1c84e7(0x16c)]);}),test('MessageList component can be imported',async()=>{const _0x59056b=a0_0x1ec1,{MessageList:_0x14de89}=await import(_0x59056b(0x151));expect(_0x14de89)['toBeDefined'](),expect(typeof _0x14de89)['toBe']('function');}),test('MessageList is default export',async()=>{const _0x55c266=a0_0x1ec1,module=await import(_0x55c266(0x151));expect(module[_0x55c266(0x15c)])[_0x55c266(0x160)](),expect(module['default'])[_0x55c266(0x16b)](module[_0x55c266(0x153)]);}),test('InputBox component can be imported',async()=>{const _0xe561ef=a0_0x1ec1,{InputBox:_0x222be4}=await import(_0xe561ef(0x162));expect(_0x222be4)['toBeDefined'](),expect(typeof _0x222be4)[_0xe561ef(0x16b)](_0xe561ef(0x15d));}),test('InputBox is default export',async()=>{const _0x5593d4=a0_0x1ec1,module=await import('../../components/InputBox.js');expect(module['default'])['toBeDefined'](),expect(module[_0x5593d4(0x15c)])['toBe'](module['InputBox']);});}),describe('Component\x20Management\x20-\x20Integration',()=>{test('All components can be imported together',async()=>{const _0x577684=a0_0x1ec1,[_0x6b2963,_0x1735e0,_0xbd73a9,_0x3765a8,_0x87ffba]=await Promise['all']([import(_0x577684(0x169)),import(_0x577684(0x158)),import(_0x577684(0x156)),import('../../components/MessageList.js'),import(_0x577684(0x162))]);expect(_0x6b2963['Layout'])[_0x577684(0x160)](),expect(_0x1735e0[_0x577684(0x15e)])[_0x577684(0x160)](),expect(_0xbd73a9[_0x577684(0x16c)])[_0x577684(0x160)](),expect(_0x3765a8['MessageList'])['toBeDefined'](),expect(_0x87ffba['InputBox'])[_0x577684(0x160)]();}),test('Layout\x20component\x20integrates\x20with\x20all\x20state\x20hooks',async()=>{const _0x28e9f0=a0_0x1ec1,{Layout:_0x45f706}=await import(_0x28e9f0(0x169)),{useConnection:_0x1bc922}=await import('../../state/useConnection.js'),{useAgents:_0x5ea32c}=await import(_0x28e9f0(0x15a)),{useMessages:_0x77f1d9}=await import('../../state/useMessages.js'),{useAgentControl:_0xcce15f}=await import(_0x28e9f0(0x15f)),{useTools:_0x1f810d}=await import('../../state/useTools.js');expect(_0x45f706)[_0x28e9f0(0x160)](),expect(_0x1bc922)[_0x28e9f0(0x160)](),expect(_0x5ea32c)[_0x28e9f0(0x160)](),expect(_0x77f1d9)[_0x28e9f0(0x160)](),expect(_0xcce15f)['toBeDefined'](),expect(_0x1f810d)[_0x28e9f0(0x160)]();});}),describe('Component\x20Management\x20-\x20React/Ink\x20Dependencies',()=>{test('Ink components can be imported',async()=>{const _0x5682d1=a0_0x1ec1,{Box:_0x1095d2,Text:_0xc8deab}=await import(_0x5682d1(0x154));expect(_0x1095d2)[_0x5682d1(0x160)](),expect(_0xc8deab)[_0x5682d1(0x160)]();}),test('React can be imported',async()=>{const _0x3ea1c4=a0_0x1ec1,_0x1cea99=await import(_0x3ea1c4(0x150));expect(_0x1cea99['default'])['toBeDefined'](),expect(_0x1cea99['useState'])[_0x3ea1c4(0x160)](),expect(_0x1cea99[_0x3ea1c4(0x15b)])['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
- function a0_0x19fc(_0x3200ba,_0x244761){_0x3200ba=_0x3200ba-0x135;const _0x24458d=a0_0x2445();let _0x19fc36=_0x24458d[_0x3200ba];if(a0_0x19fc['ATSPzx']===undefined){var _0x330dcf=function(_0x406384){const _0x39fd92='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3ac0dc='',_0x3552b3='';for(let _0x4e74fe=0x0,_0x58cda0,_0x2cc35a,_0x2e93d6=0x0;_0x2cc35a=_0x406384['charAt'](_0x2e93d6++);~_0x2cc35a&&(_0x58cda0=_0x4e74fe%0x4?_0x58cda0*0x40+_0x2cc35a:_0x2cc35a,_0x4e74fe++%0x4)?_0x3ac0dc+=String['fromCharCode'](0xff&_0x58cda0>>(-0x2*_0x4e74fe&0x6)):0x0){_0x2cc35a=_0x39fd92['indexOf'](_0x2cc35a);}for(let _0x2a7d5d=0x0,_0x36c0b7=_0x3ac0dc['length'];_0x2a7d5d<_0x36c0b7;_0x2a7d5d++){_0x3552b3+='%'+('00'+_0x3ac0dc['charCodeAt'](_0x2a7d5d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3552b3);};a0_0x19fc['XLpmxK']=_0x330dcf,a0_0x19fc['bSBWuO']={},a0_0x19fc['ATSPzx']=!![];}const _0x3ea586=_0x24458d[0x0],_0x525709=_0x3200ba+_0x3ea586,_0x29b15b=a0_0x19fc['bSBWuO'][_0x525709];return!_0x29b15b?(_0x19fc36=a0_0x19fc['XLpmxK'](_0x19fc36),a0_0x19fc['bSBWuO'][_0x525709]=_0x19fc36):_0x19fc36=_0x29b15b,_0x19fc36;}function a0_0x2445(){const _0x16edcf=['q09otKvdveve','C3rHDhvZ','nKfMs3rPDW','tufyx0rftefz','y29UBMvJDgvK','mtmYmZiYnZDWtuXSzu8','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','q29UBMvJDgLVBIbPBMzVihnOB3vSzcbJB250ywLUigfSBcbTzxrYAwnZ','BM93','q29UBMvJDgLVBIbZDgf0DxmGDhjHBNnPDgLVBNmGzM9SBg93ihzHBgLKigzSB3C','B2zM','Dg9czu51BgW','nJq5mZmZnKXUzw5QBq','zNvUy3rPB24','qKfds09grL9nvuXusvbmsuvs','Dg9czuDYzwf0zxjuAgfU','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gu2vZC2LVBIbtDgf0zq','q09otKvdveLptL9tvefuvvmGAgfZigfSBcbYzxf1AxjLzcbZDgf0zxm','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','Dxb0Aw1L','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','u2vZC2LVBK1HBMfNzxi','DxnLq29UBMvJDgLVBIbOB29RigLUDgvNCMf0zxmGD2L0AcbtzxnZAw9UtwfUywDLCIbHBMqGv2vIu29JA2v0twfUywDLCG','q09otKvdveLptL9tvefuvvmGAxmGywXPyxmGzM9YienptK5fq1rjt05Fu1rbveu','mtK1ndmZEuzNvfPl','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gq29UBMvJDgLVBIbnzxrYAwnZ','Cg93','q09otKvdveLorW','q09otKvdveLptL9tvefuvvmGy29UC3rHBNrZigfYzsbKzwzPBMvK','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','zgvMyxvSDa','su5jveLbtf9eruXbwq','Dg9czq','uMvJB25Uzwn0Aw9UihnOB3vSzcbZDg9WigfMDgvYig1HEcbHDhrLBxb0CW','y29UBMvJDgLUzW','nNzjq3DwBq','Bg9JywXOB3n0','rxHWB25LBNrPywWGyMfJA29MzIbKzwXHEsbJywXJDwXHDgLVBIb3B3jRCYbJB3jYzwn0BhK','mtbstvzntwG','uKvdt05orunusu5h','DxnLq29UBMvJDgLVBIbYzxr1CM5Zigv4CgvJDgvKigLUDgvYzMfJzsbZAgfWzq','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','ode3mda1u3jIug92','tufyx0fuvevnufrt','C2vZC2LVBKLK','Dg9czurLzMLUzwq','zgLZy29UBMvJDgvK','Dg9dB250ywLU','mZa1mtu3mMrisfHjtW','lI4VlI4VyxbPl3nLC3nPB24UANm','mtCXmdKYnhfqExbytG','uKvdt05orunux0nptKzjrW','DxnLq29UBMvJDgLVBG','reLtq09otKvdveve','DgvZDc1ZzxnZAw9UlteYmW','ywXS','v2vIu29JA2v0twfUywDLCG','mZu5nJuZmeXkCwz1rq'];a0_0x2445=function(){return _0x16edcf;};return a0_0x2445();}const a0_0x50c5fd=a0_0x19fc;(function(_0x4ee91b,_0xbd47f4){const _0x5ea120=a0_0x19fc,_0x35f89c=_0x4ee91b();while(!![]){try{const _0x10e317=-parseInt(_0x5ea120(0x142))/0x1*(parseInt(_0x5ea120(0x167))/0x2)+parseInt(_0x5ea120(0x15d))/0x3+parseInt(_0x5ea120(0x15b))/0x4+-parseInt(_0x5ea120(0x155))/0x5*(parseInt(_0x5ea120(0x14e))/0x6)+parseInt(_0x5ea120(0x164))/0x7+parseInt(_0x5ea120(0x136))/0x8+-parseInt(_0x5ea120(0x16a))/0x9*(parseInt(_0x5ea120(0x151))/0xa);if(_0x10e317===_0xbd47f4)break;else _0x35f89c['push'](_0x35f89c['shift']());}catch(_0x237bab){_0x35f89c['push'](_0x35f89c['shift']());}}}(a0_0x2445,0x6b1b1));import{describe,test,expect}from'@jest/globals';describe(a0_0x50c5fd(0x16b),()=>{test('useConnection hook can be imported',async()=>{const _0x47ce5f=a0_0x19fc,{useConnection:_0x3ac0dc}=await import('../../state/useConnection.js');expect(_0x3ac0dc)['toBeDefined'](),expect(typeof _0x3ac0dc)['toBe'](_0x47ce5f(0x137));}),test('useConnection is default export',async()=>{const _0x298b3b=a0_0x19fc,module=await import(_0x298b3b(0x13c));expect(module[_0x298b3b(0x149)])['toBeDefined'](),expect(typeof module['default'])[_0x298b3b(0x14b)](_0x298b3b(0x137)),expect(module[_0x298b3b(0x149)])[_0x298b3b(0x14b)](module['useConnection']);});}),describe('Connection\x20Management\x20-\x20Constants',()=>{const _0x31bf9e=a0_0x50c5fd;test(_0x31bf9e(0x147),async()=>{const _0x57c45a=_0x31bf9e,{CONNECTION_STATUS:_0x3552b3}=await import(_0x57c45a(0x148));expect(_0x3552b3)[_0x57c45a(0x158)](),expect(_0x3552b3[_0x57c45a(0x146)])[_0x57c45a(0x14b)]('connecting'),expect(_0x3552b3[_0x57c45a(0x165)])['toBe']('connected'),expect(_0x3552b3['DISCONNECTED'])[_0x57c45a(0x14b)]('disconnected'),expect(_0x3552b3[_0x57c45a(0x152)])[_0x57c45a(0x14b)]('reconnecting');}),test(_0x31bf9e(0x141),async()=>{const _0x19fc0a=_0x31bf9e,{CONNECTION_STATUS:_0x4e74fe,CONNECTION_STATE:_0x58cda0}=await import(_0x19fc0a(0x148));expect(_0x4e74fe)[_0x19fc0a(0x14b)](_0x58cda0);}),test('RECONNECT_CONFIG\x20constants\x20are\x20defined',async()=>{const _0x338a34=_0x31bf9e,{RECONNECT_CONFIG:_0x2cc35a}=await import(_0x338a34(0x148));expect(_0x2cc35a)['toBeDefined'](),expect(_0x2cc35a['INITIAL_DELAY'])['toBeDefined'](),expect(_0x2cc35a['MAX_DELAY'])[_0x338a34(0x158)](),expect(_0x2cc35a['BACKOFF_MULTIPLIER'])[_0x338a34(0x158)](),expect(_0x2cc35a[_0x338a34(0x156)])['toBeDefined']();}),test('RECONNECT_CONFIG\x20values\x20are\x20reasonable',async()=>{const _0x2bd67d=_0x31bf9e,{RECONNECT_CONFIG:_0x2e93d6}=await import('../../config/constants.js');expect(_0x2e93d6['INITIAL_DELAY'])['toBeGreaterThan'](0x0),expect(_0x2e93d6['MAX_DELAY'])[_0x2bd67d(0x139)](_0x2e93d6[_0x2bd67d(0x14a)]),expect(_0x2e93d6['BACKOFF_MULTIPLIER'])[_0x2bd67d(0x139)](0x1),expect(_0x2e93d6['MAX_ATTEMPTS'])[_0x2bd67d(0x139)](0x0);});}),describe('Connection\x20Management\x20-\x20Integration',()=>{const _0x29cb6a=a0_0x50c5fd;test(_0x29cb6a(0x140),async()=>{const _0x3965c5=_0x29cb6a,{useConnection:_0x2a7d5d}=await import(_0x3965c5(0x13c)),{SessionManager:_0x36c0b7}=await import('../../api/session.js'),{WebSocketManager:_0x5744fe}=await import('../../api/websocket.js'),_0xc85054=new _0x36c0b7(_0x3965c5(0x14f),0x1f90),_0x5d8056=new _0x5744fe(_0x3965c5(0x14f),0x1f90);expect(_0xc85054)['toBeDefined'](),expect(_0x5d8056)[_0x3965c5(0x158)](),expect(typeof _0x2a7d5d)['toBe'](_0x3965c5(0x137));}),test('Full connection stack can be imported together',async()=>{const _0x1649c5=_0x29cb6a,[_0x535198,_0x29dc34,_0x289cef,_0x2d66f1]=await Promise[_0x1649c5(0x162)]([import(_0x1649c5(0x148)),import(_0x1649c5(0x15c)),import(_0x1649c5(0x13e)),import(_0x1649c5(0x13c))]);expect(_0x535198['CONNECTION_STATUS'])[_0x1649c5(0x158)](),expect(_0x535198[_0x1649c5(0x15e)])['toBeDefined'](),expect(_0x29dc34[_0x1649c5(0x13f)])[_0x1649c5(0x158)](),expect(_0x289cef[_0x1649c5(0x163)])[_0x1649c5(0x158)](),expect(_0x2d66f1[_0x1649c5(0x15f)])[_0x1649c5(0x158)]();});}),describe(a0_0x50c5fd(0x154),()=>{const _0x5da40a=a0_0x50c5fd;test(_0x5da40a(0x153),async()=>{const _0x1689e3=_0x5da40a,{useConnection:_0x26e17c}=await import(_0x1689e3(0x13c));expect(_0x26e17c['length'])[_0x1689e3(0x14b)](0x2);});}),describe('Connection\x20Management\x20-\x20Status\x20Values',()=>{const _0x2eeeb5=a0_0x50c5fd;test('CONNECTION_STATUS\x20values\x20are\x20lowercase\x20strings',async()=>{const _0x24f407=a0_0x19fc,{CONNECTION_STATUS:_0x5b6777}=await import('../../config/constants.js');expect(typeof _0x5b6777['CONNECTING'])[_0x24f407(0x14b)]('string'),expect(typeof _0x5b6777[_0x24f407(0x165)])['toBe']('string'),expect(typeof _0x5b6777['DISCONNECTED'])[_0x24f407(0x14b)]('string'),expect(typeof _0x5b6777[_0x24f407(0x152)])[_0x24f407(0x14b)]('string'),expect(_0x5b6777[_0x24f407(0x146)])[_0x24f407(0x14b)](_0x5b6777[_0x24f407(0x146)]['toLowerCase']()),expect(_0x5b6777[_0x24f407(0x165)])[_0x24f407(0x14b)](_0x5b6777[_0x24f407(0x165)]['toLowerCase']());}),test(_0x2eeeb5(0x13b),async()=>{const _0x4a5499=_0x2eeeb5,{CONNECTION_STATUS:_0x36379d}=await import('../../config/constants.js'),_0x4e07f0=Object['keys'](_0x36379d);expect(_0x4e07f0)['toContain']('CONNECTING'),expect(_0x4e07f0)[_0x4a5499(0x15a)](_0x4a5499(0x165)),expect(_0x4e07f0)['toContain'](_0x4a5499(0x160)),expect(_0x4e07f0)[_0x4a5499(0x15a)]('RECONNECTING');});}),describe('Connection\x20Management\x20-\x20Exponential\x20Backoff\x20Logic',()=>{const _0x459d03=a0_0x50c5fd;test(_0x459d03(0x150),async()=>{const _0x58f94e=_0x459d03,{RECONNECT_CONFIG:_0x3a8f37}=await import('../../config/constants.js'),_0x64e3e9=_0x53985b=>{const _0x36d79d=a0_0x19fc;return Math['min'](_0x3a8f37['INITIAL_DELAY']*Math[_0x36d79d(0x145)](_0x3a8f37['BACKOFF_MULTIPLIER'],_0x53985b),_0x3a8f37['MAX_DELAY']);},_0x1bdb46=_0x64e3e9(0x0),_0x1fa36a=_0x64e3e9(0x1),_0x57f47b=_0x64e3e9(0x2);expect(_0x1bdb46)['toBe'](_0x3a8f37['INITIAL_DELAY']),expect(_0x1fa36a)['toBeGreaterThan'](_0x1bdb46),expect(_0x57f47b)[_0x58f94e(0x139)](_0x1fa36a);}),test('Exponential\x20backoff\x20respects\x20max\x20delay',async()=>{const _0x56fe6a=_0x459d03,{RECONNECT_CONFIG:_0x1459e3}=await import(_0x56fe6a(0x148)),_0x353bab=_0x147d58=>{const _0x32765c=_0x56fe6a;return Math['min'](_0x1459e3['INITIAL_DELAY']*Math[_0x32765c(0x145)](_0x1459e3[_0x32765c(0x138)],_0x147d58),_0x1459e3[_0x32765c(0x168)]);},_0x4574d9=_0x353bab(0x64);expect(_0x4574d9)[_0x56fe6a(0x14b)](_0x1459e3['MAX_DELAY']),expect(_0x4574d9)['toBeLessThanOrEqual'](_0x1459e3[_0x56fe6a(0x168)]);});}),describe(a0_0x50c5fd(0x13a),()=>{test('Session\x20state\x20should\x20track\x20validity',async()=>{const _0x289899=a0_0x19fc;let _0xe8a60d=null,_0x31ad7d=![],_0x41bbf9=null;_0xe8a60d=_0x289899(0x161),_0x31ad7d=!![],_0x41bbf9=Date[_0x289899(0x16d)]()+0x36ee80,expect(_0xe8a60d)['toBeDefined'](),expect(_0x31ad7d)['toBe'](!![]),expect(_0x41bbf9)['toBeGreaterThan'](Date[_0x289899(0x16d)]());}),test('Session\x20state\x20should\x20invalidate',async()=>{const _0x1bef9c=a0_0x19fc;let _0x29b3cd=_0x1bef9c(0x161),_0x1af65a=!![];_0x29b3cd=null,_0x1af65a=![],expect(_0x29b3cd)[_0x1bef9c(0x135)](),expect(_0x1af65a)[_0x1bef9c(0x14b)](![]);});}),describe(a0_0x50c5fd(0x144),()=>{test('Connection\x20uptime\x20can\x20be\x20tracked',async()=>{const _0x18f66f=a0_0x19fc,_0x4f6abd=Date[_0x18f66f(0x16d)]();await new Promise(_0x42dc05=>setTimeout(_0x42dc05,0x64));const _0x1c93bf=Date['now']()-_0x4f6abd;expect(_0x1c93bf)[_0x18f66f(0x139)](0x0),expect(_0x1c93bf)[_0x18f66f(0x143)](0x64);}),test('Connection\x20metrics\x20track\x20timestamps',async()=>{const _0x1e52e6=a0_0x19fc,_0x49c88d=Date[_0x1e52e6(0x16d)]();await new Promise(_0x432df4=>setTimeout(_0x432df4,0x32));const _0x4c0b8f=Date['now']();expect(_0x49c88d)['toBeDefined'](),expect(_0x4c0b8f)[_0x1e52e6(0x158)](),expect(_0x4c0b8f)['toBeGreaterThan'](_0x49c88d);}),test('Reconnection\x20attempts\x20can\x20be\x20tracked',async()=>{const _0x68b7d0=a0_0x19fc;let _0x1c0377=0x0;_0x1c0377+=0x1,expect(_0x1c0377)[_0x68b7d0(0x14b)](0x1),_0x1c0377+=0x1,expect(_0x1c0377)['toBe'](0x2),_0x1c0377=0x0,expect(_0x1c0377)[_0x68b7d0(0x14b)](0x0);});}),describe('Connection\x20Management\x20-\x20Connection\x20Status\x20Transitions',()=>{const _0x27eaad=a0_0x50c5fd;test(_0x27eaad(0x16e),async()=>{const _0x5bd488=_0x27eaad,{CONNECTION_STATUS:_0x141f45}=await import(_0x5bd488(0x148));let _0x58df7e=_0x141f45['DISCONNECTED'];expect(_0x58df7e)['toBe']('disconnected'),_0x58df7e=_0x141f45['CONNECTING'],expect(_0x58df7e)['toBe'](_0x5bd488(0x14d)),_0x58df7e=_0x141f45[_0x5bd488(0x165)],expect(_0x58df7e)['toBe'](_0x5bd488(0x169)),_0x58df7e=_0x141f45[_0x5bd488(0x160)],expect(_0x58df7e)[_0x5bd488(0x14b)](_0x5bd488(0x159)),_0x58df7e=_0x141f45['RECONNECTING'],expect(_0x58df7e)['toBe']('reconnecting'),_0x58df7e=_0x141f45[_0x5bd488(0x165)],expect(_0x58df7e)[_0x5bd488(0x14b)](_0x5bd488(0x169));});}),describe('Connection\x20Management\x20-\x20WebSocket\x20Event\x20Integration',()=>{test('WebSocketManager\x20has\x20event\x20emitter\x20methods',async()=>{const _0x177354=a0_0x19fc,{WebSocketManager:_0x2db277}=await import(_0x177354(0x13e)),_0x272d9a=new _0x2db277('localhost',0x1f90);expect(_0x272d9a['on'])['toBeDefined'](),expect(_0x272d9a[_0x177354(0x16f)])[_0x177354(0x158)](),expect(typeof _0x272d9a['on'])[_0x177354(0x14b)]('function'),expect(typeof _0x272d9a['off'])['toBe']('function');});}),describe('Connection\x20Management\x20-\x20Max\x20Attempts\x20Limit',()=>{const _0x3291f7=a0_0x50c5fd;test(_0x3291f7(0x14c),async()=>{const _0x12a487=_0x3291f7,{RECONNECT_CONFIG:_0x2b1db0}=await import(_0x12a487(0x148));let _0x9fcd83=0x0;for(let _0x2d1011=0x0;_0x2d1011<_0x2b1db0[_0x12a487(0x156)]+0x5;_0x2d1011++){if(_0x9fcd83<_0x2b1db0[_0x12a487(0x156)])_0x9fcd83+=0x1;else break;}expect(_0x9fcd83)['toBe'](_0x2b1db0['MAX_ATTEMPTS']),expect(_0x9fcd83)['toBeLessThanOrEqual'](_0x2b1db0['MAX_ATTEMPTS']);});}),describe('Connection\x20Management\x20-\x20Connection\x20Info',()=>{const _0xc57bba=a0_0x50c5fd;test(_0xc57bba(0x16c),async()=>{const _0x3fca88=_0xc57bba,{CONNECTION_STATUS:_0x395ca9}=await import(_0x3fca88(0x148)),_0x53c5dc={'status':_0x395ca9['CONNECTED'],'isConnected':!![],'isReconnecting':![],'sessionId':'test-session-123','sessionValid':!![],'sessionExpiration':Date['now']()+0x36ee80,'uptime':0x1388,'lastConnectedAt':Date['now']()-0x1388,'lastDisconnectedAt':null,'reconnectAttempts':0x0};expect(_0x53c5dc[_0x3fca88(0x166)])['toBeDefined'](),expect(_0x53c5dc['isConnected'])['toBe'](!![]),expect(_0x53c5dc['isReconnecting'])[_0x3fca88(0x14b)](![]),expect(_0x53c5dc[_0x3fca88(0x157)])[_0x3fca88(0x158)](),expect(_0x53c5dc['sessionValid'])['toBe'](!![]),expect(_0x53c5dc[_0x3fca88(0x13d)])[_0x3fca88(0x139)](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_0x17140b=a0_0x2480;function a0_0x2480(_0x332812,_0x362612){_0x332812=_0x332812-0x10d;const _0x86f5cd=a0_0x86f5();let _0x248001=_0x86f5cd[_0x332812];if(a0_0x2480['GRwRKB']===undefined){var _0x2f850c=function(_0x2579fc){const _0x537576='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1817a5='',_0x33f6ac='';for(let _0x506345=0x0,_0x19e292,_0x1bb02e,_0x2dc578=0x0;_0x1bb02e=_0x2579fc['charAt'](_0x2dc578++);~_0x1bb02e&&(_0x19e292=_0x506345%0x4?_0x19e292*0x40+_0x1bb02e:_0x1bb02e,_0x506345++%0x4)?_0x1817a5+=String['fromCharCode'](0xff&_0x19e292>>(-0x2*_0x506345&0x6)):0x0){_0x1bb02e=_0x537576['indexOf'](_0x1bb02e);}for(let _0x359992=0x0,_0x389d4d=_0x1817a5['length'];_0x359992<_0x389d4d;_0x359992++){_0x33f6ac+='%'+('00'+_0x1817a5['charCodeAt'](_0x359992)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x33f6ac);};a0_0x2480['KOkgLp']=_0x2f850c,a0_0x2480['ujYRaI']={},a0_0x2480['GRwRKB']=!![];}const _0x25fc12=_0x86f5cd[0x0],_0x24763e=_0x332812+_0x25fc12,_0x149bf0=a0_0x2480['ujYRaI'][_0x24763e];return!_0x149bf0?(_0x248001=a0_0x2480['KOkgLp'](_0x248001),a0_0x2480['ujYRaI'][_0x24763e]=_0x248001):_0x248001=_0x149bf0,_0x248001;}(function(_0x698bc4,_0x488794){const _0x14ff25=a0_0x2480,_0x371226=_0x698bc4();while(!![]){try{const _0x46a259=-parseInt(_0x14ff25(0x10f))/0x1+parseInt(_0x14ff25(0x127))/0x2+parseInt(_0x14ff25(0x124))/0x3*(parseInt(_0x14ff25(0x110))/0x4)+parseInt(_0x14ff25(0x10e))/0x5*(parseInt(_0x14ff25(0x123))/0x6)+-parseInt(_0x14ff25(0x115))/0x7+parseInt(_0x14ff25(0x11b))/0x8*(parseInt(_0x14ff25(0x126))/0x9)+-parseInt(_0x14ff25(0x117))/0xa;if(_0x46a259===_0x488794)break;else _0x371226['push'](_0x371226['shift']());}catch(_0x39ede5){_0x371226['push'](_0x371226['shift']());}}}(a0_0x86f5,0x61bfb));import{describe,test,expect}from'@jest/globals';function a0_0x86f5(){const _0x144eb9=['mtu5nZiXmKftB0vyBG','nJG5ntq3C3nXrhHJ','ugHHC2uGosaTievUAgfUy2vKienVBxbVBMvUDhmGlsbjBxbVCNrZ','nZCXnduZDLPHwwrd','nJi1mta4AfvWEffk','rxjYB3jcB3vUzgfYEq','tg9HzgLUz1nWAw5Uzxi','DxnLsw5WDxq','Dg9czurLzMLUzwq','zNvUy3rPB24','rxjYB3jcB3vUzgfYEsbJB21WB25LBNreAwrdyxrJAcbPCYbKzwzPBMvK','ChjVDg90ExbL','lI4VlI4Vy29TCg9Uzw50CY9fCNjVCKjVDw5Kyxj5lMPZ','Dg9czvvUzgvMAw5Lza','mtbdCgLRzue','ntqYnJeWA1fQs05n','nhvXDMTTyW','zgvMyxvSDa','CMvUzgvY','rxjYB3jcB3vUzgfYEsbPCYbHignSyxnZignVBxbVBMvUDa','lI4VlI4Vy29TCg9Uzw50CY9mB2fKAw5Nu3bPBM5LCI5QCW','ndiYndy5nMHLr1nXqG','y29TCg9Uzw50rgLKq2f0y2G','ndi1otiWrKnIz3n3','sw5WDxrcB3GGzgvMAw5LCYbnqvHFseLtve9swsbJB25ZDgfUDa','CMvHy3q','rw5Oyw5JzwqGsw5WDxrcB3GGBwfPBNrHAw5ZigjHy2T3yxjKignVBxbHDgLIAwXPDhK','ndHKwNn0EgK','sw5SAw5Lu3bPBM5LCIbPCYbHigz1BMn0Aw9UignVBxbVBMvUDa','sw5WDxrcB3G','DxnLu3rHDgu','z2v0rgvYAxzLzfn0yxrLrNjVBuvYCM9Y','Dg9czq','sw5SAw5Lu3bPBM5LCG','lI4VlI4Vy29TCg9Uzw50CY9jBNb1DejVEc5QCW'];a0_0x86f5=function(){return _0x144eb9;};return a0_0x86f5();}describe(a0_0x17140b(0x125),()=>{const _0x5a7d78=a0_0x17140b;test('ErrorBoundary component can be imported',async()=>{const _0x1e2587=a0_0x2480,{ErrorBoundary:_0x1817a5}=await import(_0x1e2587(0x12f));expect(_0x1817a5)['toBeDefined'](),expect(typeof _0x1817a5)['toBe']('function');},0x7530),test(_0x5a7d78(0x113),async()=>{const _0x1563bf=_0x5a7d78,{ErrorBoundary:_0x33f6ac}=await import('../../components/ErrorBoundary.js');expect(_0x33f6ac[_0x1563bf(0x12e)])['toBeDefined'](),expect(typeof _0x33f6ac[_0x1563bf(0x12e)][_0x1563bf(0x112)])['toBe'](_0x1563bf(0x12c));}),test('LoadingSpinner component can be imported',async()=>{const _0x58679c=_0x5a7d78,{LoadingSpinner:_0x506345}=await import('../../components/LoadingSpinner.js');expect(_0x506345)[_0x58679c(0x12b)](),expect(typeof _0x506345)['toBe']('function');}),test('InlineSpinner component can be imported',async()=>{const _0x517555=_0x5a7d78,{InlineSpinner:_0x19e292}=await import(_0x517555(0x114));expect(_0x19e292)['toBeDefined'](),expect(typeof _0x19e292)[_0x517555(0x120)](_0x517555(0x12c));}),test('LoadingSpinner is default export',async()=>{const _0x376e7c=_0x5a7d78,module=await import(_0x376e7c(0x114));expect(module['default'])['toBeDefined'](),expect(module['default'])['toBe'](module['LoadingSpinner']);}),test(_0x5a7d78(0x11a),async()=>{const _0x179097=_0x5a7d78,{InputBox:_0x1bb02e}=await import('../../components/InputBox.js');expect(_0x1bb02e)[_0x179097(0x12b)](),expect(typeof _0x1bb02e)['toBe'](_0x179097(0x12c));});}),describe('Phase\x209\x20-\x20ErrorBoundary\x20-\x20Structure',()=>{const _0x20ab80=a0_0x17140b;test('ErrorBoundary\x20is\x20a\x20React\x20Component\x20class',async()=>{const _0x403dc3=a0_0x2480,{ErrorBoundary:_0x2dc578}=await import('../../components/ErrorBoundary.js'),_0x359992=await import(_0x403dc3(0x119));expect(_0x2dc578['prototype'])['toBeDefined'](),expect(typeof _0x2dc578['prototype']['render'])['toBe'](_0x403dc3(0x12c)),expect(typeof _0x2dc578['prototype'][_0x403dc3(0x116)])['toBe'](_0x403dc3(0x12c));}),test('ErrorBoundary\x20has\x20getDerivedStateFromError\x20static\x20method',async()=>{const _0x45717b=a0_0x2480,{ErrorBoundary:_0x389d4d}=await import('../../components/ErrorBoundary.js');expect(typeof _0x389d4d[_0x45717b(0x11f)])[_0x45717b(0x120)](_0x45717b(0x12c));}),test(_0x20ab80(0x12d),async()=>{const _0x31d764=_0x20ab80,{ErrorBoundary:_0x5bc251}=await import('../../components/ErrorBoundary.js');expect(typeof _0x5bc251[_0x31d764(0x12e)][_0x31d764(0x116)])['toBe']('function');});}),describe('Phase\x209\x20-\x20LoadingSpinner\x20-\x20Structure',()=>{const _0x5e56be=a0_0x17140b;test('LoadingSpinner\x20is\x20a\x20function\x20component',async()=>{const _0x176267=a0_0x2480,{LoadingSpinner:_0xffd5b3}=await import(_0x176267(0x114));expect(typeof _0xffd5b3)[_0x176267(0x120)]('function'),expect(_0xffd5b3[_0x176267(0x12e)]?.['render'])['toBeUndefined']();}),test(_0x5e56be(0x11c),async()=>{const _0x1521f0=_0x5e56be,{InlineSpinner:_0x5e326e}=await import('../../components/LoadingSpinner.js');expect(typeof _0x5e326e)['toBe'](_0x1521f0(0x12c)),expect(_0x5e326e[_0x1521f0(0x12e)]?.['render'])[_0x1521f0(0x10d)]();});}),describe('Phase\x209\x20-\x20Enhanced\x20InputBox\x20-\x20History\x20Support',()=>{test('Enhanced InputBox imports useRef for history',async()=>{const _0x57a705=a0_0x2480,_0x4c551e=await import(_0x57a705(0x122)),_0x4a7a6f=await import('react');expect(_0x4a7a6f[_0x57a705(0x11e)])['toBeDefined'](),expect(_0x4a7a6f['useRef'])['toBeDefined']();}),test('InputBox component maintains exports',async()=>{const _0x261980=a0_0x2480,module=await import(_0x261980(0x122));expect(module['InputBox'])['toBeDefined'](),expect(module[_0x261980(0x111)])[_0x261980(0x12b)](),expect(module['default'])[_0x261980(0x120)](module[_0x261980(0x11d)]);});}),describe('Phase\x209\x20-\x20Integration',()=>{test('All enhanced components can be imported together',async()=>{const _0x4a9c33=a0_0x2480,[_0x448182,_0x5b622d,_0x39b6bb]=await Promise['all']([import('../../components/ErrorBoundary.js'),import('../../components/LoadingSpinner.js'),import('../../components/InputBox.js')]);expect(_0x448182[_0x4a9c33(0x128)])[_0x4a9c33(0x12b)](),expect(_0x5b622d[_0x4a9c33(0x129)])[_0x4a9c33(0x12b)](),expect(_0x5b622d[_0x4a9c33(0x121)])[_0x4a9c33(0x12b)](),expect(_0x39b6bb[_0x4a9c33(0x11d)])['toBeDefined']();}),test('Enhanced Layout component imports useInput for keyboard shortcuts',async()=>{const _0x4bb2e8=a0_0x2480,_0x37029e=await import(_0x4bb2e8(0x119)),_0x13aa39=await import('ink');expect(_0x13aa39[_0x4bb2e8(0x12a)])[_0x4bb2e8(0x12b)](),expect(typeof _0x13aa39['useInput'])['toBe']('function');}),test('Layout component can still be imported after enhancements',async()=>{const _0x32f808=a0_0x2480,{Layout:_0x32b2b4}=await import('../../components/Layout.js');expect(_0x32b2b4)['toBeDefined'](),expect(typeof _0x32b2b4)[_0x32f808(0x120)]('function');});}),describe('Phase\x209\x20-\x20Enhanced\x20Features\x20-\x20Constants',()=>{const _0x1dec9f=a0_0x17140b;test(_0x1dec9f(0x118),async()=>{const _0x177fba=_0x1dec9f,module=await import('../../components/InputBox.js');expect(module[_0x177fba(0x11d)])['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
- const a0_0x5b3d06=a0_0x1a38;(function(_0x15ba76,_0x451568){const _0x2aff80=a0_0x1a38,_0x1eba85=_0x15ba76();while(!![]){try{const _0x13745d=-parseInt(_0x2aff80(0x146))/0x1*(parseInt(_0x2aff80(0x150))/0x2)+parseInt(_0x2aff80(0x140))/0x3*(parseInt(_0x2aff80(0x149))/0x4)+-parseInt(_0x2aff80(0x17f))/0x5+-parseInt(_0x2aff80(0x148))/0x6*(parseInt(_0x2aff80(0x177))/0x7)+parseInt(_0x2aff80(0x156))/0x8*(-parseInt(_0x2aff80(0x158))/0x9)+-parseInt(_0x2aff80(0x13c))/0xa+parseInt(_0x2aff80(0x151))/0xb;if(_0x13745d===_0x451568)break;else _0x1eba85['push'](_0x1eba85['shift']());}catch(_0x203153){_0x1eba85['push'](_0x1eba85['shift']());}}}(a0_0x4bf7,0x7a78e));import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';function a0_0x4bf7(){const _0x33bccb=['tKvuv09ssW','AxnwywXPza','Ag9ZDa','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','CgvUzgLUz1jLCxvLC3rZ','v2vIu29JA2v0twfUywDLCIbPBML0AwfSAxPLCYb3AxrOignVCNjLy3qGC3rHDgu','BM90','z2v0uhjVAMvJDerPCG','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','ChjVAMvJDerPCG','C3rHDgu','CxvLDwvKtwvZC2fNzxm','vuLFreLnru5tsu9ouW','l3rLC3qVzgLY','Dg9iyxzLuhjVCgvYDhK','z2v0u3rHDhm','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','mte5D3PHt2fj','yMXVy2TLzc10ExbL','quDftLrFtu9erq','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbTAwrKBgv3yxjL','DgvZDa','Dg9fCxvHBa','revgqvvmvf9qt1ju','BNvTyMvY','ndq0mZmXmeHTqxrAta','nJmZnZq5mgPIDMLtwG','C2vZC2LVBKLK','Bg9JywXOB3n0','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','mtvqAM1evLC','q09otKvdveLptL9tvefurq','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','DMvUzg9Ys2v5CW','reLtq09otKvdveve','DxnL','ndmZC1voEgLc','Bg94AwfbCgLlzxK','mtqXotb1qvPiCMy','odG1mtzKzwnVv2S','veLnsu5h','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','z2v0u2vZC2LVBKLK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbfCNjVCIbiyw5KBgLUzW','AgfZsgfUzgXLCG','mtHPzgnKBfi','mJq4nZqXnZLiwuHvweO','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLigHLBhbLCNmGy3jLyxrLihzHBgLKig1PzgrSzxDHCMu','lI4VlI4VyxbPl3nLC3nPB24UANm','su1br0vFuKvtvuXu','ndG2mdqWtff5v1nf','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','ndvvDhjtsKK','DgvZDc1TzxnZywDL','u0LerujbuL9xsurusa','zNvUy3rPB24','CMvJzwL2zwrbDa','revgqvvmvf9it1nu','BwLKzgXLD2fYzq','AgfZtg94AwflzxK','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','Dg9czurLzMLUzwq','Dg9czq','BwvZC2fNzvf1zxvL','BM90lweTzNvUy3rPB24'];a0_0x4bf7=function(){return _0x33bccb;};return a0_0x4bf7();}import{dirname,join}from'path';function a0_0x1a38(_0x427b57,_0x4e01d2){_0x427b57=_0x427b57-0x13c;const _0x4bf7d8=a0_0x4bf7();let _0x1a389c=_0x4bf7d8[_0x427b57];if(a0_0x1a38['GVvhJa']===undefined){var _0x14708e=function(_0x2d0266){const _0x8e1ddf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4abc9c='',_0xd52901='';for(let _0x5f4eb7=0x0,_0x717056,_0x3de5a1,_0x38869c=0x0;_0x3de5a1=_0x2d0266['charAt'](_0x38869c++);~_0x3de5a1&&(_0x717056=_0x5f4eb7%0x4?_0x717056*0x40+_0x3de5a1:_0x3de5a1,_0x5f4eb7++%0x4)?_0x4abc9c+=String['fromCharCode'](0xff&_0x717056>>(-0x2*_0x5f4eb7&0x6)):0x0){_0x3de5a1=_0x8e1ddf['indexOf'](_0x3de5a1);}for(let _0x5c703f=0x0,_0x550ecb=_0x4abc9c['length'];_0x5c703f<_0x550ecb;_0x5c703f++){_0xd52901+='%'+('00'+_0x4abc9c['charCodeAt'](_0x5c703f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xd52901);};a0_0x1a38['pAkSfB']=_0x14708e,a0_0x1a38['cwchmu']={},a0_0x1a38['GVvhJa']=!![];}const _0x30752d=_0x4bf7d8[0x0],_0x470a9d=_0x427b57+_0x30752d,_0x4d3633=a0_0x1a38['cwchmu'][_0x470a9d];return!_0x4d3633?(_0x1a389c=a0_0x1a38['pAkSfB'](_0x1a389c),a0_0x1a38['cwchmu'][_0x470a9d]=_0x1a389c):_0x1a389c=_0x4d3633,_0x1a389c;}const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x57cb86=a0_0x1a38,_0x4abc9c=await import(_0x57cb86(0x176));expect(_0x4abc9c['UI_DIMENSIONS'])['toBeDefined'](),expect(_0x4abc9c['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x4abc9c['PAGINATION'])['toBeDefined'](),expect(_0x4abc9c[_0x57cb86(0x14a)])['toBeDefined'](),expect(_0x4abc9c['NETWORK'])['toBeDefined'](),expect(_0x4abc9c[_0x57cb86(0x141)])[_0x57cb86(0x161)](),expect(_0x4abc9c[_0x57cb86(0x179)])['toBeDefined'](),expect(_0x4abc9c['WS_MESSAGE_TYPE'])['toBeDefined'](),expect(_0x4abc9c['API_ENDPOINTS'])[_0x57cb86(0x161)](),expect(_0x4abc9c['COMMANDS'])['toBeDefined'](),expect(_0x4abc9c[_0x57cb86(0x165)][_0x57cb86(0x15d)])['toBe'](_0x57cb86(0x13e)),expect(_0x4abc9c['NETWORK'][_0x57cb86(0x17d)])[_0x57cb86(0x162)](0x1f90),expect(_0x4abc9c[_0x57cb86(0x141)][_0x57cb86(0x144)])[_0x57cb86(0x162)]('disconnected'),expect(_0x4abc9c[_0x57cb86(0x141)]['CONNECTED'])[_0x57cb86(0x162)]('connected');}),test('WebSocketManager class can be imported',async()=>{const _0x1cfab6=a0_0x1a38,{WebSocketManager:_0xd52901}=await import(_0x1cfab6(0x14b));expect(_0xd52901)['toBeDefined'](),expect(typeof _0xd52901)['toBe']('function');const _0x5f4eb7=new _0xd52901('localhost',0x1f90);expect(_0x5f4eb7)['toBeDefined'](),expect(_0x5f4eb7['host'])[_0x1cfab6(0x162)](_0x1cfab6(0x13e)),expect(_0x5f4eb7['port'])['toBe'](0x1f90),expect(_0x5f4eb7['url'])[_0x1cfab6(0x162)]('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0x2de0de=a0_0x1a38,{SessionManager:_0x717056}=await import('../../api/session.js');expect(_0x717056)['toBeDefined'](),expect(typeof _0x717056)[_0x2de0de(0x162)](_0x2de0de(0x15b));const _0x3de5a1=new _0x717056('localhost',0x1f90);expect(_0x3de5a1)[_0x2de0de(0x161)](),expect(_0x3de5a1[_0x2de0de(0x167)])['toBe'](_0x2de0de(0x13e)),expect(_0x3de5a1['port'])['toBe'](0x1f90),expect(_0x3de5a1['baseUrl'])['toBe']('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x5f09ee=a0_0x1a38,{MessageRouter:_0x38869c}=await import(_0x5f09ee(0x14d)),{WebSocketManager:_0x5c703f}=await import(_0x5f09ee(0x14b));expect(_0x38869c)[_0x5f09ee(0x161)](),expect(typeof _0x38869c)[_0x5f09ee(0x162)](_0x5f09ee(0x15b));const _0x550ecb=new _0x5c703f('localhost',0x1f90),_0x5472fd=new _0x38869c(_0x550ecb);expect(_0x5472fd)['toBeDefined'](),expect(_0x5472fd['ws'])['toBe'](_0x550ecb);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x2efdf6=a0_0x1a38,{loggingMiddleware:_0x5c53f7,filterMiddleware:_0x4807e5,transformMiddleware:_0x512616,timestampMiddleware:_0x58ebbe,validationMiddleware:_0x5aac71}=await import(_0x2efdf6(0x14d));expect(typeof _0x5c53f7)[_0x2efdf6(0x162)]('function'),expect(typeof _0x4807e5)['toBe']('function'),expect(typeof _0x512616)[_0x2efdf6(0x162)](_0x2efdf6(0x15b)),expect(typeof _0x58ebbe)[_0x2efdf6(0x162)](_0x2efdf6(0x15b)),expect(typeof _0x5aac71)[_0x2efdf6(0x162)](_0x2efdf6(0x15b));}),test('useConnection hook can be imported',async()=>{const _0x1837bc=a0_0x1a38,{useConnection:_0x2dca6b,useConnectionStatus:_0x90b2d}=await import('../../state/useConnection.js');expect(_0x2dca6b)[_0x1837bc(0x161)](),expect(typeof _0x2dca6b)[_0x1837bc(0x162)]('function'),expect(_0x90b2d)['toBeDefined'](),expect(typeof _0x90b2d)['toBe']('function');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x1a013b=a0_0x1a38;test(_0x1a013b(0x16b),async()=>{const _0x1bb25a=_0x1a013b,{WebSocketManager:_0x25b187}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x2af66d}=await import(_0x1bb25a(0x176)),_0x3e2b3b=new _0x25b187('test-host',0x2382);expect(_0x3e2b3b[_0x1bb25a(0x170)])[_0x1bb25a(0x162)](_0x2af66d['DISCONNECTED']),expect(_0x3e2b3b[_0x1bb25a(0x13d)])['toBe'](null),expect(_0x3e2b3b[_0x1bb25a(0x163)])['toEqual']([]),expect(_0x3e2b3b['reconnectAttempts'])[_0x1bb25a(0x162)](0x0),expect(_0x3e2b3b['shouldReconnect'])[_0x1bb25a(0x162)](!![]);}),test('SessionManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x29a53e=_0x1a013b,{SessionManager:_0xfd0bcd}=await import(_0x29a53e(0x154)),_0xe37cef=new _0xfd0bcd('test-host',0x2382);expect(_0xe37cef['sessionId'])['toBe'](null),expect(_0xe37cef[_0x29a53e(0x16f)])[_0x29a53e(0x162)](null),expect(_0xe37cef[_0x29a53e(0x147)])[_0x29a53e(0x162)](null),expect(_0xe37cef[_0x29a53e(0x143)])[_0x29a53e(0x17c)]({}),expect(_0xe37cef['isValid']())[_0x29a53e(0x162)](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x59fa3e=_0x1a013b,{MessageRouter:_0x3c8964}=await import(_0x59fa3e(0x14d)),{WebSocketManager:_0x443f11}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x1b807b}=await import('../../config/constants.js'),_0x55a0e9=new _0x443f11(_0x59fa3e(0x13e),0x1f90),_0x34cc3f=new _0x3c8964(_0x55a0e9);expect(_0x34cc3f['hasHandler'](_0x1b807b['MESSAGE_ADDED']))[_0x59fa3e(0x162)](!![]),expect(_0x34cc3f['hasHandler'](_0x1b807b['AGENT_MODE_CHANGED']))[_0x59fa3e(0x162)](!![]),expect(_0x34cc3f[_0x59fa3e(0x14f)](_0x1b807b['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0x34cc3f[_0x59fa3e(0x14f)](_0x1b807b['COMPACTION_EVENT']))[_0x59fa3e(0x162)](!![]),expect(_0x34cc3f['hasHandler'](_0x1b807b[_0x59fa3e(0x155)]))['toBe'](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x3dde69=_0x1a013b,{MessageRouter:_0x1ad3b4}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x2ef148}=await import(_0x3dde69(0x14b)),_0x2c996a=new _0x2ef148(_0x3dde69(0x13e),0x1f90),_0x2fdc8a=new _0x1ad3b4(_0x2c996a),_0x1118f4=_0x4436cc=>_0x4436cc;expect(_0x2fdc8a['middleware']['length'])[_0x3dde69(0x142)](0x0),_0x2fdc8a[_0x3dde69(0x145)](_0x1118f4);const _0x1a6df4=_0x2fdc8a[_0x3dde69(0x15e)]['length'];expect(_0x1a6df4)['toBeGreaterThan'](0x0),_0x2fdc8a['removeMiddleware'](_0x1118f4),expect(_0x2fdc8a['middleware']['length'])[_0x3dde69(0x162)](_0x1a6df4-0x1);}),test(_0x1a013b(0x160),async()=>{const _0x55ad09=_0x1a013b,{SessionManager:_0x47eb92}=await import(_0x55ad09(0x154)),_0x45ed13=new _0x47eb92(_0x55ad09(0x13e),0x1f90);expect(_0x45ed13[_0x55ad09(0x14c)]())[_0x55ad09(0x162)](null),expect(_0x45ed13[_0x55ad09(0x16d)]())['toBe'](null),expect(_0x45ed13[_0x55ad09(0x166)]())[_0x55ad09(0x162)](![]);const _0x26a564=_0x45ed13['getSessionInfo']();expect(_0x26a564)[_0x55ad09(0x174)]('sessionId'),expect(_0x26a564)[_0x55ad09(0x174)]('projectDir'),expect(_0x26a564)[_0x55ad09(0x174)](_0x55ad09(0x15f)),expect(_0x26a564)['toHaveProperty']('vendorKeysCount');}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x531b9e=_0x1a013b,{WebSocketManager:_0x414c38}=await import(_0x531b9e(0x14b)),{CONNECTION_STATE:_0x5c260c}=await import('../../config/constants.js'),_0xf163e3=new _0x414c38(_0x531b9e(0x13e),0x1f90);expect(_0xf163e3['getState']())[_0x531b9e(0x162)](_0x5c260c[_0x531b9e(0x144)]),expect(_0xf163e3['isConnected']())['toBe'](![]),expect(_0xf163e3['getSessionId']())['toBe'](null);const _0x41ba94=_0xf163e3[_0x531b9e(0x175)]();expect(_0x41ba94)['toHaveProperty'](_0x531b9e(0x170)),expect(_0x41ba94)[_0x531b9e(0x174)](_0x531b9e(0x13d)),expect(_0x41ba94)['toHaveProperty']('reconnectAttempts'),expect(_0x41ba94)['toHaveProperty'](_0x531b9e(0x171)),expect(_0x41ba94)[_0x531b9e(0x174)](_0x531b9e(0x16a));}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0xd3cf6e=_0x1a013b,{MessageRouter:_0xa2e71f}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x3e0fbe}=await import(_0xd3cf6e(0x14b)),_0x2a5e31=new _0x3e0fbe('localhost',0x1f90),_0x3475d3=new _0xa2e71f(_0x2a5e31),_0x496cea=()=>{};expect(_0x3475d3[_0xd3cf6e(0x14f)]('test-message'))['toBe'](![]),_0x3475d3['registerHandler'](_0xd3cf6e(0x159),_0x496cea),expect(_0x3475d3[_0xd3cf6e(0x14f)](_0xd3cf6e(0x159)))['toBe'](!![]),_0x3475d3['unregisterHandler'](_0xd3cf6e(0x159)),expect(_0x3475d3[_0xd3cf6e(0x14f)](_0xd3cf6e(0x159)))[_0xd3cf6e(0x162)](![]);}),test(_0x1a013b(0x153),async()=>{const _0x28ab82=_0x1a013b,{loggingMiddleware:_0x47907a,timestampMiddleware:_0x46e24e,filterMiddleware:_0x79b11b}=await import(_0x28ab82(0x14d)),_0x511c48=_0x47907a();expect(typeof _0x511c48)[_0x28ab82(0x162)](_0x28ab82(0x15b));const _0x797689=_0x46e24e();expect(typeof _0x797689)['toBe'](_0x28ab82(0x15b));const _0x326865={'type':_0x28ab82(0x17b)},_0x46e577=_0x797689(_0x326865);expect(_0x46e577)['toHaveProperty'](_0x28ab82(0x15c)),expect(_0x46e577['type'])['toBe']('test');const _0x29a7fb=_0x79b11b(['allowed-type']);expect(typeof _0x29a7fb)['toBe'](_0x28ab82(0x15b)),expect(_0x29a7fb({'type':'allowed-type'}))['toBeTruthy'](),expect(_0x29a7fb({'type':_0x28ab82(0x178)}))['toBe'](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x37b452=_0x1a013b,_0x364916=await import(_0x37b452(0x176));expect(typeof _0x364916[_0x37b452(0x14a)][_0x37b452(0x169)])['toBe']('number'),expect(typeof _0x364916[_0x37b452(0x14a)]['WEBSOCKET_PING_INTERVAL'])['toBe']('number'),expect(typeof _0x364916[_0x37b452(0x165)]['DEFAULT_PORT'])[_0x37b452(0x162)](_0x37b452(0x17e)),expect(typeof _0x364916['NETWORK']['MAX_RETRIES'])['toBe'](_0x37b452(0x17e)),expect(typeof _0x364916['NETWORK']['HTTP_TIMEOUT'])[_0x37b452(0x162)]('number'),expect(typeof _0x364916[_0x37b452(0x172)]['MESSAGE_LIST_HEIGHT'])[_0x37b452(0x162)](_0x37b452(0x17e)),expect(typeof _0x364916[_0x37b452(0x172)][_0x37b452(0x15a)])['toBe']('number');});}),describe(a0_0x5b3d06(0x14e),()=>{const _0x2413bc=a0_0x5b3d06;test(_0x2413bc(0x16e),async()=>{const _0xa79b8d=_0x2413bc,{MessageRouter:_0x3d3c1d}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x482fd7}=await import(_0xa79b8d(0x14b)),_0x599265=new _0x482fd7(_0xa79b8d(0x13e),0x1f90),_0x50c699=new _0x3d3c1d(_0x599265);expect(()=>{const _0x372a38=_0xa79b8d;_0x50c699['registerHandler'](_0x372a38(0x17b),'not-a-function');})['toThrow'](_0xa79b8d(0x157));}),test(_0x2413bc(0x17a),async()=>{const _0x2108ec=_0x2413bc,{MessageRouter:_0x32a9c3}=await import(_0x2108ec(0x14d)),{WebSocketManager:_0x1f34ce}=await import(_0x2108ec(0x14b)),_0x1cbf0c=new _0x1f34ce(_0x2108ec(0x13e),0x1f90),_0x34b063=new _0x32a9c3(_0x1cbf0c);expect(()=>{const _0x4e9738=_0x2108ec;_0x34b063[_0x4e9738(0x145)](_0x4e9738(0x164));})['toThrow'](_0x2108ec(0x152));}),test(_0x2413bc(0x168),async()=>{const _0x542b19=_0x2413bc,{SessionManager:_0x32651d}=await import('../../api/session.js'),_0x8e0134=new _0x32651d(_0x542b19(0x13e),0x1f90);_0x8e0134[_0x542b19(0x13d)]='test-123',_0x8e0134['projectDir']=_0x542b19(0x173),_0x8e0134[_0x542b19(0x147)]='test-key',_0x8e0134[_0x542b19(0x143)]={'openai':'key'},expect(_0x8e0134[_0x542b19(0x166)]())['toBe'](!![]),_0x8e0134['clear'](),expect(_0x8e0134[_0x542b19(0x13d)])[_0x542b19(0x162)](null),expect(_0x8e0134['projectDir'])[_0x542b19(0x162)](null),expect(_0x8e0134['loxiaApiKey'])['toBe'](null),expect(_0x8e0134[_0x542b19(0x143)])['toEqual']({}),expect(_0x8e0134[_0x542b19(0x166)]())[_0x542b19(0x162)](![]);}),test(_0x2413bc(0x13f),async()=>{const _0x2e7dd6=_0x2413bc,{WebSocketManager:_0x292c4d}=await import('../../api/websocket.js'),_0x5325c4=new _0x292c4d(_0x2e7dd6(0x13e),0x1f90),_0x50a6f9=_0x5325c4['generateRequestId'](),_0x8d6802=_0x5325c4['generateRequestId'](),_0x391fcc=_0x5325c4['generateRequestId']();expect(_0x50a6f9)['not'][_0x2e7dd6(0x162)](_0x8d6802),expect(_0x8d6802)[_0x2e7dd6(0x16c)]['toBe'](_0x391fcc),expect(_0x50a6f9)['not']['toBe'](_0x391fcc),expect(_0x50a6f9)['toMatch'](/^req-\d+-\d+$/),expect(_0x8d6802)['toMatch'](/^req-\d+-\d+$/),expect(_0x391fcc)['toMatch'](/^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
- function a0_0x5f4e(){const _0x48bf61=['Dg9czq','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','AgfZsgfUzgXLCG','vvnfuG','zgvMyxvSDa','BNvTyMvY','u1Ltvevn','mtDywer5u2u','Dg9czuXLC3nuAgfUt3jfCxvHBa','zNvUy3rPB24','mte4nZC0EMTNsuD0','tufyx01fu1nbr0vFtevor1ri','tufyx01fu1nbr0vtx0rju1bmqvK','ywDLBNqTCMvZCg9UC2u','mZu4mdC0nKv1yKXmza','zxHLy3v0Aw9Ux3n0B3bWzwq','twvZC2fNzsbnyw5Hz2vTzw50ic0GqvbjievUzhbVAw50CYbwywXPzgf0Aw9U','twvZC2fNzvjVDxrLCIbOyxmGBwvZC2fNzsbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','tuvtu0fhrv9st0XfignVBNn0yw50CYbHCMuGzgvMAw5Lza','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','Dg9czuDYzwf0zxjuAgfU','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','nZmXnJu3me93swfIvW','mZy4nZqXohPzrNvXCG','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','BwvZC2fNzv9HzgrLza','tuvtu0fhrv9brerfra','mJrmyxboCwm','lI4VlI4VyxbPl3nLC3nPB24UANm','u1Ltvevnx05pveLgsunbveLptG','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','rvHfq1vusu9ox1nut1bqruq','mZyWCKz0yM95','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','qvntsvnuqu5u','t1jdsevtvfjbve9s','Dg9nyxrJAa','tufyx1bbr0vFu0LArq','mZe0nJbzqwTbz3a','DxnLtwvZC2fNzxmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','mZqYmJa2nJb5z1LYqwq','Bg9JywXOB3n0','ywXS','uefhrv9tsvPf','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','Dg9czurLzMLUzwq','nZK2ntG1nu1VyunVtG','BwLU','quDftLrFtu9erv9dsefor0ve','BgvUz3rO','Dg9mB3DLCKnHC2u','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','twvZC2fNzsbbueKGzw5KCg9PBNrZigzVBgXVDYbsrvnuzNvSihbHDhrLCM4','CMvWzwf0','DxnLtwvZC2fNzxm'];a0_0x5f4e=function(){return _0x48bf61;};return a0_0x5f4e();}const a0_0x346684=a0_0x3c01;(function(_0x2db131,_0x4f9680){const _0xf2fe3c=a0_0x3c01,_0x106a17=_0x2db131();while(!![]){try{const _0x25dd82=-parseInt(_0xf2fe3c(0xeb))/0x1*(-parseInt(_0xf2fe3c(0xee))/0x2)+parseInt(_0xf2fe3c(0x106))/0x3*(parseInt(_0xf2fe3c(0x10c))/0x4)+-parseInt(_0xf2fe3c(0xfc))/0x5+-parseInt(_0xf2fe3c(0xf2))/0x6+-parseInt(_0xf2fe3c(0xfd))/0x7*(parseInt(_0xf2fe3c(0x101))/0x8)+-parseInt(_0xf2fe3c(0xdb))/0x9+parseInt(_0xf2fe3c(0x10e))/0xa;if(_0x25dd82===_0x4f9680)break;else _0x106a17['push'](_0x106a17['shift']());}catch(_0x40b88f){_0x106a17['push'](_0x106a17['shift']());}}}(a0_0x5f4e,0xcf803));function a0_0x3c01(_0x496ab0,_0x386eaf){_0x496ab0=_0x496ab0-0xd8;const _0x5f4e97=a0_0x5f4e();let _0x3c01aa=_0x5f4e97[_0x496ab0];if(a0_0x3c01['NGmuBt']===undefined){var _0x53b113=function(_0x105f6c){const _0x59795f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x299422='',_0x4b6e9e='';for(let _0x11b8a9=0x0,_0xb84c00,_0x2cad55,_0x13ad4a=0x0;_0x2cad55=_0x105f6c['charAt'](_0x13ad4a++);~_0x2cad55&&(_0xb84c00=_0x11b8a9%0x4?_0xb84c00*0x40+_0x2cad55:_0x2cad55,_0x11b8a9++%0x4)?_0x299422+=String['fromCharCode'](0xff&_0xb84c00>>(-0x2*_0x11b8a9&0x6)):0x0){_0x2cad55=_0x59795f['indexOf'](_0x2cad55);}for(let _0x1be59e=0x0,_0x4feda7=_0x299422['length'];_0x1be59e<_0x4feda7;_0x1be59e++){_0x4b6e9e+='%'+('00'+_0x299422['charCodeAt'](_0x1be59e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4b6e9e);};a0_0x3c01['qvFDNR']=_0x53b113,a0_0x3c01['ukFacd']={},a0_0x3c01['NGmuBt']=!![];}const _0x216fa3=_0x5f4e97[0x0],_0x4dd997=_0x496ab0+_0x216fa3,_0x14512b=a0_0x3c01['ukFacd'][_0x4dd997];return!_0x14512b?(_0x3c01aa=a0_0x3c01['qvFDNR'](_0x3c01aa),a0_0x3c01['ukFacd'][_0x4dd997]=_0x3c01aa):_0x3c01aa=_0x14512b,_0x3c01aa;}import{describe,test,expect}from'@jest/globals';describe('Message\x20Management\x20-\x20Imports',()=>{test('useMessages hook can be imported',async()=>{const _0x96d46e=a0_0x3c01,{useMessages:_0x299422}=await import(_0x96d46e(0xd9));expect(_0x299422)['toBeDefined'](),expect(typeof _0x299422)[_0x96d46e(0xe4)](_0x96d46e(0xed));}),test('useMessages is default export',async()=>{const _0x450fd3=a0_0x3c01,module=await import('../../state/useMessages.js');expect(module['default'])['toBeDefined'](),expect(typeof module[_0x450fd3(0xe8)])[_0x450fd3(0xe4)]('function'),expect(module['default'])['toBe'](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x2b0765=a0_0x3c01,{useMessageCount:_0x4b6e9e}=await import(_0x2b0765(0xd9));expect(_0x4b6e9e)['toBeDefined'](),expect(typeof _0x4b6e9e)[_0x2b0765(0xe4)](_0x2b0765(0xed));});}),describe(a0_0x346684(0xf8),()=>{const _0x6172fa=a0_0x346684;test(_0x6172fa(0xf6),async()=>{const _0x42a302=_0x6172fa,{MESSAGE_ROLE:_0x11b8a9}=await import(_0x42a302(0x104));expect(_0x11b8a9)['toBeDefined'](),expect(_0x11b8a9[_0x42a302(0xe7)])['toBe']('user'),expect(_0x11b8a9['ASSISTANT'])[_0x42a302(0xe4)]('assistant'),expect(_0x11b8a9['SYSTEM'])[_0x42a302(0xe4)]('system');}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x1058ad=_0x6172fa,{MESSAGE_TYPE:_0xb84c00}=await import(_0x1058ad(0x104));expect(_0xb84c00)['toBeDefined'](),expect(_0xb84c00['USER_MESSAGE'])[_0x1058ad(0xe4)]('user-message'),expect(_0xb84c00['AGENT_RESPONSE'])[_0x1058ad(0xe4)](_0x1058ad(0xf1)),expect(_0xb84c00[_0x1058ad(0x103)])['toBe']('system-notification');}),test(_0x6172fa(0xe5),async()=>{const _0x2524f5=_0x6172fa,{MESSAGE_CONFIG:_0x2cad55}=await import('../../config/constants.js');expect(_0x2cad55)[_0x2524f5(0xda)](),expect(_0x2cad55['MAX_MESSAGE_LENGTH'])[_0x2524f5(0xda)](),expect(_0x2cad55['MAX_MESSAGES_DISPLAY'])['toBeDefined'](),expect(typeof _0x2cad55['MAX_MESSAGE_LENGTH'])[_0x2524f5(0xe4)](_0x2524f5(0xe9)),expect(typeof _0x2cad55['MAX_MESSAGES_DISPLAY'])[_0x2524f5(0xe4)](_0x2524f5(0xe9));}),test(_0x6172fa(0x112),async()=>{const _0x1461f6=_0x6172fa,{PAGINATION:_0x13ad4a}=await import('../../config/constants.js');expect(_0x13ad4a)[_0x1461f6(0xda)](),expect(_0x13ad4a['PAGE_SIZE'])[_0x1461f6(0xda)](),expect(_0x13ad4a[_0x1461f6(0x10b)])['toBeDefined'](),expect(typeof _0x13ad4a[_0x1461f6(0x111)])['toBe'](_0x1461f6(0xe9)),expect(typeof _0x13ad4a['MAX_PAGE_SIZE'])[_0x1461f6(0xe4)]('number');}),test(_0x6172fa(0xf9),async()=>{const _0xa4448f=_0x6172fa,{WS_MESSAGE_TYPE:_0x1be59e}=await import(_0xa4448f(0x104));expect(_0x1be59e)['toBeDefined'](),expect(_0x1be59e[_0xa4448f(0x100)])[_0xa4448f(0xe4)](_0xa4448f(0xff)),expect(_0x1be59e[_0xa4448f(0xdd)])['toBe']('agent_mode_changed'),expect(_0x1be59e[_0xa4448f(0x105)])[_0xa4448f(0xe4)](_0xa4448f(0xf3));});}),describe(a0_0x346684(0xfe),()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x4666e0=a0_0x3c01,{useMessages:_0x4feda7}=await import(_0x4666e0(0xd9)),{SessionManager:_0x3e98d1}=await import(_0x4666e0(0x102)),{MessageRouter:_0x1a72eb}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1c6c96}=await import('../../api/websocket.js'),_0x2b73f6=new _0x3e98d1('localhost',0x1f90),_0x17b229=new _0x1c6c96('localhost',0x1f90),_0x307c66=new _0x1a72eb(_0x17b229);expect(_0x2b73f6)[_0x4666e0(0xda)](),expect(_0x307c66)[_0x4666e0(0xda)](),expect(typeof _0x4feda7)[_0x4666e0(0xe4)]('function');}),test('Full message management stack can be imported together',async()=>{const _0x464e80=a0_0x3c01,[_0x3d4b60,_0x4b591f,_0x3360df,_0x3a78b5,_0x544170]=await Promise[_0x464e80(0x110)]([import('../../config/constants.js'),import('../../api/session.js'),import(_0x464e80(0xfb)),import('../../api/messageRouter.js'),import(_0x464e80(0xd9))]);expect(_0x3d4b60['MESSAGE_ROLE'])['toBeDefined'](),expect(_0x3d4b60['MESSAGE_TYPE'])[_0x464e80(0xda)](),expect(_0x3d4b60['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x4b591f['SessionManager'])['toBeDefined'](),expect(_0x3360df['WebSocketManager'])[_0x464e80(0xda)](),expect(_0x3a78b5['MessageRouter'])['toBeDefined'](),expect(_0x544170[_0x464e80(0xe3)])['toBeDefined']();});}),describe(a0_0x346684(0xf4),()=>{const _0x45df26=a0_0x346684;test('Orchestrator\x20endpoint\x20can\x20be\x20used\x20for\x20message\x20operations',async()=>{const _0xeaaf6e=a0_0x3c01,{API_ENDPOINTS:_0x51affc}=await import(_0xeaaf6e(0x104));expect(_0x51affc['ORCHESTRATOR'])['toBeDefined'](),expect(_0x51affc[_0xeaaf6e(0x109)])[_0xeaaf6e(0xe4)]('/api/orchestrator');}),test(_0x45df26(0xe1),async()=>{const _0x31009b=_0x45df26,{API_ENDPOINTS:_0x1cb9d7}=await import('../../config/constants.js');expect(_0x1cb9d7[_0x31009b(0x109)])[_0x31009b(0x10a)](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x4c898e=a0_0x346684;test(_0x4c898e(0x10d),async()=>{const _0x10c1ad=_0x4c898e,{useMessages:_0x2622e9}=await import(_0x10c1ad(0xd9));expect(_0x2622e9[_0x10c1ad(0xde)])['toBe'](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const {useMessageCount:_0x3b17f3}=await import('../../state/useMessages.js');expect(_0x3b17f3['length'])['toBe'](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x489b02=a0_0x3c01,{MESSAGE_CONFIG:_0x276365}=await import('../../config/constants.js');expect(_0x276365[_0x489b02(0xef)])[_0x489b02(0xfa)](0x0),expect(_0x276365['MAX_MESSAGE_LENGTH'])['toBeLessThanOrEqual'](0x186a0),expect(_0x276365[_0x489b02(0xf0)])['toBeGreaterThan'](0x0),expect(_0x276365[_0x489b02(0xf0)])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x23cb0b=a0_0x3c01,{PAGINATION:_0x1c83c2}=await import(_0x23cb0b(0x104));expect(_0x1c83c2[_0x23cb0b(0x111)])['toBeGreaterThan'](0x0),expect(_0x1c83c2['PAGE_SIZE'])['toBeLessThanOrEqual'](0x3e8),expect(_0x1c83c2[_0x23cb0b(0x10b)])[_0x23cb0b(0xf7)](_0x1c83c2[_0x23cb0b(0x111)]);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x3a097a=a0_0x3c01,{MESSAGE_ROLE:_0x1437c7}=await import(_0x3a097a(0x104));expect(_0x1437c7[_0x3a097a(0xe7)])[_0x3a097a(0xe4)](_0x1437c7[_0x3a097a(0xe7)][_0x3a097a(0xdf)]()),expect(_0x1437c7['ASSISTANT'])['toBe'](_0x1437c7[_0x3a097a(0x108)]['toLowerCase']()),expect(_0x1437c7[_0x3a097a(0xea)])[_0x3a097a(0xe4)](_0x1437c7[_0x3a097a(0xea)][_0x3a097a(0xdf)]());});}),describe(a0_0x346684(0xe0),()=>{const _0x2692a7=a0_0x346684;test(_0x2692a7(0xf5),async()=>{const _0x2809ae=_0x2692a7,{MessageRouter:_0xe36a40}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x39dc57}=await import(_0x2809ae(0xfb)),{WS_MESSAGE_TYPE:_0x556585}=await import(_0x2809ae(0x104)),_0x2db172=new _0x39dc57(_0x2809ae(0x10f),0x1f90),_0x3f95d4=new _0xe36a40(_0x2db172);expect(_0x3f95d4[_0x2809ae(0xe6)](_0x556585['MESSAGE_ADDED']))[_0x2809ae(0xe4)](!![]),expect(_0x3f95d4[_0x2809ae(0xe6)](_0x556585[_0x2809ae(0xdd)]))['toBe'](!![]);});}),describe('Message\x20Management\x20-\x20Error\x20Handling',()=>{const _0xb57250=a0_0x346684;test(_0xb57250(0xd8),async()=>{const _0x3e659d=_0xb57250,{MESSAGE_CONFIG:_0x3c8db8}=await import('../../config/constants.js');expect(_0x3c8db8[_0x3e659d(0xef)])['toBeDefined'](),expect(typeof _0x3c8db8['MAX_MESSAGE_LENGTH'])['toBe']('number');const _0x45fe21='a'[_0x3e659d(0xe2)](_0x3c8db8[_0x3e659d(0xef)]+0x1);expect(_0x45fe21['length'])['toBeGreaterThan'](_0x3c8db8[_0x3e659d(0xef)]);}),test('MESSAGE_CONFIG\x20enforces\x20maximum\x20display\x20messages',async()=>{const _0x87a7d8=_0xb57250,{MESSAGE_CONFIG:_0x3bfd0d}=await import(_0x87a7d8(0x104));expect(_0x3bfd0d['MAX_MESSAGES_DISPLAY'])[_0x87a7d8(0xda)](),expect(typeof _0x3bfd0d[_0x87a7d8(0xf0)])[_0x87a7d8(0xe4)]('number'),expect(_0x3bfd0d['MAX_MESSAGES_DISPLAY'])['toBeGreaterThan'](0x0);});}),describe(a0_0x346684(0x107),()=>{test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x1c7d82=a0_0x3c01,{PAGINATION:_0x54f164}=await import(_0x1c7d82(0x104)),_0x51ac6f=0x0,_0x5d6d1b=_0x51ac6f*_0x54f164['PAGE_SIZE'];expect(_0x5d6d1b)['toBe'](0x0);const _0x178b8a=0x1,_0xc89684=_0x178b8a*_0x54f164['PAGE_SIZE'];expect(_0xc89684)['toBe'](_0x54f164[_0x1c7d82(0x111)]);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0x305571=a0_0x3c01,{PAGINATION:_0x2b364d}=await import(_0x305571(0x104)),_0x1ab011=0x3e8,_0x49f77e=Math[_0x305571(0xdc)](_0x1ab011,_0x2b364d['MAX_PAGE_SIZE']);expect(_0x49f77e)[_0x305571(0xec)](_0x2b364d['MAX_PAGE_SIZE']);});});
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)]);});});