@loxia-labs/loxia-autopilot-one 1.0.17 → 1.0.18
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.
- package/README.md +5 -3
- package/bin/cli.js +1 -1
- package/bin/loxia-terminal-v2.js +1 -1
- package/bin/loxia-terminal.js +1 -1
- package/bin/start-with-terminal.js +1 -1
- package/package.json +1 -1
- package/scripts/install-scanners.js +1 -1
- package/src/analyzers/CSSAnalyzer.js +1 -1
- package/src/analyzers/ConfigValidator.js +1 -1
- package/src/analyzers/ESLintAnalyzer.js +1 -1
- package/src/analyzers/JavaScriptAnalyzer.js +1 -1
- package/src/analyzers/PrettierFormatter.js +1 -1
- package/src/analyzers/PythonAnalyzer.js +1 -1
- package/src/analyzers/SecurityAnalyzer.js +1 -1
- package/src/analyzers/TypeScriptAnalyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/detector.js +1 -1
- package/src/analyzers/codeCloneDetector/index.js +1 -1
- package/src/analyzers/codeCloneDetector/parser.js +1 -1
- package/src/analyzers/codeCloneDetector/reporter.js +1 -1
- package/src/analyzers/codeCloneDetector/scanner.js +1 -1
- package/src/core/agentPool.js +1 -1
- package/src/core/agentScheduler.js +1 -1
- package/src/core/contextManager.js +1 -1
- package/src/core/messageProcessor.js +1 -1
- package/src/core/orchestrator.js +1 -1
- package/src/core/stateManager.js +1 -1
- package/src/index.js +1 -1
- package/src/interfaces/cli.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
- package/src/interfaces/terminal/api/apiClient.js +1 -1
- package/src/interfaces/terminal/api/messageRouter.js +1 -1
- package/src/interfaces/terminal/api/session.js +1 -1
- package/src/interfaces/terminal/api/websocket.js +1 -1
- package/src/interfaces/terminal/components/AgentCreator.js +1 -1
- package/src/interfaces/terminal/components/AgentEditor.js +1 -1
- package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
- package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
- package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
- package/src/interfaces/terminal/components/Header.js +1 -1
- package/src/interfaces/terminal/components/HelpPanel.js +1 -1
- package/src/interfaces/terminal/components/InputBox.js +1 -1
- package/src/interfaces/terminal/components/Layout.js +1 -1
- package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
- package/src/interfaces/terminal/components/MessageList.js +1 -1
- package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
- package/src/interfaces/terminal/components/SearchPanel.js +1 -1
- package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
- package/src/interfaces/terminal/components/StatusBar.js +1 -1
- package/src/interfaces/terminal/components/TextInput.js +1 -1
- package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
- package/src/interfaces/terminal/config/constants.js +1 -1
- package/src/interfaces/terminal/index.js +1 -1
- package/src/interfaces/terminal/state/useAgentControl.js +1 -1
- package/src/interfaces/terminal/state/useAgents.js +1 -1
- package/src/interfaces/terminal/state/useConnection.js +1 -1
- package/src/interfaces/terminal/state/useMessages.js +1 -1
- package/src/interfaces/terminal/state/useTools.js +1 -1
- package/src/interfaces/terminal/utils/debugLogger.js +1 -1
- package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
- package/src/interfaces/terminal/utils/theme.js +1 -1
- package/src/interfaces/webServer.js +1 -1
- package/src/modules/fileExplorer/controller.js +1 -1
- package/src/modules/fileExplorer/index.js +1 -1
- package/src/modules/fileExplorer/middleware.js +1 -1
- package/src/modules/fileExplorer/routes.js +1 -1
- package/src/services/agentActivityService.js +1 -1
- package/src/services/aiService.js +1 -1
- package/src/services/apiKeyManager.js +1 -1
- package/src/services/benchmarkService.js +1 -1
- package/src/services/budgetService.js +1 -1
- package/src/services/contextInjectionService.js +1 -1
- package/src/services/conversationCompactionService.js +1 -1
- package/src/services/errorHandler.js +1 -1
- package/src/services/fileAttachmentService.js +1 -1
- package/src/services/modelRouterService.js +1 -1
- package/src/services/modelsService.js +1 -1
- package/src/services/qualityInspector.js +1 -1
- package/src/services/tokenCountingService.js +1 -1
- package/src/tools/agentCommunicationTool.js +1 -1
- package/src/tools/agentDelayTool.js +1 -1
- package/src/tools/asyncToolManager.js +1 -1
- package/src/tools/baseTool.js +1 -1
- package/src/tools/browserTool.js +1 -1
- package/src/tools/cloneDetectionTool.js +1 -1
- package/src/tools/dependencyResolverTool.js +1 -1
- package/src/tools/fileContentReplaceTool.js +1 -1
- package/src/tools/fileSystemTool.js +1 -1
- package/src/tools/fileTreeTool.js +1 -1
- package/src/tools/imageTool.js +1 -1
- package/src/tools/importAnalyzerTool.js +1 -1
- package/src/tools/jobDoneTool.js +1 -1
- package/src/tools/seekTool.js +1 -1
- package/src/tools/staticAnalysisTool.js +1 -1
- package/src/tools/taskManagerTool.js +1 -1
- package/src/tools/terminalTool.js +1 -1
- package/src/tools/webTool.js +1 -1
- package/src/types/agent.js +1 -1
- package/src/types/contextReference.js +1 -1
- package/src/types/conversation.js +1 -1
- package/src/types/toolCommand.js +1 -1
- package/src/utilities/attachmentValidator.js +1 -1
- package/src/utilities/configManager.js +1 -1
- package/src/utilities/constants.js +1 -1
- package/src/utilities/directoryAccessManager.js +1 -1
- package/src/utilities/fileProcessor.js +1 -1
- package/src/utilities/logger.js +1 -1
- package/src/utilities/tagParser.js +1 -1
- package/src/utilities/toolConstants.js +1 -1
- package/src/utilities/userDataDir.js +1 -1
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/index-Cb8CHAFw.css +1 -0
- package/web-ui/build/static/{index-DzOU48ux.js → index-DL2-PyNX.js} +72 -72
- package/web-ui/build/static/index-CRkOpV4k.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x237a75=a0_0xc46e;function a0_0xc46e(_0x210c20,_0x354964){_0x210c20=_0x210c20-0xd4;const _0x5e0214=a0_0x5e02();let _0xc46edb=_0x5e0214[_0x210c20];if(a0_0xc46e['XOngOr']===undefined){var _0x2df674=function(_0x4b73bd){const _0x2aea9f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xa3e356='',_0x5c7525='';for(let _0x3fc95b=0x0,_0x4b6940,_0x40ddd8,_0x18ebdd=0x0;_0x40ddd8=_0x4b73bd['charAt'](_0x18ebdd++);~_0x40ddd8&&(_0x4b6940=_0x3fc95b%0x4?_0x4b6940*0x40+_0x40ddd8:_0x40ddd8,_0x3fc95b++%0x4)?_0xa3e356+=String['fromCharCode'](0xff&_0x4b6940>>(-0x2*_0x3fc95b&0x6)):0x0){_0x40ddd8=_0x2aea9f['indexOf'](_0x40ddd8);}for(let _0x58c33c=0x0,_0x552742=_0xa3e356['length'];_0x58c33c<_0x552742;_0x58c33c++){_0x5c7525+='%'+('00'+_0xa3e356['charCodeAt'](_0x58c33c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5c7525);};a0_0xc46e['NDLnqs']=_0x2df674,a0_0xc46e['zsREos']={},a0_0xc46e['XOngOr']=!![];}const _0x598ee3=_0x5e0214[0x0],_0x3d29b6=_0x210c20+_0x598ee3,_0x12baec=a0_0xc46e['zsREos'][_0x3d29b6];return!_0x12baec?(_0xc46edb=a0_0xc46e['NDLnqs'](_0xc46edb),a0_0xc46e['zsREos'][_0x3d29b6]=_0xc46edb):_0xc46edb=_0x12baec,_0xc46edb;}(function(_0x4cecfb,_0x5aace9){const _0x3cb2b2=a0_0xc46e,_0x3c5e7a=_0x4cecfb();while(!![]){try{const _0x35abd9=-parseInt(_0x3cb2b2(0xef))/0x1+parseInt(_0x3cb2b2(0x123))/0x2*(parseInt(_0x3cb2b2(0x10c))/0x3)+parseInt(_0x3cb2b2(0xdb))/0x4+-parseInt(_0x3cb2b2(0xdc))/0x5+parseInt(_0x3cb2b2(0xe8))/0x6+parseInt(_0x3cb2b2(0x103))/0x7+-parseInt(_0x3cb2b2(0x122))/0x8*(parseInt(_0x3cb2b2(0x116))/0x9);if(_0x35abd9===_0x5aace9)break;else _0x3c5e7a['push'](_0x3c5e7a['shift']());}catch(_0x5c051c){_0x3c5e7a['push'](_0x3c5e7a['shift']());}}}(a0_0x5e02,0xe1d4f));import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';function a0_0x5e02(){const _0x6e7dee=['BwLKzgXLD2fYzq','q09ntuforfm','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','ntq0nty0ngTdq2zUtW','mZK5ndKYmgDwzevVta','uefhsu5bveLptG','z2v0u2vZC2LVBKLK','CMvTB3zLtwLKzgXLD2fYzq','Bg94AwfbCgLlzxK','z2v0uhjVAMvJDerPCG','BNvTyMvY','qvbjx0vorfbpsu5uuW','Dg9czvrYDxrOEq','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','BwvZC2fNzvf1zxvL','su1br0vFuKvtvuXu','mJC2mJyXnNLfB1vNtG','DMvUzg9Ys2v5CW','Dw5YzwDPC3rLCKHHBMrSzxi','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLignHBIbIzsbHzgrLzcbHBMqGCMvTB3zLza','ChjVAMvJDerPCG','CMvNAxn0zxjiyw5KBgvY','revgqvvmvf9it1nu','mteZodK4mwTPBeXNDa','q09otKvdveLptL9tvefurq','AxnwywXPza','v1nFtuvtu0fhrv9uwvbf','yMXVy2TLzc10ExbL','lI4VlI4VC3rHDguVDxnLq29UBMvJDgLVBI5QCW','AgfZsgfUzgXLCG','l3rLC3qVzgLY','reLtq09otKvdveve','Bg9JywXOB3n0','DgvZDc1OB3n0','revgqvvmvf9qt1ju','C2vZC2LVBKLK','z2v0u3rHDhm','Dg9czq','Dg9czurLzMLUzwq','BM90','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','z2vUzxjHDgvszxf1zxn0swq','Dg9iyxzLuhjVCgvYDhK','nJC3mJm2mhHwB3jsCG','sfruuf9usu1ft1vu','BM90lweTzNvUy3rPB24','twvZC2fNzvjVDxrLCIbJyw4GCMvNAxn0zxiGyw5KihvUCMvNAxn0zxiGAgfUzgXLCNm','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','DgvZDa','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','CgvUzgLUz1jLCxvLC3rZ','CMvJzwL2zwrbDa','ndvMs0vKs0S','v0vcu09ds0vux1bjtKDFsu5urvjwquW','zgLZy29UBMvJDgvK','q09otKvdveve','tKvuv09ssW','DgvZDc1RzxK','u0LerujbuL9xsurusa','CxvLDwvKtwvZC2fNzxm','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','tuvtu0fhrv9brerfra','mtq3otKXnvHhtw1Mzq','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbcyxnPyYbgDw5JDgLVBMfSAxr5','C2HVDwXKuMvJB25Uzwn0','AxndB25Uzwn0zwq','veLnsu5h','DgvZDc1TzxnZywDL','y2XLyxi','zNvUy3rPB24','Dg9fCxvHBa','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','A2v5','odbjyLPoALC','mJi5mdy2BejKwvLJ','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','vuLFreLnru5tsu9ouW','DxnL','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLigHLBhbLCNmGy3jLyxrLihzHBgLKig1PzgrSzxDHCMu','quDftLrFtu9erq','lI4VlI4VyxbPl3nLC3nPB24UANm','DxjS'];a0_0x5e02=function(){return _0x6e7dee;};return a0_0x5e02();}import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x2f3638=a0_0xc46e,_0xa3e356=await import(_0x2f3638(0xda));expect(_0xa3e356['UI_DIMENSIONS'])['toBeDefined'](),expect(_0xa3e356['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0xa3e356[_0x2f3638(0xdd)])[_0x2f3638(0xfe)](),expect(_0xa3e356[_0x2f3638(0x11b)])['toBeDefined'](),expect(_0xa3e356['NETWORK'])[_0x2f3638(0xfe)](),expect(_0xa3e356[_0x2f3638(0xf0)])['toBeDefined'](),expect(_0xa3e356[_0x2f3638(0xd5)])[_0x2f3638(0xfe)](),expect(_0xa3e356[_0x2f3638(0xf2)])['toBeDefined'](),expect(_0xa3e356[_0x2f3638(0xe3)])['toBeDefined'](),expect(_0xa3e356[_0x2f3638(0xd9)])['toBeDefined'](),expect(_0xa3e356[_0x2f3638(0x110)][_0x2f3638(0xee)])[_0x2f3638(0xfd)]('localhost'),expect(_0xa3e356['NETWORK'][_0x2f3638(0xfa)])['toBe'](0x1f90),expect(_0xa3e356[_0x2f3638(0xf0)][_0x2f3638(0xf7)])['toBe'](_0x2f3638(0x10e)),expect(_0xa3e356['CONNECTION_STATE'][_0x2f3638(0x10f)])['toBe']('connected');}),test('WebSocketManager class can be imported',async()=>{const _0xd7672e=a0_0xc46e,{WebSocketManager:_0x5c7525}=await import('../../api/websocket.js');expect(_0x5c7525)['toBeDefined'](),expect(typeof _0x5c7525)['toBe']('function');const _0x3fc95b=new _0x5c7525(_0xd7672e(0xf8),0x1f90);expect(_0x3fc95b)['toBeDefined'](),expect(_0x3fc95b['host'])[_0xd7672e(0xfd)](_0xd7672e(0xf8)),expect(_0x3fc95b['port'])[_0xd7672e(0xfd)](0x1f90),expect(_0x3fc95b[_0xd7672e(0xd7)])['toBe']('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0xc17eb=a0_0xc46e,{SessionManager:_0x4b6940}=await import('../../api/session.js');expect(_0x4b6940)['toBeDefined'](),expect(typeof _0x4b6940)['toBe']('function');const _0x40ddd8=new _0x4b6940('localhost',0x1f90);expect(_0x40ddd8)[_0xc17eb(0xfe)](),expect(_0x40ddd8['host'])['toBe'](_0xc17eb(0xf8)),expect(_0x40ddd8['port'])[_0xc17eb(0xfd)](0x1f90),expect(_0x40ddd8['baseUrl'])[_0xc17eb(0xfd)]('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x40bce3=a0_0xc46e,{MessageRouter:_0x18ebdd}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x58c33c}=await import('../../api/websocket.js');expect(_0x18ebdd)['toBeDefined'](),expect(typeof _0x18ebdd)[_0x40bce3(0xfd)]('function');const _0x552742=new _0x58c33c(_0x40bce3(0xf8),0x1f90),_0x59dd54=new _0x18ebdd(_0x552742);expect(_0x59dd54)['toBeDefined'](),expect(_0x59dd54['ws'])['toBe'](_0x552742);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x2089e0=a0_0xc46e,{loggingMiddleware:_0xa2396a,filterMiddleware:_0x54e3e4,transformMiddleware:_0x1d2122,timestampMiddleware:_0x11966c,validationMiddleware:_0x1d660a}=await import('../../api/messageRouter.js');expect(typeof _0xa2396a)['toBe']('function'),expect(typeof _0x54e3e4)['toBe'](_0x2089e0(0x11e)),expect(typeof _0x1d2122)['toBe'](_0x2089e0(0x11e)),expect(typeof _0x11966c)[_0x2089e0(0xfd)](_0x2089e0(0x11e)),expect(typeof _0x1d660a)[_0x2089e0(0xfd)]('function');}),test('useConnection hook can be imported',async()=>{const _0x81cfd2=a0_0xc46e,{useConnection:_0x582f7d,useConnectionStatus:_0x491e37}=await import(_0x81cfd2(0xf4));expect(_0x582f7d)[_0x81cfd2(0xfe)](),expect(typeof _0x582f7d)['toBe']('function'),expect(_0x491e37)['toBeDefined'](),expect(typeof _0x491e37)[_0x81cfd2(0xfd)](_0x81cfd2(0x11e));});}),describe(a0_0x237a75(0x118),()=>{const _0x27908d=a0_0x237a75;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x23d51f=a0_0xc46e,{WebSocketManager:_0x1bba12}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x200cb}=await import('../../config/constants.js'),_0x426b59=new _0x1bba12('test-host',0x2382);expect(_0x426b59['state'])[_0x23d51f(0xfd)](_0x200cb[_0x23d51f(0xf7)]),expect(_0x426b59['sessionId'])[_0x23d51f(0xfd)](null),expect(_0x426b59[_0x23d51f(0xe6)])['toEqual']([]),expect(_0x426b59['reconnectAttempts'])['toBe'](0x0),expect(_0x426b59[_0x23d51f(0x119)])[_0x23d51f(0xfd)](!![]);}),test('SessionManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0xeeb161=a0_0xc46e,{SessionManager:_0x1beb81}=await import('../../api/session.js'),_0x260bb9=new _0x1beb81(_0xeeb161(0xf9),0x2382);expect(_0x260bb9['sessionId'])[_0xeeb161(0xfd)](null),expect(_0x260bb9['projectDir'])[_0xeeb161(0xfd)](null),expect(_0x260bb9['loxiaApiKey'])['toBe'](null),expect(_0x260bb9['vendorKeys'])[_0xeeb161(0x11f)]({}),expect(_0x260bb9['isValid']())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x5a5917=a0_0xc46e,{MessageRouter:_0x38e8e8}=await import(_0x5a5917(0x100)),{WebSocketManager:_0x386de3}=await import(_0x5a5917(0x114)),{WS_MESSAGE_TYPE:_0x33eea3}=await import(_0x5a5917(0xda)),_0x2088b3=new _0x386de3(_0x5a5917(0xf8),0x1f90),_0x250363=new _0x38e8e8(_0x2088b3);expect(_0x250363[_0x5a5917(0xf5)](_0x33eea3[_0x5a5917(0x115)]))[_0x5a5917(0xfd)](!![]),expect(_0x250363['hasHandler'](_0x33eea3['AGENT_MODE_CHANGED']))[_0x5a5917(0xfd)](!![]),expect(_0x250363['hasHandler'](_0x33eea3['EXECUTION_STOPPED']))[_0x5a5917(0xfd)](!![]),expect(_0x250363[_0x5a5917(0xf5)](_0x33eea3['COMPACTION_EVENT']))[_0x5a5917(0xfd)](!![]),expect(_0x250363['hasHandler'](_0x33eea3[_0x5a5917(0xe7)]))[_0x5a5917(0xfd)](!![]);}),test(_0x27908d(0xeb),async()=>{const _0x55ecd4=_0x27908d,{MessageRouter:_0x4c7f90}=await import(_0x55ecd4(0x100)),{WebSocketManager:_0x76e06b}=await import('../../api/websocket.js'),_0x567ed6=new _0x76e06b(_0x55ecd4(0xf8),0x1f90),_0x4c0aed=new _0x4c7f90(_0x567ed6),_0x4241d=_0xad504a=>_0xad504a;expect(_0x4c0aed['middleware']['length'])[_0x55ecd4(0x107)](0x0),_0x4c0aed[_0x55ecd4(0x126)](_0x4241d);const _0x1dfbad=_0x4c0aed[_0x55ecd4(0xd8)]['length'];expect(_0x1dfbad)['toBeGreaterThan'](0x0),_0x4c0aed[_0x55ecd4(0xdf)](_0x4241d),expect(_0x4c0aed['middleware']['length'])['toBe'](_0x1dfbad-0x1);}),test('SessionManager\x20helper\x20methods\x20work',async()=>{const _0x1f68b2=_0x27908d,{SessionManager:_0x3dd410}=await import(_0x1f68b2(0xd6)),_0x3c580b=new _0x3dd410('localhost',0x1f90);expect(_0x3c580b['getSessionId']())['toBe'](null),expect(_0x3c580b[_0x1f68b2(0xe1)]())['toBe'](null),expect(_0x3c580b['isValid']())['toBe'](![]);const _0xe79636=_0x3c580b['getSessionInfo']();expect(_0xe79636)[_0x1f68b2(0x102)]('sessionId'),expect(_0xe79636)['toHaveProperty']('projectDir'),expect(_0xe79636)[_0x1f68b2(0x102)]('hasLoxiaKey'),expect(_0xe79636)['toHaveProperty']('vendorKeysCount');}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x575ca3=_0x27908d,{WebSocketManager:_0xc64384}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x154fa5}=await import(_0x575ca3(0xda)),_0x4d0045=new _0xc64384('localhost',0x1f90);expect(_0x4d0045['getState']())[_0x575ca3(0xfd)](_0x154fa5['DISCONNECTED']),expect(_0x4d0045[_0x575ca3(0x11a)]())['toBe'](![]),expect(_0x4d0045[_0x575ca3(0xde)]())['toBe'](null);const _0x46d087=_0x4d0045[_0x575ca3(0xfc)]();expect(_0x46d087)['toHaveProperty']('state'),expect(_0x46d087)[_0x575ca3(0x102)]('sessionId'),expect(_0x46d087)['toHaveProperty']('reconnectAttempts'),expect(_0x46d087)['toHaveProperty'](_0x575ca3(0x113)),expect(_0x46d087)['toHaveProperty'](_0x575ca3(0x10a));}),test(_0x27908d(0x106),async()=>{const _0x1206d8=_0x27908d,{MessageRouter:_0x3e9ed2}=await import(_0x1206d8(0x100)),{WebSocketManager:_0xee8c29}=await import(_0x1206d8(0x114)),_0x1dc348=new _0xee8c29('localhost',0x1f90),_0x5f2959=new _0x3e9ed2(_0x1dc348),_0x29ad3c=()=>{};expect(_0x5f2959[_0x1206d8(0xf5)](_0x1206d8(0x11c)))[_0x1206d8(0xfd)](![]),_0x5f2959[_0x1206d8(0xed)](_0x1206d8(0x11c),_0x29ad3c),expect(_0x5f2959['hasHandler']('test-message'))['toBe'](!![]),_0x5f2959[_0x1206d8(0xea)](_0x1206d8(0x11c)),expect(_0x5f2959[_0x1206d8(0xf5)]('test-message'))[_0x1206d8(0xfd)](![]);}),test(_0x27908d(0xd4),async()=>{const _0x564431=_0x27908d,{loggingMiddleware:_0x3abf5d,timestampMiddleware:_0x436ae7,filterMiddleware:_0x122513}=await import(_0x564431(0x100)),_0x5f171a=_0x3abf5d();expect(typeof _0x5f171a)['toBe']('function');const _0x3c6b8f=_0x436ae7();expect(typeof _0x3c6b8f)[_0x564431(0xfd)](_0x564431(0x11e));const _0x39993a={'type':_0x564431(0x108)},_0x36d76b=_0x3c6b8f(_0x39993a);expect(_0x36d76b)['toHaveProperty'](_0x564431(0x10b)),expect(_0x36d76b['type'])[_0x564431(0xfd)](_0x564431(0x108));const _0x3c58b1=_0x122513(['allowed-type']);expect(typeof _0x3c58b1)['toBe'](_0x564431(0x11e)),expect(_0x3c58b1({'type':'allowed-type'}))[_0x564431(0xe4)](),expect(_0x3c58b1({'type':_0x564431(0xf3)}))['toBe'](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x403942=_0x27908d,_0x248c1e=await import(_0x403942(0xda));expect(typeof _0x248c1e[_0x403942(0x11b)][_0x403942(0x124)])['toBe'](_0x403942(0xe2)),expect(typeof _0x248c1e[_0x403942(0x11b)][_0x403942(0x10d)])[_0x403942(0xfd)]('number'),expect(typeof _0x248c1e[_0x403942(0x110)]['DEFAULT_PORT'])['toBe'](_0x403942(0xe2)),expect(typeof _0x248c1e['NETWORK']['MAX_RETRIES'])[_0x403942(0xfd)]('number'),expect(typeof _0x248c1e['NETWORK'][_0x403942(0x104)])[_0x403942(0xfd)](_0x403942(0xe2)),expect(typeof _0x248c1e[_0x403942(0x125)]['MESSAGE_LIST_HEIGHT'])['toBe'](_0x403942(0xe2)),expect(typeof _0x248c1e['UI_DIMENSIONS'][_0x403942(0x112)])[_0x403942(0xfd)]('number');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x1b2842=a0_0x237a75;test(_0x1b2842(0xe5),async()=>{const _0x195b4d=_0x1b2842,{MessageRouter:_0x172c65}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1d958}=await import(_0x195b4d(0x114)),_0x37ab1f=new _0x1d958('localhost',0x1f90),_0x533541=new _0x172c65(_0x37ab1f);expect(()=>{const _0x223382=_0x195b4d;_0x533541['registerHandler'](_0x223382(0x108),_0x223382(0x105));})['toThrow']('Handler\x20must\x20be\x20a\x20function');}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0x53fdae=_0x1b2842,{MessageRouter:_0x55a5c3}=await import(_0x53fdae(0x100)),{WebSocketManager:_0xe66182}=await import(_0x53fdae(0x114)),_0x3cae4b=new _0xe66182('localhost',0x1f90),_0x42cbf2=new _0x55a5c3(_0x3cae4b);expect(()=>{const _0x23e346=_0x53fdae;_0x42cbf2['use'](_0x23e346(0x105));})['toThrow'](_0x53fdae(0x120));}),test(_0x1b2842(0x109),async()=>{const _0x3f70a7=_0x1b2842,{SessionManager:_0x1323b8}=await import(_0x3f70a7(0xd6)),_0x4fdabd=new _0x1323b8('localhost',0x1f90);_0x4fdabd['sessionId']='test-123',_0x4fdabd[_0x3f70a7(0xec)]=_0x3f70a7(0xf6),_0x4fdabd[_0x3f70a7(0xe0)]=_0x3f70a7(0x111),_0x4fdabd['vendorKeys']={'openai':_0x3f70a7(0x121)},expect(_0x4fdabd[_0x3f70a7(0xf1)]())['toBe'](!![]),_0x4fdabd[_0x3f70a7(0x11d)](),expect(_0x4fdabd[_0x3f70a7(0xfb)])[_0x3f70a7(0xfd)](null),expect(_0x4fdabd['projectDir'])[_0x3f70a7(0xfd)](null),expect(_0x4fdabd['loxiaApiKey'])[_0x3f70a7(0xfd)](null),expect(_0x4fdabd[_0x3f70a7(0xe9)])['toEqual']({}),expect(_0x4fdabd['isValid']())[_0x3f70a7(0xfd)](![]);}),test(_0x1b2842(0x117),async()=>{const _0x5827f9=_0x1b2842,{WebSocketManager:_0x549520}=await import('../../api/websocket.js'),_0x181520=new _0x549520(_0x5827f9(0xf8),0x1f90),_0x32f819=_0x181520['generateRequestId'](),_0x16f7f8=_0x181520[_0x5827f9(0x101)](),_0x3442dd=_0x181520['generateRequestId']();expect(_0x32f819)[_0x5827f9(0xff)][_0x5827f9(0xfd)](_0x16f7f8),expect(_0x16f7f8)[_0x5827f9(0xff)][_0x5827f9(0xfd)](_0x3442dd),expect(_0x32f819)['not'][_0x5827f9(0xfd)](_0x3442dd),expect(_0x32f819)['toMatch'](/^req-\d+-\d+$/),expect(_0x16f7f8)['toMatch'](/^req-\d+-\d+$/),expect(_0x3442dd)['toMatch'](/^req-\d+-\d+$/);});});
|
|
1
|
+
const a0_0x2213c7=a0_0x2de3;(function(_0x20d46f,_0x1294fe){const _0x3675de=a0_0x2de3,_0x227870=_0x20d46f();while(!![]){try{const _0x2ecad9=parseInt(_0x3675de(0xed))/0x1+parseInt(_0x3675de(0xfb))/0x2*(parseInt(_0x3675de(0x129))/0x3)+parseInt(_0x3675de(0x11b))/0x4*(parseInt(_0x3675de(0x105))/0x5)+-parseInt(_0x3675de(0x121))/0x6*(parseInt(_0x3675de(0x122))/0x7)+parseInt(_0x3675de(0x12c))/0x8+-parseInt(_0x3675de(0xff))/0x9+-parseInt(_0x3675de(0x115))/0xa;if(_0x2ecad9===_0x1294fe)break;else _0x227870['push'](_0x227870['shift']());}catch(_0x51861c){_0x227870['push'](_0x227870['shift']());}}}(a0_0x128e,0xb1e92));function a0_0x2de3(_0x19e610,_0x5e7f0b){_0x19e610=_0x19e610-0xe8;const _0x128e92=a0_0x128e();let _0x2de32a=_0x128e92[_0x19e610];if(a0_0x2de3['JCjbyM']===undefined){var _0x2e4dbd=function(_0xa2e142){const _0x52e788='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x51436a='',_0x467422='';for(let _0x1c5984=0x0,_0x211e03,_0x192421,_0x11f0c8=0x0;_0x192421=_0xa2e142['charAt'](_0x11f0c8++);~_0x192421&&(_0x211e03=_0x1c5984%0x4?_0x211e03*0x40+_0x192421:_0x192421,_0x1c5984++%0x4)?_0x51436a+=String['fromCharCode'](0xff&_0x211e03>>(-0x2*_0x1c5984&0x6)):0x0){_0x192421=_0x52e788['indexOf'](_0x192421);}for(let _0x535251=0x0,_0x43318f=_0x51436a['length'];_0x535251<_0x43318f;_0x535251++){_0x467422+='%'+('00'+_0x51436a['charCodeAt'](_0x535251)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x467422);};a0_0x2de3['JrGOAA']=_0x2e4dbd,a0_0x2de3['VbCNmH']={},a0_0x2de3['JCjbyM']=!![];}const _0x2ace67=_0x128e92[0x0],_0x39c6ac=_0x19e610+_0x2ace67,_0x5044a7=a0_0x2de3['VbCNmH'][_0x39c6ac];return!_0x5044a7?(_0x2de32a=a0_0x2de3['JrGOAA'](_0x2de32a),a0_0x2de3['VbCNmH'][_0x39c6ac]=_0x2de32a):_0x2de32a=_0x5044a7,_0x2de32a;}import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function a0_0x128e(){const _0x2662a7=['DhLWzq','v1nFtuvtu0fhrv9uwvbf','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','z2v0u3rHDgu','DgvZDc1RzxK','revgqvvmvf9qt1ju','Dg9czq','AxnwywXPza','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbTAwrKBgv3yxjL','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','q29UC3rHBNrZigHHDMuGBM8GBwfNAwmGBNvTyMvYCW','BM90lweTzNvUy3rPB24','BwLKzgXLD2fYzq','z2v0u2vZC2LVBKLK','otC1nZy4meLsuMvYEa','quDftLrFtu9erv9dsefor0ve','ChjVAMvJDerPCG','yMfZzvvYBa','Dg9czurLzMLUzwq','Dg9uAhjVDW','mta0mtuWnhHYChfVDa','Ag9ZDa','Dg9iyxzLuhjVCgvYDhK','DgvZDc1TzxnZywDL','Bg94AwfbCgLlzxK','Dg9fCxvHBa','mJi5ogPSvfbVBG','mtGWnJD1yNjcEwq','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','tuvtu0fhrv9brerfra','rvHfq1vusu9ox1nut1bqruq','Dg9czuDYzwf0zxjuAgfU','yMXVy2TLzc10ExbL','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','mZaWnLvzzuTkAW','C2vZC2LVBKLK','CxvLDwvKtwvZC2fNzxm','ntKXnJq4me9PwNvvsW','BgvUz3rO','DgvZDc0XmJm','ywXSB3DLzc10ExbL','D3m6lY9SB2nHBgHVC3q6oda4ma','v0vcu09ds0vux1bjtKDFsu5urvjwquW','otuWotaZDu5bD2Pn','Bg9JywXOB3n0','AgfZsgfUzgXLCG','Dg9nyxrJAa','CgvUzgLUz1jLCxvLC3rZ','tuvtu0fhrv9dt05gsuC','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','DgvZDa','CMvJB25Uzwn0qxr0zw1WDhm','v2vIu29JA2v0twfUywDLCIbPBML0AwfSAxPLCYb3AxrOignVCNjLy3qGC3rHDgu','revgqvvmvf9it1nu','q09ntuforfm','lI4VlI4VyxbPl3nLC3nPB24UANm','veLnsu5h','mJe0meLwrwz2Aa','BM90','tufyx1jfvfjjrvm','tKvuv09ssW','ntmXmZa3ofD6zgfRqW','zNvUy3rPB24','DgvZDc1OB3n0','BNvTyMvY','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbfCNjVCIbiyw5KBgLUzW','vuLFreLnru5tsu9ouW','mtbSrKntthO'];a0_0x128e=function(){return _0x2662a7;};return a0_0x128e();}describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x2c2d05=a0_0x2de3,_0x51436a=await import('../../config/constants.js');expect(_0x51436a['UI_DIMENSIONS'])[_0x2c2d05(0x119)](),expect(_0x51436a[_0x2c2d05(0xf2)])[_0x2c2d05(0x119)](),expect(_0x51436a['PAGINATION'])[_0x2c2d05(0x119)](),expect(_0x51436a[_0x2c2d05(0xfa)])[_0x2c2d05(0x119)](),expect(_0x51436a[_0x2c2d05(0xfe)])['toBeDefined'](),expect(_0x51436a['CONNECTION_STATE'])['toBeDefined'](),expect(_0x51436a['AGENT_MODE'])[_0x2c2d05(0x119)](),expect(_0x51436a[_0x2c2d05(0x107)])[_0x2c2d05(0x119)](),expect(_0x51436a['API_ENDPOINTS'])['toBeDefined'](),expect(_0x51436a[_0x2c2d05(0xf8)])[_0x2c2d05(0x119)](),expect(_0x51436a['NETWORK'][_0x2c2d05(0xf7)])[_0x2c2d05(0x10c)]('localhost'),expect(_0x51436a['NETWORK']['DEFAULT_PORT'])['toBe'](0x1f90),expect(_0x51436a['CONNECTION_STATE']['DISCONNECTED'])[_0x2c2d05(0x10c)]('disconnected'),expect(_0x51436a['CONNECTION_STATE']['CONNECTED'])[_0x2c2d05(0x10c)]('connected');}),test('WebSocketManager class can be imported',async()=>{const _0x3db50a=a0_0x2de3,{WebSocketManager:_0x467422}=await import('../../api/websocket.js');expect(_0x467422)['toBeDefined'](),expect(typeof _0x467422)[_0x3db50a(0x10c)](_0x3db50a(0x100));const _0x1c5984=new _0x467422('localhost',0x1f90);expect(_0x1c5984)[_0x3db50a(0x119)](),expect(_0x1c5984[_0x3db50a(0x11c)])[_0x3db50a(0x10c)](_0x3db50a(0xee)),expect(_0x1c5984['port'])['toBe'](0x1f90),expect(_0x1c5984['url'])['toBe'](_0x3db50a(0xeb));}),test('SessionManager class can be imported',async()=>{const _0x2f0949=a0_0x2de3,{SessionManager:_0x211e03}=await import(_0x2f0949(0xf9));expect(_0x211e03)[_0x2f0949(0x119)](),expect(typeof _0x211e03)['toBe']('function');const _0x192421=new _0x211e03('localhost',0x1f90);expect(_0x192421)[_0x2f0949(0x119)](),expect(_0x192421[_0x2f0949(0x11c)])['toBe']('localhost'),expect(_0x192421['port'])[_0x2f0949(0x10c)](0x1f90),expect(_0x192421[_0x2f0949(0x118)])[_0x2f0949(0x10c)]('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x45b14d=a0_0x2de3,{MessageRouter:_0x11f0c8}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x535251}=await import('../../api/websocket.js');expect(_0x11f0c8)[_0x45b14d(0x119)](),expect(typeof _0x11f0c8)[_0x45b14d(0x10c)](_0x45b14d(0x100));const _0x43318f=new _0x535251(_0x45b14d(0xee),0x1f90),_0x1a00b4=new _0x11f0c8(_0x43318f);expect(_0x1a00b4)['toBeDefined'](),expect(_0x1a00b4['ws'])[_0x45b14d(0x10c)](_0x43318f);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x1af636=a0_0x2de3,{loggingMiddleware:_0x395a8b,filterMiddleware:_0x4d518f,transformMiddleware:_0x3d0cf2,timestampMiddleware:_0x13f39c,validationMiddleware:_0x4ab934}=await import(_0x1af636(0x128));expect(typeof _0x395a8b)[_0x1af636(0x10c)](_0x1af636(0x100)),expect(typeof _0x4d518f)['toBe']('function'),expect(typeof _0x3d0cf2)[_0x1af636(0x10c)](_0x1af636(0x100)),expect(typeof _0x13f39c)['toBe']('function'),expect(typeof _0x4ab934)['toBe']('function');}),test('useConnection hook can be imported',async()=>{const _0x50a1a7=a0_0x2de3,{useConnection:_0x4c5d7c,useConnectionStatus:_0x31575a}=await import('../../state/useConnection.js');expect(_0x4c5d7c)[_0x50a1a7(0x119)](),expect(typeof _0x4c5d7c)['toBe'](_0x50a1a7(0x100)),expect(_0x31575a)[_0x50a1a7(0x119)](),expect(typeof _0x31575a)['toBe']('function');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x4b3117=a0_0x2de3;test(_0x4b3117(0xf6),async()=>{const _0x469084=_0x4b3117,{WebSocketManager:_0x326456}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x580c8d}=await import('../../config/constants.js'),_0x4d6036=new _0x326456(_0x469084(0x101),0x2382);expect(_0x4d6036['state'])['toBe'](_0x580c8d['DISCONNECTED']),expect(_0x4d6036[_0x469084(0x12a)])['toBe'](null),expect(_0x4d6036['messageQueue'])['toEqual']([]),expect(_0x4d6036[_0x469084(0xf5)])[_0x469084(0x10c)](0x0),expect(_0x4d6036['shouldReconnect'])['toBe'](!![]);}),test('SessionManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x169eac=_0x4b3117,{SessionManager:_0x5c1024}=await import(_0x169eac(0xf9)),_0x5ac026=new _0x5c1024(_0x169eac(0x101),0x2382);expect(_0x5ac026['sessionId'])[_0x169eac(0x10c)](null),expect(_0x5ac026[_0x169eac(0x117)])['toBe'](null),expect(_0x5ac026['loxiaApiKey'])[_0x169eac(0x10c)](null),expect(_0x5ac026['vendorKeys'])[_0x169eac(0x120)]({}),expect(_0x5ac026['isValid']())[_0x169eac(0x10c)](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x62406c=_0x4b3117,{MessageRouter:_0x443fb1}=await import(_0x62406c(0x128)),{WebSocketManager:_0x14fb37}=await import(_0x62406c(0x110)),{WS_MESSAGE_TYPE:_0x156dec}=await import(_0x62406c(0x123)),_0x267266=new _0x14fb37(_0x62406c(0xee),0x1f90),_0xeed31f=new _0x443fb1(_0x267266);expect(_0xeed31f[_0x62406c(0xef)](_0x156dec[_0x62406c(0x124)]))['toBe'](!![]),expect(_0xeed31f[_0x62406c(0xef)](_0x156dec[_0x62406c(0x116)]))['toBe'](!![]),expect(_0xeed31f[_0x62406c(0xef)](_0x156dec[_0x62406c(0x125)]))['toBe'](!![]),expect(_0xeed31f['hasHandler'](_0x156dec['COMPACTION_EVENT']))['toBe'](!![]),expect(_0xeed31f[_0x62406c(0xef)](_0x156dec['IMAGE_RESULT']))[_0x62406c(0x10c)](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x1d6d2b=_0x4b3117,{MessageRouter:_0x4983d4}=await import(_0x1d6d2b(0x128)),{WebSocketManager:_0x54724e}=await import('../../api/websocket.js'),_0x4ef1e5=new _0x54724e(_0x1d6d2b(0xee),0x1f90),_0x3fefe9=new _0x4983d4(_0x4ef1e5),_0x2cbee9=_0x2b088a=>_0x2b088a;expect(_0x3fefe9['middleware'][_0x1d6d2b(0xe8)])[_0x1d6d2b(0x108)](0x0),_0x3fefe9['use'](_0x2cbee9);const _0x4fb2ff=_0x3fefe9['middleware'][_0x1d6d2b(0xe8)];expect(_0x4fb2ff)[_0x1d6d2b(0x126)](0x0),_0x3fefe9['removeMiddleware'](_0x2cbee9),expect(_0x3fefe9[_0x1d6d2b(0x113)]['length'])['toBe'](_0x4fb2ff-0x1);}),test('SessionManager\x20helper\x20methods\x20work',async()=>{const _0x50b059=_0x4b3117,{SessionManager:_0x44e372}=await import(_0x50b059(0xf9)),_0x224095=new _0x44e372('localhost',0x1f90);expect(_0x224095[_0x50b059(0x114)]())['toBe'](null),expect(_0x224095['getProjectDir']())['toBe'](null),expect(_0x224095[_0x50b059(0x10d)]())[_0x50b059(0x10c)](![]);const _0x264850=_0x224095['getSessionInfo']();expect(_0x264850)['toHaveProperty'](_0x50b059(0x12a)),expect(_0x264850)[_0x50b059(0x11d)](_0x50b059(0x117)),expect(_0x264850)[_0x50b059(0x11d)]('hasLoxiaKey'),expect(_0x264850)['toHaveProperty']('vendorKeysCount');}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x5a95ed=_0x4b3117,{WebSocketManager:_0x245577}=await import(_0x5a95ed(0x110)),{CONNECTION_STATE:_0x1ebf69}=await import('../../config/constants.js'),_0x5a13a3=new _0x245577(_0x5a95ed(0xee),0x1f90);expect(_0x5a13a3[_0x5a95ed(0x109)]())['toBe'](_0x1ebf69['DISCONNECTED']),expect(_0x5a13a3['isConnected']())[_0x5a95ed(0x10c)](![]),expect(_0x5a13a3[_0x5a95ed(0x114)]())['toBe'](null);const _0x676b03=_0x5a13a3['getStats']();expect(_0x676b03)['toHaveProperty']('state'),expect(_0x676b03)[_0x5a95ed(0x11d)]('sessionId'),expect(_0x676b03)[_0x5a95ed(0x11d)](_0x5a95ed(0xf5)),expect(_0x676b03)[_0x5a95ed(0x11d)](_0x5a95ed(0x12b)),expect(_0x676b03)[_0x5a95ed(0x11d)](_0x5a95ed(0xf1));}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x16fb46=_0x4b3117,{MessageRouter:_0x1d93a2}=await import(_0x16fb46(0x128)),{WebSocketManager:_0x5847e5}=await import('../../api/websocket.js'),_0x1d22c8=new _0x5847e5('localhost',0x1f90),_0x4b1797=new _0x1d93a2(_0x1d22c8),_0x1ea22f=()=>{};expect(_0x4b1797['hasHandler'](_0x16fb46(0x11e)))[_0x16fb46(0x10c)](![]),_0x4b1797['registerHandler']('test-message',_0x1ea22f),expect(_0x4b1797[_0x16fb46(0xef)]('test-message'))['toBe'](!![]),_0x4b1797['unregisterHandler']('test-message'),expect(_0x4b1797[_0x16fb46(0xef)](_0x16fb46(0x11e)))['toBe'](![]);}),test('MessageRouter\x20middleware\x20helpers\x20create\x20valid\x20middleware',async()=>{const _0x43a406=_0x4b3117,{loggingMiddleware:_0xa8bda,timestampMiddleware:_0x3f8ecc,filterMiddleware:_0x1442c5}=await import('../../api/messageRouter.js'),_0x30f3e7=_0xa8bda();expect(typeof _0x30f3e7)['toBe']('function');const _0x47d391=_0x3f8ecc();expect(typeof _0x47d391)['toBe']('function');const _0x17aa57={'type':_0x43a406(0xf4)},_0x3ea09f=_0x47d391(_0x17aa57);expect(_0x3ea09f)[_0x43a406(0x11d)]('receivedAt'),expect(_0x3ea09f[_0x43a406(0x106)])['toBe']('test');const _0x245d0e=_0x1442c5(['allowed-type']);expect(typeof _0x245d0e)['toBe'](_0x43a406(0x100)),expect(_0x245d0e({'type':_0x43a406(0xea)}))['toBeTruthy'](),expect(_0x245d0e({'type':_0x43a406(0x127)}))[_0x43a406(0x10c)](null);}),test(_0x4b3117(0x111),async()=>{const _0x50dd6a=_0x4b3117,_0x2c00ce=await import(_0x50dd6a(0x123));expect(typeof _0x2c00ce['TIMING']['WEBSOCKET_RECONNECT_DELAY'])[_0x50dd6a(0x10c)](_0x50dd6a(0x102)),expect(typeof _0x2c00ce[_0x50dd6a(0xfa)][_0x50dd6a(0xec)])['toBe'](_0x50dd6a(0x102)),expect(typeof _0x2c00ce[_0x50dd6a(0xfe)][_0x50dd6a(0x10b)])[_0x50dd6a(0x10c)](_0x50dd6a(0x102)),expect(typeof _0x2c00ce['NETWORK'][_0x50dd6a(0xfd)])[_0x50dd6a(0x10c)](_0x50dd6a(0x102)),expect(typeof _0x2c00ce[_0x50dd6a(0xfe)]['HTTP_TIMEOUT'])[_0x50dd6a(0x10c)]('number'),expect(typeof _0x2c00ce[_0x50dd6a(0x104)]['MESSAGE_LIST_HEIGHT'])[_0x50dd6a(0x10c)](_0x50dd6a(0x102)),expect(typeof _0x2c00ce['UI_DIMENSIONS']['SIDEBAR_WIDTH'])['toBe']('number');});}),describe(a0_0x2213c7(0x103),()=>{const _0xb7be3a=a0_0x2213c7;test('MessageRouter\x20throws\x20on\x20invalid\x20handler',async()=>{const _0x55b481=a0_0x2de3,{MessageRouter:_0x43b262}=await import(_0x55b481(0x128)),{WebSocketManager:_0x17b1cd}=await import('../../api/websocket.js'),_0x3a305e=new _0x17b1cd(_0x55b481(0xee),0x1f90),_0x3308e7=new _0x43b262(_0x3a305e);expect(()=>{const _0xdc45e8=_0x55b481;_0x3308e7['registerHandler'](_0xdc45e8(0xf4),_0xdc45e8(0x112));})['toThrow']('Handler\x20must\x20be\x20a\x20function');}),test(_0xb7be3a(0x10e),async()=>{const _0x38ea53=_0xb7be3a,{MessageRouter:_0x2c459c}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x527c77}=await import(_0x38ea53(0x110)),_0x1ef468=new _0x527c77(_0x38ea53(0xee),0x1f90),_0x22278f=new _0x2c459c(_0x1ef468);expect(()=>{const _0x10456c=_0x38ea53;_0x22278f['use'](_0x10456c(0x112));})[_0x38ea53(0x11a)](_0x38ea53(0xf3));}),test('SessionManager\x20clear()\x20resets\x20all\x20state',async()=>{const _0x3bfa7b=_0xb7be3a,{SessionManager:_0x1d920d}=await import('../../api/session.js'),_0x36e11e=new _0x1d920d(_0x3bfa7b(0xee),0x1f90);_0x36e11e[_0x3bfa7b(0x12a)]=_0x3bfa7b(0xe9),_0x36e11e[_0x3bfa7b(0x117)]='/test/dir',_0x36e11e[_0x3bfa7b(0x11f)]=_0x3bfa7b(0x10a),_0x36e11e['vendorKeys']={'openai':'key'},expect(_0x36e11e[_0x3bfa7b(0x10d)]())[_0x3bfa7b(0x10c)](!![]),_0x36e11e['clear'](),expect(_0x36e11e['sessionId'])[_0x3bfa7b(0x10c)](null),expect(_0x36e11e[_0x3bfa7b(0x117)])[_0x3bfa7b(0x10c)](null),expect(_0x36e11e[_0x3bfa7b(0x11f)])[_0x3bfa7b(0x10c)](null),expect(_0x36e11e['vendorKeys'])['toEqual']({}),expect(_0x36e11e['isValid']())['toBe'](![]);}),test(_0xb7be3a(0x10f),async()=>{const _0x29f903=_0xb7be3a,{WebSocketManager:_0x37851e}=await import('../../api/websocket.js'),_0x23cb79=new _0x37851e(_0x29f903(0xee),0x1f90),_0x4c1f56=_0x23cb79['generateRequestId'](),_0x100a3b=_0x23cb79['generateRequestId'](),_0x460c19=_0x23cb79['generateRequestId']();expect(_0x4c1f56)[_0x29f903(0xfc)][_0x29f903(0x10c)](_0x100a3b),expect(_0x100a3b)['not'][_0x29f903(0x10c)](_0x460c19),expect(_0x4c1f56)[_0x29f903(0xfc)]['toBe'](_0x460c19),expect(_0x4c1f56)[_0x29f903(0xf0)](/^req-\d+-\d+$/),expect(_0x100a3b)['toMatch'](/^req-\d+-\d+$/),expect(_0x460c19)['toMatch'](/^req-\d+-\d+$/);});});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x2b063f=a0_0x4ca3;(function(_0x5df66a,_0x5102a6){const _0x44b014=a0_0x4ca3,_0x440772=_0x5df66a();while(!![]){try{const _0x45a953=parseInt(_0x44b014(0x16c))/0x1+-parseInt(_0x44b014(0x159))/0x2+parseInt(_0x44b014(0x17c))/0x3+-parseInt(_0x44b014(0x165))/0x4+-parseInt(_0x44b014(0x166))/0x5+parseInt(_0x44b014(0x158))/0x6*(parseInt(_0x44b014(0x146))/0x7)+parseInt(_0x44b014(0x155))/0x8;if(_0x45a953===_0x5102a6)break;else _0x440772['push'](_0x440772['shift']());}catch(_0x4ea24a){_0x440772['push'](_0x440772['shift']());}}}(a0_0x4766,0x7cc1c));import{describe,test,expect}from'@jest/globals';describe('Message\x20Management\x20-\x20Imports',()=>{test('useMessages hook can be imported',async()=>{const _0x5a01eb=a0_0x4ca3,{useMessages:_0x3e99f7}=await import(_0x5a01eb(0x180));expect(_0x3e99f7)['toBeDefined'](),expect(typeof _0x3e99f7)[_0x5a01eb(0x149)](_0x5a01eb(0x16f));}),test('useMessages is default export',async()=>{const _0x3e53e3=a0_0x4ca3,module=await import(_0x3e53e3(0x180));expect(module[_0x3e53e3(0x150)])['toBeDefined'](),expect(typeof module[_0x3e53e3(0x150)])[_0x3e53e3(0x149)]('function'),expect(module[_0x3e53e3(0x150)])[_0x3e53e3(0x149)](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x587828=a0_0x4ca3,{useMessageCount:_0x5d1da5}=await import(_0x587828(0x180));expect(_0x5d1da5)['toBeDefined'](),expect(typeof _0x5d1da5)[_0x587828(0x149)](_0x587828(0x16f));});}),describe('Message\x20Management\x20-\x20Constants',()=>{const _0x999b20=a0_0x4ca3;test(_0x999b20(0x14a),async()=>{const _0x4b0966=_0x999b20,{MESSAGE_ROLE:_0x434183}=await import('../../config/constants.js');expect(_0x434183)[_0x4b0966(0x176)](),expect(_0x434183[_0x4b0966(0x156)])[_0x4b0966(0x149)]('user'),expect(_0x434183[_0x4b0966(0x170)])[_0x4b0966(0x149)]('assistant'),expect(_0x434183[_0x4b0966(0x17b)])['toBe'](_0x4b0966(0x154));}),test(_0x999b20(0x160),async()=>{const _0x30491f=_0x999b20,{MESSAGE_TYPE:_0x134501}=await import(_0x30491f(0x168));expect(_0x134501)[_0x30491f(0x176)](),expect(_0x134501['USER_MESSAGE'])[_0x30491f(0x149)](_0x30491f(0x15b)),expect(_0x134501[_0x30491f(0x15c)])[_0x30491f(0x149)]('agent-response'),expect(_0x134501[_0x30491f(0x162)])['toBe'](_0x30491f(0x16a));}),test(_0x999b20(0x148),async()=>{const _0x6f1dda=_0x999b20,{MESSAGE_CONFIG:_0x57d3d1}=await import(_0x6f1dda(0x168));expect(_0x57d3d1)['toBeDefined'](),expect(_0x57d3d1[_0x6f1dda(0x153)])['toBeDefined'](),expect(_0x57d3d1[_0x6f1dda(0x14c)])[_0x6f1dda(0x176)](),expect(typeof _0x57d3d1[_0x6f1dda(0x153)])[_0x6f1dda(0x149)]('number'),expect(typeof _0x57d3d1[_0x6f1dda(0x14c)])['toBe']('number');}),test(_0x999b20(0x147),async()=>{const _0x594a0d=_0x999b20,{PAGINATION:_0x4927d3}=await import(_0x594a0d(0x168));expect(_0x4927d3)[_0x594a0d(0x176)](),expect(_0x4927d3['PAGE_SIZE'])['toBeDefined'](),expect(_0x4927d3[_0x594a0d(0x175)])['toBeDefined'](),expect(typeof _0x4927d3[_0x594a0d(0x16e)])['toBe'](_0x594a0d(0x151)),expect(typeof _0x4927d3[_0x594a0d(0x175)])['toBe'](_0x594a0d(0x151));}),test(_0x999b20(0x169),async()=>{const _0x190cc1=_0x999b20,{WS_MESSAGE_TYPE:_0x380bda}=await import('../../config/constants.js');expect(_0x380bda)[_0x190cc1(0x176)](),expect(_0x380bda['MESSAGE_ADDED'])['toBe']('message_added'),expect(_0x380bda[_0x190cc1(0x179)])[_0x190cc1(0x149)]('agent_mode_changed'),expect(_0x380bda['EXECUTION_STOPPED'])['toBe']('execution_stopped');});}),describe(a0_0x2b063f(0x15f),()=>{const _0x2b744a=a0_0x2b063f;test(_0x2b744a(0x161),async()=>{const _0x5b3c2f=_0x2b744a,{useMessages:_0x305942}=await import(_0x5b3c2f(0x180)),{SessionManager:_0x587ed8}=await import(_0x5b3c2f(0x16b)),{MessageRouter:_0x5651c2}=await import(_0x5b3c2f(0x17f)),{WebSocketManager:_0x2c9e8c}=await import(_0x5b3c2f(0x173)),_0x9d576c=new _0x587ed8(_0x5b3c2f(0x15e),0x1f90),_0x1ec04c=new _0x2c9e8c('localhost',0x1f90),_0x59e9c1=new _0x5651c2(_0x1ec04c);expect(_0x9d576c)[_0x5b3c2f(0x176)](),expect(_0x59e9c1)['toBeDefined'](),expect(typeof _0x305942)[_0x5b3c2f(0x149)](_0x5b3c2f(0x16f));}),test('Full message management stack can be imported together',async()=>{const _0xcee8e=_0x2b744a,[_0x46e050,_0xc0b1a4,_0x37d4ca,_0x4bfe26,_0x5b8d3b]=await Promise['all']([import('../../config/constants.js'),import(_0xcee8e(0x16b)),import(_0xcee8e(0x173)),import(_0xcee8e(0x17f)),import('../../state/useMessages.js')]);expect(_0x46e050['MESSAGE_ROLE'])['toBeDefined'](),expect(_0x46e050[_0xcee8e(0x152)])[_0xcee8e(0x176)](),expect(_0x46e050[_0xcee8e(0x17d)])['toBeDefined'](),expect(_0xc0b1a4[_0xcee8e(0x15a)])['toBeDefined'](),expect(_0x37d4ca['WebSocketManager'])[_0xcee8e(0x176)](),expect(_0x4bfe26[_0xcee8e(0x14f)])['toBeDefined'](),expect(_0x5b8d3b[_0xcee8e(0x15d)])[_0xcee8e(0x176)]();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x1ff67f=a0_0x2b063f;test('Orchestrator\x20endpoint\x20can\x20be\x20used\x20for\x20message\x20operations',async()=>{const _0x18e6e9=a0_0x4ca3,{API_ENDPOINTS:_0x3ac300}=await import('../../config/constants.js');expect(_0x3ac300[_0x18e6e9(0x177)])[_0x18e6e9(0x176)](),expect(_0x3ac300['ORCHESTRATOR'])[_0x18e6e9(0x149)]('/api/orchestrator');}),test(_0x1ff67f(0x167),async()=>{const _0x4fa357=_0x1ff67f,{API_ENDPOINTS:_0x2f7799}=await import(_0x4fa357(0x168));expect(_0x2f7799['ORCHESTRATOR'])[_0x4fa357(0x174)](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x112716=a0_0x2b063f;test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const {useMessages:_0x7dceca}=await import('../../state/useMessages.js');expect(_0x7dceca['length'])['toBe'](0x3);}),test(_0x112716(0x17e),async()=>{const _0x15fe0b=_0x112716,{useMessageCount:_0x38b6dd}=await import(_0x15fe0b(0x180));expect(_0x38b6dd['length'])['toBe'](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x307619=a0_0x2b063f;test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x519af0=a0_0x4ca3,{MESSAGE_CONFIG:_0x23b94c}=await import(_0x519af0(0x168));expect(_0x23b94c[_0x519af0(0x153)])['toBeGreaterThan'](0x0),expect(_0x23b94c['MAX_MESSAGE_LENGTH'])[_0x519af0(0x178)](0x186a0),expect(_0x23b94c['MAX_MESSAGES_DISPLAY'])['toBeGreaterThan'](0x0),expect(_0x23b94c[_0x519af0(0x14c)])[_0x519af0(0x178)](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x40e392=a0_0x4ca3,{PAGINATION:_0x4aeaec}=await import(_0x40e392(0x168));expect(_0x4aeaec['PAGE_SIZE'])['toBeGreaterThan'](0x0),expect(_0x4aeaec['PAGE_SIZE'])['toBeLessThanOrEqual'](0x3e8),expect(_0x4aeaec['MAX_PAGE_SIZE'])['toBeGreaterThanOrEqual'](_0x4aeaec['PAGE_SIZE']);}),test(_0x307619(0x172),async()=>{const _0x58c3d1=_0x307619,{MESSAGE_ROLE:_0x4ca944}=await import(_0x58c3d1(0x168));expect(_0x4ca944['USER'])['toBe'](_0x4ca944['USER'][_0x58c3d1(0x14b)]()),expect(_0x4ca944[_0x58c3d1(0x170)])['toBe'](_0x4ca944[_0x58c3d1(0x170)][_0x58c3d1(0x14b)]()),expect(_0x4ca944['SYSTEM'])[_0x58c3d1(0x149)](_0x4ca944['SYSTEM'][_0x58c3d1(0x14b)]());});}),describe(a0_0x2b063f(0x171),()=>{const _0x5cbb30=a0_0x2b063f;test(_0x5cbb30(0x164),async()=>{const _0x201df6=_0x5cbb30,{MessageRouter:_0x1c6f6c}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4d0502}=await import(_0x201df6(0x173)),{WS_MESSAGE_TYPE:_0x2b355a}=await import(_0x201df6(0x168)),_0x37d90e=new _0x4d0502('localhost',0x1f90),_0x186c5c=new _0x1c6f6c(_0x37d90e);expect(_0x186c5c[_0x201df6(0x181)](_0x2b355a[_0x201df6(0x16d)]))['toBe'](!![]),expect(_0x186c5c[_0x201df6(0x181)](_0x2b355a['AGENT_MODE_CHANGED']))[_0x201df6(0x149)](!![]);});}),describe('Message\x20Management\x20-\x20Error\x20Handling',()=>{const _0x2cc40f=a0_0x2b063f;test(_0x2cc40f(0x182),async()=>{const _0xa06e23=_0x2cc40f,{MESSAGE_CONFIG:_0x56bbe0}=await import('../../config/constants.js');expect(_0x56bbe0[_0xa06e23(0x153)])[_0xa06e23(0x176)](),expect(typeof _0x56bbe0['MAX_MESSAGE_LENGTH'])['toBe']('number');const _0x146df3='a'[_0xa06e23(0x14d)](_0x56bbe0[_0xa06e23(0x153)]+0x1);expect(_0x146df3[_0xa06e23(0x17a)])['toBeGreaterThan'](_0x56bbe0['MAX_MESSAGE_LENGTH']);}),test('MESSAGE_CONFIG\x20enforces\x20maximum\x20display\x20messages',async()=>{const _0x32adb2=_0x2cc40f,{MESSAGE_CONFIG:_0x240ab5}=await import('../../config/constants.js');expect(_0x240ab5['MAX_MESSAGES_DISPLAY'])['toBeDefined'](),expect(typeof _0x240ab5[_0x32adb2(0x14c)])['toBe'](_0x32adb2(0x151)),expect(_0x240ab5[_0x32adb2(0x14c)])[_0x32adb2(0x14e)](0x0);});}),describe(a0_0x2b063f(0x157),()=>{test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x4545e5=a0_0x4ca3,{PAGINATION:_0x1002b5}=await import(_0x4545e5(0x168)),_0x51009f=0x0,_0xc13ca7=_0x51009f*_0x1002b5[_0x4545e5(0x16e)];expect(_0xc13ca7)['toBe'](0x0);const _0xacf0c=0x1,_0xc4d824=_0xacf0c*_0x1002b5['PAGE_SIZE'];expect(_0xc4d824)['toBe'](_0x1002b5['PAGE_SIZE']);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0x595038=a0_0x4ca3,{PAGINATION:_0x350dce}=await import(_0x595038(0x168)),_0x398e29=0x3e8,_0x1a9a60=Math[_0x595038(0x163)](_0x398e29,_0x350dce[_0x595038(0x175)]);expect(_0x1a9a60)[_0x595038(0x178)](_0x350dce['MAX_PAGE_SIZE']);});});function a0_0x4ca3(_0x3254f7,_0x29d085){_0x3254f7=_0x3254f7-0x146;const _0x4766cb=a0_0x4766();let _0x4ca3cb=_0x4766cb[_0x3254f7];if(a0_0x4ca3['YRYXOI']===undefined){var _0x311457=function(_0x4b614){const _0x2b98c8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3e99f7='',_0x5d1da5='';for(let _0x434183=0x0,_0x134501,_0x57d3d1,_0x4927d3=0x0;_0x57d3d1=_0x4b614['charAt'](_0x4927d3++);~_0x57d3d1&&(_0x134501=_0x434183%0x4?_0x134501*0x40+_0x57d3d1:_0x57d3d1,_0x434183++%0x4)?_0x3e99f7+=String['fromCharCode'](0xff&_0x134501>>(-0x2*_0x434183&0x6)):0x0){_0x57d3d1=_0x2b98c8['indexOf'](_0x57d3d1);}for(let _0x380bda=0x0,_0x305942=_0x3e99f7['length'];_0x380bda<_0x305942;_0x380bda++){_0x5d1da5+='%'+('00'+_0x3e99f7['charCodeAt'](_0x380bda)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5d1da5);};a0_0x4ca3['EtXnvx']=_0x311457,a0_0x4ca3['pYzBFa']={},a0_0x4ca3['YRYXOI']=!![];}const _0x48f272=_0x4766cb[0x0],_0x1abbdb=_0x3254f7+_0x48f272,_0x189233=a0_0x4ca3['pYzBFa'][_0x1abbdb];return!_0x189233?(_0x4ca3cb=a0_0x4ca3['EtXnvx'](_0x4ca3cb),a0_0x4ca3['pYzBFa'][_0x1abbdb]=_0x4ca3cb):_0x4ca3cb=_0x189233,_0x4ca3cb;}function a0_0x4766(){const _0x8b27a1=['Dg9czurLzMLUzwq','t1jdsevtvfjbve9s','Dg9czuXLC3nuAgfUt3jfCxvHBa','quDftLrFtu9erv9dsefor0ve','BgvUz3rO','u1Ltvevn','mJCXndKYofHtqvLVAW','tuvtu0fhrv9dt05gsuC','DxnLtwvZC2fNzunVDw50ihjLDhvYBNmGzxHWzwn0zwqGAw50zxjMywnLihnOyxbL','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','AgfZsgfUzgXLCG','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','mtaWnJuZu1LRzfH3','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','Dg9czq','tuvtu0fhrv9st0XfignVBNn0yw50CYbHCMuGzgvMAw5Lza','Dg9mB3DLCKnHC2u','tufyx01fu1nbr0vtx0rju1bmqvK','CMvWzwf0','Dg9czuDYzwf0zxjuAgfU','twvZC2fNzvjVDxrLCG','zgvMyxvSDa','BNvTyMvY','tuvtu0fhrv9uwvbf','tufyx01fu1nbr0vFtevor1ri','C3LZDgvT','ndeXotmXmNrWwvvSqW','vvnfuG','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','mZzZruT0rvC','mte4ntKXmgXdtxvzra','u2vZC2LVBK1HBMfNzxi','DxnLCI1TzxnZywDL','quDftLrFuKvtue9ou0u','DxnLtwvZC2fNzxm','Bg9JywXOB3n0','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','tuvtu0fhrv9uwvbfignVBNn0yw50CYbHCMuGzgvMAw5Lza','DxnLtwvZC2fNzxmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','u1Ltvevnx05pveLgsunbveLptG','BwLU','twvZC2fNzvjVDxrLCIbOyxmGBwvZC2fNzsbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','mJy0nZq1nMvLr3n5za','mta5nda2mfbtCffuBG','twvZC2fNzsbbueKGzw5KCg9PBNrZigzVBgXVDYbsrvnuzNvSihbHDhrLCM4','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','C3LZDgvTlw5VDgLMAwnHDgLVBG','lI4VlI4VyxbPl3nLC3nPB24UANm','ndC4ndCXvvzvu3vQ','tuvtu0fhrv9brerfra','uefhrv9tsvPf','zNvUy3rPB24','qvntsvnuqu5u','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','tuvtu0fhrv9st0XfihzHBhvLCYbHCMuGBg93zxjJyxnL','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','Dg9nyxrJAa','tufyx1bbr0vFu0LArq'];a0_0x4766=function(){return _0x8b27a1;};return a0_0x4766();}
|
|
1
|
+
const a0_0x4fa6a9=a0_0xfd36;function a0_0xfd36(_0xd8adab,_0x5d9d1a){_0xd8adab=_0xd8adab-0x144;const _0x255b31=a0_0x255b();let _0xfd367b=_0x255b31[_0xd8adab];if(a0_0xfd36['XqTuxv']===undefined){var _0x97c5fa=function(_0x44781e){const _0xa45248='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4f8624='',_0x2f00cf='';for(let _0x8728ab=0x0,_0x3dba18,_0x4d5d61,_0x2ffbdf=0x0;_0x4d5d61=_0x44781e['charAt'](_0x2ffbdf++);~_0x4d5d61&&(_0x3dba18=_0x8728ab%0x4?_0x3dba18*0x40+_0x4d5d61:_0x4d5d61,_0x8728ab++%0x4)?_0x4f8624+=String['fromCharCode'](0xff&_0x3dba18>>(-0x2*_0x8728ab&0x6)):0x0){_0x4d5d61=_0xa45248['indexOf'](_0x4d5d61);}for(let _0x5b5e02=0x0,_0x5afffe=_0x4f8624['length'];_0x5b5e02<_0x5afffe;_0x5b5e02++){_0x2f00cf+='%'+('00'+_0x4f8624['charCodeAt'](_0x5b5e02)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2f00cf);};a0_0xfd36['LSQrOF']=_0x97c5fa,a0_0xfd36['ekmNnw']={},a0_0xfd36['XqTuxv']=!![];}const _0x16391e=_0x255b31[0x0],_0x3b6691=_0xd8adab+_0x16391e,_0x149eee=a0_0xfd36['ekmNnw'][_0x3b6691];return!_0x149eee?(_0xfd367b=a0_0xfd36['LSQrOF'](_0xfd367b),a0_0xfd36['ekmNnw'][_0x3b6691]=_0xfd367b):_0xfd367b=_0x149eee,_0xfd367b;}(function(_0x6b4a38,_0x4ba0e7){const _0x32ad16=a0_0xfd36,_0x2b74aa=_0x6b4a38();while(!![]){try{const _0x47cdf4=-parseInt(_0x32ad16(0x150))/0x1+-parseInt(_0x32ad16(0x169))/0x2*(-parseInt(_0x32ad16(0x174))/0x3)+-parseInt(_0x32ad16(0x17f))/0x4*(-parseInt(_0x32ad16(0x160))/0x5)+-parseInt(_0x32ad16(0x168))/0x6+-parseInt(_0x32ad16(0x161))/0x7*(parseInt(_0x32ad16(0x17b))/0x8)+-parseInt(_0x32ad16(0x149))/0x9*(-parseInt(_0x32ad16(0x15b))/0xa)+parseInt(_0x32ad16(0x175))/0xb;if(_0x47cdf4===_0x4ba0e7)break;else _0x2b74aa['push'](_0x2b74aa['shift']());}catch(_0x180ac5){_0x2b74aa['push'](_0x2b74aa['shift']());}}}(a0_0x255b,0x55094));import{describe,test,expect}from'@jest/globals';function a0_0x255b(){const _0x3258c1=['mJK5mJa1z2zQreHZ','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','u1Ltvevn','CMvWzwf0','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','v2vIu29JA2v0twfUywDLCG','quDftLrFtu9erv9dsefor0ve','mtaXmtqZt3Pyr1fj','tufyx01fu1nbr0vFtevor1ri','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','BgvUz3rO','Dg9mB3DLCKnHC2u','Dg9nyxrJAa','t3jJAgvZDhjHDg9YigvUzhbVAw50ignHBIbIzsb1C2vKigzVCIbTzxnZywDLig9WzxjHDgLVBNm','Bg9JywXOB3n0','BNvTyMvY','rvHfq1vusu9ox1nut1bqruq','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','mZbAvxfwq1O','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','C3LZDgvTlw5VDgLMAwnHDgLVBG','u2vZC2LVBK1HBMfNzxi','tufyx01fu1nbr0vtx0rju1bmqvK','nta4nZq1AxPbDwvK','mtu1mJGXz1HZywDx','tuvtu0fhrv9st0Xf','DxnLtwvZC2fNzunVDw50ihjLDhvYBNmGzxHWzwn0zwqGAw50zxjMywnLihnOyxbL','tuvtu0fhrv9dt05gsuC','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','t1jdsevtvfjbve9s','uefhrv9tsvPf','mZyYmtq5mNDLCKrhwa','nte1ndbLzgXZvu8','Dg9czuXLC3nuAgfUt3jfCxvHBa','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','tuvtu0fhrv9brerfra','qvntsvnuqu5u','uefhsu5bveLptIbSAw1PDcbKB2vZig5VDcbLEgnLzwqGtufyx1bbr0vFu0LArq','C3LZDgvT','DxnLCI1TzxnZywDL','l2fWAs9VCMnOzxn0CMf0B3i','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','AgfZsgfUzgXLCG','mZLfBLzywfy','ntKYntK0mLbUs0vgEG','tufyx1bbr0vFu0LArq','zNvUy3rPB24','zgvMyxvSDa','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','lI4VlI4VyxbPl3nLC3nPB24UANm','og1xu2HyyG','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbKAxnWBgf5ig1LC3nHz2vZ','ywDLBNqTCMvZCg9UC2u','Dg9czuDYzwf0zxjuAgfU','ngz5wfrWAW','twvZC2fNzvjVDxrLCG','tuvtu0fhrv9uwvbfignVBNn0yw50CYbHCMuGzgvMAw5Lza','ywDLBNrFBw9Kzv9JAgfUz2vK','Dg9czq','Dg9czurLzMLUzwq'];a0_0x255b=function(){return _0x3258c1;};return a0_0x255b();}describe('Message\x20Management\x20-\x20Imports',()=>{test('useMessages hook can be imported',async()=>{const _0x1678db=a0_0xfd36,{useMessages:_0x4f8624}=await import('../../state/useMessages.js');expect(_0x4f8624)[_0x1678db(0x148)](),expect(typeof _0x4f8624)[_0x1678db(0x147)](_0x1678db(0x177));}),test('useMessages is default export',async()=>{const _0x26511a=a0_0xfd36,module=await import('../../state/useMessages.js');expect(module['default'])['toBeDefined'](),expect(typeof module[_0x26511a(0x178)])[_0x26511a(0x147)]('function'),expect(module[_0x26511a(0x178)])['toBe'](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x9de2a3=a0_0xfd36,{useMessageCount:_0x2f00cf}=await import('../../state/useMessages.js');expect(_0x2f00cf)[_0x9de2a3(0x148)](),expect(typeof _0x2f00cf)[_0x9de2a3(0x147)](_0x9de2a3(0x177));});}),describe(a0_0x4fa6a9(0x172),()=>{const _0x598d62=a0_0x4fa6a9;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0xfc36b1=a0_0xfd36,{MESSAGE_ROLE:_0x8728ab}=await import('../../config/constants.js');expect(_0x8728ab)[_0xfc36b1(0x148)](),expect(_0x8728ab['USER'])[_0xfc36b1(0x147)]('user'),expect(_0x8728ab[_0xfc36b1(0x16d)])[_0xfc36b1(0x147)]('assistant'),expect(_0x8728ab['SYSTEM'])[_0xfc36b1(0x147)](_0xfc36b1(0x16f));}),test(_0x598d62(0x145),async()=>{const _0x52f318=_0x598d62,{MESSAGE_TYPE:_0x3dba18}=await import('../../config/constants.js');expect(_0x3dba18)[_0x52f318(0x148)](),expect(_0x3dba18['USER_MESSAGE'])['toBe'](_0x52f318(0x170)),expect(_0x3dba18['AGENT_RESPONSE'])[_0x52f318(0x147)](_0x52f318(0x17d)),expect(_0x3dba18['SYSTEM_NOTIFICATION'])['toBe'](_0x52f318(0x15d));}),test('MESSAGE_CONFIG\x20constants\x20are\x20defined',async()=>{const _0x15648e=_0x598d62,{MESSAGE_CONFIG:_0x4d5d61}=await import(_0x15648e(0x165));expect(_0x4d5d61)[_0x15648e(0x148)](),expect(_0x4d5d61[_0x15648e(0x151)])['toBeDefined'](),expect(_0x4d5d61['MAX_MESSAGES_DISPLAY'])[_0x15648e(0x148)](),expect(typeof _0x4d5d61[_0x15648e(0x151)])[_0x15648e(0x147)]('number'),expect(typeof _0x4d5d61[_0x15648e(0x15f)])[_0x15648e(0x147)](_0x15648e(0x158));}),test('PAGINATION\x20constants\x20are\x20defined',async()=>{const _0x1942ea=_0x598d62,{PAGINATION:_0x2ffbdf}=await import('../../config/constants.js');expect(_0x2ffbdf)[_0x1942ea(0x148)](),expect(_0x2ffbdf[_0x1942ea(0x167)])[_0x1942ea(0x148)](),expect(_0x2ffbdf[_0x1942ea(0x176)])['toBeDefined'](),expect(typeof _0x2ffbdf['PAGE_SIZE'])[_0x1942ea(0x147)]('number'),expect(typeof _0x2ffbdf[_0x1942ea(0x176)])['toBe']('number');}),test(_0x598d62(0x14d),async()=>{const _0x23abdd=_0x598d62,{WS_MESSAGE_TYPE:_0x5b5e02}=await import('../../config/constants.js');expect(_0x5b5e02)['toBeDefined'](),expect(_0x5b5e02['MESSAGE_ADDED'])[_0x23abdd(0x147)]('message_added'),expect(_0x5b5e02[_0x23abdd(0x14f)])[_0x23abdd(0x147)](_0x23abdd(0x146)),expect(_0x5b5e02[_0x23abdd(0x159)])['toBe']('execution_stopped');});}),describe(a0_0x4fa6a9(0x179),()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0xcc13dd=a0_0xfd36,{useMessages:_0x5afffe}=await import('../../state/useMessages.js'),{SessionManager:_0x357d04}=await import(_0xcc13dd(0x17a)),{MessageRouter:_0x37f08e}=await import(_0xcc13dd(0x152)),{WebSocketManager:_0x5a0c9a}=await import('../../api/websocket.js'),_0x4d76db=new _0x357d04(_0xcc13dd(0x157),0x1f90),_0x56513b=new _0x5a0c9a(_0xcc13dd(0x157),0x1f90),_0xbab412=new _0x37f08e(_0x56513b);expect(_0x4d76db)[_0xcc13dd(0x148)](),expect(_0xbab412)[_0xcc13dd(0x148)](),expect(typeof _0x5afffe)[_0xcc13dd(0x147)]('function');}),test('Full message management stack can be imported together',async()=>{const _0x1c50ce=a0_0xfd36,[_0x4914e0,_0x58d30e,_0x4d556e,_0x493e20,_0x14bb89]=await Promise['all']([import('../../config/constants.js'),import('../../api/session.js'),import(_0x1c50ce(0x15c)),import('../../api/messageRouter.js'),import('../../state/useMessages.js')]);expect(_0x4914e0[_0x1c50ce(0x162)])['toBeDefined'](),expect(_0x4914e0['MESSAGE_TYPE'])[_0x1c50ce(0x148)](),expect(_0x4914e0[_0x1c50ce(0x164)])[_0x1c50ce(0x148)](),expect(_0x58d30e[_0x1c50ce(0x15e)])[_0x1c50ce(0x148)](),expect(_0x4d556e[_0x1c50ce(0x14e)])[_0x1c50ce(0x148)](),expect(_0x493e20[_0x1c50ce(0x144)])[_0x1c50ce(0x148)](),expect(_0x14bb89['useMessages'])['toBeDefined']();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x3ebfd5=a0_0x4fa6a9;test(_0x3ebfd5(0x156),async()=>{const _0x450d1c=_0x3ebfd5,{API_ENDPOINTS:_0xdea0a3}=await import(_0x450d1c(0x165));expect(_0xdea0a3['ORCHESTRATOR'])['toBeDefined'](),expect(_0xdea0a3[_0x450d1c(0x166)])['toBe'](_0x450d1c(0x171));}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x22ec41=_0x3ebfd5,{API_ENDPOINTS:_0x48995a}=await import(_0x22ec41(0x165));expect(_0x48995a[_0x22ec41(0x166)])[_0x22ec41(0x155)](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x2f610b=a0_0x4fa6a9;test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x371351=a0_0xfd36,{useMessages:_0x3f815b}=await import('../../state/useMessages.js');expect(_0x3f815b[_0x371351(0x153)])[_0x371351(0x147)](0x3);}),test(_0x2f610b(0x163),async()=>{const {useMessageCount:_0x597962}=await import('../../state/useMessages.js');expect(_0x597962['length'])['toBe'](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x22158c=a0_0xfd36,{MESSAGE_CONFIG:_0x7db91e}=await import(_0x22158c(0x165));expect(_0x7db91e['MAX_MESSAGE_LENGTH'])[_0x22158c(0x17e)](0x0),expect(_0x7db91e['MAX_MESSAGE_LENGTH'])['toBeLessThanOrEqual'](0x186a0),expect(_0x7db91e[_0x22158c(0x15f)])['toBeGreaterThan'](0x0),expect(_0x7db91e['MAX_MESSAGES_DISPLAY'])[_0x22158c(0x16a)](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x44d066=a0_0xfd36,{PAGINATION:_0x157d8}=await import(_0x44d066(0x165));expect(_0x157d8[_0x44d066(0x167)])[_0x44d066(0x17e)](0x0),expect(_0x157d8[_0x44d066(0x167)])['toBeLessThanOrEqual'](0x3e8),expect(_0x157d8[_0x44d066(0x176)])[_0x44d066(0x15a)](_0x157d8[_0x44d066(0x167)]);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x371f8d=a0_0xfd36,{MESSAGE_ROLE:_0x4fca1b}=await import('../../config/constants.js');expect(_0x4fca1b['USER'])['toBe'](_0x4fca1b['USER'][_0x371f8d(0x154)]()),expect(_0x4fca1b['ASSISTANT'])['toBe'](_0x4fca1b[_0x371f8d(0x16d)][_0x371f8d(0x154)]()),expect(_0x4fca1b['SYSTEM'])['toBe'](_0x4fca1b[_0x371f8d(0x14b)]['toLowerCase']());});}),describe(a0_0x4fa6a9(0x14a),()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0x319ea3=a0_0xfd36,{MessageRouter:_0xc97724}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x3278fd}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0xd7e15b}=await import(_0x319ea3(0x165)),_0x456181=new _0x3278fd(_0x319ea3(0x157),0x1f90),_0x7a6be5=new _0xc97724(_0x456181);expect(_0x7a6be5['hasHandler'](_0xd7e15b[_0x319ea3(0x16c)]))['toBe'](!![]),expect(_0x7a6be5[_0x319ea3(0x173)](_0xd7e15b[_0x319ea3(0x14f)]))['toBe'](!![]);});}),describe('Message\x20Management\x20-\x20Error\x20Handling',()=>{const _0x2974fb=a0_0x4fa6a9;test(_0x2974fb(0x16b),async()=>{const _0x4d71ef=_0x2974fb,{MESSAGE_CONFIG:_0x46cb30}=await import(_0x4d71ef(0x165));expect(_0x46cb30[_0x4d71ef(0x151)])['toBeDefined'](),expect(typeof _0x46cb30[_0x4d71ef(0x151)])[_0x4d71ef(0x147)](_0x4d71ef(0x158));const _0x44c9ff='a'[_0x4d71ef(0x14c)](_0x46cb30[_0x4d71ef(0x151)]+0x1);expect(_0x44c9ff['length'])['toBeGreaterThan'](_0x46cb30['MAX_MESSAGE_LENGTH']);}),test(_0x2974fb(0x17c),async()=>{const _0x8afc2=_0x2974fb,{MESSAGE_CONFIG:_0x273076}=await import('../../config/constants.js');expect(_0x273076[_0x8afc2(0x15f)])[_0x8afc2(0x148)](),expect(typeof _0x273076[_0x8afc2(0x15f)])[_0x8afc2(0x147)]('number'),expect(_0x273076['MAX_MESSAGES_DISPLAY'])[_0x8afc2(0x17e)](0x0);});}),describe('Message\x20Management\x20-\x20Pagination\x20Logic',()=>{const _0x38b094=a0_0x4fa6a9;test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x1b4db3=a0_0xfd36,{PAGINATION:_0x31939a}=await import(_0x1b4db3(0x165)),_0x2d260b=0x0,_0x3f151a=_0x2d260b*_0x31939a[_0x1b4db3(0x167)];expect(_0x3f151a)['toBe'](0x0);const _0x1cf14a=0x1,_0x469beb=_0x1cf14a*_0x31939a['PAGE_SIZE'];expect(_0x469beb)['toBe'](_0x31939a['PAGE_SIZE']);}),test(_0x38b094(0x16e),async()=>{const _0x4f9ed8=_0x38b094,{PAGINATION:_0x1a8150}=await import('../../config/constants.js'),_0x4dd8f8=0x3e8,_0x229e06=Math['min'](_0x4dd8f8,_0x1a8150[_0x4f9ed8(0x176)]);expect(_0x229e06)[_0x4f9ed8(0x16a)](_0x1a8150[_0x4f9ed8(0x176)]);});});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x3498(_0x342e6f,_0x38eed1){_0x342e6f=_0x342e6f-0x199;const _0x45c95c=a0_0x45c9();let _0x3498f6=_0x45c95c[_0x342e6f];if(a0_0x3498['gGMoPP']===undefined){var _0x4f97fc=function(_0x27a3ed){const _0x1788d3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xe91c77='',_0x15e021='';for(let _0x2d96ce=0x0,_0x217afa,_0x4240f6,_0x2b2eaf=0x0;_0x4240f6=_0x27a3ed['charAt'](_0x2b2eaf++);~_0x4240f6&&(_0x217afa=_0x2d96ce%0x4?_0x217afa*0x40+_0x4240f6:_0x4240f6,_0x2d96ce++%0x4)?_0xe91c77+=String['fromCharCode'](0xff&_0x217afa>>(-0x2*_0x2d96ce&0x6)):0x0){_0x4240f6=_0x1788d3['indexOf'](_0x4240f6);}for(let _0x106d68=0x0,_0x13da3d=_0xe91c77['length'];_0x106d68<_0x13da3d;_0x106d68++){_0x15e021+='%'+('00'+_0xe91c77['charCodeAt'](_0x106d68)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x15e021);};a0_0x3498['QBGrvj']=_0x4f97fc,a0_0x3498['YXBczr']={},a0_0x3498['gGMoPP']=!![];}const _0x47ce16=_0x45c95c[0x0],_0x4c8c08=_0x342e6f+_0x47ce16,_0x1b3d9c=a0_0x3498['YXBczr'][_0x4c8c08];return!_0x1b3d9c?(_0x3498f6=a0_0x3498['QBGrvj'](_0x3498f6),a0_0x3498['YXBczr'][_0x4c8c08]=_0x3498f6):_0x3498f6=_0x1b3d9c,_0x3498f6;}const a0_0x4f437a=a0_0x3498;function a0_0x45c9(){const _0x13b190=['AgfZ','zgvMyxvSDa','CMvHzf9MAwXL','ve9ptf9dqvrfr09swq','mtK0mdC4ntjWCuTOr1G','DgvYBwLUywW','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGrMLSDgvYAw5N','Bg9JywXOB3n0','mtb2sK9Rzfq','DxnLvg9VBhmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','mtnHA2nMENK','zNvUy3rPB24','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','BwfW','mJu4nefPr3bfwa','q2f0zwDVCNKGy291BNrZignHBIbIzsbJywXJDwXHDgvK','ywrK','ve9ptf9dqvrfr09swsb2ywX1zxmGyxjLigXVD2vYy2fZzq','l2fWAs9VCMnOzxn0CMf0B3i','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','zMLSzq','Aw5JBhvKzxm','C3vJy2vZCW','vg9VBcbJywnOzsbZDxbWB3j0CYbuveWTyMfZzwqGy2fJAgLUzW','u1Ltvevn','y2f0zwDVCNK','mZm5odb0D2Luq0K','Dg9czq','zgvZy3jPChrPB24','DxnLvg9VBhm','ugvYzM9YBsbZDgf0AwmGy29KzsbHBMfSExnPCW','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','twvZC2fNzvjVDxrLCIbOyxmGDg9VBcbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','zMLSzsbJB250zw50CW','zxHLyY0X','n09LyxPxvW','nJqXnZCWofz3q3PTDa','vg9VBhmGtwfUywDLBwvUDcaTifDLyLnVy2TLDcbfDMvUDcbiyw5KBgvYCW','nfLZrfrMCa','vvrjteLuwq','v2vIu29JA2v0twfUywDLCG','z2v0','qvvut01bveLptG','vg9VBhmGy2fUigjLigzPBhrLCMvKigj5ig11BhrPCgXLignYAxrLCMLH','t1jdsevtvfjbve9s','vg9VBhmGqvbjigvUzhbVAw50igLZigrLzMLUzwq','u2vZC2LVBK1HBMfNzxi','Dg9dB250ywLU','lI4VlI4VyxbPl3nLC3nPB24UANm','mZLhBKz5z3C','zw5HyMXLza','mZa0mJG3nNjer2jlyG','ve9ptf9dqvrfr09swsbJB25ZDgfUDhmGyxjLigrLzMLUzwq','ve9ptfm','BM93','qu5btfLtsvm','t3jJAgvZDhjHDg9YigvUzhbVAw50igLZihvZzwqGzM9YihrVB2WGB3bLCMf0Aw9UCW','zgf0yq','q09mtefct1jbveLptG','zxHLy3v0zv9JB21Tyw5K','D2vIx3nLyxjJAa','qvbjx0vorfbpsu5uuW','vg9VBhmGtwfUywDLBwvUDcaTieHVB2SGsw50zxjMywnLifzLCMLMAwnHDgLVBG','yw5HBhL6zv9JB2rL','BMfTzq','vg9VBcbJywnOzsbLEhbPCMvZigfMDgvYifruta','Dg9fCxvHBa','Dg9czurLzMLUzwq','zxHLyY0Y','ywLFyxnZAxn0yw50','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGu2vHCMnO','mZiWoteZnvPgq1nRsq','odu1ntu1wuPuv2HO','Dg9mB3DLCKnHC2u','Dg9nyxrJAa','mtyYodfpvNLlEeS','ve9ptf9dqvrfr09swsb2ywX1zxmGBwf0y2GGzxHWzwn0zwqGzM9YBwf0','zgvSzxrL','C2v0','zMLSDgvY','ywXS','BgvUz3rO','l2fWAs90B29SCW','AxnZDwvZ','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','vg9VBhmGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','C2L6zq'];a0_0x45c9=function(){return _0x13b190;};return a0_0x45c9();}(function(_0x2c44d9,_0x397cdc){const _0x4d1142=a0_0x3498,_0x3d373b=_0x2c44d9();while(!![]){try{const _0x2e85f8=parseInt(_0x4d1142(0x1ea))/0x1*(parseInt(_0x4d1142(0x1d3))/0x2)+parseInt(_0x4d1142(0x1a9))/0x3*(parseInt(_0x4d1142(0x1df))/0x4)+parseInt(_0x4d1142(0x1a8))/0x5+parseInt(_0x4d1142(0x1ec))/0x6*(parseInt(_0x4d1142(0x1dc))/0x7)+parseInt(_0x4d1142(0x1c7))/0x8*(-parseInt(_0x4d1142(0x1ac))/0x9)+parseInt(_0x4d1142(0x1c1))/0xa*(parseInt(_0x4d1142(0x1dd))/0xb)+-parseInt(_0x4d1142(0x1bd))/0xc*(parseInt(_0x4d1142(0x1c3))/0xd);if(_0x2e85f8===_0x397cdc)break;else _0x3d373b['push'](_0x3d373b['shift']());}catch(_0x31261f){_0x3d373b['push'](_0x3d373b['shift']());}}}(a0_0x45c9,0x74d68));import{describe,test,expect}from'@jest/globals';describe('Tools\x20Management\x20-\x20Imports',()=>{test('useTools hook can be imported',async()=>{const _0x343b33=a0_0x3498,{useTools:_0xe91c77}=await import('../../state/useTools.js');expect(_0xe91c77)['toBeDefined'](),expect(typeof _0xe91c77)[_0x343b33(0x1d4)](_0x343b33(0x1c4));}),test('useTools is default export',async()=>{const _0x3f800d=a0_0x3498,module=await import('../../state/useTools.js');expect(module[_0x3f800d(0x1ba)])[_0x3f800d(0x1a4)](),expect(typeof module['default'])['toBe'](_0x3f800d(0x1c4)),expect(module[_0x3f800d(0x1ba)])[_0x3f800d(0x1d4)](module['useTools']);});}),describe('Tools\x20Management\x20-\x20Constants',()=>{const _0x4c5d3f=a0_0x3498;test(_0x4c5d3f(0x1ed),async()=>{const _0x6647e3=_0x4c5d3f,{TOOL_CATEGORY:_0x15e021}=await import(_0x6647e3(0x1cc));expect(_0x15e021)[_0x6647e3(0x1a4)](),expect(_0x15e021['SYSTEM'])['toBeDefined'](),expect(_0x15e021['AUTOMATION'])[_0x6647e3(0x1a4)](),expect(_0x15e021['ANALYSIS'])['toBeDefined'](),expect(_0x15e021['UTILITY'])['toBeDefined'](),expect(_0x15e021[_0x6647e3(0x19b)])['toBeDefined'](),expect(_0x15e021['AI'])[_0x6647e3(0x1a4)]();}),test(_0x4c5d3f(0x1ca),async()=>{const _0x571ac3=_0x4c5d3f,{TOOL_CATEGORY:_0x2d96ce}=await import('../../config/constants.js');expect(_0x2d96ce['SYSTEM'])['toBe'](_0x2d96ce[_0x571ac3(0x1d1)][_0x571ac3(0x1aa)]()),expect(_0x2d96ce['AUTOMATION'])['toBe'](_0x2d96ce['AUTOMATION']['toLowerCase']()),expect(_0x2d96ce[_0x571ac3(0x1f0)])[_0x571ac3(0x1d4)](_0x2d96ce['ANALYSIS']['toLowerCase']()),expect(_0x2d96ce['UTILITY'])[_0x571ac3(0x1d4)](_0x2d96ce[_0x571ac3(0x1e0)]['toLowerCase']());}),test(_0x4c5d3f(0x1e6),async()=>{const _0x59ac9a=_0x4c5d3f,{API_ENDPOINTS:_0x217afa}=await import(_0x59ac9a(0x1cc));expect(_0x217afa['TOOLS'])[_0x59ac9a(0x1a4)](),expect(_0x217afa[_0x59ac9a(0x1ee)])['toBe'](_0x59ac9a(0x1b3));}),test(_0x4c5d3f(0x199),async()=>{const _0x4c5f90=_0x4c5d3f,{API_ENDPOINTS:_0x4240f6}=await import('../../config/constants.js');expect(_0x4240f6['ORCHESTRATOR'])['toBeDefined'](),expect(_0x4240f6['ORCHESTRATOR'])[_0x4c5f90(0x1d4)](_0x4c5f90(0x1cb));});}),describe(a0_0x4f437a(0x1b6),()=>{const _0x5f0de2=a0_0x4f437a;test(_0x5f0de2(0x1c2),async()=>{const _0x5235d6=_0x5f0de2,{useTools:_0x2b2eaf}=await import(_0x5235d6(0x1c5)),{SessionManager:_0x106d68}=await import(_0x5235d6(0x1e9)),{MessageRouter:_0x13da3d}=await import(_0x5235d6(0x1b5)),{WebSocketManager:_0xd0e389}=await import(_0x5235d6(0x1d8)),_0xe2e1cb=new _0x106d68(_0x5235d6(0x1c0),0x1f90),_0x1ab44d=new _0xd0e389(_0x5235d6(0x1c0),0x1f90),_0x2d41a5=new _0x13da3d(_0x1ab44d);expect(_0xe2e1cb)[_0x5235d6(0x1a4)](),expect(_0x2d41a5)['toBeDefined'](),expect(typeof _0x2b2eaf)['toBe']('function');}),test('Full tools management stack can be imported together',async()=>{const _0x3614bb=_0x5f0de2,[_0x2f791c,_0x3fcb18,_0x2099e8,_0x28e590,_0xcf12bb]=await Promise[_0x3614bb(0x1b1)]([import(_0x3614bb(0x1cc)),import('../../api/session.js'),import(_0x3614bb(0x1d8)),import('../../api/messageRouter.js'),import(_0x3614bb(0x1c5))]);expect(_0x2f791c[_0x3614bb(0x1bc)])[_0x3614bb(0x1a4)](),expect(_0x2f791c[_0x3614bb(0x19e)])[_0x3614bb(0x1a4)](),expect(_0x3fcb18[_0x3614bb(0x1e7)])['toBeDefined'](),expect(_0x2099e8[_0x3614bb(0x1e1)])[_0x3614bb(0x1a4)](),expect(_0x28e590['MessageRouter'])['toBeDefined'](),expect(_0xcf12bb[_0x3614bb(0x1d6)])[_0x3614bb(0x1a4)]();});}),describe('Tools\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{test('Tools\x20endpoint\x20follows\x20RESTful\x20pattern',async()=>{const _0x584be6=a0_0x3498,{API_ENDPOINTS:_0x4d549d}=await import('../../config/constants.js');expect(_0x4d549d[_0x584be6(0x1ee)])['toMatch'](/^\/api\//),expect(_0x4d549d['TOOLS'])['toBe']('/api/tools');}),test('Tool\x20operations\x20use\x20orchestrator\x20endpoint',async()=>{const _0x180a42=a0_0x3498,{API_ENDPOINTS:_0x13d7f0}=await import(_0x180a42(0x1cc));expect(_0x13d7f0[_0x180a42(0x1e5)])[_0x180a42(0x1a4)](),expect(_0x13d7f0['ORCHESTRATOR'])[_0x180a42(0x1d4)](_0x180a42(0x1cb));});}),describe(a0_0x4f437a(0x19f),()=>{test('useTools\x20returns\x20expected\x20interface\x20shape',async()=>{const {useTools:_0xf991f3}=await import('../../state/useTools.js');expect(_0xf991f3['length'])['toBe'](0x3);});}),describe('Tools\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x47b1ca=a0_0x4f437a;test('TOOL_CATEGORY\x20includes\x20all\x20major\x20categories',async()=>{const _0x32a339=a0_0x3498,{TOOL_CATEGORY:_0x40aa46}=await import(_0x32a339(0x1cc)),_0x1fba5a=Object['keys'](_0x40aa46);expect(_0x1fba5a)['toContain'](_0x32a339(0x1d1)),expect(_0x1fba5a)[_0x32a339(0x1e8)](_0x32a339(0x1e3)),expect(_0x1fba5a)['toContain']('ANALYSIS'),expect(_0x1fba5a)['toContain'](_0x32a339(0x1e0)),expect(_0x1fba5a)['toContain']('COLLABORATION'),expect(_0x1fba5a)[_0x32a339(0x1e8)]('AI');}),test(_0x47b1ca(0x1ad),async()=>{const _0x272ebb=_0x47b1ca,{TOOL_CATEGORY:_0x293346}=await import(_0x272ebb(0x1cc));expect(_0x293346[_0x272ebb(0x1d1)])['toMatch'](/^[a-z_]+$/),expect(_0x293346[_0x272ebb(0x1e3)])[_0x272ebb(0x1ab)](/^[a-z_]+$/),expect(_0x293346[_0x272ebb(0x1f0)])['toMatch'](/^[a-z_]+$/),expect(_0x293346['UTILITY'])[_0x272ebb(0x1ab)](/^[a-z_]+$/);});}),describe(a0_0x4f437a(0x1de),()=>{const _0x50f2c5=a0_0x4f437a;test(_0x50f2c5(0x1d9),async()=>{const _0x2f3595=_0x50f2c5,{MessageRouter:_0x54dc5b}=await import(_0x2f3595(0x1b5)),{WebSocketManager:_0x4c8571}=await import(_0x2f3595(0x1d8)),_0x577d74=new _0x4c8571('localhost',0x1f90),_0x2e035a=new _0x54dc5b(_0x577d74);expect(_0x2e035a['hasHandler'])[_0x2f3595(0x1a4)](),expect(typeof _0x2e035a['hasHandler'])['toBe'](_0x2f3595(0x1c4));});}),describe('Tools\x20Management\x20-\x20Tool\x20Categorization',()=>{test('TOOL_CATEGORY\x20can\x20be\x20used\x20to\x20filter\x20tools\x20by\x20category',async()=>{const _0x3a7290=a0_0x3498,{TOOL_CATEGORY:_0xaf19dc}=await import(_0x3a7290(0x1cc)),_0x4231a4=[{'name':_0x3a7290(0x19c),'category':_0xaf19dc['SYSTEM']},{'name':_0x3a7290(0x1be),'category':_0xaf19dc['SYSTEM']},{'name':_0x3a7290(0x1a0),'category':_0xaf19dc[_0x3a7290(0x1f0)]},{'name':'web_search','category':_0xaf19dc['UTILITY']},{'name':_0x3a7290(0x1a6),'category':_0xaf19dc['AI']}],_0x2d4fb4=_0x4231a4['filter'](_0x25c914=>_0x25c914['category']===_0xaf19dc[_0x3a7290(0x1d1)]),_0x77112f=_0x4231a4['filter'](_0x557dcf=>_0x557dcf['category']===_0xaf19dc['ANALYSIS']),_0x182267=_0x4231a4['filter'](_0x2c706a=>_0x2c706a[_0x3a7290(0x1d2)]===_0xaf19dc['UTILITY']),_0x1da85b=_0x4231a4[_0x3a7290(0x1b0)](_0x238ccc=>_0x238ccc['category']===_0xaf19dc['AI']);expect(_0x2d4fb4[_0x3a7290(0x1b2)])['toBe'](0x2),expect(_0x77112f['length'])[_0x3a7290(0x1d4)](0x1),expect(_0x182267['length'])[_0x3a7290(0x1d4)](0x1),expect(_0x1da85b[_0x3a7290(0x1b2)])[_0x3a7290(0x1d4)](0x1),expect(_0x2d4fb4[0x0]['name'])[_0x3a7290(0x1d4)]('execute_command'),expect(_0x77112f[0x0][_0x3a7290(0x1a1)])[_0x3a7290(0x1d4)](_0x3a7290(0x1a0));});}),describe(a0_0x4f437a(0x1a7),()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x3818b3=a0_0x3498,_0x4b7ff1=[{'name':'read_file','description':'Read\x20contents\x20of\x20a\x20file'},{'name':'write_file','description':'Write\x20data\x20to\x20a\x20file'},{'name':'analyze_code','description':_0x3818b3(0x1d7)}],_0xa08f85=_0x4f7b89=>{const _0x4be7c9=_0x3818b3,_0x131421=_0x4f7b89[_0x4be7c9(0x1aa)]();return _0x4b7ff1[_0x4be7c9(0x1b0)](_0x475b4c=>_0x475b4c[_0x4be7c9(0x1a1)]?.['toLowerCase']()[_0x4be7c9(0x1ce)](_0x131421)||_0x475b4c[_0x4be7c9(0x1d5)]?.[_0x4be7c9(0x1aa)]()['includes'](_0x131421));},_0x5773f2=_0xa08f85(_0x3818b3(0x1cd));expect(_0x5773f2[_0x3818b3(0x1b2)])['toBe'](0x2),expect(_0x5773f2['map'](_0x363ede=>_0x363ede[_0x3818b3(0x1a1)]))['toContain']('read_file'),expect(_0x5773f2[_0x3818b3(0x1c6)](_0x17ddd8=>_0x17ddd8['name']))['toContain']('write_file');const _0x4d7ccd=_0xa08f85('analyze');expect(_0x4d7ccd['length'])['toBe'](0x1),expect(_0x4d7ccd[0x0][_0x3818b3(0x1a1)])[_0x3818b3(0x1d4)](_0x3818b3(0x1a0));});}),describe('Tools\x20Management\x20-\x20Execution\x20State\x20Tracking',()=>{test('Execution\x20state\x20can\x20track\x20multiple\x20tools',async()=>{const _0x5619d7=a0_0x3498,_0x3ce87b=new Set();_0x3ce87b[_0x5619d7(0x1c9)]('read_file'),_0x3ce87b['add']('analyze_code'),expect(_0x3ce87b['has'](_0x5619d7(0x1bb)))['toBe'](!![]),expect(_0x3ce87b[_0x5619d7(0x1b9)]('analyze_code'))['toBe'](!![]),expect(_0x3ce87b[_0x5619d7(0x1b8)])['toBe'](0x2),_0x3ce87b[_0x5619d7(0x1ae)](_0x5619d7(0x1bb)),expect(_0x3ce87b['has']('read_file'))[_0x5619d7(0x1d4)](![]),expect(_0x3ce87b['has'](_0x5619d7(0x1a0)))['toBe'](!![]),expect(_0x3ce87b['size'])['toBe'](0x1);}),test('Tool\x20results\x20can\x20be\x20stored\x20by\x20execution\x20ID',async()=>{const _0x16c27e=a0_0x3498,_0xb925b8=new Map();_0xb925b8[_0x16c27e(0x1af)](_0x16c27e(0x1db),{'success':!![],'data':'file\x20contents'}),_0xb925b8['set']('exec-2',{'success':!![],'data':{'issues':[]}}),expect(_0xb925b8[_0x16c27e(0x1e2)]('exec-1'))[_0x16c27e(0x1a4)](),expect(_0xb925b8['get'](_0x16c27e(0x1db))[_0x16c27e(0x1cf)])['toBe'](!![]),expect(_0xb925b8[_0x16c27e(0x1e2)]('exec-1')[_0x16c27e(0x19a)])[_0x16c27e(0x1d4)](_0x16c27e(0x1da)),expect(_0xb925b8[_0x16c27e(0x1e2)](_0x16c27e(0x1a5)))[_0x16c27e(0x1a4)](),expect(_0xb925b8[_0x16c27e(0x1e2)]('exec-2')['data'][_0x16c27e(0x1b4)])[_0x16c27e(0x1a3)]([]),expect(_0xb925b8[_0x16c27e(0x1b8)])['toBe'](0x2);});}),describe(a0_0x4f437a(0x1b7),()=>{const _0x5cbfc3=a0_0x4f437a;test(_0x5cbfc3(0x1d0),async()=>{const _0x457690=_0x5cbfc3,_0x43b548=0x927c0;let _0xa71435=null,_0x5d24c9=0x0;const _0x401db8=[{'name':'read_file'}];_0xa71435=_0x401db8,_0x5d24c9=Date[_0x457690(0x1ef)]();const _0x1b6143=Date[_0x457690(0x1ef)](),_0x24e749=_0x1b6143-_0x5d24c9<_0x43b548;expect(_0x24e749)['toBe'](!![]),expect(_0xa71435)['toBe'](_0x401db8);}),test(_0x5cbfc3(0x1a2),async()=>{const _0x4b47ab=_0x5cbfc3,_0xe0405a=0x64;let _0x36e192=null,_0x2a531a=0x0;const _0x3f6ffd=[{'name':'read_file'}];_0x36e192=_0x3f6ffd,_0x2a531a=Date['now'](),await new Promise(_0x547ba8=>setTimeout(_0x547ba8,0x96));const _0x304324=Date[_0x4b47ab(0x1ef)](),_0x4b9412=_0x304324-_0x2a531a<_0xe0405a;expect(_0x4b9412)[_0x4b47ab(0x1d4)](![]);});}),describe(a0_0x4f437a(0x1bf),()=>{const _0x374b88=a0_0x4f437a;test(_0x374b88(0x1e4),async()=>{const _0x1519f3=_0x374b88,{TOOL_CATEGORY:_0x4726a5}=await import(_0x1519f3(0x1cc)),_0x51a1fc=[{'name':'execute_command','category':_0x4726a5[_0x1519f3(0x1d1)],'enabled':!![]},{'name':'terminal','category':_0x4726a5['SYSTEM'],'enabled':![]},{'name':'analyze_code','category':_0x4726a5['ANALYSIS'],'enabled':!![]}],_0x714637=_0x1309c5=>{const _0x12d50a=_0x1519f3;let _0x566bdf=[..._0x51a1fc];return _0x1309c5[_0x12d50a(0x1d2)]&&(_0x566bdf=_0x566bdf[_0x12d50a(0x1b0)](_0x4404c1=>_0x4404c1['category']===_0x1309c5[_0x12d50a(0x1d2)])),_0x1309c5['enabled']!==undefined&&(_0x566bdf=_0x566bdf['filter'](_0x34ebd8=>_0x34ebd8[_0x12d50a(0x1eb)]===_0x1309c5[_0x12d50a(0x1eb)])),_0x566bdf;},_0x266db1=_0x714637({'category':_0x4726a5['SYSTEM']});expect(_0x266db1['length'])[_0x1519f3(0x1d4)](0x2);const _0x44ed08=_0x714637({'enabled':!![]});expect(_0x44ed08[_0x1519f3(0x1b2)])[_0x1519f3(0x1d4)](0x2);const _0x2ab8c3=_0x714637({'category':_0x4726a5['SYSTEM'],'enabled':!![]});expect(_0x2ab8c3['length'])['toBe'](0x1),expect(_0x2ab8c3[0x0][_0x1519f3(0x1a1)])['toBe'](_0x1519f3(0x19c));});}),describe('Tools\x20Management\x20-\x20Category\x20Counts',()=>{const _0x2ad649=a0_0x4f437a;test(_0x2ad649(0x1c8),async()=>{const _0x34800e=_0x2ad649,{TOOL_CATEGORY:_0x822ea3}=await import(_0x34800e(0x1cc)),_0x5ea7ce=[{'name':_0x34800e(0x19c),'category':_0x822ea3['SYSTEM']},{'name':'terminal','category':_0x822ea3[_0x34800e(0x1d1)]},{'name':_0x34800e(0x1a0),'category':_0x822ea3['ANALYSIS']},{'name':_0x34800e(0x19d),'category':_0x822ea3['UTILITY']}],_0x31c64a=_0x1bc91d=>{const _0x53272e={};for(const _0x364cc6 of Object['values'](_0x822ea3)){_0x53272e[_0x364cc6]=_0x1bc91d['filter'](_0x53cb44=>_0x53cb44['category']===_0x364cc6)['length'];}return _0x53272e;},_0x295cd=_0x31c64a(_0x5ea7ce);expect(_0x295cd[_0x822ea3['SYSTEM']])[_0x34800e(0x1d4)](0x2),expect(_0x295cd[_0x822ea3['ANALYSIS']])[_0x34800e(0x1d4)](0x1),expect(_0x295cd[_0x822ea3[_0x34800e(0x1e0)]])['toBe'](0x1),expect(_0x295cd[_0x822ea3[_0x34800e(0x1e3)]])[_0x34800e(0x1d4)](0x0);});});
|
|
1
|
+
const a0_0x2d37d9=a0_0x4db0;(function(_0x20e291,_0x886170){const _0x289115=a0_0x4db0,_0x1501cb=_0x20e291();while(!![]){try{const _0x24cb64=parseInt(_0x289115(0x147))/0x1+parseInt(_0x289115(0x148))/0x2*(parseInt(_0x289115(0x13d))/0x3)+-parseInt(_0x289115(0x16c))/0x4*(-parseInt(_0x289115(0x15c))/0x5)+-parseInt(_0x289115(0x15f))/0x6*(parseInt(_0x289115(0x167))/0x7)+parseInt(_0x289115(0x170))/0x8*(-parseInt(_0x289115(0x137))/0x9)+parseInt(_0x289115(0x15d))/0xa+parseInt(_0x289115(0x169))/0xb;if(_0x24cb64===_0x886170)break;else _0x1501cb['push'](_0x1501cb['shift']());}catch(_0x267be5){_0x1501cb['push'](_0x1501cb['shift']());}}}(a0_0x6291,0xa7c69));function a0_0x4db0(_0x43cdf8,_0x1230ea){_0x43cdf8=_0x43cdf8-0x12f;const _0x6291a4=a0_0x6291();let _0x4db074=_0x6291a4[_0x43cdf8];if(a0_0x4db0['QoraCv']===undefined){var _0x562bfe=function(_0x257a2a){const _0x499f22='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f6ed9='',_0x18fded='';for(let _0x30d2c6=0x0,_0x10dad5,_0xc851f8,_0x336ba6=0x0;_0xc851f8=_0x257a2a['charAt'](_0x336ba6++);~_0xc851f8&&(_0x10dad5=_0x30d2c6%0x4?_0x10dad5*0x40+_0xc851f8:_0xc851f8,_0x30d2c6++%0x4)?_0x3f6ed9+=String['fromCharCode'](0xff&_0x10dad5>>(-0x2*_0x30d2c6&0x6)):0x0){_0xc851f8=_0x499f22['indexOf'](_0xc851f8);}for(let _0xc21e56=0x0,_0x56ca92=_0x3f6ed9['length'];_0xc21e56<_0x56ca92;_0xc21e56++){_0x18fded+='%'+('00'+_0x3f6ed9['charCodeAt'](_0xc21e56)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18fded);};a0_0x4db0['KFPmlk']=_0x562bfe,a0_0x4db0['gcvaBX']={},a0_0x4db0['QoraCv']=!![];}const _0x591650=_0x6291a4[0x0],_0xea174c=_0x43cdf8+_0x591650,_0x516576=a0_0x4db0['gcvaBX'][_0xea174c];return!_0x516576?(_0x4db074=a0_0x4db0['KFPmlk'](_0x4db074),a0_0x4db0['gcvaBX'][_0xea174c]=_0x4db074):_0x4db074=_0x516576,_0x4db074;}import{describe,test,expect}from'@jest/globals';function a0_0x6291(){const _0x1c74fa=['Dg9dB250ywLU','CMvHzf9MAwXL','nuvoqMHPwq','odeYndbpCffmshy','vg9VBhmGtwfUywDLBwvUDcaTifDLyLnVy2TLDcbfDMvUDcbiyw5KBgvYCW','mtG2nZK4whLnwxnq','vg9VBcbYzxn1BhrZignHBIbIzsbZDg9YzwqGyNKGzxHLy3v0Aw9UieLe','AgfZ','uMvHzcbJB250zw50CYbVzIbHigzPBgu','zNvUy3rPB24','ywLFyxnZAxn0yw50','Dg9czurLzMLUzwq','z2v0','mJe3v1PkyNvw','Dg9fCxvHBa','ndG5mdq3ounsD0zsDW','BMfTzq','ve9ptf9dqvrfr09swsb2ywX1zxmGBwf0y2GGzxHWzwn0zwqGzM9YBwf0','mtyYmtu0mfbnC0zMqG','DgvYBwLUywW','vg9VBhmGtwfUywDLBwvUDcaTienHDgvNB3j5ienVDw50CW','BM93','nda0odi2nhfftMTKra','ve9ptf9dqvrfr09swsb2ywX1zxmGyxjLigXVD2vYy2fZzq','zMLSDgvY','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CYbwywXPzgf0Aw9U','Dg9czq','C2L6zq','q09mtefct1jbveLptG','Dg9mB3DLCKnHC2u','zgf0yq','DMfSDwvZ','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2f0zwDVCML6yxrPB24','Dg9nyxrJAa','ve9ptf9dqvrfr09swsbJB25ZDgfUDhmGyxjLigrLzMLUzwq','zxHLyY0Y','qvvut01bveLptG','rxHLy3v0Aw9Uihn0yxrLignHBIb0CMfJAYbTDwX0AxbSzsb0B29SCW','zMLSzq','vg9VBhmGtwfUywDLBwvUDcaTiev4zwn1DgLVBIbtDgf0zsbuCMfJA2LUzW','BgvUz3rO','vvrjteLuwq','ve9ptf9dqvrfr09swsbJyw4GyMuGDxnLzcb0BYbMAwX0zxiGDg9VBhmGyNKGy2f0zwDVCNK','vg9VBhmGzw5KCg9PBNqGzM9SBg93CYbsrvnuzNvSihbHDhrLCM4','BwfW','vg9VBhmGqvbjigvUzhbVAw50igLZigrLzMLUzwq','t1jdsevtvfjbve9s','ow1xswrzyq','qu5btfLtsvm','v2vIu29JA2v0twfUywDLCG','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','Aw5JBhvKzxm','vg9VBcbZzwfYy2GGC2HVDwXKihDVCMSGD2L0AcbUyw1LigfUzcbKzxnJCMLWDgLVBG','mZm0ntiYmMnssKfxrq','y2f0zwDVCNK','vg9VBhmGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','zxHLy3v0zv9JB21Tyw5K','vg9VBhmGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG','v3jPDguGzgf0ysb0BYbHigzPBgu','vg9VBhmGy2fUigjLigzPBhrLCMvKigj5ig11BhrPCgXLignYAxrLCMLH','vg9VBcbVCgvYyxrPB25ZihvZzsbVCMnOzxn0CMf0B3iGzw5KCg9PBNq','zxHLyY0X','zgvSzxrL','mtG1mtKZrLncy1PW','mMLdCKnVAq','lI4VlI4VyxbPl3nLC3nPB24UANm','Bg9JywXOB3n0','zgvMyxvSDa','ugvYzM9YBsbZDgf0AwmGy29KzsbHBMfSExnPCW','twvZC2fNzvjVDxrLCIbOyxmGDg9VBcbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','l2fWAs9VCMnOzxn0CMf0B3i','qvbjx0vorfbpsu5uuW','zw5HyMXLza','yw5HBhL6zv9JB2rL','zMLSzsbJB250zw50CW','D3jPDgvFzMLSzq','u1Ltvevn','DxnLvg9VBhmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','ve9ptfm','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW'];a0_0x6291=function(){return _0x1c74fa;};return a0_0x6291();}describe('Tools\x20Management\x20-\x20Imports',()=>{test('useTools hook can be imported',async()=>{const _0x32f2c7=a0_0x4db0,{useTools:_0x3f6ed9}=await import(_0x32f2c7(0x158));expect(_0x3f6ed9)[_0x32f2c7(0x165)](),expect(typeof _0x3f6ed9)[_0x32f2c7(0x174)](_0x32f2c7(0x163));}),test('useTools is default export',async()=>{const _0x193e32=a0_0x4db0,module=await import('../../state/useTools.js');expect(module[_0x193e32(0x14b)])[_0x193e32(0x165)](),expect(typeof module['default'])['toBe']('function'),expect(module[_0x193e32(0x14b)])['toBe'](module['useTools']);});}),describe('Tools\x20Management\x20-\x20Constants',()=>{const _0x3e77c5=a0_0x4db0;test(_0x3e77c5(0x17c),async()=>{const _0x1b2275=_0x3e77c5,{TOOL_CATEGORY:_0x18fded}=await import('../../config/constants.js');expect(_0x18fded)['toBeDefined'](),expect(_0x18fded['SYSTEM'])['toBeDefined'](),expect(_0x18fded[_0x1b2275(0x17e)])['toBeDefined'](),expect(_0x18fded['ANALYSIS'])[_0x1b2275(0x165)](),expect(_0x18fded[_0x1b2275(0x131)])[_0x1b2275(0x165)](),expect(_0x18fded[_0x1b2275(0x176)])[_0x1b2275(0x165)](),expect(_0x18fded['AI'])['toBeDefined']();}),test(_0x3e77c5(0x171),async()=>{const _0x293a82=_0x3e77c5,{TOOL_CATEGORY:_0x30d2c6}=await import('../../config/constants.js');expect(_0x30d2c6['SYSTEM'])[_0x293a82(0x174)](_0x30d2c6['SYSTEM'][_0x293a82(0x177)]()),expect(_0x30d2c6[_0x293a82(0x17e)])['toBe'](_0x30d2c6['AUTOMATION']['toLowerCase']()),expect(_0x30d2c6[_0x293a82(0x138)])[_0x293a82(0x174)](_0x30d2c6[_0x293a82(0x138)]['toLowerCase']()),expect(_0x30d2c6[_0x293a82(0x131)])[_0x293a82(0x174)](_0x30d2c6['UTILITY']['toLowerCase']());}),test(_0x3e77c5(0x135),async()=>{const _0x45ff05=_0x3e77c5,{API_ENDPOINTS:_0x10dad5}=await import(_0x45ff05(0x159));expect(_0x10dad5[_0x45ff05(0x157)])[_0x45ff05(0x165)](),expect(_0x10dad5['TOOLS'])[_0x45ff05(0x174)]('/api/tools');}),test('Orchestrator\x20endpoint\x20is\x20used\x20for\x20tool\x20operations',async()=>{const _0x70d922=_0x3e77c5,{API_ENDPOINTS:_0xc851f8}=await import('../../config/constants.js');expect(_0xc851f8[_0x70d922(0x136)])[_0x70d922(0x165)](),expect(_0xc851f8[_0x70d922(0x136)])['toBe'](_0x70d922(0x14f));});}),describe(a0_0x2d37d9(0x13f),()=>{const _0x43dab4=a0_0x2d37d9;test(_0x43dab4(0x156),async()=>{const _0x43b686=_0x43dab4,{useTools:_0x336ba6}=await import('../../state/useTools.js'),{SessionManager:_0xc21e56}=await import('../../api/session.js'),{MessageRouter:_0x56ca92}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x16d0f2}=await import(_0x43b686(0x13a)),_0x3b03ab=new _0xc21e56('localhost',0x1f90),_0x3a3e29=new _0x16d0f2(_0x43b686(0x14a),0x1f90),_0x1489dd=new _0x56ca92(_0x3a3e29);expect(_0x3b03ab)['toBeDefined'](),expect(_0x1489dd)[_0x43b686(0x165)](),expect(typeof _0x336ba6)['toBe'](_0x43b686(0x163));}),test('Full tools management stack can be imported together',async()=>{const _0x2f59bf=_0x43dab4,[_0x1e4f78,_0x2211d0,_0x598193,_0x3d98d0,_0x1d2b6b]=await Promise['all']([import('../../config/constants.js'),import(_0x2f59bf(0x149)),import(_0x2f59bf(0x13a)),import(_0x2f59bf(0x14e)),import(_0x2f59bf(0x158))]);expect(_0x1e4f78['TOOL_CATEGORY'])[_0x2f59bf(0x165)](),expect(_0x1e4f78[_0x2f59bf(0x150)])[_0x2f59bf(0x165)](),expect(_0x2211d0['SessionManager'])[_0x2f59bf(0x165)](),expect(_0x598193[_0x2f59bf(0x139)])['toBeDefined'](),expect(_0x3d98d0['MessageRouter'])['toBeDefined'](),expect(_0x1d2b6b['useTools'])[_0x2f59bf(0x165)]();});}),describe(a0_0x2d37d9(0x141),()=>{const _0x1a7b49=a0_0x2d37d9;test(_0x1a7b49(0x133),async()=>{const _0x4503fc=_0x1a7b49,{API_ENDPOINTS:_0x487c7a}=await import('../../config/constants.js');expect(_0x487c7a[_0x4503fc(0x157)])['toMatch'](/^\/api\//),expect(_0x487c7a[_0x4503fc(0x157)])[_0x4503fc(0x174)]('/api/tools');}),test(_0x1a7b49(0x144),async()=>{const _0x1133fa=_0x1a7b49,{API_ENDPOINTS:_0x199fc6}=await import('../../config/constants.js');expect(_0x199fc6['ORCHESTRATOR'])['toBeDefined'](),expect(_0x199fc6[_0x1133fa(0x136)])[_0x1133fa(0x174)](_0x1133fa(0x14f));});}),describe('Tools\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useTools\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x1a0f33=a0_0x4db0,{useTools:_0x13e8fb}=await import(_0x1a0f33(0x158));expect(_0x13e8fb['length'])['toBe'](0x3);});}),describe(a0_0x2d37d9(0x173),()=>{const _0x3cf61c=a0_0x2d37d9;test('TOOL_CATEGORY\x20includes\x20all\x20major\x20categories',async()=>{const _0x1f3a97=a0_0x4db0,{TOOL_CATEGORY:_0x239eb6}=await import('../../config/constants.js'),_0x42c1ea=Object['keys'](_0x239eb6);expect(_0x42c1ea)['toContain']('SYSTEM'),expect(_0x42c1ea)['toContain']('AUTOMATION'),expect(_0x42c1ea)['toContain']('ANALYSIS'),expect(_0x42c1ea)['toContain'](_0x1f3a97(0x131)),expect(_0x42c1ea)[_0x1f3a97(0x15a)]('COLLABORATION'),expect(_0x42c1ea)[_0x1f3a97(0x15a)]('AI');}),test(_0x3cf61c(0x16b),async()=>{const _0x506197=_0x3cf61c,{TOOL_CATEGORY:_0x266f8f}=await import(_0x506197(0x159));expect(_0x266f8f['SYSTEM'])[_0x506197(0x17b)](/^[a-z_]+$/),expect(_0x266f8f[_0x506197(0x17e)])[_0x506197(0x17b)](/^[a-z_]+$/),expect(_0x266f8f['ANALYSIS'])[_0x506197(0x17b)](/^[a-z_]+$/),expect(_0x266f8f[_0x506197(0x131)])[_0x506197(0x17b)](/^[a-z_]+$/);});}),describe(a0_0x2d37d9(0x15e),()=>{const _0x707c9e=a0_0x2d37d9;test(_0x707c9e(0x14d),async()=>{const _0x4f7518=_0x707c9e,{MessageRouter:_0xb08e98}=await import(_0x4f7518(0x14e)),{WebSocketManager:_0x40c1e3}=await import(_0x4f7518(0x13a)),_0x4620f8=new _0x40c1e3(_0x4f7518(0x14a),0x1f90),_0x457dc5=new _0xb08e98(_0x4620f8);expect(_0x457dc5['hasHandler'])[_0x4f7518(0x165)](),expect(typeof _0x457dc5['hasHandler'])['toBe']('function');});}),describe(a0_0x2d37d9(0x17a),()=>{const _0x5453f0=a0_0x2d37d9;test(_0x5453f0(0x132),async()=>{const _0xf15047=_0x5453f0,{TOOL_CATEGORY:_0x401180}=await import('../../config/constants.js'),_0xba6403=[{'name':_0xf15047(0x140),'category':_0x401180[_0xf15047(0x155)]},{'name':_0xf15047(0x16d),'category':_0x401180[_0xf15047(0x155)]},{'name':'analyze_code','category':_0x401180['ANALYSIS']},{'name':'web_search','category':_0x401180[_0xf15047(0x131)]},{'name':_0xf15047(0x164),'category':_0x401180['AI']}],_0x56f63a=_0xba6403[_0xf15047(0x172)](_0x597f9=>_0x597f9[_0xf15047(0x13e)]===_0x401180['SYSTEM']),_0x18152b=_0xba6403['filter'](_0x39b4c1=>_0x39b4c1[_0xf15047(0x13e)]===_0x401180[_0xf15047(0x138)]),_0x2b05f5=_0xba6403['filter'](_0xb387bb=>_0xb387bb['category']===_0x401180['UTILITY']),_0x2cf90a=_0xba6403[_0xf15047(0x172)](_0x572b77=>_0x572b77['category']===_0x401180['AI']);expect(_0x56f63a['length'])['toBe'](0x2),expect(_0x18152b[_0xf15047(0x130)])['toBe'](0x1),expect(_0x2b05f5[_0xf15047(0x130)])[_0xf15047(0x174)](0x1),expect(_0x2cf90a['length'])[_0xf15047(0x174)](0x1),expect(_0x56f63a[0x0][_0xf15047(0x16a)])[_0xf15047(0x174)](_0xf15047(0x140)),expect(_0x18152b[0x0][_0xf15047(0x16a)])['toBe']('analyze_code');});}),describe('Tools\x20Management\x20-\x20Tool\x20Search',()=>{const _0x36bd7f=a0_0x2d37d9;test(_0x36bd7f(0x13c),async()=>{const _0x11cc97=_0x36bd7f,_0x30058e=[{'name':'read_file','description':_0x11cc97(0x162)},{'name':_0x11cc97(0x154),'description':_0x11cc97(0x142)},{'name':'analyze_code','description':_0x11cc97(0x14c)}],_0x40a18f=_0x477d16=>{const _0x11646d=_0x11cc97,_0x5c7a86=_0x477d16[_0x11646d(0x177)]();return _0x30058e[_0x11646d(0x172)](_0x3e227b=>_0x3e227b[_0x11646d(0x16a)]?.['toLowerCase']()[_0x11646d(0x13b)](_0x5c7a86)||_0x3e227b['description']?.['toLowerCase']()[_0x11646d(0x13b)](_0x5c7a86));},_0x4f66ef=_0x40a18f(_0x11cc97(0x180));expect(_0x4f66ef[_0x11cc97(0x130)])[_0x11cc97(0x174)](0x2),expect(_0x4f66ef['map'](_0x2c2437=>_0x2c2437[_0x11cc97(0x16a)]))['toContain'](_0x11cc97(0x15b)),expect(_0x4f66ef[_0x11cc97(0x134)](_0x70a3c1=>_0x70a3c1[_0x11cc97(0x16a)]))[_0x11cc97(0x15a)]('write_file');const _0x249bb7=_0x40a18f('analyze');expect(_0x249bb7['length'])[_0x11cc97(0x174)](0x1),expect(_0x249bb7[0x0][_0x11cc97(0x16a)])['toBe']('analyze_code');});}),describe(a0_0x2d37d9(0x12f),()=>{const _0x4c8ec1=a0_0x2d37d9;test(_0x4c8ec1(0x17f),async()=>{const _0x56e896=_0x4c8ec1,_0x934ede=new Set();_0x934ede['add']('read_file'),_0x934ede['add']('analyze_code'),expect(_0x934ede['has'](_0x56e896(0x15b)))[_0x56e896(0x174)](!![]),expect(_0x934ede['has'](_0x56e896(0x152)))[_0x56e896(0x174)](!![]),expect(_0x934ede[_0x56e896(0x175)])['toBe'](0x2),_0x934ede[_0x56e896(0x146)](_0x56e896(0x15b)),expect(_0x934ede[_0x56e896(0x161)](_0x56e896(0x15b)))['toBe'](![]),expect(_0x934ede['has'](_0x56e896(0x152)))['toBe'](!![]),expect(_0x934ede[_0x56e896(0x175)])[_0x56e896(0x174)](0x1);}),test(_0x4c8ec1(0x160),async()=>{const _0x5078d3=_0x4c8ec1,_0xa2b2d3=new Map();_0xa2b2d3['set']('exec-1',{'success':!![],'data':_0x5078d3(0x153)}),_0xa2b2d3['set']('exec-2',{'success':!![],'data':{'issues':[]}}),expect(_0xa2b2d3[_0x5078d3(0x166)]('exec-1'))['toBeDefined'](),expect(_0xa2b2d3['get'](_0x5078d3(0x145))['success'])[_0x5078d3(0x174)](!![]),expect(_0xa2b2d3['get'](_0x5078d3(0x145))[_0x5078d3(0x178)])[_0x5078d3(0x174)](_0x5078d3(0x153)),expect(_0xa2b2d3[_0x5078d3(0x166)](_0x5078d3(0x17d)))[_0x5078d3(0x165)](),expect(_0xa2b2d3['get'](_0x5078d3(0x17d))[_0x5078d3(0x178)]['issues'])[_0x5078d3(0x168)]([]),expect(_0xa2b2d3['size'])['toBe'](0x2);});}),describe('Tools\x20Management\x20-\x20Tool\x20Caching',()=>{test('Tool\x20cache\x20supports\x20TTL-based\x20caching',async()=>{const _0x465002=a0_0x4db0,_0x9acc45=0x927c0;let _0x2fc0ec=null,_0x40e9c6=0x0;const _0x19acc4=[{'name':'read_file'}];_0x2fc0ec=_0x19acc4,_0x40e9c6=Date[_0x465002(0x16f)]();const _0x21fd19=Date[_0x465002(0x16f)](),_0x208992=_0x21fd19-_0x40e9c6<_0x9acc45;expect(_0x208992)['toBe'](!![]),expect(_0x2fc0ec)['toBe'](_0x19acc4);}),test('Tool\x20cache\x20expires\x20after\x20TTL',async()=>{const _0x49c635=a0_0x4db0,_0x5f094c=0x64;let _0x3fa771=null,_0x435f90=0x0;const _0x2600c7=[{'name':'read_file'}];_0x3fa771=_0x2600c7,_0x435f90=Date['now'](),await new Promise(_0x2262cb=>setTimeout(_0x2262cb,0x96));const _0x27fb71=Date[_0x49c635(0x16f)](),_0x324437=_0x27fb71-_0x435f90<_0x5f094c;expect(_0x324437)[_0x49c635(0x174)](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{const _0x1796d9=a0_0x2d37d9;test(_0x1796d9(0x143),async()=>{const _0x3e9a3a=_0x1796d9,{TOOL_CATEGORY:_0x5ce959}=await import('../../config/constants.js'),_0x2e6505=[{'name':_0x3e9a3a(0x140),'category':_0x5ce959[_0x3e9a3a(0x155)],'enabled':!![]},{'name':_0x3e9a3a(0x16d),'category':_0x5ce959[_0x3e9a3a(0x155)],'enabled':![]},{'name':'analyze_code','category':_0x5ce959[_0x3e9a3a(0x138)],'enabled':!![]}],_0x5ed91d=_0x261d18=>{const _0x2ec745=_0x3e9a3a;let _0x532878=[..._0x2e6505];return _0x261d18['category']&&(_0x532878=_0x532878['filter'](_0x374309=>_0x374309['category']===_0x261d18[_0x2ec745(0x13e)])),_0x261d18['enabled']!==undefined&&(_0x532878=_0x532878[_0x2ec745(0x172)](_0x2feb67=>_0x2feb67['enabled']===_0x261d18[_0x2ec745(0x151)])),_0x532878;},_0x468cc4=_0x5ed91d({'category':_0x5ce959['SYSTEM']});expect(_0x468cc4['length'])['toBe'](0x2);const _0x12861a=_0x5ed91d({'enabled':!![]});expect(_0x12861a[_0x3e9a3a(0x130)])[_0x3e9a3a(0x174)](0x2);const _0x5ad221=_0x5ed91d({'category':_0x5ce959['SYSTEM'],'enabled':!![]});expect(_0x5ad221[_0x3e9a3a(0x130)])[_0x3e9a3a(0x174)](0x1),expect(_0x5ad221[0x0]['name'])['toBe'](_0x3e9a3a(0x140));});}),describe(a0_0x2d37d9(0x16e),()=>{test('Category\x20counts\x20can\x20be\x20calculated',async()=>{const _0x1f5b33=a0_0x4db0,{TOOL_CATEGORY:_0x249707}=await import(_0x1f5b33(0x159)),_0x2fbff3=[{'name':'execute_command','category':_0x249707['SYSTEM']},{'name':'terminal','category':_0x249707[_0x1f5b33(0x155)]},{'name':_0x1f5b33(0x152),'category':_0x249707['ANALYSIS']},{'name':'web_search','category':_0x249707['UTILITY']}],_0x15a363=_0xfed8f3=>{const _0x2be2d7=_0x1f5b33,_0xe71046={};for(const _0x5155c0 of Object[_0x2be2d7(0x179)](_0x249707)){_0xe71046[_0x5155c0]=_0xfed8f3[_0x2be2d7(0x172)](_0xa7c304=>_0xa7c304[_0x2be2d7(0x13e)]===_0x5155c0)[_0x2be2d7(0x130)];}return _0xe71046;},_0x2d0f10=_0x15a363(_0x2fbff3);expect(_0x2d0f10[_0x249707[_0x1f5b33(0x155)]])['toBe'](0x2),expect(_0x2d0f10[_0x249707[_0x1f5b33(0x138)]])['toBe'](0x1),expect(_0x2d0f10[_0x249707['UTILITY']])[_0x1f5b33(0x174)](0x1),expect(_0x2d0f10[_0x249707[_0x1f5b33(0x17e)]])[_0x1f5b33(0x174)](0x0);});});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x576421=a0_0x2e72;(function(_0x29c479,_0x3b1ce3){const _0x156543=a0_0x2e72,_0x3b0823=_0x29c479();while(!![]){try{const _0x4c66c6=-parseInt(_0x156543(0x141))/0x1*(-parseInt(_0x156543(0x135))/0x2)+-parseInt(_0x156543(0x130))/0x3*(-parseInt(_0x156543(0x143))/0x4)+parseInt(_0x156543(0x13b))/0x5+parseInt(_0x156543(0x14b))/0x6+-parseInt(_0x156543(0x12e))/0x7*(-parseInt(_0x156543(0x14a))/0x8)+-parseInt(_0x156543(0x146))/0x9+-parseInt(_0x156543(0x13e))/0xa;if(_0x4c66c6===_0x3b1ce3)break;else _0x3b0823['push'](_0x3b0823['shift']());}catch(_0x2403c4){_0x3b0823['push'](_0x3b0823['shift']());}}}(a0_0x3f81,0x93692));import{ERROR_MESSAGE}from'../config/constants.js';function a0_0x2e72(_0x5e5d48,_0x3d5ced){_0x5e5d48=_0x5e5d48-0x12b;const _0x3f814d=a0_0x3f81();let _0x2e7232=_0x3f814d[_0x5e5d48];if(a0_0x2e72['GRmDQl']===undefined){var _0x139bef=function(_0x3abd2a){const _0x1a4778='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1c52cb='',_0x4633f3='';for(let _0x57f13c=0x0,_0x508c07,_0x2db844,_0x34b1a3=0x0;_0x2db844=_0x3abd2a['charAt'](_0x34b1a3++);~_0x2db844&&(_0x508c07=_0x57f13c%0x4?_0x508c07*0x40+_0x2db844:_0x2db844,_0x57f13c++%0x4)?_0x1c52cb+=String['fromCharCode'](0xff&_0x508c07>>(-0x2*_0x57f13c&0x6)):0x0){_0x2db844=_0x1a4778['indexOf'](_0x2db844);}for(let _0x4306df=0x0,_0x371f74=_0x1c52cb['length'];_0x4306df<_0x371f74;_0x4306df++){_0x4633f3+='%'+('00'+_0x1c52cb['charCodeAt'](_0x4306df)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4633f3);};a0_0x2e72['jgZfgg']=_0x139bef,a0_0x2e72['cDpjuf']={},a0_0x2e72['GRmDQl']=!![];}const _0x540962=_0x3f814d[0x0],_0x411e69=_0x5e5d48+_0x540962,_0x42dbc9=a0_0x2e72['cDpjuf'][_0x411e69];return!_0x42dbc9?(_0x2e7232=a0_0x2e72['jgZfgg'](_0x2e7232),a0_0x2e72['cDpjuf'][_0x411e69]=_0x2e7232):_0x2e7232=_0x42dbc9,_0x2e7232;}export class ApiClient{constructor(_0x1c52cb,_0x4633f3=null){this['baseUrl']=_0x1c52cb,this['apiKey']=_0x4633f3;}['setApiKey'](_0x57f13c){const _0x213e70=a0_0x2e72;this[_0x213e70(0x12d)]=_0x57f13c;}['getApiKey'](){const _0x5d8a4e=a0_0x2e72;return this[_0x5d8a4e(0x12d)];}[a0_0x576421(0x13f)](){const _0x466c1b=a0_0x576421;this[_0x466c1b(0x12d)]=null;}[a0_0x576421(0x131)](_0x508c07={}){const _0xcd0518=a0_0x576421,_0x2db844={'Content-Type':_0xcd0518(0x138),..._0x508c07};return this[_0xcd0518(0x12d)]&&(_0x2db844[_0xcd0518(0x144)]=_0xcd0518(0x13a)+this['apiKey']),_0x2db844;}async['request'](_0x34b1a3,_0x4306df,_0x371f74={}){const _0x43031b=a0_0x576421,{body:body=null,headers:headers={},query:query=null}=_0x371f74;let _0x17b25a=''+this[_0x43031b(0x133)]+_0x4306df;if(query){const _0x166c80=new URLSearchParams(query)['toString']();_0x17b25a+='?'+_0x166c80;}const _0x2e515d={'method':_0x34b1a3,'headers':this[_0x43031b(0x131)](headers)};body&&['POST','PUT',_0x43031b(0x13c)]['includes'](_0x34b1a3[_0x43031b(0x149)]())&&(_0x2e515d[_0x43031b(0x142)]=JSON[_0x43031b(0x14e)](body));try{const _0x2af290=await fetch(_0x17b25a,_0x2e515d),_0x4a2111=await _0x2af290['json']()[_0x43031b(0x136)](()=>({}));if(!_0x2af290['ok']){const _0x3a6037=new Error(_0x4a2111['error']||'HTTP\x20'+_0x2af290[_0x43031b(0x139)]+':\x20'+_0x2af290['statusText']);_0x3a6037['status']=_0x2af290['status'],_0x3a6037['response']=_0x4a2111;throw _0x3a6037;}return _0x4a2111;}catch(_0x3e28bf){if(_0x3e28bf[_0x43031b(0x145)]['includes']('fetch')||_0x3e28bf[_0x43031b(0x12c)]===_0x43031b(0x14c)){const _0x4a6318=new Error(ERROR_MESSAGE[_0x43031b(0x132)]+':\x20'+_0x3e28bf[_0x43031b(0x145)]);_0x4a6318[_0x43031b(0x137)]=_0x3e28bf;throw _0x4a6318;}throw _0x3e28bf;}}async[a0_0x576421(0x148)](_0x199df6,_0x1e434f={}){const _0x44d287=a0_0x576421;return this[_0x44d287(0x140)]('GET',_0x199df6,_0x1e434f);}async[a0_0x576421(0x12b)](_0x479fe8,_0x4db853=null,_0x3c4f1f={}){return this['request']('POST',_0x479fe8,{..._0x3c4f1f,'body':_0x4db853});}async['put'](_0xacc687,_0x505401=null,_0x308f0f={}){const _0x159c09=a0_0x576421;return this['request'](_0x159c09(0x147),_0xacc687,{..._0x308f0f,'body':_0x505401});}async[a0_0x576421(0x12f)](_0x50d491,_0x2f0ff9=null,_0x2b3368={}){const _0x607ea1=a0_0x576421;return this[_0x607ea1(0x140)](_0x607ea1(0x13c),_0x50d491,{..._0x2b3368,'body':_0x2f0ff9});}async[a0_0x576421(0x13d)](_0x154a05,_0x4c14d9={}){const _0x3acb46=a0_0x576421;return this[_0x3acb46(0x140)]('DELETE',_0x154a05,_0x4c14d9);}}function a0_0x3f81(){const _0x18aa7c=['vhLWzuvYCM9Y','Ahr0CdOVlW','C3rYAw5NAwz5','Cg9ZDa','BMfTzq','yxbPs2v5','mtG3odfrrMTiq0K','Cgf0y2G','m2LIqNH6zq','yNvPBgrizwfKzxjZ','tKvuv09ss19fuLjpuG','yMfZzvvYBa','Bg9JywXOB3n0','mtu5mtGZmfrgAM5oqq','y2f0y2G','B3jPz2LUywXfCNjVCG','yxbWBgLJyxrPB24VANnVBG','C3rHDhvZ','qMvHCMvYia','odK4odq1AKTsCwDT','uefuq0G','zgvSzxrL','ndmWndmYmgDYBuL3Eq','y2XLyxjbCgLlzxK','CMvXDwvZDa','mw90rg9Nvq','yM9KEq','mtCZotaWrLrPrM5M','qxv0Ag9YAxPHDgLVBG','BwvZC2fNzq','nJK5ndm1oxjtwMP1AG','ufvu','z2v0','Dg9vChbLCKnHC2u','mJmYzg5pqxzP','ndi4nJq2nNDiDNfyyW'];a0_0x3f81=function(){return _0x18aa7c;};return a0_0x3f81();}export function createApiClient(_0x991df2=a0_0x576421(0x134),_0x589d98=0x1f90,_0x475c93=null){const _0x202a5c=a0_0x576421,_0x9ac8d7=_0x202a5c(0x14d)+_0x991df2+':'+_0x589d98;return new ApiClient(_0x9ac8d7,_0x475c93);}export default ApiClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a0_0x53bb7f=a0_0x3956;(function(_0x423b01,_0x4c790a){const _0x1bea44=a0_0x3956,_0x244fa2=_0x423b01();while(!![]){try{const _0x2fce82=parseInt(_0x1bea44(0xa1))/0x1*(-parseInt(_0x1bea44(0x91))/0x2)+parseInt(_0x1bea44(0xa4))/0x3*(-parseInt(_0x1bea44(0x8b))/0x4)+-parseInt(_0x1bea44(0x96))/0x5+-parseInt(_0x1bea44(0x89))/0x6+parseInt(_0x1bea44(0x92))/0x7*(-parseInt(_0x1bea44(0x8c))/0x8)+-parseInt(_0x1bea44(0x9c))/0x9*(-parseInt(_0x1bea44(0x95))/0xa)+parseInt(_0x1bea44(0xa3))/0xb;if(_0x2fce82===_0x4c790a)break;else _0x244fa2['push'](_0x244fa2['shift']());}catch(_0x1eb3fd){_0x244fa2['push'](_0x244fa2['shift']());}}}(a0_0x33e4,0x5cd02));import{EventEmitter}from'events';function a0_0x33e4(){const _0x4a6f3f=['zNvUy3rPB24','CMvNAxn0zxjiyw5KBgvY','BwvZC2fNztO','mtaXnJL2DNLdtfq','w01LC3nHz2vsB3v0zxjD','mtG2nti1mdjWvKris2O','nJa4otu1Cw5hDfjR','AgfZ','AgfUzgXLCNm','ywDLBNq6Bw9Kzv9JAgfUz2vK','BwvZC2fNzq','zgf0yq','CM91Dgu','ywDLBNq6D2fYBMLUzW','A2v5CW','y2XLyxjiyw5KBgvYCW','ChvZAa','Aw1Hz2u6z2vUzxjHDgvK','Aw5JBhvKzxm','DhLWzq','BwLKzgXLD2fYzq','odG5otG2wxHrCMzl','y2XLyxi','nffzCLrSDW','mJKYmJq4oe90rxrrEq','zw1PDa','rvjst1i','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','y2XLyxjnAwrKBgv3yxjL','otHUCeXHC3i','mtrWBfDZyLe','tuvtu0fhrv9brerfra','Dw5YzwDPC3rLCKHHBMrSzxi','mtbHDhrYEwC','mteZnJu3mfDSrhH6sG','Aw5KzxHpzG','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','su1br0vFuKvtvuXu','C3bSAwnL','ywDLBNq6zxHLy3v0Aw9Ux3n0B3bWzwq','ndqYodeXn0vNyvjzqq','CMvZzxq'];a0_0x33e4=function(){return _0x4a6f3f;};return a0_0x33e4();}import{WS_MESSAGE_TYPE}from'../config/constants.js';function a0_0x3956(_0x3b1510,_0x599a95){_0x3b1510=_0x3b1510-0x87;const _0x33e4f5=a0_0x33e4();let _0x395672=_0x33e4f5[_0x3b1510];if(a0_0x3956['lCsEJH']===undefined){var _0xe75c61=function(_0x134c05){const _0x5716a3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x24a2f2='',_0x5a3897='';for(let _0x43fa2f=0x0,_0x47fc1d,_0x5a53eb,_0x354639=0x0;_0x5a53eb=_0x134c05['charAt'](_0x354639++);~_0x5a53eb&&(_0x47fc1d=_0x43fa2f%0x4?_0x47fc1d*0x40+_0x5a53eb:_0x5a53eb,_0x43fa2f++%0x4)?_0x24a2f2+=String['fromCharCode'](0xff&_0x47fc1d>>(-0x2*_0x43fa2f&0x6)):0x0){_0x5a53eb=_0x5716a3['indexOf'](_0x5a53eb);}for(let _0x1dc10d=0x0,_0x4bae51=_0x24a2f2['length'];_0x1dc10d<_0x4bae51;_0x1dc10d++){_0x5a3897+='%'+('00'+_0x24a2f2['charCodeAt'](_0x1dc10d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5a3897);};a0_0x3956['yJvZTr']=_0xe75c61,a0_0x3956['WmRipT']={},a0_0x3956['lCsEJH']=!![];}const _0x5b589f=_0x33e4f5[0x0],_0x4884dd=_0x3b1510+_0x5b589f,_0xeb3c6c=a0_0x3956['WmRipT'][_0x4884dd];return!_0xeb3c6c?(_0x395672=a0_0x3956['yJvZTr'](_0x395672),a0_0x3956['WmRipT'][_0x4884dd]=_0x395672):_0x395672=_0xeb3c6c,_0x395672;}export class MessageRouter extends EventEmitter{constructor(_0x24a2f2){const _0x4cbff0=a0_0x3956;super(),this['ws']=_0x24a2f2,this[_0x4cbff0(0xa6)]=new Map(),this['middleware']=[],this['ws']['on'](_0x4cbff0(0xa8),_0x5a3897=>this['route'](_0x5a3897)),this[_0x4cbff0(0x8f)]();}[a0_0x53bb7f(0x8f)](){const _0x1e0e0b=a0_0x53bb7f;this['registerHandler'](WS_MESSAGE_TYPE[_0x1e0e0b(0x93)],_0x43fa2f=>{const _0x21315b=_0x1e0e0b;this[_0x21315b(0x8d)]('agent:message_added',_0x43fa2f[_0x21315b(0xa9)]);}),this[_0x1e0e0b(0x9f)](WS_MESSAGE_TYPE['AGENT_MODE_CHANGED'],_0x47fc1d=>{const _0x34d87c=_0x1e0e0b;this['emit'](_0x34d87c(0xa7),_0x47fc1d);}),this[_0x1e0e0b(0x9f)](WS_MESSAGE_TYPE['EXECUTION_STOPPED'],_0x5a53eb=>{const _0x34422e=_0x1e0e0b;this['emit'](_0x34422e(0x9b),_0x5a53eb[_0x34422e(0xa9)]);}),this[_0x1e0e0b(0x9f)](WS_MESSAGE_TYPE['AGENT_ERROR'],_0x354639=>{this['emit']('agent:error',_0x354639);}),this[_0x1e0e0b(0x9f)](WS_MESSAGE_TYPE['AGENT_WARNING'],_0x1dc10d=>{const _0x2fd5f6=_0x1e0e0b;this[_0x2fd5f6(0x8d)](_0x2fd5f6(0xab),_0x1dc10d);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_IMPORTED'],_0x4bae51=>{const _0x253d33=_0x1e0e0b;this[_0x253d33(0x8d)]('agent:imported',_0x4bae51['agent']);}),this[_0x1e0e0b(0x9f)](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0x2095fe=>{this['emit']('agent:communication',_0x2095fe['data']);}),this['registerHandler'](WS_MESSAGE_TYPE['COMPACTION_EVENT'],_0x18f909=>{this['emit']('conversation:compaction',_0x18f909['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x1e0e0b(0x99)],_0x63de73=>{const _0x502780=_0x1e0e0b;this[_0x502780(0x8d)]('image:result',_0x63de73['data']);}),this[_0x1e0e0b(0x9f)](WS_MESSAGE_TYPE['IMAGE_GENERATED'],_0x417807=>{const _0x44b6a8=_0x1e0e0b;this[_0x44b6a8(0x8d)](_0x44b6a8(0xaf),_0x417807['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x1e0e0b(0x8e)],_0x2e8428=>{const _0x2da6e6=_0x1e0e0b;this[_0x2da6e6(0x8d)]('error',_0x2e8428);});}async[a0_0x53bb7f(0xaa)](_0x288ca9){const _0x2435c6=a0_0x53bb7f;let processedMessage=_0x288ca9;for(const _0x56aae4 of this[_0x2435c6(0x88)]){try{processedMessage=await _0x56aae4(processedMessage);if(!processedMessage)return;}catch(_0x358caa){this['emit']('middleware_error',{'error':_0x358caa,'message':_0x288ca9});return;}}const _0x76a8b6=processedMessage[_0x2435c6(0x87)];if(!_0x76a8b6){this['emit']('invalid_message',processedMessage);return;}if(this[_0x2435c6(0xa6)][_0x2435c6(0xa5)](_0x76a8b6)){const _0x30d60d=this[_0x2435c6(0xa6)]['get'](_0x76a8b6);try{await _0x30d60d(processedMessage);}catch(_0x3f693c){this['emit']('handler_error',{'error':_0x3f693c,'message':processedMessage,'messageType':_0x76a8b6});}}this[_0x2435c6(0x8d)](_0x2435c6(0xa0)+_0x76a8b6,processedMessage),this['emit']('message',processedMessage);}['registerHandler'](_0x4a11ab,_0x1c8a8b){const _0x1ef74c=a0_0x53bb7f;if(typeof _0x1c8a8b!==_0x1ef74c(0x9e))throw new Error('Handler\x20must\x20be\x20a\x20function');this[_0x1ef74c(0xa6)]['set'](_0x4a11ab,_0x1c8a8b);}[a0_0x53bb7f(0x94)](_0x3c2c1c){this['handlers']['delete'](_0x3c2c1c);}['use'](_0x5c1d07){const _0xa83b23=a0_0x53bb7f;if(typeof _0x5c1d07!==_0xa83b23(0x9e))throw new Error(_0xa83b23(0x98));this['middleware'][_0xa83b23(0xae)](_0x5c1d07);}['removeMiddleware'](_0x3a283f){const _0x46b78b=a0_0x53bb7f,_0x32e027=this['middleware'][_0x46b78b(0x97)](_0x3a283f);_0x32e027>-0x1&&this[_0x46b78b(0x88)][_0x46b78b(0x9a)](_0x32e027,0x1);}[a0_0x53bb7f(0x90)](){const _0x5c6d38=a0_0x53bb7f;this[_0x5c6d38(0x88)]=[];}['getRegisteredTypes'](){const _0x17cce4=a0_0x53bb7f;return Array['from'](this['handlers'][_0x17cce4(0xac)]());}['hasHandler'](_0x1dff92){const _0x518071=a0_0x53bb7f;return this[_0x518071(0xa6)]['has'](_0x1dff92);}[a0_0x53bb7f(0xad)](){const _0x5109f3=a0_0x53bb7f;this[_0x5109f3(0xa6)][_0x5109f3(0x8a)]();}[a0_0x53bb7f(0x9d)](){this['clearHandlers'](),this['clearMiddleware'](),this['registerDefaultHandlers']();}}export function loggingMiddleware(_0x2d0a71=console['log']){return _0x32163f=>{const _0x49c053=a0_0x3956;return _0x2d0a71(_0x49c053(0xa2),_0x32163f['type'],_0x32163f),_0x32163f;};}export function filterMiddleware(_0x38af93){return _0x4db179=>{const _0x954cee=a0_0x3956;if(_0x38af93[_0x954cee(0xb0)](_0x4db179[_0x954cee(0x87)]))return _0x4db179;return null;};}export function transformMiddleware(_0x6b60b9){return async _0x4120db=>{return await _0x6b60b9(_0x4120db);};}export function timestampMiddleware(){return _0x30b782=>{return{..._0x30b782,'receivedAt':new Date()['toISOString']()};};}export function validationMiddleware(_0x3ddad0){return _0x2a9a02=>{if(_0x3ddad0(_0x2a9a02))return _0x2a9a02;throw new Error('Message\x20validation\x20failed');};}export default MessageRouter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x49c838=a0_0x118f;(function(_0x1696ac,_0x20b3cf){const _0x50cba3=a0_0x118f,_0x1aba46=_0x1696ac();while(!![]){try{const _0x344758=parseInt(_0x50cba3(0x1ef))/0x1+-parseInt(_0x50cba3(0x1f5))/0x2*(parseInt(_0x50cba3(0x1f7))/0x3)+-parseInt(_0x50cba3(0x1ee))/0x4*(-parseInt(_0x50cba3(0x1f3))/0x5)+parseInt(_0x50cba3(0x1e6))/0x6*(parseInt(_0x50cba3(0x1dd))/0x7)+parseInt(_0x50cba3(0x1de))/0x8*(-parseInt(_0x50cba3(0x1da))/0x9)+parseInt(_0x50cba3(0x1df))/0xa*(-parseInt(_0x50cba3(0x1e2))/0xb)+-parseInt(_0x50cba3(0x1d9))/0xc;if(_0x344758===_0x20b3cf)break;else _0x1aba46['push'](_0x1aba46['shift']());}catch(_0x2cec31){_0x1aba46['push'](_0x1aba46['shift']());}}}(a0_0x32c1,0xd87a2));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';import{ApiClient}from'./apiClient.js';function a0_0x118f(_0x4185f1,_0x1d9f64){_0x4185f1=_0x4185f1-0x1d1;const _0x32c119=a0_0x32c1();let _0x118f51=_0x32c119[_0x4185f1];if(a0_0x118f['AmmhJb']===undefined){var _0x55c203=function(_0x6e9fe2){const _0xb25d3b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x40cf29='',_0x58aebe='';for(let _0x1f9c01=0x0,_0x2eb5d8,_0x1357fc,_0x32e1b2=0x0;_0x1357fc=_0x6e9fe2['charAt'](_0x32e1b2++);~_0x1357fc&&(_0x2eb5d8=_0x1f9c01%0x4?_0x2eb5d8*0x40+_0x1357fc:_0x1357fc,_0x1f9c01++%0x4)?_0x40cf29+=String['fromCharCode'](0xff&_0x2eb5d8>>(-0x2*_0x1f9c01&0x6)):0x0){_0x1357fc=_0xb25d3b['indexOf'](_0x1357fc);}for(let _0x565079=0x0,_0x2c38ae=_0x40cf29['length'];_0x565079<_0x2c38ae;_0x565079++){_0x58aebe+='%'+('00'+_0x40cf29['charCodeAt'](_0x565079)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x58aebe);};a0_0x118f['QyKZzi']=_0x55c203,a0_0x118f['GjhXJt']={},a0_0x118f['AmmhJb']=!![];}const _0x3d6da8=_0x32c119[0x0],_0x1a6de6=_0x4185f1+_0x3d6da8,_0x3e171c=a0_0x118f['GjhXJt'][_0x1a6de6];return!_0x3e171c?(_0x118f51=a0_0x118f['QyKZzi'](_0x118f51),a0_0x118f['GjhXJt'][_0x1a6de6]=_0x118f51):_0x118f51=_0x3e171c,_0x118f51;}function a0_0x32c1(){const _0x430d1b=['rMfPBgvKihrVihnLDcbbueKGA2v5CW','y3DK','yMfZzvvYBa','Aw5PDgLHBgL6zq','AgfZtg94AwflzxK','z2v0u2vZC2LVBKLUzM8','BwfRzvjLCxvLC3q','ntu4nZqXmKD2u1PsBW','mtaXmdeXnxbfAK9nBG','sevbtfri','A2v5CW','zxjYB3i','nvzgyw5WCa','AxnwywXPza','nKDZCM1qBq','Bg94AwfbCgLlzxK','nJi5mZC5AeHQEuzp','y3jLyxrLzef0','DMvUzg9Ys2v5CW','C2vZC2LVBKLK','yxbPq2XPzw50','r0vu','C3vJy2vZCW','ChjVAMvJDerPCG','z2v0uhjVAMvJDerPCG','z2v0qxbPs2v5u3rHDhvZ','Ag9ZDa','z2v0u2vZC2LVBKLK','Dg9ju09tDhjPBMC','u2vYDMvYigHLywX0AcbJAgvJAYbMywLSzwq6ia','ue9tva','revgqvvmvf9qt1ju','rMfPBgvKihrVihnLDcbbueKGA2v5CZOG','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CW','nteZndmYmgfjCenNAa','mZC5mZmXmwLcsNn0wq','BgfZDefJDgL2Axr5','CMvWBgfJzq','n1j1vhLisG','mJrxzMHts2S','mtuZmda0mfLZzKzftq','u0vtu0LptL9jtLzbteLe','u0vtu0LptL9duKvbvevFrKfjteve','nJzTEuHfuuK','C2vZC2LVBG','oNnLC3nPB25jza','s0vzu19trvq','mtaZmty1mZjnDhDZAuW'];a0_0x32c1=function(){return _0x430d1b;};return a0_0x32c1();}export class SessionManager{constructor(_0x40cf29=NETWORK['DEFAULT_HOST'],_0x58aebe=NETWORK[a0_0x49c838(0x1d6)]){const _0x4cfe92=a0_0x49c838;this[_0x4cfe92(0x1d1)]=_0x40cf29,this['port']=_0x58aebe,this[_0x4cfe92(0x1e9)]='http://'+_0x40cf29+':'+_0x58aebe,this['sessionId']=null,this['projectDir']=null,this[_0x4cfe92(0x1f8)]=null,this[_0x4cfe92(0x1db)]=null,this['loxiaApiKey']=null,this[_0x4cfe92(0x1f9)]={},this['apiClient']=new ApiClient(this[_0x4cfe92(0x1e9)],this['loxiaApiKey']);}async['createSession'](_0x1f9c01=process['cwd']()){const _0x48a878=a0_0x49c838;try{const _0x2eb5d8=await this[_0x48a878(0x1ed)](_0x48a878(0x1d5),API_ENDPOINTS['SESSION_CREATE'],{'projectDir':_0x1f9c01});if(_0x2eb5d8[_0x48a878(0x1fd)]&&_0x2eb5d8[_0x48a878(0x1e3)])return this['sessionId']=_0x2eb5d8['session']['id'],this['projectDir']=_0x1f9c01,this[_0x48a878(0x1f8)]=_0x2eb5d8[_0x48a878(0x1e3)]['createdAt'],this['lastActivity']=_0x2eb5d8['session']['lastActivity'],{'success':!![],'sessionId':this['sessionId'],'session':_0x2eb5d8['session']};else throw new Error(_0x2eb5d8['error']||ERROR_MESSAGE[_0x48a878(0x1e1)]);}catch(_0x1357fc){throw new Error(ERROR_MESSAGE[_0x48a878(0x1e1)]+':\x20'+_0x1357fc['message']);}}async['setApiKeys'](_0x32e1b2=null,_0x565079={}){const _0x28435b=a0_0x49c838;if(!this['sessionId'])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x2c38ae=await this['makeRequest'](_0x28435b(0x1d5),API_ENDPOINTS[_0x28435b(0x1e5)],{'sessionId':this['sessionId'],'loxiaApiKey':_0x32e1b2,'vendorKeys':_0x565079});if(_0x2c38ae[_0x28435b(0x1fd)])return this['loxiaApiKey']=_0x32e1b2,this[_0x28435b(0x1f9)]=_0x565079,this[_0x28435b(0x1fb)]['setApiKey'](_0x32e1b2),{'success':!![],'message':_0x2c38ae['message'],'hasLoxiaKey':_0x2c38ae[_0x28435b(0x1eb)],'vendorKeys':_0x2c38ae['vendorKeys']};else throw new Error(_0x2c38ae[_0x28435b(0x1f2)]||_0x28435b(0x1e7));}catch(_0x1523c5){throw new Error(_0x28435b(0x1d7)+_0x1523c5['message']);}}async[a0_0x49c838(0x200)](){const _0x13b8b5=a0_0x49c838;if(!this[_0x13b8b5(0x1fa)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x3368ad=API_ENDPOINTS['KEYS_GET'][_0x13b8b5(0x1dc)](':sessionId',this['sessionId']),_0x1da3bf=await this['makeRequest'](_0x13b8b5(0x1fc),_0x3368ad);if(_0x1da3bf['success'])return{'success':!![],'hasLoxiaKey':_0x1da3bf[_0x13b8b5(0x1eb)],'vendorKeys':_0x1da3bf[_0x13b8b5(0x1f9)],'updatedAt':_0x1da3bf['updatedAt']};else throw new Error(_0x1da3bf[_0x13b8b5(0x1f2)]||_0x13b8b5(0x1d8));}catch(_0x18abe1){throw new Error('Failed\x20to\x20get\x20API\x20key\x20status:\x20'+_0x18abe1['message']);}}async['deleteApiKeys'](){const _0x2d949a=a0_0x49c838;if(!this[_0x2d949a(0x1fa)])throw new Error(ERROR_MESSAGE[_0x2d949a(0x1e0)]);try{const _0x3d19dc=API_ENDPOINTS['KEYS_DELETE']['replace'](_0x2d949a(0x1e4),this['sessionId']),_0x4244d8=await this['makeRequest']('DELETE',_0x3d19dc);if(_0x4244d8[_0x2d949a(0x1fd)])return this[_0x2d949a(0x1f6)]=null,this['vendorKeys']={},{'success':!![],'message':_0x4244d8['message']};else throw new Error(_0x4244d8[_0x2d949a(0x1f2)]||'Failed\x20to\x20delete\x20API\x20keys');}catch(_0x488110){throw new Error('Failed\x20to\x20delete\x20API\x20keys:\x20'+_0x488110['message']);}}async[a0_0x49c838(0x1ea)](_0x321883=process[a0_0x49c838(0x1e8)]()){const _0x29363e=a0_0x49c838;try{const _0x3938d7=await this['checkHealth']();if(!_0x3938d7[_0x29363e(0x1fd)])throw new Error(_0x29363e(0x1d4)+_0x3938d7[_0x29363e(0x1f2)]);const _0x16e622=await this['createSession'](_0x321883);return{'success':!![],'sessionId':_0x16e622[_0x29363e(0x1fa)],'session':_0x16e622[_0x29363e(0x1e3)]};}catch(_0x5a92ea){return{'success':![],'error':_0x5a92ea['message']};}}async['checkHealth'](){const _0xc3f417=a0_0x49c838;try{const _0x81b864=await this[_0xc3f417(0x1ed)]('GET',API_ENDPOINTS[_0xc3f417(0x1f0)]);return{'success':!![],'status':_0x81b864['status'],'version':_0x81b864['version'],'timestamp':_0x81b864['timestamp']};}catch(_0x4419ad){return{'success':![],'error':_0x4419ad['message']};}}async['makeRequest'](_0x2740ce,_0x41e680,_0x4e6bd0=null){return this['apiClient']['request'](_0x2740ce,_0x41e680,{'body':_0x4e6bd0});}[a0_0x49c838(0x1d2)](){return this['sessionId'];}[a0_0x49c838(0x1ff)](){const _0x2dc0a3=a0_0x49c838;return this[_0x2dc0a3(0x1fe)];}[a0_0x49c838(0x1f4)](){const _0x3dbf0e=a0_0x49c838;return this[_0x3dbf0e(0x1fa)]!==null;}['updateActivity'](){const _0x41273a=a0_0x49c838;this[_0x41273a(0x1db)]=new Date()[_0x41273a(0x1d3)]();}[a0_0x49c838(0x1ec)](){const _0xf02259=a0_0x49c838;return{'sessionId':this[_0xf02259(0x1fa)],'projectDir':this[_0xf02259(0x1fe)],'createdAt':this[_0xf02259(0x1f8)],'lastActivity':this['lastActivity'],'hasLoxiaKey':!!this['loxiaApiKey'],'vendorKeysCount':Object[_0xf02259(0x1f1)](this['vendorKeys'])['length']};}['clear'](){const _0x22587d=a0_0x49c838;this['sessionId']=null,this[_0x22587d(0x1fe)]=null,this[_0x22587d(0x1f8)]=null,this['lastActivity']=null,this[_0x22587d(0x1f6)]=null,this['vendorKeys']={};}}export default SessionManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x5a54e7=a0_0x3738;function a0_0x3738(_0x3da092,_0x59167e){_0x3da092=_0x3da092-0x11a;const _0x35b8bf=a0_0x35b8();let _0x37384a=_0x35b8bf[_0x3da092];if(a0_0x3738['eUnOTb']===undefined){var _0x20767a=function(_0x298aa1){const _0x311e3f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x54d0b9='',_0x4a3fb1='';for(let _0x301578=0x0,_0x73172,_0x256d1f,_0x1a1cba=0x0;_0x256d1f=_0x298aa1['charAt'](_0x1a1cba++);~_0x256d1f&&(_0x73172=_0x301578%0x4?_0x73172*0x40+_0x256d1f:_0x256d1f,_0x301578++%0x4)?_0x54d0b9+=String['fromCharCode'](0xff&_0x73172>>(-0x2*_0x301578&0x6)):0x0){_0x256d1f=_0x311e3f['indexOf'](_0x256d1f);}for(let _0x339bca=0x0,_0x2584e5=_0x54d0b9['length'];_0x339bca<_0x2584e5;_0x339bca++){_0x4a3fb1+='%'+('00'+_0x54d0b9['charCodeAt'](_0x339bca)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4a3fb1);};a0_0x3738['QidQtd']=_0x20767a,a0_0x3738['SuFtih']={},a0_0x3738['eUnOTb']=!![];}const _0x5f16e5=_0x35b8bf[0x0],_0x4fcb07=_0x3da092+_0x5f16e5,_0x4c26b9=a0_0x3738['SuFtih'][_0x4fcb07];return!_0x4c26b9?(_0x37384a=a0_0x3738['QidQtd'](_0x37384a),a0_0x3738['SuFtih'][_0x4fcb07]=_0x37384a):_0x37384a=_0x4c26b9,_0x37384a;}(function(_0x393498,_0x1f8595){const _0x3c279a=a0_0x3738,_0x922df0=_0x393498();while(!![]){try{const _0x3fb697=parseInt(_0x3c279a(0x121))/0x1+-parseInt(_0x3c279a(0x139))/0x2+-parseInt(_0x3c279a(0x157))/0x3+parseInt(_0x3c279a(0x168))/0x4+parseInt(_0x3c279a(0x143))/0x5*(-parseInt(_0x3c279a(0x160))/0x6)+parseInt(_0x3c279a(0x124))/0x7*(-parseInt(_0x3c279a(0x12f))/0x8)+-parseInt(_0x3c279a(0x13c))/0x9*(-parseInt(_0x3c279a(0x161))/0xa);if(_0x3fb697===_0x1f8595)break;else _0x922df0['push'](_0x922df0['shift']());}catch(_0x4edc47){_0x922df0['push'](_0x922df0['shift']());}}}(a0_0x35b8,0xd7960));import a0_0x54d0b9 from'ws';import{EventEmitter}from'events';function a0_0x35b8(){const _0xa38b46=['C2HVDwXKuMvJB25Uzwn0','sK9jtL9trvntsu9o','v0vcu09ds0vux0nptK5fq1rFveLnru9vva','q09otKvdveve','CMvXlq','zxjYB3i','mZbND0LLD3m','C2vZC2LVBKLK','C2v0DxbfDMvUDeHHBMrSzxjZ','C3rVCeHLyxj0yMvHDa','ChjVy2vZC01LC3nHz2vrDwv1zq','C2vUze9Yy2HLC3rYyxrVCLjLCxvLC3q','zgLZy29UBMvJDa','C3rYAw5NAwz5','C2nOzwr1BgvszwnVBM5Ly3q','BM93','CMvJB25Uzwn0qxr0zw1WDhm','AgfUzgXLq2XVC2u','z2v0u2vZC2LVBKLK','BgfZDfbVBMDszwnLAxzLza','AgfZ','AgfUzgXLrxjYB3i','BgvUz3rO','D2vSy29Tzq','C2vUza','y2XLyw51Ca','mJa5oda4m214EhnxEG','C2L6zq','uKvdt05orunusu5h','C2vZC2LVBL9QB2LUzwq','ue9orW','CMvJB25Uzwn0vgLTzxi','CxvLDwvFChjVy2vZC19LCNjVCG','Cg93','BwLU','mtm2nZK0s0XLt1DX','mJbNzKLUDMm','Dg9tDhjPBMC','z2vUzxjHDgvszxf1zxn0swq','u0vtu0LptL9kt0Loruq','AgfUzgXLtwvZC2fNzq','B25Jzq','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','mZu5mtG5nKjduevRAG','y29UBMvJDgvK','C2v0u3rHDgu','BwvZC2fNzvf1zxvL','DxjS','CMvJB25Uzwn0rgvSyxK','DhLWzq','D2fPDezVCKnVBM5Ly3rPB24','y2XVC2u','mty5mdG2nvPMu0fJuq','CMvXDwvZDeLKq291BNrLCG','v0vcu09ds0vux1jfq09otKvdvf9nvuXusvbmsuvs','nZeWmJu1C2DkEvPR','D3m6lY8','CgLUz19LCNjVCG','CgvUzgLUz1jLCxvLC3rZ','CgfYC2u','AgfUzgXLt3jJAgvZDhjHDg9YuMvZCg9UC2u','yMfZzvjLy29UBMvJDerLBgf5','BwvZC2fNzq','Cg9YDa','zw1PDa','t1jdsevtvfjbve9sx1jfu1bptLnf','mtz1BfHeDfG','C2v0','Cg9Uz1rPBwvVDxq','C3rHCNrizwfYDgjLyxq','C2vUzfbPBMC','uMvXDwvZDcb0Aw1LB3v0','q09otKvdveLorW','zgvSzxrL','AgfUzgXLt3bLBG','Ag9ZDa','mtG0mtyXmKLmrhbyqq','C3rHDgu','CgLUz0LUDgvYDMfS','mte0mZqXne5VufLXsG'];a0_0x35b8=function(){return _0xa38b46;};return a0_0x35b8();}import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';export class WebSocketManager extends EventEmitter{constructor(_0x4a3fb1=NETWORK['DEFAULT_HOST'],_0x301578=NETWORK['DEFAULT_PORT'],_0x73172={}){const _0x504a57=a0_0x3738;super(),this[_0x504a57(0x138)]=_0x4a3fb1,this[_0x504a57(0x12c)]=_0x301578,this[_0x504a57(0x11c)]=_0x504a57(0x125)+_0x4a3fb1+':'+_0x301578,this['ws']=null,this['state']=CONNECTION_STATE['DISCONNECTED'],this['sessionId']=null,this[_0x504a57(0x14d)]=0x0,this[_0x504a57(0x11d)]=_0x73172['reconnectDelay']??TIMING[_0x504a57(0x167)],this[_0x504a57(0x12a)]=this['reconnectDelay'],this['reconnectTimer']=null,this['shouldReconnect']=!![],this['heartbeatInterval']=_0x73172['heartbeatInterval']??TIMING['WEBSOCKET_PING_INTERVAL'],this[_0x504a57(0x13b)]=null,this['pongTimeout']=null,this['lastPongReceived']=null,this[_0x504a57(0x11b)]=[],this['requestIdCounter']=0x0,this[_0x504a57(0x127)]=new Map();}async['connect'](){const _0xd8eaa0=a0_0x3738;if(this[_0xd8eaa0(0x13a)]===CONNECTION_STATE['CONNECTED']||this[_0xd8eaa0(0x13a)]===CONNECTION_STATE[_0xd8eaa0(0x135)])return{'success':![],'error':'Already\x20connected\x20or\x20connecting'};this[_0xd8eaa0(0x11a)](CONNECTION_STATE[_0xd8eaa0(0x135)]),this[_0xd8eaa0(0x12d)]('connecting');try{return this['ws']=new a0_0x54d0b9(this['url']),this[_0xd8eaa0(0x145)](),await this['waitForConnection'](),{'success':!![]};}catch(_0x256d1f){return this['handleConnectionError'](_0x256d1f),{'success':![],'error':_0x256d1f[_0xd8eaa0(0x12b)]};}}[a0_0x5a54e7(0x11f)](){return new Promise((_0x1a1cba,_0x339bca)=>{const _0x234bb9=a0_0x3738,_0x2584e5=setTimeout(()=>{_0x339bca(new Error('Connection\x20timeout'));},TIMING[_0x234bb9(0x13f)]);this['ws'][_0x234bb9(0x166)]('open',()=>{clearTimeout(_0x2584e5),_0x1a1cba();}),this['ws'][_0x234bb9(0x166)](_0x234bb9(0x142),_0x3b9606=>{clearTimeout(_0x2584e5),_0x339bca(_0x3b9606);});});}['setupEventHandlers'](){const _0x450e21=a0_0x5a54e7;this['ws']['on']('open',()=>this[_0x450e21(0x137)]()),this['ws']['on']('message',_0x2c9449=>this[_0x450e21(0x165)](_0x2c9449)),this['ws']['on'](_0x450e21(0x120),(_0x69653a,_0xf1ceb6)=>this[_0x450e21(0x14e)](_0x69653a,_0xf1ceb6)),this['ws']['on'](_0x450e21(0x142),_0x5d7913=>this[_0x450e21(0x152)](_0x5d7913));}['handleOpen'](){const _0x5e9e15=a0_0x5a54e7;this['setState'](CONNECTION_STATE['CONNECTED']),this['reconnectAttempts']=0x0,this[_0x5e9e15(0x11d)]=this['baseReconnectDelay'],this[_0x5e9e15(0x12d)](_0x5e9e15(0x169)),this[_0x5e9e15(0x132)](),this[_0x5e9e15(0x147)]();}['handleMessage'](_0x518c12){const _0x31f1c3=a0_0x5a54e7;try{const _0x59df47=JSON[_0x31f1c3(0x128)](_0x518c12['toString']());if(_0x59df47[_0x31f1c3(0x11e)]===WS_MESSAGE_TYPE[_0x31f1c3(0x15b)]){this['handlePong']();return;}if(_0x59df47['type']===WS_MESSAGE_TYPE[_0x31f1c3(0x140)]){this['emit'](_0x31f1c3(0x154),_0x59df47);return;}if(_0x59df47[_0x31f1c3(0x11e)]===WS_MESSAGE_TYPE[_0x31f1c3(0x164)]){this[_0x31f1c3(0x144)]=_0x59df47[_0x31f1c3(0x144)],this['emit'](_0x31f1c3(0x15a),_0x59df47);return;}if(_0x59df47[_0x31f1c3(0x11e)]===WS_MESSAGE_TYPE[_0x31f1c3(0x12e)]){this[_0x31f1c3(0x129)](_0x59df47);return;}this[_0x31f1c3(0x12d)](_0x31f1c3(0x12b),_0x59df47),_0x59df47[_0x31f1c3(0x11e)]&&this['emit'](_0x59df47[_0x31f1c3(0x11e)],_0x59df47);}catch(_0x36975a){this[_0x31f1c3(0x12d)]('parse_error',{'error':_0x36975a,'data':_0x518c12});}}[a0_0x5a54e7(0x14e)](_0x430010,_0x2b7a57){const _0x2be4bb=a0_0x5a54e7;this[_0x2be4bb(0x156)]();const _0x326ccf=_0x2b7a57[_0x2be4bb(0x162)]()||'Unknown\x20reason';this[_0x2be4bb(0x12d)]('disconnected',{'code':_0x430010,'reason':_0x326ccf}),this[_0x2be4bb(0x13d)]&&_0x430010!==0x3e8?this[_0x2be4bb(0x14b)]():this['setState'](CONNECTION_STATE['DISCONNECTED']);}[a0_0x5a54e7(0x152)](_0x350562){const _0x41da6e=a0_0x5a54e7;this[_0x41da6e(0x12d)](_0x41da6e(0x142),_0x350562);}['handleConnectionError'](_0x4986c4){const _0x861eea=a0_0x5a54e7;this[_0x861eea(0x11a)](CONNECTION_STATE['ERROR']),this[_0x861eea(0x12d)]('connection_error',_0x4986c4),this['shouldReconnect']&&this[_0x861eea(0x14b)]();}['scheduleReconnect'](){const _0x12ee0e=a0_0x5a54e7;if(this[_0x12ee0e(0x15c)])return;this[_0x12ee0e(0x11a)](CONNECTION_STATE[_0x12ee0e(0x159)]),this[_0x12ee0e(0x14d)]++;const _0x4c98b8=Math[_0x12ee0e(0x15f)](this['reconnectDelay']*Math[_0x12ee0e(0x15e)](TIMING[_0x12ee0e(0x123)],this[_0x12ee0e(0x14d)]-0x1),TIMING['WEBSOCKET_RECONNECT_MAX_DELAY']);this[_0x12ee0e(0x12d)]('reconnecting',{'attempt':this[_0x12ee0e(0x14d)],'delay':_0x4c98b8}),this['reconnectTimer']=setTimeout(()=>{this['reconnectTimer']=null,this['connect']();},_0x4c98b8);}['startHeartbeat'](){const _0x5db511=a0_0x5a54e7;this['stopHeartbeat'](),this[_0x5db511(0x13b)]=setInterval(()=>{const _0x43a140=_0x5db511;this['state']===CONNECTION_STATE[_0x43a140(0x140)]&&this[_0x43a140(0x133)]();},this['heartbeatInterval']);}[a0_0x5a54e7(0x146)](){const _0x5bfa75=a0_0x5a54e7;this['pingInterval']&&(clearInterval(this[_0x5bfa75(0x13b)]),this[_0x5bfa75(0x13b)]=null),this['pongTimeout']&&(clearTimeout(this['pongTimeout']),this[_0x5bfa75(0x131)]=null);}[a0_0x5a54e7(0x133)](){const _0x27342a=a0_0x5a54e7;if(this[_0x27342a(0x13a)]!==CONNECTION_STATE['CONNECTED'])return;try{this[_0x27342a(0x155)]({'type':WS_MESSAGE_TYPE['PING']}),this['pongTimeout']=setTimeout(()=>{this['handlePongTimeout']();},TIMING['WEBSOCKET_PONG_TIMEOUT']);}catch(_0x5c3f58){this[_0x27342a(0x12d)](_0x27342a(0x126),_0x5c3f58);}}['handlePong'](){const _0x37ac4a=a0_0x5a54e7;this[_0x37ac4a(0x150)]=Date[_0x37ac4a(0x14c)](),this[_0x37ac4a(0x131)]&&(clearTimeout(this[_0x37ac4a(0x131)]),this[_0x37ac4a(0x131)]=null);}['handlePongTimeout'](){const _0x28d9cd=a0_0x5a54e7;this[_0x28d9cd(0x12d)]('heartbeat_timeout'),this[_0x28d9cd(0x149)](),this['shouldReconnect']&&this['scheduleReconnect']();}['joinSession'](_0x58b7fa){const _0x682957=a0_0x5a54e7;this[_0x682957(0x144)]=_0x58b7fa,this[_0x682957(0x155)]({'type':WS_MESSAGE_TYPE[_0x682957(0x13e)],'sessionId':_0x58b7fa});}[a0_0x5a54e7(0x148)](_0x362031,_0x416a1e,_0x2e5ab7){const _0x465d13=this['generateRequestId'](),_0x21ab8b={'type':WS_MESSAGE_TYPE['ORCHESTRATOR_REQUEST'],'requestId':_0x465d13,'action':_0x362031,'payload':_0x416a1e,'projectDir':_0x2e5ab7};return new Promise((_0x5ec1c0,_0x4d502f)=>{const _0x34051b=a0_0x3738;this[_0x34051b(0x127)][_0x34051b(0x130)](_0x465d13,{'resolve':_0x5ec1c0,'reject':_0x4d502f,'timestamp':Date[_0x34051b(0x14c)]()});try{this['send'](_0x21ab8b);}catch(_0x44d919){this['pendingRequests'][_0x34051b(0x136)](_0x465d13),_0x4d502f(_0x44d919);}setTimeout(()=>{const _0x5e1d21=_0x34051b;this['pendingRequests']['has'](_0x465d13)&&(this['pendingRequests']['delete'](_0x465d13),_0x4d502f(new Error(_0x5e1d21(0x134))));},TIMING['HTTP_TIMEOUT']);});}['handleOrchestratorResponse'](_0x1ecf51){const _0x429eb9=a0_0x5a54e7,{requestId:_0x524b44,response:_0xedf573,error:_0xcc5227}=_0x1ecf51;if(this[_0x429eb9(0x127)][_0x429eb9(0x151)](_0x524b44)){const {resolve:_0x5d0bca,reject:_0x14fbd8}=this[_0x429eb9(0x127)]['get'](_0x524b44);this['pendingRequests'][_0x429eb9(0x136)](_0x524b44),_0xcc5227?_0x14fbd8(new Error(_0xcc5227)):_0x5d0bca(_0xedf573);}}['send'](_0x2873a6){const _0x1a9be6=a0_0x5a54e7;if(this['state']!==CONNECTION_STATE[_0x1a9be6(0x140)]){this[_0x1a9be6(0x11b)]['push'](_0x2873a6);return;}try{this['ws'][_0x1a9be6(0x155)](JSON[_0x1a9be6(0x14a)](_0x2873a6));}catch(_0xe06e01){this['emit']('send_error',_0xe06e01);throw _0xe06e01;}}['processMessageQueue'](){const _0x54c321=a0_0x5a54e7;while(this['messageQueue']['length']>0x0&&this[_0x54c321(0x13a)]===CONNECTION_STATE['CONNECTED']){const _0x223aee=this[_0x54c321(0x11b)]['shift']();try{this['ws'][_0x54c321(0x155)](JSON['stringify'](_0x223aee));}catch(_0x197262){this['emit'](_0x54c321(0x15d),_0x197262),this['messageQueue']['unshift'](_0x223aee);break;}}}['disconnect'](){const _0x141ab7=a0_0x5a54e7;this['shouldReconnect']=![],this[_0x141ab7(0x156)]();if(this['ws']){try{this['ws']['close'](0x3e8,'Client\x20disconnect');}catch(_0x2c8cba){}this['ws']=null;}this['setState'](CONNECTION_STATE['DISCONNECTED']);}[a0_0x5a54e7(0x156)](){const _0x527040=a0_0x5a54e7;this['stopHeartbeat'](),this[_0x527040(0x15c)]&&(clearTimeout(this['reconnectTimer']),this['reconnectTimer']=null),this['ws']&&this['ws']['removeAllListeners']();}[a0_0x5a54e7(0x11a)](_0x47c51f){const _0x55c14b=a0_0x5a54e7,_0x430606=this['state'];this['state']=_0x47c51f,_0x430606!==_0x47c51f&&this[_0x55c14b(0x12d)]('state_change',{'oldState':_0x430606,'newState':_0x47c51f});}[a0_0x5a54e7(0x163)](){const _0x137024=a0_0x5a54e7;return this[_0x137024(0x122)]++,_0x137024(0x141)+Date['now']()+'-'+this['requestIdCounter'];}['getState'](){const _0x4ba1be=a0_0x5a54e7;return this[_0x4ba1be(0x13a)];}['isConnected'](){const _0x59c5e9=a0_0x5a54e7;return this[_0x59c5e9(0x13a)]===CONNECTION_STATE[_0x59c5e9(0x140)];}[a0_0x5a54e7(0x14f)](){return this['sessionId'];}['getStats'](){const _0x5aa0cc=a0_0x5a54e7;return{'state':this[_0x5aa0cc(0x13a)],'sessionId':this[_0x5aa0cc(0x144)],'reconnectAttempts':this[_0x5aa0cc(0x14d)],'queuedMessages':this[_0x5aa0cc(0x11b)][_0x5aa0cc(0x153)],'pendingRequests':this['pendingRequests'][_0x5aa0cc(0x158)],'lastPongReceived':this['lastPongReceived']};}}export default WebSocketManager;
|
|
1
|
+
function a0_0x4c00(_0x46aab0,_0x52e3ee){_0x46aab0=_0x46aab0-0x128;const _0x49f308=a0_0x49f3();let _0x4c00cc=_0x49f308[_0x46aab0];if(a0_0x4c00['WBUuXJ']===undefined){var _0x4828bf=function(_0xd2b8be){const _0x177682='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x35113d='',_0x1e1a52='';for(let _0x1178c0=0x0,_0x12ab95,_0x39b19c,_0x490086=0x0;_0x39b19c=_0xd2b8be['charAt'](_0x490086++);~_0x39b19c&&(_0x12ab95=_0x1178c0%0x4?_0x12ab95*0x40+_0x39b19c:_0x39b19c,_0x1178c0++%0x4)?_0x35113d+=String['fromCharCode'](0xff&_0x12ab95>>(-0x2*_0x1178c0&0x6)):0x0){_0x39b19c=_0x177682['indexOf'](_0x39b19c);}for(let _0x575a43=0x0,_0x20f57c=_0x35113d['length'];_0x575a43<_0x20f57c;_0x575a43++){_0x1e1a52+='%'+('00'+_0x35113d['charCodeAt'](_0x575a43)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1e1a52);};a0_0x4c00['CViQCV']=_0x4828bf,a0_0x4c00['iWllft']={},a0_0x4c00['WBUuXJ']=!![];}const _0x2be1f2=_0x49f308[0x0],_0x3616e3=_0x46aab0+_0x2be1f2,_0x5119ad=a0_0x4c00['iWllft'][_0x3616e3];return!_0x5119ad?(_0x4c00cc=a0_0x4c00['CViQCV'](_0x4c00cc),a0_0x4c00['iWllft'][_0x3616e3]=_0x4c00cc):_0x4c00cc=_0x5119ad,_0x4c00cc;}const a0_0x33e51e=a0_0x4c00;(function(_0x3e8cef,_0x48ecba){const _0x3c637e=a0_0x4c00,_0x27e988=_0x3e8cef();while(!![]){try{const _0x583e8a=parseInt(_0x3c637e(0x16f))/0x1+-parseInt(_0x3c637e(0x12a))/0x2*(parseInt(_0x3c637e(0x141))/0x3)+parseInt(_0x3c637e(0x136))/0x4+parseInt(_0x3c637e(0x149))/0x5+-parseInt(_0x3c637e(0x13a))/0x6*(-parseInt(_0x3c637e(0x153))/0x7)+-parseInt(_0x3c637e(0x16b))/0x8+-parseInt(_0x3c637e(0x12b))/0x9;if(_0x583e8a===_0x48ecba)break;else _0x27e988['push'](_0x27e988['shift']());}catch(_0x47868f){_0x27e988['push'](_0x27e988['shift']());}}}(a0_0x49f3,0xb5735));import a0_0x35113d from'ws';function a0_0x49f3(){const _0x2e6823=['Cg9Uz1rPBwvVDxq','C3rYAw5NAwz5','odm5mJaXnLrjuNrjqW','BwvZC2fNzvf1zxvL','q2XPzw50igrPC2nVBM5Ly3q','C2vZC2LVBL9QB2LUzwq','mtmYotK5n1PTzhfLBW','reLtq09otKvdveve','y2XVC2u','DhLWzq','BgfZDfbVBMDszwnLAxzLza','q09otKvdveLorW','mte4ntG2mK1YsuXrzG','ntq0odGYnu12sg9WuG','v0vcu09ds0vux1bptKDFveLnru9vva','CMvJB25Uzwn0vgLTzxi','revgqvvmvf9it1nu','CMvJB25Uzwn0rgvSyxK','C2v0u3rHDgu','AgvHCNrIzwf0sw50zxj2ywW','sfruuf9usu1ft1vu','D2fPDezVCKnVBM5Ly3rPB24','z2v0u3rHDhm','C2v0','odq3mZa4ueTxzfLA','CMvXDwvZDeLKq291BNrLCG','v0vcu09ds0vux1jfq09otKvdvf9nvuXusvbmsuvs','CgLUz0LUDgvYDMfS','mtHAqK5mDfe','rvjst1i','C2HVDwXKuMvJB25Uzwn0','zxjYB3i','y29UBMvJDgLVBL9LCNjVCG','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','B3bLBG','nLP4qxPLtq','AgfUzgXLq2XVC2u','CgvUzgLUz1jLCxvLC3rZ','revgqvvmvf9qt1ju','q29UBMvJDgLVBIb0Aw1LB3v0','C2vUzfbPBMC','z2v0','AgfUzgXLrxjYB3i','nti1ote2nvvizxnJwG','v0vcu09ds0vux1jfq09otKvdvf9nqvHFrevmqvK','AgfZ','BwvZC2fNzq','qwXYzwfKEsbJB25Uzwn0zwqGB3iGy29UBMvJDgLUzW','C2HPzNq','C3rVCeHLyxj0yMvHDa','z2v0u2vZC2LVBKLK','CgfYC2u','AgfUzgXLt3bLBG','mJmWoty1n1jwyMrWBG','z2v0u3rHDgu','yMfZzvjLy29UBMvJDerLBgf5','zw1PDa','C3rHDgu','CMvJB25Uzwn0qxr0zw1WDhm','ChjVy2vZC01LC3nHz2vrDwv1zq','zgLZy29UBMvJDa','AgfUzgXLug9Uz1rPBwvVDxq','Cg9YDa','q09otKvdveve','C3rHCNrizwfYDgjLyxq','AgfUzgXLq29UBMvJDgLVBKvYCM9Y','v0vcu09ds0vux0nptK5fq1rFveLnru9vva','C2vUza','C2vZC2LVBKLK','y2XLyw51Ca','ChvZAa','zgvSzxrL','y29UBMvJDa','zgLZy29UBMvJDgvK','y29UBMvJDgvK'];a0_0x49f3=function(){return _0x2e6823;};return a0_0x49f3();}import{EventEmitter}from'events';import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';export class WebSocketManager extends EventEmitter{constructor(_0x1e1a52=NETWORK[a0_0x33e51e(0x12e)],_0x1178c0=NETWORK[a0_0x33e51e(0x144)],_0x12ab95={}){const _0x14bd9f=a0_0x33e51e;super(),this['host']=_0x1e1a52,this[_0x14bd9f(0x15c)]=_0x1178c0,this['url']='ws://'+_0x1e1a52+':'+_0x1178c0,this['ws']=null,this[_0x14bd9f(0x157)]=CONNECTION_STATE['DISCONNECTED'],this[_0x14bd9f(0x162)]=null,this[_0x14bd9f(0x158)]=0x0,this[_0x14bd9f(0x12f)]=_0x12ab95[_0x14bd9f(0x12f)]??TIMING[_0x14bd9f(0x13f)],this[_0x14bd9f(0x155)]=this[_0x14bd9f(0x12f)],this['reconnectTimer']=null,this[_0x14bd9f(0x13c)]=!![],this['heartbeatInterval']=_0x12ab95[_0x14bd9f(0x131)]??TIMING['WEBSOCKET_PING_INTERVAL'],this['pingInterval']=null,this['pongTimeout']=null,this[_0x14bd9f(0x128)]=null,this[_0x14bd9f(0x16c)]=[],this[_0x14bd9f(0x137)]=0x0,this['pendingRequests']=new Map();}async[a0_0x33e51e(0x166)](){const _0x759d4d=a0_0x33e51e;if(this['state']===CONNECTION_STATE[_0x759d4d(0x15d)]||this['state']===CONNECTION_STATE[_0x759d4d(0x129)])return{'success':![],'error':_0x759d4d(0x14d)};this[_0x759d4d(0x130)](CONNECTION_STATE['CONNECTING']),this['emit']('connecting');try{return this['ws']=new a0_0x35113d(this['url']),this['setupEventHandlers'](),await this['waitForConnection'](),{'success':!![]};}catch(_0x39b19c){return this[_0x759d4d(0x15f)](_0x39b19c),{'success':![],'error':_0x39b19c[_0x759d4d(0x14c)]};}}[a0_0x33e51e(0x133)](){return new Promise((_0x490086,_0x575a43)=>{const _0x1040c3=a0_0x4c00,_0x20f57c=setTimeout(()=>{const _0x3d29bd=a0_0x4c00;_0x575a43(new Error(_0x3d29bd(0x145)));},TIMING[_0x1040c3(0x160)]);this['ws']['once'](_0x1040c3(0x140),()=>{clearTimeout(_0x20f57c),_0x490086();}),this['ws']['once'](_0x1040c3(0x13d),_0x31691e=>{clearTimeout(_0x20f57c),_0x575a43(_0x31691e);});});}['setupEventHandlers'](){const _0x28fda0=a0_0x33e51e;this['ws']['on'](_0x28fda0(0x140),()=>this['handleOpen']()),this['ws']['on']('message',_0x17597a=>this['handleMessage'](_0x17597a)),this['ws']['on'](_0x28fda0(0x171),(_0x3f2d1b,_0x255e94)=>this[_0x28fda0(0x142)](_0x3f2d1b,_0x255e94)),this['ws']['on'](_0x28fda0(0x13d),_0x56de95=>this[_0x28fda0(0x148)](_0x56de95));}[a0_0x33e51e(0x152)](){const _0x36e852=a0_0x33e51e;this[_0x36e852(0x130)](CONNECTION_STATE['CONNECTED']),this['reconnectAttempts']=0x0,this['reconnectDelay']=this[_0x36e852(0x155)],this[_0x36e852(0x156)](_0x36e852(0x168)),this[_0x36e852(0x15e)](),this['processMessageQueue']();}['handleMessage'](_0x3fff4f){const _0x2705ba=a0_0x33e51e;try{const _0x16053c=JSON[_0x2705ba(0x151)](_0x3fff4f['toString']());if(_0x16053c[_0x2705ba(0x172)]===WS_MESSAGE_TYPE['PONG']){this['handlePong']();return;}if(_0x16053c[_0x2705ba(0x172)]===WS_MESSAGE_TYPE['CONNECTED']){this['emit']('welcome',_0x16053c);return;}if(_0x16053c['type']===WS_MESSAGE_TYPE['SESSION_JOINED']){this['sessionId']=_0x16053c['sessionId'],this[_0x2705ba(0x156)](_0x2705ba(0x16e),_0x16053c);return;}if(_0x16053c[_0x2705ba(0x172)]===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this['handleOrchestratorResponse'](_0x16053c);return;}this[_0x2705ba(0x156)](_0x2705ba(0x14c),_0x16053c),_0x16053c['type']&&this[_0x2705ba(0x156)](_0x16053c[_0x2705ba(0x172)],_0x16053c);}catch(_0x30c049){this['emit']('parse_error',{'error':_0x30c049,'data':_0x3fff4f});}}['handleClose'](_0x4b3bf6,_0x593a7f){const _0x4b5714=a0_0x33e51e;this['cleanup']();const _0x1fd59c=_0x593a7f['toString']()||'Unknown\x20reason';this[_0x4b5714(0x156)](_0x4b5714(0x167),{'code':_0x4b3bf6,'reason':_0x1fd59c}),this['shouldReconnect']&&_0x4b3bf6!==0x3e8?this['scheduleReconnect']():this[_0x4b5714(0x130)](CONNECTION_STATE[_0x4b5714(0x170)]);}[a0_0x33e51e(0x148)](_0x1c41c3){const _0x415a9a=a0_0x33e51e;this['emit'](_0x415a9a(0x13d),_0x1c41c3);}[a0_0x33e51e(0x15f)](_0x5f3c90){const _0x57e936=a0_0x33e51e;this[_0x57e936(0x130)](CONNECTION_STATE[_0x57e936(0x13b)]),this[_0x57e936(0x156)](_0x57e936(0x13e),_0x5f3c90),this[_0x57e936(0x13c)]&&this['scheduleReconnect']();}['scheduleReconnect'](){const _0x53b3bb=a0_0x33e51e;if(this[_0x53b3bb(0x12d)])return;this['setState'](CONNECTION_STATE['RECONNECTING']),this['reconnectAttempts']++;const _0x5af850=Math['min'](this['reconnectDelay']*Math['pow'](TIMING[_0x53b3bb(0x138)],this['reconnectAttempts']-0x1),TIMING[_0x53b3bb(0x14a)]);this[_0x53b3bb(0x156)]('reconnecting',{'attempt':this[_0x53b3bb(0x158)],'delay':_0x5af850}),this['reconnectTimer']=setTimeout(()=>{const _0x5b7b10=_0x53b3bb;this[_0x5b7b10(0x12d)]=null,this['connect']();},_0x5af850);}['startHeartbeat'](){const _0x4e85c9=a0_0x33e51e;this[_0x4e85c9(0x14f)](),this[_0x4e85c9(0x139)]=setInterval(()=>{const _0x8eeae7=_0x4e85c9;this['state']===CONNECTION_STATE['CONNECTED']&&this[_0x8eeae7(0x146)]();},this['heartbeatInterval']);}['stopHeartbeat'](){const _0x4d58a8=a0_0x33e51e;this[_0x4d58a8(0x139)]&&(clearInterval(this[_0x4d58a8(0x139)]),this['pingInterval']=null),this['pongTimeout']&&(clearTimeout(this[_0x4d58a8(0x169)]),this['pongTimeout']=null);}[a0_0x33e51e(0x146)](){const _0xd45085=a0_0x33e51e;if(this[_0xd45085(0x157)]!==CONNECTION_STATE['CONNECTED'])return;try{this[_0xd45085(0x161)]({'type':WS_MESSAGE_TYPE['PING']}),this[_0xd45085(0x169)]=setTimeout(()=>{const _0x311663=_0xd45085;this[_0x311663(0x15b)]();},TIMING[_0xd45085(0x12c)]);}catch(_0x5e00bd){this['emit']('ping_error',_0x5e00bd);}}['handlePong'](){const _0x9ab659=a0_0x33e51e;this['lastPongReceived']=Date['now'](),this[_0x9ab659(0x169)]&&(clearTimeout(this['pongTimeout']),this[_0x9ab659(0x169)]=null);}[a0_0x33e51e(0x15b)](){const _0x278b47=a0_0x33e51e;this[_0x278b47(0x156)]('heartbeat_timeout'),this[_0x278b47(0x15a)](),this['shouldReconnect']&&this['scheduleReconnect']();}['joinSession'](_0x192852){const _0x5b2b8b=a0_0x33e51e;this['sessionId']=_0x192852,this[_0x5b2b8b(0x161)]({'type':WS_MESSAGE_TYPE['JOIN_SESSION'],'sessionId':_0x192852});}['sendOrchestratorRequest'](_0x3a5c11,_0x5e445c,_0xebc5f){const _0xfa3bf=this['generateRequestId'](),_0x39309a={'type':WS_MESSAGE_TYPE['ORCHESTRATOR_REQUEST'],'requestId':_0xfa3bf,'action':_0x3a5c11,'payload':_0x5e445c,'projectDir':_0xebc5f};return new Promise((_0x53c952,_0x3ec4cc)=>{const _0xc0c395=a0_0x4c00;this['pendingRequests'][_0xc0c395(0x135)](_0xfa3bf,{'resolve':_0x53c952,'reject':_0x3ec4cc,'timestamp':Date['now']()});try{this['send'](_0x39309a);}catch(_0xf8b35f){this[_0xc0c395(0x143)]['delete'](_0xfa3bf),_0x3ec4cc(_0xf8b35f);}setTimeout(()=>{const _0xb442b0=_0xc0c395;this['pendingRequests'][_0xb442b0(0x14b)](_0xfa3bf)&&(this['pendingRequests'][_0xb442b0(0x165)](_0xfa3bf),_0x3ec4cc(new Error('Request\x20timeout')));},TIMING[_0xc0c395(0x132)]);});}['handleOrchestratorResponse'](_0x4a6a83){const _0x1453f3=a0_0x33e51e,{requestId:_0xf99bc,response:_0x33c452,error:_0x37bc5b}=_0x4a6a83;if(this[_0x1453f3(0x143)]['has'](_0xf99bc)){const {resolve:_0x19dd88,reject:_0x3eabda}=this['pendingRequests'][_0x1453f3(0x147)](_0xf99bc);this['pendingRequests']['delete'](_0xf99bc),_0x37bc5b?_0x3eabda(new Error(_0x37bc5b)):_0x19dd88(_0x33c452);}}[a0_0x33e51e(0x161)](_0x437083){const _0x3b0b85=a0_0x33e51e;if(this['state']!==CONNECTION_STATE[_0x3b0b85(0x15d)]){this[_0x3b0b85(0x16c)][_0x3b0b85(0x164)](_0x437083);return;}try{this['ws']['send'](JSON['stringify'](_0x437083));}catch(_0x290887){this[_0x3b0b85(0x156)]('send_error',_0x290887);throw _0x290887;}}[a0_0x33e51e(0x159)](){const _0x568952=a0_0x33e51e;while(this['messageQueue']['length']>0x0&&this['state']===CONNECTION_STATE['CONNECTED']){const _0x288f06=this['messageQueue'][_0x568952(0x14e)]();try{this['ws']['send'](JSON[_0x568952(0x16a)](_0x288f06));}catch(_0x38741d){this['emit']('queue_process_error',_0x38741d),this[_0x568952(0x16c)]['unshift'](_0x288f06);break;}}}['disconnect'](){const _0x244576=a0_0x33e51e;this['shouldReconnect']=![],this[_0x244576(0x163)]();if(this['ws']){try{this['ws'][_0x244576(0x171)](0x3e8,_0x244576(0x16d));}catch(_0x18ee5c){}this['ws']=null;}this[_0x244576(0x130)](CONNECTION_STATE[_0x244576(0x170)]);}[a0_0x33e51e(0x163)](){const _0x233999=a0_0x33e51e;this['stopHeartbeat'](),this['reconnectTimer']&&(clearTimeout(this['reconnectTimer']),this[_0x233999(0x12d)]=null),this['ws']&&this['ws']['removeAllListeners']();}['setState'](_0x218a99){const _0x3e8bfe=a0_0x33e51e,_0x2676a3=this[_0x3e8bfe(0x157)];this[_0x3e8bfe(0x157)]=_0x218a99,_0x2676a3!==_0x218a99&&this['emit']('state_change',{'oldState':_0x2676a3,'newState':_0x218a99});}['generateRequestId'](){const _0xc9d534=a0_0x33e51e;return this['requestIdCounter']++,'req-'+Date['now']()+'-'+this[_0xc9d534(0x137)];}[a0_0x33e51e(0x154)](){const _0x52762c=a0_0x33e51e;return this[_0x52762c(0x157)];}['isConnected'](){return this['state']===CONNECTION_STATE['CONNECTED'];}[a0_0x33e51e(0x150)](){const _0x3ee782=a0_0x33e51e;return this[_0x3ee782(0x162)];}[a0_0x33e51e(0x134)](){const _0x51c4d5=a0_0x33e51e;return{'state':this['state'],'sessionId':this[_0x51c4d5(0x162)],'reconnectAttempts':this['reconnectAttempts'],'queuedMessages':this['messageQueue']['length'],'pendingRequests':this['pendingRequests']['size'],'lastPongReceived':this['lastPongReceived']};}}export default WebSocketManager;
|