@loxia-labs/loxia-autopilot-one 1.0.5 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- 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/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/web-ui/build/index.html +2 -2
- package/web-ui/build/static/{index-lCBai6dX.js → index-CX8ZfpGw.js} +113 -60
- package/web-ui/build/static/index-Dwg_JrlO.css +1 -0
- package/web-ui/build/static/index-CClD1090.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x5b3d06=a0_0x1a38;(function(_0x15ba76,_0x451568){const _0x2aff80=a0_0x1a38,_0x1eba85=_0x15ba76();while(!![]){try{const _0x13745d=-parseInt(_0x2aff80(0x146))/0x1*(parseInt(_0x2aff80(0x150))/0x2)+parseInt(_0x2aff80(0x140))/0x3*(parseInt(_0x2aff80(0x149))/0x4)+-parseInt(_0x2aff80(0x17f))/0x5+-parseInt(_0x2aff80(0x148))/0x6*(parseInt(_0x2aff80(0x177))/0x7)+parseInt(_0x2aff80(0x156))/0x8*(-parseInt(_0x2aff80(0x158))/0x9)+-parseInt(_0x2aff80(0x13c))/0xa+parseInt(_0x2aff80(0x151))/0xb;if(_0x13745d===_0x451568)break;else _0x1eba85['push'](_0x1eba85['shift']());}catch(_0x203153){_0x1eba85['push'](_0x1eba85['shift']());}}}(a0_0x4bf7,0x7a78e));import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';function a0_0x4bf7(){const _0x33bccb=['tKvuv09ssW','AxnwywXPza','Ag9ZDa','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','CgvUzgLUz1jLCxvLC3rZ','v2vIu29JA2v0twfUywDLCIbPBML0AwfSAxPLCYb3AxrOignVCNjLy3qGC3rHDgu','BM90','z2v0uhjVAMvJDerPCG','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','ChjVAMvJDerPCG','C3rHDgu','CxvLDwvKtwvZC2fNzxm','vuLFreLnru5tsu9ouW','l3rLC3qVzgLY','Dg9iyxzLuhjVCgvYDhK','z2v0u3rHDhm','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','mte5D3PHt2fj','yMXVy2TLzc10ExbL','quDftLrFtu9erq','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbTAwrKBgv3yxjL','DgvZDa','Dg9fCxvHBa','revgqvvmvf9qt1ju','BNvTyMvY','ndq0mZmXmeHTqxrAta','nJmZnZq5mgPIDMLtwG','C2vZC2LVBKLK','Bg9JywXOB3n0','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','mtvqAM1evLC','q09otKvdveLptL9tvefurq','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','DMvUzg9Ys2v5CW','reLtq09otKvdveve','DxnL','ndmZC1voEgLc','Bg94AwfbCgLlzxK','mtqXotb1qvPiCMy','odG1mtzKzwnVv2S','veLnsu5h','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','z2v0u2vZC2LVBKLK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbfCNjVCIbiyw5KBgLUzW','AgfZsgfUzgXLCG','mtHPzgnKBfi','mJq4nZqXnZLiwuHvweO','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLigHLBhbLCNmGy3jLyxrLihzHBgLKig1PzgrSzxDHCMu','lI4VlI4VyxbPl3nLC3nPB24UANm','su1br0vFuKvtvuXu','ndG2mdqWtff5v1nf','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','ndvvDhjtsKK','DgvZDc1TzxnZywDL','u0LerujbuL9xsurusa','zNvUy3rPB24','CMvJzwL2zwrbDa','revgqvvmvf9it1nu','BwLKzgXLD2fYzq','AgfZtg94AwflzxK','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','Dg9czurLzMLUzwq','Dg9czq','BwvZC2fNzvf1zxvL','BM90lweTzNvUy3rPB24'];a0_0x4bf7=function(){return _0x33bccb;};return a0_0x4bf7();}import{dirname,join}from'path';function a0_0x1a38(_0x427b57,_0x4e01d2){_0x427b57=_0x427b57-0x13c;const _0x4bf7d8=a0_0x4bf7();let _0x1a389c=_0x4bf7d8[_0x427b57];if(a0_0x1a38['GVvhJa']===undefined){var _0x14708e=function(_0x2d0266){const _0x8e1ddf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4abc9c='',_0xd52901='';for(let _0x5f4eb7=0x0,_0x717056,_0x3de5a1,_0x38869c=0x0;_0x3de5a1=_0x2d0266['charAt'](_0x38869c++);~_0x3de5a1&&(_0x717056=_0x5f4eb7%0x4?_0x717056*0x40+_0x3de5a1:_0x3de5a1,_0x5f4eb7++%0x4)?_0x4abc9c+=String['fromCharCode'](0xff&_0x717056>>(-0x2*_0x5f4eb7&0x6)):0x0){_0x3de5a1=_0x8e1ddf['indexOf'](_0x3de5a1);}for(let _0x5c703f=0x0,_0x550ecb=_0x4abc9c['length'];_0x5c703f<_0x550ecb;_0x5c703f++){_0xd52901+='%'+('00'+_0x4abc9c['charCodeAt'](_0x5c703f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xd52901);};a0_0x1a38['pAkSfB']=_0x14708e,a0_0x1a38['cwchmu']={},a0_0x1a38['GVvhJa']=!![];}const _0x30752d=_0x4bf7d8[0x0],_0x470a9d=_0x427b57+_0x30752d,_0x4d3633=a0_0x1a38['cwchmu'][_0x470a9d];return!_0x4d3633?(_0x1a389c=a0_0x1a38['pAkSfB'](_0x1a389c),a0_0x1a38['cwchmu'][_0x470a9d]=_0x1a389c):_0x1a389c=_0x4d3633,_0x1a389c;}const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x57cb86=a0_0x1a38,_0x4abc9c=await import(_0x57cb86(0x176));expect(_0x4abc9c['UI_DIMENSIONS'])['toBeDefined'](),expect(_0x4abc9c['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x4abc9c['PAGINATION'])['toBeDefined'](),expect(_0x4abc9c[_0x57cb86(0x14a)])['toBeDefined'](),expect(_0x4abc9c['NETWORK'])['toBeDefined'](),expect(_0x4abc9c[_0x57cb86(0x141)])[_0x57cb86(0x161)](),expect(_0x4abc9c[_0x57cb86(0x179)])['toBeDefined'](),expect(_0x4abc9c['WS_MESSAGE_TYPE'])['toBeDefined'](),expect(_0x4abc9c['API_ENDPOINTS'])[_0x57cb86(0x161)](),expect(_0x4abc9c['COMMANDS'])['toBeDefined'](),expect(_0x4abc9c[_0x57cb86(0x165)][_0x57cb86(0x15d)])['toBe'](_0x57cb86(0x13e)),expect(_0x4abc9c['NETWORK'][_0x57cb86(0x17d)])[_0x57cb86(0x162)](0x1f90),expect(_0x4abc9c[_0x57cb86(0x141)][_0x57cb86(0x144)])[_0x57cb86(0x162)]('disconnected'),expect(_0x4abc9c[_0x57cb86(0x141)]['CONNECTED'])[_0x57cb86(0x162)]('connected');}),test('WebSocketManager class can be imported',async()=>{const _0x1cfab6=a0_0x1a38,{WebSocketManager:_0xd52901}=await import(_0x1cfab6(0x14b));expect(_0xd52901)['toBeDefined'](),expect(typeof _0xd52901)['toBe']('function');const _0x5f4eb7=new _0xd52901('localhost',0x1f90);expect(_0x5f4eb7)['toBeDefined'](),expect(_0x5f4eb7['host'])[_0x1cfab6(0x162)](_0x1cfab6(0x13e)),expect(_0x5f4eb7['port'])['toBe'](0x1f90),expect(_0x5f4eb7['url'])[_0x1cfab6(0x162)]('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0x2de0de=a0_0x1a38,{SessionManager:_0x717056}=await import('../../api/session.js');expect(_0x717056)['toBeDefined'](),expect(typeof _0x717056)[_0x2de0de(0x162)](_0x2de0de(0x15b));const _0x3de5a1=new _0x717056('localhost',0x1f90);expect(_0x3de5a1)[_0x2de0de(0x161)](),expect(_0x3de5a1[_0x2de0de(0x167)])['toBe'](_0x2de0de(0x13e)),expect(_0x3de5a1['port'])['toBe'](0x1f90),expect(_0x3de5a1['baseUrl'])['toBe']('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x5f09ee=a0_0x1a38,{MessageRouter:_0x38869c}=await import(_0x5f09ee(0x14d)),{WebSocketManager:_0x5c703f}=await import(_0x5f09ee(0x14b));expect(_0x38869c)[_0x5f09ee(0x161)](),expect(typeof _0x38869c)[_0x5f09ee(0x162)](_0x5f09ee(0x15b));const _0x550ecb=new _0x5c703f('localhost',0x1f90),_0x5472fd=new _0x38869c(_0x550ecb);expect(_0x5472fd)['toBeDefined'](),expect(_0x5472fd['ws'])['toBe'](_0x550ecb);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x2efdf6=a0_0x1a38,{loggingMiddleware:_0x5c53f7,filterMiddleware:_0x4807e5,transformMiddleware:_0x512616,timestampMiddleware:_0x58ebbe,validationMiddleware:_0x5aac71}=await import(_0x2efdf6(0x14d));expect(typeof _0x5c53f7)[_0x2efdf6(0x162)]('function'),expect(typeof _0x4807e5)['toBe']('function'),expect(typeof _0x512616)[_0x2efdf6(0x162)](_0x2efdf6(0x15b)),expect(typeof _0x58ebbe)[_0x2efdf6(0x162)](_0x2efdf6(0x15b)),expect(typeof _0x5aac71)[_0x2efdf6(0x162)](_0x2efdf6(0x15b));}),test('useConnection hook can be imported',async()=>{const _0x1837bc=a0_0x1a38,{useConnection:_0x2dca6b,useConnectionStatus:_0x90b2d}=await import('../../state/useConnection.js');expect(_0x2dca6b)[_0x1837bc(0x161)](),expect(typeof _0x2dca6b)[_0x1837bc(0x162)]('function'),expect(_0x90b2d)['toBeDefined'](),expect(typeof _0x90b2d)['toBe']('function');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x1a013b=a0_0x1a38;test(_0x1a013b(0x16b),async()=>{const _0x1bb25a=_0x1a013b,{WebSocketManager:_0x25b187}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x2af66d}=await import(_0x1bb25a(0x176)),_0x3e2b3b=new _0x25b187('test-host',0x2382);expect(_0x3e2b3b[_0x1bb25a(0x170)])[_0x1bb25a(0x162)](_0x2af66d['DISCONNECTED']),expect(_0x3e2b3b[_0x1bb25a(0x13d)])['toBe'](null),expect(_0x3e2b3b[_0x1bb25a(0x163)])['toEqual']([]),expect(_0x3e2b3b['reconnectAttempts'])[_0x1bb25a(0x162)](0x0),expect(_0x3e2b3b['shouldReconnect'])[_0x1bb25a(0x162)](!![]);}),test('SessionManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x29a53e=_0x1a013b,{SessionManager:_0xfd0bcd}=await import(_0x29a53e(0x154)),_0xe37cef=new _0xfd0bcd('test-host',0x2382);expect(_0xe37cef['sessionId'])['toBe'](null),expect(_0xe37cef[_0x29a53e(0x16f)])[_0x29a53e(0x162)](null),expect(_0xe37cef[_0x29a53e(0x147)])[_0x29a53e(0x162)](null),expect(_0xe37cef[_0x29a53e(0x143)])[_0x29a53e(0x17c)]({}),expect(_0xe37cef['isValid']())[_0x29a53e(0x162)](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x59fa3e=_0x1a013b,{MessageRouter:_0x3c8964}=await import(_0x59fa3e(0x14d)),{WebSocketManager:_0x443f11}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0x1b807b}=await import('../../config/constants.js'),_0x55a0e9=new _0x443f11(_0x59fa3e(0x13e),0x1f90),_0x34cc3f=new _0x3c8964(_0x55a0e9);expect(_0x34cc3f['hasHandler'](_0x1b807b['MESSAGE_ADDED']))[_0x59fa3e(0x162)](!![]),expect(_0x34cc3f['hasHandler'](_0x1b807b['AGENT_MODE_CHANGED']))[_0x59fa3e(0x162)](!![]),expect(_0x34cc3f[_0x59fa3e(0x14f)](_0x1b807b['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0x34cc3f[_0x59fa3e(0x14f)](_0x1b807b['COMPACTION_EVENT']))[_0x59fa3e(0x162)](!![]),expect(_0x34cc3f['hasHandler'](_0x1b807b[_0x59fa3e(0x155)]))['toBe'](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x3dde69=_0x1a013b,{MessageRouter:_0x1ad3b4}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x2ef148}=await import(_0x3dde69(0x14b)),_0x2c996a=new _0x2ef148(_0x3dde69(0x13e),0x1f90),_0x2fdc8a=new _0x1ad3b4(_0x2c996a),_0x1118f4=_0x4436cc=>_0x4436cc;expect(_0x2fdc8a['middleware']['length'])[_0x3dde69(0x142)](0x0),_0x2fdc8a[_0x3dde69(0x145)](_0x1118f4);const _0x1a6df4=_0x2fdc8a[_0x3dde69(0x15e)]['length'];expect(_0x1a6df4)['toBeGreaterThan'](0x0),_0x2fdc8a['removeMiddleware'](_0x1118f4),expect(_0x2fdc8a['middleware']['length'])[_0x3dde69(0x162)](_0x1a6df4-0x1);}),test(_0x1a013b(0x160),async()=>{const _0x55ad09=_0x1a013b,{SessionManager:_0x47eb92}=await import(_0x55ad09(0x154)),_0x45ed13=new _0x47eb92(_0x55ad09(0x13e),0x1f90);expect(_0x45ed13[_0x55ad09(0x14c)]())[_0x55ad09(0x162)](null),expect(_0x45ed13[_0x55ad09(0x16d)]())['toBe'](null),expect(_0x45ed13[_0x55ad09(0x166)]())[_0x55ad09(0x162)](![]);const _0x26a564=_0x45ed13['getSessionInfo']();expect(_0x26a564)[_0x55ad09(0x174)]('sessionId'),expect(_0x26a564)[_0x55ad09(0x174)]('projectDir'),expect(_0x26a564)[_0x55ad09(0x174)](_0x55ad09(0x15f)),expect(_0x26a564)['toHaveProperty']('vendorKeysCount');}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x531b9e=_0x1a013b,{WebSocketManager:_0x414c38}=await import(_0x531b9e(0x14b)),{CONNECTION_STATE:_0x5c260c}=await import('../../config/constants.js'),_0xf163e3=new _0x414c38(_0x531b9e(0x13e),0x1f90);expect(_0xf163e3['getState']())[_0x531b9e(0x162)](_0x5c260c[_0x531b9e(0x144)]),expect(_0xf163e3['isConnected']())['toBe'](![]),expect(_0xf163e3['getSessionId']())['toBe'](null);const _0x41ba94=_0xf163e3[_0x531b9e(0x175)]();expect(_0x41ba94)['toHaveProperty'](_0x531b9e(0x170)),expect(_0x41ba94)[_0x531b9e(0x174)](_0x531b9e(0x13d)),expect(_0x41ba94)['toHaveProperty']('reconnectAttempts'),expect(_0x41ba94)['toHaveProperty'](_0x531b9e(0x171)),expect(_0x41ba94)[_0x531b9e(0x174)](_0x531b9e(0x16a));}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0xd3cf6e=_0x1a013b,{MessageRouter:_0xa2e71f}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x3e0fbe}=await import(_0xd3cf6e(0x14b)),_0x2a5e31=new _0x3e0fbe('localhost',0x1f90),_0x3475d3=new _0xa2e71f(_0x2a5e31),_0x496cea=()=>{};expect(_0x3475d3[_0xd3cf6e(0x14f)]('test-message'))['toBe'](![]),_0x3475d3['registerHandler'](_0xd3cf6e(0x159),_0x496cea),expect(_0x3475d3[_0xd3cf6e(0x14f)](_0xd3cf6e(0x159)))['toBe'](!![]),_0x3475d3['unregisterHandler'](_0xd3cf6e(0x159)),expect(_0x3475d3[_0xd3cf6e(0x14f)](_0xd3cf6e(0x159)))[_0xd3cf6e(0x162)](![]);}),test(_0x1a013b(0x153),async()=>{const _0x28ab82=_0x1a013b,{loggingMiddleware:_0x47907a,timestampMiddleware:_0x46e24e,filterMiddleware:_0x79b11b}=await import(_0x28ab82(0x14d)),_0x511c48=_0x47907a();expect(typeof _0x511c48)[_0x28ab82(0x162)](_0x28ab82(0x15b));const _0x797689=_0x46e24e();expect(typeof _0x797689)['toBe'](_0x28ab82(0x15b));const _0x326865={'type':_0x28ab82(0x17b)},_0x46e577=_0x797689(_0x326865);expect(_0x46e577)['toHaveProperty'](_0x28ab82(0x15c)),expect(_0x46e577['type'])['toBe']('test');const _0x29a7fb=_0x79b11b(['allowed-type']);expect(typeof _0x29a7fb)['toBe'](_0x28ab82(0x15b)),expect(_0x29a7fb({'type':'allowed-type'}))['toBeTruthy'](),expect(_0x29a7fb({'type':_0x28ab82(0x178)}))['toBe'](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x37b452=_0x1a013b,_0x364916=await import(_0x37b452(0x176));expect(typeof _0x364916[_0x37b452(0x14a)][_0x37b452(0x169)])['toBe']('number'),expect(typeof _0x364916[_0x37b452(0x14a)]['WEBSOCKET_PING_INTERVAL'])['toBe']('number'),expect(typeof _0x364916[_0x37b452(0x165)]['DEFAULT_PORT'])[_0x37b452(0x162)](_0x37b452(0x17e)),expect(typeof _0x364916['NETWORK']['MAX_RETRIES'])['toBe'](_0x37b452(0x17e)),expect(typeof _0x364916['NETWORK']['HTTP_TIMEOUT'])[_0x37b452(0x162)]('number'),expect(typeof _0x364916[_0x37b452(0x172)]['MESSAGE_LIST_HEIGHT'])[_0x37b452(0x162)](_0x37b452(0x17e)),expect(typeof _0x364916[_0x37b452(0x172)][_0x37b452(0x15a)])['toBe']('number');});}),describe(a0_0x5b3d06(0x14e),()=>{const _0x2413bc=a0_0x5b3d06;test(_0x2413bc(0x16e),async()=>{const _0xa79b8d=_0x2413bc,{MessageRouter:_0x3d3c1d}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x482fd7}=await import(_0xa79b8d(0x14b)),_0x599265=new _0x482fd7(_0xa79b8d(0x13e),0x1f90),_0x50c699=new _0x3d3c1d(_0x599265);expect(()=>{const _0x372a38=_0xa79b8d;_0x50c699['registerHandler'](_0x372a38(0x17b),'not-a-function');})['toThrow'](_0xa79b8d(0x157));}),test(_0x2413bc(0x17a),async()=>{const _0x2108ec=_0x2413bc,{MessageRouter:_0x32a9c3}=await import(_0x2108ec(0x14d)),{WebSocketManager:_0x1f34ce}=await import(_0x2108ec(0x14b)),_0x1cbf0c=new _0x1f34ce(_0x2108ec(0x13e),0x1f90),_0x34b063=new _0x32a9c3(_0x1cbf0c);expect(()=>{const _0x4e9738=_0x2108ec;_0x34b063[_0x4e9738(0x145)](_0x4e9738(0x164));})['toThrow'](_0x2108ec(0x152));}),test(_0x2413bc(0x168),async()=>{const _0x542b19=_0x2413bc,{SessionManager:_0x32651d}=await import('../../api/session.js'),_0x8e0134=new _0x32651d(_0x542b19(0x13e),0x1f90);_0x8e0134[_0x542b19(0x13d)]='test-123',_0x8e0134['projectDir']=_0x542b19(0x173),_0x8e0134[_0x542b19(0x147)]='test-key',_0x8e0134[_0x542b19(0x143)]={'openai':'key'},expect(_0x8e0134[_0x542b19(0x166)]())['toBe'](!![]),_0x8e0134['clear'](),expect(_0x8e0134[_0x542b19(0x13d)])[_0x542b19(0x162)](null),expect(_0x8e0134['projectDir'])[_0x542b19(0x162)](null),expect(_0x8e0134['loxiaApiKey'])['toBe'](null),expect(_0x8e0134[_0x542b19(0x143)])['toEqual']({}),expect(_0x8e0134[_0x542b19(0x166)]())[_0x542b19(0x162)](![]);}),test(_0x2413bc(0x13f),async()=>{const _0x2e7dd6=_0x2413bc,{WebSocketManager:_0x292c4d}=await import('../../api/websocket.js'),_0x5325c4=new _0x292c4d(_0x2e7dd6(0x13e),0x1f90),_0x50a6f9=_0x5325c4['generateRequestId'](),_0x8d6802=_0x5325c4['generateRequestId'](),_0x391fcc=_0x5325c4['generateRequestId']();expect(_0x50a6f9)['not'][_0x2e7dd6(0x162)](_0x8d6802),expect(_0x8d6802)[_0x2e7dd6(0x16c)]['toBe'](_0x391fcc),expect(_0x50a6f9)['not']['toBe'](_0x391fcc),expect(_0x50a6f9)['toMatch'](/^req-\d+-\d+$/),expect(_0x8d6802)['toMatch'](/^req-\d+-\d+$/),expect(_0x391fcc)['toMatch'](/^req-\d+-\d+$/);});});
|
|
1
|
+
(function(_0x2c4222,_0x3e2aa5){const _0x122e61=a0_0x382a,_0x8c4978=_0x2c4222();while(!![]){try{const _0x383788=-parseInt(_0x122e61(0x11e))/0x1*(-parseInt(_0x122e61(0x13f))/0x2)+-parseInt(_0x122e61(0x14a))/0x3*(-parseInt(_0x122e61(0x148))/0x4)+parseInt(_0x122e61(0x120))/0x5+-parseInt(_0x122e61(0x128))/0x6+parseInt(_0x122e61(0x136))/0x7*(parseInt(_0x122e61(0x10b))/0x8)+-parseInt(_0x122e61(0x130))/0x9+parseInt(_0x122e61(0x118))/0xa;if(_0x383788===_0x3e2aa5)break;else _0x8c4978['push'](_0x8c4978['shift']());}catch(_0x640ae8){_0x8c4978['push'](_0x8c4978['shift']());}}}(a0_0x1f91,0x935d6));import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';import{dirname,join}from'path';function a0_0x382a(_0x19cbe0,_0x28c7ba){_0x19cbe0=_0x19cbe0-0x105;const _0x1f91a7=a0_0x1f91();let _0x382a09=_0x1f91a7[_0x19cbe0];if(a0_0x382a['IjnGlN']===undefined){var _0x3c6525=function(_0x169c98){const _0x18eedc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xf1499e='',_0x3b4280='';for(let _0x43af0b=0x0,_0x1d82b1,_0x5468b3,_0x1807e7=0x0;_0x5468b3=_0x169c98['charAt'](_0x1807e7++);~_0x5468b3&&(_0x1d82b1=_0x43af0b%0x4?_0x1d82b1*0x40+_0x5468b3:_0x5468b3,_0x43af0b++%0x4)?_0xf1499e+=String['fromCharCode'](0xff&_0x1d82b1>>(-0x2*_0x43af0b&0x6)):0x0){_0x5468b3=_0x18eedc['indexOf'](_0x5468b3);}for(let _0x353812=0x0,_0x51272b=_0xf1499e['length'];_0x353812<_0x51272b;_0x353812++){_0x3b4280+='%'+('00'+_0xf1499e['charCodeAt'](_0x353812)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b4280);};a0_0x382a['PabCWv']=_0x3c6525,a0_0x382a['JqmnYa']={},a0_0x382a['IjnGlN']=!![];}const _0x37ddcf=_0x1f91a7[0x0],_0x10eb3b=_0x19cbe0+_0x37ddcf,_0x5ad37b=a0_0x382a['JqmnYa'][_0x10eb3b];return!_0x5ad37b?(_0x382a09=a0_0x382a['PabCWv'](_0x382a09),a0_0x382a['JqmnYa'][_0x10eb3b]=_0x382a09):_0x382a09=_0x5ad37b,_0x382a09;}function a0_0x1f91(){const _0xe53363=['Dg9iyxzLuhjVCgvYDhK','q09ntuforfm','mJqZnMvPr29ZtW','A2v5','mJa0owrLBM51Ba','u2vZC2LVBK1HBMfNzxiGAgvSCgvYig1LDgHVzhmGD29YAW','Dg9uAhjVDW','tuvtu0fhrv9msvnux0HfsuDiva','veLnsu5h','reLtq09otKvdveve','CgvUzgLUz1jLCxvLC3rZ','CxvLDwvKtwvZC2fNzxm','v2vIu29JA2v0twfUywDLCIbOzwXWzxiGBwv0Ag9KCYb3B3jR','ohjgAhfjAq','Dg9nyxrJAa','tKvuv09ssW','CMvJB25Uzwn0qxr0zw1WDhm','CMvTB3zLtwLKzgXLD2fYzq','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbTAwrKBgv3yxjL','su1br0vFuKvtvuXu','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','CMvNAxn0zxjiyw5KBgvY','z2vUzxjHDgvszxf1zxn0swq','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','Bg9JywXOB3n0','ndK5ndK3mg1Ry1rZDW','Dg9czurLzMLUzwq','DgvZDc1TzxnZywDL','quDftLrFtu9erv9dsefor0ve','DMvUzg9Ys2v5C0nVDw50','vuLFreLnru5tsu9ouW','mvrsDfDhyq','Dg9czq','mZCYodqXnwD5C3rhAW','Bg94AwfbCgLlzxK','BwLKzgXLD2fYzq','DMvUzg9Ys2v5CW','u0LerujbuL9xsurusa','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','BgvUz3rO','lI4VlI4VyxbPl3nLC3nPB24UANm','ndy5nJu5nK5lEvj4sG','twvZC2fNzvjVDxrLCIbJyw4GCMvNAxn0zxiGyw5KihvUCMvNAxn0zxiGAgfUzgXLCNm','Dg9czuDYzwf0zxjuAgfU','BNvTyMvY','DgvZDa','DxjS','y2XLyxi','z2v0uhjVAMvJDerPCG','otC3mty0mLvsyvvhqW','DgvZDc1RzxK','AxnwywXPza','BM90lweTzNvUy3rPB24','Dg9fCxvHBa','zgLZy29UBMvJDgvK','mJK4mJm5ouDXzxnmEq','CMvJzwL2zwrbDa','AgfZsgfUzgXLCG','Dg9czvrYDxrOEq','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','ywXSB3DLzc10ExbL','BM90','tuvtu0fhrv9dt05gsuC','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLigHLBhbLCNmGy3jLyxrLihzHBgLKig1PzgrSzxDHCMu','nZy5oduYq3nSwhff','Cg9YDa','AgfZtg94AwflzxK','zNvUy3rPB24','C2vZC2LVBKLK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','Dw5YzwDPC3rLCKHHBMrSzxi'];a0_0x1f91=function(){return _0xe53363;};return a0_0x1f91();}const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x53adac=a0_0x382a,_0xf1499e=await import('../../config/constants.js');expect(_0xf1499e[_0x53adac(0x11d)])[_0x53adac(0x119)](),expect(_0xf1499e[_0x53adac(0x13d)])['toBeDefined'](),expect(_0xf1499e['PAGINATION'])['toBeDefined'](),expect(_0xf1499e[_0x53adac(0x106)])['toBeDefined'](),expect(_0xf1499e['NETWORK'])['toBeDefined'](),expect(_0xf1499e['CONNECTION_STATE'])[_0x53adac(0x119)](),expect(_0xf1499e['AGENT_MODE'])[_0x53adac(0x119)](),expect(_0xf1499e['WS_MESSAGE_TYPE'])[_0x53adac(0x119)](),expect(_0xf1499e['API_ENDPOINTS'])[_0x53adac(0x119)](),expect(_0xf1499e[_0x53adac(0x147)])[_0x53adac(0x119)](),expect(_0xf1499e[_0x53adac(0x10d)]['DEFAULT_HOST'])[_0x53adac(0x11f)](_0x53adac(0x117)),expect(_0xf1499e[_0x53adac(0x10d)]['DEFAULT_PORT'])['toBe'](0x1f90),expect(_0xf1499e['CONNECTION_STATE']['DISCONNECTED'])[_0x53adac(0x11f)](_0x53adac(0x135)),expect(_0xf1499e['CONNECTION_STATE']['CONNECTED'])['toBe']('connected');}),test('WebSocketManager class can be imported',async()=>{const _0x1fc2c2=a0_0x382a,{WebSocketManager:_0x3b4280}=await import('../../api/websocket.js');expect(_0x3b4280)[_0x1fc2c2(0x119)](),expect(typeof _0x3b4280)[_0x1fc2c2(0x11f)]('function');const _0x43af0b=new _0x3b4280(_0x1fc2c2(0x117),0x1f90);expect(_0x43af0b)['toBeDefined'](),expect(_0x43af0b['host'])[_0x1fc2c2(0x11f)]('localhost'),expect(_0x43af0b[_0x1fc2c2(0x140)])['toBe'](0x1f90),expect(_0x43af0b[_0x1fc2c2(0x12d)])[_0x1fc2c2(0x11f)]('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0x3ea2d8=a0_0x382a,{SessionManager:_0x1d82b1}=await import(_0x3ea2d8(0x127));expect(_0x1d82b1)['toBeDefined'](),expect(typeof _0x1d82b1)['toBe'](_0x3ea2d8(0x142));const _0x5468b3=new _0x1d82b1(_0x3ea2d8(0x117),0x1f90);expect(_0x5468b3)[_0x3ea2d8(0x119)](),expect(_0x5468b3['host'])['toBe']('localhost'),expect(_0x5468b3[_0x3ea2d8(0x140)])['toBe'](0x1f90),expect(_0x5468b3['baseUrl'])['toBe']('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x249220=a0_0x382a,{MessageRouter:_0x1807e7}=await import(_0x249220(0x144)),{WebSocketManager:_0x353812}=await import(_0x249220(0x113));expect(_0x1807e7)['toBeDefined'](),expect(typeof _0x1807e7)[_0x249220(0x11f)](_0x249220(0x142));const _0x51272b=new _0x353812(_0x249220(0x117),0x1f90),_0xdec79d=new _0x1807e7(_0x51272b);expect(_0xdec79d)['toBeDefined'](),expect(_0xdec79d['ws'])['toBe'](_0x51272b);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0xf3e203=a0_0x382a,{loggingMiddleware:_0x54748c,filterMiddleware:_0x56ec08,transformMiddleware:_0x58ce60,timestampMiddleware:_0xb68f58,validationMiddleware:_0x325257}=await import('../../api/messageRouter.js');expect(typeof _0x54748c)[_0xf3e203(0x11f)](_0xf3e203(0x142)),expect(typeof _0x56ec08)['toBe'](_0xf3e203(0x142)),expect(typeof _0x58ce60)[_0xf3e203(0x11f)](_0xf3e203(0x142)),expect(typeof _0xb68f58)['toBe']('function'),expect(typeof _0x325257)[_0xf3e203(0x11f)](_0xf3e203(0x142));}),test('useConnection hook can be imported',async()=>{const _0x8542d1=a0_0x382a,{useConnection:_0x2127c5,useConnectionStatus:_0x481b81}=await import('../../state/useConnection.js');expect(_0x2127c5)[_0x8542d1(0x119)](),expect(typeof _0x2127c5)[_0x8542d1(0x11f)](_0x8542d1(0x142)),expect(_0x481b81)['toBeDefined'](),expect(typeof _0x481b81)[_0x8542d1(0x11f)]('function');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x191ff8=a0_0x382a;test('WebSocketManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x318ea8=a0_0x382a,{WebSocketManager:_0x6999ae}=await import(_0x318ea8(0x113)),{CONNECTION_STATE:_0x268872}=await import('../../config/constants.js'),_0xdbce1e=new _0x6999ae('test-host',0x2382);expect(_0xdbce1e['state'])['toBe'](_0x268872[_0x318ea8(0x107)]),expect(_0xdbce1e['sessionId'])[_0x318ea8(0x11f)](null),expect(_0xdbce1e['messageQueue'])[_0x318ea8(0x134)]([]),expect(_0xdbce1e[_0x318ea8(0x10e)])['toBe'](0x0),expect(_0xdbce1e['shouldReconnect'])[_0x318ea8(0x11f)](!![]);}),test(_0x191ff8(0x13a),async()=>{const _0x4c7a9b=_0x191ff8,{SessionManager:_0x20b9f4}=await import(_0x4c7a9b(0x127)),_0x143513=new _0x20b9f4('test-host',0x2382);expect(_0x143513[_0x4c7a9b(0x143)])[_0x4c7a9b(0x11f)](null),expect(_0x143513['projectDir'])[_0x4c7a9b(0x11f)](null),expect(_0x143513[_0x4c7a9b(0x121)])[_0x4c7a9b(0x11f)](null),expect(_0x143513['vendorKeys'])['toEqual']({}),expect(_0x143513['isValid']())[_0x4c7a9b(0x11f)](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x345ed4=_0x191ff8,{MessageRouter:_0x536c1a}=await import(_0x345ed4(0x144)),{WebSocketManager:_0x277784}=await import(_0x345ed4(0x113)),{WS_MESSAGE_TYPE:_0x3f168f}=await import(_0x345ed4(0x110)),_0x2cf90a=new _0x277784(_0x345ed4(0x117),0x1f90),_0x5d6430=new _0x536c1a(_0x2cf90a);expect(_0x5d6430[_0x345ed4(0x138)](_0x3f168f['MESSAGE_ADDED']))[_0x345ed4(0x11f)](!![]),expect(_0x5d6430['hasHandler'](_0x3f168f[_0x345ed4(0x11b)]))['toBe'](!![]),expect(_0x5d6430['hasHandler'](_0x3f168f['EXECUTION_STOPPED']))['toBe'](!![]),expect(_0x5d6430['hasHandler'](_0x3f168f['COMPACTION_EVENT']))['toBe'](!![]),expect(_0x5d6430['hasHandler'](_0x3f168f[_0x345ed4(0x112)]))[_0x345ed4(0x11f)](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x3443a0=_0x191ff8,{MessageRouter:_0x2cd604}=await import(_0x3443a0(0x144)),{WebSocketManager:_0x570cdc}=await import('../../api/websocket.js'),_0x4153ae=new _0x570cdc('localhost',0x1f90),_0x4976f2=new _0x2cd604(_0x4153ae),_0x1505c9=_0x163f26=>_0x163f26;expect(_0x4976f2['middleware']['length'])['toBeGreaterThanOrEqual'](0x0),_0x4976f2['use'](_0x1505c9);const _0x10c0b7=_0x4976f2['middleware']['length'];expect(_0x10c0b7)[_0x3443a0(0x12a)](0x0),_0x4976f2[_0x3443a0(0x10f)](_0x1505c9),expect(_0x4976f2[_0x3443a0(0x122)][_0x3443a0(0x126)])[_0x3443a0(0x11f)](_0x10c0b7-0x1);}),test(_0x191ff8(0x14b),async()=>{const _0x3ca52b=_0x191ff8,{SessionManager:_0x2f6c61}=await import(_0x3ca52b(0x127)),_0xf45f9e=new _0x2f6c61('localhost',0x1f90);expect(_0xf45f9e['getSessionId']())[_0x3ca52b(0x11f)](null),expect(_0xf45f9e[_0x3ca52b(0x12f)]())['toBe'](null),expect(_0xf45f9e['isValid']())['toBe'](![]);const _0xceeb8=_0xf45f9e['getSessionInfo']();expect(_0xceeb8)['toHaveProperty']('sessionId'),expect(_0xceeb8)[_0x3ca52b(0x146)]('projectDir'),expect(_0xceeb8)[_0x3ca52b(0x146)](_0x3ca52b(0x141)),expect(_0xceeb8)[_0x3ca52b(0x146)](_0x3ca52b(0x11c));}),test(_0x191ff8(0x10a),async()=>{const _0x29f9dc=_0x191ff8,{WebSocketManager:_0x318c81}=await import(_0x29f9dc(0x113)),{CONNECTION_STATE:_0x44cb49}=await import('../../config/constants.js'),_0x1a8a6e=new _0x318c81('localhost',0x1f90);expect(_0x1a8a6e['getState']())[_0x29f9dc(0x11f)](_0x44cb49[_0x29f9dc(0x107)]),expect(_0x1a8a6e['isConnected']())[_0x29f9dc(0x11f)](![]),expect(_0x1a8a6e['getSessionId']())['toBe'](null);const _0x2abf07=_0x1a8a6e['getStats']();expect(_0x2abf07)[_0x29f9dc(0x146)]('state'),expect(_0x2abf07)['toHaveProperty']('sessionId'),expect(_0x2abf07)[_0x29f9dc(0x146)](_0x29f9dc(0x10e)),expect(_0x2abf07)[_0x29f9dc(0x146)](_0x29f9dc(0x109)),expect(_0x2abf07)['toHaveProperty'](_0x29f9dc(0x108));}),test(_0x191ff8(0x129),async()=>{const _0x1c609d=_0x191ff8,{MessageRouter:_0x4ec4e5}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x36e5ff}=await import('../../api/websocket.js'),_0x2ae412=new _0x36e5ff(_0x1c609d(0x117),0x1f90),_0xd8b798=new _0x4ec4e5(_0x2ae412),_0x201b56=()=>{};expect(_0xd8b798[_0x1c609d(0x138)](_0x1c609d(0x11a)))[_0x1c609d(0x11f)](![]),_0xd8b798[_0x1c609d(0x114)]('test-message',_0x201b56),expect(_0xd8b798[_0x1c609d(0x138)]('test-message'))['toBe'](!![]),_0xd8b798[_0x1c609d(0x145)](_0x1c609d(0x11a)),expect(_0xd8b798[_0x1c609d(0x138)]('test-message'))['toBe'](![]);}),test(_0x191ff8(0x13e),async()=>{const _0x248e06=_0x191ff8,{loggingMiddleware:_0x3b061a,timestampMiddleware:_0x36470e,filterMiddleware:_0x3812b5}=await import('../../api/messageRouter.js'),_0x1a0751=_0x3b061a();expect(typeof _0x1a0751)[_0x248e06(0x11f)](_0x248e06(0x142));const _0xbd1329=_0x36470e();expect(typeof _0xbd1329)['toBe'](_0x248e06(0x142));const _0x4430e2={'type':_0x248e06(0x12c)},_0x33d472=_0xbd1329(_0x4430e2);expect(_0x33d472)[_0x248e06(0x146)](_0x248e06(0x137)),expect(_0x33d472['type'])[_0x248e06(0x11f)](_0x248e06(0x12c));const _0xe2cb85=_0x3812b5([_0x248e06(0x13b)]);expect(typeof _0xe2cb85)['toBe']('function'),expect(_0xe2cb85({'type':_0x248e06(0x13b)}))[_0x248e06(0x139)](),expect(_0xe2cb85({'type':'blocked-type'}))[_0x248e06(0x11f)](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x4f5f1b=_0x191ff8,_0x30c0c7=await import('../../config/constants.js');expect(typeof _0x30c0c7[_0x4f5f1b(0x106)]['WEBSOCKET_RECONNECT_DELAY'])[_0x4f5f1b(0x11f)]('number'),expect(typeof _0x30c0c7[_0x4f5f1b(0x106)]['WEBSOCKET_PING_INTERVAL'])[_0x4f5f1b(0x11f)](_0x4f5f1b(0x12b)),expect(typeof _0x30c0c7[_0x4f5f1b(0x10d)]['DEFAULT_PORT'])['toBe']('number'),expect(typeof _0x30c0c7[_0x4f5f1b(0x10d)]['MAX_RETRIES'])[_0x4f5f1b(0x11f)](_0x4f5f1b(0x12b)),expect(typeof _0x30c0c7['NETWORK']['HTTP_TIMEOUT'])['toBe']('number'),expect(typeof _0x30c0c7['UI_DIMENSIONS'][_0x4f5f1b(0x105)])[_0x4f5f1b(0x11f)]('number'),expect(typeof _0x30c0c7['UI_DIMENSIONS'][_0x4f5f1b(0x124)])[_0x4f5f1b(0x11f)]('number');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Error\x20Handling',()=>{const _0x1b2883=a0_0x382a;test('MessageRouter\x20throws\x20on\x20invalid\x20handler',async()=>{const _0x393557=a0_0x382a,{MessageRouter:_0x4f3bc9}=await import(_0x393557(0x144)),{WebSocketManager:_0xed2221}=await import('../../api/websocket.js'),_0x5ccf76=new _0xed2221('localhost',0x1f90),_0x12149b=new _0x4f3bc9(_0x5ccf76);expect(()=>{const _0x20373e=_0x393557;_0x12149b[_0x20373e(0x114)]('test',_0x20373e(0x133));})[_0x393557(0x14c)]('Handler\x20must\x20be\x20a\x20function');}),test(_0x1b2883(0x111),async()=>{const _0x350ec3=_0x1b2883,{MessageRouter:_0x52a83b}=await import(_0x350ec3(0x144)),{WebSocketManager:_0x4cf8e8}=await import(_0x350ec3(0x113)),_0x6e5e54=new _0x4cf8e8('localhost',0x1f90),_0x129b53=new _0x52a83b(_0x6e5e54);expect(()=>{_0x129b53['use']('not-a-function');})['toThrow']('Middleware\x20must\x20be\x20a\x20function');}),test(_0x1b2883(0x125),async()=>{const _0x4dd5d7=_0x1b2883,{SessionManager:_0x460442}=await import(_0x4dd5d7(0x127)),_0x3b288b=new _0x460442(_0x4dd5d7(0x117),0x1f90);_0x3b288b['sessionId']='test-123',_0x3b288b['projectDir']='/test/dir',_0x3b288b[_0x4dd5d7(0x121)]=_0x4dd5d7(0x131),_0x3b288b[_0x4dd5d7(0x123)]={'openai':_0x4dd5d7(0x149)},expect(_0x3b288b[_0x4dd5d7(0x132)]())[_0x4dd5d7(0x11f)](!![]),_0x3b288b[_0x4dd5d7(0x12e)](),expect(_0x3b288b['sessionId'])[_0x4dd5d7(0x11f)](null),expect(_0x3b288b['projectDir'])['toBe'](null),expect(_0x3b288b['loxiaApiKey'])['toBe'](null),expect(_0x3b288b[_0x4dd5d7(0x123)])['toEqual']({}),expect(_0x3b288b[_0x4dd5d7(0x132)]())['toBe'](![]);}),test(_0x1b2883(0x116),async()=>{const _0x5dcac7=_0x1b2883,{WebSocketManager:_0x3810cb}=await import('../../api/websocket.js'),_0x4beecb=new _0x3810cb(_0x5dcac7(0x117),0x1f90),_0x46132a=_0x4beecb['generateRequestId'](),_0x443efd=_0x4beecb[_0x5dcac7(0x115)](),_0x56584d=_0x4beecb[_0x5dcac7(0x115)]();expect(_0x46132a)[_0x5dcac7(0x13c)][_0x5dcac7(0x11f)](_0x443efd),expect(_0x443efd)[_0x5dcac7(0x13c)]['toBe'](_0x56584d),expect(_0x46132a)['not']['toBe'](_0x56584d),expect(_0x46132a)['toMatch'](/^req-\d+-\d+$/),expect(_0x443efd)[_0x5dcac7(0x10c)](/^req-\d+-\d+$/),expect(_0x56584d)[_0x5dcac7(0x10c)](/^req-\d+-\d+$/);});});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x5f4e(){const _0x48bf61=['Dg9czq','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','AgfZsgfUzgXLCG','vvnfuG','zgvMyxvSDa','BNvTyMvY','u1Ltvevn','mtDywer5u2u','Dg9czuXLC3nuAgfUt3jfCxvHBa','zNvUy3rPB24','mte4nZC0EMTNsuD0','tufyx01fu1nbr0vFtevor1ri','tufyx01fu1nbr0vtx0rju1bmqvK','ywDLBNqTCMvZCg9UC2u','mZu4mdC0nKv1yKXmza','zxHLy3v0Aw9Ux3n0B3bWzwq','twvZC2fNzsbnyw5Hz2vTzw50ic0GqvbjievUzhbVAw50CYbwywXPzgf0Aw9U','twvZC2fNzvjVDxrLCIbOyxmGBwvZC2fNzsbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','tuvtu0fhrv9st0XfignVBNn0yw50CYbHCMuGzgvMAw5Lza','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','Dg9czuDYzwf0zxjuAgfU','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','nZmXnJu3me93swfIvW','mZy4nZqXohPzrNvXCG','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','BwvZC2fNzv9HzgrLza','tuvtu0fhrv9brerfra','mJrmyxboCwm','lI4VlI4VyxbPl3nLC3nPB24UANm','u1Ltvevnx05pveLgsunbveLptG','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','rvHfq1vusu9ox1nut1bqruq','mZyWCKz0yM95','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','qvntsvnuqu5u','t1jdsevtvfjbve9s','Dg9nyxrJAa','tufyx1bbr0vFu0LArq','mZe0nJbzqwTbz3a','DxnLtwvZC2fNzxmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','mZqYmJa2nJb5z1LYqwq','Bg9JywXOB3n0','ywXS','uefhrv9tsvPf','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','Dg9czurLzMLUzwq','nZK2ntG1nu1VyunVtG','BwLU','quDftLrFtu9erv9dsefor0ve','BgvUz3rO','Dg9mB3DLCKnHC2u','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','twvZC2fNzsbbueKGzw5KCg9PBNrZigzVBgXVDYbsrvnuzNvSihbHDhrLCM4','CMvWzwf0','DxnLtwvZC2fNzxm'];a0_0x5f4e=function(){return _0x48bf61;};return a0_0x5f4e();}const a0_0x346684=a0_0x3c01;(function(_0x2db131,_0x4f9680){const _0xf2fe3c=a0_0x3c01,_0x106a17=_0x2db131();while(!![]){try{const _0x25dd82=-parseInt(_0xf2fe3c(0xeb))/0x1*(-parseInt(_0xf2fe3c(0xee))/0x2)+parseInt(_0xf2fe3c(0x106))/0x3*(parseInt(_0xf2fe3c(0x10c))/0x4)+-parseInt(_0xf2fe3c(0xfc))/0x5+-parseInt(_0xf2fe3c(0xf2))/0x6+-parseInt(_0xf2fe3c(0xfd))/0x7*(parseInt(_0xf2fe3c(0x101))/0x8)+-parseInt(_0xf2fe3c(0xdb))/0x9+parseInt(_0xf2fe3c(0x10e))/0xa;if(_0x25dd82===_0x4f9680)break;else _0x106a17['push'](_0x106a17['shift']());}catch(_0x40b88f){_0x106a17['push'](_0x106a17['shift']());}}}(a0_0x5f4e,0xcf803));function a0_0x3c01(_0x496ab0,_0x386eaf){_0x496ab0=_0x496ab0-0xd8;const _0x5f4e97=a0_0x5f4e();let _0x3c01aa=_0x5f4e97[_0x496ab0];if(a0_0x3c01['NGmuBt']===undefined){var _0x53b113=function(_0x105f6c){const _0x59795f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x299422='',_0x4b6e9e='';for(let _0x11b8a9=0x0,_0xb84c00,_0x2cad55,_0x13ad4a=0x0;_0x2cad55=_0x105f6c['charAt'](_0x13ad4a++);~_0x2cad55&&(_0xb84c00=_0x11b8a9%0x4?_0xb84c00*0x40+_0x2cad55:_0x2cad55,_0x11b8a9++%0x4)?_0x299422+=String['fromCharCode'](0xff&_0xb84c00>>(-0x2*_0x11b8a9&0x6)):0x0){_0x2cad55=_0x59795f['indexOf'](_0x2cad55);}for(let _0x1be59e=0x0,_0x4feda7=_0x299422['length'];_0x1be59e<_0x4feda7;_0x1be59e++){_0x4b6e9e+='%'+('00'+_0x299422['charCodeAt'](_0x1be59e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4b6e9e);};a0_0x3c01['qvFDNR']=_0x53b113,a0_0x3c01['ukFacd']={},a0_0x3c01['NGmuBt']=!![];}const _0x216fa3=_0x5f4e97[0x0],_0x4dd997=_0x496ab0+_0x216fa3,_0x14512b=a0_0x3c01['ukFacd'][_0x4dd997];return!_0x14512b?(_0x3c01aa=a0_0x3c01['qvFDNR'](_0x3c01aa),a0_0x3c01['ukFacd'][_0x4dd997]=_0x3c01aa):_0x3c01aa=_0x14512b,_0x3c01aa;}import{describe,test,expect}from'@jest/globals';describe('Message\x20Management\x20-\x20Imports',()=>{test('useMessages hook can be imported',async()=>{const _0x96d46e=a0_0x3c01,{useMessages:_0x299422}=await import(_0x96d46e(0xd9));expect(_0x299422)['toBeDefined'](),expect(typeof _0x299422)[_0x96d46e(0xe4)](_0x96d46e(0xed));}),test('useMessages is default export',async()=>{const _0x450fd3=a0_0x3c01,module=await import('../../state/useMessages.js');expect(module['default'])['toBeDefined'](),expect(typeof module[_0x450fd3(0xe8)])[_0x450fd3(0xe4)]('function'),expect(module['default'])['toBe'](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x2b0765=a0_0x3c01,{useMessageCount:_0x4b6e9e}=await import(_0x2b0765(0xd9));expect(_0x4b6e9e)['toBeDefined'](),expect(typeof _0x4b6e9e)[_0x2b0765(0xe4)](_0x2b0765(0xed));});}),describe(a0_0x346684(0xf8),()=>{const _0x6172fa=a0_0x346684;test(_0x6172fa(0xf6),async()=>{const _0x42a302=_0x6172fa,{MESSAGE_ROLE:_0x11b8a9}=await import(_0x42a302(0x104));expect(_0x11b8a9)['toBeDefined'](),expect(_0x11b8a9[_0x42a302(0xe7)])['toBe']('user'),expect(_0x11b8a9['ASSISTANT'])[_0x42a302(0xe4)]('assistant'),expect(_0x11b8a9['SYSTEM'])[_0x42a302(0xe4)]('system');}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x1058ad=_0x6172fa,{MESSAGE_TYPE:_0xb84c00}=await import(_0x1058ad(0x104));expect(_0xb84c00)['toBeDefined'](),expect(_0xb84c00['USER_MESSAGE'])[_0x1058ad(0xe4)]('user-message'),expect(_0xb84c00['AGENT_RESPONSE'])[_0x1058ad(0xe4)](_0x1058ad(0xf1)),expect(_0xb84c00[_0x1058ad(0x103)])['toBe']('system-notification');}),test(_0x6172fa(0xe5),async()=>{const _0x2524f5=_0x6172fa,{MESSAGE_CONFIG:_0x2cad55}=await import('../../config/constants.js');expect(_0x2cad55)[_0x2524f5(0xda)](),expect(_0x2cad55['MAX_MESSAGE_LENGTH'])[_0x2524f5(0xda)](),expect(_0x2cad55['MAX_MESSAGES_DISPLAY'])['toBeDefined'](),expect(typeof _0x2cad55['MAX_MESSAGE_LENGTH'])[_0x2524f5(0xe4)](_0x2524f5(0xe9)),expect(typeof _0x2cad55['MAX_MESSAGES_DISPLAY'])[_0x2524f5(0xe4)](_0x2524f5(0xe9));}),test(_0x6172fa(0x112),async()=>{const _0x1461f6=_0x6172fa,{PAGINATION:_0x13ad4a}=await import('../../config/constants.js');expect(_0x13ad4a)[_0x1461f6(0xda)](),expect(_0x13ad4a['PAGE_SIZE'])[_0x1461f6(0xda)](),expect(_0x13ad4a[_0x1461f6(0x10b)])['toBeDefined'](),expect(typeof _0x13ad4a[_0x1461f6(0x111)])['toBe'](_0x1461f6(0xe9)),expect(typeof _0x13ad4a['MAX_PAGE_SIZE'])[_0x1461f6(0xe4)]('number');}),test(_0x6172fa(0xf9),async()=>{const _0xa4448f=_0x6172fa,{WS_MESSAGE_TYPE:_0x1be59e}=await import(_0xa4448f(0x104));expect(_0x1be59e)['toBeDefined'](),expect(_0x1be59e[_0xa4448f(0x100)])[_0xa4448f(0xe4)](_0xa4448f(0xff)),expect(_0x1be59e[_0xa4448f(0xdd)])['toBe']('agent_mode_changed'),expect(_0x1be59e[_0xa4448f(0x105)])[_0xa4448f(0xe4)](_0xa4448f(0xf3));});}),describe(a0_0x346684(0xfe),()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x4666e0=a0_0x3c01,{useMessages:_0x4feda7}=await import(_0x4666e0(0xd9)),{SessionManager:_0x3e98d1}=await import(_0x4666e0(0x102)),{MessageRouter:_0x1a72eb}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x1c6c96}=await import('../../api/websocket.js'),_0x2b73f6=new _0x3e98d1('localhost',0x1f90),_0x17b229=new _0x1c6c96('localhost',0x1f90),_0x307c66=new _0x1a72eb(_0x17b229);expect(_0x2b73f6)[_0x4666e0(0xda)](),expect(_0x307c66)[_0x4666e0(0xda)](),expect(typeof _0x4feda7)[_0x4666e0(0xe4)]('function');}),test('Full message management stack can be imported together',async()=>{const _0x464e80=a0_0x3c01,[_0x3d4b60,_0x4b591f,_0x3360df,_0x3a78b5,_0x544170]=await Promise[_0x464e80(0x110)]([import('../../config/constants.js'),import('../../api/session.js'),import(_0x464e80(0xfb)),import('../../api/messageRouter.js'),import(_0x464e80(0xd9))]);expect(_0x3d4b60['MESSAGE_ROLE'])['toBeDefined'](),expect(_0x3d4b60['MESSAGE_TYPE'])[_0x464e80(0xda)](),expect(_0x3d4b60['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x4b591f['SessionManager'])['toBeDefined'](),expect(_0x3360df['WebSocketManager'])[_0x464e80(0xda)](),expect(_0x3a78b5['MessageRouter'])['toBeDefined'](),expect(_0x544170[_0x464e80(0xe3)])['toBeDefined']();});}),describe(a0_0x346684(0xf4),()=>{const _0x45df26=a0_0x346684;test('Orchestrator\x20endpoint\x20can\x20be\x20used\x20for\x20message\x20operations',async()=>{const _0xeaaf6e=a0_0x3c01,{API_ENDPOINTS:_0x51affc}=await import(_0xeaaf6e(0x104));expect(_0x51affc['ORCHESTRATOR'])['toBeDefined'](),expect(_0x51affc[_0xeaaf6e(0x109)])[_0xeaaf6e(0xe4)]('/api/orchestrator');}),test(_0x45df26(0xe1),async()=>{const _0x31009b=_0x45df26,{API_ENDPOINTS:_0x1cb9d7}=await import('../../config/constants.js');expect(_0x1cb9d7[_0x31009b(0x109)])[_0x31009b(0x10a)](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x4c898e=a0_0x346684;test(_0x4c898e(0x10d),async()=>{const _0x10c1ad=_0x4c898e,{useMessages:_0x2622e9}=await import(_0x10c1ad(0xd9));expect(_0x2622e9[_0x10c1ad(0xde)])['toBe'](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const {useMessageCount:_0x3b17f3}=await import('../../state/useMessages.js');expect(_0x3b17f3['length'])['toBe'](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x489b02=a0_0x3c01,{MESSAGE_CONFIG:_0x276365}=await import('../../config/constants.js');expect(_0x276365[_0x489b02(0xef)])[_0x489b02(0xfa)](0x0),expect(_0x276365['MAX_MESSAGE_LENGTH'])['toBeLessThanOrEqual'](0x186a0),expect(_0x276365[_0x489b02(0xf0)])['toBeGreaterThan'](0x0),expect(_0x276365[_0x489b02(0xf0)])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x23cb0b=a0_0x3c01,{PAGINATION:_0x1c83c2}=await import(_0x23cb0b(0x104));expect(_0x1c83c2[_0x23cb0b(0x111)])['toBeGreaterThan'](0x0),expect(_0x1c83c2['PAGE_SIZE'])['toBeLessThanOrEqual'](0x3e8),expect(_0x1c83c2[_0x23cb0b(0x10b)])[_0x23cb0b(0xf7)](_0x1c83c2[_0x23cb0b(0x111)]);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x3a097a=a0_0x3c01,{MESSAGE_ROLE:_0x1437c7}=await import(_0x3a097a(0x104));expect(_0x1437c7[_0x3a097a(0xe7)])[_0x3a097a(0xe4)](_0x1437c7[_0x3a097a(0xe7)][_0x3a097a(0xdf)]()),expect(_0x1437c7['ASSISTANT'])['toBe'](_0x1437c7[_0x3a097a(0x108)]['toLowerCase']()),expect(_0x1437c7[_0x3a097a(0xea)])[_0x3a097a(0xe4)](_0x1437c7[_0x3a097a(0xea)][_0x3a097a(0xdf)]());});}),describe(a0_0x346684(0xe0),()=>{const _0x2692a7=a0_0x346684;test(_0x2692a7(0xf5),async()=>{const _0x2809ae=_0x2692a7,{MessageRouter:_0xe36a40}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x39dc57}=await import(_0x2809ae(0xfb)),{WS_MESSAGE_TYPE:_0x556585}=await import(_0x2809ae(0x104)),_0x2db172=new _0x39dc57(_0x2809ae(0x10f),0x1f90),_0x3f95d4=new _0xe36a40(_0x2db172);expect(_0x3f95d4[_0x2809ae(0xe6)](_0x556585['MESSAGE_ADDED']))[_0x2809ae(0xe4)](!![]),expect(_0x3f95d4[_0x2809ae(0xe6)](_0x556585[_0x2809ae(0xdd)]))['toBe'](!![]);});}),describe('Message\x20Management\x20-\x20Error\x20Handling',()=>{const _0xb57250=a0_0x346684;test(_0xb57250(0xd8),async()=>{const _0x3e659d=_0xb57250,{MESSAGE_CONFIG:_0x3c8db8}=await import('../../config/constants.js');expect(_0x3c8db8[_0x3e659d(0xef)])['toBeDefined'](),expect(typeof _0x3c8db8['MAX_MESSAGE_LENGTH'])['toBe']('number');const _0x45fe21='a'[_0x3e659d(0xe2)](_0x3c8db8[_0x3e659d(0xef)]+0x1);expect(_0x45fe21['length'])['toBeGreaterThan'](_0x3c8db8[_0x3e659d(0xef)]);}),test('MESSAGE_CONFIG\x20enforces\x20maximum\x20display\x20messages',async()=>{const _0x87a7d8=_0xb57250,{MESSAGE_CONFIG:_0x3bfd0d}=await import(_0x87a7d8(0x104));expect(_0x3bfd0d['MAX_MESSAGES_DISPLAY'])[_0x87a7d8(0xda)](),expect(typeof _0x3bfd0d[_0x87a7d8(0xf0)])[_0x87a7d8(0xe4)]('number'),expect(_0x3bfd0d['MAX_MESSAGES_DISPLAY'])['toBeGreaterThan'](0x0);});}),describe(a0_0x346684(0x107),()=>{test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x1c7d82=a0_0x3c01,{PAGINATION:_0x54f164}=await import(_0x1c7d82(0x104)),_0x51ac6f=0x0,_0x5d6d1b=_0x51ac6f*_0x54f164['PAGE_SIZE'];expect(_0x5d6d1b)['toBe'](0x0);const _0x178b8a=0x1,_0xc89684=_0x178b8a*_0x54f164['PAGE_SIZE'];expect(_0xc89684)['toBe'](_0x54f164[_0x1c7d82(0x111)]);}),test('PAGINATION\x20limit\x20does\x20not\x20exceed\x20MAX_PAGE_SIZE',async()=>{const _0x305571=a0_0x3c01,{PAGINATION:_0x2b364d}=await import(_0x305571(0x104)),_0x1ab011=0x3e8,_0x49f77e=Math[_0x305571(0xdc)](_0x1ab011,_0x2b364d['MAX_PAGE_SIZE']);expect(_0x49f77e)[_0x305571(0xec)](_0x2b364d['MAX_PAGE_SIZE']);});});
|
|
1
|
+
const a0_0x5dc8e7=a0_0x82b7;function a0_0x82b7(_0x540df0,_0x666939){_0x540df0=_0x540df0-0x8d;const _0x559a38=a0_0x559a();let _0x82b7f3=_0x559a38[_0x540df0];if(a0_0x82b7['SnijTS']===undefined){var _0x275fd1=function(_0xfd62bf){const _0x47b9f3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4f353b='',_0x524892='';for(let _0x10149e=0x0,_0x1c3877,_0x213be9,_0x171840=0x0;_0x213be9=_0xfd62bf['charAt'](_0x171840++);~_0x213be9&&(_0x1c3877=_0x10149e%0x4?_0x1c3877*0x40+_0x213be9:_0x213be9,_0x10149e++%0x4)?_0x4f353b+=String['fromCharCode'](0xff&_0x1c3877>>(-0x2*_0x10149e&0x6)):0x0){_0x213be9=_0x47b9f3['indexOf'](_0x213be9);}for(let _0x329183=0x0,_0x4451ef=_0x4f353b['length'];_0x329183<_0x4451ef;_0x329183++){_0x524892+='%'+('00'+_0x4f353b['charCodeAt'](_0x329183)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x524892);};a0_0x82b7['EGDkoI']=_0x275fd1,a0_0x82b7['aYWFLc']={},a0_0x82b7['SnijTS']=!![];}const _0x20f858=_0x559a38[0x0],_0x3c4cc2=_0x540df0+_0x20f858,_0x472164=a0_0x82b7['aYWFLc'][_0x3c4cc2];return!_0x472164?(_0x82b7f3=a0_0x82b7['EGDkoI'](_0x82b7f3),a0_0x82b7['aYWFLc'][_0x3c4cc2]=_0x82b7f3):_0x82b7f3=_0x472164,_0x82b7f3;}function a0_0x559a(){const _0x577a02=['u2vZC2LVBK1HBMfNzxi','quDftLrFuKvtue9ou0u','l2fWAs9VCMnOzxn0CMf0B3i','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','nwP3rffmuq','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','DxnLCI1TzxnZywDL','tuvtu0fhrv9brerfra','zNvUy3rPB24','mtrsugnQu3i','zgvMyxvSDa','tufyx01fu1nbr0vFtevor1ri','twvZC2fNzsbnyw5Hz2vTzw50ic0GqvbjievUzhbVAw50CYbwywXPzgf0Aw9U','nZyZmZCYCLPdu05Y','twvZC2fNzsbnyw5Hz2vTzw50ic0GrxjYB3iGsgfUzgXPBMC','vvnfuG','ywDLBNrFBw9Kzv9JAgfUz2vK','t1jdsevtvfjbve9s','uefhsu5bveLptIbSAw1PDcbKB2vZig5VDcbLEgnLzwqGtufyx1bbr0vFu0LArq','mZrRDhr5EwS','Dg9czq','Bg9JywXOB3n0','nte1mdmWmfLLDvHZAW','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','Dg9mB3DLCKnHC2u','Dg9czuXLC3nuAgfUt3jfCxvHBa','mJC2ndi1n0XdBurqBG','mJC1nJe0nfzNtwrtEq','tuvtu0fhrv9dt05gsuC','DxnLtwvZC2fNzxm','Dg9czurLzMLUzwq','ywXS','DxnLCG','uefhrv9tsvPf','mtqXmZvov0n4Avi','tufyx1bbr0vFu0LArq','mJeXmdfutM9iq1u','lI4VlI4VyxbPl3nLC3nPB24UANm','mty1ndHiwhzgsvC','ywDLBNqTCMvZCg9UC2u','qvntsvnuqu5u','CMvWzwf0','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','BNvTyMvY','rvHfq1vusu9ox1nut1bqruq','tufyx01fu1nbr0vtx0rju1bmqvK','BwLU','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw1WB3j0CW','oxjkwNzTAa','mte2ntm3nhnItM1sBG','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbKAxnWBgf5ig1LC3nHz2vZ','Dg9czuDYzwf0zxjuAgfU','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ'];a0_0x559a=function(){return _0x577a02;};return a0_0x559a();}(function(_0x4ee230,_0x317c79){const _0x5e3b24=a0_0x82b7,_0x32b4c3=_0x4ee230();while(!![]){try{const _0x2a66fe=-parseInt(_0x5e3b24(0x90))/0x1*(parseInt(_0x5e3b24(0xb8))/0x2)+-parseInt(_0x5e3b24(0xbf))/0x3+parseInt(_0x5e3b24(0xb2))/0x4*(parseInt(_0x5e3b24(0xa9))/0x5)+parseInt(_0x5e3b24(0x9f))/0x6*(-parseInt(_0x5e3b24(0xae))/0x7)+-parseInt(_0x5e3b24(0xc0))/0x8+-parseInt(_0x5e3b24(0x9e))/0x9*(-parseInt(_0x5e3b24(0xbb))/0xa)+parseInt(_0x5e3b24(0x8e))/0xb*(parseInt(_0x5e3b24(0x92))/0xc);if(_0x2a66fe===_0x317c79)break;else _0x32b4c3['push'](_0x32b4c3['shift']());}catch(_0x220ec4){_0x32b4c3['push'](_0x32b4c3['shift']());}}}(a0_0x559a,0x71788));import{describe,test,expect}from'@jest/globals';describe(a0_0x5dc8e7(0x9d),()=>{test('useMessages hook can be imported',async()=>{const _0x312085=a0_0x82b7,{useMessages:_0x4f353b}=await import('../../state/useMessages.js');expect(_0x4f353b)['toBeDefined'](),expect(typeof _0x4f353b)[_0x312085(0xb9)](_0x312085(0xad));}),test('useMessages is default export',async()=>{const _0x3bf772=a0_0x82b7,module=await import('../../state/useMessages.js');expect(module['default'])[_0x3bf772(0xc3)](),expect(typeof module[_0x3bf772(0xaf)])[_0x3bf772(0xb9)](_0x3bf772(0xad)),expect(module[_0x3bf772(0xaf)])['toBe'](module[_0x3bf772(0xc2)]);}),test('useMessageCount helper hook can be imported',async()=>{const _0x4cfa11=a0_0x82b7,{useMessageCount:_0x524892}=await import('../../state/useMessages.js');expect(_0x524892)['toBeDefined'](),expect(typeof _0x524892)['toBe'](_0x4cfa11(0xad));});}),describe('Message\x20Management\x20-\x20Constants',()=>{const _0x2bdf93=a0_0x5dc8e7;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x40fb56=a0_0x82b7,{MESSAGE_ROLE:_0x10149e}=await import('../../config/constants.js');expect(_0x10149e)[_0x40fb56(0xc3)](),expect(_0x10149e['USER'])['toBe'](_0x40fb56(0xc5)),expect(_0x10149e[_0x40fb56(0x94)])['toBe']('assistant'),expect(_0x10149e['SYSTEM'])['toBe']('system');}),test('MESSAGE_TYPE\x20constants\x20are\x20defined',async()=>{const _0x3acc81=a0_0x82b7,{MESSAGE_TYPE:_0x1c3877}=await import(_0x3acc81(0x9b));expect(_0x1c3877)[_0x3acc81(0xc3)](),expect(_0x1c3877['USER_MESSAGE'])[_0x3acc81(0xb9)](_0x3acc81(0xab)),expect(_0x1c3877[_0x3acc81(0xa6)])[_0x3acc81(0xb9)](_0x3acc81(0x93)),expect(_0x1c3877['SYSTEM_NOTIFICATION'])['toBe']('system-notification');}),test(_0x2bdf93(0x96),async()=>{const _0x315569=_0x2bdf93,{MESSAGE_CONFIG:_0x213be9}=await import(_0x315569(0x9b));expect(_0x213be9)['toBeDefined'](),expect(_0x213be9[_0x315569(0xb0)])[_0x315569(0xc3)](),expect(_0x213be9['MAX_MESSAGES_DISPLAY'])[_0x315569(0xc3)](),expect(typeof _0x213be9['MAX_MESSAGE_LENGTH'])[_0x315569(0xb9)]('number'),expect(typeof _0x213be9[_0x315569(0x99)])[_0x315569(0xb9)]('number');}),test(_0x2bdf93(0xa8),async()=>{const _0x154d46=_0x2bdf93,{PAGINATION:_0x171840}=await import('../../config/constants.js');expect(_0x171840)[_0x154d46(0xc3)](),expect(_0x171840[_0x154d46(0x8d)])[_0x154d46(0xc3)](),expect(_0x171840['MAX_PAGE_SIZE'])['toBeDefined'](),expect(typeof _0x171840[_0x154d46(0x8d)])['toBe']('number'),expect(typeof _0x171840[_0x154d46(0x8f)])[_0x154d46(0xb9)]('number');}),test(_0x2bdf93(0xbc),async()=>{const _0x54003d=_0x2bdf93,{WS_MESSAGE_TYPE:_0x329183}=await import(_0x54003d(0x9b));expect(_0x329183)['toBeDefined'](),expect(_0x329183[_0x54003d(0xac)])['toBe']('message_added'),expect(_0x329183['AGENT_MODE_CHANGED'])['toBe'](_0x54003d(0xb5)),expect(_0x329183[_0x54003d(0x98)])[_0x54003d(0xb9)]('execution_stopped');});}),describe(a0_0x5dc8e7(0x9c),()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x1b11d3=a0_0x82b7,{useMessages:_0x4451ef}=await import('../../state/useMessages.js'),{SessionManager:_0x325d7f}=await import(_0x1b11d3(0x91)),{MessageRouter:_0x1b81f3}=await import(_0x1b11d3(0xa2)),{WebSocketManager:_0xd91faa}=await import('../../api/websocket.js'),_0x93edce=new _0x325d7f('localhost',0x1f90),_0x2a8d64=new _0xd91faa('localhost',0x1f90),_0x3c0a43=new _0x1b81f3(_0x2a8d64);expect(_0x93edce)[_0x1b11d3(0xc3)](),expect(_0x3c0a43)['toBeDefined'](),expect(typeof _0x4451ef)['toBe']('function');}),test('Full message management stack can be imported together',async()=>{const _0x27fc23=a0_0x82b7,[_0x53ede1,_0x412852,_0x140c0d,_0x1c66ea,_0x491757]=await Promise[_0x27fc23(0xc4)]([import('../../config/constants.js'),import('../../api/session.js'),import('../../api/websocket.js'),import(_0x27fc23(0xa2)),import('../../state/useMessages.js')]);expect(_0x53ede1['MESSAGE_ROLE'])['toBeDefined'](),expect(_0x53ede1['MESSAGE_TYPE'])['toBeDefined'](),expect(_0x53ede1[_0x27fc23(0xc1)])[_0x27fc23(0xc3)](),expect(_0x412852[_0x27fc23(0xa5)])['toBeDefined'](),expect(_0x140c0d['WebSocketManager'])[_0x27fc23(0xc3)](),expect(_0x1c66ea['MessageRouter'])['toBeDefined'](),expect(_0x491757['useMessages'])[_0x27fc23(0xc3)]();});}),describe(a0_0x5dc8e7(0xb1),()=>{test('Orchestrator\x20endpoint\x20can\x20be\x20used\x20for\x20message\x20operations',async()=>{const _0x3cf44c=a0_0x82b7,{API_ENDPOINTS:_0x1e6abc}=await import('../../config/constants.js');expect(_0x1e6abc[_0x3cf44c(0xb6)])['toBeDefined'](),expect(_0x1e6abc['ORCHESTRATOR'])['toBe'](_0x3cf44c(0xa7));}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x4d5d6f=a0_0x82b7,{API_ENDPOINTS:_0x3381bf}=await import(_0x4d5d6f(0x9b));expect(_0x3381bf['ORCHESTRATOR'])['toMatch'](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const {useMessages:_0x949f84}=await import('../../state/useMessages.js');expect(_0x949f84['length'])['toBe'](0x3);}),test('useMessageCount\x20returns\x20expected\x20interface\x20shape',async()=>{const {useMessageCount:_0x1c99f9}=await import('../../state/useMessages.js');expect(_0x1c99f9['length'])['toBe'](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x329ad2=a0_0x82b7,{MESSAGE_CONFIG:_0x4103e4}=await import('../../config/constants.js');expect(_0x4103e4[_0x329ad2(0xb0)])[_0x329ad2(0xa1)](0x0),expect(_0x4103e4[_0x329ad2(0xb0)])[_0x329ad2(0xbe)](0x186a0),expect(_0x4103e4[_0x329ad2(0x99)])['toBeGreaterThan'](0x0),expect(_0x4103e4['MAX_MESSAGES_DISPLAY'])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x31a900=a0_0x82b7,{PAGINATION:_0xc1fe88}=await import(_0x31a900(0x9b));expect(_0xc1fe88[_0x31a900(0x8d)])['toBeGreaterThan'](0x0),expect(_0xc1fe88[_0x31a900(0x8d)])['toBeLessThanOrEqual'](0x3e8),expect(_0xc1fe88['MAX_PAGE_SIZE'])['toBeGreaterThanOrEqual'](_0xc1fe88['PAGE_SIZE']);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0xf17205=a0_0x82b7,{MESSAGE_ROLE:_0x3701e3}=await import(_0xf17205(0x9b));expect(_0x3701e3['USER'])[_0xf17205(0xb9)](_0x3701e3[_0xf17205(0xb4)][_0xf17205(0xbd)]()),expect(_0x3701e3[_0xf17205(0x94)])[_0xf17205(0xb9)](_0x3701e3['ASSISTANT'][_0xf17205(0xbd)]()),expect(_0x3701e3['SYSTEM'])['toBe'](_0x3701e3['SYSTEM']['toLowerCase']());});}),describe(a0_0x5dc8e7(0xa4),()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0x41a658=a0_0x82b7,{MessageRouter:_0xd09c1}=await import(_0x41a658(0xa2)),{WebSocketManager:_0x4ff0e8}=await import(_0x41a658(0xa3)),{WS_MESSAGE_TYPE:_0x4bd5ac}=await import('../../config/constants.js'),_0x2fb22a=new _0x4ff0e8(_0x41a658(0xba),0x1f90),_0xd28603=new _0xd09c1(_0x2fb22a);expect(_0xd28603['hasHandler'](_0x4bd5ac['MESSAGE_ADDED']))[_0x41a658(0xb9)](!![]),expect(_0xd28603['hasHandler'](_0x4bd5ac['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe(a0_0x5dc8e7(0xb3),()=>{const _0xd42305=a0_0x5dc8e7;test(_0xd42305(0xaa),async()=>{const _0x2c5c1c=_0xd42305,{MESSAGE_CONFIG:_0x305143}=await import('../../config/constants.js');expect(_0x305143[_0x2c5c1c(0xb0)])['toBeDefined'](),expect(typeof _0x305143[_0x2c5c1c(0xb0)])[_0x2c5c1c(0xb9)]('number');const _0x56e123='a'[_0x2c5c1c(0x95)](_0x305143['MAX_MESSAGE_LENGTH']+0x1);expect(_0x56e123['length'])[_0x2c5c1c(0xa1)](_0x305143['MAX_MESSAGE_LENGTH']);}),test(_0xd42305(0xa0),async()=>{const _0x2a06a3=_0xd42305,{MESSAGE_CONFIG:_0x1ce2fa}=await import('../../config/constants.js');expect(_0x1ce2fa['MAX_MESSAGES_DISPLAY'])[_0x2a06a3(0xc3)](),expect(typeof _0x1ce2fa[_0x2a06a3(0x99)])['toBe'](_0x2a06a3(0x97)),expect(_0x1ce2fa[_0x2a06a3(0x99)])['toBeGreaterThan'](0x0);});}),describe('Message\x20Management\x20-\x20Pagination\x20Logic',()=>{const _0x2dd89c=a0_0x5dc8e7;test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x4d68a6=a0_0x82b7,{PAGINATION:_0x1861e9}=await import(_0x4d68a6(0x9b)),_0x42d0af=0x0,_0x12d995=_0x42d0af*_0x1861e9[_0x4d68a6(0x8d)];expect(_0x12d995)[_0x4d68a6(0xb9)](0x0);const _0x43cb73=0x1,_0x551c9c=_0x43cb73*_0x1861e9[_0x4d68a6(0x8d)];expect(_0x551c9c)['toBe'](_0x1861e9['PAGE_SIZE']);}),test(_0x2dd89c(0xb7),async()=>{const _0x1d5e40=_0x2dd89c,{PAGINATION:_0x496ea4}=await import('../../config/constants.js'),_0x5b7f85=0x3e8,_0x1eb71d=Math[_0x1d5e40(0x9a)](_0x5b7f85,_0x496ea4['MAX_PAGE_SIZE']);expect(_0x1eb71d)['toBeLessThanOrEqual'](_0x496ea4[_0x1d5e40(0x8f)]);});});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x1ad9(_0x2ab70b,_0x4c3880){_0x2ab70b=_0x2ab70b-0x1d0;const _0x2c7344=a0_0x2c73();let _0x1ad974=_0x2c7344[_0x2ab70b];if(a0_0x1ad9['MIWgsK']===undefined){var _0x26a7a6=function(_0x92b0e7){const _0x1fe127='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1f65b8='',_0x37da75='';for(let _0x12569b=0x0,_0x4cf031,_0x40f6ca,_0x4b25ac=0x0;_0x40f6ca=_0x92b0e7['charAt'](_0x4b25ac++);~_0x40f6ca&&(_0x4cf031=_0x12569b%0x4?_0x4cf031*0x40+_0x40f6ca:_0x40f6ca,_0x12569b++%0x4)?_0x1f65b8+=String['fromCharCode'](0xff&_0x4cf031>>(-0x2*_0x12569b&0x6)):0x0){_0x40f6ca=_0x1fe127['indexOf'](_0x40f6ca);}for(let _0xf84616=0x0,_0x5edce0=_0x1f65b8['length'];_0xf84616<_0x5edce0;_0xf84616++){_0x37da75+='%'+('00'+_0x1f65b8['charCodeAt'](_0xf84616)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x37da75);};a0_0x1ad9['rILNTs']=_0x26a7a6,a0_0x1ad9['BFthUg']={},a0_0x1ad9['MIWgsK']=!![];}const _0x18d81d=_0x2c7344[0x0],_0x129ae7=_0x2ab70b+_0x18d81d,_0x345c0a=a0_0x1ad9['BFthUg'][_0x129ae7];return!_0x345c0a?(_0x1ad974=a0_0x1ad9['rILNTs'](_0x1ad974),a0_0x1ad9['BFthUg'][_0x129ae7]=_0x1ad974):_0x1ad974=_0x345c0a,_0x1ad974;}const a0_0x2b4148=a0_0x1ad9;(function(_0x5b9f7a,_0x3ffacc){const _0x1e3171=a0_0x1ad9,_0x27919a=_0x5b9f7a();while(!![]){try{const _0x31bf24=parseInt(_0x1e3171(0x20e))/0x1+-parseInt(_0x1e3171(0x1da))/0x2+parseInt(_0x1e3171(0x204))/0x3+parseInt(_0x1e3171(0x206))/0x4*(parseInt(_0x1e3171(0x1f0))/0x5)+parseInt(_0x1e3171(0x202))/0x6+-parseInt(_0x1e3171(0x1db))/0x7*(parseInt(_0x1e3171(0x1f9))/0x8)+-parseInt(_0x1e3171(0x215))/0x9;if(_0x31bf24===_0x3ffacc)break;else _0x27919a['push'](_0x27919a['shift']());}catch(_0x1db6f4){_0x27919a['push'](_0x27919a['shift']());}}}(a0_0x2c73,0xb4efd));function a0_0x2c73(){const _0xd6ccfe=['C2L6zq','l2fWAs90B29SCW','Dg9nyxrJAa','odGXnJaXnNL6uMrnAa','zNvUy3rPB24','nde1mJu5mw51CfD2rG','A2v5CW','mtjez2TmqMi','q09mtefct1jbveLptG','zMLSDgvY','zw5HyMXLza','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','DxnLvg9VBhm','DgvYBwLUywW','zMLSzsbJB250zw50CW','mti1ntCWmKjPs3nnAq','ve9ptf9dqvrfr09swsb2ywX1zxmGyxjLigXVD2vYy2fZzq','BMfTzq','D2vIx3nLyxjJAa','vg9VBhmGtwfUywDLBwvUDcaTifDLyLnVy2TLDcbfDMvUDcbiyw5KBgvYCW','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','zxHLy3v0zv9JB21Tyw5K','mte4mtq4mJjpwwT1twq','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CW','qu5btfLtsvm','Dg9dB250ywLU','AxnZDwvZ','ywrK','t1jdsevtvfjbve9s','ve9ptf9dqvrfr09swsbPBMnSDwrLCYbHBgWGBwfQB3iGy2f0zwDVCMLLCW','DMfSDwvZ','AgfZ','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','zxHLyY0X','z2v0','mJqXmdK1og9gvLDita','nde0ntyZoe1lswriEq','ywXS','zgvSzxrL','vg9VBhmGzw5KCg9PBNqGzM9SBg93CYbsrvnuzNvSihbHDhrLCM4','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','Dg9czurLzMLUzwq','D3jPDgvFzMLSzq','C2v0','vvrjteLuwq','Bg9JywXOB3n0','zxHLyY0Y','ve9ptf9dqvrfr09swsbJyw4GyMuGDxnLzcb0BYbMAwX0zxiGDg9VBhmGyNKGy2f0zwDVCNK','DxnLvg9VBhmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','yw5HBhL6zv9JB2rL','ve9ptfm','zgvMyxvSDa','CMvHzf9MAwXL','Dg9mB3DLCKnHC2u','vg9VBhmGtwfUywDLBwvUDcaTieLTCg9YDhm','u1Ltvevn','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CYbwywXPzgf0Aw9U','ntu3nJq1zwnfswnp','twvZC2fNzvjVDxrLCIbOyxmGDg9VBcbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','v2vIu29JA2v0twfUywDLCG','y2f0zwDVCNK','Dg9czq','zgvZy3jPChrPB24','qvvut01bveLptG','zMLSzq','BM93','mtzjtNnHvhK','Aw5JBhvKzxm','yw5HBhL6zq','BwfW','AgfZsgfUzgXLCG','BgvUz3rO'];a0_0x2c73=function(){return _0xd6ccfe;};return a0_0x2c73();}import{describe,test,expect}from'@jest/globals';describe(a0_0x2b4148(0x1ed),()=>{test('useTools hook can be imported',async()=>{const _0x29ef0c=a0_0x1ad9,{useTools:_0x1f65b8}=await import('../../state/useTools.js');expect(_0x1f65b8)[_0x29ef0c(0x1e0)](),expect(typeof _0x1f65b8)[_0x29ef0c(0x1f4)]('function');}),test('useTools is default export',async()=>{const _0x467164=a0_0x1ad9,module=await import(_0x467164(0x1df));expect(module['default'])['toBeDefined'](),expect(typeof module[_0x467164(0x1ea)])[_0x467164(0x1f4)](_0x467164(0x203)),expect(module[_0x467164(0x1ea)])[_0x467164(0x1f4)](module[_0x467164(0x20b)]);});}),describe(a0_0x2b4148(0x216),()=>{const _0x4ac7fc=a0_0x2b4148;test('TOOL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x1cbf26=a0_0x1ad9,{TOOL_CATEGORY:_0x37da75}=await import('../../config/constants.js');expect(_0x37da75)[_0x1cbf26(0x1e0)](),expect(_0x37da75[_0x1cbf26(0x1ee)])['toBeDefined'](),expect(_0x37da75[_0x1cbf26(0x1f6)])['toBeDefined'](),expect(_0x37da75['ANALYSIS'])[_0x1cbf26(0x1e0)](),expect(_0x37da75[_0x1cbf26(0x1e3)])[_0x1cbf26(0x1e0)](),expect(_0x37da75[_0x1cbf26(0x207)])['toBeDefined'](),expect(_0x37da75['AI'])[_0x1cbf26(0x1e0)]();}),test(_0x4ac7fc(0x20f),async()=>{const _0x33c6ed=_0x4ac7fc,{TOOL_CATEGORY:_0x12569b}=await import(_0x33c6ed(0x20a));expect(_0x12569b['SYSTEM'])[_0x33c6ed(0x1f4)](_0x12569b['SYSTEM']['toLowerCase']()),expect(_0x12569b[_0x33c6ed(0x1f6)])['toBe'](_0x12569b['AUTOMATION']['toLowerCase']()),expect(_0x12569b[_0x33c6ed(0x217)])[_0x33c6ed(0x1f4)](_0x12569b['ANALYSIS']['toLowerCase']()),expect(_0x12569b['UTILITY'])['toBe'](_0x12569b['UTILITY'][_0x33c6ed(0x1ec)]());}),test('Tools\x20API\x20endpoint\x20is\x20defined',async()=>{const _0x1001ff=_0x4ac7fc,{API_ENDPOINTS:_0x4cf031}=await import(_0x1001ff(0x20a));expect(_0x4cf031['TOOLS'])['toBeDefined'](),expect(_0x4cf031['TOOLS'])['toBe'](_0x1001ff(0x200));}),test('Orchestrator\x20endpoint\x20is\x20used\x20for\x20tool\x20operations',async()=>{const _0x3cc7ed=_0x4ac7fc,{API_ENDPOINTS:_0x40f6ca}=await import('../../config/constants.js');expect(_0x40f6ca[_0x3cc7ed(0x1d3)])['toBeDefined'](),expect(_0x40f6ca['ORCHESTRATOR'])['toBe']('/api/orchestrator');});}),describe('Tools\x20Management\x20-\x20Integration',()=>{test('useTools\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x4ab494=a0_0x1ad9,{useTools:_0x4b25ac}=await import('../../state/useTools.js'),{SessionManager:_0xf84616}=await import('../../api/session.js'),{MessageRouter:_0x5edce0}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x4c4bd3}=await import(_0x4ab494(0x1d7)),_0x2f5daf=new _0xf84616('localhost',0x1f90),_0x302bae=new _0x4c4bd3('localhost',0x1f90),_0x16f545=new _0x5edce0(_0x302bae);expect(_0x2f5daf)['toBeDefined'](),expect(_0x16f545)['toBeDefined'](),expect(typeof _0x4b25ac)[_0x4ab494(0x1f4)](_0x4ab494(0x203));}),test('Full tools management stack can be imported together',async()=>{const _0x38c43c=a0_0x1ad9,[_0xb96f48,_0x2c7477,_0x483d7d,_0x4ad2a3,_0x36baa4]=await Promise[_0x38c43c(0x1dc)]([import(_0x38c43c(0x20a)),import('../../api/session.js'),import(_0x38c43c(0x1d7)),import(_0x38c43c(0x213)),import('../../state/useTools.js')]);expect(_0xb96f48['TOOL_CATEGORY'])['toBeDefined'](),expect(_0xb96f48['API_ENDPOINTS'])[_0x38c43c(0x1e0)](),expect(_0x2c7477['SessionManager'])[_0x38c43c(0x1e0)](),expect(_0x483d7d[_0x38c43c(0x1f2)])[_0x38c43c(0x1e0)](),expect(_0x4ad2a3['MessageRouter'])['toBeDefined'](),expect(_0x36baa4['useTools'])[_0x38c43c(0x1e0)]();});}),describe('Tools\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x4498e2=a0_0x2b4148;test(_0x4498e2(0x1de),async()=>{const _0x28e91a=_0x4498e2,{API_ENDPOINTS:_0x295213}=await import('../../config/constants.js');expect(_0x295213['TOOLS'])[_0x28e91a(0x201)](/^\/api\//),expect(_0x295213[_0x28e91a(0x1e9)])[_0x28e91a(0x1f4)]('/api/tools');}),test('Tool\x20operations\x20use\x20orchestrator\x20endpoint',async()=>{const _0x3fa61d=_0x4498e2,{API_ENDPOINTS:_0x580d1b}=await import(_0x3fa61d(0x20a));expect(_0x580d1b[_0x3fa61d(0x1d3)])[_0x3fa61d(0x1e0)](),expect(_0x580d1b['ORCHESTRATOR'])['toBe']('/api/orchestrator');});}),describe('Tools\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x544872=a0_0x2b4148;test(_0x544872(0x1e7),async()=>{const _0x2adf59=_0x544872,{useTools:_0xc250e0}=await import('../../state/useTools.js');expect(_0xc250e0[_0x2adf59(0x1fe)])[_0x2adf59(0x1f4)](0x3);});}),describe(a0_0x2b4148(0x1ef),()=>{const _0x359351=a0_0x2b4148;test(_0x359351(0x1d4),async()=>{const _0x5e9d63=_0x359351,{TOOL_CATEGORY:_0x2bd41b}=await import('../../config/constants.js'),_0x52e11a=Object[_0x5e9d63(0x205)](_0x2bd41b);expect(_0x52e11a)['toContain']('SYSTEM'),expect(_0x52e11a)[_0x5e9d63(0x1d0)](_0x5e9d63(0x1f6)),expect(_0x52e11a)[_0x5e9d63(0x1d0)]('ANALYSIS'),expect(_0x52e11a)[_0x5e9d63(0x1d0)]('UTILITY'),expect(_0x52e11a)['toContain'](_0x5e9d63(0x207)),expect(_0x52e11a)[_0x5e9d63(0x1d0)]('AI');}),test('TOOL_CATEGORY\x20values\x20match\x20expected\x20format',async()=>{const _0x13795e=_0x359351,{TOOL_CATEGORY:_0x47e905}=await import(_0x13795e(0x20a));expect(_0x47e905[_0x13795e(0x1ee)])['toMatch'](/^[a-z_]+$/),expect(_0x47e905['AUTOMATION'])['toMatch'](/^[a-z_]+$/),expect(_0x47e905['ANALYSIS'])[_0x13795e(0x201)](/^[a-z_]+$/),expect(_0x47e905['UTILITY'])['toMatch'](/^[a-z_]+$/);});}),describe(a0_0x2b4148(0x212),()=>{const _0x591870=a0_0x2b4148;test(_0x591870(0x1f1),async()=>{const _0x5bb276=_0x591870,{MessageRouter:_0x3c5a7c}=await import(_0x5bb276(0x213)),{WebSocketManager:_0x5abaf6}=await import('../../api/websocket.js'),_0x5a38d0=new _0x5abaf6(_0x5bb276(0x1e4),0x1f90),_0xd2b099=new _0x3c5a7c(_0x5a38d0);expect(_0xd2b099['hasHandler'])['toBeDefined'](),expect(typeof _0xd2b099[_0x5bb276(0x1fd)])[_0x5bb276(0x1f4)]('function');});}),describe('Tools\x20Management\x20-\x20Tool\x20Categorization',()=>{const _0x48b7ae=a0_0x2b4148;test(_0x48b7ae(0x1e6),async()=>{const _0x15107e=_0x48b7ae,{TOOL_CATEGORY:_0x5e2139}=await import('../../config/constants.js'),_0x3e93b1=[{'name':_0x15107e(0x214),'category':_0x5e2139[_0x15107e(0x1ee)]},{'name':'terminal','category':_0x5e2139['SYSTEM']},{'name':_0x15107e(0x1e8),'category':_0x5e2139['ANALYSIS']},{'name':'web_search','category':_0x5e2139[_0x15107e(0x1e3)]},{'name':'ai_assistant','category':_0x5e2139['AI']}],_0xb641d7=_0x3e93b1['filter'](_0x229c00=>_0x229c00['category']===_0x5e2139[_0x15107e(0x1ee)]),_0x5b3478=_0x3e93b1[_0x15107e(0x208)](_0x3fe320=>_0x3fe320[_0x15107e(0x1f3)]===_0x5e2139['ANALYSIS']),_0x1ac668=_0x3e93b1[_0x15107e(0x208)](_0x19259a=>_0x19259a['category']===_0x5e2139[_0x15107e(0x1e3)]),_0x25886d=_0x3e93b1['filter'](_0x598315=>_0x598315['category']===_0x5e2139['AI']);expect(_0xb641d7[_0x15107e(0x1fe)])['toBe'](0x2),expect(_0x5b3478['length'])[_0x15107e(0x1f4)](0x1),expect(_0x1ac668[_0x15107e(0x1fe)])['toBe'](0x1),expect(_0x25886d[_0x15107e(0x1fe)])[_0x15107e(0x1f4)](0x1),expect(_0xb641d7[0x0]['name'])['toBe'](_0x15107e(0x214)),expect(_0x5b3478[0x0][_0x15107e(0x210)])['toBe'](_0x15107e(0x1e8));});}),describe('Tools\x20Management\x20-\x20Tool\x20Search',()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x32ba90=a0_0x1ad9,_0x96de5c=[{'name':'read_file','description':'Read\x20contents\x20of\x20a\x20file'},{'name':'write_file','description':'Write\x20data\x20to\x20a\x20file'},{'name':'analyze_code','description':'Perform\x20static\x20code\x20analysis'}],_0x385d20=_0x440f71=>{const _0x2d00a0=a0_0x1ad9,_0x3336de=_0x440f71['toLowerCase']();return _0x96de5c['filter'](_0x917fb9=>_0x917fb9['name']?.['toLowerCase']()[_0x2d00a0(0x1fa)](_0x3336de)||_0x917fb9[_0x2d00a0(0x1f5)]?.['toLowerCase']()[_0x2d00a0(0x1fa)](_0x3336de));},_0x54f3c0=_0x385d20(_0x32ba90(0x1f7));expect(_0x54f3c0[_0x32ba90(0x1fe)])[_0x32ba90(0x1f4)](0x2),expect(_0x54f3c0[_0x32ba90(0x1fc)](_0x4ae157=>_0x4ae157[_0x32ba90(0x210)]))[_0x32ba90(0x1d0)](_0x32ba90(0x1eb)),expect(_0x54f3c0['map'](_0x4ce52c=>_0x4ce52c['name']))[_0x32ba90(0x1d0)](_0x32ba90(0x1e1));const _0x4d733f=_0x385d20(_0x32ba90(0x1fb));expect(_0x4d733f['length'])['toBe'](0x1),expect(_0x4d733f[0x0]['name'])['toBe'](_0x32ba90(0x1e8));});}),describe('Tools\x20Management\x20-\x20Execution\x20State\x20Tracking',()=>{test('Execution\x20state\x20can\x20track\x20multiple\x20tools',async()=>{const _0x34ed04=a0_0x1ad9,_0x33fa77=new Set();_0x33fa77[_0x34ed04(0x1d2)](_0x34ed04(0x1eb)),_0x33fa77['add']('analyze_code'),expect(_0x33fa77[_0x34ed04(0x1d6)](_0x34ed04(0x1eb)))['toBe'](!![]),expect(_0x33fa77[_0x34ed04(0x1d6)](_0x34ed04(0x1e8)))[_0x34ed04(0x1f4)](!![]),expect(_0x33fa77['size'])[_0x34ed04(0x1f4)](0x2),_0x33fa77[_0x34ed04(0x1dd)](_0x34ed04(0x1eb)),expect(_0x33fa77[_0x34ed04(0x1d6)]('read_file'))[_0x34ed04(0x1f4)](![]),expect(_0x33fa77[_0x34ed04(0x1d6)]('analyze_code'))['toBe'](!![]),expect(_0x33fa77['size'])[_0x34ed04(0x1f4)](0x1);}),test('Tool\x20results\x20can\x20be\x20stored\x20by\x20execution\x20ID',async()=>{const _0x2d8f76=a0_0x1ad9,_0x53127c=new Map();_0x53127c['set']('exec-1',{'success':!![],'data':'file\x20contents'}),_0x53127c[_0x2d8f76(0x1e2)](_0x2d8f76(0x1e5),{'success':!![],'data':{'issues':[]}}),expect(_0x53127c[_0x2d8f76(0x1d9)]('exec-1'))[_0x2d8f76(0x1e0)](),expect(_0x53127c['get']('exec-1')['success'])[_0x2d8f76(0x1f4)](!![]),expect(_0x53127c['get'](_0x2d8f76(0x1d8))['data'])[_0x2d8f76(0x1f4)](_0x2d8f76(0x20d)),expect(_0x53127c['get'](_0x2d8f76(0x1e5)))['toBeDefined'](),expect(_0x53127c[_0x2d8f76(0x1d9)]('exec-2')['data'][_0x2d8f76(0x1d1)])['toEqual']([]),expect(_0x53127c[_0x2d8f76(0x1ff)])[_0x2d8f76(0x1f4)](0x2);});}),describe('Tools\x20Management\x20-\x20Tool\x20Caching',()=>{test('Tool\x20cache\x20supports\x20TTL-based\x20caching',async()=>{const _0x3c7b17=a0_0x1ad9,_0x10d9fe=0x927c0;let _0x97d29f=null,_0x1aec85=0x0;const _0x23c1e4=[{'name':'read_file'}];_0x97d29f=_0x23c1e4,_0x1aec85=Date['now']();const _0x3da5ef=Date['now'](),_0x57b734=_0x3da5ef-_0x1aec85<_0x10d9fe;expect(_0x57b734)['toBe'](!![]),expect(_0x97d29f)[_0x3c7b17(0x1f4)](_0x23c1e4);}),test('Tool\x20cache\x20expires\x20after\x20TTL',async()=>{const _0x4e9d1a=a0_0x1ad9,_0x2663f8=0x64;let _0x502cf1=null,_0x1c06ea=0x0;const _0x34f33b=[{'name':_0x4e9d1a(0x1eb)}];_0x502cf1=_0x34f33b,_0x1c06ea=Date[_0x4e9d1a(0x1f8)](),await new Promise(_0x26e135=>setTimeout(_0x26e135,0x96));const _0x553dc5=Date['now'](),_0xfbb362=_0x553dc5-_0x1c06ea<_0x2663f8;expect(_0xfbb362)['toBe'](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{test('Tools\x20can\x20be\x20filtered\x20by\x20multiple\x20criteria',async()=>{const _0x63443f=a0_0x1ad9,{TOOL_CATEGORY:_0xdf11ce}=await import(_0x63443f(0x20a)),_0x51f6fd=[{'name':_0x63443f(0x214),'category':_0xdf11ce[_0x63443f(0x1ee)],'enabled':!![]},{'name':_0x63443f(0x20c),'category':_0xdf11ce[_0x63443f(0x1ee)],'enabled':![]},{'name':'analyze_code','category':_0xdf11ce[_0x63443f(0x217)],'enabled':!![]}],_0x3d7b64=_0xc43b5d=>{const _0x1d4827=_0x63443f;let _0x5a531e=[..._0x51f6fd];return _0xc43b5d['category']&&(_0x5a531e=_0x5a531e[_0x1d4827(0x208)](_0x24598a=>_0x24598a[_0x1d4827(0x1f3)]===_0xc43b5d[_0x1d4827(0x1f3)])),_0xc43b5d['enabled']!==undefined&&(_0x5a531e=_0x5a531e['filter'](_0x16b4f9=>_0x16b4f9['enabled']===_0xc43b5d[_0x1d4827(0x209)])),_0x5a531e;},_0x1470c4=_0x3d7b64({'category':_0xdf11ce['SYSTEM']});expect(_0x1470c4[_0x63443f(0x1fe)])[_0x63443f(0x1f4)](0x2);const _0x1d60ee=_0x3d7b64({'enabled':!![]});expect(_0x1d60ee[_0x63443f(0x1fe)])['toBe'](0x2);const _0x540878=_0x3d7b64({'category':_0xdf11ce['SYSTEM'],'enabled':!![]});expect(_0x540878['length'])['toBe'](0x1),expect(_0x540878[0x0][_0x63443f(0x210)])['toBe']('execute_command');});}),describe('Tools\x20Management\x20-\x20Category\x20Counts',()=>{test('Category\x20counts\x20can\x20be\x20calculated',async()=>{const _0xea35b1=a0_0x1ad9,{TOOL_CATEGORY:_0x47f926}=await import(_0xea35b1(0x20a)),_0x13c1a4=[{'name':'execute_command','category':_0x47f926['SYSTEM']},{'name':_0xea35b1(0x20c),'category':_0x47f926[_0xea35b1(0x1ee)]},{'name':_0xea35b1(0x1e8),'category':_0x47f926['ANALYSIS']},{'name':_0xea35b1(0x211),'category':_0x47f926['UTILITY']}],_0x12ffcd=_0x3c3ea1=>{const _0x483174=_0xea35b1,_0x5c9d45={};for(const _0x52afea of Object[_0x483174(0x1d5)](_0x47f926)){_0x5c9d45[_0x52afea]=_0x3c3ea1[_0x483174(0x208)](_0x1cd9b2=>_0x1cd9b2[_0x483174(0x1f3)]===_0x52afea)['length'];}return _0x5c9d45;},_0x552955=_0x12ffcd(_0x13c1a4);expect(_0x552955[_0x47f926[_0xea35b1(0x1ee)]])['toBe'](0x2),expect(_0x552955[_0x47f926[_0xea35b1(0x217)]])[_0xea35b1(0x1f4)](0x1),expect(_0x552955[_0x47f926['UTILITY']])[_0xea35b1(0x1f4)](0x1),expect(_0x552955[_0x47f926['AUTOMATION']])[_0xea35b1(0x1f4)](0x0);});});
|
|
1
|
+
const a0_0x177d61=a0_0x35f7;function a0_0x39bb(){const _0x191895=['q2f0zwDVCNKGy291BNrZignHBIbIzsbJywXJDwXHDgvK','AxnZDwvZ','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','l2fWAs90B29SCW','mtq4mZu3BMzREvrX','vg9VBhmGtwfUywDLBwvUDcaTifDLyLnVy2TLDcbfDMvUDcbiyw5KBgvYCW','ve9ptf9dqvrfr09swsbJB25ZDgfUDhmGyxjLigrLzMLUzwq','A2v5CW','ve9ptf9dqvrfr09swsb2ywX1zxmGBwf0y2GGzxHWzwn0zwqGzM9YBwf0','y2f0zwDVCNK','ve9ptfm','twvZC2fNzvjVDxrLCG','DxnLvg9VBhmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','mJeZy1vqDeTL','zgvMyxvSDa','DMfSDwvZ','vvrjteLuwq','zNvUy3rPB24','zxHLyY0X','BgvUz3rO','mZe2mdCYve9Xvw5K','Aw5JBhvKzxm','vg9VBhmGqvbjigvUzhbVAw50igLZigrLzMLUzwq','yw5HBhL6zv9JB2rL','v3jPDguGzgf0ysb0BYbHigzPBgu','qvvut01bveLptG','mZu2nJaXnwXOzwrUEG','zMLSDgvY','ve9ptf9dqvrfr09swq','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','vg9VBhmGzw5KCg9PBNqGzM9SBg93CYbsrvnuzNvSihbHDhrLCM4','BwfW','DxnLvg9VBhm','lI4VlI4VyxbPl3nLC3nPB24UANm','mte5rMLqALfT','nJyWngTbquXwDW','q09mtefct1jbveLptG','CMvHzf9MAwXL','zgf0yq','vg9VBcbJywnOzsbZDxbWB3j0CYbuveWTyMfZzwqGy2fJAgLUzW','AgfZ','zw5HyMXLza','zMLSzsbJB250zw50CW','zxHLyY0Y','vg9VBhmGtwfUywDLBwvUDcaTieHVB2SGsw50zxjMywnLifzLCMLMAwnHDgLVBG','l2fWAs9VCMnOzxn0CMf0B3i','Dg9dB250ywLU','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGu2vHCMnO','Bg9JywXOB3n0','Dg9fCxvHBa','mJqXodKWmtjqzKzUA3e','Dg9czq','u1Ltvevn','z2v0','mJK1mZCYneT2sLnbvG','ntuXmtKWnK5WEfrLEG','ywXS','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','DxnLvg9VBhmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','C2L6zq','t1jdsevtvfjbve9s','uMvHzcbJB250zw50CYbVzIbHigzPBgu','C3vJy2vZCW','Dg9mB3DLCKnHC2u','vg9VBhmGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','BMfTzq','C2v0','D2vIx3nLyxjJAa','zgvSzxrL','BM93','qu5btfLtsvm','u2vZC2LVBK1HBMfNzxi','zMLSzq','D3jPDgvFzMLSzq','Dg9nyxrJAa','Dg9czurLzMLUzwq','zxHLy3v0zv9JB21Tyw5K'];a0_0x39bb=function(){return _0x191895;};return a0_0x39bb();}(function(_0xbb019a,_0x387c78){const _0x15e473=a0_0x35f7,_0x2be319=_0xbb019a();while(!![]){try{const _0x455d8f=-parseInt(_0x15e473(0x154))/0x1+-parseInt(_0x15e473(0x125))/0x2*(parseInt(_0x15e473(0x15d))/0x3)+-parseInt(_0x15e473(0x138))/0x4+-parseInt(_0x15e473(0x11c))/0x5+-parseInt(_0x15e473(0x139))/0x6+parseInt(_0x15e473(0x124))/0x7*(parseInt(_0x15e473(0x116))/0x8)+parseInt(_0x15e473(0x134))/0x9;if(_0x455d8f===_0x387c78)break;else _0x2be319['push'](_0x2be319['shift']());}catch(_0x3e30cd){_0x2be319['push'](_0x2be319['shift']());}}}(a0_0x39bb,0x9401d));import{describe,test,expect}from'@jest/globals';function a0_0x35f7(_0x20a316,_0x6aa1eb){_0x20a316=_0x20a316-0x110;const _0x39bb66=a0_0x39bb();let _0x35f7cd=_0x39bb66[_0x20a316];if(a0_0x35f7['JhFJuP']===undefined){var _0x5cd484=function(_0xae4ca6){const _0x28be5a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d115f='',_0x3adf6e='';for(let _0x7743bf=0x0,_0x14b5e8,_0x16944f,_0x46fc26=0x0;_0x16944f=_0xae4ca6['charAt'](_0x46fc26++);~_0x16944f&&(_0x14b5e8=_0x7743bf%0x4?_0x14b5e8*0x40+_0x16944f:_0x16944f,_0x7743bf++%0x4)?_0x2d115f+=String['fromCharCode'](0xff&_0x14b5e8>>(-0x2*_0x7743bf&0x6)):0x0){_0x16944f=_0x28be5a['indexOf'](_0x16944f);}for(let _0xd87d88=0x0,_0x5d2f58=_0x2d115f['length'];_0xd87d88<_0x5d2f58;_0xd87d88++){_0x3adf6e+='%'+('00'+_0x2d115f['charCodeAt'](_0xd87d88)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3adf6e);};a0_0x35f7['owsiuM']=_0x5cd484,a0_0x35f7['sjELHq']={},a0_0x35f7['JhFJuP']=!![];}const _0x4a637a=_0x39bb66[0x0],_0x16cd0f=_0x20a316+_0x4a637a,_0x1f975a=a0_0x35f7['sjELHq'][_0x16cd0f];return!_0x1f975a?(_0x35f7cd=a0_0x35f7['owsiuM'](_0x35f7cd),a0_0x35f7['sjELHq'][_0x16cd0f]=_0x35f7cd):_0x35f7cd=_0x1f975a,_0x35f7cd;}describe('Tools\x20Management\x20-\x20Imports',()=>{test('useTools hook can be imported',async()=>{const _0x44e10e=a0_0x35f7,{useTools:_0x2d115f}=await import('../../state/useTools.js');expect(_0x2d115f)[_0x44e10e(0x14e)](),expect(typeof _0x2d115f)[_0x44e10e(0x135)]('function');}),test('useTools is default export',async()=>{const _0xde935b=a0_0x35f7,module=await import('../../state/useTools.js');expect(module[_0xde935b(0x110)])['toBeDefined'](),expect(typeof module['default'])[_0xde935b(0x135)]('function'),expect(module[_0xde935b(0x110)])[_0xde935b(0x135)](module['useTools']);});}),describe('Tools\x20Management\x20-\x20Constants',()=>{const _0x1350b1=a0_0x35f7;test(_0x1350b1(0x156),async()=>{const _0x514b3d=_0x1350b1,{TOOL_CATEGORY:_0x3adf6e}=await import('../../config/constants.js');expect(_0x3adf6e)['toBeDefined'](),expect(_0x3adf6e['SYSTEM'])[_0x514b3d(0x14e)](),expect(_0x3adf6e[_0x514b3d(0x11b)])[_0x514b3d(0x14e)](),expect(_0x3adf6e['ANALYSIS'])['toBeDefined'](),expect(_0x3adf6e[_0x514b3d(0x112)])[_0x514b3d(0x14e)](),expect(_0x3adf6e[_0x514b3d(0x126)])['toBeDefined'](),expect(_0x3adf6e['AI'])[_0x514b3d(0x14e)]();}),test('TOOL_CATEGORY\x20values\x20are\x20lowercase',async()=>{const _0x4f4ec7=_0x1350b1,{TOOL_CATEGORY:_0x7743bf}=await import('../../config/constants.js');expect(_0x7743bf['SYSTEM'])['toBe'](_0x7743bf['SYSTEM']['toLowerCase']()),expect(_0x7743bf['AUTOMATION'])[_0x4f4ec7(0x135)](_0x7743bf[_0x4f4ec7(0x11b)]['toLowerCase']()),expect(_0x7743bf[_0x4f4ec7(0x149)])['toBe'](_0x7743bf[_0x4f4ec7(0x149)]['toLowerCase']()),expect(_0x7743bf[_0x4f4ec7(0x112)])['toBe'](_0x7743bf[_0x4f4ec7(0x112)][_0x4f4ec7(0x141)]());}),test(_0x1350b1(0x118),async()=>{const _0xe4e40e=_0x1350b1,{API_ENDPOINTS:_0x14b5e8}=await import(_0xe4e40e(0x143));expect(_0x14b5e8['TOOLS'])['toBeDefined'](),expect(_0x14b5e8['TOOLS'])['toBe'](_0xe4e40e(0x153));}),test('Orchestrator\x20endpoint\x20is\x20used\x20for\x20tool\x20operations',async()=>{const _0x449616=_0x1350b1,{API_ENDPOINTS:_0x16944f}=await import(_0x449616(0x143));expect(_0x16944f['ORCHESTRATOR'])['toBeDefined'](),expect(_0x16944f[_0x449616(0x13e)])[_0x449616(0x135)](_0x449616(0x12f));});}),describe(a0_0x177d61(0x142),()=>{const _0x44d911=a0_0x177d61;test(_0x44d911(0x15c),async()=>{const _0x110216=_0x44d911,{useTools:_0x46fc26}=await import(_0x110216(0x13b)),{SessionManager:_0xd87d88}=await import('../../api/session.js'),{MessageRouter:_0x5d2f58}=await import(_0x110216(0x152)),{WebSocketManager:_0x415a2f}=await import('../../api/websocket.js'),_0x3f805a=new _0xd87d88('localhost',0x1f90),_0x17347d=new _0x415a2f('localhost',0x1f90),_0x483c5d=new _0x5d2f58(_0x17347d);expect(_0x3f805a)[_0x110216(0x14e)](),expect(_0x483c5d)[_0x110216(0x14e)](),expect(typeof _0x46fc26)['toBe'](_0x110216(0x113));}),test('Full tools management stack can be imported together',async()=>{const _0x46d1d7=_0x44d911,[_0x3a0e60,_0x4bbb84,_0x3b8a84,_0x4efb31,_0x112630]=await Promise[_0x46d1d7(0x13a)]([import('../../config/constants.js'),import(_0x46d1d7(0x123)),import('../../api/websocket.js'),import(_0x46d1d7(0x152)),import('../../state/useTools.js')]);expect(_0x3a0e60[_0x46d1d7(0x11e)])[_0x46d1d7(0x14e)](),expect(_0x3a0e60['API_ENDPOINTS'])['toBeDefined'](),expect(_0x4bbb84[_0x46d1d7(0x14a)])[_0x46d1d7(0x14e)](),expect(_0x3b8a84['WebSocketManager'])['toBeDefined'](),expect(_0x4efb31[_0x46d1d7(0x15b)])[_0x46d1d7(0x14e)](),expect(_0x112630[_0x46d1d7(0x122)])[_0x46d1d7(0x14e)]();});}),describe('Tools\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x50ce47=a0_0x177d61;test(_0x50ce47(0x120),async()=>{const _0x520754=_0x50ce47,{API_ENDPOINTS:_0x403eb9}=await import(_0x520754(0x143));expect(_0x403eb9['TOOLS'])['toMatch'](/^\/api\//),expect(_0x403eb9[_0x520754(0x15a)])[_0x520754(0x135)](_0x520754(0x153));}),test('Tool\x20operations\x20use\x20orchestrator\x20endpoint',async()=>{const _0x5ba80d=_0x50ce47,{API_ENDPOINTS:_0x5534a4}=await import(_0x5ba80d(0x143));expect(_0x5534a4['ORCHESTRATOR'])[_0x5ba80d(0x14e)](),expect(_0x5534a4['ORCHESTRATOR'])['toBe'](_0x5ba80d(0x12f));});}),describe(a0_0x177d61(0x12e),()=>{const _0x1822bb=a0_0x177d61;test(_0x1822bb(0x13c),async()=>{const _0x32c8d6=_0x1822bb,{useTools:_0x4ab925}=await import(_0x32c8d6(0x13b));expect(_0x4ab925['length'])['toBe'](0x3);});}),describe('Tools\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x23f484=a0_0x177d61;test('TOOL_CATEGORY\x20includes\x20all\x20major\x20categories',async()=>{const _0x1193c3=a0_0x35f7,{TOOL_CATEGORY:_0x1ed54d}=await import('../../config/constants.js'),_0x168b55=Object[_0x1193c3(0x157)](_0x1ed54d);expect(_0x168b55)[_0x1193c3(0x130)](_0x1193c3(0x136)),expect(_0x168b55)[_0x1193c3(0x130)](_0x1193c3(0x11b)),expect(_0x168b55)[_0x1193c3(0x130)](_0x1193c3(0x149)),expect(_0x168b55)[_0x1193c3(0x130)]('UTILITY'),expect(_0x168b55)[_0x1193c3(0x130)]('COLLABORATION'),expect(_0x168b55)['toContain']('AI');}),test(_0x23f484(0x158),async()=>{const _0x336ed2=_0x23f484,{TOOL_CATEGORY:_0x9d49c1}=await import('../../config/constants.js');expect(_0x9d49c1[_0x336ed2(0x136)])['toMatch'](/^[a-z_]+$/),expect(_0x9d49c1[_0x336ed2(0x11b)])[_0x336ed2(0x14d)](/^[a-z_]+$/),expect(_0x9d49c1['ANALYSIS'])['toMatch'](/^[a-z_]+$/),expect(_0x9d49c1[_0x336ed2(0x112)])['toMatch'](/^[a-z_]+$/);});}),describe(a0_0x177d61(0x155),()=>{test('MessageRouter\x20has\x20tool\x20event\x20handlers\x20registered',async()=>{const _0x272eb7=a0_0x35f7,{MessageRouter:_0x54594c}=await import(_0x272eb7(0x152)),{WebSocketManager:_0x39b495}=await import('../../api/websocket.js'),_0xff9b7f=new _0x39b495(_0x272eb7(0x132),0x1f90),_0x1861e7=new _0x54594c(_0xff9b7f);expect(_0x1861e7['hasHandler'])[_0x272eb7(0x14e)](),expect(typeof _0x1861e7['hasHandler'])['toBe']('function');});}),describe('Tools\x20Management\x20-\x20Tool\x20Categorization',()=>{test('TOOL_CATEGORY\x20can\x20be\x20used\x20to\x20filter\x20tools\x20by\x20category',async()=>{const _0x301399=a0_0x35f7,{TOOL_CATEGORY:_0x5dbadd}=await import('../../config/constants.js'),_0x1693cf=[{'name':'execute_command','category':_0x5dbadd['SYSTEM']},{'name':'terminal','category':_0x5dbadd[_0x301399(0x136)]},{'name':_0x301399(0x119),'category':_0x5dbadd[_0x301399(0x149)]},{'name':_0x301399(0x146),'category':_0x5dbadd['UTILITY']},{'name':'ai_assistant','category':_0x5dbadd['AI']}],_0x536e42=_0x1693cf[_0x301399(0x11d)](_0x4d6de9=>_0x4d6de9['category']===_0x5dbadd['SYSTEM']),_0x2493b9=_0x1693cf['filter'](_0x66b3d3=>_0x66b3d3['category']===_0x5dbadd['ANALYSIS']),_0x15a604=_0x1693cf['filter'](_0x431c32=>_0x431c32['category']===_0x5dbadd[_0x301399(0x112)]),_0x161df7=_0x1693cf['filter'](_0xaa1bf5=>_0xaa1bf5[_0x301399(0x159)]===_0x5dbadd['AI']);expect(_0x536e42['length'])[_0x301399(0x135)](0x2),expect(_0x2493b9[_0x301399(0x115)])[_0x301399(0x135)](0x1),expect(_0x15a604['length'])[_0x301399(0x135)](0x1),expect(_0x161df7['length'])['toBe'](0x1),expect(_0x536e42[0x0][_0x301399(0x144)])['toBe'](_0x301399(0x14f)),expect(_0x2493b9[0x0]['name'])['toBe']('analyze_code');});}),describe(a0_0x177d61(0x131),()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x48fd29=a0_0x35f7,_0x24c2cc=[{'name':_0x48fd29(0x127),'description':_0x48fd29(0x13f)},{'name':_0x48fd29(0x14c),'description':_0x48fd29(0x11a)},{'name':_0x48fd29(0x119),'description':'Perform\x20static\x20code\x20analysis'}],_0x1bdbf6=_0xb41eba=>{const _0x42250c=_0x48fd29,_0xf00543=_0xb41eba['toLowerCase']();return _0x24c2cc[_0x42250c(0x11d)](_0x77cafc=>_0x77cafc[_0x42250c(0x144)]?.['toLowerCase']()[_0x42250c(0x117)](_0xf00543)||_0x77cafc['description']?.[_0x42250c(0x141)]()['includes'](_0xf00543));},_0x1f0ef7=_0x1bdbf6(_0x48fd29(0x14b));expect(_0x1f0ef7['length'])['toBe'](0x2),expect(_0x1f0ef7[_0x48fd29(0x121)](_0x3a8af0=>_0x3a8af0[_0x48fd29(0x144)]))['toContain']('read_file'),expect(_0x1f0ef7['map'](_0x453a03=>_0x453a03[_0x48fd29(0x144)]))['toContain']('write_file');const _0x5696f4=_0x1bdbf6('analyze');expect(_0x5696f4['length'])['toBe'](0x1),expect(_0x5696f4[0x0]['name'])['toBe']('analyze_code');});}),describe('Tools\x20Management\x20-\x20Execution\x20State\x20Tracking',()=>{test('Execution\x20state\x20can\x20track\x20multiple\x20tools',async()=>{const _0xb59757=a0_0x35f7,_0x27f27e=new Set();_0x27f27e['add']('read_file'),_0x27f27e['add'](_0xb59757(0x119)),expect(_0x27f27e['has']('read_file'))['toBe'](!![]),expect(_0x27f27e[_0xb59757(0x12a)](_0xb59757(0x119)))['toBe'](!![]),expect(_0x27f27e[_0xb59757(0x13d)])[_0xb59757(0x135)](0x2),_0x27f27e[_0xb59757(0x147)](_0xb59757(0x127)),expect(_0x27f27e[_0xb59757(0x12a)](_0xb59757(0x127)))[_0xb59757(0x135)](![]),expect(_0x27f27e['has']('analyze_code'))['toBe'](!![]),expect(_0x27f27e['size'])['toBe'](0x1);}),test('Tool\x20results\x20can\x20be\x20stored\x20by\x20execution\x20ID',async()=>{const _0x22c046=a0_0x35f7,_0x537ac5=new Map();_0x537ac5[_0x22c046(0x145)](_0x22c046(0x114),{'success':!![],'data':'file\x20contents'}),_0x537ac5[_0x22c046(0x145)](_0x22c046(0x12d),{'success':!![],'data':{'issues':[]}}),expect(_0x537ac5[_0x22c046(0x137)](_0x22c046(0x114)))['toBeDefined'](),expect(_0x537ac5[_0x22c046(0x137)]('exec-1')[_0x22c046(0x140)])['toBe'](!![]),expect(_0x537ac5[_0x22c046(0x137)](_0x22c046(0x114))['data'])[_0x22c046(0x135)](_0x22c046(0x12c)),expect(_0x537ac5[_0x22c046(0x137)](_0x22c046(0x12d)))[_0x22c046(0x14e)](),expect(_0x537ac5['get'](_0x22c046(0x12d))[_0x22c046(0x128)][_0x22c046(0x151)])[_0x22c046(0x133)]([]),expect(_0x537ac5[_0x22c046(0x13d)])[_0x22c046(0x135)](0x2);});}),describe(a0_0x177d61(0x11f),()=>{const _0x57ecab=a0_0x177d61;test(_0x57ecab(0x129),async()=>{const _0x19112d=_0x57ecab,_0x3de74e=0x927c0;let _0x538cd6=null,_0x37e401=0x0;const _0x375c1e=[{'name':_0x19112d(0x127)}];_0x538cd6=_0x375c1e,_0x37e401=Date[_0x19112d(0x148)]();const _0x561abc=Date[_0x19112d(0x148)](),_0x187ffa=_0x561abc-_0x37e401<_0x3de74e;expect(_0x187ffa)['toBe'](!![]),expect(_0x538cd6)[_0x19112d(0x135)](_0x375c1e);}),test('Tool\x20cache\x20expires\x20after\x20TTL',async()=>{const _0x422e59=_0x57ecab,_0x3751c8=0x64;let _0x37ea0a=null,_0x33f260=0x0;const _0x1d3d05=[{'name':'read_file'}];_0x37ea0a=_0x1d3d05,_0x33f260=Date[_0x422e59(0x148)](),await new Promise(_0x4021e9=>setTimeout(_0x4021e9,0x96));const _0xde03a1=Date[_0x422e59(0x148)](),_0x295656=_0xde03a1-_0x33f260<_0x3751c8;expect(_0x295656)['toBe'](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{test('Tools\x20can\x20be\x20filtered\x20by\x20multiple\x20criteria',async()=>{const _0x592ab1=a0_0x35f7,{TOOL_CATEGORY:_0x23609c}=await import(_0x592ab1(0x143)),_0xc26b41=[{'name':_0x592ab1(0x14f),'category':_0x23609c[_0x592ab1(0x136)],'enabled':!![]},{'name':'terminal','category':_0x23609c[_0x592ab1(0x136)],'enabled':![]},{'name':'analyze_code','category':_0x23609c[_0x592ab1(0x149)],'enabled':!![]}],_0x40f847=_0x1c0fd2=>{const _0xbe7369=_0x592ab1;let _0x2f29a6=[..._0xc26b41];return _0x1c0fd2[_0xbe7369(0x159)]&&(_0x2f29a6=_0x2f29a6['filter'](_0x31f942=>_0x31f942['category']===_0x1c0fd2['category'])),_0x1c0fd2['enabled']!==undefined&&(_0x2f29a6=_0x2f29a6['filter'](_0x35dff2=>_0x35dff2[_0xbe7369(0x12b)]===_0x1c0fd2[_0xbe7369(0x12b)])),_0x2f29a6;},_0x510535=_0x40f847({'category':_0x23609c['SYSTEM']});expect(_0x510535[_0x592ab1(0x115)])[_0x592ab1(0x135)](0x2);const _0x58f10a=_0x40f847({'enabled':!![]});expect(_0x58f10a['length'])[_0x592ab1(0x135)](0x2);const _0x441a86=_0x40f847({'category':_0x23609c['SYSTEM'],'enabled':!![]});expect(_0x441a86[_0x592ab1(0x115)])['toBe'](0x1),expect(_0x441a86[0x0][_0x592ab1(0x144)])['toBe'](_0x592ab1(0x14f));});}),describe('Tools\x20Management\x20-\x20Category\x20Counts',()=>{const _0x244ea0=a0_0x177d61;test(_0x244ea0(0x150),async()=>{const _0x38ebf5=_0x244ea0,{TOOL_CATEGORY:_0x4d0186}=await import('../../config/constants.js'),_0x59ccfd=[{'name':'execute_command','category':_0x4d0186['SYSTEM']},{'name':'terminal','category':_0x4d0186['SYSTEM']},{'name':'analyze_code','category':_0x4d0186['ANALYSIS']},{'name':'web_search','category':_0x4d0186['UTILITY']}],_0x22d3dd=_0x7f2572=>{const _0x273006=a0_0x35f7,_0x2e0e7a={};for(const _0x3eaa4e of Object[_0x273006(0x111)](_0x4d0186)){_0x2e0e7a[_0x3eaa4e]=_0x7f2572['filter'](_0x27a0d3=>_0x27a0d3['category']===_0x3eaa4e)['length'];}return _0x2e0e7a;},_0x14d5de=_0x22d3dd(_0x59ccfd);expect(_0x14d5de[_0x4d0186[_0x38ebf5(0x136)]])[_0x38ebf5(0x135)](0x2),expect(_0x14d5de[_0x4d0186['ANALYSIS']])[_0x38ebf5(0x135)](0x1),expect(_0x14d5de[_0x4d0186['UTILITY']])['toBe'](0x1),expect(_0x14d5de[_0x4d0186[_0x38ebf5(0x11b)]])['toBe'](0x0);});});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x294418=a0_0x41a9;(function(_0x2cb196,_0x11cc45){const _0x48b6ad=a0_0x41a9,_0x1c83ee=_0x2cb196();while(!![]){try{const _0x4fa122=-parseInt(_0x48b6ad(0xc0))/0x1+parseInt(_0x48b6ad(0xc9))/0x2+parseInt(_0x48b6ad(0xd2))/0x3*(parseInt(_0x48b6ad(0xd9))/0x4)+-parseInt(_0x48b6ad(0xbc))/0x5+parseInt(_0x48b6ad(0xcf))/0x6*(parseInt(_0x48b6ad(0xdc))/0x7)+parseInt(_0x48b6ad(0xcd))/0x8+-parseInt(_0x48b6ad(0xdb))/0x9;if(_0x4fa122===_0x11cc45)break;else _0x1c83ee['push'](_0x1c83ee['shift']());}catch(_0xafdaa1){_0x1c83ee['push'](_0x1c83ee['shift']());}}}(a0_0x25bf,0x808ad));function a0_0x41a9(_0x32a210,_0x1332da){_0x32a210=_0x32a210-0xbc;const _0x25bf67=a0_0x25bf();let _0x41a950=_0x25bf67[_0x32a210];if(a0_0x41a9['AyXPnl']===undefined){var _0xf6742b=function(_0x19b138){const _0x40127a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xfacad3='',_0x3605f5='';for(let _0x89f0cb=0x0,_0xc69cff,_0x3f0369,_0x51874b=0x0;_0x3f0369=_0x19b138['charAt'](_0x51874b++);~_0x3f0369&&(_0xc69cff=_0x89f0cb%0x4?_0xc69cff*0x40+_0x3f0369:_0x3f0369,_0x89f0cb++%0x4)?_0xfacad3+=String['fromCharCode'](0xff&_0xc69cff>>(-0x2*_0x89f0cb&0x6)):0x0){_0x3f0369=_0x40127a['indexOf'](_0x3f0369);}for(let _0x468812=0x0,_0x4dbd95=_0xfacad3['length'];_0x468812<_0x4dbd95;_0x468812++){_0x3605f5+='%'+('00'+_0xfacad3['charCodeAt'](_0x468812)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3605f5);};a0_0x41a9['ZaMjcQ']=_0xf6742b,a0_0x41a9['oCBvet']={},a0_0x41a9['AyXPnl']=!![];}const _0x4121fd=_0x25bf67[0x0],_0x495310=_0x32a210+_0x4121fd,_0x315fac=a0_0x41a9['oCBvet'][_0x495310];return!_0x315fac?(_0x41a950=a0_0x41a9['ZaMjcQ'](_0x41a950),a0_0x41a9['oCBvet'][_0x495310]=_0x41a950):_0x41a950=_0x315fac,_0x41a950;}function a0_0x25bf(){const _0x53d3a6=['C3rYAw5NAwz5','ufvu','Dg9tDhjPBMC','odaYntq5nM1hthfsza','Dg9vChbLCKnHC2u','mtK0odC2nffnsu1SDG','y2f0y2G','qMvHCMvYia','nJq4mJfnzfDnwMW','Cgf0y2G','yxbPs2v5','yMfZzvvYBa','C3rHDhvZvgv4Da','CMvXDwvZDa','zMv0y2G','ntjjrfn3Cuu','yM9KEq','mteYnZuZodbzDKrIBgK','mJfqAhDuvLO','mJq0odCYmffUEhzyBa','yNvPBgrizwfKzxjZ','Aw5JBhvKzxm','zgvSzxrL','nti3mdm3t2rwuNnH','z2v0qxbPs2v5','sfruuca','zxjYB3i','Bg9JywXOB3n0','BwvZC2fNzq','ue9tva','C3rHDhvZ','qxv0Ag9YAxPHDgLVBG','mta3ntmWmg1dzgXfwq'];a0_0x25bf=function(){return _0x53d3a6;};return a0_0x25bf();}import{ERROR_MESSAGE}from'../config/constants.js';export class ApiClient{constructor(_0xfacad3,_0x3605f5=null){const _0x5b42dd=a0_0x41a9;this[_0x5b42dd(0xd5)]=_0xfacad3,this['apiKey']=_0x3605f5;}['setApiKey'](_0x89f0cb){const _0x273185=a0_0x41a9;this[_0x273185(0xd4)]=_0x89f0cb;}[a0_0x294418(0xc1)](){return this['apiKey'];}['clearApiKey'](){const _0xd47ff6=a0_0x294418;this[_0xd47ff6(0xd4)]=null;}[a0_0x294418(0xbd)](_0xc69cff={}){const _0x44e50e=a0_0x294418,_0x3f0369={'Content-Type':'application/json',..._0xc69cff};return this[_0x44e50e(0xd4)]&&(_0x3f0369[_0x44e50e(0xc8)]=_0x44e50e(0xd1)+this['apiKey']),_0x3f0369;}async['request'](_0x51874b,_0x468812,_0x4dbd95={}){const _0x586aa2=a0_0x294418,{body:body=null,headers:headers={},query:query=null}=_0x4dbd95;let _0x3b97de=''+this['baseUrl']+_0x468812;if(query){const _0x458eef=new URLSearchParams(query)[_0x586aa2(0xcc)]();_0x3b97de+='?'+_0x458eef;}const _0x44ff8a={'method':_0x51874b,'headers':this['buildHeaders'](headers)};body&&[_0x586aa2(0xc6),_0x586aa2(0xcb),'PATCH']['includes'](_0x51874b[_0x586aa2(0xce)]())&&(_0x44ff8a[_0x586aa2(0xda)]=JSON[_0x586aa2(0xca)](body));try{const _0x287528=await fetch(_0x3b97de,_0x44ff8a),_0x2b2fc1=await _0x287528['json']()[_0x586aa2(0xd0)](()=>({}));if(!_0x287528['ok']){const _0x1c5e27=new Error(_0x2b2fc1[_0x586aa2(0xc3)]||_0x586aa2(0xc2)+_0x287528[_0x586aa2(0xc7)]+':\x20'+_0x287528[_0x586aa2(0xd6)]);_0x1c5e27[_0x586aa2(0xc7)]=_0x287528['status'],_0x1c5e27['response']=_0x2b2fc1;throw _0x1c5e27;}return _0x2b2fc1;}catch(_0x5b9414){if(_0x5b9414[_0x586aa2(0xc5)][_0x586aa2(0xbe)](_0x586aa2(0xd8))||_0x5b9414['name']==='TypeError'){const _0x3a989d=new Error(ERROR_MESSAGE['NETWORK_ERROR']+':\x20'+_0x5b9414['message']);_0x3a989d['originalError']=_0x5b9414;throw _0x3a989d;}throw _0x5b9414;}}async['get'](_0x1d705c,_0x28f9c0={}){const _0x14661d=a0_0x294418;return this[_0x14661d(0xd7)]('GET',_0x1d705c,_0x28f9c0);}async['post'](_0x924201,_0x29b649=null,_0x56e2f1={}){const _0x15994e=a0_0x294418;return this['request'](_0x15994e(0xc6),_0x924201,{..._0x56e2f1,'body':_0x29b649});}async['put'](_0x4e2b47,_0x2ec09e=null,_0x4ece33={}){const _0x3de804=a0_0x294418;return this[_0x3de804(0xd7)](_0x3de804(0xcb),_0x4e2b47,{..._0x4ece33,'body':_0x2ec09e});}async[a0_0x294418(0xd3)](_0x52e8af,_0x3dff5d=null,_0x52ef7c={}){return this['request']('PATCH',_0x52e8af,{..._0x52ef7c,'body':_0x3dff5d});}async[a0_0x294418(0xbf)](_0x533080,_0x4d5bc8={}){return this['request']('DELETE',_0x533080,_0x4d5bc8);}}export function createApiClient(_0x3cb4c1=a0_0x294418(0xc4),_0x3ccd06=0x1f90,_0x43b1bd=null){const _0x34a631='http://'+_0x3cb4c1+':'+_0x3ccd06;return new ApiClient(_0x34a631,_0x43b1bd);}export default ApiClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x4dd00b=a0_0x1f16;(function(_0x1ef16b,_0xed7550){const _0x27e6c7=a0_0x1f16,_0x383780=_0x1ef16b();while(!![]){try{const _0x149c3d=-parseInt(_0x27e6c7(0x8f))/0x1*(parseInt(_0x27e6c7(0x72))/0x2)+-parseInt(_0x27e6c7(0x67))/0x3*(-parseInt(_0x27e6c7(0x84))/0x4)+parseInt(_0x27e6c7(0x7a))/0x5*(-parseInt(_0x27e6c7(0x86))/0x6)+parseInt(_0x27e6c7(0x6d))/0x7+parseInt(_0x27e6c7(0x74))/0x8+-parseInt(_0x27e6c7(0x6b))/0x9*(-parseInt(_0x27e6c7(0x89))/0xa)+-parseInt(_0x27e6c7(0x66))/0xb;if(_0x149c3d===_0xed7550)break;else _0x383780['push'](_0x383780['shift']());}catch(_0x15df15){_0x383780['push'](_0x383780['shift']());}}}(a0_0x3de9,0xf0411));import{EventEmitter}from'events';import{WS_MESSAGE_TYPE}from'../config/constants.js';export class MessageRouter extends EventEmitter{constructor(_0x4c20d3){const _0x28c977=a0_0x1f16;super(),this['ws']=_0x4c20d3,this['handlers']=new Map(),this[_0x28c977(0x88)]=[],this['ws']['on'](_0x28c977(0x7e),_0x40396f=>this['route'](_0x40396f)),this['registerDefaultHandlers']();}[a0_0x4dd00b(0x65)](){const _0x2f1608=a0_0x4dd00b;this['registerHandler'](WS_MESSAGE_TYPE['MESSAGE_ADDED'],_0x1fb4d5=>{const _0xe90a81=a0_0x1f16;this[_0xe90a81(0x7b)](_0xe90a81(0x8c),_0x1fb4d5[_0xe90a81(0x76)]);}),this[_0x2f1608(0x71)](WS_MESSAGE_TYPE['AGENT_MODE_CHANGED'],_0x30f91c=>{const _0x68962=_0x2f1608;this[_0x68962(0x7b)]('agent:mode_changed',_0x30f91c);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x2f1608(0x8a)],_0x35b30a=>{this['emit']('agent:execution_stopped',_0x35b30a['data']);}),this[_0x2f1608(0x71)](WS_MESSAGE_TYPE[_0x2f1608(0x8d)],_0x3c111b=>{this['emit']('agent:error',_0x3c111b);}),this[_0x2f1608(0x71)](WS_MESSAGE_TYPE['AGENT_WARNING'],_0x2a0865=>{this['emit']('agent:warning',_0x2a0865);}),this[_0x2f1608(0x71)](WS_MESSAGE_TYPE['AGENT_IMPORTED'],_0x3e2c4c=>{const _0x2d1e4c=_0x2f1608;this[_0x2d1e4c(0x7b)]('agent:imported',_0x3e2c4c[_0x2d1e4c(0x75)]);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0x15b1a9=>{const _0x1ace62=_0x2f1608;this[_0x1ace62(0x7b)]('agent:communication',_0x15b1a9['data']);}),this['registerHandler'](WS_MESSAGE_TYPE['COMPACTION_EVENT'],_0x46863e=>{this['emit']('conversation:compaction',_0x46863e['data']);}),this[_0x2f1608(0x71)](WS_MESSAGE_TYPE['IMAGE_RESULT'],_0x1bba94=>{const _0x2e939a=_0x2f1608;this['emit']('image:result',_0x1bba94[_0x2e939a(0x76)]);}),this[_0x2f1608(0x71)](WS_MESSAGE_TYPE[_0x2f1608(0x78)],_0x4abb35=>{const _0x221277=_0x2f1608;this[_0x221277(0x7b)]('image:generated',_0x4abb35[_0x221277(0x76)]);}),this['registerHandler'](WS_MESSAGE_TYPE['ERROR'],_0x28de2d=>{const _0x471206=_0x2f1608;this['emit'](_0x471206(0x7f),_0x28de2d);});}async['route'](_0x54623a){const _0x2573f1=a0_0x4dd00b;let processedMessage=_0x54623a;for(const _0x8703a of this['middleware']){try{processedMessage=await _0x8703a(processedMessage);if(!processedMessage)return;}catch(_0x480d6f){this['emit'](_0x2573f1(0x6c),{'error':_0x480d6f,'message':_0x54623a});return;}}const _0x201cab=processedMessage['type'];if(!_0x201cab){this['emit']('invalid_message',processedMessage);return;}if(this[_0x2573f1(0x70)]['has'](_0x201cab)){const _0x4b91dd=this[_0x2573f1(0x70)][_0x2573f1(0x68)](_0x201cab);try{await _0x4b91dd(processedMessage);}catch(_0x2f07f9){this[_0x2573f1(0x7b)]('handler_error',{'error':_0x2f07f9,'message':processedMessage,'messageType':_0x201cab});}}this['emit']('message:'+_0x201cab,processedMessage),this['emit']('message',processedMessage);}[a0_0x4dd00b(0x71)](_0x51cd4a,_0xa701c7){const _0x2b869a=a0_0x4dd00b;if(typeof _0xa701c7!==_0x2b869a(0x8e))throw new Error('Handler\x20must\x20be\x20a\x20function');this[_0x2b869a(0x70)][_0x2b869a(0x81)](_0x51cd4a,_0xa701c7);}['unregisterHandler'](_0x24546d){this['handlers']['delete'](_0x24546d);}[a0_0x4dd00b(0x82)](_0x3eca09){const _0x2fba47=a0_0x4dd00b;if(typeof _0x3eca09!==_0x2fba47(0x8e))throw new Error(_0x2fba47(0x80));this['middleware'][_0x2fba47(0x79)](_0x3eca09);}[a0_0x4dd00b(0x6e)](_0x1556c6){const _0x2669d0=a0_0x4dd00b,_0x61be8a=this[_0x2669d0(0x88)][_0x2669d0(0x69)](_0x1556c6);_0x61be8a>-0x1&&this[_0x2669d0(0x88)]['splice'](_0x61be8a,0x1);}[a0_0x4dd00b(0x7c)](){this['middleware']=[];}[a0_0x4dd00b(0x8b)](){const _0x1a7a2b=a0_0x4dd00b;return Array[_0x1a7a2b(0x6a)](this[_0x1a7a2b(0x70)][_0x1a7a2b(0x83)]());}[a0_0x4dd00b(0x7d)](_0x112585){const _0x4a45dc=a0_0x4dd00b;return this[_0x4a45dc(0x70)]['has'](_0x112585);}[a0_0x4dd00b(0x6f)](){const _0x2bf0b7=a0_0x4dd00b;this['handlers'][_0x2bf0b7(0x85)]();}['reset'](){const _0x5a2d5a=a0_0x4dd00b;this[_0x5a2d5a(0x6f)](),this[_0x5a2d5a(0x7c)](),this[_0x5a2d5a(0x65)]();}}export function loggingMiddleware(_0x1aa8e5=console['log']){return _0x30665b=>{const _0x3023f5=a0_0x1f16;return _0x1aa8e5('[MessageRouter]',_0x30665b[_0x3023f5(0x73)],_0x30665b),_0x30665b;};}export function filterMiddleware(_0x31443a){return _0x41e86a=>{const _0x35e653=a0_0x1f16;if(_0x31443a[_0x35e653(0x77)](_0x41e86a[_0x35e653(0x73)]))return _0x41e86a;return null;};}export function transformMiddleware(_0xc03f26){return async _0x48f671=>{return await _0xc03f26(_0x48f671);};}function a0_0x1f16(_0x18fdd7,_0xc644bc){_0x18fdd7=_0x18fdd7-0x65;const _0x3de95a=a0_0x3de9();let _0x1f16f6=_0x3de95a[_0x18fdd7];if(a0_0x1f16['qrdmdi']===undefined){var _0x11d799=function(_0xb2d801){const _0x5b783f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4c20d3='',_0x40396f='';for(let _0x1fb4d5=0x0,_0x30f91c,_0x35b30a,_0x3c111b=0x0;_0x35b30a=_0xb2d801['charAt'](_0x3c111b++);~_0x35b30a&&(_0x30f91c=_0x1fb4d5%0x4?_0x30f91c*0x40+_0x35b30a:_0x35b30a,_0x1fb4d5++%0x4)?_0x4c20d3+=String['fromCharCode'](0xff&_0x30f91c>>(-0x2*_0x1fb4d5&0x6)):0x0){_0x35b30a=_0x5b783f['indexOf'](_0x35b30a);}for(let _0x2a0865=0x0,_0x3e2c4c=_0x4c20d3['length'];_0x2a0865<_0x3e2c4c;_0x2a0865++){_0x40396f+='%'+('00'+_0x4c20d3['charCodeAt'](_0x2a0865)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x40396f);};a0_0x1f16['ncBKAa']=_0x11d799,a0_0x1f16['WoeDuZ']={},a0_0x1f16['qrdmdi']=!![];}const _0x3927cf=_0x3de95a[0x0],_0x3e0642=_0x18fdd7+_0x3927cf,_0x1747c3=a0_0x1f16['WoeDuZ'][_0x3e0642];return!_0x1747c3?(_0x1f16f6=a0_0x1f16['ncBKAa'](_0x1f16f6),a0_0x1f16['WoeDuZ'][_0x3e0642]=_0x1f16f6):_0x1f16f6=_0x1747c3,_0x1f16f6;}function a0_0x3de9(){const _0x540056=['twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','C2v0','DxnL','A2v5CW','mJr3vMHgwvm','y2XLyxi','mZGXodG5mLj1DgDNqq','Dg9ju09tDhjPBMC','BwLKzgXLD2fYzq','otCWwLngyKj5','rvHfq1vusu9ox1nut1bqruq','z2v0uMvNAxn0zxjLzfr5CgvZ','ywDLBNq6BwvZC2fNzv9HzgrLza','quDftLrFrvjst1i','zNvUy3rPB24','mtm0nJm1renutMLN','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','mJe1otmZntj6u2DUvxa','ody5mtu3zNvetvfH','z2v0','Aw5KzxHpzG','zNjVBq','mtaZndCZzNvssefw','BwLKzgXLD2fYzv9LCNjVCG','ndGXndy5ofnos1bztG','CMvTB3zLtwLKzgXLD2fYzq','y2XLyxjiyw5KBgvYCW','AgfUzgXLCNm','CMvNAxn0zxjiyw5KBgvY','mMTJwKT0qW','DhLWzq','mtqXnte0ng5Ay0vNAG','ywDLBNq','zgf0yq','Aw5JBhvKzxm','su1br0vFr0vorvjbveve','ChvZAa','nw51A1bYvq','zw1PDa','y2XLyxjnAwrKBgv3yxjL','AgfZsgfUzgXLCG','BwvZC2fNzq','zxjYB3i'];a0_0x3de9=function(){return _0x540056;};return a0_0x3de9();}export function timestampMiddleware(){return _0x2b1a4d=>{const _0x447e49=a0_0x1f16;return{..._0x2b1a4d,'receivedAt':new Date()[_0x447e49(0x87)]()};};}export function validationMiddleware(_0x39713b){return _0x49f5b9=>{if(_0x39713b(_0x49f5b9))return _0x49f5b9;throw new Error('Message\x20validation\x20failed');};}export default MessageRouter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a0_0x5811(){const _0x50e09d=['DgLTzxn0yw1W','r0vu','mZuZntuXoeT0BNrJDW','DxbKyxrLqwn0AxzPDhK','yxbPq2XPzw50','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CW','mtGXmJngq1bnvvC','u0vtu0LptL9jtLzbteLe','C2vZC2LVBKLK','DxbKyxrLzef0','zxjYB3i','nde3mgH0vxvuuW','yMfZzvvYBa','ue9tva','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CZOG','mZuYmZuXANLZEg9Z','C3vJy2vZCW','DMvUzg9Ys2v5CW','s0vzu19hrvq','Ag9ZDa','BgvUz3rO','ChjVAMvJDerPCG','CMvWBgfJzq','y2HLy2TizwfSDgG','Cg9YDa','BgfZDefJDgL2Axr5','Bg94AwfbCgLlzxK','rMfPBgvKihrVihnLDcbbueKGA2v5CW','C2vZC2LVBG','otmXmJqYnuLyu0DbAa','sevbtfri','zgvSzxrLqxbPs2v5CW','oNnLC3nPB25jza','mtmZotu1muLPuKjNrq','BwfRzvjLCxvLC3q','y3jLyxrLu2vZC2LVBG','u0vtu0LptL9duKvbvevFrKfjteve','y3DK','BwvZC2fNzq','z2v0u2vZC2LVBKLK','y3jLyxrLzef0','rMfPBgvKihrVigrLBgv0zsbbueKGA2v5CZOG','mZa2mJm2n3rrrfPUyW','ndbgq3Hiqxi','nJmYmdG4mhb1wMvdyq'];a0_0x5811=function(){return _0x50e09d;};return a0_0x5811();}const a0_0x445115=a0_0x5193;(function(_0x5c12ec,_0x472dbe){const _0x304023=a0_0x5193,_0x4f37ce=_0x5c12ec();while(!![]){try{const _0x1dec8e=parseInt(_0x304023(0x1f0))/0x1+-parseInt(_0x304023(0x1e3))/0x2+parseInt(_0x304023(0x1de))/0x3+-parseInt(_0x304023(0x1e0))/0x4+parseInt(_0x304023(0x1d1))/0x5+-parseInt(_0x304023(0x1ec))/0x6*(-parseInt(_0x304023(0x1e7))/0x7)+parseInt(_0x304023(0x1df))/0x8*(-parseInt(_0x304023(0x1d5))/0x9);if(_0x1dec8e===_0x472dbe)break;else _0x4f37ce['push'](_0x4f37ce['shift']());}catch(_0x58fc09){_0x4f37ce['push'](_0x4f37ce['shift']());}}}(a0_0x5811,0xe62d6));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';import{ApiClient}from'./apiClient.js';function a0_0x5193(_0x1e2774,_0x419d06){_0x1e2774=_0x1e2774-0x1cd;const _0x581168=a0_0x5811();let _0x519329=_0x581168[_0x1e2774];if(a0_0x5193['uRhaDK']===undefined){var _0xfc6be5=function(_0x3d8375){const _0x1df5cb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5ae61f='',_0x545936='';for(let _0xdf33bc=0x0,_0x5572a8,_0x5196e1,_0x3dcbe6=0x0;_0x5196e1=_0x3d8375['charAt'](_0x3dcbe6++);~_0x5196e1&&(_0x5572a8=_0xdf33bc%0x4?_0x5572a8*0x40+_0x5196e1:_0x5196e1,_0xdf33bc++%0x4)?_0x5ae61f+=String['fromCharCode'](0xff&_0x5572a8>>(-0x2*_0xdf33bc&0x6)):0x0){_0x5196e1=_0x1df5cb['indexOf'](_0x5196e1);}for(let _0x7d1bd=0x0,_0x533818=_0x5ae61f['length'];_0x7d1bd<_0x533818;_0x7d1bd++){_0x545936+='%'+('00'+_0x5ae61f['charCodeAt'](_0x7d1bd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x545936);};a0_0x5193['qnnEXO']=_0xfc6be5,a0_0x5193['KHbUhp']={},a0_0x5193['uRhaDK']=!![];}const _0x1e385a=_0x581168[0x0],_0x52f367=_0x1e2774+_0x1e385a,_0x7aa9c3=a0_0x5193['KHbUhp'][_0x52f367];return!_0x7aa9c3?(_0x519329=a0_0x5193['qnnEXO'](_0x519329),a0_0x5193['KHbUhp'][_0x52f367]=_0x519329):_0x519329=_0x7aa9c3,_0x519329;}export class SessionManager{constructor(_0x5ae61f=NETWORK['DEFAULT_HOST'],_0x545936=NETWORK['DEFAULT_PORT']){const _0x14e267=a0_0x5193;this[_0x14e267(0x1f4)]=_0x5ae61f,this[_0x14e267(0x1f9)]=_0x545936,this[_0x14e267(0x1ed)]='http://'+_0x5ae61f+':'+_0x545936,this['sessionId']=null,this['projectDir']=null,this[_0x14e267(0x1dc)]=null,this['lastActivity']=null,this['loxiaApiKey']=null,this['vendorKeys']={},this[_0x14e267(0x1e5)]=new ApiClient(this[_0x14e267(0x1ed)],this[_0x14e267(0x1ce)]);}async['createSession'](_0xdf33bc=process[a0_0x445115(0x1d9)]()){const _0x558732=a0_0x445115;try{const _0x5572a8=await this[_0x558732(0x1d6)](_0x558732(0x1ee),API_ENDPOINTS['SESSION_CREATE'],{'projectDir':_0xdf33bc});if(_0x5572a8['success']&&_0x5572a8['session'])return this[_0x558732(0x1e9)]=_0x5572a8[_0x558732(0x1d0)]['id'],this['projectDir']=_0xdf33bc,this[_0x558732(0x1dc)]=_0x5572a8[_0x558732(0x1d0)][_0x558732(0x1dc)],this[_0x558732(0x1cd)]=_0x5572a8[_0x558732(0x1d0)][_0x558732(0x1cd)],{'success':!![],'sessionId':this[_0x558732(0x1e9)],'session':_0x5572a8[_0x558732(0x1d0)]};else throw new Error(_0x5572a8[_0x558732(0x1eb)]||ERROR_MESSAGE[_0x558732(0x1d8)]);}catch(_0x5196e1){throw new Error(ERROR_MESSAGE['SESSION_CREATE_FAILED']+':\x20'+_0x5196e1['message']);}}async['setApiKeys'](_0x3dcbe6=null,_0x7d1bd={}){const _0x328ae3=a0_0x445115;if(!this['sessionId'])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x533818=await this[_0x328ae3(0x1d6)]('POST',API_ENDPOINTS['KEYS_SET'],{'sessionId':this['sessionId'],'loxiaApiKey':_0x3dcbe6,'vendorKeys':_0x7d1bd});if(_0x533818[_0x328ae3(0x1f1)])return this['loxiaApiKey']=_0x3dcbe6,this[_0x328ae3(0x1f2)]=_0x7d1bd,this[_0x328ae3(0x1e5)]['setApiKey'](_0x3dcbe6),{'success':!![],'message':_0x533818['message'],'hasLoxiaKey':_0x533818['hasLoxiaKey'],'vendorKeys':_0x533818['vendorKeys']};else throw new Error(_0x533818['error']||_0x328ae3(0x1cf));}catch(_0xde820d){throw new Error('Failed\x20to\x20set\x20API\x20keys:\x20'+_0xde820d[_0x328ae3(0x1da)]);}}async['getApiKeyStatus'](){const _0x3f4422=a0_0x445115;if(!this['sessionId'])throw new Error(ERROR_MESSAGE[_0x3f4422(0x1e8)]);try{const _0x3ddaa7=API_ENDPOINTS[_0x3f4422(0x1f3)][_0x3f4422(0x1f7)](':sessionId',this[_0x3f4422(0x1e9)]),_0x197e6c=await this['makeRequest']('GET',_0x3ddaa7);if(_0x197e6c[_0x3f4422(0x1f1)])return{'success':!![],'hasLoxiaKey':_0x197e6c['hasLoxiaKey'],'vendorKeys':_0x197e6c[_0x3f4422(0x1f2)],'updatedAt':_0x197e6c[_0x3f4422(0x1ea)]};else throw new Error(_0x197e6c['error']||'Failed\x20to\x20get\x20API\x20key\x20status');}catch(_0x517872){throw new Error(_0x3f4422(0x1ef)+_0x517872[_0x3f4422(0x1da)]);}}async[a0_0x445115(0x1d3)](){const _0x13979d=a0_0x445115;if(!this['sessionId'])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x1f44d7=API_ENDPOINTS['KEYS_DELETE']['replace'](_0x13979d(0x1d4),this['sessionId']),_0x5157db=await this['makeRequest']('DELETE',_0x1f44d7);if(_0x5157db[_0x13979d(0x1f1)])return this['loxiaApiKey']=null,this[_0x13979d(0x1f2)]={},{'success':!![],'message':_0x5157db[_0x13979d(0x1da)]};else throw new Error(_0x5157db['error']||_0x13979d(0x1e6));}catch(_0x11733c){throw new Error(_0x13979d(0x1dd)+_0x11733c[_0x13979d(0x1da)]);}}async['initialize'](_0x562127=process['cwd']()){const _0x15a9b5=a0_0x445115;try{const _0x3c7d21=await this['checkHealth']();if(!_0x3c7d21['success'])throw new Error('Server\x20health\x20check\x20failed:\x20'+_0x3c7d21['error']);const _0x46a4f0=await this[_0x15a9b5(0x1d7)](_0x562127);return{'success':!![],'sessionId':_0x46a4f0['sessionId'],'session':_0x46a4f0[_0x15a9b5(0x1d0)]};}catch(_0x4b1fbc){return{'success':![],'error':_0x4b1fbc['message']};}}async[a0_0x445115(0x1f8)](){const _0x1e29bd=a0_0x445115;try{const _0x5c21bb=await this[_0x1e29bd(0x1d6)](_0x1e29bd(0x1e2),API_ENDPOINTS[_0x1e29bd(0x1d2)]);return{'success':!![],'status':_0x5c21bb['status'],'version':_0x5c21bb['version'],'timestamp':_0x5c21bb[_0x1e29bd(0x1e1)]};}catch(_0x5b30fd){return{'success':![],'error':_0x5b30fd['message']};}}async['makeRequest'](_0x4466ff,_0x2966db,_0x227984=null){const _0x58216a=a0_0x445115;return this[_0x58216a(0x1e5)]['request'](_0x4466ff,_0x2966db,{'body':_0x227984});}[a0_0x445115(0x1db)](){return this['sessionId'];}['getProjectDir'](){const _0x4e5f7c=a0_0x445115;return this[_0x4e5f7c(0x1f6)];}['isValid'](){return this['sessionId']!==null;}[a0_0x445115(0x1e4)](){const _0x1ac78a=a0_0x445115;this[_0x1ac78a(0x1cd)]=new Date()['toISOString']();}['getSessionInfo'](){const _0x35c91d=a0_0x445115;return{'sessionId':this['sessionId'],'projectDir':this['projectDir'],'createdAt':this[_0x35c91d(0x1dc)],'lastActivity':this[_0x35c91d(0x1cd)],'hasLoxiaKey':!!this[_0x35c91d(0x1ce)],'vendorKeysCount':Object['keys'](this['vendorKeys'])[_0x35c91d(0x1f5)]};}['clear'](){const _0x4daec=a0_0x445115;this['sessionId']=null,this['projectDir']=null,this['createdAt']=null,this['lastActivity']=null,this[_0x4daec(0x1ce)]=null,this['vendorKeys']={};}}export default SessionManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x4d3d63=a0_0x2400;function a0_0x51a4(){const _0xe1f453=['BgfZDfbVBMDszwnLAxzLza','z2v0','CxvLDwvFChjVy2vZC19LCNjVCG','nZKWDLHlDMni','AgfUzgXLug9Uz1rPBwvVDxq','y29UBMvJDa','zgLZy29UBMvJDa','AgfUzgXLtwvZC2fNzq','CgvUzgLUz1jLCxvLC3rZ','AgfUzgXLt3jJAgvZDhjHDg9YuMvZCg9UC2u','q2XPzw50igrPC2nVBM5Ly3q','mtjWqxfyA0K','q09otKvdveLorW','D2fPDezVCKnVBM5Ly3rPB24','ue9orW','zgvSzxrL','CMvJB25Uzwn0qxr0zw1WDhm','CMvXDwvZDeLKq291BNrLCG','q09otKvdveve','B3bLBG','AgfUzgXLug9UzW','zw1PDa','C3rHDgvFy2HHBMDL','ChvZAa','revgqvvmvf9it1nu','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','C2vUzfbPBMC','C2nOzwr1BgvszwnVBM5Ly3q','mJa5ndLerNndwMq','CgLUz19LCNjVCG','AxndB25Uzwn0zwq','z2v0u2vZC2LVBKLK','Cg93','C2vZC2LVBKLK','C3rHDgu','v0vcu09ds0vux0nptK5fq1rFveLnru9vva','y2XVC2u','C2vUze9Yy2HLC3rYyxrVCLjLCxvLC3q','mtm5mZC2qwPqtMHs','mtG4mJyWtLnzqu5X','y29UBMvJDgLVBL9LCNjVCG','BwvZC2fNzvf1zxvL','DhLWzq','CMvJB25Uzwn0Aw5N','C2v0DxbfDMvUDeHHBMrSzxjZ','BgvUz3rO','y2XLyw51Ca','v0vcu09ds0vux1jfq09otKvdvf9nvuXusvbmsuvs','yMfZzvjLy29UBMvJDerLBgf5','zxjYB3i','C2HVDwXKuMvJB25Uzwn0','u0vtu0LptL9kt0Loruq','CgLUz0LUDgvYDMfS','C2vUza','CMvJB25Uzwn0rgvSyxK','BwvZC2fNzq','AgvHCNrIzwf0sw50zxj2ywW','v0vcu09ds0vux1bptKDFveLnru9vva','Dg9tDhjPBMC','BM93','C2v0u3rHDgu','AgfZ','odaXnZe1vuDZvgnm','ntGWwevftwDY','C2vUzf9LCNjVCG','mJDqvNbSCKm','CMvTB3zLqwXStgLZDgvUzxjZ','mMXmBgvita','AgfUzgXLrxjYB3i','C3rYAw5NAwz5','mtaWmJfvz3HZCey','mtKWnJq1otfmtKTwvfK','DxjS','nda5mdq1mhrRuwTWua','ChjVy2vZC01LC3nHz2vrDwv1zq','z2vUzxjHDgvszxf1zxn0swq','C2L6zq','BwLU','reLtq09otKvdveve','C3rVCeHLyxj0yMvHDa','rvjst1i','Cg9Uz1rPBwvVDxq','mtHAEvvwue0'];a0_0x51a4=function(){return _0xe1f453;};return a0_0x51a4();}function a0_0x2400(_0x1df2d1,_0x2de5ed){_0x1df2d1=_0x1df2d1-0xd7;const _0x51a4cb=a0_0x51a4();let _0x240016=_0x51a4cb[_0x1df2d1];if(a0_0x2400['wwTRof']===undefined){var _0x3404e8=function(_0x8422d){const _0x961022='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3b6951='',_0x4e5f70='';for(let _0x8703f4=0x0,_0x32dc4e,_0x15d7f7,_0x267ad7=0x0;_0x15d7f7=_0x8422d['charAt'](_0x267ad7++);~_0x15d7f7&&(_0x32dc4e=_0x8703f4%0x4?_0x32dc4e*0x40+_0x15d7f7:_0x15d7f7,_0x8703f4++%0x4)?_0x3b6951+=String['fromCharCode'](0xff&_0x32dc4e>>(-0x2*_0x8703f4&0x6)):0x0){_0x15d7f7=_0x961022['indexOf'](_0x15d7f7);}for(let _0x54e877=0x0,_0x1d3877=_0x3b6951['length'];_0x54e877<_0x1d3877;_0x54e877++){_0x4e5f70+='%'+('00'+_0x3b6951['charCodeAt'](_0x54e877)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4e5f70);};a0_0x2400['tLHLqJ']=_0x3404e8,a0_0x2400['QcdYaV']={},a0_0x2400['wwTRof']=!![];}const _0x1d4174=_0x51a4cb[0x0],_0x20421f=_0x1df2d1+_0x1d4174,_0x484331=a0_0x2400['QcdYaV'][_0x20421f];return!_0x484331?(_0x240016=a0_0x2400['tLHLqJ'](_0x240016),a0_0x2400['QcdYaV'][_0x20421f]=_0x240016):_0x240016=_0x484331,_0x240016;}(function(_0x54be3b,_0x57286a){const _0x2129ba=a0_0x2400,_0xac7c10=_0x54be3b();while(!![]){try{const _0x203462=-parseInt(_0x2129ba(0xf4))/0x1*(parseInt(_0x2129ba(0xd8))/0x2)+parseInt(_0x2129ba(0x120))/0x3*(parseInt(_0x2129ba(0xf0))/0x4)+-parseInt(_0x2129ba(0xef))/0x5*(-parseInt(_0x2129ba(0x103))/0x6)+parseInt(_0x2129ba(0xfa))/0x7+parseInt(_0x2129ba(0xd7))/0x8*(parseInt(_0x2129ba(0xf2))/0x9)+-parseInt(_0x2129ba(0x107))/0xa*(-parseInt(_0x2129ba(0xf7))/0xb)+parseInt(_0x2129ba(0x10f))/0xc*(-parseInt(_0x2129ba(0xf8))/0xd);if(_0x203462===_0x57286a)break;else _0xac7c10['push'](_0xac7c10['shift']());}catch(_0x4839e0){_0xac7c10['push'](_0xac7c10['shift']());}}}(a0_0x51a4,0x85a36));import a0_0x3b6951 from'ws';import{EventEmitter}from'events';import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';export class WebSocketManager extends EventEmitter{constructor(_0x4e5f70=NETWORK[a0_0x4d3d63(0x11c)],_0x8703f4=NETWORK['DEFAULT_PORT'],_0x32dc4e={}){const _0x4b879e=a0_0x4d3d63;super(),this['host']=_0x4e5f70,this['port']=_0x8703f4,this[_0x4b879e(0xf9)]='ws://'+_0x4e5f70+':'+_0x8703f4,this['ws']=null,this['state']=CONNECTION_STATE[_0x4b879e(0xff)],this['sessionId']=null,this['reconnectAttempts']=0x0,this[_0x4b879e(0xe7)]=_0x32dc4e[_0x4b879e(0xe7)]??TIMING[_0x4b879e(0x11d)],this[_0x4b879e(0xe1)]=this['reconnectDelay'],this['reconnectTimer']=null,this['shouldReconnect']=!![],this[_0x4b879e(0xe9)]=_0x32dc4e[_0x4b879e(0xe9)]??TIMING['WEBSOCKET_PING_INTERVAL'],this[_0x4b879e(0xe5)]=null,this[_0x4b879e(0x102)]=null,this[_0x4b879e(0x104)]=null,this[_0x4b879e(0xda)]=[],this[_0x4b879e(0x115)]=0x0,this[_0x4b879e(0x10c)]=new Map();}async[a0_0x4d3d63(0x109)](){const _0x5b4c8c=a0_0x4d3d63;if(this['state']===CONNECTION_STATE[_0x5b4c8c(0x116)]||this[_0x5b4c8c(0x126)]===CONNECTION_STATE[_0x5b4c8c(0x110)])return{'success':![],'error':'Already\x20connected\x20or\x20connecting'};this[_0x5b4c8c(0xed)](CONNECTION_STATE[_0x5b4c8c(0x110)]),this['emit']('connecting');try{return this['ws']=new a0_0x3b6951(this['url']),this['setupEventHandlers'](),await this[_0x5b4c8c(0x111)](),{'success':!![]};}catch(_0x15d7f7){return this['handleConnectionError'](_0x15d7f7),{'success':![],'error':_0x15d7f7['message']};}}['waitForConnection'](){return new Promise((_0x267ad7,_0x54e877)=>{const _0x58214b=a0_0x2400,_0x1d3877=setTimeout(()=>{_0x54e877(new Error('Connection\x20timeout'));},TIMING[_0x58214b(0x127)]);this['ws']['once'](_0x58214b(0x117),()=>{clearTimeout(_0x1d3877),_0x267ad7();}),this['ws']['once']('error',_0x242603=>{clearTimeout(_0x1d3877),_0x54e877(_0x242603);});});}[a0_0x4d3d63(0xdd)](){const _0x58d18f=a0_0x4d3d63;this['ws']['on'](_0x58d18f(0x117),()=>this['handleOpen']()),this['ws']['on'](_0x58d18f(0xe8),_0x4f1a25=>this['handleMessage'](_0x4f1a25)),this['ws']['on'](_0x58d18f(0x128),(_0x9a6e0b,_0x230cb9)=>this['handleClose'](_0x9a6e0b,_0x230cb9)),this['ws']['on'](_0x58d18f(0xe2),_0x351719=>this[_0x58d18f(0xf5)](_0x351719));}['handleOpen'](){const _0x195ea8=a0_0x4d3d63;this['setState'](CONNECTION_STATE[_0x195ea8(0x116)]),this[_0x195ea8(0x114)]=0x0,this[_0x195ea8(0xe7)]=this['baseReconnectDelay'],this[_0x195ea8(0x119)]('connected'),this['startHeartbeat'](),this[_0x195ea8(0xfb)]();}[a0_0x4d3d63(0x10b)](_0x31d0ce){const _0x327eff=a0_0x4d3d63;try{const _0x131363=JSON['parse'](_0x31d0ce['toString']());if(_0x131363[_0x327eff(0xdb)]===WS_MESSAGE_TYPE[_0x327eff(0x112)]){this['handlePong']();return;}if(_0x131363[_0x327eff(0xdb)]===WS_MESSAGE_TYPE['CONNECTED']){this['emit']('welcome',_0x131363);return;}if(_0x131363['type']===WS_MESSAGE_TYPE[_0x327eff(0xe4)]){this['sessionId']=_0x131363[_0x327eff(0x125)],this[_0x327eff(0x119)]('session_joined',_0x131363);return;}if(_0x131363['type']===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this['handleOrchestratorResponse'](_0x131363);return;}this['emit'](_0x327eff(0xe8),_0x131363),_0x131363[_0x327eff(0xdb)]&&this['emit'](_0x131363[_0x327eff(0xdb)],_0x131363);}catch(_0x1dfa5a){this['emit']('parse_error',{'error':_0x1dfa5a,'data':_0x31d0ce});}}['handleClose'](_0x5f4ad1,_0x272962){const _0x231a3c=a0_0x4d3d63;this[_0x231a3c(0xdf)]();const _0x2b1abf=_0x272962[_0x231a3c(0xeb)]()||'Unknown\x20reason';this[_0x231a3c(0x119)]('disconnected',{'code':_0x5f4ad1,'reason':_0x2b1abf}),this['shouldReconnect']&&_0x5f4ad1!==0x3e8?this['scheduleReconnect']():this['setState'](CONNECTION_STATE['DISCONNECTED']);}[a0_0x4d3d63(0xf5)](_0x12fc8e){const _0x24feda=a0_0x4d3d63;this[_0x24feda(0x119)]('error',_0x12fc8e);}['handleConnectionError'](_0x540bf8){const _0x1ca430=a0_0x4d3d63;this[_0x1ca430(0xed)](CONNECTION_STATE[_0x1ca430(0x101)]),this['emit'](_0x1ca430(0xd9),_0x540bf8),this['shouldReconnect']&&this[_0x1ca430(0x11f)]();}[a0_0x4d3d63(0x11f)](){const _0x99e087=a0_0x4d3d63;if(this['reconnectTimer'])return;this[_0x99e087(0xed)](CONNECTION_STATE['RECONNECTING']),this[_0x99e087(0x114)]++;const _0x3622f6=Math[_0x99e087(0xfe)](this['reconnectDelay']*Math[_0x99e087(0x124)](TIMING[_0x99e087(0xe0)],this['reconnectAttempts']-0x1),TIMING['WEBSOCKET_RECONNECT_MAX_DELAY']);this['emit'](_0x99e087(0xdc),{'attempt':this[_0x99e087(0x114)],'delay':_0x3622f6}),this['reconnectTimer']=setTimeout(()=>{this['reconnectTimer']=null,this['connect']();},_0x3622f6);}['startHeartbeat'](){const _0x2ea938=a0_0x4d3d63;this[_0x2ea938(0x100)](),this['pingInterval']=setInterval(()=>{const _0x496ed1=_0x2ea938;this['state']===CONNECTION_STATE['CONNECTED']&&this[_0x496ed1(0x11e)]();},this[_0x2ea938(0xe9)]);}['stopHeartbeat'](){const _0x4dd000=a0_0x4d3d63;this['pingInterval']&&(clearInterval(this[_0x4dd000(0xe5)]),this[_0x4dd000(0xe5)]=null),this[_0x4dd000(0x102)]&&(clearTimeout(this['pongTimeout']),this[_0x4dd000(0x102)]=null);}[a0_0x4d3d63(0x11e)](){const _0x140339=a0_0x4d3d63;if(this['state']!==CONNECTION_STATE['CONNECTED'])return;try{this[_0x140339(0xe6)]({'type':WS_MESSAGE_TYPE['PING']}),this['pongTimeout']=setTimeout(()=>{const _0x59859b=_0x140339;this[_0x59859b(0x108)]();},TIMING[_0x140339(0xea)]);}catch(_0x224680){this[_0x140339(0x119)](_0x140339(0x121),_0x224680);}}[a0_0x4d3d63(0x118)](){const _0xaafcc7=a0_0x4d3d63;this[_0xaafcc7(0x104)]=Date['now'](),this['pongTimeout']&&(clearTimeout(this['pongTimeout']),this['pongTimeout']=null);}['handlePongTimeout'](){const _0x4d095f=a0_0x4d3d63;this[_0x4d095f(0x119)]('heartbeat_timeout'),this[_0x4d095f(0x10a)](),this[_0x4d095f(0xe3)]&&this[_0x4d095f(0x11f)]();}['joinSession'](_0x2122e1){const _0x58d448=a0_0x4d3d63;this[_0x58d448(0x125)]=_0x2122e1,this[_0x58d448(0xe6)]({'type':WS_MESSAGE_TYPE['JOIN_SESSION'],'sessionId':_0x2122e1});}[a0_0x4d3d63(0x129)](_0x28b439,_0x54d3a1,_0x258b78){const _0x87f57=this['generateRequestId'](),_0x107f71={'type':WS_MESSAGE_TYPE['ORCHESTRATOR_REQUEST'],'requestId':_0x87f57,'action':_0x28b439,'payload':_0x54d3a1,'projectDir':_0x258b78};return new Promise((_0xb380e4,_0x1837f1)=>{const _0x34fc3a=a0_0x2400;this['pendingRequests']['set'](_0x87f57,{'resolve':_0xb380e4,'reject':_0x1837f1,'timestamp':Date[_0x34fc3a(0xec)]()});try{this['send'](_0x107f71);}catch(_0x232187){this['pendingRequests']['delete'](_0x87f57),_0x1837f1(_0x232187);}setTimeout(()=>{const _0x57400b=_0x34fc3a;this[_0x57400b(0x10c)][_0x57400b(0xee)](_0x87f57)&&(this['pendingRequests'][_0x57400b(0x113)](_0x87f57),_0x1837f1(new Error('Request\x20timeout')));},TIMING['HTTP_TIMEOUT']);});}[a0_0x4d3d63(0x10d)](_0x3da0d8){const _0x226061=a0_0x4d3d63,{requestId:_0x186b30,response:_0x44e86d,error:_0x3df4bd}=_0x3da0d8;if(this[_0x226061(0x10c)][_0x226061(0xee)](_0x186b30)){const {resolve:_0x583324,reject:_0x154c01}=this['pendingRequests'][_0x226061(0x105)](_0x186b30);this['pendingRequests']['delete'](_0x186b30),_0x3df4bd?_0x154c01(new Error(_0x3df4bd)):_0x583324(_0x44e86d);}}['send'](_0x5d88e4){const _0x5a4dc1=a0_0x4d3d63;if(this[_0x5a4dc1(0x126)]!==CONNECTION_STATE[_0x5a4dc1(0x116)]){this[_0x5a4dc1(0xda)][_0x5a4dc1(0x11b)](_0x5d88e4);return;}try{this['ws']['send'](JSON[_0x5a4dc1(0xf6)](_0x5d88e4));}catch(_0x2af98c){this['emit'](_0x5a4dc1(0xf1),_0x2af98c);throw _0x2af98c;}}['processMessageQueue'](){const _0x2b8c17=a0_0x4d3d63;while(this[_0x2b8c17(0xda)][_0x2b8c17(0xde)]>0x0&&this[_0x2b8c17(0x126)]===CONNECTION_STATE['CONNECTED']){const _0x291dbc=this[_0x2b8c17(0xda)]['shift']();try{this['ws'][_0x2b8c17(0xe6)](JSON['stringify'](_0x291dbc));}catch(_0x14de13){this['emit'](_0x2b8c17(0x106),_0x14de13),this[_0x2b8c17(0xda)]['unshift'](_0x291dbc);break;}}}['disconnect'](){const _0x5bea7e=a0_0x4d3d63;this['shouldReconnect']=![],this[_0x5bea7e(0xdf)]();if(this['ws']){try{this['ws']['close'](0x3e8,_0x5bea7e(0x10e));}catch(_0x9decee){}this['ws']=null;}this[_0x5bea7e(0xed)](CONNECTION_STATE['DISCONNECTED']);}['cleanup'](){const _0x4032b6=a0_0x4d3d63;this['stopHeartbeat'](),this['reconnectTimer']&&(clearTimeout(this['reconnectTimer']),this['reconnectTimer']=null),this['ws']&&this['ws'][_0x4032b6(0xf3)]();}['setState'](_0x356098){const _0x4b8fca=a0_0x4d3d63,_0x118ddf=this['state'];this[_0x4b8fca(0x126)]=_0x356098,_0x118ddf!==_0x356098&&this[_0x4b8fca(0x119)](_0x4b8fca(0x11a),{'oldState':_0x118ddf,'newState':_0x356098});}[a0_0x4d3d63(0xfc)](){const _0x31efca=a0_0x4d3d63;return this[_0x31efca(0x115)]++,'req-'+Date[_0x31efca(0xec)]()+'-'+this['requestIdCounter'];}['getState'](){return this['state'];}[a0_0x4d3d63(0x122)](){const _0x294ad5=a0_0x4d3d63;return this['state']===CONNECTION_STATE[_0x294ad5(0x116)];}[a0_0x4d3d63(0x123)](){const _0x575033=a0_0x4d3d63;return this[_0x575033(0x125)];}['getStats'](){const _0x4e22c2=a0_0x4d3d63;return{'state':this[_0x4e22c2(0x126)],'sessionId':this['sessionId'],'reconnectAttempts':this[_0x4e22c2(0x114)],'queuedMessages':this['messageQueue']['length'],'pendingRequests':this['pendingRequests'][_0x4e22c2(0xfd)],'lastPongReceived':this['lastPongReceived']};}}export default WebSocketManager;
|
|
1
|
+
const a0_0x42fe4f=a0_0x2218;(function(_0x49912c,_0x4a7d5d){const _0x5c96c1=a0_0x2218,_0xb5036b=_0x49912c();while(!![]){try{const _0x14f9c3=parseInt(_0x5c96c1(0x189))/0x1+-parseInt(_0x5c96c1(0x185))/0x2+-parseInt(_0x5c96c1(0x1b8))/0x3*(-parseInt(_0x5c96c1(0x1a4))/0x4)+parseInt(_0x5c96c1(0x1b4))/0x5+parseInt(_0x5c96c1(0x19a))/0x6*(parseInt(_0x5c96c1(0x18e))/0x7)+parseInt(_0x5c96c1(0x1a1))/0x8+parseInt(_0x5c96c1(0x1c8))/0x9*(-parseInt(_0x5c96c1(0x196))/0xa);if(_0x14f9c3===_0x4a7d5d)break;else _0xb5036b['push'](_0xb5036b['shift']());}catch(_0xf576b7){_0xb5036b['push'](_0xb5036b['shift']());}}}(a0_0x1c30,0xc1ffc));function a0_0x1c30(){const _0x2d2d44=['u0vtu0LptL9kt0Loruq','CMvXlq','Cg9YDa','CxvLDwvFChjVy2vZC19LCNjVCG','zgvSzxrL','mtHuBMLgwhe','AgfUzgXLt3bLBG','C2vUzfbPBMC','B3bLBG','sfruuf9usu1ft1vu','CMvJB25Uzwn0vgLTzxi','C2HVDwXKuMvJB25Uzwn0','CMvJB25Uzwn0qxr0zw1WDhm','C2vZC2LVBKLK','z2v0u2vZC2LVBKLK','qwXYzwfKEsbJB25Uzwn0zwqGB3iGy29UBMvJDgLUzW','CMvXDwvZDeLKq291BNrLCG','BM93','zgLZy29UBMvJDa','C3rHDgu','y2XLyw51Ca','ota4nta2u1DMuLnA','CMvJB25Uzwn0rgvSyxK','sK9jtL9trvntsu9o','AgfUzgXLq29UBMvJDgLVBKvYCM9Y','oda5ndu4D3vNEwPy','z2v0u3rHDhm','AgfUzgXLug9Uz1rPBwvVDxq','AgfUzgXLug9UzW','BwvZC2fNzvf1zxvL','n0rWC29tEq','Cg9Uz1rPBwvVDxq','revgqvvmvf9it1nu','v0vcu09ds0vux1jfq09otKvdvf9nqvHFrevmqvK','ue9orW','q09otKvdveve','CgLUz0LUDgvYDMfS','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','mte1mti5nZbbv0rsuum','C2v0u3rHDgu','Dg9tDhjPBMC','yMfZzvjLy29UBMvJDerLBgf5','mZCWntCWogXxDM1VwG','ChvZAa','v0vcu09ds0vux1jfq09otKvdvf9nvuXusvbmsuvs','y29UBMvJDgLVBL9LCNjVCG','C3rVCeHLyxj0yMvHDa','DhLWzq','y29UBMvJDgLUzW','nZi3mdy0mg9gshPVuW','rvjst1i','BwvZC2fNzq','mZjwrhjLq08','CgvUzgLUz1jLCxvLC3rZ','AxndB25Uzwn0zwq','ChjVy2vZC01LC3nHz2vrDwv1zq','AgvHCNrIzwf0sw50zxj2ywW','AgfUzgXLtwvZC2fNzq','z2vUzxjHDgvszxf1zxn0swq','AgfUzgXLq2XVC2u','C3rHCNrizwfYDgjLyxq','CMvTB3zLqwXStgLZDgvUzxjZ','Ag9ZDa','v0vcu09ds0vux1bptKDFveLnru9vva','C2L6zq','reLtq09otKvdveve','AM9PBLnLC3nPB24','C2HPzNq','nti0nJi0nxLpt0Lkrq','zw1PDa','C2nOzwr1BgvszwnVBM5Ly3q','AgfUzgXLt3jJAgvZDhjHDg9YuMvZCg9UC2u','nJiZnJDPExHhvK4','BgfZDfbVBMDszwnLAxzLza','BwLU','zxjYB3i','DxjS','ueLorW','C2vUza','AgfZ','B25Jzq','BgvUz3rO','t1jdsevtvfjbve9sx1jfuvvfu1q'];a0_0x1c30=function(){return _0x2d2d44;};return a0_0x1c30();}function a0_0x2218(_0x12fab6,_0x33f1ed){_0x12fab6=_0x12fab6-0x181;const _0x1c30b2=a0_0x1c30();let _0x22183a=_0x1c30b2[_0x12fab6];if(a0_0x2218['WGerHH']===undefined){var _0x503087=function(_0x4fe296){const _0x1edcd9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xfe3591='',_0xf9f19f='';for(let _0x497ede=0x0,_0x1f84b4,_0x388eaa,_0x15ce9b=0x0;_0x388eaa=_0x4fe296['charAt'](_0x15ce9b++);~_0x388eaa&&(_0x1f84b4=_0x497ede%0x4?_0x1f84b4*0x40+_0x388eaa:_0x388eaa,_0x497ede++%0x4)?_0xfe3591+=String['fromCharCode'](0xff&_0x1f84b4>>(-0x2*_0x497ede&0x6)):0x0){_0x388eaa=_0x1edcd9['indexOf'](_0x388eaa);}for(let _0x3d5403=0x0,_0xbee6e4=_0xfe3591['length'];_0x3d5403<_0xbee6e4;_0x3d5403++){_0xf9f19f+='%'+('00'+_0xfe3591['charCodeAt'](_0x3d5403)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xf9f19f);};a0_0x2218['UbyIwS']=_0x503087,a0_0x2218['vbjMhy']={},a0_0x2218['WGerHH']=!![];}const _0x21dc12=_0x1c30b2[0x0],_0x1a67e3=_0x12fab6+_0x21dc12,_0x118b9a=a0_0x2218['vbjMhy'][_0x1a67e3];return!_0x118b9a?(_0x22183a=a0_0x2218['UbyIwS'](_0x22183a),a0_0x2218['vbjMhy'][_0x1a67e3]=_0x22183a):_0x22183a=_0x118b9a,_0x22183a;}import a0_0xfe3591 from'ws';import{EventEmitter}from'events';import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';export class WebSocketManager extends EventEmitter{constructor(_0xf9f19f=NETWORK[a0_0x42fe4f(0x190)],_0x497ede=NETWORK['DEFAULT_PORT'],_0x1f84b4={}){const _0x4c8713=a0_0x42fe4f;super(),this[_0x4c8713(0x1ae)]=_0xf9f19f,this[_0x4c8713(0x1c5)]=_0x497ede,this[_0x4c8713(0x1bc)]='ws://'+_0xf9f19f+':'+_0x497ede,this['ws']=null,this['state']=CONNECTION_STATE['DISCONNECTED'],this['sessionId']=null,this[_0x4c8713(0x1cf)]=0x0,this['reconnectDelay']=_0x1f84b4[_0x4c8713(0x186)]??TIMING[_0x4c8713(0x195)],this['baseReconnectDelay']=this[_0x4c8713(0x186)],this['reconnectTimer']=null,this[_0x4c8713(0x1ce)]=!![],this[_0x4c8713(0x1a8)]=_0x1f84b4[_0x4c8713(0x1a8)]??TIMING['WEBSOCKET_PING_INTERVAL'],this[_0x4c8713(0x194)]=null,this[_0x4c8713(0x18f)]=null,this[_0x4c8713(0x1b9)]=null,this[_0x4c8713(0x18d)]=[],this[_0x4c8713(0x1d3)]=0x0,this['pendingRequests']=new Map();}async['connect'](){const _0x4bc853=a0_0x42fe4f;if(this['state']===CONNECTION_STATE[_0x4bc853(0x193)]||this[_0x4bc853(0x183)]===CONNECTION_STATE['CONNECTING'])return{'success':![],'error':_0x4bc853(0x1d2)};this['setState'](CONNECTION_STATE['CONNECTING']),this[_0x4bc853(0x1b5)](_0x4bc853(0x1a0));try{return this['ws']=new a0_0xfe3591(this[_0x4bc853(0x1bc)]),this['setupEventHandlers'](),await this['waitForConnection'](),{'success':!![]};}catch(_0x388eaa){return this[_0x4bc853(0x188)](_0x388eaa),{'success':![],'error':_0x388eaa[_0x4bc853(0x1a3)]};}}['waitForConnection'](){return new Promise((_0x15ce9b,_0x3d5403)=>{const _0x87583f=a0_0x2218,_0xbee6e4=setTimeout(()=>{_0x3d5403(new Error('Connection\x20timeout'));},TIMING['WEBSOCKET_CONNECT_TIMEOUT']);this['ws']['once'](_0x87583f(0x1cb),()=>{clearTimeout(_0xbee6e4),_0x15ce9b();}),this['ws'][_0x87583f(0x1c0)](_0x87583f(0x1bb),_0x271e21=>{clearTimeout(_0xbee6e4),_0x3d5403(_0x271e21);});});}['setupEventHandlers'](){const _0x3f56af=a0_0x42fe4f;this['ws']['on']('open',()=>this['handleOpen']()),this['ws']['on']('message',_0x2f01ca=>this[_0x3f56af(0x1a9)](_0x2f01ca)),this['ws']['on']('close',(_0x2635ad,_0x9ed020)=>this['handleClose'](_0x2635ad,_0x9ed020)),this['ws']['on'](_0x3f56af(0x1bb),_0x59b654=>this['handleError'](_0x59b654));}[a0_0x42fe4f(0x1c9)](){const _0x55d8ad=a0_0x42fe4f;this[_0x55d8ad(0x197)](CONNECTION_STATE['CONNECTED']),this[_0x55d8ad(0x1cf)]=0x0,this['reconnectDelay']=this[_0x55d8ad(0x199)],this['emit']('connected'),this[_0x55d8ad(0x1ac)](),this[_0x55d8ad(0x1a7)]();}[a0_0x42fe4f(0x1a9)](_0x369dac){const _0x5cfd8f=a0_0x42fe4f;try{const _0x40044e=JSON['parse'](_0x369dac[_0x5cfd8f(0x198)]());if(_0x40044e[_0x5cfd8f(0x19f)]===WS_MESSAGE_TYPE[_0x5cfd8f(0x192)]){this[_0x5cfd8f(0x18c)]();return;}if(_0x40044e[_0x5cfd8f(0x19f)]===WS_MESSAGE_TYPE['CONNECTED']){this[_0x5cfd8f(0x1b5)]('welcome',_0x40044e);return;}if(_0x40044e[_0x5cfd8f(0x19f)]===WS_MESSAGE_TYPE[_0x5cfd8f(0x1c3)]){this[_0x5cfd8f(0x1d0)]=_0x40044e[_0x5cfd8f(0x1d0)],this[_0x5cfd8f(0x1b5)]('session_joined',_0x40044e);return;}if(_0x40044e['type']===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this[_0x5cfd8f(0x1b7)](_0x40044e);return;}this[_0x5cfd8f(0x1b5)]('message',_0x40044e),_0x40044e['type']&&this['emit'](_0x40044e['type'],_0x40044e);}catch(_0x1929a2){this[_0x5cfd8f(0x1b5)]('parse_error',{'error':_0x1929a2,'data':_0x369dac});}}[a0_0x42fe4f(0x1ab)](_0x269515,_0x52202a){const _0x5e14c3=a0_0x42fe4f;this[_0x5e14c3(0x184)]();const _0x404be1=_0x52202a[_0x5e14c3(0x198)]()||'Unknown\x20reason';this['emit']('disconnected',{'code':_0x269515,'reason':_0x404be1}),this[_0x5e14c3(0x1ce)]&&_0x269515!==0x3e8?this['scheduleReconnect']():this[_0x5e14c3(0x197)](CONNECTION_STATE['DISCONNECTED']);}['handleError'](_0x1795a3){const _0x58e9f6=a0_0x42fe4f;this[_0x58e9f6(0x1b5)](_0x58e9f6(0x1bb),_0x1795a3);}['handleConnectionError'](_0x1834de){const _0x17c944=a0_0x42fe4f;this['setState'](CONNECTION_STATE[_0x17c944(0x1a2)]),this['emit'](_0x17c944(0x19d),_0x1834de),this['shouldReconnect']&&this[_0x17c944(0x1b6)]();}['scheduleReconnect'](){const _0x5d185a=a0_0x42fe4f;if(this['reconnectTimer'])return;this[_0x5d185a(0x197)](CONNECTION_STATE['RECONNECTING']),this[_0x5d185a(0x1cf)]++;const _0x966caf=Math[_0x5d185a(0x1ba)](this['reconnectDelay']*Math['pow'](TIMING[_0x5d185a(0x19c)],this[_0x5d185a(0x1cf)]-0x1),TIMING[_0x5d185a(0x191)]);this['emit']('reconnecting',{'attempt':this['reconnectAttempts'],'delay':_0x966caf}),this[_0x5d185a(0x1cd)]=setTimeout(()=>{const _0x3efdfc=_0x5d185a;this[_0x3efdfc(0x1cd)]=null,this['connect']();},_0x966caf);}[a0_0x42fe4f(0x1ac)](){const _0xe77898=a0_0x42fe4f;this[_0xe77898(0x19e)](),this[_0xe77898(0x194)]=setInterval(()=>{const _0x5a1003=_0xe77898;this[_0x5a1003(0x183)]===CONNECTION_STATE['CONNECTED']&&this[_0x5a1003(0x1ca)]();},this['heartbeatInterval']);}[a0_0x42fe4f(0x19e)](){const _0x2f6f1b=a0_0x42fe4f;this[_0x2f6f1b(0x194)]&&(clearInterval(this['pingInterval']),this[_0x2f6f1b(0x194)]=null),this[_0x2f6f1b(0x18f)]&&(clearTimeout(this[_0x2f6f1b(0x18f)]),this[_0x2f6f1b(0x18f)]=null);}[a0_0x42fe4f(0x1ca)](){const _0x137dd5=a0_0x42fe4f;if(this['state']!==CONNECTION_STATE['CONNECTED'])return;try{this['send']({'type':WS_MESSAGE_TYPE[_0x137dd5(0x1bd)]}),this['pongTimeout']=setTimeout(()=>{const _0x31bab3=_0x137dd5;this[_0x31bab3(0x18b)]();},TIMING[_0x137dd5(0x1af)]);}catch(_0x122031){this['emit']('ping_error',_0x122031);}}[a0_0x42fe4f(0x18c)](){const _0x336803=a0_0x42fe4f;this['lastPongReceived']=Date['now'](),this[_0x336803(0x18f)]&&(clearTimeout(this['pongTimeout']),this[_0x336803(0x18f)]=null);}[a0_0x42fe4f(0x18b)](){const _0x541922=a0_0x42fe4f;this[_0x541922(0x1b5)]('heartbeat_timeout'),this[_0x541922(0x182)](),this['shouldReconnect']&&this['scheduleReconnect']();}[a0_0x42fe4f(0x1b2)](_0x194b21){const _0xa14abc=a0_0x42fe4f;this['sessionId']=_0x194b21,this['send']({'type':WS_MESSAGE_TYPE[_0xa14abc(0x187)],'sessionId':_0x194b21});}['sendOrchestratorRequest'](_0x23960a,_0x476283,_0x2cac0e){const _0x436727=a0_0x42fe4f,_0x17245c=this['generateRequestId'](),_0x50e88f={'type':WS_MESSAGE_TYPE[_0x436727(0x1c2)],'requestId':_0x17245c,'action':_0x23960a,'payload':_0x476283,'projectDir':_0x2cac0e};return new Promise((_0x4dcdac,_0x29445c)=>{const _0x1d2998=_0x436727;this[_0x1d2998(0x1a5)]['set'](_0x17245c,{'resolve':_0x4dcdac,'reject':_0x29445c,'timestamp':Date[_0x1d2998(0x181)]()});try{this[_0x1d2998(0x1be)](_0x50e88f);}catch(_0x10c62a){this[_0x1d2998(0x1a5)]['delete'](_0x17245c),_0x29445c(_0x10c62a);}setTimeout(()=>{const _0x5ae2fb=_0x1d2998;this['pendingRequests'][_0x5ae2fb(0x1bf)](_0x17245c)&&(this['pendingRequests'][_0x5ae2fb(0x1c7)](_0x17245c),_0x29445c(new Error('Request\x20timeout')));},TIMING[_0x1d2998(0x1cc)]);});}['handleOrchestratorResponse'](_0x1d7828){const _0x3be041=a0_0x42fe4f,{requestId:_0x3c8ca3,response:_0x2ae356,error:_0x342e0c}=_0x1d7828;if(this[_0x3be041(0x1a5)][_0x3be041(0x1bf)](_0x3c8ca3)){const {resolve:_0x5dbeb2,reject:_0x38f157}=this['pendingRequests']['get'](_0x3c8ca3);this[_0x3be041(0x1a5)]['delete'](_0x3c8ca3),_0x342e0c?_0x38f157(new Error(_0x342e0c)):_0x5dbeb2(_0x2ae356);}}[a0_0x42fe4f(0x1be)](_0xf3bf5b){const _0x2d3e46=a0_0x42fe4f;if(this['state']!==CONNECTION_STATE[_0x2d3e46(0x193)]){this[_0x2d3e46(0x18d)][_0x2d3e46(0x19b)](_0xf3bf5b);return;}try{this['ws']['send'](JSON['stringify'](_0xf3bf5b));}catch(_0x1d2881){this['emit']('send_error',_0x1d2881);throw _0x1d2881;}}['processMessageQueue'](){const _0x43fce0=a0_0x42fe4f;while(this[_0x43fce0(0x18d)]['length']>0x0&&this[_0x43fce0(0x183)]===CONNECTION_STATE['CONNECTED']){const _0x3a1e65=this[_0x43fce0(0x18d)][_0x43fce0(0x1b3)]();try{this['ws']['send'](JSON['stringify'](_0x3a1e65));}catch(_0x4bd162){this['emit'](_0x43fce0(0x1c6),_0x4bd162),this['messageQueue']['unshift'](_0x3a1e65);break;}}}[a0_0x42fe4f(0x182)](){const _0xadc3d8=a0_0x42fe4f;this[_0xadc3d8(0x1ce)]=![],this[_0xadc3d8(0x184)]();if(this['ws']){try{this['ws']['close'](0x3e8,'Client\x20disconnect');}catch(_0x1381e4){}this['ws']=null;}this['setState'](CONNECTION_STATE[_0xadc3d8(0x1b1)]);}[a0_0x42fe4f(0x184)](){const _0x799687=a0_0x42fe4f;this['stopHeartbeat'](),this[_0x799687(0x1cd)]&&(clearTimeout(this[_0x799687(0x1cd)]),this[_0x799687(0x1cd)]=null),this['ws']&&this['ws'][_0x799687(0x1ad)]();}[a0_0x42fe4f(0x197)](_0x1cede2){const _0x8f4a12=a0_0x42fe4f,_0x528113=this[_0x8f4a12(0x183)];this['state']=_0x1cede2,_0x528113!==_0x1cede2&&this['emit']('state_change',{'oldState':_0x528113,'newState':_0x1cede2});}[a0_0x42fe4f(0x1aa)](){const _0x5914ea=a0_0x42fe4f;return this[_0x5914ea(0x1d3)]++,_0x5914ea(0x1c4)+Date[_0x5914ea(0x181)]()+'-'+this['requestIdCounter'];}['getState'](){const _0x5ce620=a0_0x42fe4f;return this[_0x5ce620(0x183)];}[a0_0x42fe4f(0x1a6)](){const _0x26301e=a0_0x42fe4f;return this[_0x26301e(0x183)]===CONNECTION_STATE['CONNECTED'];}[a0_0x42fe4f(0x1d1)](){const _0x7744ba=a0_0x42fe4f;return this[_0x7744ba(0x1d0)];}[a0_0x42fe4f(0x18a)](){const _0x304927=a0_0x42fe4f;return{'state':this[_0x304927(0x183)],'sessionId':this['sessionId'],'reconnectAttempts':this['reconnectAttempts'],'queuedMessages':this['messageQueue'][_0x304927(0x1c1)],'pendingRequests':this['pendingRequests'][_0x304927(0x1b0)],'lastPongReceived':this['lastPongReceived']};}}export default WebSocketManager;
|