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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
+ function a0_0xfda6(){const _0x816b26=['lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','ugHHC2uGmtaGlsbtzwfYy2Hqyw5LBcaTifn0CNvJDhvYzq','mJCYmZm3nwHtzwnlzW','odqWnteXBgHKuwjk','lI4VlI4Vy29TCg9Uzw50CY9bz2vUDenYzwf0B3iUANm','mZm1mtmYmgn4uKXosW','zgvMyxvSDa','mtm4mZuZmhHNt1vQAq','u2v0DgLUz3nqyw5LBa','sgvSCfbHBMvS','ugHHC2uGmtaGlsbbzhzHBMnLzcbgzwf0DxjLCYaTieLTCg9YDhm','qwDLBNrtD2L0y2HLCIbPCYbHigz1BMn0Aw9UignVBxbVBMvUDa','mtCZodHbDLrKr3q','zNvUy3rPB24','mJK3BMniswTY','C2L6zq','u2vHCMnOugfUzwW','lI4VlI4Vy29TCg9Uzw50CY9bz2vUDfn3AxrJAgvYlMPZ','nKfvz3HYCq','qwDLBNrtD2L0y2HLCG','otq5mfLVqKXzwG','u2v0DgLUz3nqyw5LBcbPCYbHigz1BMn0Aw9UignVBxbVBMvUDa','u2vHCMnOugfUzwWGAxmGysbMDw5JDgLVBIbJB21WB25LBNq','qwDLBNrdCMvHDg9YigrLzMLUzxmGC3rLCcbJB25ZDgfUDhm','Dg9czvvUzgvMAw5Lza','Aw5R','mtC4ndrjCxbqt2y','BgvUz3rO','vgv4Da','A2v5CW','ChjVDg90ExbL','lI4VlI4Vy29TCg9Uzw50CY9izwXWugfUzwWUANm','lI4VlI4Vy29TCg9Uzw50CY9tzwfYy2Hqyw5LBc5QCW','ywXS','Dg9czurLzMLUzwq','CMvUzgvY','qwXSifbOyxnLideWignVBxbVBMvUDhmGDxnLifjLywn0igfUzcbjBMS','qM94','Dg9czq','ntKZmZyWmffmAfb6sW','lI4VlI4Vy29TCg9Uzw50CY9tzxr0Aw5NC1bHBMvSlMPZ'];a0_0xfda6=function(){return _0x816b26;};return a0_0xfda6();}function a0_0xf27f(_0x53367f,_0x2f51fc){_0x53367f=_0x53367f-0x194;const _0xfda630=a0_0xfda6();let _0xf27fcc=_0xfda630[_0x53367f];if(a0_0xf27f['rcFNDv']===undefined){var _0x32549d=function(_0x36cfc9){const _0x1046f3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3ab00c='',_0x4b807c='';for(let _0x1dab64=0x0,_0x127448,_0x4335c6,_0x16a901=0x0;_0x4335c6=_0x36cfc9['charAt'](_0x16a901++);~_0x4335c6&&(_0x127448=_0x1dab64%0x4?_0x127448*0x40+_0x4335c6:_0x4335c6,_0x1dab64++%0x4)?_0x3ab00c+=String['fromCharCode'](0xff&_0x127448>>(-0x2*_0x1dab64&0x6)):0x0){_0x4335c6=_0x1046f3['indexOf'](_0x4335c6);}for(let _0x56561b=0x0,_0x4c3c0f=_0x3ab00c['length'];_0x56561b<_0x4c3c0f;_0x56561b++){_0x4b807c+='%'+('00'+_0x3ab00c['charCodeAt'](_0x56561b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4b807c);};a0_0xf27f['jyECKa']=_0x32549d,a0_0xf27f['pMTALs']={},a0_0xf27f['rcFNDv']=!![];}const _0x131502=_0xfda630[0x0],_0xabe6b3=_0x53367f+_0x131502,_0x503acb=a0_0xf27f['pMTALs'][_0xabe6b3];return!_0x503acb?(_0xf27fcc=a0_0xf27f['jyECKa'](_0xf27fcc),a0_0xf27f['pMTALs'][_0xabe6b3]=_0xf27fcc):_0xf27fcc=_0x503acb,_0xf27fcc;}const a0_0x306b57=a0_0xf27f;(function(_0x2d682e,_0x1f78a1){const _0x32a3fc=a0_0xf27f,_0x54b814=_0x2d682e();while(!![]){try{const _0x1d5df0=-parseInt(_0x32a3fc(0x19d))/0x1+parseInt(_0x32a3fc(0x1a1))/0x2+-parseInt(_0x32a3fc(0x1a8))/0x3*(parseInt(_0x32a3fc(0x1b4))/0x4)+parseInt(_0x32a3fc(0x19c))/0x5*(-parseInt(_0x32a3fc(0x1ac))/0x6)+parseInt(_0x32a3fc(0x19f))/0x7+-parseInt(_0x32a3fc(0x198))/0x8+-parseInt(_0x32a3fc(0x1a6))/0x9*(-parseInt(_0x32a3fc(0x1ae))/0xa);if(_0x1d5df0===_0x1f78a1)break;else _0x54b814['push'](_0x54b814['shift']());}catch(_0x4e87f6){_0x54b814['push'](_0x54b814['shift']());}}}(a0_0xfda6,0x6a50c));import{describe,test,expect}from'@jest/globals';describe(a0_0x306b57(0x1a4),()=>{test('AgentSwitcher component can be imported',async()=>{const _0x253c2e=a0_0xf27f,{AgentSwitcher:_0x3ab00c}=await import(_0x253c2e(0x1ab));expect(_0x3ab00c)[_0x253c2e(0x1bc)](),expect(typeof _0x3ab00c)[_0x253c2e(0x197)]('function');},0x7530),test('AgentCreator component can be imported',async()=>{const _0xb0c24=a0_0xf27f,{AgentCreator:_0x4b807c}=await import(_0xb0c24(0x19e));expect(_0x4b807c)['toBeDefined'](),expect(typeof _0x4b807c)['toBe'](_0xb0c24(0x1a7));}),test('SettingsPanel component can be imported',async()=>{const _0x5cd6cd=a0_0xf27f,{SettingsPanel:_0x1dab64}=await import('../../components/SettingsPanel.js');expect(_0x1dab64)[_0x5cd6cd(0x1bc)](),expect(typeof _0x1dab64)[_0x5cd6cd(0x197)](_0x5cd6cd(0x1a7));}),test('SearchPanel component can be imported',async()=>{const _0x1a161c=a0_0xf27f,{SearchPanel:_0x127448}=await import('../../components/SearchPanel.js');expect(_0x127448)['toBeDefined'](),expect(typeof _0x127448)['toBe'](_0x1a161c(0x1a7));}),test('HelpPanel component can be imported',async()=>{const _0x5448dc=a0_0xf27f,{HelpPanel:_0x4335c6}=await import(_0x5448dc(0x1b9));expect(_0x4335c6)['toBeDefined'](),expect(typeof _0x4335c6)['toBe'](_0x5448dc(0x1a7));});}),describe('Phase\x2010\x20-\x20AgentSwitcher\x20-\x20Structure',()=>{const _0x52cf62=a0_0x306b57;test(_0x52cf62(0x1a5),async()=>{const _0x43a274=_0x52cf62,{AgentSwitcher:_0x16a901}=await import(_0x43a274(0x1ab));expect(typeof _0x16a901)['toBe'](_0x43a274(0x1a7)),expect(_0x16a901['prototype']?.['render'])['toBeUndefined']();}),test('AgentSwitcher is default export',async()=>{const _0xd855a5=_0x52cf62,module=await import('../../components/AgentSwitcher.js');expect(module['default'])[_0xd855a5(0x1bc)](),expect(module[_0xd855a5(0x1a0)])['toBe'](module[_0xd855a5(0x1ad)]);});}),describe('Phase\x2010\x20-\x20AgentCreator\x20-\x20Structure',()=>{test('AgentCreator\x20is\x20a\x20function\x20component',async()=>{const _0x51374f=a0_0xf27f,{AgentCreator:_0x56561b}=await import('../../components/AgentCreator.js');expect(typeof _0x56561b)['toBe'](_0x51374f(0x1a7)),expect(_0x56561b['prototype']?.[_0x51374f(0x194)])[_0x51374f(0x1b2)]();}),test('AgentCreator is default export',async()=>{const _0x236b77=a0_0xf27f,module=await import(_0x236b77(0x19e));expect(module[_0x236b77(0x1a0)])['toBeDefined'](),expect(module[_0x236b77(0x1a0)])['toBe'](module['AgentCreator']);});}),describe('Phase\x2010\x20-\x20SettingsPanel\x20-\x20Structure',()=>{const _0x54e4c1=a0_0x306b57;test(_0x54e4c1(0x1af),async()=>{const _0x40f40e=_0x54e4c1,{SettingsPanel:_0x4c3c0f}=await import(_0x40f40e(0x199));expect(typeof _0x4c3c0f)['toBe']('function'),expect(_0x4c3c0f[_0x40f40e(0x1b8)]?.[_0x40f40e(0x194)])[_0x40f40e(0x1b2)]();}),test('SettingsPanel is default export',async()=>{const _0x52cfb0=_0x54e4c1,module=await import('../../components/SettingsPanel.js');expect(module[_0x52cfb0(0x1a0)])[_0x52cfb0(0x1bc)](),expect(module[_0x52cfb0(0x1a0)])['toBe'](module[_0x52cfb0(0x1a2)]);});}),describe(a0_0x306b57(0x19b),()=>{const _0x11886e=a0_0x306b57;test(_0x11886e(0x1b0),async()=>{const _0x3ed001=_0x11886e,{SearchPanel:_0x52aa08}=await import('../../components/SearchPanel.js');expect(typeof _0x52aa08)['toBe'](_0x3ed001(0x1a7)),expect(_0x52aa08['prototype']?.['render'])['toBeUndefined']();}),test('SearchPanel is default export',async()=>{const _0x334c4a=_0x11886e,module=await import(_0x334c4a(0x1ba));expect(module['default'])['toBeDefined'](),expect(module[_0x334c4a(0x1a0)])[_0x334c4a(0x197)](module[_0x334c4a(0x1aa)]);});}),describe('Phase\x2010\x20-\x20HelpPanel\x20-\x20Structure',()=>{test('HelpPanel\x20is\x20a\x20function\x20component',async()=>{const _0x4e5b1f=a0_0xf27f,{HelpPanel:_0x4ea892}=await import(_0x4e5b1f(0x1b9));expect(typeof _0x4ea892)[_0x4e5b1f(0x197)]('function'),expect(_0x4ea892['prototype']?.['render'])[_0x4e5b1f(0x1b2)]();}),test('HelpPanel is default export',async()=>{const _0x488553=a0_0xf27f,module=await import(_0x488553(0x1b9));expect(module['default'])['toBeDefined'](),expect(module[_0x488553(0x1a0)])['toBe'](module[_0x488553(0x1a3)]);});}),describe('Phase\x2010\x20-\x20Integration\x20with\x20Layout',()=>{const _0x417c14=a0_0x306b57;test('Layout component can import all Phase 10 components',async()=>{const _0x422ffb=a0_0xf27f,[_0x2440cd,_0x221a99,_0x4a2620,_0x34cce7,_0x3958fd]=await Promise[_0x422ffb(0x1bb)]([import('../../components/AgentSwitcher.js'),import(_0x422ffb(0x19e)),import(_0x422ffb(0x199)),import(_0x422ffb(0x1ba)),import('../../components/HelpPanel.js')]);expect(_0x2440cd['AgentSwitcher'])['toBeDefined'](),expect(_0x221a99['AgentCreator'])['toBeDefined'](),expect(_0x4a2620[_0x422ffb(0x1a2)])[_0x422ffb(0x1bc)](),expect(_0x34cce7[_0x422ffb(0x1aa)])[_0x422ffb(0x1bc)](),expect(_0x3958fd['HelpPanel'])['toBeDefined']();}),test('Layout\x20component\x20still\x20loads\x20after\x20Phase\x2010\x20additions',async()=>{const _0x3482a3=a0_0xf27f,{Layout:_0x5610f3}=await import(_0x3482a3(0x19a));expect(_0x5610f3)['toBeDefined'](),expect(typeof _0x5610f3)['toBe'](_0x3482a3(0x1a7));}),test(_0x417c14(0x195),async()=>{const _0x371e22=_0x417c14,_0x5d876c=await import('react'),_0x5d9bd1=await import(_0x371e22(0x1b3));expect(_0x5d876c['createElement'])[_0x371e22(0x1bc)](),expect(_0x5d876c['useState'])['toBeDefined'](),expect(_0x5d9bd1[_0x371e22(0x196)])['toBeDefined'](),expect(_0x5d9bd1[_0x371e22(0x1b6)])[_0x371e22(0x1bc)](),expect(_0x5d9bd1['useInput'])[_0x371e22(0x1bc)]();});}),describe('Phase\x2010\x20-\x20Component\x20Constants\x20and\x20Configurations',()=>{const _0x163588=a0_0x306b57;test(_0x163588(0x1b1),async()=>{const module=await import('../../components/AgentCreator.js');expect(module['AgentCreator'])['toBeDefined']();}),test('SettingsPanel\x20defines\x20category\x20constants',async()=>{const _0x119ed5=_0x163588,module=await import(_0x119ed5(0x199));expect(module[_0x119ed5(0x1a2)])['toBeDefined']();}),test('HelpPanel\x20defines\x20shortcut\x20configurations',async()=>{const _0xcf1747=_0x163588,module=await import(_0xcf1747(0x1b9));expect(module[_0xcf1747(0x1a3)])['toBeDefined']();});}),describe('Phase\x2010\x20-\x20All\x20Components\x20Export\x20Correctly',()=>{test('All components can be imported together without conflicts',async()=>{const _0x34cc70=a0_0xf27f,_0x32a9cb=await Promise['all']([import('../../components/AgentSwitcher.js'),import(_0x34cc70(0x19e)),import('../../components/SettingsPanel.js'),import('../../components/SearchPanel.js'),import('../../components/HelpPanel.js')]),_0x2ea468=_0x32a9cb['map'](_0x2367a6=>Object[_0x34cc70(0x1b7)](_0x2367a6)[0x0]),_0x50fd09=new Set(_0x2ea468);expect(_0x50fd09[_0x34cc70(0x1a9)])[_0x34cc70(0x197)](_0x2ea468[_0x34cc70(0x1b5)]);});});
@@ -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
+ const a0_0x399779=a0_0x1d67;(function(_0x2e00da,_0xe7d26b){const _0x59462b=a0_0x1d67,_0x15019d=_0x2e00da();while(!![]){try{const _0x19b33b=-parseInt(_0x59462b(0xf3))/0x1*(parseInt(_0x59462b(0xee))/0x2)+parseInt(_0x59462b(0x102))/0x3*(parseInt(_0x59462b(0x11b))/0x4)+parseInt(_0x59462b(0xf6))/0x5+-parseInt(_0x59462b(0x100))/0x6*(-parseInt(_0x59462b(0x112))/0x7)+parseInt(_0x59462b(0xfd))/0x8*(-parseInt(_0x59462b(0xf0))/0x9)+-parseInt(_0x59462b(0x116))/0xa*(parseInt(_0x59462b(0xfb))/0xb)+-parseInt(_0x59462b(0x113))/0xc*(-parseInt(_0x59462b(0xf1))/0xd);if(_0x19b33b===_0xe7d26b)break;else _0x15019d['push'](_0x15019d['shift']());}catch(_0x4d93cb){_0x15019d['push'](_0x15019d['shift']());}}}(a0_0x2233,0xe5049));function a0_0x1d67(_0x14e4a5,_0x375a17){_0x14e4a5=_0x14e4a5-0xec;const _0x2233d6=a0_0x2233();let _0x1d6782=_0x2233d6[_0x14e4a5];if(a0_0x1d67['mkmDTl']===undefined){var _0x3abdd6=function(_0x25f886){const _0x4b80a8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x471426='',_0x21dcb2='';for(let _0x3ef44b=0x0,_0x2a08f3,_0x3dc462,_0x500b82=0x0;_0x3dc462=_0x25f886['charAt'](_0x500b82++);~_0x3dc462&&(_0x2a08f3=_0x3ef44b%0x4?_0x2a08f3*0x40+_0x3dc462:_0x3dc462,_0x3ef44b++%0x4)?_0x471426+=String['fromCharCode'](0xff&_0x2a08f3>>(-0x2*_0x3ef44b&0x6)):0x0){_0x3dc462=_0x4b80a8['indexOf'](_0x3dc462);}for(let _0x37c0d6=0x0,_0x500c8f=_0x471426['length'];_0x37c0d6<_0x500c8f;_0x37c0d6++){_0x21dcb2+='%'+('00'+_0x471426['charCodeAt'](_0x37c0d6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x21dcb2);};a0_0x1d67['NyImvt']=_0x3abdd6,a0_0x1d67['WBYajb']={},a0_0x1d67['mkmDTl']=!![];}const _0x5722f4=_0x2233d6[0x0],_0x1c9b23=_0x14e4a5+_0x5722f4,_0x463c0e=a0_0x1d67['WBYajb'][_0x1c9b23];return!_0x463c0e?(_0x1d6782=a0_0x1d67['NyImvt'](_0x1d6782),a0_0x1d67['WBYajb'][_0x1c9b23]=_0x1d6782):_0x1d6782=_0x463c0e,_0x1d6782;}import{describe,test,expect}from'@jest/globals';describe(a0_0x399779(0x117),()=>{test('useAgentControl hook can be imported',async()=>{const _0x45e9a0=a0_0x1d67,{useAgentControl:_0x471426}=await import(_0x45e9a0(0xed));expect(_0x471426)[_0x45e9a0(0x120)](),expect(typeof _0x471426)[_0x45e9a0(0x10a)]('function');}),test('useAgentControl is default export',async()=>{const _0x3f998c=a0_0x1d67,module=await import('../../state/useAgentControl.js');expect(module['default'])['toBeDefined'](),expect(typeof module[_0x3f998c(0x101)])[_0x3f998c(0x10a)]('function'),expect(module[_0x3f998c(0x101)])[_0x3f998c(0x10a)](module[_0x3f998c(0xf7)]);});}),describe(a0_0x399779(0x10d),()=>{const _0x2c571a=a0_0x399779;test('AGENT_MODE\x20constants\x20are\x20defined',async()=>{const _0x3079d8=a0_0x1d67,{AGENT_MODE:_0x21dcb2}=await import(_0x3079d8(0xfa));expect(_0x21dcb2)[_0x3079d8(0x120)](),expect(_0x21dcb2[_0x3079d8(0x124)])[_0x3079d8(0x10a)]('CHAT'),expect(_0x21dcb2[_0x3079d8(0x103)])[_0x3079d8(0x10a)](_0x3079d8(0x103));}),test('MODEL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x489991=a0_0x1d67,{MODEL_CATEGORY:_0x3ef44b}=await import('../../config/constants.js');expect(_0x3ef44b)[_0x489991(0x120)](),expect(_0x3ef44b[_0x489991(0x11c)])['toBe'](_0x489991(0x11d)),expect(_0x3ef44b[_0x489991(0x11f)])[_0x489991(0x10a)](_0x489991(0x121)),expect(_0x3ef44b[_0x489991(0x114)])['toBe']('deepseek'),expect(_0x3ef44b[_0x489991(0xf5)])['toBe']('microsoft');}),test('Mode\x20and\x20model\x20API\x20endpoints\x20are\x20defined',async()=>{const _0x344532=a0_0x1d67,{API_ENDPOINTS:_0x2a08f3}=await import(_0x344532(0xfa));expect(_0x2a08f3['AGENTS_MODE_SET'])['toBe']('/api/agents/:agentId/mode'),expect(_0x2a08f3['AGENTS_MODE_GET'])['toBe']('/api/agents/:agentId/mode'),expect(_0x2a08f3[_0x344532(0x105)])['toBe']('/api/llm/models');}),test(_0x2c571a(0x115),async()=>{const _0x4372ba=_0x2c571a,{WS_MESSAGE_TYPE:_0x3dc462}=await import('../../config/constants.js');expect(_0x3dc462)[_0x4372ba(0x120)](),expect(_0x3dc462[_0x4372ba(0x10e)])[_0x4372ba(0x10a)]('agent_mode_changed');});}),describe(a0_0x399779(0xfe),()=>{const _0x6ab2b1=a0_0x399779;test(_0x6ab2b1(0x119),async()=>{const _0x195f4e=_0x6ab2b1,{useAgentControl:_0x500b82}=await import('../../state/useAgentControl.js'),{SessionManager:_0x37c0d6}=await import('../../api/session.js'),{MessageRouter:_0x500c8f}=await import(_0x195f4e(0xfc)),{WebSocketManager:_0xdce4a7}=await import('../../api/websocket.js'),_0x5f0de6=new _0x37c0d6(_0x195f4e(0x108),0x1f90),_0x5ea3b0=new _0xdce4a7('localhost',0x1f90),_0x559cc6=new _0x500c8f(_0x5ea3b0);expect(_0x5f0de6)[_0x195f4e(0x120)](),expect(_0x559cc6)[_0x195f4e(0x120)](),expect(typeof _0x500b82)[_0x195f4e(0x10a)]('function');}),test('Full agent control stack can be imported together',async()=>{const _0x99da5e=_0x6ab2b1,[_0x25123f,_0x20fae9,_0xa1d639,_0x30295c,_0x53ac81]=await Promise[_0x99da5e(0x106)]([import(_0x99da5e(0xfa)),import('../../api/session.js'),import(_0x99da5e(0x122)),import(_0x99da5e(0xfc)),import(_0x99da5e(0xed))]);expect(_0x25123f['AGENT_MODE'])[_0x99da5e(0x120)](),expect(_0x25123f['MODEL_CATEGORY'])['toBeDefined'](),expect(_0x25123f[_0x99da5e(0x11a)])[_0x99da5e(0x120)](),expect(_0x20fae9['SessionManager'])[_0x99da5e(0x120)](),expect(_0xa1d639['WebSocketManager'])['toBeDefined'](),expect(_0x30295c[_0x99da5e(0x10b)])[_0x99da5e(0x120)](),expect(_0x53ac81['useAgentControl'])[_0x99da5e(0x120)]();});}),describe(a0_0x399779(0x110),()=>{test('Agent\x20mode\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x504eb4=a0_0x1d67,{API_ENDPOINTS:_0x4ac5b0}=await import('../../config/constants.js');expect(_0x4ac5b0['AGENTS_MODE_SET'])[_0x504eb4(0x10c)](/^\/api\/agents/),expect(_0x4ac5b0[_0x504eb4(0xf4)])[_0x504eb4(0x10c)](/^\/api\/agents/),expect(_0x4ac5b0[_0x504eb4(0x10f)])['toContain'](':agentId'),expect(_0x4ac5b0[_0x504eb4(0xf4)])[_0x504eb4(0xf8)](':agentId');}),test('LLM\x20models\x20endpoint\x20exists',async()=>{const _0x52e0a9=a0_0x1d67,{API_ENDPOINTS:_0x2fac94}=await import('../../config/constants.js');expect(_0x2fac94['LLM_MODELS'])[_0x52e0a9(0x120)](),expect(_0x2fac94[_0x52e0a9(0x105)])[_0x52e0a9(0x10a)](_0x52e0a9(0xef));}),test('Orchestrator\x20endpoint\x20exists\x20for\x20model\x20and\x20config\x20operations',async()=>{const _0x868705=a0_0x1d67,{API_ENDPOINTS:_0x5c36e9}=await import(_0x868705(0xfa));expect(_0x5c36e9['ORCHESTRATOR'])['toBeDefined'](),expect(_0x5c36e9['ORCHESTRATOR'])['toBe']('/api/orchestrator');});}),describe('Agent\x20Control\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useAgentControl\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x2b9906=a0_0x1d67,{useAgentControl:_0xbbf5f5}=await import('../../state/useAgentControl.js');expect(_0xbbf5f5['length'])[_0x2b9906(0x10a)](0x3);});}),describe('Agent\x20Control\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x254833=a0_0x399779;test(_0x254833(0xf2),async()=>{const _0x1fa7f4=_0x254833,{AGENT_MODE:_0x3f7fa6}=await import('../../config/constants.js'),_0x1bf0ef=Object['keys'](_0x3f7fa6);expect(_0x1bf0ef[_0x1fa7f4(0x118)])['toBe'](0x2),expect(_0x1bf0ef)[_0x1fa7f4(0xf8)](_0x1fa7f4(0x124)),expect(_0x1bf0ef)[_0x1fa7f4(0xf8)](_0x1fa7f4(0x103));}),test('AGENT_MODE\x20values\x20are\x20uppercase',async()=>{const _0x595cb8=_0x254833,{AGENT_MODE:_0x2c86de}=await import(_0x595cb8(0xfa));expect(_0x2c86de[_0x595cb8(0x124)])['toBe']('CHAT'),expect(_0x2c86de['AGENT'])['toBe']('AGENT'),expect(_0x2c86de[_0x595cb8(0x124)])['toBe'](_0x2c86de[_0x595cb8(0x124)]['toUpperCase']()),expect(_0x2c86de[_0x595cb8(0x103)])['toBe'](_0x2c86de['AGENT'][_0x595cb8(0x123)]());}),test('MODEL_CATEGORY\x20values\x20are\x20lowercase',async()=>{const _0x4ed6bb=_0x254833,{MODEL_CATEGORY:_0x53246a}=await import(_0x4ed6bb(0xfa));expect(_0x53246a[_0x4ed6bb(0x11c)])[_0x4ed6bb(0x10a)]('anthropic'),expect(_0x53246a[_0x4ed6bb(0x11f)])[_0x4ed6bb(0x10a)](_0x4ed6bb(0x121)),expect(_0x53246a[_0x4ed6bb(0x114)])[_0x4ed6bb(0x10a)](_0x4ed6bb(0x109)),expect(_0x53246a[_0x4ed6bb(0xf5)])['toBe']('microsoft'),expect(_0x53246a[_0x4ed6bb(0x11c)])['toBe'](_0x53246a['ANTHROPIC']['toLowerCase']()),expect(_0x53246a['OPENAI'])['toBe'](_0x53246a[_0x4ed6bb(0x11f)][_0x4ed6bb(0xf9)]());}),test(_0x254833(0x104),async()=>{const _0x3c6ab5=_0x254833,{MODEL_CATEGORY:_0x23776f}=await import(_0x3c6ab5(0xfa)),_0x4ee2c0=Object[_0x3c6ab5(0xec)](_0x23776f);expect(_0x4ee2c0)['toContain']('ANTHROPIC'),expect(_0x4ee2c0)[_0x3c6ab5(0xf8)](_0x3c6ab5(0x11f)),expect(_0x4ee2c0)[_0x3c6ab5(0xf8)](_0x3c6ab5(0x114)),expect(_0x4ee2c0)['toContain'](_0x3c6ab5(0xf5));});}),describe(a0_0x399779(0x126),()=>{const _0x57731a=a0_0x399779;test(_0x57731a(0xff),async()=>{const _0x6a1752=_0x57731a,{MessageRouter:_0x1436f4}=await import(_0x6a1752(0xfc)),{WebSocketManager:_0x1131f6}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x2ade82}=await import(_0x6a1752(0xfa)),_0x316393=new _0x1131f6(_0x6a1752(0x108),0x1f90),_0x5b3559=new _0x1436f4(_0x316393);expect(_0x5b3559['hasHandler'](_0x2ade82['AGENT_MODE_CHANGED']))[_0x6a1752(0x10a)](!![]);});}),describe('Agent\x20Control\x20Management\x20-\x20Mode\x20Switching\x20Logic',()=>{test('AGENT_MODE\x20supports\x20toggling\x20between\x20modes',async()=>{const _0x197b3f=a0_0x1d67,{AGENT_MODE:_0x5b6745}=await import(_0x197b3f(0xfa));let _0x97d1a8=_0x5b6745['CHAT'],_0x1c4600=_0x97d1a8===_0x5b6745[_0x197b3f(0x124)]?_0x5b6745['AGENT']:_0x5b6745[_0x197b3f(0x124)];expect(_0x1c4600)['toBe'](_0x5b6745['AGENT']),_0x97d1a8=_0x5b6745[_0x197b3f(0x103)],_0x1c4600=_0x97d1a8===_0x5b6745[_0x197b3f(0x124)]?_0x5b6745['AGENT']:_0x5b6745[_0x197b3f(0x124)],expect(_0x1c4600)['toBe'](_0x5b6745[_0x197b3f(0x124)]);});}),describe(a0_0x399779(0x107),()=>{test('MODEL_CATEGORY\x20can\x20be\x20used\x20to\x20filter\x20models\x20by\x20category',async()=>{const _0x2d55cc=a0_0x1d67,{MODEL_CATEGORY:_0x53072d}=await import(_0x2d55cc(0xfa)),_0x241381=[{'id':_0x2d55cc(0x111),'category':_0x53072d[_0x2d55cc(0x11c)]},{'id':'gpt-4','category':_0x53072d[_0x2d55cc(0x11f)]},{'id':'deepseek-chat','category':_0x53072d[_0x2d55cc(0x114)]}],_0x18af4e=_0x241381['filter'](_0x2c65ea=>_0x2c65ea['category']===_0x53072d['ANTHROPIC']),_0x5b8520=_0x241381[_0x2d55cc(0x125)](_0x4e21d1=>_0x4e21d1[_0x2d55cc(0x11e)]===_0x53072d['OPENAI']);expect(_0x18af4e['length'])['toBe'](0x1),expect(_0x18af4e[0x0]['id'])[_0x2d55cc(0x10a)](_0x2d55cc(0x111)),expect(_0x5b8520['length'])['toBe'](0x1),expect(_0x5b8520[0x0]['id'])['toBe']('gpt-4');});});function a0_0x2233(){const _0x576621=['quDftLrtx01prevFr0vu','tuLduK9tt0zu','nty4nJi3mejqEwXrta','DxnLqwDLBNrdB250CM9S','Dg9dB250ywLU','Dg9mB3DLCKnHC2u','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','mtfbrxz2vhK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','ofnmrxbcCq','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','twvZC2fNzvjVDxrLCIbOyxmGBw9KzsbJAgfUz2uGzxzLBNqGAgfUzgXLCIbYzwDPC3rLCMvK','ode3otHurwfwqNG','zgvMyxvSDa','m29NBKHtAG','quDftLq','tu9eruXFq0furuDpuLKGAw5JBhvKzxmGBwfQB3iGteXnihbYB3zPzgvYCW','teXnx01prevmuW','ywXS','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gtw9KzwWGrMLSDgvYAw5N','Bg9JywXOB3n0','zgvLChnLzwS','Dg9czq','twvZC2fNzvjVDxrLCG','Dg9nyxrJAa','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','quDftLrFtu9erv9dsefor0ve','quDftLrtx01prevFu0vu','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0GqvbjievUzhbVAw50CYbwywXPzgf0Aw9U','y2XHDwrLltmTns1ZB25Uzxq','otuYsu5jEKvi','mtjmtwPZtgK','revfufnfruS','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1VzguGyw5Kig1VzgvSignOyw5NzsbLDMvUDhm','nZG2mJi3mfDszgXfDq','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','BgvUz3rO','DxnLqwDLBNrdB250CM9SigHVB2SGAw50zwDYyxrLCYb3AxrOifnLC3nPB24Gyw5Kie1LC3nHz2vsB3v0zxi','qvbjx0vorfbpsu5uuW','odu3ody0rKHUvMHH','qu5usfjpueLd','yw50AhjVCgLJ','y2f0zwDVCNK','t1bftKfj','Dg9czurLzMLUzwq','B3bLBMfP','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','Dg9vChbLCKnHC2u','q0Hbva','zMLSDgvY','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','A2v5CW','lI4VlI4VC3rHDguVDxnLqwDLBNrdB250CM9SlMPZ','mtjiENvPBM4','l2fWAs9SBg0VBw9KzwXZ','ndq5ndC2mKHeDNv5va','otiXntKWofforvzfAa','quDftLrFtu9ersbOyxmGzxHHy3rSEsb0D28GBw9Kzxm','mJGXodm3DfnWyxLN'];a0_0x2233=function(){return _0x576621;};return a0_0x2233();}
@@ -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
+ const a0_0x3fb395=a0_0x18a0;(function(_0xa0e836,_0x4778cd){const _0x5b3c52=a0_0x18a0,_0x4fcb07=_0xa0e836();while(!![]){try{const _0x4f15ca=parseInt(_0x5b3c52(0x1db))/0x1+parseInt(_0x5b3c52(0x1c2))/0x2*(parseInt(_0x5b3c52(0x1e6))/0x3)+-parseInt(_0x5b3c52(0x1ea))/0x4*(parseInt(_0x5b3c52(0x1ce))/0x5)+parseInt(_0x5b3c52(0x1e8))/0x6+parseInt(_0x5b3c52(0x1df))/0x7+parseInt(_0x5b3c52(0x1c5))/0x8+-parseInt(_0x5b3c52(0x1e3))/0x9;if(_0x4f15ca===_0x4778cd)break;else _0x4fcb07['push'](_0x4fcb07['shift']());}catch(_0x40f9ac){_0x4fcb07['push'](_0x4fcb07['shift']());}}}(a0_0xc48e,0xb64a4));import{describe,test,expect}from'@jest/globals';function a0_0x18a0(_0x1784d3,_0x2aee5f){_0x1784d3=_0x1784d3-0x1c2;const _0xc48e5a=a0_0xc48e();let _0x18a039=_0xc48e5a[_0x1784d3];if(a0_0x18a0['hDRWMz']===undefined){var _0x1232df=function(_0x13e515){const _0x51dc3b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x35fc70='',_0x2ed42a='';for(let _0x1a9735=0x0,_0x31275d,_0x29660f,_0x23c855=0x0;_0x29660f=_0x13e515['charAt'](_0x23c855++);~_0x29660f&&(_0x31275d=_0x1a9735%0x4?_0x31275d*0x40+_0x29660f:_0x29660f,_0x1a9735++%0x4)?_0x35fc70+=String['fromCharCode'](0xff&_0x31275d>>(-0x2*_0x1a9735&0x6)):0x0){_0x29660f=_0x51dc3b['indexOf'](_0x29660f);}for(let _0x112552=0x0,_0x23de69=_0x35fc70['length'];_0x112552<_0x23de69;_0x112552++){_0x2ed42a+='%'+('00'+_0x35fc70['charCodeAt'](_0x112552)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2ed42a);};a0_0x18a0['wpOOMw']=_0x1232df,a0_0x18a0['ZIPmVp']={},a0_0x18a0['hDRWMz']=!![];}const _0x107517=_0xc48e5a[0x0],_0x50a935=_0x1784d3+_0x107517,_0x11f82f=a0_0x18a0['ZIPmVp'][_0x50a935];return!_0x11f82f?(_0x18a039=a0_0x18a0['wpOOMw'](_0x18a039),a0_0x18a0['ZIPmVp'][_0x50a935]=_0x18a039):_0x18a039=_0x11f82f,_0x18a039;}describe('Agent\x20Management\x20-\x20Imports',()=>{test('useAgents hook can be imported',async()=>{const _0x4052c1=a0_0x18a0,{useAgents:_0x35fc70}=await import(_0x4052c1(0x1e4));expect(_0x35fc70)[_0x4052c1(0x1de)](),expect(typeof _0x35fc70)[_0x4052c1(0x1e5)](_0x4052c1(0x1d3));}),test('useAgents is default export',async()=>{const _0x5da905=a0_0x18a0,module=await import(_0x5da905(0x1e4));expect(module[_0x5da905(0x1c8)])[_0x5da905(0x1de)](),expect(typeof module[_0x5da905(0x1c8)])[_0x5da905(0x1e5)](_0x5da905(0x1d3)),expect(module[_0x5da905(0x1c8)])['toBe'](module['useAgents']);});}),describe('Agent\x20Management\x20-\x20Constants',()=>{const _0xb3ada5=a0_0x18a0;test('AGENT_MODE\x20constants\x20are\x20defined',async()=>{const _0x892dfc=a0_0x18a0,{AGENT_MODE:_0x2ed42a}=await import(_0x892dfc(0x1d4));expect(_0x2ed42a)[_0x892dfc(0x1de)](),expect(_0x2ed42a[_0x892dfc(0x1d1)])['toBe'](_0x892dfc(0x1d1)),expect(_0x2ed42a[_0x892dfc(0x1d8)])[_0x892dfc(0x1e5)]('AGENT');}),test('AGENT_STATUS\x20constants\x20are\x20defined',async()=>{const _0x1a28ae=a0_0x18a0,{AGENT_STATUS:_0x1a9735}=await import('../../config/constants.js');expect(_0x1a9735)[_0x1a28ae(0x1de)](),expect(_0x1a9735['ACTIVE'])[_0x1a28ae(0x1e5)](_0x1a28ae(0x1d9)),expect(_0x1a9735['PAUSED'])[_0x1a28ae(0x1e5)]('paused'),expect(_0x1a9735['IDLE'])[_0x1a28ae(0x1e5)](_0x1a28ae(0x1ca)),expect(_0x1a9735['ERROR'])[_0x1a28ae(0x1e5)]('error'),expect(_0x1a9735[_0x1a28ae(0x1d5)])['toBe']('archived');}),test(_0xb3ada5(0x1dd),async()=>{const _0x330db9=_0xb3ada5,{API_ENDPOINTS:_0x31275d}=await import('../../config/constants.js');expect(_0x31275d[_0x330db9(0x1e0)])['toBe'](_0x330db9(0x1cb)),expect(_0x31275d[_0x330db9(0x1d7)])['toBe']('/api/agents/:agentId/metadata'),expect(_0x31275d['AGENTS_IMPORT'])['toBe']('/api/agents/import'),expect(_0x31275d['AGENTS_MODE_SET'])['toBe'](_0x330db9(0x1c7)),expect(_0x31275d['AGENTS_MODE_GET'])['toBe']('/api/agents/:agentId/mode'),expect(_0x31275d[_0x330db9(0x1eb)])[_0x330db9(0x1e5)](_0x330db9(0x1e2));}),test(_0xb3ada5(0x1c9),async()=>{const _0x4a0b6b=_0xb3ada5,{AGENT_TEMPLATES:_0x29660f}=await import(_0x4a0b6b(0x1d4));expect(_0x29660f)['toBeDefined'](),expect(_0x29660f['CODING_ASSISTANT'])[_0x4a0b6b(0x1e5)]('coding-assistant'),expect(_0x29660f[_0x4a0b6b(0x1cf)])[_0x4a0b6b(0x1e5)]('data-analyst'),expect(_0x29660f['CREATIVE_WRITER'])[_0x4a0b6b(0x1e5)]('creative-writer'),expect(_0x29660f[_0x4a0b6b(0x1d2)])['toBe']('system-administrator'),expect(_0x29660f[_0x4a0b6b(0x1d0)])[_0x4a0b6b(0x1e5)](_0x4a0b6b(0x1dc));});}),describe('Agent\x20Management\x20-\x20Integration',()=>{test('useAgents\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x1a681b=a0_0x18a0,{useAgents:_0x23c855}=await import(_0x1a681b(0x1e4)),{SessionManager:_0x112552}=await import('../../api/session.js'),{MessageRouter:_0x23de69}=await import(_0x1a681b(0x1c4)),{WebSocketManager:_0x50025d}=await import(_0x1a681b(0x1c3)),_0x501408=new _0x112552(_0x1a681b(0x1cd),0x1f90),_0x521e89=new _0x50025d(_0x1a681b(0x1cd),0x1f90),_0x4c90bb=new _0x23de69(_0x521e89);expect(_0x501408)['toBeDefined'](),expect(_0x4c90bb)['toBeDefined'](),expect(typeof _0x23c855)['toBe']('function');}),test('Full agent management stack can be imported together',async()=>{const _0x5a4687=a0_0x18a0,[_0x40fcb5,_0x397702,_0x51816e,_0x2332cf,_0x190ee3]=await Promise['all']([import('../../config/constants.js'),import(_0x5a4687(0x1c6)),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import('../../state/useAgents.js')]);expect(_0x40fcb5[_0x5a4687(0x1da)])['toBeDefined'](),expect(_0x397702[_0x5a4687(0x1ee)])[_0x5a4687(0x1de)](),expect(_0x51816e['WebSocketManager'])[_0x5a4687(0x1de)](),expect(_0x2332cf['MessageRouter'])[_0x5a4687(0x1de)](),expect(_0x190ee3['useAgents'])[_0x5a4687(0x1de)]();});}),describe(a0_0x3fb395(0x1e7),()=>{const _0x56bbbf=a0_0x3fb395;test(_0x56bbbf(0x1e9),async()=>{const _0x2d13f2=_0x56bbbf,{API_ENDPOINTS:_0x2c580c}=await import(_0x2d13f2(0x1d4));expect(_0x2c580c['AGENTS_AVAILABLE'])['toMatch'](/^\/api\/agents/),expect(_0x2c580c['AGENTS_METADATA'])['toMatch'](/^\/api\/agents/),expect(_0x2c580c['AGENTS_IMPORT'])[_0x2d13f2(0x1cc)](/^\/api\/agents/),expect(_0x2c580c['AGENTS_MODE_SET'])['toMatch'](/^\/api\/agents/),expect(_0x2c580c[_0x2d13f2(0x1e1)])['toMatch'](/^\/api\/agents/),expect(_0x2c580c[_0x2d13f2(0x1eb)])['toMatch'](/^\/api\/agents/),expect(_0x2c580c['AGENTS_METADATA'])[_0x2d13f2(0x1d6)](_0x2d13f2(0x1ed)),expect(_0x2c580c['AGENTS_MODE_SET'])['toContain'](_0x2d13f2(0x1ed)),expect(_0x2c580c['AGENTS_MODE_GET'])['toContain'](':agentId'),expect(_0x2c580c[_0x2d13f2(0x1eb)])[_0x2d13f2(0x1d6)](':agentId');}),test('Orchestrator\x20endpoint\x20exists\x20for\x20agent\x20operations',async()=>{const _0x309240=_0x56bbbf,{API_ENDPOINTS:_0x1c30e4}=await import('../../config/constants.js');expect(_0x1c30e4[_0x309240(0x1ec)])['toBeDefined'](),expect(_0x1c30e4['ORCHESTRATOR'])[_0x309240(0x1e5)]('/api/orchestrator');});});function a0_0xc48e(){const _0x3be268=['quDftLq','ywn0AxzL','quDftLrFtu9erq','mtaXodKZogzTAhPSCq','y3vZDg9T','qwDLBNqGqvbjigvUzhbVAw50CYbHCMuGzgvMAw5Lza','Dg9czurLzMLUzwq','ody1nduYme15zeDbCW','quDftLrtx0fwquLmqujmrq','quDftLrtx01prevFr0vu','l2fWAs9Hz2vUDhmVoMfNzw50swqVC3rVCa','mJG2nJy1mdnhCxPzALi','lI4VlI4VC3rHDguVDxnLqwDLBNrZlMPZ','Dg9czq','m1flwKjpqq','qwDLBNqGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG','nJG5mdGZoeXnDxDgsW','qwXSigfNzw50igvUzhbVAw50CYbMB2XSB3CGuKvtvgz1BcbWyxr0zxjU','ntjsBNvSvu0','quDftLrtx1nut1a','t1jdsevtvfjbve9s','oMfNzw50swq','u2vZC2LVBK1HBMfNzxi','mJiZnJq1nhfbwgjLtG','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','mZa5ntu4nffTAu91Cq','lI4VlI4VyxbPl3nLC3nPB24UANm','l2fWAs9Hz2vUDhmVoMfNzw50swqVBw9Kzq','zgvMyxvSDa','quDftLrFvevnueXbvevtignVBNn0yw50CYbHCMuGzgvMAw5Lza','AwrSzq','l2fWAs9Hz2vUDhmVyxzHAwXHyMXL','Dg9nyxrJAa','Bg9JywXOB3n0','mZC1ode1twnzzMTw','refuqv9btKfmwvnu','q1vtve9n','q0Hbva','u1Ltvevnx0fetuLosvnuuKfut1i','zNvUy3rPB24','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','qvjdseLwruq','Dg9dB250ywLU','quDftLrtx01fvefeqvrb'];a0_0xc48e=function(){return _0x3be268;};return a0_0xc48e();}
@@ -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
+ const a0_0x3f2d9f=a0_0x385c;function a0_0x1859(){const _0x42a0c0=['tgf5B3v0','oda1nZa0rKnRrKXH','nte1BwfSALnU','DxnLu3rHDgu','mtm2mJzpD1nIBey','mJi2ndHXCMXns0q','zgvMyxvSDa','mZG3reHfshzy','zNvUy3rPB24','twvZC2fNzuXPC3q','mJi5nJi2ouTTvKnsrq','CMvHy3q','lI4VlI4Vy29TCg9Uzw50CY9nzxnZywDLtgLZDc5QCW','q29TCg9Uzw50ie1HBMfNzw1LBNqGlsbjBNrLz3jHDgLVBG','mJaWCMfysu9f','lI4VlI4Vy29TCg9Uzw50CY9izwfKzxiUANm','lI4VlI4VC3rHDguVDxnLqwDLBNrZlMPZ','ntq2mda3z0Dmr0Dd','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','ote1mtiWCfH2yw1Q','sw5WDxrcB3G','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','nJeYntu4mu9Jze93qW','nhfTCfL0vq','Aw5R','Dg9czq','lI4VlI4Vy29TCg9Uzw50CY9jBNb1DejVEc5QCW','lI4VlI4Vy29TCg9Uzw50CY9tDgf0DxncyxiUANm','sgvHzgvY','Dg9czurLzMLUzwq','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW'];a0_0x1859=function(){return _0x42a0c0;};return a0_0x1859();}(function(_0x4a36f7,_0x3563e4){const _0x192e67=a0_0x385c,_0x36664e=_0x4a36f7();while(!![]){try{const _0x2ff890=parseInt(_0x192e67(0x128))/0x1+-parseInt(_0x192e67(0x11b))/0x2+parseInt(_0x192e67(0x131))/0x3*(parseInt(_0x192e67(0x11f))/0x4)+-parseInt(_0x192e67(0x129))/0x5*(parseInt(_0x192e67(0x12b))/0x6)+parseInt(_0x192e67(0x11e))/0x7+parseInt(_0x192e67(0x12c))/0x8*(-parseInt(_0x192e67(0x12e))/0x9)+-parseInt(_0x192e67(0x116))/0xa*(parseInt(_0x192e67(0x119))/0xb);if(_0x2ff890===_0x3563e4)break;else _0x36664e['push'](_0x36664e['shift']());}catch(_0x20d73d){_0x36664e['push'](_0x36664e['shift']());}}}(a0_0x1859,0x9c508));function a0_0x385c(_0x1371d9,_0x481c5a){_0x1371d9=_0x1371d9-0x116;const _0x18593a=a0_0x1859();let _0x385c78=_0x18593a[_0x1371d9];if(a0_0x385c['cbvaxn']===undefined){var _0x4a17f0=function(_0x2ba7f8){const _0x189a6a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x413c51='',_0x588568='';for(let _0x51fcfd=0x0,_0x2f60a4,_0x1cc503,_0x2fa464=0x0;_0x1cc503=_0x2ba7f8['charAt'](_0x2fa464++);~_0x1cc503&&(_0x2f60a4=_0x51fcfd%0x4?_0x2f60a4*0x40+_0x1cc503:_0x1cc503,_0x51fcfd++%0x4)?_0x413c51+=String['fromCharCode'](0xff&_0x2f60a4>>(-0x2*_0x51fcfd&0x6)):0x0){_0x1cc503=_0x189a6a['indexOf'](_0x1cc503);}for(let _0x5ad45c=0x0,_0x39e15f=_0x413c51['length'];_0x5ad45c<_0x39e15f;_0x5ad45c++){_0x588568+='%'+('00'+_0x413c51['charCodeAt'](_0x5ad45c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x588568);};a0_0x385c['IoZabU']=_0x4a17f0,a0_0x385c['xJYXSQ']={},a0_0x385c['cbvaxn']=!![];}const _0x1137e0=_0x18593a[0x0],_0x31375e=_0x1371d9+_0x1137e0,_0x47b008=a0_0x385c['xJYXSQ'][_0x31375e];return!_0x47b008?(_0x385c78=a0_0x385c['IoZabU'](_0x385c78),a0_0x385c['xJYXSQ'][_0x31375e]=_0x385c78):_0x385c78=_0x47b008,_0x385c78;}import{describe,test,expect}from'@jest/globals';describe('Component\x20Management\x20-\x20Imports',()=>{test('Layout component can be imported',async()=>{const _0x2ae140=a0_0x385c,{Layout:_0x413c51}=await import('../../components/Layout.js');expect(_0x413c51)[_0x2ae140(0x125)](),expect(typeof _0x413c51)[_0x2ae140(0x121)]('function');}),test('Layout is default export',async()=>{const _0x4c02e9=a0_0x385c,module=await import('../../components/Layout.js');expect(module['default'])[_0x4c02e9(0x125)](),expect(typeof module[_0x4c02e9(0x12d)])['toBe']('function'),expect(module[_0x4c02e9(0x12d)])[_0x4c02e9(0x121)](module[_0x4c02e9(0x127)]);}),test('Header component can be imported',async()=>{const _0x58f76b=a0_0x385c,{Header:_0x588568}=await import('../../components/Header.js');expect(_0x588568)['toBeDefined'](),expect(typeof _0x588568)[_0x58f76b(0x121)]('function');}),test('Header is default export',async()=>{const _0x38b619=a0_0x385c,module=await import(_0x38b619(0x117));expect(module['default'])['toBeDefined'](),expect(module['default'])[_0x38b619(0x121)](module['Header']);}),test('StatusBar component can be imported',async()=>{const _0x2f8d76=a0_0x385c,{StatusBar:_0x51fcfd}=await import('../../components/StatusBar.js');expect(_0x51fcfd)['toBeDefined'](),expect(typeof _0x51fcfd)[_0x2f8d76(0x121)]('function');}),test('StatusBar is default export',async()=>{const _0x2aa819=a0_0x385c,module=await import(_0x2aa819(0x123));expect(module[_0x2aa819(0x12d)])[_0x2aa819(0x125)](),expect(module[_0x2aa819(0x12d)])['toBe'](module['StatusBar']);}),test('MessageList component can be imported',async()=>{const _0x2ae6fc=a0_0x385c,{MessageList:_0x2f60a4}=await import(_0x2ae6fc(0x133));expect(_0x2f60a4)[_0x2ae6fc(0x125)](),expect(typeof _0x2f60a4)[_0x2ae6fc(0x121)](_0x2ae6fc(0x12f));}),test('MessageList is default export',async()=>{const _0x423a81=a0_0x385c,module=await import(_0x423a81(0x133));expect(module[_0x423a81(0x12d)])['toBeDefined'](),expect(module['default'])[_0x423a81(0x121)](module[_0x423a81(0x130)]);}),test('InputBox component can be imported',async()=>{const _0x3bdd6f=a0_0x385c,{InputBox:_0x1cc503}=await import(_0x3bdd6f(0x122));expect(_0x1cc503)['toBeDefined'](),expect(typeof _0x1cc503)['toBe']('function');}),test('InputBox is default export',async()=>{const _0x5c4d78=a0_0x385c,module=await import('../../components/InputBox.js');expect(module['default'])[_0x5c4d78(0x125)](),expect(module[_0x5c4d78(0x12d)])[_0x5c4d78(0x121)](module['InputBox']);});}),describe(a0_0x3f2d9f(0x134),()=>{test('All components can be imported together',async()=>{const _0x52df43=a0_0x385c,[_0x2fa464,_0x5ad45c,_0x39e15f,_0x589687,_0x2eacf9]=await Promise['all']([import('../../components/Layout.js'),import(_0x52df43(0x117)),import('../../components/StatusBar.js'),import(_0x52df43(0x133)),import(_0x52df43(0x122))]);expect(_0x2fa464['Layout'])['toBeDefined'](),expect(_0x5ad45c[_0x52df43(0x124)])['toBeDefined'](),expect(_0x39e15f['StatusBar'])['toBeDefined'](),expect(_0x589687[_0x52df43(0x130)])['toBeDefined'](),expect(_0x2eacf9[_0x52df43(0x11c)])['toBeDefined']();}),test('Layout\x20component\x20integrates\x20with\x20all\x20state\x20hooks',async()=>{const _0x9eec4=a0_0x385c,{Layout:_0xbebb77}=await import(_0x9eec4(0x11d)),{useConnection:_0x4e4f22}=await import(_0x9eec4(0x126)),{useAgents:_0x3a3872}=await import(_0x9eec4(0x118)),{useMessages:_0x54dae4}=await import(_0x9eec4(0x11a)),{useAgentControl:_0xa26962}=await import('../../state/useAgentControl.js'),{useTools:_0x255ed6}=await import('../../state/useTools.js');expect(_0xbebb77)[_0x9eec4(0x125)](),expect(_0x4e4f22)[_0x9eec4(0x125)](),expect(_0x3a3872)['toBeDefined'](),expect(_0x54dae4)[_0x9eec4(0x125)](),expect(_0xa26962)['toBeDefined'](),expect(_0x255ed6)[_0x9eec4(0x125)]();});}),describe('Component\x20Management\x20-\x20React/Ink\x20Dependencies',()=>{test('Ink components can be imported',async()=>{const _0x1b2026=a0_0x385c,{Box:_0x2dbd59,Text:_0x1be484}=await import(_0x1b2026(0x120));expect(_0x2dbd59)[_0x1b2026(0x125)](),expect(_0x1be484)[_0x1b2026(0x125)]();}),test('React can be imported',async()=>{const _0x45bfc0=a0_0x385c,_0x273595=await import(_0x45bfc0(0x132));expect(_0x273595['default'])['toBeDefined'](),expect(_0x273595[_0x45bfc0(0x12a)])[_0x45bfc0(0x125)](),expect(_0x273595['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
+ const a0_0x4e3a7b=a0_0x1e7a;function a0_0x1e7a(_0x3b2463,_0x4a4014){_0x3b2463=_0x3b2463-0x1d6;const _0x696d75=a0_0x696d();let _0x1e7af9=_0x696d75[_0x3b2463];if(a0_0x1e7a['nckSCi']===undefined){var _0x12034f=function(_0x1f3b76){const _0x327639='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3b0a78='',_0x562857='';for(let _0x117bcf=0x0,_0x515424,_0x3345c5,_0x361f40=0x0;_0x3345c5=_0x1f3b76['charAt'](_0x361f40++);~_0x3345c5&&(_0x515424=_0x117bcf%0x4?_0x515424*0x40+_0x3345c5:_0x3345c5,_0x117bcf++%0x4)?_0x3b0a78+=String['fromCharCode'](0xff&_0x515424>>(-0x2*_0x117bcf&0x6)):0x0){_0x3345c5=_0x327639['indexOf'](_0x3345c5);}for(let _0x36776e=0x0,_0x3e7a29=_0x3b0a78['length'];_0x36776e<_0x3e7a29;_0x36776e++){_0x562857+='%'+('00'+_0x3b0a78['charCodeAt'](_0x36776e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x562857);};a0_0x1e7a['WjuBBv']=_0x12034f,a0_0x1e7a['xiiBJw']={},a0_0x1e7a['nckSCi']=!![];}const _0x2a6037=_0x696d75[0x0],_0x342b9f=_0x3b2463+_0x2a6037,_0x33361e=a0_0x1e7a['xiiBJw'][_0x342b9f];return!_0x33361e?(_0x1e7af9=a0_0x1e7a['WjuBBv'](_0x1e7af9),a0_0x1e7a['xiiBJw'][_0x342b9f]=_0x1e7af9):_0x1e7af9=_0x33361e,_0x1e7af9;}function a0_0x696d(){const _0x300c9a=['m0nPthn6AG','C3rYAw5N','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gu3rHDhvZifzHBhvLCW','qKfds09grL9nvuXusvbmsuvs','B2zM','nMHVvwneAq','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0GrxHWB25LBNrPywWGqMfJA29MzIbmB2DPyW','Dg9czurLzMLUzwq','Dg9czq','zgLZy29UBMvJDgvK','C3rHDhvZ','AxnszwnVBM5Ly3rPBMC','u2vZC2LVBIbZDgf0zsbZAg91BgqGAw52ywXPzgf0zq','mJq5otaZmNDJz1HwEG','nde1mLjvt0H2uq','zgvMyxvSDa','mJu4nde0t3j6yxnI','mtaWmZfstMfsz0y','uMvJB25Uzwn0Aw9Uigf0DgvTChrZignHBIbIzsb0CMfJA2vK','v2vIu29JA2v0twfUywDLCG','q09otKvdveLptL9tvefuvvm','DgvZDc1ZzxnZAw9UlteYmW','uKvdt05orunusu5h','y29UBMvJDgLUzW','Dg9czuXLC3nuAgfUt3jfCxvHBa','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','BM93','rxHWB25LBNrPywWGyMfJA29MzIbKzwXHEsbJywXJDwXHDgLVBIb3B3jRCYbJB3jYzwn0BhK','u2vZC2LVBK1HBMfNzxi','Bg9JywXOB3n0','Dg9dB250ywLU','q09otKvdveve','uKvdt05orunux0nptKzjrW','mtmXotC2mJbdAKjxC08','q29UBMvJDgLVBIbTzxrYAwnZihrYywnRihrPBwvZDgfTChm','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','lI4VlI4VyxbPl3nLC3nPB24UANm','A2v5CW','BwLU','ndq2mJq3owrLyvrJta','y29UBMvJDgvK','tufyx0fuvevnufrt','q09otKvdveLptL9tvefuvvmGDMfSDwvZigfYzsbSB3DLCMnHC2uGC3rYAw5NCW','zNvUy3rPB24','uKvdt05orunux0nptKzjrYbJB25ZDgfUDhmGyxjLigrLzMLUzwq','mteZmdC4neT3wePczW','q09otKvdveLorW','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieLUDgvNCMf0Aw9U','Dxb0Aw1L','mtiYmtiZnufXv1PgEa','tufyx0rftefz','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','q09otKvdveLptL9tvefuvvmGAgfZigfSBcbYzxf1AxjLzcbZDgf0zxm','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gu2vZC2LVBIbtDgf0zq','reLtq09otKvdveve','q29UBMvJDgLVBIbZDgf0DxmGDhjHBNnPDgLVBNmGzM9SBg93ihzHBgLKigzSB3C','su5jveLbtf9eruXbwq','Dg9czuDYzwf0zxjuAgfU','Dg9mB3DLCKnHC2u'];a0_0x696d=function(){return _0x300c9a;};return a0_0x696d();}(function(_0x298c01,_0x5c6e3e){const _0x139a2c=a0_0x1e7a,_0x2df733=_0x298c01();while(!![]){try{const _0x2a2988=-parseInt(_0x139a2c(0x1ea))/0x1*(parseInt(_0x139a2c(0x1fa))/0x2)+parseInt(_0x139a2c(0x1db))/0x3+parseInt(_0x139a2c(0x1f7))/0x4+-parseInt(_0x139a2c(0x1e0))/0x5*(parseInt(_0x139a2c(0x1ef))/0x6)+parseInt(_0x139a2c(0x1fb))/0x7*(-parseInt(_0x139a2c(0x1f8))/0x8)+-parseInt(_0x139a2c(0x211))/0x9+parseInt(_0x139a2c(0x20b))/0xa;if(_0x2a2988===_0x5c6e3e)break;else _0x2df733['push'](_0x2df733['shift']());}catch(_0x1841c4){_0x2df733['push'](_0x2df733['shift']());}}}(a0_0x696d,0x6dde6));import{describe,test,expect}from'@jest/globals';describe('Connection\x20Management\x20-\x20Imports',()=>{test('useConnection hook can be imported',async()=>{const {useConnection:_0x3b0a78}=await import('../../state/useConnection.js');expect(_0x3b0a78)['toBeDefined'](),expect(typeof _0x3b0a78)['toBe']('function');}),test('useConnection is default export',async()=>{const _0x39186c=a0_0x1e7a,module=await import('../../state/useConnection.js');expect(module['default'])[_0x39186c(0x1f1)](),expect(typeof module[_0x39186c(0x1f9)])['toBe'](_0x39186c(0x1d9)),expect(module[_0x39186c(0x1f9)])[_0x39186c(0x1f2)](module['useConnection']);});}),describe('Connection\x20Management\x20-\x20Constants',()=>{const _0xc61d42=a0_0x1e7a;test('CONNECTION_STATUS\x20constants\x20are\x20defined',async()=>{const _0x2ba52e=a0_0x1e7a,{CONNECTION_STATUS:_0x562857}=await import(_0x2ba52e(0x1dd));expect(_0x562857)['toBeDefined'](),expect(_0x562857['CONNECTING'])['toBe']('connecting'),expect(_0x562857['CONNECTED'])[_0x2ba52e(0x1f2)]('connected'),expect(_0x562857[_0x2ba52e(0x1e5)])[_0x2ba52e(0x1f2)]('disconnected'),expect(_0x562857[_0x2ba52e(0x200)])['toBe']('reconnecting');}),test('CONNECTION_STATUS\x20is\x20alias\x20for\x20CONNECTION_STATE',async()=>{const _0x152246=a0_0x1e7a,{CONNECTION_STATUS:_0x117bcf,CONNECTION_STATE:_0x515424}=await import(_0x152246(0x1dd));expect(_0x117bcf)[_0x152246(0x1f2)](_0x515424);}),test(_0xc61d42(0x1da),async()=>{const _0x51cb02=_0xc61d42,{RECONNECT_CONFIG:_0x3345c5}=await import(_0x51cb02(0x1dd));expect(_0x3345c5)['toBeDefined'](),expect(_0x3345c5[_0x51cb02(0x1e7)])[_0x51cb02(0x1f1)](),expect(_0x3345c5[_0x51cb02(0x1e1)])[_0x51cb02(0x1f1)](),expect(_0x3345c5['BACKOFF_MULTIPLIER'])['toBeDefined'](),expect(_0x3345c5['MAX_ATTEMPTS'])['toBeDefined']();}),test('RECONNECT_CONFIG\x20values\x20are\x20reasonable',async()=>{const _0x27fd19=_0xc61d42,{RECONNECT_CONFIG:_0x361f40}=await import('../../config/constants.js');expect(_0x361f40[_0x27fd19(0x1e7)])[_0x27fd19(0x1e8)](0x0),expect(_0x361f40['MAX_DELAY'])[_0x27fd19(0x1e8)](_0x361f40[_0x27fd19(0x1e7)]),expect(_0x361f40['BACKOFF_MULTIPLIER'])[_0x27fd19(0x1e8)](0x1),expect(_0x361f40['MAX_ATTEMPTS'])[_0x27fd19(0x1e8)](0x0);});}),describe('Connection\x20Management\x20-\x20Integration',()=>{test('useConnection\x20hook\x20integrates\x20with\x20SessionManager\x20and\x20WebSocketManager',async()=>{const _0x3f73e2=a0_0x1e7a,{useConnection:_0x36776e}=await import(_0x3f73e2(0x20d)),{SessionManager:_0x3e7a29}=await import(_0x3f73e2(0x20e)),{WebSocketManager:_0x454d31}=await import(_0x3f73e2(0x1e2)),_0x3f9818=new _0x3e7a29(_0x3f73e2(0x207),0x1f90),_0x2dc4fa=new _0x454d31('localhost',0x1f90);expect(_0x3f9818)['toBeDefined'](),expect(_0x2dc4fa)['toBeDefined'](),expect(typeof _0x36776e)['toBe']('function');}),test('Full connection stack can be imported together',async()=>{const _0x25d8fa=a0_0x1e7a,[_0x541209,_0x486fc0,_0x3f61cf,_0x56ef48]=await Promise['all']([import(_0x25d8fa(0x1dd)),import('../../api/session.js'),import(_0x25d8fa(0x1e2)),import(_0x25d8fa(0x20d))]);expect(_0x541209[_0x25d8fa(0x1fe)])['toBeDefined'](),expect(_0x541209[_0x25d8fa(0x20a)])[_0x25d8fa(0x1f1)](),expect(_0x486fc0[_0x25d8fa(0x206)])[_0x25d8fa(0x1f1)](),expect(_0x3f61cf[_0x25d8fa(0x1fd)])['toBeDefined'](),expect(_0x56ef48['useConnection'])['toBeDefined']();});}),describe(a0_0x4e3a7b(0x203),()=>{test('useConnection\x20returns\x20expected\x20interface\x20shape',async()=>{const {useConnection:_0x89e3e9}=await import('../../state/useConnection.js');expect(_0x89e3e9['length'])['toBe'](0x2);});}),describe(a0_0x4e3a7b(0x1ec),()=>{const _0x163b7e=a0_0x4e3a7b;test(_0x163b7e(0x1d8),async()=>{const _0x56cfc2=_0x163b7e,{CONNECTION_STATUS:_0x1bf39e}=await import(_0x56cfc2(0x1dd));expect(typeof _0x1bf39e['CONNECTING'])[_0x56cfc2(0x1f2)]('string'),expect(typeof _0x1bf39e[_0x56cfc2(0x209)])[_0x56cfc2(0x1f2)](_0x56cfc2(0x1eb)),expect(typeof _0x1bf39e[_0x56cfc2(0x1e5)])[_0x56cfc2(0x1f2)](_0x56cfc2(0x1eb)),expect(typeof _0x1bf39e[_0x56cfc2(0x200)])[_0x56cfc2(0x1f2)]('string'),expect(_0x1bf39e['CONNECTING'])[_0x56cfc2(0x1f2)](_0x1bf39e[_0x56cfc2(0x1dc)]['toLowerCase']()),expect(_0x1bf39e[_0x56cfc2(0x209)])['toBe'](_0x1bf39e['CONNECTED'][_0x56cfc2(0x1e9)]());}),test(_0x163b7e(0x1e3),async()=>{const _0x3cb967=_0x163b7e,{CONNECTION_STATUS:_0x3eb734}=await import('../../config/constants.js'),_0x94ee1d=Object[_0x3cb967(0x20f)](_0x3eb734);expect(_0x94ee1d)['toContain']('CONNECTING'),expect(_0x94ee1d)[_0x3cb967(0x208)]('CONNECTED'),expect(_0x94ee1d)['toContain'](_0x3cb967(0x1e5)),expect(_0x94ee1d)[_0x3cb967(0x208)](_0x3cb967(0x200));});}),describe(a0_0x4e3a7b(0x1f0),()=>{const _0x1d7f21=a0_0x4e3a7b;test(_0x1d7f21(0x205),async()=>{const _0x3b4fed=_0x1d7f21,{RECONNECT_CONFIG:_0x5b23e7}=await import('../../config/constants.js'),_0x599917=_0x29bf94=>{const _0x1a4e5f=a0_0x1e7a;return Math[_0x1a4e5f(0x210)](_0x5b23e7[_0x1a4e5f(0x1e7)]*Math['pow'](_0x5b23e7[_0x1a4e5f(0x1ed)],_0x29bf94),_0x5b23e7['MAX_DELAY']);},_0x4a6ddb=_0x599917(0x0),_0x460f4c=_0x599917(0x1),_0x4a0bad=_0x599917(0x2);expect(_0x4a6ddb)['toBe'](_0x5b23e7[_0x3b4fed(0x1e7)]),expect(_0x460f4c)[_0x3b4fed(0x1e8)](_0x4a6ddb),expect(_0x4a0bad)[_0x3b4fed(0x1e8)](_0x460f4c);}),test('Exponential\x20backoff\x20respects\x20max\x20delay',async()=>{const _0x1ace9b=_0x1d7f21,{RECONNECT_CONFIG:_0x12f340}=await import('../../config/constants.js'),_0x15dfb7=_0x37d37f=>{const _0x2ad92e=a0_0x1e7a;return Math['min'](_0x12f340['INITIAL_DELAY']*Math['pow'](_0x12f340['BACKOFF_MULTIPLIER'],_0x37d37f),_0x12f340[_0x2ad92e(0x1e1)]);},_0x415789=_0x15dfb7(0x64);expect(_0x415789)['toBe'](_0x12f340[_0x1ace9b(0x1e1)]),expect(_0x415789)['toBeLessThanOrEqual'](_0x12f340[_0x1ace9b(0x1e1)]);});}),describe(a0_0x4e3a7b(0x1e4),()=>{const _0x37a094=a0_0x4e3a7b;test('Session\x20state\x20should\x20track\x20validity',async()=>{const _0x190ce3=a0_0x1e7a;let _0x302135=null,_0x6bdd82=![],_0x4cb064=null;_0x302135='test-session-123',_0x6bdd82=!![],_0x4cb064=Date['now']()+0x36ee80,expect(_0x302135)['toBeDefined'](),expect(_0x6bdd82)['toBe'](!![]),expect(_0x4cb064)['toBeGreaterThan'](Date[_0x190ce3(0x204)]());}),test(_0x37a094(0x1f6),async()=>{const _0x4c1843=_0x37a094;let _0x4e8874=_0x4c1843(0x1ff),_0x42f639=!![];_0x4e8874=null,_0x42f639=![],expect(_0x4e8874)['toBeNull'](),expect(_0x42f639)['toBe'](![]);});}),describe('Connection\x20Management\x20-\x20Connection\x20Metrics',()=>{const _0x3e4afd=a0_0x4e3a7b;test('Connection\x20uptime\x20can\x20be\x20tracked',async()=>{const _0x3d97d8=a0_0x1e7a,_0x2f4921=Date[_0x3d97d8(0x204)]();await new Promise(_0x2da8cb=>setTimeout(_0x2da8cb,0x64));const _0x5ae30b=Date[_0x3d97d8(0x204)]()-_0x2f4921;expect(_0x5ae30b)[_0x3d97d8(0x1e8)](0x0),expect(_0x5ae30b)['toBeGreaterThanOrEqual'](0x64);}),test(_0x3e4afd(0x20c),async()=>{const _0x5bd36d=Date['now']();await new Promise(_0xcc58c7=>setTimeout(_0xcc58c7,0x32));const _0xda0e5a=Date['now']();expect(_0x5bd36d)['toBeDefined'](),expect(_0xda0e5a)['toBeDefined'](),expect(_0xda0e5a)['toBeGreaterThan'](_0x5bd36d);}),test(_0x3e4afd(0x1fc),async()=>{const _0x1627f2=_0x3e4afd;let _0x70ad19=0x0;_0x70ad19+=0x1,expect(_0x70ad19)[_0x1627f2(0x1f2)](0x1),_0x70ad19+=0x1,expect(_0x70ad19)['toBe'](0x2),_0x70ad19=0x0,expect(_0x70ad19)[_0x1627f2(0x1f2)](0x0);});}),describe('Connection\x20Management\x20-\x20Connection\x20Status\x20Transitions',()=>{const _0x1c592e=a0_0x4e3a7b;test(_0x1c592e(0x1e6),async()=>{const _0x9848a2=_0x1c592e,{CONNECTION_STATUS:_0x16d62d}=await import('../../config/constants.js');let _0x47676a=_0x16d62d[_0x9848a2(0x1e5)];expect(_0x47676a)['toBe'](_0x9848a2(0x1f3)),_0x47676a=_0x16d62d['CONNECTING'],expect(_0x47676a)[_0x9848a2(0x1f2)](_0x9848a2(0x201)),_0x47676a=_0x16d62d[_0x9848a2(0x209)],expect(_0x47676a)[_0x9848a2(0x1f2)](_0x9848a2(0x1d6)),_0x47676a=_0x16d62d['DISCONNECTED'],expect(_0x47676a)[_0x9848a2(0x1f2)]('disconnected'),_0x47676a=_0x16d62d[_0x9848a2(0x200)],expect(_0x47676a)['toBe']('reconnecting'),_0x47676a=_0x16d62d['CONNECTED'],expect(_0x47676a)['toBe'](_0x9848a2(0x1d6));});}),describe(a0_0x4e3a7b(0x1de),()=>{test('WebSocketManager\x20has\x20event\x20emitter\x20methods',async()=>{const _0xa19e8a=a0_0x1e7a,{WebSocketManager:_0x38d6f8}=await import(_0xa19e8a(0x1e2)),_0x51da2c=new _0x38d6f8('localhost',0x1f90);expect(_0x51da2c['on'])['toBeDefined'](),expect(_0x51da2c[_0xa19e8a(0x1ee)])[_0xa19e8a(0x1f1)](),expect(typeof _0x51da2c['on'])[_0xa19e8a(0x1f2)]('function'),expect(typeof _0x51da2c['off'])[_0xa19e8a(0x1f2)]('function');});}),describe('Connection\x20Management\x20-\x20Max\x20Attempts\x20Limit',()=>{test('Reconnection\x20should\x20stop\x20after\x20max\x20attempts',async()=>{const _0x18e6f0=a0_0x1e7a,{RECONNECT_CONFIG:_0x242cf9}=await import('../../config/constants.js');let _0x33e6b3=0x0;for(let _0x4ca40a=0x0;_0x4ca40a<_0x242cf9[_0x18e6f0(0x1d7)]+0x5;_0x4ca40a++){if(_0x33e6b3<_0x242cf9['MAX_ATTEMPTS'])_0x33e6b3+=0x1;else break;}expect(_0x33e6b3)[_0x18e6f0(0x1f2)](_0x242cf9['MAX_ATTEMPTS']),expect(_0x33e6b3)[_0x18e6f0(0x202)](_0x242cf9['MAX_ATTEMPTS']);});}),describe('Connection\x20Management\x20-\x20Connection\x20Info',()=>{test('Connection\x20info\x20should\x20contain\x20all\x20metrics',async()=>{const _0x1b9163=a0_0x1e7a,{CONNECTION_STATUS:_0x6d6d1d}=await import(_0x1b9163(0x1dd)),_0xba2dd9={'status':_0x6d6d1d['CONNECTED'],'isConnected':!![],'isReconnecting':![],'sessionId':'test-session-123','sessionValid':!![],'sessionExpiration':Date[_0x1b9163(0x204)]()+0x36ee80,'uptime':0x1388,'lastConnectedAt':Date['now']()-0x1388,'lastDisconnectedAt':null,'reconnectAttempts':0x0};expect(_0xba2dd9[_0x1b9163(0x1f4)])['toBeDefined'](),expect(_0xba2dd9['isConnected'])['toBe'](!![]),expect(_0xba2dd9[_0x1b9163(0x1f5)])[_0x1b9163(0x1f2)](![]),expect(_0xba2dd9['sessionId'])['toBeDefined'](),expect(_0xba2dd9['sessionValid'])['toBe'](!![]),expect(_0xba2dd9[_0x1b9163(0x1df)])[_0x1b9163(0x1e8)](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_0x7ead93=a0_0x3f97;function a0_0x3f97(_0x18f9e5,_0x4d9b71){_0x18f9e5=_0x18f9e5-0x7f;const _0x452845=a0_0x4528();let _0x3f9765=_0x452845[_0x18f9e5];if(a0_0x3f97['KKwBqf']===undefined){var _0x1716b5=function(_0x1650a4){const _0x3592e9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5ddde8='',_0x2c6ba6='';for(let _0x111c52=0x0,_0x11a3a6,_0x4e0cc8,_0x1e8a34=0x0;_0x4e0cc8=_0x1650a4['charAt'](_0x1e8a34++);~_0x4e0cc8&&(_0x11a3a6=_0x111c52%0x4?_0x11a3a6*0x40+_0x4e0cc8:_0x4e0cc8,_0x111c52++%0x4)?_0x5ddde8+=String['fromCharCode'](0xff&_0x11a3a6>>(-0x2*_0x111c52&0x6)):0x0){_0x4e0cc8=_0x3592e9['indexOf'](_0x4e0cc8);}for(let _0x4f3dae=0x0,_0x55cb10=_0x5ddde8['length'];_0x4f3dae<_0x55cb10;_0x4f3dae++){_0x2c6ba6+='%'+('00'+_0x5ddde8['charCodeAt'](_0x4f3dae)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2c6ba6);};a0_0x3f97['PXbfdc']=_0x1716b5,a0_0x3f97['dhKImH']={},a0_0x3f97['KKwBqf']=!![];}const _0x544d63=_0x452845[0x0],_0x3f5cf5=_0x18f9e5+_0x544d63,_0x4c4eae=a0_0x3f97['dhKImH'][_0x3f5cf5];return!_0x4c4eae?(_0x3f9765=a0_0x3f97['PXbfdc'](_0x3f9765),a0_0x3f97['dhKImH'][_0x3f5cf5]=_0x3f9765):_0x3f9765=_0x4c4eae,_0x3f9765;}function a0_0x4528(){const _0x4db90c=['ywXS','z2v0rgvYAxzLzfn0yxrLrNjVBuvYCM9Y','nZm0qKXNtuX1','y29TCg9Uzw50rgLKq2f0y2G','zNvUy3rPB24','rxjYB3jcB3vUzgfYEsbPCYbHignSyxnZignVBxbVBMvUDa','mtjJq3vXDe4','ugHHC2uGosaTievUAgfUy2vKiezLyxr1CMvZic0Gq29UC3rHBNrZ','Dg9czq','Dg9czurLzMLUzwq','mtmYnZa4y1HqugTM','CMvHy3q','sw5WDxrcB3G','ody0wxPQsNHk','mJyWotCYzgHyuNHt','CMvUzgvY','tg9HzgLUz1nWAw5Uzxi','ChjVDg90ExbL','sw5SAw5Lu3bPBM5LCG','oda5nZyWC1vAr0nc','DxnLsw5WDxq','mta3mdqYnLzuA0LcBW','ugHHC2uGosaTievUAgfUy2vKienVBxbVBMvUDhmGlsbjBxbVCNrZ','sw5WDxrcB3GGzgvMAw5LCYbnqvHFseLtve9swsbJB25ZDgfUDa','mtG4mdHPrhbjBwe','lI4VlI4Vy29TCg9Uzw50CY9mB2fKAw5Nu3bPBM5LCI5QCW','ugHHC2uGosaTievUAgfUy2vKieLUChv0qM94ic0GsgLZDg9YEsbtDxbWB3j0','mJi3tNvdC05k','zgvMyxvSDa','Dg9czvvUzgvMAw5Lza','lI4VlI4Vy29TCg9Uzw50CY9fCNjVCKjVDw5Kyxj5lMPZ','DxnLu3rHDgu','mZnSvvzpDNO','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','lI4VlI4Vy29TCg9Uzw50CY9jBNb1DejVEc5QCW','mZiXmtm1vwrtuKrV','nuDIuM1pAW'];a0_0x4528=function(){return _0x4db90c;};return a0_0x4528();}(function(_0x470306,_0x115fdb){const _0x29b0fe=a0_0x3f97,_0x1bebbb=_0x470306();while(!![]){try{const _0x29e3a0=-parseInt(_0x29b0fe(0x98))/0x1*(-parseInt(_0x29b0fe(0x7f))/0x2)+parseInt(_0x29b0fe(0xa0))/0x3+parseInt(_0x29b0fe(0x8b))/0x4*(-parseInt(_0x29b0fe(0xa1))/0x5)+parseInt(_0x29b0fe(0x83))/0x6*(parseInt(_0x29b0fe(0x92))/0x7)+parseInt(_0x29b0fe(0x95))/0x8*(-parseInt(_0x29b0fe(0x8a))/0x9)+-parseInt(_0x29b0fe(0x90))/0xa+parseInt(_0x29b0fe(0x9d))/0xb*(parseInt(_0x29b0fe(0x87))/0xc);if(_0x29e3a0===_0x115fdb)break;else _0x1bebbb['push'](_0x1bebbb['shift']());}catch(_0x2cde30){_0x1bebbb['push'](_0x1bebbb['shift']());}}}(a0_0x4528,0x2670c));import{describe,test,expect}from'@jest/globals';describe(a0_0x7ead93(0x93),()=>{const _0x13420d=a0_0x7ead93;test('ErrorBoundary component can be imported',async()=>{const _0x4c12be=a0_0x3f97,{ErrorBoundary:_0x5ddde8}=await import('../../components/ErrorBoundary.js');expect(_0x5ddde8)['toBeDefined'](),expect(typeof _0x5ddde8)['toBe'](_0x4c12be(0x81));},0x7530),test(_0x13420d(0x82),async()=>{const _0x3c582c=_0x13420d,{ErrorBoundary:_0x2c6ba6}=await import(_0x3c582c(0x9b));expect(_0x2c6ba6[_0x3c582c(0x8e)])['toBeDefined'](),expect(typeof _0x2c6ba6['prototype']['render'])['toBe'](_0x3c582c(0x81));}),test('LoadingSpinner component can be imported',async()=>{const _0x27c4d4=_0x13420d,{LoadingSpinner:_0x111c52}=await import(_0x27c4d4(0x96));expect(_0x111c52)['toBeDefined'](),expect(typeof _0x111c52)[_0x27c4d4(0x85)]('function');}),test('InlineSpinner component can be imported',async()=>{const _0x29764c=_0x13420d,{InlineSpinner:_0x11a3a6}=await import(_0x29764c(0x96));expect(_0x11a3a6)['toBeDefined'](),expect(typeof _0x11a3a6)['toBe'](_0x29764c(0x81));}),test('LoadingSpinner is default export',async()=>{const _0x54f08b=_0x13420d,module=await import(_0x54f08b(0x96));expect(module[_0x54f08b(0x99)])['toBeDefined'](),expect(module['default'])[_0x54f08b(0x85)](module[_0x54f08b(0x8d)]);}),test('Enhanced\x20InputBox\x20maintains\x20backward\x20compatibility',async()=>{const _0x59e62e=_0x13420d,{InputBox:_0x4e0cc8}=await import('../../components/InputBox.js');expect(_0x4e0cc8)[_0x59e62e(0x86)](),expect(typeof _0x4e0cc8)[_0x59e62e(0x85)](_0x59e62e(0x81));});}),describe('Phase\x209\x20-\x20ErrorBoundary\x20-\x20Structure',()=>{test('ErrorBoundary\x20is\x20a\x20React\x20Component\x20class',async()=>{const _0x3363b6=a0_0x3f97,{ErrorBoundary:_0x1e8a34}=await import('../../components/ErrorBoundary.js'),_0x4f3dae=await import(_0x3363b6(0x88));expect(_0x1e8a34['prototype'])['toBeDefined'](),expect(typeof _0x1e8a34['prototype'][_0x3363b6(0x8c)])['toBe']('function'),expect(typeof _0x1e8a34['prototype'][_0x3363b6(0x80)])[_0x3363b6(0x85)](_0x3363b6(0x81));}),test('ErrorBoundary\x20has\x20getDerivedStateFromError\x20static\x20method',async()=>{const _0x1e7b29=a0_0x3f97,{ErrorBoundary:_0x55cb10}=await import('../../components/ErrorBoundary.js');expect(typeof _0x55cb10[_0x1e7b29(0xa3)])[_0x1e7b29(0x85)]('function');}),test('ErrorBoundary\x20componentDidCatch\x20is\x20defined',async()=>{const {ErrorBoundary:_0x5c5f7f}=await import('../../components/ErrorBoundary.js');expect(typeof _0x5c5f7f['prototype']['componentDidCatch'])['toBe']('function');});}),describe('Phase\x209\x20-\x20LoadingSpinner\x20-\x20Structure',()=>{test('LoadingSpinner\x20is\x20a\x20function\x20component',async()=>{const _0x35ec49=a0_0x3f97,{LoadingSpinner:_0x169aa6}=await import(_0x35ec49(0x96));expect(typeof _0x169aa6)[_0x35ec49(0x85)]('function'),expect(_0x169aa6['prototype']?.['render'])['toBeUndefined']();}),test('InlineSpinner\x20is\x20a\x20function\x20component',async()=>{const _0x286c3b=a0_0x3f97,{InlineSpinner:_0x44e0ab}=await import(_0x286c3b(0x96));expect(typeof _0x44e0ab)[_0x286c3b(0x85)]('function'),expect(_0x44e0ab['prototype']?.[_0x286c3b(0x8c)])[_0x286c3b(0x9a)]();});}),describe(a0_0x7ead93(0x97),()=>{test('Enhanced InputBox imports useRef for history',async()=>{const _0x24f199=a0_0x3f97,_0x234e9c=await import('../../components/InputBox.js'),_0x107c60=await import('react');expect(_0x107c60[_0x24f199(0x9c)])[_0x24f199(0x86)](),expect(_0x107c60['useRef'])[_0x24f199(0x86)]();}),test('InputBox component maintains exports',async()=>{const _0x2b3d6e=a0_0x3f97,module=await import(_0x2b3d6e(0x9f));expect(module[_0x2b3d6e(0x89)])['toBeDefined'](),expect(module[_0x2b3d6e(0x99)])[_0x2b3d6e(0x86)](),expect(module[_0x2b3d6e(0x99)])[_0x2b3d6e(0x85)](module[_0x2b3d6e(0x89)]);});}),describe('Phase\x209\x20-\x20Integration',()=>{test('All enhanced components can be imported together',async()=>{const _0x10138e=a0_0x3f97,[_0x20acea,_0x5772e8,_0x1baaf5]=await Promise[_0x10138e(0xa2)]([import(_0x10138e(0x9b)),import(_0x10138e(0x96)),import(_0x10138e(0x9f))]);expect(_0x20acea['ErrorBoundary'])[_0x10138e(0x86)](),expect(_0x5772e8[_0x10138e(0x8d)])[_0x10138e(0x86)](),expect(_0x5772e8[_0x10138e(0x8f)])[_0x10138e(0x86)](),expect(_0x1baaf5[_0x10138e(0x89)])[_0x10138e(0x86)]();}),test('Enhanced Layout component imports useInput for keyboard shortcuts',async()=>{const _0x402863=a0_0x3f97,_0x5f57d4=await import(_0x402863(0x88)),_0x19b661=await import('ink');expect(_0x19b661[_0x402863(0x91)])['toBeDefined'](),expect(typeof _0x19b661[_0x402863(0x91)])[_0x402863(0x85)](_0x402863(0x81));}),test('Layout component can still be imported after enhancements',async()=>{const _0x3718a1=a0_0x3f97,{Layout:_0x19b9d8}=await import(_0x3718a1(0x9e));expect(_0x19b9d8)[_0x3718a1(0x86)](),expect(typeof _0x19b9d8)['toBe']('function');});}),describe(a0_0x7ead93(0x84),()=>{const _0x452a11=a0_0x7ead93;test(_0x452a11(0x94),async()=>{const _0x243ed3=_0x452a11,module=await import(_0x243ed3(0x9f));expect(module['InputBox'])['toBeDefined']();});});
@@ -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
+ (function(_0x1e2f8e,_0x525a70){const _0x6b49e=a0_0x5d0b,_0x3b7756=_0x1e2f8e();while(!![]){try{const _0x10f28e=-parseInt(_0x6b49e(0xc8))/0x1+-parseInt(_0x6b49e(0xc3))/0x2+parseInt(_0x6b49e(0xc2))/0x3+parseInt(_0x6b49e(0xdb))/0x4*(parseInt(_0x6b49e(0xeb))/0x5)+-parseInt(_0x6b49e(0xb4))/0x6*(-parseInt(_0x6b49e(0xd1))/0x7)+-parseInt(_0x6b49e(0xcc))/0x8+-parseInt(_0x6b49e(0xdd))/0x9*(-parseInt(_0x6b49e(0xaa))/0xa);if(_0x10f28e===_0x525a70)break;else _0x3b7756['push'](_0x3b7756['shift']());}catch(_0x458ebb){_0x3b7756['push'](_0x3b7756['shift']());}}}(a0_0x1b24,0x78973));function a0_0x5d0b(_0x5a58bd,_0x16e04a){_0x5a58bd=_0x5a58bd-0xa8;const _0x1b24b6=a0_0x1b24();let _0x5d0b25=_0x1b24b6[_0x5a58bd];if(a0_0x5d0b['xnVynf']===undefined){var _0x11720e=function(_0x53b50b){const _0x5cdbcc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1f8e5c='',_0x24ce3b='';for(let _0x18f9f6=0x0,_0x3fa602,_0x59fe01,_0x347d8f=0x0;_0x59fe01=_0x53b50b['charAt'](_0x347d8f++);~_0x59fe01&&(_0x3fa602=_0x18f9f6%0x4?_0x3fa602*0x40+_0x59fe01:_0x59fe01,_0x18f9f6++%0x4)?_0x1f8e5c+=String['fromCharCode'](0xff&_0x3fa602>>(-0x2*_0x18f9f6&0x6)):0x0){_0x59fe01=_0x5cdbcc['indexOf'](_0x59fe01);}for(let _0x1ebeab=0x0,_0x2ac042=_0x1f8e5c['length'];_0x1ebeab<_0x2ac042;_0x1ebeab++){_0x24ce3b+='%'+('00'+_0x1f8e5c['charCodeAt'](_0x1ebeab)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x24ce3b);};a0_0x5d0b['XTbrQf']=_0x11720e,a0_0x5d0b['FULsLC']={},a0_0x5d0b['xnVynf']=!![];}const _0x12757d=_0x1b24b6[0x0],_0xa8828=_0x5a58bd+_0x12757d,_0x4fbd98=a0_0x5d0b['FULsLC'][_0xa8828];return!_0x4fbd98?(_0x5d0b25=a0_0x5d0b['XTbrQf'](_0x5d0b25),a0_0x5d0b['FULsLC'][_0xa8828]=_0x5d0b25):_0x5d0b25=_0x4fbd98,_0x5d0b25;}import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function a0_0x1b24(){const _0x4bf8c8=['BM90','tKvuv09ssW','Dg9iyxzLuhjVCgvYDhK','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','DxnL','ywXSB3DLzc10ExbL','Bg94AwfbCgLlzxK','BM90lweTzNvUy3rPB24','z2vUzxjHDgvszxf1zxn0swq','mtaYmZaWoxLJtLrbwG','mtqZmdeYohDuzK9ota','y29UBMvJDgvK','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','q09otKvdveLptL9tvefurq','Dg9nyxrJAa','mJKYnJy2BgnMqLnb','lI4VlI4VyxbPl3nLC3nPB24UANm','BwLKzgXLD2fYzq','z2v0u3rHDgu','mJiZntC2oerkrw5oBW','Dg9czq','D3m6lY9SB2nHBgHVC3q6oda4ma','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','A2v5','mJHUz3HLyxa','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','zNvUy3rPB24','quDftLrFtu9erq','DgvZDa','BgvUz3rO','Ag9ZDa','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','uefhsu5bveLptG','reLtq09otKvdveve','mtaYntzUrMXtyNK','z2v0u3rHDhm','nZqWn3jpzwz2qG','veLnsu5h','CMvJB25Uzwn0qxr0zw1WDhm','Bg9JywXOB3n0','AgfZsgfUzgXLCG','yMfZzvvYBa','BNvTyMvY','vuLFreLnru5tsu9ouW','DgvZDc1TzxnZywDL','tuvtu0fhrv9brerfra','Dg9czuDYzwf0zxjuAgfU','DgvZDc1RzxK','C3rHDgu','AgfZtg94AwflzxK','mtq5nxbKwef1CW','Cg9YDa','ChjVAMvJDerPCG','v0vcu09ds0vux1bjtKDFsu5urvjwquW','DMvUzg9Ys2v5C0nVDw50','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','C2vZC2LVBKLK','mZC1mgPeqwHAua','DgvZDc1OB3n0','yMXVy2TLzc10ExbL','Ahr0CdOVl2XVy2fSAg9ZDdO4mdGW','AxnwywXPza','u0LerujbuL9xsurusa','z2v0u2vZC2LVBKLK','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','DxjS','y2XLyxi','ntq3mZe0z3DowgvW','q29UC3rHBNrZigHHDMuGBM8GBwfNAwmGBNvTyMvYCW','Dg9czurLzMLUzwq','quDftLrFtu9erv9dsefor0ve','z2v0u2vZC2LVBKLUzM8'];a0_0x1b24=function(){return _0x4bf8c8;};return a0_0x1b24();}describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x3f4030=a0_0x5d0b,_0x1f8e5c=await import('../../config/constants.js');expect(_0x1f8e5c['UI_DIMENSIONS'])[_0x3f4030(0xb6)](),expect(_0x1f8e5c['MESSAGE_CONFIG'])[_0x3f4030(0xb6)](),expect(_0x1f8e5c[_0x3f4030(0xd9)])[_0x3f4030(0xb6)](),expect(_0x1f8e5c['TIMING'])[_0x3f4030(0xb6)](),expect(_0x1f8e5c['NETWORK'])['toBeDefined'](),expect(_0x1f8e5c[_0x3f4030(0xc6)])['toBeDefined'](),expect(_0x1f8e5c[_0x3f4030(0xd4)])['toBeDefined'](),expect(_0x1f8e5c['WS_MESSAGE_TYPE'])[_0x3f4030(0xb6)](),expect(_0x1f8e5c['API_ENDPOINTS'])['toBeDefined'](),expect(_0x1f8e5c['COMMANDS'])['toBeDefined'](),expect(_0x1f8e5c[_0x3f4030(0xba)]['DEFAULT_HOST'])[_0x3f4030(0xcd)]('localhost'),expect(_0x1f8e5c[_0x3f4030(0xba)]['DEFAULT_PORT'])[_0x3f4030(0xcd)](0x1f90),expect(_0x1f8e5c[_0x3f4030(0xc6)]['DISCONNECTED'])['toBe']('disconnected'),expect(_0x1f8e5c[_0x3f4030(0xc6)]['CONNECTED'])[_0x3f4030(0xcd)](_0x3f4030(0xc4));}),test('WebSocketManager class can be imported',async()=>{const _0x1935af=a0_0x5d0b,{WebSocketManager:_0x24ce3b}=await import('../../api/websocket.js');expect(_0x24ce3b)['toBeDefined'](),expect(typeof _0x24ce3b)[_0x1935af(0xcd)]('function');const _0x18f9f6=new _0x24ce3b('localhost',0x1f90);expect(_0x18f9f6)['toBeDefined'](),expect(_0x18f9f6[_0x1935af(0xd7)])['toBe']('localhost'),expect(_0x18f9f6[_0x1935af(0xec)])[_0x1935af(0xcd)](0x1f90),expect(_0x18f9f6[_0x1935af(0xb2)])['toBe'](_0x1935af(0xce));}),test('SessionManager class can be imported',async()=>{const _0xeb34a=a0_0x5d0b,{SessionManager:_0x3fa602}=await import('../../api/session.js');expect(_0x3fa602)[_0xeb34a(0xb6)](),expect(typeof _0x3fa602)[_0xeb34a(0xcd)]('function');const _0x59fe01=new _0x3fa602('localhost',0x1f90);expect(_0x59fe01)['toBeDefined'](),expect(_0x59fe01['host'])['toBe'](_0xeb34a(0xe0)),expect(_0x59fe01[_0xeb34a(0xec)])[_0xeb34a(0xcd)](0x1f90),expect(_0x59fe01[_0xeb34a(0xe2)])[_0xeb34a(0xcd)](_0xeb34a(0xad));}),test('MessageRouter class can be imported',async()=>{const _0x1fe0eb=a0_0x5d0b,{MessageRouter:_0x347d8f}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1ebeab}=await import(_0x1fe0eb(0xbc));expect(_0x347d8f)[_0x1fe0eb(0xb6)](),expect(typeof _0x347d8f)['toBe']('function');const _0x2ac042=new _0x1ebeab(_0x1fe0eb(0xe0),0x1f90),_0xec0f93=new _0x347d8f(_0x2ac042);expect(_0xec0f93)['toBeDefined'](),expect(_0xec0f93['ws'])['toBe'](_0x2ac042);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x245f54=a0_0x5d0b,{loggingMiddleware:_0x162b7c,filterMiddleware:_0x1b05c6,transformMiddleware:_0x431b37,timestampMiddleware:_0x3625e7,validationMiddleware:_0x5bc838}=await import('../../api/messageRouter.js');expect(typeof _0x162b7c)[_0x245f54(0xcd)]('function'),expect(typeof _0x1b05c6)[_0x245f54(0xcd)](_0x245f54(0xd3)),expect(typeof _0x431b37)[_0x245f54(0xcd)](_0x245f54(0xd3)),expect(typeof _0x3625e7)[_0x245f54(0xcd)](_0x245f54(0xd3)),expect(typeof _0x5bc838)[_0x245f54(0xcd)]('function');}),test('useConnection hook can be imported',async()=>{const _0x1ccf4a=a0_0x5d0b,{useConnection:_0x444599,useConnectionStatus:_0x5658e8}=await import('../../state/useConnection.js');expect(_0x444599)[_0x1ccf4a(0xb6)](),expect(typeof _0x444599)['toBe'](_0x1ccf4a(0xd3)),expect(_0x5658e8)['toBeDefined'](),expect(typeof _0x5658e8)['toBe'](_0x1ccf4a(0xd3));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0xf0eba2=a0_0x5d0b;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x2a501c=a0_0x5d0b,{WebSocketManager:_0x34f14e}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x5a7744}=await import(_0x2a501c(0xd2)),_0x53d2b3=new _0x34f14e('test-host',0x2382);expect(_0x53d2b3[_0x2a501c(0xe9)])[_0x2a501c(0xcd)](_0x5a7744[_0x2a501c(0xda)]),expect(_0x53d2b3['sessionId'])[_0x2a501c(0xcd)](null),expect(_0x53d2b3['messageQueue'])['toEqual']([]),expect(_0x53d2b3[_0x2a501c(0xdf)])[_0x2a501c(0xcd)](0x0),expect(_0x53d2b3['shouldReconnect'])['toBe'](!![]);}),test(_0xf0eba2(0xa8),async()=>{const _0x14baf7=_0xf0eba2,{SessionManager:_0x492365}=await import(_0x14baf7(0xc9)),_0x317363=new _0x492365(_0x14baf7(0xab),0x2382);expect(_0x317363[_0x14baf7(0xa9)])[_0x14baf7(0xcd)](null),expect(_0x317363['projectDir'])[_0x14baf7(0xcd)](null),expect(_0x317363[_0x14baf7(0xbf)])[_0x14baf7(0xcd)](null),expect(_0x317363['vendorKeys'])['toEqual']({}),expect(_0x317363[_0x14baf7(0xae)]())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x5eebb7=_0xf0eba2,{MessageRouter:_0x184d48}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1073c1}=await import(_0x5eebb7(0xbc)),{WS_MESSAGE_TYPE:_0x116f69}=await import('../../config/constants.js'),_0x573b8f=new _0x1073c1(_0x5eebb7(0xe0),0x1f90),_0x2fd90f=new _0x184d48(_0x573b8f);expect(_0x2fd90f[_0x5eebb7(0xe1)](_0x116f69[_0x5eebb7(0xe6)]))[_0x5eebb7(0xcd)](!![]),expect(_0x2fd90f['hasHandler'](_0x116f69[_0x5eebb7(0xb7)]))['toBe'](!![]),expect(_0x2fd90f[_0x5eebb7(0xe1)](_0x116f69['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0x2fd90f[_0x5eebb7(0xe1)](_0x116f69['COMPACTION_EVENT']))[_0x5eebb7(0xcd)](!![]),expect(_0x2fd90f[_0x5eebb7(0xe1)](_0x116f69['IMAGE_RESULT']))['toBe'](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x140bb8=_0xf0eba2,{MessageRouter:_0x15b254}=await import('../../api/messageRouter.js'),{WebSocketManager:_0xa2dc2d}=await import(_0x140bb8(0xbc)),_0x43b183=new _0xa2dc2d('localhost',0x1f90),_0x3c309a=new _0x15b254(_0x43b183),_0x2967c5=_0x11e924=>_0x11e924;expect(_0x3c309a['middleware'][_0x140bb8(0xd6)])[_0x140bb8(0xc5)](0x0),_0x3c309a[_0x140bb8(0xbd)](_0x2967c5);const _0x41f1de=_0x3c309a[_0x140bb8(0xca)][_0x140bb8(0xd6)];expect(_0x41f1de)[_0x140bb8(0xe7)](0x0),_0x3c309a['removeMiddleware'](_0x2967c5),expect(_0x3c309a['middleware']['length'])['toBe'](_0x41f1de-0x1);}),test(_0xf0eba2(0xd8),async()=>{const _0x279061=_0xf0eba2,{SessionManager:_0x512eae}=await import('../../api/session.js'),_0x5f5474=new _0x512eae('localhost',0x1f90);expect(_0x5f5474[_0x279061(0xb0)]())[_0x279061(0xcd)](null),expect(_0x5f5474['getProjectDir']())[_0x279061(0xcd)](null),expect(_0x5f5474['isValid']())[_0x279061(0xcd)](![]);const _0x298904=_0x5f5474[_0x279061(0xb8)]();expect(_0x298904)['toHaveProperty']('sessionId'),expect(_0x298904)[_0x279061(0xbb)](_0x279061(0xed)),expect(_0x298904)['toHaveProperty'](_0x279061(0xea)),expect(_0x298904)['toHaveProperty'](_0x279061(0xef));}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x38ce5a=_0xf0eba2,{WebSocketManager:_0x394369}=await import(_0x38ce5a(0xbc)),{CONNECTION_STATE:_0xbecd28}=await import('../../config/constants.js'),_0x4b0445=new _0x394369('localhost',0x1f90);expect(_0x4b0445[_0x38ce5a(0xcb)]())['toBe'](_0xbecd28[_0x38ce5a(0xda)]),expect(_0x4b0445['isConnected']())['toBe'](![]),expect(_0x4b0445[_0x38ce5a(0xb0)]())[_0x38ce5a(0xcd)](null);const _0x1aa910=_0x4b0445[_0x38ce5a(0xdc)]();expect(_0x1aa910)['toHaveProperty']('state'),expect(_0x1aa910)['toHaveProperty'](_0x38ce5a(0xa9)),expect(_0x1aa910)[_0x38ce5a(0xbb)]('reconnectAttempts'),expect(_0x1aa910)[_0x38ce5a(0xbb)]('queuedMessages'),expect(_0x1aa910)['toHaveProperty']('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x24d4f8=_0xf0eba2,{MessageRouter:_0xe558a0}=await import('../../api/messageRouter.js'),{WebSocketManager:_0xfc823b}=await import('../../api/websocket.js'),_0xeed70=new _0xfc823b('localhost',0x1f90),_0x588ca8=new _0xe558a0(_0xeed70),_0x258ff3=()=>{};expect(_0x588ca8['hasHandler']('test-message'))[_0x24d4f8(0xcd)](![]),_0x588ca8['registerHandler'](_0x24d4f8(0xe5),_0x258ff3),expect(_0x588ca8['hasHandler'](_0x24d4f8(0xe5)))[_0x24d4f8(0xcd)](!![]),_0x588ca8['unregisterHandler'](_0x24d4f8(0xe5)),expect(_0x588ca8[_0x24d4f8(0xe1)]('test-message'))['toBe'](![]);}),test('MessageRouter\x20middleware\x20helpers\x20create\x20valid\x20middleware',async()=>{const _0x476585=_0xf0eba2,{loggingMiddleware:_0x5c2092,timestampMiddleware:_0x45596a,filterMiddleware:_0x434c6f}=await import('../../api/messageRouter.js'),_0xae22c0=_0x5c2092();expect(typeof _0xae22c0)['toBe'](_0x476585(0xd3));const _0x1d8fee=_0x45596a();expect(typeof _0x1d8fee)['toBe'](_0x476585(0xd3));const _0x24d819={'type':_0x476585(0xd5)},_0x2a79a2=_0x1d8fee(_0x24d819);expect(_0x2a79a2)[_0x476585(0xbb)]('receivedAt'),expect(_0x2a79a2['type'])[_0x476585(0xcd)]('test');const _0x4b2b0d=_0x434c6f([_0x476585(0xbe)]);expect(typeof _0x4b2b0d)[_0x476585(0xcd)]('function'),expect(_0x4b2b0d({'type':_0x476585(0xbe)}))['toBeTruthy'](),expect(_0x4b2b0d({'type':_0x476585(0xac)}))['toBe'](null);}),test(_0xf0eba2(0xb5),async()=>{const _0x42274d=_0xf0eba2,_0x2ff8e6=await import('../../config/constants.js');expect(typeof _0x2ff8e6[_0x42274d(0xde)]['WEBSOCKET_RECONNECT_DELAY'])['toBe']('number'),expect(typeof _0x2ff8e6['TIMING'][_0x42274d(0xee)])['toBe'](_0x42274d(0xe3)),expect(typeof _0x2ff8e6['NETWORK']['DEFAULT_PORT'])[_0x42274d(0xcd)]('number'),expect(typeof _0x2ff8e6[_0x42274d(0xba)]['MAX_RETRIES'])['toBe']('number'),expect(typeof _0x2ff8e6['NETWORK']['HTTP_TIMEOUT'])[_0x42274d(0xcd)]('number'),expect(typeof _0x2ff8e6[_0x42274d(0xe4)]['MESSAGE_LIST_HEIGHT'])[_0x42274d(0xcd)](_0x42274d(0xe3)),expect(typeof _0x2ff8e6[_0x42274d(0xe4)][_0x42274d(0xaf)])['toBe'](_0x42274d(0xe3));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x3407c8=a0_0x5d0b;test(_0x3407c8(0xb1),async()=>{const _0x2aaf13=_0x3407c8,{MessageRouter:_0x13775b}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4c1c8e}=await import('../../api/websocket.js'),_0x143600=new _0x4c1c8e(_0x2aaf13(0xe0),0x1f90),_0x32de49=new _0x13775b(_0x143600);expect(()=>{const _0x394de5=_0x2aaf13;_0x32de49['registerHandler'](_0x394de5(0xd5),_0x394de5(0xc0));})['toThrow']('Handler\x20must\x20be\x20a\x20function');}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x1110d4=_0x3407c8,{MessageRouter:_0x24c84d}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4ce5c4}=await import(_0x1110d4(0xbc)),_0x2f1180=new _0x4ce5c4(_0x1110d4(0xe0),0x1f90),_0x30224b=new _0x24c84d(_0x2f1180);expect(()=>{_0x30224b['use']('not-a-function');})['toThrow']('Middleware\x20must\x20be\x20a\x20function');}),test(_0x3407c8(0xcf),async()=>{const _0x35132b=_0x3407c8,{SessionManager:_0x49e95f}=await import(_0x35132b(0xc9)),_0x14abd4=new _0x49e95f('localhost',0x1f90);_0x14abd4['sessionId']='test-123',_0x14abd4[_0x35132b(0xed)]='/test/dir',_0x14abd4[_0x35132b(0xbf)]=_0x35132b(0xe8),_0x14abd4['vendorKeys']={'openai':_0x35132b(0xd0)},expect(_0x14abd4[_0x35132b(0xae)]())['toBe'](!![]),_0x14abd4[_0x35132b(0xb3)](),expect(_0x14abd4[_0x35132b(0xa9)])[_0x35132b(0xcd)](null),expect(_0x14abd4['projectDir'])['toBe'](null),expect(_0x14abd4['loxiaApiKey'])[_0x35132b(0xcd)](null),expect(_0x14abd4['vendorKeys'])['toEqual']({}),expect(_0x14abd4[_0x35132b(0xae)]())[_0x35132b(0xcd)](![]);}),test('WebSocketManager\x20generates\x20unique\x20request\x20IDs',async()=>{const _0x2085b1=_0x3407c8,{WebSocketManager:_0x2cc7e9}=await import('../../api/websocket.js'),_0x4e2cbc=new _0x2cc7e9(_0x2085b1(0xe0),0x1f90),_0x5a9fd2=_0x4e2cbc['generateRequestId'](),_0x4d2cc0=_0x4e2cbc[_0x2085b1(0xc1)](),_0x3dc4af=_0x4e2cbc['generateRequestId']();expect(_0x5a9fd2)[_0x2085b1(0xb9)][_0x2085b1(0xcd)](_0x4d2cc0),expect(_0x4d2cc0)[_0x2085b1(0xb9)][_0x2085b1(0xcd)](_0x3dc4af),expect(_0x5a9fd2)[_0x2085b1(0xb9)][_0x2085b1(0xcd)](_0x3dc4af),expect(_0x5a9fd2)[_0x2085b1(0xc7)](/^req-\d+-\d+$/),expect(_0x4d2cc0)[_0x2085b1(0xc7)](/^req-\d+-\d+$/),expect(_0x3dc4af)['toMatch'](/^req-\d+-\d+$/);});});
@@ -1 +1 @@
1
- const a0_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_0x47b20f=a0_0x5a4c;function a0_0x5a4c(_0x173bc1,_0x2019b6){_0x173bc1=_0x173bc1-0x18e;const _0x13a13b=a0_0x13a1();let _0x5a4c99=_0x13a13b[_0x173bc1];if(a0_0x5a4c['ypiTLs']===undefined){var _0x5301d9=function(_0x5036f5){const _0x1c0883='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x559b0e='',_0x17b6f5='';for(let _0x46af30=0x0,_0x173d2e,_0x53a4ea,_0x169971=0x0;_0x53a4ea=_0x5036f5['charAt'](_0x169971++);~_0x53a4ea&&(_0x173d2e=_0x46af30%0x4?_0x173d2e*0x40+_0x53a4ea:_0x53a4ea,_0x46af30++%0x4)?_0x559b0e+=String['fromCharCode'](0xff&_0x173d2e>>(-0x2*_0x46af30&0x6)):0x0){_0x53a4ea=_0x1c0883['indexOf'](_0x53a4ea);}for(let _0x38eed8=0x0,_0x2af611=_0x559b0e['length'];_0x38eed8<_0x2af611;_0x38eed8++){_0x17b6f5+='%'+('00'+_0x559b0e['charCodeAt'](_0x38eed8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x17b6f5);};a0_0x5a4c['FyXXso']=_0x5301d9,a0_0x5a4c['JnQjBE']={},a0_0x5a4c['ypiTLs']=!![];}const _0x12f82f=_0x13a13b[0x0],_0x3f6c7a=_0x173bc1+_0x12f82f,_0x2fb250=a0_0x5a4c['JnQjBE'][_0x3f6c7a];return!_0x2fb250?(_0x5a4c99=a0_0x5a4c['FyXXso'](_0x5a4c99),a0_0x5a4c['JnQjBE'][_0x3f6c7a]=_0x5a4c99):_0x5a4c99=_0x2fb250,_0x5a4c99;}function a0_0x13a1(){const _0x4a29a0=['twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','lI4VlI4VyxbPl3nLC3nPB24UANm','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','C3LZDgvT','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','n0nHChfxtq','BNvTyMvY','Bg9JywXOB3n0','ywXS','quDftLrFtu9erv9dsefor0ve','ywDLBNrFBw9Kzv9JAgfUz2vK','DxnLCG','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','tufyx01fu1nbr0vtx0rju1bmqvK','twvZC2fNzsbnyw5Hz2vTzw50ic0GrxjYB3iGsgfUzgXPBMC','BgvUz3rO','BwvZC2fNzv9HzgrLza','quDftLrFuKvtue9ou0u','zgvMyxvSDa','DxnLtwvZC2fNzxmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','t3jJAgvZDhjHDg9YigvUzhbVAw50ignHBIbIzsb1C2vKigzVCIbTzxnZywDLig9WzxjHDgLVBNm','tuvtu0fhrv9st0Xf','Dg9czurLzMLUzwq','mtiYmJi2n0LzBxruvq','u1Ltvevnx05pveLgsunbveLptG','mZa5mdy0yKTYAwz4','og52CvLeCW','tuvtu0fhrv9brerfra','rvHfq1vusu9ox1nut1bqruq','tuvtu0fhrv9uwvbfignVBNn0yw50CYbHCMuGzgvMAw5Lza','zNvUy3rPB24','Dg9czuDYzwf0zxjuAgfU','mtm1nZG3nwjYrg1fAW','twvZC2fNzvjVDxrLCIbOyxmGBwvZC2fNzsbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','mJmYode2oe1Wug9mrW','DxnLCI1TzxnZywDL','qvntsvnuqu5u','uefhrv9tsvPf','DxnLtwvZC2fNzunVDw50ihjLDhvYBNmGzxHWzwn0zwqGAw50zxjMywnLihnOyxbL','CMvWzwf0','tufyx1bbr0vFu0LArq','DxnLtwvZC2fNzxm','Dg9czq','u1Ltvevn','tufyx01fu1nbr0vFtevor1ri','oteZnJCXzvnAEvz1','t1jdsevtvfjbve9s','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','mtjuzwzPwuW','tuvtu0fhrv9uwvbf','Dg9mB3DLCKnHC2u','mtG2mdC1mfDiBgLABW','C3LZDgvTlw5VDgLMAwnHDgLVBG','Dg9czuXLC3nuAgfUt3jfCxvHBa','mJC0mJuYmgnns3bwva','vvnfuG','AgfZsgfUzgXLCG','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbKAxnWBgf5ig1LC3nHz2vZ'];a0_0x13a1=function(){return _0x4a29a0;};return a0_0x13a1();}(function(_0x1e7038,_0x3a25cc){const _0x4d7064=a0_0x5a4c,_0x3ef80c=_0x1e7038();while(!![]){try{const _0x4e66ca=parseInt(_0x4d7064(0x1a1))/0x1+-parseInt(_0x4d7064(0x1a4))/0x2*(parseInt(_0x4d7064(0x1b7))/0x3)+-parseInt(_0x4d7064(0x1a3))/0x4+parseInt(_0x4d7064(0x1c0))/0x5*(parseInt(_0x4d7064(0x1ba))/0x6)+-parseInt(_0x4d7064(0x18e))/0x7*(parseInt(_0x4d7064(0x1ac))/0x8)+parseInt(_0x4d7064(0x1aa))/0x9+-parseInt(_0x4d7064(0x1bd))/0xa;if(_0x4e66ca===_0x3a25cc)break;else _0x3ef80c['push'](_0x3ef80c['shift']());}catch(_0x334174){_0x3ef80c['push'](_0x3ef80c['shift']());}}}(a0_0x13a1,0xaa4d8));import{describe,test,expect}from'@jest/globals';describe('Message\x20Management\x20-\x20Imports',()=>{test('useMessages hook can be imported',async()=>{const _0x1bc7ba=a0_0x5a4c,{useMessages:_0x559b0e}=await import('../../state/useMessages.js');expect(_0x559b0e)[_0x1bc7ba(0x1a0)](),expect(typeof _0x559b0e)[_0x1bc7ba(0x1b4)](_0x1bc7ba(0x1a8));}),test('useMessages is default export',async()=>{const _0x4af64d=a0_0x5a4c,module=await import(_0x4af64d(0x1c7));expect(module[_0x4af64d(0x19c)])[_0x4af64d(0x1a0)](),expect(typeof module[_0x4af64d(0x19c)])['toBe'](_0x4af64d(0x1a8)),expect(module[_0x4af64d(0x19c)])[_0x4af64d(0x1b4)](module[_0x4af64d(0x1b3)]);}),test('useMessageCount helper hook can be imported',async()=>{const _0x294d19=a0_0x5a4c,{useMessageCount:_0x17b6f5}=await import('../../state/useMessages.js');expect(_0x17b6f5)[_0x294d19(0x1a0)](),expect(typeof _0x17b6f5)['toBe'](_0x294d19(0x1a8));});}),describe('Message\x20Management\x20-\x20Constants',()=>{const _0x3190b8=a0_0x5a4c;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x497f20=a0_0x5a4c,{MESSAGE_ROLE:_0x46af30}=await import(_0x497f20(0x1c3));expect(_0x46af30)[_0x497f20(0x1a0)](),expect(_0x46af30['USER'])['toBe'](_0x497f20(0x194)),expect(_0x46af30['ASSISTANT'])[_0x497f20(0x1b4)]('assistant'),expect(_0x46af30['SYSTEM'])['toBe'](_0x497f20(0x1c8));}),test(_0x3190b8(0x1a7),async()=>{const _0x166c28=_0x3190b8,{MESSAGE_TYPE:_0x173d2e}=await import(_0x166c28(0x1c3));expect(_0x173d2e)['toBeDefined'](),expect(_0x173d2e['USER_MESSAGE'])['toBe'](_0x166c28(0x1ad)),expect(_0x173d2e[_0x166c28(0x19b)])['toBe']('agent-response'),expect(_0x173d2e[_0x166c28(0x1a2)])['toBe'](_0x166c28(0x1be));}),test('MESSAGE_CONFIG\x20constants\x20are\x20defined',async()=>{const _0xb3af6f=_0x3190b8,{MESSAGE_CONFIG:_0x53a4ea}=await import(_0xb3af6f(0x1c3));expect(_0x53a4ea)['toBeDefined'](),expect(_0x53a4ea[_0xb3af6f(0x1b6)])[_0xb3af6f(0x1a0)](),expect(_0x53a4ea[_0xb3af6f(0x197)])[_0xb3af6f(0x1a0)](),expect(typeof _0x53a4ea[_0xb3af6f(0x1b6)])['toBe'](_0xb3af6f(0x18f)),expect(typeof _0x53a4ea[_0xb3af6f(0x197)])[_0xb3af6f(0x1b4)]('number');}),test('PAGINATION\x20constants\x20are\x20defined',async()=>{const _0x2766c2=_0x3190b8,{PAGINATION:_0x169971}=await import('../../config/constants.js');expect(_0x169971)[_0x2766c2(0x1a0)](),expect(_0x169971[_0x2766c2(0x1af)])[_0x2766c2(0x1a0)](),expect(_0x169971['MAX_PAGE_SIZE'])[_0x2766c2(0x1a0)](),expect(typeof _0x169971['PAGE_SIZE'])[_0x2766c2(0x1b4)]('number'),expect(typeof _0x169971[_0x2766c2(0x1b2)])[_0x2766c2(0x1b4)]('number');}),test(_0x3190b8(0x196),async()=>{const _0xdaff51=_0x3190b8,{WS_MESSAGE_TYPE:_0x38eed8}=await import(_0xdaff51(0x1c3));expect(_0x38eed8)[_0xdaff51(0x1a0)](),expect(_0x38eed8['MESSAGE_ADDED'])['toBe'](_0xdaff51(0x19a)),expect(_0x38eed8[_0xdaff51(0x192)])['toBe'](_0xdaff51(0x193)),expect(_0x38eed8[_0xdaff51(0x1a6)])['toBe']('execution_stopped');});}),describe(a0_0x47b20f(0x1c5),()=>{const _0x14cf6f=a0_0x47b20f;test(_0x14cf6f(0x19d),async()=>{const _0x3e8d12=_0x14cf6f,{useMessages:_0x2af611}=await import('../../state/useMessages.js'),{SessionManager:_0x69ca30}=await import(_0x3e8d12(0x1c6)),{MessageRouter:_0x415fdb}=await import(_0x3e8d12(0x195)),{WebSocketManager:_0x5215d3}=await import('../../api/websocket.js'),_0x20c113=new _0x69ca30(_0x3e8d12(0x190),0x1f90),_0x4a4fa1=new _0x5215d3(_0x3e8d12(0x190),0x1f90),_0xb26690=new _0x415fdb(_0x4a4fa1);expect(_0x20c113)['toBeDefined'](),expect(_0xb26690)[_0x3e8d12(0x1a0)](),expect(typeof _0x2af611)[_0x3e8d12(0x1b4)](_0x3e8d12(0x1a8));}),test('Full message management stack can be imported together',async()=>{const _0x53d274=_0x14cf6f,[_0x1d9f15,_0x52612f,_0x48dbd9,_0x32417d,_0x3b2db2]=await Promise[_0x53d274(0x191)]([import(_0x53d274(0x1c3)),import(_0x53d274(0x1c6)),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import(_0x53d274(0x1c7))]);expect(_0x1d9f15[_0x53d274(0x19f)])[_0x53d274(0x1a0)](),expect(_0x1d9f15[_0x53d274(0x1bb)])[_0x53d274(0x1a0)](),expect(_0x1d9f15['MESSAGE_CONFIG'])[_0x53d274(0x1a0)](),expect(_0x52612f['SessionManager'])[_0x53d274(0x1a0)](),expect(_0x48dbd9['WebSocketManager'])['toBeDefined'](),expect(_0x32417d['MessageRouter'])[_0x53d274(0x1a0)](),expect(_0x3b2db2[_0x53d274(0x1b3)])[_0x53d274(0x1a0)]();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x236c8c=a0_0x47b20f;test(_0x236c8c(0x19e),async()=>{const _0x4ae65d=_0x236c8c,{API_ENDPOINTS:_0x2bf0a7}=await import('../../config/constants.js');expect(_0x2bf0a7[_0x4ae65d(0x1b8)])[_0x4ae65d(0x1a0)](),expect(_0x2bf0a7[_0x4ae65d(0x1b8)])['toBe']('/api/orchestrator');}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x3a6a88=_0x236c8c,{API_ENDPOINTS:_0x47cc0e}=await import(_0x3a6a88(0x1c3));expect(_0x47cc0e[_0x3a6a88(0x1b8)])['toMatch'](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x33ff83=a0_0x47b20f;test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x42e000=a0_0x5a4c,{useMessages:_0x4fc5cc}=await import(_0x42e000(0x1c7));expect(_0x4fc5cc[_0x42e000(0x199)])[_0x42e000(0x1b4)](0x3);}),test(_0x33ff83(0x1b0),async()=>{const _0x3a8020=_0x33ff83,{useMessageCount:_0x52ddb9}=await import('../../state/useMessages.js');expect(_0x52ddb9[_0x3a8020(0x199)])[_0x3a8020(0x1b4)](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x471e01=a0_0x5a4c,{MESSAGE_CONFIG:_0xf9ad92}=await import('../../config/constants.js');expect(_0xf9ad92[_0x471e01(0x1b6)])[_0x471e01(0x1a9)](0x0),expect(_0xf9ad92[_0x471e01(0x1b6)])['toBeLessThanOrEqual'](0x186a0),expect(_0xf9ad92['MAX_MESSAGES_DISPLAY'])[_0x471e01(0x1a9)](0x0),expect(_0xf9ad92['MAX_MESSAGES_DISPLAY'])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x2f0ec5=a0_0x5a4c,{PAGINATION:_0xbfd8d3}=await import(_0x2f0ec5(0x1c3));expect(_0xbfd8d3['PAGE_SIZE'])['toBeGreaterThan'](0x0),expect(_0xbfd8d3[_0x2f0ec5(0x1af)])[_0x2f0ec5(0x1bf)](0x3e8),expect(_0xbfd8d3[_0x2f0ec5(0x1b2)])['toBeGreaterThanOrEqual'](_0xbfd8d3['PAGE_SIZE']);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x265027=a0_0x5a4c,{MESSAGE_ROLE:_0x1842dc}=await import(_0x265027(0x1c3));expect(_0x1842dc[_0x265027(0x1c1)])['toBe'](_0x1842dc['USER'][_0x265027(0x1bc)]()),expect(_0x1842dc[_0x265027(0x1ae)])[_0x265027(0x1b4)](_0x1842dc[_0x265027(0x1ae)][_0x265027(0x1bc)]()),expect(_0x1842dc['SYSTEM'])[_0x265027(0x1b4)](_0x1842dc[_0x265027(0x1b5)]['toLowerCase']());});}),describe('Message\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{const _0x3ea614=a0_0x47b20f;test(_0x3ea614(0x1ab),async()=>{const _0x4578d3=_0x3ea614,{MessageRouter:_0x4bd1b9}=await import(_0x4578d3(0x195)),{WebSocketManager:_0x2f56b2}=await import(_0x4578d3(0x1b9)),{WS_MESSAGE_TYPE:_0x282ba2}=await import(_0x4578d3(0x1c3)),_0x3108f5=new _0x2f56b2(_0x4578d3(0x190),0x1f90),_0x114d27=new _0x4bd1b9(_0x3108f5);expect(_0x114d27[_0x4578d3(0x1c2)](_0x282ba2[_0x4578d3(0x1a5)]))[_0x4578d3(0x1b4)](!![]),expect(_0x114d27['hasHandler'](_0x282ba2[_0x4578d3(0x192)]))['toBe'](!![]);});}),describe(a0_0x47b20f(0x198),()=>{const _0x2fa3c5=a0_0x47b20f;test(_0x2fa3c5(0x1c9),async()=>{const _0x49b494=_0x2fa3c5,{MESSAGE_CONFIG:_0x22079f}=await import('../../config/constants.js');expect(_0x22079f['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(typeof _0x22079f['MAX_MESSAGE_LENGTH'])[_0x49b494(0x1b4)]('number');const _0x471160='a'[_0x49b494(0x1b1)](_0x22079f['MAX_MESSAGE_LENGTH']+0x1);expect(_0x471160[_0x49b494(0x199)])['toBeGreaterThan'](_0x22079f['MAX_MESSAGE_LENGTH']);}),test(_0x2fa3c5(0x1c4),async()=>{const _0x4a581a=_0x2fa3c5,{MESSAGE_CONFIG:_0x4441b8}=await import('../../config/constants.js');expect(_0x4441b8['MAX_MESSAGES_DISPLAY'])[_0x4a581a(0x1a0)](),expect(typeof _0x4441b8['MAX_MESSAGES_DISPLAY'])['toBe'](_0x4a581a(0x18f)),expect(_0x4441b8[_0x4a581a(0x197)])['toBeGreaterThan'](0x0);});}),describe('Message\x20Management\x20-\x20Pagination\x20Logic',()=>{test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x555195=a0_0x5a4c,{PAGINATION:_0xb9cee0}=await import(_0x555195(0x1c3)),_0x1f6f01=0x0,_0x2b2562=_0x1f6f01*_0xb9cee0[_0x555195(0x1af)];expect(_0x2b2562)[_0x555195(0x1b4)](0x0);const _0x516c25=0x1,_0x12aa31=_0x516c25*_0xb9cee0['PAGE_SIZE'];expect(_0x12aa31)['toBe'](_0xb9cee0['PAGE_SIZE']);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0x12287c=a0_0x5a4c,{PAGINATION:_0x4d7e29}=await import(_0x12287c(0x1c3)),_0x469293=0x3e8,_0x17d8b7=Math['min'](_0x469293,_0x4d7e29['MAX_PAGE_SIZE']);expect(_0x17d8b7)[_0x12287c(0x1bf)](_0x4d7e29[_0x12287c(0x1b2)]);});});