@loxia-labs/loxia-autopilot-one 1.0.16 → 1.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/bin/cli.js +1 -1
- package/bin/loxia-terminal-v2.js +1 -1
- package/bin/loxia-terminal.js +1 -1
- package/bin/start-with-terminal.js +1 -1
- package/package.json +1 -1
- package/scripts/install-scanners.js +1 -1
- package/src/analyzers/CSSAnalyzer.js +1 -1
- package/src/analyzers/ConfigValidator.js +1 -1
- package/src/analyzers/ESLintAnalyzer.js +1 -1
- package/src/analyzers/JavaScriptAnalyzer.js +1 -1
- package/src/analyzers/PrettierFormatter.js +1 -1
- package/src/analyzers/PythonAnalyzer.js +1 -1
- package/src/analyzers/SecurityAnalyzer.js +1 -1
- package/src/analyzers/TypeScriptAnalyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/detector.js +1 -1
- package/src/analyzers/codeCloneDetector/index.js +1 -1
- package/src/analyzers/codeCloneDetector/parser.js +1 -1
- package/src/analyzers/codeCloneDetector/reporter.js +1 -1
- package/src/analyzers/codeCloneDetector/scanner.js +1 -1
- package/src/core/agentPool.js +1 -1
- package/src/core/agentScheduler.js +1 -1
- package/src/core/contextManager.js +1 -1
- package/src/core/messageProcessor.js +1 -1
- package/src/core/orchestrator.js +1 -1
- package/src/core/stateManager.js +1 -1
- package/src/index.js +1 -1
- package/src/interfaces/cli.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
- package/src/interfaces/terminal/api/apiClient.js +1 -1
- package/src/interfaces/terminal/api/messageRouter.js +1 -1
- package/src/interfaces/terminal/api/session.js +1 -1
- package/src/interfaces/terminal/api/websocket.js +1 -1
- package/src/interfaces/terminal/components/AgentCreator.js +1 -1
- package/src/interfaces/terminal/components/AgentEditor.js +1 -1
- package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
- package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
- package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
- package/src/interfaces/terminal/components/Header.js +1 -1
- package/src/interfaces/terminal/components/HelpPanel.js +1 -1
- package/src/interfaces/terminal/components/InputBox.js +1 -1
- package/src/interfaces/terminal/components/Layout.js +1 -1
- package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
- package/src/interfaces/terminal/components/MessageList.js +1 -1
- package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
- package/src/interfaces/terminal/components/SearchPanel.js +1 -1
- package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
- package/src/interfaces/terminal/components/StatusBar.js +1 -1
- package/src/interfaces/terminal/components/TextInput.js +1 -1
- package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
- package/src/interfaces/terminal/config/constants.js +1 -1
- package/src/interfaces/terminal/index.js +1 -1
- package/src/interfaces/terminal/state/useAgentControl.js +1 -1
- package/src/interfaces/terminal/state/useAgents.js +1 -1
- package/src/interfaces/terminal/state/useConnection.js +1 -1
- package/src/interfaces/terminal/state/useMessages.js +1 -1
- package/src/interfaces/terminal/state/useTools.js +1 -1
- package/src/interfaces/terminal/utils/debugLogger.js +1 -1
- package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
- package/src/interfaces/terminal/utils/theme.js +1 -1
- package/src/interfaces/webServer.js +1 -1
- package/src/modules/fileExplorer/controller.js +1 -1
- package/src/modules/fileExplorer/index.js +1 -1
- package/src/modules/fileExplorer/middleware.js +1 -1
- package/src/modules/fileExplorer/routes.js +1 -1
- package/src/services/agentActivityService.js +1 -1
- package/src/services/aiService.js +1 -1
- package/src/services/apiKeyManager.js +1 -1
- package/src/services/benchmarkService.js +1 -1
- package/src/services/budgetService.js +1 -1
- package/src/services/contextInjectionService.js +1 -1
- package/src/services/conversationCompactionService.js +1 -1
- package/src/services/errorHandler.js +1 -1
- package/src/services/fileAttachmentService.js +1 -1
- package/src/services/modelRouterService.js +1 -1
- package/src/services/modelsService.js +1 -1
- package/src/services/qualityInspector.js +1 -1
- package/src/services/tokenCountingService.js +1 -1
- package/src/tools/agentCommunicationTool.js +1 -1
- package/src/tools/agentDelayTool.js +1 -1
- package/src/tools/asyncToolManager.js +1 -1
- package/src/tools/baseTool.js +1 -1
- package/src/tools/browserTool.js +1 -1
- package/src/tools/cloneDetectionTool.js +1 -1
- package/src/tools/dependencyResolverTool.js +1 -1
- package/src/tools/fileContentReplaceTool.js +1 -1
- package/src/tools/fileSystemTool.js +1 -1
- package/src/tools/fileTreeTool.js +1 -1
- package/src/tools/imageTool.js +1 -1
- package/src/tools/importAnalyzerTool.js +1 -1
- package/src/tools/jobDoneTool.js +1 -1
- package/src/tools/seekTool.js +1 -1
- package/src/tools/staticAnalysisTool.js +1 -1
- package/src/tools/taskManagerTool.js +1 -1
- package/src/tools/terminalTool.js +1 -1
- package/src/tools/webTool.js +1 -1
- package/src/types/agent.js +1 -1
- package/src/types/contextReference.js +1 -1
- package/src/types/conversation.js +1 -1
- package/src/types/toolCommand.js +1 -1
- package/src/utilities/attachmentValidator.js +1 -1
- package/src/utilities/configManager.js +1 -1
- package/src/utilities/constants.js +1 -1
- package/src/utilities/directoryAccessManager.js +1 -1
- package/src/utilities/fileProcessor.js +1 -1
- package/src/utilities/logger.js +1 -1
- package/src/utilities/tagParser.js +1 -1
- package/src/utilities/toolConstants.js +1 -1
- package/src/utilities/userDataDir.js +1 -1
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/index-Cb8CHAFw.css +1 -0
- package/web-ui/build/static/index-DL2-PyNX.js +367 -0
- package/web-ui/build/static/index-DFmFvOoy.css +0 -1
- package/web-ui/build/static/index-DOk0l6Kf.js +0 -348
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0xf2dfb8=a0_0x3eb8;function a0_0x364a(){const _0x5e1416=['BM90','mty1nde2vvr5ywzN','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbOyw5KBgvY','Ag9ZDa','BgvUz3rO','mteXmJGWodbtD1PSBgC','Cg9YDa','z2v0u2vZC2LVBKLUzM8','lI4VlI4VyxbPl3nLC3nPB24UANm','Dg9czurLzMLUzwq','veLnsu5h','CgvUzgLUz1jLCxvLC3rZ','DxjS','ndmWsenzqNHp','DMvUzg9Ys2v5C0nVDw50','Dg9iyxzLuhjVCgvYDhK','BM90lweTzNvUy3rPB24','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','Bg94AwfbCgLlzxK','z2v0u3rHDhm','v0vcu09ds0vux1bjtKDFsu5urvjwquW','AgfZsgfUzgXLCG','su1br0vFuKvtvuXu','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','rvHfq1vusu9ox1nut1bqruq','q09otKvdveLptL9tvefurq','DgvZDc1OB3n0','Dg9uAhjVDW','A2v5','mtHRwwTtrwG','nZC1mZv2wKHtyKe','DgvZDc1TzxnZywDL','quDftLrFtu9erq','tuvtu0fhrv9brerfra','u2vZC2LVBK1HBMfNzxiGy2XLyxiOksbYzxnLDhmGywXSihn0yxrL','C2vZC2LVBKLK','v2vIu29JA2v0twfUywDLCIbPBML0AwfSAxPLCYb3AxrOignVCNjLy3qGC3rHDgu','BNvTyMvY','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbjBxbVCNrZ','zgLZy29UBMvJDgvK','ywXSB3DLzc10ExbL','Dg9nyxrJAa','yMXVy2TLzc10ExbL','CMvNAxn0zxjiyw5KBgvY','DgvZDc0XmJm','mZv1wLDJvfq','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbfCNjVCIbiyw5KBgLUzW','Dg9czvrYDxrOEq','u0LerujbuL9xsurusa','revgqvvmvf9qt1ju','mtuWmJyWnfbus0zYzq','y29UBMvJDgvK','AxnwywXPza','Dg9fCxvHBa','Bg9JywXOB3n0','mta4ntmWEvDdzg9Y','odaZntq1DhfqEwLz','v2vIu29JA2v0twfUywDLCIbOzwXWzxiGBwv0Ag9KCYb3B3jR','Dg9czq','mMrSrxjABq','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','revgqvvmvf9it1nu','mti2odeYmfPODMvvsa','BwLKzgXLD2fYzq','ChjVAMvJDerPCG','zNvUy3rPB24','sgfUzgXLCIbTDxn0igjLigeGzNvUy3rPB24','tKvuv09ssW','quDftLrFtu9erv9dsefor0ve','DxnL','twvZC2fNzvjVDxrLCIbTAwrKBgv3yxjLignHBIbIzsbHzgrLzcbHBMqGCMvTB3zLza','vuLFreLnru5tsu9ouW','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','tuvtu0fhrv9msvnux0HfsuDiva','u2vZC2LVBK1HBMfNzxiGAw5PDgLHBgL6zxmGD2L0AcbJB3jYzwn0ihn0yxrL','mtf5svnQD2W','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','DgvZDc1RzxK','reLtq09otKvdveve','DgvZDa','DMvUzg9Ys2v5CW'];a0_0x364a=function(){return _0x5e1416;};return a0_0x364a();}(function(_0x5ce7c3,_0x5cc1ac){const _0x403441=a0_0x3eb8,_0xd96545=_0x5ce7c3();while(!![]){try{const _0x2721a8=-parseInt(_0x403441(0x116))/0x1*(parseInt(_0x403441(0x11a))/0x2)+parseInt(_0x403441(0x111))/0x3+-parseInt(_0x403441(0x11d))/0x4+-parseInt(_0x403441(0x117))/0x5*(parseInt(_0x403441(0xfc))/0x6)+-parseInt(_0x403441(0x10c))/0x7*(-parseInt(_0x403441(0x131))/0x8)+parseInt(_0x403441(0xfd))/0x9*(-parseInt(_0x403441(0x13d))/0xa)+-parseInt(_0x403441(0x12a))/0xb*(-parseInt(_0x403441(0x135))/0xc);if(_0x2721a8===_0x5cc1ac)break;else _0xd96545['push'](_0xd96545['shift']());}catch(_0x47f32d){_0xd96545['push'](_0xd96545['shift']());}}}(a0_0x364a,0x3de15));import{describe,test,expect}from'@jest/globals';function a0_0x3eb8(_0x2d9b26,_0x51724a){_0x2d9b26=_0x2d9b26-0xf2;const _0x364a05=a0_0x364a();let _0x3eb892=_0x364a05[_0x2d9b26];if(a0_0x3eb8['gIEKuv']===undefined){var _0x468a8e=function(_0x1a4ff2){const _0x2d2712='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3c3603='',_0x5ebb71='';for(let _0x2ac0c4=0x0,_0x968808,_0x37dceb,_0x30dfdc=0x0;_0x37dceb=_0x1a4ff2['charAt'](_0x30dfdc++);~_0x37dceb&&(_0x968808=_0x2ac0c4%0x4?_0x968808*0x40+_0x37dceb:_0x37dceb,_0x2ac0c4++%0x4)?_0x3c3603+=String['fromCharCode'](0xff&_0x968808>>(-0x2*_0x2ac0c4&0x6)):0x0){_0x37dceb=_0x2d2712['indexOf'](_0x37dceb);}for(let _0x3566f5=0x0,_0x12d8dc=_0x3c3603['length'];_0x3566f5<_0x12d8dc;_0x3566f5++){_0x5ebb71+='%'+('00'+_0x3c3603['charCodeAt'](_0x3566f5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5ebb71);};a0_0x3eb8['MPWxWu']=_0x468a8e,a0_0x3eb8['lhiUSx']={},a0_0x3eb8['gIEKuv']=!![];}const _0x5a5616=_0x364a05[0x0],_0x5de846=_0x2d9b26+_0x5a5616,_0x32b650=a0_0x3eb8['lhiUSx'][_0x5de846];return!_0x32b650?(_0x3eb892=a0_0x3eb8['MPWxWu'](_0x3eb892),a0_0x3eb8['lhiUSx'][_0x5de846]=_0x3eb892):_0x3eb892=_0x32b650,_0x3eb892;}import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);describe(a0_0xf2dfb8(0x105),()=>{test('constants module exports all required constants',async()=>{const _0x1e8d97=a0_0x3eb8,_0x3c3603=await import(_0x1e8d97(0x141));expect(_0x3c3603[_0x1e8d97(0x126)])['toBeDefined'](),expect(_0x3c3603['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x3c3603['PAGINATION'])['toBeDefined'](),expect(_0x3c3603[_0x1e8d97(0x13a)])['toBeDefined'](),expect(_0x3c3603['NETWORK'])['toBeDefined'](),expect(_0x3c3603[_0x1e8d97(0xf8)])[_0x1e8d97(0x139)](),expect(_0x3c3603[_0x1e8d97(0xff)])[_0x1e8d97(0x139)](),expect(_0x3c3603['WS_MESSAGE_TYPE'])['toBeDefined'](),expect(_0x3c3603['API_ENDPOINTS'])['toBeDefined'](),expect(_0x3c3603['COMMANDS'])[_0x1e8d97(0x139)](),expect(_0x3c3603[_0x1e8d97(0x122)][_0x1e8d97(0x11c)])[_0x1e8d97(0x119)]('localhost'),expect(_0x3c3603[_0x1e8d97(0x122)]['DEFAULT_PORT'])['toBe'](0x1f90),expect(_0x3c3603['CONNECTION_STATE']['DISCONNECTED'])[_0x1e8d97(0x119)](_0x1e8d97(0x106)),expect(_0x3c3603['CONNECTION_STATE']['CONNECTED'])['toBe'](_0x1e8d97(0x112));}),test('WebSocketManager class can be imported',async()=>{const _0x3f29c3=a0_0x3eb8,{WebSocketManager:_0x5ebb71}=await import('../../api/websocket.js');expect(_0x5ebb71)['toBeDefined'](),expect(typeof _0x5ebb71)['toBe']('function');const _0x2ac0c4=new _0x5ebb71(_0x3f29c3(0x115),0x1f90);expect(_0x2ac0c4)['toBeDefined'](),expect(_0x2ac0c4[_0x3f29c3(0x133)])[_0x3f29c3(0x119)]('localhost'),expect(_0x2ac0c4['port'])['toBe'](0x1f90),expect(_0x2ac0c4[_0x3f29c3(0x13c)])['toBe']('ws://localhost:8080');}),test('SessionManager class can be imported',async()=>{const _0x3ba311=a0_0x3eb8,{SessionManager:_0x968808}=await import('../../api/session.js');expect(_0x968808)['toBeDefined'](),expect(typeof _0x968808)[_0x3ba311(0x119)](_0x3ba311(0x120));const _0x37dceb=new _0x968808(_0x3ba311(0x115),0x1f90);expect(_0x37dceb)[_0x3ba311(0x139)](),expect(_0x37dceb['host'])['toBe']('localhost'),expect(_0x37dceb[_0x3ba311(0x136)])['toBe'](0x1f90),expect(_0x37dceb['baseUrl'])[_0x3ba311(0x119)]('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x2fc7cb=a0_0x3eb8,{MessageRouter:_0x30dfdc}=await import(_0x2fc7cb(0x127)),{WebSocketManager:_0x3566f5}=await import(_0x2fc7cb(0x11b));expect(_0x30dfdc)[_0x2fc7cb(0x139)](),expect(typeof _0x30dfdc)['toBe'](_0x2fc7cb(0x120));const _0x12d8dc=new _0x3566f5('localhost',0x1f90),_0x3eb3d5=new _0x30dfdc(_0x12d8dc);expect(_0x3eb3d5)['toBeDefined'](),expect(_0x3eb3d5['ws'])[_0x2fc7cb(0x119)](_0x12d8dc);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x283429=a0_0x3eb8,{loggingMiddleware:_0x1d6155,filterMiddleware:_0x4213bf,transformMiddleware:_0x355694,timestampMiddleware:_0x524c3b,validationMiddleware:_0x169ed1}=await import(_0x283429(0x127));expect(typeof _0x1d6155)['toBe']('function'),expect(typeof _0x4213bf)['toBe']('function'),expect(typeof _0x355694)['toBe']('function'),expect(typeof _0x524c3b)[_0x283429(0x119)](_0x283429(0x120)),expect(typeof _0x169ed1)[_0x283429(0x119)]('function');}),test('useConnection hook can be imported',async()=>{const _0x55bad9=a0_0x3eb8,{useConnection:_0x25f4f2,useConnectionStatus:_0x371be7}=await import('../../state/useConnection.js');expect(_0x25f4f2)[_0x55bad9(0x139)](),expect(typeof _0x25f4f2)[_0x55bad9(0x119)]('function'),expect(_0x371be7)['toBeDefined'](),expect(typeof _0x371be7)['toBe'](_0x55bad9(0x120));});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0xcb01f3=a0_0xf2dfb8;test(_0xcb01f3(0x103),async()=>{const _0xb70966=_0xcb01f3,{WebSocketManager:_0x37572b}=await import(_0xb70966(0x11b)),{CONNECTION_STATE:_0xdc68b5}=await import(_0xb70966(0x141)),_0x1d586e=new _0x37572b(_0xb70966(0xf9),0x2382);expect(_0x1d586e['state'])['toBe'](_0xdc68b5['DISCONNECTED']),expect(_0x1d586e['sessionId'])[_0xb70966(0x119)](null),expect(_0x1d586e['messageQueue'])['toEqual']([]),expect(_0x1d586e['reconnectAttempts'])[_0xb70966(0x119)](0x0),expect(_0x1d586e['shouldReconnect'])['toBe'](!![]);}),test(_0xcb01f3(0x129),async()=>{const _0x54b2fb=_0xcb01f3,{SessionManager:_0x5008f3}=await import('../../api/session.js'),_0xf7ae92=new _0x5008f3('test-host',0x2382);expect(_0xf7ae92[_0x54b2fb(0x102)])['toBe'](null),expect(_0xf7ae92['projectDir'])[_0x54b2fb(0x119)](null),expect(_0xf7ae92[_0x54b2fb(0x142)])['toBe'](null),expect(_0xf7ae92[_0x54b2fb(0x12f)])[_0x54b2fb(0x114)]({}),expect(_0xf7ae92[_0x54b2fb(0x113)]())['toBe'](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x2539dd=_0xcb01f3,{MessageRouter:_0x3aede1}=await import(_0x2539dd(0x127)),{WebSocketManager:_0x2336bc}=await import(_0x2539dd(0x11b)),{WS_MESSAGE_TYPE:_0x28fb0a}=await import(_0x2539dd(0x141)),_0x4d2332=new _0x2336bc(_0x2539dd(0x115),0x1f90),_0x2a0d0e=new _0x3aede1(_0x4d2332);expect(_0x2a0d0e['hasHandler'](_0x28fb0a[_0x2539dd(0x100)]))[_0x2539dd(0x119)](!![]),expect(_0x2a0d0e[_0x2539dd(0xf4)](_0x28fb0a[_0x2539dd(0x123)]))[_0x2539dd(0x119)](!![]),expect(_0x2a0d0e['hasHandler'](_0x28fb0a[_0x2539dd(0xf7)]))[_0x2539dd(0x119)](!![]),expect(_0x2a0d0e[_0x2539dd(0xf4)](_0x28fb0a['COMPACTION_EVENT']))['toBe'](!![]),expect(_0x2a0d0e['hasHandler'](_0x28fb0a[_0x2539dd(0xf5)]))[_0x2539dd(0x119)](!![]);}),test(_0xcb01f3(0x125),async()=>{const _0x9df6dd=_0xcb01f3,{MessageRouter:_0x27cbed}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x5b6082}=await import(_0x9df6dd(0x11b)),_0x8898bf=new _0x5b6082('localhost',0x1f90),_0x32fb95=new _0x27cbed(_0x8898bf),_0x22e979=_0x5d8dba=>_0x5d8dba;expect(_0x32fb95['middleware']['length'])[_0x9df6dd(0x12b)](0x0),_0x32fb95[_0x9df6dd(0x124)](_0x22e979);const _0x58d2b4=_0x32fb95['middleware'][_0x9df6dd(0x134)];expect(_0x58d2b4)['toBeGreaterThan'](0x0),_0x32fb95['removeMiddleware'](_0x22e979),expect(_0x32fb95[_0x9df6dd(0x11e)][_0x9df6dd(0x134)])[_0x9df6dd(0x119)](_0x58d2b4-0x1);}),test('SessionManager\x20helper\x20methods\x20work',async()=>{const _0x684dee=_0xcb01f3,{SessionManager:_0x48a90a}=await import(_0x684dee(0x138)),_0x1ef58c=new _0x48a90a(_0x684dee(0x115),0x1f90);expect(_0x1ef58c['getSessionId']())[_0x684dee(0x119)](null),expect(_0x1ef58c['getProjectDir']())[_0x684dee(0x119)](null),expect(_0x1ef58c[_0x684dee(0x113)]())[_0x684dee(0x119)](![]);const _0x2d39bb=_0x1ef58c[_0x684dee(0x137)]();expect(_0x2d39bb)['toHaveProperty'](_0x684dee(0x102)),expect(_0x2d39bb)['toHaveProperty']('projectDir'),expect(_0x2d39bb)['toHaveProperty']('hasLoxiaKey'),expect(_0x2d39bb)[_0x684dee(0x13f)](_0x684dee(0x13e));}),test(_0xcb01f3(0x118),async()=>{const _0x33dacf=_0xcb01f3,{WebSocketManager:_0x208485}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x315a6f}=await import('../../config/constants.js'),_0x54ed86=new _0x208485('localhost',0x1f90);expect(_0x54ed86['getState']())[_0x33dacf(0x119)](_0x315a6f[_0x33dacf(0x12d)]),expect(_0x54ed86['isConnected']())['toBe'](![]),expect(_0x54ed86['getSessionId']())['toBe'](null);const _0x6e5b0f=_0x54ed86[_0x33dacf(0xf2)]();expect(_0x6e5b0f)['toHaveProperty']('state'),expect(_0x6e5b0f)['toHaveProperty'](_0x33dacf(0x102)),expect(_0x6e5b0f)['toHaveProperty']('reconnectAttempts'),expect(_0x6e5b0f)['toHaveProperty']('queuedMessages'),expect(_0x6e5b0f)['toHaveProperty'](_0x33dacf(0x13b));}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x10d05b=_0xcb01f3,{MessageRouter:_0x3d8a94}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x2be739}=await import('../../api/websocket.js'),_0x20af0e=new _0x2be739('localhost',0x1f90),_0x1203c3=new _0x3d8a94(_0x20af0e),_0x159f37=()=>{};expect(_0x1203c3[_0x10d05b(0xf4)]('test-message'))['toBe'](![]),_0x1203c3[_0x10d05b(0x10a)](_0x10d05b(0xfe),_0x159f37),expect(_0x1203c3[_0x10d05b(0xf4)]('test-message'))[_0x10d05b(0x119)](!![]),_0x1203c3['unregisterHandler']('test-message'),expect(_0x1203c3['hasHandler'](_0x10d05b(0xfe)))[_0x10d05b(0x119)](![]);}),test('MessageRouter\x20middleware\x20helpers\x20create\x20valid\x20middleware',async()=>{const _0x4e3fd6=_0xcb01f3,{loggingMiddleware:_0x188e09,timestampMiddleware:_0x112bc3,filterMiddleware:_0x15ea67}=await import(_0x4e3fd6(0x127)),_0x40761a=_0x188e09();expect(typeof _0x40761a)[_0x4e3fd6(0x119)]('function');const _0x115e31=_0x112bc3();expect(typeof _0x115e31)['toBe'](_0x4e3fd6(0x120));const _0x41049c={'type':_0x4e3fd6(0x12e)},_0x1f59ba=_0x115e31(_0x41049c);expect(_0x1f59ba)[_0x4e3fd6(0x13f)]('receivedAt'),expect(_0x1f59ba['type'])[_0x4e3fd6(0x119)](_0x4e3fd6(0x12e));const _0x510355=_0x15ea67(['allowed-type']);expect(typeof _0x510355)[_0x4e3fd6(0x119)](_0x4e3fd6(0x120)),expect(_0x510355({'type':_0x4e3fd6(0x107)}))[_0x4e3fd6(0x10e)](),expect(_0x510355({'type':_0x4e3fd6(0x109)}))[_0x4e3fd6(0x119)](null);}),test('Constants\x20have\x20no\x20magic\x20numbers',async()=>{const _0x4d9540=_0xcb01f3,_0xe24784=await import(_0x4d9540(0x141));expect(typeof _0xe24784['TIMING']['WEBSOCKET_RECONNECT_DELAY'])['toBe'](_0x4d9540(0x104)),expect(typeof _0xe24784['TIMING'][_0x4d9540(0xf3)])[_0x4d9540(0x119)](_0x4d9540(0x104)),expect(typeof _0xe24784['NETWORK'][_0x4d9540(0x110)])['toBe']('number'),expect(typeof _0xe24784[_0x4d9540(0x122)]['MAX_RETRIES'])['toBe'](_0x4d9540(0x104)),expect(typeof _0xe24784['NETWORK']['HTTP_TIMEOUT'])['toBe']('number'),expect(typeof _0xe24784['UI_DIMENSIONS'][_0x4d9540(0x128)])[_0x4d9540(0x119)](_0x4d9540(0x104)),expect(typeof _0xe24784['UI_DIMENSIONS'][_0x4d9540(0x10f)])['toBe'](_0x4d9540(0x104));});}),describe(a0_0xf2dfb8(0x10d),()=>{const _0x3238da=a0_0xf2dfb8;test(_0x3238da(0x132),async()=>{const _0x455d89=_0x3238da,{MessageRouter:_0x249460}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x2420f6}=await import('../../api/websocket.js'),_0x135f35=new _0x2420f6('localhost',0x1f90),_0x1471d6=new _0x249460(_0x135f35);expect(()=>{const _0x42b5da=a0_0x3eb8;_0x1471d6['registerHandler'](_0x42b5da(0x12e),_0x42b5da(0x140));})[_0x455d89(0xfa)](_0x455d89(0x121));}),test('MessageRouter\x20throws\x20on\x20invalid\x20middleware',async()=>{const _0xb28784=_0x3238da,{MessageRouter:_0x138462}=await import(_0xb28784(0x127)),{WebSocketManager:_0x428ed1}=await import('../../api/websocket.js'),_0x27a2b8=new _0x428ed1(_0xb28784(0x115),0x1f90),_0x1c6188=new _0x138462(_0x27a2b8);expect(()=>{const _0x582c57=_0xb28784;_0x1c6188[_0x582c57(0x124)]('not-a-function');})[_0xb28784(0xfa)]('Middleware\x20must\x20be\x20a\x20function');}),test(_0x3238da(0x101),async()=>{const _0x16a791=_0x3238da,{SessionManager:_0x178172}=await import(_0x16a791(0x138)),_0x1fbc10=new _0x178172('localhost',0x1f90);_0x1fbc10['sessionId']=_0x16a791(0x10b),_0x1fbc10[_0x16a791(0x11f)]='/test/dir',_0x1fbc10[_0x16a791(0x142)]=_0x16a791(0x12c),_0x1fbc10[_0x16a791(0x12f)]={'openai':_0x16a791(0xfb)},expect(_0x1fbc10[_0x16a791(0x113)]())[_0x16a791(0x119)](!![]),_0x1fbc10['clear'](),expect(_0x1fbc10[_0x16a791(0x102)])['toBe'](null),expect(_0x1fbc10['projectDir'])['toBe'](null),expect(_0x1fbc10[_0x16a791(0x142)])['toBe'](null),expect(_0x1fbc10['vendorKeys'])['toEqual']({}),expect(_0x1fbc10[_0x16a791(0x113)]())['toBe'](![]);}),test(_0x3238da(0xf6),async()=>{const _0x357cc1=_0x3238da,{WebSocketManager:_0x10df33}=await import('../../api/websocket.js'),_0x278df0=new _0x10df33('localhost',0x1f90),_0x4e4b0b=_0x278df0['generateRequestId'](),_0x2b6098=_0x278df0['generateRequestId'](),_0x493724=_0x278df0['generateRequestId']();expect(_0x4e4b0b)[_0x357cc1(0x130)][_0x357cc1(0x119)](_0x2b6098),expect(_0x2b6098)[_0x357cc1(0x130)]['toBe'](_0x493724),expect(_0x4e4b0b)['not'][_0x357cc1(0x119)](_0x493724),expect(_0x4e4b0b)['toMatch'](/^req-\d+-\d+$/),expect(_0x2b6098)[_0x357cc1(0x108)](/^req-\d+-\d+$/),expect(_0x493724)[_0x357cc1(0x108)](/^req-\d+-\d+$/);});});
|
|
1
|
+
const a0_0x2213c7=a0_0x2de3;(function(_0x20d46f,_0x1294fe){const _0x3675de=a0_0x2de3,_0x227870=_0x20d46f();while(!![]){try{const _0x2ecad9=parseInt(_0x3675de(0xed))/0x1+parseInt(_0x3675de(0xfb))/0x2*(parseInt(_0x3675de(0x129))/0x3)+parseInt(_0x3675de(0x11b))/0x4*(parseInt(_0x3675de(0x105))/0x5)+-parseInt(_0x3675de(0x121))/0x6*(parseInt(_0x3675de(0x122))/0x7)+parseInt(_0x3675de(0x12c))/0x8+-parseInt(_0x3675de(0xff))/0x9+-parseInt(_0x3675de(0x115))/0xa;if(_0x2ecad9===_0x1294fe)break;else _0x227870['push'](_0x227870['shift']());}catch(_0x51861c){_0x227870['push'](_0x227870['shift']());}}}(a0_0x128e,0xb1e92));function a0_0x2de3(_0x19e610,_0x5e7f0b){_0x19e610=_0x19e610-0xe8;const _0x128e92=a0_0x128e();let _0x2de32a=_0x128e92[_0x19e610];if(a0_0x2de3['JCjbyM']===undefined){var _0x2e4dbd=function(_0xa2e142){const _0x52e788='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x51436a='',_0x467422='';for(let _0x1c5984=0x0,_0x211e03,_0x192421,_0x11f0c8=0x0;_0x192421=_0xa2e142['charAt'](_0x11f0c8++);~_0x192421&&(_0x211e03=_0x1c5984%0x4?_0x211e03*0x40+_0x192421:_0x192421,_0x1c5984++%0x4)?_0x51436a+=String['fromCharCode'](0xff&_0x211e03>>(-0x2*_0x1c5984&0x6)):0x0){_0x192421=_0x52e788['indexOf'](_0x192421);}for(let _0x535251=0x0,_0x43318f=_0x51436a['length'];_0x535251<_0x43318f;_0x535251++){_0x467422+='%'+('00'+_0x51436a['charCodeAt'](_0x535251)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x467422);};a0_0x2de3['JrGOAA']=_0x2e4dbd,a0_0x2de3['VbCNmH']={},a0_0x2de3['JCjbyM']=!![];}const _0x2ace67=_0x128e92[0x0],_0x39c6ac=_0x19e610+_0x2ace67,_0x5044a7=a0_0x2de3['VbCNmH'][_0x39c6ac];return!_0x5044a7?(_0x2de32a=a0_0x2de3['JrGOAA'](_0x2de32a),a0_0x2de3['VbCNmH'][_0x39c6ac]=_0x2de32a):_0x2de32a=_0x5044a7,_0x2de32a;}import{describe,test,expect}from'@jest/globals';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function a0_0x128e(){const _0x2662a7=['DhLWzq','v1nFtuvtu0fhrv9uwvbf','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','z2v0u3rHDgu','DgvZDc1RzxK','revgqvvmvf9qt1ju','Dg9czq','AxnwywXPza','twvZC2fNzvjVDxrLCIb0AhjVD3mGB24GAw52ywXPzcbTAwrKBgv3yxjL','v2vIu29JA2v0twfUywDLCIbNzw5LCMf0zxmGDw5PCxvLihjLCxvLC3qGsurZ','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','q29UC3rHBNrZigHHDMuGBM8GBwfNAwmGBNvTyMvYCW','BM90lweTzNvUy3rPB24','BwLKzgXLD2fYzq','z2v0u2vZC2LVBKLK','otC1nZy4meLsuMvYEa','quDftLrFtu9erv9dsefor0ve','ChjVAMvJDerPCG','yMfZzvvYBa','Dg9czurLzMLUzwq','Dg9uAhjVDW','mta0mtuWnhHYChfVDa','Ag9ZDa','Dg9iyxzLuhjVCgvYDhK','DgvZDc1TzxnZywDL','Bg94AwfbCgLlzxK','Dg9fCxvHBa','mJi5ogPSvfbVBG','mtGWnJD1yNjcEwq','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','tuvtu0fhrv9brerfra','rvHfq1vusu9ox1nut1bqruq','Dg9czuDYzwf0zxjuAgfU','yMXVy2TLzc10ExbL','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','mZaWnLvzzuTkAW','C2vZC2LVBKLK','CxvLDwvKtwvZC2fNzxm','ntKXnJq4me9PwNvvsW','BgvUz3rO','DgvZDc0XmJm','ywXSB3DLzc10ExbL','D3m6lY9SB2nHBgHVC3q6oda4ma','v0vcu09ds0vux1bjtKDFsu5urvjwquW','otuWotaZDu5bD2Pn','Bg9JywXOB3n0','AgfZsgfUzgXLCG','Dg9nyxrJAa','CgvUzgLUz1jLCxvLC3rZ','tuvtu0fhrv9dt05gsuC','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','DgvZDa','CMvJB25Uzwn0qxr0zw1WDhm','v2vIu29JA2v0twfUywDLCIbPBML0AwfSAxPLCYb3AxrOignVCNjLy3qGC3rHDgu','revgqvvmvf9it1nu','q09ntuforfm','lI4VlI4VyxbPl3nLC3nPB24UANm','veLnsu5h','mJe0meLwrwz2Aa','BM90','tufyx1jfvfjjrvm','tKvuv09ssW','ntmXmZa3ofD6zgfRqW','zNvUy3rPB24','DgvZDc1OB3n0','BNvTyMvY','vgvYBwLUywWGvuKGsw5MCMfZDhj1y3r1CMuGlsbfCNjVCIbiyw5KBgLUzW','vuLFreLnru5tsu9ouW','mtbSrKntthO'];a0_0x128e=function(){return _0x2662a7;};return a0_0x128e();}describe('Terminal\x20UI\x20Infrastructure\x20-\x20Imports',()=>{test('constants module exports all required constants',async()=>{const _0x2c2d05=a0_0x2de3,_0x51436a=await import('../../config/constants.js');expect(_0x51436a['UI_DIMENSIONS'])[_0x2c2d05(0x119)](),expect(_0x51436a[_0x2c2d05(0xf2)])[_0x2c2d05(0x119)](),expect(_0x51436a['PAGINATION'])[_0x2c2d05(0x119)](),expect(_0x51436a[_0x2c2d05(0xfa)])[_0x2c2d05(0x119)](),expect(_0x51436a[_0x2c2d05(0xfe)])['toBeDefined'](),expect(_0x51436a['CONNECTION_STATE'])['toBeDefined'](),expect(_0x51436a['AGENT_MODE'])[_0x2c2d05(0x119)](),expect(_0x51436a[_0x2c2d05(0x107)])[_0x2c2d05(0x119)](),expect(_0x51436a['API_ENDPOINTS'])['toBeDefined'](),expect(_0x51436a[_0x2c2d05(0xf8)])[_0x2c2d05(0x119)](),expect(_0x51436a['NETWORK'][_0x2c2d05(0xf7)])[_0x2c2d05(0x10c)]('localhost'),expect(_0x51436a['NETWORK']['DEFAULT_PORT'])['toBe'](0x1f90),expect(_0x51436a['CONNECTION_STATE']['DISCONNECTED'])[_0x2c2d05(0x10c)]('disconnected'),expect(_0x51436a['CONNECTION_STATE']['CONNECTED'])[_0x2c2d05(0x10c)]('connected');}),test('WebSocketManager class can be imported',async()=>{const _0x3db50a=a0_0x2de3,{WebSocketManager:_0x467422}=await import('../../api/websocket.js');expect(_0x467422)['toBeDefined'](),expect(typeof _0x467422)[_0x3db50a(0x10c)](_0x3db50a(0x100));const _0x1c5984=new _0x467422('localhost',0x1f90);expect(_0x1c5984)[_0x3db50a(0x119)](),expect(_0x1c5984[_0x3db50a(0x11c)])[_0x3db50a(0x10c)](_0x3db50a(0xee)),expect(_0x1c5984['port'])['toBe'](0x1f90),expect(_0x1c5984['url'])['toBe'](_0x3db50a(0xeb));}),test('SessionManager class can be imported',async()=>{const _0x2f0949=a0_0x2de3,{SessionManager:_0x211e03}=await import(_0x2f0949(0xf9));expect(_0x211e03)[_0x2f0949(0x119)](),expect(typeof _0x211e03)['toBe']('function');const _0x192421=new _0x211e03('localhost',0x1f90);expect(_0x192421)[_0x2f0949(0x119)](),expect(_0x192421[_0x2f0949(0x11c)])['toBe']('localhost'),expect(_0x192421['port'])[_0x2f0949(0x10c)](0x1f90),expect(_0x192421[_0x2f0949(0x118)])[_0x2f0949(0x10c)]('http://localhost:8080');}),test('MessageRouter class can be imported',async()=>{const _0x45b14d=a0_0x2de3,{MessageRouter:_0x11f0c8}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x535251}=await import('../../api/websocket.js');expect(_0x11f0c8)[_0x45b14d(0x119)](),expect(typeof _0x11f0c8)[_0x45b14d(0x10c)](_0x45b14d(0x100));const _0x43318f=new _0x535251(_0x45b14d(0xee),0x1f90),_0x1a00b4=new _0x11f0c8(_0x43318f);expect(_0x1a00b4)['toBeDefined'](),expect(_0x1a00b4['ws'])[_0x45b14d(0x10c)](_0x43318f);}),test('MessageRouter middleware helpers can be imported',async()=>{const _0x1af636=a0_0x2de3,{loggingMiddleware:_0x395a8b,filterMiddleware:_0x4d518f,transformMiddleware:_0x3d0cf2,timestampMiddleware:_0x13f39c,validationMiddleware:_0x4ab934}=await import(_0x1af636(0x128));expect(typeof _0x395a8b)[_0x1af636(0x10c)](_0x1af636(0x100)),expect(typeof _0x4d518f)['toBe']('function'),expect(typeof _0x3d0cf2)[_0x1af636(0x10c)](_0x1af636(0x100)),expect(typeof _0x13f39c)['toBe']('function'),expect(typeof _0x4ab934)['toBe']('function');}),test('useConnection hook can be imported',async()=>{const _0x50a1a7=a0_0x2de3,{useConnection:_0x4c5d7c,useConnectionStatus:_0x31575a}=await import('../../state/useConnection.js');expect(_0x4c5d7c)[_0x50a1a7(0x119)](),expect(typeof _0x4c5d7c)['toBe'](_0x50a1a7(0x100)),expect(_0x31575a)[_0x50a1a7(0x119)](),expect(typeof _0x31575a)['toBe']('function');});}),describe('Terminal\x20UI\x20Infrastructure\x20-\x20Basic\x20Functionality',()=>{const _0x4b3117=a0_0x2de3;test(_0x4b3117(0xf6),async()=>{const _0x469084=_0x4b3117,{WebSocketManager:_0x326456}=await import('../../api/websocket.js'),{CONNECTION_STATE:_0x580c8d}=await import('../../config/constants.js'),_0x4d6036=new _0x326456(_0x469084(0x101),0x2382);expect(_0x4d6036['state'])['toBe'](_0x580c8d['DISCONNECTED']),expect(_0x4d6036[_0x469084(0x12a)])['toBe'](null),expect(_0x4d6036['messageQueue'])['toEqual']([]),expect(_0x4d6036[_0x469084(0xf5)])[_0x469084(0x10c)](0x0),expect(_0x4d6036['shouldReconnect'])['toBe'](!![]);}),test('SessionManager\x20initializes\x20with\x20correct\x20state',async()=>{const _0x169eac=_0x4b3117,{SessionManager:_0x5c1024}=await import(_0x169eac(0xf9)),_0x5ac026=new _0x5c1024(_0x169eac(0x101),0x2382);expect(_0x5ac026['sessionId'])[_0x169eac(0x10c)](null),expect(_0x5ac026[_0x169eac(0x117)])['toBe'](null),expect(_0x5ac026['loxiaApiKey'])[_0x169eac(0x10c)](null),expect(_0x5ac026['vendorKeys'])[_0x169eac(0x120)]({}),expect(_0x5ac026['isValid']())[_0x169eac(0x10c)](![]);}),test('MessageRouter initializes with default handlers',async()=>{const _0x62406c=_0x4b3117,{MessageRouter:_0x443fb1}=await import(_0x62406c(0x128)),{WebSocketManager:_0x14fb37}=await import(_0x62406c(0x110)),{WS_MESSAGE_TYPE:_0x156dec}=await import(_0x62406c(0x123)),_0x267266=new _0x14fb37(_0x62406c(0xee),0x1f90),_0xeed31f=new _0x443fb1(_0x267266);expect(_0xeed31f[_0x62406c(0xef)](_0x156dec[_0x62406c(0x124)]))['toBe'](!![]),expect(_0xeed31f[_0x62406c(0xef)](_0x156dec[_0x62406c(0x116)]))['toBe'](!![]),expect(_0xeed31f[_0x62406c(0xef)](_0x156dec[_0x62406c(0x125)]))['toBe'](!![]),expect(_0xeed31f['hasHandler'](_0x156dec['COMPACTION_EVENT']))['toBe'](!![]),expect(_0xeed31f[_0x62406c(0xef)](_0x156dec['IMAGE_RESULT']))[_0x62406c(0x10c)](!![]);}),test('MessageRouter\x20middleware\x20can\x20be\x20added\x20and\x20removed',async()=>{const _0x1d6d2b=_0x4b3117,{MessageRouter:_0x4983d4}=await import(_0x1d6d2b(0x128)),{WebSocketManager:_0x54724e}=await import('../../api/websocket.js'),_0x4ef1e5=new _0x54724e(_0x1d6d2b(0xee),0x1f90),_0x3fefe9=new _0x4983d4(_0x4ef1e5),_0x2cbee9=_0x2b088a=>_0x2b088a;expect(_0x3fefe9['middleware'][_0x1d6d2b(0xe8)])[_0x1d6d2b(0x108)](0x0),_0x3fefe9['use'](_0x2cbee9);const _0x4fb2ff=_0x3fefe9['middleware'][_0x1d6d2b(0xe8)];expect(_0x4fb2ff)[_0x1d6d2b(0x126)](0x0),_0x3fefe9['removeMiddleware'](_0x2cbee9),expect(_0x3fefe9[_0x1d6d2b(0x113)]['length'])['toBe'](_0x4fb2ff-0x1);}),test('SessionManager\x20helper\x20methods\x20work',async()=>{const _0x50b059=_0x4b3117,{SessionManager:_0x44e372}=await import(_0x50b059(0xf9)),_0x224095=new _0x44e372('localhost',0x1f90);expect(_0x224095[_0x50b059(0x114)]())['toBe'](null),expect(_0x224095['getProjectDir']())['toBe'](null),expect(_0x224095[_0x50b059(0x10d)]())[_0x50b059(0x10c)](![]);const _0x264850=_0x224095['getSessionInfo']();expect(_0x264850)['toHaveProperty'](_0x50b059(0x12a)),expect(_0x264850)[_0x50b059(0x11d)](_0x50b059(0x117)),expect(_0x264850)[_0x50b059(0x11d)]('hasLoxiaKey'),expect(_0x264850)['toHaveProperty']('vendorKeysCount');}),test('WebSocketManager\x20helper\x20methods\x20work',async()=>{const _0x5a95ed=_0x4b3117,{WebSocketManager:_0x245577}=await import(_0x5a95ed(0x110)),{CONNECTION_STATE:_0x1ebf69}=await import('../../config/constants.js'),_0x5a13a3=new _0x245577(_0x5a95ed(0xee),0x1f90);expect(_0x5a13a3[_0x5a95ed(0x109)]())['toBe'](_0x1ebf69['DISCONNECTED']),expect(_0x5a13a3['isConnected']())[_0x5a95ed(0x10c)](![]),expect(_0x5a13a3[_0x5a95ed(0x114)]())['toBe'](null);const _0x676b03=_0x5a13a3['getStats']();expect(_0x676b03)['toHaveProperty']('state'),expect(_0x676b03)[_0x5a95ed(0x11d)]('sessionId'),expect(_0x676b03)[_0x5a95ed(0x11d)](_0x5a95ed(0xf5)),expect(_0x676b03)[_0x5a95ed(0x11d)](_0x5a95ed(0x12b)),expect(_0x676b03)[_0x5a95ed(0x11d)](_0x5a95ed(0xf1));}),test('MessageRouter\x20can\x20register\x20and\x20unregister\x20handlers',async()=>{const _0x16fb46=_0x4b3117,{MessageRouter:_0x1d93a2}=await import(_0x16fb46(0x128)),{WebSocketManager:_0x5847e5}=await import('../../api/websocket.js'),_0x1d22c8=new _0x5847e5('localhost',0x1f90),_0x4b1797=new _0x1d93a2(_0x1d22c8),_0x1ea22f=()=>{};expect(_0x4b1797['hasHandler'](_0x16fb46(0x11e)))[_0x16fb46(0x10c)](![]),_0x4b1797['registerHandler']('test-message',_0x1ea22f),expect(_0x4b1797[_0x16fb46(0xef)]('test-message'))['toBe'](!![]),_0x4b1797['unregisterHandler']('test-message'),expect(_0x4b1797[_0x16fb46(0xef)](_0x16fb46(0x11e)))['toBe'](![]);}),test('MessageRouter\x20middleware\x20helpers\x20create\x20valid\x20middleware',async()=>{const _0x43a406=_0x4b3117,{loggingMiddleware:_0xa8bda,timestampMiddleware:_0x3f8ecc,filterMiddleware:_0x1442c5}=await import('../../api/messageRouter.js'),_0x30f3e7=_0xa8bda();expect(typeof _0x30f3e7)['toBe']('function');const _0x47d391=_0x3f8ecc();expect(typeof _0x47d391)['toBe']('function');const _0x17aa57={'type':_0x43a406(0xf4)},_0x3ea09f=_0x47d391(_0x17aa57);expect(_0x3ea09f)[_0x43a406(0x11d)]('receivedAt'),expect(_0x3ea09f[_0x43a406(0x106)])['toBe']('test');const _0x245d0e=_0x1442c5(['allowed-type']);expect(typeof _0x245d0e)['toBe'](_0x43a406(0x100)),expect(_0x245d0e({'type':_0x43a406(0xea)}))['toBeTruthy'](),expect(_0x245d0e({'type':_0x43a406(0x127)}))[_0x43a406(0x10c)](null);}),test(_0x4b3117(0x111),async()=>{const _0x50dd6a=_0x4b3117,_0x2c00ce=await import(_0x50dd6a(0x123));expect(typeof _0x2c00ce['TIMING']['WEBSOCKET_RECONNECT_DELAY'])[_0x50dd6a(0x10c)](_0x50dd6a(0x102)),expect(typeof _0x2c00ce[_0x50dd6a(0xfa)][_0x50dd6a(0xec)])['toBe'](_0x50dd6a(0x102)),expect(typeof _0x2c00ce[_0x50dd6a(0xfe)][_0x50dd6a(0x10b)])[_0x50dd6a(0x10c)](_0x50dd6a(0x102)),expect(typeof _0x2c00ce['NETWORK'][_0x50dd6a(0xfd)])[_0x50dd6a(0x10c)](_0x50dd6a(0x102)),expect(typeof _0x2c00ce[_0x50dd6a(0xfe)]['HTTP_TIMEOUT'])[_0x50dd6a(0x10c)]('number'),expect(typeof _0x2c00ce[_0x50dd6a(0x104)]['MESSAGE_LIST_HEIGHT'])[_0x50dd6a(0x10c)](_0x50dd6a(0x102)),expect(typeof _0x2c00ce['UI_DIMENSIONS']['SIDEBAR_WIDTH'])['toBe']('number');});}),describe(a0_0x2213c7(0x103),()=>{const _0xb7be3a=a0_0x2213c7;test('MessageRouter\x20throws\x20on\x20invalid\x20handler',async()=>{const _0x55b481=a0_0x2de3,{MessageRouter:_0x43b262}=await import(_0x55b481(0x128)),{WebSocketManager:_0x17b1cd}=await import('../../api/websocket.js'),_0x3a305e=new _0x17b1cd(_0x55b481(0xee),0x1f90),_0x3308e7=new _0x43b262(_0x3a305e);expect(()=>{const _0xdc45e8=_0x55b481;_0x3308e7['registerHandler'](_0xdc45e8(0xf4),_0xdc45e8(0x112));})['toThrow']('Handler\x20must\x20be\x20a\x20function');}),test(_0xb7be3a(0x10e),async()=>{const _0x38ea53=_0xb7be3a,{MessageRouter:_0x2c459c}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x527c77}=await import(_0x38ea53(0x110)),_0x1ef468=new _0x527c77(_0x38ea53(0xee),0x1f90),_0x22278f=new _0x2c459c(_0x1ef468);expect(()=>{const _0x10456c=_0x38ea53;_0x22278f['use'](_0x10456c(0x112));})[_0x38ea53(0x11a)](_0x38ea53(0xf3));}),test('SessionManager\x20clear()\x20resets\x20all\x20state',async()=>{const _0x3bfa7b=_0xb7be3a,{SessionManager:_0x1d920d}=await import('../../api/session.js'),_0x36e11e=new _0x1d920d(_0x3bfa7b(0xee),0x1f90);_0x36e11e[_0x3bfa7b(0x12a)]=_0x3bfa7b(0xe9),_0x36e11e[_0x3bfa7b(0x117)]='/test/dir',_0x36e11e[_0x3bfa7b(0x11f)]=_0x3bfa7b(0x10a),_0x36e11e['vendorKeys']={'openai':'key'},expect(_0x36e11e[_0x3bfa7b(0x10d)]())[_0x3bfa7b(0x10c)](!![]),_0x36e11e['clear'](),expect(_0x36e11e['sessionId'])[_0x3bfa7b(0x10c)](null),expect(_0x36e11e[_0x3bfa7b(0x117)])[_0x3bfa7b(0x10c)](null),expect(_0x36e11e[_0x3bfa7b(0x11f)])[_0x3bfa7b(0x10c)](null),expect(_0x36e11e['vendorKeys'])['toEqual']({}),expect(_0x36e11e['isValid']())['toBe'](![]);}),test(_0xb7be3a(0x10f),async()=>{const _0x29f903=_0xb7be3a,{WebSocketManager:_0x37851e}=await import('../../api/websocket.js'),_0x23cb79=new _0x37851e(_0x29f903(0xee),0x1f90),_0x4c1f56=_0x23cb79['generateRequestId'](),_0x100a3b=_0x23cb79['generateRequestId'](),_0x460c19=_0x23cb79['generateRequestId']();expect(_0x4c1f56)[_0x29f903(0xfc)][_0x29f903(0x10c)](_0x100a3b),expect(_0x100a3b)['not'][_0x29f903(0x10c)](_0x460c19),expect(_0x4c1f56)[_0x29f903(0xfc)]['toBe'](_0x460c19),expect(_0x4c1f56)[_0x29f903(0xf0)](/^req-\d+-\d+$/),expect(_0x100a3b)['toMatch'](/^req-\d+-\d+$/),expect(_0x460c19)['toMatch'](/^req-\d+-\d+$/);});});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0xf72ec1=a0_0x10fd;(function(_0xfa8f8c,_0x4536b1){const _0x5a5d49=a0_0x10fd,_0x3a6059=_0xfa8f8c();while(!![]){try{const _0x52d5e1=-parseInt(_0x5a5d49(0x22c))/0x1*(parseInt(_0x5a5d49(0x203))/0x2)+parseInt(_0x5a5d49(0x213))/0x3+-parseInt(_0x5a5d49(0x212))/0x4+parseInt(_0x5a5d49(0x227))/0x5*(parseInt(_0x5a5d49(0x21f))/0x6)+-parseInt(_0x5a5d49(0x224))/0x7*(-parseInt(_0x5a5d49(0x228))/0x8)+parseInt(_0x5a5d49(0x209))/0x9*(parseInt(_0x5a5d49(0x20d))/0xa)+parseInt(_0x5a5d49(0x21a))/0xb*(parseInt(_0x5a5d49(0x219))/0xc);if(_0x52d5e1===_0x4536b1)break;else _0x3a6059['push'](_0x3a6059['shift']());}catch(_0xed07f1){_0x3a6059['push'](_0x3a6059['shift']());}}}(a0_0x59c3,0x626da));function a0_0x59c3(){const _0x19bb3d=['uefhrv9tsvPf','mtaXndGZmNvyB0LMwq','mJi0ntq3qMrpDwv6','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZifzHBgLKyxrPB24','Dg9czq','tufyx01fu1nbr0vFtevor1ri','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','zNvUy3rPB24','mtyWotjvtNf5D2m','nta2z0PbCwXk','vvnfuL9nrvntquDf','lI4VlI4VC3rHDguVDxnLtwvZC2fNzxmUANm','DxnLtwvZC2fNzunVDw50ihjLDhvYBNmGzxHWzwn0zwqGAw50zxjMywnLihnOyxbL','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','mZe0ntjOzxr2quq','zgvMyxvSDa','uefhsu5bveLptIbJB25ZDgfUDhmGyxjLigrLzMLUzwq','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsg9VAYbjBNrLCMzHy2uGvMvYAwzPy2f0Aw9U','twvZC2fNzsbnyw5Hz2vTzw50ic0GugfNAw5HDgLVBIbmB2DPyW','mtrxtuj6rLy','DxnLtwvZC2fNzxmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','ndbQANHNCeu','ntmZmtq0qwHhyNjK','tuvtu0fhrv9st0Xf','twvZC2fNzsbbueKGzw5KCg9PBNrZigzVBgXVDYbsrvnuzNvSihbHDhrLCM4','zxHLy3v0Aw9Ux3n0B3bWzwq','n1vSvhHmzG','rvHfq1vusu9ox1nut1bqruq','tuvtu0fhrv9dt05gsuCGy29UC3rHBNrZigfYzsbKzwzPBMvK','t1jdsevtvfjbve9s','Bg9JywXOB3n0','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','BNvTyMvY','tufyx01fu1nbr0vtx0rju1bmqvK','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','Dg9czuDYzwf0zxjuAgfU','BgvUz3rO','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbKAxnWBgf5ig1LC3nHz2vZ','Dg9czurLzMLUzwq','ywDLBNqTCMvZCg9UC2u','l2fWAs9VCMnOzxn0CMf0B3i','DxnLtwvZC2fNzxm','C3LZDgvTlw5VDgLMAwnHDgLVBG','t3jJAgvZDhjHDg9YigvUzhbVAw50ignHBIbIzsb1C2vKigzVCIbTzxnZywDLig9WzxjHDgLVBNm','uefhsu5bveLptIbSAw1PDcbKB2vZig5VDcbLEgnLzwqGtufyx1bbr0vFu0LArq','qvntsvnuqu5u','otaYnJjSvK1fuha','tuvtu0fhrv9uwvbfignVBNn0yw50CYbHCMuGzgvMAw5Lza','tufyx1bbr0vFu0LArq','C3LZDgvT','Dg9czuXLC3nuAgfUt3jfCxvHBa','AgfZsgfUzgXLCG','otbXrvP5AuK','lI4VlI4VyxbPl3nLC3nPB24UANm','twvZC2fNzvjVDxrLCG','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','nJyXmdmWCfHptvDt','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','u2vZC2LVBK1HBMfNzxi','u1Ltvevn'];a0_0x59c3=function(){return _0x19bb3d;};return a0_0x59c3();}import{describe,test,expect}from'@jest/globals';function a0_0x10fd(_0x4a98d6,_0x1e6a42){_0x4a98d6=_0x4a98d6-0x1f2;const _0x59c34c=a0_0x59c3();let _0x10fd79=_0x59c34c[_0x4a98d6];if(a0_0x10fd['IbWFXl']===undefined){var _0x1c8411=function(_0x571297){const _0x4fc56a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2c9b0f='',_0x3f38bd='';for(let _0x515896=0x0,_0x3b9dea,_0x3052a1,_0x28c605=0x0;_0x3052a1=_0x571297['charAt'](_0x28c605++);~_0x3052a1&&(_0x3b9dea=_0x515896%0x4?_0x3b9dea*0x40+_0x3052a1:_0x3052a1,_0x515896++%0x4)?_0x2c9b0f+=String['fromCharCode'](0xff&_0x3b9dea>>(-0x2*_0x515896&0x6)):0x0){_0x3052a1=_0x4fc56a['indexOf'](_0x3052a1);}for(let _0x52c21d=0x0,_0x3ad727=_0x2c9b0f['length'];_0x52c21d<_0x3ad727;_0x52c21d++){_0x3f38bd+='%'+('00'+_0x2c9b0f['charCodeAt'](_0x52c21d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3f38bd);};a0_0x10fd['eMSMlG']=_0x1c8411,a0_0x10fd['TWqAVt']={},a0_0x10fd['IbWFXl']=!![];}const _0x158eca=_0x59c34c[0x0],_0x4dd1df=_0x4a98d6+_0x158eca,_0x2318e8=a0_0x10fd['TWqAVt'][_0x4dd1df];return!_0x2318e8?(_0x10fd79=a0_0x10fd['eMSMlG'](_0x10fd79),a0_0x10fd['TWqAVt'][_0x4dd1df]=_0x10fd79):_0x10fd79=_0x2318e8,_0x10fd79;}describe('Message\x20Management\x20-\x20Imports',()=>{test('useMessages hook can be imported',async()=>{const _0xad907d=a0_0x10fd,{useMessages:_0x2c9b0f}=await import('../../state/useMessages.js');expect(_0x2c9b0f)[_0xad907d(0x1fb)](),expect(typeof _0x2c9b0f)[_0xad907d(0x215)]('function');}),test('useMessages is default export',async()=>{const _0x5b7a85=a0_0x10fd,module=await import(_0x5b7a85(0x21c));expect(module['default'])[_0x5b7a85(0x1fb)](),expect(typeof module[_0x5b7a85(0x220)])[_0x5b7a85(0x215)]('function'),expect(module['default'])[_0x5b7a85(0x215)](module[_0x5b7a85(0x1fe)]);}),test('useMessageCount helper hook can be imported',async()=>{const _0x599488=a0_0x10fd,{useMessageCount:_0x3f38bd}=await import(_0x599488(0x21c));expect(_0x3f38bd)['toBeDefined'](),expect(typeof _0x3f38bd)['toBe'](_0x599488(0x218));});}),describe(a0_0xf72ec1(0x21e),()=>{const _0x296ab8=a0_0xf72ec1;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0x2664a6=a0_0x10fd,{MESSAGE_ROLE:_0x515896}=await import('../../config/constants.js');expect(_0x515896)['toBeDefined'](),expect(_0x515896['USER'])[_0x2664a6(0x215)]('user'),expect(_0x515896[_0x2664a6(0x202)])[_0x2664a6(0x215)]('assistant'),expect(_0x515896['SYSTEM'])['toBe'](_0x2664a6(0x206));}),test(_0x296ab8(0x204),async()=>{const _0x121688=_0x296ab8,{MESSAGE_TYPE:_0x3b9dea}=await import(_0x121688(0x1f7));expect(_0x3b9dea)[_0x121688(0x1fb)](),expect(_0x3b9dea[_0x121688(0x21b)])[_0x121688(0x215)]('user-message'),expect(_0x3b9dea['AGENT_RESPONSE'])['toBe'](_0x121688(0x1fc)),expect(_0x3b9dea['SYSTEM_NOTIFICATION'])['toBe'](_0x121688(0x1ff));}),test(_0x296ab8(0x22e),async()=>{const _0x1be95e=_0x296ab8,{MESSAGE_CONFIG:_0x3052a1}=await import(_0x1be95e(0x1f7));expect(_0x3052a1)[_0x1be95e(0x1fb)](),expect(_0x3052a1[_0x1be95e(0x216)])['toBeDefined'](),expect(_0x3052a1['MAX_MESSAGES_DISPLAY'])[_0x1be95e(0x1fb)](),expect(typeof _0x3052a1['MAX_MESSAGE_LENGTH'])['toBe']('number'),expect(typeof _0x3052a1['MAX_MESSAGES_DISPLAY'])[_0x1be95e(0x215)](_0x1be95e(0x1f5));}),test(_0x296ab8(0x221),async()=>{const _0x55b3ba=_0x296ab8,{PAGINATION:_0x28c605}=await import(_0x55b3ba(0x1f7));expect(_0x28c605)[_0x55b3ba(0x1fb)](),expect(_0x28c605[_0x55b3ba(0x211)])['toBeDefined'](),expect(_0x28c605[_0x55b3ba(0x205)])['toBeDefined'](),expect(typeof _0x28c605['PAGE_SIZE'])['toBe'](_0x55b3ba(0x1f5)),expect(typeof _0x28c605['MAX_PAGE_SIZE'])['toBe']('number');}),test(_0x296ab8(0x1f4),async()=>{const _0x88cce3=_0x296ab8,{WS_MESSAGE_TYPE:_0x52c21d}=await import('../../config/constants.js');expect(_0x52c21d)[_0x88cce3(0x1fb)](),expect(_0x52c21d['MESSAGE_ADDED'])['toBe']('message_added'),expect(_0x52c21d['AGENT_MODE_CHANGED'])[_0x88cce3(0x215)]('agent_mode_changed'),expect(_0x52c21d[_0x88cce3(0x22d)])['toBe'](_0x88cce3(0x22b));});}),describe('Message\x20Management\x20-\x20Integration',()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0x23e81b=a0_0x10fd,{useMessages:_0x3ad727}=await import('../../state/useMessages.js'),{SessionManager:_0x5e4c89}=await import(_0x23e81b(0x20a)),{MessageRouter:_0x350e9a}=await import(_0x23e81b(0x20e)),{WebSocketManager:_0x1a8b72}=await import('../../api/websocket.js'),_0xb2f646=new _0x5e4c89(_0x23e81b(0x1f3),0x1f90),_0x4d1a8c=new _0x1a8b72('localhost',0x1f90),_0x13a403=new _0x350e9a(_0x4d1a8c);expect(_0xb2f646)['toBeDefined'](),expect(_0x13a403)['toBeDefined'](),expect(typeof _0x3ad727)['toBe'](_0x23e81b(0x218));}),test('Full message management stack can be imported together',async()=>{const _0x31fea9=a0_0x10fd,[_0x279bfe,_0x2cdfcd,_0x290dcb,_0x266384,_0x5c74be]=await Promise['all']([import(_0x31fea9(0x1f7)),import('../../api/session.js'),import('../../api/websocket.js'),import(_0x31fea9(0x20e)),import('../../state/useMessages.js')]);expect(_0x279bfe[_0x31fea9(0x229)])[_0x31fea9(0x1fb)](),expect(_0x279bfe['MESSAGE_TYPE'])['toBeDefined'](),expect(_0x279bfe['MESSAGE_CONFIG'])['toBeDefined'](),expect(_0x2cdfcd[_0x31fea9(0x20f)])[_0x31fea9(0x1fb)](),expect(_0x290dcb['WebSocketManager'])[_0x31fea9(0x1fb)](),expect(_0x266384[_0x31fea9(0x20b)])[_0x31fea9(0x1fb)](),expect(_0x5c74be[_0x31fea9(0x1fe)])['toBeDefined']();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x26689f=a0_0xf72ec1;test(_0x26689f(0x200),async()=>{const _0x3f2107=_0x26689f,{API_ENDPOINTS:_0x407c73}=await import('../../config/constants.js');expect(_0x407c73[_0x3f2107(0x1f2)])['toBeDefined'](),expect(_0x407c73['ORCHESTRATOR'])['toBe'](_0x3f2107(0x1fd));}),test(_0x26689f(0x22a),async()=>{const _0x167ae4=_0x26689f,{API_ENDPOINTS:_0x49d276}=await import(_0x167ae4(0x1f7));expect(_0x49d276['ORCHESTRATOR'])['toMatch'](/^\/api\//);});}),describe(a0_0xf72ec1(0x222),()=>{const _0x19914c=a0_0xf72ec1;test(_0x19914c(0x225),async()=>{const _0x14532a=_0x19914c,{useMessages:_0x3c4148}=await import('../../state/useMessages.js');expect(_0x3c4148[_0x14532a(0x1f9)])['toBe'](0x3);}),test(_0x19914c(0x21d),async()=>{const _0x153a29=_0x19914c,{useMessageCount:_0x1953ee}=await import(_0x153a29(0x21c));expect(_0x1953ee[_0x153a29(0x1f9)])['toBe'](0x1);});}),describe(a0_0xf72ec1(0x214),()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x3ee358=a0_0x10fd,{MESSAGE_CONFIG:_0x59782d}=await import(_0x3ee358(0x1f7));expect(_0x59782d['MAX_MESSAGE_LENGTH'])[_0x3ee358(0x1f8)](0x0),expect(_0x59782d['MAX_MESSAGE_LENGTH'])[_0x3ee358(0x207)](0x186a0),expect(_0x59782d[_0x3ee358(0x1f6)])[_0x3ee358(0x1f8)](0x0),expect(_0x59782d['MAX_MESSAGES_DISPLAY'])['toBeLessThanOrEqual'](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x226aa6=a0_0x10fd,{PAGINATION:_0x38b908}=await import(_0x226aa6(0x1f7));expect(_0x38b908['PAGE_SIZE'])[_0x226aa6(0x1f8)](0x0),expect(_0x38b908['PAGE_SIZE'])[_0x226aa6(0x207)](0x3e8),expect(_0x38b908['MAX_PAGE_SIZE'])[_0x226aa6(0x217)](_0x38b908['PAGE_SIZE']);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0xaa307e=a0_0x10fd,{MESSAGE_ROLE:_0x459c86}=await import(_0xaa307e(0x1f7));expect(_0x459c86['USER'])['toBe'](_0x459c86['USER']['toLowerCase']()),expect(_0x459c86[_0xaa307e(0x202)])[_0xaa307e(0x215)](_0x459c86[_0xaa307e(0x202)]['toLowerCase']()),expect(_0x459c86[_0xaa307e(0x210)])['toBe'](_0x459c86['SYSTEM']['toLowerCase']());});}),describe(a0_0xf72ec1(0x20c),()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0xa300cb=a0_0x10fd,{MessageRouter:_0xe4f906}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x35e80e}=await import(_0xa300cb(0x226)),{WS_MESSAGE_TYPE:_0x21056c}=await import(_0xa300cb(0x1f7)),_0x271f94=new _0x35e80e(_0xa300cb(0x1f3),0x1f90),_0x3c25bb=new _0xe4f906(_0x271f94);expect(_0x3c25bb[_0xa300cb(0x208)](_0x21056c['MESSAGE_ADDED']))[_0xa300cb(0x215)](!![]),expect(_0x3c25bb['hasHandler'](_0x21056c['AGENT_MODE_CHANGED']))['toBe'](!![]);});}),describe('Message\x20Management\x20-\x20Error\x20Handling',()=>{const _0x3a04c1=a0_0xf72ec1;test('MESSAGE_CONFIG\x20enforces\x20maximum\x20message\x20length',async()=>{const _0x2c7b30=a0_0x10fd,{MESSAGE_CONFIG:_0x147648}=await import(_0x2c7b30(0x1f7));expect(_0x147648[_0x2c7b30(0x216)])[_0x2c7b30(0x1fb)](),expect(typeof _0x147648['MAX_MESSAGE_LENGTH'])[_0x2c7b30(0x215)](_0x2c7b30(0x1f5));const _0x4a33a3='a'['repeat'](_0x147648['MAX_MESSAGE_LENGTH']+0x1);expect(_0x4a33a3[_0x2c7b30(0x1f9)])[_0x2c7b30(0x1f8)](_0x147648[_0x2c7b30(0x216)]);}),test(_0x3a04c1(0x1fa),async()=>{const _0xcf0025=_0x3a04c1,{MESSAGE_CONFIG:_0x353435}=await import(_0xcf0025(0x1f7));expect(_0x353435[_0xcf0025(0x1f6)])['toBeDefined'](),expect(typeof _0x353435[_0xcf0025(0x1f6)])[_0xcf0025(0x215)](_0xcf0025(0x1f5)),expect(_0x353435['MAX_MESSAGES_DISPLAY'])[_0xcf0025(0x1f8)](0x0);});}),describe(a0_0xf72ec1(0x223),()=>{const _0x2ee076=a0_0xf72ec1;test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x1f472e=a0_0x10fd,{PAGINATION:_0x119fe7}=await import(_0x1f472e(0x1f7)),_0x422a33=0x0,_0xf19710=_0x422a33*_0x119fe7['PAGE_SIZE'];expect(_0xf19710)['toBe'](0x0);const _0x4f6d03=0x1,_0x459a43=_0x4f6d03*_0x119fe7[_0x1f472e(0x211)];expect(_0x459a43)['toBe'](_0x119fe7[_0x1f472e(0x211)]);}),test(_0x2ee076(0x201),async()=>{const _0x42e439=_0x2ee076,{PAGINATION:_0xc4aabc}=await import('../../config/constants.js'),_0x370601=0x3e8,_0x228173=Math['min'](_0x370601,_0xc4aabc[_0x42e439(0x205)]);expect(_0x228173)['toBeLessThanOrEqual'](_0xc4aabc[_0x42e439(0x205)]);});});
|
|
1
|
+
const a0_0x4fa6a9=a0_0xfd36;function a0_0xfd36(_0xd8adab,_0x5d9d1a){_0xd8adab=_0xd8adab-0x144;const _0x255b31=a0_0x255b();let _0xfd367b=_0x255b31[_0xd8adab];if(a0_0xfd36['XqTuxv']===undefined){var _0x97c5fa=function(_0x44781e){const _0xa45248='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4f8624='',_0x2f00cf='';for(let _0x8728ab=0x0,_0x3dba18,_0x4d5d61,_0x2ffbdf=0x0;_0x4d5d61=_0x44781e['charAt'](_0x2ffbdf++);~_0x4d5d61&&(_0x3dba18=_0x8728ab%0x4?_0x3dba18*0x40+_0x4d5d61:_0x4d5d61,_0x8728ab++%0x4)?_0x4f8624+=String['fromCharCode'](0xff&_0x3dba18>>(-0x2*_0x8728ab&0x6)):0x0){_0x4d5d61=_0xa45248['indexOf'](_0x4d5d61);}for(let _0x5b5e02=0x0,_0x5afffe=_0x4f8624['length'];_0x5b5e02<_0x5afffe;_0x5b5e02++){_0x2f00cf+='%'+('00'+_0x4f8624['charCodeAt'](_0x5b5e02)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2f00cf);};a0_0xfd36['LSQrOF']=_0x97c5fa,a0_0xfd36['ekmNnw']={},a0_0xfd36['XqTuxv']=!![];}const _0x16391e=_0x255b31[0x0],_0x3b6691=_0xd8adab+_0x16391e,_0x149eee=a0_0xfd36['ekmNnw'][_0x3b6691];return!_0x149eee?(_0xfd367b=a0_0xfd36['LSQrOF'](_0xfd367b),a0_0xfd36['ekmNnw'][_0x3b6691]=_0xfd367b):_0xfd367b=_0x149eee,_0xfd367b;}(function(_0x6b4a38,_0x4ba0e7){const _0x32ad16=a0_0xfd36,_0x2b74aa=_0x6b4a38();while(!![]){try{const _0x47cdf4=-parseInt(_0x32ad16(0x150))/0x1+-parseInt(_0x32ad16(0x169))/0x2*(-parseInt(_0x32ad16(0x174))/0x3)+-parseInt(_0x32ad16(0x17f))/0x4*(-parseInt(_0x32ad16(0x160))/0x5)+-parseInt(_0x32ad16(0x168))/0x6+-parseInt(_0x32ad16(0x161))/0x7*(parseInt(_0x32ad16(0x17b))/0x8)+-parseInt(_0x32ad16(0x149))/0x9*(-parseInt(_0x32ad16(0x15b))/0xa)+parseInt(_0x32ad16(0x175))/0xb;if(_0x47cdf4===_0x4ba0e7)break;else _0x2b74aa['push'](_0x2b74aa['shift']());}catch(_0x180ac5){_0x2b74aa['push'](_0x2b74aa['shift']());}}}(a0_0x255b,0x55094));import{describe,test,expect}from'@jest/globals';function a0_0x255b(){const _0x3258c1=['mJK5mJa1z2zQreHZ','twvZC2fNzsbnyw5Hz2vTzw50ic0Gv2vIu29JA2v0iev2zw50ieHHBMrSzxjZ','u1Ltvevn','CMvWzwf0','v1nFtuvtu0fhrv9uwvbfigLUy2X1zgvZig1LC3nHz2uGzxzLBNrZ','v2vIu29JA2v0twfUywDLCG','quDftLrFtu9erv9dsefor0ve','mtaXmtqZt3Pyr1fj','tufyx01fu1nbr0vFtevor1ri','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','BgvUz3rO','Dg9mB3DLCKnHC2u','Dg9nyxrJAa','t3jJAgvZDhjHDg9YigvUzhbVAw50ignHBIbIzsb1C2vKigzVCIbTzxnZywDLig9WzxjHDgLVBNm','Bg9JywXOB3n0','BNvTyMvY','rvHfq1vusu9ox1nut1bqruq','Dg9czuDYzwf0zxjuAgfUt3jfCxvHBa','mZbAvxfwq1O','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','C3LZDgvTlw5VDgLMAwnHDgLVBG','u2vZC2LVBK1HBMfNzxi','tufyx01fu1nbr0vtx0rju1bmqvK','nta4nZq1AxPbDwvK','mtu1mJGXz1HZywDx','tuvtu0fhrv9st0Xf','DxnLtwvZC2fNzunVDw50ihjLDhvYBNmGzxHWzwn0zwqGAw50zxjMywnLihnOyxbL','tuvtu0fhrv9dt05gsuC','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','t1jdsevtvfjbve9s','uefhrv9tsvPf','mZyYmtq5mNDLCKrhwa','nte1ndbLzgXZvu8','Dg9czuXLC3nuAgfUt3jfCxvHBa','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbTzxnZywDLigXLBMD0Aa','tuvtu0fhrv9brerfra','qvntsvnuqu5u','uefhsu5bveLptIbSAw1PDcbKB2vZig5VDcbLEgnLzwqGtufyx1bbr0vFu0LArq','C3LZDgvT','DxnLCI1TzxnZywDL','l2fWAs9VCMnOzxn0CMf0B3i','twvZC2fNzsbnyw5Hz2vTzw50ic0Gq29UC3rHBNrZ','AgfZsgfUzgXLCG','mZLfBLzywfy','ntKYntK0mLbUs0vgEG','tufyx1bbr0vFu0LArq','zNvUy3rPB24','zgvMyxvSDa','twvZC2fNzsbnyw5Hz2vTzw50ic0Gsw50zwDYyxrPB24','lI4VlI4VyxbPl3nLC3nPB24UANm','og1xu2HyyG','tuvtu0fhrv9dt05gsuCGzw5MB3jJzxmGBwf4Aw11BsbKAxnWBgf5ig1LC3nHz2vZ','ywDLBNqTCMvZCg9UC2u','Dg9czuDYzwf0zxjuAgfU','ngz5wfrWAW','twvZC2fNzvjVDxrLCG','tuvtu0fhrv9uwvbfignVBNn0yw50CYbHCMuGzgvMAw5Lza','ywDLBNrFBw9Kzv9JAgfUz2vK','Dg9czq','Dg9czurLzMLUzwq'];a0_0x255b=function(){return _0x3258c1;};return a0_0x255b();}describe('Message\x20Management\x20-\x20Imports',()=>{test('useMessages hook can be imported',async()=>{const _0x1678db=a0_0xfd36,{useMessages:_0x4f8624}=await import('../../state/useMessages.js');expect(_0x4f8624)[_0x1678db(0x148)](),expect(typeof _0x4f8624)[_0x1678db(0x147)](_0x1678db(0x177));}),test('useMessages is default export',async()=>{const _0x26511a=a0_0xfd36,module=await import('../../state/useMessages.js');expect(module['default'])['toBeDefined'](),expect(typeof module[_0x26511a(0x178)])[_0x26511a(0x147)]('function'),expect(module[_0x26511a(0x178)])['toBe'](module['useMessages']);}),test('useMessageCount helper hook can be imported',async()=>{const _0x9de2a3=a0_0xfd36,{useMessageCount:_0x2f00cf}=await import('../../state/useMessages.js');expect(_0x2f00cf)[_0x9de2a3(0x148)](),expect(typeof _0x2f00cf)[_0x9de2a3(0x147)](_0x9de2a3(0x177));});}),describe(a0_0x4fa6a9(0x172),()=>{const _0x598d62=a0_0x4fa6a9;test('MESSAGE_ROLE\x20constants\x20are\x20defined',async()=>{const _0xfc36b1=a0_0xfd36,{MESSAGE_ROLE:_0x8728ab}=await import('../../config/constants.js');expect(_0x8728ab)[_0xfc36b1(0x148)](),expect(_0x8728ab['USER'])[_0xfc36b1(0x147)]('user'),expect(_0x8728ab[_0xfc36b1(0x16d)])[_0xfc36b1(0x147)]('assistant'),expect(_0x8728ab['SYSTEM'])[_0xfc36b1(0x147)](_0xfc36b1(0x16f));}),test(_0x598d62(0x145),async()=>{const _0x52f318=_0x598d62,{MESSAGE_TYPE:_0x3dba18}=await import('../../config/constants.js');expect(_0x3dba18)[_0x52f318(0x148)](),expect(_0x3dba18['USER_MESSAGE'])['toBe'](_0x52f318(0x170)),expect(_0x3dba18['AGENT_RESPONSE'])[_0x52f318(0x147)](_0x52f318(0x17d)),expect(_0x3dba18['SYSTEM_NOTIFICATION'])['toBe'](_0x52f318(0x15d));}),test('MESSAGE_CONFIG\x20constants\x20are\x20defined',async()=>{const _0x15648e=_0x598d62,{MESSAGE_CONFIG:_0x4d5d61}=await import(_0x15648e(0x165));expect(_0x4d5d61)[_0x15648e(0x148)](),expect(_0x4d5d61[_0x15648e(0x151)])['toBeDefined'](),expect(_0x4d5d61['MAX_MESSAGES_DISPLAY'])[_0x15648e(0x148)](),expect(typeof _0x4d5d61[_0x15648e(0x151)])[_0x15648e(0x147)]('number'),expect(typeof _0x4d5d61[_0x15648e(0x15f)])[_0x15648e(0x147)](_0x15648e(0x158));}),test('PAGINATION\x20constants\x20are\x20defined',async()=>{const _0x1942ea=_0x598d62,{PAGINATION:_0x2ffbdf}=await import('../../config/constants.js');expect(_0x2ffbdf)[_0x1942ea(0x148)](),expect(_0x2ffbdf[_0x1942ea(0x167)])[_0x1942ea(0x148)](),expect(_0x2ffbdf[_0x1942ea(0x176)])['toBeDefined'](),expect(typeof _0x2ffbdf['PAGE_SIZE'])[_0x1942ea(0x147)]('number'),expect(typeof _0x2ffbdf[_0x1942ea(0x176)])['toBe']('number');}),test(_0x598d62(0x14d),async()=>{const _0x23abdd=_0x598d62,{WS_MESSAGE_TYPE:_0x5b5e02}=await import('../../config/constants.js');expect(_0x5b5e02)['toBeDefined'](),expect(_0x5b5e02['MESSAGE_ADDED'])[_0x23abdd(0x147)]('message_added'),expect(_0x5b5e02[_0x23abdd(0x14f)])[_0x23abdd(0x147)](_0x23abdd(0x146)),expect(_0x5b5e02[_0x23abdd(0x159)])['toBe']('execution_stopped');});}),describe(a0_0x4fa6a9(0x179),()=>{test('useMessages\x20hook\x20integrates\x20with\x20Session\x20and\x20MessageRouter',async()=>{const _0xcc13dd=a0_0xfd36,{useMessages:_0x5afffe}=await import('../../state/useMessages.js'),{SessionManager:_0x357d04}=await import(_0xcc13dd(0x17a)),{MessageRouter:_0x37f08e}=await import(_0xcc13dd(0x152)),{WebSocketManager:_0x5a0c9a}=await import('../../api/websocket.js'),_0x4d76db=new _0x357d04(_0xcc13dd(0x157),0x1f90),_0x56513b=new _0x5a0c9a(_0xcc13dd(0x157),0x1f90),_0xbab412=new _0x37f08e(_0x56513b);expect(_0x4d76db)[_0xcc13dd(0x148)](),expect(_0xbab412)[_0xcc13dd(0x148)](),expect(typeof _0x5afffe)[_0xcc13dd(0x147)]('function');}),test('Full message management stack can be imported together',async()=>{const _0x1c50ce=a0_0xfd36,[_0x4914e0,_0x58d30e,_0x4d556e,_0x493e20,_0x14bb89]=await Promise['all']([import('../../config/constants.js'),import('../../api/session.js'),import(_0x1c50ce(0x15c)),import('../../api/messageRouter.js'),import('../../state/useMessages.js')]);expect(_0x4914e0[_0x1c50ce(0x162)])['toBeDefined'](),expect(_0x4914e0['MESSAGE_TYPE'])[_0x1c50ce(0x148)](),expect(_0x4914e0[_0x1c50ce(0x164)])[_0x1c50ce(0x148)](),expect(_0x58d30e[_0x1c50ce(0x15e)])[_0x1c50ce(0x148)](),expect(_0x4d556e[_0x1c50ce(0x14e)])[_0x1c50ce(0x148)](),expect(_0x493e20[_0x1c50ce(0x144)])[_0x1c50ce(0x148)](),expect(_0x14bb89['useMessages'])['toBeDefined']();});}),describe('Message\x20Management\x20-\x20API\x20Endpoints\x20Validation',()=>{const _0x3ebfd5=a0_0x4fa6a9;test(_0x3ebfd5(0x156),async()=>{const _0x450d1c=_0x3ebfd5,{API_ENDPOINTS:_0xdea0a3}=await import(_0x450d1c(0x165));expect(_0xdea0a3['ORCHESTRATOR'])['toBeDefined'](),expect(_0xdea0a3[_0x450d1c(0x166)])['toBe'](_0x450d1c(0x171));}),test('Message\x20API\x20endpoints\x20follow\x20RESTful\x20pattern',async()=>{const _0x22ec41=_0x3ebfd5,{API_ENDPOINTS:_0x48995a}=await import(_0x22ec41(0x165));expect(_0x48995a[_0x22ec41(0x166)])[_0x22ec41(0x155)](/^\/api\//);});}),describe('Message\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x2f610b=a0_0x4fa6a9;test('useMessages\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x371351=a0_0xfd36,{useMessages:_0x3f815b}=await import('../../state/useMessages.js');expect(_0x3f815b[_0x371351(0x153)])[_0x371351(0x147)](0x3);}),test(_0x2f610b(0x163),async()=>{const {useMessageCount:_0x597962}=await import('../../state/useMessages.js');expect(_0x597962['length'])['toBe'](0x1);});}),describe('Message\x20Management\x20-\x20Constants\x20Validation',()=>{test('MESSAGE_CONFIG has sensible defaults',async()=>{const _0x22158c=a0_0xfd36,{MESSAGE_CONFIG:_0x7db91e}=await import(_0x22158c(0x165));expect(_0x7db91e['MAX_MESSAGE_LENGTH'])[_0x22158c(0x17e)](0x0),expect(_0x7db91e['MAX_MESSAGE_LENGTH'])['toBeLessThanOrEqual'](0x186a0),expect(_0x7db91e[_0x22158c(0x15f)])['toBeGreaterThan'](0x0),expect(_0x7db91e['MAX_MESSAGES_DISPLAY'])[_0x22158c(0x16a)](0x2710);}),test('PAGINATION has sensible defaults',async()=>{const _0x44d066=a0_0xfd36,{PAGINATION:_0x157d8}=await import(_0x44d066(0x165));expect(_0x157d8[_0x44d066(0x167)])[_0x44d066(0x17e)](0x0),expect(_0x157d8[_0x44d066(0x167)])['toBeLessThanOrEqual'](0x3e8),expect(_0x157d8[_0x44d066(0x176)])[_0x44d066(0x15a)](_0x157d8[_0x44d066(0x167)]);}),test('MESSAGE_ROLE\x20values\x20are\x20lowercase',async()=>{const _0x371f8d=a0_0xfd36,{MESSAGE_ROLE:_0x4fca1b}=await import('../../config/constants.js');expect(_0x4fca1b['USER'])['toBe'](_0x4fca1b['USER'][_0x371f8d(0x154)]()),expect(_0x4fca1b['ASSISTANT'])['toBe'](_0x4fca1b[_0x371f8d(0x16d)][_0x371f8d(0x154)]()),expect(_0x4fca1b['SYSTEM'])['toBe'](_0x4fca1b[_0x371f8d(0x14b)]['toLowerCase']());});}),describe(a0_0x4fa6a9(0x14a),()=>{test('MessageRouter\x20has\x20message\x20event\x20handlers\x20registered',async()=>{const _0x319ea3=a0_0xfd36,{MessageRouter:_0xc97724}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x3278fd}=await import('../../api/websocket.js'),{WS_MESSAGE_TYPE:_0xd7e15b}=await import(_0x319ea3(0x165)),_0x456181=new _0x3278fd(_0x319ea3(0x157),0x1f90),_0x7a6be5=new _0xc97724(_0x456181);expect(_0x7a6be5['hasHandler'](_0xd7e15b[_0x319ea3(0x16c)]))['toBe'](!![]),expect(_0x7a6be5[_0x319ea3(0x173)](_0xd7e15b[_0x319ea3(0x14f)]))['toBe'](!![]);});}),describe('Message\x20Management\x20-\x20Error\x20Handling',()=>{const _0x2974fb=a0_0x4fa6a9;test(_0x2974fb(0x16b),async()=>{const _0x4d71ef=_0x2974fb,{MESSAGE_CONFIG:_0x46cb30}=await import(_0x4d71ef(0x165));expect(_0x46cb30[_0x4d71ef(0x151)])['toBeDefined'](),expect(typeof _0x46cb30[_0x4d71ef(0x151)])[_0x4d71ef(0x147)](_0x4d71ef(0x158));const _0x44c9ff='a'[_0x4d71ef(0x14c)](_0x46cb30[_0x4d71ef(0x151)]+0x1);expect(_0x44c9ff['length'])['toBeGreaterThan'](_0x46cb30['MAX_MESSAGE_LENGTH']);}),test(_0x2974fb(0x17c),async()=>{const _0x8afc2=_0x2974fb,{MESSAGE_CONFIG:_0x273076}=await import('../../config/constants.js');expect(_0x273076[_0x8afc2(0x15f)])[_0x8afc2(0x148)](),expect(typeof _0x273076[_0x8afc2(0x15f)])[_0x8afc2(0x147)]('number'),expect(_0x273076['MAX_MESSAGES_DISPLAY'])[_0x8afc2(0x17e)](0x0);});}),describe('Message\x20Management\x20-\x20Pagination\x20Logic',()=>{const _0x38b094=a0_0x4fa6a9;test('PAGINATION\x20supports\x20offset-based\x20pagination',async()=>{const _0x1b4db3=a0_0xfd36,{PAGINATION:_0x31939a}=await import(_0x1b4db3(0x165)),_0x2d260b=0x0,_0x3f151a=_0x2d260b*_0x31939a[_0x1b4db3(0x167)];expect(_0x3f151a)['toBe'](0x0);const _0x1cf14a=0x1,_0x469beb=_0x1cf14a*_0x31939a['PAGE_SIZE'];expect(_0x469beb)['toBe'](_0x31939a['PAGE_SIZE']);}),test(_0x38b094(0x16e),async()=>{const _0x4f9ed8=_0x38b094,{PAGINATION:_0x1a8150}=await import('../../config/constants.js'),_0x4dd8f8=0x3e8,_0x229e06=Math['min'](_0x4dd8f8,_0x1a8150[_0x4f9ed8(0x176)]);expect(_0x229e06)[_0x4f9ed8(0x16a)](_0x1a8150[_0x4f9ed8(0x176)]);});});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x1b7a(){const _0x4a8cc8=['Dg9czurLzMLUzwq','z2v0','l2fWAs9VCMnOzxn0CMf0B3i','mJCWmZG1mgvlqKL5sa','BgvUz3rO','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CW','ve9ptf9dqvrfr09swsbPBMnSDwrLCYbHBgWGBwfQB3iGy2f0zwDVCMLLCW','u1Ltvevn','ve9ptfm','BM93','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW','CMvHzf9MAwXL','zxHLyY0Y','u2vZC2LVBK1HBMfNzxi','mtCWmJGWogrYruvQyG','zxHLyY0X','D3jPDgvFzMLSzq','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','Dg9czq','y2f0zwDVCNK','mtmYm0vlBgDXuq','ugvYzM9YBsbZDgf0AwmGy29KzsbHBMfSExnPCW','Dg9nyxrJAa','vg9VBhmGqvbjigvUzhbVAw50igLZigrLzMLUzwq','mtu3mde1ohLeu0fqva','AgfZ','DgvYBwLUywW','Dg9dB250ywLU','ve9ptf9dqvrfr09swsb2ywX1zxmGBwf0y2GGzxHWzwn0zwqGzM9YBwf0','ywrK','Dg9mB3DLCKnHC2u','mJu2mdHRyujYs1e','l2fWAs90B29SCW','t1jdsevtvfjbve9s','AgfZsgfUzgXLCG','mte4odm3nMTIqujeva','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','lI4VlI4VyxbPl3nLC3nPB24UANm','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2f0zwDVCML6yxrPB24','ywLFyxnZAxn0yw50','C2L6zq','uMvHzcbJB250zw50CYbVzIbHigzPBgu','m0fovxrNDa','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2fJAgLUzW','ndq4ntHcCeXYBeC','DxnLvg9VBhmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','yw5HBhL6zv9JB2rL','nJK0mdyXmMLZyuvgAW','twvZC2fNzvjVDxrLCG','vg9VBcbYzxn1BhrZignHBIbIzsbZDg9YzwqGyNKGzxHLy3v0Aw9UieLe','q09mtefct1jbveLptG','zxHLy3v0zv9JB21Tyw5K','Aw5JBhvKzxm','t3jJAgvZDhjHDg9YigvUzhbVAw50igLZihvZzwqGzM9YihrVB2WGB3bLCMf0Aw9UCW','zgvZy3jPChrPB24','vg9VBhmGtwfUywDLBwvUDcaTienHDgvNB3j5ienVDw50CW','zMLSzq','C2v0','vg9VBcbJywnOzsbZDxbWB3j0CYbuveWTyMfZzwqGy2fJAgLUzW','A2v5CW','DxnLvg9VBhmGCMv0DxjUCYbLEhbLy3rLzcbPBNrLCMzHy2uGC2HHCgu','twvZC2fNzvjVDxrLCIbOyxmGDg9VBcbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','q2f0zwDVCNKGy291BNrZignHBIbIzsbJywXJDwXHDgvK','qvbjx0vorfbpsu5uuW','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGu2vHCMnO','qu5btfLtsvm','zw5HyMXLza','qvvut01bveLptG','DxnLvg9VBhm','zNvUy3rPB24','Bg9JywXOB3n0','vvrjteLuwq','v3jPDguGzgf0ysb0BYbHigzPBgu','zMLSDgvY','BMfTzq','vg9VBhmGtwfUywDLBwvUDcaTiev4zwn1DgLVBIbtDgf0zsbuCMfJA2LUzW','ve9ptf9dqvrfr09swsbJyw4GyMuGDxnLzcb0BYbMAwX0zxiGDg9VBhmGyNKGy2f0zwDVCNK','vg9VBhmGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG'];a0_0x1b7a=function(){return _0x4a8cc8;};return a0_0x1b7a();}function a0_0x39a5(_0x5ab9c3,_0x26e0de){_0x5ab9c3=_0x5ab9c3-0x17f;const _0x1b7aa8=a0_0x1b7a();let _0x39a576=_0x1b7aa8[_0x5ab9c3];if(a0_0x39a5['RPmupK']===undefined){var _0x44c876=function(_0x13f43c){const _0x279164='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1c4739='',_0x4de5f6='';for(let _0x4303f2=0x0,_0x418429,_0x5b74d6,_0x294903=0x0;_0x5b74d6=_0x13f43c['charAt'](_0x294903++);~_0x5b74d6&&(_0x418429=_0x4303f2%0x4?_0x418429*0x40+_0x5b74d6:_0x5b74d6,_0x4303f2++%0x4)?_0x1c4739+=String['fromCharCode'](0xff&_0x418429>>(-0x2*_0x4303f2&0x6)):0x0){_0x5b74d6=_0x279164['indexOf'](_0x5b74d6);}for(let _0x1334ec=0x0,_0x59f335=_0x1c4739['length'];_0x1334ec<_0x59f335;_0x1334ec++){_0x4de5f6+='%'+('00'+_0x1c4739['charCodeAt'](_0x1334ec)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4de5f6);};a0_0x39a5['WgFWCi']=_0x44c876,a0_0x39a5['rpyVVV']={},a0_0x39a5['RPmupK']=!![];}const _0x14d812=_0x1b7aa8[0x0],_0x20c4a9=_0x5ab9c3+_0x14d812,_0x58c23a=a0_0x39a5['rpyVVV'][_0x20c4a9];return!_0x58c23a?(_0x39a576=a0_0x39a5['WgFWCi'](_0x39a576),a0_0x39a5['rpyVVV'][_0x20c4a9]=_0x39a576):_0x39a576=_0x58c23a,_0x39a576;}const a0_0x1d03a5=a0_0x39a5;(function(_0x58fb11,_0xdfca11){const _0x26ba1f=a0_0x39a5,_0x360abf=_0x58fb11();while(!![]){try{const _0x149070=parseInt(_0x26ba1f(0x189))/0x1+-parseInt(_0x26ba1f(0x1b9))/0x2*(-parseInt(_0x26ba1f(0x187))/0x3)+parseInt(_0x26ba1f(0x180))/0x4+parseInt(_0x26ba1f(0x1ae))/0x5+parseInt(_0x26ba1f(0x1c3))/0x6+-parseInt(_0x26ba1f(0x18c))/0x7+-parseInt(_0x26ba1f(0x1ca))/0x8*(parseInt(_0x26ba1f(0x1bf))/0x9);if(_0x149070===_0xdfca11)break;else _0x360abf['push'](_0x360abf['shift']());}catch(_0x1d1f71){_0x360abf['push'](_0x360abf['shift']());}}}(a0_0x1b7a,0x824fc));import{describe,test,expect}from'@jest/globals';describe('Tools\x20Management\x20-\x20Imports',()=>{test('useTools hook can be imported',async()=>{const _0x555935=a0_0x39a5,{useTools:_0x1c4739}=await import('../../state/useTools.js');expect(_0x1c4739)[_0x555935(0x1ab)](),expect(typeof _0x1c4739)[_0x555935(0x1bd)](_0x555935(0x1a2));}),test('useTools is default export',async()=>{const _0x33cf32=a0_0x39a5,module=await import('../../state/useTools.js');expect(module['default'])[_0x33cf32(0x1ab)](),expect(typeof module['default'])['toBe']('function'),expect(module['default'])[_0x33cf32(0x1bd)](module[_0x33cf32(0x1a1)]);});}),describe(a0_0x1d03a5(0x1b0),()=>{const _0x4c037e=a0_0x1d03a5;test('TOOL_CATEGORY\x20constants\x20are\x20defined',async()=>{const _0x385bcf=a0_0x39a5,{TOOL_CATEGORY:_0x4de5f6}=await import('../../config/constants.js');expect(_0x4de5f6)[_0x385bcf(0x1ab)](),expect(_0x4de5f6[_0x385bcf(0x1b2)])['toBeDefined'](),expect(_0x4de5f6['AUTOMATION'])['toBeDefined'](),expect(_0x4de5f6['ANALYSIS'])[_0x385bcf(0x1ab)](),expect(_0x4de5f6['UTILITY'])['toBeDefined'](),expect(_0x4de5f6['COLLABORATION'])['toBeDefined'](),expect(_0x4de5f6['AI'])['toBeDefined']();}),test('TOOL_CATEGORY\x20values\x20are\x20lowercase',async()=>{const _0x3699ff=a0_0x39a5,{TOOL_CATEGORY:_0x4303f2}=await import('../../config/constants.js');expect(_0x4303f2[_0x3699ff(0x1b2)])['toBe'](_0x4303f2[_0x3699ff(0x1b2)]['toLowerCase']()),expect(_0x4303f2[_0x3699ff(0x1a0)])['toBe'](_0x4303f2['AUTOMATION'][_0x3699ff(0x1c9)]()),expect(_0x4303f2[_0x3699ff(0x19e)])[_0x3699ff(0x1bd)](_0x4303f2['ANALYSIS']['toLowerCase']()),expect(_0x4303f2[_0x3699ff(0x1a4)])[_0x3699ff(0x1bd)](_0x4303f2[_0x3699ff(0x1a4)]['toLowerCase']());}),test(_0x4c037e(0x1c2),async()=>{const _0x328dea=_0x4c037e,{API_ENDPOINTS:_0x418429}=await import('../../config/constants.js');expect(_0x418429['TOOLS'])['toBeDefined'](),expect(_0x418429['TOOLS'])[_0x328dea(0x1bd)]('/api/tools');}),test(_0x4c037e(0x192),async()=>{const _0x410394=_0x4c037e,{API_ENDPOINTS:_0x5b74d6}=await import('../../config/constants.js');expect(_0x5b74d6[_0x410394(0x1cc)])[_0x410394(0x1ab)](),expect(_0x5b74d6['ORCHESTRATOR'])['toBe'](_0x410394(0x1ad));});}),describe('Tools\x20Management\x20-\x20Integration',()=>{const _0x226c8b=a0_0x1d03a5;test(_0x226c8b(0x18a),async()=>{const _0x5ee57f=_0x226c8b,{useTools:_0x294903}=await import('../../state/useTools.js'),{SessionManager:_0x1334ec}=await import(_0x5ee57f(0x182)),{MessageRouter:_0x59f335}=await import(_0x5ee57f(0x181)),{WebSocketManager:_0x2073ad}=await import('../../api/websocket.js'),_0x3fbc7a=new _0x1334ec(_0x5ee57f(0x1a3),0x1f90),_0x3895c6=new _0x2073ad(_0x5ee57f(0x1a3),0x1f90),_0x37543c=new _0x59f335(_0x3895c6);expect(_0x3fbc7a)['toBeDefined'](),expect(_0x37543c)['toBeDefined'](),expect(typeof _0x294903)[_0x5ee57f(0x1bd)]('function');}),test('Full tools management stack can be imported together',async()=>{const _0x27722e=_0x226c8b,[_0x2f7cc2,_0x3c8750,_0x299877,_0x4ba62d,_0x3c8330]=await Promise['all']([import(_0x27722e(0x1b5)),import('../../api/session.js'),import('../../api/websocket.js'),import('../../api/messageRouter.js'),import(_0x27722e(0x1bc))]);expect(_0x2f7cc2['TOOL_CATEGORY'])[_0x27722e(0x1ab)](),expect(_0x2f7cc2[_0x27722e(0x19c)])['toBeDefined'](),expect(_0x3c8750[_0x27722e(0x1b8)])['toBeDefined'](),expect(_0x299877['WebSocketManager'])[_0x27722e(0x1ab)](),expect(_0x4ba62d[_0x27722e(0x18d)])[_0x27722e(0x1ab)](),expect(_0x3c8330[_0x27722e(0x1a1)])[_0x27722e(0x1ab)]();});}),describe(a0_0x1d03a5(0x1aa),()=>{test('Tools\x20endpoint\x20follows\x20RESTful\x20pattern',async()=>{const _0x351312=a0_0x39a5,{API_ENDPOINTS:_0x2d0da5}=await import(_0x351312(0x1b5));expect(_0x2d0da5['TOOLS'])['toMatch'](/^\/api\//),expect(_0x2d0da5[_0x351312(0x1b3)])[_0x351312(0x1bd)](_0x351312(0x1cb));}),test('Tool\x20operations\x20use\x20orchestrator\x20endpoint',async()=>{const _0x2b0d43=a0_0x39a5,{API_ENDPOINTS:_0x2e4f43}=await import(_0x2b0d43(0x1b5));expect(_0x2e4f43['ORCHESTRATOR'])['toBeDefined'](),expect(_0x2e4f43['ORCHESTRATOR'])[_0x2b0d43(0x1bd)](_0x2b0d43(0x1ad));});}),describe('Tools\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{const _0x59cceb=a0_0x1d03a5;test(_0x59cceb(0x199),async()=>{const _0x44ee08=_0x59cceb,{useTools:_0xd0fece}=await import('../../state/useTools.js');expect(_0xd0fece[_0x44ee08(0x1af)])[_0x44ee08(0x1bd)](0x3);});}),describe('Tools\x20Management\x20-\x20Constants\x20Validation',()=>{const _0x1d82d5=a0_0x1d03a5;test(_0x1d82d5(0x1b1),async()=>{const _0x3704f9=_0x1d82d5,{TOOL_CATEGORY:_0x48d9cd}=await import(_0x3704f9(0x1b5)),_0x45648b=Object[_0x3704f9(0x198)](_0x48d9cd);expect(_0x45648b)[_0x3704f9(0x1c6)](_0x3704f9(0x1b2)),expect(_0x45648b)[_0x3704f9(0x1c6)](_0x3704f9(0x1a0)),expect(_0x45648b)[_0x3704f9(0x1c6)]('ANALYSIS'),expect(_0x45648b)[_0x3704f9(0x1c6)](_0x3704f9(0x1a4)),expect(_0x45648b)['toContain'](_0x3704f9(0x18f)),expect(_0x45648b)['toContain']('AI');}),test(_0x1d82d5(0x1c7),async()=>{const _0x32f8f7=_0x1d82d5,{TOOL_CATEGORY:_0x48a115}=await import(_0x32f8f7(0x1b5));expect(_0x48a115[_0x32f8f7(0x1b2)])[_0x32f8f7(0x1c1)](/^[a-z_]+$/),expect(_0x48a115['AUTOMATION'])[_0x32f8f7(0x1c1)](/^[a-z_]+$/),expect(_0x48a115[_0x32f8f7(0x19e)])['toMatch'](/^[a-z_]+$/),expect(_0x48a115[_0x32f8f7(0x1a4)])[_0x32f8f7(0x1c1)](/^[a-z_]+$/);});}),describe('Tools\x20Management\x20-\x20WebSocket\x20Event\x20Handlers',()=>{const _0x188cb6=a0_0x1d03a5;test(_0x188cb6(0x19a),async()=>{const _0x4f47f8=_0x188cb6,{MessageRouter:_0x53ddc9}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x141f3e}=await import('../../api/websocket.js'),_0x3d1a41=new _0x141f3e(_0x4f47f8(0x1a3),0x1f90),_0x3b115b=new _0x53ddc9(_0x3d1a41);expect(_0x3b115b[_0x4f47f8(0x17f)])[_0x4f47f8(0x1ab)](),expect(typeof _0x3b115b['hasHandler'])[_0x4f47f8(0x1bd)]('function');});}),describe(a0_0x1d03a5(0x183),()=>{const _0x481ea9=a0_0x1d03a5;test(_0x481ea9(0x1a9),async()=>{const _0x442925=_0x481ea9,{TOOL_CATEGORY:_0x196284}=await import(_0x442925(0x1b5)),_0x5c87a3=[{'name':_0x442925(0x190),'category':_0x196284[_0x442925(0x1b2)]},{'name':_0x442925(0x1c5),'category':_0x196284[_0x442925(0x1b2)]},{'name':'analyze_code','category':_0x196284[_0x442925(0x19e)]},{'name':'web_search','category':_0x196284[_0x442925(0x1a4)]},{'name':_0x442925(0x184),'category':_0x196284['AI']}],_0x571632=_0x5c87a3['filter'](_0xf4958b=>_0xf4958b['category']===_0x196284[_0x442925(0x1b2)]),_0x137326=_0x5c87a3['filter'](_0x1ca118=>_0x1ca118[_0x442925(0x1be)]===_0x196284[_0x442925(0x19e)]),_0x37d02f=_0x5c87a3['filter'](_0x1070b3=>_0x1070b3[_0x442925(0x1be)]===_0x196284['UTILITY']),_0x255d10=_0x5c87a3['filter'](_0x1f1893=>_0x1f1893[_0x442925(0x1be)]===_0x196284['AI']);expect(_0x571632['length'])['toBe'](0x2),expect(_0x137326[_0x442925(0x1af)])['toBe'](0x1),expect(_0x37d02f[_0x442925(0x1af)])[_0x442925(0x1bd)](0x1),expect(_0x255d10['length'])[_0x442925(0x1bd)](0x1),expect(_0x571632[0x0]['name'])['toBe']('execute_command'),expect(_0x137326[0x0]['name'])['toBe'](_0x442925(0x18b));});}),describe(a0_0x1d03a5(0x19d),()=>{test('Tool\x20search\x20should\x20work\x20with\x20name\x20and\x20description',async()=>{const _0x17c8b4=a0_0x39a5,_0x22fbf6=[{'name':_0x17c8b4(0x1b6),'description':_0x17c8b4(0x186)},{'name':'write_file','description':_0x17c8b4(0x1a5)},{'name':_0x17c8b4(0x18b),'description':_0x17c8b4(0x1c0)}],_0x4c01c5=_0x1f6b75=>{const _0x54a79e=_0x17c8b4,_0x1b0618=_0x1f6b75['toLowerCase']();return _0x22fbf6[_0x54a79e(0x1a6)](_0x1394e4=>_0x1394e4[_0x54a79e(0x1a7)]?.[_0x54a79e(0x1c9)]()[_0x54a79e(0x191)](_0x1b0618)||_0x1394e4[_0x54a79e(0x193)]?.[_0x54a79e(0x1c9)]()['includes'](_0x1b0618));},_0x1b3bf3=_0x4c01c5(_0x17c8b4(0x195));expect(_0x1b3bf3[_0x17c8b4(0x1af)])[_0x17c8b4(0x1bd)](0x2),expect(_0x1b3bf3['map'](_0xe11d00=>_0xe11d00['name']))['toContain'](_0x17c8b4(0x1b6)),expect(_0x1b3bf3['map'](_0x8e7ef4=>_0x8e7ef4[_0x17c8b4(0x1a7)]))['toContain'](_0x17c8b4(0x1bb));const _0x4000e5=_0x4c01c5('analyze');expect(_0x4000e5['length'])[_0x17c8b4(0x1bd)](0x1),expect(_0x4000e5[0x0]['name'])[_0x17c8b4(0x1bd)]('analyze_code');});}),describe(a0_0x1d03a5(0x1a8),()=>{const _0x46abae=a0_0x1d03a5;test('Execution\x20state\x20can\x20track\x20multiple\x20tools',async()=>{const _0x19ab9f=a0_0x39a5,_0x4f28b9=new Set();_0x4f28b9['add'](_0x19ab9f(0x1b6)),_0x4f28b9[_0x19ab9f(0x1c8)]('analyze_code'),expect(_0x4f28b9[_0x19ab9f(0x1c4)](_0x19ab9f(0x1b6)))[_0x19ab9f(0x1bd)](!![]),expect(_0x4f28b9['has']('analyze_code'))[_0x19ab9f(0x1bd)](!![]),expect(_0x4f28b9[_0x19ab9f(0x185)])[_0x19ab9f(0x1bd)](0x2),_0x4f28b9['delete']('read_file'),expect(_0x4f28b9['has']('read_file'))[_0x19ab9f(0x1bd)](![]),expect(_0x4f28b9['has'](_0x19ab9f(0x18b)))['toBe'](!![]),expect(_0x4f28b9['size'])['toBe'](0x1);}),test(_0x46abae(0x18e),async()=>{const _0x58574b=_0x46abae,_0x155bca=new Map();_0x155bca[_0x58574b(0x196)](_0x58574b(0x1ba),{'success':!![],'data':'file\x20contents'}),_0x155bca[_0x58574b(0x196)](_0x58574b(0x1b7),{'success':!![],'data':{'issues':[]}}),expect(_0x155bca[_0x58574b(0x1ac)](_0x58574b(0x1ba)))['toBeDefined'](),expect(_0x155bca['get']('exec-1')['success'])[_0x58574b(0x1bd)](!![]),expect(_0x155bca['get']('exec-1')['data'])['toBe']('file\x20contents'),expect(_0x155bca['get']('exec-2'))[_0x58574b(0x1ab)](),expect(_0x155bca[_0x58574b(0x1ac)](_0x58574b(0x1b7))['data']['issues'])['toEqual']([]),expect(_0x155bca[_0x58574b(0x185)])[_0x58574b(0x1bd)](0x2);});}),describe(a0_0x1d03a5(0x188),()=>{const _0x5e3279=a0_0x1d03a5;test(_0x5e3279(0x197),async()=>{const _0x4a8603=_0x5e3279,_0x1aee54=0x927c0;let _0x556372=null,_0x50f8c7=0x0;const _0x53d2cb=[{'name':_0x4a8603(0x1b6)}];_0x556372=_0x53d2cb,_0x50f8c7=Date['now']();const _0x1b6acb=Date['now'](),_0x210dbd=_0x1b6acb-_0x50f8c7<_0x1aee54;expect(_0x210dbd)['toBe'](!![]),expect(_0x556372)[_0x4a8603(0x1bd)](_0x53d2cb);}),test('Tool\x20cache\x20expires\x20after\x20TTL',async()=>{const _0x10f4b9=_0x5e3279,_0x17d787=0x64;let _0xcc98e9=null,_0x3a8271=0x0;const _0x1d0fbd=[{'name':'read_file'}];_0xcc98e9=_0x1d0fbd,_0x3a8271=Date[_0x10f4b9(0x1b4)](),await new Promise(_0x567fa6=>setTimeout(_0x567fa6,0x96));const _0x1861fa=Date['now'](),_0x543bd4=_0x1861fa-_0x3a8271<_0x17d787;expect(_0x543bd4)['toBe'](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{test('Tools\x20can\x20be\x20filtered\x20by\x20multiple\x20criteria',async()=>{const _0x1ba833=a0_0x39a5,{TOOL_CATEGORY:_0x376852}=await import(_0x1ba833(0x1b5)),_0x1b71c1=[{'name':_0x1ba833(0x190),'category':_0x376852['SYSTEM'],'enabled':!![]},{'name':'terminal','category':_0x376852['SYSTEM'],'enabled':![]},{'name':_0x1ba833(0x18b),'category':_0x376852[_0x1ba833(0x19e)],'enabled':!![]}],_0x8c8448=_0x2720fe=>{const _0x2c5899=_0x1ba833;let _0x2e7876=[..._0x1b71c1];return _0x2720fe[_0x2c5899(0x1be)]&&(_0x2e7876=_0x2e7876['filter'](_0x244289=>_0x244289[_0x2c5899(0x1be)]===_0x2720fe['category'])),_0x2720fe['enabled']!==undefined&&(_0x2e7876=_0x2e7876[_0x2c5899(0x1a6)](_0x48b839=>_0x48b839['enabled']===_0x2720fe[_0x2c5899(0x19f)])),_0x2e7876;},_0x343b77=_0x8c8448({'category':_0x376852[_0x1ba833(0x1b2)]});expect(_0x343b77[_0x1ba833(0x1af)])['toBe'](0x2);const _0x5cf072=_0x8c8448({'enabled':!![]});expect(_0x5cf072['length'])[_0x1ba833(0x1bd)](0x2);const _0x2efa09=_0x8c8448({'category':_0x376852[_0x1ba833(0x1b2)],'enabled':!![]});expect(_0x2efa09[_0x1ba833(0x1af)])[_0x1ba833(0x1bd)](0x1),expect(_0x2efa09[0x0]['name'])[_0x1ba833(0x1bd)]('execute_command');});}),describe(a0_0x1d03a5(0x194),()=>{const _0xe95a28=a0_0x1d03a5;test(_0xe95a28(0x19b),async()=>{const _0x2eb454=_0xe95a28,{TOOL_CATEGORY:_0x516a86}=await import('../../config/constants.js'),_0x1e7864=[{'name':'execute_command','category':_0x516a86['SYSTEM']},{'name':_0x2eb454(0x1c5),'category':_0x516a86['SYSTEM']},{'name':_0x2eb454(0x18b),'category':_0x516a86[_0x2eb454(0x19e)]},{'name':'web_search','category':_0x516a86[_0x2eb454(0x1a4)]}],_0x171d73=_0x11e97c=>{const _0x291924={};for(const _0x535c56 of Object['values'](_0x516a86)){_0x291924[_0x535c56]=_0x11e97c['filter'](_0x5c87d2=>_0x5c87d2['category']===_0x535c56)['length'];}return _0x291924;},_0x13558f=_0x171d73(_0x1e7864);expect(_0x13558f[_0x516a86['SYSTEM']])['toBe'](0x2),expect(_0x13558f[_0x516a86['ANALYSIS']])[_0x2eb454(0x1bd)](0x1),expect(_0x13558f[_0x516a86[_0x2eb454(0x1a4)]])['toBe'](0x1),expect(_0x13558f[_0x516a86[_0x2eb454(0x1a0)]])[_0x2eb454(0x1bd)](0x0);});});
|
|
1
|
+
const a0_0x2d37d9=a0_0x4db0;(function(_0x20e291,_0x886170){const _0x289115=a0_0x4db0,_0x1501cb=_0x20e291();while(!![]){try{const _0x24cb64=parseInt(_0x289115(0x147))/0x1+parseInt(_0x289115(0x148))/0x2*(parseInt(_0x289115(0x13d))/0x3)+-parseInt(_0x289115(0x16c))/0x4*(-parseInt(_0x289115(0x15c))/0x5)+-parseInt(_0x289115(0x15f))/0x6*(parseInt(_0x289115(0x167))/0x7)+parseInt(_0x289115(0x170))/0x8*(-parseInt(_0x289115(0x137))/0x9)+parseInt(_0x289115(0x15d))/0xa+parseInt(_0x289115(0x169))/0xb;if(_0x24cb64===_0x886170)break;else _0x1501cb['push'](_0x1501cb['shift']());}catch(_0x267be5){_0x1501cb['push'](_0x1501cb['shift']());}}}(a0_0x6291,0xa7c69));function a0_0x4db0(_0x43cdf8,_0x1230ea){_0x43cdf8=_0x43cdf8-0x12f;const _0x6291a4=a0_0x6291();let _0x4db074=_0x6291a4[_0x43cdf8];if(a0_0x4db0['QoraCv']===undefined){var _0x562bfe=function(_0x257a2a){const _0x499f22='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f6ed9='',_0x18fded='';for(let _0x30d2c6=0x0,_0x10dad5,_0xc851f8,_0x336ba6=0x0;_0xc851f8=_0x257a2a['charAt'](_0x336ba6++);~_0xc851f8&&(_0x10dad5=_0x30d2c6%0x4?_0x10dad5*0x40+_0xc851f8:_0xc851f8,_0x30d2c6++%0x4)?_0x3f6ed9+=String['fromCharCode'](0xff&_0x10dad5>>(-0x2*_0x30d2c6&0x6)):0x0){_0xc851f8=_0x499f22['indexOf'](_0xc851f8);}for(let _0xc21e56=0x0,_0x56ca92=_0x3f6ed9['length'];_0xc21e56<_0x56ca92;_0xc21e56++){_0x18fded+='%'+('00'+_0x3f6ed9['charCodeAt'](_0xc21e56)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18fded);};a0_0x4db0['KFPmlk']=_0x562bfe,a0_0x4db0['gcvaBX']={},a0_0x4db0['QoraCv']=!![];}const _0x591650=_0x6291a4[0x0],_0xea174c=_0x43cdf8+_0x591650,_0x516576=a0_0x4db0['gcvaBX'][_0xea174c];return!_0x516576?(_0x4db074=a0_0x4db0['KFPmlk'](_0x4db074),a0_0x4db0['gcvaBX'][_0xea174c]=_0x4db074):_0x4db074=_0x516576,_0x4db074;}import{describe,test,expect}from'@jest/globals';function a0_0x6291(){const _0x1c74fa=['Dg9dB250ywLU','CMvHzf9MAwXL','nuvoqMHPwq','odeYndbpCffmshy','vg9VBhmGtwfUywDLBwvUDcaTifDLyLnVy2TLDcbfDMvUDcbiyw5KBgvYCW','mtG2nZK4whLnwxnq','vg9VBcbYzxn1BhrZignHBIbIzsbZDg9YzwqGyNKGzxHLy3v0Aw9UieLe','AgfZ','uMvHzcbJB250zw50CYbVzIbHigzPBgu','zNvUy3rPB24','ywLFyxnZAxn0yw50','Dg9czurLzMLUzwq','z2v0','mJe3v1PkyNvw','Dg9fCxvHBa','ndG5mdq3ounsD0zsDW','BMfTzq','ve9ptf9dqvrfr09swsb2ywX1zxmGBwf0y2GGzxHWzwn0zwqGzM9YBwf0','mtyYmtu0mfbnC0zMqG','DgvYBwLUywW','vg9VBhmGtwfUywDLBwvUDcaTienHDgvNB3j5ienVDw50CW','BM93','nda0odi2nhfftMTKra','ve9ptf9dqvrfr09swsb2ywX1zxmGyxjLigXVD2vYy2fZzq','zMLSDgvY','vg9VBhmGtwfUywDLBwvUDcaTienVBNn0yw50CYbwywXPzgf0Aw9U','Dg9czq','C2L6zq','q09mtefct1jbveLptG','Dg9mB3DLCKnHC2u','zgf0yq','DMfSDwvZ','vg9VBhmGtwfUywDLBwvUDcaTifrVB2WGq2f0zwDVCML6yxrPB24','Dg9nyxrJAa','ve9ptf9dqvrfr09swsbJB25ZDgfUDhmGyxjLigrLzMLUzwq','zxHLyY0Y','qvvut01bveLptG','rxHLy3v0Aw9Uihn0yxrLignHBIb0CMfJAYbTDwX0AxbSzsb0B29SCW','zMLSzq','vg9VBhmGtwfUywDLBwvUDcaTiev4zwn1DgLVBIbtDgf0zsbuCMfJA2LUzW','BgvUz3rO','vvrjteLuwq','ve9ptf9dqvrfr09swsbJyw4GyMuGDxnLzcb0BYbMAwX0zxiGDg9VBhmGyNKGy2f0zwDVCNK','vg9VBhmGzw5KCg9PBNqGzM9SBg93CYbsrvnuzNvSihbHDhrLCM4','BwfW','vg9VBhmGqvbjigvUzhbVAw50igLZigrLzMLUzwq','t1jdsevtvfjbve9s','ow1xswrzyq','qu5btfLtsvm','v2vIu29JA2v0twfUywDLCG','lI4VlI4VyxbPl3DLyNnVy2TLDc5QCW','Aw5JBhvKzxm','vg9VBcbZzwfYy2GGC2HVDwXKihDVCMSGD2L0AcbUyw1LigfUzcbKzxnJCMLWDgLVBG','mZm0ntiYmMnssKfxrq','y2f0zwDVCNK','vg9VBhmGtwfUywDLBwvUDcaTieLUDgvNCMf0Aw9U','zxHLy3v0zv9JB21Tyw5K','vg9VBhmGtwfUywDLBwvUDcaTiefqssbfBMrWB2LUDhmGvMfSAwrHDgLVBG','v3jPDguGzgf0ysb0BYbHigzPBgu','vg9VBhmGy2fUigjLigzPBhrLCMvKigj5ig11BhrPCgXLignYAxrLCMLH','vg9VBcbVCgvYyxrPB25ZihvZzsbVCMnOzxn0CMf0B3iGzw5KCg9PBNq','zxHLyY0X','zgvSzxrL','mtG1mtKZrLncy1PW','mMLdCKnVAq','lI4VlI4VyxbPl3nLC3nPB24UANm','Bg9JywXOB3n0','zgvMyxvSDa','ugvYzM9YBsbZDgf0AwmGy29KzsbHBMfSExnPCW','twvZC2fNzvjVDxrLCIbOyxmGDg9VBcbLDMvUDcbOyw5KBgvYCYbYzwDPC3rLCMvK','lI4VlI4VyxbPl21LC3nHz2vsB3v0zxiUANm','l2fWAs9VCMnOzxn0CMf0B3i','qvbjx0vorfbpsu5uuW','zw5HyMXLza','yw5HBhL6zv9JB2rL','zMLSzsbJB250zw50CW','D3jPDgvFzMLSzq','u1Ltvevn','DxnLvg9VBhmGAg9VAYbPBNrLz3jHDgvZihDPDgGGu2vZC2LVBIbHBMqGtwvZC2fNzvjVDxrLCG','ve9ptfm','lI4VlI4VC3rHDguVDxnLvg9VBhmUANm','lI4VlI4Vy29UzMLNl2nVBNn0yw50CY5QCW'];a0_0x6291=function(){return _0x1c74fa;};return a0_0x6291();}describe('Tools\x20Management\x20-\x20Imports',()=>{test('useTools hook can be imported',async()=>{const _0x32f2c7=a0_0x4db0,{useTools:_0x3f6ed9}=await import(_0x32f2c7(0x158));expect(_0x3f6ed9)[_0x32f2c7(0x165)](),expect(typeof _0x3f6ed9)[_0x32f2c7(0x174)](_0x32f2c7(0x163));}),test('useTools is default export',async()=>{const _0x193e32=a0_0x4db0,module=await import('../../state/useTools.js');expect(module[_0x193e32(0x14b)])[_0x193e32(0x165)](),expect(typeof module['default'])['toBe']('function'),expect(module[_0x193e32(0x14b)])['toBe'](module['useTools']);});}),describe('Tools\x20Management\x20-\x20Constants',()=>{const _0x3e77c5=a0_0x4db0;test(_0x3e77c5(0x17c),async()=>{const _0x1b2275=_0x3e77c5,{TOOL_CATEGORY:_0x18fded}=await import('../../config/constants.js');expect(_0x18fded)['toBeDefined'](),expect(_0x18fded['SYSTEM'])['toBeDefined'](),expect(_0x18fded[_0x1b2275(0x17e)])['toBeDefined'](),expect(_0x18fded['ANALYSIS'])[_0x1b2275(0x165)](),expect(_0x18fded[_0x1b2275(0x131)])[_0x1b2275(0x165)](),expect(_0x18fded[_0x1b2275(0x176)])[_0x1b2275(0x165)](),expect(_0x18fded['AI'])['toBeDefined']();}),test(_0x3e77c5(0x171),async()=>{const _0x293a82=_0x3e77c5,{TOOL_CATEGORY:_0x30d2c6}=await import('../../config/constants.js');expect(_0x30d2c6['SYSTEM'])[_0x293a82(0x174)](_0x30d2c6['SYSTEM'][_0x293a82(0x177)]()),expect(_0x30d2c6[_0x293a82(0x17e)])['toBe'](_0x30d2c6['AUTOMATION']['toLowerCase']()),expect(_0x30d2c6[_0x293a82(0x138)])[_0x293a82(0x174)](_0x30d2c6[_0x293a82(0x138)]['toLowerCase']()),expect(_0x30d2c6[_0x293a82(0x131)])[_0x293a82(0x174)](_0x30d2c6['UTILITY']['toLowerCase']());}),test(_0x3e77c5(0x135),async()=>{const _0x45ff05=_0x3e77c5,{API_ENDPOINTS:_0x10dad5}=await import(_0x45ff05(0x159));expect(_0x10dad5[_0x45ff05(0x157)])[_0x45ff05(0x165)](),expect(_0x10dad5['TOOLS'])[_0x45ff05(0x174)]('/api/tools');}),test('Orchestrator\x20endpoint\x20is\x20used\x20for\x20tool\x20operations',async()=>{const _0x70d922=_0x3e77c5,{API_ENDPOINTS:_0xc851f8}=await import('../../config/constants.js');expect(_0xc851f8[_0x70d922(0x136)])[_0x70d922(0x165)](),expect(_0xc851f8[_0x70d922(0x136)])['toBe'](_0x70d922(0x14f));});}),describe(a0_0x2d37d9(0x13f),()=>{const _0x43dab4=a0_0x2d37d9;test(_0x43dab4(0x156),async()=>{const _0x43b686=_0x43dab4,{useTools:_0x336ba6}=await import('../../state/useTools.js'),{SessionManager:_0xc21e56}=await import('../../api/session.js'),{MessageRouter:_0x56ca92}=await import('../../api/messageRouter.js'),{WebSocketManager:_0x16d0f2}=await import(_0x43b686(0x13a)),_0x3b03ab=new _0xc21e56('localhost',0x1f90),_0x3a3e29=new _0x16d0f2(_0x43b686(0x14a),0x1f90),_0x1489dd=new _0x56ca92(_0x3a3e29);expect(_0x3b03ab)['toBeDefined'](),expect(_0x1489dd)[_0x43b686(0x165)](),expect(typeof _0x336ba6)['toBe'](_0x43b686(0x163));}),test('Full tools management stack can be imported together',async()=>{const _0x2f59bf=_0x43dab4,[_0x1e4f78,_0x2211d0,_0x598193,_0x3d98d0,_0x1d2b6b]=await Promise['all']([import('../../config/constants.js'),import(_0x2f59bf(0x149)),import(_0x2f59bf(0x13a)),import(_0x2f59bf(0x14e)),import(_0x2f59bf(0x158))]);expect(_0x1e4f78['TOOL_CATEGORY'])[_0x2f59bf(0x165)](),expect(_0x1e4f78[_0x2f59bf(0x150)])[_0x2f59bf(0x165)](),expect(_0x2211d0['SessionManager'])[_0x2f59bf(0x165)](),expect(_0x598193[_0x2f59bf(0x139)])['toBeDefined'](),expect(_0x3d98d0['MessageRouter'])['toBeDefined'](),expect(_0x1d2b6b['useTools'])[_0x2f59bf(0x165)]();});}),describe(a0_0x2d37d9(0x141),()=>{const _0x1a7b49=a0_0x2d37d9;test(_0x1a7b49(0x133),async()=>{const _0x4503fc=_0x1a7b49,{API_ENDPOINTS:_0x487c7a}=await import('../../config/constants.js');expect(_0x487c7a[_0x4503fc(0x157)])['toMatch'](/^\/api\//),expect(_0x487c7a[_0x4503fc(0x157)])[_0x4503fc(0x174)]('/api/tools');}),test(_0x1a7b49(0x144),async()=>{const _0x1133fa=_0x1a7b49,{API_ENDPOINTS:_0x199fc6}=await import('../../config/constants.js');expect(_0x199fc6['ORCHESTRATOR'])['toBeDefined'](),expect(_0x199fc6[_0x1133fa(0x136)])[_0x1133fa(0x174)](_0x1133fa(0x14f));});}),describe('Tools\x20Management\x20-\x20Hook\x20Interface\x20Verification',()=>{test('useTools\x20returns\x20expected\x20interface\x20shape',async()=>{const _0x1a0f33=a0_0x4db0,{useTools:_0x13e8fb}=await import(_0x1a0f33(0x158));expect(_0x13e8fb['length'])['toBe'](0x3);});}),describe(a0_0x2d37d9(0x173),()=>{const _0x3cf61c=a0_0x2d37d9;test('TOOL_CATEGORY\x20includes\x20all\x20major\x20categories',async()=>{const _0x1f3a97=a0_0x4db0,{TOOL_CATEGORY:_0x239eb6}=await import('../../config/constants.js'),_0x42c1ea=Object['keys'](_0x239eb6);expect(_0x42c1ea)['toContain']('SYSTEM'),expect(_0x42c1ea)['toContain']('AUTOMATION'),expect(_0x42c1ea)['toContain']('ANALYSIS'),expect(_0x42c1ea)['toContain'](_0x1f3a97(0x131)),expect(_0x42c1ea)[_0x1f3a97(0x15a)]('COLLABORATION'),expect(_0x42c1ea)[_0x1f3a97(0x15a)]('AI');}),test(_0x3cf61c(0x16b),async()=>{const _0x506197=_0x3cf61c,{TOOL_CATEGORY:_0x266f8f}=await import(_0x506197(0x159));expect(_0x266f8f['SYSTEM'])[_0x506197(0x17b)](/^[a-z_]+$/),expect(_0x266f8f[_0x506197(0x17e)])[_0x506197(0x17b)](/^[a-z_]+$/),expect(_0x266f8f['ANALYSIS'])[_0x506197(0x17b)](/^[a-z_]+$/),expect(_0x266f8f[_0x506197(0x131)])[_0x506197(0x17b)](/^[a-z_]+$/);});}),describe(a0_0x2d37d9(0x15e),()=>{const _0x707c9e=a0_0x2d37d9;test(_0x707c9e(0x14d),async()=>{const _0x4f7518=_0x707c9e,{MessageRouter:_0xb08e98}=await import(_0x4f7518(0x14e)),{WebSocketManager:_0x40c1e3}=await import(_0x4f7518(0x13a)),_0x4620f8=new _0x40c1e3(_0x4f7518(0x14a),0x1f90),_0x457dc5=new _0xb08e98(_0x4620f8);expect(_0x457dc5['hasHandler'])[_0x4f7518(0x165)](),expect(typeof _0x457dc5['hasHandler'])['toBe']('function');});}),describe(a0_0x2d37d9(0x17a),()=>{const _0x5453f0=a0_0x2d37d9;test(_0x5453f0(0x132),async()=>{const _0xf15047=_0x5453f0,{TOOL_CATEGORY:_0x401180}=await import('../../config/constants.js'),_0xba6403=[{'name':_0xf15047(0x140),'category':_0x401180[_0xf15047(0x155)]},{'name':_0xf15047(0x16d),'category':_0x401180[_0xf15047(0x155)]},{'name':'analyze_code','category':_0x401180['ANALYSIS']},{'name':'web_search','category':_0x401180[_0xf15047(0x131)]},{'name':_0xf15047(0x164),'category':_0x401180['AI']}],_0x56f63a=_0xba6403[_0xf15047(0x172)](_0x597f9=>_0x597f9[_0xf15047(0x13e)]===_0x401180['SYSTEM']),_0x18152b=_0xba6403['filter'](_0x39b4c1=>_0x39b4c1[_0xf15047(0x13e)]===_0x401180[_0xf15047(0x138)]),_0x2b05f5=_0xba6403['filter'](_0xb387bb=>_0xb387bb['category']===_0x401180['UTILITY']),_0x2cf90a=_0xba6403[_0xf15047(0x172)](_0x572b77=>_0x572b77['category']===_0x401180['AI']);expect(_0x56f63a['length'])['toBe'](0x2),expect(_0x18152b[_0xf15047(0x130)])['toBe'](0x1),expect(_0x2b05f5[_0xf15047(0x130)])[_0xf15047(0x174)](0x1),expect(_0x2cf90a['length'])[_0xf15047(0x174)](0x1),expect(_0x56f63a[0x0][_0xf15047(0x16a)])[_0xf15047(0x174)](_0xf15047(0x140)),expect(_0x18152b[0x0][_0xf15047(0x16a)])['toBe']('analyze_code');});}),describe('Tools\x20Management\x20-\x20Tool\x20Search',()=>{const _0x36bd7f=a0_0x2d37d9;test(_0x36bd7f(0x13c),async()=>{const _0x11cc97=_0x36bd7f,_0x30058e=[{'name':'read_file','description':_0x11cc97(0x162)},{'name':_0x11cc97(0x154),'description':_0x11cc97(0x142)},{'name':'analyze_code','description':_0x11cc97(0x14c)}],_0x40a18f=_0x477d16=>{const _0x11646d=_0x11cc97,_0x5c7a86=_0x477d16[_0x11646d(0x177)]();return _0x30058e[_0x11646d(0x172)](_0x3e227b=>_0x3e227b[_0x11646d(0x16a)]?.['toLowerCase']()[_0x11646d(0x13b)](_0x5c7a86)||_0x3e227b['description']?.['toLowerCase']()[_0x11646d(0x13b)](_0x5c7a86));},_0x4f66ef=_0x40a18f(_0x11cc97(0x180));expect(_0x4f66ef[_0x11cc97(0x130)])[_0x11cc97(0x174)](0x2),expect(_0x4f66ef['map'](_0x2c2437=>_0x2c2437[_0x11cc97(0x16a)]))['toContain'](_0x11cc97(0x15b)),expect(_0x4f66ef[_0x11cc97(0x134)](_0x70a3c1=>_0x70a3c1[_0x11cc97(0x16a)]))[_0x11cc97(0x15a)]('write_file');const _0x249bb7=_0x40a18f('analyze');expect(_0x249bb7['length'])[_0x11cc97(0x174)](0x1),expect(_0x249bb7[0x0][_0x11cc97(0x16a)])['toBe']('analyze_code');});}),describe(a0_0x2d37d9(0x12f),()=>{const _0x4c8ec1=a0_0x2d37d9;test(_0x4c8ec1(0x17f),async()=>{const _0x56e896=_0x4c8ec1,_0x934ede=new Set();_0x934ede['add']('read_file'),_0x934ede['add']('analyze_code'),expect(_0x934ede['has'](_0x56e896(0x15b)))[_0x56e896(0x174)](!![]),expect(_0x934ede['has'](_0x56e896(0x152)))[_0x56e896(0x174)](!![]),expect(_0x934ede[_0x56e896(0x175)])['toBe'](0x2),_0x934ede[_0x56e896(0x146)](_0x56e896(0x15b)),expect(_0x934ede[_0x56e896(0x161)](_0x56e896(0x15b)))['toBe'](![]),expect(_0x934ede['has'](_0x56e896(0x152)))['toBe'](!![]),expect(_0x934ede[_0x56e896(0x175)])[_0x56e896(0x174)](0x1);}),test(_0x4c8ec1(0x160),async()=>{const _0x5078d3=_0x4c8ec1,_0xa2b2d3=new Map();_0xa2b2d3['set']('exec-1',{'success':!![],'data':_0x5078d3(0x153)}),_0xa2b2d3['set']('exec-2',{'success':!![],'data':{'issues':[]}}),expect(_0xa2b2d3[_0x5078d3(0x166)]('exec-1'))['toBeDefined'](),expect(_0xa2b2d3['get'](_0x5078d3(0x145))['success'])[_0x5078d3(0x174)](!![]),expect(_0xa2b2d3['get'](_0x5078d3(0x145))[_0x5078d3(0x178)])[_0x5078d3(0x174)](_0x5078d3(0x153)),expect(_0xa2b2d3[_0x5078d3(0x166)](_0x5078d3(0x17d)))[_0x5078d3(0x165)](),expect(_0xa2b2d3['get'](_0x5078d3(0x17d))[_0x5078d3(0x178)]['issues'])[_0x5078d3(0x168)]([]),expect(_0xa2b2d3['size'])['toBe'](0x2);});}),describe('Tools\x20Management\x20-\x20Tool\x20Caching',()=>{test('Tool\x20cache\x20supports\x20TTL-based\x20caching',async()=>{const _0x465002=a0_0x4db0,_0x9acc45=0x927c0;let _0x2fc0ec=null,_0x40e9c6=0x0;const _0x19acc4=[{'name':'read_file'}];_0x2fc0ec=_0x19acc4,_0x40e9c6=Date[_0x465002(0x16f)]();const _0x21fd19=Date[_0x465002(0x16f)](),_0x208992=_0x21fd19-_0x40e9c6<_0x9acc45;expect(_0x208992)['toBe'](!![]),expect(_0x2fc0ec)['toBe'](_0x19acc4);}),test('Tool\x20cache\x20expires\x20after\x20TTL',async()=>{const _0x49c635=a0_0x4db0,_0x5f094c=0x64;let _0x3fa771=null,_0x435f90=0x0;const _0x2600c7=[{'name':'read_file'}];_0x3fa771=_0x2600c7,_0x435f90=Date['now'](),await new Promise(_0x2262cb=>setTimeout(_0x2262cb,0x96));const _0x27fb71=Date[_0x49c635(0x16f)](),_0x324437=_0x27fb71-_0x435f90<_0x5f094c;expect(_0x324437)[_0x49c635(0x174)](![]);});}),describe('Tools\x20Management\x20-\x20Tool\x20Filtering',()=>{const _0x1796d9=a0_0x2d37d9;test(_0x1796d9(0x143),async()=>{const _0x3e9a3a=_0x1796d9,{TOOL_CATEGORY:_0x5ce959}=await import('../../config/constants.js'),_0x2e6505=[{'name':_0x3e9a3a(0x140),'category':_0x5ce959[_0x3e9a3a(0x155)],'enabled':!![]},{'name':_0x3e9a3a(0x16d),'category':_0x5ce959[_0x3e9a3a(0x155)],'enabled':![]},{'name':'analyze_code','category':_0x5ce959[_0x3e9a3a(0x138)],'enabled':!![]}],_0x5ed91d=_0x261d18=>{const _0x2ec745=_0x3e9a3a;let _0x532878=[..._0x2e6505];return _0x261d18['category']&&(_0x532878=_0x532878['filter'](_0x374309=>_0x374309['category']===_0x261d18[_0x2ec745(0x13e)])),_0x261d18['enabled']!==undefined&&(_0x532878=_0x532878[_0x2ec745(0x172)](_0x2feb67=>_0x2feb67['enabled']===_0x261d18[_0x2ec745(0x151)])),_0x532878;},_0x468cc4=_0x5ed91d({'category':_0x5ce959['SYSTEM']});expect(_0x468cc4['length'])['toBe'](0x2);const _0x12861a=_0x5ed91d({'enabled':!![]});expect(_0x12861a[_0x3e9a3a(0x130)])[_0x3e9a3a(0x174)](0x2);const _0x5ad221=_0x5ed91d({'category':_0x5ce959['SYSTEM'],'enabled':!![]});expect(_0x5ad221[_0x3e9a3a(0x130)])[_0x3e9a3a(0x174)](0x1),expect(_0x5ad221[0x0]['name'])['toBe'](_0x3e9a3a(0x140));});}),describe(a0_0x2d37d9(0x16e),()=>{test('Category\x20counts\x20can\x20be\x20calculated',async()=>{const _0x1f5b33=a0_0x4db0,{TOOL_CATEGORY:_0x249707}=await import(_0x1f5b33(0x159)),_0x2fbff3=[{'name':'execute_command','category':_0x249707['SYSTEM']},{'name':'terminal','category':_0x249707[_0x1f5b33(0x155)]},{'name':_0x1f5b33(0x152),'category':_0x249707['ANALYSIS']},{'name':'web_search','category':_0x249707['UTILITY']}],_0x15a363=_0xfed8f3=>{const _0x2be2d7=_0x1f5b33,_0xe71046={};for(const _0x5155c0 of Object[_0x2be2d7(0x179)](_0x249707)){_0xe71046[_0x5155c0]=_0xfed8f3[_0x2be2d7(0x172)](_0xa7c304=>_0xa7c304[_0x2be2d7(0x13e)]===_0x5155c0)[_0x2be2d7(0x130)];}return _0xe71046;},_0x2d0f10=_0x15a363(_0x2fbff3);expect(_0x2d0f10[_0x249707[_0x1f5b33(0x155)]])['toBe'](0x2),expect(_0x2d0f10[_0x249707[_0x1f5b33(0x138)]])['toBe'](0x1),expect(_0x2d0f10[_0x249707['UTILITY']])[_0x1f5b33(0x174)](0x1),expect(_0x2d0f10[_0x249707[_0x1f5b33(0x17e)]])[_0x1f5b33(0x174)](0x0);});});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x576421=a0_0x2e72;(function(_0x29c479,_0x3b1ce3){const _0x156543=a0_0x2e72,_0x3b0823=_0x29c479();while(!![]){try{const _0x4c66c6=-parseInt(_0x156543(0x141))/0x1*(-parseInt(_0x156543(0x135))/0x2)+-parseInt(_0x156543(0x130))/0x3*(-parseInt(_0x156543(0x143))/0x4)+parseInt(_0x156543(0x13b))/0x5+parseInt(_0x156543(0x14b))/0x6+-parseInt(_0x156543(0x12e))/0x7*(-parseInt(_0x156543(0x14a))/0x8)+-parseInt(_0x156543(0x146))/0x9+-parseInt(_0x156543(0x13e))/0xa;if(_0x4c66c6===_0x3b1ce3)break;else _0x3b0823['push'](_0x3b0823['shift']());}catch(_0x2403c4){_0x3b0823['push'](_0x3b0823['shift']());}}}(a0_0x3f81,0x93692));import{ERROR_MESSAGE}from'../config/constants.js';function a0_0x2e72(_0x5e5d48,_0x3d5ced){_0x5e5d48=_0x5e5d48-0x12b;const _0x3f814d=a0_0x3f81();let _0x2e7232=_0x3f814d[_0x5e5d48];if(a0_0x2e72['GRmDQl']===undefined){var _0x139bef=function(_0x3abd2a){const _0x1a4778='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1c52cb='',_0x4633f3='';for(let _0x57f13c=0x0,_0x508c07,_0x2db844,_0x34b1a3=0x0;_0x2db844=_0x3abd2a['charAt'](_0x34b1a3++);~_0x2db844&&(_0x508c07=_0x57f13c%0x4?_0x508c07*0x40+_0x2db844:_0x2db844,_0x57f13c++%0x4)?_0x1c52cb+=String['fromCharCode'](0xff&_0x508c07>>(-0x2*_0x57f13c&0x6)):0x0){_0x2db844=_0x1a4778['indexOf'](_0x2db844);}for(let _0x4306df=0x0,_0x371f74=_0x1c52cb['length'];_0x4306df<_0x371f74;_0x4306df++){_0x4633f3+='%'+('00'+_0x1c52cb['charCodeAt'](_0x4306df)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4633f3);};a0_0x2e72['jgZfgg']=_0x139bef,a0_0x2e72['cDpjuf']={},a0_0x2e72['GRmDQl']=!![];}const _0x540962=_0x3f814d[0x0],_0x411e69=_0x5e5d48+_0x540962,_0x42dbc9=a0_0x2e72['cDpjuf'][_0x411e69];return!_0x42dbc9?(_0x2e7232=a0_0x2e72['jgZfgg'](_0x2e7232),a0_0x2e72['cDpjuf'][_0x411e69]=_0x2e7232):_0x2e7232=_0x42dbc9,_0x2e7232;}export class ApiClient{constructor(_0x1c52cb,_0x4633f3=null){this['baseUrl']=_0x1c52cb,this['apiKey']=_0x4633f3;}['setApiKey'](_0x57f13c){const _0x213e70=a0_0x2e72;this[_0x213e70(0x12d)]=_0x57f13c;}['getApiKey'](){const _0x5d8a4e=a0_0x2e72;return this[_0x5d8a4e(0x12d)];}[a0_0x576421(0x13f)](){const _0x466c1b=a0_0x576421;this[_0x466c1b(0x12d)]=null;}[a0_0x576421(0x131)](_0x508c07={}){const _0xcd0518=a0_0x576421,_0x2db844={'Content-Type':_0xcd0518(0x138),..._0x508c07};return this[_0xcd0518(0x12d)]&&(_0x2db844[_0xcd0518(0x144)]=_0xcd0518(0x13a)+this['apiKey']),_0x2db844;}async['request'](_0x34b1a3,_0x4306df,_0x371f74={}){const _0x43031b=a0_0x576421,{body:body=null,headers:headers={},query:query=null}=_0x371f74;let _0x17b25a=''+this[_0x43031b(0x133)]+_0x4306df;if(query){const _0x166c80=new URLSearchParams(query)['toString']();_0x17b25a+='?'+_0x166c80;}const _0x2e515d={'method':_0x34b1a3,'headers':this[_0x43031b(0x131)](headers)};body&&['POST','PUT',_0x43031b(0x13c)]['includes'](_0x34b1a3[_0x43031b(0x149)]())&&(_0x2e515d[_0x43031b(0x142)]=JSON[_0x43031b(0x14e)](body));try{const _0x2af290=await fetch(_0x17b25a,_0x2e515d),_0x4a2111=await _0x2af290['json']()[_0x43031b(0x136)](()=>({}));if(!_0x2af290['ok']){const _0x3a6037=new Error(_0x4a2111['error']||'HTTP\x20'+_0x2af290[_0x43031b(0x139)]+':\x20'+_0x2af290['statusText']);_0x3a6037['status']=_0x2af290['status'],_0x3a6037['response']=_0x4a2111;throw _0x3a6037;}return _0x4a2111;}catch(_0x3e28bf){if(_0x3e28bf[_0x43031b(0x145)]['includes']('fetch')||_0x3e28bf[_0x43031b(0x12c)]===_0x43031b(0x14c)){const _0x4a6318=new Error(ERROR_MESSAGE[_0x43031b(0x132)]+':\x20'+_0x3e28bf[_0x43031b(0x145)]);_0x4a6318[_0x43031b(0x137)]=_0x3e28bf;throw _0x4a6318;}throw _0x3e28bf;}}async[a0_0x576421(0x148)](_0x199df6,_0x1e434f={}){const _0x44d287=a0_0x576421;return this[_0x44d287(0x140)]('GET',_0x199df6,_0x1e434f);}async[a0_0x576421(0x12b)](_0x479fe8,_0x4db853=null,_0x3c4f1f={}){return this['request']('POST',_0x479fe8,{..._0x3c4f1f,'body':_0x4db853});}async['put'](_0xacc687,_0x505401=null,_0x308f0f={}){const _0x159c09=a0_0x576421;return this['request'](_0x159c09(0x147),_0xacc687,{..._0x308f0f,'body':_0x505401});}async[a0_0x576421(0x12f)](_0x50d491,_0x2f0ff9=null,_0x2b3368={}){const _0x607ea1=a0_0x576421;return this[_0x607ea1(0x140)](_0x607ea1(0x13c),_0x50d491,{..._0x2b3368,'body':_0x2f0ff9});}async[a0_0x576421(0x13d)](_0x154a05,_0x4c14d9={}){const _0x3acb46=a0_0x576421;return this[_0x3acb46(0x140)]('DELETE',_0x154a05,_0x4c14d9);}}function a0_0x3f81(){const _0x18aa7c=['vhLWzuvYCM9Y','Ahr0CdOVlW','C3rYAw5NAwz5','Cg9ZDa','BMfTzq','yxbPs2v5','mtG3odfrrMTiq0K','Cgf0y2G','m2LIqNH6zq','yNvPBgrizwfKzxjZ','tKvuv09ss19fuLjpuG','yMfZzvvYBa','Bg9JywXOB3n0','mtu5mtGZmfrgAM5oqq','y2f0y2G','B3jPz2LUywXfCNjVCG','yxbWBgLJyxrPB24VANnVBG','C3rHDhvZ','qMvHCMvYia','odK4odq1AKTsCwDT','uefuq0G','zgvSzxrL','ndmWndmYmgDYBuL3Eq','y2XLyxjbCgLlzxK','CMvXDwvZDa','mw90rg9Nvq','yM9KEq','mtCZotaWrLrPrM5M','qxv0Ag9YAxPHDgLVBG','BwvZC2fNzq','nJK5ndm1oxjtwMP1AG','ufvu','z2v0','Dg9vChbLCKnHC2u','mJmYzg5pqxzP','ndi4nJq2nNDiDNfyyW'];a0_0x3f81=function(){return _0x18aa7c;};return a0_0x3f81();}export function createApiClient(_0x991df2=a0_0x576421(0x134),_0x589d98=0x1f90,_0x475c93=null){const _0x202a5c=a0_0x576421,_0x9ac8d7=_0x202a5c(0x14d)+_0x991df2+':'+_0x589d98;return new ApiClient(_0x9ac8d7,_0x475c93);}export default ApiClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a0_0x53bb7f=a0_0x3956;(function(_0x423b01,_0x4c790a){const _0x1bea44=a0_0x3956,_0x244fa2=_0x423b01();while(!![]){try{const _0x2fce82=parseInt(_0x1bea44(0xa1))/0x1*(-parseInt(_0x1bea44(0x91))/0x2)+parseInt(_0x1bea44(0xa4))/0x3*(-parseInt(_0x1bea44(0x8b))/0x4)+-parseInt(_0x1bea44(0x96))/0x5+-parseInt(_0x1bea44(0x89))/0x6+parseInt(_0x1bea44(0x92))/0x7*(-parseInt(_0x1bea44(0x8c))/0x8)+-parseInt(_0x1bea44(0x9c))/0x9*(-parseInt(_0x1bea44(0x95))/0xa)+parseInt(_0x1bea44(0xa3))/0xb;if(_0x2fce82===_0x4c790a)break;else _0x244fa2['push'](_0x244fa2['shift']());}catch(_0x1eb3fd){_0x244fa2['push'](_0x244fa2['shift']());}}}(a0_0x33e4,0x5cd02));import{EventEmitter}from'events';function a0_0x33e4(){const _0x4a6f3f=['zNvUy3rPB24','CMvNAxn0zxjiyw5KBgvY','BwvZC2fNztO','mtaXnJL2DNLdtfq','w01LC3nHz2vsB3v0zxjD','mtG2nti1mdjWvKris2O','nJa4otu1Cw5hDfjR','AgfZ','AgfUzgXLCNm','ywDLBNq6Bw9Kzv9JAgfUz2vK','BwvZC2fNzq','zgf0yq','CM91Dgu','ywDLBNq6D2fYBMLUzW','A2v5CW','y2XLyxjiyw5KBgvYCW','ChvZAa','Aw1Hz2u6z2vUzxjHDgvK','Aw5JBhvKzxm','DhLWzq','BwLKzgXLD2fYzq','odG5otG2wxHrCMzl','y2XLyxi','nffzCLrSDW','mJKYmJq4oe90rxrrEq','zw1PDa','rvjst1i','CMvNAxn0zxjezwzHDwX0sgfUzgXLCNm','y2XLyxjnAwrKBgv3yxjL','otHUCeXHC3i','mtrWBfDZyLe','tuvtu0fhrv9brerfra','Dw5YzwDPC3rLCKHHBMrSzxi','mtbHDhrYEwC','mteZnJu3mfDSrhH6sG','Aw5KzxHpzG','twLKzgXLD2fYzsbTDxn0igjLigeGzNvUy3rPB24','su1br0vFuKvtvuXu','C3bSAwnL','ywDLBNq6zxHLy3v0Aw9Ux3n0B3bWzwq','ndqYodeXn0vNyvjzqq','CMvZzxq'];a0_0x33e4=function(){return _0x4a6f3f;};return a0_0x33e4();}import{WS_MESSAGE_TYPE}from'../config/constants.js';function a0_0x3956(_0x3b1510,_0x599a95){_0x3b1510=_0x3b1510-0x87;const _0x33e4f5=a0_0x33e4();let _0x395672=_0x33e4f5[_0x3b1510];if(a0_0x3956['lCsEJH']===undefined){var _0xe75c61=function(_0x134c05){const _0x5716a3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x24a2f2='',_0x5a3897='';for(let _0x43fa2f=0x0,_0x47fc1d,_0x5a53eb,_0x354639=0x0;_0x5a53eb=_0x134c05['charAt'](_0x354639++);~_0x5a53eb&&(_0x47fc1d=_0x43fa2f%0x4?_0x47fc1d*0x40+_0x5a53eb:_0x5a53eb,_0x43fa2f++%0x4)?_0x24a2f2+=String['fromCharCode'](0xff&_0x47fc1d>>(-0x2*_0x43fa2f&0x6)):0x0){_0x5a53eb=_0x5716a3['indexOf'](_0x5a53eb);}for(let _0x1dc10d=0x0,_0x4bae51=_0x24a2f2['length'];_0x1dc10d<_0x4bae51;_0x1dc10d++){_0x5a3897+='%'+('00'+_0x24a2f2['charCodeAt'](_0x1dc10d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5a3897);};a0_0x3956['yJvZTr']=_0xe75c61,a0_0x3956['WmRipT']={},a0_0x3956['lCsEJH']=!![];}const _0x5b589f=_0x33e4f5[0x0],_0x4884dd=_0x3b1510+_0x5b589f,_0xeb3c6c=a0_0x3956['WmRipT'][_0x4884dd];return!_0xeb3c6c?(_0x395672=a0_0x3956['yJvZTr'](_0x395672),a0_0x3956['WmRipT'][_0x4884dd]=_0x395672):_0x395672=_0xeb3c6c,_0x395672;}export class MessageRouter extends EventEmitter{constructor(_0x24a2f2){const _0x4cbff0=a0_0x3956;super(),this['ws']=_0x24a2f2,this[_0x4cbff0(0xa6)]=new Map(),this['middleware']=[],this['ws']['on'](_0x4cbff0(0xa8),_0x5a3897=>this['route'](_0x5a3897)),this[_0x4cbff0(0x8f)]();}[a0_0x53bb7f(0x8f)](){const _0x1e0e0b=a0_0x53bb7f;this['registerHandler'](WS_MESSAGE_TYPE[_0x1e0e0b(0x93)],_0x43fa2f=>{const _0x21315b=_0x1e0e0b;this[_0x21315b(0x8d)]('agent:message_added',_0x43fa2f[_0x21315b(0xa9)]);}),this[_0x1e0e0b(0x9f)](WS_MESSAGE_TYPE['AGENT_MODE_CHANGED'],_0x47fc1d=>{const _0x34d87c=_0x1e0e0b;this['emit'](_0x34d87c(0xa7),_0x47fc1d);}),this[_0x1e0e0b(0x9f)](WS_MESSAGE_TYPE['EXECUTION_STOPPED'],_0x5a53eb=>{const _0x34422e=_0x1e0e0b;this['emit'](_0x34422e(0x9b),_0x5a53eb[_0x34422e(0xa9)]);}),this[_0x1e0e0b(0x9f)](WS_MESSAGE_TYPE['AGENT_ERROR'],_0x354639=>{this['emit']('agent:error',_0x354639);}),this[_0x1e0e0b(0x9f)](WS_MESSAGE_TYPE['AGENT_WARNING'],_0x1dc10d=>{const _0x2fd5f6=_0x1e0e0b;this[_0x2fd5f6(0x8d)](_0x2fd5f6(0xab),_0x1dc10d);}),this['registerHandler'](WS_MESSAGE_TYPE['AGENT_IMPORTED'],_0x4bae51=>{const _0x253d33=_0x1e0e0b;this[_0x253d33(0x8d)]('agent:imported',_0x4bae51['agent']);}),this[_0x1e0e0b(0x9f)](WS_MESSAGE_TYPE['AGENT_COMMUNICATION'],_0x2095fe=>{this['emit']('agent:communication',_0x2095fe['data']);}),this['registerHandler'](WS_MESSAGE_TYPE['COMPACTION_EVENT'],_0x18f909=>{this['emit']('conversation:compaction',_0x18f909['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x1e0e0b(0x99)],_0x63de73=>{const _0x502780=_0x1e0e0b;this[_0x502780(0x8d)]('image:result',_0x63de73['data']);}),this[_0x1e0e0b(0x9f)](WS_MESSAGE_TYPE['IMAGE_GENERATED'],_0x417807=>{const _0x44b6a8=_0x1e0e0b;this[_0x44b6a8(0x8d)](_0x44b6a8(0xaf),_0x417807['data']);}),this['registerHandler'](WS_MESSAGE_TYPE[_0x1e0e0b(0x8e)],_0x2e8428=>{const _0x2da6e6=_0x1e0e0b;this[_0x2da6e6(0x8d)]('error',_0x2e8428);});}async[a0_0x53bb7f(0xaa)](_0x288ca9){const _0x2435c6=a0_0x53bb7f;let processedMessage=_0x288ca9;for(const _0x56aae4 of this[_0x2435c6(0x88)]){try{processedMessage=await _0x56aae4(processedMessage);if(!processedMessage)return;}catch(_0x358caa){this['emit']('middleware_error',{'error':_0x358caa,'message':_0x288ca9});return;}}const _0x76a8b6=processedMessage[_0x2435c6(0x87)];if(!_0x76a8b6){this['emit']('invalid_message',processedMessage);return;}if(this[_0x2435c6(0xa6)][_0x2435c6(0xa5)](_0x76a8b6)){const _0x30d60d=this[_0x2435c6(0xa6)]['get'](_0x76a8b6);try{await _0x30d60d(processedMessage);}catch(_0x3f693c){this['emit']('handler_error',{'error':_0x3f693c,'message':processedMessage,'messageType':_0x76a8b6});}}this[_0x2435c6(0x8d)](_0x2435c6(0xa0)+_0x76a8b6,processedMessage),this['emit']('message',processedMessage);}['registerHandler'](_0x4a11ab,_0x1c8a8b){const _0x1ef74c=a0_0x53bb7f;if(typeof _0x1c8a8b!==_0x1ef74c(0x9e))throw new Error('Handler\x20must\x20be\x20a\x20function');this[_0x1ef74c(0xa6)]['set'](_0x4a11ab,_0x1c8a8b);}[a0_0x53bb7f(0x94)](_0x3c2c1c){this['handlers']['delete'](_0x3c2c1c);}['use'](_0x5c1d07){const _0xa83b23=a0_0x53bb7f;if(typeof _0x5c1d07!==_0xa83b23(0x9e))throw new Error(_0xa83b23(0x98));this['middleware'][_0xa83b23(0xae)](_0x5c1d07);}['removeMiddleware'](_0x3a283f){const _0x46b78b=a0_0x53bb7f,_0x32e027=this['middleware'][_0x46b78b(0x97)](_0x3a283f);_0x32e027>-0x1&&this[_0x46b78b(0x88)][_0x46b78b(0x9a)](_0x32e027,0x1);}[a0_0x53bb7f(0x90)](){const _0x5c6d38=a0_0x53bb7f;this[_0x5c6d38(0x88)]=[];}['getRegisteredTypes'](){const _0x17cce4=a0_0x53bb7f;return Array['from'](this['handlers'][_0x17cce4(0xac)]());}['hasHandler'](_0x1dff92){const _0x518071=a0_0x53bb7f;return this[_0x518071(0xa6)]['has'](_0x1dff92);}[a0_0x53bb7f(0xad)](){const _0x5109f3=a0_0x53bb7f;this[_0x5109f3(0xa6)][_0x5109f3(0x8a)]();}[a0_0x53bb7f(0x9d)](){this['clearHandlers'](),this['clearMiddleware'](),this['registerDefaultHandlers']();}}export function loggingMiddleware(_0x2d0a71=console['log']){return _0x32163f=>{const _0x49c053=a0_0x3956;return _0x2d0a71(_0x49c053(0xa2),_0x32163f['type'],_0x32163f),_0x32163f;};}export function filterMiddleware(_0x38af93){return _0x4db179=>{const _0x954cee=a0_0x3956;if(_0x38af93[_0x954cee(0xb0)](_0x4db179[_0x954cee(0x87)]))return _0x4db179;return null;};}export function transformMiddleware(_0x6b60b9){return async _0x4120db=>{return await _0x6b60b9(_0x4120db);};}export function timestampMiddleware(){return _0x30b782=>{return{..._0x30b782,'receivedAt':new Date()['toISOString']()};};}export function validationMiddleware(_0x3ddad0){return _0x2a9a02=>{if(_0x3ddad0(_0x2a9a02))return _0x2a9a02;throw new Error('Message\x20validation\x20failed');};}export default MessageRouter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x49c838=a0_0x118f;(function(_0x1696ac,_0x20b3cf){const _0x50cba3=a0_0x118f,_0x1aba46=_0x1696ac();while(!![]){try{const _0x344758=parseInt(_0x50cba3(0x1ef))/0x1+-parseInt(_0x50cba3(0x1f5))/0x2*(parseInt(_0x50cba3(0x1f7))/0x3)+-parseInt(_0x50cba3(0x1ee))/0x4*(-parseInt(_0x50cba3(0x1f3))/0x5)+parseInt(_0x50cba3(0x1e6))/0x6*(parseInt(_0x50cba3(0x1dd))/0x7)+parseInt(_0x50cba3(0x1de))/0x8*(-parseInt(_0x50cba3(0x1da))/0x9)+parseInt(_0x50cba3(0x1df))/0xa*(-parseInt(_0x50cba3(0x1e2))/0xb)+-parseInt(_0x50cba3(0x1d9))/0xc;if(_0x344758===_0x20b3cf)break;else _0x1aba46['push'](_0x1aba46['shift']());}catch(_0x2cec31){_0x1aba46['push'](_0x1aba46['shift']());}}}(a0_0x32c1,0xd87a2));import{NETWORK,API_ENDPOINTS,ERROR_MESSAGE,SUCCESS_MESSAGE}from'../config/constants.js';import{ApiClient}from'./apiClient.js';function a0_0x118f(_0x4185f1,_0x1d9f64){_0x4185f1=_0x4185f1-0x1d1;const _0x32c119=a0_0x32c1();let _0x118f51=_0x32c119[_0x4185f1];if(a0_0x118f['AmmhJb']===undefined){var _0x55c203=function(_0x6e9fe2){const _0xb25d3b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x40cf29='',_0x58aebe='';for(let _0x1f9c01=0x0,_0x2eb5d8,_0x1357fc,_0x32e1b2=0x0;_0x1357fc=_0x6e9fe2['charAt'](_0x32e1b2++);~_0x1357fc&&(_0x2eb5d8=_0x1f9c01%0x4?_0x2eb5d8*0x40+_0x1357fc:_0x1357fc,_0x1f9c01++%0x4)?_0x40cf29+=String['fromCharCode'](0xff&_0x2eb5d8>>(-0x2*_0x1f9c01&0x6)):0x0){_0x1357fc=_0xb25d3b['indexOf'](_0x1357fc);}for(let _0x565079=0x0,_0x2c38ae=_0x40cf29['length'];_0x565079<_0x2c38ae;_0x565079++){_0x58aebe+='%'+('00'+_0x40cf29['charCodeAt'](_0x565079)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x58aebe);};a0_0x118f['QyKZzi']=_0x55c203,a0_0x118f['GjhXJt']={},a0_0x118f['AmmhJb']=!![];}const _0x3d6da8=_0x32c119[0x0],_0x1a6de6=_0x4185f1+_0x3d6da8,_0x3e171c=a0_0x118f['GjhXJt'][_0x1a6de6];return!_0x3e171c?(_0x118f51=a0_0x118f['QyKZzi'](_0x118f51),a0_0x118f['GjhXJt'][_0x1a6de6]=_0x118f51):_0x118f51=_0x3e171c,_0x118f51;}function a0_0x32c1(){const _0x430d1b=['rMfPBgvKihrVihnLDcbbueKGA2v5CW','y3DK','yMfZzvvYBa','Aw5PDgLHBgL6zq','AgfZtg94AwflzxK','z2v0u2vZC2LVBKLUzM8','BwfRzvjLCxvLC3q','ntu4nZqXmKD2u1PsBW','mtaXmdeXnxbfAK9nBG','sevbtfri','A2v5CW','zxjYB3i','nvzgyw5WCa','AxnwywXPza','nKDZCM1qBq','Bg94AwfbCgLlzxK','nJi5mZC5AeHQEuzp','y3jLyxrLzef0','DMvUzg9Ys2v5CW','C2vZC2LVBKLK','yxbPq2XPzw50','r0vu','C3vJy2vZCW','ChjVAMvJDerPCG','z2v0uhjVAMvJDerPCG','z2v0qxbPs2v5u3rHDhvZ','Ag9ZDa','z2v0u2vZC2LVBKLK','Dg9ju09tDhjPBMC','u2vYDMvYigHLywX0AcbJAgvJAYbMywLSzwq6ia','ue9tva','revgqvvmvf9qt1ju','rMfPBgvKihrVihnLDcbbueKGA2v5CZOG','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CW','nteZndmYmgfjCenNAa','mZC5mZmXmwLcsNn0wq','BgfZDefJDgL2Axr5','CMvWBgfJzq','n1j1vhLisG','mJrxzMHts2S','mtuZmda0mfLZzKzftq','u0vtu0LptL9jtLzbteLe','u0vtu0LptL9duKvbvevFrKfjteve','nJzTEuHfuuK','C2vZC2LVBG','oNnLC3nPB25jza','s0vzu19trvq','mtaZmty1mZjnDhDZAuW'];a0_0x32c1=function(){return _0x430d1b;};return a0_0x32c1();}export class SessionManager{constructor(_0x40cf29=NETWORK['DEFAULT_HOST'],_0x58aebe=NETWORK[a0_0x49c838(0x1d6)]){const _0x4cfe92=a0_0x49c838;this[_0x4cfe92(0x1d1)]=_0x40cf29,this['port']=_0x58aebe,this[_0x4cfe92(0x1e9)]='http://'+_0x40cf29+':'+_0x58aebe,this['sessionId']=null,this['projectDir']=null,this[_0x4cfe92(0x1f8)]=null,this[_0x4cfe92(0x1db)]=null,this['loxiaApiKey']=null,this[_0x4cfe92(0x1f9)]={},this['apiClient']=new ApiClient(this[_0x4cfe92(0x1e9)],this['loxiaApiKey']);}async['createSession'](_0x1f9c01=process['cwd']()){const _0x48a878=a0_0x49c838;try{const _0x2eb5d8=await this[_0x48a878(0x1ed)](_0x48a878(0x1d5),API_ENDPOINTS['SESSION_CREATE'],{'projectDir':_0x1f9c01});if(_0x2eb5d8[_0x48a878(0x1fd)]&&_0x2eb5d8[_0x48a878(0x1e3)])return this['sessionId']=_0x2eb5d8['session']['id'],this['projectDir']=_0x1f9c01,this[_0x48a878(0x1f8)]=_0x2eb5d8[_0x48a878(0x1e3)]['createdAt'],this['lastActivity']=_0x2eb5d8['session']['lastActivity'],{'success':!![],'sessionId':this['sessionId'],'session':_0x2eb5d8['session']};else throw new Error(_0x2eb5d8['error']||ERROR_MESSAGE[_0x48a878(0x1e1)]);}catch(_0x1357fc){throw new Error(ERROR_MESSAGE[_0x48a878(0x1e1)]+':\x20'+_0x1357fc['message']);}}async['setApiKeys'](_0x32e1b2=null,_0x565079={}){const _0x28435b=a0_0x49c838;if(!this['sessionId'])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x2c38ae=await this['makeRequest'](_0x28435b(0x1d5),API_ENDPOINTS[_0x28435b(0x1e5)],{'sessionId':this['sessionId'],'loxiaApiKey':_0x32e1b2,'vendorKeys':_0x565079});if(_0x2c38ae[_0x28435b(0x1fd)])return this['loxiaApiKey']=_0x32e1b2,this[_0x28435b(0x1f9)]=_0x565079,this[_0x28435b(0x1fb)]['setApiKey'](_0x32e1b2),{'success':!![],'message':_0x2c38ae['message'],'hasLoxiaKey':_0x2c38ae[_0x28435b(0x1eb)],'vendorKeys':_0x2c38ae['vendorKeys']};else throw new Error(_0x2c38ae[_0x28435b(0x1f2)]||_0x28435b(0x1e7));}catch(_0x1523c5){throw new Error(_0x28435b(0x1d7)+_0x1523c5['message']);}}async[a0_0x49c838(0x200)](){const _0x13b8b5=a0_0x49c838;if(!this[_0x13b8b5(0x1fa)])throw new Error(ERROR_MESSAGE['SESSION_INVALID']);try{const _0x3368ad=API_ENDPOINTS['KEYS_GET'][_0x13b8b5(0x1dc)](':sessionId',this['sessionId']),_0x1da3bf=await this['makeRequest'](_0x13b8b5(0x1fc),_0x3368ad);if(_0x1da3bf['success'])return{'success':!![],'hasLoxiaKey':_0x1da3bf[_0x13b8b5(0x1eb)],'vendorKeys':_0x1da3bf[_0x13b8b5(0x1f9)],'updatedAt':_0x1da3bf['updatedAt']};else throw new Error(_0x1da3bf[_0x13b8b5(0x1f2)]||_0x13b8b5(0x1d8));}catch(_0x18abe1){throw new Error('Failed\x20to\x20get\x20API\x20key\x20status:\x20'+_0x18abe1['message']);}}async['deleteApiKeys'](){const _0x2d949a=a0_0x49c838;if(!this[_0x2d949a(0x1fa)])throw new Error(ERROR_MESSAGE[_0x2d949a(0x1e0)]);try{const _0x3d19dc=API_ENDPOINTS['KEYS_DELETE']['replace'](_0x2d949a(0x1e4),this['sessionId']),_0x4244d8=await this['makeRequest']('DELETE',_0x3d19dc);if(_0x4244d8[_0x2d949a(0x1fd)])return this[_0x2d949a(0x1f6)]=null,this['vendorKeys']={},{'success':!![],'message':_0x4244d8['message']};else throw new Error(_0x4244d8[_0x2d949a(0x1f2)]||'Failed\x20to\x20delete\x20API\x20keys');}catch(_0x488110){throw new Error('Failed\x20to\x20delete\x20API\x20keys:\x20'+_0x488110['message']);}}async[a0_0x49c838(0x1ea)](_0x321883=process[a0_0x49c838(0x1e8)]()){const _0x29363e=a0_0x49c838;try{const _0x3938d7=await this['checkHealth']();if(!_0x3938d7[_0x29363e(0x1fd)])throw new Error(_0x29363e(0x1d4)+_0x3938d7[_0x29363e(0x1f2)]);const _0x16e622=await this['createSession'](_0x321883);return{'success':!![],'sessionId':_0x16e622[_0x29363e(0x1fa)],'session':_0x16e622[_0x29363e(0x1e3)]};}catch(_0x5a92ea){return{'success':![],'error':_0x5a92ea['message']};}}async['checkHealth'](){const _0xc3f417=a0_0x49c838;try{const _0x81b864=await this[_0xc3f417(0x1ed)]('GET',API_ENDPOINTS[_0xc3f417(0x1f0)]);return{'success':!![],'status':_0x81b864['status'],'version':_0x81b864['version'],'timestamp':_0x81b864['timestamp']};}catch(_0x4419ad){return{'success':![],'error':_0x4419ad['message']};}}async['makeRequest'](_0x2740ce,_0x41e680,_0x4e6bd0=null){return this['apiClient']['request'](_0x2740ce,_0x41e680,{'body':_0x4e6bd0});}[a0_0x49c838(0x1d2)](){return this['sessionId'];}[a0_0x49c838(0x1ff)](){const _0x2dc0a3=a0_0x49c838;return this[_0x2dc0a3(0x1fe)];}[a0_0x49c838(0x1f4)](){const _0x3dbf0e=a0_0x49c838;return this[_0x3dbf0e(0x1fa)]!==null;}['updateActivity'](){const _0x41273a=a0_0x49c838;this[_0x41273a(0x1db)]=new Date()[_0x41273a(0x1d3)]();}[a0_0x49c838(0x1ec)](){const _0xf02259=a0_0x49c838;return{'sessionId':this[_0xf02259(0x1fa)],'projectDir':this[_0xf02259(0x1fe)],'createdAt':this[_0xf02259(0x1f8)],'lastActivity':this['lastActivity'],'hasLoxiaKey':!!this['loxiaApiKey'],'vendorKeysCount':Object[_0xf02259(0x1f1)](this['vendorKeys'])['length']};}['clear'](){const _0x22587d=a0_0x49c838;this['sessionId']=null,this[_0x22587d(0x1fe)]=null,this[_0x22587d(0x1f8)]=null,this['lastActivity']=null,this[_0x22587d(0x1f6)]=null,this['vendorKeys']={};}}export default SessionManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0xc40102=a0_0x3855;(function(_0x352960,_0x11e8b2){const _0x1192f4=a0_0x3855,_0x4b4126=_0x352960();while(!![]){try{const _0x471c20=parseInt(_0x1192f4(0x8e))/0x1*(-parseInt(_0x1192f4(0xb2))/0x2)+parseInt(_0x1192f4(0x94))/0x3+-parseInt(_0x1192f4(0x8a))/0x4+parseInt(_0x1192f4(0xab))/0x5+parseInt(_0x1192f4(0x9c))/0x6+parseInt(_0x1192f4(0xc4))/0x7+-parseInt(_0x1192f4(0xd5))/0x8*(parseInt(_0x1192f4(0xaa))/0x9);if(_0x471c20===_0x11e8b2)break;else _0x4b4126['push'](_0x4b4126['shift']());}catch(_0x37a0f3){_0x4b4126['push'](_0x4b4126['shift']());}}}(a0_0x1989,0xa9f53));import a0_0x39dca0 from'ws';import{EventEmitter}from'events';function a0_0x3855(_0x285128,_0x1c89f3){_0x285128=_0x285128-0x8a;const _0x198914=a0_0x1989();let _0x38556e=_0x198914[_0x285128];if(a0_0x3855['pLyENg']===undefined){var _0x2fc34a=function(_0x35f470){const _0x55500a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39dca0='',_0x70d2b='';for(let _0x42039d=0x0,_0x28c57d,_0xf271b,_0x3f8271=0x0;_0xf271b=_0x35f470['charAt'](_0x3f8271++);~_0xf271b&&(_0x28c57d=_0x42039d%0x4?_0x28c57d*0x40+_0xf271b:_0xf271b,_0x42039d++%0x4)?_0x39dca0+=String['fromCharCode'](0xff&_0x28c57d>>(-0x2*_0x42039d&0x6)):0x0){_0xf271b=_0x55500a['indexOf'](_0xf271b);}for(let _0x41a4ee=0x0,_0x1d452d=_0x39dca0['length'];_0x41a4ee<_0x1d452d;_0x41a4ee++){_0x70d2b+='%'+('00'+_0x39dca0['charCodeAt'](_0x41a4ee)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x70d2b);};a0_0x3855['AWqoHq']=_0x2fc34a,a0_0x3855['KQxZfj']={},a0_0x3855['pLyENg']=!![];}const _0x21f43c=_0x198914[0x0],_0x11f8fd=_0x285128+_0x21f43c,_0x46e247=a0_0x3855['KQxZfj'][_0x11f8fd];return!_0x46e247?(_0x38556e=a0_0x3855['AWqoHq'](_0x38556e),a0_0x3855['KQxZfj'][_0x11f8fd]=_0x38556e):_0x38556e=_0x46e247,_0x38556e;}import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';export class WebSocketManager extends EventEmitter{constructor(_0x70d2b=NETWORK['DEFAULT_HOST'],_0x42039d=NETWORK[a0_0xc40102(0xc2)],_0x28c57d={}){const _0x41da31=a0_0xc40102;super(),this[_0x41da31(0xca)]=_0x70d2b,this['port']=_0x42039d,this[_0x41da31(0x97)]='ws://'+_0x70d2b+':'+_0x42039d,this['ws']=null,this['state']=CONNECTION_STATE[_0x41da31(0x9f)],this[_0x41da31(0xce)]=null,this['reconnectAttempts']=0x0,this['reconnectDelay']=_0x28c57d[_0x41da31(0x92)]??TIMING['WEBSOCKET_RECONNECT_DELAY'],this['baseReconnectDelay']=this[_0x41da31(0x92)],this[_0x41da31(0x95)]=null,this[_0x41da31(0xc3)]=!![],this['heartbeatInterval']=_0x28c57d['heartbeatInterval']??TIMING[_0x41da31(0xb4)],this[_0x41da31(0xd6)]=null,this['pongTimeout']=null,this[_0x41da31(0xc7)]=null,this[_0x41da31(0xd1)]=[],this[_0x41da31(0x96)]=0x0,this['pendingRequests']=new Map();}async['connect'](){const _0x3f9b50=a0_0xc40102;if(this[_0x3f9b50(0xcf)]===CONNECTION_STATE[_0x3f9b50(0xd3)]||this[_0x3f9b50(0xcf)]===CONNECTION_STATE[_0x3f9b50(0x8f)])return{'success':![],'error':_0x3f9b50(0xbf)};this[_0x3f9b50(0xc6)](CONNECTION_STATE['CONNECTING']),this['emit'](_0x3f9b50(0xbe));try{return this['ws']=new a0_0x39dca0(this[_0x3f9b50(0x97)]),this[_0x3f9b50(0xc5)](),await this[_0x3f9b50(0xbc)](),{'success':!![]};}catch(_0xf271b){return this['handleConnectionError'](_0xf271b),{'success':![],'error':_0xf271b['message']};}}[a0_0xc40102(0xbc)](){return new Promise((_0x3f8271,_0x41a4ee)=>{const _0x569140=a0_0x3855,_0x1d452d=setTimeout(()=>{const _0xe04b47=a0_0x3855;_0x41a4ee(new Error(_0xe04b47(0xa4)));},TIMING['WEBSOCKET_CONNECT_TIMEOUT']);this['ws'][_0x569140(0xd4)]('open',()=>{clearTimeout(_0x1d452d),_0x3f8271();}),this['ws']['once']('error',_0x2a26da=>{clearTimeout(_0x1d452d),_0x41a4ee(_0x2a26da);});});}[a0_0xc40102(0xc5)](){const _0x5e8530=a0_0xc40102;this['ws']['on']('open',()=>this[_0x5e8530(0x9d)]()),this['ws']['on']('message',_0x13ac7d=>this[_0x5e8530(0xb1)](_0x13ac7d)),this['ws']['on'](_0x5e8530(0xad),(_0x3555ff,_0x5b5f93)=>this['handleClose'](_0x3555ff,_0x5b5f93)),this['ws']['on'](_0x5e8530(0xb5),_0x536c01=>this['handleError'](_0x536c01));}['handleOpen'](){const _0x567319=a0_0xc40102;this[_0x567319(0xc6)](CONNECTION_STATE[_0x567319(0xd3)]),this[_0x567319(0xb0)]=0x0,this['reconnectDelay']=this[_0x567319(0xd7)],this['emit'](_0x567319(0xa8)),this[_0x567319(0xc8)](),this['processMessageQueue']();}['handleMessage'](_0x11dd02){const _0x5d2912=a0_0xc40102;try{const _0x310c99=JSON['parse'](_0x11dd02['toString']());if(_0x310c99[_0x5d2912(0xa2)]===WS_MESSAGE_TYPE['PONG']){this['handlePong']();return;}if(_0x310c99[_0x5d2912(0xa2)]===WS_MESSAGE_TYPE[_0x5d2912(0xd3)]){this[_0x5d2912(0xa7)](_0x5d2912(0xb8),_0x310c99);return;}if(_0x310c99[_0x5d2912(0xa2)]===WS_MESSAGE_TYPE[_0x5d2912(0xc9)]){this[_0x5d2912(0xce)]=_0x310c99['sessionId'],this[_0x5d2912(0xa7)]('session_joined',_0x310c99);return;}if(_0x310c99[_0x5d2912(0xa2)]===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this['handleOrchestratorResponse'](_0x310c99);return;}this['emit']('message',_0x310c99),_0x310c99['type']&&this['emit'](_0x310c99[_0x5d2912(0xa2)],_0x310c99);}catch(_0x37f4){this['emit'](_0x5d2912(0xc1),{'error':_0x37f4,'data':_0x11dd02});}}['handleClose'](_0x302a26,_0x590dee){const _0x2cd7ea=a0_0xc40102;this['cleanup']();const _0x32e43f=_0x590dee[_0x2cd7ea(0x8d)]()||'Unknown\x20reason';this[_0x2cd7ea(0xa7)](_0x2cd7ea(0xcb),{'code':_0x302a26,'reason':_0x32e43f}),this['shouldReconnect']&&_0x302a26!==0x3e8?this[_0x2cd7ea(0xcc)]():this['setState'](CONNECTION_STATE[_0x2cd7ea(0x9f)]);}['handleError'](_0x518ddf){const _0x5ba398=a0_0xc40102;this['emit'](_0x5ba398(0xb5),_0x518ddf);}[a0_0xc40102(0x91)](_0x2d8e76){const _0x3ceffd=a0_0xc40102;this['setState'](CONNECTION_STATE[_0x3ceffd(0xc0)]),this['emit']('connection_error',_0x2d8e76),this['shouldReconnect']&&this['scheduleReconnect']();}[a0_0xc40102(0xcc)](){const _0x4bbba3=a0_0xc40102;if(this['reconnectTimer'])return;this[_0x4bbba3(0xc6)](CONNECTION_STATE['RECONNECTING']),this['reconnectAttempts']++;const _0x4b74f5=Math['min'](this['reconnectDelay']*Math['pow'](TIMING['WEBSOCKET_RECONNECT_MULTIPLIER'],this[_0x4bbba3(0xb0)]-0x1),TIMING[_0x4bbba3(0xa3)]);this[_0x4bbba3(0xa7)]('reconnecting',{'attempt':this[_0x4bbba3(0xb0)],'delay':_0x4b74f5}),this[_0x4bbba3(0x95)]=setTimeout(()=>{const _0x3d9d50=_0x4bbba3;this[_0x3d9d50(0x95)]=null,this['connect']();},_0x4b74f5);}['startHeartbeat'](){const _0x3a1174=a0_0xc40102;this[_0x3a1174(0xd0)](),this['pingInterval']=setInterval(()=>{this['state']===CONNECTION_STATE['CONNECTED']&&this['sendPing']();},this[_0x3a1174(0x8c)]);}[a0_0xc40102(0xd0)](){const _0x39b63c=a0_0xc40102;this[_0x39b63c(0xd6)]&&(clearInterval(this['pingInterval']),this['pingInterval']=null),this[_0x39b63c(0xb9)]&&(clearTimeout(this['pongTimeout']),this['pongTimeout']=null);}[a0_0xc40102(0xcd)](){const _0x2c7e17=a0_0xc40102;if(this[_0x2c7e17(0xcf)]!==CONNECTION_STATE[_0x2c7e17(0xd3)])return;try{this['send']({'type':WS_MESSAGE_TYPE['PING']}),this['pongTimeout']=setTimeout(()=>{const _0x24ccba=_0x2c7e17;this[_0x24ccba(0xb6)]();},TIMING['WEBSOCKET_PONG_TIMEOUT']);}catch(_0x437b14){this[_0x2c7e17(0xa7)](_0x2c7e17(0x9b),_0x437b14);}}['handlePong'](){const _0xc81ddc=a0_0xc40102;this[_0xc81ddc(0xc7)]=Date[_0xc81ddc(0xbb)](),this['pongTimeout']&&(clearTimeout(this[_0xc81ddc(0xb9)]),this[_0xc81ddc(0xb9)]=null);}['handlePongTimeout'](){const _0x221c71=a0_0xc40102;this['emit']('heartbeat_timeout'),this['disconnect'](),this['shouldReconnect']&&this[_0x221c71(0xcc)]();}['joinSession'](_0x3fa676){const _0x432f3d=a0_0xc40102;this['sessionId']=_0x3fa676,this[_0x432f3d(0x93)]({'type':WS_MESSAGE_TYPE['JOIN_SESSION'],'sessionId':_0x3fa676});}['sendOrchestratorRequest'](_0x1f0b87,_0x58a665,_0x1d011d){const _0x1b6ae3=a0_0xc40102,_0x1f0523=this[_0x1b6ae3(0x8b)](),_0x46ce1e={'type':WS_MESSAGE_TYPE['ORCHESTRATOR_REQUEST'],'requestId':_0x1f0523,'action':_0x1f0b87,'payload':_0x58a665,'projectDir':_0x1d011d};return new Promise((_0x118b8c,_0x331ea8)=>{const _0x40f4e5=_0x1b6ae3;this[_0x40f4e5(0xa6)][_0x40f4e5(0x9e)](_0x1f0523,{'resolve':_0x118b8c,'reject':_0x331ea8,'timestamp':Date['now']()});try{this['send'](_0x46ce1e);}catch(_0x9ea60b){this[_0x40f4e5(0xa6)]['delete'](_0x1f0523),_0x331ea8(_0x9ea60b);}setTimeout(()=>{const _0x1c6eb2=_0x40f4e5;this[_0x1c6eb2(0xa6)]['has'](_0x1f0523)&&(this['pendingRequests']['delete'](_0x1f0523),_0x331ea8(new Error(_0x1c6eb2(0xae))));},TIMING[_0x40f4e5(0x90)]);});}[a0_0xc40102(0x9a)](_0x22d91e){const _0x59fd6f=a0_0xc40102,{requestId:_0x4613cf,response:_0x1f00c6,error:_0x9c7c57}=_0x22d91e;if(this['pendingRequests']['has'](_0x4613cf)){const {resolve:_0x1e0378,reject:_0x35f1a0}=this[_0x59fd6f(0xa6)][_0x59fd6f(0xd2)](_0x4613cf);this['pendingRequests'][_0x59fd6f(0xa1)](_0x4613cf),_0x9c7c57?_0x35f1a0(new Error(_0x9c7c57)):_0x1e0378(_0x1f00c6);}}[a0_0xc40102(0x93)](_0x9f7a8e){const _0x2dac7f=a0_0xc40102;if(this[_0x2dac7f(0xcf)]!==CONNECTION_STATE[_0x2dac7f(0xd3)]){this['messageQueue']['push'](_0x9f7a8e);return;}try{this['ws'][_0x2dac7f(0x93)](JSON['stringify'](_0x9f7a8e));}catch(_0x26053b){this[_0x2dac7f(0xa7)]('send_error',_0x26053b);throw _0x26053b;}}['processMessageQueue'](){const _0x59c055=a0_0xc40102;while(this['messageQueue']['length']>0x0&&this['state']===CONNECTION_STATE[_0x59c055(0xd3)]){const _0x57c580=this['messageQueue'][_0x59c055(0xaf)]();try{this['ws'][_0x59c055(0x93)](JSON[_0x59c055(0xa5)](_0x57c580));}catch(_0x225e53){this['emit']('queue_process_error',_0x225e53),this['messageQueue']['unshift'](_0x57c580);break;}}}[a0_0xc40102(0xa0)](){const _0x191ac2=a0_0xc40102;this['shouldReconnect']=![],this['cleanup']();if(this['ws']){try{this['ws'][_0x191ac2(0xad)](0x3e8,_0x191ac2(0x98));}catch(_0x38c1d5){}this['ws']=null;}this['setState'](CONNECTION_STATE[_0x191ac2(0x9f)]);}[a0_0xc40102(0xbd)](){const _0x834d7=a0_0xc40102;this['stopHeartbeat'](),this[_0x834d7(0x95)]&&(clearTimeout(this[_0x834d7(0x95)]),this['reconnectTimer']=null),this['ws']&&this['ws'][_0x834d7(0xb3)]();}[a0_0xc40102(0xc6)](_0xe8d4f8){const _0x3203e1=this['state'];this['state']=_0xe8d4f8,_0x3203e1!==_0xe8d4f8&&this['emit']('state_change',{'oldState':_0x3203e1,'newState':_0xe8d4f8});}['generateRequestId'](){const _0x2da8b7=a0_0xc40102;return this[_0x2da8b7(0x96)]++,'req-'+Date['now']()+'-'+this[_0x2da8b7(0x96)];}[a0_0xc40102(0xb7)](){const _0x1ab6a4=a0_0xc40102;return this[_0x1ab6a4(0xcf)];}[a0_0xc40102(0xac)](){const _0x581d4b=a0_0xc40102;return this[_0x581d4b(0xcf)]===CONNECTION_STATE[_0x581d4b(0xd3)];}[a0_0xc40102(0x99)](){return this['sessionId'];}['getStats'](){const _0x3aeb6b=a0_0xc40102;return{'state':this[_0x3aeb6b(0xcf)],'sessionId':this[_0x3aeb6b(0xce)],'reconnectAttempts':this[_0x3aeb6b(0xb0)],'queuedMessages':this['messageQueue'][_0x3aeb6b(0xba)],'pendingRequests':this[_0x3aeb6b(0xa6)][_0x3aeb6b(0xa9)],'lastPongReceived':this[_0x3aeb6b(0xc7)]};}}function a0_0x1989(){const _0x10c5f6=['C2v0DxbfDMvUDeHHBMrSzxjZ','C2v0u3rHDgu','BgfZDfbVBMDszwnLAxzLza','C3rHCNrizwfYDgjLyxq','u0vtu0LptL9kt0Loruq','Ag9ZDa','zgLZy29UBMvJDgvK','C2nOzwr1BgvszwnVBM5Ly3q','C2vUzfbPBMC','C2vZC2LVBKLK','C3rHDgu','C3rVCeHLyxj0yMvHDa','BwvZC2fNzvf1zxvL','z2v0','q09otKvdveve','B25Jzq','ndHnEKDmDuK','CgLUz0LUDgvYDMfS','yMfZzvjLy29UBMvJDerLBgf5','ndu2oty4neTTDKX3Aa','z2vUzxjHDgvszxf1zxn0swq','AgvHCNrIzwf0sw50zxj2ywW','Dg9tDhjPBMC','nZGYv0zRywzc','q09otKvdveLorW','sfruuf9usu1ft1vu','AgfUzgXLq29UBMvJDgLVBKvYCM9Y','CMvJB25Uzwn0rgvSyxK','C2vUza','otm4ndK5CMDbtw55','CMvJB25Uzwn0vgLTzxi','CMvXDwvZDeLKq291BNrLCG','DxjS','q2XPzw50igrPC2nVBM5Ly3q','z2v0u2vZC2LVBKLK','AgfUzgXLt3jJAgvZDhjHDg9YuMvZCg9UC2u','CgLUz19LCNjVCG','nJm2mZqWmMHKEKP2vq','AgfUzgXLt3bLBG','C2v0','reLtq09otKvdveve','zgLZy29UBMvJDa','zgvSzxrL','DhLWzq','v0vcu09ds0vux1jfq09otKvdvf9nqvHFrevmqvK','q29UBMvJDgLVBIb0Aw1LB3v0','C3rYAw5NAwz5','CgvUzgLUz1jLCxvLC3rZ','zw1PDa','y29UBMvJDgvK','C2L6zq','mtCYndi1nMLSz1PfuW','nte5ntGYnxj6ufbqvq','AxndB25Uzwn0zwq','y2XVC2u','uMvXDwvZDcb0Aw1LB3v0','C2HPzNq','CMvJB25Uzwn0qxr0zw1WDhm','AgfUzgXLtwvZC2fNzq','nJi2zhzgsvbx','CMvTB3zLqwXStgLZDgvUzxjZ','v0vcu09ds0vux1bjtKDFsu5urvjwquW','zxjYB3i','AgfUzgXLug9Uz1rPBwvVDxq','z2v0u3rHDgu','D2vSy29Tzq','Cg9Uz1rPBwvVDxq','BgvUz3rO','BM93','D2fPDezVCKnVBM5Ly3rPB24','y2XLyw51Ca','y29UBMvJDgLUzW','qwXYzwfKEsbJB25Uzwn0zwqGB3iGy29UBMvJDgLUzW','rvjst1i','CgfYC2vFzxjYB3i','revgqvvmvf9qt1ju','C2HVDwXKuMvJB25Uzwn0','ntC0mtKXmwzfwuDSDW'];a0_0x1989=function(){return _0x10c5f6;};return a0_0x1989();}export default WebSocketManager;
|
|
1
|
+
function a0_0x4c00(_0x46aab0,_0x52e3ee){_0x46aab0=_0x46aab0-0x128;const _0x49f308=a0_0x49f3();let _0x4c00cc=_0x49f308[_0x46aab0];if(a0_0x4c00['WBUuXJ']===undefined){var _0x4828bf=function(_0xd2b8be){const _0x177682='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x35113d='',_0x1e1a52='';for(let _0x1178c0=0x0,_0x12ab95,_0x39b19c,_0x490086=0x0;_0x39b19c=_0xd2b8be['charAt'](_0x490086++);~_0x39b19c&&(_0x12ab95=_0x1178c0%0x4?_0x12ab95*0x40+_0x39b19c:_0x39b19c,_0x1178c0++%0x4)?_0x35113d+=String['fromCharCode'](0xff&_0x12ab95>>(-0x2*_0x1178c0&0x6)):0x0){_0x39b19c=_0x177682['indexOf'](_0x39b19c);}for(let _0x575a43=0x0,_0x20f57c=_0x35113d['length'];_0x575a43<_0x20f57c;_0x575a43++){_0x1e1a52+='%'+('00'+_0x35113d['charCodeAt'](_0x575a43)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1e1a52);};a0_0x4c00['CViQCV']=_0x4828bf,a0_0x4c00['iWllft']={},a0_0x4c00['WBUuXJ']=!![];}const _0x2be1f2=_0x49f308[0x0],_0x3616e3=_0x46aab0+_0x2be1f2,_0x5119ad=a0_0x4c00['iWllft'][_0x3616e3];return!_0x5119ad?(_0x4c00cc=a0_0x4c00['CViQCV'](_0x4c00cc),a0_0x4c00['iWllft'][_0x3616e3]=_0x4c00cc):_0x4c00cc=_0x5119ad,_0x4c00cc;}const a0_0x33e51e=a0_0x4c00;(function(_0x3e8cef,_0x48ecba){const _0x3c637e=a0_0x4c00,_0x27e988=_0x3e8cef();while(!![]){try{const _0x583e8a=parseInt(_0x3c637e(0x16f))/0x1+-parseInt(_0x3c637e(0x12a))/0x2*(parseInt(_0x3c637e(0x141))/0x3)+parseInt(_0x3c637e(0x136))/0x4+parseInt(_0x3c637e(0x149))/0x5+-parseInt(_0x3c637e(0x13a))/0x6*(-parseInt(_0x3c637e(0x153))/0x7)+-parseInt(_0x3c637e(0x16b))/0x8+-parseInt(_0x3c637e(0x12b))/0x9;if(_0x583e8a===_0x48ecba)break;else _0x27e988['push'](_0x27e988['shift']());}catch(_0x47868f){_0x27e988['push'](_0x27e988['shift']());}}}(a0_0x49f3,0xb5735));import a0_0x35113d from'ws';function a0_0x49f3(){const _0x2e6823=['Cg9Uz1rPBwvVDxq','C3rYAw5NAwz5','odm5mJaXnLrjuNrjqW','BwvZC2fNzvf1zxvL','q2XPzw50igrPC2nVBM5Ly3q','C2vZC2LVBL9QB2LUzwq','mtmYotK5n1PTzhfLBW','reLtq09otKvdveve','y2XVC2u','DhLWzq','BgfZDfbVBMDszwnLAxzLza','q09otKvdveLorW','mte4ntG2mK1YsuXrzG','ntq0odGYnu12sg9WuG','v0vcu09ds0vux1bptKDFveLnru9vva','CMvJB25Uzwn0vgLTzxi','revgqvvmvf9it1nu','CMvJB25Uzwn0rgvSyxK','C2v0u3rHDgu','AgvHCNrIzwf0sw50zxj2ywW','sfruuf9usu1ft1vu','D2fPDezVCKnVBM5Ly3rPB24','z2v0u3rHDhm','C2v0','odq3mZa4ueTxzfLA','CMvXDwvZDeLKq291BNrLCG','v0vcu09ds0vux1jfq09otKvdvf9nvuXusvbmsuvs','CgLUz0LUDgvYDMfS','mtHAqK5mDfe','rvjst1i','C2HVDwXKuMvJB25Uzwn0','zxjYB3i','y29UBMvJDgLVBL9LCNjVCG','v0vcu09ds0vux1jfq09otKvdvf9eruXbwq','B3bLBG','nLP4qxPLtq','AgfUzgXLq2XVC2u','CgvUzgLUz1jLCxvLC3rZ','revgqvvmvf9qt1ju','q29UBMvJDgLVBIb0Aw1LB3v0','C2vUzfbPBMC','z2v0','AgfUzgXLrxjYB3i','nti1ote2nvvizxnJwG','v0vcu09ds0vux1jfq09otKvdvf9nqvHFrevmqvK','AgfZ','BwvZC2fNzq','qwXYzwfKEsbJB25Uzwn0zwqGB3iGy29UBMvJDgLUzW','C2HPzNq','C3rVCeHLyxj0yMvHDa','z2v0u2vZC2LVBKLK','CgfYC2u','AgfUzgXLt3bLBG','mJmWoty1n1jwyMrWBG','z2v0u3rHDgu','yMfZzvjLy29UBMvJDerLBgf5','zw1PDa','C3rHDgu','CMvJB25Uzwn0qxr0zw1WDhm','ChjVy2vZC01LC3nHz2vrDwv1zq','zgLZy29UBMvJDa','AgfUzgXLug9Uz1rPBwvVDxq','Cg9YDa','q09otKvdveve','C3rHCNrizwfYDgjLyxq','AgfUzgXLq29UBMvJDgLVBKvYCM9Y','v0vcu09ds0vux0nptK5fq1rFveLnru9vva','C2vUza','C2vZC2LVBKLK','y2XLyw51Ca','ChvZAa','zgvSzxrL','y29UBMvJDa','zgLZy29UBMvJDgvK','y29UBMvJDgvK'];a0_0x49f3=function(){return _0x2e6823;};return a0_0x49f3();}import{EventEmitter}from'events';import{TIMING,NETWORK,CONNECTION_STATE,WS_MESSAGE_TYPE,ERROR_MESSAGE}from'../config/constants.js';export class WebSocketManager extends EventEmitter{constructor(_0x1e1a52=NETWORK[a0_0x33e51e(0x12e)],_0x1178c0=NETWORK[a0_0x33e51e(0x144)],_0x12ab95={}){const _0x14bd9f=a0_0x33e51e;super(),this['host']=_0x1e1a52,this[_0x14bd9f(0x15c)]=_0x1178c0,this['url']='ws://'+_0x1e1a52+':'+_0x1178c0,this['ws']=null,this[_0x14bd9f(0x157)]=CONNECTION_STATE['DISCONNECTED'],this[_0x14bd9f(0x162)]=null,this[_0x14bd9f(0x158)]=0x0,this[_0x14bd9f(0x12f)]=_0x12ab95[_0x14bd9f(0x12f)]??TIMING[_0x14bd9f(0x13f)],this[_0x14bd9f(0x155)]=this[_0x14bd9f(0x12f)],this['reconnectTimer']=null,this[_0x14bd9f(0x13c)]=!![],this['heartbeatInterval']=_0x12ab95[_0x14bd9f(0x131)]??TIMING['WEBSOCKET_PING_INTERVAL'],this['pingInterval']=null,this['pongTimeout']=null,this[_0x14bd9f(0x128)]=null,this[_0x14bd9f(0x16c)]=[],this[_0x14bd9f(0x137)]=0x0,this['pendingRequests']=new Map();}async[a0_0x33e51e(0x166)](){const _0x759d4d=a0_0x33e51e;if(this['state']===CONNECTION_STATE[_0x759d4d(0x15d)]||this['state']===CONNECTION_STATE[_0x759d4d(0x129)])return{'success':![],'error':_0x759d4d(0x14d)};this[_0x759d4d(0x130)](CONNECTION_STATE['CONNECTING']),this['emit']('connecting');try{return this['ws']=new a0_0x35113d(this['url']),this['setupEventHandlers'](),await this['waitForConnection'](),{'success':!![]};}catch(_0x39b19c){return this[_0x759d4d(0x15f)](_0x39b19c),{'success':![],'error':_0x39b19c[_0x759d4d(0x14c)]};}}[a0_0x33e51e(0x133)](){return new Promise((_0x490086,_0x575a43)=>{const _0x1040c3=a0_0x4c00,_0x20f57c=setTimeout(()=>{const _0x3d29bd=a0_0x4c00;_0x575a43(new Error(_0x3d29bd(0x145)));},TIMING[_0x1040c3(0x160)]);this['ws']['once'](_0x1040c3(0x140),()=>{clearTimeout(_0x20f57c),_0x490086();}),this['ws']['once'](_0x1040c3(0x13d),_0x31691e=>{clearTimeout(_0x20f57c),_0x575a43(_0x31691e);});});}['setupEventHandlers'](){const _0x28fda0=a0_0x33e51e;this['ws']['on'](_0x28fda0(0x140),()=>this['handleOpen']()),this['ws']['on']('message',_0x17597a=>this['handleMessage'](_0x17597a)),this['ws']['on'](_0x28fda0(0x171),(_0x3f2d1b,_0x255e94)=>this[_0x28fda0(0x142)](_0x3f2d1b,_0x255e94)),this['ws']['on'](_0x28fda0(0x13d),_0x56de95=>this[_0x28fda0(0x148)](_0x56de95));}[a0_0x33e51e(0x152)](){const _0x36e852=a0_0x33e51e;this[_0x36e852(0x130)](CONNECTION_STATE['CONNECTED']),this['reconnectAttempts']=0x0,this['reconnectDelay']=this[_0x36e852(0x155)],this[_0x36e852(0x156)](_0x36e852(0x168)),this[_0x36e852(0x15e)](),this['processMessageQueue']();}['handleMessage'](_0x3fff4f){const _0x2705ba=a0_0x33e51e;try{const _0x16053c=JSON[_0x2705ba(0x151)](_0x3fff4f['toString']());if(_0x16053c[_0x2705ba(0x172)]===WS_MESSAGE_TYPE['PONG']){this['handlePong']();return;}if(_0x16053c[_0x2705ba(0x172)]===WS_MESSAGE_TYPE['CONNECTED']){this['emit']('welcome',_0x16053c);return;}if(_0x16053c['type']===WS_MESSAGE_TYPE['SESSION_JOINED']){this['sessionId']=_0x16053c['sessionId'],this[_0x2705ba(0x156)](_0x2705ba(0x16e),_0x16053c);return;}if(_0x16053c[_0x2705ba(0x172)]===WS_MESSAGE_TYPE['ORCHESTRATOR_RESPONSE']){this['handleOrchestratorResponse'](_0x16053c);return;}this[_0x2705ba(0x156)](_0x2705ba(0x14c),_0x16053c),_0x16053c['type']&&this[_0x2705ba(0x156)](_0x16053c[_0x2705ba(0x172)],_0x16053c);}catch(_0x30c049){this['emit']('parse_error',{'error':_0x30c049,'data':_0x3fff4f});}}['handleClose'](_0x4b3bf6,_0x593a7f){const _0x4b5714=a0_0x33e51e;this['cleanup']();const _0x1fd59c=_0x593a7f['toString']()||'Unknown\x20reason';this[_0x4b5714(0x156)](_0x4b5714(0x167),{'code':_0x4b3bf6,'reason':_0x1fd59c}),this['shouldReconnect']&&_0x4b3bf6!==0x3e8?this['scheduleReconnect']():this[_0x4b5714(0x130)](CONNECTION_STATE[_0x4b5714(0x170)]);}[a0_0x33e51e(0x148)](_0x1c41c3){const _0x415a9a=a0_0x33e51e;this['emit'](_0x415a9a(0x13d),_0x1c41c3);}[a0_0x33e51e(0x15f)](_0x5f3c90){const _0x57e936=a0_0x33e51e;this[_0x57e936(0x130)](CONNECTION_STATE[_0x57e936(0x13b)]),this[_0x57e936(0x156)](_0x57e936(0x13e),_0x5f3c90),this[_0x57e936(0x13c)]&&this['scheduleReconnect']();}['scheduleReconnect'](){const _0x53b3bb=a0_0x33e51e;if(this[_0x53b3bb(0x12d)])return;this['setState'](CONNECTION_STATE['RECONNECTING']),this['reconnectAttempts']++;const _0x5af850=Math['min'](this['reconnectDelay']*Math['pow'](TIMING[_0x53b3bb(0x138)],this['reconnectAttempts']-0x1),TIMING[_0x53b3bb(0x14a)]);this[_0x53b3bb(0x156)]('reconnecting',{'attempt':this[_0x53b3bb(0x158)],'delay':_0x5af850}),this['reconnectTimer']=setTimeout(()=>{const _0x5b7b10=_0x53b3bb;this[_0x5b7b10(0x12d)]=null,this['connect']();},_0x5af850);}['startHeartbeat'](){const _0x4e85c9=a0_0x33e51e;this[_0x4e85c9(0x14f)](),this[_0x4e85c9(0x139)]=setInterval(()=>{const _0x8eeae7=_0x4e85c9;this['state']===CONNECTION_STATE['CONNECTED']&&this[_0x8eeae7(0x146)]();},this['heartbeatInterval']);}['stopHeartbeat'](){const _0x4d58a8=a0_0x33e51e;this[_0x4d58a8(0x139)]&&(clearInterval(this[_0x4d58a8(0x139)]),this['pingInterval']=null),this['pongTimeout']&&(clearTimeout(this[_0x4d58a8(0x169)]),this['pongTimeout']=null);}[a0_0x33e51e(0x146)](){const _0xd45085=a0_0x33e51e;if(this[_0xd45085(0x157)]!==CONNECTION_STATE['CONNECTED'])return;try{this[_0xd45085(0x161)]({'type':WS_MESSAGE_TYPE['PING']}),this[_0xd45085(0x169)]=setTimeout(()=>{const _0x311663=_0xd45085;this[_0x311663(0x15b)]();},TIMING[_0xd45085(0x12c)]);}catch(_0x5e00bd){this['emit']('ping_error',_0x5e00bd);}}['handlePong'](){const _0x9ab659=a0_0x33e51e;this['lastPongReceived']=Date['now'](),this[_0x9ab659(0x169)]&&(clearTimeout(this['pongTimeout']),this[_0x9ab659(0x169)]=null);}[a0_0x33e51e(0x15b)](){const _0x278b47=a0_0x33e51e;this[_0x278b47(0x156)]('heartbeat_timeout'),this[_0x278b47(0x15a)](),this['shouldReconnect']&&this['scheduleReconnect']();}['joinSession'](_0x192852){const _0x5b2b8b=a0_0x33e51e;this['sessionId']=_0x192852,this[_0x5b2b8b(0x161)]({'type':WS_MESSAGE_TYPE['JOIN_SESSION'],'sessionId':_0x192852});}['sendOrchestratorRequest'](_0x3a5c11,_0x5e445c,_0xebc5f){const _0xfa3bf=this['generateRequestId'](),_0x39309a={'type':WS_MESSAGE_TYPE['ORCHESTRATOR_REQUEST'],'requestId':_0xfa3bf,'action':_0x3a5c11,'payload':_0x5e445c,'projectDir':_0xebc5f};return new Promise((_0x53c952,_0x3ec4cc)=>{const _0xc0c395=a0_0x4c00;this['pendingRequests'][_0xc0c395(0x135)](_0xfa3bf,{'resolve':_0x53c952,'reject':_0x3ec4cc,'timestamp':Date['now']()});try{this['send'](_0x39309a);}catch(_0xf8b35f){this[_0xc0c395(0x143)]['delete'](_0xfa3bf),_0x3ec4cc(_0xf8b35f);}setTimeout(()=>{const _0xb442b0=_0xc0c395;this['pendingRequests'][_0xb442b0(0x14b)](_0xfa3bf)&&(this['pendingRequests'][_0xb442b0(0x165)](_0xfa3bf),_0x3ec4cc(new Error('Request\x20timeout')));},TIMING[_0xc0c395(0x132)]);});}['handleOrchestratorResponse'](_0x4a6a83){const _0x1453f3=a0_0x33e51e,{requestId:_0xf99bc,response:_0x33c452,error:_0x37bc5b}=_0x4a6a83;if(this[_0x1453f3(0x143)]['has'](_0xf99bc)){const {resolve:_0x19dd88,reject:_0x3eabda}=this['pendingRequests'][_0x1453f3(0x147)](_0xf99bc);this['pendingRequests']['delete'](_0xf99bc),_0x37bc5b?_0x3eabda(new Error(_0x37bc5b)):_0x19dd88(_0x33c452);}}[a0_0x33e51e(0x161)](_0x437083){const _0x3b0b85=a0_0x33e51e;if(this['state']!==CONNECTION_STATE[_0x3b0b85(0x15d)]){this[_0x3b0b85(0x16c)][_0x3b0b85(0x164)](_0x437083);return;}try{this['ws']['send'](JSON['stringify'](_0x437083));}catch(_0x290887){this[_0x3b0b85(0x156)]('send_error',_0x290887);throw _0x290887;}}[a0_0x33e51e(0x159)](){const _0x568952=a0_0x33e51e;while(this['messageQueue']['length']>0x0&&this['state']===CONNECTION_STATE['CONNECTED']){const _0x288f06=this['messageQueue'][_0x568952(0x14e)]();try{this['ws']['send'](JSON[_0x568952(0x16a)](_0x288f06));}catch(_0x38741d){this['emit']('queue_process_error',_0x38741d),this[_0x568952(0x16c)]['unshift'](_0x288f06);break;}}}['disconnect'](){const _0x244576=a0_0x33e51e;this['shouldReconnect']=![],this[_0x244576(0x163)]();if(this['ws']){try{this['ws'][_0x244576(0x171)](0x3e8,_0x244576(0x16d));}catch(_0x18ee5c){}this['ws']=null;}this[_0x244576(0x130)](CONNECTION_STATE[_0x244576(0x170)]);}[a0_0x33e51e(0x163)](){const _0x233999=a0_0x33e51e;this['stopHeartbeat'](),this['reconnectTimer']&&(clearTimeout(this['reconnectTimer']),this[_0x233999(0x12d)]=null),this['ws']&&this['ws']['removeAllListeners']();}['setState'](_0x218a99){const _0x3e8bfe=a0_0x33e51e,_0x2676a3=this[_0x3e8bfe(0x157)];this[_0x3e8bfe(0x157)]=_0x218a99,_0x2676a3!==_0x218a99&&this['emit']('state_change',{'oldState':_0x2676a3,'newState':_0x218a99});}['generateRequestId'](){const _0xc9d534=a0_0x33e51e;return this['requestIdCounter']++,'req-'+Date['now']()+'-'+this[_0xc9d534(0x137)];}[a0_0x33e51e(0x154)](){const _0x52762c=a0_0x33e51e;return this[_0x52762c(0x157)];}['isConnected'](){return this['state']===CONNECTION_STATE['CONNECTED'];}[a0_0x33e51e(0x150)](){const _0x3ee782=a0_0x33e51e;return this[_0x3ee782(0x162)];}[a0_0x33e51e(0x134)](){const _0x51c4d5=a0_0x33e51e;return{'state':this['state'],'sessionId':this[_0x51c4d5(0x162)],'reconnectAttempts':this['reconnectAttempts'],'queuedMessages':this['messageQueue']['length'],'pendingRequests':this['pendingRequests']['size'],'lastPongReceived':this['lastPongReceived']};}}export default WebSocketManager;
|