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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +1 -1
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/aiService.js +1 -1
  76. package/src/services/apiKeyManager.js +1 -1
  77. package/src/services/benchmarkService.js +1 -1
  78. package/src/services/budgetService.js +1 -1
  79. package/src/services/contextInjectionService.js +1 -1
  80. package/src/services/conversationCompactionService.js +1 -1
  81. package/src/services/errorHandler.js +1 -1
  82. package/src/services/fileAttachmentService.js +1 -1
  83. package/src/services/modelRouterService.js +1 -1
  84. package/src/services/modelsService.js +1 -1
  85. package/src/services/qualityInspector.js +1 -1
  86. package/src/services/tokenCountingService.js +1 -1
  87. package/src/tools/agentCommunicationTool.js +1 -1
  88. package/src/tools/agentDelayTool.js +1 -1
  89. package/src/tools/asyncToolManager.js +1 -1
  90. package/src/tools/baseTool.js +1 -1
  91. package/src/tools/browserTool.js +1 -1
  92. package/src/tools/cloneDetectionTool.js +1 -1
  93. package/src/tools/dependencyResolverTool.js +1 -1
  94. package/src/tools/fileContentReplaceTool.js +1 -1
  95. package/src/tools/fileSystemTool.js +1 -1
  96. package/src/tools/fileTreeTool.js +1 -1
  97. package/src/tools/imageTool.js +1 -1
  98. package/src/tools/importAnalyzerTool.js +1 -1
  99. package/src/tools/jobDoneTool.js +1 -1
  100. package/src/tools/seekTool.js +1 -1
  101. package/src/tools/staticAnalysisTool.js +1 -1
  102. package/src/tools/taskManagerTool.js +1 -1
  103. package/src/tools/terminalTool.js +1 -1
  104. package/src/tools/webTool.js +1 -1
  105. package/src/types/agent.js +1 -1
  106. package/src/types/contextReference.js +1 -1
  107. package/src/types/conversation.js +1 -1
  108. package/src/types/toolCommand.js +1 -1
  109. package/src/utilities/attachmentValidator.js +1 -1
  110. package/src/utilities/configManager.js +1 -1
  111. package/src/utilities/constants.js +1 -1
  112. package/src/utilities/directoryAccessManager.js +1 -1
  113. package/src/utilities/fileProcessor.js +1 -1
  114. package/src/utilities/logger.js +1 -1
  115. package/src/utilities/tagParser.js +1 -1
  116. package/src/utilities/toolConstants.js +1 -1
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/{index-lCBai6dX.js → index-CX8ZfpGw.js} +113 -60
  119. package/web-ui/build/static/index-Dwg_JrlO.css +1 -0
  120. package/web-ui/build/static/index-CClD1090.css +0 -1
@@ -1 +1 @@
1
- const a0_0x54449f=a0_0x2da2;(function(_0x4afe34,_0x39b669){const _0x2afc78=a0_0x2da2,_0x388f89=_0x4afe34();while(!![]){try{const _0xda1cdc=-parseInt(_0x2afc78(0xbe))/0x1+parseInt(_0x2afc78(0xd0))/0x2*(parseInt(_0x2afc78(0xd4))/0x3)+parseInt(_0x2afc78(0xd3))/0x4+parseInt(_0x2afc78(0xdc))/0x5+-parseInt(_0x2afc78(0xd6))/0x6*(-parseInt(_0x2afc78(0xbd))/0x7)+parseInt(_0x2afc78(0xcc))/0x8+-parseInt(_0x2afc78(0xce))/0x9;if(_0xda1cdc===_0x39b669)break;else _0x388f89['push'](_0x388f89['shift']());}catch(_0x4ebd9c){_0x388f89['push'](_0x388f89['shift']());}}}(a0_0x14bc,0x1edaf));function a0_0x14bc(){const _0x28b3f6=['tgf5B3v0ignVBxbVBMvUDcbZDgLSBcbSB2fKCYbHzNrLCIbqAgfZzsaXmcbHzgrPDgLVBNm','ChjVDg90ExbL','lI4VlI4Vy29TCg9Uzw50CY9tzwfYy2Hqyw5LBc5QCW','ugHHC2uGmtaGlsbbzhzHBMnLzcbgzwf0DxjLCYaTieLTCg9YDhm','ugHHC2uGmtaGlsbbz2vUDfn3AxrJAgvYic0Gu3rYDwn0DxjL','Dg9czvvUzgvMAw5Lza','u2vHCMnOugfUzwW','sgvSCfbHBMvSigLZigeGzNvUy3rPB24Gy29TCg9Uzw50','lI4VlI4Vy29TCg9Uzw50CY9tzxr0Aw5NC1bHBMvSlMPZ','Dg9czq','lI4VlI4Vy29TCg9Uzw50CY9bz2vUDfn3AxrJAgvYlMPZ','ntu2nJrgueTOz2C','qwDLBNrdCMvHDg9YigLZigeGzNvUy3rPB24Gy29TCg9Uzw50','mJy1odiWnfnuzhbIvq','ugHHC2uGmtaGlsbdB21WB25LBNqGq29UC3rHBNrZigfUzcbdB25MAwD1CMf0Aw9UCW','oezPrLHLuW','lI4VlI4Vy29TCg9Uzw50CY9izwXWugfUzwWUANm','qM94','odm4mti0BNnYrwf2','mtq1ndyXrKXfzfvd','zNvUy3rPB24','nJy1ntHsCxzXD1G','u2v0DgLUz3nqyw5LBa','u2vHCMnOugfUzwWGAxmGysbMDw5JDgLVBIbJB21WB25LBNq','CMvUzgvY','lI4VlI4Vy29TCg9Uzw50CY9bz2vUDenYzwf0B3iUANm','sgvSCfbHBMvS','mtu3ntyWq2z5EfrU','Dg9czurLzMLUzwq','sgvSCfbHBMvSigrLzMLUzxmGC2HVCNrJDxqGy29UzMLNDxjHDgLVBNm','qwDLBNrtD2L0y2HLCG','ugHHC2uGmtaGlsbtzwfYy2Hqyw5LBcaTifn0CNvJDhvYzq','vgv4Da','ugHHC2uGmtaGlsbizwXWugfUzwWGlsbtDhj1y3r1CMu','mJH0rLLYCMm','nJq1odj1vuPlEK4','BwfW','zgvMyxvSDa'];a0_0x14bc=function(){return _0x28b3f6;};return a0_0x14bc();}import{describe,test,expect}from'@jest/globals';function a0_0x2da2(_0x2e247b,_0x312554){_0x2e247b=_0x2e247b-0xb7;const _0x14bcb0=a0_0x14bc();let _0x2da27d=_0x14bcb0[_0x2e247b];if(a0_0x2da2['UoixoN']===undefined){var _0x3573e8=function(_0x356182){const _0x544661='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f7779='',_0x42b911='';for(let _0x552a4b=0x0,_0x496172,_0x464930,_0x54de1a=0x0;_0x464930=_0x356182['charAt'](_0x54de1a++);~_0x464930&&(_0x496172=_0x552a4b%0x4?_0x496172*0x40+_0x464930:_0x464930,_0x552a4b++%0x4)?_0x3f7779+=String['fromCharCode'](0xff&_0x496172>>(-0x2*_0x552a4b&0x6)):0x0){_0x464930=_0x544661['indexOf'](_0x464930);}for(let _0x2a462d=0x0,_0x2d2469=_0x3f7779['length'];_0x2a462d<_0x2d2469;_0x2a462d++){_0x42b911+='%'+('00'+_0x3f7779['charCodeAt'](_0x2a462d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x42b911);};a0_0x2da2['aPYrpD']=_0x3573e8,a0_0x2da2['IHurEk']={},a0_0x2da2['UoixoN']=!![];}const _0x1e0592=_0x14bcb0[0x0],_0x2759fe=_0x2e247b+_0x1e0592,_0x58816e=a0_0x2da2['IHurEk'][_0x2759fe];return!_0x58816e?(_0x2da27d=a0_0x2da2['aPYrpD'](_0x2da27d),a0_0x2da2['IHurEk'][_0x2759fe]=_0x2da27d):_0x2da27d=_0x58816e,_0x2da27d;}describe(a0_0x54449f(0xc4),()=>{test('AgentSwitcher component can be imported',async()=>{const {AgentSwitcher:_0x3f7779}=await import('../../components/AgentSwitcher.js');expect(_0x3f7779)['toBeDefined'](),expect(typeof _0x3f7779)['toBe']('function');},0x7530),test('AgentCreator component can be imported',async()=>{const _0xc876b9=a0_0x2da2,{AgentCreator:_0x42b911}=await import(_0xc876b9(0xda));expect(_0x42b911)['toBeDefined'](),expect(typeof _0x42b911)[_0xc876b9(0xca)]('function');}),test('SettingsPanel component can be imported',async()=>{const _0x442498=a0_0x2da2,{SettingsPanel:_0x552a4b}=await import('../../components/SettingsPanel.js');expect(_0x552a4b)['toBeDefined'](),expect(typeof _0x552a4b)[_0x442498(0xca)](_0x442498(0xd5));}),test('SearchPanel component can be imported',async()=>{const _0x872d5=a0_0x2da2,{SearchPanel:_0x496172}=await import(_0x872d5(0xc3));expect(_0x496172)[_0x872d5(0xb7)](),expect(typeof _0x496172)['toBe'](_0x872d5(0xd5));}),test('HelpPanel component can be imported',async()=>{const _0x5c9be9=a0_0x2da2,{HelpPanel:_0x464930}=await import(_0x5c9be9(0xd1));expect(_0x464930)[_0x5c9be9(0xb7)](),expect(typeof _0x464930)['toBe'](_0x5c9be9(0xd5));});}),describe(a0_0x54449f(0xc5),()=>{test('AgentSwitcher\x20is\x20a\x20function\x20component',async()=>{const _0xc1b4eb=a0_0x2da2,{AgentSwitcher:_0x54de1a}=await import('../../components/AgentSwitcher.js');expect(typeof _0x54de1a)['toBe'](_0xc1b4eb(0xd5)),expect(_0x54de1a[_0xc1b4eb(0xc2)]?.['render'])['toBeUndefined']();}),test('AgentSwitcher is default export',async()=>{const _0x658e60=a0_0x2da2,module=await import(_0x658e60(0xcb));expect(module['default'])[_0x658e60(0xb7)](),expect(module[_0x658e60(0xc0)])['toBe'](module[_0x658e60(0xb9)]);});}),describe('Phase\x2010\x20-\x20AgentCreator\x20-\x20Structure',()=>{const _0x3a0634=a0_0x54449f;test(_0x3a0634(0xcd),async()=>{const _0x5a496c=_0x3a0634,{AgentCreator:_0x2a462d}=await import('../../components/AgentCreator.js');expect(typeof _0x2a462d)['toBe']('function'),expect(_0x2a462d['prototype']?.[_0x5a496c(0xd9)])[_0x5a496c(0xc6)]();}),test('AgentCreator is default export',async()=>{const _0x4ca0ca=_0x3a0634,module=await import(_0x4ca0ca(0xda));expect(module[_0x4ca0ca(0xc0)])[_0x4ca0ca(0xb7)](),expect(module['default'])['toBe'](module['AgentCreator']);});}),describe('Phase\x2010\x20-\x20SettingsPanel\x20-\x20Structure',()=>{test('SettingsPanel\x20is\x20a\x20function\x20component',async()=>{const _0x1a4ca5=a0_0x2da2,{SettingsPanel:_0x2d2469}=await import(_0x1a4ca5(0xc9));expect(typeof _0x2d2469)['toBe'](_0x1a4ca5(0xd5)),expect(_0x2d2469['prototype']?.['render'])[_0x1a4ca5(0xc6)]();}),test('SettingsPanel is default export',async()=>{const _0x5e8b87=a0_0x2da2,module=await import('../../components/SettingsPanel.js');expect(module[_0x5e8b87(0xc0)])['toBeDefined'](),expect(module[_0x5e8b87(0xc0)])['toBe'](module['SettingsPanel']);});}),describe(a0_0x54449f(0xba),()=>{const _0x47135c=a0_0x54449f;test(_0x47135c(0xd8),async()=>{const _0x40fa02=_0x47135c,{SearchPanel:_0x19b3cb}=await import(_0x40fa02(0xc3));expect(typeof _0x19b3cb)[_0x40fa02(0xca)]('function'),expect(_0x19b3cb['prototype']?.['render'])[_0x40fa02(0xc6)]();}),test('SearchPanel is default export',async()=>{const _0x1ab31b=_0x47135c,module=await import('../../components/SearchPanel.js');expect(module[_0x1ab31b(0xc0)])[_0x1ab31b(0xb7)](),expect(module['default'])[_0x1ab31b(0xca)](module[_0x1ab31b(0xc7)]);});}),describe(a0_0x54449f(0xbc),()=>{const _0x3f95aa=a0_0x54449f;test(_0x3f95aa(0xc8),async()=>{const _0x12c110=_0x3f95aa,{HelpPanel:_0x27345b}=await import('../../components/HelpPanel.js');expect(typeof _0x27345b)[_0x12c110(0xca)](_0x12c110(0xd5)),expect(_0x27345b[_0x12c110(0xc2)]?.[_0x12c110(0xd9)])[_0x12c110(0xc6)]();}),test('HelpPanel is default export',async()=>{const _0x3ac225=_0x3f95aa,module=await import(_0x3ac225(0xd1));expect(module['default'])[_0x3ac225(0xb7)](),expect(module[_0x3ac225(0xc0)])['toBe'](module['HelpPanel']);});}),describe('Phase\x2010\x20-\x20Integration\x20with\x20Layout',()=>{const _0x36e476=a0_0x54449f;test('Layout component can import all Phase 10 components',async()=>{const _0x1a4033=a0_0x2da2,[_0x38f00c,_0xff39df,_0x3cc750,_0x4ab064,_0x393023]=await Promise['all']([import(_0x1a4033(0xcb)),import('../../components/AgentCreator.js'),import(_0x1a4033(0xc9)),import(_0x1a4033(0xc3)),import(_0x1a4033(0xd1))]);expect(_0x38f00c['AgentSwitcher'])['toBeDefined'](),expect(_0xff39df['AgentCreator'])['toBeDefined'](),expect(_0x3cc750['SettingsPanel'])[_0x1a4033(0xb7)](),expect(_0x4ab064[_0x1a4033(0xc7)])[_0x1a4033(0xb7)](),expect(_0x393023[_0x1a4033(0xdb)])['toBeDefined']();}),test(_0x36e476(0xc1),async()=>{const _0x288357=_0x36e476,{Layout:_0x3cd1fe}=await import('../../components/Layout.js');expect(_0x3cd1fe)[_0x288357(0xb7)](),expect(typeof _0x3cd1fe)['toBe']('function');}),test('All\x20Phase\x2010\x20components\x20use\x20React\x20and\x20Ink',async()=>{const _0x292a50=_0x36e476,_0x37010f=await import('react'),_0x4f36e5=await import('ink');expect(_0x37010f['createElement'])['toBeDefined'](),expect(_0x37010f['useState'])['toBeDefined'](),expect(_0x4f36e5[_0x292a50(0xd2)])['toBeDefined'](),expect(_0x4f36e5[_0x292a50(0xbb)])[_0x292a50(0xb7)](),expect(_0x4f36e5['useInput'])[_0x292a50(0xb7)]();});}),describe(a0_0x54449f(0xcf),()=>{const _0x10ac16=a0_0x54449f;test('AgentCreator\x20defines\x20step\x20constants',async()=>{const _0x430ab2=a0_0x2da2,module=await import('../../components/AgentCreator.js');expect(module['AgentCreator'])[_0x430ab2(0xb7)]();}),test('SettingsPanel\x20defines\x20category\x20constants',async()=>{const _0x1514cc=a0_0x2da2,module=await import('../../components/SettingsPanel.js');expect(module[_0x1514cc(0xd7)])['toBeDefined']();}),test(_0x10ac16(0xb8),async()=>{const _0xc6f8bb=_0x10ac16,module=await import(_0xc6f8bb(0xd1));expect(module['HelpPanel'])['toBeDefined']();});}),describe('Phase\x2010\x20-\x20All\x20Components\x20Export\x20Correctly',()=>{test('All components can be imported together without conflicts',async()=>{const _0x55ceb4=a0_0x2da2,_0x5e6c3e=await Promise['all']([import('../../components/AgentSwitcher.js'),import('../../components/AgentCreator.js'),import('../../components/SettingsPanel.js'),import(_0x55ceb4(0xc3)),import(_0x55ceb4(0xd1))]),_0x34035e=_0x5e6c3e[_0x55ceb4(0xbf)](_0x39dce4=>Object['keys'](_0x39dce4)[0x0]),_0x42f0ef=new Set(_0x34035e);expect(_0x42f0ef['size'])[_0x55ceb4(0xca)](_0x34035e['length']);});});
1
+ const a0_0x1f2cc4=a0_0x2e64;(function(_0x388e25,_0x5dd174){const _0x8bd005=a0_0x2e64,_0xb7a316=_0x388e25();while(!![]){try{const _0x5c5d99=-parseInt(_0x8bd005(0x1f8))/0x1*(-parseInt(_0x8bd005(0x1f5))/0x2)+parseInt(_0x8bd005(0x1e8))/0x3+-parseInt(_0x8bd005(0x200))/0x4*(parseInt(_0x8bd005(0x1f2))/0x5)+-parseInt(_0x8bd005(0x1fd))/0x6*(parseInt(_0x8bd005(0x20e))/0x7)+parseInt(_0x8bd005(0x1e6))/0x8+parseInt(_0x8bd005(0x1f7))/0x9*(-parseInt(_0x8bd005(0x205))/0xa)+parseInt(_0x8bd005(0x1ff))/0xb*(parseInt(_0x8bd005(0x1e7))/0xc);if(_0x5c5d99===_0x5dd174)break;else _0xb7a316['push'](_0xb7a316['shift']());}catch(_0x41bc18){_0xb7a316['push'](_0xb7a316['shift']());}}}(a0_0x51dd,0x527ab));function a0_0x2e64(_0xdd8034,_0x3dc315){_0xdd8034=_0xdd8034-0x1e3;const _0x51dd48=a0_0x51dd();let _0x2e6447=_0x51dd48[_0xdd8034];if(a0_0x2e64['PsrWyJ']===undefined){var _0x306e7a=function(_0x32fa6c){const _0x20177e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1221d8='',_0x2f298a='';for(let _0x3a0969=0x0,_0x4422eb,_0x522ba6,_0x5f5a9e=0x0;_0x522ba6=_0x32fa6c['charAt'](_0x5f5a9e++);~_0x522ba6&&(_0x4422eb=_0x3a0969%0x4?_0x4422eb*0x40+_0x522ba6:_0x522ba6,_0x3a0969++%0x4)?_0x1221d8+=String['fromCharCode'](0xff&_0x4422eb>>(-0x2*_0x3a0969&0x6)):0x0){_0x522ba6=_0x20177e['indexOf'](_0x522ba6);}for(let _0x428fa1=0x0,_0x34eb57=_0x1221d8['length'];_0x428fa1<_0x34eb57;_0x428fa1++){_0x2f298a+='%'+('00'+_0x1221d8['charCodeAt'](_0x428fa1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2f298a);};a0_0x2e64['XoXCJQ']=_0x306e7a,a0_0x2e64['GcmWSZ']={},a0_0x2e64['PsrWyJ']=!![];}const _0x5b9dee=_0x51dd48[0x0],_0x2b9095=_0xdd8034+_0x5b9dee,_0x2f9c3b=a0_0x2e64['GcmWSZ'][_0x2b9095];return!_0x2f9c3b?(_0x2e6447=a0_0x2e64['XoXCJQ'](_0x2e6447),a0_0x2e64['GcmWSZ'][_0x2b9095]=_0x2e6447):_0x2e6447=_0x2f9c3b,_0x2e6447;}function a0_0x51dd(){const _0x6720ba=['DxnLsw5WDxq','lI4VlI4Vy29TCg9Uzw50CY9bz2vUDfn3AxrJAgvYlMPZ','odi0nJq2ufHeAhLV','lI4VlI4Vy29TCg9Uzw50CY9izwXWugfUzwWUANm','mJK3CuH3Bfri','mZaWD0DJChDR','BgvUz3rO','lI4VlI4Vy29TCg9Uzw50CY9tzwfYy2Hqyw5LBc5QCW','qwDLBNrdCMvHDg9YigLZigeGzNvUy3rPB24Gy29TCg9Uzw50','qwDLBNrdCMvHDg9Y','nZqZmfPvqu5kyG','lI4VlI4Vy29TCg9Uzw50CY9tzxr0Aw5NC1bHBMvSlMPZ','ugHHC2uGmtaGlsbdB21WB25LBNqGq29UC3rHBNrZigfUzcbdB25MAwD1CMf0Aw9UCW','A2v5CW','u2vHCMnOugfUzwWGAxmGysbMDw5JDgLVBIbJB21WB25LBNq','C2L6zq','qwDLBNrdCMvHDg9YigrLzMLUzxmGC3rLCcbJB25ZDgfUDhm','DxnLu3rHDgu','BwfW','n0z5D3Deuq','ugHHC2uGmtaGlsbbz2vUDenYzwf0B3iGlsbtDhj1y3r1CMu','zNvUy3rPB24','Dg9czq','qwDLBNrtD2L0y2HLCIbPCYbHigz1BMn0Aw9UignVBxbVBMvUDa','u2vHCMnOugfUzwW','mJC2otmZnNLNtenYyW','mZm1nJrVAKj2CLC','mteYote3mgTMuKfHsG','vgv4Da','ugHHC2uGmtaGlsbizwXWugfUzwWGlsbtDhj1y3r1CMu','Dg9czurLzMLUzwq','ugHHC2uGmtaGlsbtzxr0Aw5NC1bHBMvSic0Gu3rYDwn0DxjL','u2v0DgLUz3nqyw5LBa','qwDLBNrtD2L0y2HLCG','ugHHC2uGmtaGlsbbz2vUDfn3AxrJAgvYic0Gu3rYDwn0DxjL','ChjVDg90ExbL','ugHHC2uGmtaGlsbjBNrLz3jHDgLVBIb3AxrOieXHEw91Da','mtq1mZbfC0jQyMG','lI4VlI4Vy29TCg9Uzw50CY9bz2vUDenYzwf0B3iUANm','CMvUzgvY','mNjnCvP1Ba','zgvMyxvSDa','nty3ovDsDuDIBG','mZyZotGZq0DxuLb4','Dg9czvvUzgvMAw5Lza','Aw5R'];a0_0x51dd=function(){return _0x6720ba;};return a0_0x51dd();}import{describe,test,expect}from'@jest/globals';describe('Phase\x2010\x20-\x20Advanced\x20Features\x20-\x20Imports',()=>{test('AgentSwitcher component can be imported',async()=>{const _0x3bcc7b=a0_0x2e64,{AgentSwitcher:_0x1221d8}=await import('../../components/AgentSwitcher.js');expect(_0x1221d8)[_0x3bcc7b(0x1eb)](),expect(typeof _0x1221d8)['toBe']('function');},0x7530),test('AgentCreator component can be imported',async()=>{const _0xed0a19=a0_0x2e64,{AgentCreator:_0x2f298a}=await import(_0xed0a19(0x1f3));expect(_0x2f298a)[_0xed0a19(0x1eb)](),expect(typeof _0x2f298a)[_0xed0a19(0x1e3)](_0xed0a19(0x210));}),test('SettingsPanel component can be imported',async()=>{const _0x28501e=a0_0x2e64,{SettingsPanel:_0x3a0969}=await import(_0x28501e(0x206));expect(_0x3a0969)['toBeDefined'](),expect(typeof _0x3a0969)[_0x28501e(0x1e3)]('function');}),test('SearchPanel component can be imported',async()=>{const _0x315c0c=a0_0x2e64,{SearchPanel:_0x4422eb}=await import(_0x315c0c(0x202));expect(_0x4422eb)['toBeDefined'](),expect(typeof _0x4422eb)['toBe'](_0x315c0c(0x210));}),test('HelpPanel component can be imported',async()=>{const {HelpPanel:_0x522ba6}=await import('../../components/HelpPanel.js');expect(_0x522ba6)['toBeDefined'](),expect(typeof _0x522ba6)['toBe']('function');});}),describe(a0_0x1f2cc4(0x1ef),()=>{const _0x1d8236=a0_0x1f2cc4;test(_0x1d8236(0x1e4),async()=>{const _0x848c9d=_0x1d8236,{AgentSwitcher:_0x5f5a9e}=await import(_0x848c9d(0x1fc));expect(typeof _0x5f5a9e)['toBe']('function'),expect(_0x5f5a9e['prototype']?.['render'])[_0x848c9d(0x1f9)]();}),test('AgentSwitcher is default export',async()=>{const _0x424e22=_0x1d8236,module=await import('../../components/AgentSwitcher.js');expect(module['default'])[_0x424e22(0x1eb)](),expect(module['default'])[_0x424e22(0x1e3)](module[_0x424e22(0x1ee)]);});}),describe(a0_0x1f2cc4(0x20f),()=>{const _0x552364=a0_0x1f2cc4;test(_0x552364(0x203),async()=>{const _0x22a74b=_0x552364,{AgentCreator:_0x428fa1}=await import(_0x22a74b(0x1f3));expect(typeof _0x428fa1)[_0x22a74b(0x1e3)]('function'),expect(_0x428fa1['prototype']?.[_0x22a74b(0x1f4)])[_0x22a74b(0x1f9)]();}),test('AgentCreator is default export',async()=>{const _0x14f06f=_0x552364,module=await import(_0x14f06f(0x1f3));expect(module[_0x14f06f(0x1f6)])[_0x14f06f(0x1eb)](),expect(module[_0x14f06f(0x1f6)])[_0x14f06f(0x1e3)](module[_0x14f06f(0x204)]);});}),describe(a0_0x1f2cc4(0x1ec),()=>{test('SettingsPanel\x20is\x20a\x20function\x20component',async()=>{const _0x5b06ec=a0_0x2e64,{SettingsPanel:_0x34eb57}=await import(_0x5b06ec(0x206));expect(typeof _0x34eb57)[_0x5b06ec(0x1e3)](_0x5b06ec(0x210)),expect(_0x34eb57[_0x5b06ec(0x1f0)]?.[_0x5b06ec(0x1f4)])[_0x5b06ec(0x1f9)]();}),test('SettingsPanel is default export',async()=>{const _0x2d5e42=a0_0x2e64,module=await import('../../components/SettingsPanel.js');expect(module['default'])[_0x2d5e42(0x1eb)](),expect(module['default'])[_0x2d5e42(0x1e3)](module['SettingsPanel']);});}),describe('Phase\x2010\x20-\x20SearchPanel\x20-\x20Structure',()=>{const _0x596185=a0_0x1f2cc4;test(_0x596185(0x209),async()=>{const _0x3c4ba4=_0x596185,{SearchPanel:_0x3b1928}=await import(_0x3c4ba4(0x202));expect(typeof _0x3b1928)[_0x3c4ba4(0x1e3)]('function'),expect(_0x3b1928[_0x3c4ba4(0x1f0)]?.[_0x3c4ba4(0x1f4)])[_0x3c4ba4(0x1f9)]();}),test('SearchPanel is default export',async()=>{const _0x2dfad9=_0x596185,module=await import(_0x2dfad9(0x202));expect(module[_0x2dfad9(0x1f6)])[_0x2dfad9(0x1eb)](),expect(module['default'])[_0x2dfad9(0x1e3)](module[_0x2dfad9(0x1e5)]);});}),describe(a0_0x1f2cc4(0x1ea),()=>{test('HelpPanel\x20is\x20a\x20function\x20component',async()=>{const _0xa09898=a0_0x2e64,{HelpPanel:_0x1001b4}=await import(_0xa09898(0x1fe));expect(typeof _0x1001b4)[_0xa09898(0x1e3)]('function'),expect(_0x1001b4['prototype']?.['render'])['toBeUndefined']();}),test('HelpPanel is default export',async()=>{const _0x5d905b=a0_0x2e64,module=await import(_0x5d905b(0x1fe));expect(module['default'])['toBeDefined'](),expect(module[_0x5d905b(0x1f6)])[_0x5d905b(0x1e3)](module['HelpPanel']);});}),describe(a0_0x1f2cc4(0x1f1),()=>{test('Layout component can import all Phase 10 components',async()=>{const _0x23202b=a0_0x2e64,[_0x314646,_0x575462,_0x243585,_0x1cebb9,_0x3a0208]=await Promise['all']([import(_0x23202b(0x1fc)),import(_0x23202b(0x1f3)),import(_0x23202b(0x206)),import('../../components/SearchPanel.js'),import('../../components/HelpPanel.js')]);expect(_0x314646[_0x23202b(0x1ee)])[_0x23202b(0x1eb)](),expect(_0x575462[_0x23202b(0x204)])[_0x23202b(0x1eb)](),expect(_0x243585[_0x23202b(0x1ed)])[_0x23202b(0x1eb)](),expect(_0x1cebb9[_0x23202b(0x1e5)])[_0x23202b(0x1eb)](),expect(_0x3a0208['HelpPanel'])['toBeDefined']();}),test('Layout\x20component\x20still\x20loads\x20after\x20Phase\x2010\x20additions',async()=>{const _0x183321=a0_0x2e64,{Layout:_0x1d7014}=await import('../../components/Layout.js');expect(_0x1d7014)['toBeDefined'](),expect(typeof _0x1d7014)['toBe'](_0x183321(0x210));}),test('All\x20Phase\x2010\x20components\x20use\x20React\x20and\x20Ink',async()=>{const _0x3a3ae6=a0_0x2e64,_0xacc192=await import('react'),_0x5c2548=await import(_0x3a3ae6(0x1fa));expect(_0xacc192['createElement'])[_0x3a3ae6(0x1eb)](),expect(_0xacc192[_0x3a3ae6(0x20c)])['toBeDefined'](),expect(_0x5c2548['Box'])[_0x3a3ae6(0x1eb)](),expect(_0x5c2548[_0x3a3ae6(0x1e9)])['toBeDefined'](),expect(_0x5c2548[_0x3a3ae6(0x1fb)])[_0x3a3ae6(0x1eb)]();});}),describe(a0_0x1f2cc4(0x207),()=>{const _0x50e4a2=a0_0x1f2cc4;test(_0x50e4a2(0x20b),async()=>{const module=await import('../../components/AgentCreator.js');expect(module['AgentCreator'])['toBeDefined']();}),test('SettingsPanel\x20defines\x20category\x20constants',async()=>{const _0x36b9a5=_0x50e4a2,module=await import(_0x36b9a5(0x206));expect(module['SettingsPanel'])['toBeDefined']();}),test('HelpPanel\x20defines\x20shortcut\x20configurations',async()=>{const _0x574958=_0x50e4a2,module=await import('../../components/HelpPanel.js');expect(module['HelpPanel'])[_0x574958(0x1eb)]();});}),describe('Phase\x2010\x20-\x20All\x20Components\x20Export\x20Correctly',()=>{test('All components can be imported together without conflicts',async()=>{const _0x14817c=a0_0x2e64,_0x5f046e=await Promise['all']([import('../../components/AgentSwitcher.js'),import('../../components/AgentCreator.js'),import(_0x14817c(0x206)),import('../../components/SearchPanel.js'),import(_0x14817c(0x1fe))]),_0x4e33b9=_0x5f046e[_0x14817c(0x20d)](_0x5b5b1b=>Object[_0x14817c(0x208)](_0x5b5b1b)[0x0]),_0x19e324=new Set(_0x4e33b9);expect(_0x19e324[_0x14817c(0x20a)])[_0x14817c(0x1e3)](_0x4e33b9[_0x14817c(0x201)]);});});
@@ -1 +1 @@
1
- function a0_0x1269(){const _0x554cb4=['A2v5CW','quDftLq','ywDLBNrFBw9Kzv9JAgfUz2vK','tu9eruXFq0furuDpuLK','ywXS','Dg9vChbLCKnHC2u','mZuWsvr5sNLW','quDftLrtx01prevFr0vu','BgvUz3rO','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','revfufnfruS','mZy4mfvqy3b4CG','t1jdsevtvfjbve9s','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gtw9KzwWGrMLSDgvYAw5N','otDRrKXKB1e','Dg9dB250ywLU','oMfNzw50swq','qu5usfjpueLd','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','zMLSDgvY','l2fWAs9SBg0VBw9KzwXZ','tu9eruXFq0furuDpuLKGy29UC3rHBNrZigfYzsbKzwzPBMvK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','tu9eruXFq0furuDpuLKGAw5JBhvKzxmGBwfQB3iGteXnihbYB3zPzgvYCW','teXnx01prevmuW','q0Hbva','y2XHDwrLltmTns1ZB25Uzxq','y2f0zwDVCNK','mtm1mMrQzK9wuW','Bg9JywXOB3n0','Dg9czq','tuLduK9tt0zu','u2vZC2LVBK1HBMfNzxi','yw50AhjVCgLJ','mZG2mZm2DNrMCNDN','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','quDftLrtx01prevFu0vu','quDftLrFtu9erv9dsefor0ve','lI4VlI4VyxbPl3nLC3nPB24UANm','nZeWndaZEMDQuNPQ','qvbjx0vorfbpsu5uuW','BwLJCM9ZB2z0','t1bftKfj','Dg9nyxrJAa','quDftLrFtu9ersb2ywX1zxmGyxjLihvWCgvYy2fZzq','Dg9czurLzMLUzwq','ndqXodDqEw53CKG','twvZC2fNzvjVDxrLCG','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','DxnLqwDLBNrdB250CM9S','mte1yuLhyuzH','zgvLChnLzwS','odKYmZvRwgPuv04','lI4VlI4VC3rHDguVDxnLqwDLBNrdB250CM9SlMPZ','tu9eruXFq0furuDpuLKGy2fUigjLihvZzwqGDg8GzMLSDgvYig1VzgvSCYbIEsbJyxrLz29YEq','z3b0ltq','quDftLrFtu9ersbZDxbWB3j0CYb0B2DNBgLUzYbIzxr3zwvUig1VzgvZ','teXnig1VzgvSCYbLBMrWB2LUDcbLEgLZDhm','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gtw9KzsbtD2L0y2HPBMCGtg9NAwm','zNvUy3rPB24','mta4mdHKyvL6s0O','Dg9mB3DLCKnHC2u','qwDLBNqGBw9KzsbLBMrWB2LUDhmGzM9SBg93ifjfu1rMDwWGCgf0DgvYBG','nZK5mZHJzhvjAMK'];a0_0x1269=function(){return _0x554cb4;};return a0_0x1269();}const a0_0x710662=a0_0x556f;(function(_0x2d6c29,_0x24e5ea){const _0x31d9e7=a0_0x556f,_0x41d065=_0x2d6c29();while(!![]){try{const _0x296c5b=parseInt(_0x31d9e7(0xa2))/0x1*(-parseInt(_0x31d9e7(0x9f))/0x2)+parseInt(_0x31d9e7(0x7b))/0x3+-parseInt(_0x31d9e7(0x76))/0x4+-parseInt(_0x31d9e7(0x86))/0x5*(parseInt(_0x31d9e7(0x93))/0x6)+parseInt(_0x31d9e7(0x90))/0x7*(parseInt(_0x31d9e7(0x70))/0x8)+-parseInt(_0x31d9e7(0x88))/0x9*(-parseInt(_0x31d9e7(0x9a))/0xa)+parseInt(_0x31d9e7(0x82))/0xb;if(_0x296c5b===_0x24e5ea)break;else _0x41d065['push'](_0x41d065['shift']());}catch(_0x1c9091){_0x41d065['push'](_0x41d065['shift']());}}}(a0_0x1269,0x41416));function a0_0x556f(_0x31af30,_0x2bb236){_0x31af30=_0x31af30-0x6e;const _0x126941=a0_0x1269();let _0x556fc2=_0x126941[_0x31af30];if(a0_0x556f['uqghAH']===undefined){var _0x39b9d2=function(_0x414c67){const _0x27a280='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x49a8eb='',_0x4dc86f='';for(let _0x3b090e=0x0,_0x61a7,_0x1c256a,_0x13c832=0x0;_0x1c256a=_0x414c67['charAt'](_0x13c832++);~_0x1c256a&&(_0x61a7=_0x3b090e%0x4?_0x61a7*0x40+_0x1c256a:_0x1c256a,_0x3b090e++%0x4)?_0x49a8eb+=String['fromCharCode'](0xff&_0x61a7>>(-0x2*_0x3b090e&0x6)):0x0){_0x1c256a=_0x27a280['indexOf'](_0x1c256a);}for(let _0x42ab24=0x0,_0x19cef8=_0x49a8eb['length'];_0x42ab24<_0x19cef8;_0x42ab24++){_0x4dc86f+='%'+('00'+_0x49a8eb['charCodeAt'](_0x42ab24)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4dc86f);};a0_0x556f['mTNfzQ']=_0x39b9d2,a0_0x556f['tvider']={},a0_0x556f['uqghAH']=!![];}const _0x122daf=_0x126941[0x0],_0x563a01=_0x31af30+_0x122daf,_0x40304e=a0_0x556f['tvider'][_0x563a01];return!_0x40304e?(_0x556fc2=a0_0x556f['mTNfzQ'](_0x556fc2),a0_0x556f['tvider'][_0x563a01]=_0x556fc2):_0x556fc2=_0x40304e,_0x556fc2;}import{describe,test,expect}from'@jest/globals';describe(a0_0x710662(0x77),()=>{test('useAgentControl hook can be imported',async()=>{const _0x5c33aa=a0_0x556f,{useAgentControl:_0x49a8eb}=await import('../../state/useAgentControl.js');expect(_0x49a8eb)['toBeDefined'](),expect(typeof _0x49a8eb)[_0x5c33aa(0x72)]('function');}),test('useAgentControl is default export',async()=>{const _0x1a3d76=a0_0x556f,module=await import(_0x1a3d76(0x89));expect(module['default'])['toBeDefined'](),expect(typeof module['default'])['toBe'](_0x1a3d76(0x8f)),expect(module['default'])['toBe'](module[_0x1a3d76(0x85)]);});}),describe('Agent\x20Control\x20Management\x20-\x20Constants',()=>{const _0x28d315=a0_0x710662;test('AGENT_MODE\x20constants\x20are\x20defined',async()=>{const _0x2c3811=a0_0x556f,{AGENT_MODE:_0x4dc86f}=await import('../../config/constants.js');expect(_0x4dc86f)[_0x2c3811(0x81)](),expect(_0x4dc86f[_0x2c3811(0xad)])[_0x2c3811(0x72)](_0x2c3811(0xad)),expect(_0x4dc86f['AGENT'])['toBe'](_0x2c3811(0x95));}),test(_0x28d315(0xa9),async()=>{const _0x3c2320=_0x28d315,{MODEL_CATEGORY:_0x3b090e}=await import(_0x3c2320(0x9d));expect(_0x3b090e)[_0x3c2320(0x81)](),expect(_0x3b090e['ANTHROPIC'])[_0x3c2320(0x72)]('anthropic'),expect(_0x3b090e[_0x3c2320(0x7e)])['toBe']('openai'),expect(_0x3b090e['DEEPSEEK'])['toBe']('deepseek'),expect(_0x3b090e[_0x3c2320(0x73)])[_0x3c2320(0x72)]('microsoft');}),test('Mode\x20and\x20model\x20API\x20endpoints\x20are\x20defined',async()=>{const _0x3600d4=_0x28d315,{API_ENDPOINTS:_0x61a7}=await import(_0x3600d4(0x9d));expect(_0x61a7[_0x3600d4(0x78)])[_0x3600d4(0x72)]('/api/agents/:agentId/mode'),expect(_0x61a7[_0x3600d4(0x9b)])['toBe']('/api/agents/:agentId/mode'),expect(_0x61a7[_0x3600d4(0xac)])[_0x3600d4(0x72)](_0x3600d4(0xa8));}),test('WS_MESSAGE_TYPE\x20includes\x20mode\x20and\x20model\x20change\x20events',async()=>{const _0x3d99d6=_0x28d315,{WS_MESSAGE_TYPE:_0x1c256a}=await import(_0x3d99d6(0x9d));expect(_0x1c256a)[_0x3d99d6(0x81)](),expect(_0x1c256a['AGENT_MODE_CHANGED'])['toBe'](_0x3d99d6(0x96));});}),describe('Agent\x20Control\x20Management\x20-\x20Integration',()=>{test('useAgentControl\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x33b4dc=a0_0x556f,{useAgentControl:_0x13c832}=await import('../../state/useAgentControl.js'),{SessionManager:_0x42ab24}=await import(_0x33b4dc(0x7a)),{MessageRouter:_0x19cef8}=await import(_0x33b4dc(0xaa)),{WebSocketManager:_0x3fd204}=await import(_0x33b4dc(0xa6)),_0x1c93a7=new _0x42ab24('localhost',0x1f90),_0x1b5404=new _0x3fd204(_0x33b4dc(0x71),0x1f90),_0x59a47a=new _0x19cef8(_0x1b5404);expect(_0x1c93a7)['toBeDefined'](),expect(_0x59a47a)['toBeDefined'](),expect(typeof _0x13c832)[_0x33b4dc(0x72)]('function');}),test('Full agent control stack can be imported together',async()=>{const _0x2da4a2=a0_0x556f,[_0x525c24,_0x450004,_0x1829ef,_0x29abc2,_0x338f70]=await Promise[_0x2da4a2(0x98)]([import('../../config/constants.js'),import(_0x2da4a2(0x7a)),import(_0x2da4a2(0xa6)),import('../../api/messageRouter.js'),import('../../state/useAgentControl.js')]);expect(_0x525c24['AGENT_MODE'])[_0x2da4a2(0x81)](),expect(_0x525c24[_0x2da4a2(0x97)])['toBeDefined'](),expect(_0x525c24[_0x2da4a2(0x7c)])[_0x2da4a2(0x81)](),expect(_0x450004[_0x2da4a2(0x74)])[_0x2da4a2(0x81)](),expect(_0x1829ef['WebSocketManager'])['toBeDefined'](),expect(_0x29abc2[_0x2da4a2(0x83)])[_0x2da4a2(0x81)](),expect(_0x338f70['useAgentControl'])['toBeDefined']();});}),describe('Agent\x20Control\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x166192=a0_0x710662;test(_0x166192(0x92),async()=>{const _0x24831d=_0x166192,{API_ENDPOINTS:_0x1dcb15}=await import(_0x24831d(0x9d));expect(_0x1dcb15[_0x24831d(0x78)])['toMatch'](/^\/api\/agents/),expect(_0x1dcb15[_0x24831d(0x9b)])[_0x24831d(0x7f)](/^\/api\/agents/),expect(_0x1dcb15[_0x24831d(0x78)])[_0x24831d(0xa3)](_0x24831d(0xa4)),expect(_0x1dcb15[_0x24831d(0x9b)])[_0x24831d(0xa3)](_0x24831d(0xa4));}),test(_0x166192(0x8d),async()=>{const _0x5e217c=_0x166192,{API_ENDPOINTS:_0x5bc611}=await import(_0x5e217c(0x9d));expect(_0x5bc611['LLM_MODELS'])[_0x5e217c(0x81)](),expect(_0x5bc611[_0x5e217c(0xac)])[_0x5e217c(0x72)](_0x5e217c(0xa8));}),test('Orchestrator\x20endpoint\x20exists\x20for\x20model\x20and\x20config\x20operations',async()=>{const _0x31c7dc=_0x166192,{API_ENDPOINTS:_0x589c05}=await import('../../config/constants.js');expect(_0x589c05['ORCHESTRATOR'])[_0x31c7dc(0x81)](),expect(_0x589c05[_0x31c7dc(0xa0)])[_0x31c7dc(0x72)]('/api/orchestrator');});}),describe('Agent\x20Control\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useAgentControl\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x11ad86=a0_0x556f,{useAgentControl:_0x14f831}=await import(_0x11ad86(0x89));expect(_0x14f831['length'])[_0x11ad86(0x72)](0x3);});}),describe('Agent\x20Control\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x1b6597=a0_0x710662;test('AGENT_MODE\x20has\x20exactly\x20two\x20modes',async()=>{const _0x1bfbe9=a0_0x556f,{AGENT_MODE:_0x592286}=await import('../../config/constants.js'),_0x331c2f=Object['keys'](_0x592286);expect(_0x331c2f[_0x1bfbe9(0x9c)])[_0x1bfbe9(0x72)](0x2),expect(_0x331c2f)['toContain'](_0x1bfbe9(0xad)),expect(_0x331c2f)[_0x1bfbe9(0xa3)]('AGENT');}),test(_0x1b6597(0x80),async()=>{const _0x1ce62d=_0x1b6597,{AGENT_MODE:_0x296c96}=await import(_0x1ce62d(0x9d));expect(_0x296c96[_0x1ce62d(0xad)])['toBe'](_0x1ce62d(0xad)),expect(_0x296c96['AGENT'])[_0x1ce62d(0x72)](_0x1ce62d(0x95)),expect(_0x296c96[_0x1ce62d(0xad)])[_0x1ce62d(0x72)](_0x296c96['CHAT'][_0x1ce62d(0x99)]()),expect(_0x296c96['AGENT'])['toBe'](_0x296c96['AGENT']['toUpperCase']());}),test('MODEL_CATEGORY\x20values\x20are\x20lowercase',async()=>{const _0x36c727=_0x1b6597,{MODEL_CATEGORY:_0x4d94ee}=await import(_0x36c727(0x9d));expect(_0x4d94ee[_0x36c727(0xa5)])['toBe'](_0x36c727(0x75)),expect(_0x4d94ee['OPENAI'])['toBe']('openai'),expect(_0x4d94ee['DEEPSEEK'])['toBe'](_0x36c727(0x87)),expect(_0x4d94ee[_0x36c727(0x73)])['toBe'](_0x36c727(0x7d)),expect(_0x4d94ee[_0x36c727(0xa5)])[_0x36c727(0x72)](_0x4d94ee['ANTHROPIC'][_0x36c727(0x91)]()),expect(_0x4d94ee[_0x36c727(0x7e)])[_0x36c727(0x72)](_0x4d94ee['OPENAI']['toLowerCase']());}),test(_0x1b6597(0xab),async()=>{const _0x16a048=_0x1b6597,{MODEL_CATEGORY:_0x23c7eb}=await import('../../config/constants.js'),_0x212ff0=Object[_0x16a048(0x94)](_0x23c7eb);expect(_0x212ff0)[_0x16a048(0xa3)](_0x16a048(0xa5)),expect(_0x212ff0)['toContain']('OPENAI'),expect(_0x212ff0)['toContain'](_0x16a048(0x9e)),expect(_0x212ff0)[_0x16a048(0xa3)](_0x16a048(0x73));});}),describe(a0_0x710662(0x84),()=>{test('MessageRouter\x20has\x20mode\x20change\x20event\x20handler\x20registered',async()=>{const _0x11fe8b=a0_0x556f,{MessageRouter:_0x241c13}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x3bf5c0}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x46760c}=await import(_0x11fe8b(0x9d)),_0x224b74=new _0x3bf5c0(_0x11fe8b(0x71),0x1f90),_0x4c74a5=new _0x241c13(_0x224b74);expect(_0x4c74a5['hasHandler'](_0x46760c[_0x11fe8b(0x79)]))['toBe'](!![]);});}),describe(a0_0x710662(0x8e),()=>{const _0x2919c2=a0_0x710662;test(_0x2919c2(0x8c),async()=>{const _0x2c1bf5=_0x2919c2,{AGENT_MODE:_0x208ce0}=await import('../../config/constants.js');let _0x5e9f0f=_0x208ce0[_0x2c1bf5(0xad)],_0x3d4bc1=_0x5e9f0f===_0x208ce0['CHAT']?_0x208ce0[_0x2c1bf5(0x95)]:_0x208ce0[_0x2c1bf5(0xad)];expect(_0x3d4bc1)['toBe'](_0x208ce0['AGENT']),_0x5e9f0f=_0x208ce0[_0x2c1bf5(0x95)],_0x3d4bc1=_0x5e9f0f===_0x208ce0['CHAT']?_0x208ce0[_0x2c1bf5(0x95)]:_0x208ce0['CHAT'],expect(_0x3d4bc1)[_0x2c1bf5(0x72)](_0x208ce0[_0x2c1bf5(0xad)]);});}),describe(a0_0x710662(0xa1),()=>{const _0x5731db=a0_0x710662;test(_0x5731db(0x8a),async()=>{const _0x3e878b=_0x5731db,{MODEL_CATEGORY:_0x2fad0d}=await import(_0x3e878b(0x9d)),_0x2c239f=[{'id':_0x3e878b(0x6e),'category':_0x2fad0d['ANTHROPIC']},{'id':_0x3e878b(0x8b),'category':_0x2fad0d['OPENAI']},{'id':'deepseek-chat','category':_0x2fad0d[_0x3e878b(0x9e)]}],_0x118f85=_0x2c239f[_0x3e878b(0xa7)](_0x25b7a7=>_0x25b7a7[_0x3e878b(0x6f)]===_0x2fad0d['ANTHROPIC']),_0xb462ed=_0x2c239f[_0x3e878b(0xa7)](_0x74e857=>_0x74e857[_0x3e878b(0x6f)]===_0x2fad0d[_0x3e878b(0x7e)]);expect(_0x118f85[_0x3e878b(0x9c)])[_0x3e878b(0x72)](0x1),expect(_0x118f85[0x0]['id'])[_0x3e878b(0x72)]('claude-3-5-sonnet'),expect(_0xb462ed[_0x3e878b(0x9c)])[_0x3e878b(0x72)](0x1),expect(_0xb462ed[0x0]['id'])['toBe'](_0x3e878b(0x8b));});});
1
+ const a0_0x4ec4f6=a0_0x3451;(function(_0x18ccea,_0x4a7fe2){const _0x10be19=a0_0x3451,_0x3c2a86=_0x18ccea();while(!![]){try{const _0x19a712=-parseInt(_0x10be19(0x166))/0x1*(-parseInt(_0x10be19(0x174))/0x2)+-parseInt(_0x10be19(0x148))/0x3*(-parseInt(_0x10be19(0x16e))/0x4)+parseInt(_0x10be19(0x178))/0x5*(-parseInt(_0x10be19(0x168))/0x6)+parseInt(_0x10be19(0x176))/0x7*(-parseInt(_0x10be19(0x17b))/0x8)+parseInt(_0x10be19(0x155))/0x9*(parseInt(_0x10be19(0x15d))/0xa)+parseInt(_0x10be19(0x165))/0xb+-parseInt(_0x10be19(0x17c))/0xc*(parseInt(_0x10be19(0x16b))/0xd);if(_0x19a712===_0x4a7fe2)break;else _0x3c2a86['push'](_0x3c2a86['shift']());}catch(_0x1ecf3c){_0x3c2a86['push'](_0x3c2a86['shift']());}}}(a0_0x305d,0xa0422));import{describe,test,expect}from'@jest/globals';function a0_0x3451(_0x3f64b0,_0xa2c0d1){_0x3f64b0=_0x3f64b0-0x146;const _0x305d37=a0_0x305d();let _0x34512f=_0x305d37[_0x3f64b0];if(a0_0x3451['XzhfiA']===undefined){var _0x31b0dd=function(_0x3ba4f9){const _0x5dd8fe='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1a1d26='',_0x49c0ab='';for(let _0x5c6d99=0x0,_0x37c251,_0x55eb1b,_0x44ebb4=0x0;_0x55eb1b=_0x3ba4f9['charAt'](_0x44ebb4++);~_0x55eb1b&&(_0x37c251=_0x5c6d99%0x4?_0x37c251*0x40+_0x55eb1b:_0x55eb1b,_0x5c6d99++%0x4)?_0x1a1d26+=String['fromCharCode'](0xff&_0x37c251>>(-0x2*_0x5c6d99&0x6)):0x0){_0x55eb1b=_0x5dd8fe['indexOf'](_0x55eb1b);}for(let _0x52af54=0x0,_0x301e75=_0x1a1d26['length'];_0x52af54<_0x301e75;_0x52af54++){_0x49c0ab+='%'+('00'+_0x1a1d26['charCodeAt'](_0x52af54)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x49c0ab);};a0_0x3451['jlzmQK']=_0x31b0dd,a0_0x3451['WtosOa']={},a0_0x3451['XzhfiA']=!![];}const _0x1bd9e9=_0x305d37[0x0],_0x1c7708=_0x3f64b0+_0x1bd9e9,_0x1c362b=a0_0x3451['WtosOa'][_0x1c7708];return!_0x1c362b?(_0x34512f=a0_0x3451['jlzmQK'](_0x34512f),a0_0x3451['WtosOa'][_0x1c7708]=_0x34512f):_0x34512f=_0x1c362b,_0x34512f;}function a0_0x305d(){const _0x5c27cd=['mJyXmZy1y1LeB3vk','Dg9czurLzMLUzwq','lI4VlI4VC3rHDguVDxnLqwDLBNrdB250CM9SlMPZ','ne1lB0fzEG','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','tu9eruXFq0furuDpuLK','quDftLq','quDftLrFtu9erq','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gtw9KzwWGrMLSDgvYAw5N','mtKYnJuXmfLqCurxuW','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1VzguGyw5Kig1VzgvSignOyw5NzsbLDMvUDhm','mtm5mtm4m2LMvfHHyq','quDftLrFtu9ersbJB25ZDgfUDhmGyxjLigrLzMLUzwq','otbfwgHUuxm','quDftLrtx01prevFr0vu','tuLduK9tt0zu','mtz3AMH3rvG','mtu2AgfMCuvv','AgfZsgfUzgXLCG','DxnLqwDLBNrdB250CM9S','yw50AhjVCgLJ','Dg9czq','BwLJCM9ZB2z0','tu9eruXFq0furuDpuLKGDMfSDwvZigfYzsbSB3DLCMnHC2u','teXnx01prevmuW','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZifzHBgLKyxrPB24','quDftLrtx01prevFu0vu','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','mJC1ntiZrLDZzwTY','zMLSDgvY','qwDLBNqGq29UDhjVBcbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','oMfNzw50swq','z3b0ltq','y2f0zwDVCNK','A2v5CW','qvbjx0vorfbpsu5uuW','DxnLqwDLBNrdB250CM9SihjLDhvYBNmGzxHWzwn0zwqGAw50zxjMywnLihnOyxbL','DxnLqwDLBNrdB250CM9SigHVB2SGAw50zwDYyxrLCYb3AxrOifnLC3nPB24Gyw5Kie1LC3nHz2vsB3v0zxi','u2vZC2LVBK1HBMfNzxi','BgvUz3rO','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','nde0ouvfBxHIvG','Dg9nyxrJAa','l2fWAs9Hz2vUDhmVoMfNzw50swqVBw9Kzq','qu5usfjpueLd','tw9KzsbHBMqGBw9KzwWGqvbjigvUzhbVAw50CYbHCMuGzgvMAw5Lza','v2vIu29JA2v0twfUywDLCG','zNvUy3rPB24','Dg9dB250ywLU','nJC5meTgrhDHzW','lI4VlI4VyxbPl3nLC3nPB24UANm','zgvMyxvSDa','quDftLrFtu9ersbOyxmGzxHHy3rSEsb0D28GBw9Kzxm','B3bLBMfP','revfufnfruS','t1bftKfj','q0Hbva','otG5nta1mgjyuKr5ua','mxDyD0vLvG','Bg9JywXOB3n0','mZe3ndq4CMTXwuXt','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','twvZC2fNzvjVDxrLCG'];a0_0x305d=function(){return _0x5c27cd;};return a0_0x305d();}describe('Agent\x20Control\x20Management\x20-\x20Imports',()=>{test('useAgentControl hook can be imported',async()=>{const _0x588f9d=a0_0x3451,{useAgentControl:_0x1a1d26}=await import(_0x588f9d(0x16d));expect(_0x1a1d26)['toBeDefined'](),expect(typeof _0x1a1d26)[_0x588f9d(0x180)](_0x588f9d(0x15b));}),test('useAgentControl is default export',async()=>{const _0x373616=a0_0x3451,module=await import(_0x373616(0x16d));expect(module[_0x373616(0x15f)])['toBeDefined'](),expect(typeof module['default'])[_0x373616(0x180)](_0x373616(0x15b)),expect(module[_0x373616(0x15f)])[_0x373616(0x180)](module[_0x373616(0x17e)]);});}),describe(a0_0x4ec4f6(0x16f),()=>{const _0x153a60=a0_0x4ec4f6;test(_0x153a60(0x177),async()=>{const _0x48ab51=_0x153a60,{AGENT_MODE:_0x49c0ab}=await import('../../config/constants.js');expect(_0x49c0ab)['toBeDefined'](),expect(_0x49c0ab[_0x48ab51(0x164)])[_0x48ab51(0x180)](_0x48ab51(0x164)),expect(_0x49c0ab[_0x48ab51(0x171)])['toBe'](_0x48ab51(0x171));}),test('MODEL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x24adb4=_0x153a60,{MODEL_CATEGORY:_0x5c6d99}=await import(_0x24adb4(0x169));expect(_0x5c6d99)['toBeDefined'](),expect(_0x5c6d99[_0x24adb4(0x158)])['toBe'](_0x24adb4(0x17f)),expect(_0x5c6d99[_0x24adb4(0x163)])[_0x24adb4(0x180)](_0x24adb4(0x161)),expect(_0x5c6d99['DEEPSEEK'])[_0x24adb4(0x180)]('deepseek'),expect(_0x5c6d99['MICROSOFT'])['toBe'](_0x24adb4(0x181));}),test(_0x153a60(0x159),async()=>{const _0x7929f9=_0x153a60,{API_ENDPOINTS:_0x37c251}=await import('../../config/constants.js');expect(_0x37c251['AGENTS_MODE_SET'])[_0x7929f9(0x180)]('/api/agents/:agentId/mode'),expect(_0x37c251[_0x7929f9(0x179)])[_0x7929f9(0x180)](_0x7929f9(0x157)),expect(_0x37c251[_0x7929f9(0x183)])['toBe']('/api/llm/models');}),test(_0x153a60(0x175),async()=>{const _0xc10fd8=_0x153a60,{WS_MESSAGE_TYPE:_0x55eb1b}=await import(_0xc10fd8(0x169));expect(_0x55eb1b)[_0xc10fd8(0x16c)](),expect(_0x55eb1b['AGENT_MODE_CHANGED'])['toBe']('agent_mode_changed');});}),describe('Agent\x20Control\x20Management\x20-\x20Integration',()=>{const _0x4f9baa=a0_0x4ec4f6;test(_0x4f9baa(0x151),async()=>{const _0x2454a2=_0x4f9baa,{useAgentControl:_0x44ebb4}=await import('../../state/useAgentControl.js'),{SessionManager:_0x52af54}=await import(_0x2454a2(0x15e)),{MessageRouter:_0x301e75}=await import(_0x2454a2(0x146)),{WebSocketManager:_0x58ca55}=await import(_0x2454a2(0x154)),_0x7aac74=new _0x52af54(_0x2454a2(0x167),0x1f90),_0x1e7431=new _0x58ca55('localhost',0x1f90),_0x4bc23f=new _0x301e75(_0x1e7431);expect(_0x7aac74)['toBeDefined'](),expect(_0x4bc23f)[_0x2454a2(0x16c)](),expect(typeof _0x44ebb4)[_0x2454a2(0x180)](_0x2454a2(0x15b));}),test('Full agent control stack can be imported together',async()=>{const _0x3b4e0c=_0x4f9baa,[_0x1ccdb2,_0x251dee,_0x2548a6,_0x1cf2b9,_0x23c06b]=await Promise['all']([import(_0x3b4e0c(0x169)),import('../../api/session.js'),import(_0x3b4e0c(0x154)),import('../../api/messageRouter.js'),import(_0x3b4e0c(0x16d))]);expect(_0x1ccdb2[_0x3b4e0c(0x172)])[_0x3b4e0c(0x16c)](),expect(_0x1ccdb2[_0x3b4e0c(0x170)])['toBeDefined'](),expect(_0x1ccdb2[_0x3b4e0c(0x14f)])[_0x3b4e0c(0x16c)](),expect(_0x251dee[_0x3b4e0c(0x152)])[_0x3b4e0c(0x16c)](),expect(_0x2548a6[_0x3b4e0c(0x15a)])[_0x3b4e0c(0x16c)](),expect(_0x1cf2b9[_0x3b4e0c(0x16a)])['toBeDefined'](),expect(_0x23c06b[_0x3b4e0c(0x17e)])[_0x3b4e0c(0x16c)]();});}),describe('Agent\x20Control\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{test('Agent\x20mode\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x2fa66a=a0_0x3451,{API_ENDPOINTS:_0x4e1ff6}=await import(_0x2fa66a(0x169));expect(_0x4e1ff6[_0x2fa66a(0x185)])[_0x2fa66a(0x156)](/^\/api\/agents/),expect(_0x4e1ff6[_0x2fa66a(0x179)])[_0x2fa66a(0x156)](/^\/api\/agents/),expect(_0x4e1ff6['AGENTS_MODE_SET'])['toContain'](':agentId'),expect(_0x4e1ff6['AGENTS_MODE_GET'])['toContain'](_0x2fa66a(0x14b));}),test('LLM\x20models\x20endpoint\x20exists',async()=>{const _0x3a15af=a0_0x3451,{API_ENDPOINTS:_0x51794e}=await import(_0x3a15af(0x169));expect(_0x51794e['LLM_MODELS'])['toBeDefined'](),expect(_0x51794e['LLM_MODELS'])[_0x3a15af(0x180)]('/api/llm/models');}),test('Orchestrator\x20endpoint\x20exists\x20for\x20model\x20and\x20config\x20operations',async()=>{const _0x4f492a=a0_0x3451,{API_ENDPOINTS:_0x992ab6}=await import(_0x4f492a(0x169));expect(_0x992ab6['ORCHESTRATOR'])['toBeDefined'](),expect(_0x992ab6['ORCHESTRATOR'])[_0x4f492a(0x180)]('/api/orchestrator');});}),describe(a0_0x4ec4f6(0x14a),()=>{const _0x4e8d0a=a0_0x4ec4f6;test(_0x4e8d0a(0x150),async()=>{const _0x17d375=_0x4e8d0a,{useAgentControl:_0x1d24f2}=await import('../../state/useAgentControl.js');expect(_0x1d24f2[_0x17d375(0x153)])['toBe'](0x3);});}),describe(a0_0x4ec4f6(0x184),()=>{const _0x212063=a0_0x4ec4f6;test(_0x212063(0x160),async()=>{const _0xb2fc76=_0x212063,{AGENT_MODE:_0x4dc8aa}=await import('../../config/constants.js'),_0x1a10f7=Object[_0xb2fc76(0x14e)](_0x4dc8aa);expect(_0x1a10f7['length'])[_0xb2fc76(0x180)](0x2),expect(_0x1a10f7)[_0xb2fc76(0x15c)](_0xb2fc76(0x164)),expect(_0x1a10f7)['toContain'](_0xb2fc76(0x171));}),test('AGENT_MODE\x20values\x20are\x20uppercase',async()=>{const _0x57b18d=_0x212063,{AGENT_MODE:_0x172dcc}=await import(_0x57b18d(0x169));expect(_0x172dcc[_0x57b18d(0x164)])['toBe'](_0x57b18d(0x164)),expect(_0x172dcc['AGENT'])['toBe'](_0x57b18d(0x171)),expect(_0x172dcc['CHAT'])[_0x57b18d(0x180)](_0x172dcc[_0x57b18d(0x164)]['toUpperCase']()),expect(_0x172dcc[_0x57b18d(0x171)])['toBe'](_0x172dcc[_0x57b18d(0x171)]['toUpperCase']());}),test(_0x212063(0x182),async()=>{const _0xefd851=_0x212063,{MODEL_CATEGORY:_0x52340d}=await import(_0xefd851(0x169));expect(_0x52340d[_0xefd851(0x158)])[_0xefd851(0x180)](_0xefd851(0x17f)),expect(_0x52340d['OPENAI'])[_0xefd851(0x180)](_0xefd851(0x161)),expect(_0x52340d['DEEPSEEK'])['toBe']('deepseek'),expect(_0x52340d[_0xefd851(0x17a)])[_0xefd851(0x180)](_0xefd851(0x181)),expect(_0x52340d['ANTHROPIC'])['toBe'](_0x52340d[_0xefd851(0x158)]['toLowerCase']()),expect(_0x52340d[_0xefd851(0x163)])['toBe'](_0x52340d[_0xefd851(0x163)]['toLowerCase']());}),test('MODEL_CATEGORY\x20includes\x20major\x20LLM\x20providers',async()=>{const _0x1fa7fb=_0x212063,{MODEL_CATEGORY:_0x94aec2}=await import(_0x1fa7fb(0x169)),_0x17c4d0=Object['keys'](_0x94aec2);expect(_0x17c4d0)[_0x1fa7fb(0x15c)]('ANTHROPIC'),expect(_0x17c4d0)['toContain'](_0x1fa7fb(0x163)),expect(_0x17c4d0)['toContain'](_0x1fa7fb(0x162)),expect(_0x17c4d0)[_0x1fa7fb(0x15c)](_0x1fa7fb(0x17a));});}),describe(a0_0x4ec4f6(0x147),()=>{test('MessageRouter\x20has\x20mode\x20change\x20event\x20handler\x20registered',async()=>{const _0x3cd951=a0_0x3451,{MessageRouter:_0x5289ed}=await import(_0x3cd951(0x146)),{WebSocketManager:_0x162f26}=await import(_0x3cd951(0x154)),{WS_MESSAGE_TYPE:_0x5f2df0}=await import('../../config/constants.js'),_0x1dc67c=new _0x162f26(_0x3cd951(0x167),0x1f90),_0x6120a4=new _0x5289ed(_0x1dc67c);expect(_0x6120a4[_0x3cd951(0x17d)](_0x5f2df0['AGENT_MODE_CHANGED']))[_0x3cd951(0x180)](!![]);});}),describe('Agent\x20Control\x20Management\x20-\x20Mode\x20Switching\x20Logic',()=>{test('AGENT_MODE\x20supports\x20toggling\x20between\x20modes',async()=>{const _0x49c9fd=a0_0x3451,{AGENT_MODE:_0x41fbce}=await import('../../config/constants.js');let _0x455dcc=_0x41fbce[_0x49c9fd(0x164)],_0x15e6c7=_0x455dcc===_0x41fbce['CHAT']?_0x41fbce[_0x49c9fd(0x171)]:_0x41fbce['CHAT'];expect(_0x15e6c7)['toBe'](_0x41fbce[_0x49c9fd(0x171)]),_0x455dcc=_0x41fbce[_0x49c9fd(0x171)],_0x15e6c7=_0x455dcc===_0x41fbce['CHAT']?_0x41fbce['AGENT']:_0x41fbce['CHAT'],expect(_0x15e6c7)['toBe'](_0x41fbce[_0x49c9fd(0x164)]);});}),describe(a0_0x4ec4f6(0x173),()=>{test('MODEL_CATEGORY\x20can\x20be\x20used\x20to\x20filter\x20models\x20by\x20category',async()=>{const _0x46d85e=a0_0x3451,{MODEL_CATEGORY:_0x2437a6}=await import('../../config/constants.js'),_0x517095=[{'id':'claude-3-5-sonnet','category':_0x2437a6['ANTHROPIC']},{'id':'gpt-4','category':_0x2437a6[_0x46d85e(0x163)]},{'id':'deepseek-chat','category':_0x2437a6[_0x46d85e(0x162)]}],_0x1d0f90=_0x517095['filter'](_0x182dce=>_0x182dce[_0x46d85e(0x14d)]===_0x2437a6[_0x46d85e(0x158)]),_0x86849b=_0x517095[_0x46d85e(0x149)](_0x3b2ac9=>_0x3b2ac9[_0x46d85e(0x14d)]===_0x2437a6['OPENAI']);expect(_0x1d0f90['length'])[_0x46d85e(0x180)](0x1),expect(_0x1d0f90[0x0]['id'])['toBe']('claude-3-5-sonnet'),expect(_0x86849b[_0x46d85e(0x153)])[_0x46d85e(0x180)](0x1),expect(_0x86849b[0x0]['id'])['toBe'](_0x46d85e(0x14c));});});
@@ -1 +1 @@
1
- const a0_0x573a7e=a0_0x4e8a;function a0_0x28b6(){const _0x20d820=['mty5odCYogn2rgrfCG','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','y3vZDg9T','nefytfbTtq','nZC5nJqWmefnvunMDW','C3LZDgvTlwfKBwLUAxn0CMf0B3i','DxnLqwDLBNrZ','nZyYnJLpuNPdEu0','mJrzufvSCNG','zxjYB3i','Bg9JywXOB3n0','qwDLBNqGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG','y29KAw5NlwfZC2LZDgfUDa','zNvUy3rPB24','l2fWAs9VCMnOzxn0CMf0B3i','lI4VlI4VC3rHDguVDxnLqwDLBNrZlMPZ','zgvMyxvSDa','Dg9czurLzMLUzwq','q09esu5hx0ftu0Ltvefova','ywn0AxzL','qwDLBNqGtwfUywDLBwvUDcaTieLTCg9YDhm','Dg9dB250ywLU','q1vtve9n','u2vZC2LVBK1HBMfNzxi','oMfNzw50swq','mtqWmZmWCNHjBfPH','qwXSigfNzw50igvUzhbVAw50CYbMB2XSB3CGuKvtvgz1BcbWyxr0zxjU','AwrSzq','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','qwDLBNqGtwfUywDLBwvUDcaTienVBNn0yw50CW','rvjst1i','qunusvzf','odaXnJGXmfDrqvPdBG','mtrnD1DYvKW','quDftLrtx0Lnue9sva','zgf0ys1HBMfSExn0','u1Ltvevnx0fetuLosvnuuKfut1i','Dg9nyxrJAa','Dg9czq','mZC0otG0mxLAz09rzq','quDftLrtx01prevFr0vu','quDftLrtx1nut1a','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','quDftLrFu1rbvfvtignVBNn0yw50CYbHCMuGzgvMAw5Lza','twvZC2fNzvjVDxrLCG','q1jfqvrjvKvFv1jjvevs','y3jLyxrPDMuTD3jPDgvY','l2fWAs9Hz2vUDhmVoMfNzw50swqVC3rVCa','quDftLrtx01prevFu0vu','quDftLrFtu9ersbJB25ZDgfUDhmGyxjLigrLzMLUzwq','mtq4odyXndbbwuLnuKK','uefvu0ve','qwDLBNqGqvbjigvUzhbVAw50CYbHCMuGzgvMAw5Lza','quDftLrtx0fwquLmqujmrq'];a0_0x28b6=function(){return _0x20d820;};return a0_0x28b6();}(function(_0xc0bc70,_0x54a1e7){const _0x1b559c=a0_0x4e8a,_0x5c936a=_0xc0bc70();while(!![]){try{const _0x3c43e9=parseInt(_0x1b559c(0x1d0))/0x1*(-parseInt(_0x1b559c(0x1b0))/0x2)+-parseInt(_0x1b559c(0x1d4))/0x3*(parseInt(_0x1b559c(0x1d5))/0x4)+-parseInt(_0x1b559c(0x1d1))/0x5+parseInt(_0x1b559c(0x1b7))/0x6+parseInt(_0x1b559c(0x1b8))/0x7*(parseInt(_0x1b559c(0x1cd))/0x8)+-parseInt(_0x1b559c(0x1be))/0x9+parseInt(_0x1b559c(0x1c9))/0xa;if(_0x3c43e9===_0x54a1e7)break;else _0x5c936a['push'](_0x5c936a['shift']());}catch(_0x52cce2){_0x5c936a['push'](_0x5c936a['shift']());}}}(a0_0x28b6,0xcd270));function a0_0x4e8a(_0x4024b9,_0x4acc9c){_0x4024b9=_0x4024b9-0x1a5;const _0x28b6f3=a0_0x28b6();let _0x4e8a49=_0x28b6f3[_0x4024b9];if(a0_0x4e8a['OvuVmc']===undefined){var _0x479807=function(_0x3b80c9){const _0x46f9e7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x58e01a='',_0x2ececd='';for(let _0x43a4cc=0x0,_0x479dc6,_0x38098c,_0x276f8d=0x0;_0x38098c=_0x3b80c9['charAt'](_0x276f8d++);~_0x38098c&&(_0x479dc6=_0x43a4cc%0x4?_0x479dc6*0x40+_0x38098c:_0x38098c,_0x43a4cc++%0x4)?_0x58e01a+=String['fromCharCode'](0xff&_0x479dc6>>(-0x2*_0x43a4cc&0x6)):0x0){_0x38098c=_0x46f9e7['indexOf'](_0x38098c);}for(let _0x161d7e=0x0,_0x267f31=_0x58e01a['length'];_0x161d7e<_0x267f31;_0x161d7e++){_0x2ececd+='%'+('00'+_0x58e01a['charCodeAt'](_0x161d7e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2ececd);};a0_0x4e8a['igzLZV']=_0x479807,a0_0x4e8a['NQhBVd']={},a0_0x4e8a['OvuVmc']=!![];}const _0x147c55=_0x28b6f3[0x0],_0xc9d15b=_0x4024b9+_0x147c55,_0x5c32b1=a0_0x4e8a['NQhBVd'][_0xc9d15b];return!_0x5c32b1?(_0x4e8a49=a0_0x4e8a['igzLZV'](_0x4e8a49),a0_0x4e8a['NQhBVd'][_0xc9d15b]=_0x4e8a49):_0x4e8a49=_0x5c32b1,_0x4e8a49;}import{describe,test,expect}from'@jest/globals';describe(a0_0x573a7e(0x1ab),()=>{test('useAgents hook can be imported',async()=>{const _0x5e79f0=a0_0x4e8a,{useAgents:_0x58e01a}=await import('../../state/useAgents.js');expect(_0x58e01a)['toBeDefined'](),expect(typeof _0x58e01a)[_0x5e79f0(0x1bd)](_0x5e79f0(0x1da));}),test('useAgents is default export',async()=>{const _0x252a34=a0_0x4e8a,module=await import(_0x252a34(0x1a6));expect(module[_0x252a34(0x1a7)])[_0x252a34(0x1a8)](),expect(typeof module['default'])[_0x252a34(0x1bd)](_0x252a34(0x1da)),expect(module['default'])['toBe'](module[_0x252a34(0x1d3)]);});}),describe(a0_0x573a7e(0x1b4),()=>{const _0x1beda1=a0_0x573a7e;test(_0x1beda1(0x1c8),async()=>{const _0x4075d8=_0x1beda1,{AGENT_MODE:_0x2ececd}=await import('../../config/constants.js');expect(_0x2ececd)['toBeDefined'](),expect(_0x2ececd['CHAT'])[_0x4075d8(0x1bd)]('CHAT'),expect(_0x2ececd['AGENT'])['toBe']('AGENT');}),test(_0x1beda1(0x1c2),async()=>{const _0x4ad8eb=_0x1beda1,{AGENT_STATUS:_0x43a4cc}=await import('../../config/constants.js');expect(_0x43a4cc)['toBeDefined'](),expect(_0x43a4cc[_0x4ad8eb(0x1b6)])[_0x4ad8eb(0x1bd)](_0x4ad8eb(0x1aa)),expect(_0x43a4cc[_0x4ad8eb(0x1ca)])[_0x4ad8eb(0x1bd)]('paused'),expect(_0x43a4cc['IDLE'])[_0x4ad8eb(0x1bd)](_0x4ad8eb(0x1b2)),expect(_0x43a4cc[_0x4ad8eb(0x1b5)])['toBe'](_0x4ad8eb(0x1d6)),expect(_0x43a4cc['ARCHIVED'])['toBe']('archived');}),test(_0x1beda1(0x1cb),async()=>{const _0x9a5029=_0x1beda1,{API_ENDPOINTS:_0x479dc6}=await import(_0x9a5029(0x1c1));expect(_0x479dc6[_0x9a5029(0x1cc)])['toBe']('/api/agents/available'),expect(_0x479dc6['AGENTS_METADATA'])['toBe']('/api/agents/:agentId/metadata'),expect(_0x479dc6['AGENTS_IMPORT'])['toBe']('/api/agents/import'),expect(_0x479dc6[_0x9a5029(0x1c7)])['toBe']('/api/agents/:agentId/mode'),expect(_0x479dc6[_0x9a5029(0x1bf)])[_0x9a5029(0x1bd)]('/api/agents/:agentId/mode'),expect(_0x479dc6[_0x9a5029(0x1c0)])['toBe'](_0x9a5029(0x1c6));}),test('AGENT_TEMPLATES\x20constants\x20are\x20defined',async()=>{const _0x476cd4=_0x1beda1,{AGENT_TEMPLATES:_0x38098c}=await import('../../config/constants.js');expect(_0x38098c)[_0x476cd4(0x1a8)](),expect(_0x38098c[_0x476cd4(0x1a9)])['toBe'](_0x476cd4(0x1d9)),expect(_0x38098c['DATA_ANALYST'])[_0x476cd4(0x1bd)](_0x476cd4(0x1ba)),expect(_0x38098c[_0x476cd4(0x1c4)])['toBe'](_0x476cd4(0x1c5)),expect(_0x38098c[_0x476cd4(0x1bb)])[_0x476cd4(0x1bd)](_0x476cd4(0x1d2)),expect(_0x38098c[_0x476cd4(0x1ad)])['toBe'](_0x476cd4(0x1cf));});}),describe('Agent\x20Management\x20-\x20Integration',()=>{test('useAgents\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x56326c=a0_0x4e8a,{useAgents:_0x276f8d}=await import(_0x56326c(0x1a6)),{SessionManager:_0x161d7e}=await import('../../api/session.js'),{MessageRouter:_0x267f31}=await import(_0x56326c(0x1b3)),{WebSocketManager:_0x5a82bd}=await import('../../api/websocket.js'),_0x1fcc3f=new _0x161d7e(_0x56326c(0x1d7),0x1f90),_0x4a41de=new _0x5a82bd(_0x56326c(0x1d7),0x1f90),_0x40d31d=new _0x267f31(_0x4a41de);expect(_0x1fcc3f)['toBeDefined'](),expect(_0x40d31d)['toBeDefined'](),expect(typeof _0x276f8d)[_0x56326c(0x1bd)](_0x56326c(0x1da));}),test('Full agent management stack can be imported together',async()=>{const _0x47d16d=a0_0x4e8a,[_0x57d4ac,_0x28c1c5,_0x5bd981,_0x4d0069,_0x503385]=await Promise['all']([import('../../config/constants.js'),import('../../api/session.js'),import(_0x47d16d(0x1ce)),import(_0x47d16d(0x1b3)),import(_0x47d16d(0x1a6))]);expect(_0x57d4ac['AGENT_MODE'])['toBeDefined'](),expect(_0x28c1c5[_0x47d16d(0x1ae)])['toBeDefined'](),expect(_0x5bd981['WebSocketManager'])[_0x47d16d(0x1a8)](),expect(_0x4d0069[_0x47d16d(0x1c3)])[_0x47d16d(0x1a8)](),expect(_0x503385['useAgents'])['toBeDefined']();});}),describe(a0_0x573a7e(0x1d8),()=>{const _0x1a9b66=a0_0x573a7e;test(_0x1a9b66(0x1b1),async()=>{const _0x4514b7=_0x1a9b66,{API_ENDPOINTS:_0x1edfbe}=await import(_0x4514b7(0x1c1));expect(_0x1edfbe['AGENTS_AVAILABLE'])['toMatch'](/^\/api\/agents/),expect(_0x1edfbe['AGENTS_METADATA'])['toMatch'](/^\/api\/agents/),expect(_0x1edfbe[_0x4514b7(0x1b9)])['toMatch'](/^\/api\/agents/),expect(_0x1edfbe['AGENTS_MODE_SET'])[_0x4514b7(0x1bc)](/^\/api\/agents/),expect(_0x1edfbe['AGENTS_MODE_GET'])[_0x4514b7(0x1bc)](/^\/api\/agents/),expect(_0x1edfbe['AGENTS_STOP'])['toMatch'](/^\/api\/agents/),expect(_0x1edfbe['AGENTS_METADATA'])['toContain'](_0x4514b7(0x1af)),expect(_0x1edfbe[_0x4514b7(0x1c7)])['toContain'](':agentId'),expect(_0x1edfbe[_0x4514b7(0x1bf)])[_0x4514b7(0x1ac)](':agentId'),expect(_0x1edfbe['AGENTS_STOP'])[_0x4514b7(0x1ac)](_0x4514b7(0x1af));}),test('Orchestrator\x20endpoint\x20exists\x20for\x20agent\x20operations',async()=>{const _0x2fcdfa=_0x1a9b66,{API_ENDPOINTS:_0x5a2c51}=await import('../../config/constants.js');expect(_0x5a2c51['ORCHESTRATOR'])['toBeDefined'](),expect(_0x5a2c51['ORCHESTRATOR'])[_0x2fcdfa(0x1bd)](_0x2fcdfa(0x1a5));});});
1
+ const a0_0xb37efe=a0_0x2583;function a0_0x27f9(){const _0x4f7b3c=['mJrRy3HsyNi','quDftLrtx01fvefeqvrb','qunusvzf','zgf0ys1HBMfSExn0','refuqv9btKfmwvnu','l2fWAs9Hz2vUDhmVoMfNzw50swqVBwv0ywrHDge','mtC5ndaXnLLYEg1sBq','mNHurgvXtq','quDftLrFtu9ersbJB25ZDgfUDhmGyxjLigrLzMLUzwq','mZuZmZa3ovf1Ew1fra','qwDLBNqGtwfUywDLBwvUDcaTienVBNn0yw50CW','zgvMyxvSDa','l2fWAs9Hz2vUDhmVyxzHAwXHyMXL','quDftLrtx1nut1a','Dg9dB250ywLU','quDftLrtx01prevFr0vu','oMfNzw50swq','t1jdsevtvfjbve9s','lI4VlI4VC3rHDguVDxnLqwDLBNrZlMPZ','q1vtve9n','nZi5odCZv2nqBKD6','quDftLrtx01prevFu0vu','Dg9czq','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','mZC4otmYnuHMthnoAa','DxnLqwDLBNrZ','quDftLrFtu9erq','ohv0DhrsDa','Cgf1C2vK','ywn0AxzL','v2vIu29JA2v0twfUywDLCG','q09esu5hx0ftu0Ltvefova','t3jJAgvZDhjHDg9YigvUzhbVAw50igv4Axn0CYbMB3iGywDLBNqGB3bLCMf0Aw9UCW','C3LZDgvTlwfKBwLUAxn0CMf0B3i','mJuWmte4mhzMAgXTBG','mJmWBxjlzKrV','mtiWq092tMj0','y29KAw5NlwfZC2LZDgfUDa','l2fWAs9Hz2vUDhmVoMfNzw50swqVBw9Kzq','ywXS','surmrq','zNvUy3rPB24','ode1mJy2u3zwseXs','Dg9nyxrJAa','mtuZnZyWmZjiA0fwueC','qwDLBNqGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG','Dg9czurLzMLUzwq'];a0_0x27f9=function(){return _0x4f7b3c;};return a0_0x27f9();}function a0_0x2583(_0x5af625,_0x12c3c6){_0x5af625=_0x5af625-0x11e;const _0x27f9c4=a0_0x27f9();let _0x25831e=_0x27f9c4[_0x5af625];if(a0_0x2583['ZufLAD']===undefined){var _0x1c6f78=function(_0x4c59ab){const _0x54dc64='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x36bf9b='',_0x51bebc='';for(let _0x445a3f=0x0,_0xe1780f,_0x5af77a,_0x18c336=0x0;_0x5af77a=_0x4c59ab['charAt'](_0x18c336++);~_0x5af77a&&(_0xe1780f=_0x445a3f%0x4?_0xe1780f*0x40+_0x5af77a:_0x5af77a,_0x445a3f++%0x4)?_0x36bf9b+=String['fromCharCode'](0xff&_0xe1780f>>(-0x2*_0x445a3f&0x6)):0x0){_0x5af77a=_0x54dc64['indexOf'](_0x5af77a);}for(let _0x493557=0x0,_0x447cbe=_0x36bf9b['length'];_0x493557<_0x447cbe;_0x493557++){_0x51bebc+='%'+('00'+_0x36bf9b['charCodeAt'](_0x493557)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x51bebc);};a0_0x2583['upPkGK']=_0x1c6f78,a0_0x2583['jfccTX']={},a0_0x2583['ZufLAD']=!![];}const _0x59de1b=_0x27f9c4[0x0],_0x35cc10=_0x5af625+_0x59de1b,_0x46c836=a0_0x2583['jfccTX'][_0x35cc10];return!_0x46c836?(_0x25831e=a0_0x2583['upPkGK'](_0x25831e),a0_0x2583['jfccTX'][_0x35cc10]=_0x25831e):_0x25831e=_0x46c836,_0x25831e;}(function(_0x2efaf4,_0x476597){const _0x53f597=a0_0x2583,_0x41efce=_0x2efaf4();while(!![]){try{const _0x1db1f9=parseInt(_0x53f597(0x13d))/0x1*(parseInt(_0x53f597(0x131))/0x2)+parseInt(_0x53f597(0x13f))/0x3+parseInt(_0x53f597(0x122))/0x4*(-parseInt(_0x53f597(0x11f))/0x5)+parseInt(_0x53f597(0x136))/0x6*(-parseInt(_0x53f597(0x13c))/0x7)+parseInt(_0x53f597(0x133))/0x8+parseInt(_0x53f597(0x14a))/0x9*(parseInt(_0x53f597(0x12a))/0xa)+-parseInt(_0x53f597(0x129))/0xb*(parseInt(_0x53f597(0x12b))/0xc);if(_0x1db1f9===_0x476597)break;else _0x41efce['push'](_0x41efce['shift']());}catch(_0x1b97ab){_0x41efce['push'](_0x41efce['shift']());}}}(a0_0x27f9,0xebb88));import{describe,test,expect}from'@jest/globals';describe('Agent\x20Management\x20-\x20Imports',()=>{test('useAgents hook can be imported',async()=>{const _0x4c5209=a0_0x2583,{useAgents:_0x36bf9b}=await import(_0x4c5209(0x148));expect(_0x36bf9b)[_0x4c5209(0x135)](),expect(typeof _0x36bf9b)['toBe'](_0x4c5209(0x130));}),test('useAgents is default export',async()=>{const _0x76bdb9=a0_0x2583,module=await import(_0x76bdb9(0x148));expect(module[_0x76bdb9(0x141)])['toBeDefined'](),expect(typeof module['default'])['toBe']('function'),expect(module['default'])['toBe'](module[_0x76bdb9(0x120)]);});}),describe(a0_0xb37efe(0x140),()=>{const _0x5a7a82=a0_0xb37efe;test(_0x5a7a82(0x13e),async()=>{const _0x46bcd8=_0x5a7a82,{AGENT_MODE:_0x51bebc}=await import(_0x46bcd8(0x11e));expect(_0x51bebc)[_0x46bcd8(0x135)](),expect(_0x51bebc['CHAT'])[_0x46bcd8(0x14c)]('CHAT'),expect(_0x51bebc['AGENT'])['toBe']('AGENT');}),test('AGENT_STATUS\x20constants\x20are\x20defined',async()=>{const _0x4e15df=_0x5a7a82,{AGENT_STATUS:_0x445a3f}=await import(_0x4e15df(0x11e));expect(_0x445a3f)[_0x4e15df(0x135)](),expect(_0x445a3f[_0x4e15df(0x138)])['toBe'](_0x4e15df(0x124)),expect(_0x445a3f['PAUSED'])['toBe'](_0x4e15df(0x123)),expect(_0x445a3f[_0x4e15df(0x12f)])[_0x4e15df(0x14c)]('idle'),expect(_0x445a3f['ERROR'])[_0x4e15df(0x14c)]('error'),expect(_0x445a3f['ARCHIVED'])[_0x4e15df(0x14c)]('archived');}),test('Agent\x20API\x20endpoints\x20are\x20defined',async()=>{const _0x53de0c=_0x5a7a82,{API_ENDPOINTS:_0xe1780f}=await import(_0x53de0c(0x11e));expect(_0xe1780f['AGENTS_AVAILABLE'])[_0x53de0c(0x14c)](_0x53de0c(0x142)),expect(_0xe1780f['AGENTS_METADATA'])['toBe'](_0x53de0c(0x13b)),expect(_0xe1780f['AGENTS_IMPORT'])['toBe']('/api/agents/import'),expect(_0xe1780f[_0x53de0c(0x14b)])['toBe']('/api/agents/:agentId/mode'),expect(_0xe1780f['AGENTS_MODE_GET'])[_0x53de0c(0x14c)](_0x53de0c(0x12d)),expect(_0xe1780f['AGENTS_STOP'])[_0x53de0c(0x14c)]('/api/agents/:agentId/stop');}),test('AGENT_TEMPLATES\x20constants\x20are\x20defined',async()=>{const _0x1cb4e2=_0x5a7a82,{AGENT_TEMPLATES:_0x5af77a}=await import('../../config/constants.js');expect(_0x5af77a)['toBeDefined'](),expect(_0x5af77a[_0x1cb4e2(0x126)])[_0x1cb4e2(0x14c)](_0x1cb4e2(0x12c)),expect(_0x5af77a[_0x1cb4e2(0x13a)])['toBe'](_0x1cb4e2(0x139)),expect(_0x5af77a['CREATIVE_WRITER'])['toBe']('creative-writer'),expect(_0x5af77a['SYSTEM_ADMINISTRATOR'])['toBe'](_0x1cb4e2(0x128)),expect(_0x5af77a[_0x1cb4e2(0x149)])[_0x1cb4e2(0x14c)]('custom');});}),describe('Agent\x20Management\x20-\x20Integration',()=>{test('useAgents\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x3e2c2a=a0_0x2583,{useAgents:_0x18c336}=await import('../../state/useAgents.js'),{SessionManager:_0x493557}=await import('../../api/session.js'),{MessageRouter:_0x447cbe}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x9d6006}=await import('../../api/websocket.js'),_0x3d97d4=new _0x493557('localhost',0x1f90),_0x4bd7b8=new _0x9d6006('localhost',0x1f90),_0x3ac482=new _0x447cbe(_0x4bd7b8);expect(_0x3d97d4)[_0x3e2c2a(0x135)](),expect(_0x3ac482)['toBeDefined'](),expect(typeof _0x18c336)['toBe']('function');}),test('Full agent management stack can be imported together',async()=>{const _0x147d7b=a0_0x2583,[_0x526bc5,_0x26ce01,_0x320863,_0x5753b5,_0x195768]=await Promise[_0x147d7b(0x12e)]([import(_0x147d7b(0x11e)),import('../../api/session.js'),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import(_0x147d7b(0x148))]);expect(_0x526bc5[_0x147d7b(0x121)])[_0x147d7b(0x135)](),expect(_0x26ce01['SessionManager'])[_0x147d7b(0x135)](),expect(_0x320863[_0x147d7b(0x125)])[_0x147d7b(0x135)](),expect(_0x5753b5['MessageRouter'])['toBeDefined'](),expect(_0x195768['useAgents'])['toBeDefined']();});}),describe(a0_0xb37efe(0x134),()=>{const _0x31363e=a0_0xb37efe;test('All\x20agent\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x2ca650=a0_0x2583,{API_ENDPOINTS:_0x1d23a9}=await import(_0x2ca650(0x11e));expect(_0x1d23a9['AGENTS_AVAILABLE'])['toMatch'](/^\/api\/agents/),expect(_0x1d23a9[_0x2ca650(0x137)])['toMatch'](/^\/api\/agents/),expect(_0x1d23a9['AGENTS_IMPORT'])['toMatch'](/^\/api\/agents/),expect(_0x1d23a9['AGENTS_MODE_SET'])['toMatch'](/^\/api\/agents/),expect(_0x1d23a9[_0x2ca650(0x145)])['toMatch'](/^\/api\/agents/),expect(_0x1d23a9[_0x2ca650(0x143)])[_0x2ca650(0x132)](/^\/api\/agents/),expect(_0x1d23a9['AGENTS_METADATA'])['toContain'](_0x2ca650(0x146)),expect(_0x1d23a9[_0x2ca650(0x14b)])[_0x2ca650(0x144)](':agentId'),expect(_0x1d23a9['AGENTS_MODE_GET'])['toContain'](_0x2ca650(0x146)),expect(_0x1d23a9['AGENTS_STOP'])[_0x2ca650(0x144)](':agentId');}),test(_0x31363e(0x127),async()=>{const _0x5cdde3=_0x31363e,{API_ENDPOINTS:_0x218db8}=await import(_0x5cdde3(0x11e));expect(_0x218db8['ORCHESTRATOR'])[_0x5cdde3(0x135)](),expect(_0x218db8[_0x5cdde3(0x147)])[_0x5cdde3(0x14c)]('/api/orchestrator');});});
@@ -1 +1 @@
1
- const a0_0x358662=a0_0xee17;(function(_0xe9eee8,_0x18887b){const _0x4df07d=a0_0xee17,_0x47bfdc=_0xe9eee8();while(!![]){try{const _0x435efe=parseInt(_0x4df07d(0x190))/0x1+-parseInt(_0x4df07d(0x194))/0x2+-parseInt(_0x4df07d(0x18b))/0x3*(parseInt(_0x4df07d(0x185))/0x4)+parseInt(_0x4df07d(0x187))/0x5*(-parseInt(_0x4df07d(0x17c))/0x6)+-parseInt(_0x4df07d(0x18a))/0x7+parseInt(_0x4df07d(0x17f))/0x8+parseInt(_0x4df07d(0x18f))/0x9*(parseInt(_0x4df07d(0x181))/0xa);if(_0x435efe===_0x18887b)break;else _0x47bfdc['push'](_0x47bfdc['shift']());}catch(_0xf70cd6){_0x47bfdc['push'](_0x47bfdc['shift']());}}}(a0_0x5a7c,0x8340c));function a0_0xee17(_0x18e8a5,_0x165923){_0x18e8a5=_0x18e8a5-0x17c;const _0x5a7ca2=a0_0x5a7c();let _0xee1742=_0x5a7ca2[_0x18e8a5];if(a0_0xee17['NjqBVw']===undefined){var _0x3ea21c=function(_0x2c9258){const _0x9c98f3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x10839f='',_0x5ea5df='';for(let _0x778632=0x0,_0x5752f4,_0x43dad2,_0x2f8668=0x0;_0x43dad2=_0x2c9258['charAt'](_0x2f8668++);~_0x43dad2&&(_0x5752f4=_0x778632%0x4?_0x5752f4*0x40+_0x43dad2:_0x43dad2,_0x778632++%0x4)?_0x10839f+=String['fromCharCode'](0xff&_0x5752f4>>(-0x2*_0x778632&0x6)):0x0){_0x43dad2=_0x9c98f3['indexOf'](_0x43dad2);}for(let _0x18c61c=0x0,_0x1d48c5=_0x10839f['length'];_0x18c61c<_0x1d48c5;_0x18c61c++){_0x5ea5df+='%'+('00'+_0x10839f['charCodeAt'](_0x18c61c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5ea5df);};a0_0xee17['OFRGnJ']=_0x3ea21c,a0_0xee17['loFmrd']={},a0_0xee17['NjqBVw']=!![];}const _0x46250c=_0x5a7ca2[0x0],_0x5b439f=_0x18e8a5+_0x46250c,_0x48a0f1=a0_0xee17['loFmrd'][_0x5b439f];return!_0x48a0f1?(_0xee1742=a0_0xee17['OFRGnJ'](_0xee1742),a0_0xee17['loFmrd'][_0x5b439f]=_0xee1742):_0xee1742=_0x48a0f1,_0xee1742;}import{describe,test,expect}from'@jest/globals';function a0_0x5a7c(){const _0x32b0f9=['DxnLu3rHDgu','lI4VlI4Vy29TCg9Uzw50CY9tDgf0DxncyxiUANm','DxnLrwzMzwn0','nfLfz2T0ta','tgf5B3v0','nvjqyM9Jta','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','q29TCg9Uzw50ie1HBMfNzw1LBNqGlsbjBNrLz3jHDgLVBG','mZKXmJCYn1zLquTtrq','mtK4ntCYmxflz0TVqq','lI4VlI4Vy29TCg9Uzw50CY9jBNb1DejVEc5QCW','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','sgvHzgvY','oxPIAgrMqW','nJCWndC1C3DbAM9I','Dg9czurLzMLUzwq','lI4VlI4Vy29TCg9Uzw50CY9nzxnZywDLtgLZDc5QCW','lI4VlI4Vy29TCg9Uzw50CY9izwfKzxiUANm','mtqZodu4zvDPswfr','tgf5B3v0ignVBxbVBMvUDcbPBNrLz3jHDgvZihDPDgGGywXSihn0yxrLigHVB2TZ','Dg9czq','nJi0ntCWme5dt3PqAW','u3rHDhvZqMfY','zgvMyxvSDa','mtiZodu1mM5uthrNyW','zNvUy3rPB24','mJa0nJa2ntbYD3jYvhO'];a0_0x5a7c=function(){return _0x32b0f9;};return a0_0x5a7c();}describe('Component\x20Management\x20-\x20Imports',()=>{test('Layout component can be imported',async()=>{const _0x22a454=a0_0xee17,{Layout:_0x10839f}=await import(_0x22a454(0x18d));expect(_0x10839f)['toBeDefined'](),expect(typeof _0x10839f)[_0x22a454(0x196)](_0x22a454(0x180));}),test('Layout is default export',async()=>{const _0x25f4eb=a0_0xee17,module=await import(_0x25f4eb(0x18d));expect(module['default'])[_0x25f4eb(0x191)](),expect(typeof module['default'])['toBe'](_0x25f4eb(0x180)),expect(module['default'])['toBe'](module[_0x25f4eb(0x186)]);}),test('Header component can be imported',async()=>{const _0x1d32b6=a0_0xee17,{Header:_0x5ea5df}=await import('../../components/Header.js');expect(_0x5ea5df)[_0x1d32b6(0x191)](),expect(typeof _0x5ea5df)['toBe'](_0x1d32b6(0x180));}),test('Header is default export',async()=>{const _0x52630d=a0_0xee17,module=await import(_0x52630d(0x193));expect(module[_0x52630d(0x17e)])[_0x52630d(0x191)](),expect(module[_0x52630d(0x17e)])['toBe'](module[_0x52630d(0x18e)]);}),test('StatusBar component can be imported',async()=>{const _0x1f4f9a=a0_0xee17,{StatusBar:_0x778632}=await import(_0x1f4f9a(0x183));expect(_0x778632)['toBeDefined'](),expect(typeof _0x778632)['toBe']('function');}),test('StatusBar is default export',async()=>{const _0x4c06b1=a0_0xee17,module=await import(_0x4c06b1(0x183));expect(module[_0x4c06b1(0x17e)])[_0x4c06b1(0x191)](),expect(module[_0x4c06b1(0x17e)])[_0x4c06b1(0x196)](module['StatusBar']);}),test('MessageList component can be imported',async()=>{const _0x31eb48=a0_0xee17,{MessageList:_0x5752f4}=await import(_0x31eb48(0x192));expect(_0x5752f4)[_0x31eb48(0x191)](),expect(typeof _0x5752f4)['toBe'](_0x31eb48(0x180));}),test('MessageList is default export',async()=>{const _0x2fd414=a0_0xee17,module=await import('../../components/MessageList.js');expect(module[_0x2fd414(0x17e)])['toBeDefined'](),expect(module['default'])[_0x2fd414(0x196)](module['MessageList']);}),test('InputBox component can be imported',async()=>{const _0x4586f3=a0_0xee17,{InputBox:_0x43dad2}=await import(_0x4586f3(0x18c));expect(_0x43dad2)['toBeDefined'](),expect(typeof _0x43dad2)['toBe']('function');}),test('InputBox is default export',async()=>{const _0x42497b=a0_0xee17,module=await import(_0x42497b(0x18c));expect(module[_0x42497b(0x17e)])[_0x42497b(0x191)](),expect(module[_0x42497b(0x17e)])['toBe'](module['InputBox']);});}),describe(a0_0x358662(0x189),()=>{const _0x374915=a0_0x358662;test('All components can be imported together',async()=>{const _0x10d95d=a0_0xee17,[_0x2f8668,_0x18c61c,_0x1d48c5,_0x32990d,_0xd4a3c4]=await Promise['all']([import(_0x10d95d(0x18d)),import(_0x10d95d(0x193)),import(_0x10d95d(0x183)),import(_0x10d95d(0x192)),import(_0x10d95d(0x18c))]);expect(_0x2f8668[_0x10d95d(0x186)])['toBeDefined'](),expect(_0x18c61c['Header'])['toBeDefined'](),expect(_0x1d48c5[_0x10d95d(0x17d)])[_0x10d95d(0x191)](),expect(_0x32990d['MessageList'])[_0x10d95d(0x191)](),expect(_0xd4a3c4['InputBox'])['toBeDefined']();}),test(_0x374915(0x195),async()=>{const _0x2fa89e=_0x374915,{Layout:_0x2821c5}=await import('../../components/Layout.js'),{useConnection:_0x59fb32}=await import('../../state/useConnection.js'),{useAgents:_0x1311cf}=await import('../../state/useAgents.js'),{useMessages:_0x32cc9c}=await import('../../state/useMessages.js'),{useAgentControl:_0x55eae4}=await import('../../state/useAgentControl.js'),{useTools:_0x3a88f7}=await import(_0x2fa89e(0x188));expect(_0x2821c5)['toBeDefined'](),expect(_0x59fb32)[_0x2fa89e(0x191)](),expect(_0x1311cf)[_0x2fa89e(0x191)](),expect(_0x32cc9c)[_0x2fa89e(0x191)](),expect(_0x55eae4)['toBeDefined'](),expect(_0x3a88f7)[_0x2fa89e(0x191)]();});}),describe('Component\x20Management\x20-\x20React/Ink\x20Dependencies',()=>{test('Ink components can be imported',async()=>{const {Box:_0x2102e,Text:_0x3d7fdc}=await import('ink');expect(_0x2102e)['toBeDefined'](),expect(_0x3d7fdc)['toBeDefined']();}),test('React can be imported',async()=>{const _0x31d925=a0_0xee17,_0x254934=await import('react');expect(_0x254934['default'])['toBeDefined'](),expect(_0x254934[_0x31d925(0x182)])['toBeDefined'](),expect(_0x254934[_0x31d925(0x184)])['toBeDefined']();});});
1
+ (function(_0x413a48,_0x2091c1){const _0x3221c5=a0_0xc469,_0x3a4e35=_0x413a48();while(!![]){try{const _0x6dc8f5=parseInt(_0x3221c5(0x126))/0x1+-parseInt(_0x3221c5(0x124))/0x2+-parseInt(_0x3221c5(0x117))/0x3+-parseInt(_0x3221c5(0x12b))/0x4*(parseInt(_0x3221c5(0x12e))/0x5)+parseInt(_0x3221c5(0x123))/0x6*(-parseInt(_0x3221c5(0x129))/0x7)+parseInt(_0x3221c5(0x121))/0x8+-parseInt(_0x3221c5(0x11f))/0x9*(-parseInt(_0x3221c5(0x130))/0xa);if(_0x6dc8f5===_0x2091c1)break;else _0x3a4e35['push'](_0x3a4e35['shift']());}catch(_0x2ea085){_0x3a4e35['push'](_0x3a4e35['shift']());}}}(a0_0x210a,0xb1724));function a0_0x210a(){const _0x3b3b36=['DxnLu3rHDgu','tgf5B3v0','lI4VlI4VC3rHDguVDxnLqwDLBNrZlMPZ','sgvHzgvY','zgvMyxvSDa','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','sw5WDxrcB3G','mta5otCXzvjxDKP4','twvZC2fNzuXPC3q','otK3mdq2ng93uhL3tW','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','otyYnZzlAhP3sxK','mta4mZeZohfuB3D0yq','lI4VlI4VC3rHDguVDxnLqwDLBNrdB250CM9SlMPZ','mtqXndGZnM5Oz1DUDq','Dg9czq','Aw5R','ntC0wxDoug1l','DxnLrwzMzwn0','ndaWmZq5mMTHy1zurW','ywXS','zNvUy3rPB24','nujWwujpAa','lI4VlI4Vy29TCg9Uzw50CY9jBNb1DejVEc5QCW','mty3mezyvffQvG','Dg9czurLzMLUzwq','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','lI4VlI4Vy29TCg9Uzw50CY9izwfKzxiUANm','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','mZm1mda0ow5vqun0uq'];a0_0x210a=function(){return _0x3b3b36;};return a0_0x210a();}function a0_0xc469(_0x45f624,_0x211275){_0x45f624=_0x45f624-0x115;const _0x210afc=a0_0x210a();let _0xc469f=_0x210afc[_0x45f624];if(a0_0xc469['BcSHMZ']===undefined){var _0x45924c=function(_0x39bda3){const _0x339b79='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x442d9a='',_0x278384='';for(let _0x356102=0x0,_0x54d7fe,_0x207d2e,_0x16a3e2=0x0;_0x207d2e=_0x39bda3['charAt'](_0x16a3e2++);~_0x207d2e&&(_0x54d7fe=_0x356102%0x4?_0x54d7fe*0x40+_0x207d2e:_0x207d2e,_0x356102++%0x4)?_0x442d9a+=String['fromCharCode'](0xff&_0x54d7fe>>(-0x2*_0x356102&0x6)):0x0){_0x207d2e=_0x339b79['indexOf'](_0x207d2e);}for(let _0x484816=0x0,_0x571372=_0x442d9a['length'];_0x484816<_0x571372;_0x484816++){_0x278384+='%'+('00'+_0x442d9a['charCodeAt'](_0x484816)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x278384);};a0_0xc469['QIkKvn']=_0x45924c,a0_0xc469['FoDsBo']={},a0_0xc469['BcSHMZ']=!![];}const _0x58c4a2=_0x210afc[0x0],_0x1db42c=_0x45f624+_0x58c4a2,_0x2ef26a=a0_0xc469['FoDsBo'][_0x1db42c];return!_0x2ef26a?(_0xc469f=a0_0xc469['QIkKvn'](_0xc469f),a0_0xc469['FoDsBo'][_0x1db42c]=_0xc469f):_0xc469f=_0x2ef26a,_0xc469f;}import{describe,test,expect}from'@jest/globals';describe('Component\x20Management\x20-\x20Imports',()=>{test('Layout component can be imported',async()=>{const _0x39f42c=a0_0xc469,{Layout:_0x442d9a}=await import(_0x39f42c(0x122));expect(_0x442d9a)[_0x39f42c(0x131)](),expect(typeof _0x442d9a)[_0x39f42c(0x127)](_0x39f42c(0x12d));}),test('Layout is default export',async()=>{const _0x5e86d0=a0_0xc469,module=await import('../../components/Layout.js');expect(module['default'])['toBeDefined'](),expect(typeof module['default'])['toBe'](_0x5e86d0(0x12d)),expect(module[_0x5e86d0(0x11c)])[_0x5e86d0(0x127)](module[_0x5e86d0(0x119)]);}),test('Header component can be imported',async()=>{const _0x38be57=a0_0xc469,{Header:_0x278384}=await import(_0x38be57(0x115));expect(_0x278384)[_0x38be57(0x131)](),expect(typeof _0x278384)[_0x38be57(0x127)]('function');}),test('Header is default export',async()=>{const _0x2571c4=a0_0xc469,module=await import('../../components/Header.js');expect(module[_0x2571c4(0x11c)])['toBeDefined'](),expect(module[_0x2571c4(0x11c)])['toBe'](module['Header']);}),test('StatusBar component can be imported',async()=>{const _0x2b1a8b=a0_0xc469,{StatusBar:_0x356102}=await import('../../components/StatusBar.js');expect(_0x356102)[_0x2b1a8b(0x131)](),expect(typeof _0x356102)[_0x2b1a8b(0x127)]('function');}),test('StatusBar is default export',async()=>{const _0x21b6aa=a0_0xc469,module=await import('../../components/StatusBar.js');expect(module[_0x21b6aa(0x11c)])['toBeDefined'](),expect(module['default'])['toBe'](module['StatusBar']);}),test('MessageList component can be imported',async()=>{const _0x397ad1=a0_0xc469,{MessageList:_0x54d7fe}=await import('../../components/MessageList.js');expect(_0x54d7fe)['toBeDefined'](),expect(typeof _0x54d7fe)['toBe'](_0x397ad1(0x12d));}),test('MessageList is default export',async()=>{const _0x50b76d=a0_0xc469,module=await import('../../components/MessageList.js');expect(module[_0x50b76d(0x11c)])[_0x50b76d(0x131)](),expect(module['default'])[_0x50b76d(0x127)](module[_0x50b76d(0x120)]);}),test('InputBox component can be imported',async()=>{const _0x40a9e6=a0_0xc469,{InputBox:_0x207d2e}=await import('../../components/InputBox.js');expect(_0x207d2e)[_0x40a9e6(0x131)](),expect(typeof _0x207d2e)['toBe'](_0x40a9e6(0x12d));}),test('InputBox is default export',async()=>{const _0x28ff8a=a0_0xc469,module=await import('../../components/InputBox.js');expect(module['default'])[_0x28ff8a(0x131)](),expect(module[_0x28ff8a(0x11c)])[_0x28ff8a(0x127)](module['InputBox']);});}),describe('Component\x20Management\x20-\x20Integration',()=>{test('All components can be imported together',async()=>{const _0x1dcfb8=a0_0xc469,[_0x16a3e2,_0x484816,_0x571372,_0x11e301,_0x3d4e2b]=await Promise[_0x1dcfb8(0x12c)]([import(_0x1dcfb8(0x122)),import(_0x1dcfb8(0x115)),import('../../components/StatusBar.js'),import('../../components/MessageList.js'),import(_0x1dcfb8(0x12f))]);expect(_0x16a3e2[_0x1dcfb8(0x119)])['toBeDefined'](),expect(_0x484816[_0x1dcfb8(0x11b)])[_0x1dcfb8(0x131)](),expect(_0x571372['StatusBar'])[_0x1dcfb8(0x131)](),expect(_0x11e301['MessageList'])['toBeDefined'](),expect(_0x3d4e2b[_0x1dcfb8(0x11e)])['toBeDefined']();}),test('Layout\x20component\x20integrates\x20with\x20all\x20state\x20hooks',async()=>{const _0x3b805c=a0_0xc469,{Layout:_0x5809f1}=await import('../../components/Layout.js'),{useConnection:_0x1ac280}=await import(_0x3b805c(0x116)),{useAgents:_0x34986b}=await import(_0x3b805c(0x11a)),{useMessages:_0x3ddc56}=await import(_0x3b805c(0x132)),{useAgentControl:_0x5a7b36}=await import(_0x3b805c(0x125)),{useTools:_0x1f4fe8}=await import(_0x3b805c(0x11d));expect(_0x5809f1)['toBeDefined'](),expect(_0x1ac280)['toBeDefined'](),expect(_0x34986b)['toBeDefined'](),expect(_0x3ddc56)['toBeDefined'](),expect(_0x5a7b36)[_0x3b805c(0x131)](),expect(_0x1f4fe8)['toBeDefined']();});}),describe('Component\x20Management\x20-\x20React/Ink\x20Dependencies',()=>{test('Ink components can be imported',async()=>{const _0x39de45=a0_0xc469,{Box:_0x423c5c,Text:_0x4a24ee}=await import(_0x39de45(0x128));expect(_0x423c5c)['toBeDefined'](),expect(_0x4a24ee)['toBeDefined']();}),test('React can be imported',async()=>{const _0x22cc37=a0_0xc469,_0x4f092d=await import('react');expect(_0x4f092d[_0x22cc37(0x11c)])['toBeDefined'](),expect(_0x4f092d[_0x22cc37(0x118)])[_0x22cc37(0x131)](),expect(_0x4f092d[_0x22cc37(0x12a)])['toBeDefined']();});});
@@ -1 +1 @@
1
- const a0_0x51452a=a0_0x59db;(function(_0x3085fb,_0xf4f301){const _0x1118f9=a0_0x59db,_0x598d7e=_0x3085fb();while(!![]){try{const _0x252452=parseInt(_0x1118f9(0x1b0))/0x1*(-parseInt(_0x1118f9(0x1a3))/0x2)+-parseInt(_0x1118f9(0x1a7))/0x3+parseInt(_0x1118f9(0x1c6))/0x4*(parseInt(_0x1118f9(0x1a5))/0x5)+parseInt(_0x1118f9(0x1aa))/0x6*(parseInt(_0x1118f9(0x1b1))/0x7)+parseInt(_0x1118f9(0x1b2))/0x8+-parseInt(_0x1118f9(0x1a9))/0x9*(parseInt(_0x1118f9(0x1ce))/0xa)+parseInt(_0x1118f9(0x1a2))/0xb;if(_0x252452===_0xf4f301)break;else _0x598d7e['push'](_0x598d7e['shift']());}catch(_0x2cdd1b){_0x598d7e['push'](_0x598d7e['shift']());}}}(a0_0x1fe8,0x667df));function a0_0x1fe8(){const _0x18cddc=['Dg9mB3DLCKnHC2u','Cg93','u2vZC2LVBIbZDgf0zsbZAg91BgqGDhjHy2SGDMfSAwrPDhK','rxHWB25LBNrPywWGyMfJA29MzIbYzxnWzwn0CYbTyxGGzgvSyxK','Dg9czu51BgW','Bg9JywXOB3n0','C2vZC2LVBLzHBgLK','u2vZC2LVBK1HBMfNzxi','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','y29UBMvJDgvK','q09otKvdveve','y29UBMvJDgLUzW','BwLU','qKfds09grL9nvuXusvbmsuvs','q09otKvdveLptL9tvefuvvmGAxmGywXPyxmGzM9YienptK5fq1rjt05Fu1rbveu','uKvdt05orunux0nptKzjrW','mJa3nJG3ntLvsffhrwS','mtKXnZiYAfLAtNbq','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gq29UBMvJDgLVBIbtDgf0DxmGvhjHBNnPDgLVBNm','mtG3nJa1Ag5yAM1P','BgvUz3rO','mtG0odm1n2jUrLrmsG','DgvZDc1ZzxnZAw9UlteYmW','mtHlBvnmB0m','nJC0ndq4s0D6suzR','Dg9czurLzMLUzwq','zgvMyxvSDa','AxndB25Uzwn0zwq','q29UBMvJDgLVBIb1ChrPBwuGy2fUigjLihrYywnRzwq','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gu2vZC2LVBIbtDgf0zq','ofDgqKXgEG','n1DkwfPcuW','mtCXote4nevRuePoDq','CMvJB25Uzwn0Aw5N','zgLZy29UBMvJDgvK','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gtwf4ief0DgvTChrZieXPBwL0','zNvUy3rPB24','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','Dg9czuDYzwf0zxjuAgfU','v2vIu29JA2v0twfUywDLCG','uMvJB25Uzwn0Aw9Uigf0DgvTChrZignHBIbIzsb0CMfJA2vK','uMvJB25Uzwn0Aw9UihnOB3vSzcbZDg9WigfMDgvYig1HEcbHDhrLBxb0CW','q09otKvdveLorW','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','lI4VlI4VyxbPl3nLC3nPB24UANm','Dg9dB250ywLU','u2vZC2LVBIbZDgf0zsbZAg91BgqGAw52ywXPzgf0zq','su5jveLbtf9eruXbwq','reLtq09otKvdveve','BM93','Dxb0Aw1L','q09otKvdveLptL9tvefuvvm','mJbbyKj3vui','tufyx0fuvevnufrt','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','uKvdt05orunux0nptKzjrYb2ywX1zxmGyxjLihjLyxnVBMfIBgu','tufyx0rftefz','Dg9czq','q09otKvdveLptL9tvefuvvmGDMfSDwvZigfYzsbSB3DLCMnHC2uGC3rYAw5NCW','q29UBMvJDgLVBIbZDgf0DxmGDhjHBNnPDgLVBNmGzM9SBg93ihzHBgLKigzSB3C','mZaWmdGZmhHYqxPAvW','rxHWB25LBNrPywWGyMfJA29MzIbKzwXHEsbJywXJDwXHDgLVBIb3B3jRCYbJB3jYzwn0BhK'];a0_0x1fe8=function(){return _0x18cddc;};return a0_0x1fe8();}function a0_0x59db(_0x58faee,_0x3c608f){_0x58faee=_0x58faee-0x19f;const _0x1fe85c=a0_0x1fe8();let _0x59dbba=_0x1fe85c[_0x58faee];if(a0_0x59db['YfEFIH']===undefined){var _0x113608=function(_0x17af62){const _0x52d83b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3ceeb2='',_0x240f01='';for(let _0xbb9080=0x0,_0x258bc1,_0x2d40e3,_0x2f3f12=0x0;_0x2d40e3=_0x17af62['charAt'](_0x2f3f12++);~_0x2d40e3&&(_0x258bc1=_0xbb9080%0x4?_0x258bc1*0x40+_0x2d40e3:_0x2d40e3,_0xbb9080++%0x4)?_0x3ceeb2+=String['fromCharCode'](0xff&_0x258bc1>>(-0x2*_0xbb9080&0x6)):0x0){_0x2d40e3=_0x52d83b['indexOf'](_0x2d40e3);}for(let _0x5c7668=0x0,_0x54cba8=_0x3ceeb2['length'];_0x5c7668<_0x54cba8;_0x5c7668++){_0x240f01+='%'+('00'+_0x3ceeb2['charCodeAt'](_0x5c7668)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x240f01);};a0_0x59db['UPXLsM']=_0x113608,a0_0x59db['inMHXh']={},a0_0x59db['YfEFIH']=!![];}const _0x320574=_0x1fe85c[0x0],_0x2e8dac=_0x58faee+_0x320574,_0xd5401a=a0_0x59db['inMHXh'][_0x2e8dac];return!_0xd5401a?(_0x59dbba=a0_0x59db['UPXLsM'](_0x59dbba),a0_0x59db['inMHXh'][_0x2e8dac]=_0x59dbba):_0x59dbba=_0xd5401a,_0x59dbba;}import{describe,test,expect}from'@jest/globals';describe('Connection\x20Management\x20-\x20Imports',()=>{test('useConnection hook can be imported',async()=>{const _0xbcfe26=a0_0x59db,{useConnection:_0x3ceeb2}=await import(_0xbcfe26(0x1d8));expect(_0x3ceeb2)[_0xbcfe26(0x1ab)](),expect(typeof _0x3ceeb2)[_0xbcfe26(0x1cb)]('function');}),test('useConnection is default export',async()=>{const _0x4b5602=a0_0x59db,module=await import('../../state/useConnection.js');expect(module[_0x4b5602(0x1ac)])[_0x4b5602(0x1ab)](),expect(typeof module['default'])['toBe'](_0x4b5602(0x1b6)),expect(module['default'])[_0x4b5602(0x1cb)](module['useConnection']);});}),describe(a0_0x51452a(0x1bd),()=>{const _0x3f8bf6=a0_0x51452a;test('CONNECTION_STATUS\x20constants\x20are\x20defined',async()=>{const _0x54dedb=a0_0x59db,{CONNECTION_STATUS:_0x240f01}=await import(_0x54dedb(0x1b7));expect(_0x240f01)[_0x54dedb(0x1ab)](),expect(_0x240f01['CONNECTING'])['toBe']('connecting'),expect(_0x240f01['CONNECTED'])['toBe'](_0x54dedb(0x1d9)),expect(_0x240f01['DISCONNECTED'])[_0x54dedb(0x1cb)]('disconnected'),expect(_0x240f01['RECONNECTING'])[_0x54dedb(0x1cb)](_0x54dedb(0x1b3));}),test(_0x3f8bf6(0x1a0),async()=>{const _0x1da791=_0x3f8bf6,{CONNECTION_STATUS:_0xbb9080,CONNECTION_STATE:_0x258bc1}=await import(_0x1da791(0x1b7));expect(_0xbb9080)['toBe'](_0x258bc1);}),test('RECONNECT_CONFIG\x20constants\x20are\x20defined',async()=>{const _0x49e13e=_0x3f8bf6,{RECONNECT_CONFIG:_0x2d40e3}=await import(_0x49e13e(0x1b7));expect(_0x2d40e3)['toBeDefined'](),expect(_0x2d40e3[_0x49e13e(0x1c1)])[_0x49e13e(0x1ab)](),expect(_0x2d40e3['MAX_DELAY'])[_0x49e13e(0x1ab)](),expect(_0x2d40e3[_0x49e13e(0x19f)])['toBeDefined'](),expect(_0x2d40e3['MAX_ATTEMPTS'])['toBeDefined']();}),test(_0x3f8bf6(0x1c9),async()=>{const _0x40e363=_0x3f8bf6,{RECONNECT_CONFIG:_0x2f3f12}=await import(_0x40e363(0x1b7));expect(_0x2f3f12[_0x40e363(0x1c1)])['toBeGreaterThan'](0x0),expect(_0x2f3f12['MAX_DELAY'])[_0x40e363(0x1b8)](_0x2f3f12[_0x40e363(0x1c1)]),expect(_0x2f3f12[_0x40e363(0x19f)])[_0x40e363(0x1b8)](0x1),expect(_0x2f3f12[_0x40e363(0x1c7)])['toBeGreaterThan'](0x0);});}),describe('Connection\x20Management\x20-\x20Integration',()=>{test('useConnection\x20hook\x20integrates\x20with\x20SessionManager\x20and\x20WebSocketManager',async()=>{const _0x40a440=a0_0x59db,{useConnection:_0x5c7668}=await import('../../state/useConnection.js'),{SessionManager:_0x54cba8}=await import(_0x40a440(0x1be)),{WebSocketManager:_0x3485ba}=await import('../../api/websocket.js'),_0x4b82ee=new _0x54cba8(_0x40a440(0x1d5),0x1f90),_0x4b2f5a=new _0x3485ba(_0x40a440(0x1d5),0x1f90);expect(_0x4b82ee)[_0x40a440(0x1ab)](),expect(_0x4b2f5a)[_0x40a440(0x1ab)](),expect(typeof _0x5c7668)[_0x40a440(0x1cb)]('function');}),test('Full connection stack can be imported together',async()=>{const _0x21340e=a0_0x59db,[_0x3d4d8f,_0x294428,_0x3bdc8b,_0x3eef55]=await Promise['all']([import(_0x21340e(0x1b7)),import('../../api/session.js'),import('../../api/websocket.js'),import('../../state/useConnection.js')]);expect(_0x3d4d8f[_0x21340e(0x1c5)])['toBeDefined'](),expect(_0x3d4d8f[_0x21340e(0x1a1)])[_0x21340e(0x1ab)](),expect(_0x294428[_0x21340e(0x1d7)])['toBeDefined'](),expect(_0x3bdc8b[_0x21340e(0x1b9)])['toBeDefined'](),expect(_0x3eef55['useConnection'])['toBeDefined']();});}),describe(a0_0x51452a(0x1c8),()=>{test('useConnection\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x1a3faf=a0_0x59db,{useConnection:_0x2b1341}=await import('../../state/useConnection.js');expect(_0x2b1341[_0x1a3faf(0x1a6)])[_0x1a3faf(0x1cb)](0x2);});}),describe('Connection\x20Management\x20-\x20Status\x20Values',()=>{const _0x2dba6f=a0_0x51452a;test(_0x2dba6f(0x1cc),async()=>{const _0xec2d76=_0x2dba6f,{CONNECTION_STATUS:_0x1a1b9a}=await import('../../config/constants.js');expect(typeof _0x1a1b9a[_0xec2d76(0x1bc)])[_0xec2d76(0x1cb)]('string'),expect(typeof _0x1a1b9a[_0xec2d76(0x1da)])[_0xec2d76(0x1cb)]('string'),expect(typeof _0x1a1b9a[_0xec2d76(0x1c2)])[_0xec2d76(0x1cb)]('string'),expect(typeof _0x1a1b9a['RECONNECTING'])['toBe']('string'),expect(_0x1a1b9a['CONNECTING'])[_0xec2d76(0x1cb)](_0x1a1b9a[_0xec2d76(0x1bc)][_0xec2d76(0x1d0)]()),expect(_0x1a1b9a[_0xec2d76(0x1da)])['toBe'](_0x1a1b9a['CONNECTED'][_0xec2d76(0x1d0)]());}),test('CONNECTION_STATUS\x20has\x20all\x20required\x20states',async()=>{const _0x3eb51c=_0x2dba6f,{CONNECTION_STATUS:_0x212ca4}=await import('../../config/constants.js'),_0x22fcc9=Object['keys'](_0x212ca4);expect(_0x22fcc9)[_0x3eb51c(0x1bf)](_0x3eb51c(0x1bc)),expect(_0x22fcc9)[_0x3eb51c(0x1bf)](_0x3eb51c(0x1da)),expect(_0x22fcc9)['toContain'](_0x3eb51c(0x1c2)),expect(_0x22fcc9)['toContain']('RECONNECTING');});}),describe('Connection\x20Management\x20-\x20Exponential\x20Backoff\x20Logic',()=>{const _0x3d4090=a0_0x51452a;test(_0x3d4090(0x1cf),async()=>{const _0x47ada5=_0x3d4090,{RECONNECT_CONFIG:_0x1bfc5c}=await import(_0x47ada5(0x1b7)),_0x1fa931=_0x42a05d=>{const _0x1196ea=_0x47ada5;return Math[_0x1196ea(0x1dc)](_0x1bfc5c[_0x1196ea(0x1c1)]*Math['pow'](_0x1bfc5c[_0x1196ea(0x19f)],_0x42a05d),_0x1bfc5c['MAX_DELAY']);},_0x3dadd2=_0x1fa931(0x0),_0x59297b=_0x1fa931(0x1),_0x441357=_0x1fa931(0x2);expect(_0x3dadd2)['toBe'](_0x1bfc5c[_0x47ada5(0x1c1)]),expect(_0x59297b)[_0x47ada5(0x1b8)](_0x3dadd2),expect(_0x441357)['toBeGreaterThan'](_0x59297b);}),test(_0x3d4090(0x1d3),async()=>{const _0x17d5ee=_0x3d4090,{RECONNECT_CONFIG:_0x124432}=await import(_0x17d5ee(0x1b7)),_0x55f3cb=_0x556273=>{const _0x508c65=_0x17d5ee;return Math[_0x508c65(0x1dc)](_0x124432['INITIAL_DELAY']*Math[_0x508c65(0x1d1)](_0x124432[_0x508c65(0x19f)],_0x556273),_0x124432[_0x508c65(0x1ca)]);},_0x57687f=_0x55f3cb(0x64);expect(_0x57687f)[_0x17d5ee(0x1cb)](_0x124432[_0x17d5ee(0x1ca)]),expect(_0x57687f)['toBeLessThanOrEqual'](_0x124432['MAX_DELAY']);});}),describe(a0_0x51452a(0x1af),()=>{const _0x6641cc=a0_0x51452a;test(_0x6641cc(0x1d2),async()=>{const _0x248f24=_0x6641cc;let _0x5b7f70=null,_0x2c6e6b=![],_0x38b190=null;_0x5b7f70=_0x248f24(0x1a8),_0x2c6e6b=!![],_0x38b190=Date[_0x248f24(0x1c3)]()+0x36ee80,expect(_0x5b7f70)['toBeDefined'](),expect(_0x2c6e6b)['toBe'](!![]),expect(_0x38b190)[_0x248f24(0x1b8)](Date[_0x248f24(0x1c3)]());}),test(_0x6641cc(0x1c0),async()=>{const _0x1ac107=_0x6641cc;let _0xcb6f5b='test-session-123',_0x10bda5=!![];_0xcb6f5b=null,_0x10bda5=![],expect(_0xcb6f5b)[_0x1ac107(0x1d4)](),expect(_0x10bda5)['toBe'](![]);});}),describe('Connection\x20Management\x20-\x20Connection\x20Metrics',()=>{const _0x479314=a0_0x51452a;test(_0x479314(0x1ae),async()=>{const _0x3aa9bc=_0x479314,_0x37e43d=Date[_0x3aa9bc(0x1c3)]();await new Promise(_0x13dda3=>setTimeout(_0x13dda3,0x64));const _0x46e30e=Date[_0x3aa9bc(0x1c3)]()-_0x37e43d;expect(_0x46e30e)['toBeGreaterThan'](0x0),expect(_0x46e30e)['toBeGreaterThanOrEqual'](0x64);}),test('Connection\x20metrics\x20track\x20timestamps',async()=>{const _0x360585=_0x479314,_0x2ca6cb=Date['now']();await new Promise(_0x18d473=>setTimeout(_0x18d473,0x32));const _0x54145d=Date['now']();expect(_0x2ca6cb)['toBeDefined'](),expect(_0x54145d)['toBeDefined'](),expect(_0x54145d)[_0x360585(0x1b8)](_0x2ca6cb);}),test(_0x479314(0x1ba),async()=>{let _0x42e665=0x0;_0x42e665+=0x1,expect(_0x42e665)['toBe'](0x1),_0x42e665+=0x1,expect(_0x42e665)['toBe'](0x2),_0x42e665=0x0,expect(_0x42e665)['toBe'](0x0);});}),describe(a0_0x51452a(0x1a4),()=>{const _0x5a8a54=a0_0x51452a;test(_0x5a8a54(0x1cd),async()=>{const _0x1eb37b=_0x5a8a54,{CONNECTION_STATUS:_0x1835fc}=await import('../../config/constants.js');let _0x3e7e66=_0x1835fc['DISCONNECTED'];expect(_0x3e7e66)['toBe'](_0x1eb37b(0x1b4)),_0x3e7e66=_0x1835fc['CONNECTING'],expect(_0x3e7e66)[_0x1eb37b(0x1cb)](_0x1eb37b(0x1db)),_0x3e7e66=_0x1835fc[_0x1eb37b(0x1da)],expect(_0x3e7e66)['toBe'](_0x1eb37b(0x1d9)),_0x3e7e66=_0x1835fc['DISCONNECTED'],expect(_0x3e7e66)[_0x1eb37b(0x1cb)](_0x1eb37b(0x1b4)),_0x3e7e66=_0x1835fc['RECONNECTING'],expect(_0x3e7e66)[_0x1eb37b(0x1cb)](_0x1eb37b(0x1b3)),_0x3e7e66=_0x1835fc[_0x1eb37b(0x1da)],expect(_0x3e7e66)['toBe'](_0x1eb37b(0x1d9));});}),describe('Connection\x20Management\x20-\x20WebSocket\x20Event\x20Integration',()=>{test('WebSocketManager\x20has\x20event\x20emitter\x20methods',async()=>{const _0x1835d1=a0_0x59db,{WebSocketManager:_0x4299a9}=await import('../../api/websocket.js'),_0x18b7cb=new _0x4299a9('localhost',0x1f90);expect(_0x18b7cb['on'])[_0x1835d1(0x1ab)](),expect(_0x18b7cb['off'])[_0x1835d1(0x1ab)](),expect(typeof _0x18b7cb['on'])['toBe'](_0x1835d1(0x1b6)),expect(typeof _0x18b7cb['off'])['toBe'](_0x1835d1(0x1b6));});}),describe(a0_0x51452a(0x1b5),()=>{const _0x102302=a0_0x51452a;test(_0x102302(0x1bb),async()=>{const _0xe56077=_0x102302,{RECONNECT_CONFIG:_0xedbfcc}=await import('../../config/constants.js');let _0x402ebc=0x0;for(let _0x1df9df=0x0;_0x1df9df<_0xedbfcc['MAX_ATTEMPTS']+0x5;_0x1df9df++){if(_0x402ebc<_0xedbfcc['MAX_ATTEMPTS'])_0x402ebc+=0x1;else break;}expect(_0x402ebc)['toBe'](_0xedbfcc[_0xe56077(0x1c7)]),expect(_0x402ebc)['toBeLessThanOrEqual'](_0xedbfcc[_0xe56077(0x1c7)]);});}),describe('Connection\x20Management\x20-\x20Connection\x20Info',()=>{test('Connection\x20info\x20should\x20contain\x20all\x20metrics',async()=>{const _0x5f3bb0=a0_0x59db,{CONNECTION_STATUS:_0x42eed1}=await import('../../config/constants.js'),_0x9d269={'status':_0x42eed1['CONNECTED'],'isConnected':!![],'isReconnecting':![],'sessionId':'test-session-123','sessionValid':!![],'sessionExpiration':Date['now']()+0x36ee80,'uptime':0x1388,'lastConnectedAt':Date['now']()-0x1388,'lastDisconnectedAt':null,'reconnectAttempts':0x0};expect(_0x9d269['status'])[_0x5f3bb0(0x1ab)](),expect(_0x9d269[_0x5f3bb0(0x1ad)])['toBe'](!![]),expect(_0x9d269['isReconnecting'])[_0x5f3bb0(0x1cb)](![]),expect(_0x9d269['sessionId'])['toBeDefined'](),expect(_0x9d269[_0x5f3bb0(0x1d6)])[_0x5f3bb0(0x1cb)](!![]),expect(_0x9d269[_0x5f3bb0(0x1c4)])['toBeGreaterThan'](0x0);});});
1
+ const a0_0x3416bd=a0_0x5cfd;(function(_0x2a4340,_0x560b77){const _0x56299e=a0_0x5cfd,_0xa1acb3=_0x2a4340();while(!![]){try{const _0x173114=-parseInt(_0x56299e(0x1b7))/0x1*(-parseInt(_0x56299e(0x185))/0x2)+-parseInt(_0x56299e(0x1bb))/0x3*(-parseInt(_0x56299e(0x1ba))/0x4)+parseInt(_0x56299e(0x1c2))/0x5+-parseInt(_0x56299e(0x1a4))/0x6*(parseInt(_0x56299e(0x1a6))/0x7)+-parseInt(_0x56299e(0x18a))/0x8*(parseInt(_0x56299e(0x1a8))/0x9)+-parseInt(_0x56299e(0x18d))/0xa*(-parseInt(_0x56299e(0x192))/0xb)+-parseInt(_0x56299e(0x1a5))/0xc;if(_0x173114===_0x560b77)break;else _0xa1acb3['push'](_0xa1acb3['shift']());}catch(_0xd3b69b){_0xa1acb3['push'](_0xa1acb3['shift']());}}}(a0_0x141b,0xd0df3));function a0_0x5cfd(_0x320691,_0x35d226){_0x320691=_0x320691-0x17e;const _0x141b57=a0_0x141b();let _0x5cfdd5=_0x141b57[_0x320691];if(a0_0x5cfd['YrQWJf']===undefined){var _0x17a8a3=function(_0x2a27e5){const _0x8dc14='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2b0947='',_0x5c2acf='';for(let _0x733a03=0x0,_0x145024,_0xd763ea,_0x1bb099=0x0;_0xd763ea=_0x2a27e5['charAt'](_0x1bb099++);~_0xd763ea&&(_0x145024=_0x733a03%0x4?_0x145024*0x40+_0xd763ea:_0xd763ea,_0x733a03++%0x4)?_0x2b0947+=String['fromCharCode'](0xff&_0x145024>>(-0x2*_0x733a03&0x6)):0x0){_0xd763ea=_0x8dc14['indexOf'](_0xd763ea);}for(let _0x1c6c77=0x0,_0x13a4b1=_0x2b0947['length'];_0x1c6c77<_0x13a4b1;_0x1c6c77++){_0x5c2acf+='%'+('00'+_0x2b0947['charCodeAt'](_0x1c6c77)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5c2acf);};a0_0x5cfd['CDgXot']=_0x17a8a3,a0_0x5cfd['MfUxfD']={},a0_0x5cfd['YrQWJf']=!![];}const _0x5df4d8=_0x141b57[0x0],_0x221231=_0x320691+_0x5df4d8,_0x2941bc=a0_0x5cfd['MfUxfD'][_0x221231];return!_0x2941bc?(_0x5cfdd5=a0_0x5cfd['CDgXot'](_0x5cfdd5),a0_0x5cfd['MfUxfD'][_0x221231]=_0x5cfdd5):_0x5cfdd5=_0x2941bc,_0x5cfdd5;}function a0_0x141b(){const _0xee74b4=['Dxb0Aw1L','BwLU','Dg9czq','nZm5oduWmhLKqwLKvG','DxnLq29UBMvJDgLVBG','Bg9JywXOB3n0','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','lI4VlI4VyxbPl3nLC3nPB24UANm','q29UBMvJDgLVBIbPBMzVihnOB3vSzcbJB250ywLUigfSBcbTzxrYAwnZ','su5jveLbtf9eruXbwq','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','B2zM','nJqXmJjSy0P1EvO','q29UBMvJDgLVBIb1ChrPBwuGy2fUigjLihrYywnRzwq','u2vZC2LVBK1HBMfNzxi','CMvJB25Uzwn0Aw5N','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','ofbetwXVuq','uKvdt05orunux0nptKzjrYb2ywX1zxmGyxjLihjLyxnVBMfIBgu','uMvJB25Uzwn0Aw9UihnOB3vSzcbZDg9WigfMDgvYig1HEcbHDhrLBxb0CW','mti4mdCXmg13rLvYwq','Dg9czu51BgW','uKvdt05orunux0nptKzjrYbJB25ZDgfUDhmGyxjLigrLzMLUzwq','AxnszwnVBM5Ly3rPBMC','A2v5CW','mJj0BKreshy','Dg9czurLzMLUzwq','Dg9czuXLC3nuAgfUt3jfCxvHBa','ywXS','DxnLq29UBMvJDgLVBIbYzxr1CM5Zigv4CgvJDgvKigLUDgvYzMfJzsbZAgfWzq','C3rYAw5N','zgLZy29UBMvJDgvK','y29UBMvJDgvK','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gtwf4ief0DgvTChrZieXPBwL0','q09otKvdveLptL9tvefuvvmGDMfSDwvZigfYzsbSB3DLCMnHC2uGC3rYAw5NCW','C2vZC2LVBKLK','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','reLtq09otKvdveve','uKvdt05orunux0nptKzjrW','q29UBMvJDgLVBIbZDgf0DxmGDhjHBNnPDgLVBNmGzM9SBg93ihzHBgLKigzSB3C','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','zNvUy3rPB24','v2vIu29JA2v0twfUywDLCG','ndG2BwzTvw9g','otG5mJiXmMTJsgPbzW','mteYmJH3z1nNv1m','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','mJu5nJu4mxHxt2Lqua','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','q09otKvdveLorW','uKvdt05orunusu5h','tufyx0rftefz','tufyx0fuvevnufrt','qKfds09grL9nvuXusvbmsuvs','uMvJB25Uzwn0Aw9Uigf0DgvTChrZignHBIbIzsb0CMfJA2vK','q29UBMvJDgLVBIbTzxrYAwnZihrYywnRihrPBwvZDgfTChm','Dg9czuDYzwf0zxjuAgfU','BM93','q29UBMvJDgLVBIbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','zgvMyxvSDa','y29UBMvJDgLUzW','DgvZDc1ZzxnZAw9UlteYmW','n2riz0vWyG','q09otKvdveLptL9tvefuvvmGAxmGywXPyxmGzM9YienptK5fq1rjt05Fu1rbveu','Dg9mB3DLCKnHC2u','nZzoAhviBLK','mJe3otHAzffjvxG','q09otKvdveLptL9tvefuvvmGAgfZigfSBcbYzxf1AxjLzcbZDgf0zxm','Dg9dB250ywLU','q09otKvdveve'];a0_0x141b=function(){return _0xee74b4;};return a0_0x141b();}import{describe,test,expect}from'@jest/globals';describe(a0_0x3416bd(0x183),()=>{test('useConnection hook can be imported',async()=>{const _0x4e2f28=a0_0x5cfd,{useConnection:_0x2b0947}=await import(_0x4e2f28(0x189));expect(_0x2b0947)['toBeDefined'](),expect(typeof _0x2b0947)[_0x4e2f28(0x1c1)](_0x4e2f28(0x1a2));}),test('useConnection is default export',async()=>{const _0x2aad11=a0_0x5cfd,module=await import(_0x2aad11(0x189));expect(module['default'])['toBeDefined'](),expect(typeof module[_0x2aad11(0x1b4)])[_0x2aad11(0x1c1)](_0x2aad11(0x1a2)),expect(module[_0x2aad11(0x1b4)])['toBe'](module['useConnection']);});}),describe(a0_0x3416bd(0x1a9),()=>{const _0x50689b=a0_0x3416bd;test('CONNECTION_STATUS\x20constants\x20are\x20defined',async()=>{const _0x48de5e=a0_0x5cfd,{CONNECTION_STATUS:_0x5c2acf}=await import(_0x48de5e(0x1a1));expect(_0x5c2acf)[_0x48de5e(0x193)](),expect(_0x5c2acf['CONNECTING'])['toBe'](_0x48de5e(0x1b5)),expect(_0x5c2acf[_0x48de5e(0x1be)])['toBe']('connected'),expect(_0x5c2acf['DISCONNECTED'])['toBe']('disconnected'),expect(_0x5c2acf['RECONNECTING'])['toBe'](_0x48de5e(0x188));}),test(_0x50689b(0x1b8),async()=>{const _0x40f899=_0x50689b,{CONNECTION_STATUS:_0x733a03,CONNECTION_STATE:_0x145024}=await import('../../config/constants.js');expect(_0x733a03)[_0x40f899(0x1c1)](_0x145024);}),test(_0x50689b(0x18f),async()=>{const _0x17f05f=_0x50689b,{RECONNECT_CONFIG:_0xd763ea}=await import(_0x17f05f(0x1a1));expect(_0xd763ea)['toBeDefined'](),expect(_0xd763ea['INITIAL_DELAY'])[_0x17f05f(0x193)](),expect(_0xd763ea['MAX_DELAY'])[_0x17f05f(0x193)](),expect(_0xd763ea['BACKOFF_MULTIPLIER'])[_0x17f05f(0x193)](),expect(_0xd763ea['MAX_ATTEMPTS'])['toBeDefined']();}),test(_0x50689b(0x18b),async()=>{const _0x478bd5=_0x50689b,{RECONNECT_CONFIG:_0x1bb099}=await import('../../config/constants.js');expect(_0x1bb099[_0x478bd5(0x182)])['toBeGreaterThan'](0x0),expect(_0x1bb099[_0x478bd5(0x1ac)])['toBeGreaterThan'](_0x1bb099[_0x478bd5(0x182)]),expect(_0x1bb099['BACKOFF_MULTIPLIER'])['toBeGreaterThan'](0x1),expect(_0x1bb099[_0x478bd5(0x1ad)])[_0x478bd5(0x1b1)](0x0);});}),describe(a0_0x3416bd(0x1a7),()=>{test('useConnection\x20hook\x20integrates\x20with\x20SessionManager\x20and\x20WebSocketManager',async()=>{const _0x24c3fc=a0_0x5cfd,{useConnection:_0x1c6c77}=await import(_0x24c3fc(0x189)),{SessionManager:_0x13a4b1}=await import(_0x24c3fc(0x180)),{WebSocketManager:_0x52dc67}=await import('../../api/websocket.js'),_0x44bf7a=new _0x13a4b1('localhost',0x1f90),_0x48b7ae=new _0x52dc67(_0x24c3fc(0x17e),0x1f90);expect(_0x44bf7a)['toBeDefined'](),expect(_0x48b7ae)['toBeDefined'](),expect(typeof _0x1c6c77)['toBe']('function');}),test('Full connection stack can be imported together',async()=>{const _0x5b6511=a0_0x5cfd,[_0x1310d7,_0x5b30f9,_0x5aa21c,_0x39d976]=await Promise[_0x5b6511(0x195)]([import('../../config/constants.js'),import('../../api/session.js'),import('../../api/websocket.js'),import('../../state/useConnection.js')]);expect(_0x1310d7['CONNECTION_STATUS'])[_0x5b6511(0x193)](),expect(_0x1310d7[_0x5b6511(0x19f)])['toBeDefined'](),expect(_0x5b30f9[_0x5b6511(0x187)])[_0x5b6511(0x193)](),expect(_0x5aa21c[_0x5b6511(0x1a3)])['toBeDefined'](),expect(_0x39d976[_0x5b6511(0x1c3)])['toBeDefined']();});}),describe(a0_0x3416bd(0x1b3),()=>{const _0x334db3=a0_0x3416bd;test(_0x334db3(0x196),async()=>{const _0x215287=_0x334db3,{useConnection:_0x45b6e1}=await import(_0x215287(0x189));expect(_0x45b6e1['length'])['toBe'](0x2);});}),describe('Connection\x20Management\x20-\x20Status\x20Values',()=>{const _0x363309=a0_0x3416bd;test(_0x363309(0x19b),async()=>{const _0x136ebe=_0x363309,{CONNECTION_STATUS:_0x264a9c}=await import('../../config/constants.js');expect(typeof _0x264a9c[_0x136ebe(0x1aa)])['toBe']('string'),expect(typeof _0x264a9c['CONNECTED'])['toBe'](_0x136ebe(0x197)),expect(typeof _0x264a9c[_0x136ebe(0x19e)])['toBe']('string'),expect(typeof _0x264a9c[_0x136ebe(0x1ab)])[_0x136ebe(0x1c1)]('string'),expect(_0x264a9c['CONNECTING'])['toBe'](_0x264a9c['CONNECTING'][_0x136ebe(0x1b9)]()),expect(_0x264a9c[_0x136ebe(0x1be)])['toBe'](_0x264a9c['CONNECTED'][_0x136ebe(0x1b9)]());}),test(_0x363309(0x1bc),async()=>{const _0x58fd1a=_0x363309,{CONNECTION_STATUS:_0x2e8928}=await import('../../config/constants.js'),_0x2be042=Object[_0x58fd1a(0x191)](_0x2e8928);expect(_0x2be042)[_0x58fd1a(0x1bd)]('CONNECTING'),expect(_0x2be042)[_0x58fd1a(0x1bd)](_0x58fd1a(0x1be)),expect(_0x2be042)['toContain'](_0x58fd1a(0x19e)),expect(_0x2be042)['toContain']('RECONNECTING');});}),describe('Connection\x20Management\x20-\x20Exponential\x20Backoff\x20Logic',()=>{test('Exponential\x20backoff\x20delay\x20calculation\x20works\x20correctly',async()=>{const _0x2a5d32=a0_0x5cfd,{RECONNECT_CONFIG:_0x59b550}=await import('../../config/constants.js'),_0x43f9f2=_0x12ac24=>{const _0x530eed=a0_0x5cfd;return Math['min'](_0x59b550[_0x530eed(0x182)]*Math['pow'](_0x59b550['BACKOFF_MULTIPLIER'],_0x12ac24),_0x59b550['MAX_DELAY']);},_0x521ad3=_0x43f9f2(0x0),_0x67a80=_0x43f9f2(0x1),_0x4d1dda=_0x43f9f2(0x2);expect(_0x521ad3)[_0x2a5d32(0x1c1)](_0x59b550[_0x2a5d32(0x182)]),expect(_0x67a80)[_0x2a5d32(0x1b1)](_0x521ad3),expect(_0x4d1dda)['toBeGreaterThan'](_0x67a80);}),test('Exponential\x20backoff\x20respects\x20max\x20delay',async()=>{const _0x3c12af=a0_0x5cfd,{RECONNECT_CONFIG:_0x58f7ee}=await import(_0x3c12af(0x1a1)),_0x2a348e=_0x5170cd=>{const _0x2220e7=_0x3c12af;return Math[_0x2220e7(0x1c0)](_0x58f7ee[_0x2220e7(0x182)]*Math['pow'](_0x58f7ee[_0x2220e7(0x1ae)],_0x5170cd),_0x58f7ee['MAX_DELAY']);},_0x58a079=_0x2a348e(0x64);expect(_0x58a079)['toBe'](_0x58f7ee[_0x3c12af(0x1ac)]),expect(_0x58a079)['toBeLessThanOrEqual'](_0x58f7ee[_0x3c12af(0x1ac)]);});}),describe('Connection\x20Management\x20-\x20Session\x20State',()=>{test('Session\x20state\x20should\x20track\x20validity',async()=>{const _0x399c41=a0_0x5cfd;let _0x4db8b6=null,_0x53b681=![],_0x40a172=null;_0x4db8b6='test-session-123',_0x53b681=!![],_0x40a172=Date[_0x399c41(0x1b2)]()+0x36ee80,expect(_0x4db8b6)['toBeDefined'](),expect(_0x53b681)['toBe'](!![]),expect(_0x40a172)[_0x399c41(0x1b1)](Date['now']());}),test('Session\x20state\x20should\x20invalidate',async()=>{const _0x37f813=a0_0x5cfd;let _0x396f16=_0x37f813(0x1b6),_0x5cf475=!![];_0x396f16=null,_0x5cf475=![],expect(_0x396f16)[_0x37f813(0x18e)](),expect(_0x5cf475)['toBe'](![]);});}),describe('Connection\x20Management\x20-\x20Connection\x20Metrics',()=>{const _0x141282=a0_0x3416bd;test(_0x141282(0x186),async()=>{const _0x47eed4=_0x141282,_0x59fab2=Date['now']();await new Promise(_0x160614=>setTimeout(_0x160614,0x64));const _0x2806b6=Date['now']()-_0x59fab2;expect(_0x2806b6)[_0x47eed4(0x1b1)](0x0),expect(_0x2806b6)[_0x47eed4(0x17f)](0x64);}),test(_0x141282(0x1b0),async()=>{const _0x3802ff=_0x141282,_0x4b4ca9=Date['now']();await new Promise(_0x5735d9=>setTimeout(_0x5735d9,0x32));const _0x5b11fa=Date[_0x3802ff(0x1b2)]();expect(_0x4b4ca9)['toBeDefined'](),expect(_0x5b11fa)['toBeDefined'](),expect(_0x5b11fa)[_0x3802ff(0x1b1)](_0x4b4ca9);}),test(_0x141282(0x1af),async()=>{const _0x71b8bc=_0x141282;let _0x531c1a=0x0;_0x531c1a+=0x1,expect(_0x531c1a)['toBe'](0x1),_0x531c1a+=0x1,expect(_0x531c1a)[_0x71b8bc(0x1c1)](0x2),_0x531c1a=0x0,expect(_0x531c1a)[_0x71b8bc(0x1c1)](0x0);});}),describe('Connection\x20Management\x20-\x20Connection\x20Status\x20Transitions',()=>{const _0x4c6d2b=a0_0x3416bd;test(_0x4c6d2b(0x1a0),async()=>{const _0x1cd554=_0x4c6d2b,{CONNECTION_STATUS:_0xae8ab6}=await import('../../config/constants.js');let _0x13f1ea=_0xae8ab6['DISCONNECTED'];expect(_0x13f1ea)[_0x1cd554(0x1c1)](_0x1cd554(0x198)),_0x13f1ea=_0xae8ab6['CONNECTING'],expect(_0x13f1ea)['toBe']('connecting'),_0x13f1ea=_0xae8ab6[_0x1cd554(0x1be)],expect(_0x13f1ea)['toBe'](_0x1cd554(0x199)),_0x13f1ea=_0xae8ab6['DISCONNECTED'],expect(_0x13f1ea)[_0x1cd554(0x1c1)]('disconnected'),_0x13f1ea=_0xae8ab6['RECONNECTING'],expect(_0x13f1ea)[_0x1cd554(0x1c1)](_0x1cd554(0x188)),_0x13f1ea=_0xae8ab6[_0x1cd554(0x1be)],expect(_0x13f1ea)[_0x1cd554(0x1c1)](_0x1cd554(0x199));});}),describe('Connection\x20Management\x20-\x20WebSocket\x20Event\x20Integration',()=>{test('WebSocketManager\x20has\x20event\x20emitter\x20methods',async()=>{const _0x17a778=a0_0x5cfd,{WebSocketManager:_0x5d1569}=await import(_0x17a778(0x19d)),_0x485575=new _0x5d1569(_0x17a778(0x17e),0x1f90);expect(_0x485575['on'])[_0x17a778(0x193)](),expect(_0x485575[_0x17a778(0x184)])[_0x17a778(0x193)](),expect(typeof _0x485575['on'])['toBe']('function'),expect(typeof _0x485575[_0x17a778(0x184)])['toBe']('function');});}),describe(a0_0x3416bd(0x19a),()=>{const _0x5ac926=a0_0x3416bd;test(_0x5ac926(0x18c),async()=>{const _0x582e92=_0x5ac926,{RECONNECT_CONFIG:_0x519009}=await import(_0x582e92(0x1a1));let _0x312eec=0x0;for(let _0x41fea6=0x0;_0x41fea6<_0x519009[_0x582e92(0x1ad)]+0x5;_0x41fea6++){if(_0x312eec<_0x519009[_0x582e92(0x1ad)])_0x312eec+=0x1;else break;}expect(_0x312eec)[_0x582e92(0x1c1)](_0x519009['MAX_ATTEMPTS']),expect(_0x312eec)[_0x582e92(0x194)](_0x519009[_0x582e92(0x1ad)]);});}),describe('Connection\x20Management\x20-\x20Connection\x20Info',()=>{const _0x4878d2=a0_0x3416bd;test(_0x4878d2(0x181),async()=>{const _0x1a429c=_0x4878d2,{CONNECTION_STATUS:_0x4704b1}=await import('../../config/constants.js'),_0x3179b0={'status':_0x4704b1['CONNECTED'],'isConnected':!![],'isReconnecting':![],'sessionId':'test-session-123','sessionValid':!![],'sessionExpiration':Date['now']()+0x36ee80,'uptime':0x1388,'lastConnectedAt':Date['now']()-0x1388,'lastDisconnectedAt':null,'reconnectAttempts':0x0};expect(_0x3179b0['status'])[_0x1a429c(0x193)](),expect(_0x3179b0['isConnected'])['toBe'](!![]),expect(_0x3179b0[_0x1a429c(0x190)])['toBe'](![]),expect(_0x3179b0[_0x1a429c(0x19c)])['toBeDefined'](),expect(_0x3179b0['sessionValid'])['toBe'](!![]),expect(_0x3179b0[_0x1a429c(0x1bf)])[_0x1a429c(0x1b1)](0x0);});});
@@ -1 +1 @@
1
- const a0_0x3d681d=a0_0x2ce7;(function(_0x4a83f7,_0x4f1eda){const _0x51e4a0=a0_0x2ce7,_0x3e7d0f=_0x4a83f7();while(!![]){try{const _0x45b94f=-parseInt(_0x51e4a0(0x1e4))/0x1*(-parseInt(_0x51e4a0(0x1e2))/0x2)+-parseInt(_0x51e4a0(0x1f7))/0x3+parseInt(_0x51e4a0(0x1dc))/0x4+-parseInt(_0x51e4a0(0x1f3))/0x5*(-parseInt(_0x51e4a0(0x1d8))/0x6)+-parseInt(_0x51e4a0(0x1ea))/0x7*(-parseInt(_0x51e4a0(0x1ee))/0x8)+parseInt(_0x51e4a0(0x1ed))/0x9+parseInt(_0x51e4a0(0x1ef))/0xa*(-parseInt(_0x51e4a0(0x1f4))/0xb);if(_0x45b94f===_0x4f1eda)break;else _0x3e7d0f['push'](_0x3e7d0f['shift']());}catch(_0x3ae139){_0x3e7d0f['push'](_0x3e7d0f['shift']());}}}(a0_0x3e5e,0x68937));import{describe,test,expect}from'@jest/globals';function a0_0x3e5e(){const _0x1278f0=['zNvUy3rPB24','y29TCg9Uzw50rgLKq2f0y2G','ywXS','mKXNuK5Yza','Dg9czurLzMLUzwq','mtm0mJyXyu5RAKjf','zgvMyxvSDa','rxjYB3jcB3vUzgfYEsbOyxmGz2v0rgvYAxzLzfn0yxrLrNjVBuvYCM9Yihn0yxrPyYbTzxrOB2q','ChjVDg90ExbL','Dg9czvvUzgvMAw5Lza','rxjYB3jcB3vUzgfYEsbPCYbHignSyxnZignVBxbVBMvUDa','mtK4ntGZDuPwsLj3','tg9HzgLUz1nWAw5Uzxi','rxjYB3jcB3vUzgfYEsbJB21WB25LBNreAwrdyxrJAcbPCYbKzwzPBMvK','mtG5otG3m1Hswfrgra','mty4u09kvuDe','nJeXntmWELfVz2zQ','DxnLuMvM','lI4VlI4Vy29TCg9Uzw50CY9mB2fKAw5Nu3bPBM5LCI5QCW','lI4VlI4Vy29TCg9Uzw50CY9jBNb1DejVEc5QCW','mte0nxD2vwH5wG','mteWAhDQCffy','CMvUzgvY','DxnLu3rHDgu','mJe0nte5nwPutvjxAq','ugHHC2uGosaTievUAgfUy2vKienVBxbVBMvUDhmGlsbjBxbVCNrZ','mtm5ogXKCNrAqW','CMvHy3q','lI4VlI4Vy29TCg9Uzw50CY9fCNjVCKjVDw5Kyxj5lMPZ','rxjYB3jcB3vUzgfYEsbPCYbHifjLywn0ienVBxbVBMvUDcbJBgfZCW','mZa0mtG5nM5iwKfosW','Dg9czq','sw5WDxrcB3G'];a0_0x3e5e=function(){return _0x1278f0;};return a0_0x3e5e();}function a0_0x2ce7(_0x283136,_0x1a7bc3){_0x283136=_0x283136-0x1d8;const _0x3e5e29=a0_0x3e5e();let _0x2ce721=_0x3e5e29[_0x283136];if(a0_0x2ce7['ZSgdhw']===undefined){var _0x38ffc8=function(_0x3590a6){const _0x11c75e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x15a621='',_0x5e2e30='';for(let _0x369620=0x0,_0x2bda3d,_0x33f5d3,_0x18cbe3=0x0;_0x33f5d3=_0x3590a6['charAt'](_0x18cbe3++);~_0x33f5d3&&(_0x2bda3d=_0x369620%0x4?_0x2bda3d*0x40+_0x33f5d3:_0x33f5d3,_0x369620++%0x4)?_0x15a621+=String['fromCharCode'](0xff&_0x2bda3d>>(-0x2*_0x369620&0x6)):0x0){_0x33f5d3=_0x11c75e['indexOf'](_0x33f5d3);}for(let _0x317090=0x0,_0x515cd0=_0x15a621['length'];_0x317090<_0x515cd0;_0x317090++){_0x5e2e30+='%'+('00'+_0x15a621['charCodeAt'](_0x317090)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5e2e30);};a0_0x2ce7['AamYqw']=_0x38ffc8,a0_0x2ce7['leuRMA']={},a0_0x2ce7['ZSgdhw']=!![];}const _0x30c89c=_0x3e5e29[0x0],_0x42c4ed=_0x283136+_0x30c89c,_0x4f4a11=a0_0x2ce7['leuRMA'][_0x42c4ed];return!_0x4f4a11?(_0x2ce721=a0_0x2ce7['AamYqw'](_0x2ce721),a0_0x2ce7['leuRMA'][_0x42c4ed]=_0x2ce721):_0x2ce721=_0x4f4a11,_0x2ce721;}describe(a0_0x3d681d(0x1f8),()=>{const _0x51d6b8=a0_0x3d681d;test('ErrorBoundary component can be imported',async()=>{const _0x47154e=a0_0x2ce7,{ErrorBoundary:_0x15a621}=await import(_0x47154e(0x1da));expect(_0x15a621)[_0x47154e(0x1e3)](),expect(typeof _0x15a621)['toBe']('function');},0x7530),test(_0x51d6b8(0x1e9),async()=>{const _0x53a12d=_0x51d6b8,{ErrorBoundary:_0x5e2e30}=await import('../../components/ErrorBoundary.js');expect(_0x5e2e30[_0x53a12d(0x1e7)])[_0x53a12d(0x1e3)](),expect(typeof _0x5e2e30[_0x53a12d(0x1e7)]['render'])['toBe'](_0x53a12d(0x1df));}),test('LoadingSpinner component can be imported',async()=>{const _0x75c485=_0x51d6b8,{LoadingSpinner:_0x369620}=await import(_0x75c485(0x1f1));expect(_0x369620)[_0x75c485(0x1e3)](),expect(typeof _0x369620)[_0x75c485(0x1dd)]('function');}),test('InlineSpinner component can be imported',async()=>{const _0xa9a1bd=_0x51d6b8,{InlineSpinner:_0x2bda3d}=await import('../../components/LoadingSpinner.js');expect(_0x2bda3d)[_0xa9a1bd(0x1e3)](),expect(typeof _0x2bda3d)['toBe']('function');}),test('LoadingSpinner is default export',async()=>{const _0x43957f=_0x51d6b8,module=await import('../../components/LoadingSpinner.js');expect(module[_0x43957f(0x1e5)])[_0x43957f(0x1e3)](),expect(module['default'])['toBe'](module[_0x43957f(0x1eb)]);}),test('Enhanced\x20InputBox\x20maintains\x20backward\x20compatibility',async()=>{const {InputBox:_0x33f5d3}=await import('../../components/InputBox.js');expect(_0x33f5d3)['toBeDefined'](),expect(typeof _0x33f5d3)['toBe']('function');});}),describe('Phase\x209\x20-\x20ErrorBoundary\x20-\x20Structure',()=>{const _0x5959ce=a0_0x3d681d;test(_0x5959ce(0x1db),async()=>{const _0x5ada74=_0x5959ce,{ErrorBoundary:_0x18cbe3}=await import(_0x5ada74(0x1da)),_0x317090=await import(_0x5ada74(0x1d9));expect(_0x18cbe3['prototype'])[_0x5ada74(0x1e3)](),expect(typeof _0x18cbe3[_0x5ada74(0x1e7)][_0x5ada74(0x1f5)])[_0x5ada74(0x1dd)](_0x5ada74(0x1df)),expect(typeof _0x18cbe3[_0x5ada74(0x1e7)][_0x5ada74(0x1e0)])['toBe'](_0x5ada74(0x1df));}),test(_0x5959ce(0x1e6),async()=>{const _0x4167e3=_0x5959ce,{ErrorBoundary:_0x515cd0}=await import(_0x4167e3(0x1da));expect(typeof _0x515cd0['getDerivedStateFromError'])[_0x4167e3(0x1dd)]('function');}),test(_0x5959ce(0x1ec),async()=>{const _0x11caa3=_0x5959ce,{ErrorBoundary:_0x4df9d7}=await import('../../components/ErrorBoundary.js');expect(typeof _0x4df9d7[_0x11caa3(0x1e7)][_0x11caa3(0x1e0)])['toBe']('function');});}),describe('Phase\x209\x20-\x20LoadingSpinner\x20-\x20Structure',()=>{test('LoadingSpinner\x20is\x20a\x20function\x20component',async()=>{const _0x2acf25=a0_0x2ce7,{LoadingSpinner:_0x5e0860}=await import('../../components/LoadingSpinner.js');expect(typeof _0x5e0860)[_0x2acf25(0x1dd)](_0x2acf25(0x1df)),expect(_0x5e0860['prototype']?.[_0x2acf25(0x1f5)])['toBeUndefined']();}),test('InlineSpinner\x20is\x20a\x20function\x20component',async()=>{const _0xd24283=a0_0x2ce7,{InlineSpinner:_0x50a551}=await import('../../components/LoadingSpinner.js');expect(typeof _0x50a551)['toBe']('function'),expect(_0x50a551[_0xd24283(0x1e7)]?.['render'])[_0xd24283(0x1e8)]();});}),describe('Phase\x209\x20-\x20Enhanced\x20InputBox\x20-\x20History\x20Support',()=>{test('Enhanced InputBox imports useRef for history',async()=>{const _0x287f79=a0_0x2ce7,_0x1311bb=await import(_0x287f79(0x1f2)),_0x1a5b79=await import(_0x287f79(0x1d9));expect(_0x1a5b79[_0x287f79(0x1f6)])['toBeDefined'](),expect(_0x1a5b79[_0x287f79(0x1f0)])[_0x287f79(0x1e3)]();}),test('InputBox component maintains exports',async()=>{const _0x38c4c7=a0_0x2ce7,module=await import(_0x38c4c7(0x1f2));expect(module['InputBox'])['toBeDefined'](),expect(module[_0x38c4c7(0x1e5)])['toBeDefined'](),expect(module['default'])[_0x38c4c7(0x1dd)](module['InputBox']);});}),describe('Phase\x209\x20-\x20Integration',()=>{test('All enhanced components can be imported together',async()=>{const _0x1c380c=a0_0x2ce7,[_0x43825c,_0x930c9b,_0x3abd37]=await Promise[_0x1c380c(0x1e1)]([import(_0x1c380c(0x1da)),import(_0x1c380c(0x1f1)),import('../../components/InputBox.js')]);expect(_0x43825c['ErrorBoundary'])[_0x1c380c(0x1e3)](),expect(_0x930c9b['LoadingSpinner'])[_0x1c380c(0x1e3)](),expect(_0x930c9b['InlineSpinner'])[_0x1c380c(0x1e3)](),expect(_0x3abd37[_0x1c380c(0x1de)])['toBeDefined']();}),test('Enhanced Layout component imports useInput for keyboard shortcuts',async()=>{const _0x44a265=a0_0x2ce7,_0x2ff7e0=await import(_0x44a265(0x1d9)),_0x390edf=await import('ink');expect(_0x390edf['useInput'])[_0x44a265(0x1e3)](),expect(typeof _0x390edf['useInput'])['toBe']('function');}),test('Layout component can still be imported after enhancements',async()=>{const _0x470583=a0_0x2ce7,{Layout:_0x39cdce}=await import('../../components/Layout.js');expect(_0x39cdce)[_0x470583(0x1e3)](),expect(typeof _0x39cdce)[_0x470583(0x1dd)]('function');});}),describe('Phase\x209\x20-\x20Enhanced\x20Features\x20-\x20Constants',()=>{test('InputBox\x20defines\x20MAX_HISTORY\x20constant',async()=>{const _0x23c9b0=a0_0x2ce7,module=await import('../../components/InputBox.js');expect(module[_0x23c9b0(0x1de)])['toBeDefined']();});});
1
+ const a0_0x3e0120=a0_0xd3e6;(function(_0x1c0850,_0x5ceaf9){const _0x446395=a0_0xd3e6,_0x1cd394=_0x1c0850();while(!![]){try{const _0x203279=parseInt(_0x446395(0xbb))/0x1+parseInt(_0x446395(0xc7))/0x2*(-parseInt(_0x446395(0xb5))/0x3)+-parseInt(_0x446395(0xb0))/0x4*(-parseInt(_0x446395(0xb6))/0x5)+-parseInt(_0x446395(0xbc))/0x6*(parseInt(_0x446395(0xb3))/0x7)+parseInt(_0x446395(0xa4))/0x8*(parseInt(_0x446395(0xbf))/0x9)+-parseInt(_0x446395(0xc0))/0xa+parseInt(_0x446395(0xa5))/0xb*(parseInt(_0x446395(0xb4))/0xc);if(_0x203279===_0x5ceaf9)break;else _0x1cd394['push'](_0x1cd394['shift']());}catch(_0x309e54){_0x1cd394['push'](_0x1cd394['shift']());}}}(a0_0x4879,0x8a2c3));function a0_0xd3e6(_0x2a7edc,_0x1e747c){_0x2a7edc=_0x2a7edc-0xa4;const _0x4879a4=a0_0x4879();let _0xd3e688=_0x4879a4[_0x2a7edc];if(a0_0xd3e6['wHXBVx']===undefined){var _0x257158=function(_0x549574){const _0x29b0ca='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5a7cd7='',_0x19a0a4='';for(let _0x8013c3=0x0,_0xf9b0c,_0x3c8e57,_0x23a262=0x0;_0x3c8e57=_0x549574['charAt'](_0x23a262++);~_0x3c8e57&&(_0xf9b0c=_0x8013c3%0x4?_0xf9b0c*0x40+_0x3c8e57:_0x3c8e57,_0x8013c3++%0x4)?_0x5a7cd7+=String['fromCharCode'](0xff&_0xf9b0c>>(-0x2*_0x8013c3&0x6)):0x0){_0x3c8e57=_0x29b0ca['indexOf'](_0x3c8e57);}for(let _0x292ea1=0x0,_0x50f0a2=_0x5a7cd7['length'];_0x292ea1<_0x50f0a2;_0x292ea1++){_0x19a0a4+='%'+('00'+_0x5a7cd7['charCodeAt'](_0x292ea1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x19a0a4);};a0_0xd3e6['QVUsZC']=_0x257158,a0_0xd3e6['aZnKtT']={},a0_0xd3e6['wHXBVx']=!![];}const _0x23e47d=_0x4879a4[0x0],_0x50fe14=_0x2a7edc+_0x23e47d,_0x2f0078=a0_0xd3e6['aZnKtT'][_0x50fe14];return!_0x2f0078?(_0xd3e688=a0_0xd3e6['QVUsZC'](_0xd3e688),a0_0xd3e6['aZnKtT'][_0x50fe14]=_0xd3e688):_0xd3e688=_0x2f0078,_0xd3e688;}function a0_0x4879(){const _0x41b8c4=['Dg9czurLzMLUzwq','ugHHC2uGosaTievUAgfUy2vKiezLyxr1CMvZic0Gq29UC3rHBNrZ','sw5SAw5Lu3bPBM5LCG','rxjYB3jcB3vUzgfYEq','ChjVDg90ExbL','rxjYB3jcB3vUzgfYEsbPCYbHifjLywn0ienVBxbVBMvUDcbJBgfZCW','lI4VlI4Vy29TCg9Uzw50CY9myxLVDxqUANm','sw5WDxrcB3GGzgvMAw5LCYbnqvHFseLtve9swsbJB25ZDgfUDa','neP3DurIDq','CMvHy3q','sw5WDxrcB3G','n1DquNfjDq','mJmXntC5mJrRwhnhBgq','mJmYmJG0m3vpAur4BG','mZu4nZi3meX2rKfIuq','rxjYB3jcB3vUzgfYEsbJB21WB25LBNreAwrdyxrJAcbPCYbKzwzPBMvK','tg9HzgLUz1nWAw5Uzxi','y29TCg9Uzw50rgLKq2f0y2G','CMvUzgvY','ntuXodmWB3f0B3vO','nte1mdi2mNbQsgPLzG','zNvUy3rPB24','ugHHC2uGosaTievUAgfUy2vKienVBxbVBMvUDhmGlsbjBxbVCNrZ','nJnXCxrwAxC','mta4ndGYmdbtAgjHqvG','rxjYB3jcB3vUzgfYEsbOyxmGz2v0rgvYAxzLzfn0yxrLrNjVBuvYCM9Yihn0yxrPyYbTzxrOB2q','zgvMyxvSDa','z2v0rgvYAxzLzfn0yxrLrNjVBuvYCM9Y','lI4VlI4Vy29TCg9Uzw50CY9mB2fKAw5Nu3bPBM5LCI5QCW','lI4VlI4Vy29TCg9Uzw50CY9fCNjVCKjVDw5Kyxj5lMPZ','rxjYB3jcB3vUzgfYEsbPCYbHignSyxnZignVBxbVBMvUDa','mLruu1bvuG','lI4VlI4Vy29TCg9Uzw50CY9jBNb1DejVEc5QCW','otyZnJHsswngAgy','mtfvrgLyA1u','ywXS','Dg9czq'];a0_0x4879=function(){return _0x41b8c4;};return a0_0x4879();}import{describe,test,expect}from'@jest/globals';describe(a0_0x3e0120(0xbe),()=>{const _0x4d5f1c=a0_0x3e0120;test('ErrorBoundary component can be imported',async()=>{const {ErrorBoundary:_0x5a7cd7}=await import('../../components/ErrorBoundary.js');expect(_0x5a7cd7)['toBeDefined'](),expect(typeof _0x5a7cd7)['toBe']('function');},0x7530),test(_0x4d5f1c(0xc6),async()=>{const _0x314616=_0x4d5f1c,{ErrorBoundary:_0x19a0a4}=await import('../../components/ErrorBoundary.js');expect(_0x19a0a4[_0x314616(0xac)])[_0x314616(0xa8)](),expect(typeof _0x19a0a4['prototype']['render'])['toBe']('function');}),test('LoadingSpinner component can be imported',async()=>{const _0x4c9675=_0x4d5f1c,{LoadingSpinner:_0x8013c3}=await import(_0x4c9675(0xc4));expect(_0x8013c3)[_0x4c9675(0xa8)](),expect(typeof _0x8013c3)['toBe'](_0x4c9675(0xbd));}),test('InlineSpinner component can be imported',async()=>{const _0xe3f8dd=_0x4d5f1c,{InlineSpinner:_0xf9b0c}=await import(_0xe3f8dd(0xc4));expect(_0xf9b0c)['toBeDefined'](),expect(typeof _0xf9b0c)[_0xe3f8dd(0xa7)]('function');}),test('LoadingSpinner is default export',async()=>{const _0x48a305=_0x4d5f1c,module=await import(_0x48a305(0xc4));expect(module[_0x48a305(0xc2)])[_0x48a305(0xa8)](),expect(module[_0x48a305(0xc2)])[_0x48a305(0xa7)](module[_0x48a305(0xb8)]);}),test('Enhanced\x20InputBox\x20maintains\x20backward\x20compatibility',async()=>{const _0x327eb7=_0x4d5f1c,{InputBox:_0x3c8e57}=await import('../../components/InputBox.js');expect(_0x3c8e57)[_0x327eb7(0xa8)](),expect(typeof _0x3c8e57)[_0x327eb7(0xa7)]('function');});}),describe('Phase\x209\x20-\x20ErrorBoundary\x20-\x20Structure',()=>{const _0x1e5c40=a0_0x3e0120;test(_0x1e5c40(0xad),async()=>{const _0x3feb47=_0x1e5c40,{ErrorBoundary:_0x23a262}=await import('../../components/ErrorBoundary.js'),_0x292ea1=await import(_0x3feb47(0xb1));expect(_0x23a262[_0x3feb47(0xac)])['toBeDefined'](),expect(typeof _0x23a262[_0x3feb47(0xac)][_0x3feb47(0xba)])[_0x3feb47(0xa7)](_0x3feb47(0xbd)),expect(typeof _0x23a262[_0x3feb47(0xac)][_0x3feb47(0xb9)])['toBe']('function');}),test(_0x1e5c40(0xc1),async()=>{const _0x4721ba=_0x1e5c40,{ErrorBoundary:_0x50f0a2}=await import('../../components/ErrorBoundary.js');expect(typeof _0x50f0a2[_0x4721ba(0xc3)])['toBe']('function');}),test(_0x1e5c40(0xb7),async()=>{const _0x30b502=_0x1e5c40,{ErrorBoundary:_0x1ed46f}=await import(_0x30b502(0xc5));expect(typeof _0x1ed46f[_0x30b502(0xac)][_0x30b502(0xb9)])['toBe'](_0x30b502(0xbd));});}),describe('Phase\x209\x20-\x20LoadingSpinner\x20-\x20Structure',()=>{test('LoadingSpinner\x20is\x20a\x20function\x20component',async()=>{const _0x2051a5=a0_0xd3e6,{LoadingSpinner:_0x3b2ee0}=await import(_0x2051a5(0xc4));expect(typeof _0x3b2ee0)[_0x2051a5(0xa7)]('function'),expect(_0x3b2ee0['prototype']?.['render'])['toBeUndefined']();}),test('InlineSpinner\x20is\x20a\x20function\x20component',async()=>{const _0x17e2fd=a0_0xd3e6,{InlineSpinner:_0x31beea}=await import(_0x17e2fd(0xc4));expect(typeof _0x31beea)[_0x17e2fd(0xa7)]('function'),expect(_0x31beea['prototype']?.[_0x17e2fd(0xba)])['toBeUndefined']();});}),describe('Phase\x209\x20-\x20Enhanced\x20InputBox\x20-\x20History\x20Support',()=>{test('Enhanced InputBox imports useRef for history',async()=>{const _0x5b5715=await import('../../components/InputBox.js'),_0x5943f1=await import('react');expect(_0x5943f1['useState'])['toBeDefined'](),expect(_0x5943f1['useRef'])['toBeDefined']();}),test('InputBox component maintains exports',async()=>{const _0x4e93c1=a0_0xd3e6,module=await import('../../components/InputBox.js');expect(module['InputBox'])['toBeDefined'](),expect(module[_0x4e93c1(0xc2)])['toBeDefined'](),expect(module['default'])[_0x4e93c1(0xa7)](module[_0x4e93c1(0xb2)]);});}),describe('Phase\x209\x20-\x20Integration',()=>{test('All enhanced components can be imported together',async()=>{const _0x4c7934=a0_0xd3e6,[_0x3b1176,_0x1f737f,_0x5c4e44]=await Promise[_0x4c7934(0xa6)]([import(_0x4c7934(0xc5)),import('../../components/LoadingSpinner.js'),import(_0x4c7934(0xc8))]);expect(_0x3b1176[_0x4c7934(0xab)])['toBeDefined'](),expect(_0x1f737f[_0x4c7934(0xb8)])['toBeDefined'](),expect(_0x1f737f[_0x4c7934(0xaa)])['toBeDefined'](),expect(_0x5c4e44[_0x4c7934(0xb2)])['toBeDefined']();}),test('Enhanced Layout component imports useInput for keyboard shortcuts',async()=>{const _0x5b131a=a0_0xd3e6,_0x1165ad=await import(_0x5b131a(0xb1)),_0xb071fa=await import('ink');expect(_0xb071fa['useInput'])['toBeDefined'](),expect(typeof _0xb071fa['useInput'])['toBe'](_0x5b131a(0xbd));}),test('Layout component can still be imported after enhancements',async()=>{const _0x133dbb=a0_0xd3e6,{Layout:_0xe3aae2}=await import(_0x133dbb(0xae));expect(_0xe3aae2)['toBeDefined'](),expect(typeof _0xe3aae2)['toBe'](_0x133dbb(0xbd));});}),describe(a0_0x3e0120(0xa9),()=>{const _0x2044ec=a0_0x3e0120;test(_0x2044ec(0xaf),async()=>{const _0x247eca=_0x2044ec,module=await import('../../components/InputBox.js');expect(module[_0x247eca(0xb2)])['toBeDefined']();});});
@@ -1 +1 @@
1
- const a0_0x2ea39f=a0_0x2df9;(function(_0x4f1f53,_0x3d9d54){const _0x42d080=a0_0x2df9,_0x517921=_0x4f1f53();while(!![]){try{const _0x452077=parseInt(_0x42d080(0x1e4))/0x1+parseInt(_0x42d080(0x1dc))/0x2+parseInt(_0x42d080(0x1c7))/0x3*(parseInt(_0x42d080(0x1b3))/0x4)+parseInt(_0x42d080(0x1b1))/0x5*(parseInt(_0x42d080(0x1c6))/0x6)+-parseInt(_0x42d080(0x1b7))/0x7*(parseInt(_0x42d080(0x1d4))/0x8)+parseInt(_0x42d080(0x1be))/0x9*(parseInt(_0x42d080(0x1a7))/0xa)+parseInt(_0x42d080(0x1c2))/0xb*(-parseInt(_0x42d080(0x1d1))/0xc);if(_0x452077===_0x3d9d54)break;else _0x517921['push'](_0x517921['shift']());}catch(_0x4151c6){_0x517921['push'](_0x517921['shift']());}}}(a0_0x2b3b,0xe784f));import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';function a0_0x2df9(_0x8dd24,_0x50f264){_0x8dd24=_0x8dd24-0x1a2;const _0x2b3b1b=a0_0x2b3b();let _0x2df93e=_0x2b3b1b[_0x8dd24];if(a0_0x2df9['clkMOK']===undefined){var _0x4515ba=function(_0x309361){const _0x51c94c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39b3d1='',_0x49f689='';for(let _0x2fe951=0x0,_0x3a1837,_0x3dba89,_0x1781ba=0x0;_0x3dba89=_0x309361['charAt'](_0x1781ba++);~_0x3dba89&&(_0x3a1837=_0x2fe951%0x4?_0x3a1837*0x40+_0x3dba89:_0x3dba89,_0x2fe951++%0x4)?_0x39b3d1+=String['fromCharCode'](0xff&_0x3a1837>>(-0x2*_0x2fe951&0x6)):0x0){_0x3dba89=_0x51c94c['indexOf'](_0x3dba89);}for(let _0x371d3c=0x0,_0x3ae600=_0x39b3d1['length'];_0x371d3c<_0x3ae600;_0x371d3c++){_0x49f689+='%'+('00'+_0x39b3d1['charCodeAt'](_0x371d3c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x49f689);};a0_0x2df9['yKYlyK']=_0x4515ba,a0_0x2df9['UmidfR']={},a0_0x2df9['clkMOK']=!![];}const _0xdced90=_0x2b3b1b[0x0],_0x438c77=_0x8dd24+_0xdced90,_0x8697af=a0_0x2df9['UmidfR'][_0x438c77];return!_0x8697af?(_0x2df93e=a0_0x2df9['yKYlyK'](_0x2df93e),a0_0x2df9['UmidfR'][_0x438c77]=_0x2df93e):_0x2df93e=_0x8697af,_0x2df93e;}function a0_0x2b3b(){const _0x2a5320=['nZjKwKzgwfe','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLignHBIbIzsbHzgrLzcbHBMqGCMvTB3zLza','AxnwywXPza','Dg9fCxvHBa','q09ntuforfm','z2v0uhjVAMvJDerPCG','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbjBxbVCNrZ','BwLKzgXLD2fYzq','mJG4nJm1ngfQChvmsW','AgfZtg94AwflzxK','Bg94AwfbCgLlzxK','quDftLrFtu9erv9dsefor0ve','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','zNvUy3rPB24','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','ywXSB3DLzc10ExbL','mtu2nZm2m0vbtw1RsW','C2vZC2LVBKLK','Cg9YDa','ChjVAMvJDerPCG','tKvuv09ssW','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLigHLBhbLCNmGy3jLyxrLihzHBgLKig1PzgrSzxDHCMu','D3m6lY9SB2nHBgHVC3q6oda4ma','DMvUzg9Ys2v5CW','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','q09nuefdveLptL9fvKvova','Dg9nyxrJAa','y2XLyxi','BgvUz3rO','Dg9iyxzLuhjVCgvYDhK','mtGXotmXmgvNwvv1AG','DgvZDa','Dg9czurLzMLUzwq','DgvZDc1TzxnZywDL','yMfZzvvYBa','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','BM90lweTzNvUy3rPB24','Dw5YzwDPC3rLCKHHBMrSzxi','Dg9czq','v1nFtuvtu0fhrv9uwvbf','ntm2ota1B3LQDvnb','DgvZDc1OB3n0','ndqYmtC0mg53rfr2sa','Bg9JywXOB3n0','AgfZsgfUzgXLCG','Dg9czvrYDxrOEq','mtaWotq5oePoCLP3BG','revgqvvmvf9qt1ju','BNvTyMvY','z2v0u2vZC2LVBKLK','CMvJB25Uzwn0qxr0zw1WDhm','CMvJzwL2zwrbDa','z2vUzxjHDgvszxf1zxn0swq','mJDksfrjBKm','lI4VlI4VyxbPl3nLC3nPB24UANm','reLtq09otKvdveve','q09otKvdveLptL9tvefurq','ndmXmdC2mdnAyLfcEKu','CMvTB3zLtwLKzgXLD2fYzq','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','odrWCM9TAgO','m09oC0HqDW','C3rHDgu','BM90','DxjS','veLnsu5h','vuLFreLnru5tsu9ouW','BwvZC2fNzvf1zxvL','CxvLDwvKtwvZC2fNzxm','sfruuf9usu1ft1vu','u0LerujbuL9xsurusa','mtjNuM10uKu','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ'];a0_0x2b3b=function(){return _0x2a5320;};return a0_0x2b3b();}import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe(a0_0x2ea39f(0x1da),()=>{test('constants module exports all required constants',async()=>{const _0x5fcdc0=a0_0x2df9,_0x39b3d1=await import(_0x5fcdc0(0x1d2));expect(_0x39b3d1[_0x5fcdc0(0x1cc)])['toBeDefined'](),expect(_0x39b3d1['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x39b3d1['PAGINATION'])[_0x5fcdc0(0x1a9)](),expect(_0x39b3d1[_0x5fcdc0(0x1cb)])[_0x5fcdc0(0x1a9)](),expect(_0x39b3d1['NETWORK'])[_0x5fcdc0(0x1a9)](),expect(_0x39b3d1[_0x5fcdc0(0x1c1)])['toBeDefined'](),expect(_0x39b3d1['AGENT_MODE'])[_0x5fcdc0(0x1a9)](),expect(_0x39b3d1[_0x5fcdc0(0x1b0)])['toBeDefined'](),expect(_0x39b3d1['API_ENDPOINTS'])[_0x5fcdc0(0x1a9)](),expect(_0x39b3d1[_0x5fcdc0(0x1d8)])['toBeDefined'](),expect(_0x39b3d1[_0x5fcdc0(0x1e8)]['DEFAULT_HOST'])['toBe']('localhost'),expect(_0x39b3d1['NETWORK']['DEFAULT_PORT'])['toBe'](0x1f90),expect(_0x39b3d1['CONNECTION_STATE'][_0x5fcdc0(0x1c0)])[_0x5fcdc0(0x1af)]('disconnected'),expect(_0x39b3d1[_0x5fcdc0(0x1c1)]['CONNECTED'])[_0x5fcdc0(0x1af)]('connected');}),test('WebSocketManager class can be imported',async()=>{const _0x411231=a0_0x2df9,{WebSocketManager:_0x49f689}=await import(_0x411231(0x1ac));expect(_0x49f689)['toBeDefined'](),expect(typeof _0x49f689)[_0x411231(0x1af)](_0x411231(0x1e1));const _0x2fe951=new _0x49f689('localhost',0x1f90);expect(_0x2fe951)['toBeDefined'](),expect(_0x2fe951['host'])['toBe']('localhost'),expect(_0x2fe951['port'])[_0x411231(0x1af)](0x1f90),expect(_0x2fe951[_0x411231(0x1ca)])[_0x411231(0x1af)](_0x411231(0x1ea));}),test('SessionManager class can be imported',async()=>{const _0x3e2a80=a0_0x2df9,{SessionManager:_0x3a1837}=await import('../../api/session.js');expect(_0x3a1837)['toBeDefined'](),expect(typeof _0x3a1837)['toBe'](_0x3e2a80(0x1e1));const _0x3dba89=new _0x3a1837(_0x3e2a80(0x1b4),0x1f90);expect(_0x3dba89)['toBeDefined'](),expect(_0x3dba89['host'])['toBe']('localhost'),expect(_0x3dba89[_0x3e2a80(0x1e6)])['toBe'](0x1f90),expect(_0x3dba89[_0x3e2a80(0x1ab)])['toBe']('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x1b7371=a0_0x2df9,{MessageRouter:_0x1781ba}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x371d3c}=await import('../../api/websocket.js');expect(_0x1781ba)[_0x1b7371(0x1a9)](),expect(typeof _0x1781ba)[_0x1b7371(0x1af)](_0x1b7371(0x1e1));const _0x3ae600=new _0x371d3c('localhost',0x1f90),_0x2c328c=new _0x1781ba(_0x3ae600);expect(_0x2c328c)[_0x1b7371(0x1a9)](),expect(_0x2c328c['ws'])[_0x1b7371(0x1af)](_0x3ae600);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x200084=a0_0x2df9,{loggingMiddleware:_0x5a1354,filterMiddleware:_0x1f7c1e,transformMiddleware:_0x1307d8,timestampMiddleware:_0x4722d6,validationMiddleware:_0x3f44fc}=await import(_0x200084(0x1ec));expect(typeof _0x5a1354)['toBe']('function'),expect(typeof _0x1f7c1e)[_0x200084(0x1af)](_0x200084(0x1e1)),expect(typeof _0x1307d8)[_0x200084(0x1af)](_0x200084(0x1e1)),expect(typeof _0x4722d6)['toBe']('function'),expect(typeof _0x3f44fc)[_0x200084(0x1af)]('function');}),test('useConnection hook can be imported',async()=>{const _0x2b5ee8=a0_0x2df9,{useConnection:_0x548b30,useConnectionStatus:_0x2f1688}=await import(_0x2b5ee8(0x1c5));expect(_0x548b30)[_0x2b5ee8(0x1a9)](),expect(typeof _0x548b30)['toBe']('function'),expect(_0x2f1688)['toBeDefined'](),expect(typeof _0x2f1688)['toBe'](_0x2b5ee8(0x1e1));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x3bbaac=a0_0x2ea39f;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0xca2cb7=a0_0x2df9,{WebSocketManager:_0x3e2803}=await import(_0xca2cb7(0x1ac)),{CONNECTION_STATE:_0x332924}=await import('../../config/constants.js'),_0x518dbc=new _0x3e2803('test-host',0x2382);expect(_0x518dbc[_0xca2cb7(0x1c8)])['toBe'](_0x332924['DISCONNECTED']),expect(_0x518dbc[_0xca2cb7(0x1e5)])[_0xca2cb7(0x1af)](null),expect(_0x518dbc[_0xca2cb7(0x1cd)])[_0xca2cb7(0x1d7)]([]),expect(_0x518dbc['reconnectAttempts'])[_0xca2cb7(0x1af)](0x0),expect(_0x518dbc['shouldReconnect'])[_0xca2cb7(0x1af)](!![]);}),test('SessionManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x33ac99=a0_0x2df9,{SessionManager:_0x21b26c}=await import(_0x33ac99(0x1bf)),_0x1dce26=new _0x21b26c(_0x33ac99(0x1b2),0x2382);expect(_0x1dce26[_0x33ac99(0x1e5)])[_0x33ac99(0x1af)](null),expect(_0x1dce26['projectDir'])[_0x33ac99(0x1af)](null),expect(_0x1dce26['loxiaApiKey'])[_0x33ac99(0x1af)](null),expect(_0x1dce26['vendorKeys'])[_0x33ac99(0x1d7)]({}),expect(_0x1dce26[_0x33ac99(0x1d6)]())[_0x33ac99(0x1af)](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x5e6ab4=a0_0x2df9,{MessageRouter:_0x24484d}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4525b6}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x28a421}=await import(_0x5e6ab4(0x1d2)),_0x41f57c=new _0x4525b6('localhost',0x1f90),_0x552ed2=new _0x24484d(_0x41f57c);expect(_0x552ed2['hasHandler'](_0x28a421['MESSAGE_ADDED']))['toBe'](!![]),expect(_0x552ed2[_0x5e6ab4(0x1b5)](_0x28a421[_0x5e6ab4(0x1df)]))[_0x5e6ab4(0x1af)](!![]),expect(_0x552ed2['hasHandler'](_0x28a421['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0x552ed2['hasHandler'](_0x28a421[_0x5e6ab4(0x1a2)]))[_0x5e6ab4(0x1af)](!![]),expect(_0x552ed2[_0x5e6ab4(0x1b5)](_0x28a421['IMAGE_RESULT']))[_0x5e6ab4(0x1af)](!![]);}),test(_0x3bbaac(0x1d5),async()=>{const _0x5a4b94=_0x3bbaac,{MessageRouter:_0x23fe59}=await import(_0x5a4b94(0x1ec)),{WebSocketManager:_0x3889c6}=await import('../../api/websocket.js'),_0x3c23d6=new _0x3889c6('localhost',0x1f90),_0x347d66=new _0x23fe59(_0x3c23d6),_0x26fdeb=_0x32d63b=>_0x32d63b;expect(_0x347d66[_0x5a4b94(0x1db)][_0x5a4b94(0x1a5)])[_0x5a4b94(0x1e0)](0x0),_0x347d66['use'](_0x26fdeb);const _0x3b73f6=_0x347d66[_0x5a4b94(0x1db)]['length'];expect(_0x3b73f6)['toBeGreaterThan'](0x0),_0x347d66[_0x5a4b94(0x1c3)](_0x26fdeb),expect(_0x347d66[_0x5a4b94(0x1db)][_0x5a4b94(0x1a5)])['toBe'](_0x3b73f6-0x1);}),test('SessionManager\x20helper\x20methods\x20work',async()=>{const _0x169db8=_0x3bbaac,{SessionManager:_0x16394b}=await import(_0x169db8(0x1bf)),_0x328b6f=new _0x16394b(_0x169db8(0x1b4),0x1f90);expect(_0x328b6f['getSessionId']())['toBe'](null),expect(_0x328b6f[_0x169db8(0x1d9)]())[_0x169db8(0x1af)](null),expect(_0x328b6f['isValid']())[_0x169db8(0x1af)](![]);const _0x1b35d2=_0x328b6f['getSessionInfo']();expect(_0x1b35d2)['toHaveProperty']('sessionId'),expect(_0x1b35d2)['toHaveProperty'](_0x169db8(0x1e7)),expect(_0x1b35d2)['toHaveProperty'](_0x169db8(0x1dd)),expect(_0x1b35d2)[_0x169db8(0x1a6)]('vendorKeysCount');}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x2f0b0e=_0x3bbaac,{WebSocketManager:_0x1b9921}=await import(_0x2f0b0e(0x1ac)),{CONNECTION_STATE:_0xd4aa64}=await import(_0x2f0b0e(0x1d2)),_0x5b94f5=new _0x1b9921(_0x2f0b0e(0x1b4),0x1f90);expect(_0x5b94f5['getState']())['toBe'](_0xd4aa64['DISCONNECTED']),expect(_0x5b94f5['isConnected']())[_0x2f0b0e(0x1af)](![]),expect(_0x5b94f5[_0x2f0b0e(0x1ba)]())[_0x2f0b0e(0x1af)](null);const _0x400922=_0x5b94f5['getStats']();expect(_0x400922)['toHaveProperty']('state'),expect(_0x400922)['toHaveProperty'](_0x2f0b0e(0x1e5)),expect(_0x400922)[_0x2f0b0e(0x1a6)](_0x2f0b0e(0x1bb)),expect(_0x400922)['toHaveProperty'](_0x2f0b0e(0x1ce)),expect(_0x400922)[_0x2f0b0e(0x1a6)]('pendingRequests');}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x3de564=_0x3bbaac,{MessageRouter:_0x5986d6}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4b1508}=await import(_0x3de564(0x1ac)),_0x4c3118=new _0x4b1508('localhost',0x1f90),_0x7e1b4e=new _0x5986d6(_0x4c3118),_0x311370=()=>{};expect(_0x7e1b4e[_0x3de564(0x1b5)]('test-message'))['toBe'](![]),_0x7e1b4e['registerHandler']('test-message',_0x311370),expect(_0x7e1b4e[_0x3de564(0x1b5)](_0x3de564(0x1aa)))['toBe'](!![]),_0x7e1b4e[_0x3de564(0x1ae)](_0x3de564(0x1aa)),expect(_0x7e1b4e['hasHandler'](_0x3de564(0x1aa)))[_0x3de564(0x1af)](![]);}),test(_0x3bbaac(0x1e9),async()=>{const _0x5122ba=_0x3bbaac,{loggingMiddleware:_0x2ec0d4,timestampMiddleware:_0x23afa4,filterMiddleware:_0x244e29}=await import(_0x5122ba(0x1ec)),_0x39fd0a=_0x2ec0d4();expect(typeof _0x39fd0a)[_0x5122ba(0x1af)](_0x5122ba(0x1e1));const _0x1b4101=_0x23afa4();expect(typeof _0x1b4101)[_0x5122ba(0x1af)]('function');const _0x660a14={'type':'test'},_0x1fa581=_0x1b4101(_0x660a14);expect(_0x1fa581)[_0x5122ba(0x1a6)](_0x5122ba(0x1bc)),expect(_0x1fa581['type'])[_0x5122ba(0x1af)](_0x5122ba(0x1a8));const _0x3755dc=_0x244e29([_0x5122ba(0x1e3)]);expect(typeof _0x3755dc)[_0x5122ba(0x1af)]('function'),expect(_0x3755dc({'type':'allowed-type'}))[_0x5122ba(0x1b6)](),expect(_0x3755dc({'type':'blocked-type'}))['toBe'](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x1240f5=_0x3bbaac,_0x2e8711=await import(_0x1240f5(0x1d2));expect(typeof _0x2e8711[_0x1240f5(0x1cb)]['WEBSOCKET_RECONNECT_DELAY'])['toBe']('number'),expect(typeof _0x2e8711[_0x1240f5(0x1cb)]['WEBSOCKET_PING_INTERVAL'])[_0x1240f5(0x1af)](_0x1240f5(0x1b9)),expect(typeof _0x2e8711[_0x1240f5(0x1e8)][_0x1240f5(0x1b8)])['toBe'](_0x1240f5(0x1b9)),expect(typeof _0x2e8711['NETWORK']['MAX_RETRIES'])['toBe']('number'),expect(typeof _0x2e8711[_0x1240f5(0x1e8)][_0x1240f5(0x1cf)])[_0x1240f5(0x1af)]('number'),expect(typeof _0x2e8711['UI_DIMENSIONS']['MESSAGE_LIST_HEIGHT'])[_0x1240f5(0x1af)]('number'),expect(typeof _0x2e8711[_0x1240f5(0x1cc)][_0x1240f5(0x1d0)])['toBe'](_0x1240f5(0x1b9));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x5bbdad=a0_0x2ea39f;test('MessageRouter\x20throws\x20on\x20invalid\x20handler',async()=>{const _0x2a7bc7=a0_0x2df9,{MessageRouter:_0x284dc8}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x458518}=await import('../../api/websocket.js'),_0x569064=new _0x458518('localhost',0x1f90),_0x4a0033=new _0x284dc8(_0x569064);expect(()=>{const _0x50200f=a0_0x2df9;_0x4a0033['registerHandler'](_0x50200f(0x1a8),_0x50200f(0x1ad));})['toThrow'](_0x2a7bc7(0x1e2));}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x3fe5a8=a0_0x2df9,{MessageRouter:_0x5ac0ab}=await import(_0x3fe5a8(0x1ec)),{WebSocketManager:_0x3264dc}=await import(_0x3fe5a8(0x1ac)),_0x3c9c76=new _0x3264dc(_0x3fe5a8(0x1b4),0x1f90),_0x38805a=new _0x5ac0ab(_0x3c9c76);expect(()=>{_0x38805a['use']('not-a-function');})['toThrow'](_0x3fe5a8(0x1c4));}),test('SessionManager\x20clear()\x20resets\x20all\x20state',async()=>{const _0x5ac38d=a0_0x2df9,{SessionManager:_0xf8e949}=await import('../../api/session.js'),_0x57727d=new _0xf8e949('localhost',0x1f90);_0x57727d['sessionId']='test-123',_0x57727d[_0x5ac38d(0x1e7)]='/test/dir',_0x57727d[_0x5ac38d(0x1de)]='test-key',_0x57727d['vendorKeys']={'openai':'key'},expect(_0x57727d[_0x5ac38d(0x1d6)]())[_0x5ac38d(0x1af)](!![]),_0x57727d[_0x5ac38d(0x1a4)](),expect(_0x57727d[_0x5ac38d(0x1e5)])[_0x5ac38d(0x1af)](null),expect(_0x57727d[_0x5ac38d(0x1e7)])[_0x5ac38d(0x1af)](null),expect(_0x57727d['loxiaApiKey'])['toBe'](null),expect(_0x57727d[_0x5ac38d(0x1eb)])['toEqual']({}),expect(_0x57727d[_0x5ac38d(0x1d6)]())['toBe'](![]);}),test(_0x5bbdad(0x1d3),async()=>{const _0x4738a7=_0x5bbdad,{WebSocketManager:_0x95832b}=await import('../../api/websocket.js'),_0x46bfa8=new _0x95832b(_0x4738a7(0x1b4),0x1f90),_0x4dfd3e=_0x46bfa8[_0x4738a7(0x1bd)](),_0x303a9c=_0x46bfa8['generateRequestId'](),_0x10503a=_0x46bfa8[_0x4738a7(0x1bd)]();expect(_0x4dfd3e)[_0x4738a7(0x1c9)]['toBe'](_0x303a9c),expect(_0x303a9c)['not'][_0x4738a7(0x1af)](_0x10503a),expect(_0x4dfd3e)['not'][_0x4738a7(0x1af)](_0x10503a),expect(_0x4dfd3e)[_0x4738a7(0x1a3)](/^req-\d+-\d+$/),expect(_0x303a9c)[_0x4738a7(0x1a3)](/^req-\d+-\d+$/),expect(_0x10503a)[_0x4738a7(0x1a3)](/^req-\d+-\d+$/);});});
1
+ (function(_0x2c4222,_0x3e2aa5){const _0x122e61=a0_0x382a,_0x8c4978=_0x2c4222();while(!![]){try{const _0x383788=-parseInt(_0x122e61(0x11e))/0x1*(-parseInt(_0x122e61(0x13f))/0x2)+-parseInt(_0x122e61(0x14a))/0x3*(-parseInt(_0x122e61(0x148))/0x4)+parseInt(_0x122e61(0x120))/0x5+-parseInt(_0x122e61(0x128))/0x6+parseInt(_0x122e61(0x136))/0x7*(parseInt(_0x122e61(0x10b))/0x8)+-parseInt(_0x122e61(0x130))/0x9+parseInt(_0x122e61(0x118))/0xa;if(_0x383788===_0x3e2aa5)break;else _0x8c4978['push'](_0x8c4978['shift']());}catch(_0x640ae8){_0x8c4978['push'](_0x8c4978['shift']());}}}(a0_0x1f91,0x935d6));import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';import{dirname,join}from'path';function a0_0x382a(_0x19cbe0,_0x28c7ba){_0x19cbe0=_0x19cbe0-0x105;const _0x1f91a7=a0_0x1f91();let _0x382a09=_0x1f91a7[_0x19cbe0];if(a0_0x382a['IjnGlN']===undefined){var _0x3c6525=function(_0x169c98){const _0x18eedc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xf1499e='',_0x3b4280='';for(let _0x43af0b=0x0,_0x1d82b1,_0x5468b3,_0x1807e7=0x0;_0x5468b3=_0x169c98['charAt'](_0x1807e7++);~_0x5468b3&&(_0x1d82b1=_0x43af0b%0x4?_0x1d82b1*0x40+_0x5468b3:_0x5468b3,_0x43af0b++%0x4)?_0xf1499e+=String['fromCharCode'](0xff&_0x1d82b1>>(-0x2*_0x43af0b&0x6)):0x0){_0x5468b3=_0x18eedc['indexOf'](_0x5468b3);}for(let _0x353812=0x0,_0x51272b=_0xf1499e['length'];_0x353812<_0x51272b;_0x353812++){_0x3b4280+='%'+('00'+_0xf1499e['charCodeAt'](_0x353812)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b4280);};a0_0x382a['PabCWv']=_0x3c6525,a0_0x382a['JqmnYa']={},a0_0x382a['IjnGlN']=!![];}const _0x37ddcf=_0x1f91a7[0x0],_0x10eb3b=_0x19cbe0+_0x37ddcf,_0x5ad37b=a0_0x382a['JqmnYa'][_0x10eb3b];return!_0x5ad37b?(_0x382a09=a0_0x382a['PabCWv'](_0x382a09),a0_0x382a['JqmnYa'][_0x10eb3b]=_0x382a09):_0x382a09=_0x5ad37b,_0x382a09;}function a0_0x1f91(){const _0xe53363=['Dg9iyxzLuhjVCgvYDhK','q09ntuforfm','mJqZnMvPr29ZtW','A2v5','mJa0owrLBM51Ba','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','Dg9uAhjVDW','tuvtu0fhrv9msvnux0HfsuDiva','veLnsu5h','reLtq09otKvdveve','CgvUzgLUz1jLCxvLC3rZ','CxvLDwvKtwvZC2fNzxm','v2vIu29JA2v0twfUywDLCIbOzwXWzxiGBwv0Ag9KCYb3B3jR','ohjgAhfjAq','Dg9nyxrJAa','tKvuv09ssW','CMvJB25Uzwn0qxr0zw1WDhm','CMvTB3zLtwLKzgXLD2fYzq','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbTAwrKBgv3yxjL','su1br0vFuKvtvuXu','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','CMvNAxn0zxjiyw5KBgvY','z2vUzxjHDgvszxf1zxn0swq','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','Bg9JywXOB3n0','ndK5ndK3mg1Ry1rZDW','Dg9czurLzMLUzwq','DgvZDc1TzxnZywDL','quDftLrFtu9erv9dsefor0ve','DMvUzg9Ys2v5C0nVDw50','vuLFreLnru5tsu9ouW','mvrsDfDhyq','Dg9czq','mZCYodqXnwD5C3rhAW','Bg94AwfbCgLlzxK','BwLKzgXLD2fYzq','DMvUzg9Ys2v5CW','u0LerujbuL9xsurusa','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','BgvUz3rO','lI4VlI4VyxbPl3nLC3nPB24UANm','ndy5nJu5nK5lEvj4sG','twvZC2fNzvjVDxrLCIbJyw4GCMvNAxn0zxiGyw5KihvUCMvNAxn0zxiGAgfUzgXLCNm','Dg9czuDYzwf0zxjuAgfU','BNvTyMvY','DgvZDa','DxjS','y2XLyxi','z2v0uhjVAMvJDerPCG','otC3mty0mLvsyvvhqW','DgvZDc1RzxK','AxnwywXPza','BM90lweTzNvUy3rPB24','Dg9fCxvHBa','zgLZy29UBMvJDgvK','mJK4mJm5ouDXzxnmEq','CMvJzwL2zwrbDa','AgfZsgfUzgXLCG','Dg9czvrYDxrOEq','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','ywXSB3DLzc10ExbL','BM90','tuvtu0fhrv9dt05gsuC','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLigHLBhbLCNmGy3jLyxrLihzHBgLKig1PzgrSzxDHCMu','nZy5oduYq3nSwhff','Cg9YDa','AgfZtg94AwflzxK','zNvUy3rPB24','C2vZC2LVBKLK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','Dw5YzwDPC3rLCKHHBMrSzxi'];a0_0x1f91=function(){return _0xe53363;};return a0_0x1f91();}const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x53adac=a0_0x382a,_0xf1499e=await import('../../config/constants.js');expect(_0xf1499e[_0x53adac(0x11d)])[_0x53adac(0x119)](),expect(_0xf1499e[_0x53adac(0x13d)])['toBeDefined'](),expect(_0xf1499e['PAGINATION'])['toBeDefined'](),expect(_0xf1499e[_0x53adac(0x106)])['toBeDefined'](),expect(_0xf1499e['NETWORK'])['toBeDefined'](),expect(_0xf1499e['CONNECTION_STATE'])[_0x53adac(0x119)](),expect(_0xf1499e['AGENT_MODE'])[_0x53adac(0x119)](),expect(_0xf1499e['WS_MESSAGE_TYPE'])[_0x53adac(0x119)](),expect(_0xf1499e['API_ENDPOINTS'])[_0x53adac(0x119)](),expect(_0xf1499e[_0x53adac(0x147)])[_0x53adac(0x119)](),expect(_0xf1499e[_0x53adac(0x10d)]['DEFAULT_HOST'])[_0x53adac(0x11f)](_0x53adac(0x117)),expect(_0xf1499e[_0x53adac(0x10d)]['DEFAULT_PORT'])['toBe'](0x1f90),expect(_0xf1499e['CONNECTION_STATE']['DISCONNECTED'])[_0x53adac(0x11f)](_0x53adac(0x135)),expect(_0xf1499e['CONNECTION_STATE']['CONNECTED'])['toBe']('connected');}),test('WebSocketManager class can be imported',async()=>{const _0x1fc2c2=a0_0x382a,{WebSocketManager:_0x3b4280}=await import('../../api/websocket.js');expect(_0x3b4280)[_0x1fc2c2(0x119)](),expect(typeof _0x3b4280)[_0x1fc2c2(0x11f)]('function');const _0x43af0b=new _0x3b4280(_0x1fc2c2(0x117),0x1f90);expect(_0x43af0b)['toBeDefined'](),expect(_0x43af0b['host'])[_0x1fc2c2(0x11f)]('localhost'),expect(_0x43af0b[_0x1fc2c2(0x140)])['toBe'](0x1f90),expect(_0x43af0b[_0x1fc2c2(0x12d)])[_0x1fc2c2(0x11f)]('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0x3ea2d8=a0_0x382a,{SessionManager:_0x1d82b1}=await import(_0x3ea2d8(0x127));expect(_0x1d82b1)['toBeDefined'](),expect(typeof _0x1d82b1)['toBe'](_0x3ea2d8(0x142));const _0x5468b3=new _0x1d82b1(_0x3ea2d8(0x117),0x1f90);expect(_0x5468b3)[_0x3ea2d8(0x119)](),expect(_0x5468b3['host'])['toBe']('localhost'),expect(_0x5468b3[_0x3ea2d8(0x140)])['toBe'](0x1f90),expect(_0x5468b3['baseUrl'])['toBe']('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x249220=a0_0x382a,{MessageRouter:_0x1807e7}=await import(_0x249220(0x144)),{WebSocketManager:_0x353812}=await import(_0x249220(0x113));expect(_0x1807e7)['toBeDefined'](),expect(typeof _0x1807e7)[_0x249220(0x11f)](_0x249220(0x142));const _0x51272b=new _0x353812(_0x249220(0x117),0x1f90),_0xdec79d=new _0x1807e7(_0x51272b);expect(_0xdec79d)['toBeDefined'](),expect(_0xdec79d['ws'])['toBe'](_0x51272b);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0xf3e203=a0_0x382a,{loggingMiddleware:_0x54748c,filterMiddleware:_0x56ec08,transformMiddleware:_0x58ce60,timestampMiddleware:_0xb68f58,validationMiddleware:_0x325257}=await import('../../api/messageRouter.js');expect(typeof _0x54748c)[_0xf3e203(0x11f)](_0xf3e203(0x142)),expect(typeof _0x56ec08)['toBe'](_0xf3e203(0x142)),expect(typeof _0x58ce60)[_0xf3e203(0x11f)](_0xf3e203(0x142)),expect(typeof _0xb68f58)['toBe']('function'),expect(typeof _0x325257)[_0xf3e203(0x11f)](_0xf3e203(0x142));}),test('useConnection hook can be imported',async()=>{const _0x8542d1=a0_0x382a,{useConnection:_0x2127c5,useConnectionStatus:_0x481b81}=await import('../../state/useConnection.js');expect(_0x2127c5)[_0x8542d1(0x119)](),expect(typeof _0x2127c5)[_0x8542d1(0x11f)](_0x8542d1(0x142)),expect(_0x481b81)['toBeDefined'](),expect(typeof _0x481b81)[_0x8542d1(0x11f)]('function');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x191ff8=a0_0x382a;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x318ea8=a0_0x382a,{WebSocketManager:_0x6999ae}=await import(_0x318ea8(0x113)),{CONNECTION_STATE:_0x268872}=await import('../../config/constants.js'),_0xdbce1e=new _0x6999ae('test-host',0x2382);expect(_0xdbce1e['state'])['toBe'](_0x268872[_0x318ea8(0x107)]),expect(_0xdbce1e['sessionId'])[_0x318ea8(0x11f)](null),expect(_0xdbce1e['messageQueue'])[_0x318ea8(0x134)]([]),expect(_0xdbce1e[_0x318ea8(0x10e)])['toBe'](0x0),expect(_0xdbce1e['shouldReconnect'])[_0x318ea8(0x11f)](!![]);}),test(_0x191ff8(0x13a),async()=>{const _0x4c7a9b=_0x191ff8,{SessionManager:_0x20b9f4}=await import(_0x4c7a9b(0x127)),_0x143513=new _0x20b9f4('test-host',0x2382);expect(_0x143513[_0x4c7a9b(0x143)])[_0x4c7a9b(0x11f)](null),expect(_0x143513['projectDir'])[_0x4c7a9b(0x11f)](null),expect(_0x143513[_0x4c7a9b(0x121)])[_0x4c7a9b(0x11f)](null),expect(_0x143513['vendorKeys'])['toEqual']({}),expect(_0x143513['isValid']())[_0x4c7a9b(0x11f)](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x345ed4=_0x191ff8,{MessageRouter:_0x536c1a}=await import(_0x345ed4(0x144)),{WebSocketManager:_0x277784}=await import(_0x345ed4(0x113)),{WS_MESSAGE_TYPE:_0x3f168f}=await import(_0x345ed4(0x110)),_0x2cf90a=new _0x277784(_0x345ed4(0x117),0x1f90),_0x5d6430=new _0x536c1a(_0x2cf90a);expect(_0x5d6430[_0x345ed4(0x138)](_0x3f168f['MESSAGE_ADDED']))[_0x345ed4(0x11f)](!![]),expect(_0x5d6430['hasHandler'](_0x3f168f[_0x345ed4(0x11b)]))['toBe'](!![]),expect(_0x5d6430['hasHandler'](_0x3f168f['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0x5d6430['hasHandler'](_0x3f168f['COMPACTION_EVENT']))['toBe'](!![]),expect(_0x5d6430['hasHandler'](_0x3f168f[_0x345ed4(0x112)]))[_0x345ed4(0x11f)](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x3443a0=_0x191ff8,{MessageRouter:_0x2cd604}=await import(_0x3443a0(0x144)),{WebSocketManager:_0x570cdc}=await import('../../api/websocket.js'),_0x4153ae=new _0x570cdc('localhost',0x1f90),_0x4976f2=new _0x2cd604(_0x4153ae),_0x1505c9=_0x163f26=>_0x163f26;expect(_0x4976f2['middleware']['length'])['toBeGreaterThanOrEqual'](0x0),_0x4976f2['use'](_0x1505c9);const _0x10c0b7=_0x4976f2['middleware']['length'];expect(_0x10c0b7)[_0x3443a0(0x12a)](0x0),_0x4976f2[_0x3443a0(0x10f)](_0x1505c9),expect(_0x4976f2[_0x3443a0(0x122)][_0x3443a0(0x126)])[_0x3443a0(0x11f)](_0x10c0b7-0x1);}),test(_0x191ff8(0x14b),async()=>{const _0x3ca52b=_0x191ff8,{SessionManager:_0x2f6c61}=await import(_0x3ca52b(0x127)),_0xf45f9e=new _0x2f6c61('localhost',0x1f90);expect(_0xf45f9e['getSessionId']())[_0x3ca52b(0x11f)](null),expect(_0xf45f9e[_0x3ca52b(0x12f)]())['toBe'](null),expect(_0xf45f9e['isValid']())['toBe'](![]);const _0xceeb8=_0xf45f9e['getSessionInfo']();expect(_0xceeb8)['toHaveProperty']('sessionId'),expect(_0xceeb8)[_0x3ca52b(0x146)]('projectDir'),expect(_0xceeb8)[_0x3ca52b(0x146)](_0x3ca52b(0x141)),expect(_0xceeb8)[_0x3ca52b(0x146)](_0x3ca52b(0x11c));}),test(_0x191ff8(0x10a),async()=>{const _0x29f9dc=_0x191ff8,{WebSocketManager:_0x318c81}=await import(_0x29f9dc(0x113)),{CONNECTION_STATE:_0x44cb49}=await import('../../config/constants.js'),_0x1a8a6e=new _0x318c81('localhost',0x1f90);expect(_0x1a8a6e['getState']())[_0x29f9dc(0x11f)](_0x44cb49[_0x29f9dc(0x107)]),expect(_0x1a8a6e['isConnected']())[_0x29f9dc(0x11f)](![]),expect(_0x1a8a6e['getSessionId']())['toBe'](null);const _0x2abf07=_0x1a8a6e['getStats']();expect(_0x2abf07)[_0x29f9dc(0x146)]('state'),expect(_0x2abf07)['toHaveProperty']('sessionId'),expect(_0x2abf07)[_0x29f9dc(0x146)](_0x29f9dc(0x10e)),expect(_0x2abf07)[_0x29f9dc(0x146)](_0x29f9dc(0x109)),expect(_0x2abf07)['toHaveProperty'](_0x29f9dc(0x108));}),test(_0x191ff8(0x129),async()=>{const _0x1c609d=_0x191ff8,{MessageRouter:_0x4ec4e5}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x36e5ff}=await import('../../api/websocket.js'),_0x2ae412=new _0x36e5ff(_0x1c609d(0x117),0x1f90),_0xd8b798=new _0x4ec4e5(_0x2ae412),_0x201b56=()=>{};expect(_0xd8b798[_0x1c609d(0x138)](_0x1c609d(0x11a)))[_0x1c609d(0x11f)](![]),_0xd8b798[_0x1c609d(0x114)]('test-message',_0x201b56),expect(_0xd8b798[_0x1c609d(0x138)]('test-message'))['toBe'](!![]),_0xd8b798[_0x1c609d(0x145)](_0x1c609d(0x11a)),expect(_0xd8b798[_0x1c609d(0x138)]('test-message'))['toBe'](![]);}),test(_0x191ff8(0x13e),async()=>{const _0x248e06=_0x191ff8,{loggingMiddleware:_0x3b061a,timestampMiddleware:_0x36470e,filterMiddleware:_0x3812b5}=await import('../../api/messageRouter.js'),_0x1a0751=_0x3b061a();expect(typeof _0x1a0751)[_0x248e06(0x11f)](_0x248e06(0x142));const _0xbd1329=_0x36470e();expect(typeof _0xbd1329)['toBe'](_0x248e06(0x142));const _0x4430e2={'type':_0x248e06(0x12c)},_0x33d472=_0xbd1329(_0x4430e2);expect(_0x33d472)[_0x248e06(0x146)](_0x248e06(0x137)),expect(_0x33d472['type'])[_0x248e06(0x11f)](_0x248e06(0x12c));const _0xe2cb85=_0x3812b5([_0x248e06(0x13b)]);expect(typeof _0xe2cb85)['toBe']('function'),expect(_0xe2cb85({'type':_0x248e06(0x13b)}))[_0x248e06(0x139)](),expect(_0xe2cb85({'type':'blocked-type'}))[_0x248e06(0x11f)](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x4f5f1b=_0x191ff8,_0x30c0c7=await import('../../config/constants.js');expect(typeof _0x30c0c7[_0x4f5f1b(0x106)]['WEBSOCKET_RECONNECT_DELAY'])[_0x4f5f1b(0x11f)]('number'),expect(typeof _0x30c0c7[_0x4f5f1b(0x106)]['WEBSOCKET_PING_INTERVAL'])[_0x4f5f1b(0x11f)](_0x4f5f1b(0x12b)),expect(typeof _0x30c0c7[_0x4f5f1b(0x10d)]['DEFAULT_PORT'])['toBe']('number'),expect(typeof _0x30c0c7[_0x4f5f1b(0x10d)]['MAX_RETRIES'])[_0x4f5f1b(0x11f)](_0x4f5f1b(0x12b)),expect(typeof _0x30c0c7['NETWORK']['HTTP_TIMEOUT'])['toBe']('number'),expect(typeof _0x30c0c7['UI_DIMENSIONS'][_0x4f5f1b(0x105)])[_0x4f5f1b(0x11f)]('number'),expect(typeof _0x30c0c7['UI_DIMENSIONS'][_0x4f5f1b(0x124)])[_0x4f5f1b(0x11f)]('number');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x1b2883=a0_0x382a;test('MessageRouter\x20throws\x20on\x20invalid\x20handler',async()=>{const _0x393557=a0_0x382a,{MessageRouter:_0x4f3bc9}=await import(_0x393557(0x144)),{WebSocketManager:_0xed2221}=await import('../../api/websocket.js'),_0x5ccf76=new _0xed2221('localhost',0x1f90),_0x12149b=new _0x4f3bc9(_0x5ccf76);expect(()=>{const _0x20373e=_0x393557;_0x12149b[_0x20373e(0x114)]('test',_0x20373e(0x133));})[_0x393557(0x14c)]('Handler\x20must\x20be\x20a\x20function');}),test(_0x1b2883(0x111),async()=>{const _0x350ec3=_0x1b2883,{MessageRouter:_0x52a83b}=await import(_0x350ec3(0x144)),{WebSocketManager:_0x4cf8e8}=await import(_0x350ec3(0x113)),_0x6e5e54=new _0x4cf8e8('localhost',0x1f90),_0x129b53=new _0x52a83b(_0x6e5e54);expect(()=>{_0x129b53['use']('not-a-function');})['toThrow']('Middleware\x20must\x20be\x20a\x20function');}),test(_0x1b2883(0x125),async()=>{const _0x4dd5d7=_0x1b2883,{SessionManager:_0x460442}=await import(_0x4dd5d7(0x127)),_0x3b288b=new _0x460442(_0x4dd5d7(0x117),0x1f90);_0x3b288b['sessionId']='test-123',_0x3b288b['projectDir']='/test/dir',_0x3b288b[_0x4dd5d7(0x121)]=_0x4dd5d7(0x131),_0x3b288b[_0x4dd5d7(0x123)]={'openai':_0x4dd5d7(0x149)},expect(_0x3b288b[_0x4dd5d7(0x132)]())[_0x4dd5d7(0x11f)](!![]),_0x3b288b[_0x4dd5d7(0x12e)](),expect(_0x3b288b['sessionId'])[_0x4dd5d7(0x11f)](null),expect(_0x3b288b['projectDir'])['toBe'](null),expect(_0x3b288b['loxiaApiKey'])['toBe'](null),expect(_0x3b288b[_0x4dd5d7(0x123)])['toEqual']({}),expect(_0x3b288b[_0x4dd5d7(0x132)]())['toBe'](![]);}),test(_0x1b2883(0x116),async()=>{const _0x5dcac7=_0x1b2883,{WebSocketManager:_0x3810cb}=await import('../../api/websocket.js'),_0x4beecb=new _0x3810cb(_0x5dcac7(0x117),0x1f90),_0x46132a=_0x4beecb['generateRequestId'](),_0x443efd=_0x4beecb[_0x5dcac7(0x115)](),_0x56584d=_0x4beecb[_0x5dcac7(0x115)]();expect(_0x46132a)[_0x5dcac7(0x13c)][_0x5dcac7(0x11f)](_0x443efd),expect(_0x443efd)[_0x5dcac7(0x13c)]['toBe'](_0x56584d),expect(_0x46132a)['not']['toBe'](_0x56584d),expect(_0x46132a)['toMatch'](/^req-\d+-\d+$/),expect(_0x443efd)[_0x5dcac7(0x10c)](/^req-\d+-\d+$/),expect(_0x56584d)[_0x5dcac7(0x10c)](/^req-\d+-\d+$/);});});
@@ -1 +1 @@
1
- function a0_0x4d6b(_0x4cf1c6,_0x2800b7){_0x4cf1c6=_0x4cf1c6-0x1ea;const _0x4b48a4=a0_0x4b48();let _0x4d6b41=_0x4b48a4[_0x4cf1c6];if(a0_0x4d6b['XoOycR']===undefined){var _0xc34ce1=function(_0x596d1b){const _0x4da1bd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1a6b80='',_0x9fe1df='';for(let _0x4a7da2=0x0,_0x3fef64,_0x33dbde,_0x488ca9=0x0;_0x33dbde=_0x596d1b['charAt'](_0x488ca9++);~_0x33dbde&&(_0x3fef64=_0x4a7da2%0x4?_0x3fef64*0x40+_0x33dbde:_0x33dbde,_0x4a7da2++%0x4)?_0x1a6b80+=String['fromCharCode'](0xff&_0x3fef64>>(-0x2*_0x4a7da2&0x6)):0x0){_0x33dbde=_0x4da1bd['indexOf'](_0x33dbde);}for(let _0x52d715=0x0,_0x2f7554=_0x1a6b80['length'];_0x52d715<_0x2f7554;_0x52d715++){_0x9fe1df+='%'+('00'+_0x1a6b80['charCodeAt'](_0x52d715)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x9fe1df);};a0_0x4d6b['UBSMaj']=_0xc34ce1,a0_0x4d6b['aRAzzy']={},a0_0x4d6b['XoOycR']=!![];}const _0x109f71=_0x4b48a4[0x0],_0xc026d6=_0x4cf1c6+_0x109f71,_0x130541=a0_0x4d6b['aRAzzy'][_0xc026d6];return!_0x130541?(_0x4d6b41=a0_0x4d6b['UBSMaj'](_0x4d6b41),a0_0x4d6b['aRAzzy'][_0xc026d6]=_0x4d6b41):_0x4d6b41=_0x130541,_0x4d6b41;}const a0_0x3a831c=a0_0x4d6b;function a0_0x4b48(){const _0x1a0aec=['t1jdsevtvfjbve9s','ywXS','quDftLrFtu9erv9dsefor0ve','mZu1mJyWtLzxEwv5','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','v2vIu29JA2v0twfUywDLCG','tuvtu0fhrv9st0XfignVBNn0yw50CYbHCMuGzgvMAw5Lza','C3LZDgvT','AgfZsgfUzgXLCG','DxnLtwvZC2fNzxm','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','nJG2mJjguKXIBvK','vvnfuG','tufyx1bbr0vFu0LArq','nti5owD3q0PeAW','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','ywDLBNrFBw9Kzv9JAgfUz2vK','Dg9czuDYzwf0zxjuAgfU','uefhsu5bveLptIbSAw1PDcbKB2vZig5VDcbLEgnLzwqGtufyx1bbr0vFu0LArq','uefhrv9tsvPf','CMvWzwf0','mte5ndu3nJbPtfrNAuG','DxnLtwvZC2fNzxmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','Dg9czuXLC3nuAgfUt3jfCxvHBa','qvntsvnuqu5u','tuvtu0fhrv9uwvbf','tufyx01fu1nbr0vtx0rju1bmqvK','BgvUz3rO','vvnfuL9nrvntquDf','ndeWnhbKq3vTqW','mJmWntCWn0XHz0nZrG','Dg9mB3DLCKnHC2u','BwvZC2fNzv9HzgrLza','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','odaWmgT6DwrXCW','tuvtu0fhrv9brerfra','u1Ltvevnx05pveLgsunbveLptG','zxHLy3v0Aw9Ux3n0B3bWzwq','Dg9czurLzMLUzwq','u1Ltvevn','mtm1nNHiy0XrCG','Dg9czq','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZifzHBgLKyxrPB24','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','C3LZDgvTlw5VDgLMAwnHDgLVBG','l2fWAs9VCMnOzxn0CMf0B3i','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','BNvTyMvY','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','mte2mJCXnxHysMXYAG','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','tufyx01fu1nbr0vFtevor1ri','mKjHuM51tq','twvZC2fNzsbnyw5Hz2vTzw50ic0GrxjYB3iGsgfUzgXPBMC','zgvMyxvSDa'];a0_0x4b48=function(){return _0x1a0aec;};return a0_0x4b48();}(function(_0x232460,_0x6dbf9f){const _0x331abc=a0_0x4d6b,_0x5e8da6=_0x232460();while(!![]){try{const _0x291104=-parseInt(_0x331abc(0x1fe))/0x1*(-parseInt(_0x331abc(0x20c))/0x2)+parseInt(_0x331abc(0x220))/0x3+-parseInt(_0x331abc(0x204))/0x4+parseInt(_0x331abc(0x1fb))/0x5+-parseInt(_0x331abc(0x1f2))/0x6*(-parseInt(_0x331abc(0x20f))/0x7)+parseInt(_0x331abc(0x1ec))/0x8*(parseInt(_0x331abc(0x21f))/0x9)+-parseInt(_0x331abc(0x216))/0xa;if(_0x291104===_0x6dbf9f)break;else _0x5e8da6['push'](_0x5e8da6['shift']());}catch(_0x574311){_0x5e8da6['push'](_0x5e8da6['shift']());}}}(a0_0x4b48,0x64ef1));import{describe,test,expect}from'@jest/globals';describe(a0_0x3a831c(0x1f8),()=>{test('useMessages hook can be imported',async()=>{const {useMessages:_0x1a6b80}=await import('../../state/useMessages.js');expect(_0x1a6b80)['toBeDefined'](),expect(typeof _0x1a6b80)['toBe']('function');}),test('useMessages is default export',async()=>{const _0x38a6b9=a0_0x4d6b,module=await import('../../state/useMessages.js');expect(module['default'])[_0x38a6b9(0x1f0)](),expect(typeof module[_0x38a6b9(0x200)])['toBe']('function'),expect(module['default'])['toBe'](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x25fefb=a0_0x4d6b,{useMessageCount:_0x9fe1df}=await import('../../state/useMessages.js');expect(_0x9fe1df)['toBeDefined'](),expect(typeof _0x9fe1df)[_0x25fefb(0x1f3)]('function');});}),describe('Message\x20Management\x20-\x20Constants',()=>{const _0x352fd8=a0_0x3a831c;test(_0x352fd8(0x207),async()=>{const _0x1fdb8c=_0x352fd8,{MESSAGE_ROLE:_0x4a7da2}=await import('../../config/constants.js');expect(_0x4a7da2)['toBeDefined'](),expect(_0x4a7da2[_0x1fdb8c(0x20d)])['toBe']('user'),expect(_0x4a7da2[_0x1fdb8c(0x21a)])[_0x1fdb8c(0x1f3)]('assistant'),expect(_0x4a7da2['SYSTEM'])[_0x1fdb8c(0x1f3)](_0x1fdb8c(0x208));}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x30fa36=_0x352fd8,{MESSAGE_TYPE:_0x3fef64}=await import(_0x30fa36(0x1fc));expect(_0x3fef64)[_0x30fa36(0x1f0)](),expect(_0x3fef64[_0x30fa36(0x21e)])[_0x30fa36(0x1f3)]('user-message'),expect(_0x3fef64['AGENT_RESPONSE'])['toBe']('agent-response'),expect(_0x3fef64[_0x30fa36(0x1ee)])[_0x30fa36(0x1f3)](_0x30fa36(0x1f6));}),test(_0x352fd8(0x210),async()=>{const _0xac7b61=_0x352fd8,{MESSAGE_CONFIG:_0x33dbde}=await import('../../config/constants.js');expect(_0x33dbde)['toBeDefined'](),expect(_0x33dbde['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(_0x33dbde[_0xac7b61(0x21c)])['toBeDefined'](),expect(typeof _0x33dbde[_0xac7b61(0x1fd)])['toBe'](_0xac7b61(0x1f9)),expect(typeof _0x33dbde['MAX_MESSAGES_DISPLAY'])['toBe']('number');}),test('PAGINATION\x20constants\x20are\x20defined',async()=>{const _0x31be37=_0x352fd8,{PAGINATION:_0x488ca9}=await import(_0x31be37(0x1fc));expect(_0x488ca9)['toBeDefined'](),expect(_0x488ca9['PAGE_SIZE'])['toBeDefined'](),expect(_0x488ca9['MAX_PAGE_SIZE'])['toBeDefined'](),expect(typeof _0x488ca9[_0x31be37(0x214)])[_0x31be37(0x1f3)]('number'),expect(typeof _0x488ca9[_0x31be37(0x20e)])['toBe'](_0x31be37(0x1f9));}),test('WS_MESSAGE_TYPE\x20includes\x20message\x20events',async()=>{const _0x26bef6=_0x352fd8,{WS_MESSAGE_TYPE:_0x52d715}=await import(_0x26bef6(0x1fc));expect(_0x52d715)[_0x26bef6(0x1f0)](),expect(_0x52d715['MESSAGE_ADDED'])[_0x26bef6(0x1f3)](_0x26bef6(0x1ea)),expect(_0x52d715[_0x26bef6(0x203)])['toBe'](_0x26bef6(0x211)),expect(_0x52d715['EXECUTION_STOPPED'])['toBe'](_0x26bef6(0x1ef));});}),describe('Message\x20Management\x20-\x20Integration',()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x2c238c=a0_0x4d6b,{useMessages:_0x2f7554}=await import('../../state/useMessages.js'),{SessionManager:_0x3610e4}=await import('../../api/session.js'),{MessageRouter:_0x3a5321}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x15b90e}=await import(_0x2c238c(0x20b)),_0x290e1c=new _0x3610e4('localhost',0x1f90),_0x24585e=new _0x15b90e('localhost',0x1f90),_0x76c1c2=new _0x3a5321(_0x24585e);expect(_0x290e1c)[_0x2c238c(0x1f0)](),expect(_0x76c1c2)[_0x2c238c(0x1f0)](),expect(typeof _0x2f7554)['toBe']('function');}),test('Full message management stack can be imported together',async()=>{const _0x2d3b92=a0_0x4d6b,[_0x4d1a55,_0x3f98af,_0x84ee58,_0x4d2ec1,_0x20b5a3]=await Promise[_0x2d3b92(0x202)]([import(_0x2d3b92(0x1fc)),import('../../api/session.js'),import(_0x2d3b92(0x20b)),import('../../api/messageRouter.js'),import('../../state/useMessages.js')]);expect(_0x4d1a55['MESSAGE_ROLE'])[_0x2d3b92(0x1f0)](),expect(_0x4d1a55[_0x2d3b92(0x21b)])['toBeDefined'](),expect(_0x4d1a55['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x3f98af['SessionManager'])[_0x2d3b92(0x1f0)](),expect(_0x84ee58[_0x2d3b92(0x206)])[_0x2d3b92(0x1f0)](),expect(_0x4d2ec1['MessageRouter'])['toBeDefined'](),expect(_0x20b5a3[_0x2d3b92(0x20a)])[_0x2d3b92(0x1f0)]();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{test('Orchestrator\x20endpoint\x20can\x20be\x20used\x20for\x20message\x20operations',async()=>{const _0x3651d1=a0_0x4d6b,{API_ENDPOINTS:_0x2b2551}=await import('../../config/constants.js');expect(_0x2b2551[_0x3651d1(0x201)])[_0x3651d1(0x1f0)](),expect(_0x2b2551['ORCHESTRATOR'])['toBe'](_0x3651d1(0x1f7));}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x5a5eaa=a0_0x4d6b,{API_ENDPOINTS:_0x293684}=await import(_0x5a5eaa(0x1fc));expect(_0x293684['ORCHESTRATOR'])['toMatch'](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x11b322=a0_0x3a831c;test(_0x11b322(0x217),async()=>{const _0x5c2a66=_0x11b322,{useMessages:_0x356618}=await import(_0x5c2a66(0x1eb));expect(_0x356618['length'])[_0x5c2a66(0x1f3)](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x21cc00=_0x11b322,{useMessageCount:_0x30fb93}=await import(_0x21cc00(0x1eb));expect(_0x30fb93['length'])[_0x21cc00(0x1f3)](0x1);});}),describe(a0_0x3a831c(0x1f4),()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0xdc69a3=a0_0x4d6b,{MESSAGE_CONFIG:_0x5082b8}=await import(_0xdc69a3(0x1fc));expect(_0x5082b8['MAX_MESSAGE_LENGTH'])['toBeGreaterThan'](0x0),expect(_0x5082b8[_0xdc69a3(0x1fd)])['toBeLessThanOrEqual'](0x186a0),expect(_0x5082b8[_0xdc69a3(0x21c)])['toBeGreaterThan'](0x0),expect(_0x5082b8[_0xdc69a3(0x21c)])[_0xdc69a3(0x219)](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x7ea158=a0_0x4d6b,{PAGINATION:_0x4b7db2}=await import(_0x7ea158(0x1fc));expect(_0x4b7db2[_0x7ea158(0x214)])['toBeGreaterThan'](0x0),expect(_0x4b7db2[_0x7ea158(0x214)])['toBeLessThanOrEqual'](0x3e8),expect(_0x4b7db2['MAX_PAGE_SIZE'])['toBeGreaterThanOrEqual'](_0x4b7db2['PAGE_SIZE']);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x29f33b=a0_0x4d6b,{MESSAGE_ROLE:_0x2cc2dd}=await import(_0x29f33b(0x1fc));expect(_0x2cc2dd['USER'])['toBe'](_0x2cc2dd['USER'][_0x29f33b(0x221)]()),expect(_0x2cc2dd['ASSISTANT'])['toBe'](_0x2cc2dd['ASSISTANT']['toLowerCase']()),expect(_0x2cc2dd[_0x29f33b(0x1f1)])['toBe'](_0x2cc2dd['SYSTEM']['toLowerCase']());});}),describe(a0_0x3a831c(0x218),()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0xc05d2d=a0_0x4d6b,{MessageRouter:_0x5e5bbe}=await import(_0xc05d2d(0x205)),{WebSocketManager:_0x501dd7}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x1e6649}=await import('../../config/constants.js'),_0x257984=new _0x501dd7('localhost',0x1f90),_0x15ef6b=new _0x5e5bbe(_0x257984);expect(_0x15ef6b[_0xc05d2d(0x209)](_0x1e6649[_0xc05d2d(0x1ed)]))[_0xc05d2d(0x1f3)](!![]),expect(_0x15ef6b[_0xc05d2d(0x209)](_0x1e6649['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe(a0_0x3a831c(0x1ff),()=>{const _0x3094a2=a0_0x3a831c;test(_0x3094a2(0x1f5),async()=>{const _0x4df890=_0x3094a2,{MESSAGE_CONFIG:_0x549708}=await import('../../config/constants.js');expect(_0x549708['MAX_MESSAGE_LENGTH'])['toBeDefined'](),expect(typeof _0x549708[_0x4df890(0x1fd)])[_0x4df890(0x1f3)]('number');const _0x191d29='a'[_0x4df890(0x215)](_0x549708['MAX_MESSAGE_LENGTH']+0x1);expect(_0x191d29[_0x4df890(0x21d)])[_0x4df890(0x212)](_0x549708[_0x4df890(0x1fd)]);}),test('MESSAGE_CONFIG\x20enforces\x20maximum\x20display\x20messages',async()=>{const _0xd4dd1d=_0x3094a2,{MESSAGE_CONFIG:_0x1d5350}=await import('../../config/constants.js');expect(_0x1d5350[_0xd4dd1d(0x21c)])['toBeDefined'](),expect(typeof _0x1d5350[_0xd4dd1d(0x21c)])['toBe'](_0xd4dd1d(0x1f9)),expect(_0x1d5350[_0xd4dd1d(0x21c)])['toBeGreaterThan'](0x0);});}),describe(a0_0x3a831c(0x1fa),()=>{const _0x37400c=a0_0x3a831c;test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x596677=a0_0x4d6b,{PAGINATION:_0x45533e}=await import('../../config/constants.js'),_0x31ec6f=0x0,_0x51e968=_0x31ec6f*_0x45533e[_0x596677(0x214)];expect(_0x51e968)[_0x596677(0x1f3)](0x0);const _0x521991=0x1,_0x4fbe35=_0x521991*_0x45533e['PAGE_SIZE'];expect(_0x4fbe35)['toBe'](_0x45533e[_0x596677(0x214)]);}),test(_0x37400c(0x213),async()=>{const _0x4de4a7=_0x37400c,{PAGINATION:_0x1670a3}=await import(_0x4de4a7(0x1fc)),_0x5c8f20=0x3e8,_0x550aa3=Math['min'](_0x5c8f20,_0x1670a3['MAX_PAGE_SIZE']);expect(_0x550aa3)['toBeLessThanOrEqual'](_0x1670a3['MAX_PAGE_SIZE']);});});
1
+ const a0_0x5dc8e7=a0_0x82b7;function a0_0x82b7(_0x540df0,_0x666939){_0x540df0=_0x540df0-0x8d;const _0x559a38=a0_0x559a();let _0x82b7f3=_0x559a38[_0x540df0];if(a0_0x82b7['SnijTS']===undefined){var _0x275fd1=function(_0xfd62bf){const _0x47b9f3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4f353b='',_0x524892='';for(let _0x10149e=0x0,_0x1c3877,_0x213be9,_0x171840=0x0;_0x213be9=_0xfd62bf['charAt'](_0x171840++);~_0x213be9&&(_0x1c3877=_0x10149e%0x4?_0x1c3877*0x40+_0x213be9:_0x213be9,_0x10149e++%0x4)?_0x4f353b+=String['fromCharCode'](0xff&_0x1c3877>>(-0x2*_0x10149e&0x6)):0x0){_0x213be9=_0x47b9f3['indexOf'](_0x213be9);}for(let _0x329183=0x0,_0x4451ef=_0x4f353b['length'];_0x329183<_0x4451ef;_0x329183++){_0x524892+='%'+('00'+_0x4f353b['charCodeAt'](_0x329183)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x524892);};a0_0x82b7['EGDkoI']=_0x275fd1,a0_0x82b7['aYWFLc']={},a0_0x82b7['SnijTS']=!![];}const _0x20f858=_0x559a38[0x0],_0x3c4cc2=_0x540df0+_0x20f858,_0x472164=a0_0x82b7['aYWFLc'][_0x3c4cc2];return!_0x472164?(_0x82b7f3=a0_0x82b7['EGDkoI'](_0x82b7f3),a0_0x82b7['aYWFLc'][_0x3c4cc2]=_0x82b7f3):_0x82b7f3=_0x472164,_0x82b7f3;}function a0_0x559a(){const _0x577a02=['u2vZC2LVBK1HBMfNzxi','quDftLrFuKvtue9ou0u','l2fWAs9VCMnOzxn0CMf0B3i','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','nwP3rffmuq','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','DxnLCI1TzxnZywDL','tuvtu0fhrv9brerfra','zNvUy3rPB24','mtrsugnQu3i','zgvMyxvSDa','tufyx01fu1nbr0vFtevor1ri','twvZC2fNzsbnyw5Hz2vTzw50ic0GqvbjievUzhbVAw50CYbwywXPzgf0Aw9U','nZyZmZCYCLPdu05Y','twvZC2fNzsbnyw5Hz2vTzw50ic0GrxjYB3iGsgfUzgXPBMC','vvnfuG','ywDLBNrFBw9Kzv9JAgfUz2vK','t1jdsevtvfjbve9s','uefhsu5bveLptIbSAw1PDcbKB2vZig5VDcbLEgnLzwqGtufyx1bbr0vFu0LArq','mZrRDhr5EwS','Dg9czq','Bg9JywXOB3n0','nte1mdmWmfLLDvHZAW','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','Dg9mB3DLCKnHC2u','Dg9czuXLC3nuAgfUt3jfCxvHBa','mJC2ndi1n0XdBurqBG','mJC1nJe0nfzNtwrtEq','tuvtu0fhrv9dt05gsuC','DxnLtwvZC2fNzxm','Dg9czurLzMLUzwq','ywXS','DxnLCG','uefhrv9tsvPf','mtqXmZvov0n4Avi','tufyx1bbr0vFu0LArq','mJeXmdfutM9iq1u','lI4VlI4VyxbPl3nLC3nPB24UANm','mty1ndHiwhzgsvC','ywDLBNqTCMvZCg9UC2u','qvntsvnuqu5u','CMvWzwf0','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','BNvTyMvY','rvHfq1vusu9ox1nut1bqruq','tufyx01fu1nbr0vtx0rju1bmqvK','BwLU','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','oxjkwNzTAa','mte2ntm3nhnItM1sBG','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbKAxnWBgf5ig1LC3nHz2vZ','Dg9czuDYzwf0zxjuAgfU','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ'];a0_0x559a=function(){return _0x577a02;};return a0_0x559a();}(function(_0x4ee230,_0x317c79){const _0x5e3b24=a0_0x82b7,_0x32b4c3=_0x4ee230();while(!![]){try{const _0x2a66fe=-parseInt(_0x5e3b24(0x90))/0x1*(parseInt(_0x5e3b24(0xb8))/0x2)+-parseInt(_0x5e3b24(0xbf))/0x3+parseInt(_0x5e3b24(0xb2))/0x4*(parseInt(_0x5e3b24(0xa9))/0x5)+parseInt(_0x5e3b24(0x9f))/0x6*(-parseInt(_0x5e3b24(0xae))/0x7)+-parseInt(_0x5e3b24(0xc0))/0x8+-parseInt(_0x5e3b24(0x9e))/0x9*(-parseInt(_0x5e3b24(0xbb))/0xa)+parseInt(_0x5e3b24(0x8e))/0xb*(parseInt(_0x5e3b24(0x92))/0xc);if(_0x2a66fe===_0x317c79)break;else _0x32b4c3['push'](_0x32b4c3['shift']());}catch(_0x220ec4){_0x32b4c3['push'](_0x32b4c3['shift']());}}}(a0_0x559a,0x71788));import{describe,test,expect}from'@jest/globals';describe(a0_0x5dc8e7(0x9d),()=>{test('useMessages hook can be imported',async()=>{const _0x312085=a0_0x82b7,{useMessages:_0x4f353b}=await import('../../state/useMessages.js');expect(_0x4f353b)['toBeDefined'](),expect(typeof _0x4f353b)[_0x312085(0xb9)](_0x312085(0xad));}),test('useMessages is default export',async()=>{const _0x3bf772=a0_0x82b7,module=await import('../../state/useMessages.js');expect(module['default'])[_0x3bf772(0xc3)](),expect(typeof module[_0x3bf772(0xaf)])[_0x3bf772(0xb9)](_0x3bf772(0xad)),expect(module[_0x3bf772(0xaf)])['toBe'](module[_0x3bf772(0xc2)]);}),test('useMessageCount helper hook can be imported',async()=>{const _0x4cfa11=a0_0x82b7,{useMessageCount:_0x524892}=await import('../../state/useMessages.js');expect(_0x524892)['toBeDefined'](),expect(typeof _0x524892)['toBe'](_0x4cfa11(0xad));});}),describe('Message\x20Management\x20-\x20Constants',()=>{const _0x2bdf93=a0_0x5dc8e7;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x40fb56=a0_0x82b7,{MESSAGE_ROLE:_0x10149e}=await import('../../config/constants.js');expect(_0x10149e)[_0x40fb56(0xc3)](),expect(_0x10149e['USER'])['toBe'](_0x40fb56(0xc5)),expect(_0x10149e[_0x40fb56(0x94)])['toBe']('assistant'),expect(_0x10149e['SYSTEM'])['toBe']('system');}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x3acc81=a0_0x82b7,{MESSAGE_TYPE:_0x1c3877}=await import(_0x3acc81(0x9b));expect(_0x1c3877)[_0x3acc81(0xc3)](),expect(_0x1c3877['USER_MESSAGE'])[_0x3acc81(0xb9)](_0x3acc81(0xab)),expect(_0x1c3877[_0x3acc81(0xa6)])[_0x3acc81(0xb9)](_0x3acc81(0x93)),expect(_0x1c3877['SYSTEM_NOTIFICATION'])['toBe']('system-notification');}),test(_0x2bdf93(0x96),async()=>{const _0x315569=_0x2bdf93,{MESSAGE_CONFIG:_0x213be9}=await import(_0x315569(0x9b));expect(_0x213be9)['toBeDefined'](),expect(_0x213be9[_0x315569(0xb0)])[_0x315569(0xc3)](),expect(_0x213be9['MAX_MESSAGES_DISPLAY'])[_0x315569(0xc3)](),expect(typeof _0x213be9['MAX_MESSAGE_LENGTH'])[_0x315569(0xb9)]('number'),expect(typeof _0x213be9[_0x315569(0x99)])[_0x315569(0xb9)]('number');}),test(_0x2bdf93(0xa8),async()=>{const _0x154d46=_0x2bdf93,{PAGINATION:_0x171840}=await import('../../config/constants.js');expect(_0x171840)[_0x154d46(0xc3)](),expect(_0x171840[_0x154d46(0x8d)])[_0x154d46(0xc3)](),expect(_0x171840['MAX_PAGE_SIZE'])['toBeDefined'](),expect(typeof _0x171840[_0x154d46(0x8d)])['toBe']('number'),expect(typeof _0x171840[_0x154d46(0x8f)])[_0x154d46(0xb9)]('number');}),test(_0x2bdf93(0xbc),async()=>{const _0x54003d=_0x2bdf93,{WS_MESSAGE_TYPE:_0x329183}=await import(_0x54003d(0x9b));expect(_0x329183)['toBeDefined'](),expect(_0x329183[_0x54003d(0xac)])['toBe']('message_added'),expect(_0x329183['AGENT_MODE_CHANGED'])['toBe'](_0x54003d(0xb5)),expect(_0x329183[_0x54003d(0x98)])[_0x54003d(0xb9)]('execution_stopped');});}),describe(a0_0x5dc8e7(0x9c),()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x1b11d3=a0_0x82b7,{useMessages:_0x4451ef}=await import('../../state/useMessages.js'),{SessionManager:_0x325d7f}=await import(_0x1b11d3(0x91)),{MessageRouter:_0x1b81f3}=await import(_0x1b11d3(0xa2)),{WebSocketManager:_0xd91faa}=await import('../../api/websocket.js'),_0x93edce=new _0x325d7f('localhost',0x1f90),_0x2a8d64=new _0xd91faa('localhost',0x1f90),_0x3c0a43=new _0x1b81f3(_0x2a8d64);expect(_0x93edce)[_0x1b11d3(0xc3)](),expect(_0x3c0a43)['toBeDefined'](),expect(typeof _0x4451ef)['toBe']('function');}),test('Full message management stack can be imported together',async()=>{const _0x27fc23=a0_0x82b7,[_0x53ede1,_0x412852,_0x140c0d,_0x1c66ea,_0x491757]=await Promise[_0x27fc23(0xc4)]([import('../../config/constants.js'),import('../../api/session.js'),import('../../api/websocket.js'),import(_0x27fc23(0xa2)),import('../../state/useMessages.js')]);expect(_0x53ede1['MESSAGE_ROLE'])['toBeDefined'](),expect(_0x53ede1['MESSAGE_TYPE'])['toBeDefined'](),expect(_0x53ede1[_0x27fc23(0xc1)])[_0x27fc23(0xc3)](),expect(_0x412852[_0x27fc23(0xa5)])['toBeDefined'](),expect(_0x140c0d['WebSocketManager'])[_0x27fc23(0xc3)](),expect(_0x1c66ea['MessageRouter'])['toBeDefined'](),expect(_0x491757['useMessages'])[_0x27fc23(0xc3)]();});}),describe(a0_0x5dc8e7(0xb1),()=>{test('Orchestrator\x20endpoint\x20can\x20be\x20used\x20for\x20message\x20operations',async()=>{const _0x3cf44c=a0_0x82b7,{API_ENDPOINTS:_0x1e6abc}=await import('../../config/constants.js');expect(_0x1e6abc[_0x3cf44c(0xb6)])['toBeDefined'](),expect(_0x1e6abc['ORCHESTRATOR'])['toBe'](_0x3cf44c(0xa7));}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x4d5d6f=a0_0x82b7,{API_ENDPOINTS:_0x3381bf}=await import(_0x4d5d6f(0x9b));expect(_0x3381bf['ORCHESTRATOR'])['toMatch'](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const {useMessages:_0x949f84}=await import('../../state/useMessages.js');expect(_0x949f84['length'])['toBe'](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const {useMessageCount:_0x1c99f9}=await import('../../state/useMessages.js');expect(_0x1c99f9['length'])['toBe'](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x329ad2=a0_0x82b7,{MESSAGE_CONFIG:_0x4103e4}=await import('../../config/constants.js');expect(_0x4103e4[_0x329ad2(0xb0)])[_0x329ad2(0xa1)](0x0),expect(_0x4103e4[_0x329ad2(0xb0)])[_0x329ad2(0xbe)](0x186a0),expect(_0x4103e4[_0x329ad2(0x99)])['toBeGreaterThan'](0x0),expect(_0x4103e4['MAX_MESSAGES_DISPLAY'])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x31a900=a0_0x82b7,{PAGINATION:_0xc1fe88}=await import(_0x31a900(0x9b));expect(_0xc1fe88[_0x31a900(0x8d)])['toBeGreaterThan'](0x0),expect(_0xc1fe88[_0x31a900(0x8d)])['toBeLessThanOrEqual'](0x3e8),expect(_0xc1fe88['MAX_PAGE_SIZE'])['toBeGreaterThanOrEqual'](_0xc1fe88['PAGE_SIZE']);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0xf17205=a0_0x82b7,{MESSAGE_ROLE:_0x3701e3}=await import(_0xf17205(0x9b));expect(_0x3701e3['USER'])[_0xf17205(0xb9)](_0x3701e3[_0xf17205(0xb4)][_0xf17205(0xbd)]()),expect(_0x3701e3[_0xf17205(0x94)])[_0xf17205(0xb9)](_0x3701e3['ASSISTANT'][_0xf17205(0xbd)]()),expect(_0x3701e3['SYSTEM'])['toBe'](_0x3701e3['SYSTEM']['toLowerCase']());});}),describe(a0_0x5dc8e7(0xa4),()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0x41a658=a0_0x82b7,{MessageRouter:_0xd09c1}=await import(_0x41a658(0xa2)),{WebSocketManager:_0x4ff0e8}=await import(_0x41a658(0xa3)),{WS_MESSAGE_TYPE:_0x4bd5ac}=await import('../../config/constants.js'),_0x2fb22a=new _0x4ff0e8(_0x41a658(0xba),0x1f90),_0xd28603=new _0xd09c1(_0x2fb22a);expect(_0xd28603['hasHandler'](_0x4bd5ac['MESSAGE_ADDED']))[_0x41a658(0xb9)](!![]),expect(_0xd28603['hasHandler'](_0x4bd5ac['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe(a0_0x5dc8e7(0xb3),()=>{const _0xd42305=a0_0x5dc8e7;test(_0xd42305(0xaa),async()=>{const _0x2c5c1c=_0xd42305,{MESSAGE_CONFIG:_0x305143}=await import('../../config/constants.js');expect(_0x305143[_0x2c5c1c(0xb0)])['toBeDefined'](),expect(typeof _0x305143[_0x2c5c1c(0xb0)])[_0x2c5c1c(0xb9)]('number');const _0x56e123='a'[_0x2c5c1c(0x95)](_0x305143['MAX_MESSAGE_LENGTH']+0x1);expect(_0x56e123['length'])[_0x2c5c1c(0xa1)](_0x305143['MAX_MESSAGE_LENGTH']);}),test(_0xd42305(0xa0),async()=>{const _0x2a06a3=_0xd42305,{MESSAGE_CONFIG:_0x1ce2fa}=await import('../../config/constants.js');expect(_0x1ce2fa['MAX_MESSAGES_DISPLAY'])[_0x2a06a3(0xc3)](),expect(typeof _0x1ce2fa[_0x2a06a3(0x99)])['toBe'](_0x2a06a3(0x97)),expect(_0x1ce2fa[_0x2a06a3(0x99)])['toBeGreaterThan'](0x0);});}),describe('Message\x20Management\x20-\x20Pagination\x20Logic',()=>{const _0x2dd89c=a0_0x5dc8e7;test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x4d68a6=a0_0x82b7,{PAGINATION:_0x1861e9}=await import(_0x4d68a6(0x9b)),_0x42d0af=0x0,_0x12d995=_0x42d0af*_0x1861e9[_0x4d68a6(0x8d)];expect(_0x12d995)[_0x4d68a6(0xb9)](0x0);const _0x43cb73=0x1,_0x551c9c=_0x43cb73*_0x1861e9[_0x4d68a6(0x8d)];expect(_0x551c9c)['toBe'](_0x1861e9['PAGE_SIZE']);}),test(_0x2dd89c(0xb7),async()=>{const _0x1d5e40=_0x2dd89c,{PAGINATION:_0x496ea4}=await import('../../config/constants.js'),_0x5b7f85=0x3e8,_0x1eb71d=Math[_0x1d5e40(0x9a)](_0x5b7f85,_0x496ea4['MAX_PAGE_SIZE']);expect(_0x1eb71d)['toBeLessThanOrEqual'](_0x496ea4[_0x1d5e40(0x8f)]);});});