@loxia-labs/loxia-autopilot-one 1.0.11 → 1.0.13
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/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 -2
- 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/src/utilities/userDataDir.js +1 -0
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/{index-C5X7qBNF.js → index-DXN850Y2.js} +69 -65
- package/web-ui/build/static/index-an-YRzUX.css +1 -0
- package/web-ui/build/static/index-g2UFuTwG.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x353b80=a0_0x36f7;(function(_0x3aa805,_0x26dbc){const _0x475af6=a0_0x36f7,_0x25cfc0=_0x3aa805();while(!![]){try{const _0x2128ad=-parseInt(_0x475af6(0x1e6))/0x1*(-parseInt(_0x475af6(0x1d8))/0x2)+parseInt(_0x475af6(0x23b))/0x3+parseInt(_0x475af6(0x206))/0x4+-parseInt(_0x475af6(0x22f))/0x5+parseInt(_0x475af6(0x1ef))/0x6*(-parseInt(_0x475af6(0x252))/0x7)+parseInt(_0x475af6(0x214))/0x8*(parseInt(_0x475af6(0x1d6))/0x9)+-parseInt(_0x475af6(0x26b))/0xa;if(_0x2128ad===_0x26dbc)break;else _0x25cfc0['push'](_0x25cfc0['shift']());}catch(_0x31271e){_0x25cfc0['push'](_0x25cfc0['shift']());}}}(a0_0x35b5,0x9733f));function a0_0x36f7(_0x3ac1dd,_0x49b9fc){_0x3ac1dd=_0x3ac1dd-0x1cf;const _0x35b5ba=a0_0x35b5();let _0x36f773=_0x35b5ba[_0x3ac1dd];if(a0_0x36f7['VUNOQu']===undefined){var _0x2ea2b3=function(_0x4eb66e){const _0x35e721='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x47f60f='',_0x2d8016='';for(let _0x17233d=0x0,_0x5878ed,_0x3f92eb,_0x4c7498=0x0;_0x3f92eb=_0x4eb66e['charAt'](_0x4c7498++);~_0x3f92eb&&(_0x5878ed=_0x17233d%0x4?_0x5878ed*0x40+_0x3f92eb:_0x3f92eb,_0x17233d++%0x4)?_0x47f60f+=String['fromCharCode'](0xff&_0x5878ed>>(-0x2*_0x17233d&0x6)):0x0){_0x3f92eb=_0x35e721['indexOf'](_0x3f92eb);}for(let _0x49d02c=0x0,_0x53dd7e=_0x47f60f['length'];_0x49d02c<_0x53dd7e;_0x49d02c++){_0x2d8016+='%'+('00'+_0x47f60f['charCodeAt'](_0x49d02c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2d8016);};a0_0x36f7['YmnZMw']=_0x2ea2b3,a0_0x36f7['WTRLkj']={},a0_0x36f7['VUNOQu']=!![];}const _0x3ab003=_0x35b5ba[0x0],_0x23f407=_0x3ac1dd+_0x3ab003,_0x7b8bb5=a0_0x36f7['WTRLkj'][_0x23f407];return!_0x7b8bb5?(_0x36f773=a0_0x36f7['YmnZMw'](_0x36f773),a0_0x36f7['WTRLkj'][_0x23f407]=_0x36f773):_0x36f773=_0x7b8bb5,_0x36f773;}function a0_0x35b5(){const _0x3a66b0=['y29UDMvYC2f0Aw9UtwfUywDLCNm','x2HHBMrSzvjHDgvmAw1PDa','y29UDMvYC2f0Aw9UCW','yxbPs2v5','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','u3LZDgvToIa','C3rVCa','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','yMfJA2vUza','C3vIC3rY','yJy0x2PZB24','zxn0Aw1HDgvKvg9Rzw5Z','x3jLy29YzezHAwX1CMu','x2DLDfzLBMrVCKzYB21nB2rLBa','zgvIDwC','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','mta3oteYmdbWwLDRq0K','DhjHy2TvC2fNzq','z2v0s2v5C0zVCLjLCxvLC3q','x21HA2vbueLszxf1zxn0','C3rHBMrHCMq','y2XHDwrL','ChjLzMvYCMvKtw9KzwW','zMfZDa','y2XHC3nPzNLfCNjVCG','zMfPBhvYzxm','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','zxjYB3i','qu5usfjpueLdx09qvvm','BwvZC2fNzxm','z3b0','ueHj','Aw5MBW','Bw9KzwXtCgvJCW','CMvXDwvZDff1zxvL','BM93','qKfex1jfuvvfu1q','nta3mtu5AM51BgLq','x2zVCM1HDezVCKfUDgHYB3bPyW','nerervbIvG','BgfZDezHAwX1CMvuAw1L','C2v0qwDLBNrqB29S','ywDLBNrqB29S','qvPvuKu','CMfUzg9T','C3bLzwq','DxjS','Bw9KzwW','uhjLDMLVDxmGy29UDMvYC2f0Aw9Uihn1Bw1HCNK6ia','BwfW','x3rYDw5JyxrLtwvZC2fNzq','qMvHCMvYia','Aw1Hz2vZ','mtiWmtu0AKjOqMzK','B3b0Aw9UCW','twfRAw5NihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','yxP1CMuTB3bLBMfPlwrHBgXLmW','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','y29UDgv4DfDPBMrVDW','zMLUAxnOx3jLyxnVBG','C2vUze1LC3nHz2u','DMvUzg9YqxbPs2v5','mJmWnZeYsgniBLPf','Cg93','D2fYBG','uMv0CNLPBMCGAw4G','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','C3DPDgnOtw9KzwW','DxnHz2u','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','y29Kzq','C3r5Bgu','x2nOzwnRtw9KzwXizwfSDgG','x2zVCM1HDezVCK9Wzw5bsq','BwvZC2fNzq','z2vUzxjHDgvjBwfNzq','C2L6zq','Dg9vChbLCKnHC2u','y3vYCMvUDe1VzgvS','AgfUzgXLshr0CevYCM9Y','C3rHy2S','y29UDgvUDa','Aw1Nlq','Bg9Nz2vY','qu5usfjpueLdx1nptK5fva','ndq0mtK5nKTjuwzoBG','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','C3LZDgvT','C3vTBwfYEq','yxbPs2v5twfUywDLCG','DgHYzxnOB2XK','uMf0zsbSAw1PDcbLEgnLzwrLza','B3bLBMfP','vw5RBM93BIbTB2rLBdOG','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','CMvZCg9UC2vgB3jTyxq','C3vIC3rYAw5N','z2v0qwDLBNq','C2vZC2LVBKLK','mtuYy09hDNjp','x2vZDgLTyxrLvg9Rzw5Z','CgHP','C3rYzwfT','Dgv4Da','vu5bvvrit1jjwKve','x3jLC2v0q2LYy3vPDejYzwfRzxi','rKfmtejbq0S','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','Bg94AwfbCgLlzxK','ANnVBG','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','C3LZDgvTuhjVBxb0','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','tM8GqvbjigTLEsbJB25MAwD1CMvK','ChjVBxb0x3rVA2vUCW','qu5usfjpueLdx0HbsuTv','t1bftKfj','AgvHBhrOEq','CM9Szq','l2nOyxqVy29TCgXLDgLVBNm','CMv2AxnLzf9WCM9TChq','y2HVAwnLCW','DxnLCG','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','CgXHDgzVCM1qCM92AwrLza','mZK0nZCYmezpuLnjvq','DML2Awq','su5urvjoquXFu0vsvKvsx0vsuK9s','Dw5ZAgLMDa','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','ywDLBNrjza','mtaYnhGXmdi0','y29UzMLN','Aw5JBhvKzxm','DhjPBq','zgf0yq','CxvHBgL0Eq','mZqYotuXm2vJtvfPtG','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','CMv0CNLbDhrLBxb0CW','yNvKz2v0u2vYDMLJzq','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','x2LZvMfSAwrnB2rLBa','qMfKihjLCxvLC3qGDg8GquKGC2vYDMLJzq','x2zVCM1HDfnPBMDSzu1LC3nHz2u','x2nOzwnRuMf0zuXPBwL0','C2v0qxbPs2v5twfUywDLCG','AxnpCgvU','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','Ahr0Chm6lY9HCgKUBg94AweUywK','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','yMfZzvvYBa','C3rHDhvZ','y2LYy3vPDejYzwfRzxi','BgvUz3rO','Bwf4vg9Rzw5Z','DgLTzw91Da','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','mtK2y2zry1vw','DgLTzxn0yw1W','qu5usfjpueLd','ve9px01btLLFuKvrvuvtvfm','tK9ux0zpvu5e','CgvYC2LZDefNzw50u3rHDgu','x2zVCM1HDezVCKf6DxjL','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq'];a0_0x35b5=function(){return _0x3a66b0;};return a0_0x35b5();}import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x47f60f,_0x2d8016,_0x17233d,_0x5878ed){const _0x46fb17=a0_0x36f7;this['config']=_0x47f60f,this['logger']=_0x2d8016,this['budgetService']=_0x17233d,this['errorHandler']=_0x5878ed,this[_0x46fb17(0x24b)]=_0x47f60f[_0x46fb17(0x263)]?.['baseUrl']||_0x46fb17(0x248),this[_0x46fb17(0x250)]=_0x47f60f['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x47f60f['backend']?.[_0x46fb17(0x23e)]||0x3,this['rateLimiters']=new Map(),this[_0x46fb17(0x1d3)]=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0x46fb17(0x233)](),this[_0x46fb17(0x25a)]=new Map(),this[_0x46fb17(0x20a)]=null,this[_0x46fb17(0x1db)]=null;}async[a0_0x353b80(0x1ed)](_0x3f92eb,_0x4c7498,_0x49d02c={}){const _0x34fe76=a0_0x353b80,_0x53dd7e='req-'+Date['now']()+'-'+Math[_0x34fe76(0x1dd)]()['toString'](0x24)[_0x34fe76(0x264)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x34fe76(0x222));await this['_checkRateLimit'](_0x3f92eb);const _0x5e717a=this[_0x34fe76(0x26a)](_0x4c7498,_0x3f92eb,_0x49d02c),_0x2b8ae1={'model':_0x3f92eb,'messages':_0x5e717a,'options':{'max_tokens':this['modelSpecs'][_0x3f92eb]?.[_0x34fe76(0x24f)]||0xfa0,'temperature':_0x49d02c['temperature']||0.7,'stream':_0x49d02c[_0x34fe76(0x217)]||![]},'metadata':{'requestId':_0x53dd7e,'agentId':_0x49d02c['agentId'],'timestamp':new Date()['toISOString']()}};_0x49d02c['systemPrompt']&&(_0x2b8ae1[_0x34fe76(0x208)]=_0x49d02c['systemPrompt']);this[_0x34fe76(0x204)]['info']('Sending\x20message\x20to\x20model:\x20'+_0x3f92eb,{'requestId':_0x53dd7e,'agentId':_0x49d02c[_0x34fe76(0x234)],'messageCount':Array['isArray'](_0x4c7498)?_0x4c7498[_0x34fe76(0x24e)]:0x1,'maxTokens':_0x2b8ae1['max_tokens']});const _0x524f43=await this['_makeAPIRequest'](_0x34fe76(0x229),_0x2b8ae1,_0x53dd7e,{..._0x49d02c,'sessionId':_0x49d02c[_0x34fe76(0x213)],'platformProvided':_0x49d02c[_0x34fe76(0x22e)]||![]});return _0x524f43[_0x34fe76(0x1f5)]&&await this[_0x34fe76(0x26c)](_0x49d02c[_0x34fe76(0x234)],_0x3f92eb,{'prompt_tokens':_0x524f43[_0x34fe76(0x1f5)][_0x34fe76(0x224)]||0x0,'completion_tokens':_0x524f43[_0x34fe76(0x1f5)]['completion_tokens']||0x0,'total_tokens':_0x524f43['usage']['total_tokens']||0x0}),this[_0x34fe76(0x21a)](),{'content':_0x524f43[_0x34fe76(0x22b)][0x0]?.['message']?.['content']||'','model':_0x524f43['model'],'tokenUsage':_0x524f43['usage'],'requestId':_0x53dd7e,'finishReason':_0x524f43[_0x34fe76(0x22b)][0x0]?.[_0x34fe76(0x1ec)]};}catch(_0x33c570){this[_0x34fe76(0x267)](),this['logger']['error']('AI\x20service\x20request\x20failed:\x20'+_0x33c570['message'],{'requestId':_0x53dd7e,'model':_0x3f92eb,'agentId':_0x49d02c[_0x34fe76(0x234)],'error':_0x33c570['stack']}),await this[_0x34fe76(0x200)](_0x33c570,{'requestId':_0x53dd7e,'model':_0x3f92eb,'agentId':_0x49d02c['agentId']});throw _0x33c570;}}async['routeModel'](_0x31101c,_0x3a76d7={}){const _0x3891fc=a0_0x353b80;try{const _0x105131=MODEL_ROUTING[_0x31101c[_0x3891fc(0x1fe)]()]||MODEL_ROUTING['FALLBACK'],_0x58cc1f=[];for(const _0x49df08 of _0x105131){const _0x1a3dab=await this['_checkModelHealth'](_0x49df08);_0x1a3dab&&_0x58cc1f['push'](_0x49df08);}if(_0x58cc1f[_0x3891fc(0x24e)]===0x0)return this[_0x3891fc(0x204)]['warn'](_0x3891fc(0x21f)+_0x31101c+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x32eec0=_0x58cc1f[0x0];if(_0x3a76d7[_0x3891fc(0x271)]&&_0x58cc1f[_0x3891fc(0x237)](_0x3a76d7['preferredModel']))_0x32eec0=_0x3a76d7[_0x3891fc(0x271)];else{if(_0x3a76d7['complexity']==='high'&&_0x58cc1f['includes'](MODELS['ANTHROPIC_OPUS']))_0x32eec0=MODELS[_0x3891fc(0x277)];else _0x3a76d7[_0x3891fc(0x1de)]===_0x3891fc(0x272)&&_0x58cc1f[_0x3891fc(0x237)](MODELS[_0x3891fc(0x225)])&&(_0x32eec0=MODELS[_0x3891fc(0x225)]);}return this[_0x3891fc(0x204)][_0x3891fc(0x1d1)](_0x3891fc(0x25f)+_0x31101c,{'selectedModel':_0x32eec0,'availableModels':_0x58cc1f[_0x3891fc(0x24e)],'context':_0x3a76d7}),_0x32eec0;}catch(_0x47246a){return this[_0x3891fc(0x204)][_0x3891fc(0x276)](_0x3891fc(0x22d)+_0x47246a[_0x3891fc(0x1fb)],{'task':_0x31101c,'context':_0x3a76d7}),MODEL_ROUTING[_0x3891fc(0x21b)][0x0];}}async['compactizeConversation'](_0x296c34,_0x561fbe){const _0xe4f006=a0_0x353b80,_0x576aa4=this[_0xe4f006(0x1d2)][_0x561fbe];if(!_0x576aa4)throw new Error(_0xe4f006(0x20e)+_0x561fbe);const _0x4809fb=_0x576aa4[_0xe4f006(0x1eb)]*0.8;let _0x48223c=0x0;const _0x574be9=[],_0x100847=await Promise['all'](_0x296c34['map'](async _0x4c741e=>({..._0x4c741e,'estimatedTokens':await this[_0xe4f006(0x215)](_0x4c741e['content'],_0x561fbe)}))),_0xe65e7=[..._0x100847]['reverse']();for(const _0x12beff of _0xe65e7){if(_0x48223c+_0x12beff[_0xe4f006(0x266)]>_0x4809fb){if(_0x574be9['length']===0x0){const _0x1097d5=await this['_truncateMessage'](_0x12beff['content'],_0x4809fb);_0x574be9[_0xe4f006(0x232)]({..._0x12beff,'content':_0x1097d5,'estimatedTokens':_0x4809fb});}break;}_0x574be9[_0xe4f006(0x232)](_0x12beff),_0x48223c+=_0x12beff['estimatedTokens'];}const _0x1aa24d=_0x100847['slice'](0x0,-_0x574be9['length']);if(_0x1aa24d['length']>0x0){const _0x2693ec=await this['_summarizeMessages'](_0x1aa24d,_0x561fbe);_0x574be9[_0xe4f006(0x232)]({'role':_0xe4f006(0x208),'content':_0xe4f006(0x1e1)+_0x2693ec,'timestamp':_0x1aa24d[0x0]['timestamp'],'type':_0xe4f006(0x209),'estimatedTokens':await this['_estimateTokens'](_0x2693ec,_0x561fbe)});}return this[_0xe4f006(0x204)]['info'](_0xe4f006(0x24a)+_0x561fbe,{'originalMessages':_0x296c34[_0xe4f006(0x24e)],'compactizedMessages':_0x574be9[_0xe4f006(0x24e)],'estimatedTokens':_0x48223c,'maxTokens':_0x4809fb}),_0x574be9;}async['trackUsage'](_0x1d1079,_0x1f8c47,_0x2da714,_0x393ae2){const _0x1722c6=a0_0x353b80;try{this[_0x1722c6(0x23f)]&&this['budgetService'][_0x1722c6(0x26c)](_0x1d1079,_0x1f8c47,_0x2da714);}catch(_0x579a4d){this['logger'][_0x1722c6(0x276)](_0x1722c6(0x275)+_0x579a4d[_0x1722c6(0x1fb)]);}}async['handleHttpError'](_0x5e8f91,_0x2c4f5a){const _0x2adfb0=a0_0x353b80,_0x15de26=this['errorHandler']?.[_0x2adfb0(0x273)]?.(_0x5e8f91,_0x2c4f5a);switch(_0x5e8f91['status']||_0x5e8f91[_0x2adfb0(0x1f7)]){case HTTP_STATUS[_0x2adfb0(0x1d5)]:this['logger'][_0x2adfb0(0x276)](_0x2adfb0(0x242),{'context':_0x2c4f5a,'error':_0x5e8f91[_0x2adfb0(0x1fb)]});throw new Error('Invalid\x20request:\x20'+_0x5e8f91[_0x2adfb0(0x1fb)]);case HTTP_STATUS[_0x2adfb0(0x219)]:this['logger'][_0x2adfb0(0x276)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x2c4f5a});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x2adfb0(0x204)][_0x2adfb0(0x276)]('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x2c4f5a});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x2adfb0(0x256)]:this['logger'][_0x2adfb0(0x276)](_0x2adfb0(0x240),{'context':_0x2c4f5a});throw new Error(_0x2adfb0(0x1f3));case HTTP_STATUS[_0x2adfb0(0x255)]:this[_0x2adfb0(0x204)]['warn'](_0x2adfb0(0x20c),{'context':_0x2c4f5a}),await this[_0x2adfb0(0x25b)](_0x2c4f5a);throw new Error(_0x2adfb0(0x262));case HTTP_STATUS[_0x2adfb0(0x231)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS['GATEWAY_TIMEOUT']:this['logger'][_0x2adfb0(0x276)](_0x2adfb0(0x25e),{'context':_0x2c4f5a,'status':_0x5e8f91['status']}),await this['_handleServiceUnavailable'](_0x2c4f5a);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger']['error']('Unknown\x20AI\x20service\x20error',{'context':_0x2c4f5a,'error':_0x5e8f91[_0x2adfb0(0x1fb)]});throw new Error('AI\x20service\x20error:\x20'+_0x5e8f91[_0x2adfb0(0x1fb)]);}}[a0_0x353b80(0x245)](_0x1752bc){const _0x4f2c8d=a0_0x353b80;this['apiKeyManager']=_0x1752bc,this[_0x4f2c8d(0x204)]?.['info'](_0x4f2c8d(0x259),{'hasManager':!!_0x1752bc});}[a0_0x353b80(0x1da)](_0x3dbfad){const _0x15abd9=a0_0x353b80;this[_0x15abd9(0x1db)]=_0x3dbfad,this[_0x15abd9(0x204)]?.[_0x15abd9(0x1d1)]('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x3dbfad});}async[a0_0x353b80(0x1fc)](_0x30e336,_0x1319e4={}){const _0x3c945f=a0_0x353b80,_0xdba4d2=_0x3c945f(0x203)+Date[_0x3c945f(0x1d4)]()+'-'+Math['random']()['toString'](0x24)[_0x3c945f(0x264)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x30e336||typeof _0x30e336!=='string'||_0x30e336[_0x3c945f(0x238)]()[_0x3c945f(0x24e)]===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x9d75b9=_0x1319e4[_0x3c945f(0x1e0)]||'flux-1.1-pro',_0x444afe=_0x1319e4[_0x3c945f(0x1fd)]||_0x3c945f(0x235),_0x52927e=_0x1319e4['quality']||_0x3c945f(0x26f),_0x257b07=_0x1319e4[_0x3c945f(0x210)]||_0x3c945f(0x1df);this['logger'][_0x3c945f(0x1d1)](_0x3c945f(0x20f)+_0x9d75b9,{'requestId':_0xdba4d2,'model':_0x9d75b9,'size':_0x444afe,'quality':_0x52927e,'promptLength':_0x30e336[_0x3c945f(0x24e)]});const _0x2911f9={'prompt':_0x30e336,'model':_0x9d75b9,'size':_0x444afe,'quality':_0x52927e,'response_format':_0x257b07,'n':0x1,'metadata':{'requestId':_0xdba4d2,'timestamp':new Date()['toISOString']()}},_0x30c8f9=await this['_makeImageAPIRequest'](_0x2911f9,_0xdba4d2,{'sessionId':_0x1319e4[_0x3c945f(0x213)],'platformProvided':_0x1319e4[_0x3c945f(0x22e)]||![]});return this[_0x3c945f(0x21a)](),{'url':_0x30c8f9[_0x3c945f(0x239)]?.[0x0]?.['url']||null,'b64_json':_0x30c8f9['data']?.[0x0]?.[_0x3c945f(0x265)]||null,'model':_0x30c8f9[_0x3c945f(0x1e0)]||_0x9d75b9,'requestId':_0xdba4d2,'revisedPrompt':_0x30c8f9[_0x3c945f(0x239)]?.[0x0]?.[_0x3c945f(0x22a)]||_0x30e336};}catch(_0x4ab399){this['_recordFailure'](),this[_0x3c945f(0x204)][_0x3c945f(0x276)]('Image\x20generation\x20failed:\x20'+_0x4ab399['message'],{'requestId':_0xdba4d2,'model':_0x1319e4[_0x3c945f(0x1e0)],'error':_0x4ab399[_0x3c945f(0x201)]});throw _0x4ab399;}}async['checkServiceHealth'](){const _0x5ed53d=a0_0x353b80;try{const _0x4c639c=await this['_makeAPIRequest']('/health',{},'health-check');return _0x4c639c['status']===_0x5ed53d(0x227);}catch(_0x1fdee5){return![];}}async['switchAgentModel'](_0x7e5ef3,_0x34b2e5){const _0x557467=a0_0x353b80;try{if(!this[_0x557467(0x241)](_0x34b2e5))throw new Error('Invalid\x20model:\x20'+_0x34b2e5);let _0x284de7=this[_0x557467(0x25a)]['get'](_0x7e5ef3);!_0x284de7&&(_0x284de7=new ConversationManager(_0x7e5ef3,this[_0x557467(0x204)]),this[_0x557467(0x25a)]['set'](_0x7e5ef3,_0x284de7));const _0x566158=await _0x284de7[_0x557467(0x1f4)](_0x34b2e5),_0x23a6aa=await this[_0x557467(0x1db)]?.[_0x557467(0x212)](_0x7e5ef3);return _0x23a6aa&&(_0x23a6aa[_0x557467(0x1ff)]=_0x34b2e5,await this[_0x557467(0x1db)][_0x557467(0x257)](_0x7e5ef3)),this['logger']['info'](_0x557467(0x251)+_0x7e5ef3,{'newModel':_0x34b2e5,'messageCount':_0x566158['messages'][_0x557467(0x24e)]}),{'success':!![],'agentId':_0x7e5ef3,'newModel':_0x34b2e5,'conversation':_0x566158};}catch(_0xc4c4e9){this['logger']['error']('Model\x20switch\x20failed:\x20'+_0xc4c4e9['message'],{'agentId':_0x7e5ef3,'newModel':_0x34b2e5});throw _0xc4c4e9;}}[a0_0x353b80(0x233)](){const _0x251b70=a0_0x353b80,_0x46a84d={[MODELS[_0x251b70(0x205)]]:{'provider':MODEL_PROVIDERS[_0x251b70(0x254)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x251b70(0x277)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x251b70(0x225)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS[_0x251b70(0x1d0)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x251b70(0x1dc),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x251b70(0x1dc),'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':_0x251b70(0x1dc),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x251b70(0x1dc),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x46a84d;}[a0_0x353b80(0x26a)](_0x5756b7,_0x349122,_0x38de0d){const _0x5dc4bf=a0_0x353b80,_0x507bc0=this['modelSpecs'][_0x349122]||{'provider':'AZURE'};let _0x11a95e;typeof _0x5756b7==='string'?_0x11a95e=[{'role':_0x5dc4bf(0x22c),'content':_0x5756b7}]:_0x11a95e=_0x5756b7[_0x5dc4bf(0x1e2)](_0x2c54ec=>this[_0x5dc4bf(0x243)](_0x2c54ec,_0x349122));switch(_0x507bc0['provider']){case MODEL_PROVIDERS[_0x5dc4bf(0x254)]:return this['_formatForAnthropic'](_0x11a95e);case MODEL_PROVIDERS['OPENAI']:return this['_formatForOpenAI'](_0x11a95e);case MODEL_PROVIDERS[_0x5dc4bf(0x1dc)]:return this[_0x5dc4bf(0x258)](_0x11a95e);default:return _0x11a95e;}}[a0_0x353b80(0x243)](_0x3df56a,_0x170878){const _0x2b6e9f=a0_0x353b80;return{'role':_0x3df56a[_0x2b6e9f(0x228)]||_0x2b6e9f(0x22c),'content':_0x3df56a[_0x2b6e9f(0x202)],'timestamp':_0x3df56a[_0x2b6e9f(0x253)]};}[a0_0x353b80(0x1d7)](_0x5dcde0){return _0x5dcde0['map'](_0x313113=>{const _0x532126=a0_0x36f7;if(_0x313113['role']==='system')return{'role':'user','content':_0x532126(0x260)+_0x313113['content']};return _0x313113;});}[a0_0x353b80(0x1fa)](_0x595239){return _0x595239;}['_formatForAzure'](_0x58306c){const _0x3958b4=a0_0x353b80;return _0x58306c['map'](_0xd38ed0=>({..._0xd38ed0,'content':typeof _0xd38ed0[_0x3958b4(0x202)]==='string'?_0xd38ed0['content']:JSON['stringify'](_0xd38ed0[_0x3958b4(0x202)])}));}[a0_0x353b80(0x241)](_0x1e49b6){const _0x12bbba=a0_0x353b80;this['logger'][_0x12bbba(0x269)]('Validating\x20model',{'model':_0x1e49b6,'modelType':typeof _0x1e49b6});if(this['modelSpecs'][_0x1e49b6]!==undefined)return!![];return this[_0x12bbba(0x204)][_0x12bbba(0x1f1)](_0x12bbba(0x249),{'model':_0x1e49b6,'availableModels':Object['keys'](this['modelSpecs'])}),![];}async[a0_0x353b80(0x1f9)](_0x2fba96){return!![];}async['_estimateTokens'](_0xb6615b,_0x5593ac){const _0x5c5f88=a0_0x353b80;return Math['ceil'](_0xb6615b[_0x5c5f88(0x24e)]/0x4);}async[a0_0x353b80(0x1e3)](_0x1f1905,_0x46605b){const _0x48ae79=a0_0x353b80,_0x53096b=_0x46605b*0x4;if(_0x1f1905[_0x48ae79(0x24e)]<=_0x53096b)return _0x1f1905;return _0x1f1905[_0x48ae79(0x211)](0x0,_0x53096b-0x14)+'\x0a...\x20[message\x20truncated]';}async['_summarizeMessages'](_0x193dc5,_0x542e6d){const _0x617245=a0_0x353b80,_0x72aa1d=_0x193dc5['map'](_0x4e852e=>_0x4e852e[_0x617245(0x228)]+':\x20'+_0x4e852e['content'])['join']('\x0a'),_0x16ac19=0x1f4;if(_0x72aa1d['length']<=_0x16ac19)return _0x72aa1d;return _0x72aa1d[_0x617245(0x211)](0x0,_0x16ac19)+_0x617245(0x21c);}async[a0_0x353b80(0x26e)](_0x20679c,_0x4ec65a,_0x118463,_0x183bca={}){const _0x2276c2=a0_0x353b80,_0x1b7f7a=_0x2276c2(0x23d);let _0x660736,_0x49772a=null,_0x5bde4e=null;this['logger']?.['info']('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x2276c2(0x20a)],'sessionId':_0x183bca['sessionId'],'hasSessionId':!!_0x183bca['sessionId'],'optionsKeys':Object['keys'](_0x183bca),'model':_0x4ec65a['model']});if(this['apiKeyManager']&&_0x183bca['sessionId']){const _0x49f0ef=this[_0x2276c2(0x20a)][_0x2276c2(0x26d)](_0x183bca[_0x2276c2(0x213)],{'platformProvided':_0x183bca[_0x2276c2(0x22e)]||![],'vendor':this['_getVendorFromModel'](_0x4ec65a['model'])});_0x49772a=_0x49f0ef[_0x2276c2(0x21d)],_0x5bde4e=_0x49f0ef[_0x2276c2(0x1ee)],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x183bca[_0x2276c2(0x213)],'hasLoxiaKey':!!_0x49772a,'hasVendorKey':!!_0x5bde4e,'vendor':this[_0x2276c2(0x268)](_0x4ec65a[_0x2276c2(0x1e0)])});}!_0x49772a&&_0x183bca[_0x2276c2(0x25d)]&&(_0x49772a=_0x183bca[_0x2276c2(0x25d)]);!_0x49772a&&this[_0x2276c2(0x236)]['apiKey']&&(_0x49772a=this['config'][_0x2276c2(0x25d)]);if(!_0x49772a)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x5bb7fd=_0x4ec65a['model'],_0x3920ec={'conversationId':_0x118463,'message':_0x4ec65a['messages'][_0x4ec65a[_0x2276c2(0x278)]['length']-0x1]?.[_0x2276c2(0x202)]||'','messages':_0x4ec65a['messages'],'model':_0x5bb7fd,'requestId':_0x118463,'options':_0x4ec65a[_0x2276c2(0x1e7)]||{},'platformProvided':_0x183bca['platformProvided']||![]};_0x4ec65a['system']&&(_0x3920ec[_0x2276c2(0x221)]=_0x4ec65a[_0x2276c2(0x208)]);_0x183bca['platformProvided']?_0x3920ec['apiKey']=_0x49772a:(_0x5bde4e&&(_0x3920ec['vendorApiKey']=_0x5bde4e),_0x183bca['customApiKeys']&&(_0x3920ec['customApiKeys']=_0x183bca['customApiKeys']),_0x3920ec['apiKey']=_0x49772a);for(let _0x3c04cd=0x1;_0x3c04cd<=this['retryAttempts'];_0x3c04cd++){try{this['logger'][_0x2276c2(0x1d1)](_0x2276c2(0x1e8),{'url':_0x1b7f7a,'model':_0x4ec65a[_0x2276c2(0x1e0)],'requestId':_0x118463,'attempt':_0x3c04cd,'hasApiKey':!!_0x49772a});const _0x5ddc48=await fetch(_0x1b7f7a,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':_0x2276c2(0x1e4)+_0x49772a,'X-Request-ID':_0x118463},'body':JSON['stringify'](_0x3920ec),'timeout':this['timeout']});if(!_0x5ddc48['ok']){const _0xa4a923=await _0x5ddc48[_0x2276c2(0x218)](),_0x455f8c=new Error('HTTP\x20'+_0x5ddc48[_0x2276c2(0x24c)]+':\x20'+_0x5ddc48['statusText']+(_0xa4a923?'\x20-\x20'+_0xa4a923:''));_0x455f8c[_0x2276c2(0x24c)]=_0x5ddc48[_0x2276c2(0x24c)];throw _0x455f8c;}const _0x27327d=await _0x5ddc48[_0x2276c2(0x21e)]();return{'choices':[{'message':{'content':_0x27327d['content']||'','role':'assistant'},'finish_reason':_0x27327d['finishReason']||_0x2276c2(0x261)}],'usage':_0x27327d['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x27327d['model']||_0x4ec65a[_0x2276c2(0x1e0)],'id':_0x27327d['requestId']||_0x118463};}catch(_0xe45d12){_0x660736=_0xe45d12,this['logger']['warn'](_0x2276c2(0x207),{'attempt':_0x3c04cd,'requestId':_0x118463,'error':_0xe45d12['message'],'status':_0xe45d12['status']});if(_0x3c04cd<this['retryAttempts']){const _0x2b8aa2=Math[_0x2276c2(0x1f0)](0x2,_0x3c04cd)*0x3e8;this[_0x2276c2(0x204)]['warn']('Retrying\x20in\x20'+_0x2b8aa2+'ms',{'attempt':_0x3c04cd,'requestId':_0x118463}),await new Promise(_0x71a536=>setTimeout(_0x71a536,_0x2b8aa2));}}}this['logger']['error'](_0x2276c2(0x23c),{'requestId':_0x118463,'error':_0x660736['message']});const _0x3e0f5a=_0x660736[_0x2276c2(0x1fb)]&&_0x660736[_0x2276c2(0x1fb)]['includes'](_0x2276c2(0x223));if(_0x3e0f5a)throw new Error('API\x20Configuration\x20Error:\x20'+_0x660736['message']);return{'choices':[{'message':{'content':_0x2276c2(0x1f6)+_0x660736['message'],'role':'assistant'},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4ec65a[_0x2276c2(0x1e0)],'id':'error-'+_0x118463,'error':_0x660736['message']};}async['_makeImageAPIRequest'](_0x3d6c5a,_0x503792,_0x4795f9={}){const _0x15d057=a0_0x353b80,_0xd5b989='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x3c06a4,_0x4ec8f5=null,_0x1c4430=null;this['logger']?.['info']('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x4795f9[_0x15d057(0x213)],'hasSessionId':!!_0x4795f9['sessionId'],'model':_0x3d6c5a[_0x15d057(0x1e0)]});if(this[_0x15d057(0x20a)]&&_0x4795f9['sessionId']){const _0x476f7d=this[_0x15d057(0x20a)][_0x15d057(0x26d)](_0x4795f9[_0x15d057(0x213)],{'platformProvided':_0x4795f9[_0x15d057(0x22e)]||![],'vendor':this['_getVendorFromModel'](_0x3d6c5a[_0x15d057(0x1e0)])});_0x4ec8f5=_0x476f7d[_0x15d057(0x21d)],_0x1c4430=_0x476f7d['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x4795f9['sessionId'],'hasLoxiaKey':!!_0x4ec8f5,'hasVendorKey':!!_0x1c4430});}!_0x4ec8f5&&_0x4795f9['apiKey']&&(_0x4ec8f5=_0x4795f9['apiKey']);!_0x4ec8f5&&this['config'][_0x15d057(0x25d)]&&(_0x4ec8f5=this[_0x15d057(0x236)]['apiKey']);if(!_0x4ec8f5)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x25274a={'prompt':_0x3d6c5a['prompt'],'model':_0x3d6c5a[_0x15d057(0x1e0)]||_0x15d057(0x1e9),'size':_0x3d6c5a['size'],'quality':_0x3d6c5a[_0x15d057(0x23a)],'style':_0x3d6c5a[_0x15d057(0x1f8)]||_0x15d057(0x230),'n':_0x3d6c5a['n']||0x1,'requestId':_0x503792};for(let _0x5c959a=0x1;_0x5c959a<=this[_0x15d057(0x23e)];_0x5c959a++){try{this['logger'][_0x15d057(0x1d1)]('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0xd5b989,'model':_0x3d6c5a[_0x15d057(0x1e0)],'requestId':_0x503792,'attempt':_0x5c959a,'hasApiKey':!!_0x4ec8f5});const _0x2e12b7=await fetch(_0xd5b989,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x4ec8f5,'X-Request-ID':_0x503792},'body':JSON['stringify'](_0x25274a),'timeout':this[_0x15d057(0x250)]*0x2});if(!_0x2e12b7['ok']){const _0x534115=await _0x2e12b7['text'](),_0x11b129=new Error('HTTP\x20'+_0x2e12b7[_0x15d057(0x24c)]+':\x20'+_0x2e12b7['statusText']+(_0x534115?'\x20-\x20'+_0x534115:''));_0x11b129['status']=_0x2e12b7['status'];throw _0x11b129;}const _0xc31778=await _0x2e12b7['json']();return{'data':_0xc31778[_0x15d057(0x1e5)]||[],'model':_0xc31778['model']||_0x3d6c5a[_0x15d057(0x1e0)],'created':_0xc31778['created']||Date['now'](),'usage':_0xc31778['usage']};}catch(_0x1a3c34){_0x3c06a4=_0x1a3c34,this[_0x15d057(0x204)]['warn'](_0x15d057(0x220),{'attempt':_0x5c959a,'requestId':_0x503792,'error':_0x1a3c34['message'],'status':_0x1a3c34['status']});if(_0x5c959a<this['retryAttempts']){const _0x3342e6=Math['pow'](0x2,_0x5c959a)*0x3e8;this['logger'][_0x15d057(0x1f1)](_0x15d057(0x1f2)+_0x3342e6+'ms',{'attempt':_0x5c959a,'requestId':_0x503792}),await new Promise(_0x130ef6=>setTimeout(_0x130ef6,_0x3342e6));}}}this[_0x15d057(0x204)]['error']('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x503792,'error':_0x3c06a4[_0x15d057(0x1fb)]});throw new Error('Image\x20generation\x20failed:\x20'+_0x3c06a4['message']);}async[a0_0x353b80(0x244)](_0x10306a){await new Promise(_0x2c45fe=>setTimeout(_0x2c45fe,0x64));}async[a0_0x353b80(0x25b)](_0x5415e5){const _0x2a5724=a0_0x353b80,_0x3953a4=0xea60;this[_0x2a5724(0x204)][_0x2a5724(0x1d1)](_0x2a5724(0x247)+_0x3953a4+'ms',_0x5415e5),await new Promise(_0x2bdc81=>setTimeout(_0x2bdc81,_0x3953a4));}async[a0_0x353b80(0x1ea)](_0x4452a4){const _0x4bd661=a0_0x353b80;this[_0x4bd661(0x267)]();const _0x3ede15=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x3ede15+'ms',_0x4452a4),await new Promise(_0x4410e1=>setTimeout(_0x4410e1,_0x3ede15));}['_isCircuitBreakerOpen'](){const _0x10a710=a0_0x353b80;if(!this['circuitBreaker']['isOpen'])return![];const _0x59c264=Date[_0x10a710(0x1d4)]()-this['circuitBreaker'][_0x10a710(0x1d9)];if(_0x59c264>this[_0x10a710(0x24d)][_0x10a710(0x250)])return this['circuitBreaker'][_0x10a710(0x246)]=![],this['circuitBreaker'][_0x10a710(0x274)]=0x0,![];return!![];}['_recordFailure'](){const _0x27f960=a0_0x353b80;this['circuitBreaker']['failures']++,this['circuitBreaker'][_0x27f960(0x1d9)]=Date[_0x27f960(0x1d4)](),this[_0x27f960(0x24d)]['failures']>=this[_0x27f960(0x24d)][_0x27f960(0x20b)]&&(this[_0x27f960(0x24d)]['isOpen']=!![],this[_0x27f960(0x204)]['warn']('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}[a0_0x353b80(0x21a)](){const _0x250e9b=a0_0x353b80;this['circuitBreaker'][_0x250e9b(0x274)]>0x0&&(this[_0x250e9b(0x24d)][_0x250e9b(0x274)]=0x0,this[_0x250e9b(0x24d)]['isOpen']=![],this[_0x250e9b(0x204)][_0x250e9b(0x1d1)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x148dd1){const _0x2827e9=a0_0x353b80;if(!_0x148dd1)return null;const _0x30fa39=_0x148dd1['toLowerCase']();if(_0x30fa39['includes']('anthropic')||_0x30fa39['includes'](_0x2827e9(0x270)))return'anthropic';else{if(_0x30fa39[_0x2827e9(0x237)]('openai')||_0x30fa39[_0x2827e9(0x237)](_0x2827e9(0x1cf)))return _0x2827e9(0x20d);else{if(_0x30fa39['includes']('deepseek'))return'deepseek';else{if(_0x30fa39['includes'](_0x2827e9(0x216)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x20c6e3,_0x282907){const _0x54509c=a0_0x353b80;this['agentId']=_0x20c6e3,this['logger']=_0x282907,this[_0x54509c(0x25c)]=new Map();}async['switchModel'](_0x1b9535){return{'messages':[],'model':_0x1b9535,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
|
|
1
|
+
const a0_0x3e0030=a0_0x170f;(function(_0xbe0eaa,_0xb89231){const _0x4c1cb9=a0_0x170f,_0x401417=_0xbe0eaa();while(!![]){try{const _0x204c00=-parseInt(_0x4c1cb9(0x215))/0x1*(-parseInt(_0x4c1cb9(0x1c1))/0x2)+parseInt(_0x4c1cb9(0x1df))/0x3*(parseInt(_0x4c1cb9(0x1b0))/0x4)+parseInt(_0x4c1cb9(0x1c9))/0x5+-parseInt(_0x4c1cb9(0x1f9))/0x6+-parseInt(_0x4c1cb9(0x1bc))/0x7+parseInt(_0x4c1cb9(0x222))/0x8+parseInt(_0x4c1cb9(0x1dc))/0x9*(parseInt(_0x4c1cb9(0x257))/0xa);if(_0x204c00===_0xb89231)break;else _0x401417['push'](_0x401417['shift']());}catch(_0x385225){_0x401417['push'](_0x401417['shift']());}}}(a0_0x5f3f,0xd82aa));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x170f(_0xac9fa0,_0x4f2c90){_0xac9fa0=_0xac9fa0-0x1aa;const _0x5f3f94=a0_0x5f3f();let _0x170fb2=_0x5f3f94[_0xac9fa0];if(a0_0x170f['KeDQhl']===undefined){var _0x57e062=function(_0x3ecd70){const _0x5d25e0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x23d0e6='',_0x472369='';for(let _0x3bccf6=0x0,_0x1d963e,_0x330893,_0x2acc76=0x0;_0x330893=_0x3ecd70['charAt'](_0x2acc76++);~_0x330893&&(_0x1d963e=_0x3bccf6%0x4?_0x1d963e*0x40+_0x330893:_0x330893,_0x3bccf6++%0x4)?_0x23d0e6+=String['fromCharCode'](0xff&_0x1d963e>>(-0x2*_0x3bccf6&0x6)):0x0){_0x330893=_0x5d25e0['indexOf'](_0x330893);}for(let _0x389ade=0x0,_0x3ccafb=_0x23d0e6['length'];_0x389ade<_0x3ccafb;_0x389ade++){_0x472369+='%'+('00'+_0x23d0e6['charCodeAt'](_0x389ade)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x472369);};a0_0x170f['ObrxSV']=_0x57e062,a0_0x170f['qqXbkA']={},a0_0x170f['KeDQhl']=!![];}const _0x3e00af=_0x5f3f94[0x0],_0x340a51=_0xac9fa0+_0x3e00af,_0x2a3485=a0_0x170f['qqXbkA'][_0x340a51];return!_0x2a3485?(_0x170fb2=a0_0x170f['ObrxSV'](_0x170fb2),a0_0x170f['qqXbkA'][_0x340a51]=_0x170fb2):_0x170fb2=_0x2a3485,_0x170fb2;}function a0_0x5f3f(){const _0x6141a5=['mJr2vuvcyu0','CgXHDgzVCM1qCM92AwrLza','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','BwvZC2fNzxm','z2vUzxjHDgvjBwfNzq','DxnLCG','yxbPs2v5twfUywDLCG','D2fYBG','DML2Awq','y2vPBa','AxnpCgvU','ue9tva','ic0G','x2nOzwnRuMf0zuXPBwL0','ChjLzMvYCMvKtw9KzwW','x3jLy29YzezHAwX1CMu','C3bLzwq','y29UDMvYC2f0Aw9UCW','x2HHBMrSzvjHDgvmAw1PDa','Dgv4Da','ChjVBxb0','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','CMvXDwvZDff1zxvL','x2zVCM1HDezVCK9Wzw5bsq','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','x3jLC2v0q2LYy3vPDejYzwfRzxi','ntuWnJi2mfvPyuzgDa','zgvLChnLzwS','uMf0zsbSAw1PDcbLEgnLzwrLza','Aw5JBhvKzxm','Dw5ZAgLMDa','sw52ywXPzcbYzxf1zxn0oIa','y3vZDg9TqxbPs2v5CW','r1buxZrFtuLosq','qMvHCMvYia','uMv0CNLPBMCGAw4G','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','x2DLDfzLBMrVCKzYB21nB2rLBa','DMvUzg9YqxbPs2v5','ywDLBNrjza','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','C3rYAw5N','CMfUzg9T','zMX1Ec0XlJeTChjV','C2vUze1LC3nHz2u','C3rHDhvZ','CMf0zuXPBwL0zxjZ','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','u0vsvKLdrv9vtKfwquLmqujmrq','ChvZAa','y29UDgv4DfDPBMrVDW','DxjS','BwvZC2fNzq','mtLyAMreqvi','CMv2zxjZzq','zMfPBhvYzxm','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','quKGC2vYDMLJzsbLCNjVCJOG','z2v0s2v5C0zVCLjLCxvLC3q','z3b0','AgfUzgXLshr0CevYCM9Y','x2zVCM1HDezVCKfUDgHYB3bPyW','Aw5MBW','qKfex0DbvevxqvK','tw9KzwWGC3DPDgnOigzHAwXLzdOG','ANnVBG','ntq4nJqYnef6EKf6rG','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','q2LYy3vPDcbICMvHA2vYihjLC2v0ic0GC2vYDMLJzsbYzwnVDMvYzwq','Bwf4x3rVA2vUCW','CgvYC2LZDefNzw50u3rHDgu','C3LZDgvT','tK9ux0zpvu5e','CMvZCg9UC2vgB3jTyxq','y29TCgXLEgL0Eq','Dg9tDhjPBMC','CMvXlq','DgLTzw91Da','y2LYy3vPDejYzwfRzxi','CM9Szq','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','CMvXDwvZDeLK','t1bftKfj','Aw1Hz2vZ','C3vIC3rYAw5N','BwfW','ywXS','A2v5CW','qu5usfjpueLdx0HbsuTv','C2XPy2u','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','C3DPDgnOtw9KzwW','C3rHBMrHCMq','CxvHBgL0Eq','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','DhjHy2TvC2fNzq','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','z2v0','B3b0Aw9UCW','y29UDMvYC2f0Aw9UtwfUywDLCNm','y29UzMLN','Bg9Nz2vY','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','rKfmtejbq0S','C2v0qwDLBNrqB29S','C3LZDgvTuhjVBxb0','zMLUAxnOuMvHC29U','qvPvuKu','x2nOzwnRtw9KzwXizwfSDgG','zxn0Aw1HDgvKvg9Rzw5Z','zgf0yq','x2LZvMfSAwrnB2rLBa','x3rYDw5JyxrLtwvZC2fNzq','ChjVDMLKzxi','vu5bvvrit1jjwKve','x2LZq2LYy3vPDejYzwfRzxjpCgvU','ywDLBNrqB29S','mtuWBKLnBxHW','BM93','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','yJy0x2PZB24','mtaYnhGXmdi0','x2zVCM1HDfnPBMDSzu1LC3nHz2u','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','CMv0CNLbDhrLBxb0CW','nJe0nJmYrg5tyKv1','yMfJA2vUza','y29UDgvUDa','CMv2AxnLzf9WCM9TChq','Dg9ju09tDhjPBMC','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','yNvKz2v0u2vYDMLJzq','yxbPs2v5','yxnZAxn0yw50','AgLNAa','Bw9KzwW','y2XHC3nPzNLfCNjVCG','ote4ndCYmvvKCKHJrW','y29Kzq','vw5RBM93BIbTB2rLBdOG','C3rYAw5NAwz5','x2vZDgLTyxrLvg9Rzw5Z','mtaWmtr4s2vPquq','Dg9vChbLCKnHC2u','C3rVCa','twfRAw5NihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','C3rHDhvZvgv4Da','BgvUz3rO','qu5usfjpueLd','z2v0qwDLBNq','oti0ndmWr0r3suLS','y2HVAwnLCW','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','DhjPBq','Dg90ywXFDg9Rzw5Z','ueHjxZq','DgHYzxnOB2XK','zxjYB3i','qxv0AgvUDgLJyxrPB24GzMfPBgvKihDPDgGGquKGC2vYDMLJzq','C2vZC2LVBKLK','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','yMfZzvvYBa','C3rHy2S','DxnHz2u','r1buxZq','Bw9KzwXtCgvJCW','C3r5Bgu','zxjYB3jiyw5KBgvY','sfruuca','ntuYmdG3sfvkzM5Y','CgHP','x21HA2vjBwfNzufqsvjLCxvLC3q'];a0_0x5f3f=function(){return _0x6141a5;};return a0_0x5f3f();}class AIService{constructor(_0x23d0e6,_0x472369,_0x3bccf6,_0x1d963e){const _0x977c62=a0_0x170f;this[_0x977c62(0x245)]=_0x23d0e6,this['logger']=_0x472369,this[_0x977c62(0x1b6)]=_0x3bccf6,this[_0x977c62(0x1da)]=_0x1d963e,this[_0x977c62(0x1d4)]=_0x23d0e6[_0x977c62(0x1b1)]?.[_0x977c62(0x1d4)]||'https://api.loxia.ai',this['timeout']=_0x23d0e6['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x23d0e6['backend']?.[_0x977c62(0x1af)]||0x3,this[_0x977c62(0x20d)]=new Map(),this[_0x977c62(0x1f5)]=new Map(),this[_0x977c62(0x22e)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0x977c62(0x20e)](),this[_0x977c62(0x244)]=new Map(),this[_0x977c62(0x1e5)]=null,this[_0x977c62(0x256)]=null;}async[a0_0x3e0030(0x20b)](_0x330893,_0x2acc76,_0x389ade={}){const _0x3b3687=a0_0x3e0030,_0x3ccafb=_0x3b3687(0x22c)+Date['now']()+'-'+Math[_0x3b3687(0x209)]()[_0x3b3687(0x22b)](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this['_checkRateLimit'](_0x330893);const _0x1fcd7a=this[_0x3b3687(0x241)](_0x2acc76,_0x330893,_0x389ade),_0x198f66={'model':_0x330893,'messages':_0x1fcd7a,'options':{'max_tokens':this['modelSpecs'][_0x330893]?.['maxTokens']||0xfa0,'temperature':_0x389ade['temperature']||0.7,'stream':_0x389ade['stream']||![]},'metadata':{'requestId':_0x3ccafb,'agentId':_0x389ade['agentId'],'timestamp':new Date()[_0x3b3687(0x1b4)]()}};_0x389ade[_0x3b3687(0x24b)]&&(_0x198f66[_0x3b3687(0x227)]=_0x389ade['systemPrompt']);this[_0x3b3687(0x246)][_0x3b3687(0x21e)]('Sending\x20message\x20to\x20model:\x20'+_0x330893,{'requestId':_0x3ccafb,'agentId':_0x389ade[_0x3b3687(0x206)],'messageCount':Array['isArray'](_0x2acc76)?_0x2acc76['length']:0x1,'maxTokens':_0x198f66[_0x3b3687(0x225)]});const _0x217122=await this['_makeAPIRequest']('/chat/completions',_0x198f66,_0x3ccafb,{..._0x389ade,'sessionId':_0x389ade['sessionId'],'platformProvided':_0x389ade['platformProvided']||![]});return _0x217122['usage']&&await this['trackUsage'](_0x389ade['agentId'],_0x330893,{'prompt_tokens':_0x217122[_0x3b3687(0x1d6)]['prompt_tokens']||0x0,'completion_tokens':_0x217122['usage']['completion_tokens']||0x0,'total_tokens':_0x217122['usage'][_0x3b3687(0x1cd)]||0x0}),this['_resetCircuitBreaker'](),{'content':_0x217122['choices'][0x0]?.['message']?.['content']||'','model':_0x217122['model'],'tokenUsage':_0x217122[_0x3b3687(0x1d6)],'requestId':_0x3ccafb,'finishReason':_0x217122[_0x3b3687(0x1ca)][0x0]?.['finish_reason']};}catch(_0x23b105){this[_0x3b3687(0x1ee)](),this['logger'][_0x3b3687(0x1d0)](_0x3b3687(0x23f)+_0x23b105[_0x3b3687(0x214)],{'requestId':_0x3ccafb,'model':_0x330893,'agentId':_0x389ade[_0x3b3687(0x206)],'error':_0x23b105[_0x3b3687(0x1d5)]}),await this['handleHttpError'](_0x23b105,{'requestId':_0x3ccafb,'model':_0x330893,'agentId':_0x389ade['agentId']});throw _0x23b105;}}async['routeModel'](_0x2dd936,_0x4871a7={}){const _0xa46688=a0_0x3e0030;try{const _0x2a11e1=MODEL_ROUTING[_0x2dd936[_0xa46688(0x1c2)]()]||MODEL_ROUTING[_0xa46688(0x249)],_0x2dc14b=[];for(const _0x1d3ec6 of _0x2a11e1){const _0x4fdfe7=await this['_checkModelHealth'](_0x1d3ec6);_0x4fdfe7&&_0x2dc14b[_0xa46688(0x211)](_0x1d3ec6);}if(_0x2dc14b[_0xa46688(0x1c6)]===0x0)return this['logger']['warn'](_0xa46688(0x230)+_0x2dd936+',\x20using\x20fallback'),MODEL_ROUTING[_0xa46688(0x249)][0x0];let _0x11a2ef=_0x2dc14b[0x0];if(_0x4871a7[_0xa46688(0x1ed)]&&_0x2dc14b['includes'](_0x4871a7['preferredModel']))_0x11a2ef=_0x4871a7['preferredModel'];else{if(_0x4871a7[_0xa46688(0x22a)]===_0xa46688(0x1b9)&&_0x2dc14b[_0xa46688(0x1fc)](MODELS['ANTHROPIC_OPUS']))_0x11a2ef=MODELS['ANTHROPIC_OPUS'];else _0x4871a7[_0xa46688(0x1ef)]==='fast'&&_0x2dc14b['includes'](MODELS[_0xa46688(0x239)])&&(_0x11a2ef=MODELS['ANTHROPIC_HAIKU']);}return this['logger']['info'](_0xa46688(0x1cb)+_0x2dd936,{'selectedModel':_0x11a2ef,'availableModels':_0x2dc14b[_0xa46688(0x1c6)],'context':_0x4871a7}),_0x11a2ef;}catch(_0xb3af99){return this['logger']['error'](_0xa46688(0x218)+_0xb3af99[_0xa46688(0x214)],{'task':_0x2dd936,'context':_0x4871a7}),MODEL_ROUTING[_0xa46688(0x249)][0x0];}}async['compactizeConversation'](_0x5a0f6a,_0x2f4466){const _0x1d83ed=a0_0x3e0030,_0x15c016=this[_0x1d83ed(0x1d8)][_0x2f4466];if(!_0x15c016)throw new Error(_0x1d83ed(0x1be)+_0x2f4466);const _0x2183ac=_0x15c016[_0x1d83ed(0x212)]*0.8;let _0x3b2aa5=0x0;const _0x4de653=[],_0x14bde9=await Promise[_0x1d83ed(0x237)](_0x5a0f6a[_0x1d83ed(0x236)](async _0x2bbe9d=>({..._0x2bbe9d,'estimatedTokens':await this[_0x1d83ed(0x1c0)](_0x2bbe9d[_0x1d83ed(0x1b2)],_0x2f4466)}))),_0x28e4ad=[..._0x14bde9][_0x1d83ed(0x216)]();for(const _0x2590ae of _0x28e4ad){if(_0x3b2aa5+_0x2590ae['estimatedTokens']>_0x2183ac){if(_0x4de653['length']===0x0){const _0x2bc1f7=await this[_0x1d83ed(0x252)](_0x2590ae['content'],_0x2183ac);_0x4de653[_0x1d83ed(0x1fd)]({..._0x2590ae,'content':_0x2bc1f7,'estimatedTokens':_0x2183ac});}break;}_0x4de653['unshift'](_0x2590ae),_0x3b2aa5+=_0x2590ae[_0x1d83ed(0x24f)];}const _0x485c99=_0x14bde9[_0x1d83ed(0x23a)](0x0,-_0x4de653[_0x1d83ed(0x1c6)]);if(_0x485c99[_0x1d83ed(0x1c6)]>0x0){const _0x235a2e=await this['_summarizeMessages'](_0x485c99,_0x2f4466);_0x4de653['unshift']({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x235a2e,'timestamp':_0x485c99[0x0]['timestamp'],'type':'summary','estimatedTokens':await this[_0x1d83ed(0x1c0)](_0x235a2e,_0x2f4466)});}return this['logger']['info']('Conversation\x20compactized\x20for\x20model:\x20'+_0x2f4466,{'originalMessages':_0x5a0f6a['length'],'compactizedMessages':_0x4de653['length'],'estimatedTokens':_0x3b2aa5,'maxTokens':_0x2183ac}),_0x4de653;}async[a0_0x3e0030(0x240)](_0x33bce2,_0x14196f,_0x1e75d7,_0x5067f6){const _0x4d0c89=a0_0x3e0030;try{this[_0x4d0c89(0x1b6)]&&this[_0x4d0c89(0x1b6)][_0x4d0c89(0x240)](_0x33bce2,_0x14196f,_0x1e75d7);}catch(_0x39183d){this['logger']['error'](_0x4d0c89(0x248)+_0x39183d['message']);}}async[a0_0x3e0030(0x21c)](_0x1b7a87,_0x4f4709){const _0x433a48=a0_0x3e0030,_0x4150a1=this[_0x433a48(0x1da)]?.[_0x433a48(0x1bb)]?.(_0x1b7a87,_0x4f4709);switch(_0x1b7a87[_0x433a48(0x20c)]||_0x1b7a87[_0x433a48(0x1bd)]){case HTTP_STATUS['BAD_REQUEST']:this['logger'][_0x433a48(0x1d0)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x4f4709,'error':_0x1b7a87['message']});throw new Error(_0x433a48(0x1fe)+_0x1b7a87['message']);case HTTP_STATUS[_0x433a48(0x254)]:this[_0x433a48(0x246)]['error'](_0x433a48(0x1d1),{'context':_0x4f4709});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x433a48(0x246)]['error'](_0x433a48(0x203),{'context':_0x4f4709});throw new Error(_0x433a48(0x1f4));case HTTP_STATUS[_0x433a48(0x228)]:this['logger']['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x4f4709});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS['TOO_MANY_REQUESTS']:this['logger']['warn'](_0x433a48(0x1fb),{'context':_0x4f4709}),await this[_0x433a48(0x1f1)](_0x4f4709);throw new Error(_0x433a48(0x1e1));case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS[_0x433a48(0x21f)]:case HTTP_STATUS[_0x433a48(0x210)]:case HTTP_STATUS['GATEWAY_TIMEOUT']:this[_0x433a48(0x246)][_0x433a48(0x1d0)](_0x433a48(0x1d3),{'context':_0x4f4709,'status':_0x1b7a87['status']}),await this['_handleServiceUnavailable'](_0x4f4709);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0x433a48(0x246)]['error'](_0x433a48(0x23b),{'context':_0x4f4709,'error':_0x1b7a87[_0x433a48(0x214)]});throw new Error(_0x433a48(0x219)+_0x1b7a87['message']);}}['setApiKeyManager'](_0x512216){const _0x18445b=a0_0x3e0030;this['apiKeyManager']=_0x512216,this['logger']?.[_0x18445b(0x21e)]('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x512216});}[a0_0x3e0030(0x24a)](_0x3c84ad){const _0x2d8bc1=a0_0x3e0030;this['agentPool']=_0x3c84ad,this[_0x2d8bc1(0x246)]?.['info'](_0x2d8bc1(0x1aa),{'hasAgentPool':!!_0x3c84ad});}async[a0_0x3e0030(0x1e3)](_0x3723ba,_0x24dcd5={}){const _0x5e7e95=a0_0x3e0030,_0x2f27bd='img-'+Date[_0x5e7e95(0x258)]()+'-'+Math[_0x5e7e95(0x209)]()['toString'](0x24)['substr'](0x2,0x9);try{if(this[_0x5e7e95(0x255)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x3723ba||typeof _0x3723ba!=='string'||_0x3723ba[_0x5e7e95(0x1cc)]()['length']===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x14d0b5=_0x24dcd5[_0x5e7e95(0x1ba)]||_0x5e7e95(0x20a),_0x2079d0=_0x24dcd5['size']||_0x5e7e95(0x1ac),_0x5f3209=_0x24dcd5[_0x5e7e95(0x23e)]||_0x5e7e95(0x23d),_0x20a9c0=_0x24dcd5[_0x5e7e95(0x229)]||_0x5e7e95(0x213);this[_0x5e7e95(0x246)][_0x5e7e95(0x21e)](_0x5e7e95(0x1f7)+_0x14d0b5,{'requestId':_0x2f27bd,'model':_0x14d0b5,'size':_0x2079d0,'quality':_0x5f3209,'promptLength':_0x3723ba[_0x5e7e95(0x1c6)]});const _0x5465af={'prompt':_0x3723ba,'model':_0x14d0b5,'size':_0x2079d0,'quality':_0x5f3209,'response_format':_0x20a9c0,'n':0x1,'metadata':{'requestId':_0x2f27bd,'timestamp':new Date()['toISOString']()}},_0x5d461b=await this[_0x5e7e95(0x1de)](_0x5465af,_0x2f27bd,{'sessionId':_0x24dcd5['sessionId'],'platformProvided':_0x24dcd5[_0x5e7e95(0x1e0)]||![]});return this['_resetCircuitBreaker'](),{'url':_0x5d461b[_0x5e7e95(0x250)]?.[0x0]?.[_0x5e7e95(0x213)]||null,'b64_json':_0x5d461b[_0x5e7e95(0x250)]?.[0x0]?.[_0x5e7e95(0x1ab)]||null,'model':_0x5d461b[_0x5e7e95(0x1ba)]||_0x14d0b5,'requestId':_0x2f27bd,'revisedPrompt':_0x5d461b['data']?.[0x0]?.[_0x5e7e95(0x1b3)]||_0x3723ba};}catch(_0x1a215f){this['_recordFailure'](),this[_0x5e7e95(0x246)][_0x5e7e95(0x1d0)]('Image\x20generation\x20failed:\x20'+_0x1a215f[_0x5e7e95(0x214)],{'requestId':_0x2f27bd,'model':_0x24dcd5[_0x5e7e95(0x1ba)],'error':_0x1a215f['stack']});throw _0x1a215f;}}async['checkServiceHealth'](){const _0x8832c7=a0_0x3e0030;try{const _0x468edb=await this['_makeAPIRequest']('/health',{},'health-check');return _0x468edb[_0x8832c7(0x20c)]==='healthy';}catch(_0x5da506){return![];}}async['switchAgentModel'](_0x57b0b2,_0x45c086){const _0x553761=a0_0x3e0030;try{if(!this['_isValidModel'](_0x45c086))throw new Error('Invalid\x20model:\x20'+_0x45c086);let _0x38e0ee=this[_0x553761(0x244)][_0x553761(0x242)](_0x57b0b2);!_0x38e0ee&&(_0x38e0ee=new ConversationManager(_0x57b0b2,this[_0x553761(0x246)]),this['conversationManagers']['set'](_0x57b0b2,_0x38e0ee));const _0x131380=await _0x38e0ee[_0x553761(0x23c)](_0x45c086),_0x18e051=await this[_0x553761(0x256)]?.[_0x553761(0x1c8)](_0x57b0b2);return _0x18e051&&(_0x18e051['currentModel']=_0x45c086,await this[_0x553761(0x256)][_0x553761(0x226)](_0x57b0b2)),this['logger']['info']('Agent\x20model\x20switched:\x20'+_0x57b0b2,{'newModel':_0x45c086,'messageCount':_0x131380['messages'][_0x553761(0x1c6)]}),{'success':!![],'agentId':_0x57b0b2,'newModel':_0x45c086,'conversation':_0x131380};}catch(_0x11ca32){this['logger'][_0x553761(0x1d0)](_0x553761(0x220)+_0x11ca32[_0x553761(0x214)],{'agentId':_0x57b0b2,'newModel':_0x45c086});throw _0x11ca32;}}[a0_0x3e0030(0x20e)](){const _0x1cc308=a0_0x3e0030,_0x55d96d={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS['ANTHROPIC_OPUS']]:{'provider':MODEL_PROVIDERS[_0x1cc308(0x1c7)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS[_0x1cc308(0x1c7)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x1cc308(0x1d7)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS[_0x1cc308(0x200)]]:{'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['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x1cc308(0x233)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x1cc308(0x1ce)]]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x1cc308(0x24d),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x1cc308(0x24d),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x1cc308(0x24d),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x1cc308(0x24d),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x55d96d;}[a0_0x3e0030(0x241)](_0x4968b5,_0x503979,_0x5bc17f){const _0x4ca204=a0_0x3e0030,_0x128dcd=this['modelSpecs'][_0x503979]||{'provider':'AZURE'};let _0x3c9058;typeof _0x4968b5===_0x4ca204(0x208)?_0x3c9058=[{'role':'user','content':_0x4968b5}]:_0x3c9058=_0x4968b5[_0x4ca204(0x236)](_0xacaed3=>this[_0x4ca204(0x1ad)](_0xacaed3,_0x503979));switch(_0x128dcd[_0x4ca204(0x253)]){case MODEL_PROVIDERS['ANTHROPIC']:return this['_formatForAnthropic'](_0x3c9058);case MODEL_PROVIDERS[_0x4ca204(0x233)]:return this[_0x4ca204(0x1f6)](_0x3c9058);case MODEL_PROVIDERS['AZURE']:return this['_formatForAzure'](_0x3c9058);default:return _0x3c9058;}}['_formatSingleMessage'](_0x25db3e,_0x735bc2){const _0x20c6c7=a0_0x3e0030;return{'role':_0x25db3e[_0x20c6c7(0x22f)]||'user','content':_0x25db3e[_0x20c6c7(0x1b2)],'timestamp':_0x25db3e['timestamp']};}[a0_0x3e0030(0x21d)](_0x598753){return _0x598753['map'](_0x16694e=>{const _0x328e38=a0_0x170f;if(_0x16694e['role']===_0x328e38(0x227))return{'role':_0x328e38(0x1e4),'content':'System:\x20'+_0x16694e['content']};return _0x16694e;});}[a0_0x3e0030(0x1f6)](_0x510024){return _0x510024;}['_formatForAzure'](_0x4966a5){const _0x18a49c=a0_0x3e0030;return _0x4966a5[_0x18a49c(0x236)](_0x32aca3=>({..._0x32aca3,'content':typeof _0x32aca3[_0x18a49c(0x1b2)]===_0x18a49c(0x208)?_0x32aca3[_0x18a49c(0x1b2)]:JSON['stringify'](_0x32aca3['content'])}));}[a0_0x3e0030(0x251)](_0x1cc3ca){const _0x2f523a=a0_0x3e0030;this[_0x2f523a(0x246)]['debug']('Validating\x20model',{'model':_0x1cc3ca,'modelType':typeof _0x1cc3ca});if(this[_0x2f523a(0x1d8)][_0x1cc3ca]!==undefined)return!![];return this[_0x2f523a(0x246)]['warn']('Model\x20validation\x20failed',{'model':_0x1cc3ca,'availableModels':Object['keys'](this[_0x2f523a(0x1d8)])}),![];}async[a0_0x3e0030(0x24e)](_0x3efbca){return!![];}async[a0_0x3e0030(0x1c0)](_0x1db7aa,_0x3c2bfa){const _0xff12c3=a0_0x3e0030;return Math[_0xff12c3(0x1e8)](_0x1db7aa[_0xff12c3(0x1c6)]/0x4);}async[a0_0x3e0030(0x252)](_0x55e252,_0xca916c){const _0x160532=a0_0x3e0030,_0x4b21cd=_0xca916c*0x4;if(_0x55e252[_0x160532(0x1c6)]<=_0x4b21cd)return _0x55e252;return _0x55e252[_0x160532(0x235)](0x0,_0x4b21cd-0x14)+'\x0a...\x20[message\x20truncated]';}async['_summarizeMessages'](_0x607e8e,_0x4eca31){const _0x36558b=a0_0x3e0030,_0x1e782a=_0x607e8e['map'](_0x449706=>_0x449706[_0x36558b(0x22f)]+':\x20'+_0x449706[_0x36558b(0x1b2)])['join']('\x0a'),_0x29c76b=0x1f4;if(_0x1e782a['length']<=_0x29c76b)return _0x1e782a;return _0x1e782a['substring'](0x0,_0x29c76b)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x204ca0,_0x4d4769,_0xe8511a,_0xb1da53={}){const _0x4d5d1c=a0_0x3e0030,_0x4ee596='https://autopilot-api.azurewebsites.net/llm/chat';let _0x4eadd4,_0x2032cd=null,_0x5a0c43=null;this[_0x4d5d1c(0x246)]?.[_0x4d5d1c(0x21e)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x4d5d1c(0x1e5)],'sessionId':_0xb1da53['sessionId'],'hasSessionId':!!_0xb1da53[_0x4d5d1c(0x1d2)],'optionsKeys':Object[_0x4d5d1c(0x238)](_0xb1da53),'model':_0x4d4769['model']});if(this['apiKeyManager']&&_0xb1da53['sessionId']){const _0x181749=this[_0x4d5d1c(0x1e5)]['getKeysForRequest'](_0xb1da53['sessionId'],{'platformProvided':_0xb1da53[_0x4d5d1c(0x1e0)]||![],'vendor':this['_getVendorFromModel'](_0x4d4769[_0x4d5d1c(0x1ba)])});_0x2032cd=_0x181749['loxiaApiKey'],_0x5a0c43=_0x181749['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0xb1da53[_0x4d5d1c(0x1d2)],'hasLoxiaKey':!!_0x2032cd,'hasVendorKey':!!_0x5a0c43,'vendor':this['_getVendorFromModel'](_0x4d4769[_0x4d5d1c(0x1ba)])});}!_0x2032cd&&_0xb1da53[_0x4d5d1c(0x1b7)]&&(_0x2032cd=_0xb1da53[_0x4d5d1c(0x1b7)]);!_0x2032cd&&this[_0x4d5d1c(0x245)][_0x4d5d1c(0x1b7)]&&(_0x2032cd=this[_0x4d5d1c(0x245)]['apiKey']);if(!_0x2032cd)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x2ef7bc=_0x4d4769[_0x4d5d1c(0x1ba)],_0xe18460={'conversationId':_0xe8511a,'message':_0x4d4769[_0x4d5d1c(0x1e2)][_0x4d4769['messages']['length']-0x1]?.['content']||'','messages':_0x4d4769[_0x4d5d1c(0x1e2)],'model':_0x2ef7bc,'requestId':_0xe8511a,'options':_0x4d4769[_0x4d5d1c(0x243)]||{},'platformProvided':_0xb1da53[_0x4d5d1c(0x1e0)]||![]};_0x4d4769[_0x4d5d1c(0x227)]&&(_0xe18460['systemPrompt']=_0x4d4769['system']);_0xb1da53[_0x4d5d1c(0x1e0)]?_0xe18460[_0x4d5d1c(0x1b7)]=_0x2032cd:(_0x5a0c43&&(_0xe18460[_0x4d5d1c(0x205)]=_0x5a0c43),_0xb1da53['customApiKeys']&&(_0xe18460['customApiKeys']=_0xb1da53[_0x4d5d1c(0x1ff)]),_0xe18460[_0x4d5d1c(0x1b7)]=_0x2032cd);for(let _0x3f25dd=0x1;_0x3f25dd<=this[_0x4d5d1c(0x1af)];_0x3f25dd++){try{this['logger']['info'](_0x4d5d1c(0x1c4),{'url':_0x4ee596,'model':_0x4d4769[_0x4d5d1c(0x1ba)],'requestId':_0xe8511a,'attempt':_0x3f25dd,'hasApiKey':!!_0x2032cd});const _0x4eb289=await fetch(_0x4ee596,{'method':_0x4d5d1c(0x1ea),'headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x2032cd,'X-Request-ID':_0xe8511a},'body':JSON['stringify'](_0xe18460),'timeout':this[_0x4d5d1c(0x22d)]});if(!_0x4eb289['ok']){const _0x489b65=await _0x4eb289[_0x4d5d1c(0x1f2)](),_0x3beab0=new Error(_0x4d5d1c(0x1db)+_0x4eb289['status']+':\x20'+_0x4eb289[_0x4d5d1c(0x1c5)]+(_0x489b65?_0x4d5d1c(0x1eb)+_0x489b65:''));_0x3beab0[_0x4d5d1c(0x20c)]=_0x4eb289[_0x4d5d1c(0x20c)];throw _0x3beab0;}const _0x5efdfa=await _0x4eb289['json']();return{'choices':[{'message':{'content':_0x5efdfa[_0x4d5d1c(0x1b2)]||'','role':'assistant'},'finish_reason':_0x5efdfa[_0x4d5d1c(0x24c)]||_0x4d5d1c(0x1c3)}],'usage':_0x5efdfa[_0x4d5d1c(0x1d6)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x5efdfa['model']||_0x4d4769['model'],'id':_0x5efdfa[_0x4d5d1c(0x232)]||_0xe8511a};}catch(_0xb2371a){_0x4eadd4=_0xb2371a,this[_0x4d5d1c(0x246)][_0x4d5d1c(0x1e6)]('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x3f25dd,'requestId':_0xe8511a,'error':_0xb2371a[_0x4d5d1c(0x214)],'status':_0xb2371a[_0x4d5d1c(0x20c)]});if(_0x3f25dd<this[_0x4d5d1c(0x1af)]){const _0x4fcbe3=Math['pow'](0x2,_0x3f25dd)*0x3e8;this[_0x4d5d1c(0x246)][_0x4d5d1c(0x1e6)](_0x4d5d1c(0x202)+_0x4fcbe3+'ms',{'attempt':_0x3f25dd,'requestId':_0xe8511a}),await new Promise(_0x171b9e=>setTimeout(_0x171b9e,_0x4fcbe3));}}}this['logger'][_0x4d5d1c(0x1d0)](_0x4d5d1c(0x20f),{'requestId':_0xe8511a,'error':_0x4eadd4['message']});const _0x357b5d=_0x4eadd4['message']&&_0x4eadd4['message'][_0x4d5d1c(0x1fc)]('No\x20API\x20key\x20configured');if(_0x357b5d)throw new Error('API\x20Configuration\x20Error:\x20'+_0x4eadd4['message']);return{'choices':[{'message':{'content':_0x4d5d1c(0x223)+_0x4eadd4['message'],'role':_0x4d5d1c(0x1b8)},'finish_reason':_0x4d5d1c(0x1c3)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4d4769['model'],'id':'error-'+_0xe8511a,'error':_0x4eadd4['message']};}async[a0_0x3e0030(0x1de)](_0xcb5c22,_0x2f4b2f,_0x547c53={}){const _0x50ba4c=a0_0x3e0030,_0x48b211=_0x50ba4c(0x1ae);let _0x17c652,_0x442afc=null,_0x478c62=null;this[_0x50ba4c(0x246)]?.[_0x50ba4c(0x21e)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x50ba4c(0x1e5)],'sessionId':_0x547c53[_0x50ba4c(0x1d2)],'hasSessionId':!!_0x547c53[_0x50ba4c(0x1d2)],'model':_0xcb5c22[_0x50ba4c(0x1ba)]});if(this[_0x50ba4c(0x1e5)]&&_0x547c53['sessionId']){const _0x3aba49=this['apiKeyManager'][_0x50ba4c(0x21a)](_0x547c53['sessionId'],{'platformProvided':_0x547c53['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0xcb5c22['model'])});_0x442afc=_0x3aba49['loxiaApiKey'],_0x478c62=_0x3aba49['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x547c53[_0x50ba4c(0x1d2)],'hasLoxiaKey':!!_0x442afc,'hasVendorKey':!!_0x478c62});}!_0x442afc&&_0x547c53[_0x50ba4c(0x1b7)]&&(_0x442afc=_0x547c53['apiKey']);!_0x442afc&&this['config']['apiKey']&&(_0x442afc=this['config'][_0x50ba4c(0x1b7)]);if(!_0x442afc)throw new Error(_0x50ba4c(0x247));const _0x265971={'prompt':_0xcb5c22[_0x50ba4c(0x1f3)],'model':_0xcb5c22['model']||'azure-openai-dalle3','size':_0xcb5c22['size'],'quality':_0xcb5c22[_0x50ba4c(0x23e)],'style':_0xcb5c22[_0x50ba4c(0x1d9)]||_0x50ba4c(0x1e7),'n':_0xcb5c22['n']||0x1,'requestId':_0x2f4b2f};for(let _0x3073f2=0x1;_0x3073f2<=this['retryAttempts'];_0x3073f2++){try{this['logger']['info']('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0x48b211,'model':_0xcb5c22['model'],'requestId':_0x2f4b2f,'attempt':_0x3073f2,'hasApiKey':!!_0x442afc});const _0x256576=await fetch(_0x48b211,{'method':_0x50ba4c(0x1ea),'headers':{'Content-Type':'application/json','Authorization':_0x50ba4c(0x201)+_0x442afc,'X-Request-ID':_0x2f4b2f},'body':JSON[_0x50ba4c(0x1bf)](_0x265971),'timeout':this[_0x50ba4c(0x22d)]*0x2});if(!_0x256576['ok']){const _0x1db09a=await _0x256576[_0x50ba4c(0x1f2)](),_0x512c11=new Error(_0x50ba4c(0x1db)+_0x256576['status']+':\x20'+_0x256576['statusText']+(_0x1db09a?_0x50ba4c(0x1eb)+_0x1db09a:''));_0x512c11[_0x50ba4c(0x20c)]=_0x256576['status'];throw _0x512c11;}const _0x446893=await _0x256576[_0x50ba4c(0x221)]();return{'data':_0x446893[_0x50ba4c(0x234)]||[],'model':_0x446893[_0x50ba4c(0x1ba)]||_0xcb5c22[_0x50ba4c(0x1ba)],'created':_0x446893['created']||Date[_0x50ba4c(0x258)](),'usage':_0x446893['usage']};}catch(_0xe7ef70){_0x17c652=_0xe7ef70,this['logger']['warn'](_0x50ba4c(0x231),{'attempt':_0x3073f2,'requestId':_0x2f4b2f,'error':_0xe7ef70['message'],'status':_0xe7ef70[_0x50ba4c(0x20c)]});if(_0x3073f2<this['retryAttempts']){const _0x5efeb6=Math['pow'](0x2,_0x3073f2)*0x3e8;this[_0x50ba4c(0x246)][_0x50ba4c(0x1e6)]('Retrying\x20in\x20'+_0x5efeb6+'ms',{'attempt':_0x3073f2,'requestId':_0x2f4b2f}),await new Promise(_0xdb1cca=>setTimeout(_0xdb1cca,_0x5efeb6));}}}this['logger'][_0x50ba4c(0x1d0)](_0x50ba4c(0x207),{'requestId':_0x2f4b2f,'error':_0x17c652['message']});throw new Error(_0x50ba4c(0x1b5)+_0x17c652[_0x50ba4c(0x214)]);}async[a0_0x3e0030(0x1ec)](_0x22a694){await new Promise(_0xd0318e=>setTimeout(_0xd0318e,0x64));}async['_handleRateLimit'](_0x4ebb61){const _0x4c219b=0xea60;this['logger']['info']('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x4c219b+'ms',_0x4ebb61),await new Promise(_0x599b25=>setTimeout(_0x599b25,_0x4c219b));}async['_handleServiceUnavailable'](_0x543502){const _0x1b26b2=a0_0x3e0030;this[_0x1b26b2(0x1ee)]();const _0x37271a=0x7530;this['logger'][_0x1b26b2(0x21e)]('Service\x20unavailable,\x20waiting\x20'+_0x37271a+'ms',_0x543502),await new Promise(_0x20d217=>setTimeout(_0x20d217,_0x37271a));}['_isCircuitBreakerOpen'](){const _0x462339=a0_0x3e0030;if(!this[_0x462339(0x22e)]['isOpen'])return![];const _0x1bcc9c=Date[_0x462339(0x258)]()-this['circuitBreaker']['lastFailureTime'];if(_0x1bcc9c>this['circuitBreaker'][_0x462339(0x22d)])return this['circuitBreaker']['isOpen']=![],this['circuitBreaker']['failures']=0x0,![];return!![];}[a0_0x3e0030(0x1ee)](){const _0x2cb137=a0_0x3e0030;this[_0x2cb137(0x22e)]['failures']++,this[_0x2cb137(0x22e)]['lastFailureTime']=Date['now'](),this[_0x2cb137(0x22e)][_0x2cb137(0x217)]>=this[_0x2cb137(0x22e)][_0x2cb137(0x1cf)]&&(this['circuitBreaker'][_0x2cb137(0x1e9)]=!![],this['logger'][_0x2cb137(0x1e6)]('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}[a0_0x3e0030(0x1f8)](){const _0x50cd3c=a0_0x3e0030;this['circuitBreaker'][_0x50cd3c(0x217)]>0x0&&(this[_0x50cd3c(0x22e)]['failures']=0x0,this['circuitBreaker']['isOpen']=![],this[_0x50cd3c(0x246)][_0x50cd3c(0x21e)](_0x50cd3c(0x224)));}[a0_0x3e0030(0x204)](_0x47a8ad){const _0x209244=a0_0x3e0030;if(!_0x47a8ad)return null;const _0x394122=_0x47a8ad['toLowerCase']();if(_0x394122['includes']('anthropic')||_0x394122[_0x209244(0x1fc)]('claude'))return'anthropic';else{if(_0x394122['includes']('openai')||_0x394122[_0x209244(0x1fc)](_0x209244(0x21b)))return'openai';else{if(_0x394122['includes'](_0x209244(0x1fa)))return _0x209244(0x1fa);else{if(_0x394122['includes'](_0x209244(0x1dd)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x3744d1,_0x43ef5a){const _0x325e98=a0_0x3e0030;this['agentId']=_0x3744d1,this['logger']=_0x43ef5a,this[_0x325e98(0x1f0)]=new Map();}async['switchModel'](_0x1aee09){return{'messages':[],'model':_0x1aee09,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x32a75f=a0_0x3cc4;(function(_0x16be96,_0x3b8c50){const _0xe9b5e4=a0_0x3cc4,_0x284249=_0x16be96();while(!![]){try{const _0x3279ed=parseInt(_0xe9b5e4(0x121))/0x1*(-parseInt(_0xe9b5e4(0x118))/0x2)+parseInt(_0xe9b5e4(0x11b))/0x3+parseInt(_0xe9b5e4(0x134))/0x4+parseInt(_0xe9b5e4(0x124))/0x5+-parseInt(_0xe9b5e4(0x131))/0x6*(-parseInt(_0xe9b5e4(0x133))/0x7)+parseInt(_0xe9b5e4(0x136))/0x8+parseInt(_0xe9b5e4(0x132))/0x9*(-parseInt(_0xe9b5e4(0x11f))/0xa);if(_0x3279ed===_0x3b8c50)break;else _0x284249['push'](_0x284249['shift']());}catch(_0x3491b7){_0x284249['push'](_0x284249['shift']());}}}(a0_0x1ab5,0xd9a7a));function a0_0x3cc4(_0x2dc9cf,_0x2ce59c){_0x2dc9cf=_0x2dc9cf-0x118;const _0x1ab5ab=a0_0x1ab5();let _0x3cc411=_0x1ab5ab[_0x2dc9cf];if(a0_0x3cc4['oHVVZA']===undefined){var _0x58cc4e=function(_0x349bcb){const _0x44ee83='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2aab2c='',_0x3c0d92='';for(let _0xed99ef=0x0,_0x21b796,_0x42554f,_0x2df3bb=0x0;_0x42554f=_0x349bcb['charAt'](_0x2df3bb++);~_0x42554f&&(_0x21b796=_0xed99ef%0x4?_0x21b796*0x40+_0x42554f:_0x42554f,_0xed99ef++%0x4)?_0x2aab2c+=String['fromCharCode'](0xff&_0x21b796>>(-0x2*_0xed99ef&0x6)):0x0){_0x42554f=_0x44ee83['indexOf'](_0x42554f);}for(let _0x4e856f=0x0,_0x5afa71=_0x2aab2c['length'];_0x4e856f<_0x5afa71;_0x4e856f++){_0x3c0d92+='%'+('00'+_0x2aab2c['charCodeAt'](_0x4e856f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3c0d92);};a0_0x3cc4['yxaGfh']=_0x58cc4e,a0_0x3cc4['XaZBqU']={},a0_0x3cc4['oHVVZA']=!![];}const _0x520050=_0x1ab5ab[0x0],_0x3a89fd=_0x2dc9cf+_0x520050,_0x2097ad=a0_0x3cc4['XaZBqU'][_0x3a89fd];return!_0x2097ad?(_0x3cc411=a0_0x3cc4['yxaGfh'](_0x3cc411),a0_0x3cc4['XaZBqU'][_0x3a89fd]=_0x3cc411):_0x3cc411=_0x2097ad,_0x3cc411;}function a0_0x1ab5(){const _0xa45171=['DMvUzg9Ys2v5CW','ntCXmdeXnw5qqLr3rG','C2v0','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','z2v0u2vZC2LVBKTLExm','C2L6zq','C2v0u2vZC2LVBKTLExm','zgvSzxrL','Bg9Nz2vY','z2XVyMfSs2v5CW','A2v5CW','Dg9ju09tDhjPBMC','ChvZAa','nJCXodj0q2f5Aw8','mtHHtKfuuxy','ote3tgf0rwXY','nJK5nti3mLrWzuDzBW','Aw5MBW','mta0ntiWntz5sgvHy3C','CgXHDgzVCM1qCM92AwrLza','z2v0vgLTzq','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','z2v0','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','mJy0ndK3ofvHDvDqrq','zM9YrwfJAa','C2vZC2LVBKTLExm','mZy5nZiZnMnHzgHSqq','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','Bg94AwfbCgLlzxK','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','mJm0mti4mJbhrgDVAKy','DMvUzg9Y','mwXvA1fLBq','BgvUz3rO'];a0_0x1ab5=function(){return _0xa45171;};return a0_0x1ab5();}class ApiKeyManager{constructor(_0x2aab2c){const _0x181124=a0_0x3cc4;this['logger']=_0x2aab2c,this[_0x181124(0x11a)]=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x32a75f(0x12a)](_0x3c0d92,_0xed99ef){const _0x109205=a0_0x32a75f;if(!_0x3c0d92)throw new Error(_0x109205(0x139));this['sessionKeys'][_0x109205(0x125)](_0x3c0d92,{'loxiaApiKey':_0xed99ef['loxiaApiKey']||null,'vendorKeys':_0xed99ef['vendorKeys']||{},'updatedAt':new Date()['toISOString']()}),this[_0x109205(0x12c)]?.[_0x109205(0x135)](_0x109205(0x13b),{'sessionId':_0x3c0d92,'hasLoxiaKey':!!_0xed99ef[_0x109205(0x11d)],'vendorKeys':Object['keys'](_0xed99ef['vendorKeys']||{}),'timestamp':new Date()[_0x109205(0x12f)]()});}[a0_0x32a75f(0x128)](_0x21b796){const _0xdee655=a0_0x32a75f;if(!_0x21b796)return this['globalKeys'];const _0x42554f=this['sessionKeys'][_0xdee655(0x13a)](_0x21b796);if(_0x42554f)return _0x42554f;return this['globalKeys'];}['getKeysForRequest'](_0x2df3bb,_0x4e856f={}){const _0x1e0159=a0_0x32a75f,_0x5afa71=this[_0x1e0159(0x128)](_0x2df3bb),_0x21b51a={'loxiaApiKey':_0x5afa71['loxiaApiKey'],'vendorApiKey':null};return!_0x4e856f[_0x1e0159(0x137)]&&_0x4e856f['vendor']&&_0x5afa71[_0x1e0159(0x123)]&&(_0x21b51a['vendorApiKey']=_0x5afa71['vendorKeys'][_0x4e856f[_0x1e0159(0x120)]]),_0x21b51a;}['removeSessionKeys'](_0x978d51){const _0x5f0f6c=a0_0x32a75f;if(this[_0x5f0f6c(0x11a)]['delete'](_0x978d51))return this['logger']?.['info'](_0x5f0f6c(0x127),{'sessionId':_0x978d51}),!![];return![];}['setGlobalKeys'](_0x306848){const _0x3944c3=a0_0x32a75f;this[_0x3944c3(0x12d)]={'loxiaApiKey':_0x306848[_0x3944c3(0x11d)]||this['globalKeys'][_0x3944c3(0x11d)],'vendorKeys':{...this[_0x3944c3(0x12d)][_0x3944c3(0x123)],..._0x306848['vendorKeys']||{}}},this['logger']?.[_0x3944c3(0x135)](_0x3944c3(0x126),{'hasLoxiaKey':!!this[_0x3944c3(0x12d)]['loxiaApiKey'],'vendorKeys':Object[_0x3944c3(0x12e)](this[_0x3944c3(0x12d)]['vendorKeys'])});}['getActiveSessions'](){const _0x564722=a0_0x32a75f;return Array['from'](this[_0x564722(0x11a)]['entries']())['map'](([_0x4b4299,_0x25aef4])=>({'sessionId':_0x4b4299,'hasLoxiaKey':!!_0x25aef4['loxiaApiKey'],'vendorKeys':Object['keys'](_0x25aef4['vendorKeys']||{}),'updatedAt':_0x25aef4['updatedAt']}));}[a0_0x32a75f(0x11e)](_0x4d37ee=0x18*0x3c*0x3c*0x3e8){const _0x82831=a0_0x32a75f,_0xb89f27=Date['now'](),_0x3eb0fa=[];for(const [_0x3e269e,_0x297b34]of this['sessionKeys']['entries']()){const _0x544a17=_0xb89f27-new Date(_0x297b34['updatedAt'])[_0x82831(0x138)]();_0x544a17>_0x4d37ee&&_0x3eb0fa[_0x82831(0x130)](_0x3e269e);}return _0x3eb0fa[_0x82831(0x119)](_0x4e2455=>{const _0x4890b3=_0x82831;this['sessionKeys'][_0x4890b3(0x12b)](_0x4e2455);}),_0x3eb0fa['length']>0x0&&this[_0x82831(0x12c)]?.['info'](_0x82831(0x11c),{'expiredSessions':_0x3eb0fa['length'],'remainingSessions':this['sessionKeys'][_0x82831(0x129)]}),_0x3eb0fa[_0x82831(0x122)];}}export default ApiKeyManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a0_0x4dfa4b=a0_0x8c3c;(function(_0x2cc64c,_0x31789f){const _0x37723f=a0_0x8c3c,_0x51d6bb=_0x2cc64c();while(!![]){try{const _0x3c0d31=-parseInt(_0x37723f(0x10f))/0x1*(-parseInt(_0x37723f(0x114))/0x2)+parseInt(_0x37723f(0x104))/0x3+-parseInt(_0x37723f(0x10a))/0x4+parseInt(_0x37723f(0x124))/0x5+-parseInt(_0x37723f(0x12f))/0x6*(parseInt(_0x37723f(0x12b))/0x7)+-parseInt(_0x37723f(0xfb))/0x8+parseInt(_0x37723f(0x11a))/0x9*(-parseInt(_0x37723f(0x111))/0xa);if(_0x3c0d31===_0x31789f)break;else _0x51d6bb['push'](_0x51d6bb['shift']());}catch(_0x34b774){_0x51d6bb['push'](_0x51d6bb['shift']());}}}(a0_0xff92,0x23ba7));function a0_0xff92(){const _0x39b56c=['BMfTzq','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','Bg9HzejLBMnOBwfYA3m','yxbWBgLJyxrPB24VANnVBG','yMvUy2HTyxjRCW','CMvMCMvZAeLUDgvYDMfS','A2v5CW','z2v0vgLTzq','ndC3ote4uengzfnY','Aw5PDgLHBgL6zq','C29YDa','BMvLzhnszwzYzxnO','C291CMnL','DMfSDwvZ','mtG1otiWsMjlvvbe','x2DLDejLC3rnB2rLBezVCLrHC2S','C3bLzwq','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','BgvUz3rO','mJmWmZe1yLn6qxLW','BwfW','mtbAzhzIwvC','DgfZA3m','z2v0u3rHDhvZ','mMrns0jluG','yxP1CMvcywnRzw5KvxjS','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','y29UzMLN','zxjYB3i','x2DLDezHC3rLC3rnB2rLBa','mtKXnJi3muTQCLz5Aa','Bwf4','y3jLyxrPDMu','CxvPy2STDgfZA3m','x3nJAgvKDwXLuMvMCMvZAa','r0vu','Dw5RBM93BG','Bw9KzwXZ','BM93','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','mti1ndmZnwXkreTWrW','BwvZC2fNzq','yw5HBhLZAxm','AxnmB2fKAw5N','BgfZDfvWzgf0zwq','uMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','C3rHDhvZ','mtqYnZK5m3jzuwHPwa','qMvHCMvYia','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','nKnZrwTIsW','zgvIDwC','Bg9Nz2vY','mJq1otC2u0zWsNjU'];a0_0xff92=function(){return _0x39b56c;};return a0_0xff92();}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';function a0_0x8c3c(_0x18027a,_0x755289){_0x18027a=_0x18027a-0xf9;const _0xff9243=a0_0xff92();let _0x8c3c3b=_0xff9243[_0x18027a];if(a0_0x8c3c['lUOnoL']===undefined){var _0x16d7ef=function(_0x165276){const _0x51f00d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x32140d='',_0x51c314='';for(let _0x121f28=0x0,_0x1b0cf6,_0x1cc196,_0x2b529a=0x0;_0x1cc196=_0x165276['charAt'](_0x2b529a++);~_0x1cc196&&(_0x1b0cf6=_0x121f28%0x4?_0x1b0cf6*0x40+_0x1cc196:_0x1cc196,_0x121f28++%0x4)?_0x32140d+=String['fromCharCode'](0xff&_0x1b0cf6>>(-0x2*_0x121f28&0x6)):0x0){_0x1cc196=_0x51f00d['indexOf'](_0x1cc196);}for(let _0x3672a1=0x0,_0x5655d1=_0x32140d['length'];_0x3672a1<_0x5655d1;_0x3672a1++){_0x51c314+='%'+('00'+_0x32140d['charCodeAt'](_0x3672a1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x51c314);};a0_0x8c3c['WGUcpg']=_0x16d7ef,a0_0x8c3c['rGGHar']={},a0_0x8c3c['lUOnoL']=!![];}const _0x45a0b0=_0xff9243[0x0],_0x3c916c=_0x18027a+_0x45a0b0,_0x2120ed=a0_0x8c3c['rGGHar'][_0x3c916c];return!_0x2120ed?(_0x8c3c3b=a0_0x8c3c['WGUcpg'](_0x8c3c3b),a0_0x8c3c['rGGHar'][_0x3c916c]=_0x8c3c3b):_0x8c3c3b=_0x2120ed,_0x8c3c3b;}class BenchmarkService{constructor(_0x32140d,_0x51c314){const _0x41eef6=a0_0x8c3c;this['config']=_0x32140d,this['logger']=_0x51c314,this['benchmarks']=null,this[_0x41eef6(0x128)]=null,this[_0x41eef6(0x127)]=![],this[_0x41eef6(0x115)]='https://autopilot-api.azurewebsites.net',this['refreshInterval']=MODEL_ROUTER_CONFIG['BENCHMARK_REFRESH_INTERVAL'];}async[a0_0x4dfa4b(0x105)](){const _0x3cd73e=a0_0x4dfa4b;try{await this['loadBenchmarks'](),this[_0x3cd73e(0x11e)](),this['logger']['info'](_0x3cd73e(0x12e));}catch(_0x121f28){this['logger'][_0x3cd73e(0x118)]('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x121f28[_0x3cd73e(0x125)]}),this[_0x3cd73e(0x100)]=null;}}['getBenchmarks'](){const _0x5a3d93=a0_0x4dfa4b;if(!this[_0x5a3d93(0x100)])return this['logger']['error'](_0x5a3d93(0xfd),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async['loadBenchmarks'](){const _0x326389=a0_0x4dfa4b;if(this['isLoading']){this[_0x326389(0xfa)]['debug']('Benchmark\x20loading\x20already\x20in\x20progress');return;}this[_0x326389(0x127)]=!![];try{const _0x1b0cf6=await this[_0x326389(0x12d)]();if(_0x1b0cf6)this['benchmarks']=_0x1b0cf6,this['lastUpdated']=new Date(),this[_0x326389(0xfa)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x1b0cf6[_0x326389(0x121)]?.['length']||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x1cc196){this['logger']['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x1cc196[_0x326389(0x125)],'endpoint':url}),!this[_0x326389(0x100)]&&(this['benchmarks']=null);}finally{this['isLoading']=![];}}['getBenchmarkTable'](){const _0x2b529a=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.['toISOString']()||'unknown','models':_0x2b529a['models']||[],'tasks':_0x2b529a['tasks']||{},'summary':this['_generateBenchmarkSummary'](_0x2b529a)};}[a0_0x4dfa4b(0x107)](){const _0x3d0541=a0_0x4dfa4b;if(!this['lastUpdated'])return!![];const _0x3672a1=Date[_0x3d0541(0x122)]()-this[_0x3d0541(0x128)][_0x3d0541(0x103)]();return _0x3672a1>this['refreshInterval'];}async[a0_0x4dfa4b(0x12d)](){const _0x520e22=a0_0x4dfa4b,_0x5655d1=this['azureBackendUrl']+_0x520e22(0x123);let _0x17557d=null;this[_0x520e22(0x117)]['apiKey']&&(_0x17557d=this[_0x520e22(0x117)]['apiKey']);const _0x3e7fb0={'method':_0x520e22(0x11f),'headers':{'Content-Type':_0x520e22(0xff),..._0x17557d&&{'Authorization':_0x520e22(0x12c)+_0x17557d}},'timeout':0x2710};this[_0x520e22(0xfa)][_0x520e22(0xf9)]('Fetching benchmarks from Azure backend',{'url':_0x5655d1});const _0x8c585c=await fetch(_0x5655d1,_0x3e7fb0);if(!_0x8c585c['ok'])throw new Error('HTTP\x20'+_0x8c585c[_0x520e22(0x12a)]+':\x20'+_0x8c585c['statusText']);const _0x26505d=await _0x8c585c['json']();return _0x26505d;}[a0_0x4dfa4b(0x10d)](_0x4172b8){const _0x21edff=a0_0x4dfa4b,_0x2f7ee8=_0x4172b8[_0x21edff(0x121)]||[];return{'totalModels':_0x2f7ee8['length'],'taskCategories':Object[_0x21edff(0x102)](_0x4172b8['tasks']||{}),'bestForCoding':this[_0x21edff(0x10b)](_0x2f7ee8,'coding'),'bestForAnalysis':this[_0x21edff(0x10b)](_0x2f7ee8,_0x21edff(0x126)),'bestForQuickTasks':this[_0x21edff(0x10b)](_0x2f7ee8,_0x21edff(0x11d)),'bestForCreative':this[_0x21edff(0x10b)](_0x2f7ee8,_0x21edff(0x11c)),'fastestModel':this['_getFastestModel'](_0x2f7ee8),'mostCostEfficient':this['_getMostCostEfficient'](_0x2f7ee8)};}[a0_0x4dfa4b(0x10b)](_0x86a7d1,_0x15770a){const _0x32275d=a0_0x4dfa4b;return _0x86a7d1['filter'](_0x56688c=>_0x56688c['tasks']&&_0x56688c['tasks'][_0x15770a])[_0x32275d(0x106)]((_0x1895ec,_0x2d24e6)=>(_0x2d24e6[_0x32275d(0x112)][_0x15770a]['score']||0x0)-(_0x1895ec['tasks'][_0x15770a]['score']||0x0))[0x0]?.['name']||_0x32275d(0x120);}[a0_0x4dfa4b(0x119)](_0x38cb0a){const _0x35b50c=a0_0x4dfa4b,_0x472ee6={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x38cb0a['sort']((_0xdcba98,_0x8bfb0f)=>{const _0x575ebc=a0_0x8c3c,_0x54e9f0=Math[_0x575ebc(0x11b)](...Object['values'](_0xdcba98[_0x575ebc(0x112)]||{})[_0x575ebc(0x110)](_0xa1b908=>_0x472ee6[_0xa1b908[_0x575ebc(0x10c)]]||0x0)),_0x359e9e=Math[_0x575ebc(0x11b)](...Object[_0x575ebc(0x109)](_0x8bfb0f[_0x575ebc(0x112)]||{})['map'](_0x4b9c2e=>_0x472ee6[_0x4b9c2e['speed']]||0x0));return _0x359e9e-_0x54e9f0;})[0x0]?.['name']||_0x35b50c(0x120);}['_getMostCostEfficient'](_0x35a172){const _0x716170=a0_0x4dfa4b,_0x3cd56f={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x35a172[_0x716170(0x106)]((_0x18d4c9,_0x31e21e)=>{const _0x9fa16=_0x716170,_0x55b581=Math['max'](...Object['values'](_0x18d4c9[_0x9fa16(0x112)]||{})[_0x9fa16(0x110)](_0x3bcc02=>_0x3cd56f[_0x3bcc02['cost']]||0x0)),_0xbf8b98=Math['max'](...Object[_0x9fa16(0x109)](_0x31e21e['tasks']||{})['map'](_0x366f13=>_0x3cd56f[_0x366f13['cost']]||0x0));return _0xbf8b98-_0x55b581;})[0x0]?.[_0x716170(0xfc)]||'unknown';}['_scheduleRefresh'](){const _0x55aaac=a0_0x4dfa4b;setInterval(async()=>{const _0x5cfc3c=a0_0x8c3c;this[_0x5cfc3c(0x107)]()&&(this[_0x5cfc3c(0xfa)]['debug'](_0x5cfc3c(0x129)),await this[_0x5cfc3c(0xfe)]());},this[_0x55aaac(0x101)]);}async['forceRefresh'](){const _0x133d95=a0_0x4dfa4b;this[_0x133d95(0xfa)]['info'](_0x133d95(0x116)),await this[_0x133d95(0xfe)]();}[a0_0x4dfa4b(0x113)](){const _0x2cc59e=a0_0x4dfa4b;return{'initialized':!!this[_0x2cc59e(0x100)],'lastUpdated':this['lastUpdated']?.['toISOString']()||null,'source':this['benchmarks']?.[_0x2cc59e(0x108)]||_0x2cc59e(0x120),'modelCount':this['benchmarks']?.['models']?.[_0x2cc59e(0x10e)]||0x0,'isLoading':this[_0x2cc59e(0x127)],'needsRefresh':this['needsRefresh']()};}}export default BenchmarkService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x217561=a0_0x13ec;function a0_0x57bf(){const _0xa518bc=['tw9KzwW','C2v0qNvKz2v0CW','veHsrvnit0XeuW','zgfPBhLbDMvYywDLCW','y2HLy2TcDwrNzxrmAw1PDhm','mZeXotC3nfLRrwTcEa','ywDLBNrjza','Dw5ZAgLMDa','Aw5WDxq','Aw5PDgLHBgL6zvvZywDLrw50CNK','y2HLy2TuAhjLC2HVBgq','zM9YrwfJAa','ndyYmJe1Dfjfwuvm','y29ZDa','rgfPBhK','mJCWndy3mwHIDuHgzG','zxjYB3i','z2v0rNvSBfLLyxi','C29YDa','C2f2zvvZywDLrgf0yq','yNvKz2v0qwXLCNq','vxnHz2uGzgf0ysbZyxzLza','CMvXDwvZDhm','nJG5nJq2nfLHqLPQsG','C2v0','mZbUqNLdt3u','y29TCgXLDgLVBL90B2TLBNm','yNLbz2vUDa','nty5otuYnM9XAhfdqq','z2v0','z2v0qwDLBNrvC2fNzq','ChvZAa','CM91BMq','zw1PDa','mtK1otK1B05QvKnz','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','ltaX','Bw9KzwXjza','y2fSy3vSyxrLq29ZDa','qNvKz2v0igXPBwL0CYb1CgrHDgvK','C2v0DxbqzxjPB2rPy1nHDMu','Dg9Rzw5Z','mJe0nJy0nhrsA3Hrsq','BwvZC2fNzq','Aw5MBW','zgvIDwC','z2v0rgf5','y3n2','Bg9Nz2vY','AgfZ','Dg9ju09tDhjPBMC','AM9PBG','y2HLy2TuAhjLC2HVBgrbBgvYDhm','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','z2v0v2vLA0TLEq','zgfPBhK','D2vLA2X5','Bwf4','AxnxAxrOAw5cDwrNzxq','z2v0tw9UDgHlzxK','y3jLyxrLrw1WDhLvC2fNzq','mtb2sNPiyxO','mJHZCKzqA2S','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','z2v0v2vLA051BwjLCG','Dg9Wtw9KzwXZ','Dw5KzwzPBMvK','Bw9UDgHSEq','Dg9tDhjPBMC','ywXLCNrZ','z2v0rgf5s2v5','z2v0uMvTywLUAw5NqNvKz2v0','C2v0rgf0zq','z2v0vxnHz2u','D2fYBG','DxbKyxrLvxnHz2vfBNrYEq','y29UDMvYDfrVq1nw','zw50CMLLCW','Dg90ywW','rMfPBgvKihrVihrYywnRihvZywDL','Bg9HzfvZywDLrgf0yq','C2vUzej1zgDLDefSzxj0','yNLnB2rLBa','C3rYAw5NAwz5','CgfKu3rHCNq','tu9oveHmwq','y29ZDej5rgf5','ugvYAw9K','DxnHz2u','BM93','yNvKz2v0CW'];a0_0x57bf=function(){return _0xa518bc;};return a0_0x57bf();}function a0_0x13ec(_0x300fd9,_0x2d7354){_0x300fd9=_0x300fd9-0xdc;const _0x57bf36=a0_0x57bf();let _0x13ec9e=_0x57bf36[_0x300fd9];if(a0_0x13ec['yskFVh']===undefined){var _0x149fe5=function(_0x2d6bc7){const _0x635e84='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x14147f='',_0x4cca03='';for(let _0x2d7d37=0x0,_0x4ebf98,_0x10c343,_0x1a6a7b=0x0;_0x10c343=_0x2d6bc7['charAt'](_0x1a6a7b++);~_0x10c343&&(_0x4ebf98=_0x2d7d37%0x4?_0x4ebf98*0x40+_0x10c343:_0x10c343,_0x2d7d37++%0x4)?_0x14147f+=String['fromCharCode'](0xff&_0x4ebf98>>(-0x2*_0x2d7d37&0x6)):0x0){_0x10c343=_0x635e84['indexOf'](_0x10c343);}for(let _0x3c0724=0x0,_0x510704=_0x14147f['length'];_0x3c0724<_0x510704;_0x3c0724++){_0x4cca03+='%'+('00'+_0x14147f['charCodeAt'](_0x3c0724)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4cca03);};a0_0x13ec['SSLJHd']=_0x149fe5,a0_0x13ec['FPkitN']={},a0_0x13ec['yskFVh']=!![];}const _0x2a80ec=_0x57bf36[0x0],_0x329e4a=_0x300fd9+_0x2a80ec,_0x3326ad=a0_0x13ec['FPkitN'][_0x329e4a];return!_0x3326ad?(_0x13ec9e=a0_0x13ec['SSLJHd'](_0x13ec9e),a0_0x13ec['FPkitN'][_0x329e4a]=_0x13ec9e):_0x13ec9e=_0x3326ad,_0x13ec9e;}(function(_0x33183e,_0x5e4128){const _0x1ccb75=a0_0x13ec,_0x51ef89=_0x33183e();while(!![]){try{const _0x52b11e=parseInt(_0x1ccb75(0x11a))/0x1*(parseInt(_0x1ccb75(0x135))/0x2)+parseInt(_0x1ccb75(0x122))/0x3+-parseInt(_0x1ccb75(0x136))/0x4*(parseInt(_0x1ccb75(0x104))/0x5)+-parseInt(_0x1ccb75(0x114))/0x6+parseInt(_0x1ccb75(0xfd))/0x7+parseInt(_0x1ccb75(0x10f))/0x8+parseInt(_0x1ccb75(0x107))/0x9*(-parseInt(_0x1ccb75(0x111))/0xa);if(_0x52b11e===_0x5e4128)break;else _0x51ef89['push'](_0x51ef89['shift']());}catch(_0xb7ce1e){_0x51ef89['push'](_0x51ef89['shift']());}}}(a0_0x57bf,0x7b36c));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x14147f,_0x4cca03){const _0x216e9a=a0_0x13ec;this['config']=_0x14147f||{},this[_0x216e9a(0x128)]=_0x4cca03,this[_0x216e9a(0xf5)]={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x216e9a(0xf2)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS[_0x216e9a(0xfa)],'lastAlertTimes':new Map()},this[_0x216e9a(0xed)](),this[_0x216e9a(0x120)]();}['trackUsage'](_0x2d7d37,_0x4ebf98,_0x10c343){const _0x17c130=a0_0x13ec;try{const _0x1a6a7b=this[_0x17c130(0x11e)](_0x4ebf98,_0x10c343),_0x3c0724=new Date(),_0x510704=this[_0x17c130(0xe3)](_0x3c0724),_0x729664=this['getWeekKey'](_0x3c0724),_0x23f193=this[_0x17c130(0x133)](_0x3c0724);this['initializeUsageEntry'](this[_0x17c130(0xf5)][_0x17c130(0x12f)],_0x510704),this[_0x17c130(0x101)](this['usage'][_0x17c130(0x130)],_0x729664),this['initializeUsageEntry'](this['usage'][_0x17c130(0xe0)],_0x23f193);const _0xf27d99={'agentId':_0x2d7d37,'modelId':_0x4ebf98,'tokens':_0x10c343['total_tokens'],'cost':_0x1a6a7b,'timestamp':_0x3c0724[_0x17c130(0x12a)]()};return this['updateUsageEntry'](this[_0x17c130(0xf5)][_0x17c130(0x12f)][_0x17c130(0x115)](_0x510704),_0xf27d99),this[_0x17c130(0xe8)](this['usage'][_0x17c130(0x130)][_0x17c130(0x115)](_0x729664),_0xf27d99),this['updateUsageEntry'](this[_0x17c130(0xf5)][_0x17c130(0xe0)]['get'](_0x23f193),_0xf27d99),this['usage']['total']['tokens']+=_0x10c343['total_tokens'],this[_0x17c130(0xf5)][_0x17c130(0xeb)]['cost']+=_0x1a6a7b,this[_0x17c130(0xf5)]['total']['requests']+=0x1,this[_0x17c130(0xfc)](_0x510704,_0x729664,_0x23f193),this[_0x17c130(0x128)][_0x17c130(0x124)]('Usage\x20tracked',{'agentId':_0x2d7d37,'modelId':_0x4ebf98,'tokens':_0x10c343['total_tokens'],'cost':_0x1a6a7b,'totalCost':this[_0x17c130(0xf5)][_0x17c130(0xeb)]['cost']}),{'cost':_0x1a6a7b,'totalCost':this[_0x17c130(0xf5)][_0x17c130(0xeb)][_0x17c130(0x105)],'totalTokens':this[_0x17c130(0xf5)][_0x17c130(0xeb)]['tokens'],'dailyUsage':this['usage']['daily'][_0x17c130(0x115)](_0x510704),'budgetRemaining':this[_0x17c130(0xe4)]()};}catch(_0x77516b){this[_0x17c130(0x128)][_0x17c130(0x108)](_0x17c130(0xec),{'error':_0x77516b['message'],'agentId':_0x2d7d37,'modelId':_0x4ebf98});throw _0x77516b;}}[a0_0x217561(0x11e)](_0x2b5540,_0x519d69){const _0x315ae3=a0_0x217561,_0x41b135=COST_PER_TOKEN[_0x2b5540];if(!_0x41b135)return this[_0x315ae3(0x128)][_0x315ae3(0xe7)](_0x315ae3(0x11b),{'modelId':_0x2b5540}),0x0;const _0x2a84d4=(_0x519d69['prompt_tokens']||0x0)*_0x41b135[_0x315ae3(0x100)],_0x387090=(_0x519d69[_0x315ae3(0x112)]||0x0)*_0x41b135['output'];return _0x2a84d4+_0x387090;}['getUsage'](_0x1aac1b=a0_0x217561(0x12f),_0x42b8ca=new Date()){const _0xf689d8=a0_0x217561;switch(_0x1aac1b){case _0xf689d8(0x12f):return this['usage']['daily'][_0xf689d8(0x115)](this[_0xf689d8(0xe3)](_0x42b8ca))||this['createEmptyUsage']();case _0xf689d8(0x130):return this['usage']['weekly'][_0xf689d8(0x115)](this[_0xf689d8(0x12e)](_0x42b8ca))||this['createEmptyUsage']();case _0xf689d8(0xe0):return this['usage'][_0xf689d8(0xe0)]['get'](this[_0xf689d8(0x133)](_0x42b8ca))||this['createEmptyUsage']();case _0xf689d8(0xeb):return{...this['usage'][_0xf689d8(0xeb)]};default:throw new Error('Invalid\x20period:\x20'+_0x1aac1b);}}[a0_0x217561(0x116)](_0x2ed630,_0x5076de='daily'){const _0xc22988=a0_0x217561,_0x38b790=this[_0xc22988(0xe6)](_0x5076de);return _0x38b790['byAgent']?.[_0x2ed630]||this[_0xc22988(0x134)]();}['getModelUsage'](_0x3d9f24,_0x48143c=a0_0x217561(0x12f)){const _0x1287a0=this['getUsage'](_0x48143c);return _0x1287a0['byModel']?.[_0x3d9f24]||this['createEmptyUsage']();}[a0_0x217561(0xf9)](_0x194c1e){const _0x554f7c=a0_0x217561;if(_0x194c1e[_0x554f7c(0x12f)]!==undefined)this['budgets'][_0x554f7c(0x12f)]=_0x194c1e['daily'];if(_0x194c1e[_0x554f7c(0x130)]!==undefined)this['budgets']['weekly']=_0x194c1e['weekly'];if(_0x194c1e['monthly']!==undefined)this['budgets'][_0x554f7c(0xe0)]=_0x194c1e[_0x554f7c(0xe0)];this[_0x554f7c(0x128)][_0x554f7c(0x124)](_0x554f7c(0x11f),this['budgets']),this[_0x554f7c(0x10b)]();}[a0_0x217561(0xe4)](){const _0x41f3f5=a0_0x217561,_0x48ee8e=new Date(),_0x25c991=this[_0x41f3f5(0xe6)](_0x41f3f5(0x12f),_0x48ee8e),_0x1fc40f=this['getUsage']('weekly',_0x48ee8e),_0x208f61=this[_0x41f3f5(0xe6)](_0x41f3f5(0xe0),_0x48ee8e);return{'daily':Math['max'](0x0,this[_0x41f3f5(0xf7)][_0x41f3f5(0x12f)]-_0x25c991[_0x41f3f5(0x105)]),'weekly':Math[_0x41f3f5(0x131)](0x0,this['budgets']['weekly']-_0x1fc40f[_0x41f3f5(0x105)]),'monthly':Math['max'](0x0,this[_0x41f3f5(0xf7)]['monthly']-_0x208f61[_0x41f3f5(0x105)])};}[a0_0x217561(0x132)](_0x24a527=a0_0x217561(0x12f)){const _0x2a317d=a0_0x217561,_0x411697=this[_0x2a317d(0xe6)](_0x24a527),_0xa427e6=this[_0x2a317d(0xf7)][_0x24a527];return _0x411697['cost']<=_0xa427e6;}['getUsageTrends'](_0x24b92b=0x1e){const _0x25a917=a0_0x217561,_0x4b21f3={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0xe23d47=new Date();let _0x2b4738=0x0,_0x166544=0x0,_0x11692d=0x0;const _0x3e2a51=new Map(),_0x462993=new Map();for(let _0x40d972=0x0;_0x40d972<_0x24b92b;_0x40d972++){const _0x4b95fc=new Date(_0xe23d47);_0x4b95fc[_0x25a917(0xe5)](_0x4b95fc['getDate']()-_0x40d972);const _0x4d9d20=this[_0x25a917(0xe3)](_0x4b95fc),_0x287076=this[_0x25a917(0xf5)][_0x25a917(0x12f)][_0x25a917(0x115)](_0x4d9d20);_0x287076?(_0x2b4738+=_0x287076[_0x25a917(0x105)],_0x166544+=_0x287076['tokens'],_0x11692d+=_0x287076[_0x25a917(0x10e)],_0x4b21f3[_0x25a917(0xf3)]['unshift']({'date':_0x4d9d20,'cost':_0x287076[_0x25a917(0x105)]}),_0x4b21f3['tokensByDay']['unshift']({'date':_0x4d9d20,'tokens':_0x287076[_0x25a917(0x121)]}),Object['entries'](_0x287076[_0x25a917(0x113)]||{})['forEach'](([_0x18bfdf,_0x1cc974])=>{const _0x1c2a48=_0x25a917;!_0x3e2a51['has'](_0x18bfdf)&&_0x3e2a51['set'](_0x18bfdf,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x22d6fa=_0x3e2a51['get'](_0x18bfdf);_0x22d6fa[_0x1c2a48(0x105)]+=_0x1cc974[_0x1c2a48(0x105)],_0x22d6fa['tokens']+=_0x1cc974[_0x1c2a48(0x121)],_0x22d6fa[_0x1c2a48(0x10e)]+=_0x1cc974['requests'];}),Object['entries'](_0x287076['byModel']||{})['forEach'](([_0x6fb98,_0x2c98d8])=>{const _0x38818c=_0x25a917;!_0x462993[_0x38818c(0x129)](_0x6fb98)&&_0x462993[_0x38818c(0x110)](_0x6fb98,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x5f0ec3=_0x462993[_0x38818c(0x115)](_0x6fb98);_0x5f0ec3[_0x38818c(0x105)]+=_0x2c98d8['cost'],_0x5f0ec3['tokens']+=_0x2c98d8['tokens'],_0x5f0ec3[_0x38818c(0x10e)]+=_0x2c98d8['requests'];})):(_0x4b21f3[_0x25a917(0xf3)]['unshift']({'date':_0x4d9d20,'cost':0x0}),_0x4b21f3['tokensByDay'][_0x25a917(0xff)]({'date':_0x4d9d20,'tokens':0x0}));}return _0x4b21f3[_0x25a917(0xfb)][_0x25a917(0x105)]=_0x2b4738/_0x24b92b,_0x4b21f3['dailyAverages'][_0x25a917(0x121)]=_0x166544/_0x24b92b,_0x4b21f3[_0x25a917(0xfb)]['requests']=_0x11692d/_0x24b92b,_0x4b21f3['topAgents']=Array['from'](_0x3e2a51[_0x25a917(0xea)]())['map'](([_0x23d63b,_0x5c0205])=>({'id':_0x23d63b,..._0x5c0205}))[_0x25a917(0x10a)]((_0x5779af,_0x5ebd0a)=>_0x5ebd0a[_0x25a917(0x105)]-_0x5779af['cost'])['slice'](0x0,0xa),_0x4b21f3[_0x25a917(0xde)]=Array['from'](_0x462993['entries']())['map'](([_0x1a0d8a,_0x3e08cd])=>({'id':_0x1a0d8a,..._0x3e08cd}))['sort']((_0x1fbcfa,_0x424e92)=>_0x424e92[_0x25a917(0x105)]-_0x1fbcfa[_0x25a917(0x105)])['slice'](0x0,0xa),_0x4b21f3;}['exportUsageData'](_0x31ecd2='json',_0x1e2533=null,_0x257007=null){const _0x77f78d=a0_0x217561,_0x3cdd1f={'budgets':this[_0x77f78d(0xf7)],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0xaf8f56=(_0x381634,_0x1ed313)=>{const _0x550172=_0x77f78d,_0x55f07b={};return _0x381634[_0x550172(0x103)]((_0xc584d6,_0x1f77ef)=>{const _0x256f6c=_0x1ed313(_0x1f77ef);(!_0x1e2533||_0x256f6c>=_0x1e2533)&&(!_0x257007||_0x256f6c<=_0x257007)&&(_0x55f07b[_0x1f77ef]=_0xc584d6);}),_0x55f07b;};_0x1e2533||_0x257007?(_0x3cdd1f['daily']=_0xaf8f56(this['usage']['daily'],_0x42e02a=>new Date(_0x42e02a)),_0x3cdd1f[_0x77f78d(0x130)]=_0xaf8f56(this[_0x77f78d(0xf5)][_0x77f78d(0x130)],_0x52206=>new Date(_0x52206)),_0x3cdd1f['monthly']=_0xaf8f56(this[_0x77f78d(0xf5)]['monthly'],_0x5bcdb2=>new Date(_0x5bcdb2+_0x77f78d(0x11c)))):(this[_0x77f78d(0xf5)]['daily']['forEach']((_0x1181b5,_0x20ef2d)=>_0x3cdd1f[_0x77f78d(0x12f)][_0x20ef2d]=_0x1181b5),this['usage']['weekly'][_0x77f78d(0x103)]((_0x2995c4,_0x2ec233)=>_0x3cdd1f[_0x77f78d(0x130)][_0x2ec233]=_0x2995c4),this['usage'][_0x77f78d(0xe0)][_0x77f78d(0x103)]((_0x59e4da,_0x5cf716)=>_0x3cdd1f[_0x77f78d(0xe0)][_0x5cf716]=_0x59e4da));if(_0x31ecd2===_0x77f78d(0x127))return this['convertToCSV'](_0x3cdd1f);return JSON[_0x77f78d(0xf0)](_0x3cdd1f,null,0x2);}[a0_0x217561(0x101)](_0x3a3d28,_0x374344){const _0x5e72db=a0_0x217561;!_0x3a3d28[_0x5e72db(0x129)](_0x374344)&&_0x3a3d28['set'](_0x374344,this[_0x5e72db(0x134)]());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x217561(0xe8)](_0x181626,_0x1d61d5){const _0xa59ae0=a0_0x217561;_0x181626[_0xa59ae0(0x105)]+=_0x1d61d5['cost'],_0x181626['tokens']+=_0x1d61d5['tokens'],_0x181626['requests']+=0x1,!_0x181626[_0xa59ae0(0x113)][_0x1d61d5['agentId']]&&(_0x181626[_0xa59ae0(0x113)][_0x1d61d5[_0xa59ae0(0xfe)]]=this['createEmptyUsage']()),_0x181626['byAgent'][_0x1d61d5['agentId']]['cost']+=_0x1d61d5[_0xa59ae0(0x105)],_0x181626['byAgent'][_0x1d61d5[_0xa59ae0(0xfe)]][_0xa59ae0(0x121)]+=_0x1d61d5['tokens'],_0x181626[_0xa59ae0(0x113)][_0x1d61d5['agentId']][_0xa59ae0(0x10e)]+=0x1,!_0x181626[_0xa59ae0(0xef)][_0x1d61d5[_0xa59ae0(0x11d)]]&&(_0x181626[_0xa59ae0(0xef)][_0x1d61d5['modelId']]=this[_0xa59ae0(0x134)]()),_0x181626['byModel'][_0x1d61d5[_0xa59ae0(0x11d)]]['cost']+=_0x1d61d5['cost'],_0x181626['byModel'][_0x1d61d5['modelId']]['tokens']+=_0x1d61d5['tokens'],_0x181626[_0xa59ae0(0xef)][_0x1d61d5[_0xa59ae0(0x11d)]]['requests']+=0x1;}['checkBudgetLimits'](_0x57e9aa,_0x4b221f,_0x571ced){const _0x3d9da5=a0_0x217561,_0x4f61be=this['usage']['daily']['get'](_0x57e9aa),_0x4e2073=this[_0x3d9da5(0xf5)][_0x3d9da5(0x130)]['get'](_0x4b221f),_0xba7b0d=this['usage'][_0x3d9da5(0xe0)]['get'](_0x571ced);_0x4f61be[_0x3d9da5(0x105)]>this['budgets'][_0x3d9da5(0x12f)]&&this[_0x3d9da5(0xee)](_0x3d9da5(0x12f),_0x4f61be['cost'],this[_0x3d9da5(0xf7)]['daily']),_0x4e2073[_0x3d9da5(0x105)]>this['budgets'][_0x3d9da5(0x130)]&&this[_0x3d9da5(0xee)]('weekly',_0x4e2073['cost'],this['budgets']['weekly']),_0xba7b0d['cost']>this['budgets'][_0x3d9da5(0xe0)]&&this['sendBudgetAlert'](_0x3d9da5(0xe0),_0xba7b0d[_0x3d9da5(0x105)],this[_0x3d9da5(0xf7)][_0x3d9da5(0xe0)]),this[_0x3d9da5(0x12c)](_0x4f61be,_0x4e2073,_0xba7b0d);}['checkThresholdAlerts'](_0x227a4f,_0xf9a288,_0x43050b){const _0x5b8ca9=a0_0x217561,_0x1e248a=this[_0x5b8ca9(0xe2)]['thresholds'];this[_0x5b8ca9(0x102)]('daily',_0x227a4f[_0x5b8ca9(0x105)],this['budgets']['daily'],_0x1e248a),this['checkThreshold']('weekly',_0xf9a288['cost'],this['budgets']['weekly'],_0x1e248a),this[_0x5b8ca9(0x102)](_0x5b8ca9(0xe0),_0x43050b['cost'],this['budgets']['monthly'],_0x1e248a);}['checkThreshold'](_0xea0b8,_0x4bd446,_0x459c05,_0x3a573f){const _0x2b3a03=a0_0x217561,_0x2270c8=_0x4bd446/_0x459c05*0x64;for(const _0x2bef94 of _0x3a573f){if(_0x2270c8>=_0x2bef94){const _0x4c6949=_0xea0b8+'_'+_0x2bef94,_0x2e466f=this['alerts']['lastAlertTimes'][_0x2b3a03(0x115)](_0x4c6949),_0x4bbc0d=Date[_0x2b3a03(0xf6)]();(!_0x2e466f||_0x4bbc0d-_0x2e466f>0x36ee80)&&(this['sendThresholdAlert'](_0xea0b8,_0x2270c8,_0x2bef94,_0x4bd446,_0x459c05),this[_0x2b3a03(0xe2)]['lastAlertTimes']['set'](_0x4c6949,_0x4bbc0d));break;}}}['sendBudgetAlert'](_0xd3279b,_0x3bee18,_0x58fc45){const _0x4502fa=a0_0x217561;this[_0x4502fa(0x128)]['warn']('Budget\x20limit\x20exceeded',{'period':_0xd3279b,'currentUsage':_0x3bee18,'budgetLimit':_0x58fc45,'excess':_0x3bee18-_0x58fc45}),typeof process!==_0x4502fa(0xdf)&&process['emit']&&process['emit'](_0x4502fa(0x10c),{'type':'budget_exceeded','period':_0xd3279b,'currentUsage':_0x3bee18,'budgetLimit':_0x58fc45,'excess':_0x3bee18-_0x58fc45});}['sendThresholdAlert'](_0x10daef,_0xda7a02,_0x4bada0,_0x85c5e4,_0x1ca49d){const _0x3ef901=a0_0x217561;this['logger'][_0x3ef901(0xe7)]('Budget\x20threshold\x20reached',{'period':_0x10daef,'percentage':Math[_0x3ef901(0x118)](_0xda7a02),'threshold':_0x4bada0,'usage':_0x85c5e4,'budget':_0x1ca49d}),typeof process!=='undefined'&&process[_0x3ef901(0x119)]&&process['emit']('budgetAlert',{'type':'threshold_reached','period':_0x10daef,'percentage':Math['round'](_0xda7a02),'threshold':_0x4bada0,'usage':_0x85c5e4,'budget':_0x1ca49d});}['getDayKey'](_0x371b93){const _0x480e50=a0_0x217561;return _0x371b93[_0x480e50(0x12a)]()['split']('T')[0x0];}['getWeekKey'](_0x3abe69){const _0x276238=a0_0x217561,_0xf28f4c=_0x3abe69[_0x276238(0x109)](),_0x228d6c=this['getWeekNumber'](_0x3abe69);return _0xf28f4c+'-W'+_0x228d6c['toString']()['padStart'](0x2,'0');}[a0_0x217561(0x133)](_0x2fdc1c){const _0xca4e02=a0_0x217561,_0x12528d=_0x2fdc1c[_0xca4e02(0x109)](),_0x494e08=_0x2fdc1c['getMonth']()+0x1;return _0x12528d+'-'+_0x494e08[_0xca4e02(0xe1)]()[_0xca4e02(0xf1)](0x2,'0');}[a0_0x217561(0xdd)](_0x1c8d3a){const _0x3ac5e8=a0_0x217561,_0x176bbf=new Date(_0x1c8d3a['getFullYear'](),0x0,0x1),_0x36760=(_0x1c8d3a-_0x176bbf)/0x5265c00;return Math['ceil']((_0x36760+_0x176bbf[_0x3ac5e8(0x126)]()+0x1)/0x7);}[a0_0x217561(0xe9)](_0x34c050){const _0x1f81fa=a0_0x217561,_0x4a8df8=[];return _0x4a8df8[_0x1f81fa(0x117)]([_0x1f81fa(0xf4),'Date','Cost','Tokens','Requests','Agent',_0x1f81fa(0xf8)]),Object['entries'](_0x34c050[_0x1f81fa(0x12f)])['forEach'](([_0x55aae6,_0x298d2e])=>{const _0x17871a=_0x1f81fa;_0x4a8df8[_0x17871a(0x117)](['Daily',_0x55aae6,_0x298d2e[_0x17871a(0x105)],_0x298d2e['tokens'],_0x298d2e['requests'],'','']),Object['entries'](_0x298d2e['byAgent']||{})['forEach'](([_0x1ea794,_0x4161a2])=>{const _0x432cdd=_0x17871a;_0x4a8df8['push']([_0x432cdd(0x106),_0x55aae6,_0x4161a2[_0x432cdd(0x105)],_0x4161a2[_0x432cdd(0x121)],_0x4161a2['requests'],_0x1ea794,'']);});}),_0x4a8df8['map'](_0x121730=>_0x121730[_0x1f81fa(0x12b)](','))['join']('\x0a');}[a0_0x217561(0xed)](){const _0x2f4cd1=a0_0x217561;try{this['logger']['info'](_0x2f4cd1(0x12d));}catch(_0x3ef5dd){this['logger'][_0x2f4cd1(0x108)](_0x2f4cd1(0xdc),{'error':_0x3ef5dd['message']});}}['saveUsageData'](){const _0x7809c9=a0_0x217561;try{this['logger'][_0x7809c9(0x125)](_0x7809c9(0x10d));}catch(_0x2b7282){this[_0x7809c9(0x128)][_0x7809c9(0x108)]('Failed\x20to\x20save\x20usage\x20data',{'error':_0x2b7282[_0x7809c9(0x123)]});}}['setupPeriodicSave'](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
|
|
1
|
+
const a0_0x724650=a0_0x1e31;function a0_0x1e31(_0x54b0f8,_0x5a2a36){_0x54b0f8=_0x54b0f8-0xef;const _0xac542f=a0_0xac54();let _0x1e3186=_0xac542f[_0x54b0f8];if(a0_0x1e31['eYbMkQ']===undefined){var _0xdb1714=function(_0x874371){const _0x3ee2e5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x425aa4='',_0x279712='';for(let _0x9d779a=0x0,_0x1236bb,_0x336e16,_0x37d27c=0x0;_0x336e16=_0x874371['charAt'](_0x37d27c++);~_0x336e16&&(_0x1236bb=_0x9d779a%0x4?_0x1236bb*0x40+_0x336e16:_0x336e16,_0x9d779a++%0x4)?_0x425aa4+=String['fromCharCode'](0xff&_0x1236bb>>(-0x2*_0x9d779a&0x6)):0x0){_0x336e16=_0x3ee2e5['indexOf'](_0x336e16);}for(let _0xdb069d=0x0,_0xd3a1e3=_0x425aa4['length'];_0xdb069d<_0xd3a1e3;_0xdb069d++){_0x279712+='%'+('00'+_0x425aa4['charCodeAt'](_0xdb069d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x279712);};a0_0x1e31['EdyXAE']=_0xdb1714,a0_0x1e31['aMnalk']={},a0_0x1e31['eYbMkQ']=!![];}const _0x306cbd=_0xac542f[0x0],_0x1da0d2=_0x54b0f8+_0x306cbd,_0x52f401=a0_0x1e31['aMnalk'][_0x1da0d2];return!_0x52f401?(_0x1e3186=a0_0x1e31['EdyXAE'](_0x1e3186),a0_0x1e31['aMnalk'][_0x1da0d2]=_0x1e3186):_0x1e3186=_0x52f401,_0x1e3186;}(function(_0x27b771,_0x25bfa0){const _0x156012=a0_0x1e31,_0x2489d7=_0x27b771();while(!![]){try{const _0x10f9ab=-parseInt(_0x156012(0x144))/0x1*(-parseInt(_0x156012(0xef))/0x2)+-parseInt(_0x156012(0x104))/0x3*(-parseInt(_0x156012(0x12d))/0x4)+parseInt(_0x156012(0x130))/0x5+parseInt(_0x156012(0x12e))/0x6*(-parseInt(_0x156012(0x10d))/0x7)+parseInt(_0x156012(0x124))/0x8+parseInt(_0x156012(0x135))/0x9+-parseInt(_0x156012(0x128))/0xa;if(_0x10f9ab===_0x25bfa0)break;else _0x2489d7['push'](_0x2489d7['shift']());}catch(_0x47389e){_0x2489d7['push'](_0x2489d7['shift']());}}}(a0_0xac54,0x9dc92));function a0_0xac54(){const _0x4ed5fe=['z2v0rgf0zq','nJK1nJqWoe1brufhBq','Dg90ywXFDg9Rzw5Z','refjtfK','DxnHz2u','mtG5mZyXmdbzAKD5wgK','D2vLA2X5','BwfW','zgfPBhK','Aw5MBW','ndu1nKPmyNfqCq','mtC0r3jgqLHw','Bg9Nz2vY','mZeYntm0meH1z0XMAG','y29UzMLN','C29YDa','CgfKu3rHCNq','BM93','mZa0mJC3nevVwhfHBW','vxnHz2uGzgf0ysbZyxzLza','ywXLCNrZ','z2v0rNvSBfLLyxi','z2v0tw9UDgHlzxK','ChvZAa','Dg9tDhjPBMC','Bw9UDgHSEq','sw52ywXPzcbWzxjPB2q6ia','zNjVBq','z2v0v2vLA0TLEq','z2v0','y2fSy3vSyxrLq29ZDa','C2v0DxbqzxjPB2rPy1nHDMu','zxjYB3i','nuzkthHxwa','y3jLyxrLrw1WDhLvC2fNzq','zgvIDwC','D2fYBG','ntmWntrMrhfhzgO','y2HLy2TuAhjLC2HVBgq','yNvKz2v0CW','Bwf4','Bg9HzfvZywDLrgf0yq','yNLnB2rLBa','C2v0qNvKz2v0CW','ChjVBxb0x3rVA2vUCW','Aw5WDxq','Bw9KzwXjza','yNLbz2vUDa','C2vUzfrOCMvZAg9SzefSzxj0','Aw5PDgLHBgL6zvvZywDLrw50CNK','zM9YrwfJAa','CMvXDwvZDhm','Dg9Rzw5Z','zgfPBhLbDMvYywDLCW','y29UDMvYDfrVq1nw','vg9Rzw5Z','AM9PBG','y2HLy2TuAhjLC2HVBgrbBgvYDhm','mJa0ouPvt09Wza','zw50CMLLCW','z2v0rgf5','z2v0vxnHz2u','v0vfs0Xz','z2v0tw9KzwXvC2fNzq','ywDLBNrjza','z2v0uMvTywLUAw5NqNvKz2v0','y29ZDej5rgf5','ndKWotfOwNztBfG','DgHYzxnOB2XKx3jLywnOzwq','yNvKz2v0x2v4y2vLzgvK','AxnxAxrOAw5cDwrNzxq','CM91BMq','C3bSAxq','Dg90ywW','DxbKyxrLvxnHz2vfBNrYEq','rgf0zq','veHsrvnit0XeuW','y29ZDa','C2vUzej1zgDLDefSzxj0','C2v0','Dw5ZAgLMDa','z2v0rgf5s2v5','zw1PDa','uMvXDwvZDhm','qNvKz2v0igXPBwL0CYb1CgrHDgvK','AgfZ','tu9oveHmwq','yNvKz2v0qwXLCNq','q29ZDa'];a0_0xac54=function(){return _0x4ed5fe;};return a0_0xac54();}import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x425aa4,_0x279712){const _0x2a9d1b=a0_0x1e31;this[_0x2a9d1b(0x131)]=_0x425aa4||{},this[_0x2a9d1b(0x12f)]=_0x279712,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x2a9d1b(0x126)],'weekly':BUDGET_LIMITS[_0x2a9d1b(0x108)],'monthly':BUDGET_LIMITS[_0x2a9d1b(0x120)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS[_0x2a9d1b(0x116)],'lastAlertTimes':new Map()},this[_0x2a9d1b(0xf3)](),this[_0x2a9d1b(0x142)]();}['trackUsage'](_0x9d779a,_0x1236bb,_0x336e16){const _0x33ea51=a0_0x1e31;try{const _0x37d27c=this[_0x33ea51(0x141)](_0x1236bb,_0x336e16),_0xdb069d=new Date(),_0xd3a1e3=this['getDayKey'](_0xdb069d),_0x4094bc=this[_0x33ea51(0x13f)](_0xdb069d),_0x44562a=this['getMonthKey'](_0xdb069d);this[_0x33ea51(0xfb)](this['usage']['daily'],_0xd3a1e3),this[_0x33ea51(0xfb)](this['usage']['weekly'],_0x4094bc),this[_0x33ea51(0xfb)](this['usage']['monthly'],_0x44562a);const _0x7c5e14={'agentId':_0x9d779a,'modelId':_0x1236bb,'tokens':_0x336e16['total_tokens'],'cost':_0x37d27c,'timestamp':_0xdb069d['toISOString']()};return this[_0x33ea51(0x114)](this[_0x33ea51(0x127)][_0x33ea51(0x12b)][_0x33ea51(0x140)](_0xd3a1e3),_0x7c5e14),this['updateUsageEntry'](this['usage']['weekly']['get'](_0x4094bc),_0x7c5e14),this['updateUsageEntry'](this['usage'][_0x33ea51(0x13c)][_0x33ea51(0x140)](_0x44562a),_0x7c5e14),this['usage'][_0x33ea51(0x113)][_0x33ea51(0xfe)]+=_0x336e16[_0x33ea51(0x125)],this['usage']['total'][_0x33ea51(0x117)]+=_0x37d27c,this['usage']['total']['requests']+=0x1,this['checkBudgetLimits'](_0xd3a1e3,_0x4094bc,_0x44562a),this['logger'][_0x33ea51(0x12c)]('Usage\x20tracked',{'agentId':_0x9d779a,'modelId':_0x1236bb,'tokens':_0x336e16[_0x33ea51(0x125)],'cost':_0x37d27c,'totalCost':this['usage']['total'][_0x33ea51(0x117)]}),{'cost':_0x37d27c,'totalCost':this[_0x33ea51(0x127)]['total']['cost'],'totalTokens':this[_0x33ea51(0x127)][_0x33ea51(0x113)]['tokens'],'dailyUsage':this['usage'][_0x33ea51(0x12b)]['get'](_0xd3a1e3),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x2492c9){this['logger'][_0x33ea51(0x143)]('Failed\x20to\x20track\x20usage',{'error':_0x2492c9['message'],'agentId':_0x9d779a,'modelId':_0x1236bb});throw _0x2492c9;}}['calculateCost'](_0x9bc8f,_0x14f7c9){const _0x43c48a=a0_0x1e31,_0x4b2f5f=COST_PER_TOKEN[_0x9bc8f];if(!_0x4b2f5f)return this[_0x43c48a(0x12f)][_0x43c48a(0x147)]('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x9bc8f}),0x0;const _0x33dd68=(_0x14f7c9[_0x43c48a(0xf6)]||0x0)*_0x4b2f5f[_0x43c48a(0xf7)],_0x2ac472=(_0x14f7c9['completion_tokens']||0x0)*_0x4b2f5f['output'];return _0x33dd68+_0x2ac472;}['getUsage'](_0x409295='daily',_0x1fa15f=new Date()){const _0x492516=a0_0x1e31;switch(_0x409295){case'daily':return this[_0x492516(0x127)][_0x492516(0x12b)][_0x492516(0x140)](this[_0x492516(0x11b)](_0x1fa15f))||this['createEmptyUsage']();case _0x492516(0x129):return this[_0x492516(0x127)]['weekly']['get'](this['getWeekKey'](_0x1fa15f))||this['createEmptyUsage']();case _0x492516(0x13c):return this[_0x492516(0x127)][_0x492516(0x13c)][_0x492516(0x140)](this['getMonthKey'](_0x1fa15f))||this[_0x492516(0x145)]();case'total':return{...this[_0x492516(0x127)]['total']};default:throw new Error(_0x492516(0x13d)+_0x409295);}}['getAgentUsage'](_0x45b7c3,_0x78a9f3='daily'){const _0x4382ab=this['getUsage'](_0x78a9f3);return _0x4382ab['byAgent']?.[_0x45b7c3]||this['createEmptyUsage']();}[a0_0x724650(0x109)](_0x32c519,_0x27136f='daily'){const _0x20a680=a0_0x724650,_0x2d0ce7=this['getUsage'](_0x27136f);return _0x2d0ce7[_0x20a680(0xf4)]?.[_0x32c519]||this[_0x20a680(0x145)]();}[a0_0x724650(0xf5)](_0x5b534f){const _0x1a41fe=a0_0x724650;if(_0x5b534f['daily']!==undefined)this['budgets'][_0x1a41fe(0x12b)]=_0x5b534f['daily'];if(_0x5b534f['weekly']!==undefined)this['budgets']['weekly']=_0x5b534f['weekly'];if(_0x5b534f['monthly']!==undefined)this[_0x1a41fe(0xf1)][_0x1a41fe(0x13c)]=_0x5b534f['monthly'];this[_0x1a41fe(0x12f)][_0x1a41fe(0x12c)](_0x1a41fe(0x11e),this['budgets']),this['saveUsageData']();}[a0_0x724650(0x10b)](){const _0x1026cf=a0_0x724650,_0x2c9d94=new Date(),_0x4d906e=this['getUsage']('daily',_0x2c9d94),_0x271377=this[_0x1026cf(0x107)]('weekly',_0x2c9d94),_0x5a85aa=this[_0x1026cf(0x107)]('monthly',_0x2c9d94);return{'daily':Math['max'](0x0,this['budgets'][_0x1026cf(0x12b)]-_0x4d906e['cost']),'weekly':Math[_0x1026cf(0xf2)](0x0,this[_0x1026cf(0xf1)][_0x1026cf(0x129)]-_0x271377[_0x1026cf(0x117)]),'monthly':Math['max'](0x0,this['budgets']['monthly']-_0x5a85aa['cost'])};}[a0_0x724650(0x110)](_0x5f5bc5=a0_0x724650(0x12b)){const _0x50c6da=a0_0x724650,_0xf0af7a=this[_0x50c6da(0x107)](_0x5f5bc5),_0x2fab71=this[_0x50c6da(0xf1)][_0x5f5bc5];return _0xf0af7a['cost']<=_0x2fab71;}['getUsageTrends'](_0x18fd48=0x1e){const _0x413bb0=a0_0x724650,_0x226d6e={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0xac0583=new Date();let _0x34c864=0x0,_0x3d91eb=0x0,_0x55646d=0x0;const _0x3dce1b=new Map(),_0x5df2a0=new Map();for(let _0x3acceb=0x0;_0x3acceb<_0x18fd48;_0x3acceb++){const _0x1995b1=new Date(_0xac0583);_0x1995b1['setDate'](_0x1995b1[_0x413bb0(0x123)]()-_0x3acceb);const _0x3a10d2=this[_0x413bb0(0x11b)](_0x1995b1),_0x581132=this['usage']['daily'][_0x413bb0(0x140)](_0x3a10d2);_0x581132?(_0x34c864+=_0x581132['cost'],_0x3d91eb+=_0x581132[_0x413bb0(0xfe)],_0x55646d+=_0x581132[_0x413bb0(0xfd)],_0x226d6e[_0x413bb0(0x10c)]['unshift']({'date':_0x3a10d2,'cost':_0x581132['cost']}),_0x226d6e['tokensByDay'][_0x413bb0(0x11a)]({'date':_0x3a10d2,'tokens':_0x581132['tokens']}),Object[_0x413bb0(0x105)](_0x581132['byAgent']||{})['forEach'](([_0x2f6895,_0x57f000])=>{const _0x3ab428=_0x413bb0;!_0x3dce1b[_0x3ab428(0x11f)](_0x2f6895)&&_0x3dce1b[_0x3ab428(0x119)](_0x2f6895,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x30b11f=_0x3dce1b['get'](_0x2f6895);_0x30b11f['cost']+=_0x57f000['cost'],_0x30b11f[_0x3ab428(0xfe)]+=_0x57f000[_0x3ab428(0xfe)],_0x30b11f[_0x3ab428(0xfd)]+=_0x57f000[_0x3ab428(0xfd)];}),Object['entries'](_0x581132[_0x413bb0(0xf4)]||{})['forEach'](([_0x3ecd77,_0x291724])=>{const _0x3d66b9=_0x413bb0;!_0x5df2a0['has'](_0x3ecd77)&&_0x5df2a0[_0x3d66b9(0x119)](_0x3ecd77,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x359cf1=_0x5df2a0[_0x3d66b9(0x140)](_0x3ecd77);_0x359cf1[_0x3d66b9(0x117)]+=_0x291724[_0x3d66b9(0x117)],_0x359cf1[_0x3d66b9(0xfe)]+=_0x291724['tokens'],_0x359cf1['requests']+=_0x291724[_0x3d66b9(0xfd)];})):(_0x226d6e['costByDay'][_0x413bb0(0x11a)]({'date':_0x3a10d2,'cost':0x0}),_0x226d6e['tokensByDay'][_0x413bb0(0x11a)]({'date':_0x3a10d2,'tokens':0x0}));}return _0x226d6e['dailyAverages']['cost']=_0x34c864/_0x18fd48,_0x226d6e[_0x413bb0(0xff)]['tokens']=_0x3d91eb/_0x18fd48,_0x226d6e['dailyAverages']['requests']=_0x55646d/_0x18fd48,_0x226d6e['topAgents']=Array[_0x413bb0(0x13e)](_0x3dce1b[_0x413bb0(0x105)]())['map'](([_0x48b0b2,_0x89acfd])=>({'id':_0x48b0b2,..._0x89acfd}))[_0x413bb0(0x132)]((_0x810685,_0x4856d3)=>_0x4856d3['cost']-_0x810685['cost'])['slice'](0x0,0xa),_0x226d6e['topModels']=Array['from'](_0x5df2a0['entries']())['map'](([_0x1f064a,_0x73bdcf])=>({'id':_0x1f064a,..._0x73bdcf}))[_0x413bb0(0x132)]((_0x390760,_0x37cb97)=>_0x37cb97['cost']-_0x390760[_0x413bb0(0x117)])['slice'](0x0,0xa),_0x226d6e;}['exportUsageData'](_0x2ccfbf='json',_0x3d87ad=null,_0x3a655a=null){const _0x38d809=a0_0x724650,_0x1f5a16={'budgets':this['budgets'],'total':this['usage'][_0x38d809(0x113)],'daily':{},'weekly':{},'monthly':{}},_0x3fae38=(_0x1d9fc5,_0x146c29)=>{const _0x390f5a={};return _0x1d9fc5['forEach']((_0x3fe154,_0x352e83)=>{const _0x46b15c=_0x146c29(_0x352e83);(!_0x3d87ad||_0x46b15c>=_0x3d87ad)&&(!_0x3a655a||_0x46b15c<=_0x3a655a)&&(_0x390f5a[_0x352e83]=_0x3fe154);}),_0x390f5a;};_0x3d87ad||_0x3a655a?(_0x1f5a16['daily']=_0x3fae38(this['usage'][_0x38d809(0x12b)],_0xde8eb7=>new Date(_0xde8eb7)),_0x1f5a16[_0x38d809(0x129)]=_0x3fae38(this['usage'][_0x38d809(0x129)],_0x271316=>new Date(_0x271316)),_0x1f5a16[_0x38d809(0x13c)]=_0x3fae38(this['usage']['monthly'],_0x10b46d=>new Date(_0x10b46d+'-01'))):(this[_0x38d809(0x127)][_0x38d809(0x12b)][_0x38d809(0xfc)]((_0x5a7c97,_0x5d00b9)=>_0x1f5a16[_0x38d809(0x12b)][_0x5d00b9]=_0x5a7c97),this[_0x38d809(0x127)][_0x38d809(0x129)]['forEach']((_0x4f9fae,_0xed364f)=>_0x1f5a16[_0x38d809(0x129)][_0xed364f]=_0x4f9fae),this[_0x38d809(0x127)]['monthly'][_0x38d809(0xfc)]((_0x10415b,_0x487cd3)=>_0x1f5a16['monthly'][_0x487cd3]=_0x10415b));if(_0x2ccfbf==='csv')return this[_0x38d809(0x100)](_0x1f5a16);return JSON['stringify'](_0x1f5a16,null,0x2);}['initializeUsageEntry'](_0x2f8bc4,_0x2a2456){const _0x34244c=a0_0x724650;!_0x2f8bc4['has'](_0x2a2456)&&_0x2f8bc4[_0x34244c(0x119)](_0x2a2456,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x16942a,_0x2b6d0c){const _0x5b7caa=a0_0x724650;_0x16942a[_0x5b7caa(0x117)]+=_0x2b6d0c['cost'],_0x16942a[_0x5b7caa(0xfe)]+=_0x2b6d0c[_0x5b7caa(0xfe)],_0x16942a[_0x5b7caa(0xfd)]+=0x1,!_0x16942a[_0x5b7caa(0xf9)][_0x2b6d0c[_0x5b7caa(0x10a)]]&&(_0x16942a['byAgent'][_0x2b6d0c[_0x5b7caa(0x10a)]]=this[_0x5b7caa(0x145)]()),_0x16942a['byAgent'][_0x2b6d0c[_0x5b7caa(0x10a)]]['cost']+=_0x2b6d0c['cost'],_0x16942a[_0x5b7caa(0xf9)][_0x2b6d0c['agentId']]['tokens']+=_0x2b6d0c['tokens'],_0x16942a[_0x5b7caa(0xf9)][_0x2b6d0c['agentId']][_0x5b7caa(0xfd)]+=0x1,!_0x16942a['byModel'][_0x2b6d0c[_0x5b7caa(0xf8)]]&&(_0x16942a['byModel'][_0x2b6d0c['modelId']]=this[_0x5b7caa(0x145)]()),_0x16942a[_0x5b7caa(0xf4)][_0x2b6d0c[_0x5b7caa(0xf8)]][_0x5b7caa(0x117)]+=_0x2b6d0c['cost'],_0x16942a['byModel'][_0x2b6d0c[_0x5b7caa(0xf8)]][_0x5b7caa(0xfe)]+=_0x2b6d0c['tokens'],_0x16942a['byModel'][_0x2b6d0c['modelId']][_0x5b7caa(0xfd)]+=0x1;}['checkBudgetLimits'](_0x22a94d,_0x5c8864,_0x35fae1){const _0x59bfde=a0_0x724650,_0x36dad6=this[_0x59bfde(0x127)]['daily'][_0x59bfde(0x140)](_0x22a94d),_0x596bb6=this[_0x59bfde(0x127)][_0x59bfde(0x129)]['get'](_0x5c8864),_0x3c4c42=this['usage'][_0x59bfde(0x13c)]['get'](_0x35fae1);_0x36dad6[_0x59bfde(0x117)]>this['budgets']['daily']&&this[_0x59bfde(0x118)](_0x59bfde(0x12b),_0x36dad6['cost'],this[_0x59bfde(0xf1)]['daily']),_0x596bb6['cost']>this['budgets']['weekly']&&this['sendBudgetAlert'](_0x59bfde(0x129),_0x596bb6['cost'],this[_0x59bfde(0xf1)][_0x59bfde(0x129)]),_0x3c4c42['cost']>this['budgets']['monthly']&&this[_0x59bfde(0x118)]('monthly',_0x3c4c42['cost'],this['budgets'][_0x59bfde(0x13c)]),this[_0x59bfde(0x103)](_0x36dad6,_0x596bb6,_0x3c4c42);}['checkThresholdAlerts'](_0x154cb9,_0x44874a,_0x3e0c7d){const _0x10daf8=a0_0x724650,_0x3a2be2=this['alerts']['thresholds'];this['checkThreshold']('daily',_0x154cb9[_0x10daf8(0x117)],this[_0x10daf8(0xf1)]['daily'],_0x3a2be2),this[_0x10daf8(0xf0)]('weekly',_0x44874a[_0x10daf8(0x117)],this[_0x10daf8(0xf1)][_0x10daf8(0x129)],_0x3a2be2),this[_0x10daf8(0xf0)]('monthly',_0x3e0c7d[_0x10daf8(0x117)],this['budgets']['monthly'],_0x3a2be2);}[a0_0x724650(0xf0)](_0x99b342,_0x1f182e,_0x2efb61,_0xf0c095){const _0x1aa08c=a0_0x724650,_0x39dbad=_0x1f182e/_0x2efb61*0x64;for(const _0x31bbc9 of _0xf0c095){if(_0x39dbad>=_0x31bbc9){const _0x2e4358=_0x99b342+'_'+_0x31bbc9,_0x4e92f8=this[_0x1aa08c(0x137)]['lastAlertTimes'][_0x1aa08c(0x140)](_0x2e4358),_0x3ea48e=Date[_0x1aa08c(0x134)]();(!_0x4e92f8||_0x3ea48e-_0x4e92f8>0x36ee80)&&(this[_0x1aa08c(0xfa)](_0x99b342,_0x39dbad,_0x31bbc9,_0x1f182e,_0x2efb61),this[_0x1aa08c(0x137)]['lastAlertTimes'][_0x1aa08c(0x119)](_0x2e4358,_0x3ea48e));break;}}}['sendBudgetAlert'](_0x4141c3,_0x13c3b4,_0x1c422f){const _0x4a8e55=a0_0x724650;this['logger'][_0x4a8e55(0x147)]('Budget\x20limit\x20exceeded',{'period':_0x4141c3,'currentUsage':_0x13c3b4,'budgetLimit':_0x1c422f,'excess':_0x13c3b4-_0x1c422f}),typeof process!=='undefined'&&process['emit']&&process['emit'](_0x4a8e55(0x121),{'type':_0x4a8e55(0x10f),'period':_0x4141c3,'currentUsage':_0x13c3b4,'budgetLimit':_0x1c422f,'excess':_0x13c3b4-_0x1c422f});}['sendThresholdAlert'](_0x127a77,_0x222d6a,_0x3fe609,_0x47bb67,_0x1b0351){const _0x1d78d7=a0_0x724650;this[_0x1d78d7(0x12f)]['warn']('Budget\x20threshold\x20reached',{'period':_0x127a77,'percentage':Math['round'](_0x222d6a),'threshold':_0x3fe609,'usage':_0x47bb67,'budget':_0x1b0351}),typeof process!=='undefined'&&process[_0x1d78d7(0x11c)]&&process['emit']('budgetAlert',{'type':_0x1d78d7(0x10e),'period':_0x127a77,'percentage':Math[_0x1d78d7(0x111)](_0x222d6a),'threshold':_0x3fe609,'usage':_0x47bb67,'budget':_0x1b0351});}['getDayKey'](_0x55d8dc){const _0x109b50=a0_0x724650;return _0x55d8dc['toISOString']()[_0x109b50(0x112)]('T')[0x0];}['getWeekKey'](_0x1e1fe1){const _0x1eb7ce=a0_0x724650,_0x500175=_0x1e1fe1[_0x1eb7ce(0x138)](),_0x270c4e=this['getWeekNumber'](_0x1e1fe1);return _0x500175+'-W'+_0x270c4e['toString']()['padStart'](0x2,'0');}[a0_0x724650(0x139)](_0x4059f2){const _0x1af5fc=a0_0x724650,_0x1a4519=_0x4059f2[_0x1af5fc(0x138)](),_0x25e9bc=_0x4059f2['getMonth']()+0x1;return _0x1a4519+'-'+_0x25e9bc[_0x1af5fc(0x13b)]()[_0x1af5fc(0x133)](0x2,'0');}['getWeekNumber'](_0xa10e40){const _0x41ba0d=a0_0x724650,_0x82ba58=new Date(_0xa10e40[_0x41ba0d(0x138)](),0x0,0x1),_0x316178=(_0xa10e40-_0x82ba58)/0x5265c00;return Math['ceil']((_0x316178+_0x82ba58[_0x41ba0d(0x106)]()+0x1)/0x7);}['convertToCSV'](_0x5898b9){const _0x3dba08=a0_0x724650,_0x2aaed7=[];return _0x2aaed7['push'](['Period',_0x3dba08(0x115),_0x3dba08(0x122),_0x3dba08(0x101),_0x3dba08(0x11d),'Agent','Model']),Object['entries'](_0x5898b9['daily'])[_0x3dba08(0xfc)](([_0x181732,_0x10eb6a])=>{const _0x190779=_0x3dba08;_0x2aaed7[_0x190779(0x13a)](['Daily',_0x181732,_0x10eb6a[_0x190779(0x117)],_0x10eb6a['tokens'],_0x10eb6a[_0x190779(0xfd)],'','']),Object['entries'](_0x10eb6a[_0x190779(0xf9)]||{})[_0x190779(0xfc)](([_0x4a8b54,_0x5c12c3])=>{const _0x42ac7a=_0x190779;_0x2aaed7[_0x42ac7a(0x13a)](['Daily',_0x181732,_0x5c12c3['cost'],_0x5c12c3['tokens'],_0x5c12c3['requests'],_0x4a8b54,'']);});}),_0x2aaed7[_0x3dba08(0x12a)](_0x255287=>_0x255287[_0x3dba08(0x102)](','))['join']('\x0a');}[a0_0x724650(0xf3)](){const _0x1e3e7d=a0_0x724650;try{this['logger']['info']('Budget\x20service\x20initialized');}catch(_0x3fb4f7){this[_0x1e3e7d(0x12f)][_0x1e3e7d(0x143)]('Failed\x20to\x20load\x20usage\x20data',{'error':_0x3fb4f7['message']});}}['saveUsageData'](){const _0x2d630c=a0_0x724650;try{this['logger'][_0x2d630c(0x146)](_0x2d630c(0x136));}catch(_0x6b947c){this[_0x2d630c(0x12f)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0x6b947c['message']});}}[a0_0x724650(0x142)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a0_0x2046(){const _0x376aa3=['mJa2mdC3nLzRuLfyrq','iIbZAxPLpsi','mZK0mNLyAuXNAW','Bg9Nz2vY','Dgv4Da','zMLSzuLK','zxjYB3i','CMvMzxjLBMnL','Dg9Rzw5fC3rPBwf0zq','y29UzMLN','BgvUz3rO','ChvZAa','yxr0ywnOBwvUDfnLCNzPy2u','zM9YBwf0q29UDgvUDezPBgu','mZGZmgDUBwnAta','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','zxnJyxbLwg1S','mtrUqKrju2K','zMLSDgvY','CMvWBgfJzq','zM9YBwf0vgv4DezPBgu','mJq5otqYBfLguxH2','mtbnrfbjAuS','zM9YBwf0qNL0zxm','cJXMAwXLlxjLzMvYzw5Jzxm+cG','iIbTB2rPzMLLzd0I','Bw9Kzq','BwvZC2fNzq','zMXVB3i','mtaWodiWngjQzfHcrq','cIaGpc9MAwXLpG','CgrM','yNvPBgreEw5HBwLJq29UDgv4Da','Bg9N','iIb0ExbLpsi','m0DOvvvvqq','Dg9gAxHLza','zM9YBwf0uMvMzxjLBMnLrMLSzq','zMLSzxm','rxjYB3iGzxn0Aw1HDgLUzYb0B3rHBcb0B2TLBNm','ica8zMLSzsbUyw1Lpsi','mty4vKPftKDh','mJu4mZCYExbhquTn','y29UDgvUDa','s0iIig1Vzgu9iMnVBNrLBNqIpGO','iIbWyxrOpsi','Aw1Hz2u','zM9YBwf0ugrMrMLSzq','ode4mJHoqw90t1m','mZq5ndC3mNbHshPoBG'];a0_0x2046=function(){return _0x376aa3;};return a0_0x2046();}function a0_0x36ff(_0x521c3c,_0x37d8cf){_0x521c3c=_0x521c3c-0x77;const _0x2046d6=a0_0x2046();let _0x36fff9=_0x2046d6[_0x521c3c];if(a0_0x36ff['pFirSF']===undefined){var _0x227afd=function(_0x1267f8){const _0x14ef8e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39f97e='',_0x579b28='';for(let _0x3d9d23=0x0,_0x1bc13c,_0x518895,_0x157698=0x0;_0x518895=_0x1267f8['charAt'](_0x157698++);~_0x518895&&(_0x1bc13c=_0x3d9d23%0x4?_0x1bc13c*0x40+_0x518895:_0x518895,_0x3d9d23++%0x4)?_0x39f97e+=String['fromCharCode'](0xff&_0x1bc13c>>(-0x2*_0x3d9d23&0x6)):0x0){_0x518895=_0x14ef8e['indexOf'](_0x518895);}for(let _0x507eb8=0x0,_0x56225e=_0x39f97e['length'];_0x507eb8<_0x56225e;_0x507eb8++){_0x579b28+='%'+('00'+_0x39f97e['charCodeAt'](_0x507eb8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x579b28);};a0_0x36ff['bquYaR']=_0x227afd,a0_0x36ff['lcrcxA']={},a0_0x36ff['pFirSF']=!![];}const _0x5744f6=_0x2046d6[0x0],_0x25bea4=_0x521c3c+_0x5744f6,_0x5e037a=a0_0x36ff['lcrcxA'][_0x25bea4];return!_0x5e037a?(_0x36fff9=a0_0x36ff['bquYaR'](_0x36fff9),a0_0x36ff['lcrcxA'][_0x25bea4]=_0x36fff9):_0x36fff9=_0x5e037a,_0x36fff9;}const a0_0x27e730=a0_0x36ff;(function(_0x2319c2,_0xbee343){const _0x13bc54=a0_0x36ff,_0x4414a3=_0x2319c2();while(!![]){try{const _0x4522be=parseInt(_0x13bc54(0x95))/0x1+parseInt(_0x13bc54(0x8f))/0x2+-parseInt(_0x13bc54(0x88))/0x3*(parseInt(_0x13bc54(0x82))/0x4)+parseInt(_0x13bc54(0xa5))/0x5*(parseInt(_0x13bc54(0x99))/0x6)+-parseInt(_0x13bc54(0xa9))/0x7*(-parseInt(_0x13bc54(0x97))/0x8)+-parseInt(_0x13bc54(0x96))/0x9*(parseInt(_0x13bc54(0x7b))/0xa)+-parseInt(_0x13bc54(0x7a))/0xb*(parseInt(_0x13bc54(0x8e))/0xc);if(_0x4522be===_0xbee343)break;else _0x4414a3['push'](_0x4414a3['shift']());}catch(_0x4158ae){_0x4414a3['push'](_0x4414a3['shift']());}}}(a0_0x2046,0x4229b));import a0_0x39f97e from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x579b28={},_0x3d9d23=null){const _0x1e625f=a0_0x36ff;this[_0x1e625f(0xa0)]=_0x579b28,this['logger']=_0x3d9d23,this['attachmentService']=new a0_0x39f97e(_0x579b28,_0x3d9d23);}async['initialize'](){await this['attachmentService']['initialize']();}async[a0_0x27e730(0x85)](_0x1bc13c){const _0x24a6bd=a0_0x27e730;try{const _0x518895=await this[_0x24a6bd(0xa3)]['getActiveAttachments'](_0x1bc13c);if(_0x518895[_0x24a6bd(0xa1)]===0x0)return'';const _0x157698=_0x518895['filter'](_0x3dc528=>_0x3dc528['mode']===_0x24a6bd(0x90)),_0x507eb8=_0x518895[_0x24a6bd(0x77)](_0x1c50cc=>_0x1c50cc['mode']==='reference');let _0x56225e='';if(_0x157698['length']>0x0){_0x56225e+='\x0a<attached-files>\x0a';for(const _0xdf016e of _0x157698){const _0xc34069=await this[_0x24a6bd(0xa3)]['getAttachmentContent'](_0xdf016e[_0x24a6bd(0x9c)]);if(_0xc34069){const _0x239492=this[_0x24a6bd(0xa4)](_0xdf016e,_0xc34069);_0x56225e+=_0x239492+'\x0a';}}_0x56225e+='</attached-files>\x0a';}if(_0x507eb8[_0x24a6bd(0xa1)]>0x0){_0x56225e+=_0x24a6bd(0x7d);for(const _0x474fe7 of _0x507eb8){const _0x4ec1cc=this[_0x24a6bd(0x8a)](_0x474fe7);_0x56225e+=_0x4ec1cc+'\x0a';}_0x56225e+='</file-references>\x0a',_0x56225e+=_0x24a6bd(0xa6);}return _0x56225e;}catch(_0x25f0a5){return this['logger']?.['error']('Error\x20building\x20dynamic\x20context',{'agentId':_0x1bc13c,'error':_0x25f0a5['message']}),'';}}['formatContentFile'](_0x4962ff,_0x2b5ba6){const _0xf08be0=a0_0x27e730,{fileName:_0x5d8638,fileType:_0x57e8ba,size:_0xf3e80d,contentType:_0x237967}=_0x4962ff,_0x55c52f=(_0xf3e80d/0x400)['toFixed'](0x2);if(_0x237967===_0xf08be0(0x9b))return this[_0xf08be0(0x79)](_0x4962ff,_0x2b5ba6);else{if(_0x237967===_0xf08be0(0x93))return this['formatImageFile'](_0x4962ff,_0x2b5ba6);else{if(_0x237967===_0xf08be0(0x84))return this[_0xf08be0(0x94)](_0x4962ff,_0x2b5ba6);}}return _0xf08be0(0x8d)+this[_0xf08be0(0xa8)](_0x5d8638)+_0xf08be0(0x87)+_0x57e8ba+_0xf08be0(0x98)+_0x55c52f+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x2b5ba6)+_0xf08be0(0x83);}[a0_0x27e730(0x79)](_0x298ef1,_0x4583fe){const _0x1866ab=a0_0x27e730,{fileName:_0x222144,fileType:_0x243c1b,size:_0x3b47e6}=_0x298ef1,_0x7347db=(_0x3b47e6/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x222144)+_0x1866ab(0x87)+_0x243c1b+_0x1866ab(0x98)+_0x7347db+_0x1866ab(0x91)+this[_0x1866ab(0xa8)](_0x4583fe)+'\x0a\x20\x20</file>';}['formatImageFile'](_0x902da1,_0x270708){const _0x1f3974=a0_0x27e730,{fileName:_0x332b87,fileType:_0x505249,size:_0x27537d}=_0x902da1,_0x2c6c98=(_0x27537d/0x400)[_0x1f3974(0x89)](0x2);return _0x1f3974(0x8d)+this['escapeXml'](_0x332b87)+_0x1f3974(0x87)+_0x505249+_0x1f3974(0x98)+_0x2c6c98+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x270708+'\x0a\x20\x20</file>';}[a0_0x27e730(0x94)](_0x4e800d,_0x49689e){const _0x210a68=a0_0x27e730,{fileName:_0x44eb45,fileType:_0x48427d,size:_0x1a0ce7}=_0x4e800d,_0x1fb9af=(_0x1a0ce7/0x400)[_0x210a68(0x89)](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x210a68(0xa8)](_0x44eb45)+'\x22\x20type=\x22'+_0x48427d+'\x22\x20size=\x22'+_0x1fb9af+_0x210a68(0x91)+this[_0x210a68(0xa8)](_0x49689e)+_0x210a68(0x83);}['formatReferenceFile'](_0x54840e){const _0xf8250e=a0_0x27e730,{fileName:_0x3d6171,originalPath:_0x4c4591,size:_0x130280,fileType:_0x4fa142,lastModified:_0x2d441d}=_0x54840e,_0x41bbdf=this['formatBytes'](_0x130280),_0x5d252e=new Date(_0x2d441d)['toISOString']()['split']('T')[0x0];return _0xf8250e(0x8d)+this[_0xf8250e(0xa8)](_0x3d6171)+_0xf8250e(0x92)+this[_0xf8250e(0xa8)](_0x4c4591)+_0xf8250e(0x98)+_0x41bbdf+_0xf8250e(0x87)+_0x4fa142+_0xf8250e(0x7e)+_0x5d252e+'\x22\x20/>';}['escapeXml'](_0x19a548){const _0x2852b8=a0_0x27e730;if(!_0x19a548)return'';return _0x19a548['replace'](/&/g,'&')[_0x2852b8(0x78)](/</g,'<')['replace'](/>/g,'>')[_0x2852b8(0x78)](/"/g,'"')['replace'](/'/g,''');}['formatBytes'](_0x51c192){const _0x4bd8eb=a0_0x27e730;if(_0x51c192===0x0)return'0\x20Bytes';const _0x2032df=0x400,_0x477bdf=['Bytes','KB','MB','GB'],_0x1675f4=Math[_0x4bd8eb(0x81)](Math[_0x4bd8eb(0x86)](_0x51c192)/Math[_0x4bd8eb(0x86)](_0x2032df));return parseFloat((_0x51c192/Math['pow'](_0x2032df,_0x1675f4))[_0x4bd8eb(0x89)](0x2))+_0x477bdf[_0x1675f4];}async['estimateTotalTokens'](_0x2ad5bd){const _0x1e95af=a0_0x27e730;try{const _0x189b4c=await this[_0x1e95af(0xa3)]['getActiveAttachments'](_0x2ad5bd);let _0x524901=0x0;for(const _0x2c35e0 of _0x189b4c){_0x2c35e0['mode']===_0x1e95af(0x90)?_0x524901+=_0x2c35e0['tokenEstimate']||0x0:_0x524901+=0x14;}return _0x524901;}catch(_0x2d4fb7){return this['logger']?.['error'](_0x1e95af(0x8c),{'agentId':_0x2ad5bd,'error':_0x2d4fb7[_0x1e95af(0x80)]}),0x0;}}async['getAttachmentSummary'](_0x317947){const _0x1a5c82=a0_0x27e730;try{const _0x426012=await this[_0x1a5c82(0xa3)]['getActiveAttachments'](_0x317947),_0x3561aa={'totalActive':_0x426012['length'],'contentMode':_0x426012[_0x1a5c82(0x77)](_0x174141=>_0x174141[_0x1a5c82(0x7f)]==='content')['length'],'referenceMode':_0x426012[_0x1a5c82(0x77)](_0x2f40ae=>_0x2f40ae['mode']===_0x1a5c82(0x9e))['length'],'estimatedTokens':0x0,'files':[]};for(const _0x4dfcba of _0x426012){_0x3561aa['estimatedTokens']+=_0x4dfcba['tokenEstimate']||0x0,_0x3561aa[_0x1a5c82(0x8b)][_0x1a5c82(0xa2)]({'fileName':_0x4dfcba['fileName'],'mode':_0x4dfcba['mode'],'size':this[_0x1a5c82(0x7c)](_0x4dfcba['size']),'tokens':_0x4dfcba[_0x1a5c82(0x9f)]||0x0});}return _0x3561aa;}catch(_0x523ce1){return this[_0x1a5c82(0x9a)]?.[_0x1a5c82(0x9d)](_0x1a5c82(0xa7),{'agentId':_0x317947,'error':_0x523ce1[_0x1a5c82(0x80)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
|