@loxia-labs/loxia-autopilot-one 1.0.5 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/cli.js +1 -1
- package/bin/loxia-terminal-v2.js +1 -1
- package/bin/loxia-terminal.js +1 -1
- package/bin/start-with-terminal.js +1 -1
- package/package.json +1 -1
- package/scripts/install-scanners.js +1 -1
- package/src/analyzers/CSSAnalyzer.js +1 -1
- package/src/analyzers/ConfigValidator.js +1 -1
- package/src/analyzers/ESLintAnalyzer.js +1 -1
- package/src/analyzers/JavaScriptAnalyzer.js +1 -1
- package/src/analyzers/PrettierFormatter.js +1 -1
- package/src/analyzers/PythonAnalyzer.js +1 -1
- package/src/analyzers/SecurityAnalyzer.js +1 -1
- package/src/analyzers/TypeScriptAnalyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/detector.js +1 -1
- package/src/analyzers/codeCloneDetector/index.js +1 -1
- package/src/analyzers/codeCloneDetector/parser.js +1 -1
- package/src/analyzers/codeCloneDetector/reporter.js +1 -1
- package/src/analyzers/codeCloneDetector/scanner.js +1 -1
- package/src/core/agentPool.js +1 -1
- package/src/core/agentScheduler.js +1 -1
- package/src/core/contextManager.js +1 -1
- package/src/core/messageProcessor.js +1 -1
- package/src/core/orchestrator.js +1 -1
- package/src/core/stateManager.js +1 -1
- package/src/index.js +1 -1
- package/src/interfaces/cli.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
- package/src/interfaces/terminal/api/apiClient.js +1 -1
- package/src/interfaces/terminal/api/messageRouter.js +1 -1
- package/src/interfaces/terminal/api/session.js +1 -1
- package/src/interfaces/terminal/api/websocket.js +1 -1
- package/src/interfaces/terminal/components/AgentCreator.js +1 -1
- package/src/interfaces/terminal/components/AgentEditor.js +1 -1
- package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
- package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
- package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
- package/src/interfaces/terminal/components/Header.js +1 -1
- package/src/interfaces/terminal/components/HelpPanel.js +1 -1
- package/src/interfaces/terminal/components/InputBox.js +1 -1
- package/src/interfaces/terminal/components/Layout.js +1 -1
- package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
- package/src/interfaces/terminal/components/MessageList.js +1 -1
- package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
- package/src/interfaces/terminal/components/SearchPanel.js +1 -1
- package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
- package/src/interfaces/terminal/components/StatusBar.js +1 -1
- package/src/interfaces/terminal/components/TextInput.js +1 -1
- package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
- package/src/interfaces/terminal/config/constants.js +1 -1
- package/src/interfaces/terminal/index.js +1 -1
- package/src/interfaces/terminal/state/useAgentControl.js +1 -1
- package/src/interfaces/terminal/state/useAgents.js +1 -1
- package/src/interfaces/terminal/state/useConnection.js +1 -1
- package/src/interfaces/terminal/state/useMessages.js +1 -1
- package/src/interfaces/terminal/state/useTools.js +1 -1
- package/src/interfaces/terminal/utils/debugLogger.js +1 -1
- package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
- package/src/interfaces/terminal/utils/theme.js +1 -1
- package/src/interfaces/webServer.js +1 -1
- package/src/modules/fileExplorer/controller.js +1 -1
- package/src/modules/fileExplorer/index.js +1 -1
- package/src/modules/fileExplorer/middleware.js +1 -1
- package/src/modules/fileExplorer/routes.js +1 -1
- package/src/services/aiService.js +1 -1
- package/src/services/apiKeyManager.js +1 -1
- package/src/services/benchmarkService.js +1 -1
- package/src/services/budgetService.js +1 -1
- package/src/services/contextInjectionService.js +1 -1
- package/src/services/conversationCompactionService.js +1 -1
- package/src/services/errorHandler.js +1 -1
- package/src/services/fileAttachmentService.js +1 -1
- package/src/services/modelRouterService.js +1 -1
- package/src/services/modelsService.js +1 -1
- package/src/services/qualityInspector.js +1 -1
- package/src/services/tokenCountingService.js +1 -1
- package/src/tools/agentCommunicationTool.js +1 -1
- package/src/tools/agentDelayTool.js +1 -1
- package/src/tools/asyncToolManager.js +1 -1
- package/src/tools/baseTool.js +1 -1
- package/src/tools/browserTool.js +1 -1
- package/src/tools/cloneDetectionTool.js +1 -1
- package/src/tools/dependencyResolverTool.js +1 -1
- package/src/tools/fileContentReplaceTool.js +1 -1
- package/src/tools/fileSystemTool.js +1 -1
- package/src/tools/fileTreeTool.js +1 -1
- package/src/tools/imageTool.js +1 -1
- package/src/tools/importAnalyzerTool.js +1 -1
- package/src/tools/jobDoneTool.js +1 -1
- package/src/tools/seekTool.js +1 -1
- package/src/tools/staticAnalysisTool.js +1 -1
- package/src/tools/taskManagerTool.js +1 -1
- package/src/tools/terminalTool.js +1 -1
- package/src/tools/webTool.js +1 -1
- package/src/types/agent.js +1 -1
- package/src/types/contextReference.js +1 -1
- package/src/types/conversation.js +1 -1
- package/src/types/toolCommand.js +1 -1
- package/src/utilities/attachmentValidator.js +1 -1
- package/src/utilities/configManager.js +1 -1
- package/src/utilities/constants.js +1 -1
- package/src/utilities/directoryAccessManager.js +1 -1
- package/src/utilities/fileProcessor.js +1 -1
- package/src/utilities/logger.js +1 -1
- package/src/utilities/tagParser.js +1 -1
- package/src/utilities/toolConstants.js +1 -1
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/{index-lCBai6dX.js → index-CX8ZfpGw.js} +113 -60
- package/web-ui/build/static/index-Dwg_JrlO.css +1 -0
- package/web-ui/build/static/index-CClD1090.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x6bf9c8=a0_0x256d;(function(_0x5d45be,_0x32c17b){const _0x29400f=a0_0x256d,_0x23fbbf=_0x5d45be();while(!![]){try{const _0x2e6e13=-parseInt(_0x29400f(0x19a))/0x1*(-parseInt(_0x29400f(0x15c))/0x2)+-parseInt(_0x29400f(0x1c4))/0x3+parseInt(_0x29400f(0x177))/0x4+parseInt(_0x29400f(0x1b2))/0x5*(-parseInt(_0x29400f(0x1ca))/0x6)+parseInt(_0x29400f(0x165))/0x7+parseInt(_0x29400f(0x1c6))/0x8*(-parseInt(_0x29400f(0x13f))/0x9)+parseInt(_0x29400f(0x162))/0xa;if(_0x2e6e13===_0x32c17b)break;else _0x23fbbf['push'](_0x23fbbf['shift']());}catch(_0x14fad5){_0x23fbbf['push'](_0x23fbbf['shift']());}}}(a0_0x7ad7,0x8e531));function a0_0x7ad7(){const _0x3ac9da=['C3LZDgvT','y2HVAwnLCW','C2vUze1LC3nHz2u','z3b0','y3vZDg9TqxbPs2v5CW','B3bLBMfP','mJKZnJiXmvnkqxnRsG','DxnHz2u','mZK1mJHoDufOruK','y29UDgv4DfDPBMrVDW','y29TCgXLEgL0Eq','zgvIDwC','mJe0ota4nNL5BvnfAa','ve9px01btLLFuKvrvuvtvfm','rKfmtejbq0S','C3vIC3rY','z2v0s2v5C0zVCLjLCxvLC3q','DhjPBq','zxjYB3jiyw5KBgvY','y2XHDwrL','zMfPBhvYzxm','C3r5Bgu','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','Dg9tDhjPBMC','y29UDMvYC2f0Aw9UtwfUywDLCNm','C3DPDgnOqwDLBNrnB2rLBa','8j+wVo+4JYbjBwfNzsbbueKGCMvXDwvZDcbZDgf0zq','lcb1C2LUzYbMywXSyMfJAW','ywXS','ueHj','ANnVBG','x2LZvMfSAwrnB2rLBa','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','CgHP','AM9PBG','BwfW','qvPvuKu','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','yxbPs2v5twfUywDLCG','x2zVCM1HDfnPBMDSzu1LC3nHz2u','DgLTzw91Da','Aw1Nlq','CxvHBgL0Eq','odu1CunxBLPv','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','q2LYy3vPDcbICMvHA2vYihjLC2v0ic0GC2vYDMLJzsbYzwnVDMvYzwq','C3vIC3rYAw5N','A2v5CW','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','DMvUzg9YqxbPs2v5','C3bLzwq','DxjS','uMf0zsbSAw1PDcbLEgnLzwrLza','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','DhjHy2TvC2fNzq','C3rYAw5NAwz5','C3rHy2S','ue9tva','Dw5ZAgLMDa','CMv2AxnLzf9WCM9TChq','su5urvjoquXFu0vsvKvsx0vsuK9s','Dg9vChbLCKnHC2u','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','Bw9KzwXtCgvJCW','r0furvDbwv9usu1ft1vu','l2HLywX0Aa','yMfJA2vUza','y2vPBa','DxnLCG','AxnpCgvU','x2vZDgLTyxrLvg9Rzw5Z','x3n1Bw1HCML6zu1LC3nHz2vZ','ndu0qvbcCgXb','yxbPs2v5','yMfZzvvYBa','ChjLzMvYCMvKtw9KzwW','C3LZDgvTuhjVBxb0','z2v0qwDLBNq','mteXodqWntb3wKL2DKy','C3rVCa','C3rYAw5N','ndi5mdmWCg5uBKTn','Dg9ju09tDhjPBMC','yxbWBgLJyxrPB24VANnVBG','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','x2DLDfzLBMrVCKzYB21nB2rLBa','BM93','u2vYDMLJzsb1BMf2ywLSywjSzsWGD2fPDgLUzYa','revfufnfruTFuJe','x21HA2vjBwfNzufqsvjLCxvLC3q','y29UDgvUDa','BgvUz3rO','qKfex1jfuvvfu1q','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','Bw9KzwW','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','x2zVCM1HDezVCKfUDgHYB3bPyW','CMv0CNLbDhrLBxb0CW','ndqWodyZmMHNyKTZwG','BwvZC2fNzxm','C3vTBwfYEq','zMLUAxnOx3jLyxnVBG','ChjVBxb0','Bg9Nz2vY','C2v0','Aw5MBW','Dg90ywXFDg9Rzw5Z','CM9Szq','ywDLBNrjza','zgf0yq','y2LYy3vPDejYzwfRzxi','CgvYC2LZDefNzw50u3rHDgu','yxnZAxn0yw50','CMvXDwvZDff1zxvL','C3rHDhvZvgv4Da','qu5usfjpueLdx0HbsuTv','t1bftKfj','CgXHDgzVCM1qCM92AwrLza','CMfUzg9T','x2zVCM1HDezVCK9Wzw5bsq','yNvKz2v0u2vYDMLJzq','CMf0zuXPBwL0zxjZ','zxjYB3i','CM91DgvnB2rLBa','Cg93','C3rHDhvZ','qxv0AgvUDgLJyxrPB24GzMfPBgvKic0Gy2HLy2SGqvbjignYzwrLBNrPywXZ','BwvZC2fNzq','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','y29UDMvYC2f0Aw9UCW','revfufnfruS','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','D2fYBG','mZyYowTjsw9gqG','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','zxn0Aw1HDgvKvg9Rzw5Z','l2nOyxqVy29TCgXLDgLVBNm','Bwf4vg9Rzw5Z','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','y2HLy2Ttzxj2AwnLsgvHBhrO','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','yw50AhjVCgLJ','x21HA2vbueLszxf1zxn0','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','sfruuca','qu5usfjpueLdx09qvvm','ChvZAa','quKGC2vYDMLJzsbLCNjVCJOG','zMLUAxnOuMvHC29U','AgvHBhrOEq','x2LZq2LYy3vPDejYzwfRzxjpCgvU','qMvHCMvYia','uMv0CNLPBMCGAw4G','qu5usfjpueLdx1nptK5fva','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq','qu5usfjpueLd','mtv3C01Vrxm','zMfZDa','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','Dgv4Da','x3jLC2v0q2LYy3vPDejYzwfRzxi','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','Aw5JBhvKzxm','r1buxZq','y29UzMLN','sw52ywXPzcbYzxf1zxn0oIa','C2vZC2LVBKLK','mtaYnhGXmdi0'];a0_0x7ad7=function(){return _0x3ac9da;};return a0_0x7ad7();}import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x4fa2ab,_0x124422,_0x58b9e3,_0x35a117){const _0x979344=a0_0x256d;this[_0x979344(0x1ba)]=_0x4fa2ab,this['logger']=_0x124422,this[_0x979344(0x18d)]=_0x58b9e3,this[_0x979344(0x1d0)]=_0x35a117,this[_0x979344(0x15e)]=_0x4fa2ab['backend']?.['baseUrl']||'https://api.loxia.ai',this[_0x979344(0x13c)]=_0x4fa2ab[_0x979344(0x156)]?.['timeout']||0xea60,this['retryAttempts']=_0x4fa2ab['backend']?.['retryAttempts']||0x3,this[_0x979344(0x18e)]=new Map(),this[_0x979344(0x186)]=new Map(),this[_0x979344(0x183)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this['_initializeModelSpecs'](),this[_0x979344(0x1d6)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async[a0_0x6bf9c8(0x1c0)](_0x30270f,_0x594438,_0xb0f0f5={}){const _0x58027b=a0_0x6bf9c8,_0x282a73='req-'+Date['now']()+'-'+Math[_0x58027b(0x18b)]()['toString'](0x24)[_0x58027b(0x1cd)](0x2,0x9);try{if(this[_0x58027b(0x1ac)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this['_checkRateLimit'](_0x30270f);const _0x2ea032=this[_0x58027b(0x19b)](_0x594438,_0x30270f,_0xb0f0f5),_0x603052={'model':_0x30270f,'messages':_0x2ea032,'options':{'max_tokens':this['modelSpecs'][_0x30270f]?.[_0x58027b(0x19f)]||0xfa0,'temperature':_0xb0f0f5['temperature']||0.7,'stream':_0xb0f0f5['stream']||![]},'metadata':{'requestId':_0x282a73,'agentId':_0xb0f0f5[_0x58027b(0x181)],'timestamp':new Date()['toISOString']()}};_0xb0f0f5[_0x58027b(0x160)]&&(_0x603052['system']=_0xb0f0f5[_0x58027b(0x160)]);this[_0x58027b(0x17c)][_0x58027b(0x17e)](_0x58027b(0x171)+_0x30270f,{'requestId':_0x282a73,'agentId':_0xb0f0f5[_0x58027b(0x181)],'messageCount':Array['isArray'](_0x594438)?_0x594438['length']:0x1,'maxTokens':_0x603052['max_tokens']});const _0x28c5c=await this['_makeAPIRequest'](_0x58027b(0x19e),_0x603052,_0x282a73,{..._0xb0f0f5,'sessionId':_0xb0f0f5[_0x58027b(0x1bc)],'platformProvided':_0xb0f0f5[_0x58027b(0x18a)]||![]});return _0x28c5c[_0x58027b(0x1c5)]&&await this['trackUsage'](_0xb0f0f5[_0x58027b(0x181)],_0x30270f,{'prompt_tokens':_0x28c5c['usage']['prompt_tokens']||0x0,'completion_tokens':_0x28c5c[_0x58027b(0x1c5)]['completion_tokens']||0x0,'total_tokens':_0x28c5c['usage'][_0x58027b(0x17f)]||0x0}),this['_resetCircuitBreaker'](),{'content':_0x28c5c[_0x58027b(0x1bf)][0x0]?.[_0x58027b(0x194)]?.['content']||'','model':_0x28c5c[_0x58027b(0x173)],'tokenUsage':_0x28c5c[_0x58027b(0x1c5)],'requestId':_0x282a73,'finishReason':_0x28c5c[_0x58027b(0x1bf)][0x0]?.[_0x58027b(0x17a)]};}catch(_0x3ded2e){this['_recordFailure'](),this[_0x58027b(0x17c)]['error']('AI\x20service\x20request\x20failed:\x20'+_0x3ded2e['message'],{'requestId':_0x282a73,'model':_0x30270f,'agentId':_0xb0f0f5[_0x58027b(0x181)],'error':_0x3ded2e[_0x58027b(0x14c)]}),await this['handleHttpError'](_0x3ded2e,{'requestId':_0x282a73,'model':_0x30270f,'agentId':_0xb0f0f5['agentId']});throw _0x3ded2e;}}async[a0_0x6bf9c8(0x190)](_0x1f9d8e,_0xccebc1={}){const _0xec0448=a0_0x6bf9c8;try{const _0x2771dc=MODEL_ROUTING[_0x1f9d8e[_0xec0448(0x151)]()]||MODEL_ROUTING[_0xec0448(0x1cc)],_0x2ea3e9=[];for(const _0xaaf3e3 of _0x2771dc){const _0x35d839=await this['_checkModelHealth'](_0xaaf3e3);_0x35d839&&_0x2ea3e9[_0xec0448(0x1a8)](_0xaaf3e3);}if(_0x2ea3e9[_0xec0448(0x16f)]===0x0)return this['logger'][_0xec0448(0x199)](_0xec0448(0x1a0)+_0x1f9d8e+_0xec0448(0x1d9)),MODEL_ROUTING['FALLBACK'][0x0];let _0x23dc11=_0x2ea3e9[0x0];if(_0xccebc1['preferredModel']&&_0x2ea3e9['includes'](_0xccebc1['preferredModel']))_0x23dc11=_0xccebc1[_0xec0448(0x15f)];else{if(_0xccebc1[_0xec0448(0x1c8)]==='high'&&_0x2ea3e9[_0xec0448(0x1b8)](MODELS['ANTHROPIC_OPUS']))_0x23dc11=MODELS[_0xec0448(0x1a7)];else _0xccebc1[_0xec0448(0x146)]===_0xec0448(0x1b3)&&_0x2ea3e9['includes'](MODELS['ANTHROPIC_HAIKU'])&&(_0x23dc11=MODELS['ANTHROPIC_HAIKU']);}return this[_0xec0448(0x17c)]['info']('Model\x20routed\x20for\x20task:\x20'+_0x1f9d8e,{'selectedModel':_0x23dc11,'availableModels':_0x2ea3e9[_0xec0448(0x16f)],'context':_0xccebc1}),_0x23dc11;}catch(_0x5e0a32){return this[_0xec0448(0x17c)][_0xec0448(0x18f)](_0xec0448(0x1e3)+_0x5e0a32['message'],{'task':_0x1f9d8e,'context':_0xccebc1}),MODEL_ROUTING[_0xec0448(0x1cc)][0x0];}}async['compactizeConversation'](_0x1fff1e,_0x52bef7){const _0x59643b=a0_0x6bf9c8,_0x47aa9e=this[_0x59643b(0x153)][_0x52bef7];if(!_0x47aa9e)throw new Error('Unknown\x20model:\x20'+_0x52bef7);const _0x23ad0b=_0x47aa9e[_0x59643b(0x1c7)]*0.8;let _0x48baa7=0x0;const _0x1b976d=[],_0x252f80=await Promise[_0x59643b(0x1da)](_0x1fff1e[_0x59643b(0x1e1)](async _0x30261e=>({..._0x30261e,'estimatedTokens':await this['_estimateTokens'](_0x30261e[_0x59643b(0x16e)],_0x52bef7)}))),_0x38cbc7=[..._0x252f80]['reverse']();for(const _0x3852c4 of _0x38cbc7){if(_0x48baa7+_0x3852c4[_0x59643b(0x19d)]>_0x23ad0b){if(_0x1b976d['length']===0x0){const _0x309220=await this['_truncateMessage'](_0x3852c4[_0x59643b(0x16e)],_0x23ad0b);_0x1b976d['unshift']({..._0x3852c4,'content':_0x309220,'estimatedTokens':_0x23ad0b});}break;}_0x1b976d[_0x59643b(0x14e)](_0x3852c4),_0x48baa7+=_0x3852c4['estimatedTokens'];}const _0x551c8a=_0x252f80['slice'](0x0,-_0x1b976d['length']);if(_0x551c8a['length']>0x0){const _0x151c7a=await this['_summarizeMessages'](_0x551c8a,_0x52bef7);_0x1b976d[_0x59643b(0x14e)]({'role':_0x59643b(0x1be),'content':'Previous\x20conversation\x20summary:\x20'+_0x151c7a,'timestamp':_0x551c8a[0x0]['timestamp'],'type':_0x59643b(0x179),'estimatedTokens':await this[_0x59643b(0x15a)](_0x151c7a,_0x52bef7)});}return this['logger']['info']('Conversation\x20compactized\x20for\x20model:\x20'+_0x52bef7,{'originalMessages':_0x1fff1e[_0x59643b(0x16f)],'compactizedMessages':_0x1b976d['length'],'estimatedTokens':_0x48baa7,'maxTokens':_0x23ad0b}),_0x1b976d;}async['trackUsage'](_0x24f6ef,_0x1c987c,_0x398da9,_0x4104aa){const _0x5b0007=a0_0x6bf9c8;try{this[_0x5b0007(0x18d)]&&this['budgetService'][_0x5b0007(0x14a)](_0x24f6ef,_0x1c987c,_0x398da9);}catch(_0x231892){this['logger'][_0x5b0007(0x18f)]('Usage\x20tracking\x20failed:\x20'+_0x231892['message']);}}async['handleHttpError'](_0x38b500,_0x5f1f4e){const _0x234851=a0_0x6bf9c8,_0x48142d=this['errorHandler']?.['classifyError']?.(_0x38b500,_0x5f1f4e);switch(_0x38b500[_0x234851(0x192)]||_0x38b500['code']){case HTTP_STATUS[_0x234851(0x170)]:this[_0x234851(0x17c)]['error']('Bad\x20request\x20to\x20AI\x20service',{'context':_0x5f1f4e,'error':_0x38b500[_0x234851(0x194)]});throw new Error(_0x234851(0x1bb)+_0x38b500[_0x234851(0x194)]);case HTTP_STATUS['UNAUTHORIZED']:this['logger'][_0x234851(0x18f)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x5f1f4e});throw new Error(_0x234851(0x193));case HTTP_STATUS['FORBIDDEN']:this['logger'][_0x234851(0x18f)]('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x5f1f4e});throw new Error(_0x234851(0x195));case HTTP_STATUS['NOT_FOUND']:this['logger'][_0x234851(0x18f)](_0x234851(0x152),{'context':_0x5f1f4e});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS[_0x234851(0x1cb)]:this[_0x234851(0x17c)][_0x234851(0x199)](_0x234851(0x148),{'context':_0x5f1f4e}),await this['_handleRateLimit'](_0x5f1f4e);throw new Error(_0x234851(0x1a2));case HTTP_STATUS[_0x234851(0x150)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x234851(0x154)]:this[_0x234851(0x17c)][_0x234851(0x18f)](_0x234851(0x149),{'context':_0x5f1f4e,'status':_0x38b500[_0x234851(0x192)]}),await this['_handleServiceUnavailable'](_0x5f1f4e);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0x234851(0x17c)]['error'](_0x234851(0x168),{'context':_0x5f1f4e,'error':_0x38b500['message']});throw new Error(_0x234851(0x1a9)+_0x38b500['message']);}}['setApiKeyManager'](_0x4d50a3){const _0x358f84=a0_0x6bf9c8;this[_0x358f84(0x1e4)]=_0x4d50a3,this[_0x358f84(0x17c)]?.[_0x358f84(0x17e)](_0x358f84(0x1b0),{'hasManager':!!_0x4d50a3});}['setAgentPool'](_0x342fb2){this['agentPool']=_0x342fb2,this['logger']?.['info']('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x342fb2});}async['generateImage'](_0x301a98,_0x42bdb2={}){const _0x4d5132=a0_0x6bf9c8,_0x3f72ed=_0x4d5132(0x13d)+Date[_0x4d5132(0x16a)]()+'-'+Math[_0x4d5132(0x18b)]()[_0x4d5132(0x1d5)](0x24)['substr'](0x2,0x9);try{if(this[_0x4d5132(0x1ac)]())throw new Error(_0x4d5132(0x1de));if(!_0x301a98||typeof _0x301a98!==_0x4d5132(0x164)||_0x301a98[_0x4d5132(0x1cf)]()[_0x4d5132(0x16f)]===0x0)throw new Error(_0x4d5132(0x1b4));const _0x157bd7=_0x42bdb2['model']||'flux-1.1-pro',_0xf8761b=_0x42bdb2['size']||_0x4d5132(0x1bd),_0x5e92ad=_0x42bdb2[_0x4d5132(0x13e)]||'standard',_0x3f6018=_0x42bdb2['responseFormat']||_0x4d5132(0x147);this[_0x4d5132(0x17c)][_0x4d5132(0x17e)](_0x4d5132(0x19c)+_0x157bd7,{'requestId':_0x3f72ed,'model':_0x157bd7,'size':_0xf8761b,'quality':_0x5e92ad,'promptLength':_0x301a98[_0x4d5132(0x16f)]});const _0x1b023e={'prompt':_0x301a98,'model':_0x157bd7,'size':_0xf8761b,'quality':_0x5e92ad,'response_format':_0x3f6018,'n':0x1,'metadata':{'requestId':_0x3f72ed,'timestamp':new Date()['toISOString']()}},_0x5ddf5a=await this[_0x4d5132(0x16d)](_0x1b023e,_0x3f72ed,{'sessionId':_0x42bdb2['sessionId'],'platformProvided':_0x42bdb2['platformProvided']||![]});return this[_0x4d5132(0x1b6)](),{'url':_0x5ddf5a[_0x4d5132(0x182)]?.[0x0]?.['url']||null,'b64_json':_0x5ddf5a['data']?.[0x0]?.['b64_json']||null,'model':_0x5ddf5a[_0x4d5132(0x173)]||_0x157bd7,'requestId':_0x3f72ed,'revisedPrompt':_0x5ddf5a[_0x4d5132(0x182)]?.[0x0]?.[_0x4d5132(0x14f)]||_0x301a98};}catch(_0x4e9c74){this['_recordFailure'](),this['logger']['error'](_0x4d5132(0x1b7)+_0x4e9c74['message'],{'requestId':_0x3f72ed,'model':_0x42bdb2['model'],'error':_0x4e9c74[_0x4d5132(0x14c)]});throw _0x4e9c74;}}async[a0_0x6bf9c8(0x1a1)](){const _0x527a75=a0_0x6bf9c8;try{const _0x3a107f=await this['_makeAPIRequest'](_0x527a75(0x155),{},'health-check');return _0x3a107f[_0x527a75(0x192)]===_0x527a75(0x1ab);}catch(_0x36c13b){return![];}}async[a0_0x6bf9c8(0x1d7)](_0x3593fe,_0x2cf1fe){const _0x3699f5=a0_0x6bf9c8;try{if(!this['_isValidModel'](_0x2cf1fe))throw new Error('Invalid\x20model:\x20'+_0x2cf1fe);let _0x4ead9f=this[_0x3699f5(0x1d6)]['get'](_0x3593fe);!_0x4ead9f&&(_0x4ead9f=new ConversationManager(_0x3593fe,this['logger']),this['conversationManagers'][_0x3699f5(0x17d)](_0x3593fe,_0x4ead9f));const _0x307d18=await _0x4ead9f['switchModel'](_0x2cf1fe),_0x951066=await this['agentPool']?.[_0x3699f5(0x161)](_0x3593fe);return _0x951066&&(_0x951066['currentModel']=_0x2cf1fe,await this['agentPool'][_0x3699f5(0x184)](_0x3593fe)),this[_0x3699f5(0x17c)][_0x3699f5(0x17e)](_0x3699f5(0x144)+_0x3593fe,{'newModel':_0x2cf1fe,'messageCount':_0x307d18['messages']['length']}),{'success':!![],'agentId':_0x3593fe,'newModel':_0x2cf1fe,'conversation':_0x307d18};}catch(_0x597a16){this[_0x3699f5(0x17c)]['error']('Model\x20switch\x20failed:\x20'+_0x597a16['message'],{'agentId':_0x3593fe,'newModel':_0x2cf1fe});throw _0x597a16;}}['_initializeModelSpecs'](){const _0x3566cc=a0_0x6bf9c8,_0x267661={[MODELS[_0x3566cc(0x1af)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS['ANTHROPIC_OPUS']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x3566cc(0x188)]]:{'provider':MODEL_PROVIDERS[_0x3566cc(0x1b1)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x3566cc(0x1b9)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS[_0x3566cc(0x189)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0x3566cc(0x189)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS[_0x3566cc(0x189)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x3566cc(0x16c)]]:{'provider':MODEL_PROVIDERS[_0x3566cc(0x197)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS[_0x3566cc(0x1db)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x3566cc(0x1e2),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x3566cc(0x1e2),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x267661;}['_formatMessagesForModel'](_0x4cd65e,_0x569b96,_0xca76f7){const _0x41ffe5=a0_0x6bf9c8,_0x4b6b82=this[_0x41ffe5(0x153)][_0x569b96]||{'provider':_0x41ffe5(0x1e2)};let _0x1e9d00;typeof _0x4cd65e===_0x41ffe5(0x164)?_0x1e9d00=[{'role':'user','content':_0x4cd65e}]:_0x1e9d00=_0x4cd65e['map'](_0x41af6c=>this['_formatSingleMessage'](_0x41af6c,_0x569b96));switch(_0x4b6b82['provider']){case MODEL_PROVIDERS[_0x41ffe5(0x1b1)]:return this[_0x41ffe5(0x175)](_0x1e9d00);case MODEL_PROVIDERS['OPENAI']:return this[_0x41ffe5(0x18c)](_0x1e9d00);case MODEL_PROVIDERS[_0x41ffe5(0x1e2)]:return this['_formatForAzure'](_0x1e9d00);default:return _0x1e9d00;}}[a0_0x6bf9c8(0x1e5)](_0x4477d5,_0xf4c2d0){const _0x25d7bc=a0_0x6bf9c8;return{'role':_0x4477d5[_0x25d7bc(0x180)]||_0x25d7bc(0x158),'content':_0x4477d5['content'],'timestamp':_0x4477d5['timestamp']};}[a0_0x6bf9c8(0x175)](_0xe8b535){return _0xe8b535['map'](_0x3aa0c5=>{const _0xf821e4=a0_0x256d;if(_0x3aa0c5['role']==='system')return{'role':'user','content':'System:\x20'+_0x3aa0c5[_0xf821e4(0x16e)]};return _0x3aa0c5;});}[a0_0x6bf9c8(0x18c)](_0x150062){return _0x150062;}['_formatForAzure'](_0x5421d4){const _0x518501=a0_0x6bf9c8;return _0x5421d4[_0x518501(0x1e1)](_0x48a1a7=>({..._0x48a1a7,'content':typeof _0x48a1a7['content']===_0x518501(0x164)?_0x48a1a7['content']:JSON[_0x518501(0x14b)](_0x48a1a7['content'])}));}[a0_0x6bf9c8(0x1dd)](_0x29f85c){const _0x37ca67=a0_0x6bf9c8;this[_0x37ca67(0x17c)][_0x37ca67(0x1c9)]('Validating\x20model',{'model':_0x29f85c,'modelType':typeof _0x29f85c});if(this['modelSpecs'][_0x29f85c]!==undefined)return!![];return this[_0x37ca67(0x17c)]['warn'](_0x37ca67(0x1a5),{'model':_0x29f85c,'availableModels':Object['keys'](this[_0x37ca67(0x153)])}),![];}async['_checkModelHealth'](_0x15a2d3){return!![];}async[a0_0x6bf9c8(0x15a)](_0x461121,_0x45d48c){const _0x1b5ec8=a0_0x6bf9c8;return Math[_0x1b5ec8(0x157)](_0x461121['length']/0x4);}async['_truncateMessage'](_0x2aab27,_0x5bcaba){const _0x20d3a8=a0_0x6bf9c8,_0x2248bf=_0x5bcaba*0x4;if(_0x2aab27[_0x20d3a8(0x16f)]<=_0x2248bf)return _0x2aab27;return _0x2aab27['substring'](0x0,_0x2248bf-0x14)+'\x0a...\x20[message\x20truncated]';}async[a0_0x6bf9c8(0x15b)](_0x36ea3c,_0x3fe20a){const _0x307dc5=a0_0x6bf9c8,_0x51c3b6=_0x36ea3c[_0x307dc5(0x1e1)](_0x121200=>_0x121200[_0x307dc5(0x180)]+':\x20'+_0x121200[_0x307dc5(0x16e)])[_0x307dc5(0x1e0)]('\x0a'),_0x4dfb96=0x1f4;if(_0x51c3b6['length']<=_0x4dfb96)return _0x51c3b6;return _0x51c3b6[_0x307dc5(0x142)](0x0,_0x4dfb96)+'...\x20[conversation\x20summary\x20truncated]';}async[a0_0x6bf9c8(0x1a4)](_0x2feb2b,_0x1b582b,_0x3e93cb,_0x370eb3={}){const _0x14f8b8=a0_0x6bf9c8,_0x246de9='https://autopilot-api.azurewebsites.net/llm/chat';let _0x5f016e,_0xb5d198=null,_0x52950e=null;this['logger']?.['info']('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x370eb3['sessionId'],'hasSessionId':!!_0x370eb3[_0x14f8b8(0x1bc)],'optionsKeys':Object[_0x14f8b8(0x143)](_0x370eb3),'model':_0x1b582b['model']});if(this['apiKeyManager']&&_0x370eb3[_0x14f8b8(0x1bc)]){const _0x17955e=this['apiKeyManager']['getKeysForRequest'](_0x370eb3['sessionId'],{'platformProvided':_0x370eb3[_0x14f8b8(0x18a)]||![],'vendor':this['_getVendorFromModel'](_0x1b582b['model'])});_0xb5d198=_0x17955e['loxiaApiKey'],_0x52950e=_0x17955e[_0x14f8b8(0x145)],this[_0x14f8b8(0x17c)]?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x370eb3[_0x14f8b8(0x1bc)],'hasLoxiaKey':!!_0xb5d198,'hasVendorKey':!!_0x52950e,'vendor':this[_0x14f8b8(0x169)](_0x1b582b[_0x14f8b8(0x173)])});}!_0xb5d198&&_0x370eb3['apiKey']&&(_0xb5d198=_0x370eb3['apiKey']);!_0xb5d198&&this[_0x14f8b8(0x1ba)]['apiKey']&&(_0xb5d198=this[_0x14f8b8(0x1ba)]['apiKey']);if(!_0xb5d198)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x13e426=_0x1b582b[_0x14f8b8(0x173)],_0x5798c3={'conversationId':_0x3e93cb,'message':_0x1b582b[_0x14f8b8(0x178)][_0x1b582b[_0x14f8b8(0x178)][_0x14f8b8(0x16f)]-0x1]?.['content']||'','messages':_0x1b582b[_0x14f8b8(0x178)],'model':_0x13e426,'requestId':_0x3e93cb,'options':_0x1b582b['options']||{},'platformProvided':_0x370eb3['platformProvided']||![]};_0x1b582b[_0x14f8b8(0x1be)]&&(_0x5798c3['systemPrompt']=_0x1b582b[_0x14f8b8(0x1be)]);_0x370eb3['platformProvided']?_0x5798c3['apiKey']=_0xb5d198:(_0x52950e&&(_0x5798c3[_0x14f8b8(0x145)]=_0x52950e),_0x370eb3[_0x14f8b8(0x1c2)]&&(_0x5798c3['customApiKeys']=_0x370eb3['customApiKeys']),_0x5798c3[_0x14f8b8(0x15d)]=_0xb5d198);for(let _0xd7f286=0x1;_0xd7f286<=this['retryAttempts'];_0xd7f286++){try{this[_0x14f8b8(0x17c)]['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x246de9,'model':_0x1b582b[_0x14f8b8(0x173)],'requestId':_0x3e93cb,'attempt':_0xd7f286,'hasApiKey':!!_0xb5d198});const _0x250e58=await fetch(_0x246de9,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':_0x14f8b8(0x1ad)+_0xb5d198,'X-Request-ID':_0x3e93cb},'body':JSON[_0x14f8b8(0x14b)](_0x5798c3),'timeout':this[_0x14f8b8(0x13c)]});if(!_0x250e58['ok']){const _0x111c64=await _0x250e58['text'](),_0x5cdbec=new Error(_0x14f8b8(0x1a6)+_0x250e58[_0x14f8b8(0x192)]+':\x20'+_0x250e58['statusText']+(_0x111c64?'\x20-\x20'+_0x111c64:''));_0x5cdbec['status']=_0x250e58['status'];throw _0x5cdbec;}const _0x428a86=await _0x250e58['json']();return{'choices':[{'message':{'content':_0x428a86[_0x14f8b8(0x16e)]||'','role':_0x14f8b8(0x185)},'finish_reason':_0x428a86[_0x14f8b8(0x1aa)]||'stop'}],'usage':_0x428a86[_0x14f8b8(0x1c5)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x428a86['model']||_0x1b582b[_0x14f8b8(0x173)],'id':_0x428a86['requestId']||_0x3e93cb};}catch(_0x279746){_0x5f016e=_0x279746,this['logger'][_0x14f8b8(0x199)]('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0xd7f286,'requestId':_0x3e93cb,'error':_0x279746[_0x14f8b8(0x194)],'status':_0x279746['status']});if(_0xd7f286<this[_0x14f8b8(0x176)]){const _0x23355c=Math[_0x14f8b8(0x191)](0x2,_0xd7f286)*0x3e8;this['logger']['warn'](_0x14f8b8(0x1ae)+_0x23355c+'ms',{'attempt':_0xd7f286,'requestId':_0x3e93cb}),await new Promise(_0xa30c12=>setTimeout(_0xa30c12,_0x23355c));}}}this[_0x14f8b8(0x17c)][_0x14f8b8(0x18f)]('All\x20attempts\x20to\x20reach\x20backend\x20failed,\x20using\x20mock\x20response',{'requestId':_0x3e93cb,'error':_0x5f016e[_0x14f8b8(0x194)]});const _0x8cac41=_0x5f016e['message']&&_0x5f016e['message']['includes']('No\x20API\x20key\x20configured');if(_0x8cac41)throw new Error('API\x20Configuration\x20Error:\x20'+_0x5f016e['message']);return{'choices':[{'message':{'content':_0x14f8b8(0x198)+_0x5f016e['message'],'role':_0x14f8b8(0x185)},'finish_reason':_0x14f8b8(0x163)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x1b582b['model'],'id':'error-'+_0x3e93cb,'error':_0x5f016e[_0x14f8b8(0x194)]};}async['_makeImageAPIRequest'](_0x394e20,_0x823de7,_0x1f9657={}){const _0x50dd83=a0_0x6bf9c8,_0x234241='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x3b2c59,_0x2c253e=null,_0x539d36=null;this['logger']?.['info'](_0x50dd83(0x1d8),{'hasApiKeyManager':!!this[_0x50dd83(0x1e4)],'sessionId':_0x1f9657['sessionId'],'hasSessionId':!!_0x1f9657[_0x50dd83(0x1bc)],'model':_0x394e20[_0x50dd83(0x173)]});if(this['apiKeyManager']&&_0x1f9657[_0x50dd83(0x1bc)]){const _0x5863a9=this['apiKeyManager'][_0x50dd83(0x1ce)](_0x1f9657[_0x50dd83(0x1bc)],{'platformProvided':_0x1f9657['platformProvided']||![],'vendor':this[_0x50dd83(0x169)](_0x394e20[_0x50dd83(0x173)])});_0x2c253e=_0x5863a9['loxiaApiKey'],_0x539d36=_0x5863a9['vendorApiKey'],this[_0x50dd83(0x17c)]?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x1f9657[_0x50dd83(0x1bc)],'hasLoxiaKey':!!_0x2c253e,'hasVendorKey':!!_0x539d36});}!_0x2c253e&&_0x1f9657[_0x50dd83(0x15d)]&&(_0x2c253e=_0x1f9657[_0x50dd83(0x15d)]);!_0x2c253e&&this['config']['apiKey']&&(_0x2c253e=this['config'][_0x50dd83(0x15d)]);if(!_0x2c253e)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x3bfa4e={'prompt':_0x394e20[_0x50dd83(0x17b)],'model':_0x394e20[_0x50dd83(0x173)]||'azure-openai-dalle3','size':_0x394e20['size'],'quality':_0x394e20['quality'],'style':_0x394e20[_0x50dd83(0x1d3)]||'vivid','n':_0x394e20['n']||0x1,'requestId':_0x823de7};for(let _0x1ec376=0x1;_0x1ec376<=this[_0x50dd83(0x176)];_0x1ec376++){try{this[_0x50dd83(0x17c)][_0x50dd83(0x17e)](_0x50dd83(0x140),{'url':_0x234241,'model':_0x394e20['model'],'requestId':_0x823de7,'attempt':_0x1ec376,'hasApiKey':!!_0x2c253e});const _0x2d58e0=await fetch(_0x234241,{'method':_0x50dd83(0x14d),'headers':{'Content-Type':_0x50dd83(0x167),'Authorization':_0x50dd83(0x1ad)+_0x2c253e,'X-Request-ID':_0x823de7},'body':JSON['stringify'](_0x3bfa4e),'timeout':this['timeout']*0x2});if(!_0x2d58e0['ok']){const _0x2a6018=await _0x2d58e0[_0x50dd83(0x1b5)](),_0x2ed464=new Error(_0x50dd83(0x1a6)+_0x2d58e0[_0x50dd83(0x192)]+':\x20'+_0x2d58e0[_0x50dd83(0x187)]+(_0x2a6018?'\x20-\x20'+_0x2a6018:''));_0x2ed464[_0x50dd83(0x192)]=_0x2d58e0[_0x50dd83(0x192)];throw _0x2ed464;}const _0x89c66e=await _0x2d58e0[_0x50dd83(0x1dc)]();return{'data':_0x89c66e['images']||[],'model':_0x89c66e['model']||_0x394e20['model'],'created':_0x89c66e['created']||Date[_0x50dd83(0x16a)](),'usage':_0x89c66e[_0x50dd83(0x1c5)]};}catch(_0xf49e25){_0x3b2c59=_0xf49e25,this['logger'][_0x50dd83(0x199)]('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x1ec376,'requestId':_0x823de7,'error':_0xf49e25['message'],'status':_0xf49e25[_0x50dd83(0x192)]});if(_0x1ec376<this['retryAttempts']){const _0x3017d0=Math['pow'](0x2,_0x1ec376)*0x3e8;this['logger']['warn'](_0x50dd83(0x1ae)+_0x3017d0+'ms',{'attempt':_0x1ec376,'requestId':_0x823de7}),await new Promise(_0x47fcad=>setTimeout(_0x47fcad,_0x3017d0));}}}this['logger']['error']('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x823de7,'error':_0x3b2c59['message']});throw new Error(_0x50dd83(0x1b7)+_0x3b2c59[_0x50dd83(0x194)]);}async['_checkRateLimit'](_0xf93759){await new Promise(_0x3495cc=>setTimeout(_0x3495cc,0x64));}async['_handleRateLimit'](_0x57b4ea){const _0x1c2636=a0_0x6bf9c8,_0x4578ec=0xea60;this[_0x1c2636(0x17c)][_0x1c2636(0x17e)](_0x1c2636(0x1d4)+_0x4578ec+'ms',_0x57b4ea),await new Promise(_0x5b90c6=>setTimeout(_0x5b90c6,_0x4578ec));}async[a0_0x6bf9c8(0x172)](_0x3a1e41){const _0x31ad90=a0_0x6bf9c8;this['_recordFailure']();const _0x5d5a79=0x7530;this[_0x31ad90(0x17c)][_0x31ad90(0x17e)](_0x31ad90(0x16b)+_0x5d5a79+'ms',_0x3a1e41),await new Promise(_0x4b4089=>setTimeout(_0x4b4089,_0x5d5a79));}['_isCircuitBreakerOpen'](){const _0x18d915=a0_0x6bf9c8;if(!this['circuitBreaker']['isOpen'])return![];const _0x212270=Date['now']()-this[_0x18d915(0x183)]['lastFailureTime'];if(_0x212270>this['circuitBreaker']['timeout'])return this['circuitBreaker']['isOpen']=![],this['circuitBreaker'][_0x18d915(0x1d2)]=0x0,![];return!![];}['_recordFailure'](){const _0x445bdf=a0_0x6bf9c8;this[_0x445bdf(0x183)]['failures']++,this['circuitBreaker']['lastFailureTime']=Date[_0x445bdf(0x16a)](),this['circuitBreaker'][_0x445bdf(0x1d2)]>=this[_0x445bdf(0x183)]['threshold']&&(this['circuitBreaker'][_0x445bdf(0x159)]=!![],this['logger']['warn'](_0x445bdf(0x174)));}[a0_0x6bf9c8(0x1b6)](){const _0xf6ce76=a0_0x6bf9c8;this[_0xf6ce76(0x183)]['failures']>0x0&&(this['circuitBreaker'][_0xf6ce76(0x1d2)]=0x0,this[_0xf6ce76(0x183)][_0xf6ce76(0x159)]=![],this['logger']['info'](_0xf6ce76(0x141)));}[a0_0x6bf9c8(0x169)](_0x5cdff1){const _0x26e602=a0_0x6bf9c8;if(!_0x5cdff1)return null;const _0x3a5098=_0x5cdff1['toLowerCase']();if(_0x3a5098[_0x26e602(0x1b8)]('anthropic')||_0x3a5098['includes'](_0x26e602(0x1d1)))return _0x26e602(0x1a3);else{if(_0x3a5098['includes']('openai')||_0x3a5098['includes'](_0x26e602(0x1c1)))return _0x26e602(0x1c3);else{if(_0x3a5098[_0x26e602(0x1b8)]('deepseek'))return'deepseek';else{if(_0x3a5098[_0x26e602(0x1b8)](_0x26e602(0x1df)))return'microsoft';}}}return null;}}function a0_0x256d(_0x48a763,_0x21d537){_0x48a763=_0x48a763-0x13c;const _0x7ad7ca=a0_0x7ad7();let _0x256dfb=_0x7ad7ca[_0x48a763];if(a0_0x256d['KGmIIO']===undefined){var _0x556e3a=function(_0x508945){const _0x1eda01='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4fa2ab='',_0x124422='';for(let _0x58b9e3=0x0,_0x35a117,_0x30270f,_0x594438=0x0;_0x30270f=_0x508945['charAt'](_0x594438++);~_0x30270f&&(_0x35a117=_0x58b9e3%0x4?_0x35a117*0x40+_0x30270f:_0x30270f,_0x58b9e3++%0x4)?_0x4fa2ab+=String['fromCharCode'](0xff&_0x35a117>>(-0x2*_0x58b9e3&0x6)):0x0){_0x30270f=_0x1eda01['indexOf'](_0x30270f);}for(let _0xb0f0f5=0x0,_0x282a73=_0x4fa2ab['length'];_0xb0f0f5<_0x282a73;_0xb0f0f5++){_0x124422+='%'+('00'+_0x4fa2ab['charCodeAt'](_0xb0f0f5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x124422);};a0_0x256d['uLpbpI']=_0x556e3a,a0_0x256d['MlzSql']={},a0_0x256d['KGmIIO']=!![];}const _0x4fe8a2=_0x7ad7ca[0x0],_0x31e060=_0x48a763+_0x4fe8a2,_0x285dea=a0_0x256d['MlzSql'][_0x31e060];return!_0x285dea?(_0x256dfb=a0_0x256d['uLpbpI'](_0x256dfb),a0_0x256d['MlzSql'][_0x31e060]=_0x256dfb):_0x256dfb=_0x285dea,_0x256dfb;}class ConversationManager{constructor(_0x4d7d26,_0x1a6d95){const _0x2f8a53=a0_0x6bf9c8;this['agentId']=_0x4d7d26,this['logger']=_0x1a6d95,this[_0x2f8a53(0x196)]=new Map();}async['switchModel'](_0x2d6568){const _0x57f458=a0_0x6bf9c8;return{'messages':[],'model':_0x2d6568,'lastUpdated':new Date()[_0x57f458(0x166)]()};}}export default AIService;
|
|
1
|
+
function a0_0x4c95(){const _0x558751=['zgvIDwC','CM9Szq','BwvZC2fNzq','r0furvDbwv9usu1ft1vu','DgHYzxnOB2XK','AxnpCgvU','CM91DgvnB2rLBa','y29UzMLN','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','y29UDMvYC2f0Aw9UtwfUywDLCNm','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','C3LZDgvT','t1bftKfj','CMv0CNLbDhrLBxb0CW','y2LYy3vPDejYzwfRzxi','Aw5MBW','yxbPs2v5twfUywDLCG','quKGC2vYDMLJzsbLCNjVCJOG','BM93','DhjHy2TvC2fNzq','n3nhAwDnyW','qu5usfjpueLdx0HbsuTv','revfufnfruTFuJe','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','qMvHCMvYia','y3vYCMvUDe1VzgvS','DML2Awq','C3rYAw5N','z2v0s2v5C0zVCLjLCxvLC3q','qu5usfjpueLdx09qvvm','AxnbCNjHEq','C3rHDhvZ','ue9tva','nw9Uzg9HsG','vu5bvvrit1jjwKve','ndGYodaYu2Hdu3fw','ywDLBNrqB29S','yJy0x2PZB24','CMv2AxnLzf9WCM9TChq','x2LZq2LYy3vPDejYzwfRzxjpCgvU','mZeWsejqtMXZ','x21HA2vjBwfNzufqsvjLCxvLC3q','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','ueHjxZq','uMf0zsbSAw1PDcbLEgnLzwrLza','C3DPDgnOtw9KzwW','yw50AhjVCgLJ','ueHj','mtm3nZuYmNf2v3n5Cq','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','C3vIC3rYAw5N','r1buxZrFtuLosq','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','CgXHDgzVCM1qCM92AwrLza','qvPvuKu','vw5RBM93BIbTB2rLBdOG','Bw9KzwW','x21HA2vbueLszxf1zxn0','C3DPDgnOqwDLBNrnB2rLBa','Aw1Nlq','BwLJCM9ZB2z0','rKfmtejbq0S','yxbWBgLJyxrPB24VANnVBG','quKGC2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzq','y29TCgfJDgL6zunVBNzLCNnHDgLVBG','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','C3LZDgvTuhjVBxb0','CMv2zxjZzq','x3n1Bw1HCML6zu1LC3nHz2vZ','CMfUzg9T','ChjVDMLKzxi','yxnZAxn0yw50','C2v0qxbPs2v5twfUywDLCG','DgvTCgvYyxr1CMu','zMLUAxnOx3jLyxnVBG','C3bLzwq','zxjYB3iT','qKfex1jfuvvfu1q','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','Dg9tDhjPBMC','vMfSAwrHDgLUzYbTB2rLBa','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','AgvHBhrOEq','DxnHz2u','mty4ndflCwT0vg8','x2nOzwnRtw9KzwXizwfSDgG','AgvHBhrOlwnOzwnR','ywDLBNrjza','sw52ywXPzcbTB2rLBdOG','u3LZDgvToIa','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','ywXS','mti0mdy5DwrZC2Dc','x2zVCM1HDezVCKf6DxjL','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','x2DLDfzLBMrVCKzYB21nB2rLBa','x2zVCM1HDezVCKfUDgHYB3bPyW','qu5usfjpueLd','CxvHBgL0Eq','CMvXDwvZDff1zxvL','x2vZDgLTyxrLvg9Rzw5Z','u0vsvKLdrv9vtKfwquLmqujmrq','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','qxv0AgvUDgLJyxrPB24GzMfPBgvKic0Gy2HLy2SGqvbjignYzwrLBNrPywXZ','BwvZC2fNzxm','uMv0CNLPBMCGAw4G','y2vPBa','y3vZDg9TqxbPs2v5CW','y29UDgvUDa','x3jLC2v0q2LYy3vPDejYzwfRzxi','D2fYBG','mtHiCwneuMK','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','C3vIC3rY','z2vUzxjHDgvjBwfNzq','tK9ux0zpvu5e','AgfUzgXLshr0CevYCM9Y','DxjS','DxnLCG','DgLTzw91Da','mZK0mJG4yNbqtxrP','C2vZC2LVBKLK','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','zMfPBhvYzxm','B3bLBMfP','Aw5JBhvKzxm','y2XHC3nPzNLfCNjVCG','C3r5Bgu','y29TCgXLDgLVBL90B2TLBNm','zMfZDa','yNvKz2v0u2vYDMLJzq','BgfZDezHAwX1CMvuAw1L','Bwf4x3rVA2vUCW','Dw5ZAgLMDa','zxjYB3i','A2v5CW','DgLTzxn0yw1W','Ahr0Chm6lY9HCgKUBg94AweUywK','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','Dg9ju09tDhjPBMC','ChvZAa','qxv0AgvUDgLJyxrPB24GzMfPBgvKihDPDgGGquKGC2vYDMLJzq','y2HVAwnLCW','C2v0','Bw9KzwXtCgvJCW','zgvLChnLzwS','x2zVCM1HDfnPBMDSzu1LC3nHz2u','C3rVCa','zgf0yq','DMvUzg9YqxbPs2v5','C3rYzwfT','rK9sqKLerevo','mJGZmZHlu1PeDvm','x2zVCM1HDezVCK9Wzw5bsq','z2v0qwDLBNq','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','BwfW','y3jLyxrLza','zxjYB3jiyw5KBgvY','yxbPs2v5','Bg9Nz2vY','l2HLywX0Aa','Bg94AwfbCgLlzxK','revfufnfruS','BgvUz3rO','CMf0zuXPBwL0zxjZ','yMfJA2vUza','mtaYnhGXmdi0','mtqXotGWofDHqxviBq','Cg93'];a0_0x4c95=function(){return _0x558751;};return a0_0x4c95();}function a0_0x179e(_0x1eb0bd,_0x2b1caa){_0x1eb0bd=_0x1eb0bd-0x186;const _0x4c9560=a0_0x4c95();let _0x179e1a=_0x4c9560[_0x1eb0bd];if(a0_0x179e['jnPcVo']===undefined){var _0x172e64=function(_0xb42407){const _0x4a62a2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x26f75f='',_0x3b14a0='';for(let _0x38d2b1=0x0,_0x142940,_0x2bf6f1,_0x1909d9=0x0;_0x2bf6f1=_0xb42407['charAt'](_0x1909d9++);~_0x2bf6f1&&(_0x142940=_0x38d2b1%0x4?_0x142940*0x40+_0x2bf6f1:_0x2bf6f1,_0x38d2b1++%0x4)?_0x26f75f+=String['fromCharCode'](0xff&_0x142940>>(-0x2*_0x38d2b1&0x6)):0x0){_0x2bf6f1=_0x4a62a2['indexOf'](_0x2bf6f1);}for(let _0x229a92=0x0,_0x4dabac=_0x26f75f['length'];_0x229a92<_0x4dabac;_0x229a92++){_0x3b14a0+='%'+('00'+_0x26f75f['charCodeAt'](_0x229a92)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b14a0);};a0_0x179e['EVsFRD']=_0x172e64,a0_0x179e['AVhOeV']={},a0_0x179e['jnPcVo']=!![];}const _0x50e7f9=_0x4c9560[0x0],_0x55edab=_0x1eb0bd+_0x50e7f9,_0x58335e=a0_0x179e['AVhOeV'][_0x55edab];return!_0x58335e?(_0x179e1a=a0_0x179e['EVsFRD'](_0x179e1a),a0_0x179e['AVhOeV'][_0x55edab]=_0x179e1a):_0x179e1a=_0x58335e,_0x179e1a;}const a0_0x150019=a0_0x179e;(function(_0x42ef73,_0x1cffe1){const _0x433730=a0_0x179e,_0x48b968=_0x42ef73();while(!![]){try{const _0x4ca118=parseInt(_0x433730(0x1f9))/0x1+-parseInt(_0x433730(0x192))/0x2*(-parseInt(_0x433730(0x214))/0x3)+parseInt(_0x433730(0x21e))/0x4*(-parseInt(_0x433730(0x1c5))/0x5)+parseInt(_0x433730(0x1c7))/0x6+-parseInt(_0x433730(0x1b8))/0x7*(parseInt(_0x433730(0x1a2))/0x8)+-parseInt(_0x433730(0x1d4))/0x9+parseInt(_0x433730(0x1cc))/0xa*(parseInt(_0x433730(0x201))/0xb);if(_0x4ca118===_0x1cffe1)break;else _0x48b968['push'](_0x48b968['shift']());}catch(_0x54796c){_0x48b968['push'](_0x48b968['shift']());}}}(a0_0x4c95,0x191d1));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x26f75f,_0x3b14a0,_0x38d2b1,_0x142940){const _0x495fec=a0_0x179e;this['config']=_0x26f75f,this[_0x495fec(0x19a)]=_0x3b14a0,this[_0x495fec(0x228)]=_0x38d2b1,this[_0x495fec(0x198)]=_0x142940,this['baseUrl']=_0x26f75f['backend']?.['baseUrl']||_0x495fec(0x22f),this['timeout']=_0x26f75f['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x26f75f[_0x495fec(0x1a0)]?.[_0x495fec(0x1b1)]||0x3,this[_0x495fec(0x19f)]=new Map(),this[_0x495fec(0x208)]=new Map(),this[_0x495fec(0x1b2)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this['_initializeModelSpecs'](),this[_0x495fec(0x1ad)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async['sendMessage'](_0x2bf6f1,_0x1909d9,_0x229a92={}){const _0x40b28d=a0_0x179e,_0x4dabac='req-'+Date[_0x40b28d(0x1b6)]()+'-'+Math['random']()[_0x40b28d(0x1f4)](0x24)[_0x40b28d(0x217)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x40b28d(0x1bb));await this['_checkRateLimit'](_0x2bf6f1);const _0x30a8fe=this['_formatMessagesForModel'](_0x1909d9,_0x2bf6f1,_0x229a92),_0x2c7db4={'model':_0x2bf6f1,'messages':_0x30a8fe,'options':{'max_tokens':this['modelSpecs'][_0x2bf6f1]?.['maxTokens']||0xfa0,'temperature':_0x229a92[_0x40b28d(0x1ee)]||0.7,'stream':_0x229a92[_0x40b28d(0x190)]||![]},'metadata':{'requestId':_0x4dabac,'agentId':_0x229a92[_0x40b28d(0x1fc)],'timestamp':new Date()['toISOString']()}};_0x229a92['systemPrompt']&&(_0x2c7db4[_0x40b28d(0x1af)]=_0x229a92[_0x40b28d(0x1e7)]);this['logger']['info']('Sending\x20message\x20to\x20model:\x20'+_0x2bf6f1,{'requestId':_0x4dabac,'agentId':_0x229a92[_0x40b28d(0x1fc)],'messageCount':Array[_0x40b28d(0x1c2)](_0x1909d9)?_0x1909d9[_0x40b28d(0x19e)]:0x1,'maxTokens':_0x2c7db4[_0x40b28d(0x22a)]});const _0xeac05e=await this[_0x40b28d(0x1de)]('/chat/completions',_0x2c7db4,_0x4dabac,{..._0x229a92,'sessionId':_0x229a92[_0x40b28d(0x21f)],'platformProvided':_0x229a92['platformProvided']||![]});return _0xeac05e[_0x40b28d(0x1f8)]&&await this[_0x40b28d(0x1b7)](_0x229a92['agentId'],_0x2bf6f1,{'prompt_tokens':_0xeac05e[_0x40b28d(0x1f8)]['prompt_tokens']||0x0,'completion_tokens':_0xeac05e[_0x40b28d(0x1f8)][_0x40b28d(0x226)]||0x0,'total_tokens':_0xeac05e[_0x40b28d(0x1f8)]['total_tokens']||0x0}),this['_resetCircuitBreaker'](),{'content':_0xeac05e['choices'][0x0]?.[_0x40b28d(0x1a6)]?.[_0x40b28d(0x211)]||'','model':_0xeac05e[_0x40b28d(0x1dd)],'tokenUsage':_0xeac05e[_0x40b28d(0x1f8)],'requestId':_0x4dabac,'finishReason':_0xeac05e[_0x40b28d(0x188)][0x0]?.[_0x40b28d(0x1ef)]};}catch(_0x538637){this['_recordFailure'](),this[_0x40b28d(0x19a)]['error']('AI\x20service\x20request\x20failed:\x20'+_0x538637['message'],{'requestId':_0x4dabac,'model':_0x2bf6f1,'agentId':_0x229a92[_0x40b28d(0x1fc)],'error':_0x538637['stack']}),await this[_0x40b28d(0x21a)](_0x538637,{'requestId':_0x4dabac,'model':_0x2bf6f1,'agentId':_0x229a92[_0x40b28d(0x1fc)]});throw _0x538637;}}async[a0_0x150019(0x1aa)](_0x2e77c4,_0x5285ef={}){const _0x4e21c6=a0_0x150019;try{const _0x47f259=MODEL_ROUTING[_0x2e77c4['toUpperCase']()]||MODEL_ROUTING[_0x4e21c6(0x1e2)],_0x331bfe=[];for(const _0xa4ae11 of _0x47f259){const _0x544bbc=await this['_checkModelHealth'](_0xa4ae11);_0x544bbc&&_0x331bfe[_0x4e21c6(0x186)](_0xa4ae11);}if(_0x331bfe[_0x4e21c6(0x19e)]===0x0)return this[_0x4e21c6(0x19a)][_0x4e21c6(0x213)]('No\x20healthy\x20models\x20available\x20for\x20task:\x20'+_0x2e77c4+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x430023=_0x331bfe[0x0];if(_0x5285ef['preferredModel']&&_0x331bfe['includes'](_0x5285ef['preferredModel']))_0x430023=_0x5285ef['preferredModel'];else{if(_0x5285ef['complexity']==='high'&&_0x331bfe['includes'](MODELS['ANTHROPIC_OPUS']))_0x430023=MODELS[_0x4e21c6(0x1c1)];else _0x5285ef[_0x4e21c6(0x1f0)]===_0x4e21c6(0x227)&&_0x331bfe[_0x4e21c6(0x223)](MODELS['ANTHROPIC_HAIKU'])&&(_0x430023=MODELS[_0x4e21c6(0x1b9)]);}return this[_0x4e21c6(0x19a)]['info'](_0x4e21c6(0x231)+_0x2e77c4,{'selectedModel':_0x430023,'availableModels':_0x331bfe['length'],'context':_0x5285ef}),_0x430023;}catch(_0x308fe4){return this['logger'][_0x4e21c6(0x22c)]('Model\x20routing\x20failed:\x20'+_0x308fe4[_0x4e21c6(0x1a6)],{'task':_0x2e77c4,'context':_0x5285ef}),MODEL_ROUTING['FALLBACK'][0x0];}}async[a0_0x150019(0x1e5)](_0x3d2b29,_0x4cb4ab){const _0x268de1=a0_0x150019,_0x5b7171=this[_0x268de1(0x18a)][_0x4cb4ab];if(!_0x5b7171)throw new Error(_0x268de1(0x1dc)+_0x4cb4ab);const _0x3b9073=_0x5b7171['contextWindow']*0.8;let _0x7d6070=0x0;const _0x5e081f=[],_0x5a1100=await Promise[_0x268de1(0x200)](_0x3d2b29['map'](async _0x4af32c=>({..._0x4af32c,'estimatedTokens':await this['_estimateTokens'](_0x4af32c[_0x268de1(0x211)],_0x4cb4ab)}))),_0x5a5f10=[..._0x5a1100][_0x268de1(0x1e8)]();for(const _0x17fbf1 of _0x5a5f10){if(_0x7d6070+_0x17fbf1['estimatedTokens']>_0x3b9073){if(_0x5e081f['length']===0x0){const _0x599f14=await this['_truncateMessage'](_0x17fbf1['content'],_0x3b9073);_0x5e081f['unshift']({..._0x17fbf1,'content':_0x599f14,'estimatedTokens':_0x3b9073});}break;}_0x5e081f['unshift'](_0x17fbf1),_0x7d6070+=_0x17fbf1['estimatedTokens'];}const _0x345e66=_0x5a1100['slice'](0x0,-_0x5e081f[_0x268de1(0x19e)]);if(_0x345e66['length']>0x0){const _0x17ee9b=await this['_summarizeMessages'](_0x345e66,_0x4cb4ab);_0x5e081f[_0x268de1(0x22b)]({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x17ee9b,'timestamp':_0x345e66[0x0]['timestamp'],'type':'summary','estimatedTokens':await this['_estimateTokens'](_0x17ee9b,_0x4cb4ab)});}return this['logger'][_0x268de1(0x1b3)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x4cb4ab,{'originalMessages':_0x3d2b29['length'],'compactizedMessages':_0x5e081f[_0x268de1(0x19e)],'estimatedTokens':_0x7d6070,'maxTokens':_0x3b9073}),_0x5e081f;}async['trackUsage'](_0xaf91b9,_0x5dc00c,_0x450d6d,_0x3af156){const _0x5b54b9=a0_0x150019;try{this[_0x5b54b9(0x228)]&&this[_0x5b54b9(0x228)]['trackUsage'](_0xaf91b9,_0x5dc00c,_0x450d6d);}catch(_0x14b366){this['logger'][_0x5b54b9(0x22c)]('Usage\x20tracking\x20failed:\x20'+_0x14b366['message']);}}async[a0_0x150019(0x21a)](_0x12bdc9,_0x1e1b4f){const _0x130fc8=a0_0x150019,_0x18aa90=this['errorHandler']?.[_0x130fc8(0x224)]?.(_0x12bdc9,_0x1e1b4f);switch(_0x12bdc9['status']||_0x12bdc9['code']){case HTTP_STATUS[_0x130fc8(0x1f2)]:this['logger'][_0x130fc8(0x22c)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x1e1b4f,'error':_0x12bdc9[_0x130fc8(0x1a6)]});throw new Error('Invalid\x20request:\x20'+_0x12bdc9['message']);case HTTP_STATUS[_0x130fc8(0x1c6)]:this['logger'][_0x130fc8(0x22c)](_0x130fc8(0x187),{'context':_0x1e1b4f});throw new Error(_0x130fc8(0x20c));case HTTP_STATUS[_0x130fc8(0x191)]:this[_0x130fc8(0x19a)]['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x1e1b4f});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x130fc8(0x219)]:this[_0x130fc8(0x19a)]['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x1e1b4f});throw new Error(_0x130fc8(0x1d6));case HTTP_STATUS['TOO_MANY_REQUESTS']:this['logger'][_0x130fc8(0x213)](_0x130fc8(0x1d0),{'context':_0x1e1b4f}),await this['_handleRateLimit'](_0x1e1b4f);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS[_0x130fc8(0x20a)]:case HTTP_STATUS[_0x130fc8(0x1a7)]:this['logger'][_0x130fc8(0x22c)]('AI\x20service\x20unavailable',{'context':_0x1e1b4f,'status':_0x12bdc9['status']}),await this['_handleServiceUnavailable'](_0x1e1b4f);throw new Error(_0x130fc8(0x1e4));default:this[_0x130fc8(0x19a)][_0x130fc8(0x22c)](_0x130fc8(0x1f6),{'context':_0x1e1b4f,'error':_0x12bdc9['message']});throw new Error(_0x130fc8(0x1b5)+_0x12bdc9[_0x130fc8(0x1a6)]);}}[a0_0x150019(0x1ed)](_0x5e141b){const _0x45b357=a0_0x150019;this['apiKeyManager']=_0x5e141b,this['logger']?.[_0x45b357(0x1b3)](_0x45b357(0x215),{'hasManager':!!_0x5e141b});}['setAgentPool'](_0x227846){const _0x5b961e=a0_0x150019;this['agentPool']=_0x227846,this[_0x5b961e(0x19a)]?.['info'](_0x5b961e(0x20b),{'hasAgentPool':!!_0x227846});}async[a0_0x150019(0x218)](_0x5eaf42,_0x65b357={}){const _0x144d9=a0_0x150019,_0x5cb1c9=_0x144d9(0x1e0)+Date['now']()+'-'+Math[_0x144d9(0x1ea)]()[_0x144d9(0x1f4)](0x24)['substr'](0x2,0x9);try{if(this[_0x144d9(0x1cb)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x5eaf42||typeof _0x5eaf42!==_0x144d9(0x1bf)||_0x5eaf42['trim']()['length']===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x5bd1af=_0x65b357[_0x144d9(0x1dd)]||'flux-1.1-pro',_0x4b7450=_0x65b357['size']||_0x144d9(0x1a1),_0x4abf7f=_0x65b357[_0x144d9(0x207)]||'standard',_0x28a427=_0x65b357['responseFormat']||'url';this['logger']['info']('Generating\x20image\x20with\x20model:\x20'+_0x5bd1af,{'requestId':_0x5cb1c9,'model':_0x5bd1af,'size':_0x4b7450,'quality':_0x4abf7f,'promptLength':_0x5eaf42['length']});const _0x541518={'prompt':_0x5eaf42,'model':_0x5bd1af,'size':_0x4b7450,'quality':_0x4abf7f,'response_format':_0x28a427,'n':0x1,'metadata':{'requestId':_0x5cb1c9,'timestamp':new Date()['toISOString']()}},_0x3d3be6=await this['_makeImageAPIRequest'](_0x541518,_0x5cb1c9,{'sessionId':_0x65b357['sessionId'],'platformProvided':_0x65b357['platformProvided']||![]});return this[_0x144d9(0x212)](),{'url':_0x3d3be6['data']?.[0x0]?.[_0x144d9(0x21b)]||null,'b64_json':_0x3d3be6['data']?.[0x0]?.[_0x144d9(0x1c9)]||null,'model':_0x3d3be6['model']||_0x5bd1af,'requestId':_0x5cb1c9,'revisedPrompt':_0x3d3be6[_0x144d9(0x18e)]?.[0x0]?.[_0x144d9(0x1ca)]||_0x5eaf42};}catch(_0x3d9197){this['_recordFailure'](),this[_0x144d9(0x19a)]['error'](_0x144d9(0x1f3)+_0x3d9197['message'],{'requestId':_0x5cb1c9,'model':_0x65b357[_0x144d9(0x1dd)],'error':_0x3d9197['stack']});throw _0x3d9197;}}async['checkServiceHealth'](){const _0x22c6b0=a0_0x150019;try{const _0x397469=await this['_makeAPIRequest'](_0x22c6b0(0x19b),{},_0x22c6b0(0x1fb));return _0x397469[_0x22c6b0(0x1c3)]===_0x22c6b0(0x1f7);}catch(_0x1cf89e){return![];}}async[a0_0x150019(0x1df)](_0x1bb148,_0x1cb8ef){const _0x2d9dc0=a0_0x150019;try{if(!this['_isValidModel'](_0x1cb8ef))throw new Error(_0x2d9dc0(0x1fd)+_0x1cb8ef);let _0x3694fc=this['conversationManagers']['get'](_0x1bb148);!_0x3694fc&&(_0x3694fc=new ConversationManager(_0x1bb148,this['logger']),this[_0x2d9dc0(0x1ad)][_0x2d9dc0(0x189)](_0x1bb148,_0x3694fc));const _0x263f63=await _0x3694fc[_0x2d9dc0(0x1d1)](_0x1cb8ef),_0xc941ea=await this[_0x2d9dc0(0x1c8)]?.[_0x2d9dc0(0x194)](_0x1bb148);return _0xc941ea&&(_0xc941ea[_0x2d9dc0(0x1bd)]=_0x1cb8ef,await this[_0x2d9dc0(0x1c8)]['persistAgentState'](_0x1bb148)),this[_0x2d9dc0(0x19a)][_0x2d9dc0(0x1b3)](_0x2d9dc0(0x1d9)+_0x1bb148,{'newModel':_0x1cb8ef,'messageCount':_0x263f63[_0x2d9dc0(0x20d)][_0x2d9dc0(0x19e)]}),{'success':!![],'agentId':_0x1bb148,'newModel':_0x1cb8ef,'conversation':_0x263f63};}catch(_0x48b6ac){this['logger']['error']('Model\x20switch\x20failed:\x20'+_0x48b6ac[_0x2d9dc0(0x1a6)],{'agentId':_0x1bb148,'newModel':_0x1cb8ef});throw _0x48b6ac;}}['_initializeModelSpecs'](){const _0x225d93=a0_0x150019,_0x3a666f={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x225d93(0x206)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x225d93(0x1c1)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x225d93(0x1b9)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS[_0x225d93(0x1b0)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS[_0x225d93(0x1d8)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS[_0x225d93(0x1b0)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x225d93(0x1ba)]]:{'provider':MODEL_PROVIDERS[_0x225d93(0x19d)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x225d93(0x1cf)]]:{'provider':MODEL_PROVIDERS[_0x225d93(0x1d3)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x225d93(0x1db),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x225d93(0x1db),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x225d93(0x1db),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x225d93(0x1db),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x3a666f;}[a0_0x150019(0x230)](_0x58f9c7,_0x58d611,_0x2650ae){const _0x26e20e=a0_0x150019,_0x41b825=this[_0x26e20e(0x18a)][_0x58d611]||{'provider':_0x26e20e(0x1db)};let _0x2f2b57;typeof _0x58f9c7===_0x26e20e(0x1bf)?_0x2f2b57=[{'role':_0x26e20e(0x21c),'content':_0x58f9c7}]:_0x2f2b57=_0x58f9c7['map'](_0x48356e=>this['_formatSingleMessage'](_0x48356e,_0x58d611));switch(_0x41b825[_0x26e20e(0x1eb)]){case MODEL_PROVIDERS[_0x26e20e(0x206)]:return this[_0x26e20e(0x205)](_0x2f2b57);case MODEL_PROVIDERS['OPENAI']:return this[_0x26e20e(0x193)](_0x2f2b57);case MODEL_PROVIDERS[_0x26e20e(0x1db)]:return this[_0x26e20e(0x202)](_0x2f2b57);default:return _0x2f2b57;}}[a0_0x150019(0x18c)](_0xc01512,_0x1b5d56){const _0x2d5b47=a0_0x150019;return{'role':_0xc01512[_0x2d5b47(0x1a5)]||_0x2d5b47(0x21c),'content':_0xc01512['content'],'timestamp':_0xc01512[_0x2d5b47(0x22e)]};}[a0_0x150019(0x205)](_0x24e95f){const _0x546fa1=a0_0x150019;return _0x24e95f[_0x546fa1(0x196)](_0x2c2985=>{const _0x39bd85=_0x546fa1;if(_0x2c2985['role']===_0x39bd85(0x1af))return{'role':_0x39bd85(0x21c),'content':_0x39bd85(0x1fe)+_0x2c2985[_0x39bd85(0x211)]};return _0x2c2985;});}['_formatForOpenAI'](_0x31bc10){return _0x31bc10;}['_formatForAzure'](_0x222958){const _0x2a0fa2=a0_0x150019;return _0x222958[_0x2a0fa2(0x196)](_0x2e9df9=>({..._0x2e9df9,'content':typeof _0x2e9df9[_0x2a0fa2(0x211)]==='string'?_0x2e9df9['content']:JSON['stringify'](_0x2e9df9[_0x2a0fa2(0x211)])}));}['_isValidModel'](_0x57c17e){const _0x591de8=a0_0x150019;this[_0x591de8(0x19a)][_0x591de8(0x1a4)](_0x591de8(0x1f5),{'model':_0x57c17e,'modelType':typeof _0x57c17e});if(this[_0x591de8(0x18a)][_0x57c17e]!==undefined)return!![];return this[_0x591de8(0x19a)]['warn'](_0x591de8(0x195),{'model':_0x57c17e,'availableModels':Object[_0x591de8(0x22d)](this[_0x591de8(0x18a)])}),![];}async[a0_0x150019(0x1fa)](_0x3ca937){return!![];}async[a0_0x150019(0x209)](_0xf0064f,_0x2a6133){const _0x103a6c=a0_0x150019;return Math[_0x103a6c(0x20f)](_0xf0064f[_0x103a6c(0x19e)]/0x4);}async['_truncateMessage'](_0x229970,_0x4a5ea0){const _0x515892=a0_0x150019,_0x21937c=_0x4a5ea0*0x4;if(_0x229970[_0x515892(0x19e)]<=_0x21937c)return _0x229970;return _0x229970[_0x515892(0x1d7)](0x0,_0x21937c-0x14)+_0x515892(0x1ae);}async[a0_0x150019(0x1e9)](_0x163629,_0x190bde){const _0xfebd2e=a0_0x150019,_0x1f9e58=_0x163629[_0xfebd2e(0x196)](_0x3794a2=>_0x3794a2[_0xfebd2e(0x1a5)]+':\x20'+_0x3794a2['content'])['join']('\x0a'),_0x22487d=0x1f4;if(_0x1f9e58[_0xfebd2e(0x19e)]<=_0x22487d)return _0x1f9e58;return _0x1f9e58[_0xfebd2e(0x1d7)](0x0,_0x22487d)+'...\x20[conversation\x20summary\x20truncated]';}async[a0_0x150019(0x1de)](_0x5ea211,_0x15e009,_0xdcb505,_0x45c3d1={}){const _0x1e1381=a0_0x150019,_0x114f92=_0x1e1381(0x1ff);let _0x256d0f,_0x493edf=null,_0x39b429=null;this['logger']?.[_0x1e1381(0x1b3)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x1e1381(0x1b4)],'sessionId':_0x45c3d1['sessionId'],'hasSessionId':!!_0x45c3d1['sessionId'],'optionsKeys':Object['keys'](_0x45c3d1),'model':_0x15e009[_0x1e1381(0x1dd)]});if(this[_0x1e1381(0x1b4)]&&_0x45c3d1[_0x1e1381(0x21f)]){const _0x273adf=this['apiKeyManager']['getKeysForRequest'](_0x45c3d1['sessionId'],{'platformProvided':_0x45c3d1[_0x1e1381(0x1da)]||![],'vendor':this[_0x1e1381(0x204)](_0x15e009[_0x1e1381(0x1dd)])});_0x493edf=_0x273adf[_0x1e1381(0x19c)],_0x39b429=_0x273adf[_0x1e1381(0x18f)],this['logger']?.[_0x1e1381(0x1a4)]('Retrieved API keys from session manager',{'sessionId':_0x45c3d1[_0x1e1381(0x21f)],'hasLoxiaKey':!!_0x493edf,'hasVendorKey':!!_0x39b429,'vendor':this[_0x1e1381(0x204)](_0x15e009[_0x1e1381(0x1dd)])});}!_0x493edf&&_0x45c3d1['apiKey']&&(_0x493edf=_0x45c3d1[_0x1e1381(0x199)]);!_0x493edf&&this['config']['apiKey']&&(_0x493edf=this['config']['apiKey']);if(!_0x493edf)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x40ed17=_0x15e009['model'],_0x1d0f3c={'conversationId':_0xdcb505,'message':_0x15e009['messages'][_0x15e009['messages']['length']-0x1]?.['content']||'','messages':_0x15e009['messages'],'model':_0x40ed17,'requestId':_0xdcb505,'options':_0x15e009['options']||{},'platformProvided':_0x45c3d1[_0x1e1381(0x1da)]||![]};_0x15e009[_0x1e1381(0x1af)]&&(_0x1d0f3c[_0x1e1381(0x1e7)]=_0x15e009[_0x1e1381(0x1af)]);_0x45c3d1['platformProvided']?_0x1d0f3c['apiKey']=_0x493edf:(_0x39b429&&(_0x1d0f3c['vendorApiKey']=_0x39b429),_0x45c3d1[_0x1e1381(0x210)]&&(_0x1d0f3c[_0x1e1381(0x210)]=_0x45c3d1['customApiKeys']),_0x1d0f3c['apiKey']=_0x493edf);for(let _0x158635=0x1;_0x158635<=this[_0x1e1381(0x1b1)];_0x158635++){try{this[_0x1e1381(0x19a)]['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x114f92,'model':_0x15e009[_0x1e1381(0x1dd)],'requestId':_0xdcb505,'attempt':_0x158635,'hasApiKey':!!_0x493edf});const _0x5a7be9=await fetch(_0x114f92,{'method':'POST','headers':{'Content-Type':_0x1e1381(0x1e3),'Authorization':'Bearer\x20'+_0x493edf,'X-Request-ID':_0xdcb505},'body':JSON['stringify'](_0x1d0f3c),'timeout':this[_0x1e1381(0x21d)]});if(!_0x5a7be9['ok']){const _0x52e386=await _0x5a7be9['text'](),_0x2bd809=new Error('HTTP\x20'+_0x5a7be9[_0x1e1381(0x1c3)]+':\x20'+_0x5a7be9['statusText']+(_0x52e386?'\x20-\x20'+_0x52e386:''));_0x2bd809['status']=_0x5a7be9['status'];throw _0x2bd809;}const _0x4e1642=await _0x5a7be9['json']();return{'choices':[{'message':{'content':_0x4e1642['content']||'','role':'assistant'},'finish_reason':_0x4e1642['finishReason']||'stop'}],'usage':_0x4e1642[_0x1e1381(0x1f8)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4e1642['model']||_0x15e009[_0x1e1381(0x1dd)],'id':_0x4e1642['requestId']||_0xdcb505};}catch(_0x25eb26){_0x256d0f=_0x25eb26,this[_0x1e1381(0x19a)]['warn'](_0x1e1381(0x1ac),{'attempt':_0x158635,'requestId':_0xdcb505,'error':_0x25eb26[_0x1e1381(0x1a6)],'status':_0x25eb26[_0x1e1381(0x1c3)]});if(_0x158635<this[_0x1e1381(0x1b1)]){const _0x56f1e1=Math[_0x1e1381(0x1a3)](0x2,_0x158635)*0x3e8;this[_0x1e1381(0x19a)]['warn'](_0x1e1381(0x20e)+_0x56f1e1+'ms',{'attempt':_0x158635,'requestId':_0xdcb505}),await new Promise(_0x57c1b2=>setTimeout(_0x57c1b2,_0x56f1e1));}}}this['logger']['error'](_0x1e1381(0x203),{'requestId':_0xdcb505,'error':_0x256d0f[_0x1e1381(0x1a6)]});const _0x40187b=_0x256d0f['message']&&_0x256d0f['message']['includes']('No\x20API\x20key\x20configured');if(_0x40187b)throw new Error('API\x20Configuration\x20Error:\x20'+_0x256d0f[_0x1e1381(0x1a6)]);return{'choices':[{'message':{'content':_0x1e1381(0x1e6)+_0x256d0f[_0x1e1381(0x1a6)],'role':_0x1e1381(0x1ec)},'finish_reason':_0x1e1381(0x18d)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x15e009['model'],'id':_0x1e1381(0x1f1)+_0xdcb505,'error':_0x256d0f['message']};}async[a0_0x150019(0x1cd)](_0x3ce2b9,_0x93e30a,_0x27d485={}){const _0x36df8a=a0_0x150019,_0x38dacb='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0xa44334,_0x4e0c01=null,_0x44e7b0=null;this['logger']?.[_0x36df8a(0x1b3)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x36df8a(0x1b4)],'sessionId':_0x27d485[_0x36df8a(0x21f)],'hasSessionId':!!_0x27d485[_0x36df8a(0x21f)],'model':_0x3ce2b9[_0x36df8a(0x1dd)]});if(this['apiKeyManager']&&_0x27d485['sessionId']){const _0x4c41d2=this['apiKeyManager'][_0x36df8a(0x1c0)](_0x27d485['sessionId'],{'platformProvided':_0x27d485[_0x36df8a(0x1da)]||![],'vendor':this[_0x36df8a(0x204)](_0x3ce2b9[_0x36df8a(0x1dd)])});_0x4e0c01=_0x4c41d2[_0x36df8a(0x19c)],_0x44e7b0=_0x4c41d2['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x27d485[_0x36df8a(0x21f)],'hasLoxiaKey':!!_0x4e0c01,'hasVendorKey':!!_0x44e7b0});}!_0x4e0c01&&_0x27d485['apiKey']&&(_0x4e0c01=_0x27d485[_0x36df8a(0x199)]);!_0x4e0c01&&this[_0x36df8a(0x1ab)][_0x36df8a(0x199)]&&(_0x4e0c01=this[_0x36df8a(0x1ab)][_0x36df8a(0x199)]);if(!_0x4e0c01)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x3b149b={'prompt':_0x3ce2b9['prompt'],'model':_0x3ce2b9['model']||'azure-openai-dalle3','size':_0x3ce2b9['size'],'quality':_0x3ce2b9['quality'],'style':_0x3ce2b9[_0x36df8a(0x225)]||_0x36df8a(0x1be),'n':_0x3ce2b9['n']||0x1,'requestId':_0x93e30a};for(let _0x5de402=0x1;_0x5de402<=this['retryAttempts'];_0x5de402++){try{this[_0x36df8a(0x19a)]['info'](_0x36df8a(0x1ce),{'url':_0x38dacb,'model':_0x3ce2b9[_0x36df8a(0x1dd)],'requestId':_0x93e30a,'attempt':_0x5de402,'hasApiKey':!!_0x4e0c01});const _0x2b2bc9=await fetch(_0x38dacb,{'method':_0x36df8a(0x1c4),'headers':{'Content-Type':_0x36df8a(0x1e3),'Authorization':_0x36df8a(0x1bc)+_0x4e0c01,'X-Request-ID':_0x93e30a},'body':JSON['stringify'](_0x3b149b),'timeout':this[_0x36df8a(0x21d)]*0x2});if(!_0x2b2bc9['ok']){const _0x3d25bb=await _0x2b2bc9['text'](),_0x430e39=new Error('HTTP\x20'+_0x2b2bc9[_0x36df8a(0x1c3)]+':\x20'+_0x2b2bc9['statusText']+(_0x3d25bb?'\x20-\x20'+_0x3d25bb:''));_0x430e39['status']=_0x2b2bc9['status'];throw _0x430e39;}const _0x1ab511=await _0x2b2bc9['json']();return{'data':_0x1ab511['images']||[],'model':_0x1ab511['model']||_0x3ce2b9['model'],'created':_0x1ab511[_0x36df8a(0x197)]||Date[_0x36df8a(0x1b6)](),'usage':_0x1ab511['usage']};}catch(_0x3664a2){_0xa44334=_0x3664a2,this['logger'][_0x36df8a(0x213)](_0x36df8a(0x1d5),{'attempt':_0x5de402,'requestId':_0x93e30a,'error':_0x3664a2[_0x36df8a(0x1a6)],'status':_0x3664a2['status']});if(_0x5de402<this[_0x36df8a(0x1b1)]){const _0x2c1777=Math[_0x36df8a(0x1a3)](0x2,_0x5de402)*0x3e8;this[_0x36df8a(0x19a)]['warn'](_0x36df8a(0x20e)+_0x2c1777+'ms',{'attempt':_0x5de402,'requestId':_0x93e30a}),await new Promise(_0x2a44d8=>setTimeout(_0x2a44d8,_0x2c1777));}}}this['logger'][_0x36df8a(0x22c)]('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x93e30a,'error':_0xa44334[_0x36df8a(0x1a6)]});throw new Error('Image\x20generation\x20failed:\x20'+_0xa44334['message']);}async['_checkRateLimit'](_0xbcdb7f){await new Promise(_0x9671e9=>setTimeout(_0x9671e9,0x64));}async['_handleRateLimit'](_0x726a2f){const _0x1f4d84=a0_0x150019,_0x740181=0xea60;this['logger'][_0x1f4d84(0x1b3)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x740181+'ms',_0x726a2f),await new Promise(_0x171071=>setTimeout(_0x171071,_0x740181));}async[a0_0x150019(0x220)](_0xb796fc){this['_recordFailure']();const _0x4031ab=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x4031ab+'ms',_0xb796fc),await new Promise(_0x3a0db5=>setTimeout(_0x3a0db5,_0x4031ab));}['_isCircuitBreakerOpen'](){const _0x5595c8=a0_0x150019;if(!this[_0x5595c8(0x1b2)][_0x5595c8(0x1a9)])return![];const _0x54c014=Date[_0x5595c8(0x1b6)]()-this['circuitBreaker'][_0x5595c8(0x229)];if(_0x54c014>this[_0x5595c8(0x1b2)]['timeout'])return this['circuitBreaker'][_0x5595c8(0x1a9)]=![],this[_0x5595c8(0x1b2)][_0x5595c8(0x221)]=0x0,![];return!![];}['_recordFailure'](){const _0x34a3fd=a0_0x150019;this['circuitBreaker'][_0x34a3fd(0x221)]++,this[_0x34a3fd(0x1b2)][_0x34a3fd(0x229)]=Date[_0x34a3fd(0x1b6)](),this[_0x34a3fd(0x1b2)]['failures']>=this[_0x34a3fd(0x1b2)][_0x34a3fd(0x1a8)]&&(this['circuitBreaker']['isOpen']=!![],this[_0x34a3fd(0x19a)]['warn'](_0x34a3fd(0x216)));}['_resetCircuitBreaker'](){const _0x26220=a0_0x150019;this[_0x26220(0x1b2)]['failures']>0x0&&(this[_0x26220(0x1b2)]['failures']=0x0,this['circuitBreaker'][_0x26220(0x1a9)]=![],this[_0x26220(0x19a)][_0x26220(0x1b3)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x51521f){const _0xee6e66=a0_0x150019;if(!_0x51521f)return null;const _0x13f499=_0x51521f['toLowerCase']();if(_0x13f499[_0xee6e66(0x223)](_0xee6e66(0x1d2))||_0x13f499['includes']('claude'))return'anthropic';else{if(_0x13f499['includes'](_0xee6e66(0x222))||_0x13f499[_0xee6e66(0x223)]('gpt'))return _0xee6e66(0x222);else{if(_0x13f499[_0xee6e66(0x223)]('deepseek'))return _0xee6e66(0x18b);else{if(_0x13f499[_0xee6e66(0x223)]('phi'))return _0xee6e66(0x1e1);}}}return null;}}class ConversationManager{constructor(_0x54e079,_0x4665ea){const _0x26f1bb=a0_0x150019;this[_0x26f1bb(0x1fc)]=_0x54e079,this['logger']=_0x4665ea,this['conversations']=new Map();}async[a0_0x150019(0x1d1)](_0x337477){const _0x378ce6=a0_0x150019;return{'messages':[],'model':_0x337477,'lastUpdated':new Date()[_0x378ce6(0x232)]()};}}export default AIService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a0_0x3b83(){const _0x307628=['q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','DMvUzg9Y','mtG1nde1Au1IAwnJ','z2v0','Aw5MBW','C2vZC2LVBKTLExm','mJmZndy0n1HpvwHKEG','z2v0u2vZC2LVBKTLExm','zNjVBq','mMH5qNfyza','z2v0s2v5C0zVCLjLCxvLC3q','zgvSzxrL','mtuXmJe4nhrVtM5PzG','C2L6zq','z2XVyMfSs2v5CW','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','nZq4mZCYAuzuD09S','Bg9Nz2vY','CgXHDgzVCM1qCM92AwrLza','nKjNAuvSyW','Bg94AwfbCgLlzxK','DxbKyxrLzef0','DMvUzg9YqxbPs2v5','ndK1otKZmgrLte1cqq','ndm3nNLds0Thua','Dg9ju09tDhjPBMC','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','C2v0r2XVyMfSs2v5CW','odKXmdy2Eu5cvfjX','oxHUvKH1vG','DMvUzg9Ys2v5CW'];a0_0x3b83=function(){return _0x307628;};return a0_0x3b83();}function a0_0x2834(_0x357e6f,_0x43cea9){_0x357e6f=_0x357e6f-0x13b;const _0x3b8346=a0_0x3b83();let _0x2834d3=_0x3b8346[_0x357e6f];if(a0_0x2834['RpOyaS']===undefined){var _0xf445eb=function(_0x2f01d7){const _0x1361cb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x127852='',_0x5bd500='';for(let _0x401ded=0x0,_0x586bfe,_0x27b6a5,_0x4e19b7=0x0;_0x27b6a5=_0x2f01d7['charAt'](_0x4e19b7++);~_0x27b6a5&&(_0x586bfe=_0x401ded%0x4?_0x586bfe*0x40+_0x27b6a5:_0x27b6a5,_0x401ded++%0x4)?_0x127852+=String['fromCharCode'](0xff&_0x586bfe>>(-0x2*_0x401ded&0x6)):0x0){_0x27b6a5=_0x1361cb['indexOf'](_0x27b6a5);}for(let _0x817c41=0x0,_0x124588=_0x127852['length'];_0x817c41<_0x124588;_0x817c41++){_0x5bd500+='%'+('00'+_0x127852['charCodeAt'](_0x817c41)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5bd500);};a0_0x2834['joDVaY']=_0xf445eb,a0_0x2834['nTcoAk']={},a0_0x2834['RpOyaS']=!![];}const _0x2a9617=_0x3b8346[0x0],_0x1efa85=_0x357e6f+_0x2a9617,_0x576e01=a0_0x2834['nTcoAk'][_0x1efa85];return!_0x576e01?(_0x2834d3=a0_0x2834['joDVaY'](_0x2834d3),a0_0x2834['nTcoAk'][_0x1efa85]=_0x2834d3):_0x2834d3=_0x576e01,_0x2834d3;}const a0_0x569524=a0_0x2834;(function(_0x5cec48,_0x5e1f1a){const _0x476532=a0_0x2834,_0xf14ed4=_0x5cec48();while(!![]){try{const _0xcc9a26=-parseInt(_0x476532(0x140))/0x1*(parseInt(_0x476532(0x150))/0x2)+parseInt(_0x476532(0x144))/0x3+-parseInt(_0x476532(0x157))/0x4+parseInt(_0x476532(0x149))/0x5+parseInt(_0x476532(0x13b))/0x6*(parseInt(_0x476532(0x14d))/0x7)+parseInt(_0x476532(0x153))/0x8+parseInt(_0x476532(0x145))/0x9*(-parseInt(_0x476532(0x13f))/0xa);if(_0xcc9a26===_0x5e1f1a)break;else _0xf14ed4['push'](_0xf14ed4['shift']());}catch(_0x1cd194){_0xf14ed4['push'](_0xf14ed4['shift']());}}}(a0_0x3b83,0x294e3));class ApiKeyManager{constructor(_0x127852){const _0xda03bb=a0_0x2834;this[_0xda03bb(0x158)]=_0x127852,this['sessionKeys']=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x5bd500,_0x401ded){const _0xd6779c=a0_0x2834;if(!_0x5bd500)throw new Error('Session\x20ID\x20is\x20required');this[_0xd6779c(0x14c)]['set'](_0x5bd500,{'loxiaApiKey':_0x401ded[_0xd6779c(0x13c)]||null,'vendorKeys':_0x401ded[_0xd6779c(0x146)]||{},'updatedAt':new Date()['toISOString']()}),this['logger']?.[_0xd6779c(0x14b)]('API\x20keys\x20updated\x20for\x20session',{'sessionId':_0x5bd500,'hasLoxiaKey':!!_0x401ded[_0xd6779c(0x13c)],'vendorKeys':Object['keys'](_0x401ded['vendorKeys']||{}),'timestamp':new Date()[_0xd6779c(0x141)]()});}['getSessionKeys'](_0x586bfe){const _0x25d2ea=a0_0x2834;if(!_0x586bfe)return this[_0x25d2ea(0x155)];const _0x27b6a5=this['sessionKeys'][_0x25d2ea(0x14a)](_0x586bfe);if(_0x27b6a5)return _0x27b6a5;return this['globalKeys'];}[a0_0x569524(0x151)](_0x4e19b7,_0x817c41={}){const _0x13288e=a0_0x569524,_0x124588=this[_0x13288e(0x14e)](_0x4e19b7),_0x4e54f7={'loxiaApiKey':_0x124588[_0x13288e(0x13c)],'vendorApiKey':null};return!_0x817c41[_0x13288e(0x159)]&&_0x817c41['vendor']&&_0x124588['vendorKeys']&&(_0x4e54f7[_0x13288e(0x13e)]=_0x124588[_0x13288e(0x146)][_0x817c41[_0x13288e(0x148)]]),_0x4e54f7;}['removeSessionKeys'](_0x4049f7){const _0x312ff6=a0_0x569524;if(this[_0x312ff6(0x14c)][_0x312ff6(0x152)](_0x4049f7))return this['logger']?.[_0x312ff6(0x14b)]('API\x20keys\x20removed\x20for\x20session',{'sessionId':_0x4049f7}),!![];return![];}[a0_0x569524(0x143)](_0x579480){const _0x59356d=a0_0x569524;this[_0x59356d(0x155)]={'loxiaApiKey':_0x579480['loxiaApiKey']||this['globalKeys']['loxiaApiKey'],'vendorKeys':{...this['globalKeys'][_0x59356d(0x146)],..._0x579480[_0x59356d(0x146)]||{}}},this['logger']?.[_0x59356d(0x14b)](_0x59356d(0x142),{'hasLoxiaKey':!!this[_0x59356d(0x155)]['loxiaApiKey'],'vendorKeys':Object['keys'](this[_0x59356d(0x155)][_0x59356d(0x146)])});}['getActiveSessions'](){const _0x1ace71=a0_0x569524;return Array[_0x1ace71(0x14f)](this[_0x1ace71(0x14c)]['entries']())['map'](([_0x1e1c8b,_0x5c6dd0])=>({'sessionId':_0x1e1c8b,'hasLoxiaKey':!!_0x5c6dd0['loxiaApiKey'],'vendorKeys':Object['keys'](_0x5c6dd0[_0x1ace71(0x146)]||{}),'updatedAt':_0x5c6dd0[_0x1ace71(0x13d)]}));}[a0_0x569524(0x156)](_0x5ddca6=0x18*0x3c*0x3c*0x3e8){const _0x4220b9=a0_0x569524,_0x2dfda9=Date['now'](),_0x536029=[];for(const [_0x9d12c8,_0x2712ad]of this['sessionKeys']['entries']()){const _0x2bd975=_0x2dfda9-new Date(_0x2712ad['updatedAt'])['getTime']();_0x2bd975>_0x5ddca6&&_0x536029['push'](_0x9d12c8);}return _0x536029['forEach'](_0x17c7b7=>{const _0x5e90e9=a0_0x2834;this[_0x5e90e9(0x14c)][_0x5e90e9(0x152)](_0x17c7b7);}),_0x536029['length']>0x0&&this[_0x4220b9(0x158)]?.[_0x4220b9(0x14b)](_0x4220b9(0x147),{'expiredSessions':_0x536029['length'],'remainingSessions':this[_0x4220b9(0x14c)][_0x4220b9(0x154)]}),_0x536029['length'];}}export default ApiKeyManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a0_0x24ae0e=a0_0x3c07;(function(_0x246eb6,_0x4e6a4b){const _0x1e9a2f=a0_0x3c07,_0x336e47=_0x246eb6();while(!![]){try{const _0x54742c=parseInt(_0x1e9a2f(0x16b))/0x1*(-parseInt(_0x1e9a2f(0x176))/0x2)+parseInt(_0x1e9a2f(0x16c))/0x3*(parseInt(_0x1e9a2f(0x16a))/0x4)+parseInt(_0x1e9a2f(0x160))/0x5*(parseInt(_0x1e9a2f(0x14b))/0x6)+-parseInt(_0x1e9a2f(0x15d))/0x7+-parseInt(_0x1e9a2f(0x151))/0x8+-parseInt(_0x1e9a2f(0x154))/0x9+parseInt(_0x1e9a2f(0x16d))/0xa;if(_0x54742c===_0x4e6a4b)break;else _0x336e47['push'](_0x336e47['shift']());}catch(_0x2a61e2){_0x336e47['push'](_0x336e47['shift']());}}}(a0_0x67e8,0x975de));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x2f245c,_0x43c7ce){const _0x59e066=a0_0x3c07;this['config']=_0x2f245c,this['logger']=_0x43c7ce,this[_0x59e066(0x168)]=null,this[_0x59e066(0x169)]=null,this[_0x59e066(0x158)]=![],this['azureBackendUrl']='https://autopilot-api.azurewebsites.net',this[_0x59e066(0x142)]=MODEL_ROUTER_CONFIG[_0x59e066(0x166)];}async['initialize'](){const _0x22c382=a0_0x3c07;try{await this[_0x22c382(0x171)](),this[_0x22c382(0x163)](),this['logger']['info']('Benchmark\x20service\x20initialized');}catch(_0x37e541){this[_0x22c382(0x14e)]['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x37e541['message']}),this[_0x22c382(0x168)]=null;}}[a0_0x24ae0e(0x146)](){const _0x2caaf7=a0_0x24ae0e;if(!this[_0x2caaf7(0x168)])return this['logger'][_0x2caaf7(0x15c)]('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this[_0x2caaf7(0x168)];}async['loadBenchmarks'](){const _0x1a7639=a0_0x24ae0e;if(this['isLoading']){this[_0x1a7639(0x14e)][_0x1a7639(0x153)]('Benchmark\x20loading\x20already\x20in\x20progress');return;}this['isLoading']=!![];try{const _0x3718c6=await this['_fetchFromAzureBackend']();if(_0x3718c6)this['benchmarks']=_0x3718c6,this['lastUpdated']=new Date(),this[_0x1a7639(0x14e)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x3718c6['models']?.[_0x1a7639(0x159)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x5df557){this[_0x1a7639(0x14e)]['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x5df557[_0x1a7639(0x167)],'endpoint':url}),!this['benchmarks']&&(this['benchmarks']=null);}finally{this[_0x1a7639(0x158)]=![];}}['getBenchmarkTable'](){const _0x41e97c=a0_0x24ae0e,_0x2bb1a0=this[_0x41e97c(0x146)]();return{'lastUpdated':this[_0x41e97c(0x169)]?.[_0x41e97c(0x162)]()||'unknown','models':_0x2bb1a0['models']||[],'tasks':_0x2bb1a0[_0x41e97c(0x148)]||{},'summary':this[_0x41e97c(0x177)](_0x2bb1a0)};}['needsRefresh'](){const _0x7eb59e=a0_0x24ae0e;if(!this['lastUpdated'])return!![];const _0x19a957=Date[_0x7eb59e(0x144)]()-this[_0x7eb59e(0x169)][_0x7eb59e(0x155)]();return _0x19a957>this[_0x7eb59e(0x142)];}async[a0_0x24ae0e(0x14f)](){const _0x3fca96=a0_0x24ae0e,_0x4ace61=this[_0x3fca96(0x147)]+_0x3fca96(0x15a);let _0x5c1b83=null;this[_0x3fca96(0x150)][_0x3fca96(0x14c)]&&(_0x5c1b83=this[_0x3fca96(0x150)][_0x3fca96(0x14c)]);const _0x507f5e={'method':'GET','headers':{'Content-Type':'application/json',..._0x5c1b83&&{'Authorization':'Bearer\x20'+_0x5c1b83}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x4ace61});const _0x35916e=await fetch(_0x4ace61,_0x507f5e);if(!_0x35916e['ok'])throw new Error(_0x3fca96(0x170)+_0x35916e['status']+':\x20'+_0x35916e[_0x3fca96(0x14a)]);const _0x3397d2=await _0x35916e[_0x3fca96(0x15b)]();return _0x3397d2;}[a0_0x24ae0e(0x177)](_0x2a51ff){const _0x59ffce=a0_0x24ae0e,_0xfade9d=_0x2a51ff[_0x59ffce(0x15f)]||[];return{'totalModels':_0xfade9d[_0x59ffce(0x159)],'taskCategories':Object['keys'](_0x2a51ff[_0x59ffce(0x148)]||{}),'bestForCoding':this[_0x59ffce(0x174)](_0xfade9d,_0x59ffce(0x175)),'bestForAnalysis':this['_getBestModelForTask'](_0xfade9d,_0x59ffce(0x165)),'bestForQuickTasks':this['_getBestModelForTask'](_0xfade9d,_0x59ffce(0x141)),'bestForCreative':this[_0x59ffce(0x174)](_0xfade9d,_0x59ffce(0x161)),'fastestModel':this[_0x59ffce(0x157)](_0xfade9d),'mostCostEfficient':this['_getMostCostEfficient'](_0xfade9d)};}['_getBestModelForTask'](_0x3cde1f,_0x2992dc){const _0x14f44b=a0_0x24ae0e;return _0x3cde1f[_0x14f44b(0x14d)](_0x568ac2=>_0x568ac2['tasks']&&_0x568ac2['tasks'][_0x2992dc])['sort']((_0x5a3b5e,_0x4fa569)=>(_0x4fa569[_0x14f44b(0x148)][_0x2992dc][_0x14f44b(0x143)]||0x0)-(_0x5a3b5e['tasks'][_0x2992dc]['score']||0x0))[0x0]?.[_0x14f44b(0x145)]||_0x14f44b(0x152);}['_getFastestModel'](_0x138801){const _0x154a76=a0_0x24ae0e,_0x27d6fa={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x138801['sort']((_0x36af2d,_0x22e3fc)=>{const _0x1314a2=a0_0x3c07,_0x4589a3=Math[_0x1314a2(0x15e)](...Object['values'](_0x36af2d[_0x1314a2(0x148)]||{})[_0x1314a2(0x16f)](_0x2eceec=>_0x27d6fa[_0x2eceec[_0x1314a2(0x149)]]||0x0)),_0x399339=Math[_0x1314a2(0x15e)](...Object[_0x1314a2(0x164)](_0x22e3fc[_0x1314a2(0x148)]||{})[_0x1314a2(0x16f)](_0x24d230=>_0x27d6fa[_0x24d230['speed']]||0x0));return _0x399339-_0x4589a3;})[0x0]?.[_0x154a76(0x145)]||_0x154a76(0x152);}[a0_0x24ae0e(0x172)](_0x57943e){const _0x2b1304=a0_0x24ae0e,_0x22655a={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x57943e['sort']((_0x38936f,_0x115e31)=>{const _0x3520aa=a0_0x3c07,_0xb12857=Math[_0x3520aa(0x15e)](...Object[_0x3520aa(0x164)](_0x38936f[_0x3520aa(0x148)]||{})['map'](_0x1e54eb=>_0x22655a[_0x1e54eb[_0x3520aa(0x173)]]||0x0)),_0x53f5b1=Math['max'](...Object['values'](_0x115e31[_0x3520aa(0x148)]||{})['map'](_0xe37166=>_0x22655a[_0xe37166['cost']]||0x0));return _0x53f5b1-_0xb12857;})[0x0]?.['name']||_0x2b1304(0x152);}['_scheduleRefresh'](){setInterval(async()=>{const _0x338ab5=a0_0x3c07;this['needsRefresh']()&&(this['logger'][_0x338ab5(0x153)]('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this['refreshInterval']);}async[a0_0x24ae0e(0x156)](){const _0x10f18a=a0_0x24ae0e;this[_0x10f18a(0x14e)]['info'](_0x10f18a(0x16e)),await this[_0x10f18a(0x171)]();}['getStatus'](){const _0x4c073d=a0_0x24ae0e;return{'initialized':!!this['benchmarks'],'lastUpdated':this['lastUpdated']?.[_0x4c073d(0x162)]()||null,'source':this[_0x4c073d(0x168)]?.['source']||_0x4c073d(0x152),'modelCount':this[_0x4c073d(0x168)]?.[_0x4c073d(0x15f)]?.['length']||0x0,'isLoading':this[_0x4c073d(0x158)],'needsRefresh':this['needsRefresh']()};}}function a0_0x3c07(_0xfd4f6a,_0x54bffe){_0xfd4f6a=_0xfd4f6a-0x141;const _0x67e8e4=a0_0x67e8();let _0x3c0741=_0x67e8e4[_0xfd4f6a];if(a0_0x3c07['jvkLXK']===undefined){var _0x5122e5=function(_0x1ccb0d){const _0x20d898='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f245c='',_0x43c7ce='';for(let _0x37e541=0x0,_0x3718c6,_0x5df557,_0x2bb1a0=0x0;_0x5df557=_0x1ccb0d['charAt'](_0x2bb1a0++);~_0x5df557&&(_0x3718c6=_0x37e541%0x4?_0x3718c6*0x40+_0x5df557:_0x5df557,_0x37e541++%0x4)?_0x2f245c+=String['fromCharCode'](0xff&_0x3718c6>>(-0x2*_0x37e541&0x6)):0x0){_0x5df557=_0x20d898['indexOf'](_0x5df557);}for(let _0x19a957=0x0,_0x4ace61=_0x2f245c['length'];_0x19a957<_0x4ace61;_0x19a957++){_0x43c7ce+='%'+('00'+_0x2f245c['charCodeAt'](_0x19a957)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x43c7ce);};a0_0x3c07['cQFRnH']=_0x5122e5,a0_0x3c07['aIigre']={},a0_0x3c07['jvkLXK']=!![];}const _0x2b1127=_0x67e8e4[0x0],_0x110cee=_0xfd4f6a+_0x2b1127,_0x2b3d68=a0_0x3c07['aIigre'][_0x110cee];return!_0x2b3d68?(_0x3c0741=a0_0x3c07['cQFRnH'](_0x3c0741),a0_0x3c07['aIigre'][_0x110cee]=_0x3c0741):_0x3c0741=_0x2b3d68,_0x3c0741;}function a0_0x67e8(){const _0x1652c3=['yw5HBhLZAxm','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','BwvZC2fNzq','yMvUy2HTyxjRCW','BgfZDfvWzgf0zwq','nfjeEw9QEa','mti2mtq1reT5D29v','mtK0mtaWnKjcAgnWvG','mtCWmZi0mJbMzMPdyuq','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','BwfW','sfruuca','Bg9HzejLBMnOBwfYA3m','x2DLDe1VC3rdB3n0rwzMAwnPzw50','y29ZDa','x2DLDejLC3rnB2rLBezVCLrHC2S','y29KAw5N','mKf6AhDyCW','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','CxvPy2STDgfZA3m','CMvMCMvZAeLUDgvYDMfS','C2nVCMu','BM93','BMfTzq','z2v0qMvUy2HTyxjRCW','yxP1CMvcywnRzw5KvxjS','DgfZA3m','C3bLzwq','C3rHDhvZvgv4Da','ndiZmta4nKvyAgnQzq','yxbPs2v5','zMLSDgvY','Bg9Nz2vY','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','y29UzMLN','mJq5mdKWnennDMjfrG','Dw5RBM93BG','zgvIDwC','mta3nJK3nJbrwK9lvM8','z2v0vgLTzq','zM9Yy2vszwzYzxnO','x2DLDezHC3rLC3rnB2rLBa','AxnmB2fKAw5N','BgvUz3rO','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','ANnVBG','zxjYB3i','ntyWodK1m3HAt3nwwq','Bwf4','Bw9KzwXZ','nvHktMTmwq','y3jLyxrPDMu','Dg9ju09tDhjPBMC','x3nJAgvKDwXLuMvMCMvZAa','DMfSDwvZ'];a0_0x67e8=function(){return _0x1652c3;};return a0_0x67e8();}export default BenchmarkService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x5f3f6c=a0_0x1ed1;(function(_0x404b13,_0x3b4d78){const _0x17193e=a0_0x1ed1,_0x2e3076=_0x404b13();while(!![]){try{const _0x111ab2=-parseInt(_0x17193e(0xb8))/0x1+-parseInt(_0x17193e(0xc7))/0x2*(-parseInt(_0x17193e(0xba))/0x3)+parseInt(_0x17193e(0xa7))/0x4+parseInt(_0x17193e(0xae))/0x5*(parseInt(_0x17193e(0x86))/0x6)+parseInt(_0x17193e(0xcb))/0x7+parseInt(_0x17193e(0xbf))/0x8+-parseInt(_0x17193e(0xc0))/0x9*(parseInt(_0x17193e(0xc9))/0xa);if(_0x111ab2===_0x3b4d78)break;else _0x2e3076['push'](_0x2e3076['shift']());}catch(_0x14de6b){_0x2e3076['push'](_0x2e3076['shift']());}}}(a0_0x472e,0xc2a4e));function a0_0x1ed1(_0x455a44,_0x1e7e6c){_0x455a44=_0x455a44-0x81;const _0x472ef4=a0_0x472e();let _0x1ed12b=_0x472ef4[_0x455a44];if(a0_0x1ed1['PsDwVK']===undefined){var _0x2b22a5=function(_0x15fe51){const _0xfda8db='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1a8954='',_0x5b708a='';for(let _0x26be1a=0x0,_0x303187,_0x147bdc,_0x394f4a=0x0;_0x147bdc=_0x15fe51['charAt'](_0x394f4a++);~_0x147bdc&&(_0x303187=_0x26be1a%0x4?_0x303187*0x40+_0x147bdc:_0x147bdc,_0x26be1a++%0x4)?_0x1a8954+=String['fromCharCode'](0xff&_0x303187>>(-0x2*_0x26be1a&0x6)):0x0){_0x147bdc=_0xfda8db['indexOf'](_0x147bdc);}for(let _0x2c994f=0x0,_0x2a6206=_0x1a8954['length'];_0x2c994f<_0x2a6206;_0x2c994f++){_0x5b708a+='%'+('00'+_0x1a8954['charCodeAt'](_0x2c994f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5b708a);};a0_0x1ed1['xGGihe']=_0x2b22a5,a0_0x1ed1['zwqTBM']={},a0_0x1ed1['PsDwVK']=!![];}const _0x26790a=_0x472ef4[0x0],_0x3a0c01=_0x455a44+_0x26790a,_0x4670a2=a0_0x1ed1['zwqTBM'][_0x3a0c01];return!_0x4670a2?(_0x1ed12b=a0_0x1ed1['xGGihe'](_0x1ed12b),a0_0x1ed1['zwqTBM'][_0x3a0c01]=_0x1ed12b):_0x1ed12b=_0x4670a2,_0x1ed12b;}import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x472e(){const _0x4fe1b5=['Bw9KzwXjza','Aw5PDgLHBgL6zvvZywDLrw50CNK','y2HLy2TuAhjLC2HVBgq','ywDLBNrjza','Aw5MBW','z2v0rgf5','ywXLCNrZ','z2v0rgf5s2v5','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','BgfZDefSzxj0vgLTzxm','Dw5ZAgLMDa','zxHWB3j0vxnHz2veyxrH','y29ZDa','zw50CMLLCW','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','CMvXDwvZDhm','BwfW','C2v0','y3jLyxrLrw1WDhLvC2fNzq','ANnVBG','nti5ote2ng9tzePrBa','Dg9WqwDLBNrZ','D2vLA2X5','Dg9Rzw5Z','yNLnB2rLBa','Dg9Rzw5ZqNLeyxK','D2fYBG','mtbNBLH6wfq','C2XPy2u','z2v0rNvSBfLLyxi','yNLbz2vUDa','z2v0uMvTywLUAw5NqNvKz2v0','sw52ywXPzcbWzxjPB2q6ia','z2v0','Dg90ywW','DxnHz2u','zxjYB3i','mtm0otC5mxvYEKr0tW','Dg9tDhjPBMC','m2DQCfnozW','AgfZ','CgfKu3rHCNq','z2v0tw9UDgG','Dw5KzwzPBMvK','mZqWnZyYnfH5rwfhyG','ouvlvwvZsG','vxnHz2uGzgf0ysbZyxzLza','zM9YrwfJAa','zgfPBhK','zgfPBhLbDMvYywDLCW','Bw9UDgHSEq','z2v0vxnHz2u','mtm2ntiWmeTsverHqq','y2HLy2TuAhjLC2HVBgrbBgvYDhm','mtC2nZm4otbsu3D5s3e','DxbKyxrLvxnHz2vfBNrYEq','mta2nJGWmengA3fPsG','CM91BMq','C2v0DxbqzxjPB2rPy1nHDMu','zw1PDa','yNvKz2v0qwXLCNq','qNvKz2v0igXPBwL0CYb1CgrHDgvK','DgHYzxnOB2XKCW','Dg90ywXFDg9Rzw5Z','Bg9HzfvZywDLrgf0yq','C2v0rgf0zq','z2v0v2vLA0TLEq','y29UzMLN','ChjVBxb0x3rVA2vUCW','ChvZAa','Dg9ju09tDhjPBMC','y29UDMvYDfrVq1nw','zgvIDwC','mZK4nJa5nfnQCuXyCG','Bg9Nz2vY','refjtfK','C2vUzej1zgDLDefSzxj0','AM9PBG','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','C29YDa','yNvKz2v0CW','C2f2zvvZywDLrgf0yq','qwDLBNq','BwvZC2fNzq','z2v0tw9KzwXvC2fNzq','rgfPBhK'];a0_0x472e=function(){return _0x4fe1b5;};return a0_0x472e();}export class BudgetService{constructor(_0x1a8954,_0x5b708a){const _0x152679=a0_0x1ed1;this[_0x152679(0xd6)]=_0x1a8954||{},this['logger']=_0x5b708a,this[_0x152679(0xb6)]={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x152679(0x88)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS['MONTHLY']},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x152679(0xcd)]();}['trackUsage'](_0x26be1a,_0x303187,_0x147bdc){const _0x2e7ae8=a0_0x1ed1;try{const _0x394f4a=this['calculateCost'](_0x303187,_0x147bdc),_0x2c994f=new Date(),_0x2a6206=this[_0x2e7ae8(0x9a)](_0x2c994f),_0x3c75da=this['getWeekKey'](_0x2c994f),_0x2a7577=this['getMonthKey'](_0x2c994f);this[_0x2e7ae8(0x94)](this[_0x2e7ae8(0xb6)]['daily'],_0x2a6206),this[_0x2e7ae8(0x94)](this['usage']['weekly'],_0x3c75da),this['initializeUsageEntry'](this[_0x2e7ae8(0xb6)][_0x2e7ae8(0xc5)],_0x2a7577);const _0x2a509a={'agentId':_0x26be1a,'modelId':_0x303187,'tokens':_0x147bdc[_0x2e7ae8(0xd2)],'cost':_0x394f4a,'timestamp':_0x2c994f[_0x2e7ae8(0x83)]()};return this[_0x2e7ae8(0xca)](this['usage']['daily']['get'](_0x2a6206),_0x2a509a),this['updateUsageEntry'](this['usage'][_0x2e7ae8(0xa9)]['get'](_0x3c75da),_0x2a509a),this[_0x2e7ae8(0xca)](this['usage']['monthly']['get'](_0x2a7577),_0x2a509a),this['usage']['total'][_0x2e7ae8(0xaa)]+=_0x147bdc['total_tokens'],this[_0x2e7ae8(0xb6)][_0x2e7ae8(0xb5)]['cost']+=_0x394f4a,this[_0x2e7ae8(0xb6)][_0x2e7ae8(0xb5)]['requests']+=0x1,this['checkBudgetLimits'](_0x2a6206,_0x3c75da,_0x2a7577),this['logger'][_0x2e7ae8(0x97)]('Usage\x20tracked',{'agentId':_0x26be1a,'modelId':_0x303187,'tokens':_0x147bdc[_0x2e7ae8(0xd2)],'cost':_0x394f4a,'totalCost':this[_0x2e7ae8(0xb6)]['total'][_0x2e7ae8(0x9f)]}),{'cost':_0x394f4a,'totalCost':this['usage'][_0x2e7ae8(0xb5)][_0x2e7ae8(0x9f)],'totalTokens':this[_0x2e7ae8(0xb6)][_0x2e7ae8(0xb5)][_0x2e7ae8(0xaa)],'dailyUsage':this['usage'][_0x2e7ae8(0xc3)]['get'](_0x2a6206),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x28cbff){this['logger'][_0x2e7ae8(0xb7)]('Failed\x20to\x20track\x20usage',{'error':_0x28cbff[_0x2e7ae8(0x90)],'agentId':_0x26be1a,'modelId':_0x303187});throw _0x28cbff;}}['calculateCost'](_0x28139a,_0x140153){const _0x148edd=a0_0x1ed1,_0x15f8b8=COST_PER_TOKEN[_0x28139a];if(!_0x15f8b8)return this['logger'][_0x148edd(0xad)](_0x148edd(0x8b),{'modelId':_0x28139a}),0x0;const _0x47a450=(_0x140153[_0x148edd(0x81)]||0x0)*_0x15f8b8['input'],_0x4131ba=(_0x140153['completion_tokens']||0x0)*_0x15f8b8['output'];return _0x47a450+_0x4131ba;}[a0_0x5f3f6c(0xc6)](_0x2fb351=a0_0x5f3f6c(0xc3),_0x2511be=new Date()){const _0x86d65=a0_0x5f3f6c;switch(_0x2fb351){case _0x86d65(0xc3):return this[_0x86d65(0xb6)][_0x86d65(0xc3)][_0x86d65(0xb4)](this[_0x86d65(0x9a)](_0x2511be))||this['createEmptyUsage']();case _0x86d65(0xa9):return this['usage'][_0x86d65(0xa9)]['get'](this['getWeekKey'](_0x2511be))||this['createEmptyUsage']();case _0x86d65(0xc5):return this[_0x86d65(0xb6)]['monthly'][_0x86d65(0xb4)](this['getMonthKey'](_0x2511be))||this['createEmptyUsage']();case'total':return{...this[_0x86d65(0xb6)]['total']};default:throw new Error(_0x86d65(0xb3)+_0x2fb351);}}['getAgentUsage'](_0x594aa8,_0x237685=a0_0x5f3f6c(0xc3)){const _0x4a7510=this['getUsage'](_0x237685);return _0x4a7510['byAgent']?.[_0x594aa8]||this['createEmptyUsage']();}[a0_0x5f3f6c(0x91)](_0x1581b5,_0x679edb='daily'){const _0x5a787d=a0_0x5f3f6c,_0x508d85=this['getUsage'](_0x679edb);return _0x508d85[_0x5a787d(0xab)]?.[_0x1581b5]||this[_0x5a787d(0xa5)]();}['setBudgets'](_0x20a1ea){const _0x5885bd=a0_0x5f3f6c;if(_0x20a1ea['daily']!==undefined)this['budgets'][_0x5885bd(0xc3)]=_0x20a1ea['daily'];if(_0x20a1ea[_0x5885bd(0xa9)]!==undefined)this[_0x5885bd(0x8d)]['weekly']=_0x20a1ea[_0x5885bd(0xa9)];if(_0x20a1ea['monthly']!==undefined)this[_0x5885bd(0x8d)]['monthly']=_0x20a1ea[_0x5885bd(0xc5)];this['logger']['info'](_0x5885bd(0xd0),this['budgets']),this[_0x5885bd(0x8e)]();}[a0_0x5f3f6c(0xb2)](){const _0x3202af=a0_0x5f3f6c,_0x30a35f=new Date(),_0x4550bd=this[_0x3202af(0xc6)]('daily',_0x30a35f),_0x4539aa=this['getUsage']('weekly',_0x30a35f),_0x3e48d4=this['getUsage']('monthly',_0x30a35f);return{'daily':Math['max'](0x0,this[_0x3202af(0x8d)][_0x3202af(0xc3)]-_0x4550bd['cost']),'weekly':Math['max'](0x0,this[_0x3202af(0x8d)]['weekly']-_0x4539aa[_0x3202af(0x9f)]),'monthly':Math['max'](0x0,this['budgets'][_0x3202af(0xc5)]-_0x3e48d4[_0x3202af(0x9f)])};}['isWithinBudget'](_0x234563=a0_0x5f3f6c(0xc3)){const _0xdef48c=a0_0x5f3f6c,_0x231935=this[_0xdef48c(0xc6)](_0x234563),_0x5d2b9f=this['budgets'][_0x234563];return _0x231935['cost']<=_0x5d2b9f;}['getUsageTrends'](_0x58be3d=0x1e){const _0x45e734=a0_0x5f3f6c,_0x251d87={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x324f3f=new Date();let _0x45455e=0x0,_0x469557=0x0,_0x51ab46=0x0;const _0x36d105=new Map(),_0x49a659=new Map();for(let _0x2a2953=0x0;_0x2a2953<_0x58be3d;_0x2a2953++){const _0x541ca1=new Date(_0x324f3f);_0x541ca1[_0x45e734(0xd4)](_0x541ca1['getDate']()-_0x2a2953);const _0x2eb227=this[_0x45e734(0x9a)](_0x541ca1),_0x4dc1a1=this['usage'][_0x45e734(0xc3)]['get'](_0x2eb227);_0x4dc1a1?(_0x45455e+=_0x4dc1a1['cost'],_0x469557+=_0x4dc1a1[_0x45e734(0xaa)],_0x51ab46+=_0x4dc1a1[_0x45e734(0xa2)],_0x251d87['costByDay'][_0x45e734(0x9d)]({'date':_0x2eb227,'cost':_0x4dc1a1['cost']}),_0x251d87[_0x45e734(0xac)]['unshift']({'date':_0x2eb227,'tokens':_0x4dc1a1[_0x45e734(0xaa)]}),Object['entries'](_0x4dc1a1[_0x45e734(0xb1)]||{})[_0x45e734(0xc2)](([_0x2c9280,_0x2945bb])=>{const _0xc8c762=_0x45e734;!_0x36d105['has'](_0x2c9280)&&_0x36d105[_0xc8c762(0xa4)](_0x2c9280,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x576243=_0x36d105[_0xc8c762(0xb4)](_0x2c9280);_0x576243[_0xc8c762(0x9f)]+=_0x2945bb['cost'],_0x576243[_0xc8c762(0xaa)]+=_0x2945bb[_0xc8c762(0xaa)],_0x576243['requests']+=_0x2945bb['requests'];}),Object['entries'](_0x4dc1a1['byModel']||{})[_0x45e734(0xc2)](([_0x5631bb,_0x5c70dd])=>{const _0xcbe7eb=_0x45e734;!_0x49a659[_0xcbe7eb(0xbb)](_0x5631bb)&&_0x49a659[_0xcbe7eb(0xa4)](_0x5631bb,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x3ebbf3=_0x49a659['get'](_0x5631bb);_0x3ebbf3['cost']+=_0x5c70dd[_0xcbe7eb(0x9f)],_0x3ebbf3['tokens']+=_0x5c70dd['tokens'],_0x3ebbf3[_0xcbe7eb(0xa2)]+=_0x5c70dd['requests'];})):(_0x251d87['costByDay']['unshift']({'date':_0x2eb227,'cost':0x0}),_0x251d87[_0x45e734(0xac)][_0x45e734(0x9d)]({'date':_0x2eb227,'tokens':0x0}));}return _0x251d87['dailyAverages'][_0x45e734(0x9f)]=_0x45455e/_0x58be3d,_0x251d87['dailyAverages'][_0x45e734(0xaa)]=_0x469557/_0x58be3d,_0x251d87[_0x45e734(0xc4)][_0x45e734(0xa2)]=_0x51ab46/_0x58be3d,_0x251d87[_0x45e734(0xa8)]=Array['from'](_0x36d105[_0x45e734(0xa0)]())['map'](([_0x528cca,_0x522cb7])=>({'id':_0x528cca,..._0x522cb7}))['sort']((_0x3be1ee,_0x1a0592)=>_0x1a0592['cost']-_0x3be1ee[_0x45e734(0x9f)])[_0x45e734(0xaf)](0x0,0xa),_0x251d87['topModels']=Array['from'](_0x49a659[_0x45e734(0xa0)]())[_0x45e734(0xa3)](([_0x34aab2,_0x31ac81])=>({'id':_0x34aab2,..._0x31ac81}))[_0x45e734(0x8c)]((_0x2640e0,_0x481fb2)=>_0x481fb2['cost']-_0x2640e0['cost'])[_0x45e734(0xaf)](0x0,0xa),_0x251d87;}[a0_0x5f3f6c(0x9e)](_0x1bb983=a0_0x5f3f6c(0xa6),_0x3e0491=null,_0x1f14fe=null){const _0x3746db=a0_0x5f3f6c,_0x3bda65={'budgets':this[_0x3746db(0x8d)],'total':this['usage'][_0x3746db(0xb5)],'daily':{},'weekly':{},'monthly':{}},_0x5ad7cd=(_0xfd3900,_0x40931d)=>{const _0x291425=_0x3746db,_0x5125f2={};return _0xfd3900[_0x291425(0xc2)]((_0x1192f6,_0x4d54db)=>{const _0x358f2d=_0x40931d(_0x4d54db);(!_0x3e0491||_0x358f2d>=_0x3e0491)&&(!_0x1f14fe||_0x358f2d<=_0x1f14fe)&&(_0x5125f2[_0x4d54db]=_0x1192f6);}),_0x5125f2;};_0x3e0491||_0x1f14fe?(_0x3bda65['daily']=_0x5ad7cd(this[_0x3746db(0xb6)][_0x3746db(0xc3)],_0x1ca559=>new Date(_0x1ca559)),_0x3bda65['weekly']=_0x5ad7cd(this['usage']['weekly'],_0x2268f7=>new Date(_0x2268f7)),_0x3bda65[_0x3746db(0xc5)]=_0x5ad7cd(this[_0x3746db(0xb6)]['monthly'],_0x116935=>new Date(_0x116935+'-01'))):(this['usage'][_0x3746db(0xc3)][_0x3746db(0xc2)]((_0x2eb970,_0x24e622)=>_0x3bda65[_0x3746db(0xc3)][_0x24e622]=_0x2eb970),this[_0x3746db(0xb6)]['weekly'][_0x3746db(0xc2)]((_0x422c5c,_0x97fdbb)=>_0x3bda65['weekly'][_0x97fdbb]=_0x422c5c),this[_0x3746db(0xb6)]['monthly'][_0x3746db(0xc2)]((_0x2ac136,_0x42400c)=>_0x3bda65['monthly'][_0x42400c]=_0x2ac136));if(_0x1bb983==='csv')return this[_0x3746db(0x84)](_0x3bda65);return JSON['stringify'](_0x3bda65,null,0x2);}[a0_0x5f3f6c(0x94)](_0x2368f1,_0x335279){!_0x2368f1['has'](_0x335279)&&_0x2368f1['set'](_0x335279,this['createEmptyUsage']());}[a0_0x5f3f6c(0xa5)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x5f3f6c(0xca)](_0x43386d,_0x11c351){const _0x316c10=a0_0x5f3f6c;_0x43386d['cost']+=_0x11c351['cost'],_0x43386d[_0x316c10(0xaa)]+=_0x11c351['tokens'],_0x43386d[_0x316c10(0xa2)]+=0x1,!_0x43386d[_0x316c10(0xb1)][_0x11c351[_0x316c10(0x96)]]&&(_0x43386d[_0x316c10(0xb1)][_0x11c351['agentId']]=this[_0x316c10(0xa5)]()),_0x43386d['byAgent'][_0x11c351['agentId']]['cost']+=_0x11c351['cost'],_0x43386d[_0x316c10(0xb1)][_0x11c351[_0x316c10(0x96)]][_0x316c10(0xaa)]+=_0x11c351['tokens'],_0x43386d[_0x316c10(0xb1)][_0x11c351['agentId']][_0x316c10(0xa2)]+=0x1,!_0x43386d['byModel'][_0x11c351['modelId']]&&(_0x43386d[_0x316c10(0xab)][_0x11c351[_0x316c10(0x93)]]=this[_0x316c10(0xa5)]()),_0x43386d['byModel'][_0x11c351[_0x316c10(0x93)]]['cost']+=_0x11c351['cost'],_0x43386d['byModel'][_0x11c351['modelId']]['tokens']+=_0x11c351['tokens'],_0x43386d['byModel'][_0x11c351['modelId']]['requests']+=0x1;}['checkBudgetLimits'](_0x224b75,_0x1bc17e,_0x548d3e){const _0x313367=a0_0x5f3f6c,_0x310537=this['usage']['daily'][_0x313367(0xb4)](_0x224b75),_0x493f0c=this[_0x313367(0xb6)]['weekly']['get'](_0x1bc17e),_0x33ed67=this['usage']['monthly'][_0x313367(0xb4)](_0x548d3e);_0x310537[_0x313367(0x9f)]>this[_0x313367(0x8d)][_0x313367(0xc3)]&&this[_0x313367(0x89)](_0x313367(0xc3),_0x310537['cost'],this['budgets'][_0x313367(0xc3)]),_0x493f0c[_0x313367(0x9f)]>this['budgets'][_0x313367(0xa9)]&&this['sendBudgetAlert'](_0x313367(0xa9),_0x493f0c['cost'],this['budgets']['weekly']),_0x33ed67['cost']>this[_0x313367(0x8d)]['monthly']&&this[_0x313367(0x89)]('monthly',_0x33ed67[_0x313367(0x9f)],this['budgets'][_0x313367(0xc5)]),this['checkThresholdAlerts'](_0x310537,_0x493f0c,_0x33ed67);}[a0_0x5f3f6c(0xc8)](_0x5895fc,_0x16552e,_0x147c6a){const _0x5410bf=a0_0x5f3f6c,_0x3751e6=this['alerts'][_0x5410bf(0xd1)];this['checkThreshold']('daily',_0x5895fc['cost'],this[_0x5410bf(0x8d)]['daily'],_0x3751e6),this[_0x5410bf(0x95)]('weekly',_0x16552e['cost'],this['budgets']['weekly'],_0x3751e6),this['checkThreshold'](_0x5410bf(0xc5),_0x147c6a['cost'],this['budgets'][_0x5410bf(0xc5)],_0x3751e6);}[a0_0x5f3f6c(0x95)](_0x2bca27,_0x3b90a3,_0x1636c0,_0x30912b){const _0x2ca56f=a0_0x5f3f6c,_0x54b1a2=_0x3b90a3/_0x1636c0*0x64;for(const _0xa0c2e8 of _0x30912b){if(_0x54b1a2>=_0xa0c2e8){const _0x31d929=_0x2bca27+'_'+_0xa0c2e8,_0x50e912=this[_0x2ca56f(0x99)]['lastAlertTimes'][_0x2ca56f(0xb4)](_0x31d929),_0x59814a=Date['now']();(!_0x50e912||_0x59814a-_0x50e912>0x36ee80)&&(this['sendThresholdAlert'](_0x2bca27,_0x54b1a2,_0xa0c2e8,_0x3b90a3,_0x1636c0),this[_0x2ca56f(0x99)][_0x2ca56f(0x9c)]['set'](_0x31d929,_0x59814a));break;}}}[a0_0x5f3f6c(0x89)](_0x30bb5c,_0x5bb98f,_0x4e1a6f){const _0x11f736=a0_0x5f3f6c;this[_0x11f736(0x87)][_0x11f736(0xad)]('Budget\x20limit\x20exceeded',{'period':_0x30bb5c,'currentUsage':_0x5bb98f,'budgetLimit':_0x4e1a6f,'excess':_0x5bb98f-_0x4e1a6f}),typeof process!==_0x11f736(0xbe)&&process[_0x11f736(0xce)]&&process['emit']('budgetAlert',{'type':'budget_exceeded','period':_0x30bb5c,'currentUsage':_0x5bb98f,'budgetLimit':_0x4e1a6f,'excess':_0x5bb98f-_0x4e1a6f});}['sendThresholdAlert'](_0x2d99e4,_0x1e0088,_0x5cf527,_0x234980,_0x4b5544){const _0x5a8dc8=a0_0x5f3f6c;this[_0x5a8dc8(0x87)][_0x5a8dc8(0xad)](_0x5a8dc8(0x9b),{'period':_0x2d99e4,'percentage':Math[_0x5a8dc8(0xcc)](_0x1e0088),'threshold':_0x5cf527,'usage':_0x234980,'budget':_0x4b5544}),typeof process!==_0x5a8dc8(0xbe)&&process[_0x5a8dc8(0xce)]&&process[_0x5a8dc8(0xce)](_0x5a8dc8(0xcf),{'type':'threshold_reached','period':_0x2d99e4,'percentage':Math[_0x5a8dc8(0xcc)](_0x1e0088),'threshold':_0x5cf527,'usage':_0x234980,'budget':_0x4b5544});}['getDayKey'](_0x5a0a0c){return _0x5a0a0c['toISOString']()['split']('T')[0x0];}[a0_0x5f3f6c(0xd5)](_0x42338a){const _0xd2aba4=a0_0x5f3f6c,_0x236164=_0x42338a['getFullYear'](),_0x5d9c23=this['getWeekNumber'](_0x42338a);return _0x236164+'-W'+_0x5d9c23['toString']()[_0xd2aba4(0xbc)](0x2,'0');}['getMonthKey'](_0x79f622){const _0x40d186=a0_0x5f3f6c,_0x5ad5d8=_0x79f622[_0x40d186(0xb0)](),_0x4be107=_0x79f622[_0x40d186(0xbd)]()+0x1;return _0x5ad5d8+'-'+_0x4be107[_0x40d186(0xb9)]()[_0x40d186(0xbc)](0x2,'0');}['getWeekNumber'](_0x49063b){const _0x3c6b30=a0_0x5f3f6c,_0x48ac23=new Date(_0x49063b[_0x3c6b30(0xb0)](),0x0,0x1),_0x4806ae=(_0x49063b-_0x48ac23)/0x5265c00;return Math['ceil']((_0x4806ae+_0x48ac23[_0x3c6b30(0x98)]()+0x1)/0x7);}['convertToCSV'](_0x11b728){const _0x369e7c=a0_0x5f3f6c,_0x53de81=[];return _0x53de81['push'](['Period','Date','Cost','Tokens','Requests',_0x369e7c(0x8f),'Model']),Object[_0x369e7c(0xa0)](_0x11b728['daily'])['forEach'](([_0x2cea36,_0x118e4c])=>{const _0x2de229=_0x369e7c;_0x53de81['push'](['Daily',_0x2cea36,_0x118e4c['cost'],_0x118e4c['tokens'],_0x118e4c['requests'],'','']),Object[_0x2de229(0xa0)](_0x118e4c['byAgent']||{})['forEach'](([_0x184cfd,_0x3c08f7])=>{const _0x5a863c=_0x2de229;_0x53de81[_0x5a863c(0x82)]([_0x5a863c(0x92),_0x2cea36,_0x3c08f7[_0x5a863c(0x9f)],_0x3c08f7['tokens'],_0x3c08f7['requests'],_0x184cfd,'']);});}),_0x53de81[_0x369e7c(0xa3)](_0x180161=>_0x180161[_0x369e7c(0x8a)](','))[_0x369e7c(0x8a)]('\x0a');}[a0_0x5f3f6c(0xd3)](){const _0x228d43=a0_0x5f3f6c;try{this['logger'][_0x228d43(0x97)]('Budget\x20service\x20initialized');}catch(_0x58fd0e){this[_0x228d43(0x87)][_0x228d43(0xb7)](_0x228d43(0xa1),{'error':_0x58fd0e[_0x228d43(0x90)]});}}[a0_0x5f3f6c(0x8e)](){const _0x497ac0=a0_0x5f3f6c;try{this['logger'][_0x497ac0(0x85)](_0x497ac0(0xc1));}catch(_0x10bbd0){this[_0x497ac0(0x87)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0x10bbd0['message']});}}['setupPeriodicSave'](){setInterval(()=>{const _0x8461b6=a0_0x1ed1;this[_0x8461b6(0x8e)]();},0x493e0);}}export default BudgetService;
|
|
1
|
+
const a0_0x53020c=a0_0x48be;function a0_0x22dd(){const _0x2f0b48=['y2HLy2TuAhjLC2HVBgrbBgvYDhm','D2vLA2X5','Dg90ywW','z2v0rgf0zq','y29UDMvYDfrVq1nw','z2v0vxnHz2vuCMvUzhm','ywXLCNrZ','Dg90ywXFDg9Rzw5Z','y2vPBa','z2v0tw9KzwXvC2fNzq','refjtfK','yNLnB2rLBa','y29TCgXLDgLVBL90B2TLBNm','qwDLBNq','Dg9Wtw9KzwXZ','Bw9KzwXjza','yNvKz2v0CW','z2v0v2vLA051BwjLCG','z2v0tw9UDgG','DxbKyxrLvxnHz2vfBNrYEq','DhjHy2TvC2fNzq','CMvXDwvZDhm','mZu1otG3mxjsCgHTvG','C2f2zvvZywDLrgf0yq','zNjVBq','uMvXDwvZDhm','CM91BMq','yNLbz2vUDa','vg9Rzw5Z','DxnHz2u','CgfKu3rHCNq','BwfW','zgfPBhLbDMvYywDLCW','Aw5PDgLHBgL6zvvZywDLrw50CNK','y3jLyxrLrw1WDhLvC2fNzq','y29ZDa','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','y29ZDej5rgf5','y2HLy2TuAhjLC2HVBgq','vxnHz2uGzgf0ysbZyxzLza','Dw5ZAgLMDa','DgHYzxnOB2XKx3jLywnOzwq','C2vUzfrOCMvZAg9SzefSzxj0','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','sw52ywXPzcbWzxjPB2q6ia','zgfPBhK','z2v0v2vLA0TLEq','y2HLy2TcDwrNzxrmAw1PDhm','Dg9WqwDLBNrZ','Dg9ju09tDhjPBMC','zM9YrwfJAa','C2v0','Bw9UDgHSEq','Dg9Rzw5ZqNLeyxK','mJKYmZK5nu5kANr4DW','zw1PDa','qNvKz2v0igXPBwL0igv4y2vLzgvK','rgfPBhK','ugvYAw9K','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','ndyZntaWnuTprKHXAa','yNvKz2v0x2v4y2vLzgvK','qNvKz2v0igXPBwL0CYb1CgrHDgvK','Dg9tDhjPBMC','vxnHz2uGDhjHy2TLza','Aw5MBW','z2v0rgf5','AgfZ','Bg9Nz2vY','z2v0rgf5s2v5','C2v0DxbqzxjPB2rPy1nHDMu','mtiZodyYohHVtfj3ta','D2fYBG','ChvZAa','nti5mdG4wNrYyvfw','z2v0tw9UDgHlzxK','C29YDa','AM9PBG','C2vUzej1zgDLDefSzxj0','Dg9Rzw5Z','z2v0vxnHz2u','tu9oveHmwq','odC5mJi2u3fdy1jX','z2v0','mZe4ndeYogP2su16qG','C2v0rgf0zq','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','zw50CMLLCW','q29ZDa','y29UzMLN','rMfPBgvKihrVihrYywnRihvZywDL','Bwf4'];a0_0x22dd=function(){return _0x2f0b48;};return a0_0x22dd();}function a0_0x48be(_0xfdc79b,_0x1fa0db){_0xfdc79b=_0xfdc79b-0xc8;const _0x22ddae=a0_0x22dd();let _0x48be08=_0x22ddae[_0xfdc79b];if(a0_0x48be['vZGCRl']===undefined){var _0x156344=function(_0x350194){const _0x1fc3f9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5dff3f='',_0x18570b='';for(let _0x3ea41b=0x0,_0x52d4fd,_0x3fdac0,_0x4a1efa=0x0;_0x3fdac0=_0x350194['charAt'](_0x4a1efa++);~_0x3fdac0&&(_0x52d4fd=_0x3ea41b%0x4?_0x52d4fd*0x40+_0x3fdac0:_0x3fdac0,_0x3ea41b++%0x4)?_0x5dff3f+=String['fromCharCode'](0xff&_0x52d4fd>>(-0x2*_0x3ea41b&0x6)):0x0){_0x3fdac0=_0x1fc3f9['indexOf'](_0x3fdac0);}for(let _0xe3ef3d=0x0,_0x13ca66=_0x5dff3f['length'];_0xe3ef3d<_0x13ca66;_0xe3ef3d++){_0x18570b+='%'+('00'+_0x5dff3f['charCodeAt'](_0xe3ef3d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18570b);};a0_0x48be['nlLSBJ']=_0x156344,a0_0x48be['cGfVGO']={},a0_0x48be['vZGCRl']=!![];}const _0x116055=_0x22ddae[0x0],_0x46f3c2=_0xfdc79b+_0x116055,_0x5c0415=a0_0x48be['cGfVGO'][_0x46f3c2];return!_0x5c0415?(_0x48be08=a0_0x48be['nlLSBJ'](_0x48be08),a0_0x48be['cGfVGO'][_0x46f3c2]=_0x48be08):_0x48be08=_0x5c0415,_0x48be08;}(function(_0x57fea3,_0x5136a){const _0x5d15fd=a0_0x48be,_0x24779c=_0x57fea3();while(!![]){try{const _0x44018f=-parseInt(_0x5d15fd(0xff))/0x1+parseInt(_0x5d15fd(0xf7))/0x2+parseInt(_0x5d15fd(0xe3))/0x3+parseInt(_0x5d15fd(0x101))/0x4+-parseInt(_0x5d15fd(0xe9))/0x5+-parseInt(_0x5d15fd(0xf4))/0x6+parseInt(_0x5d15fd(0x11f))/0x7;if(_0x44018f===_0x5136a)break;else _0x24779c['push'](_0x24779c['shift']());}catch(_0x4aff49){_0x24779c['push'](_0x24779c['shift']());}}}(a0_0x22dd,0x81ab9));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x5dff3f,_0x18570b){const _0x16f584=a0_0x48be;this[_0x16f584(0x106)]=_0x5dff3f||{},this['logger']=_0x18570b,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x16f584(0x113)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x16f584(0xfe)]},this[_0x16f584(0x10f)]={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x16f584(0xf3)]();}[a0_0x53020c(0x11d)](_0x3ea41b,_0x52d4fd,_0x3fdac0){const _0x4d2314=a0_0x53020c;try{const _0x4a1efa=this['calculateCost'](_0x52d4fd,_0x3fdac0),_0xe3ef3d=new Date(),_0x13ca66=this['getDayKey'](_0xe3ef3d),_0x3587e3=this['getWeekKey'](_0xe3ef3d),_0x3fb589=this[_0x4d2314(0xf8)](_0xe3ef3d);this['initializeUsageEntry'](this['usage']['daily'],_0x13ca66),this[_0x4d2314(0xce)](this[_0x4d2314(0xca)][_0x4d2314(0x10a)],_0x3587e3),this[_0x4d2314(0xce)](this['usage'][_0x4d2314(0xe1)],_0x3fb589);const _0x1a8f69={'agentId':_0x3ea41b,'modelId':_0x52d4fd,'tokens':_0x3fdac0['total_tokens'],'cost':_0x4a1efa,'timestamp':_0xe3ef3d[_0x4d2314(0xde)]()};return this[_0x4d2314(0x11c)](this['usage'][_0x4d2314(0xda)][_0x4d2314(0x100)](_0x13ca66),_0x1a8f69),this['updateUsageEntry'](this['usage'][_0x4d2314(0x10a)][_0x4d2314(0x100)](_0x3587e3),_0x1a8f69),this['updateUsageEntry'](this['usage'][_0x4d2314(0xe1)][_0x4d2314(0x100)](_0x3fb589),_0x1a8f69),this['usage'][_0x4d2314(0x10b)]['tokens']+=_0x3fdac0['total_tokens'],this[_0x4d2314(0xca)]['total'][_0x4d2314(0xd0)]+=_0x4a1efa,this['usage'][_0x4d2314(0x10b)]['requests']+=0x1,this['checkBudgetLimits'](_0x13ca66,_0x3587e3,_0x3fb589),this[_0x4d2314(0xf1)][_0x4d2314(0xee)](_0x4d2314(0xed),{'agentId':_0x3ea41b,'modelId':_0x52d4fd,'tokens':_0x3fdac0[_0x4d2314(0x110)],'cost':_0x4a1efa,'totalCost':this[_0x4d2314(0xca)][_0x4d2314(0x10b)]['cost']}),{'cost':_0x4a1efa,'totalCost':this[_0x4d2314(0xca)]['total']['cost'],'totalTokens':this[_0x4d2314(0xca)][_0x4d2314(0x10b)][_0x4d2314(0xfc)],'dailyUsage':this['usage']['daily'][_0x4d2314(0x100)](_0x13ca66),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x5d2c06){this[_0x4d2314(0xf1)]['error'](_0x4d2314(0x107),{'error':_0x5d2c06['message'],'agentId':_0x3ea41b,'modelId':_0x52d4fd});throw _0x5d2c06;}}['calculateCost'](_0x1fbe48,_0x38ae65){const _0x1607d7=a0_0x53020c,_0x1ff12b=COST_PER_TOKEN[_0x1fbe48];if(!_0x1ff12b)return this[_0x1607d7(0xf1)]['warn']('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x1fbe48}),0x0;const _0x58add8=(_0x38ae65['prompt_tokens']||0x0)*_0x1ff12b['input'],_0x1239b6=(_0x38ae65[_0x1607d7(0x115)]||0x0)*_0x1ff12b['output'];return _0x58add8+_0x1239b6;}['getUsage'](_0x5ed932=a0_0x53020c(0xda),_0x4081be=new Date()){const _0x42b4d1=a0_0x53020c;switch(_0x5ed932){case _0x42b4d1(0xda):return this[_0x42b4d1(0xca)]['daily']['get'](this['getDayKey'](_0x4081be))||this[_0x42b4d1(0xcf)]();case _0x42b4d1(0x10a):return this[_0x42b4d1(0xca)]['weekly']['get'](this[_0x42b4d1(0xdb)](_0x4081be))||this[_0x42b4d1(0xcf)]();case'monthly':return this[_0x42b4d1(0xca)]['monthly']['get'](this['getMonthKey'](_0x4081be))||this[_0x42b4d1(0xcf)]();case _0x42b4d1(0x10b):return{...this[_0x42b4d1(0xca)]['total']};default:throw new Error(_0x42b4d1(0xd9)+_0x5ed932);}}['getAgentUsage'](_0x4ff57c,_0xf85162=a0_0x53020c(0xda)){const _0x12993e=a0_0x53020c,_0x1f8db3=this[_0x12993e(0xfd)](_0xf85162);return _0x1f8db3[_0x12993e(0xc8)]?.[_0x4ff57c]||this['createEmptyUsage']();}[a0_0x53020c(0x112)](_0x34a4cb,_0x13f4bf='daily'){const _0x539404=this['getUsage'](_0x13f4bf);return _0x539404['byModel']?.[_0x34a4cb]||this['createEmptyUsage']();}['setBudgets'](_0x5c7115){const _0x2df3e1=a0_0x53020c;if(_0x5c7115[_0x2df3e1(0xda)]!==undefined)this[_0x2df3e1(0x119)]['daily']=_0x5c7115[_0x2df3e1(0xda)];if(_0x5c7115[_0x2df3e1(0x10a)]!==undefined)this[_0x2df3e1(0x119)]['weekly']=_0x5c7115[_0x2df3e1(0x10a)];if(_0x5c7115[_0x2df3e1(0xe1)]!==undefined)this[_0x2df3e1(0x119)]['monthly']=_0x5c7115[_0x2df3e1(0xe1)];this['logger'][_0x2df3e1(0xee)](_0x2df3e1(0xeb),this[_0x2df3e1(0x119)]),this[_0x2df3e1(0x120)]();}['getRemainingBudget'](){const _0x189a84=a0_0x53020c,_0x80237a=new Date(),_0x38b281=this[_0x189a84(0xfd)](_0x189a84(0xda),_0x80237a),_0x48e694=this[_0x189a84(0xfd)](_0x189a84(0x10a),_0x80237a),_0x29b61f=this[_0x189a84(0xfd)](_0x189a84(0xe1),_0x80237a);return{'daily':Math['max'](0x0,this['budgets'][_0x189a84(0xda)]-_0x38b281['cost']),'weekly':Math[_0x189a84(0x108)](0x0,this[_0x189a84(0x119)]['weekly']-_0x48e694[_0x189a84(0xd0)]),'monthly':Math['max'](0x0,this[_0x189a84(0x119)][_0x189a84(0xe1)]-_0x29b61f[_0x189a84(0xd0)])};}['isWithinBudget'](_0x4a7988=a0_0x53020c(0xda)){const _0x2c5e33=a0_0x53020c,_0x32f9af=this[_0x2c5e33(0xfd)](_0x4a7988),_0x430619=this['budgets'][_0x4a7988];return _0x32f9af[_0x2c5e33(0xd0)]<=_0x430619;}[a0_0x53020c(0x10e)](_0x37b7da=0x1e){const _0x541b3b=a0_0x53020c,_0x521328={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0xba2dcf=new Date();let _0x41710b=0x0,_0x42484b=0x0,_0x15c99a=0x0;const _0x42875b=new Map(),_0x87637d=new Map();for(let _0x5ce57f=0x0;_0x5ce57f<_0x37b7da;_0x5ce57f++){const _0xd08859=new Date(_0xba2dcf);_0xd08859[_0x541b3b(0x102)](_0xd08859[_0x541b3b(0x10c)]()-_0x5ce57f);const _0x38b5bd=this[_0x541b3b(0xf2)](_0xd08859),_0x59cb1c=this[_0x541b3b(0xca)]['daily'][_0x541b3b(0x100)](_0x38b5bd);_0x59cb1c?(_0x41710b+=_0x59cb1c[_0x541b3b(0xd0)],_0x42484b+=_0x59cb1c['tokens'],_0x15c99a+=_0x59cb1c[_0x541b3b(0x11e)],_0x521328[_0x541b3b(0xd2)]['unshift']({'date':_0x38b5bd,'cost':_0x59cb1c['cost']}),_0x521328['tokensByDay']['unshift']({'date':_0x38b5bd,'tokens':_0x59cb1c[_0x541b3b(0xfc)]}),Object[_0x541b3b(0x104)](_0x59cb1c['byAgent']||{})['forEach'](([_0x502608,_0x2b1d13])=>{!_0x42875b['has'](_0x502608)&&_0x42875b['set'](_0x502608,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x9ab9ff=_0x42875b['get'](_0x502608);_0x9ab9ff['cost']+=_0x2b1d13['cost'],_0x9ab9ff['tokens']+=_0x2b1d13['tokens'],_0x9ab9ff['requests']+=_0x2b1d13['requests'];}),Object[_0x541b3b(0x104)](_0x59cb1c[_0x541b3b(0x114)]||{})[_0x541b3b(0xdf)](([_0x40df86,_0x253fb1])=>{const _0x16957e=_0x541b3b;!_0x87637d[_0x16957e(0xf0)](_0x40df86)&&_0x87637d['set'](_0x40df86,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x474020=_0x87637d['get'](_0x40df86);_0x474020['cost']+=_0x253fb1[_0x16957e(0xd0)],_0x474020['tokens']+=_0x253fb1[_0x16957e(0xfc)],_0x474020['requests']+=_0x253fb1['requests'];})):(_0x521328[_0x541b3b(0xd2)]['unshift']({'date':_0x38b5bd,'cost':0x0}),_0x521328[_0x541b3b(0xe2)][_0x541b3b(0xd5)]({'date':_0x38b5bd,'tokens':0x0}));}return _0x521328['dailyAverages']['cost']=_0x41710b/_0x37b7da,_0x521328[_0x541b3b(0xcd)]['tokens']=_0x42484b/_0x37b7da,_0x521328[_0x541b3b(0xcd)][_0x541b3b(0x11e)]=_0x15c99a/_0x37b7da,_0x521328[_0x541b3b(0xdd)]=Array[_0x541b3b(0x121)](_0x42875b[_0x541b3b(0x104)]())[_0x541b3b(0xcc)](([_0xfbb889,_0x1e6421])=>({'id':_0xfbb889,..._0x1e6421}))[_0x541b3b(0xf9)]((_0x2fe089,_0x35ad4c)=>_0x35ad4c['cost']-_0x2fe089['cost'])['slice'](0x0,0xa),_0x521328[_0x541b3b(0x117)]=Array[_0x541b3b(0x121)](_0x87637d['entries']())['map'](([_0x1adf3c,_0x4ca08a])=>({'id':_0x1adf3c,..._0x4ca08a}))[_0x541b3b(0xf9)]((_0x580d49,_0xbb72f1)=>_0xbb72f1['cost']-_0x580d49['cost'])['slice'](0x0,0xa),_0x521328;}['exportUsageData'](_0x322a42='json',_0x32cf31=null,_0x45b232=null){const _0x27de47=a0_0x53020c,_0x1bf2a7={'budgets':this['budgets'],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x21f41f=(_0x15a042,_0x3b4080)=>{const _0x345ca4={};return _0x15a042['forEach']((_0x38852a,_0x3456fb)=>{const _0x43e04e=_0x3b4080(_0x3456fb);(!_0x32cf31||_0x43e04e>=_0x32cf31)&&(!_0x45b232||_0x43e04e<=_0x45b232)&&(_0x345ca4[_0x3456fb]=_0x38852a);}),_0x345ca4;};_0x32cf31||_0x45b232?(_0x1bf2a7['daily']=_0x21f41f(this[_0x27de47(0xca)]['daily'],_0x357ecf=>new Date(_0x357ecf)),_0x1bf2a7[_0x27de47(0x10a)]=_0x21f41f(this['usage']['weekly'],_0xe06d6f=>new Date(_0xe06d6f)),_0x1bf2a7['monthly']=_0x21f41f(this['usage']['monthly'],_0xd27380=>new Date(_0xd27380+'-01'))):(this['usage']['daily']['forEach']((_0x54d917,_0x22c747)=>_0x1bf2a7[_0x27de47(0xda)][_0x22c747]=_0x54d917),this['usage'][_0x27de47(0x10a)]['forEach']((_0x2ef664,_0x5e652b)=>_0x1bf2a7[_0x27de47(0x10a)][_0x5e652b]=_0x2ef664),this[_0x27de47(0xca)][_0x27de47(0xe1)]['forEach']((_0x2d2c3e,_0x2afcbd)=>_0x1bf2a7['monthly'][_0x2afcbd]=_0x2d2c3e));if(_0x322a42==='csv')return this[_0x27de47(0x10d)](_0x1bf2a7);return JSON['stringify'](_0x1bf2a7,null,0x2);}[a0_0x53020c(0xce)](_0x28e727,_0xefe136){const _0x1f82cc=a0_0x53020c;!_0x28e727[_0x1f82cc(0xf0)](_0xefe136)&&_0x28e727[_0x1f82cc(0xe0)](_0xefe136,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x152c93,_0xb39eb8){const _0x1b232d=a0_0x53020c;_0x152c93['cost']+=_0xb39eb8[_0x1b232d(0xd0)],_0x152c93['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93['requests']+=0x1,!_0x152c93['byAgent'][_0xb39eb8['agentId']]&&(_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']]=this[_0x1b232d(0xcf)]()),_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']][_0x1b232d(0xd0)]+=_0xb39eb8['cost'],_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']]['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']][_0x1b232d(0x11e)]+=0x1,!_0x152c93[_0x1b232d(0x114)][_0xb39eb8[_0x1b232d(0x118)]]&&(_0x152c93[_0x1b232d(0x114)][_0xb39eb8['modelId']]=this[_0x1b232d(0xcf)]()),_0x152c93[_0x1b232d(0x114)][_0xb39eb8['modelId']][_0x1b232d(0xd0)]+=_0xb39eb8['cost'],_0x152c93['byModel'][_0xb39eb8['modelId']]['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93['byModel'][_0xb39eb8['modelId']][_0x1b232d(0x11e)]+=0x1;}[a0_0x53020c(0xdc)](_0x109339,_0x382313,_0x3dd419){const _0x3de2be=a0_0x53020c,_0x3300cc=this[_0x3de2be(0xca)]['daily']['get'](_0x109339),_0x430e0a=this['usage'][_0x3de2be(0x10a)][_0x3de2be(0x100)](_0x382313),_0x3bf67d=this['usage']['monthly']['get'](_0x3dd419);_0x3300cc[_0x3de2be(0xd0)]>this['budgets']['daily']&&this['sendBudgetAlert']('daily',_0x3300cc[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0xda)]),_0x430e0a[_0x3de2be(0xd0)]>this[_0x3de2be(0x119)]['weekly']&&this['sendBudgetAlert'](_0x3de2be(0x10a),_0x430e0a[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0x10a)]),_0x3bf67d['cost']>this['budgets']['monthly']&&this[_0x3de2be(0xfb)](_0x3de2be(0xe1),_0x3bf67d[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0xe1)]),this['checkThresholdAlerts'](_0x3300cc,_0x430e0a,_0x3bf67d);}[a0_0x53020c(0x109)](_0x243778,_0x256408,_0x466f97){const _0x56b518=a0_0x53020c,_0x468489=this[_0x56b518(0x10f)]['thresholds'];this[_0x56b518(0xd3)](_0x56b518(0xda),_0x243778['cost'],this['budgets'][_0x56b518(0xda)],_0x468489),this['checkThreshold']('weekly',_0x256408[_0x56b518(0xd0)],this[_0x56b518(0x119)][_0x56b518(0x10a)],_0x468489),this[_0x56b518(0xd3)]('monthly',_0x466f97[_0x56b518(0xd0)],this['budgets'][_0x56b518(0xe1)],_0x468489);}[a0_0x53020c(0xd3)](_0xd17774,_0xa6a50c,_0x4467ee,_0x3f4635){const _0x52b590=a0_0x53020c,_0x2640bc=_0xa6a50c/_0x4467ee*0x64;for(const _0x3f4508 of _0x3f4635){if(_0x2640bc>=_0x3f4508){const _0x4aec93=_0xd17774+'_'+_0x3f4508,_0x1f6665=this[_0x52b590(0x10f)]['lastAlertTimes']['get'](_0x4aec93),_0x10e1b5=Date['now']();(!_0x1f6665||_0x10e1b5-_0x1f6665>0x36ee80)&&(this['sendThresholdAlert'](_0xd17774,_0x2640bc,_0x3f4508,_0xa6a50c,_0x4467ee),this['alerts']['lastAlertTimes']['set'](_0x4aec93,_0x10e1b5));break;}}}[a0_0x53020c(0xfb)](_0x30fdd3,_0x1c576c,_0x1b96e5){const _0x24e626=a0_0x53020c;this[_0x24e626(0xf1)][_0x24e626(0xf5)](_0x24e626(0xe5),{'period':_0x30fdd3,'currentUsage':_0x1c576c,'budgetLimit':_0x1b96e5,'excess':_0x1c576c-_0x1b96e5}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':_0x24e626(0xea),'period':_0x30fdd3,'currentUsage':_0x1c576c,'budgetLimit':_0x1b96e5,'excess':_0x1c576c-_0x1b96e5});}[a0_0x53020c(0xd7)](_0x907ff1,_0x5379bb,_0x3c491b,_0x527d2e,_0x5c3396){const _0x159f88=a0_0x53020c;this['logger'][_0x159f88(0xf5)](_0x159f88(0x103),{'period':_0x907ff1,'percentage':Math[_0x159f88(0x123)](_0x5379bb),'threshold':_0x3c491b,'usage':_0x527d2e,'budget':_0x5c3396}),typeof process!=='undefined'&&process['emit']&&process[_0x159f88(0xe4)]('budgetAlert',{'type':_0x159f88(0xd6),'period':_0x907ff1,'percentage':Math['round'](_0x5379bb),'threshold':_0x3c491b,'usage':_0x527d2e,'budget':_0x5c3396});}[a0_0x53020c(0xf2)](_0x5f0ed3){return _0x5f0ed3['toISOString']()['split']('T')[0x0];}[a0_0x53020c(0xdb)](_0x44ce08){const _0x32f77f=a0_0x53020c,_0x25ac6e=_0x44ce08['getFullYear'](),_0x1fb445=this[_0x32f77f(0x11a)](_0x44ce08);return _0x25ac6e+'-W'+_0x1fb445[_0x32f77f(0xec)]()['padStart'](0x2,'0');}[a0_0x53020c(0xf8)](_0x55591c){const _0x184692=a0_0x53020c,_0xd852d8=_0x55591c['getFullYear'](),_0x3e3c78=_0x55591c[_0x184692(0x11b)]()+0x1;return _0xd852d8+'-'+_0x3e3c78[_0x184692(0xec)]()[_0x184692(0xcb)](0x2,'0');}[a0_0x53020c(0x11a)](_0x513f8f){const _0x2079d3=a0_0x53020c,_0x396117=new Date(_0x513f8f['getFullYear'](),0x0,0x1),_0x3c8cdc=(_0x513f8f-_0x396117)/0x5265c00;return Math[_0x2079d3(0x111)]((_0x3c8cdc+_0x396117[_0x2079d3(0xef)]()+0x1)/0x7);}['convertToCSV'](_0x107ed4){const _0x4c578a=a0_0x53020c,_0x31438d=[];return _0x31438d['push']([_0x4c578a(0xe7),'Date',_0x4c578a(0x105),_0x4c578a(0xc9),_0x4c578a(0x122),_0x4c578a(0x116),'Model']),Object['entries'](_0x107ed4[_0x4c578a(0xda)])[_0x4c578a(0xdf)](([_0x1ae115,_0x17db48])=>{const _0x4ffb4f=_0x4c578a;_0x31438d[_0x4ffb4f(0xf6)]([_0x4ffb4f(0xe6),_0x1ae115,_0x17db48[_0x4ffb4f(0xd0)],_0x17db48[_0x4ffb4f(0xfc)],_0x17db48['requests'],'','']),Object[_0x4ffb4f(0x104)](_0x17db48[_0x4ffb4f(0xc8)]||{})['forEach'](([_0x43653d,_0xfd2144])=>{const _0x36887e=_0x4ffb4f;_0x31438d['push'](['Daily',_0x1ae115,_0xfd2144['cost'],_0xfd2144[_0x36887e(0xfc)],_0xfd2144['requests'],_0x43653d,'']);});}),_0x31438d['map'](_0x429aa5=>_0x429aa5[_0x4c578a(0xfa)](','))['join']('\x0a');}['loadUsageData'](){const _0x578391=a0_0x53020c;try{this['logger'][_0x578391(0xee)](_0x578391(0xd8));}catch(_0x483a4f){this['logger']['error'](_0x578391(0xd1),{'error':_0x483a4f['message']});}}[a0_0x53020c(0x120)](){const _0x347f92=a0_0x53020c;try{this[_0x347f92(0xf1)]['debug'](_0x347f92(0xd4));}catch(_0x572709){this['logger']['error'](_0x347f92(0xe8),{'error':_0x572709['message']});}}[a0_0x53020c(0xf3)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x14a836=a0_0x3f03;function a0_0x5e9c(){const _0xaba3b0=['cIaGpc9MAwXLpG','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','zM9YBwf0sw1Hz2vgAwXL','s0iIig1Vzgu9iMnVBNrLBNqIpGO','yxr0ywnOBwvUDfnLCNzPy2u','zMLSzuLK','mJy0otKWEe1TuvPm','BwvZC2fNzq','Dg9Rzw5fC3rPBwf0zq','zM9YBwf0qNL0zxm','C2L6zq','zM9YBwf0q29UDgvUDezPBgu','zxn0Aw1HDgvKvg9Rzw5Z','mtqYndKWvLzRrhbc','Dgv4Da','Bg9Nz2vY','mJK1nZjezfHXEgm','z2v0qwn0AxzLqxr0ywnOBwvUDhm','zM9YBwf0vgv4DezPBgu','yNvPBgreEw5HBwLJq29UDgv4Da','BgvUz3rO','mJyWndeYuKvTEfPY','ChvZAa','mcbcExrLCW','zxn0Aw1HDgvuB3rHBfrVA2vUCW','rxjYB3iGyNvPBgrPBMCGzhLUyw1PyYbJB250zxH0','zMXVB3i','z2v0qxr0ywnOBwvUDfn1Bw1HCNK','Bg9N','zM9YBwf0uMvMzxjLBMnLrMLSzq','mtmYExLet2v2','ica8zMLSzsbUyw1Lpsi','zMLSzxm','Aw1Hz2u','mJfWBNfsDNa','nZyWnJrzAgzIvxm','iIaVpG','mJC5ode2mhzsChbPta','mtfNDwnnCu0','cJXMAwXLlxjLzMvYzw5Jzxm+cG','iIb0ExbLpsi','odHpDu5sAKu','CgrM','y29UDgvUDa','CMvMzxjLBMnL','CMvWBgfJzq','Dg9gAxHLza','z2v0qxr0ywnOBwvUDenVBNrLBNq','Aw5PDgLHBgL6zq','zxnJyxbLwg1S','iIbWyxrOpsi','mtbbwxPor00','iIbZAxPLpsi','Bw9Kzq','nZuZotnWrNPpD04','Cg93'];a0_0x5e9c=function(){return _0xaba3b0;};return a0_0x5e9c();}(function(_0x153b72,_0x2d353b){const _0x255e99=a0_0x3f03,_0x56337e=_0x153b72();while(!![]){try{const _0x19a33b=-parseInt(_0x255e99(0x199))/0x1*(-parseInt(_0x255e99(0x1bb))/0x2)+parseInt(_0x255e99(0x1b1))/0x3+-parseInt(_0x255e99(0x196))/0x4*(-parseInt(_0x255e99(0x1a6))/0x5)+-parseInt(_0x255e99(0x1c0))/0x6*(-parseInt(_0x255e99(0x195))/0x7)+-parseInt(_0x255e99(0x19c))/0x8*(-parseInt(_0x255e99(0x1a9))/0x9)+parseInt(_0x255e99(0x1b8))/0xa*(-parseInt(_0x255e99(0x191))/0xb)+-parseInt(_0x255e99(0x198))/0xc;if(_0x19a33b===_0x2d353b)break;else _0x56337e['push'](_0x56337e['shift']());}catch(_0x46d6ea){_0x56337e['push'](_0x56337e['shift']());}}}(a0_0x5e9c,0x1a2b9));function a0_0x3f03(_0x38c4e0,_0x17818a){_0x38c4e0=_0x38c4e0-0x18b;const _0x5e9cf9=a0_0x5e9c();let _0x3f03df=_0x5e9cf9[_0x38c4e0];if(a0_0x3f03['yeWGEX']===undefined){var _0x37f94e=function(_0x5035a9){const _0x3dc45d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2aa933='',_0x4169f3='';for(let _0x270f50=0x0,_0x3533a9,_0x85cf14,_0x305935=0x0;_0x85cf14=_0x5035a9['charAt'](_0x305935++);~_0x85cf14&&(_0x3533a9=_0x270f50%0x4?_0x3533a9*0x40+_0x85cf14:_0x85cf14,_0x270f50++%0x4)?_0x2aa933+=String['fromCharCode'](0xff&_0x3533a9>>(-0x2*_0x270f50&0x6)):0x0){_0x85cf14=_0x3dc45d['indexOf'](_0x85cf14);}for(let _0x19b4ad=0x0,_0x114147=_0x2aa933['length'];_0x19b4ad<_0x114147;_0x19b4ad++){_0x4169f3+='%'+('00'+_0x2aa933['charCodeAt'](_0x19b4ad)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4169f3);};a0_0x3f03['OCrAim']=_0x37f94e,a0_0x3f03['ryrAcb']={},a0_0x3f03['yeWGEX']=!![];}const _0x58b941=_0x5e9cf9[0x0],_0x122d19=_0x38c4e0+_0x58b941,_0x23b3c8=a0_0x3f03['ryrAcb'][_0x122d19];return!_0x23b3c8?(_0x3f03df=a0_0x3f03['OCrAim'](_0x3f03df),a0_0x3f03['ryrAcb'][_0x122d19]=_0x3f03df):_0x3f03df=_0x23b3c8,_0x3f03df;}import a0_0x2aa933 from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x4169f3={},_0x270f50=null){const _0x347662=a0_0x3f03;this['config']=_0x4169f3,this[_0x347662(0x1ba)]=_0x270f50,this[_0x347662(0x1af)]=new a0_0x2aa933(_0x4169f3,_0x270f50);}async[a0_0x14a836(0x1a3)](){const _0x589c57=a0_0x14a836;await this[_0x589c57(0x1af)][_0x589c57(0x1a3)]();}async[a0_0x14a836(0x1be)](_0x3533a9){const _0xcabe1a=a0_0x14a836;try{const _0x85cf14=await this[_0xcabe1a(0x1af)][_0xcabe1a(0x1bc)](_0x3533a9);if(_0x85cf14[_0xcabe1a(0x1bf)]===0x0)return'';const _0x305935=_0x85cf14['filter'](_0x182aa4=>_0x182aa4['mode']==='content'),_0x19b4ad=_0x85cf14['filter'](_0x1847f1=>_0x1847f1[_0xcabe1a(0x1a8)]==='reference');let _0x114147='';if(_0x305935[_0xcabe1a(0x1bf)]>0x0){_0x114147+='\x0a<attached-files>\x0a';for(const _0x3d14fa of _0x305935){const _0x10ee07=await this['attachmentService'][_0xcabe1a(0x1a2)](_0x3d14fa[_0xcabe1a(0x1b0)]);if(_0x10ee07){const _0x375204=this[_0xcabe1a(0x1b6)](_0x3d14fa,_0x10ee07);_0x114147+=_0x375204+'\x0a';}}_0x114147+='</attached-files>\x0a';}if(_0x19b4ad['length']>0x0){_0x114147+=_0xcabe1a(0x19a);for(const _0x32c768 of _0x19b4ad){const _0x4aab86=this[_0xcabe1a(0x190)](_0x32c768);_0x114147+=_0x4aab86+'\x0a';}_0x114147+='</file-references>\x0a',_0x114147+='\x0aNote:\x20Referenced\x20files\x20can\x20be\x20accessed\x20using\x20the\x20filesystem\x20tool\x20if\x20needed.\x0a';}return _0x114147;}catch(_0x2abdb1){return this[_0xcabe1a(0x1ba)]?.['error'](_0xcabe1a(0x18c),{'agentId':_0x3533a9,'error':_0x2abdb1['message']}),'';}}['formatContentFile'](_0x4e9efe,_0x47527e){const _0x5ed438=a0_0x14a836,{fileName:_0x48f397,fileType:_0x149217,size:_0xa5dd09,contentType:_0xb66394}=_0x4e9efe,_0x102495=(_0xa5dd09/0x400)['toFixed'](0x2);if(_0xb66394===_0x5ed438(0x1b9))return this[_0x5ed438(0x1bd)](_0x4e9efe,_0x47527e);else{if(_0xb66394===_0x5ed438(0x194))return this['formatImageFile'](_0x4e9efe,_0x47527e);else{if(_0xb66394===_0x5ed438(0x19d))return this['formatPdfFile'](_0x4e9efe,_0x47527e);}}return _0x5ed438(0x192)+this['escapeXml'](_0x48f397)+'\x22\x20type=\x22'+_0x149217+'\x22\x20size=\x22'+_0x102495+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x47527e)+'\x0a\x20\x20</file>';}[a0_0x14a836(0x1bd)](_0x3abc93,_0x4d1106){const _0x5f2449=a0_0x14a836,{fileName:_0x50fa24,fileType:_0xef5404,size:_0x379f72}=_0x3abc93,_0x32e2cd=(_0x379f72/0x400)['toFixed'](0x2);return _0x5f2449(0x192)+this[_0x5f2449(0x1a4)](_0x50fa24)+_0x5f2449(0x19b)+_0xef5404+'\x22\x20size=\x22'+_0x32e2cd+_0x5f2449(0x1ae)+this[_0x5f2449(0x1a4)](_0x4d1106)+_0x5f2449(0x1ab);}[a0_0x14a836(0x1ad)](_0x17890e,_0x5a6fe9){const _0x39f715=a0_0x14a836,{fileName:_0x3bb629,fileType:_0x49fda8,size:_0x342795}=_0x17890e,_0x3fe991=(_0x342795/0x400)[_0x39f715(0x1a1)](0x2);return _0x39f715(0x192)+this[_0x39f715(0x1a4)](_0x3bb629)+'\x22\x20type=\x22'+_0x49fda8+'\x22\x20size=\x22'+_0x3fe991+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x5a6fe9+_0x39f715(0x1ab);}['formatPdfFile'](_0x1397f9,_0x227304){const _0x5c3ed0=a0_0x14a836,{fileName:_0x2c1a29,fileType:_0x1ea997,size:_0x50aef6}=_0x1397f9,_0x396ba2=(_0x50aef6/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x5c3ed0(0x1a4)](_0x2c1a29)+_0x5c3ed0(0x19b)+_0x1ea997+_0x5c3ed0(0x1a7)+_0x396ba2+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x5c3ed0(0x1a4)](_0x227304)+_0x5c3ed0(0x1ab);}['formatReferenceFile'](_0x5c252f){const _0x27f8c2=a0_0x14a836,{fileName:_0x2de4e5,originalPath:_0x33f1a3,size:_0x5caaa7,fileType:_0x5a53c8,lastModified:_0x40a6b9}=_0x5c252f,_0x466005=this[_0x27f8c2(0x1b4)](_0x5caaa7),_0x37ce0f=new Date(_0x40a6b9)['toISOString']()['split']('T')[0x0];return _0x27f8c2(0x192)+this['escapeXml'](_0x2de4e5)+_0x27f8c2(0x1a5)+this['escapeXml'](_0x33f1a3)+_0x27f8c2(0x1a7)+_0x466005+'\x22\x20type=\x22'+_0x5a53c8+'\x22\x20modified=\x22'+_0x37ce0f+_0x27f8c2(0x197);}[a0_0x14a836(0x1a4)](_0x3aada0){const _0x1b9773=a0_0x14a836;if(!_0x3aada0)return'';return _0x3aada0[_0x1b9773(0x1a0)](/&/g,'&')[_0x1b9773(0x1a0)](/</g,'<')[_0x1b9773(0x1a0)](/>/g,'>')['replace'](/"/g,'"')[_0x1b9773(0x1a0)](/'/g,''');}[a0_0x14a836(0x1b4)](_0x248c9d){const _0x282d8a=a0_0x14a836;if(_0x248c9d===0x0)return _0x282d8a(0x1c2);const _0x26fdf1=0x400,_0x40e9cc=['Bytes','KB','MB','GB'],_0x80372d=Math[_0x282d8a(0x18d)](Math[_0x282d8a(0x18f)](_0x248c9d)/Math['log'](_0x26fdf1));return parseFloat((_0x248c9d/Math[_0x282d8a(0x1aa)](_0x26fdf1,_0x80372d))['toFixed'](0x2))+_0x40e9cc[_0x80372d];}async[a0_0x14a836(0x18b)](_0x1d5c96){const _0x4fffab=a0_0x14a836;try{const _0x59e267=await this['attachmentService'][_0x4fffab(0x1bc)](_0x1d5c96);let _0x4657d5=0x0;for(const _0x484c3b of _0x59e267){_0x484c3b['mode']==='content'?_0x4657d5+=_0x484c3b['tokenEstimate']||0x0:_0x4657d5+=0x14;}return _0x4657d5;}catch(_0x12360d){return this[_0x4fffab(0x1ba)]?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x1d5c96,'error':_0x12360d[_0x4fffab(0x1b2)]}),0x0;}}async[a0_0x14a836(0x18e)](_0x1f50ba){const _0x1e487d=a0_0x14a836;try{const _0x1dbdb1=await this['attachmentService'][_0x1e487d(0x1bc)](_0x1f50ba),_0x57e45c={'totalActive':_0x1dbdb1['length'],'contentMode':_0x1dbdb1['filter'](_0x5a2271=>_0x5a2271[_0x1e487d(0x1a8)]===_0x1e487d(0x19e))[_0x1e487d(0x1bf)],'referenceMode':_0x1dbdb1['filter'](_0x2b6623=>_0x2b6623['mode']===_0x1e487d(0x19f))[_0x1e487d(0x1bf)],'estimatedTokens':0x0,'files':[]};for(const _0x583ea9 of _0x1dbdb1){_0x57e45c[_0x1e487d(0x1b7)]+=_0x583ea9[_0x1e487d(0x1b3)]||0x0,_0x57e45c[_0x1e487d(0x193)][_0x1e487d(0x1c1)]({'fileName':_0x583ea9['fileName'],'mode':_0x583ea9[_0x1e487d(0x1a8)],'size':this['formatBytes'](_0x583ea9[_0x1e487d(0x1b5)]),'tokens':_0x583ea9[_0x1e487d(0x1b3)]||0x0});}return _0x57e45c;}catch(_0x4987ac){return this[_0x1e487d(0x1ba)]?.['error'](_0x1e487d(0x1ac),{'agentId':_0x1f50ba,'error':_0x4987ac['message']}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
|