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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +2 -2
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/aiService.js +1 -1
  76. package/src/services/apiKeyManager.js +1 -1
  77. package/src/services/benchmarkService.js +1 -1
  78. package/src/services/budgetService.js +1 -1
  79. package/src/services/contextInjectionService.js +1 -1
  80. package/src/services/conversationCompactionService.js +1 -1
  81. package/src/services/errorHandler.js +1 -1
  82. package/src/services/fileAttachmentService.js +1 -1
  83. package/src/services/modelRouterService.js +1 -1
  84. package/src/services/modelsService.js +1 -1
  85. package/src/services/qualityInspector.js +1 -1
  86. package/src/services/tokenCountingService.js +1 -1
  87. package/src/tools/agentCommunicationTool.js +1 -1
  88. package/src/tools/agentDelayTool.js +1 -1
  89. package/src/tools/asyncToolManager.js +1 -1
  90. package/src/tools/baseTool.js +1 -1
  91. package/src/tools/browserTool.js +1 -1
  92. package/src/tools/cloneDetectionTool.js +1 -1
  93. package/src/tools/dependencyResolverTool.js +1 -1
  94. package/src/tools/fileContentReplaceTool.js +1 -1
  95. package/src/tools/fileSystemTool.js +1 -1
  96. package/src/tools/fileTreeTool.js +1 -1
  97. package/src/tools/imageTool.js +1 -1
  98. package/src/tools/importAnalyzerTool.js +1 -1
  99. package/src/tools/jobDoneTool.js +1 -1
  100. package/src/tools/seekTool.js +1 -1
  101. package/src/tools/staticAnalysisTool.js +1 -1
  102. package/src/tools/taskManagerTool.js +1 -1
  103. package/src/tools/terminalTool.js +1 -1
  104. package/src/tools/webTool.js +1 -1
  105. package/src/types/agent.js +1 -1
  106. package/src/types/contextReference.js +1 -1
  107. package/src/types/conversation.js +1 -1
  108. package/src/types/toolCommand.js +1 -1
  109. package/src/utilities/attachmentValidator.js +1 -1
  110. package/src/utilities/configManager.js +1 -1
  111. package/src/utilities/constants.js +1 -1
  112. package/src/utilities/directoryAccessManager.js +1 -1
  113. package/src/utilities/fileProcessor.js +1 -1
  114. package/src/utilities/logger.js +1 -1
  115. package/src/utilities/tagParser.js +1 -1
  116. package/src/utilities/toolConstants.js +1 -1
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/{index-BVF_10a5.css → index-BmKxmRe3.css} +1 -1
  119. package/web-ui/build/static/{index-DE5VFS1q.js → index-BzXbDs8z.js} +63 -63
@@ -1 +1 @@
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
+ const a0_0x1ce478=a0_0x4752;(function(_0x36d6c4,_0x4d8859){const _0x31196=a0_0x4752,_0x58d4fa=_0x36d6c4();while(!![]){try{const _0x1fe104=parseInt(_0x31196(0x1a1))/0x1+-parseInt(_0x31196(0x189))/0x2*(-parseInt(_0x31196(0x1a4))/0x3)+-parseInt(_0x31196(0x198))/0x4*(-parseInt(_0x31196(0x1af))/0x5)+parseInt(_0x31196(0x1a7))/0x6*(parseInt(_0x31196(0x19e))/0x7)+parseInt(_0x31196(0x1ad))/0x8*(parseInt(_0x31196(0x19d))/0x9)+-parseInt(_0x31196(0x196))/0xa+-parseInt(_0x31196(0x192))/0xb;if(_0x1fe104===_0x4d8859)break;else _0x58d4fa['push'](_0x58d4fa['shift']());}catch(_0x55550a){_0x58d4fa['push'](_0x58d4fa['shift']());}}}(a0_0x3d7a,0x87797));import{describe,test,expect}from'@jest/globals';function a0_0x4752(_0x15f0f4,_0x5b251f){_0x15f0f4=_0x15f0f4-0x187;const _0x3d7adf=a0_0x3d7a();let _0x4752c6=_0x3d7adf[_0x15f0f4];if(a0_0x4752['jVNBBb']===undefined){var _0x383bf6=function(_0x5450d0){const _0x765fc4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x521f2b='',_0x117be1='';for(let _0x5fca3c=0x0,_0x584c42,_0x3158c9,_0x312d4b=0x0;_0x3158c9=_0x5450d0['charAt'](_0x312d4b++);~_0x3158c9&&(_0x584c42=_0x5fca3c%0x4?_0x584c42*0x40+_0x3158c9:_0x3158c9,_0x5fca3c++%0x4)?_0x521f2b+=String['fromCharCode'](0xff&_0x584c42>>(-0x2*_0x5fca3c&0x6)):0x0){_0x3158c9=_0x765fc4['indexOf'](_0x3158c9);}for(let _0x55b410=0x0,_0x3dbe63=_0x521f2b['length'];_0x55b410<_0x3dbe63;_0x55b410++){_0x117be1+='%'+('00'+_0x521f2b['charCodeAt'](_0x55b410)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x117be1);};a0_0x4752['YxOppr']=_0x383bf6,a0_0x4752['sKbcQg']={},a0_0x4752['jVNBBb']=!![];}const _0x181551=_0x3d7adf[0x0],_0xc90bf7=_0x15f0f4+_0x181551,_0x5cd5b5=a0_0x4752['sKbcQg'][_0xc90bf7];return!_0x5cd5b5?(_0x4752c6=a0_0x4752['YxOppr'](_0x4752c6),a0_0x4752['sKbcQg'][_0xc90bf7]=_0x4752c6):_0x4752c6=_0x5cd5b5,_0x4752c6;}function a0_0x3d7a(){const _0x1072f3=['sgvSCfbHBMvSigrLzMLUzxmGC2HVCNrJDxqGy29UzMLNDxjHDgLVBNm','DxnLsw5WDxq','mta1ofLAwxbXzq','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','Dg9czurLzMLUzwq','y3jLyxrLrwXLBwvUDa','qwDLBNrdCMvHDg9Y','qwDLBNrtD2L0y2HLCIbPCYbHigz1BMn0Aw9UignVBxbVBMvUDa','lI4VlI4Vy29TCg9Uzw50CY9tzxr0Aw5NC1bHBMvSlMPZ','qwDLBNrdCMvHDg9YigrLzMLUzxmGC3rLCcbJB25ZDgfUDhm','qwDLBNrdCMvHDg9YigLZigeGzNvUy3rPB24Gy29TCg9Uzw50','mJy0mJG0ntDluwj6twS','lI4VlI4Vy29TCg9Uzw50CY9bz2vUDenYzwf0B3iUANm','u2vHCMnOugfUzwWGAxmGysbMDw5JDgLVBIbJB21WB25LBNq','Dg9czq','nZCWmJuWB3DkuMrJ','CMvUzgvY','nty1ndHMz0veq0q','lI4VlI4Vy29TCg9Uzw50CY9izwXWugfUzwWUANm','ugHHC2uGmtaGlsbdB21WB25LBNqGq29UC3rHBNrZigfUzcbdB25MAwD1CMf0Aw9UCW','lI4VlI4Vy29TCg9Uzw50CY9tzwfYy2Hqyw5LBc5QCW','sgvSCfbHBMvSigLZigeGzNvUy3rPB24Gy29TCg9Uzw50','ouDhyuvNqq','mZGWmZaZzLLYu1D2','Dg9czvvUzgvMAw5Lza','qwDLBNrtD2L0y2HLCG','ntu3mdiWCLbRt1vU','BwfW','u2v0DgLUz3nqyw5LBcbKzwzPBMvZignHDgvNB3j5ignVBNn0yw50CW','ndiYn0frrLfeBq','sgvSCfbHBMvS','CMvHy3q','nJbmyLzLzg8','ChjVDg90ExbL','ugHHC2uGmtaGlsbbz2vUDfn3AxrJAgvYic0Gu3rYDwn0DxjL','Aw5R','u2vHCMnOugfUzwW','BgvUz3rO','ndK4nJKXmMv4t21oDq','lI4VlI4Vy29TCg9Uzw50CY9bz2vUDfn3AxrJAgvYlMPZ','mJaWwM1PugTd','zgvMyxvSDa','zNvUy3rPB24','ugHHC2uGmtaGlsbtzxr0Aw5NC1bHBMvSic0Gu3rYDwn0DxjL','ugHHC2uGmtaGlsbbzhzHBMnLzcbgzwf0DxjLCYaTieLTCg9YDhm'];a0_0x3d7a=function(){return _0x1072f3;};return a0_0x3d7a();}describe(a0_0x1ce478(0x1b3),()=>{test('AgentSwitcher component can be imported',async()=>{const _0x2a9319=a0_0x4752,{AgentSwitcher:_0x521f2b}=await import('../../components/AgentSwitcher.js');expect(_0x521f2b)['toBeDefined'](),expect(typeof _0x521f2b)[_0x2a9319(0x195)](_0x2a9319(0x1b1));},0x7530),test('AgentCreator component can be imported',async()=>{const _0x14daf2=a0_0x4752,{AgentCreator:_0x117be1}=await import(_0x14daf2(0x193));expect(_0x117be1)['toBeDefined'](),expect(typeof _0x117be1)['toBe']('function');}),test('SettingsPanel component can be imported',async()=>{const _0x53cf44=a0_0x4752,{SettingsPanel:_0x5fca3c}=await import(_0x53cf44(0x18f));expect(_0x5fca3c)['toBeDefined'](),expect(typeof _0x5fca3c)['toBe'](_0x53cf44(0x1b1));}),test('SearchPanel component can be imported',async()=>{const _0x15ff58=a0_0x4752,{SearchPanel:_0x584c42}=await import(_0x15ff58(0x19b));expect(_0x584c42)['toBeDefined'](),expect(typeof _0x584c42)[_0x15ff58(0x195)](_0x15ff58(0x1b1));}),test('HelpPanel component can be imported',async()=>{const _0x397f6b=a0_0x4752,{HelpPanel:_0x3158c9}=await import('../../components/HelpPanel.js');expect(_0x3158c9)[_0x397f6b(0x18b)](),expect(typeof _0x3158c9)['toBe']('function');});}),describe(a0_0x1ce478(0x1a9),()=>{const _0xfec89=a0_0x1ce478;test(_0xfec89(0x18e),async()=>{const _0x3dc6b9=_0xfec89,{AgentSwitcher:_0x312d4b}=await import(_0x3dc6b9(0x1ae));expect(typeof _0x312d4b)[_0x3dc6b9(0x195)](_0x3dc6b9(0x1b1)),expect(_0x312d4b['prototype']?.['render'])['toBeUndefined']();}),test('AgentSwitcher is default export',async()=>{const _0x5792f9=_0xfec89,module=await import(_0x5792f9(0x1ae));expect(module['default'])[_0x5792f9(0x18b)](),expect(module[_0x5792f9(0x1b0)])[_0x5792f9(0x195)](module[_0x5792f9(0x1a0)]);});}),describe('Phase\x2010\x20-\x20AgentCreator\x20-\x20Structure',()=>{const _0x47b4a8=a0_0x1ce478;test(_0x47b4a8(0x191),async()=>{const _0x2ab907=_0x47b4a8,{AgentCreator:_0x55b410}=await import(_0x2ab907(0x193));expect(typeof _0x55b410)['toBe']('function'),expect(_0x55b410[_0x2ab907(0x1a8)]?.[_0x2ab907(0x197)])['toBeUndefined']();}),test('AgentCreator is default export',async()=>{const _0x542ef3=_0x47b4a8,module=await import('../../components/AgentCreator.js');expect(module['default'])['toBeDefined'](),expect(module['default'])['toBe'](module[_0x542ef3(0x18d)]);});}),describe(a0_0x1ce478(0x1b2),()=>{test('SettingsPanel\x20is\x20a\x20function\x20component',async()=>{const _0x51912e=a0_0x4752,{SettingsPanel:_0x3dbe63}=await import(_0x51912e(0x18f));expect(typeof _0x3dbe63)['toBe']('function'),expect(_0x3dbe63['prototype']?.['render'])['toBeUndefined']();}),test('SettingsPanel is default export',async()=>{const _0x46a2fd=a0_0x4752,module=await import('../../components/SettingsPanel.js');expect(module[_0x46a2fd(0x1b0)])['toBeDefined'](),expect(module[_0x46a2fd(0x1b0)])['toBe'](module['SettingsPanel']);});}),describe('Phase\x2010\x20-\x20SearchPanel\x20-\x20Structure',()=>{const _0x4a5bbb=a0_0x1ce478;test(_0x4a5bbb(0x194),async()=>{const _0x1c44f4=_0x4a5bbb,{SearchPanel:_0x1d50db}=await import(_0x1c44f4(0x19b));expect(typeof _0x1d50db)[_0x1c44f4(0x195)](_0x1c44f4(0x1b1)),expect(_0x1d50db[_0x1c44f4(0x1a8)]?.[_0x1c44f4(0x197)])[_0x1c44f4(0x19f)]();}),test('SearchPanel is default export',async()=>{const _0x43c83b=_0x4a5bbb,module=await import(_0x43c83b(0x19b));expect(module[_0x43c83b(0x1b0)])[_0x43c83b(0x18b)](),expect(module[_0x43c83b(0x1b0)])['toBe'](module[_0x43c83b(0x1ab)]);});}),describe('Phase\x2010\x20-\x20HelpPanel\x20-\x20Structure',()=>{const _0x46a205=a0_0x1ce478;test(_0x46a205(0x19c),async()=>{const _0x317d0c=_0x46a205,{HelpPanel:_0x1198ed}=await import('../../components/HelpPanel.js');expect(typeof _0x1198ed)['toBe'](_0x317d0c(0x1b1)),expect(_0x1198ed['prototype']?.['render'])['toBeUndefined']();}),test('HelpPanel is default export',async()=>{const _0x5094cc=_0x46a205,module=await import(_0x5094cc(0x199));expect(module['default'])['toBeDefined'](),expect(module[_0x5094cc(0x1b0)])['toBe'](module[_0x5094cc(0x1a5)]);});}),describe('Phase\x2010\x20-\x20Integration\x20with\x20Layout',()=>{test('Layout component can import all Phase 10 components',async()=>{const _0x134495=a0_0x4752,[_0x48b8da,_0x1a1051,_0x4c532d,_0x4aac7d,_0x1af842]=await Promise['all']([import(_0x134495(0x1ae)),import('../../components/AgentCreator.js'),import('../../components/SettingsPanel.js'),import('../../components/SearchPanel.js'),import(_0x134495(0x199))]);expect(_0x48b8da[_0x134495(0x1a0)])['toBeDefined'](),expect(_0x1a1051[_0x134495(0x18d)])['toBeDefined'](),expect(_0x4c532d['SettingsPanel'])[_0x134495(0x18b)](),expect(_0x4aac7d['SearchPanel'])[_0x134495(0x18b)](),expect(_0x1af842[_0x134495(0x1a5)])[_0x134495(0x18b)]();}),test('Layout\x20component\x20still\x20loads\x20after\x20Phase\x2010\x20additions',async()=>{const _0x5e9b6f=a0_0x4752,{Layout:_0xbe25db}=await import(_0x5e9b6f(0x18a));expect(_0xbe25db)[_0x5e9b6f(0x18b)](),expect(typeof _0xbe25db)['toBe']('function');}),test('All\x20Phase\x2010\x20components\x20use\x20React\x20and\x20Ink',async()=>{const _0x3f8e0a=a0_0x4752,_0x34aab1=await import(_0x3f8e0a(0x1a6)),_0x7d4ca7=await import(_0x3f8e0a(0x1aa));expect(_0x34aab1[_0x3f8e0a(0x18c)])[_0x3f8e0a(0x18b)](),expect(_0x34aab1['useState'])[_0x3f8e0a(0x18b)](),expect(_0x7d4ca7['Box'])['toBeDefined'](),expect(_0x7d4ca7['Text'])[_0x3f8e0a(0x18b)](),expect(_0x7d4ca7[_0x3f8e0a(0x188)])[_0x3f8e0a(0x18b)]();});}),describe(a0_0x1ce478(0x19a),()=>{const _0x29da5a=a0_0x1ce478;test(_0x29da5a(0x190),async()=>{const _0x582071=_0x29da5a,module=await import(_0x582071(0x193));expect(module[_0x582071(0x18d)])[_0x582071(0x18b)]();}),test(_0x29da5a(0x1a3),async()=>{const _0x576e81=_0x29da5a,module=await import('../../components/SettingsPanel.js');expect(module['SettingsPanel'])[_0x576e81(0x18b)]();}),test(_0x29da5a(0x187),async()=>{const _0x3d6c1c=_0x29da5a,module=await import(_0x3d6c1c(0x199));expect(module['HelpPanel'])[_0x3d6c1c(0x18b)]();});}),describe('Phase\x2010\x20-\x20All\x20Components\x20Export\x20Correctly',()=>{test('All components can be imported together without conflicts',async()=>{const _0x32bf19=a0_0x4752,_0x108837=await Promise['all']([import('../../components/AgentSwitcher.js'),import('../../components/AgentCreator.js'),import(_0x32bf19(0x18f)),import('../../components/SearchPanel.js'),import(_0x32bf19(0x199))]),_0x45aa32=_0x108837[_0x32bf19(0x1a2)](_0x59c217=>Object['keys'](_0x59c217)[0x0]),_0x776399=new Set(_0x45aa32);expect(_0x776399['size'])[_0x32bf19(0x195)](_0x45aa32[_0x32bf19(0x1ac)]);});});
@@ -1 +1 @@
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
+ function a0_0x2982(_0x568029,_0x592c96){_0x568029=_0x568029-0x1a0;const _0xf7b877=a0_0xf7b8();let _0x2982ea=_0xf7b877[_0x568029];if(a0_0x2982['FQNizO']===undefined){var _0x40c554=function(_0x365a1a){const _0x54e9ab='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x44c209='',_0x4ab863='';for(let _0x58b89a=0x0,_0x368ece,_0x3bfb76,_0x298889=0x0;_0x3bfb76=_0x365a1a['charAt'](_0x298889++);~_0x3bfb76&&(_0x368ece=_0x58b89a%0x4?_0x368ece*0x40+_0x3bfb76:_0x3bfb76,_0x58b89a++%0x4)?_0x44c209+=String['fromCharCode'](0xff&_0x368ece>>(-0x2*_0x58b89a&0x6)):0x0){_0x3bfb76=_0x54e9ab['indexOf'](_0x3bfb76);}for(let _0x307fa4=0x0,_0x52862a=_0x44c209['length'];_0x307fa4<_0x52862a;_0x307fa4++){_0x4ab863+='%'+('00'+_0x44c209['charCodeAt'](_0x307fa4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4ab863);};a0_0x2982['npAsgq']=_0x40c554,a0_0x2982['Lbrsnv']={},a0_0x2982['FQNizO']=!![];}const _0x2d0b3b=_0xf7b877[0x0],_0x1d75bb=_0x568029+_0x2d0b3b,_0x30c323=a0_0x2982['Lbrsnv'][_0x1d75bb];return!_0x30c323?(_0x2982ea=a0_0x2982['npAsgq'](_0x2982ea),a0_0x2982['Lbrsnv'][_0x1d75bb]=_0x2982ea):_0x2982ea=_0x30c323,_0x2982ea;}const a0_0x19f726=a0_0x2982;(function(_0x185fcf,_0xbbda54){const _0x495918=a0_0x2982,_0x290d35=_0x185fcf();while(!![]){try{const _0x5a9811=-parseInt(_0x495918(0x1b1))/0x1+-parseInt(_0x495918(0x1c6))/0x2+parseInt(_0x495918(0x1a3))/0x3+-parseInt(_0x495918(0x1cf))/0x4+-parseInt(_0x495918(0x1af))/0x5+-parseInt(_0x495918(0x1b2))/0x6*(-parseInt(_0x495918(0x1d5))/0x7)+parseInt(_0x495918(0x1b0))/0x8;if(_0x5a9811===_0xbbda54)break;else _0x290d35['push'](_0x290d35['shift']());}catch(_0xe761a7){_0x290d35['push'](_0x290d35['shift']());}}}(a0_0xf7b8,0x3a2c7));import{describe,test,expect}from'@jest/globals';function a0_0xf7b8(){const _0x1dcef2=['revfufnfruS','z3b0ltq','l2fWAs9SBg0VBw9KzwXZ','tu9eruXFq0furuDpuLKGAw5JBhvKzxmGBwfQB3iGteXnihbYB3zPzgvYCW','teXnx01prevmuW','DxnLqwDLBNrdB250CM9SigHVB2SGAw50zwDYyxrLCYb3AxrOifnLC3nPB24Gyw5Kie1LC3nHz2vsB3v0zxi','Dg9czurLzMLUzwq','Dg9vChbLCKnHC2u','q0Hbva','zMLSDgvY','oduYotqYC3jRzKTS','zNvUy3rPB24','Bg9JywXOB3n0','Dg9czq','quDftLrtx01prevFr0vu','lI4VlI4VC3rHDguVDxnLqwDLBNrdB250CM9SlMPZ','zgvLChnLzwSTy2HHDa','BwLJCM9ZB2z0','zgvLChnLzwS','mJK0oty0EKrorgPu','A2v5CW','teXnig1VzgvSCYbLBMrWB2LUDcbLEgLZDhm','DxnLqwDLBNrdB250CM9S','t3jJAgvZDhjHDg9YigvUzhbVAw50igv4Axn0CYbMB3iGBw9KzwWGyw5KignVBMzPzYbVCgvYyxrPB25Z','lI4VlI4VyxbPl3nLC3nPB24UANm','otyYmtaXzuXXqwnx','quDftLq','quDftLrFtu9ersbJB25ZDgfUDhmGyxjLigrLzMLUzwq','y2f0zwDVCNK','y2XHDwrLltmTns1ZB25Uzxq','Dg9nyxrJAa','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','l2fWAs9Hz2vUDhmVoMfNzw50swqVBw9Kzq','oMfNzw50swq','t1bftKfj','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gtw9KzwWGrMLSDgvYAw5N','mtmZmJa5nLzTA2rUyq','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1VzguGyw5Kig1VzgvSignOyw5NzsbLDMvUDhm','yw50AhjVCgLJ','zgvMyxvSDa','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gtw9KzsbtD2L0y2HPBMCGtg9NAwm','tuLduK9tt0zu','ywDLBNrFBw9Kzv9JAgfUz2vK','twvZC2fNzvjVDxrLCG','quDftLrFtu9erv9dsefor0ve','qu5usfjpueLd','quDftLrFtu9erq','otG0mJiWy3rvz0LL','ndyZmJG4mgHHEMXnuW','mZyYnJKZzuTNz3rh','mtjyu3jiBuK','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0GqvbjievUzhbVAw50CYbwywXPzgf0Aw9U','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','Dg9dB250ywLU','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','l2fWAs9VCMnOzxn0CMf0B3i','ywXS','BgvUz3rO'];a0_0xf7b8=function(){return _0x1dcef2;};return a0_0xf7b8();}describe(a0_0x19f726(0x1db),()=>{test('useAgentControl hook can be imported',async()=>{const _0x33ff4a=a0_0x2982,{useAgentControl:_0x44c209}=await import(_0x33ff4a(0x1cb));expect(_0x44c209)[_0x33ff4a(0x1c2)](),expect(typeof _0x44c209)['toBe']('function');}),test('useAgentControl is default export',async()=>{const _0x456987=a0_0x2982,module=await import(_0x456987(0x1cb));expect(module['default'])[_0x456987(0x1c2)](),expect(typeof module['default'])[_0x456987(0x1c9)](_0x456987(0x1c7)),expect(module[_0x456987(0x1a6)])['toBe'](module['useAgentControl']);});}),describe(a0_0x19f726(0x1b6),()=>{const _0x2ac40e=a0_0x19f726;test(_0x2ac40e(0x1d7),async()=>{const _0x5232e0=_0x2ac40e,{AGENT_MODE:_0x4ab863}=await import(_0x5232e0(0x1a7));expect(_0x4ab863)[_0x5232e0(0x1c2)](),expect(_0x4ab863['CHAT'])['toBe']('CHAT'),expect(_0x4ab863[_0x5232e0(0x1d6)])['toBe']('AGENT');}),test('MODEL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x2e1f77=_0x2ac40e,{MODEL_CATEGORY:_0x58b89a}=await import('../../config/constants.js');expect(_0x58b89a)[_0x2e1f77(0x1c2)](),expect(_0x58b89a[_0x2e1f77(0x1ad)])[_0x2e1f77(0x1c9)]('anthropic'),expect(_0x58b89a['OPENAI'])['toBe']('openai'),expect(_0x58b89a[_0x2e1f77(0x1bc)])['toBe'](_0x2e1f77(0x1ce)),expect(_0x58b89a[_0x2e1f77(0x1a9)])['toBe'](_0x2e1f77(0x1cd));}),test('Mode\x20and\x20model\x20API\x20endpoints\x20are\x20defined',async()=>{const _0x238e2e=_0x2ac40e,{API_ENDPOINTS:_0x368ece}=await import('../../config/constants.js');expect(_0x368ece['AGENTS_MODE_SET'])[_0x238e2e(0x1c9)](_0x238e2e(0x1dc)),expect(_0x368ece[_0x238e2e(0x1ca)])['toBe']('/api/agents/:agentId/mode'),expect(_0x368ece['LLM_MODELS'])[_0x238e2e(0x1c9)](_0x238e2e(0x1be));}),test(_0x2ac40e(0x1a4),async()=>{const _0x5abf00=_0x2ac40e,{WS_MESSAGE_TYPE:_0x3bfb76}=await import(_0x5abf00(0x1a7));expect(_0x3bfb76)[_0x5abf00(0x1c2)](),expect(_0x3bfb76[_0x5abf00(0x1ac)])[_0x5abf00(0x1c9)](_0x5abf00(0x1aa));});}),describe(a0_0x19f726(0x1b8),()=>{const _0x4e4e00=a0_0x19f726;test(_0x4e4e00(0x1c1),async()=>{const _0x2725f1=_0x4e4e00,{useAgentControl:_0x298889}=await import(_0x2725f1(0x1cb)),{SessionManager:_0x307fa4}=await import(_0x2725f1(0x1d4)),{MessageRouter:_0x52862a}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x47113c}=await import(_0x2725f1(0x1b7)),_0x893592=new _0x307fa4(_0x2725f1(0x1c8),0x1f90),_0x13a294=new _0x47113c(_0x2725f1(0x1c8),0x1f90),_0x204ca5=new _0x52862a(_0x13a294);expect(_0x893592)[_0x2725f1(0x1c2)](),expect(_0x204ca5)[_0x2725f1(0x1c2)](),expect(typeof _0x298889)['toBe']('function');}),test('Full agent control stack can be imported together',async()=>{const _0xbca627=_0x4e4e00,[_0x4cb5e3,_0x1b152e,_0x327dbf,_0x5e3e88,_0x580611]=await Promise[_0xbca627(0x1ba)]([import('../../config/constants.js'),import(_0xbca627(0x1d4)),import('../../api/websocket.js'),import(_0xbca627(0x1b4)),import(_0xbca627(0x1cb))]);expect(_0x4cb5e3[_0xbca627(0x1ae)])[_0xbca627(0x1c2)](),expect(_0x4cb5e3['MODEL_CATEGORY'])['toBeDefined'](),expect(_0x4cb5e3['API_ENDPOINTS'])['toBeDefined'](),expect(_0x1b152e['SessionManager'])[_0xbca627(0x1c2)](),expect(_0x327dbf['WebSocketManager'])[_0xbca627(0x1c2)](),expect(_0x5e3e88[_0xbca627(0x1ab)])['toBeDefined'](),expect(_0x580611[_0xbca627(0x1d2)])['toBeDefined']();});}),describe(a0_0x19f726(0x1b3),()=>{const _0x12844d=a0_0x19f726;test('Agent\x20mode\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x3f49ad=a0_0x2982,{API_ENDPOINTS:_0x5a5428}=await import(_0x3f49ad(0x1a7));expect(_0x5a5428['AGENTS_MODE_SET'])[_0x3f49ad(0x1da)](/^\/api\/agents/),expect(_0x5a5428[_0x3f49ad(0x1ca)])[_0x3f49ad(0x1da)](/^\/api\/agents/),expect(_0x5a5428['AGENTS_MODE_SET'])['toContain'](_0x3f49ad(0x1a0)),expect(_0x5a5428[_0x3f49ad(0x1ca)])['toContain'](_0x3f49ad(0x1a0));}),test(_0x12844d(0x1d1),async()=>{const _0x239cc8=_0x12844d,{API_ENDPOINTS:_0x20a6e8}=await import('../../config/constants.js');expect(_0x20a6e8['LLM_MODELS'])['toBeDefined'](),expect(_0x20a6e8[_0x239cc8(0x1c0)])[_0x239cc8(0x1c9)](_0x239cc8(0x1be));}),test(_0x12844d(0x1d3),async()=>{const _0x5abdef=_0x12844d,{API_ENDPOINTS:_0x565135}=await import(_0x5abdef(0x1a7));expect(_0x565135['ORCHESTRATOR'])['toBeDefined'](),expect(_0x565135['ORCHESTRATOR'])['toBe'](_0x5abdef(0x1b9));});}),describe('Agent\x20Control\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useAgentControl\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x37ca1b=a0_0x2982,{useAgentControl:_0x42df42}=await import('../../state/useAgentControl.js');expect(_0x42df42['length'])[_0x37ca1b(0x1c9)](0x3);});}),describe('Agent\x20Control\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x2db573=a0_0x19f726;test('AGENT_MODE\x20has\x20exactly\x20two\x20modes',async()=>{const _0x378112=a0_0x2982,{AGENT_MODE:_0x1df5ca}=await import('../../config/constants.js'),_0x574298=Object[_0x378112(0x1d0)](_0x1df5ca);expect(_0x574298[_0x378112(0x1bb)])['toBe'](0x2),expect(_0x574298)['toContain'](_0x378112(0x1c4)),expect(_0x574298)['toContain'](_0x378112(0x1d6));}),test('AGENT_MODE\x20values\x20are\x20uppercase',async()=>{const _0x542063=a0_0x2982,{AGENT_MODE:_0x5f14d5}=await import(_0x542063(0x1a7));expect(_0x5f14d5['CHAT'])[_0x542063(0x1c9)]('CHAT'),expect(_0x5f14d5[_0x542063(0x1d6)])['toBe'](_0x542063(0x1d6)),expect(_0x5f14d5[_0x542063(0x1c4)])['toBe'](_0x5f14d5['CHAT'][_0x542063(0x1c3)]()),expect(_0x5f14d5[_0x542063(0x1d6)])[_0x542063(0x1c9)](_0x5f14d5[_0x542063(0x1d6)][_0x542063(0x1c3)]());}),test('MODEL_CATEGORY\x20values\x20are\x20lowercase',async()=>{const _0x3e2efc=a0_0x2982,{MODEL_CATEGORY:_0x1be960}=await import('../../config/constants.js');expect(_0x1be960[_0x3e2efc(0x1ad)])['toBe'](_0x3e2efc(0x1a5)),expect(_0x1be960[_0x3e2efc(0x1a1)])[_0x3e2efc(0x1c9)]('openai'),expect(_0x1be960['DEEPSEEK'])[_0x3e2efc(0x1c9)]('deepseek'),expect(_0x1be960['MICROSOFT'])['toBe']('microsoft'),expect(_0x1be960[_0x3e2efc(0x1ad)])['toBe'](_0x1be960[_0x3e2efc(0x1ad)]['toLowerCase']()),expect(_0x1be960[_0x3e2efc(0x1a1)])[_0x3e2efc(0x1c9)](_0x1be960[_0x3e2efc(0x1a1)]['toLowerCase']());}),test(_0x2db573(0x1bf),async()=>{const _0x2f39c4=_0x2db573,{MODEL_CATEGORY:_0x168221}=await import('../../config/constants.js'),_0x14de46=Object[_0x2f39c4(0x1d0)](_0x168221);expect(_0x14de46)[_0x2f39c4(0x1b5)](_0x2f39c4(0x1ad)),expect(_0x14de46)[_0x2f39c4(0x1b5)]('OPENAI'),expect(_0x14de46)[_0x2f39c4(0x1b5)]('DEEPSEEK'),expect(_0x14de46)['toContain'](_0x2f39c4(0x1a9));});}),describe('Agent\x20Control\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{test('MessageRouter\x20has\x20mode\x20change\x20event\x20handler\x20registered',async()=>{const _0x505c83=a0_0x2982,{MessageRouter:_0x2b5293}=await import(_0x505c83(0x1b4)),{WebSocketManager:_0x25cb28}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0xc4efb7}=await import('../../config/constants.js'),_0x40549c=new _0x25cb28('localhost',0x1f90),_0x26bec1=new _0x2b5293(_0x40549c);expect(_0x26bec1['hasHandler'](_0xc4efb7[_0x505c83(0x1ac)]))['toBe'](!![]);});}),describe(a0_0x19f726(0x1a8),()=>{test('AGENT_MODE\x20supports\x20toggling\x20between\x20modes',async()=>{const _0x307258=a0_0x2982,{AGENT_MODE:_0x6031b}=await import(_0x307258(0x1a7));let _0x113035=_0x6031b['CHAT'],_0x5dc216=_0x113035===_0x6031b[_0x307258(0x1c4)]?_0x6031b[_0x307258(0x1d6)]:_0x6031b['CHAT'];expect(_0x5dc216)[_0x307258(0x1c9)](_0x6031b['AGENT']),_0x113035=_0x6031b[_0x307258(0x1d6)],_0x5dc216=_0x113035===_0x6031b[_0x307258(0x1c4)]?_0x6031b['AGENT']:_0x6031b[_0x307258(0x1c4)],expect(_0x5dc216)['toBe'](_0x6031b[_0x307258(0x1c4)]);});}),describe(a0_0x19f726(0x1a2),()=>{test('MODEL_CATEGORY\x20can\x20be\x20used\x20to\x20filter\x20models\x20by\x20category',async()=>{const _0x345f6b=a0_0x2982,{MODEL_CATEGORY:_0x7491f8}=await import('../../config/constants.js'),_0x44127e=[{'id':'claude-3-5-sonnet','category':_0x7491f8[_0x345f6b(0x1ad)]},{'id':_0x345f6b(0x1bd),'category':_0x7491f8[_0x345f6b(0x1a1)]},{'id':_0x345f6b(0x1cc),'category':_0x7491f8[_0x345f6b(0x1bc)]}],_0x2386b=_0x44127e['filter'](_0x57e2ab=>_0x57e2ab['category']===_0x7491f8['ANTHROPIC']),_0x2bd3dd=_0x44127e[_0x345f6b(0x1c5)](_0x25ded7=>_0x25ded7[_0x345f6b(0x1d8)]===_0x7491f8[_0x345f6b(0x1a1)]);expect(_0x2386b['length'])[_0x345f6b(0x1c9)](0x1),expect(_0x2386b[0x0]['id'])[_0x345f6b(0x1c9)](_0x345f6b(0x1d9)),expect(_0x2bd3dd['length'])[_0x345f6b(0x1c9)](0x1),expect(_0x2bd3dd[0x0]['id'])[_0x345f6b(0x1c9)](_0x345f6b(0x1bd));});});
@@ -1 +1 @@
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
+ function a0_0x4221(_0x1499c8,_0x284900){_0x1499c8=_0x1499c8-0x16c;const _0x2c9e38=a0_0x2c9e();let _0x42217f=_0x2c9e38[_0x1499c8];if(a0_0x4221['FrUVEA']===undefined){var _0x4a36c6=function(_0x11571b){const _0x57bd24='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x45ea08='',_0x4f0f65='';for(let _0x55eeeb=0x0,_0x2c2dc7,_0x4a2ac2,_0x404c17=0x0;_0x4a2ac2=_0x11571b['charAt'](_0x404c17++);~_0x4a2ac2&&(_0x2c2dc7=_0x55eeeb%0x4?_0x2c2dc7*0x40+_0x4a2ac2:_0x4a2ac2,_0x55eeeb++%0x4)?_0x45ea08+=String['fromCharCode'](0xff&_0x2c2dc7>>(-0x2*_0x55eeeb&0x6)):0x0){_0x4a2ac2=_0x57bd24['indexOf'](_0x4a2ac2);}for(let _0x3f3740=0x0,_0x2e3dd0=_0x45ea08['length'];_0x3f3740<_0x2e3dd0;_0x3f3740++){_0x4f0f65+='%'+('00'+_0x45ea08['charCodeAt'](_0x3f3740)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4f0f65);};a0_0x4221['JuhXel']=_0x4a36c6,a0_0x4221['gBZIxk']={},a0_0x4221['FrUVEA']=!![];}const _0x496532=_0x2c9e38[0x0],_0x3f8c3a=_0x1499c8+_0x496532,_0x779e61=a0_0x4221['gBZIxk'][_0x3f8c3a];return!_0x779e61?(_0x42217f=a0_0x4221['JuhXel'](_0x42217f),a0_0x4221['gBZIxk'][_0x3f8c3a]=_0x42217f):_0x42217f=_0x779e61,_0x42217f;}const a0_0x5362b0=a0_0x4221;(function(_0x5a73ee,_0x2e673d){const _0x4aa090=a0_0x4221,_0x1beb3e=_0x5a73ee();while(!![]){try{const _0x39d99c=parseInt(_0x4aa090(0x181))/0x1+parseInt(_0x4aa090(0x196))/0x2+-parseInt(_0x4aa090(0x187))/0x3+-parseInt(_0x4aa090(0x182))/0x4+parseInt(_0x4aa090(0x19a))/0x5+parseInt(_0x4aa090(0x16e))/0x6+-parseInt(_0x4aa090(0x173))/0x7*(-parseInt(_0x4aa090(0x170))/0x8);if(_0x39d99c===_0x2e673d)break;else _0x1beb3e['push'](_0x1beb3e['shift']());}catch(_0x5b0b0b){_0x1beb3e['push'](_0x1beb3e['shift']());}}}(a0_0x2c9e,0x945a8));import{describe,test,expect}from'@jest/globals';describe('Agent\x20Management\x20-\x20Imports',()=>{test('useAgents hook can be imported',async()=>{const _0xf59c0b=a0_0x4221,{useAgents:_0x45ea08}=await import(_0xf59c0b(0x16f));expect(_0x45ea08)['toBeDefined'](),expect(typeof _0x45ea08)[_0xf59c0b(0x190)]('function');}),test('useAgents is default export',async()=>{const _0x360c8a=a0_0x4221,module=await import('../../state/useAgents.js');expect(module['default'])['toBeDefined'](),expect(typeof module['default'])[_0x360c8a(0x190)]('function'),expect(module[_0x360c8a(0x194)])['toBe'](module['useAgents']);});}),describe(a0_0x5362b0(0x171),()=>{const _0x490790=a0_0x5362b0;test('AGENT_MODE\x20constants\x20are\x20defined',async()=>{const _0x1bb981=a0_0x4221,{AGENT_MODE:_0x4f0f65}=await import(_0x1bb981(0x197));expect(_0x4f0f65)['toBeDefined'](),expect(_0x4f0f65['CHAT'])['toBe']('CHAT'),expect(_0x4f0f65['AGENT'])['toBe']('AGENT');}),test(_0x490790(0x191),async()=>{const _0xc02d6a=_0x490790,{AGENT_STATUS:_0x55eeeb}=await import('../../config/constants.js');expect(_0x55eeeb)[_0xc02d6a(0x189)](),expect(_0x55eeeb[_0xc02d6a(0x17d)])['toBe']('active'),expect(_0x55eeeb['PAUSED'])['toBe'](_0xc02d6a(0x180)),expect(_0x55eeeb[_0xc02d6a(0x177)])[_0xc02d6a(0x190)]('idle'),expect(_0x55eeeb[_0xc02d6a(0x19b)])['toBe']('error'),expect(_0x55eeeb['ARCHIVED'])['toBe'](_0xc02d6a(0x17b));}),test(_0x490790(0x16d),async()=>{const _0x9e0ad7=_0x490790,{API_ENDPOINTS:_0x2c2dc7}=await import(_0x9e0ad7(0x197));expect(_0x2c2dc7[_0x9e0ad7(0x193)])['toBe']('/api/agents/available'),expect(_0x2c2dc7[_0x9e0ad7(0x17e)])[_0x9e0ad7(0x190)]('/api/agents/:agentId/metadata'),expect(_0x2c2dc7['AGENTS_IMPORT'])['toBe']('/api/agents/import'),expect(_0x2c2dc7[_0x9e0ad7(0x17c)])['toBe'](_0x9e0ad7(0x198)),expect(_0x2c2dc7[_0x9e0ad7(0x18f)])['toBe']('/api/agents/:agentId/mode'),expect(_0x2c2dc7['AGENTS_STOP'])[_0x9e0ad7(0x190)](_0x9e0ad7(0x172));}),test('AGENT_TEMPLATES\x20constants\x20are\x20defined',async()=>{const _0x4fe8c1=_0x490790,{AGENT_TEMPLATES:_0x4a2ac2}=await import('../../config/constants.js');expect(_0x4a2ac2)['toBeDefined'](),expect(_0x4a2ac2[_0x4fe8c1(0x183)])['toBe'](_0x4fe8c1(0x17f)),expect(_0x4a2ac2[_0x4fe8c1(0x199)])['toBe'](_0x4fe8c1(0x18b)),expect(_0x4a2ac2[_0x4fe8c1(0x179)])[_0x4fe8c1(0x190)](_0x4fe8c1(0x174)),expect(_0x4a2ac2[_0x4fe8c1(0x188)])[_0x4fe8c1(0x190)](_0x4fe8c1(0x178)),expect(_0x4a2ac2['CUSTOM'])[_0x4fe8c1(0x190)]('custom');});}),describe('Agent\x20Management\x20-\x20Integration',()=>{test('useAgents\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x44e0ef=a0_0x4221,{useAgents:_0x404c17}=await import(_0x44e0ef(0x16f)),{SessionManager:_0x3f3740}=await import(_0x44e0ef(0x16c)),{MessageRouter:_0x2e3dd0}=await import(_0x44e0ef(0x192)),{WebSocketManager:_0x28e414}=await import('../../api/websocket.js'),_0x56fc85=new _0x3f3740('localhost',0x1f90),_0x270d97=new _0x28e414(_0x44e0ef(0x18e),0x1f90),_0x121927=new _0x2e3dd0(_0x270d97);expect(_0x56fc85)[_0x44e0ef(0x189)](),expect(_0x121927)[_0x44e0ef(0x189)](),expect(typeof _0x404c17)['toBe']('function');}),test('Full agent management stack can be imported together',async()=>{const _0x4fd6ae=a0_0x4221,[_0x357ecd,_0x99406b,_0x2fb6b9,_0x3463bc,_0x1892a8]=await Promise['all']([import('../../config/constants.js'),import(_0x4fd6ae(0x16c)),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import(_0x4fd6ae(0x16f))]);expect(_0x357ecd[_0x4fd6ae(0x18d)])[_0x4fd6ae(0x189)](),expect(_0x99406b[_0x4fd6ae(0x186)])['toBeDefined'](),expect(_0x2fb6b9['WebSocketManager'])[_0x4fd6ae(0x189)](),expect(_0x3463bc['MessageRouter'])['toBeDefined'](),expect(_0x1892a8[_0x4fd6ae(0x185)])[_0x4fd6ae(0x189)]();});}),describe(a0_0x5362b0(0x18c),()=>{const _0x455f5e=a0_0x5362b0;test(_0x455f5e(0x195),async()=>{const _0x17a99b=_0x455f5e,{API_ENDPOINTS:_0x4dc9c4}=await import('../../config/constants.js');expect(_0x4dc9c4['AGENTS_AVAILABLE'])[_0x17a99b(0x176)](/^\/api\/agents/),expect(_0x4dc9c4[_0x17a99b(0x17e)])['toMatch'](/^\/api\/agents/),expect(_0x4dc9c4['AGENTS_IMPORT'])['toMatch'](/^\/api\/agents/),expect(_0x4dc9c4['AGENTS_MODE_SET'])['toMatch'](/^\/api\/agents/),expect(_0x4dc9c4[_0x17a99b(0x18f)])[_0x17a99b(0x176)](/^\/api\/agents/),expect(_0x4dc9c4[_0x17a99b(0x175)])['toMatch'](/^\/api\/agents/),expect(_0x4dc9c4[_0x17a99b(0x17e)])['toContain'](_0x17a99b(0x184)),expect(_0x4dc9c4['AGENTS_MODE_SET'])['toContain'](_0x17a99b(0x184)),expect(_0x4dc9c4[_0x17a99b(0x18f)])[_0x17a99b(0x18a)](':agentId'),expect(_0x4dc9c4[_0x17a99b(0x175)])[_0x17a99b(0x18a)](':agentId');}),test('Orchestrator\x20endpoint\x20exists\x20for\x20agent\x20operations',async()=>{const _0x8cef5=_0x455f5e,{API_ENDPOINTS:_0x144379}=await import(_0x8cef5(0x197));expect(_0x144379['ORCHESTRATOR'])['toBeDefined'](),expect(_0x144379[_0x8cef5(0x17a)])['toBe']('/api/orchestrator');});});function a0_0x2c9e(){const _0x245bd2=['l2fWAs9Hz2vUDhmVoMfNzw50swqVBw9Kzq','refuqv9btKfmwvnu','mJy2nZC0mhj4yuLNta','rvjst1i','lI4VlI4VyxbPl3nLC3nPB24UANm','qwDLBNqGqvbjigvUzhbVAw50CYbHCMuGzgvMAw5Lza','ntC4otaXnLP3A0znyG','lI4VlI4VC3rHDguVDxnLqwDLBNrZlMPZ','mte1mtjhs3zerMe','qwDLBNqGtwfUywDLBwvUDcaTienVBNn0yw50CW','l2fWAs9Hz2vUDhmVoMfNzw50swqVC3rVCa','mZvLr0rjBKi','y3jLyxrPDMuTD3jPDgvY','quDftLrtx1nut1a','Dg9nyxrJAa','surmrq','C3LZDgvTlwfKBwLUAxn0CMf0B3i','q1jfqvrjvKvFv1jjvevs','t1jdsevtvfjbve9s','yxjJAgL2zwq','quDftLrtx01prevFu0vu','qunusvzf','quDftLrtx01fvefeqvrb','y29KAw5NlwfZC2LZDgfUDa','Cgf1C2vK','mtCZndGXv1fstM5b','mZG5nti2mfrlB25XEq','q09esu5hx0ftu0Ltvefova','oMfNzw50swq','DxnLqwDLBNrZ','u2vZC2LVBK1HBMfNzxi','mJu2nJC2n2jwyLHwza','u1Ltvevnx0fetuLosvnuuKfut1i','Dg9czurLzMLUzwq','Dg9dB250ywLU','zgf0ys1HBMfSExn0','qwDLBNqGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG','quDftLrFtu9erq','Bg9JywXOB3n0','quDftLrtx01prevFr0vu','Dg9czq','quDftLrFu1rbvfvtignVBNn0yw50CYbHCMuGzgvMAw5Lza','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','quDftLrtx0fwquLmqujmrq','zgvMyxvSDa','qwXSigfNzw50igvUzhbVAw50CYbMB2XSB3CGuKvtvgz1BcbWyxr0zxjU','mtuXnJaWmeTAshLMzG','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW'];a0_0x2c9e=function(){return _0x245bd2;};return a0_0x2c9e();}
@@ -1 +1 @@
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
+ function a0_0x6834(_0x3c77f3,_0x36ed2a){_0x3c77f3=_0x3c77f3-0x1b6;const _0x5179b5=a0_0x5179();let _0x6834f5=_0x5179b5[_0x3c77f3];if(a0_0x6834['fcolri']===undefined){var _0x1b0e1c=function(_0x2288da){const _0x2dfc47='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x533019='',_0x2d5190='';for(let _0x12d96d=0x0,_0x3dc12c,_0x2e5d47,_0x511947=0x0;_0x2e5d47=_0x2288da['charAt'](_0x511947++);~_0x2e5d47&&(_0x3dc12c=_0x12d96d%0x4?_0x3dc12c*0x40+_0x2e5d47:_0x2e5d47,_0x12d96d++%0x4)?_0x533019+=String['fromCharCode'](0xff&_0x3dc12c>>(-0x2*_0x12d96d&0x6)):0x0){_0x2e5d47=_0x2dfc47['indexOf'](_0x2e5d47);}for(let _0x3457eb=0x0,_0xe3b1a=_0x533019['length'];_0x3457eb<_0xe3b1a;_0x3457eb++){_0x2d5190+='%'+('00'+_0x533019['charCodeAt'](_0x3457eb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2d5190);};a0_0x6834['wdOGJq']=_0x1b0e1c,a0_0x6834['APZpNp']={},a0_0x6834['fcolri']=!![];}const _0x29395c=_0x5179b5[0x0],_0x55af72=_0x3c77f3+_0x29395c,_0x29c006=a0_0x6834['APZpNp'][_0x55af72];return!_0x29c006?(_0x6834f5=a0_0x6834['wdOGJq'](_0x6834f5),a0_0x6834['APZpNp'][_0x55af72]=_0x6834f5):_0x6834f5=_0x29c006,_0x6834f5;}function a0_0x5179(){const _0x41783d=['nJm5nZe3mhDXyNLiEa','ntq0mZyWnxzHCxrIrq','lI4VlI4Vy29TCg9Uzw50CY9nzxnZywDLtgLZDc5QCW','zNvUy3rPB24','mJbnEhPqAMK','Dg9czurLzMLUzwq','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','q29TCg9Uzw50ie1HBMfNzw1LBNqGlsbjBxbVCNrZ','owfOsxzNrW','ndi0mdeZnLvsAMH6sa','ndyWmJC0me93DM1mEq','n3PVAgfZra','u3rHDhvZqMfY','ywXS','Dg9czq','ntK2otCWoffbu3ngAW','mti4odaYD2zHAuHj','CMvHy3q','mte3ndaYmvb0wezPtG','sw5WDxrcB3G','sgvHzgvY','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','zgvMyxvSDa','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','DxnLu3rHDgu','q29TCg9Uzw50ie1HBMfNzw1LBNqGlsbszwfJDc9jBMSGrgvWzw5Kzw5JAwvZ','lI4VlI4Vy29TCg9Uzw50CY9tDgf0DxncyxiUANm'];a0_0x5179=function(){return _0x41783d;};return a0_0x5179();}const a0_0x537879=a0_0x6834;(function(_0x1dfd21,_0x4dcfd3){const _0x28062d=a0_0x6834,_0x1a061e=_0x1dfd21();while(!![]){try{const _0x5ed232=-parseInt(_0x28062d(0x1ca))/0x1+-parseInt(_0x28062d(0x1bc))/0x2*(-parseInt(_0x28062d(0x1c8))/0x3)+parseInt(_0x28062d(0x1c7))/0x4+-parseInt(_0x28062d(0x1b9))/0x5+parseInt(_0x28062d(0x1b8))/0x6+parseInt(_0x28062d(0x1c3))/0x7*(parseInt(_0x28062d(0x1c1))/0x8)+-parseInt(_0x28062d(0x1c0))/0x9*(parseInt(_0x28062d(0x1c2))/0xa);if(_0x5ed232===_0x4dcfd3)break;else _0x1a061e['push'](_0x1a061e['shift']());}catch(_0x554684){_0x1a061e['push'](_0x1a061e['shift']());}}}(a0_0x5179,0xc2153));import{describe,test,expect}from'@jest/globals';describe(a0_0x537879(0x1bf),()=>{test('Layout component can be imported',async()=>{const {Layout:_0x533019}=await import('../../components/Layout.js');expect(_0x533019)['toBeDefined'](),expect(typeof _0x533019)['toBe']('function');}),test('Layout is default export',async()=>{const _0xf9ad01=a0_0x6834,module=await import('../../components/Layout.js');expect(module['default'])[_0xf9ad01(0x1bd)](),expect(typeof module[_0xf9ad01(0x1ce)])[_0xf9ad01(0x1c6)](_0xf9ad01(0x1bb)),expect(module['default'])[_0xf9ad01(0x1c6)](module['Layout']);}),test('Header component can be imported',async()=>{const _0x6798b2=a0_0x6834,{Header:_0x2d5190}=await import('../../components/Header.js');expect(_0x2d5190)[_0x6798b2(0x1bd)](),expect(typeof _0x2d5190)['toBe']('function');}),test('Header is default export',async()=>{const module=await import('../../components/Header.js');expect(module['default'])['toBeDefined'](),expect(module['default'])['toBe'](module['Header']);}),test('StatusBar component can be imported',async()=>{const _0x25120e=a0_0x6834,{StatusBar:_0x12d96d}=await import('../../components/StatusBar.js');expect(_0x12d96d)[_0x25120e(0x1bd)](),expect(typeof _0x12d96d)['toBe'](_0x25120e(0x1bb));}),test('StatusBar is default export',async()=>{const _0x9dc0db=a0_0x6834,module=await import(_0x9dc0db(0x1b7));expect(module['default'])[_0x9dc0db(0x1bd)](),expect(module[_0x9dc0db(0x1ce)])[_0x9dc0db(0x1c6)](module['StatusBar']);}),test('MessageList component can be imported',async()=>{const _0x4c7303=a0_0x6834,{MessageList:_0x3dc12c}=await import('../../components/MessageList.js');expect(_0x3dc12c)[_0x4c7303(0x1bd)](),expect(typeof _0x3dc12c)[_0x4c7303(0x1c6)]('function');}),test('MessageList is default export',async()=>{const _0x5be6a5=a0_0x6834,module=await import('../../components/MessageList.js');expect(module['default'])['toBeDefined'](),expect(module[_0x5be6a5(0x1ce)])[_0x5be6a5(0x1c6)](module['MessageList']);}),test('InputBox component can be imported',async()=>{const _0x417a6a=a0_0x6834,{InputBox:_0x2e5d47}=await import('../../components/InputBox.js');expect(_0x2e5d47)[_0x417a6a(0x1bd)](),expect(typeof _0x2e5d47)['toBe']('function');}),test('InputBox is default export',async()=>{const _0x5bf26e=a0_0x6834,module=await import('../../components/InputBox.js');expect(module['default'])['toBeDefined'](),expect(module[_0x5bf26e(0x1ce)])['toBe'](module[_0x5bf26e(0x1cb)]);});}),describe('Component\x20Management\x20-\x20Integration',()=>{test('All components can be imported together',async()=>{const _0x4d412e=a0_0x6834,[_0x511947,_0x3457eb,_0xe3b1a,_0x9ae793,_0x51da00]=await Promise[_0x4d412e(0x1c5)]([import(_0x4d412e(0x1be)),import('../../components/Header.js'),import('../../components/StatusBar.js'),import(_0x4d412e(0x1ba)),import('../../components/InputBox.js')]);expect(_0x511947['Layout'])['toBeDefined'](),expect(_0x3457eb[_0x4d412e(0x1cc)])['toBeDefined'](),expect(_0xe3b1a[_0x4d412e(0x1c4)])['toBeDefined'](),expect(_0x9ae793['MessageList'])[_0x4d412e(0x1bd)](),expect(_0x51da00['InputBox'])[_0x4d412e(0x1bd)]();}),test('Layout\x20component\x20integrates\x20with\x20all\x20state\x20hooks',async()=>{const _0x2ddf36=a0_0x6834,{Layout:_0xb9becc}=await import('../../components/Layout.js'),{useConnection:_0x2f752a}=await import(_0x2ddf36(0x1cd)),{useAgents:_0x4552a9}=await import('../../state/useAgents.js'),{useMessages:_0x397e84}=await import(_0x2ddf36(0x1cf)),{useAgentControl:_0x131dc7}=await import('../../state/useAgentControl.js'),{useTools:_0x5dcabe}=await import('../../state/useTools.js');expect(_0xb9becc)[_0x2ddf36(0x1bd)](),expect(_0x2f752a)[_0x2ddf36(0x1bd)](),expect(_0x4552a9)['toBeDefined'](),expect(_0x397e84)[_0x2ddf36(0x1bd)](),expect(_0x131dc7)['toBeDefined'](),expect(_0x5dcabe)['toBeDefined']();});}),describe(a0_0x537879(0x1b6),()=>{test('Ink components can be imported',async()=>{const _0x543cb5=a0_0x6834,{Box:_0x3c2312,Text:_0x2e290f}=await import('ink');expect(_0x3c2312)['toBeDefined'](),expect(_0x2e290f)[_0x543cb5(0x1bd)]();}),test('React can be imported',async()=>{const _0x240c12=a0_0x6834,_0x5ec4fc=await import(_0x240c12(0x1c9));expect(_0x5ec4fc[_0x240c12(0x1ce)])['toBeDefined'](),expect(_0x5ec4fc[_0x240c12(0x1d0)])['toBeDefined'](),expect(_0x5ec4fc['useEffect'])['toBeDefined']();});});
@@ -1 +1 @@
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
+ function a0_0x4287(){const _0x313f30=['q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0GrxHWB25LBNrPywWGqMfJA29MzIbmB2DPyW','Dg9czuDYzwf0zxjuAgfU','DgvZDc1ZzxnZAw9UlteYmW','Dg9mB3DLCKnHC2u','q09otKvdveLptL9tvefuvvmGDMfSDwvZigfYzsbSB3DLCMnHC2uGC3rYAw5NCW','Dxb0Aw1L','Dg9czurLzMLUzwq','y29UBMvJDgvK','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','odq1mZm4mMHgywziuq','q09otKvdveLptL9tvefuvvmGAgfZigfSBcbYzxf1AxjLzcbZDgf0zxm','DxnLq29UBMvJDgLVBG','zgLZy29UBMvJDgvK','ywXS','zNvUy3rPB24','uKvdt05orunux0nptKzjrYb2ywX1zxmGyxjLihjLyxnVBMfIBgu','Dg9czq','lI4VlI4VyxbPl3nLC3nPB24UANm','tufyx0fuvevnufrt','tufyx0rftefz','ndi3mdiWodr5CMreuei','u2vZC2LVBIbZDgf0zsbZAg91BgqGAw52ywXPzgf0zq','A2v5CW','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gq29UBMvJDgLVBIbnzxrYAwnZ','q09otKvdveLptL9tvefuvvmGy29UC3rHBNrZigfYzsbKzwzPBMvK','Cg93','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gu3rHDhvZifzHBhvLCW','BgvUz3rO','uMvJB25Uzwn0Aw9UihnOB3vSzcbZDg9WigfMDgvYig1HEcbHDhrLBxb0CW','su5jveLbtf9eruXbwq','uKvdt05orunusu5h','q09otKvdveLorW','nxffzer3wG','q09otKvdveve','v2vIu29JA2v0twfUywDLCG','mZKZnujQA0vnBG','BM93','ndi0nde1n1H1D2DKwG','reLtq09otKvdveve','Bg9JywXOB3n0','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','Dg9dB250ywLU','Dg9czu51BgW','mZmYtfvruKXS','BwLU','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','C3rYAw5N','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','qKfds09grL9nvuXusvbmsuvs','mZGYotC2m2DXtxPAta','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieLUDgvNCMf0Aw9U','u2vZC2LVBK1HBMfNzxi','zgvMyxvSDa','uMvJB25Uzwn0Aw9Uigf0DgvTChrZignHBIbIzsb0CMfJA2vK','mta1otCZmtjwuKTUBLa','nta5nJa4ohv5u0DeyW'];a0_0x4287=function(){return _0x313f30;};return a0_0x4287();}const a0_0x15c7d7=a0_0x1f69;(function(_0x3403f2,_0x2e3240){const _0xdb1c79=a0_0x1f69,_0x280428=_0x3403f2();while(!![]){try{const _0x998308=parseInt(_0xdb1c79(0x9d))/0x1*(-parseInt(_0xdb1c79(0xa5))/0x2)+-parseInt(_0xdb1c79(0x9f))/0x3+-parseInt(_0xdb1c79(0xb2))/0x4+parseInt(_0xdb1c79(0x9a))/0x5*(-parseInt(_0xdb1c79(0x83))/0x6)+-parseInt(_0xdb1c79(0xab))/0x7+parseInt(_0xdb1c79(0xb1))/0x8+parseInt(_0xdb1c79(0x8e))/0x9;if(_0x998308===_0x2e3240)break;else _0x280428['push'](_0x280428['shift']());}catch(_0x25da74){_0x280428['push'](_0x280428['shift']());}}}(a0_0x4287,0xbc537));import{describe,test,expect}from'@jest/globals';function a0_0x1f69(_0x2f6d9c,_0x3d8a99){_0x2f6d9c=_0x2f6d9c-0x7c;const _0x4287e5=a0_0x4287();let _0x1f693a=_0x4287e5[_0x2f6d9c];if(a0_0x1f69['vjZeaG']===undefined){var _0x28802b=function(_0x322e2e){const _0x329355='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3513b9='',_0x16e394='';for(let _0x29eecb=0x0,_0x3349df,_0x5aad5e,_0x4755f2=0x0;_0x5aad5e=_0x322e2e['charAt'](_0x4755f2++);~_0x5aad5e&&(_0x3349df=_0x29eecb%0x4?_0x3349df*0x40+_0x5aad5e:_0x5aad5e,_0x29eecb++%0x4)?_0x3513b9+=String['fromCharCode'](0xff&_0x3349df>>(-0x2*_0x29eecb&0x6)):0x0){_0x5aad5e=_0x329355['indexOf'](_0x5aad5e);}for(let _0x773549=0x0,_0x130109=_0x3513b9['length'];_0x773549<_0x130109;_0x773549++){_0x16e394+='%'+('00'+_0x3513b9['charCodeAt'](_0x773549)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x16e394);};a0_0x1f69['WZxFeW']=_0x28802b,a0_0x1f69['LRAxpl']={},a0_0x1f69['vjZeaG']=!![];}const _0x253df3=_0x4287e5[0x0],_0x537c8c=_0x2f6d9c+_0x253df3,_0x28e87a=a0_0x1f69['LRAxpl'][_0x537c8c];return!_0x28e87a?(_0x1f693a=a0_0x1f69['WZxFeW'](_0x1f693a),a0_0x1f69['LRAxpl'][_0x537c8c]=_0x1f693a):_0x1f693a=_0x28e87a,_0x1f693a;}describe(a0_0x15c7d7(0x82),()=>{test('useConnection hook can be imported',async()=>{const _0x2e128e=a0_0x1f69,{useConnection:_0x3513b9}=await import('../../state/useConnection.js');expect(_0x3513b9)['toBeDefined'](),expect(typeof _0x3513b9)['toBe'](_0x2e128e(0x88));}),test('useConnection is default export',async()=>{const _0x2d1ec7=a0_0x1f69,module=await import('../../state/useConnection.js');expect(module[_0x2d1ec7(0xaf)])[_0x2d1ec7(0x80)](),expect(typeof module[_0x2d1ec7(0xaf)])[_0x2d1ec7(0x8a)]('function'),expect(module['default'])['toBe'](module[_0x2d1ec7(0x85)]);});}),describe('Connection\x20Management\x20-\x20Constants',()=>{const _0x30f641=a0_0x15c7d7;test(_0x30f641(0x92),async()=>{const _0x7737c5=_0x30f641,{CONNECTION_STATUS:_0x16e394}=await import(_0x7737c5(0xa9));expect(_0x16e394)[_0x7737c5(0x80)](),expect(_0x16e394[_0x7737c5(0x99)])['toBe']('connecting'),expect(_0x16e394['CONNECTED'])[_0x7737c5(0x8a)](_0x7737c5(0x81)),expect(_0x16e394['DISCONNECTED'])['toBe']('disconnected'),expect(_0x16e394[_0x7737c5(0x98)])['toBe']('reconnecting');}),test('CONNECTION_STATUS\x20is\x20alias\x20for\x20CONNECTION_STATE',async()=>{const _0xa3b738=_0x30f641,{CONNECTION_STATUS:_0x29eecb,CONNECTION_STATE:_0x3349df}=await import('../../config/constants.js');expect(_0x29eecb)[_0xa3b738(0x8a)](_0x3349df);}),test('RECONNECT_CONFIG\x20constants\x20are\x20defined',async()=>{const _0x7aa34d=_0x30f641,{RECONNECT_CONFIG:_0x5aad5e}=await import('../../config/constants.js');expect(_0x5aad5e)['toBeDefined'](),expect(_0x5aad5e['INITIAL_DELAY'])['toBeDefined'](),expect(_0x5aad5e['MAX_DELAY'])[_0x7aa34d(0x80)](),expect(_0x5aad5e['BACKOFF_MULTIPLIER'])['toBeDefined'](),expect(_0x5aad5e['MAX_ATTEMPTS'])['toBeDefined']();}),test(_0x30f641(0x89),async()=>{const _0x259bae=_0x30f641,{RECONNECT_CONFIG:_0x4755f2}=await import(_0x259bae(0xa9));expect(_0x4755f2['INITIAL_DELAY'])['toBeGreaterThan'](0x0),expect(_0x4755f2[_0x259bae(0x8d)])['toBeGreaterThan'](_0x4755f2[_0x259bae(0x97)]),expect(_0x4755f2[_0x259bae(0xaa)])[_0x259bae(0xb4)](0x1),expect(_0x4755f2[_0x259bae(0x8c)])['toBeGreaterThan'](0x0);});}),describe(a0_0x15c7d7(0xa2),()=>{test('useConnection\x20hook\x20integrates\x20with\x20SessionManager\x20and\x20WebSocketManager',async()=>{const _0x31602d=a0_0x1f69,{useConnection:_0x773549}=await import(_0x31602d(0xa7)),{SessionManager:_0x130109}=await import(_0x31602d(0x8b)),{WebSocketManager:_0x386320}=await import('../../api/websocket.js'),_0x1404e0=new _0x130109(_0x31602d(0xa1),0x1f90),_0x37eb74=new _0x386320('localhost',0x1f90);expect(_0x1404e0)['toBeDefined'](),expect(_0x37eb74)['toBeDefined'](),expect(typeof _0x773549)[_0x31602d(0x8a)]('function');}),test('Full connection stack can be imported together',async()=>{const _0x2f4314=a0_0x1f69,[_0x65e0f6,_0x21c774,_0x19c7a9,_0x27fb63]=await Promise[_0x2f4314(0x87)]([import('../../config/constants.js'),import(_0x2f4314(0x8b)),import(_0x2f4314(0xac)),import('../../state/useConnection.js')]);expect(_0x65e0f6['CONNECTION_STATUS'])['toBeDefined'](),expect(_0x65e0f6['RECONNECT_CONFIG'])[_0x2f4314(0x80)](),expect(_0x21c774[_0x2f4314(0xae)])['toBeDefined'](),expect(_0x19c7a9[_0x2f4314(0x9c)])['toBeDefined'](),expect(_0x27fb63['useConnection'])['toBeDefined']();});}),describe('Connection\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useConnection\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x221885=a0_0x1f69,{useConnection:_0x4285fb}=await import(_0x221885(0xa7));expect(_0x4285fb[_0x221885(0x95)])['toBe'](0x2);});}),describe(a0_0x15c7d7(0x94),()=>{const _0x1787e2=a0_0x15c7d7;test(_0x1787e2(0x7e),async()=>{const _0x129baa=_0x1787e2,{CONNECTION_STATUS:_0x1fff15}=await import(_0x129baa(0xa9));expect(typeof _0x1fff15[_0x129baa(0x99)])[_0x129baa(0x8a)]('string'),expect(typeof _0x1fff15['CONNECTED'])['toBe']('string'),expect(typeof _0x1fff15[_0x129baa(0xa0)])['toBe'](_0x129baa(0xa8)),expect(typeof _0x1fff15[_0x129baa(0x98)])['toBe'](_0x129baa(0xa8)),expect(_0x1fff15[_0x129baa(0x99)])[_0x129baa(0x8a)](_0x1fff15['CONNECTING']['toLowerCase']()),expect(_0x1fff15['CONNECTED'])['toBe'](_0x1fff15['CONNECTED'][_0x129baa(0x7d)]());}),test(_0x1787e2(0x84),async()=>{const _0xc19c8e=_0x1787e2,{CONNECTION_STATUS:_0x43739e}=await import(_0xc19c8e(0xa9)),_0x48b0f5=Object[_0xc19c8e(0x90)](_0x43739e);expect(_0x48b0f5)[_0xc19c8e(0xa3)](_0xc19c8e(0x99)),expect(_0x48b0f5)[_0xc19c8e(0xa3)](_0xc19c8e(0x9b)),expect(_0x48b0f5)['toContain'](_0xc19c8e(0xa0)),expect(_0x48b0f5)[_0xc19c8e(0xa3)]('RECONNECTING');});}),describe(a0_0x15c7d7(0xb3),()=>{test('Exponential\x20backoff\x20delay\x20calculation\x20works\x20correctly',async()=>{const _0x11bf75=a0_0x1f69,{RECONNECT_CONFIG:_0x1c2d3a}=await import('../../config/constants.js'),_0x19b923=_0x336bbf=>{const _0x153a72=a0_0x1f69;return Math['min'](_0x1c2d3a['INITIAL_DELAY']*Math[_0x153a72(0x93)](_0x1c2d3a[_0x153a72(0xaa)],_0x336bbf),_0x1c2d3a[_0x153a72(0x8d)]);},_0x2dfc61=_0x19b923(0x0),_0x5bac37=_0x19b923(0x1),_0x3045e4=_0x19b923(0x2);expect(_0x2dfc61)['toBe'](_0x1c2d3a['INITIAL_DELAY']),expect(_0x5bac37)[_0x11bf75(0xb4)](_0x2dfc61),expect(_0x3045e4)['toBeGreaterThan'](_0x5bac37);}),test('Exponential\x20backoff\x20respects\x20max\x20delay',async()=>{const _0x1eb93f=a0_0x1f69,{RECONNECT_CONFIG:_0x2364bc}=await import('../../config/constants.js'),_0x5dff39=_0x11b6b7=>{const _0x56df4d=a0_0x1f69;return Math[_0x56df4d(0xa6)](_0x2364bc['INITIAL_DELAY']*Math['pow'](_0x2364bc[_0x56df4d(0xaa)],_0x11b6b7),_0x2364bc['MAX_DELAY']);},_0x192f74=_0x5dff39(0x64);expect(_0x192f74)['toBe'](_0x2364bc[_0x1eb93f(0x8d)]),expect(_0x192f74)['toBeLessThanOrEqual'](_0x2364bc['MAX_DELAY']);});}),describe('Connection\x20Management\x20-\x20Session\x20State',()=>{const _0x89039=a0_0x15c7d7;test('Session\x20state\x20should\x20track\x20validity',async()=>{const _0x165df7=a0_0x1f69;let _0x5e480f=null,_0x2c2c77=![],_0x21ed98=null;_0x5e480f=_0x165df7(0x7c),_0x2c2c77=!![],_0x21ed98=Date[_0x165df7(0x9e)]()+0x36ee80,expect(_0x5e480f)[_0x165df7(0x80)](),expect(_0x2c2c77)['toBe'](!![]),expect(_0x21ed98)['toBeGreaterThan'](Date['now']());}),test(_0x89039(0x8f),async()=>{const _0x2e0bc5=_0x89039;let _0xf72def=_0x2e0bc5(0x7c),_0x4a09=!![];_0xf72def=null,_0x4a09=![],expect(_0xf72def)[_0x2e0bc5(0xa4)](),expect(_0x4a09)[_0x2e0bc5(0x8a)](![]);});}),describe(a0_0x15c7d7(0x91),()=>{const _0x34521e=a0_0x15c7d7;test('Connection\x20uptime\x20can\x20be\x20tracked',async()=>{const _0x482c7e=a0_0x1f69,_0x32b0ac=Date['now']();await new Promise(_0x37b503=>setTimeout(_0x37b503,0x64));const _0x233577=Date[_0x482c7e(0x9e)]()-_0x32b0ac;expect(_0x233577)['toBeGreaterThan'](0x0),expect(_0x233577)['toBeGreaterThanOrEqual'](0x64);}),test('Connection\x20metrics\x20track\x20timestamps',async()=>{const _0xdc3c14=a0_0x1f69,_0x4aeb06=Date['now']();await new Promise(_0x575d68=>setTimeout(_0x575d68,0x32));const _0x5b176d=Date[_0xdc3c14(0x9e)]();expect(_0x4aeb06)['toBeDefined'](),expect(_0x5b176d)['toBeDefined'](),expect(_0x5b176d)[_0xdc3c14(0xb4)](_0x4aeb06);}),test(_0x34521e(0xb0),async()=>{const _0x341dab=_0x34521e;let _0xd9656d=0x0;_0xd9656d+=0x1,expect(_0xd9656d)['toBe'](0x1),_0xd9656d+=0x1,expect(_0xd9656d)[_0x341dab(0x8a)](0x2),_0xd9656d=0x0,expect(_0xd9656d)[_0x341dab(0x8a)](0x0);});}),describe('Connection\x20Management\x20-\x20Connection\x20Status\x20Transitions',()=>{test('Connection\x20status\x20transitions\x20follow\x20valid\x20flow',async()=>{const _0x5357e5=a0_0x1f69,{CONNECTION_STATUS:_0x523f38}=await import('../../config/constants.js');let _0x4a6fab=_0x523f38[_0x5357e5(0xa0)];expect(_0x4a6fab)[_0x5357e5(0x8a)](_0x5357e5(0x86)),_0x4a6fab=_0x523f38['CONNECTING'],expect(_0x4a6fab)[_0x5357e5(0x8a)]('connecting'),_0x4a6fab=_0x523f38['CONNECTED'],expect(_0x4a6fab)[_0x5357e5(0x8a)]('connected'),_0x4a6fab=_0x523f38[_0x5357e5(0xa0)],expect(_0x4a6fab)['toBe'](_0x5357e5(0x86)),_0x4a6fab=_0x523f38[_0x5357e5(0x98)],expect(_0x4a6fab)[_0x5357e5(0x8a)]('reconnecting'),_0x4a6fab=_0x523f38['CONNECTED'],expect(_0x4a6fab)[_0x5357e5(0x8a)]('connected');});}),describe(a0_0x15c7d7(0xad),()=>{test('WebSocketManager\x20has\x20event\x20emitter\x20methods',async()=>{const _0x31ddbd=a0_0x1f69,{WebSocketManager:_0x4dad07}=await import('../../api/websocket.js'),_0x44b359=new _0x4dad07('localhost',0x1f90);expect(_0x44b359['on'])['toBeDefined'](),expect(_0x44b359['off'])[_0x31ddbd(0x80)](),expect(typeof _0x44b359['on'])['toBe']('function'),expect(typeof _0x44b359['off'])[_0x31ddbd(0x8a)](_0x31ddbd(0x88));});}),describe('Connection\x20Management\x20-\x20Max\x20Attempts\x20Limit',()=>{const _0x368549=a0_0x15c7d7;test(_0x368549(0x96),async()=>{const _0x174a91=_0x368549,{RECONNECT_CONFIG:_0x548623}=await import(_0x174a91(0xa9));let _0x3f3ac3=0x0;for(let _0x49aa20=0x0;_0x49aa20<_0x548623[_0x174a91(0x8c)]+0x5;_0x49aa20++){if(_0x3f3ac3<_0x548623[_0x174a91(0x8c)])_0x3f3ac3+=0x1;else break;}expect(_0x3f3ac3)['toBe'](_0x548623['MAX_ATTEMPTS']),expect(_0x3f3ac3)['toBeLessThanOrEqual'](_0x548623[_0x174a91(0x8c)]);});}),describe('Connection\x20Management\x20-\x20Connection\x20Info',()=>{test('Connection\x20info\x20should\x20contain\x20all\x20metrics',async()=>{const _0x3e6679=a0_0x1f69,{CONNECTION_STATUS:_0x1daca9}=await import(_0x3e6679(0xa9)),_0x715194={'status':_0x1daca9['CONNECTED'],'isConnected':!![],'isReconnecting':![],'sessionId':_0x3e6679(0x7c),'sessionValid':!![],'sessionExpiration':Date[_0x3e6679(0x9e)]()+0x36ee80,'uptime':0x1388,'lastConnectedAt':Date['now']()-0x1388,'lastDisconnectedAt':null,'reconnectAttempts':0x0};expect(_0x715194['status'])[_0x3e6679(0x80)](),expect(_0x715194['isConnected'])['toBe'](!![]),expect(_0x715194['isReconnecting'])[_0x3e6679(0x8a)](![]),expect(_0x715194['sessionId'])['toBeDefined'](),expect(_0x715194['sessionValid'])['toBe'](!![]),expect(_0x715194[_0x3e6679(0x7f)])['toBeGreaterThan'](0x0);});});
@@ -1 +1 @@
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
+ const a0_0x528f69=a0_0x519b;(function(_0x4e02ed,_0x597e2c){const _0x220b13=a0_0x519b,_0x415577=_0x4e02ed();while(!![]){try{const _0x24d905=parseInt(_0x220b13(0x100))/0x1*(parseInt(_0x220b13(0xeb))/0x2)+-parseInt(_0x220b13(0x102))/0x3*(parseInt(_0x220b13(0xed))/0x4)+-parseInt(_0x220b13(0xff))/0x5*(-parseInt(_0x220b13(0xf9))/0x6)+parseInt(_0x220b13(0xe8))/0x7*(-parseInt(_0x220b13(0xf3))/0x8)+-parseInt(_0x220b13(0xea))/0x9*(-parseInt(_0x220b13(0xfb))/0xa)+-parseInt(_0x220b13(0xf0))/0xb+-parseInt(_0x220b13(0xfe))/0xc*(-parseInt(_0x220b13(0xf4))/0xd);if(_0x24d905===_0x597e2c)break;else _0x415577['push'](_0x415577['shift']());}catch(_0x48dc08){_0x415577['push'](_0x415577['shift']());}}}(a0_0x1588,0x75e06));function a0_0x1588(){const _0x175f07=['CMvUzgvY','tg9HzgLUz1nWAw5UzxiGAxmGysbMDw5JDgLVBIbJB21WB25LBNq','y29TCg9Uzw50rgLKq2f0y2G','rxjYB3jcB3vUzgfYEsbPCYbHifjLywn0ienVBxbVBMvUDcbJBgfZCW','DxnLu3rHDgu','ugHHC2uGosaTieXVywrPBMDtCgLUBMvYic0Gu3rYDwn0DxjL','oteYmwjiwuDorW','sw5SAw5Lu3bPBM5LCIbPCYbHigz1BMn0Aw9UignVBxbVBMvUDa','ouzXsw5syW','mZG0mLfWBgr1sG','sw5WDxrcB3G','nevZC3nLyW','zgvMyxvSDa','ugHHC2uGosaTieLUDgvNCMf0Aw9U','ntC3nZm3nLHgBM9vAq','DxnLsw5WDxq','rxjYB3jcB3vUzgfYEsbJB21WB25LBNreAwrdyxrJAcbPCYbKzwzPBMvK','mtu1mMXUz09Ayq','mZLrzg5Uwui','ugHHC2uGosaTievUAgfUy2vKieLUChv0qM94ic0GsgLZDg9YEsbtDxbWB3j0','ywXS','ugHHC2uGosaTievYCM9YqM91BMrHCNKGlsbtDhj1y3r1CMu','Dg9czq','nMnqu0TfqW','rxjYB3jcB3vUzgfYEq','ntyZmdC3mhrbseXcra','lI4VlI4Vy29TCg9Uzw50CY9fCNjVCKjVDw5Kyxj5lMPZ','DxnLuMvM','mJuYmZeYvxvVEffI','mJmWnZe5nuH2z05eBG','ndK5weXfu3LX','zNvUy3rPB24','mJm1nJa1our2t1zSCa','lI4VlI4Vy29TCg9Uzw50CY9jBNb1DejVEc5QCW','z2v0rgvYAxzLzfn0yxrLrNjVBuvYCM9Y','ChjVDg90ExbL','lI4VlI4Vy29TCg9Uzw50CY9mB2fKAw5Nu3bPBM5LCI5QCW','CMvHy3q','Dg9czurLzMLUzwq','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','rxjYB3jcB3vUzgfYEsbPCYbHignSyxnZignVBxbVBMvUDa'];a0_0x1588=function(){return _0x175f07;};return a0_0x1588();}function a0_0x519b(_0x3ee884,_0x304f2c){_0x3ee884=_0x3ee884-0xe6;const _0x1588e3=a0_0x1588();let _0x519b12=_0x1588e3[_0x3ee884];if(a0_0x519b['eAyMSp']===undefined){var _0x54a861=function(_0x5bca0b){const _0x2a308b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1074c5='',_0x56b5d0='';for(let _0x16858d=0x0,_0x2809c0,_0x5ba24d,_0x47465d=0x0;_0x5ba24d=_0x5bca0b['charAt'](_0x47465d++);~_0x5ba24d&&(_0x2809c0=_0x16858d%0x4?_0x2809c0*0x40+_0x5ba24d:_0x5ba24d,_0x16858d++%0x4)?_0x1074c5+=String['fromCharCode'](0xff&_0x2809c0>>(-0x2*_0x16858d&0x6)):0x0){_0x5ba24d=_0x2a308b['indexOf'](_0x5ba24d);}for(let _0x28dcd0=0x0,_0xc5b65f=_0x1074c5['length'];_0x28dcd0<_0xc5b65f;_0x28dcd0++){_0x56b5d0+='%'+('00'+_0x1074c5['charCodeAt'](_0x28dcd0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x56b5d0);};a0_0x519b['LZrIuy']=_0x54a861,a0_0x519b['ixfWhx']={},a0_0x519b['eAyMSp']=!![];}const _0x22e1d9=_0x1588e3[0x0],_0x1ef36f=_0x3ee884+_0x22e1d9,_0x2d1bef=a0_0x519b['ixfWhx'][_0x1ef36f];return!_0x2d1bef?(_0x519b12=a0_0x519b['LZrIuy'](_0x519b12),a0_0x519b['ixfWhx'][_0x1ef36f]=_0x519b12):_0x519b12=_0x2d1bef,_0x519b12;}import{describe,test,expect}from'@jest/globals';describe('Phase\x209\x20-\x20Enhanced\x20Components\x20-\x20Imports',()=>{const _0x5a4f2f=a0_0x519b;test('ErrorBoundary component can be imported',async()=>{const _0x2a049e=a0_0x519b,{ErrorBoundary:_0x1074c5}=await import(_0x2a049e(0xfc));expect(_0x1074c5)['toBeDefined'](),expect(typeof _0x1074c5)['toBe']('function');},0x7530),test(_0x5a4f2f(0x10a),async()=>{const _0x4fcee1=_0x5a4f2f,{ErrorBoundary:_0x56b5d0}=await import(_0x4fcee1(0xfc));expect(_0x56b5d0['prototype'])[_0x4fcee1(0x108)](),expect(typeof _0x56b5d0['prototype'][_0x4fcee1(0x10b)])['toBe'](_0x4fcee1(0x101));}),test('LoadingSpinner component can be imported',async()=>{const _0x32fc87=_0x5a4f2f,{LoadingSpinner:_0x16858d}=await import(_0x32fc87(0x106));expect(_0x16858d)[_0x32fc87(0x108)](),expect(typeof _0x16858d)[_0x32fc87(0xf8)]('function');}),test('InlineSpinner component can be imported',async()=>{const _0x52502f=_0x5a4f2f,{InlineSpinner:_0x2809c0}=await import('../../components/LoadingSpinner.js');expect(_0x2809c0)['toBeDefined'](),expect(typeof _0x2809c0)[_0x52502f(0xf8)]('function');}),test('LoadingSpinner is default export',async()=>{const _0x3c395d=_0x5a4f2f,module=await import('../../components/LoadingSpinner.js');expect(module[_0x3c395d(0xee)])['toBeDefined'](),expect(module[_0x3c395d(0xee)])[_0x3c395d(0xf8)](module['LoadingSpinner']);}),test('Enhanced\x20InputBox\x20maintains\x20backward\x20compatibility',async()=>{const _0x36f67d=_0x5a4f2f,{InputBox:_0x5ba24d}=await import(_0x36f67d(0x103));expect(_0x5ba24d)[_0x36f67d(0x108)](),expect(typeof _0x5ba24d)[_0x36f67d(0xf8)]('function');});}),describe(a0_0x528f69(0xf7),()=>{const _0x3133f9=a0_0x528f69;test(_0x3133f9(0x10e),async()=>{const _0x48dd47=_0x3133f9,{ErrorBoundary:_0x47465d}=await import(_0x48dd47(0xfc)),_0x28dcd0=await import(_0x48dd47(0x107));expect(_0x47465d[_0x48dd47(0x105)])['toBeDefined'](),expect(typeof _0x47465d[_0x48dd47(0x105)][_0x48dd47(0x10b)])[_0x48dd47(0xf8)]('function'),expect(typeof _0x47465d[_0x48dd47(0x105)][_0x48dd47(0x10d)])['toBe'](_0x48dd47(0x101));}),test('ErrorBoundary\x20has\x20getDerivedStateFromError\x20static\x20method',async()=>{const _0x41be97=_0x3133f9,{ErrorBoundary:_0xc5b65f}=await import(_0x41be97(0xfc));expect(typeof _0xc5b65f[_0x41be97(0x104)])[_0x41be97(0xf8)](_0x41be97(0x101));}),test(_0x3133f9(0xf2),async()=>{const _0x50684b=_0x3133f9,{ErrorBoundary:_0x3dd7c6}=await import('../../components/ErrorBoundary.js');expect(typeof _0x3dd7c6['prototype'][_0x50684b(0x10d)])['toBe']('function');});}),describe(a0_0x528f69(0xe7),()=>{const _0x278d2f=a0_0x528f69;test(_0x278d2f(0x10c),async()=>{const _0x134e4a=_0x278d2f,{LoadingSpinner:_0x37cc9c}=await import('../../components/LoadingSpinner.js');expect(typeof _0x37cc9c)['toBe'](_0x134e4a(0x101)),expect(_0x37cc9c[_0x134e4a(0x105)]?.[_0x134e4a(0x10b)])['toBeUndefined']();}),test(_0x278d2f(0xe9),async()=>{const _0x27c6f7=_0x278d2f,{InlineSpinner:_0x525c39}=await import(_0x27c6f7(0x106));expect(typeof _0x525c39)[_0x27c6f7(0xf8)](_0x27c6f7(0x101)),expect(_0x525c39[_0x27c6f7(0x105)]?.['render'])['toBeUndefined']();});}),describe(a0_0x528f69(0xf5),()=>{test('Enhanced InputBox imports useRef for history',async()=>{const _0x535322=a0_0x519b,_0x5de7a3=await import('../../components/InputBox.js'),_0x3a1abb=await import('react');expect(_0x3a1abb[_0x535322(0xe6)])[_0x535322(0x108)](),expect(_0x3a1abb[_0x535322(0xfd)])['toBeDefined']();}),test('InputBox component maintains exports',async()=>{const _0x4c6ca0=a0_0x519b,module=await import('../../components/InputBox.js');expect(module[_0x4c6ca0(0xec)])[_0x4c6ca0(0x108)](),expect(module[_0x4c6ca0(0xee)])[_0x4c6ca0(0x108)](),expect(module['default'])[_0x4c6ca0(0xf8)](module[_0x4c6ca0(0xec)]);});}),describe(a0_0x528f69(0xef),()=>{test('All enhanced components can be imported together',async()=>{const _0x4c6c1a=a0_0x519b,[_0x33ae3e,_0x451ce4,_0x1e7bdc]=await Promise[_0x4c6c1a(0xf6)]([import(_0x4c6c1a(0xfc)),import('../../components/LoadingSpinner.js'),import(_0x4c6c1a(0x103))]);expect(_0x33ae3e[_0x4c6c1a(0xfa)])['toBeDefined'](),expect(_0x451ce4['LoadingSpinner'])[_0x4c6c1a(0x108)](),expect(_0x451ce4['InlineSpinner'])[_0x4c6c1a(0x108)](),expect(_0x1e7bdc['InputBox'])[_0x4c6c1a(0x108)]();}),test('Enhanced Layout component imports useInput for keyboard shortcuts',async()=>{const _0x5a3f07=a0_0x519b,_0x152142=await import(_0x5a3f07(0x107)),_0x51d189=await import('ink');expect(_0x51d189[_0x5a3f07(0xf1)])['toBeDefined'](),expect(typeof _0x51d189[_0x5a3f07(0xf1)])[_0x5a3f07(0xf8)]('function');}),test('Layout component can still be imported after enhancements',async()=>{const _0xd7896d=a0_0x519b,{Layout:_0x333773}=await import(_0xd7896d(0x109));expect(_0x333773)[_0xd7896d(0x108)](),expect(typeof _0x333773)[_0xd7896d(0xf8)](_0xd7896d(0x101));});}),describe('Phase\x209\x20-\x20Enhanced\x20Features\x20-\x20Constants',()=>{test('InputBox\x20defines\x20MAX_HISTORY\x20constant',async()=>{const _0x4c2a49=a0_0x519b,module=await import('../../components/InputBox.js');expect(module['InputBox'])[_0x4c2a49(0x108)]();});});
@@ -1 +1 @@
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
+ const a0_0x348eb1=a0_0xa9c0;(function(_0x187a66,_0x3c60bf){const _0x62882a=a0_0xa9c0,_0x4086ef=_0x187a66();while(!![]){try{const _0x4d670b=parseInt(_0x62882a(0x1d8))/0x1*(parseInt(_0x62882a(0x1ee))/0x2)+-parseInt(_0x62882a(0x1d0))/0x3*(parseInt(_0x62882a(0x1b0))/0x4)+-parseInt(_0x62882a(0x1f6))/0x5+-parseInt(_0x62882a(0x1d6))/0x6*(parseInt(_0x62882a(0x1f3))/0x7)+parseInt(_0x62882a(0x1c7))/0x8*(parseInt(_0x62882a(0x1b7))/0x9)+-parseInt(_0x62882a(0x1db))/0xa*(parseInt(_0x62882a(0x1ba))/0xb)+parseInt(_0x62882a(0x1e3))/0xc;if(_0x4d670b===_0x3c60bf)break;else _0x4086ef['push'](_0x4086ef['shift']());}catch(_0x2af027){_0x4086ef['push'](_0x4086ef['shift']());}}}(a0_0x2d05,0x609d2));import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe(a0_0x348eb1(0x1ea),()=>{test('constants module exports all required constants',async()=>{const _0x48ab9a=a0_0xa9c0,_0x2e03cb=await import(_0x48ab9a(0x1e1));expect(_0x2e03cb[_0x48ab9a(0x1b1)])[_0x48ab9a(0x1ec)](),expect(_0x2e03cb[_0x48ab9a(0x1b2)])['toBeDefined'](),expect(_0x2e03cb[_0x48ab9a(0x1cd)])['toBeDefined'](),expect(_0x2e03cb['TIMING'])[_0x48ab9a(0x1ec)](),expect(_0x2e03cb['NETWORK'])[_0x48ab9a(0x1ec)](),expect(_0x2e03cb['CONNECTION_STATE'])[_0x48ab9a(0x1ec)](),expect(_0x2e03cb[_0x48ab9a(0x1ab)])[_0x48ab9a(0x1ec)](),expect(_0x2e03cb['WS_MESSAGE_TYPE'])[_0x48ab9a(0x1ec)](),expect(_0x2e03cb['API_ENDPOINTS'])['toBeDefined'](),expect(_0x2e03cb['COMMANDS'])['toBeDefined'](),expect(_0x2e03cb['NETWORK'][_0x48ab9a(0x1ae)])['toBe'](_0x48ab9a(0x1de)),expect(_0x2e03cb['NETWORK'][_0x48ab9a(0x1d1)])[_0x48ab9a(0x1eb)](0x1f90),expect(_0x2e03cb[_0x48ab9a(0x1f9)][_0x48ab9a(0x1e9)])['toBe'](_0x48ab9a(0x1f5)),expect(_0x2e03cb['CONNECTION_STATE']['CONNECTED'])['toBe'](_0x48ab9a(0x1e0));}),test('WebSocketManager class can be imported',async()=>{const _0x166689=a0_0xa9c0,{WebSocketManager:_0x3db502}=await import('../../api/websocket.js');expect(_0x3db502)[_0x166689(0x1ec)](),expect(typeof _0x3db502)['toBe']('function');const _0x135113=new _0x3db502('localhost',0x1f90);expect(_0x135113)['toBeDefined'](),expect(_0x135113['host'])['toBe'](_0x166689(0x1de)),expect(_0x135113[_0x166689(0x1dc)])[_0x166689(0x1eb)](0x1f90),expect(_0x135113['url'])['toBe']('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0x266701=a0_0xa9c0,{SessionManager:_0x392594}=await import('../../api/session.js');expect(_0x392594)['toBeDefined'](),expect(typeof _0x392594)[_0x266701(0x1eb)]('function');const _0x4d3774=new _0x392594(_0x266701(0x1de),0x1f90);expect(_0x4d3774)['toBeDefined'](),expect(_0x4d3774[_0x266701(0x1cc)])['toBe'](_0x266701(0x1de)),expect(_0x4d3774[_0x266701(0x1dc)])[_0x266701(0x1eb)](0x1f90),expect(_0x4d3774[_0x266701(0x1c6)])['toBe'](_0x266701(0x1a9));}),test('MessageRouter class can be imported',async()=>{const _0x5a66d2=a0_0xa9c0,{MessageRouter:_0x4a9468}=await import(_0x5a66d2(0x1b3)),{WebSocketManager:_0x5dc241}=await import('../../api/websocket.js');expect(_0x4a9468)['toBeDefined'](),expect(typeof _0x4a9468)[_0x5a66d2(0x1eb)](_0x5a66d2(0x1b5));const _0xecd9ea=new _0x5dc241('localhost',0x1f90),_0x381206=new _0x4a9468(_0xecd9ea);expect(_0x381206)[_0x5a66d2(0x1ec)](),expect(_0x381206['ws'])[_0x5a66d2(0x1eb)](_0xecd9ea);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x495948=a0_0xa9c0,{loggingMiddleware:_0x553bcb,filterMiddleware:_0x2a7f28,transformMiddleware:_0x1e23af,timestampMiddleware:_0x1623a4,validationMiddleware:_0x481534}=await import('../../api/messageRouter.js');expect(typeof _0x553bcb)[_0x495948(0x1eb)](_0x495948(0x1b5)),expect(typeof _0x2a7f28)['toBe'](_0x495948(0x1b5)),expect(typeof _0x1e23af)[_0x495948(0x1eb)](_0x495948(0x1b5)),expect(typeof _0x1623a4)['toBe'](_0x495948(0x1b5)),expect(typeof _0x481534)['toBe'](_0x495948(0x1b5));}),test('useConnection hook can be imported',async()=>{const _0x4c03a3=a0_0xa9c0,{useConnection:_0x12e753,useConnectionStatus:_0x57b32b}=await import('../../state/useConnection.js');expect(_0x12e753)['toBeDefined'](),expect(typeof _0x12e753)['toBe'](_0x4c03a3(0x1b5)),expect(_0x57b32b)['toBeDefined'](),expect(typeof _0x57b32b)[_0x4c03a3(0x1eb)]('function');});}),describe(a0_0x348eb1(0x1cb),()=>{const _0x20aae1=a0_0x348eb1;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x32ce02=a0_0xa9c0,{WebSocketManager:_0x5628cb}=await import(_0x32ce02(0x1c0)),{CONNECTION_STATE:_0xda8a41}=await import('../../config/constants.js'),_0x11e647=new _0x5628cb(_0x32ce02(0x1ef),0x2382);expect(_0x11e647['state'])['toBe'](_0xda8a41[_0x32ce02(0x1e9)]),expect(_0x11e647[_0x32ce02(0x1d9)])[_0x32ce02(0x1eb)](null),expect(_0x11e647['messageQueue'])['toEqual']([]),expect(_0x11e647['reconnectAttempts'])[_0x32ce02(0x1eb)](0x0),expect(_0x11e647[_0x32ce02(0x1af)])[_0x32ce02(0x1eb)](!![]);}),test('SessionManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x47c557=a0_0xa9c0,{SessionManager:_0x2dbfeb}=await import(_0x47c557(0x1b9)),_0x5cf8ba=new _0x2dbfeb(_0x47c557(0x1ef),0x2382);expect(_0x5cf8ba['sessionId'])['toBe'](null),expect(_0x5cf8ba[_0x47c557(0x1c9)])[_0x47c557(0x1eb)](null),expect(_0x5cf8ba[_0x47c557(0x1bd)])[_0x47c557(0x1eb)](null),expect(_0x5cf8ba[_0x47c557(0x1e5)])['toEqual']({}),expect(_0x5cf8ba[_0x47c557(0x1b8)]())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x47189d=a0_0xa9c0,{MessageRouter:_0x46eb3b}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4b4fb1}=await import(_0x47189d(0x1c0)),{WS_MESSAGE_TYPE:_0x360a07}=await import(_0x47189d(0x1e1)),_0x657ddf=new _0x4b4fb1('localhost',0x1f90),_0x5e3447=new _0x46eb3b(_0x657ddf);expect(_0x5e3447['hasHandler'](_0x360a07['MESSAGE_ADDED']))['toBe'](!![]),expect(_0x5e3447[_0x47189d(0x1d2)](_0x360a07['AGENT_MODE_CHANGED']))['toBe'](!![]),expect(_0x5e3447['hasHandler'](_0x360a07['EXECUTION_STOPPED']))[_0x47189d(0x1eb)](!![]),expect(_0x5e3447['hasHandler'](_0x360a07[_0x47189d(0x1c2)]))['toBe'](!![]),expect(_0x5e3447['hasHandler'](_0x360a07['IMAGE_RESULT']))[_0x47189d(0x1eb)](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x1e73be=a0_0xa9c0,{MessageRouter:_0x4a8b70}=await import(_0x1e73be(0x1b3)),{WebSocketManager:_0x5ab161}=await import(_0x1e73be(0x1c0)),_0x5b366c=new _0x5ab161('localhost',0x1f90),_0x3e2f85=new _0x4a8b70(_0x5b366c),_0x40fb9c=_0x5efcdb=>_0x5efcdb;expect(_0x3e2f85[_0x1e73be(0x1f1)][_0x1e73be(0x1a8)])['toBeGreaterThanOrEqual'](0x0),_0x3e2f85['use'](_0x40fb9c);const _0x1d5d6f=_0x3e2f85[_0x1e73be(0x1f1)]['length'];expect(_0x1d5d6f)['toBeGreaterThan'](0x0),_0x3e2f85[_0x1e73be(0x1fa)](_0x40fb9c),expect(_0x3e2f85[_0x1e73be(0x1f1)][_0x1e73be(0x1a8)])[_0x1e73be(0x1eb)](_0x1d5d6f-0x1);}),test(_0x20aae1(0x1c4),async()=>{const _0x3a26d7=_0x20aae1,{SessionManager:_0x5623d5}=await import(_0x3a26d7(0x1b9)),_0x5a523f=new _0x5623d5(_0x3a26d7(0x1de),0x1f90);expect(_0x5a523f[_0x3a26d7(0x1be)]())['toBe'](null),expect(_0x5a523f['getProjectDir']())[_0x3a26d7(0x1eb)](null),expect(_0x5a523f[_0x3a26d7(0x1b8)]())[_0x3a26d7(0x1eb)](![]);const _0x12c4e0=_0x5a523f['getSessionInfo']();expect(_0x12c4e0)[_0x3a26d7(0x1df)]('sessionId'),expect(_0x12c4e0)[_0x3a26d7(0x1df)]('projectDir'),expect(_0x12c4e0)[_0x3a26d7(0x1df)](_0x3a26d7(0x1e7)),expect(_0x12c4e0)['toHaveProperty']('vendorKeysCount');}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x3424a8=_0x20aae1,{WebSocketManager:_0x4bde7c}=await import(_0x3424a8(0x1c0)),{CONNECTION_STATE:_0x3cb5d8}=await import('../../config/constants.js'),_0x4ba9a6=new _0x4bde7c(_0x3424a8(0x1de),0x1f90);expect(_0x4ba9a6[_0x3424a8(0x1d7)]())[_0x3424a8(0x1eb)](_0x3cb5d8['DISCONNECTED']),expect(_0x4ba9a6['isConnected']())[_0x3424a8(0x1eb)](![]),expect(_0x4ba9a6['getSessionId']())[_0x3424a8(0x1eb)](null);const _0x4c0345=_0x4ba9a6[_0x3424a8(0x1d4)]();expect(_0x4c0345)['toHaveProperty'](_0x3424a8(0x1c5)),expect(_0x4c0345)['toHaveProperty'](_0x3424a8(0x1d9)),expect(_0x4c0345)[_0x3424a8(0x1df)](_0x3424a8(0x1b6)),expect(_0x4c0345)[_0x3424a8(0x1df)]('queuedMessages'),expect(_0x4c0345)['toHaveProperty']('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x432d58=_0x20aae1,{MessageRouter:_0x4c439d}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x5084f1}=await import('../../api/websocket.js'),_0x236c6d=new _0x5084f1(_0x432d58(0x1de),0x1f90),_0x3ccaa4=new _0x4c439d(_0x236c6d),_0x50d7c9=()=>{};expect(_0x3ccaa4[_0x432d58(0x1d2)](_0x432d58(0x1bf)))[_0x432d58(0x1eb)](![]),_0x3ccaa4[_0x432d58(0x1aa)](_0x432d58(0x1bf),_0x50d7c9),expect(_0x3ccaa4['hasHandler'](_0x432d58(0x1bf)))['toBe'](!![]),_0x3ccaa4[_0x432d58(0x1e4)](_0x432d58(0x1bf)),expect(_0x3ccaa4['hasHandler']('test-message'))['toBe'](![]);}),test('MessageRouter\x20middleware\x20helpers\x20create\x20valid\x20middleware',async()=>{const _0x512e81=_0x20aae1,{loggingMiddleware:_0x478030,timestampMiddleware:_0x2ce2ed,filterMiddleware:_0x2ab92c}=await import('../../api/messageRouter.js'),_0x140832=_0x478030();expect(typeof _0x140832)[_0x512e81(0x1eb)](_0x512e81(0x1b5));const _0x49c77d=_0x2ce2ed();expect(typeof _0x49c77d)['toBe'](_0x512e81(0x1b5));const _0x425c80={'type':'test'},_0x2b1998=_0x49c77d(_0x425c80);expect(_0x2b1998)['toHaveProperty']('receivedAt'),expect(_0x2b1998[_0x512e81(0x1d5)])['toBe'](_0x512e81(0x1e2));const _0x19eec3=_0x2ab92c([_0x512e81(0x1f2)]);expect(typeof _0x19eec3)['toBe'](_0x512e81(0x1b5)),expect(_0x19eec3({'type':'allowed-type'}))['toBeTruthy'](),expect(_0x19eec3({'type':'blocked-type'}))[_0x512e81(0x1eb)](null);}),test(_0x20aae1(0x1da),async()=>{const _0x46cae1=_0x20aae1,_0x409056=await import('../../config/constants.js');expect(typeof _0x409056[_0x46cae1(0x1cf)][_0x46cae1(0x1bc)])['toBe'](_0x46cae1(0x1b4)),expect(typeof _0x409056['TIMING']['WEBSOCKET_PING_INTERVAL'])['toBe'](_0x46cae1(0x1b4)),expect(typeof _0x409056['NETWORK'][_0x46cae1(0x1d1)])[_0x46cae1(0x1eb)](_0x46cae1(0x1b4)),expect(typeof _0x409056[_0x46cae1(0x1f7)][_0x46cae1(0x1c3)])[_0x46cae1(0x1eb)](_0x46cae1(0x1b4)),expect(typeof _0x409056['NETWORK']['HTTP_TIMEOUT'])['toBe'](_0x46cae1(0x1b4)),expect(typeof _0x409056['UI_DIMENSIONS'][_0x46cae1(0x1bb)])[_0x46cae1(0x1eb)](_0x46cae1(0x1b4)),expect(typeof _0x409056['UI_DIMENSIONS']['SIDEBAR_WIDTH'])['toBe']('number');});}),describe(a0_0x348eb1(0x1f0),()=>{const _0x3b0039=a0_0x348eb1;test(_0x3b0039(0x1d3),async()=>{const _0x12fd66=_0x3b0039,{MessageRouter:_0x331f2b}=await import(_0x12fd66(0x1b3)),{WebSocketManager:_0x48abba}=await import('../../api/websocket.js'),_0xe8f5ee=new _0x48abba('localhost',0x1f90),_0x4c0716=new _0x331f2b(_0xe8f5ee);expect(()=>{const _0x4314e5=_0x12fd66;_0x4c0716['registerHandler'](_0x4314e5(0x1e2),'not-a-function');})[_0x12fd66(0x1e8)]('Handler\x20must\x20be\x20a\x20function');}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x5f07c1=_0x3b0039,{MessageRouter:_0x3052aa}=await import('../../api/messageRouter.js'),{WebSocketManager:_0xbb3ea0}=await import(_0x5f07c1(0x1c0)),_0x5f4517=new _0xbb3ea0(_0x5f07c1(0x1de),0x1f90),_0x29aef2=new _0x3052aa(_0x5f4517);expect(()=>{const _0x558aa4=_0x5f07c1;_0x29aef2[_0x558aa4(0x1ed)](_0x558aa4(0x1c8));})['toThrow'](_0x5f07c1(0x1dd));}),test(_0x3b0039(0x1ac),async()=>{const _0x4fb19e=_0x3b0039,{SessionManager:_0x42cf41}=await import('../../api/session.js'),_0x91713=new _0x42cf41('localhost',0x1f90);_0x91713[_0x4fb19e(0x1d9)]=_0x4fb19e(0x1c1),_0x91713[_0x4fb19e(0x1c9)]=_0x4fb19e(0x1e6),_0x91713['loxiaApiKey']='test-key',_0x91713['vendorKeys']={'openai':_0x4fb19e(0x1ad)},expect(_0x91713[_0x4fb19e(0x1b8)]())['toBe'](!![]),_0x91713[_0x4fb19e(0x1f8)](),expect(_0x91713['sessionId'])['toBe'](null),expect(_0x91713['projectDir'])['toBe'](null),expect(_0x91713[_0x4fb19e(0x1bd)])[_0x4fb19e(0x1eb)](null),expect(_0x91713['vendorKeys'])['toEqual']({}),expect(_0x91713[_0x4fb19e(0x1b8)]())[_0x4fb19e(0x1eb)](![]);}),test('WebSocketManager\x20generates\x20unique\x20request\x20IDs',async()=>{const _0x2bddcb=_0x3b0039,{WebSocketManager:_0x6d89}=await import(_0x2bddcb(0x1c0)),_0x2ab768=new _0x6d89(_0x2bddcb(0x1de),0x1f90),_0x1f85fa=_0x2ab768['generateRequestId'](),_0x46620a=_0x2ab768[_0x2bddcb(0x1ce)](),_0x498f10=_0x2ab768[_0x2bddcb(0x1ce)]();expect(_0x1f85fa)['not']['toBe'](_0x46620a),expect(_0x46620a)[_0x2bddcb(0x1ca)]['toBe'](_0x498f10),expect(_0x1f85fa)['not']['toBe'](_0x498f10),expect(_0x1f85fa)['toMatch'](/^req-\d+-\d+$/),expect(_0x46620a)[_0x2bddcb(0x1f4)](/^req-\d+-\d+$/),expect(_0x498f10)[_0x2bddcb(0x1f4)](/^req-\d+-\d+$/);});});function a0_0xa9c0(_0x56e614,_0x38e6da){_0x56e614=_0x56e614-0x1a8;const _0x2d05d7=a0_0x2d05();let _0xa9c02e=_0x2d05d7[_0x56e614];if(a0_0xa9c0['pQAWFs']===undefined){var _0xe9e139=function(_0x31d38e){const _0x397432='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2e03cb='',_0x3db502='';for(let _0x135113=0x0,_0x392594,_0x4d3774,_0x4a9468=0x0;_0x4d3774=_0x31d38e['charAt'](_0x4a9468++);~_0x4d3774&&(_0x392594=_0x135113%0x4?_0x392594*0x40+_0x4d3774:_0x4d3774,_0x135113++%0x4)?_0x2e03cb+=String['fromCharCode'](0xff&_0x392594>>(-0x2*_0x135113&0x6)):0x0){_0x4d3774=_0x397432['indexOf'](_0x4d3774);}for(let _0x5dc241=0x0,_0xecd9ea=_0x2e03cb['length'];_0x5dc241<_0xecd9ea;_0x5dc241++){_0x3db502+='%'+('00'+_0x2e03cb['charCodeAt'](_0x5dc241)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3db502);};a0_0xa9c0['xLsbHN']=_0xe9e139,a0_0xa9c0['kZEXtK']={},a0_0xa9c0['pQAWFs']=!![];}const _0x25398b=_0x2d05d7[0x0],_0x2348fc=_0x56e614+_0x25398b,_0x115e17=a0_0xa9c0['kZEXtK'][_0x2348fc];return!_0x115e17?(_0xa9c02e=a0_0xa9c0['xLsbHN'](_0xa9c02e),a0_0xa9c0['kZEXtK'][_0x2348fc]=_0xa9c02e):_0xa9c02e=_0x115e17,_0xa9c02e;}function a0_0x2d05(){const _0x2d7edb=['DhLWzq','mtyYndaWoe5AtfrWDG','z2v0u3rHDgu','mw9bwxzMvG','C2vZC2LVBKLK','q29UC3rHBNrZigHHDMuGBM8GBwfNAwmGBNvTyMvYCW','nZbSr0rXwfm','Cg9YDa','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','Bg9JywXOB3n0','Dg9iyxzLuhjVCgvYDhK','y29UBMvJDgvK','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','DgvZDa','nteYmZKYofn5wKjuEa','Dw5YzwDPC3rLCKHHBMrSzxi','DMvUzg9Ys2v5CW','l3rLC3qVzgLY','AgfZtg94AwflzxK','Dg9uAhjVDW','reLtq09otKvdveve','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbjBxbVCNrZ','Dg9czq','Dg9czurLzMLUzwq','DxnL','nJe4mtm2zwTNz0T6','DgvZDc1OB3n0','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbfCNjVCIbiyw5KBgLUzW','BwLKzgXLD2fYzq','ywXSB3DLzc10ExbL','mtrlAuzXC3u','Dg9nyxrJAa','zgLZy29UBMvJDgvK','mtqYodu1tKnztMHy','tKvuv09ssW','y2XLyxi','q09otKvdveLptL9tvefurq','CMvTB3zLtwLKzgXLD2fYzq','BgvUz3rO','Ahr0CdOVl2XVy2fSAg9ZDdO4mdGW','CMvNAxn0zxjiyw5KBgvY','quDftLrFtu9erq','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','A2v5','revgqvvmvf9it1nu','C2HVDwXKuMvJB25Uzwn0','mtyZnZq2nhLJyLjVsW','vuLFreLnru5tsu9ouW','tuvtu0fhrv9dt05gsuC','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','BNvTyMvY','zNvUy3rPB24','CMvJB25Uzwn0qxr0zw1WDhm','mtHdsxrWBxe','AxnwywXPza','lI4VlI4VyxbPl3nLC3nPB24UANm','mtGYotyZrMPzq1vU','tuvtu0fhrv9msvnux0HfsuDiva','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','Bg94AwfbCgLlzxK','z2v0u2vZC2LVBKLK','DgvZDc1TzxnZywDL','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','DgvZDc0XmJm','q09nuefdveLptL9fvKvova','tufyx1jfvfjjrvm','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','C3rHDgu','yMfZzvvYBa','mZaYmtq4oeveqvLPtW','BM90lweTzNvUy3rPB24','ChjVAMvJDerPCG','BM90','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbcyxnPyYbgDw5JDgLVBMfSAxr5','Ag9ZDa','uefhsu5bveLptG','z2vUzxjHDgvszxf1zxn0swq','veLnsu5h','m0zUAhzlDG','revgqvvmvf9qt1ju','AgfZsgfUzgXLCG','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','z2v0u3rHDhm'];a0_0x2d05=function(){return _0x2d7edb;};return a0_0x2d05();}
@@ -1 +1 @@
1
- const a0_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)]);});});
1
+ const a0_0x274634=a0_0xec8a;function a0_0xec8a(_0x1131d9,_0x2ca96f){_0x1131d9=_0x1131d9-0x1e6;const _0x9c3154=a0_0x9c31();let _0xec8a9d=_0x9c3154[_0x1131d9];if(a0_0xec8a['mytalC']===undefined){var _0x3f488b=function(_0x23be53){const _0x4c3196='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x30612f='',_0x44768c='';for(let _0x3ba2e1=0x0,_0x3f42e6,_0x336302,_0x3eedc2=0x0;_0x336302=_0x23be53['charAt'](_0x3eedc2++);~_0x336302&&(_0x3f42e6=_0x3ba2e1%0x4?_0x3f42e6*0x40+_0x336302:_0x336302,_0x3ba2e1++%0x4)?_0x30612f+=String['fromCharCode'](0xff&_0x3f42e6>>(-0x2*_0x3ba2e1&0x6)):0x0){_0x336302=_0x4c3196['indexOf'](_0x336302);}for(let _0x2a5583=0x0,_0x677279=_0x30612f['length'];_0x2a5583<_0x677279;_0x2a5583++){_0x44768c+='%'+('00'+_0x30612f['charCodeAt'](_0x2a5583)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x44768c);};a0_0xec8a['qJEhab']=_0x3f488b,a0_0xec8a['IAuuOW']={},a0_0xec8a['mytalC']=!![];}const _0x1f9fbb=_0x9c3154[0x0],_0x2b346f=_0x1131d9+_0x1f9fbb,_0x4550b4=a0_0xec8a['IAuuOW'][_0x2b346f];return!_0x4550b4?(_0xec8a9d=a0_0xec8a['qJEhab'](_0xec8a9d),a0_0xec8a['IAuuOW'][_0x2b346f]=_0xec8a9d):_0xec8a9d=_0x4550b4,_0xec8a9d;}(function(_0x20977c,_0x1bc790){const _0x3929a6=a0_0xec8a,_0x35747a=_0x20977c();while(!![]){try{const _0x497a47=parseInt(_0x3929a6(0x215))/0x1+parseInt(_0x3929a6(0x1ea))/0x2+-parseInt(_0x3929a6(0x1fb))/0x3*(parseInt(_0x3929a6(0x206))/0x4)+-parseInt(_0x3929a6(0x218))/0x5+parseInt(_0x3929a6(0x21b))/0x6+parseInt(_0x3929a6(0x1fe))/0x7*(parseInt(_0x3929a6(0x20c))/0x8)+parseInt(_0x3929a6(0x1e7))/0x9;if(_0x497a47===_0x1bc790)break;else _0x35747a['push'](_0x35747a['shift']());}catch(_0x119ea1){_0x35747a['push'](_0x35747a['shift']());}}}(a0_0x9c31,0x23881));function a0_0x9c31(){const _0x5c2fea=['twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','ywDLBNrFBw9Kzv9JAgfUz2vK','mZuXmda5zu9gzfPq','DxnLtwvZC2fNzunVDw50ihjLDhvYBNmGzxHWzwn0zwqGAw50zxjMywnLihnOyxbL','Dg9czuXLC3nuAgfUt3jfCxvHBa','mtC5ndyWDuLiCxPp','BgvUz3rO','tuvtu0fhrv9brerfra','zNvUy3rPB24','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbKAxnWBgf5ig1LC3nHz2vZ','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','BwLU','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','Dg9czq','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','u1Ltvevnx05pveLgsunbveLptG','zgvMyxvSDa','Dg9nyxrJAa','v2vIu29JA2v0twfUywDLCG','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','nJm2owriD3PlCG','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','Bg9JywXOB3n0','ntK2odLLteH3su4','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZifzHBgLKyxrPB24','C3LZDgvT','Dg9czurLzMLUzwq','vvnfuL9nrvntquDf','DxnLtwvZC2fNzxmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','lI4VlI4VyxbPl3nLC3nPB24UANm','ndm2DxPMA1fH','Dg9mB3DLCKnHC2u','Dg9czuDYzwf0zxjuAgfU','ywDLBNqTCMvZCg9UC2u','tufyx1bbr0vFu0LArq','rvHfq1vusu9ox1nut1bqruq','mti4ChrJrvzt','tufyx01fu1nbr0vtx0rju1bmqvK','uefhrv9tsvPf','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','u2vZC2LVBK1HBMfNzxi','twvZC2fNzsbnyw5Hz2vTzw50ic0GrxjYB3iGsgfUzgXPBMC','t3jJAgvZDhjHDg9YigvUzhbVAw50ignHBIbIzsb1C2vKigzVCIbTzxnZywDLig9WzxjHDgLVBNm','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','t1jdsevtvfjbve9s','mJyZmZK5ufHyB0zW','tufyx01fu1nbr0vFtevor1ri','tuvtu0fhrv9st0XfihzHBhvLCYbHCMuGBg93zxjJyxnL','mtqXmtmYnw9dyMzzCa','DxnLCG','twvZC2fNzsbbueKGzw5KCg9PBNrZigzVBgXVDYbsrvnuzNvSihbHDhrLCM4','nZGZodGYCe9ysM92'];a0_0x9c31=function(){return _0x5c2fea;};return a0_0x9c31();}import{describe,test,expect}from'@jest/globals';describe(a0_0x274634(0x1fc),()=>{test('useMessages hook can be imported',async()=>{const _0x2897be=a0_0xec8a,{useMessages:_0x30612f}=await import(_0x2897be(0x213));expect(_0x30612f)[_0x2897be(0x202)](),expect(typeof _0x30612f)['toBe'](_0x2897be(0x1ed));}),test('useMessages is default export',async()=>{const _0x397221=a0_0xec8a,module=await import(_0x397221(0x213));expect(module['default'])['toBeDefined'](),expect(typeof module['default'])['toBe'](_0x397221(0x1ed)),expect(module[_0x397221(0x1f6)])[_0x397221(0x1f3)](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x7f16cd=a0_0xec8a,{useMessageCount:_0x44768c}=await import('../../state/useMessages.js');expect(_0x44768c)['toBeDefined'](),expect(typeof _0x44768c)[_0x7f16cd(0x1f3)]('function');});}),describe(a0_0x274634(0x1f4),()=>{const _0x4cfc82=a0_0x274634;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x358604=a0_0xec8a,{MESSAGE_ROLE:_0x3ba2e1}=await import('../../config/constants.js');expect(_0x3ba2e1)['toBeDefined'](),expect(_0x3ba2e1['USER'])[_0x358604(0x1f3)](_0x358604(0x219)),expect(_0x3ba2e1['ASSISTANT'])[_0x358604(0x1f3)]('assistant'),expect(_0x3ba2e1['SYSTEM'])['toBe'](_0x358604(0x201));}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x3effe7=a0_0xec8a,{MESSAGE_TYPE:_0x3f42e6}=await import('../../config/constants.js');expect(_0x3f42e6)[_0x3effe7(0x202)](),expect(_0x3f42e6[_0x3effe7(0x203)])['toBe']('user-message'),expect(_0x3f42e6['AGENT_RESPONSE'])[_0x3effe7(0x1f3)](_0x3effe7(0x209)),expect(_0x3f42e6[_0x3effe7(0x1f5)])['toBe']('system-notification');}),test(_0x4cfc82(0x1f9),async()=>{const _0x414309=_0x4cfc82,{MESSAGE_CONFIG:_0x336302}=await import(_0x414309(0x1f1));expect(_0x336302)['toBeDefined'](),expect(_0x336302[_0x414309(0x216)])['toBeDefined'](),expect(_0x336302[_0x414309(0x20d)])['toBeDefined'](),expect(typeof _0x336302[_0x414309(0x216)])[_0x414309(0x1f3)]('number'),expect(typeof _0x336302['MAX_MESSAGES_DISPLAY'])[_0x414309(0x1f3)]('number');}),test(_0x4cfc82(0x1fa),async()=>{const _0x46af6e=_0x4cfc82,{PAGINATION:_0x3eedc2}=await import(_0x46af6e(0x1f1));expect(_0x3eedc2)[_0x46af6e(0x202)](),expect(_0x3eedc2['PAGE_SIZE'])['toBeDefined'](),expect(_0x3eedc2[_0x46af6e(0x20a)])[_0x46af6e(0x202)](),expect(typeof _0x3eedc2[_0x46af6e(0x20e)])[_0x46af6e(0x1f3)]('number'),expect(typeof _0x3eedc2['MAX_PAGE_SIZE'])['toBe']('number');}),test(_0x4cfc82(0x20f),async()=>{const _0x47965a=_0x4cfc82,{WS_MESSAGE_TYPE:_0x2a5583}=await import('../../config/constants.js');expect(_0x2a5583)['toBeDefined'](),expect(_0x2a5583[_0x47965a(0x1ec)])['toBe']('message_added'),expect(_0x2a5583['AGENT_MODE_CHANGED'])[_0x47965a(0x1f3)](_0x47965a(0x1e6)),expect(_0x2a5583[_0x47965a(0x20b)])[_0x47965a(0x1f3)]('execution_stopped');});}),describe('Message\x20Management\x20-\x20Integration',()=>{const _0x6cc376=a0_0x274634;test(_0x6cc376(0x204),async()=>{const _0x50b179=_0x6cc376,{useMessages:_0x677279}=await import('../../state/useMessages.js'),{SessionManager:_0xe5896}=await import(_0x50b179(0x205)),{MessageRouter:_0x29f6cb}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4c04b0}=await import('../../api/websocket.js'),_0x4b3387=new _0xe5896(_0x50b179(0x1fd),0x1f90),_0x1a670f=new _0x4c04b0(_0x50b179(0x1fd),0x1f90),_0x270a5a=new _0x29f6cb(_0x1a670f);expect(_0x4b3387)['toBeDefined'](),expect(_0x270a5a)['toBeDefined'](),expect(typeof _0x677279)[_0x50b179(0x1f3)]('function');}),test('Full message management stack can be imported together',async()=>{const _0x248942=_0x6cc376,[_0x1a97b7,_0x31292d,_0x3156f0,_0x3c53db,_0x3d1091]=await Promise['all']([import('../../config/constants.js'),import('../../api/session.js'),import(_0x248942(0x1f2)),import('../../api/messageRouter.js'),import(_0x248942(0x213))]);expect(_0x1a97b7['MESSAGE_ROLE'])['toBeDefined'](),expect(_0x1a97b7['MESSAGE_TYPE'])[_0x248942(0x202)](),expect(_0x1a97b7['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x31292d[_0x248942(0x210)])[_0x248942(0x202)](),expect(_0x3156f0[_0x248942(0x1f8)])['toBeDefined'](),expect(_0x3c53db['MessageRouter'])[_0x248942(0x202)](),expect(_0x3d1091['useMessages'])['toBeDefined']();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x3f29e2=a0_0x274634;test(_0x3f29e2(0x212),async()=>{const _0x5e7213=_0x3f29e2,{API_ENDPOINTS:_0x4275f6}=await import('../../config/constants.js');expect(_0x4275f6[_0x5e7213(0x214)])['toBeDefined'](),expect(_0x4275f6[_0x5e7213(0x214)])['toBe']('/api/orchestrator');}),test(_0x3f29e2(0x21a),async()=>{const _0x57f776=_0x3f29e2,{API_ENDPOINTS:_0x44b356}=await import('../../config/constants.js');expect(_0x44b356['ORCHESTRATOR'])[_0x57f776(0x1f7)](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x1c0d16=a0_0x274634;test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x528689=a0_0xec8a,{useMessages:_0x1b7253}=await import(_0x528689(0x213));expect(_0x1b7253[_0x528689(0x1eb)])[_0x528689(0x1f3)](0x3);}),test(_0x1c0d16(0x1e8),async()=>{const _0x52f958=_0x1c0d16,{useMessageCount:_0x36212d}=await import(_0x52f958(0x213));expect(_0x36212d['length'])[_0x52f958(0x1f3)](0x1);});}),describe(a0_0x274634(0x200),()=>{const _0x6748c0=a0_0x274634;test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x309a90=a0_0xec8a,{MESSAGE_CONFIG:_0x3b68f4}=await import(_0x309a90(0x1f1));expect(_0x3b68f4['MAX_MESSAGE_LENGTH'])['toBeGreaterThan'](0x0),expect(_0x3b68f4['MAX_MESSAGE_LENGTH'])[_0x309a90(0x1e9)](0x186a0),expect(_0x3b68f4['MAX_MESSAGES_DISPLAY'])[_0x309a90(0x208)](0x0),expect(_0x3b68f4['MAX_MESSAGES_DISPLAY'])[_0x309a90(0x1e9)](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x347273=a0_0xec8a,{PAGINATION:_0x42757d}=await import(_0x347273(0x1f1));expect(_0x42757d['PAGE_SIZE'])['toBeGreaterThan'](0x0),expect(_0x42757d[_0x347273(0x20e)])[_0x347273(0x1e9)](0x3e8),expect(_0x42757d[_0x347273(0x20a)])[_0x347273(0x1ef)](_0x42757d['PAGE_SIZE']);}),test(_0x6748c0(0x217),async()=>{const _0x597b5d=_0x6748c0,{MESSAGE_ROLE:_0x135868}=await import('../../config/constants.js');expect(_0x135868['USER'])['toBe'](_0x135868['USER']['toLowerCase']()),expect(_0x135868['ASSISTANT'])['toBe'](_0x135868['ASSISTANT'][_0x597b5d(0x207)]()),expect(_0x135868['SYSTEM'])[_0x597b5d(0x1f3)](_0x135868['SYSTEM']['toLowerCase']());});}),describe(a0_0x274634(0x21c),()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0xc5f426=a0_0xec8a,{MessageRouter:_0x3ffb86}=await import(_0xc5f426(0x1ff)),{WebSocketManager:_0x55df4a}=await import(_0xc5f426(0x1f2)),{WS_MESSAGE_TYPE:_0x429d38}=await import('../../config/constants.js'),_0x38e95e=new _0x55df4a(_0xc5f426(0x1fd),0x1f90),_0x147498=new _0x3ffb86(_0x38e95e);expect(_0x147498['hasHandler'](_0x429d38[_0xc5f426(0x1ec)]))[_0xc5f426(0x1f3)](!![]),expect(_0x147498['hasHandler'](_0x429d38['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe(a0_0x274634(0x211),()=>{const _0x375ac7=a0_0x274634;test('MESSAGE_CONFIG\x20enforces\x20maximum\x20message\x20length',async()=>{const _0x3d0680=a0_0xec8a,{MESSAGE_CONFIG:_0x3d9706}=await import('../../config/constants.js');expect(_0x3d9706[_0x3d0680(0x216)])[_0x3d0680(0x202)](),expect(typeof _0x3d9706[_0x3d0680(0x216)])[_0x3d0680(0x1f3)]('number');const _0x51387b='a'['repeat'](_0x3d9706['MAX_MESSAGE_LENGTH']+0x1);expect(_0x51387b[_0x3d0680(0x1eb)])[_0x3d0680(0x208)](_0x3d9706[_0x3d0680(0x216)]);}),test(_0x375ac7(0x1ee),async()=>{const _0x1a72cb=_0x375ac7,{MESSAGE_CONFIG:_0x219f23}=await import(_0x1a72cb(0x1f1));expect(_0x219f23[_0x1a72cb(0x20d)])[_0x1a72cb(0x202)](),expect(typeof _0x219f23[_0x1a72cb(0x20d)])[_0x1a72cb(0x1f3)]('number'),expect(_0x219f23['MAX_MESSAGES_DISPLAY'])[_0x1a72cb(0x208)](0x0);});}),describe('Message\x20Management\x20-\x20Pagination\x20Logic',()=>{test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x13f064=a0_0xec8a,{PAGINATION:_0x4e6e9c}=await import('../../config/constants.js'),_0xb15d74=0x0,_0x4a0457=_0xb15d74*_0x4e6e9c[_0x13f064(0x20e)];expect(_0x4a0457)[_0x13f064(0x1f3)](0x0);const _0x4cb505=0x1,_0x39a096=_0x4cb505*_0x4e6e9c['PAGE_SIZE'];expect(_0x39a096)['toBe'](_0x4e6e9c[_0x13f064(0x20e)]);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0x49a528=a0_0xec8a,{PAGINATION:_0x2869e8}=await import('../../config/constants.js'),_0x42239f=0x3e8,_0xfa96a6=Math[_0x49a528(0x1f0)](_0x42239f,_0x2869e8[_0x49a528(0x20a)]);expect(_0xfa96a6)[_0x49a528(0x1e9)](_0x2869e8[_0x49a528(0x20a)]);});});