@loxia-labs/loxia-autopilot-one 1.0.14 → 1.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/cli.js +1 -1
- package/bin/loxia-terminal-v2.js +1 -1
- package/bin/loxia-terminal.js +1 -1
- package/bin/start-with-terminal.js +1 -1
- package/package.json +1 -1
- package/scripts/install-scanners.js +1 -1
- package/src/analyzers/CSSAnalyzer.js +1 -1
- package/src/analyzers/ConfigValidator.js +1 -1
- package/src/analyzers/ESLintAnalyzer.js +1 -1
- package/src/analyzers/JavaScriptAnalyzer.js +1 -1
- package/src/analyzers/PrettierFormatter.js +1 -1
- package/src/analyzers/PythonAnalyzer.js +1 -1
- package/src/analyzers/SecurityAnalyzer.js +1 -1
- package/src/analyzers/TypeScriptAnalyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/detector.js +1 -1
- package/src/analyzers/codeCloneDetector/index.js +1 -1
- package/src/analyzers/codeCloneDetector/parser.js +1 -1
- package/src/analyzers/codeCloneDetector/reporter.js +1 -1
- package/src/analyzers/codeCloneDetector/scanner.js +1 -1
- package/src/core/agentPool.js +1 -1
- package/src/core/agentScheduler.js +1 -1
- package/src/core/contextManager.js +1 -1
- package/src/core/messageProcessor.js +1 -1
- package/src/core/orchestrator.js +1 -1
- package/src/core/stateManager.js +1 -1
- package/src/index.js +1 -1
- package/src/interfaces/cli.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
- package/src/interfaces/terminal/api/apiClient.js +1 -1
- package/src/interfaces/terminal/api/messageRouter.js +1 -1
- package/src/interfaces/terminal/api/session.js +1 -1
- package/src/interfaces/terminal/api/websocket.js +1 -1
- package/src/interfaces/terminal/components/AgentCreator.js +1 -1
- package/src/interfaces/terminal/components/AgentEditor.js +1 -1
- package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
- package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
- package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
- package/src/interfaces/terminal/components/Header.js +1 -1
- package/src/interfaces/terminal/components/HelpPanel.js +1 -1
- package/src/interfaces/terminal/components/InputBox.js +1 -1
- package/src/interfaces/terminal/components/Layout.js +1 -1
- package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
- package/src/interfaces/terminal/components/MessageList.js +1 -1
- package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
- package/src/interfaces/terminal/components/SearchPanel.js +1 -1
- package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
- package/src/interfaces/terminal/components/StatusBar.js +1 -1
- package/src/interfaces/terminal/components/TextInput.js +1 -1
- package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
- package/src/interfaces/terminal/config/constants.js +1 -1
- package/src/interfaces/terminal/index.js +1 -1
- package/src/interfaces/terminal/state/useAgentControl.js +1 -1
- package/src/interfaces/terminal/state/useAgents.js +1 -1
- package/src/interfaces/terminal/state/useConnection.js +1 -1
- package/src/interfaces/terminal/state/useMessages.js +1 -1
- package/src/interfaces/terminal/state/useTools.js +1 -1
- package/src/interfaces/terminal/utils/debugLogger.js +1 -1
- package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
- package/src/interfaces/terminal/utils/theme.js +1 -1
- package/src/interfaces/webServer.js +1 -1
- package/src/modules/fileExplorer/controller.js +1 -1
- package/src/modules/fileExplorer/index.js +1 -1
- package/src/modules/fileExplorer/middleware.js +1 -1
- package/src/modules/fileExplorer/routes.js +1 -1
- package/src/services/agentActivityService.js +1 -1
- package/src/services/aiService.js +1 -1
- package/src/services/apiKeyManager.js +1 -1
- package/src/services/benchmarkService.js +1 -1
- package/src/services/budgetService.js +1 -1
- package/src/services/contextInjectionService.js +1 -1
- package/src/services/conversationCompactionService.js +1 -1
- package/src/services/errorHandler.js +1 -1
- package/src/services/fileAttachmentService.js +1 -1
- package/src/services/modelRouterService.js +1 -1
- package/src/services/modelsService.js +1 -1
- package/src/services/qualityInspector.js +1 -1
- package/src/services/tokenCountingService.js +1 -1
- package/src/tools/agentCommunicationTool.js +1 -1
- package/src/tools/agentDelayTool.js +1 -1
- package/src/tools/asyncToolManager.js +1 -1
- package/src/tools/baseTool.js +1 -1
- package/src/tools/browserTool.js +1 -1
- package/src/tools/cloneDetectionTool.js +1 -1
- package/src/tools/dependencyResolverTool.js +1 -1
- package/src/tools/fileContentReplaceTool.js +1 -1
- package/src/tools/fileSystemTool.js +1 -1
- package/src/tools/fileTreeTool.js +1 -1
- package/src/tools/imageTool.js +1 -1
- package/src/tools/importAnalyzerTool.js +1 -1
- package/src/tools/jobDoneTool.js +1 -1
- package/src/tools/seekTool.js +1 -1
- package/src/tools/staticAnalysisTool.js +1 -1
- package/src/tools/taskManagerTool.js +1 -1
- package/src/tools/terminalTool.js +1 -1
- package/src/tools/webTool.js +1 -1
- package/src/types/agent.js +1 -1
- package/src/types/contextReference.js +1 -1
- package/src/types/conversation.js +1 -1
- package/src/types/toolCommand.js +1 -1
- package/src/utilities/attachmentValidator.js +1 -1
- package/src/utilities/configManager.js +1 -1
- package/src/utilities/constants.js +1 -1
- package/src/utilities/directoryAccessManager.js +1 -1
- package/src/utilities/fileProcessor.js +1 -1
- package/src/utilities/logger.js +1 -1
- package/src/utilities/tagParser.js +1 -1
- package/src/utilities/toolConstants.js +1 -1
- package/src/utilities/userDataDir.js +1 -1
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/index-DFmFvOoy.css +1 -0
- package/web-ui/build/static/index-DOk0l6Kf.js +348 -0
- package/web-ui/build/static/index-DXN850Y2.js +0 -400
- package/web-ui/build/static/index-an-YRzUX.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x395b(_0xd463f3,_0x31858c){_0xd463f3=_0xd463f3-0x186;const _0x57cdf3=a0_0x57cd();let _0x395bb0=_0x57cdf3[_0xd463f3];if(a0_0x395b['prpdWG']===undefined){var _0x2a4eeb=function(_0x26c0a7){const _0x6f666a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d2624='',_0x562cd0='';for(let _0x2ff4b1=0x0,_0x223766,_0x413367,_0x493830=0x0;_0x413367=_0x26c0a7['charAt'](_0x493830++);~_0x413367&&(_0x223766=_0x2ff4b1%0x4?_0x223766*0x40+_0x413367:_0x413367,_0x2ff4b1++%0x4)?_0x2d2624+=String['fromCharCode'](0xff&_0x223766>>(-0x2*_0x2ff4b1&0x6)):0x0){_0x413367=_0x6f666a['indexOf'](_0x413367);}for(let _0x2aa0ab=0x0,_0x49614a=_0x2d2624['length'];_0x2aa0ab<_0x49614a;_0x2aa0ab++){_0x562cd0+='%'+('00'+_0x2d2624['charCodeAt'](_0x2aa0ab)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x562cd0);};a0_0x395b['YTaYpJ']=_0x2a4eeb,a0_0x395b['GfNAiA']={},a0_0x395b['prpdWG']=!![];}const _0x6e7d5b=_0x57cdf3[0x0],_0x3fe05a=_0xd463f3+_0x6e7d5b,_0x38aedd=a0_0x395b['GfNAiA'][_0x3fe05a];return!_0x38aedd?(_0x395bb0=a0_0x395b['YTaYpJ'](_0x395bb0),a0_0x395b['GfNAiA'][_0x3fe05a]=_0x395bb0):_0x395bb0=_0x38aedd,_0x395bb0;}const a0_0x2b0c53=a0_0x395b;(function(_0x2a313f,_0x16a8ef){const _0x3f1933=a0_0x395b,_0x334fa9=_0x2a313f();while(!![]){try{const _0x1aaa4f=-parseInt(_0x3f1933(0x1f8))/0x1+parseInt(_0x3f1933(0x21a))/0x2+parseInt(_0x3f1933(0x1d0))/0x3*(-parseInt(_0x3f1933(0x230))/0x4)+parseInt(_0x3f1933(0x1ee))/0x5*(parseInt(_0x3f1933(0x220))/0x6)+-parseInt(_0x3f1933(0x1ea))/0x7+-parseInt(_0x3f1933(0x1b4))/0x8+-parseInt(_0x3f1933(0x1d1))/0x9*(-parseInt(_0x3f1933(0x22c))/0xa);if(_0x1aaa4f===_0x16a8ef)break;else _0x334fa9['push'](_0x334fa9['shift']());}catch(_0x5577d4){_0x334fa9['push'](_0x334fa9['shift']());}}}(a0_0x57cd,0xc6c55));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x57cd(){const _0x1b06a1=['yxbWBgLJyxrPB24VANnVBG','C3rHy2S','DgvTCgvYyxr1CMu','yMfZzvvYBa','x2zVCM1HDezVCKf6DxjL','Aw5MBW','qu5usfjpueLd','y29UDgvUDa','Dg90ywXFDg9Rzw5Z','x2nOzwnRtw9KzwXizwfSDgG','Bw9KzwXtCgvJCW','CMv2zxjZzq','x2zVCM1HDezVCKfUDgHYB3bPyW','C3rYzwfT','vu5bvvrit1jjwKve','yMfJA2vUza','l2HLywX0Aa','C3DPDgnOtw9KzwW','Aw1Hz2vZ','revfufnfruTFuJe','DgLTzw91Da','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','ywDLBNrqB29S','ue9tva','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','Bwf4vg9Rzw5Z','C3bLzwq','Aw1Nlq','C3vIC3rY','x3jLy29YzezHAwX1CMu','mta2nZmWmdHttw5qtLO','x21HA2vbueLszxf1zxn0','CgvYC2LZDefNzw50u3rHDgu','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','Bg94AwfbCgLlzxK','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','B3bLBMfP','l2nOyxqVy29TCgXLDgLVBNm','C3rYAw5NAwz5','u2vYDMLJzsb1BMf2ywLSywjSzsWGD2fPDgLUzYa','CgHP','y3vZDg9TqxbPs2v5CW','C2vZC2LVBKLK','t1bftKfj','ywDLBNrjza','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','rKfmtejbq0S','y2XHC3nPzNLfCNjVCG','Dw5ZAgLMDa','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','DxnHz2u','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','z2v0s2v5C0zVCLjLCxvLC3q','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','Dgv4Da','ChvZAa','oxvPzhfbsa','mZu3ntqZwhv4q2vS','C3rHDhvZ','zxn0Aw1HDgvKvg9Rzw5Z','AM9PBG','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','qu5usfjpueLdx09qvvm','y2vPBa','Bg9Nz2vY','Aw5JBhvKzxm','BwfW','C3rVCa','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','y2HVAwnLCW','yxnZAxn0yw50','quKGC2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzq','x2zVCM1HDfnPBMDSzu1LC3nHz2u','zxjYB3jiyw5KBgvY','DxjS','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','BgvUz3rO','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','ChjVDMLKzxi','qu5usfjpueLdx0HbsuTv','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','r0furvDbwv9usu1ft1vu','mZa1ntG1n0ztEev0ta','C2vUze1LC3nHz2u','C2v0qwDLBNrqB29S','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','mtqXndq1CuvZBxDq','x2LZvMfSAwrnB2rLBa','yNvKz2v0u2vYDMLJzq','zxjYB3iT','qvPvuKu','x2zVCM1HDezVCK9Wzw5bsq','sfruuca','C2L6zq','sw52ywXPzcbYzxf1zxn0oIa','CMvXDwvZDeLK','mte5odK2nxLLwg1ABW','x2DLDfzLBMrVCKzYB21nB2rLBa','qMvHCMvYia','C3rHBMrHCMq','yw50AhjVCgLJ','CM9Szq','D2fYBG','C3DPDgnOqwDLBNrnB2rLBa','Dg9ju09tDhjPBMC','BM93','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','qMfKihjLCxvLC3qGDg8GquKGC2vYDMLJzq','yxP1CMuTB3bLBMfPlwrHBgXLmW','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','qxv0AgvUDgLJyxrPB24GzMfPBgvKic0Gy2HLy2SGqvbjignYzwrLBNrPywXZ','yxbPs2v5twfUywDLCG','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','zMfPBhvYzxm','C3rYAw5N','BwvZC2fNzxm','Ahr0Chm6lY9HCgKUBg94AweUywK','C3LZDgvT','BwvZC2fNzq','x3rYDw5JyxrLtwvZC2fNzq','ve9px01btLLFuKvrvuvtvfm','zgvIDwC','y29UzMLN','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','DhjHy2TvC2fNzq','DxnLCG','y29UDMvYC2f0Aw9UCW','C3rHDhvZvgv4Da','ChjVBxb0','z3b0','nde5ogLlzMLhsG','zgvLChnLzwS','Bw9KzwW','ic0G','y29UDMvYC2f0Aw9UtwfUywDLCNm','ANnVBG','mZblsgLhzMO','rK9sqKLerevo','yxbPs2v5','x2LZq2LYy3vPDejYzwfRzxjpCgvU','zMX1Ec0XlJeTChjV','CMvZCg9UC2vgB3jTyxq','CMfUzg9T','CMv0CNLbDhrLBxb0CW','z2v0qwDLBNq','C3vIC3rYAw5N','y2LYy3vPDejYzwfRzxi','uMv0CNLPBMCGAw4G','mti2mhbhz2HNrq','B3b0Aw9UCW','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','qKfex1jfuvvfu1q','mtGYmdq1mMrgsu90AG','DMvUzg9YqxbPs2v5','C3LZDgvTuhjVBxb0','su5urvjoquXFu0vsvKvsx0vsuK9s','x2vZDgLTyxrLvg9Rzw5Z','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','AgfUzgXLshr0CevYCM9Y','AxnpCgvU','zgf0yq','x3n1Bw1HCML6zu1LC3nHz2vZ','CgXHDgzVCM1qCM92AwrLza','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','AgvHBhrOEq','zxjYB3i','BgfZDezHAwX1CMvuAw1L','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','yJy0x2PZB24','x2HHBMrSzvjHDgvmAw1PDa','x3jLC2v0q2LYy3vPDejYzwfRzxi','C3vTBwfYEq'];a0_0x57cd=function(){return _0x1b06a1;};return a0_0x57cd();}class AIService{constructor(_0x2d2624,_0x562cd0,_0x2ff4b1,_0x223766){const _0xad2375=a0_0x395b;this[_0xad2375(0x212)]=_0x2d2624,this[_0xad2375(0x1d8)]=_0x562cd0,this['budgetService']=_0x2ff4b1,this['errorHandler']=_0x223766,this[_0xad2375(0x199)]=_0x2d2624['backend']?.[_0xad2375(0x199)]||_0xad2375(0x20c),this[_0xad2375(0x1aa)]=_0x2d2624[_0xad2375(0x1a5)]?.[_0xad2375(0x1aa)]||0xea60,this[_0xad2375(0x227)]=_0x2d2624[_0xad2375(0x1a5)]?.['retryAttempts']||0x3,this['rateLimiters']=new Map(),this['requestQueue']=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0xad2375(0x1d5)](),this[_0xad2375(0x21e)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async[a0_0x2b0c53(0x1eb)](_0x413367,_0x493830,_0x2aa0ab={}){const _0x3ae6af=a0_0x2b0c53,_0x49614a='req-'+Date[_0x3ae6af(0x201)]()+'-'+Math[_0x3ae6af(0x226)]()['toString'](0x24)[_0x3ae6af(0x1b2)](0x2,0x9);try{if(this[_0x3ae6af(0x223)]())throw new Error(_0x3ae6af(0x1ae));await this['_checkRateLimit'](_0x413367);const _0x578fef=this['_formatMessagesForModel'](_0x493830,_0x413367,_0x2aa0ab),_0x67ecd1={'model':_0x413367,'messages':_0x578fef,'options':{'max_tokens':this[_0x3ae6af(0x1a0)][_0x413367]?.[_0x3ae6af(0x1af)]||0xfa0,'temperature':_0x2aa0ab[_0x3ae6af(0x198)]||0.7,'stream':_0x2aa0ab[_0x3ae6af(0x1a3)]||![]},'metadata':{'requestId':_0x49614a,'agentId':_0x2aa0ab[_0x3ae6af(0x1c4)],'timestamp':new Date()[_0x3ae6af(0x200)]()}};_0x2aa0ab[_0x3ae6af(0x232)]&&(_0x67ecd1['system']=_0x2aa0ab['systemPrompt']);this['logger'][_0x3ae6af(0x19b)](_0x3ae6af(0x1cb)+_0x413367,{'requestId':_0x49614a,'agentId':_0x2aa0ab['agentId'],'messageCount':Array['isArray'](_0x493830)?_0x493830['length']:0x1,'maxTokens':_0x67ecd1['max_tokens']});const _0x554a60=await this['_makeAPIRequest'](_0x3ae6af(0x1bd),_0x67ecd1,_0x49614a,{..._0x2aa0ab,'sessionId':_0x2aa0ab['sessionId'],'platformProvided':_0x2aa0ab[_0x3ae6af(0x18c)]||![]});return _0x554a60['usage']&&await this[_0x3ae6af(0x214)](_0x2aa0ab[_0x3ae6af(0x1c4)],_0x413367,{'prompt_tokens':_0x554a60['usage']['prompt_tokens']||0x0,'completion_tokens':_0x554a60['usage']['completion_tokens']||0x0,'total_tokens':_0x554a60['usage'][_0x3ae6af(0x19e)]||0x0}),this[_0x3ae6af(0x194)](),{'content':_0x554a60[_0x3ae6af(0x1dd)][0x0]?.[_0x3ae6af(0x20e)]?.[_0x3ae6af(0x19d)]||'','model':_0x554a60['model'],'tokenUsage':_0x554a60[_0x3ae6af(0x1ca)],'requestId':_0x49614a,'finishReason':_0x554a60[_0x3ae6af(0x1dd)][0x0]?.['finish_reason']};}catch(_0x2f6346){this[_0x3ae6af(0x1b3)](),this[_0x3ae6af(0x1d8)]['error'](_0x3ae6af(0x22e)+_0x2f6346['message'],{'requestId':_0x49614a,'model':_0x413367,'agentId':_0x2aa0ab['agentId'],'error':_0x2f6346['stack']}),await this[_0x3ae6af(0x188)](_0x2f6346,{'requestId':_0x49614a,'model':_0x413367,'agentId':_0x2aa0ab['agentId']});throw _0x2f6346;}}async['routeModel'](_0x9cdfaf,_0x13b87b={}){const _0x129b86=a0_0x2b0c53;try{const _0x518bc8=MODEL_ROUTING[_0x9cdfaf['toUpperCase']()]||MODEL_ROUTING[_0x129b86(0x1c6)],_0x1ad857=[];for(const _0x59ac0e of _0x518bc8){const _0x6e0860=await this[_0x129b86(0x19f)](_0x59ac0e);_0x6e0860&&_0x1ad857[_0x129b86(0x1cf)](_0x59ac0e);}if(_0x1ad857[_0x129b86(0x1e4)]===0x0)return this[_0x129b86(0x1d8)][_0x129b86(0x1fe)](_0x129b86(0x191)+_0x9cdfaf+',\x20using\x20fallback'),MODEL_ROUTING[_0x129b86(0x1c6)][0x0];let _0x2b1b8c=_0x1ad857[0x0];if(_0x13b87b['preferredModel']&&_0x1ad857['includes'](_0x13b87b['preferredModel']))_0x2b1b8c=_0x13b87b['preferredModel'];else{if(_0x13b87b['complexity']==='high'&&_0x1ad857[_0x129b86(0x1d9)](MODELS['ANTHROPIC_OPUS']))_0x2b1b8c=MODELS['ANTHROPIC_OPUS'];else _0x13b87b[_0x129b86(0x1b0)]==='fast'&&_0x1ad857[_0x129b86(0x1d9)](MODELS['ANTHROPIC_HAIKU'])&&(_0x2b1b8c=MODELS['ANTHROPIC_HAIKU']);}return this[_0x129b86(0x1d8)][_0x129b86(0x19b)]('Model\x20routed\x20for\x20task:\x20'+_0x9cdfaf,{'selectedModel':_0x2b1b8c,'availableModels':_0x1ad857[_0x129b86(0x1e4)],'context':_0x13b87b}),_0x2b1b8c;}catch(_0x4292b1){return this[_0x129b86(0x1d8)]['error'](_0x129b86(0x1c5)+_0x4292b1['message'],{'task':_0x9cdfaf,'context':_0x13b87b}),MODEL_ROUTING[_0x129b86(0x1c6)][0x0];}}async['compactizeConversation'](_0x3ecae5,_0x4fe3b2){const _0x28dc1c=a0_0x2b0c53,_0x53d220=this[_0x28dc1c(0x1a0)][_0x4fe3b2];if(!_0x53d220)throw new Error('Unknown\x20model:\x20'+_0x4fe3b2);const _0x43d778=_0x53d220['contextWindow']*0.8;let _0x1bf541=0x0;const _0x110b98=[],_0x4fd6ba=await Promise['all'](_0x3ecae5['map'](async _0x57823e=>({..._0x57823e,'estimatedTokens':await this['_estimateTokens'](_0x57823e['content'],_0x4fe3b2)}))),_0x2efd73=[..._0x4fd6ba][_0x28dc1c(0x1a1)]();for(const _0x1fa472 of _0x2efd73){if(_0x1bf541+_0x1fa472[_0x28dc1c(0x1d3)]>_0x43d778){if(_0x110b98[_0x28dc1c(0x1e4)]===0x0){const _0x1f2757=await this[_0x28dc1c(0x20f)](_0x1fa472[_0x28dc1c(0x19d)],_0x43d778);_0x110b98[_0x28dc1c(0x1c8)]({..._0x1fa472,'content':_0x1f2757,'estimatedTokens':_0x43d778});}break;}_0x110b98['unshift'](_0x1fa472),_0x1bf541+=_0x1fa472['estimatedTokens'];}const _0x2d132c=_0x4fd6ba['slice'](0x0,-_0x110b98['length']);if(_0x2d132c['length']>0x0){const _0x1f0ec7=await this['_summarizeMessages'](_0x2d132c,_0x4fe3b2);_0x110b98['unshift']({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x1f0ec7,'timestamp':_0x2d132c[0x0]['timestamp'],'type':_0x28dc1c(0x195),'estimatedTokens':await this['_estimateTokens'](_0x1f0ec7,_0x4fe3b2)});}return this[_0x28dc1c(0x1d8)]['info'](_0x28dc1c(0x1dc)+_0x4fe3b2,{'originalMessages':_0x3ecae5[_0x28dc1c(0x1e4)],'compactizedMessages':_0x110b98['length'],'estimatedTokens':_0x1bf541,'maxTokens':_0x43d778}),_0x110b98;}async['trackUsage'](_0x1e192c,_0x4fe2fe,_0x1d7158,_0x571c49){const _0x5448d4=a0_0x2b0c53;try{this[_0x5448d4(0x1f0)]&&this[_0x5448d4(0x1f0)]['trackUsage'](_0x1e192c,_0x4fe2fe,_0x1d7158);}catch(_0x508d9f){this['logger'][_0x5448d4(0x18f)](_0x5448d4(0x1e5)+_0x508d9f['message']);}}async[a0_0x2b0c53(0x188)](_0x124b96,_0x3bf7a9){const _0x886c11=a0_0x2b0c53,_0x4290bd=this[_0x886c11(0x1e1)]?.[_0x886c11(0x1c7)]?.(_0x124b96,_0x3bf7a9);switch(_0x124b96['status']||_0x124b96['code']){case HTTP_STATUS[_0x886c11(0x22f)]:this[_0x886c11(0x1d8)]['error'](_0x886c11(0x203),{'context':_0x3bf7a9,'error':_0x124b96['message']});throw new Error(_0x886c11(0x1f6)+_0x124b96[_0x886c11(0x20e)]);case HTTP_STATUS[_0x886c11(0x1a4)]:this[_0x886c11(0x1d8)]['error']('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x3bf7a9});throw new Error(_0x886c11(0x206));case HTTP_STATUS[_0x886c11(0x221)]:this['logger']['error'](_0x886c11(0x1b7),{'context':_0x3bf7a9});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS['NOT_FOUND']:this[_0x886c11(0x1d8)][_0x886c11(0x18f)](_0x886c11(0x18d),{'context':_0x3bf7a9});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS[_0x886c11(0x210)]:this['logger']['warn']('Rate\x20limit\x20exceeded',{'context':_0x3bf7a9}),await this[_0x886c11(0x193)](_0x3bf7a9);throw new Error(_0x886c11(0x1c9));case HTTP_STATUS[_0x886c11(0x233)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x886c11(0x1e9)]:this[_0x886c11(0x1d8)]['error'](_0x886c11(0x1ba),{'context':_0x3bf7a9,'status':_0x124b96['status']}),await this['_handleServiceUnavailable'](_0x3bf7a9);throw new Error(_0x886c11(0x1df));default:this[_0x886c11(0x1d8)]['error']('Unknown\x20AI\x20service\x20error',{'context':_0x3bf7a9,'error':_0x124b96['message']});throw new Error('AI\x20service\x20error:\x20'+_0x124b96[_0x886c11(0x20e)]);}}['setApiKeyManager'](_0x603c5e){const _0xf33d79=a0_0x2b0c53;this['apiKeyManager']=_0x603c5e,this[_0xf33d79(0x1d8)]?.[_0xf33d79(0x19b)]('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x603c5e});}[a0_0x2b0c53(0x1ec)](_0x36b22c){const _0x331162=a0_0x2b0c53;this['agentPool']=_0x36b22c,this['logger']?.[_0x331162(0x19b)](_0x331162(0x1b8),{'hasAgentPool':!!_0x36b22c});}async['generateImage'](_0x297eb1,_0x404ee9={}){const _0xbe35c0=a0_0x2b0c53,_0x43e581=_0xbe35c0(0x1b1)+Date['now']()+'-'+Math['random']()['toString'](0x24)[_0xbe35c0(0x1b2)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0xbe35c0(0x1ae));if(!_0x297eb1||typeof _0x297eb1!==_0xbe35c0(0x20a)||_0x297eb1['trim']()[_0xbe35c0(0x1e4)]===0x0)throw new Error(_0xbe35c0(0x208));const _0x1b79d3=_0x404ee9['model']||_0xbe35c0(0x224),_0x4bfad3=_0x404ee9['size']||'1024x1024',_0x38a950=_0x404ee9['quality']||_0xbe35c0(0x1fb),_0x32d175=_0x404ee9[_0xbe35c0(0x225)]||'url';this[_0xbe35c0(0x1d8)]['info']('Generating\x20image\x20with\x20model:\x20'+_0x1b79d3,{'requestId':_0x43e581,'model':_0x1b79d3,'size':_0x4bfad3,'quality':_0x38a950,'promptLength':_0x297eb1[_0xbe35c0(0x1e4)]});const _0x28a89a={'prompt':_0x297eb1,'model':_0x1b79d3,'size':_0x4bfad3,'quality':_0x38a950,'response_format':_0x32d175,'n':0x1,'metadata':{'requestId':_0x43e581,'timestamp':new Date()['toISOString']()}},_0x3e2306=await this['_makeImageAPIRequest'](_0x28a89a,_0x43e581,{'sessionId':_0x404ee9[_0xbe35c0(0x1c2)],'platformProvided':_0x404ee9[_0xbe35c0(0x18c)]||![]});return this['_resetCircuitBreaker'](),{'url':_0x3e2306['data']?.[0x0]?.[_0xbe35c0(0x1e2)]||null,'b64_json':_0x3e2306[_0xbe35c0(0x18a)]?.[0x0]?.[_0xbe35c0(0x192)]||null,'model':_0x3e2306['model']||_0x1b79d3,'requestId':_0x43e581,'revisedPrompt':_0x3e2306['data']?.[0x0]?.['revised_prompt']||_0x297eb1};}catch(_0xd063e0){this['_recordFailure'](),this[_0xbe35c0(0x1d8)][_0xbe35c0(0x18f)](_0xbe35c0(0x213)+_0xd063e0['message'],{'requestId':_0x43e581,'model':_0x404ee9['model'],'error':_0xd063e0[_0xbe35c0(0x197)]});throw _0xd063e0;}}async['checkServiceHealth'](){const _0x297990=a0_0x2b0c53;try{const _0x3a229a=await this[_0x297990(0x1b5)](_0x297990(0x1a6),{},'health-check');return _0x3a229a['status']===_0x297990(0x18e);}catch(_0x1bcb37){return![];}}async[a0_0x2b0c53(0x1ff)](_0x2e61c5,_0x4e0bf8){const _0x17ee45=a0_0x2b0c53;try{if(!this['_isValidModel'](_0x4e0bf8))throw new Error('Invalid\x20model:\x20'+_0x4e0bf8);let _0x10dd80=this[_0x17ee45(0x21e)]['get'](_0x2e61c5);!_0x10dd80&&(_0x10dd80=new ConversationManager(_0x2e61c5,this['logger']),this['conversationManagers']['set'](_0x2e61c5,_0x10dd80));const _0x434e1a=await _0x10dd80['switchModel'](_0x4e0bf8),_0x4c1946=await this[_0x17ee45(0x1ac)]?.[_0x17ee45(0x228)](_0x2e61c5);return _0x4c1946&&(_0x4c1946['currentModel']=_0x4e0bf8,await this['agentPool'][_0x17ee45(0x1b6)](_0x2e61c5)),this['logger']['info'](_0x17ee45(0x202)+_0x2e61c5,{'newModel':_0x4e0bf8,'messageCount':_0x434e1a['messages']['length']}),{'success':!![],'agentId':_0x2e61c5,'newModel':_0x4e0bf8,'conversation':_0x434e1a};}catch(_0x3fd18c){this[_0x17ee45(0x1d8)][_0x17ee45(0x18f)]('Model\x20switch\x20failed:\x20'+_0x3fd18c[_0x17ee45(0x20e)],{'agentId':_0x2e61c5,'newModel':_0x4e0bf8});throw _0x3fd18c;}}[a0_0x2b0c53(0x1d5)](){const _0x14f214=a0_0x2b0c53,_0x5a330d={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x14f214(0x19c)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x14f214(0x1d6)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x14f214(0x1e7)]]:{'provider':MODEL_PROVIDERS[_0x14f214(0x19c)],'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[_0x14f214(0x1c3)],'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['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x14f214(0x1a9)]]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'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':_0x14f214(0x1f2),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x14f214(0x1f2),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x14f214(0x1f2),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x14f214(0x1f2),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x14f214(0x1f2),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x5a330d;}['_formatMessagesForModel'](_0x4b3466,_0x3d48ed,_0x531928){const _0x50c9ad=a0_0x2b0c53,_0x41e83c=this['modelSpecs'][_0x3d48ed]||{'provider':_0x50c9ad(0x1f2)};let _0x573728;typeof _0x4b3466==='string'?_0x573728=[{'role':_0x50c9ad(0x215),'content':_0x4b3466}]:_0x573728=_0x4b3466['map'](_0xe4389a=>this[_0x50c9ad(0x1e0)](_0xe4389a,_0x3d48ed));switch(_0x41e83c[_0x50c9ad(0x1e6)]){case MODEL_PROVIDERS[_0x50c9ad(0x19c)]:return this[_0x50c9ad(0x1a2)](_0x573728);case MODEL_PROVIDERS[_0x50c9ad(0x1c3)]:return this[_0x50c9ad(0x1f3)](_0x573728);case MODEL_PROVIDERS[_0x50c9ad(0x1f2)]:return this[_0x50c9ad(0x19a)](_0x573728);default:return _0x573728;}}[a0_0x2b0c53(0x1e0)](_0x3f6544,_0x17ec3b){return{'role':_0x3f6544['role']||'user','content':_0x3f6544['content'],'timestamp':_0x3f6544['timestamp']};}[a0_0x2b0c53(0x1a2)](_0x2f41db){const _0x23a10d=a0_0x2b0c53;return _0x2f41db[_0x23a10d(0x1da)](_0x22c8f7=>{const _0x3b6816=_0x23a10d;if(_0x22c8f7[_0x3b6816(0x1fd)]===_0x3b6816(0x20d))return{'role':_0x3b6816(0x215),'content':'System:\x20'+_0x22c8f7[_0x3b6816(0x19d)]};return _0x22c8f7;});}['_formatForOpenAI'](_0x204076){return _0x204076;}[a0_0x2b0c53(0x19a)](_0x4a560a){const _0x5f32cd=a0_0x2b0c53;return _0x4a560a[_0x5f32cd(0x1da)](_0x11ff67=>({..._0x11ff67,'content':typeof _0x11ff67['content']==='string'?_0x11ff67[_0x5f32cd(0x19d)]:JSON['stringify'](_0x11ff67[_0x5f32cd(0x19d)])}));}[a0_0x2b0c53(0x1ef)](_0x48dd2d){const _0x527109=a0_0x2b0c53;this['logger'][_0x527109(0x211)]('Validating\x20model',{'model':_0x48dd2d,'modelType':typeof _0x48dd2d});if(this[_0x527109(0x1a0)][_0x48dd2d]!==undefined)return!![];return this[_0x527109(0x1d8)][_0x527109(0x1fe)](_0x527109(0x186),{'model':_0x48dd2d,'availableModels':Object['keys'](this[_0x527109(0x1a0)])}),![];}async['_checkModelHealth'](_0x2024dd){return!![];}async[a0_0x2b0c53(0x234)](_0xd1aa25,_0x34e8c0){const _0x259e08=a0_0x2b0c53;return Math[_0x259e08(0x1d7)](_0xd1aa25[_0x259e08(0x1e4)]/0x4);}async[a0_0x2b0c53(0x20f)](_0x438d4d,_0xa751dd){const _0x2cea33=a0_0x2b0c53,_0x306519=_0xa751dd*0x4;if(_0x438d4d['length']<=_0x306519)return _0x438d4d;return _0x438d4d[_0x2cea33(0x229)](0x0,_0x306519-0x14)+'\x0a...\x20[message\x20truncated]';}async[a0_0x2b0c53(0x18b)](_0x5ee8bb,_0x3c8676){const _0x3cdc68=a0_0x2b0c53,_0x10c69f=_0x5ee8bb[_0x3cdc68(0x1da)](_0x1d71ff=>_0x1d71ff['role']+':\x20'+_0x1d71ff['content'])[_0x3cdc68(0x1d4)]('\x0a'),_0x16cbb4=0x1f4;if(_0x10c69f['length']<=_0x16cbb4)return _0x10c69f;return _0x10c69f['substring'](0x0,_0x16cbb4)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x37ce9b,_0x143756,_0x313d49,_0x405438={}){const _0x21cad1=a0_0x2b0c53,_0x3d8fcb='https://autopilot-api.azurewebsites.net/llm/chat';let _0x5b8a8b,_0x5e8352=null,_0x43a260=null;this[_0x21cad1(0x1d8)]?.[_0x21cad1(0x19b)](_0x21cad1(0x1bb),{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x405438['sessionId'],'hasSessionId':!!_0x405438['sessionId'],'optionsKeys':Object['keys'](_0x405438),'model':_0x143756['model']});if(this[_0x21cad1(0x207)]&&_0x405438['sessionId']){const _0x2a240a=this[_0x21cad1(0x207)]['getKeysForRequest'](_0x405438['sessionId'],{'platformProvided':_0x405438[_0x21cad1(0x18c)]||![],'vendor':this[_0x21cad1(0x1f9)](_0x143756[_0x21cad1(0x21c)])});_0x5e8352=_0x2a240a[_0x21cad1(0x1b9)],_0x43a260=_0x2a240a['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x405438[_0x21cad1(0x1c2)],'hasLoxiaKey':!!_0x5e8352,'hasVendorKey':!!_0x43a260,'vendor':this['_getVendorFromModel'](_0x143756[_0x21cad1(0x21c)])});}!_0x5e8352&&_0x405438['apiKey']&&(_0x5e8352=_0x405438['apiKey']);!_0x5e8352&&this[_0x21cad1(0x212)][_0x21cad1(0x222)]&&(_0x5e8352=this[_0x21cad1(0x212)]['apiKey']);if(!_0x5e8352)throw new Error(_0x21cad1(0x1e8));const _0x5c0e7c=_0x143756['model'],_0x414f66={'conversationId':_0x313d49,'message':_0x143756[_0x21cad1(0x20b)][_0x143756[_0x21cad1(0x20b)][_0x21cad1(0x1e4)]-0x1]?.['content']||'','messages':_0x143756['messages'],'model':_0x5c0e7c,'requestId':_0x313d49,'options':_0x143756[_0x21cad1(0x22d)]||{},'platformProvided':_0x405438[_0x21cad1(0x18c)]||![]};_0x143756['system']&&(_0x414f66[_0x21cad1(0x232)]=_0x143756[_0x21cad1(0x20d)]);_0x405438['platformProvided']?_0x414f66['apiKey']=_0x5e8352:(_0x43a260&&(_0x414f66[_0x21cad1(0x231)]=_0x43a260),_0x405438['customApiKeys']&&(_0x414f66[_0x21cad1(0x1c1)]=_0x405438['customApiKeys']),_0x414f66[_0x21cad1(0x222)]=_0x5e8352);for(let _0x3cba79=0x1;_0x3cba79<=this[_0x21cad1(0x227)];_0x3cba79++){try{this[_0x21cad1(0x1d8)]['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x3d8fcb,'model':_0x143756[_0x21cad1(0x21c)],'requestId':_0x313d49,'attempt':_0x3cba79,'hasApiKey':!!_0x5e8352});const _0x17f510=await fetch(_0x3d8fcb,{'method':'POST','headers':{'Content-Type':_0x21cad1(0x196),'Authorization':_0x21cad1(0x1fa)+_0x5e8352,'X-Request-ID':_0x313d49},'body':JSON[_0x21cad1(0x1be)](_0x414f66),'timeout':this[_0x21cad1(0x1aa)]});if(!_0x17f510['ok']){const _0x50ff5b=await _0x17f510[_0x21cad1(0x1ce)](),_0x3a1490=new Error(_0x21cad1(0x1f4)+_0x17f510[_0x21cad1(0x1d2)]+':\x20'+_0x17f510['statusText']+(_0x50ff5b?_0x21cad1(0x21d)+_0x50ff5b:''));_0x3a1490[_0x21cad1(0x1d2)]=_0x17f510['status'];throw _0x3a1490;}const _0x3387e9=await _0x17f510[_0x21cad1(0x21f)]();return{'choices':[{'message':{'content':_0x3387e9['content']||'','role':'assistant'},'finish_reason':_0x3387e9['finishReason']||_0x21cad1(0x1db)}],'usage':_0x3387e9[_0x21cad1(0x1ca)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x3387e9['model']||_0x143756[_0x21cad1(0x21c)],'id':_0x3387e9[_0x21cad1(0x1f7)]||_0x313d49};}catch(_0x4d46de){_0x5b8a8b=_0x4d46de,this[_0x21cad1(0x1d8)]['warn'](_0x21cad1(0x1ab),{'attempt':_0x3cba79,'requestId':_0x313d49,'error':_0x4d46de['message'],'status':_0x4d46de[_0x21cad1(0x1d2)]});if(_0x3cba79<this[_0x21cad1(0x227)]){const _0x31411e=Math['pow'](0x2,_0x3cba79)*0x3e8;this[_0x21cad1(0x1d8)][_0x21cad1(0x1fe)]('Retrying\x20in\x20'+_0x31411e+'ms',{'attempt':_0x3cba79,'requestId':_0x313d49}),await new Promise(_0x2c0c8c=>setTimeout(_0x2c0c8c,_0x31411e));}}}this[_0x21cad1(0x1d8)][_0x21cad1(0x18f)](_0x21cad1(0x1cd),{'requestId':_0x313d49,'error':_0x5b8a8b[_0x21cad1(0x20e)]});const _0x5da23e=_0x5b8a8b[_0x21cad1(0x20e)]&&_0x5b8a8b['message']['includes']('No\x20API\x20key\x20configured');if(_0x5da23e)throw new Error('API\x20Configuration\x20Error:\x20'+_0x5b8a8b[_0x21cad1(0x20e)]);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x5b8a8b[_0x21cad1(0x20e)],'role':_0x21cad1(0x1de)},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x143756['model'],'id':_0x21cad1(0x1f1)+_0x313d49,'error':_0x5b8a8b['message']};}async['_makeImageAPIRequest'](_0x5c3fc7,_0x65e87d,_0x1521b1={}){const _0x4c1f33=a0_0x2b0c53,_0x14d16d='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x5b7097,_0x1915dd=null,_0x1ce033=null;this['logger']?.['info']('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x1521b1[_0x4c1f33(0x1c2)],'hasSessionId':!!_0x1521b1['sessionId'],'model':_0x5c3fc7[_0x4c1f33(0x21c)]});if(this[_0x4c1f33(0x207)]&&_0x1521b1[_0x4c1f33(0x1c2)]){const _0x20ff81=this[_0x4c1f33(0x207)][_0x4c1f33(0x1cc)](_0x1521b1[_0x4c1f33(0x1c2)],{'platformProvided':_0x1521b1[_0x4c1f33(0x18c)]||![],'vendor':this['_getVendorFromModel'](_0x5c3fc7[_0x4c1f33(0x21c)])});_0x1915dd=_0x20ff81[_0x4c1f33(0x1b9)],_0x1ce033=_0x20ff81['vendorApiKey'],this[_0x4c1f33(0x1d8)]?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x1521b1[_0x4c1f33(0x1c2)],'hasLoxiaKey':!!_0x1915dd,'hasVendorKey':!!_0x1ce033});}!_0x1915dd&&_0x1521b1[_0x4c1f33(0x222)]&&(_0x1915dd=_0x1521b1['apiKey']);!_0x1915dd&&this['config'][_0x4c1f33(0x222)]&&(_0x1915dd=this['config'][_0x4c1f33(0x222)]);if(!_0x1915dd)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x3bbcdd={'prompt':_0x5c3fc7[_0x4c1f33(0x218)],'model':_0x5c3fc7[_0x4c1f33(0x21c)]||_0x4c1f33(0x204),'size':_0x5c3fc7[_0x4c1f33(0x1f5)],'quality':_0x5c3fc7['quality'],'style':_0x5c3fc7['style']||'vivid','n':_0x5c3fc7['n']||0x1,'requestId':_0x65e87d};for(let _0x50fdcd=0x1;_0x50fdcd<=this[_0x4c1f33(0x227)];_0x50fdcd++){try{this['logger']['info'](_0x4c1f33(0x205),{'url':_0x14d16d,'model':_0x5c3fc7[_0x4c1f33(0x21c)],'requestId':_0x65e87d,'attempt':_0x50fdcd,'hasApiKey':!!_0x1915dd});const _0xf35e56=await fetch(_0x14d16d,{'method':_0x4c1f33(0x1ad),'headers':{'Content-Type':_0x4c1f33(0x196),'Authorization':'Bearer\x20'+_0x1915dd,'X-Request-ID':_0x65e87d},'body':JSON[_0x4c1f33(0x1be)](_0x3bbcdd),'timeout':this['timeout']*0x2});if(!_0xf35e56['ok']){const _0x4382c4=await _0xf35e56['text'](),_0x46c607=new Error(_0x4c1f33(0x1f4)+_0xf35e56['status']+':\x20'+_0xf35e56[_0x4c1f33(0x217)]+(_0x4382c4?'\x20-\x20'+_0x4382c4:''));_0x46c607['status']=_0xf35e56[_0x4c1f33(0x1d2)];throw _0x46c607;}const _0x28fce3=await _0xf35e56[_0x4c1f33(0x21f)]();return{'data':_0x28fce3[_0x4c1f33(0x1a8)]||[],'model':_0x28fce3['model']||_0x5c3fc7[_0x4c1f33(0x21c)],'created':_0x28fce3['created']||Date['now'](),'usage':_0x28fce3['usage']};}catch(_0x317382){_0x5b7097=_0x317382,this[_0x4c1f33(0x1d8)]['warn'](_0x4c1f33(0x1ed),{'attempt':_0x50fdcd,'requestId':_0x65e87d,'error':_0x317382['message'],'status':_0x317382['status']});if(_0x50fdcd<this['retryAttempts']){const _0x1e154e=Math['pow'](0x2,_0x50fdcd)*0x3e8;this[_0x4c1f33(0x1d8)][_0x4c1f33(0x1fe)](_0x4c1f33(0x22b)+_0x1e154e+'ms',{'attempt':_0x50fdcd,'requestId':_0x65e87d}),await new Promise(_0x18653c=>setTimeout(_0x18653c,_0x1e154e));}}}this['logger'][_0x4c1f33(0x18f)](_0x4c1f33(0x1e3),{'requestId':_0x65e87d,'error':_0x5b7097['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x5b7097['message']);}async['_checkRateLimit'](_0x4e06c2){await new Promise(_0x551218=>setTimeout(_0x551218,0x64));}async['_handleRateLimit'](_0x17c0ae){const _0x9cb0b=a0_0x2b0c53,_0x334a6a=0xea60;this[_0x9cb0b(0x1d8)][_0x9cb0b(0x19b)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x334a6a+'ms',_0x17c0ae),await new Promise(_0x1767e7=>setTimeout(_0x1767e7,_0x334a6a));}async['_handleServiceUnavailable'](_0x276ba3){const _0x10f67e=a0_0x2b0c53;this['_recordFailure']();const _0x2c23be=0x7530;this['logger'][_0x10f67e(0x19b)](_0x10f67e(0x1bf)+_0x2c23be+'ms',_0x276ba3),await new Promise(_0x4e5a16=>setTimeout(_0x4e5a16,_0x2c23be));}['_isCircuitBreakerOpen'](){const _0x3989a2=a0_0x2b0c53;if(!this[_0x3989a2(0x22a)][_0x3989a2(0x189)])return![];const _0x2fa484=Date[_0x3989a2(0x201)]()-this['circuitBreaker'][_0x3989a2(0x190)];if(_0x2fa484>this['circuitBreaker']['timeout'])return this[_0x3989a2(0x22a)]['isOpen']=![],this['circuitBreaker']['failures']=0x0,![];return!![];}['_recordFailure'](){const _0x1bbf06=a0_0x2b0c53;this[_0x1bbf06(0x22a)]['failures']++,this[_0x1bbf06(0x22a)][_0x1bbf06(0x190)]=Date['now'](),this['circuitBreaker']['failures']>=this[_0x1bbf06(0x22a)]['threshold']&&(this[_0x1bbf06(0x22a)][_0x1bbf06(0x189)]=!![],this[_0x1bbf06(0x1d8)]['warn'](_0x1bbf06(0x187)));}['_resetCircuitBreaker'](){const _0x5e27e8=a0_0x2b0c53;this['circuitBreaker']['failures']>0x0&&(this[_0x5e27e8(0x22a)][_0x5e27e8(0x209)]=0x0,this['circuitBreaker'][_0x5e27e8(0x189)]=![],this['logger']['info']('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}[a0_0x2b0c53(0x1f9)](_0x29e27a){const _0x58d5a0=a0_0x2b0c53;if(!_0x29e27a)return null;const _0x2c8042=_0x29e27a['toLowerCase']();if(_0x2c8042['includes'](_0x58d5a0(0x1fc))||_0x2c8042['includes']('claude'))return _0x58d5a0(0x1fc);else{if(_0x2c8042[_0x58d5a0(0x1d9)](_0x58d5a0(0x1bc))||_0x2c8042['includes'](_0x58d5a0(0x219)))return'openai';else{if(_0x2c8042[_0x58d5a0(0x1d9)](_0x58d5a0(0x21b)))return'deepseek';else{if(_0x2c8042['includes'](_0x58d5a0(0x1c0)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0xeda784,_0x47f12d){const _0x39e7ee=a0_0x2b0c53;this[_0x39e7ee(0x1c4)]=_0xeda784,this[_0x39e7ee(0x1d8)]=_0x47f12d,this[_0x39e7ee(0x216)]=new Map();}async[a0_0x2b0c53(0x1a7)](_0x3ef064){const _0x2bef48=a0_0x2b0c53;return{'messages':[],'model':_0x3ef064,'lastUpdated':new Date()[_0x2bef48(0x200)]()};}}export default AIService;
|
|
1
|
+
function a0_0x45af(){const _0x2cb709=['revfufnfruS','ueHj','x3jLy29YzezHAwX1CMu','y3vZDg9TqxbPs2v5CW','C2v0qwDLBNrqB29S','CMfUzg9T','yMfJA2vUza','Bw9KzwXtCgvJCW','CMv0CNLbDhrLBxb0CW','AgvHBhrOEq','DhjHy2TvC2fNzq','B3bLBMfP','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','AgvHBhrOlwnOzwnR','y2HLy2Ttzxj2AwnLsgvHBhrO','zgf0yq','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','x2zVCM1HDfnPBMDSzu1LC3nHz2u','odfpExneANq','C3r5Bgu','CMv2AxnLzf9WCM9TChq','x3n1Bw1HCML6zu1LC3nHz2vZ','x2vZDgLTyxrLvg9Rzw5Z','l2nOyxqVy29TCgXLDgLVBNm','C2vUze1LC3nHz2u','DgLTzw91Da','DhjPBq','y29TCgXLEgL0Eq','ueHjxZq','mtG3ndu5mLjzsufKsa','CgXHDgzVCM1qCM92AwrLza','z2v0qwDLBNq','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','BwvZC2fNzq','odm2nZu1CvHltMTb','C3rYAw5N','ywXS','tK9ux0zpvu5e','C2vZC2LVBKLK','CM9Szq','DxnHz2u','yMfZzvvYBa','mZu0nJzqz3reBxK','qu5usfjpueLdx1nptK5fva','mtyWnZC0mefVBvrizW','t1bftKfj','Bwf4x3rVA2vUCW','CxvHBgL0Eq','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','mtq2A3fmqu52','uMf0zsbSAw1PDcbLEgnLzwrLza','x21HA2vbueLszxf1zxn0','u0vsvKLdrv9vtKfwquLmqujmrq','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','C3DPDgnOqwDLBNrnB2rLBa','mtqWndiWme12vNPcBG','AxnbCNjHEq','x2DLDfzLBMrVCKzYB21nB2rLBa','x2LZvMfSAwrnB2rLBa','vw5RBM93BIbTB2rLBdOG','x2zVCM1HDezVCKfUDgHYB3bPyW','C3rHy2S','CMvXDwvZDff1zxvL','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','C3rHBMrHCMq','Ahr0Chm6lY9HCgKUBg94AweUywK','zMLUAxnOx3jLyxnVBG','lcb1C2LUzYbMywXSyMfJAW','nZKXAfLjre13','y2HVAwnLCW','yw50AhjVCgLJ','mtCXote5mM91vxzPva','AxnpCgvU','C3DPDgnOtw9KzwW','zxjYB3i','sw52ywXPzcbTB2rLBdOG','ChjLzMvYCMvKtw9KzwW','y3jLyxrLza','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','x2zVCM1HDezVCKf6DxjL','x2nOzwnRuMf0zuXPBwL0','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','x2HHBMrSzvjHDgvmAw1PDa','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','l2HLywX0Aa','B3b0Aw9UCW','qKfex0DbvevxqvK','zxn0Aw1HDgvKvg9Rzw5Z','CMvZCg9UC2vgB3jTyxq','Bw9KzwW','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','y2LYy3vPDejYzwfRzxi','y3vYCMvUDe1VzgvS','Cg93','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','C3vIC3rYAw5N','ChvZAa','y29UDMvYC2f0Aw9UtwfUywDLCNm','CgHP','yxbPs2v5twfUywDLCG','AgfUzgXLshr0CevYCM9Y','x2zVCM1HDezVCK9Wzw5bsq','BgvUz3rO','C3rYAw5NAwz5','zxjYB3jiyw5KBgvY','mtG3m1rqr0nttW','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','DMvUzg9YqxbPs2v5','BwvZC2fNzxm','ywDLBNrqB29S','Dg9ju09tDhjPBMC','qvPvuKu','C2L6zq','BgfZDezHAwX1CMvuAw1L','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','y29UDgvUDa','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','D2fYBG','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','zMX1Ec0XlJeTChjV','Dg90ywXFDg9Rzw5Z','C3rHDhvZ','AM9PBG','y2XHC3nPzNLfCNjVCG','zMfZDa','DxnLCG','ywDLBNrjza','BM93','C3rVCa','yxbPs2v5','y29UzMLN','Bg9Nz2vY','sfruuca','C3LZDgvTuhjVBxb0','rKfmtejbq0S','vu5bvvrit1jjwKve','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','qKfex1jfuvvfu1q','ANnVBG','CMvXDwvZDeLK','Aw5MBW','C3vTBwfYEq','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','su5urvjoquXFu0vsvKvsx0vsuK9s','r0furvDbwv9usu1ft1vu','ChjVBxb0','BwfW','x3jLC2v0q2LYy3vPDejYzwfRzxi','z2v0s2v5C0zVCLjLCxvLC3q','uMv0CNLPBMCGAw4G','qu5usfjpueLd','CMv2zxjZzq','C3LZDgvT','u3LZDgvToIa','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','yxbWBgLJyxrPB24VANnVBG','qu5usfjpueLdx09qvvm','quKGC2vYDMLJzsbLCNjVCJOG','DgvTCgvYyxr1CMu','ChjVBxb0x3rVA2vUCW','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','tw9KzwWGC3DPDgnOigzHAwXLzdOG','ve9px01btLLFuKvrvuvtvfm','u2vYDMLJzsb1BMf2ywLSywjSzsWGD2fPDgLUzYa','zMfPBhvYzxm','Aw5JBhvKzxm'];a0_0x45af=function(){return _0x2cb709;};return a0_0x45af();}const a0_0x565f52=a0_0x5116;function a0_0x5116(_0x4874b0,_0x359ffd){_0x4874b0=_0x4874b0-0x17b;const _0x45af44=a0_0x45af();let _0x5116eb=_0x45af44[_0x4874b0];if(a0_0x5116['ZAEWIJ']===undefined){var _0x5b6e89=function(_0x2cb94e){const _0x4fefca='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x54d4e5='',_0x23afdf='';for(let _0x532f8b=0x0,_0x545ee0,_0xd0bf06,_0x1b06c2=0x0;_0xd0bf06=_0x2cb94e['charAt'](_0x1b06c2++);~_0xd0bf06&&(_0x545ee0=_0x532f8b%0x4?_0x545ee0*0x40+_0xd0bf06:_0xd0bf06,_0x532f8b++%0x4)?_0x54d4e5+=String['fromCharCode'](0xff&_0x545ee0>>(-0x2*_0x532f8b&0x6)):0x0){_0xd0bf06=_0x4fefca['indexOf'](_0xd0bf06);}for(let _0x3795db=0x0,_0x4dceaa=_0x54d4e5['length'];_0x3795db<_0x4dceaa;_0x3795db++){_0x23afdf+='%'+('00'+_0x54d4e5['charCodeAt'](_0x3795db)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x23afdf);};a0_0x5116['NCGwbH']=_0x5b6e89,a0_0x5116['vUaktN']={},a0_0x5116['ZAEWIJ']=!![];}const _0xc758c1=_0x45af44[0x0],_0x5bc8dc=_0x4874b0+_0xc758c1,_0x536979=a0_0x5116['vUaktN'][_0x5bc8dc];return!_0x536979?(_0x5116eb=a0_0x5116['NCGwbH'](_0x5116eb),a0_0x5116['vUaktN'][_0x5bc8dc]=_0x5116eb):_0x5116eb=_0x536979,_0x5116eb;}(function(_0x351846,_0x4ec170){const _0x3e1fe3=a0_0x5116,_0x2ef494=_0x351846();while(!![]){try{const _0x19d7e0=-parseInt(_0x3e1fe3(0x1b3))/0x1*(parseInt(_0x3e1fe3(0x221))/0x2)+-parseInt(_0x3e1fe3(0x18e))/0x3+parseInt(_0x3e1fe3(0x17e))/0x4+-parseInt(_0x3e1fe3(0x212))/0x5+parseInt(_0x3e1fe3(0x21a))/0x6*(-parseInt(_0x3e1fe3(0x18b))/0x7)+parseInt(_0x3e1fe3(0x20d))/0x8+parseInt(_0x3e1fe3(0x202))/0x9*(parseInt(_0x3e1fe3(0x21c))/0xa);if(_0x19d7e0===_0x4ec170)break;else _0x2ef494['push'](_0x2ef494['shift']());}catch(_0x4b2892){_0x2ef494['push'](_0x2ef494['shift']());}}}(a0_0x45af,0x76f55));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x54d4e5,_0x23afdf,_0x532f8b,_0x545ee0){const _0x2f5690=a0_0x5116;this[_0x2f5690(0x1cc)]=_0x54d4e5,this[_0x2f5690(0x1cd)]=_0x23afdf,this['budgetService']=_0x532f8b,this[_0x2f5690(0x1b2)]=_0x545ee0,this[_0x2f5690(0x219)]=_0x54d4e5[_0x2f5690(0x1f6)]?.['baseUrl']||_0x2f5690(0x188),this[_0x2f5690(0x209)]=_0x54d4e5[_0x2f5690(0x1f6)]?.[_0x2f5690(0x209)]||0xea60,this['retryAttempts']=_0x54d4e5[_0x2f5690(0x1f6)]?.['retryAttempts']||0x3,this['rateLimiters']=new Map(),this[_0x2f5690(0x185)]=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this[_0x2f5690(0x1f7)]=this[_0x2f5690(0x1fc)](),this[_0x2f5690(0x1ab)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async[a0_0x565f52(0x208)](_0xd0bf06,_0x1b06c2,_0x3795db={}){const _0x26e420=a0_0x565f52,_0x4dceaa='req-'+Date[_0x26e420(0x1c9)]()+'-'+Math[_0x26e420(0x1f5)]()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this[_0x26e420(0x198)](_0xd0bf06);const _0x16751f=this[_0x26e420(0x195)](_0x1b06c2,_0xd0bf06,_0x3795db),_0xb19ff6={'model':_0xd0bf06,'messages':_0x16751f,'options':{'max_tokens':this['modelSpecs'][_0xd0bf06]?.['maxTokens']||0xfa0,'temperature':_0x3795db[_0x26e420(0x1e8)]||0.7,'stream':_0x3795db['stream']||![]},'metadata':{'requestId':_0x4dceaa,'agentId':_0x3795db['agentId'],'timestamp':new Date()[_0x26e420(0x1b8)]()}};_0x3795db['systemPrompt']&&(_0xb19ff6[_0x26e420(0x1e2)]=_0x3795db[_0x26e420(0x1cf)]);this['logger']['info'](_0x26e420(0x1e4)+_0xd0bf06,{'requestId':_0x4dceaa,'agentId':_0x3795db[_0x26e420(0x1c8)],'messageCount':Array[_0x26e420(0x17f)](_0x1b06c2)?_0x1b06c2[_0x26e420(0x1b0)]:0x1,'maxTokens':_0xb19ff6[_0x26e420(0x21e)]});const _0x38a7c8=await this[_0x26e420(0x223)](_0x26e420(0x207),_0xb19ff6,_0x4dceaa,{..._0x3795db,'sessionId':_0x3795db[_0x26e420(0x216)],'platformProvided':_0x3795db['platformProvided']||![]});return _0x38a7c8[_0x26e420(0x218)]&&await this[_0x26e420(0x1fa)](_0x3795db['agentId'],_0xd0bf06,{'prompt_tokens':_0x38a7c8[_0x26e420(0x218)][_0x26e420(0x1e9)]||0x0,'completion_tokens':_0x38a7c8['usage']['completion_tokens']||0x0,'total_tokens':_0x38a7c8[_0x26e420(0x218)][_0x26e420(0x1c2)]||0x0}),this[_0x26e420(0x1dd)](),{'content':_0x38a7c8[_0x26e420(0x18c)][0x0]?.['message']?.[_0x26e420(0x1bd)]||'','model':_0x38a7c8['model'],'tokenUsage':_0x38a7c8[_0x26e420(0x218)],'requestId':_0x4dceaa,'finishReason':_0x38a7c8[_0x26e420(0x18c)][0x0]?.[_0x26e420(0x189)]};}catch(_0x574571){this['_recordFailure'](),this[_0x26e420(0x1cd)][_0x26e420(0x191)]('AI\x20service\x20request\x20failed:\x20'+_0x574571['message'],{'requestId':_0x4dceaa,'model':_0xd0bf06,'agentId':_0x3795db[_0x26e420(0x1c8)],'error':_0x574571[_0x26e420(0x184)]}),await this[_0x26e420(0x1ae)](_0x574571,{'requestId':_0x4dceaa,'model':_0xd0bf06,'agentId':_0x3795db['agentId']});throw _0x574571;}}async['routeModel'](_0x16022b,_0x1bd025={}){const _0x442abe=a0_0x565f52;try{const _0x487756=MODEL_ROUTING[_0x16022b['toUpperCase']()]||MODEL_ROUTING['FALLBACK'],_0x22f5a2=[];for(const _0x5147b1 of _0x487756){const _0x46e912=await this['_checkModelHealth'](_0x5147b1);_0x46e912&&_0x22f5a2[_0x442abe(0x1aa)](_0x5147b1);}if(_0x22f5a2[_0x442abe(0x1b0)]===0x0)return this['logger'][_0x442abe(0x1bf)](_0x442abe(0x19d)+_0x16022b+_0x442abe(0x18a)),MODEL_ROUTING[_0x442abe(0x1d0)][0x0];let _0x1af81b=_0x22f5a2[0x0];if(_0x1bd025[_0x442abe(0x193)]&&_0x22f5a2[_0x442abe(0x1ef)](_0x1bd025[_0x442abe(0x193)]))_0x1af81b=_0x1bd025[_0x442abe(0x193)];else{if(_0x1bd025[_0x442abe(0x20b)]==='high'&&_0x22f5a2['includes'](MODELS['ANTHROPIC_OPUS']))_0x1af81b=MODELS[_0x442abe(0x1e6)];else _0x1bd025['speed']===_0x442abe(0x1c6)&&_0x22f5a2[_0x442abe(0x1ef)](MODELS['ANTHROPIC_HAIKU'])&&(_0x1af81b=MODELS['ANTHROPIC_HAIKU']);}return this['logger']['info']('Model\x20routed\x20for\x20task:\x20'+_0x16022b,{'selectedModel':_0x1af81b,'availableModels':_0x22f5a2[_0x442abe(0x1b0)],'context':_0x1bd025}),_0x1af81b;}catch(_0x588948){return this['logger'][_0x442abe(0x191)](_0x442abe(0x1d2)+_0x588948[_0x442abe(0x211)],{'task':_0x16022b,'context':_0x1bd025}),MODEL_ROUTING['FALLBACK'][0x0];}}async['compactizeConversation'](_0x3b7884,_0x224ee4){const _0x5bf5a8=a0_0x565f52,_0x598e5d=this[_0x5bf5a8(0x1f7)][_0x224ee4];if(!_0x598e5d)throw new Error(_0x5bf5a8(0x182)+_0x224ee4);const _0x2a350d=_0x598e5d['contextWindow']*0.8;let _0x463c8b=0x0;const _0x3a83ca=[],_0x4182aa=await Promise[_0x5bf5a8(0x214)](_0x3b7884['map'](async _0x57d8f6=>({..._0x57d8f6,'estimatedTokens':await this[_0x5bf5a8(0x206)](_0x57d8f6['content'],_0x224ee4)}))),_0x37bf87=[..._0x4182aa][_0x5bf5a8(0x1e1)]();for(const _0xda973e of _0x37bf87){if(_0x463c8b+_0xda973e[_0x5bf5a8(0x1a1)]>_0x2a350d){if(_0x3a83ca['length']===0x0){const _0x4c4c3e=await this['_truncateMessage'](_0xda973e[_0x5bf5a8(0x1bd)],_0x2a350d);_0x3a83ca['unshift']({..._0xda973e,'content':_0x4c4c3e,'estimatedTokens':_0x2a350d});}break;}_0x3a83ca['unshift'](_0xda973e),_0x463c8b+=_0xda973e[_0x5bf5a8(0x1a1)];}const _0x8a908d=_0x4182aa['slice'](0x0,-_0x3a83ca['length']);if(_0x8a908d[_0x5bf5a8(0x1b0)]>0x0){const _0x49d157=await this['_summarizeMessages'](_0x8a908d,_0x224ee4);_0x3a83ca['unshift']({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x49d157,'timestamp':_0x8a908d[0x0]['timestamp'],'type':_0x5bf5a8(0x1d7),'estimatedTokens':await this[_0x5bf5a8(0x206)](_0x49d157,_0x224ee4)});}return this[_0x5bf5a8(0x1cd)]['info']('Conversation\x20compactized\x20for\x20model:\x20'+_0x224ee4,{'originalMessages':_0x3b7884[_0x5bf5a8(0x1b0)],'compactizedMessages':_0x3a83ca['length'],'estimatedTokens':_0x463c8b,'maxTokens':_0x2a350d}),_0x3a83ca;}async['trackUsage'](_0x578afa,_0x558a85,_0x5a1891,_0x2a5504){try{this['budgetService']&&this['budgetService']['trackUsage'](_0x578afa,_0x558a85,_0x5a1891);}catch(_0x1949b2){this['logger']['error']('Usage\x20tracking\x20failed:\x20'+_0x1949b2['message']);}}async['handleHttpError'](_0xaae89d,_0xb558bb){const _0xa283cc=a0_0x565f52,_0x22defa=this['errorHandler']?.[_0xa283cc(0x1c5)]?.(_0xaae89d,_0xb558bb);switch(_0xaae89d[_0xa283cc(0x1c3)]||_0xaae89d['code']){case HTTP_STATUS[_0xa283cc(0x1d3)]:this[_0xa283cc(0x1cd)][_0xa283cc(0x191)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0xb558bb,'error':_0xaae89d['message']});throw new Error('Invalid\x20request:\x20'+_0xaae89d['message']);case HTTP_STATUS[_0xa283cc(0x1d1)]:this['logger'][_0xa283cc(0x191)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0xb558bb});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this['logger']['error'](_0xa283cc(0x1b4),{'context':_0xb558bb});throw new Error(_0xa283cc(0x199));case HTTP_STATUS[_0xa283cc(0x215)]:this[_0xa283cc(0x1cd)][_0xa283cc(0x191)]('AI\x20service\x20endpoint\x20not\x20found',{'context':_0xb558bb});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS[_0xa283cc(0x1ec)]:this['logger']['warn'](_0xa283cc(0x222),{'context':_0xb558bb}),await this['_handleRateLimit'](_0xb558bb);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS[_0xa283cc(0x1d9)]:case HTTP_STATUS[_0xa283cc(0x1a0)]:case HTTP_STATUS[_0xa283cc(0x17b)]:case HTTP_STATUS[_0xa283cc(0x1da)]:this[_0xa283cc(0x1cd)]['error']('AI\x20service\x20unavailable',{'context':_0xb558bb,'status':_0xaae89d['status']}),await this[_0xa283cc(0x1d8)](_0xb558bb);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0xa283cc(0x1cd)]['error']('Unknown\x20AI\x20service\x20error',{'context':_0xb558bb,'error':_0xaae89d[_0xa283cc(0x211)]});throw new Error(_0xa283cc(0x1e7)+_0xaae89d['message']);}}['setApiKeyManager'](_0x4e8ba0){const _0x10bd28=a0_0x565f52;this['apiKeyManager']=_0x4e8ba0,this[_0x10bd28(0x1cd)]?.[_0x10bd28(0x1d6)]('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x4e8ba0});}[a0_0x565f52(0x1f4)](_0x54153c){const _0x44e905=a0_0x565f52;this['agentPool']=_0x54153c,this['logger']?.['info'](_0x44e905(0x210),{'hasAgentPool':!!_0x54153c});}async['generateImage'](_0x48a376,_0x3b0f39={}){const _0x473fc8=a0_0x565f52,_0x31b072='img-'+Date[_0x473fc8(0x1c9)]()+'-'+Math[_0x473fc8(0x1f5)]()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x473fc8(0x1c0));if(!_0x48a376||typeof _0x48a376!=='string'||_0x48a376[_0x473fc8(0x20a)]()[_0x473fc8(0x1b0)]===0x0)throw new Error(_0x473fc8(0x1bc));const _0x4abcea=_0x3b0f39['model']||_0x473fc8(0x1c1),_0x4d1748=_0x3b0f39[_0x473fc8(0x1ba)]||'1024x1024',_0x18b01b=_0x3b0f39['quality']||_0x473fc8(0x187),_0x39f1c5=_0x3b0f39[_0x473fc8(0x1a2)]||'url';this['logger']['info'](_0x473fc8(0x200)+_0x4abcea,{'requestId':_0x31b072,'model':_0x4abcea,'size':_0x4d1748,'quality':_0x18b01b,'promptLength':_0x48a376[_0x473fc8(0x1b0)]});const _0x55086e={'prompt':_0x48a376,'model':_0x4abcea,'size':_0x4d1748,'quality':_0x18b01b,'response_format':_0x39f1c5,'n':0x1,'metadata':{'requestId':_0x31b072,'timestamp':new Date()[_0x473fc8(0x1b8)]()}},_0x1148c4=await this['_makeImageAPIRequest'](_0x55086e,_0x31b072,{'sessionId':_0x3b0f39['sessionId'],'platformProvided':_0x3b0f39['platformProvided']||![]});return this['_resetCircuitBreaker'](),{'url':_0x1148c4['data']?.[0x0]?.['url']||null,'b64_json':_0x1148c4['data']?.[0x0]?.['b64_json']||null,'model':_0x1148c4['model']||_0x4abcea,'requestId':_0x31b072,'revisedPrompt':_0x1148c4[_0x473fc8(0x1ff)]?.[0x0]?.[_0x473fc8(0x204)]||_0x48a376};}catch(_0x44d00b){this[_0x473fc8(0x1f2)](),this['logger']['error']('Image\x20generation\x20failed:\x20'+_0x44d00b[_0x473fc8(0x211)],{'requestId':_0x31b072,'model':_0x3b0f39[_0x473fc8(0x1a3)],'error':_0x44d00b['stack']});throw _0x44d00b;}}async[a0_0x565f52(0x1fe)](){const _0x1415d9=a0_0x565f52;try{const _0x211bb3=await this['_makeAPIRequest'](_0x1415d9(0x19e),{},_0x1415d9(0x1fd));return _0x211bb3['status']===_0x1415d9(0x1f9);}catch(_0x27de1e){return![];}}async[a0_0x565f52(0x17d)](_0x2cb988,_0xf4b3bd){const _0x584095=a0_0x565f52;try{if(!this['_isValidModel'](_0xf4b3bd))throw new Error(_0x584095(0x192)+_0xf4b3bd);let _0x3c638c=this['conversationManagers']['get'](_0x2cb988);!_0x3c638c&&(_0x3c638c=new ConversationManager(_0x2cb988,this['logger']),this['conversationManagers']['set'](_0x2cb988,_0x3c638c));const _0x3f197=await _0x3c638c[_0x584095(0x190)](_0xf4b3bd),_0x4f522f=await this[_0x584095(0x1b7)]?.[_0x584095(0x20f)](_0x2cb988);return _0x4f522f&&(_0x4f522f[_0x584095(0x1a6)]=_0xf4b3bd,await this['agentPool']['persistAgentState'](_0x2cb988)),this[_0x584095(0x1cd)]['info'](_0x584095(0x196)+_0x2cb988,{'newModel':_0xf4b3bd,'messageCount':_0x3f197['messages'][_0x584095(0x1b0)]}),{'success':!![],'agentId':_0x2cb988,'newModel':_0xf4b3bd,'conversation':_0x3f197};}catch(_0x3a2b7b){this['logger'][_0x584095(0x191)](_0x584095(0x1eb)+_0x3a2b7b[_0x584095(0x211)],{'agentId':_0x2cb988,'newModel':_0xf4b3bd});throw _0x3a2b7b;}}['_initializeModelSpecs'](){const _0x3530b=a0_0x565f52,_0x331415={[MODELS[_0x3530b(0x21b)]]:{'provider':MODEL_PROVIDERS[_0x3530b(0x1e0)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x3530b(0x1e6)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS[_0x3530b(0x1e0)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS[_0x3530b(0x21d)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS[_0x3530b(0x21d)],'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['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS[_0x3530b(0x1f0)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x3530b(0x20c)]]:{'provider':MODEL_PROVIDERS[_0x3530b(0x1f1)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x3530b(0x1b9),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x3530b(0x1b9),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x331415;}[a0_0x565f52(0x195)](_0x5b1dbf,_0x52d7aa,_0x4c7b87){const _0x2b6251=a0_0x565f52,_0x59f946=this[_0x2b6251(0x1f7)][_0x52d7aa]||{'provider':'AZURE'};let _0x5c326e;typeof _0x5b1dbf===_0x2b6251(0x213)?_0x5c326e=[{'role':'user','content':_0x5b1dbf}]:_0x5c326e=_0x5b1dbf['map'](_0x6a3776=>this['_formatSingleMessage'](_0x6a3776,_0x52d7aa));switch(_0x59f946['provider']){case MODEL_PROVIDERS[_0x2b6251(0x1e0)]:return this['_formatForAnthropic'](_0x5c326e);case MODEL_PROVIDERS[_0x2b6251(0x21d)]:return this[_0x2b6251(0x1af)](_0x5c326e);case MODEL_PROVIDERS['AZURE']:return this[_0x2b6251(0x197)](_0x5c326e);default:return _0x5c326e;}}[a0_0x565f52(0x201)](_0x3c5d2d,_0x20ec14){const _0x345242=a0_0x565f52;return{'role':_0x3c5d2d['role']||'user','content':_0x3c5d2d[_0x345242(0x1bd)],'timestamp':_0x3c5d2d['timestamp']};}[a0_0x565f52(0x183)](_0x358712){return _0x358712['map'](_0x3dc94c=>{const _0x225358=a0_0x5116;if(_0x3dc94c[_0x225358(0x217)]===_0x225358(0x1e2))return{'role':_0x225358(0x1c7),'content':_0x225358(0x1e3)+_0x3dc94c['content']};return _0x3dc94c;});}[a0_0x565f52(0x1af)](_0x12e32d){return _0x12e32d;}[a0_0x565f52(0x197)](_0x49c97a){const _0x41c8d0=a0_0x565f52;return _0x49c97a[_0x41c8d0(0x1dc)](_0x3f0625=>({..._0x3f0625,'content':typeof _0x3f0625['content']===_0x41c8d0(0x213)?_0x3f0625['content']:JSON[_0x41c8d0(0x1b1)](_0x3f0625['content'])}));}[a0_0x565f52(0x181)](_0xf6f631){const _0x57c03b=a0_0x565f52;this[_0x57c03b(0x1cd)]['debug']('Validating\x20model',{'model':_0xf6f631,'modelType':typeof _0xf6f631});if(this['modelSpecs'][_0xf6f631]!==undefined)return!![];return this['logger'][_0x57c03b(0x1bf)](_0x57c03b(0x1a8),{'model':_0xf6f631,'availableModels':Object['keys'](this['modelSpecs'])}),![];}async['_checkModelHealth'](_0x5ac569){return!![];}async[a0_0x565f52(0x206)](_0x59b6b3,_0x3cf8ca){return Math['ceil'](_0x59b6b3['length']/0x4);}async['_truncateMessage'](_0x573741,_0x17866d){const _0x322ff3=a0_0x565f52,_0x3b2288=_0x17866d*0x4;if(_0x573741[_0x322ff3(0x1b0)]<=_0x3b2288)return _0x573741;return _0x573741[_0x322ff3(0x1a9)](0x0,_0x3b2288-0x14)+_0x322ff3(0x19a);}async[a0_0x565f52(0x205)](_0x126b68,_0x1d9e3b){const _0x33aa58=a0_0x565f52,_0xdbeb7=_0x126b68['map'](_0x1ad73b=>_0x1ad73b[_0x33aa58(0x217)]+':\x20'+_0x1ad73b[_0x33aa58(0x1bd)])[_0x33aa58(0x1c4)]('\x0a'),_0x43715a=0x1f4;if(_0xdbeb7[_0x33aa58(0x1b0)]<=_0x43715a)return _0xdbeb7;return _0xdbeb7['substring'](0x0,_0x43715a)+_0x33aa58(0x19b);}async['_makeAPIRequest'](_0x5b6769,_0x48d944,_0x278d83,_0x594e9c={}){const _0x44330e=a0_0x565f52,_0x3a8ed7=_0x44330e(0x186);let _0x279a28,_0xe1f7c2=null,_0x2570c7=null;this[_0x44330e(0x1cd)]?.['info'](_0x44330e(0x17c),{'hasApiKeyManager':!!this[_0x44330e(0x1ad)],'sessionId':_0x594e9c['sessionId'],'hasSessionId':!!_0x594e9c['sessionId'],'optionsKeys':Object['keys'](_0x594e9c),'model':_0x48d944['model']});if(this[_0x44330e(0x1ad)]&&_0x594e9c[_0x44330e(0x216)]){const _0x109d03=this['apiKeyManager']['getKeysForRequest'](_0x594e9c['sessionId'],{'platformProvided':_0x594e9c['platformProvided']||![],'vendor':this[_0x44330e(0x180)](_0x48d944['model'])});_0xe1f7c2=_0x109d03['loxiaApiKey'],_0x2570c7=_0x109d03[_0x44330e(0x1b5)],this[_0x44330e(0x1cd)]?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x594e9c['sessionId'],'hasLoxiaKey':!!_0xe1f7c2,'hasVendorKey':!!_0x2570c7,'vendor':this[_0x44330e(0x180)](_0x48d944['model'])});}!_0xe1f7c2&&_0x594e9c['apiKey']&&(_0xe1f7c2=_0x594e9c['apiKey']);!_0xe1f7c2&&this[_0x44330e(0x1cc)][_0x44330e(0x1cb)]&&(_0xe1f7c2=this[_0x44330e(0x1cc)]['apiKey']);if(!_0xe1f7c2)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x3caee5=_0x48d944[_0x44330e(0x1a3)],_0x340814={'conversationId':_0x278d83,'message':_0x48d944['messages'][_0x48d944['messages']['length']-0x1]?.[_0x44330e(0x1bd)]||'','messages':_0x48d944[_0x44330e(0x1b6)],'model':_0x3caee5,'requestId':_0x278d83,'options':_0x48d944[_0x44330e(0x19f)]||{},'platformProvided':_0x594e9c[_0x44330e(0x20e)]||![]};_0x48d944['system']&&(_0x340814[_0x44330e(0x1cf)]=_0x48d944[_0x44330e(0x1e2)]);_0x594e9c[_0x44330e(0x20e)]?_0x340814['apiKey']=_0xe1f7c2:(_0x2570c7&&(_0x340814['vendorApiKey']=_0x2570c7),_0x594e9c[_0x44330e(0x1f3)]&&(_0x340814['customApiKeys']=_0x594e9c[_0x44330e(0x1f3)]),_0x340814['apiKey']=_0xe1f7c2);for(let _0x60a234=0x1;_0x60a234<=this[_0x44330e(0x1f8)];_0x60a234++){try{this['logger']['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x3a8ed7,'model':_0x48d944[_0x44330e(0x1a3)],'requestId':_0x278d83,'attempt':_0x60a234,'hasApiKey':!!_0xe1f7c2});const _0x4142a2=await fetch(_0x3a8ed7,{'method':'POST','headers':{'Content-Type':_0x44330e(0x1e5),'Authorization':'Bearer\x20'+_0xe1f7c2,'X-Request-ID':_0x278d83},'body':JSON[_0x44330e(0x1b1)](_0x340814),'timeout':this['timeout']});if(!_0x4142a2['ok']){const _0x40f18c=await _0x4142a2['text'](),_0x4063b7=new Error('HTTP\x20'+_0x4142a2[_0x44330e(0x1c3)]+':\x20'+_0x4142a2['statusText']+(_0x40f18c?'\x20-\x20'+_0x40f18c:''));_0x4063b7[_0x44330e(0x1c3)]=_0x4142a2[_0x44330e(0x1c3)];throw _0x4063b7;}const _0x222b6b=await _0x4142a2[_0x44330e(0x1d4)]();return{'choices':[{'message':{'content':_0x222b6b[_0x44330e(0x1bd)]||'','role':'assistant'},'finish_reason':_0x222b6b['finishReason']||'stop'}],'usage':_0x222b6b[_0x44330e(0x218)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x222b6b[_0x44330e(0x1a3)]||_0x48d944['model'],'id':_0x222b6b[_0x44330e(0x1d5)]||_0x278d83};}catch(_0x3e5de7){_0x279a28=_0x3e5de7,this[_0x44330e(0x1cd)][_0x44330e(0x1bf)]('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x60a234,'requestId':_0x278d83,'error':_0x3e5de7[_0x44330e(0x211)],'status':_0x3e5de7['status']});if(_0x60a234<this[_0x44330e(0x1f8)]){const _0x1c0d26=Math[_0x44330e(0x1a7)](0x2,_0x60a234)*0x3e8;this['logger']['warn'](_0x44330e(0x1df)+_0x1c0d26+'ms',{'attempt':_0x60a234,'requestId':_0x278d83}),await new Promise(_0x2b70f1=>setTimeout(_0x2b70f1,_0x1c0d26));}}}this[_0x44330e(0x1cd)]['error']('All\x20attempts\x20to\x20reach\x20backend\x20failed,\x20using\x20mock\x20response',{'requestId':_0x278d83,'error':_0x279a28['message']});const _0x2e212f=_0x279a28['message']&&_0x279a28[_0x44330e(0x211)]['includes']('No\x20API\x20key\x20configured');if(_0x2e212f)throw new Error('API\x20Configuration\x20Error:\x20'+_0x279a28[_0x44330e(0x211)]);return{'choices':[{'message':{'content':_0x44330e(0x1ea)+_0x279a28[_0x44330e(0x211)],'role':'assistant'},'finish_reason':_0x44330e(0x1ca)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x48d944['model'],'id':'error-'+_0x278d83,'error':_0x279a28['message']};}async['_makeImageAPIRequest'](_0x5a09a0,_0x2d3fd4,_0x1d5ec0={}){const _0x382e91=a0_0x565f52,_0x28291f=_0x382e91(0x220);let _0x264284,_0x1563a1=null,_0x4e9dde=null;this['logger']?.['info']('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x1d5ec0['sessionId'],'hasSessionId':!!_0x1d5ec0[_0x382e91(0x216)],'model':_0x5a09a0[_0x382e91(0x1a3)]});if(this[_0x382e91(0x1ad)]&&_0x1d5ec0['sessionId']){const _0x31b8a1=this[_0x382e91(0x1ad)][_0x382e91(0x1de)](_0x1d5ec0['sessionId'],{'platformProvided':_0x1d5ec0[_0x382e91(0x20e)]||![],'vendor':this['_getVendorFromModel'](_0x5a09a0['model'])});_0x1563a1=_0x31b8a1['loxiaApiKey'],_0x4e9dde=_0x31b8a1[_0x382e91(0x1b5)],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x1d5ec0['sessionId'],'hasLoxiaKey':!!_0x1563a1,'hasVendorKey':!!_0x4e9dde});}!_0x1563a1&&_0x1d5ec0[_0x382e91(0x1cb)]&&(_0x1563a1=_0x1d5ec0['apiKey']);!_0x1563a1&&this[_0x382e91(0x1cc)][_0x382e91(0x1cb)]&&(_0x1563a1=this['config'][_0x382e91(0x1cb)]);if(!_0x1563a1)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x550676={'prompt':_0x5a09a0[_0x382e91(0x1db)],'model':_0x5a09a0['model']||'azure-openai-dalle3','size':_0x5a09a0['size'],'quality':_0x5a09a0[_0x382e91(0x21f)],'style':_0x5a09a0[_0x382e91(0x203)]||'vivid','n':_0x5a09a0['n']||0x1,'requestId':_0x2d3fd4};for(let _0x2bb252=0x1;_0x2bb252<=this['retryAttempts'];_0x2bb252++){try{this['logger'][_0x382e91(0x1d6)]('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0x28291f,'model':_0x5a09a0[_0x382e91(0x1a3)],'requestId':_0x2d3fd4,'attempt':_0x2bb252,'hasApiKey':!!_0x1563a1});const _0x44c825=await fetch(_0x28291f,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x1563a1,'X-Request-ID':_0x2d3fd4},'body':JSON[_0x382e91(0x1b1)](_0x550676),'timeout':this['timeout']*0x2});if(!_0x44c825['ok']){const _0x4906c2=await _0x44c825['text'](),_0x5502ca=new Error(_0x382e91(0x1ce)+_0x44c825[_0x382e91(0x1c3)]+':\x20'+_0x44c825['statusText']+(_0x4906c2?'\x20-\x20'+_0x4906c2:''));_0x5502ca['status']=_0x44c825[_0x382e91(0x1c3)];throw _0x5502ca;}const _0x393235=await _0x44c825[_0x382e91(0x1d4)]();return{'data':_0x393235['images']||[],'model':_0x393235[_0x382e91(0x1a3)]||_0x5a09a0['model'],'created':_0x393235[_0x382e91(0x194)]||Date[_0x382e91(0x1c9)](),'usage':_0x393235[_0x382e91(0x218)]};}catch(_0x1ee38b){_0x264284=_0x1ee38b,this[_0x382e91(0x1cd)]['warn']('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x2bb252,'requestId':_0x2d3fd4,'error':_0x1ee38b['message'],'status':_0x1ee38b['status']});if(_0x2bb252<this['retryAttempts']){const _0x1c0597=Math[_0x382e91(0x1a7)](0x2,_0x2bb252)*0x3e8;this['logger'][_0x382e91(0x1bf)]('Retrying\x20in\x20'+_0x1c0597+'ms',{'attempt':_0x2bb252,'requestId':_0x2d3fd4}),await new Promise(_0x2cf3f1=>setTimeout(_0x2cf3f1,_0x1c0597));}}}this['logger']['error']('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x2d3fd4,'error':_0x264284['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x264284['message']);}async[a0_0x565f52(0x198)](_0x516530){await new Promise(_0x54c5c4=>setTimeout(_0x54c5c4,0x64));}async[a0_0x565f52(0x19c)](_0x4970ee){const _0x2e1eb1=a0_0x565f52,_0x3b25f0=0xea60;this['logger']['info'](_0x2e1eb1(0x1be)+_0x3b25f0+'ms',_0x4970ee),await new Promise(_0x4edbfa=>setTimeout(_0x4edbfa,_0x3b25f0));}async[a0_0x565f52(0x1d8)](_0x31eed3){const _0x4e78e6=a0_0x565f52;this['_recordFailure']();const _0x2e15ec=0x7530;this[_0x4e78e6(0x1cd)][_0x4e78e6(0x1d6)](_0x4e78e6(0x1ed)+_0x2e15ec+'ms',_0x31eed3),await new Promise(_0x4b7b42=>setTimeout(_0x4b7b42,_0x2e15ec));}['_isCircuitBreakerOpen'](){const _0x2f3805=a0_0x565f52;if(!this[_0x2f3805(0x1a5)][_0x2f3805(0x18f)])return![];const _0xa845b0=Date[_0x2f3805(0x1c9)]()-this['circuitBreaker'][_0x2f3805(0x1bb)];if(_0xa845b0>this['circuitBreaker'][_0x2f3805(0x209)])return this['circuitBreaker']['isOpen']=![],this[_0x2f3805(0x1a5)]['failures']=0x0,![];return!![];}[a0_0x565f52(0x1f2)](){const _0x59fcb4=a0_0x565f52;this['circuitBreaker'][_0x59fcb4(0x1ee)]++,this['circuitBreaker']['lastFailureTime']=Date[_0x59fcb4(0x1c9)](),this['circuitBreaker'][_0x59fcb4(0x1ee)]>=this[_0x59fcb4(0x1a5)]['threshold']&&(this['circuitBreaker'][_0x59fcb4(0x18f)]=!![],this[_0x59fcb4(0x1cd)][_0x59fcb4(0x1bf)](_0x59fcb4(0x1a4)));}[a0_0x565f52(0x1dd)](){const _0x2a34a4=a0_0x565f52;this[_0x2a34a4(0x1a5)][_0x2a34a4(0x1ee)]>0x0&&(this['circuitBreaker'][_0x2a34a4(0x1ee)]=0x0,this['circuitBreaker']['isOpen']=![],this[_0x2a34a4(0x1cd)][_0x2a34a4(0x1d6)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x29cd37){const _0xe5615b=a0_0x565f52;if(!_0x29cd37)return null;const _0x2b939d=_0x29cd37['toLowerCase']();if(_0x2b939d['includes']('anthropic')||_0x2b939d['includes']('claude'))return _0xe5615b(0x18d);else{if(_0x2b939d[_0xe5615b(0x1ef)](_0xe5615b(0x1fb))||_0x2b939d[_0xe5615b(0x1ef)]('gpt'))return _0xe5615b(0x1fb);else{if(_0x2b939d['includes']('deepseek'))return'deepseek';else{if(_0x2b939d[_0xe5615b(0x1ef)](_0xe5615b(0x1ac)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x477765,_0x3234de){const _0xbf2866=a0_0x565f52;this[_0xbf2866(0x1c8)]=_0x477765,this[_0xbf2866(0x1cd)]=_0x3234de,this['conversations']=new Map();}async['switchModel'](_0x34c420){return{'messages':[],'model':_0x34c420,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0xbc54bf=a0_0xd19a;(function(_0x4b68a7,_0x1b0860){const _0x42849b=a0_0xd19a,_0x2c1937=_0x4b68a7();while(!![]){try{const _0x2bb051=-parseInt(_0x42849b(0x79))/0x1+-parseInt(_0x42849b(0x78))/0x2+-parseInt(_0x42849b(0x81))/0x3+-parseInt(_0x42849b(0x74))/0x4*(-parseInt(_0x42849b(0x82))/0x5)+parseInt(_0x42849b(0x7a))/0x6*(-parseInt(_0x42849b(0x92))/0x7)+-parseInt(_0x42849b(0x8c))/0x8+parseInt(_0x42849b(0x80))/0x9;if(_0x2bb051===_0x1b0860)break;else _0x2c1937['push'](_0x2c1937['shift']());}catch(_0x3e9cf9){_0x2c1937['push'](_0x2c1937['shift']());}}}(a0_0x5f02,0xccd70));function a0_0xd19a(_0x391d45,_0x10c5c6){_0x391d45=_0x391d45-0x73;const _0x5f02bd=a0_0x5f02();let _0xd19a9a=_0x5f02bd[_0x391d45];if(a0_0xd19a['VouXdC']===undefined){var _0x58a365=function(_0xfa7598){const _0x4d5e3c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2ebe31='',_0x1b088c='';for(let _0xd7e80=0x0,_0x402bde,_0x354562,_0x10d4bf=0x0;_0x354562=_0xfa7598['charAt'](_0x10d4bf++);~_0x354562&&(_0x402bde=_0xd7e80%0x4?_0x402bde*0x40+_0x354562:_0x354562,_0xd7e80++%0x4)?_0x2ebe31+=String['fromCharCode'](0xff&_0x402bde>>(-0x2*_0xd7e80&0x6)):0x0){_0x354562=_0x4d5e3c['indexOf'](_0x354562);}for(let _0x410c65=0x0,_0x268ce8=_0x2ebe31['length'];_0x410c65<_0x268ce8;_0x410c65++){_0x1b088c+='%'+('00'+_0x2ebe31['charCodeAt'](_0x410c65)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1b088c);};a0_0xd19a['xpcCBv']=_0x58a365,a0_0xd19a['GqzLHi']={},a0_0xd19a['VouXdC']=!![];}const _0x28b3b1=_0x5f02bd[0x0],_0x62c270=_0x391d45+_0x28b3b1,_0x5673bb=a0_0xd19a['GqzLHi'][_0x62c270];return!_0x5673bb?(_0xd19a9a=a0_0xd19a['xpcCBv'](_0xd19a9a),a0_0xd19a['GqzLHi'][_0x62c270]=_0xd19a9a):_0xd19a9a=_0x5673bb,_0xd19a9a;}class ApiKeyManager{constructor(_0x2ebe31){const _0x2a5595=a0_0xd19a;this['logger']=_0x2ebe31,this[_0x2a5595(0x86)]=new Map(),this[_0x2a5595(0x76)]={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x1b088c,_0xd7e80){const _0x124841=a0_0xd19a;if(!_0x1b088c)throw new Error(_0x124841(0x7f));this['sessionKeys']['set'](_0x1b088c,{'loxiaApiKey':_0xd7e80['loxiaApiKey']||null,'vendorKeys':_0xd7e80['vendorKeys']||{},'updatedAt':new Date()[_0x124841(0x7c)]()}),this[_0x124841(0x7b)]?.[_0x124841(0x75)](_0x124841(0x83),{'sessionId':_0x1b088c,'hasLoxiaKey':!!_0xd7e80['loxiaApiKey'],'vendorKeys':Object['keys'](_0xd7e80[_0x124841(0x73)]||{}),'timestamp':new Date()[_0x124841(0x7c)]()});}['getSessionKeys'](_0x402bde){const _0x155ff6=a0_0xd19a;if(!_0x402bde)return this[_0x155ff6(0x76)];const _0x354562=this[_0x155ff6(0x86)][_0x155ff6(0x7e)](_0x402bde);if(_0x354562)return _0x354562;return this[_0x155ff6(0x76)];}['getKeysForRequest'](_0x10d4bf,_0x410c65={}){const _0x7f3a5f=a0_0xd19a,_0x268ce8=this[_0x7f3a5f(0x8d)](_0x10d4bf),_0x437aac={'loxiaApiKey':_0x268ce8['loxiaApiKey'],'vendorApiKey':null};return!_0x410c65[_0x7f3a5f(0x90)]&&_0x410c65[_0x7f3a5f(0x8e)]&&_0x268ce8[_0x7f3a5f(0x73)]&&(_0x437aac['vendorApiKey']=_0x268ce8[_0x7f3a5f(0x73)][_0x410c65[_0x7f3a5f(0x8e)]]),_0x437aac;}['removeSessionKeys'](_0x5920d7){const _0x323f54=a0_0xd19a;if(this['sessionKeys']['delete'](_0x5920d7))return this['logger']?.[_0x323f54(0x75)]('API\x20keys\x20removed\x20for\x20session',{'sessionId':_0x5920d7}),!![];return![];}[a0_0xbc54bf(0x87)](_0x120c69){const _0xb935fd=a0_0xbc54bf;this['globalKeys']={'loxiaApiKey':_0x120c69['loxiaApiKey']||this[_0xb935fd(0x76)][_0xb935fd(0x7d)],'vendorKeys':{...this['globalKeys']['vendorKeys'],..._0x120c69['vendorKeys']||{}}},this[_0xb935fd(0x7b)]?.['info']('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this[_0xb935fd(0x76)]['loxiaApiKey'],'vendorKeys':Object[_0xb935fd(0x77)](this['globalKeys'][_0xb935fd(0x73)])});}['getActiveSessions'](){const _0x3ee202=a0_0xbc54bf;return Array[_0x3ee202(0x89)](this[_0x3ee202(0x86)]['entries']())[_0x3ee202(0x91)](([_0x250ad2,_0x4f7848])=>({'sessionId':_0x250ad2,'hasLoxiaKey':!!_0x4f7848[_0x3ee202(0x7d)],'vendorKeys':Object['keys'](_0x4f7848[_0x3ee202(0x73)]||{}),'updatedAt':_0x4f7848[_0x3ee202(0x8f)]}));}['cleanupExpiredSessions'](_0x111f5c=0x18*0x3c*0x3c*0x3e8){const _0xb4b49a=a0_0xbc54bf,_0x552696=Date['now'](),_0x490fa4=[];for(const [_0x2e1306,_0x12c9ab]of this[_0xb4b49a(0x86)][_0xb4b49a(0x84)]()){const _0x252d25=_0x552696-new Date(_0x12c9ab[_0xb4b49a(0x8f)])['getTime']();_0x252d25>_0x111f5c&&_0x490fa4['push'](_0x2e1306);}return _0x490fa4['forEach'](_0xcbcb08=>{const _0x5a073a=_0xb4b49a;this['sessionKeys'][_0x5a073a(0x85)](_0xcbcb08);}),_0x490fa4['length']>0x0&&this[_0xb4b49a(0x7b)]?.[_0xb4b49a(0x75)](_0xb4b49a(0x8b),{'expiredSessions':_0x490fa4['length'],'remainingSessions':this['sessionKeys'][_0xb4b49a(0x88)]}),_0x490fa4[_0xb4b49a(0x8a)];}}function a0_0x5f02(){const _0x1e142a=['C2v0r2XVyMfSs2v5CW','C2L6zq','zNjVBq','BgvUz3rO','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','odeWntq0ogDTzgnLza','z2v0u2vZC2LVBKTLExm','DMvUzg9Y','DxbKyxrLzef0','CgXHDgzVCM1qCM92AwrLza','BwfW','odK2y0HiBM5z','DMvUzg9Ys2v5CW','otq0mdr3ugXtAhe','Aw5MBW','z2XVyMfSs2v5CW','A2v5CW','mZC2nZG0vKfszKnv','mteZmZK1n2riveDksa','mZm4mtzUDe55BNi','Bg9Nz2vY','Dg9ju09tDhjPBMC','Bg94AwfbCgLlzxK','z2v0','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','ndaWmteYndzvCuvqqLO','mZq5mda3ngDjv3bJtG','mtmWqxjRzMjT','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','zw50CMLLCW','zgvSzxrL','C2vZC2LVBKTLExm'];a0_0x5f02=function(){return _0x1e142a;};return a0_0x5f02();}export default ApiKeyManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x453c65=a0_0x11fe;(function(_0xca7a58,_0x997fb9){const _0x1b7617=a0_0x11fe,_0x26f30c=_0xca7a58();while(!![]){try{const _0x497ac7=-parseInt(_0x1b7617(0x74))/0x1*(parseInt(_0x1b7617(0x70))/0x2)+parseInt(_0x1b7617(0xa5))/0x3+-parseInt(_0x1b7617(0x7b))/0x4*(parseInt(_0x1b7617(0x72))/0x5)+-parseInt(_0x1b7617(0x79))/0x6+-parseInt(_0x1b7617(0x73))/0x7+parseInt(_0x1b7617(0x7f))/0x8+-parseInt(_0x1b7617(0x77))/0x9;if(_0x497ac7===_0x997fb9)break;else _0x26f30c['push'](_0x26f30c['shift']());}catch(_0x2045a9){_0x26f30c['push'](_0x26f30c['shift']());}}}(a0_0xd7e5,0x7e58c));function a0_0x11fe(_0x5ceeeb,_0x4c3b34){_0x5ceeeb=_0x5ceeeb-0x6e;const _0xd7e5bd=a0_0xd7e5();let _0x11fe63=_0xd7e5bd[_0x5ceeeb];if(a0_0x11fe['EbjdFo']===undefined){var _0x5872ef=function(_0x150c4b){const _0x2cc337='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x52ba1b='',_0x18dce4='';for(let _0x2a8502=0x0,_0x178489,_0x146727,_0x2f0a20=0x0;_0x146727=_0x150c4b['charAt'](_0x2f0a20++);~_0x146727&&(_0x178489=_0x2a8502%0x4?_0x178489*0x40+_0x146727:_0x146727,_0x2a8502++%0x4)?_0x52ba1b+=String['fromCharCode'](0xff&_0x178489>>(-0x2*_0x2a8502&0x6)):0x0){_0x146727=_0x2cc337['indexOf'](_0x146727);}for(let _0x1af510=0x0,_0x4aaa2f=_0x52ba1b['length'];_0x1af510<_0x4aaa2f;_0x1af510++){_0x18dce4+='%'+('00'+_0x52ba1b['charCodeAt'](_0x1af510)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18dce4);};a0_0x11fe['WIMVgI']=_0x5872ef,a0_0x11fe['GNPEYg']={},a0_0x11fe['EbjdFo']=!![];}const _0x201221=_0xd7e5bd[0x0],_0x39b63f=_0x5ceeeb+_0x201221,_0x45bc35=a0_0x11fe['GNPEYg'][_0x39b63f];return!_0x45bc35?(_0x11fe63=a0_0x11fe['WIMVgI'](_0x11fe63),a0_0x11fe['GNPEYg'][_0x39b63f]=_0x11fe63):_0x11fe63=_0x45bc35,_0x11fe63;}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';function a0_0xd7e5(){const _0x45caaf=['AxnmB2fKAw5N','yxbPs2v5','zgvIDwC','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','BgvUz3rO','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','BgfZDfvWzgf0zwq','Bwf4','Bg9HzejLBMnOBwfYA3m','y29ZDa','BM93','BwvZC2fNzq','zM9Yy2vszwzYzxnO','C291CMnL','x2DLDezHC3rLC3rnB2rLBa','z2v0vgLTzq','Bw9KzwXZ','qMvHCMvYia','yMvUy2HTyxjRCW','mJm3mdqXmu1RA2fiDG','z2v0qMvUy2HTyxjRvgfIBgu','x3nJAgvKDwXLuMvMCMvZAa','DMfSDwvZ','z2v0u3rHDhvZ','CxvPy2STDgfZA3m','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0','C2nVCMu','BMvLzhnszwzYzxnO','mJa2mKPXz2D2wa','x2DLDejLC3rnB2rLBezVCLrHC2S','mZu0otKWBfPJsuvn','mZG3nduWn1jLwK5dwa','mtvAt3POA3q','Dg9ju09tDhjPBMC','zxjYB3i','nZe0otqYAMXZBwHx','A2v5CW','mta3nZqXnevRwfrwsG','DgfZA3m','ngnnt0LLva','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','BwfW','C29YDa','ntaXmdGWmgLNrKXgBq','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','y29UzMLN','CMvMCMvZAeLUDgvYDMfS','yw5HBhLZAxm','yxP1CMvcywnRzw5KvxjS','BMfTzq','Bg9Nz2vY','x2DLDe1VC3rdB3n0rwzMAwnPzw50','C3rHDhvZvgv4Da','C3rHDhvZ','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','Aw5PDgLHBgL6zq','yxbWBgLJyxrPB24VANnVBG','Dw5RBM93BG','y29KAw5N','C3bLzwq','Aw5MBW'];a0_0xd7e5=function(){return _0x45caaf;};return a0_0xd7e5();}class BenchmarkService{constructor(_0x52ba1b,_0x18dce4){const _0x39fbcf=a0_0x11fe;this[_0x39fbcf(0x81)]=_0x52ba1b,this['logger']=_0x18dce4,this[_0x39fbcf(0xa4)]=null,this[_0x39fbcf(0x98)]=null,this['isLoading']=![],this[_0x39fbcf(0x84)]=_0x39fbcf(0xab),this[_0x39fbcf(0x82)]=MODEL_ROUTER_CONFIG[_0x39fbcf(0x97)];}async[a0_0x453c65(0x8b)](){const _0x1ef323=a0_0x453c65;try{await this[_0x1ef323(0x9a)](),this[_0x1ef323(0xa7)](),this['logger']['info']('Benchmark\x20service\x20initialized');}catch(_0x2a8502){this[_0x1ef323(0x86)]['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x2a8502['message']}),this['benchmarks']=null;}}['getBenchmarks'](){const _0x2d7811=a0_0x453c65;if(!this[_0x2d7811(0xa4)])return this['logger']['error'](_0x2d7811(0x95),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this[_0x2d7811(0xa4)];}async[a0_0x453c65(0x9a)](){const _0x50f2ea=a0_0x453c65;if(this['isLoading']){this['logger'][_0x50f2ea(0x93)](_0x50f2ea(0x94));return;}this[_0x50f2ea(0x91)]=!![];try{const _0x178489=await this['_fetchFromAzureBackend']();if(_0x178489)this['benchmarks']=_0x178489,this['lastUpdated']=new Date(),this[_0x50f2ea(0x86)][_0x50f2ea(0x90)]('Benchmarks loaded from Azure backend',{'modelCount':_0x178489['models']?.['length']||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x146727){this['logger'][_0x50f2ea(0x76)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x146727[_0x50f2ea(0x9d)],'endpoint':url}),!this['benchmarks']&&(this['benchmarks']=null);}finally{this[_0x50f2ea(0x91)]=![];}}[a0_0x453c65(0xa6)](){const _0x18ea1e=a0_0x453c65,_0x2f0a20=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.[_0x18ea1e(0x75)]()||_0x18ea1e(0x8d),'models':_0x2f0a20['models']||[],'tasks':_0x2f0a20['tasks']||{},'summary':this[_0x18ea1e(0x80)](_0x2f0a20)};}['needsRefresh'](){const _0x5149cc=a0_0x453c65;if(!this['lastUpdated'])return!![];const _0x1af510=Date[_0x5149cc(0x9c)]()-this['lastUpdated'][_0x5149cc(0xa1)]();return _0x1af510>this['refreshInterval'];}async['_fetchFromAzureBackend'](){const _0x273c63=a0_0x453c65,_0x4aaa2f=this[_0x273c63(0x84)]+_0x273c63(0x8a);let _0x864153=null;this[_0x273c63(0x81)][_0x273c63(0x92)]&&(_0x864153=this[_0x273c63(0x81)]['apiKey']);const _0x2e82e3={'method':'GET','headers':{'Content-Type':_0x273c63(0x8c),..._0x864153&&{'Authorization':_0x273c63(0xa3)+_0x864153}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x4aaa2f});const _0x4b4257=await fetch(_0x4aaa2f,_0x2e82e3);if(!_0x4b4257['ok'])throw new Error('HTTP\x20'+_0x4b4257[_0x273c63(0x89)]+':\x20'+_0x4b4257[_0x273c63(0x88)]);const _0xaf29ca=await _0x4b4257['json']();return _0xaf29ca;}['_generateBenchmarkSummary'](_0x25da50){const _0x124cc4=a0_0x453c65,_0xd1a092=_0x25da50[_0x124cc4(0xa2)]||[];return{'totalModels':_0xd1a092[_0x124cc4(0x96)],'taskCategories':Object[_0x124cc4(0x78)](_0x25da50[_0x124cc4(0x7a)]||{}),'bestForCoding':this['_getBestModelForTask'](_0xd1a092,_0x124cc4(0x8e)),'bestForAnalysis':this['_getBestModelForTask'](_0xd1a092,_0x124cc4(0x83)),'bestForQuickTasks':this['_getBestModelForTask'](_0xd1a092,_0x124cc4(0xaa)),'bestForCreative':this[_0x124cc4(0x71)](_0xd1a092,'creative'),'fastestModel':this[_0x124cc4(0xa0)](_0xd1a092),'mostCostEfficient':this[_0x124cc4(0x87)](_0xd1a092)};}[a0_0x453c65(0x71)](_0x329f38,_0x4ba899){const _0x39d65c=a0_0x453c65;return _0x329f38['filter'](_0x2a463e=>_0x2a463e[_0x39d65c(0x7a)]&&_0x2a463e[_0x39d65c(0x7a)][_0x4ba899])[_0x39d65c(0x7e)]((_0x39491c,_0x31fb17)=>(_0x31fb17['tasks'][_0x4ba899][_0x39d65c(0x6e)]||0x0)-(_0x39491c['tasks'][_0x4ba899][_0x39d65c(0x6e)]||0x0))[0x0]?.[_0x39d65c(0x85)]||'unknown';}['_getFastestModel'](_0x186377){const _0x52b3dc=a0_0x453c65,_0x5bd579={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x186377['sort']((_0x1b60e0,_0x4b1b3a)=>{const _0x1d7206=a0_0x11fe,_0x2cc2c1=Math['max'](...Object[_0x1d7206(0xa8)](_0x1b60e0[_0x1d7206(0x7a)]||{})['map'](_0x41b8d6=>_0x5bd579[_0x41b8d6[_0x1d7206(0x8f)]]||0x0)),_0x34fced=Math['max'](...Object['values'](_0x4b1b3a[_0x1d7206(0x7a)]||{})[_0x1d7206(0x7d)](_0x1b326f=>_0x5bd579[_0x1b326f[_0x1d7206(0x8f)]]||0x0));return _0x34fced-_0x2cc2c1;})[0x0]?.[_0x52b3dc(0x85)]||_0x52b3dc(0x8d);}[a0_0x453c65(0x87)](_0x46d286){const _0x50a362=a0_0x453c65,_0x2d8b90={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x46d286[_0x50a362(0x7e)]((_0x407148,_0x1785e0)=>{const _0x3cfb4f=_0x50a362,_0x2cdde8=Math[_0x3cfb4f(0x99)](...Object['values'](_0x407148['tasks']||{})[_0x3cfb4f(0x7d)](_0x6efae4=>_0x2d8b90[_0x6efae4[_0x3cfb4f(0x9b)]]||0x0)),_0x1d2a1f=Math[_0x3cfb4f(0x99)](...Object[_0x3cfb4f(0xa8)](_0x1785e0['tasks']||{})['map'](_0x37a706=>_0x2d8b90[_0x37a706[_0x3cfb4f(0x9b)]]||0x0));return _0x1d2a1f-_0x2cdde8;})[0x0]?.[_0x50a362(0x85)]||'unknown';}[a0_0x453c65(0xa7)](){const _0x302603=a0_0x453c65;setInterval(async()=>{const _0x5b982d=a0_0x11fe;this[_0x5b982d(0x6f)]()&&(this[_0x5b982d(0x86)]['debug']('Refreshing\x20benchmark\x20data'),await this[_0x5b982d(0x9a)]());},this[_0x302603(0x82)]);}async[a0_0x453c65(0x9e)](){const _0x496073=a0_0x453c65;this[_0x496073(0x86)][_0x496073(0x90)](_0x496073(0x7c)),await this['loadBenchmarks']();}[a0_0x453c65(0xa9)](){const _0x1b3a5d=a0_0x453c65;return{'initialized':!!this[_0x1b3a5d(0xa4)],'lastUpdated':this['lastUpdated']?.[_0x1b3a5d(0x75)]()||null,'source':this['benchmarks']?.[_0x1b3a5d(0x9f)]||'unknown','modelCount':this[_0x1b3a5d(0xa4)]?.[_0x1b3a5d(0xa2)]?.['length']||0x0,'isLoading':this['isLoading'],'needsRefresh':this[_0x1b3a5d(0x6f)]()};}}export default BenchmarkService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x5dcf(_0x290c5d,_0x45ea62){_0x290c5d=_0x290c5d-0xc0;const _0x56c73e=a0_0x56c7();let _0x5dcf4b=_0x56c73e[_0x290c5d];if(a0_0x5dcf['cfWKdf']===undefined){var _0x42ede6=function(_0x2857cf){const _0x4aec38='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xa78609='',_0xc4316a='';for(let _0x3dcf71=0x0,_0x2bd6e6,_0x5d8d2e,_0x2bc25b=0x0;_0x5d8d2e=_0x2857cf['charAt'](_0x2bc25b++);~_0x5d8d2e&&(_0x2bd6e6=_0x3dcf71%0x4?_0x2bd6e6*0x40+_0x5d8d2e:_0x5d8d2e,_0x3dcf71++%0x4)?_0xa78609+=String['fromCharCode'](0xff&_0x2bd6e6>>(-0x2*_0x3dcf71&0x6)):0x0){_0x5d8d2e=_0x4aec38['indexOf'](_0x5d8d2e);}for(let _0x16ff34=0x0,_0x30a240=_0xa78609['length'];_0x16ff34<_0x30a240;_0x16ff34++){_0xc4316a+='%'+('00'+_0xa78609['charCodeAt'](_0x16ff34)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xc4316a);};a0_0x5dcf['bilopj']=_0x42ede6,a0_0x5dcf['SLkmpF']={},a0_0x5dcf['cfWKdf']=!![];}const _0x2ffca6=_0x56c73e[0x0],_0x52f10e=_0x290c5d+_0x2ffca6,_0x36b255=a0_0x5dcf['SLkmpF'][_0x52f10e];return!_0x36b255?(_0x5dcf4b=a0_0x5dcf['bilopj'](_0x5dcf4b),a0_0x5dcf['SLkmpF'][_0x52f10e]=_0x5dcf4b):_0x5dcf4b=_0x36b255,_0x5dcf4b;}const a0_0x340bc2=a0_0x5dcf;(function(_0x54fc3f,_0x169f71){const _0x4b3559=a0_0x5dcf,_0x1475f3=_0x54fc3f();while(!![]){try{const _0x208c3c=-parseInt(_0x4b3559(0xdd))/0x1*(parseInt(_0x4b3559(0x107))/0x2)+parseInt(_0x4b3559(0x10e))/0x3*(parseInt(_0x4b3559(0xda))/0x4)+parseInt(_0x4b3559(0xec))/0x5+parseInt(_0x4b3559(0xfd))/0x6*(-parseInt(_0x4b3559(0x11c))/0x7)+-parseInt(_0x4b3559(0x11b))/0x8*(parseInt(_0x4b3559(0xe0))/0x9)+-parseInt(_0x4b3559(0xf4))/0xa*(parseInt(_0x4b3559(0x100))/0xb)+-parseInt(_0x4b3559(0xe5))/0xc*(-parseInt(_0x4b3559(0xd7))/0xd);if(_0x208c3c===_0x169f71)break;else _0x1475f3['push'](_0x1475f3['shift']());}catch(_0x57cfcc){_0x1475f3['push'](_0x1475f3['shift']());}}}(a0_0x56c7,0x390dd));function a0_0x56c7(){const _0x23f112=['z2v0','C2v0','y29UzMLN','y2HLy2TuAhjLC2HVBgrbBgvYDhm','mZi5nMjuqLv4uG','mtrktwnHq1q','z2v0tw9UDgG','z2v0v2vLA0TLEq','C3rYAw5NAwz5','yNvKz2v0qwXLCNq','ChvZAa','zw50CMLLCW','y29UDMvYDfrVq1nw','C2f2zvvZywDLrgf0yq','Bg9Nz2vY','ywXLCNrZ','Aw5PDgLHBgL6zvvZywDLrw50CNK','Bg9HzfvZywDLrgf0yq','yNvKz2v0CW','C2v0DxbqzxjPB2rPy1nHDMu','D2fYBG','q29ZDa','Dg90ywW','y3n2','z2v0rNvSBfLLyxi','rgfPBhK','y3jLyxrLrw1WDhLvC2fNzq','refjtfK','AxnxAxrOAw5cDwrNzxq','mtaZmde1oujItfv3Ea','z2v0qwDLBNrvC2fNzq','veHsrvnit0XeuW','mZe2DhLuwLb1','z2v0vxnHz2u','Bw9UDgHSEq','mZvptMfNBxi','C2v0qNvKz2v0CW','zgfPBhLbDMvYywDLCW','mtaXotDgCgjqBwi','BgfZDefSzxj0vgLTzxm','AM9PBG','ANnVBG','z2v0tw9KzwXvC2fNzq','mtq0r2TPuMLR','z2v0uMvTywLUAw5NqNvKz2v0','Bwf4','Dg9WqwDLBNrZ','qNvKz2v0igXPBwL0CYb1CgrHDgvK','ltaX','Dw5ZAgLMDa','mtGYmJyXmgz6thfsBW','yNLnB2rLBa','Dg9Rzw5ZqNLeyxK','qwDLBNq','tw9KzwW','AgfZ','y29ZDa','Dg9tDhjPBMC','mteYmhDNy2rQyq','C29YDa','C2vUzfrOCMvZAg9SzefSzxj0','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','ugvYAw9K','zM9YrwfJAa','zw1PDa','vg9Rzw5Z','z2v0rgf5s2v5','nZmZmdm4uKfkrhzl','C3bSAxq','zgfPBhK','mJiXmJfoswjnr2e','ywDLBNrjza','BM93','C2XPy2u','Dg9ju09tDhjPBMC','BwfW','DxnHz2u','mtKZotrgEgzNzgm','y2HLy2TcDwrNzxrmAw1PDhm','CMvXDwvZDhm','BwvZC2fNzq','rgf0zq','yNLbz2vUDa','y2fSy3vSyxrLq29ZDa','nZm2ohbJvwvYua','zxjYB3i','DxbKyxrLvxnHz2vfBNrYEq','C2vUzej1zgDLDefSzxj0','D2vLA2X5','z2v0v2vLA051BwjLCG','DgHYzxnOB2XKCW','Dg9Rzw5Z','y29ZDej5rgf5'];a0_0x56c7=function(){return _0x23f112;};return a0_0x56c7();}import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0xa78609,_0xc4316a){const _0x4035de=a0_0x5dcf;this[_0x4035de(0x119)]=_0xa78609||{},this['logger']=_0xc4316a,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x4035de(0xcc)]={'daily':BUDGET_LIMITS[_0x4035de(0xd5)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS['MONTHLY']},this[_0x4035de(0xc9)]={'enabled':!![],'thresholds':USAGE_ALERTS[_0x4035de(0xd9)],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x4035de(0xcd)]();}['trackUsage'](_0x3dcf71,_0x2bd6e6,_0x5d8d2e){const _0x11e6b8=a0_0x5dcf;try{const _0x2bc25b=this[_0x11e6b8(0x10d)](_0x2bd6e6,_0x5d8d2e),_0x16ff34=new Date(),_0x30a240=this['getDayKey'](_0x16ff34),_0x25c34b=this[_0x11e6b8(0xc1)](_0x16ff34),_0x309c99=this['getMonthKey'](_0x16ff34);this[_0x11e6b8(0xca)](this[_0x11e6b8(0x106)]['daily'],_0x30a240),this[_0x11e6b8(0xca)](this[_0x11e6b8(0x106)][_0x11e6b8(0x112)],_0x25c34b),this['initializeUsageEntry'](this['usage'][_0x11e6b8(0xdc)],_0x309c99);const _0x1a5d17={'agentId':_0x3dcf71,'modelId':_0x2bd6e6,'tokens':_0x5d8d2e['total_tokens'],'cost':_0x2bc25b,'timestamp':_0x16ff34['toISOString']()};return this['updateUsageEntry'](this['usage'][_0x11e6b8(0xff)]['get'](_0x30a240),_0x1a5d17),this[_0x11e6b8(0x110)](this['usage'][_0x11e6b8(0x112)]['get'](_0x25c34b),_0x1a5d17),this[_0x11e6b8(0x110)](this['usage'][_0x11e6b8(0xdc)][_0x11e6b8(0x117)](_0x309c99),_0x1a5d17),this[_0x11e6b8(0x106)][_0x11e6b8(0xd0)]['tokens']+=_0x5d8d2e['total_tokens'],this[_0x11e6b8(0x106)][_0x11e6b8(0xd0)][_0x11e6b8(0xf2)]+=_0x2bc25b,this[_0x11e6b8(0x106)]['total']['requests']+=0x1,this[_0x11e6b8(0x108)](_0x30a240,_0x25c34b,_0x309c99),this['logger']['info']('Usage\x20tracked',{'agentId':_0x3dcf71,'modelId':_0x2bd6e6,'tokens':_0x5d8d2e['total_tokens'],'cost':_0x2bc25b,'totalCost':this[_0x11e6b8(0x106)][_0x11e6b8(0xd0)]['cost']}),{'cost':_0x2bc25b,'totalCost':this['usage'][_0x11e6b8(0xd0)]['cost'],'totalTokens':this[_0x11e6b8(0x106)]['total']['tokens'],'dailyUsage':this['usage'][_0x11e6b8(0xff)][_0x11e6b8(0x117)](_0x30a240),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x5f050d){this[_0x11e6b8(0xc8)][_0x11e6b8(0x10f)]('Failed\x20to\x20track\x20usage',{'error':_0x5f050d[_0x11e6b8(0x10a)],'agentId':_0x3dcf71,'modelId':_0x2bd6e6});throw _0x5f050d;}}['calculateCost'](_0x2781c2,_0x9bbdeb){const _0x3ff51f=a0_0x5dcf,_0x3d0b6f=COST_PER_TOKEN[_0x2781c2];if(!_0x3d0b6f)return this[_0x3ff51f(0xc8)]['warn']('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x2781c2}),0x0;const _0x345428=(_0x9bbdeb['prompt_tokens']||0x0)*_0x3d0b6f['input'],_0x1579fa=(_0x9bbdeb['completion_tokens']||0x0)*_0x3d0b6f['output'];return _0x345428+_0x1579fa;}['getUsage'](_0x59deba=a0_0x340bc2(0xff),_0x1cbf96=new Date()){const _0x59fb5d=a0_0x340bc2;switch(_0x59deba){case'daily':return this['usage'][_0x59fb5d(0xff)][_0x59fb5d(0x117)](this['getDayKey'](_0x1cbf96))||this['createEmptyUsage']();case _0x59fb5d(0x112):return this['usage']['weekly'][_0x59fb5d(0x117)](this[_0x59fb5d(0xc1)](_0x1cbf96))||this[_0x59fb5d(0xd4)]();case'monthly':return this['usage'][_0x59fb5d(0xdc)][_0x59fb5d(0x117)](this['getMonthKey'](_0x1cbf96))||this[_0x59fb5d(0xd4)]();case _0x59fb5d(0xd0):return{...this[_0x59fb5d(0x106)]['total']};default:throw new Error('Invalid\x20period:\x20'+_0x59deba);}}[a0_0x340bc2(0xd8)](_0x5c402e,_0x40df65='daily'){const _0x52b4a2=a0_0x340bc2,_0x3e07fe=this['getUsage'](_0x40df65);return _0x3e07fe['byAgent']?.[_0x5c402e]||this[_0x52b4a2(0xd4)]();}[a0_0x340bc2(0xe4)](_0x2a8858,_0x1c642e='daily'){const _0x16a5f5=a0_0x340bc2,_0x51daf8=this['getUsage'](_0x1c642e);return _0x51daf8['byModel']?.[_0x2a8858]||this[_0x16a5f5(0xd4)]();}[a0_0x340bc2(0xde)](_0x1ede0c){const _0x1c17fb=a0_0x340bc2;if(_0x1ede0c['daily']!==undefined)this['budgets'][_0x1c17fb(0xff)]=_0x1ede0c[_0x1c17fb(0xff)];if(_0x1ede0c[_0x1c17fb(0x112)]!==undefined)this[_0x1c17fb(0xcc)][_0x1c17fb(0x112)]=_0x1ede0c[_0x1c17fb(0x112)];if(_0x1ede0c['monthly']!==undefined)this[_0x1c17fb(0xcc)][_0x1c17fb(0xdc)]=_0x1ede0c[_0x1c17fb(0xdc)];this['logger']['info'](_0x1c17fb(0xe9),this['budgets']),this['saveUsageData']();}[a0_0x340bc2(0xe6)](){const _0x298ed6=a0_0x340bc2,_0x1cd8d0=new Date(),_0x3bf971=this[_0x298ed6(0xdb)](_0x298ed6(0xff),_0x1cd8d0),_0x1f9727=this['getUsage']('weekly',_0x1cd8d0),_0x4ab28b=this[_0x298ed6(0xdb)]('monthly',_0x1cd8d0);return{'daily':Math['max'](0x0,this['budgets'][_0x298ed6(0xff)]-_0x3bf971['cost']),'weekly':Math[_0x298ed6(0xe7)](0x0,this['budgets'][_0x298ed6(0x112)]-_0x1f9727[_0x298ed6(0xf2)]),'monthly':Math['max'](0x0,this['budgets'][_0x298ed6(0xdc)]-_0x4ab28b['cost'])};}[a0_0x340bc2(0xd6)](_0x38fe80=a0_0x340bc2(0xff)){const _0xdee4fa=a0_0x340bc2,_0x58884f=this[_0xdee4fa(0xdb)](_0x38fe80),_0x5c6545=this[_0xdee4fa(0xcc)][_0x38fe80];return _0x58884f['cost']<=_0x5c6545;}['getUsageTrends'](_0x5ad238=0x1e){const _0x12ce13=a0_0x340bc2,_0x1d4d53={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x224cd6=new Date();let _0x5d8d3c=0x0,_0x5f5622=0x0,_0x4492f1=0x0;const _0x20b344=new Map(),_0x4d8f0f=new Map();for(let _0x5f44c0=0x0;_0x5f44c0<_0x5ad238;_0x5f44c0++){const _0x2080a8=new Date(_0x224cd6);_0x2080a8['setDate'](_0x2080a8['getDate']()-_0x5f44c0);const _0x15ba42=this['getDayKey'](_0x2080a8),_0x37b61c=this[_0x12ce13(0x106)][_0x12ce13(0xff)]['get'](_0x15ba42);_0x37b61c?(_0x5d8d3c+=_0x37b61c['cost'],_0x5f5622+=_0x37b61c[_0x12ce13(0x115)],_0x4492f1+=_0x37b61c['requests'],_0x1d4d53[_0x12ce13(0x116)][_0x12ce13(0xeb)]({'date':_0x15ba42,'cost':_0x37b61c[_0x12ce13(0xf2)]}),_0x1d4d53['tokensByDay'][_0x12ce13(0xeb)]({'date':_0x15ba42,'tokens':_0x37b61c['tokens']}),Object[_0x12ce13(0xc5)](_0x37b61c['byAgent']||{})[_0x12ce13(0xf9)](([_0x285493,_0x4401c2])=>{const _0x4261c3=_0x12ce13;!_0x20b344[_0x4261c3(0xf1)](_0x285493)&&_0x20b344['set'](_0x285493,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x2ae5f2=_0x20b344['get'](_0x285493);_0x2ae5f2['cost']+=_0x4401c2['cost'],_0x2ae5f2[_0x4261c3(0x115)]+=_0x4401c2[_0x4261c3(0x115)],_0x2ae5f2['requests']+=_0x4401c2[_0x4261c3(0x109)];}),Object[_0x12ce13(0xc5)](_0x37b61c[_0x12ce13(0xed)]||{})['forEach'](([_0x582557,_0x210849])=>{const _0x20c06a=_0x12ce13;!_0x4d8f0f['has'](_0x582557)&&_0x4d8f0f['set'](_0x582557,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x15c6d5=_0x4d8f0f[_0x20c06a(0x117)](_0x582557);_0x15c6d5[_0x20c06a(0xf2)]+=_0x210849['cost'],_0x15c6d5[_0x20c06a(0x115)]+=_0x210849[_0x20c06a(0x115)],_0x15c6d5[_0x20c06a(0x109)]+=_0x210849[_0x20c06a(0x109)];})):(_0x1d4d53[_0x12ce13(0x116)]['unshift']({'date':_0x15ba42,'cost':0x0}),_0x1d4d53[_0x12ce13(0xee)]['unshift']({'date':_0x15ba42,'tokens':0x0}));}return _0x1d4d53[_0x12ce13(0xdf)][_0x12ce13(0xf2)]=_0x5d8d3c/_0x5ad238,_0x1d4d53[_0x12ce13(0xdf)]['tokens']=_0x5f5622/_0x5ad238,_0x1d4d53[_0x12ce13(0xdf)]['requests']=_0x4492f1/_0x5ad238,_0x1d4d53[_0x12ce13(0xe8)]=Array['from'](_0x20b344['entries']())['map'](([_0x153918,_0x2baee0])=>({'id':_0x153918,..._0x2baee0}))[_0x12ce13(0xf5)]((_0x285257,_0x3300b4)=>_0x3300b4[_0x12ce13(0xf2)]-_0x285257[_0x12ce13(0xf2)])[_0x12ce13(0x103)](0x0,0xa),_0x1d4d53['topModels']=Array['from'](_0x4d8f0f[_0x12ce13(0xc5)]())[_0x12ce13(0x105)](([_0x3bf2b6,_0x351b6d])=>({'id':_0x3bf2b6,..._0x351b6d}))[_0x12ce13(0xf5)]((_0x43c8fb,_0x16c3e3)=>_0x16c3e3[_0x12ce13(0xf2)]-_0x43c8fb[_0x12ce13(0xf2)])['slice'](0x0,0xa),_0x1d4d53;}['exportUsageData'](_0x3c5c9e=a0_0x340bc2(0xe3),_0x3cd9dc=null,_0x4b06a2=null){const _0x1c58fa=a0_0x340bc2,_0x41cc6c={'budgets':this[_0x1c58fa(0xcc)],'total':this[_0x1c58fa(0x106)][_0x1c58fa(0xd0)],'daily':{},'weekly':{},'monthly':{}},_0x223641=(_0x199f17,_0xa5ed85)=>{const _0x511e03=_0x1c58fa,_0x13ef33={};return _0x199f17[_0x511e03(0xf9)]((_0x18fe16,_0x3e18d0)=>{const _0x2629a2=_0xa5ed85(_0x3e18d0);(!_0x3cd9dc||_0x2629a2>=_0x3cd9dc)&&(!_0x4b06a2||_0x2629a2<=_0x4b06a2)&&(_0x13ef33[_0x3e18d0]=_0x18fe16);}),_0x13ef33;};_0x3cd9dc||_0x4b06a2?(_0x41cc6c['daily']=_0x223641(this[_0x1c58fa(0x106)][_0x1c58fa(0xff)],_0x587a98=>new Date(_0x587a98)),_0x41cc6c[_0x1c58fa(0x112)]=_0x223641(this['usage'][_0x1c58fa(0x112)],_0x196fb8=>new Date(_0x196fb8)),_0x41cc6c[_0x1c58fa(0xdc)]=_0x223641(this[_0x1c58fa(0x106)][_0x1c58fa(0xdc)],_0x29a616=>new Date(_0x29a616+_0x1c58fa(0xea)))):(this[_0x1c58fa(0x106)][_0x1c58fa(0xff)]['forEach']((_0x513a72,_0x100fcf)=>_0x41cc6c['daily'][_0x100fcf]=_0x513a72),this['usage']['weekly'][_0x1c58fa(0xf9)]((_0x1c11f3,_0x4a895e)=>_0x41cc6c['weekly'][_0x4a895e]=_0x1c11f3),this['usage']['monthly'][_0x1c58fa(0xf9)]((_0x3f137c,_0x715c7a)=>_0x41cc6c['monthly'][_0x715c7a]=_0x3f137c));if(_0x3c5c9e===_0x1c58fa(0xd1))return this[_0x1c58fa(0xc6)](_0x41cc6c);return JSON[_0x1c58fa(0xc2)](_0x41cc6c,null,0x2);}[a0_0x340bc2(0xca)](_0x3e852a,_0x5cadc3){const _0x514073=a0_0x340bc2;!_0x3e852a[_0x514073(0xf1)](_0x5cadc3)&&_0x3e852a[_0x514073(0x118)](_0x5cadc3,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x340bc2(0x110)](_0x3fe3c0,_0x2b7e73){const _0x27e203=a0_0x340bc2;_0x3fe3c0['cost']+=_0x2b7e73[_0x27e203(0xf2)],_0x3fe3c0['tokens']+=_0x2b7e73[_0x27e203(0x115)],_0x3fe3c0['requests']+=0x1,!_0x3fe3c0[_0x27e203(0x10c)][_0x2b7e73[_0x27e203(0x101)]]&&(_0x3fe3c0['byAgent'][_0x2b7e73[_0x27e203(0x101)]]=this[_0x27e203(0xd4)]()),_0x3fe3c0[_0x27e203(0x10c)][_0x2b7e73[_0x27e203(0x101)]]['cost']+=_0x2b7e73[_0x27e203(0xf2)],_0x3fe3c0['byAgent'][_0x2b7e73[_0x27e203(0x101)]][_0x27e203(0x115)]+=_0x2b7e73[_0x27e203(0x115)],_0x3fe3c0[_0x27e203(0x10c)][_0x2b7e73['agentId']]['requests']+=0x1,!_0x3fe3c0[_0x27e203(0xed)][_0x2b7e73['modelId']]&&(_0x3fe3c0['byModel'][_0x2b7e73['modelId']]=this['createEmptyUsage']()),_0x3fe3c0[_0x27e203(0xed)][_0x2b7e73['modelId']][_0x27e203(0xf2)]+=_0x2b7e73[_0x27e203(0xf2)],_0x3fe3c0[_0x27e203(0xed)][_0x2b7e73['modelId']][_0x27e203(0x115)]+=_0x2b7e73['tokens'],_0x3fe3c0[_0x27e203(0xed)][_0x2b7e73['modelId']][_0x27e203(0x109)]+=0x1;}[a0_0x340bc2(0x108)](_0x41164d,_0x4d9eff,_0x29cecf){const _0x160610=a0_0x340bc2,_0x3d4e43=this['usage']['daily']['get'](_0x41164d),_0x4288c9=this['usage'][_0x160610(0x112)]['get'](_0x4d9eff),_0x93c4a5=this['usage'][_0x160610(0xdc)][_0x160610(0x117)](_0x29cecf);_0x3d4e43['cost']>this['budgets']['daily']&&this[_0x160610(0x111)](_0x160610(0xff),_0x3d4e43['cost'],this['budgets']['daily']),_0x4288c9['cost']>this[_0x160610(0xcc)][_0x160610(0x112)]&&this['sendBudgetAlert'](_0x160610(0x112),_0x4288c9[_0x160610(0xf2)],this[_0x160610(0xcc)]['weekly']),_0x93c4a5['cost']>this['budgets']['monthly']&&this['sendBudgetAlert']('monthly',_0x93c4a5['cost'],this[_0x160610(0xcc)]['monthly']),this[_0x160610(0x11a)](_0x3d4e43,_0x4288c9,_0x93c4a5);}[a0_0x340bc2(0x11a)](_0x4242c5,_0x3fefa0,_0x367ddb){const _0x100b46=a0_0x340bc2,_0x5517fb=this['alerts'][_0x100b46(0x114)];this['checkThreshold'](_0x100b46(0xff),_0x4242c5[_0x100b46(0xf2)],this['budgets'][_0x100b46(0xff)],_0x5517fb),this['checkThreshold'](_0x100b46(0x112),_0x3fefa0['cost'],this['budgets']['weekly'],_0x5517fb),this['checkThreshold'](_0x100b46(0xdc),_0x367ddb[_0x100b46(0xf2)],this['budgets']['monthly'],_0x5517fb);}['checkThreshold'](_0x2a128e,_0x44c2ef,_0x16c682,_0x59f102){const _0x38d56d=a0_0x340bc2,_0x38c621=_0x44c2ef/_0x16c682*0x64;for(const _0x2f7475 of _0x59f102){if(_0x38c621>=_0x2f7475){const _0x44aea0=_0x2a128e+'_'+_0x2f7475,_0x17536c=this[_0x38d56d(0xc9)][_0x38d56d(0xe1)]['get'](_0x44aea0),_0x46f1a6=Date[_0x38d56d(0x102)]();(!_0x17536c||_0x46f1a6-_0x17536c>0x36ee80)&&(this[_0x38d56d(0xf6)](_0x2a128e,_0x38c621,_0x2f7475,_0x44c2ef,_0x16c682),this[_0x38d56d(0xc9)][_0x38d56d(0xe1)]['set'](_0x44aea0,_0x46f1a6));break;}}}['sendBudgetAlert'](_0x576fd2,_0x1a2334,_0x372881){const _0x52ad61=a0_0x340bc2;this['logger']['warn']('Budget\x20limit\x20exceeded',{'period':_0x576fd2,'currentUsage':_0x1a2334,'budgetLimit':_0x372881,'excess':_0x1a2334-_0x372881}),typeof process!=='undefined'&&process['emit']&&process[_0x52ad61(0xfa)]('budgetAlert',{'type':'budget_exceeded','period':_0x576fd2,'currentUsage':_0x1a2334,'budgetLimit':_0x372881,'excess':_0x1a2334-_0x372881});}['sendThresholdAlert'](_0x4d671e,_0x446079,_0x374493,_0x39f282,_0x5df62d){const _0x3b751a=a0_0x340bc2;this['logger'][_0x3b751a(0xce)]('Budget\x20threshold\x20reached',{'period':_0x4d671e,'percentage':Math['round'](_0x446079),'threshold':_0x374493,'usage':_0x39f282,'budget':_0x5df62d}),typeof process!=='undefined'&&process['emit']&&process[_0x3b751a(0xfa)](_0x3b751a(0xc3),{'type':'threshold_reached','period':_0x4d671e,'percentage':Math['round'](_0x446079),'threshold':_0x374493,'usage':_0x39f282,'budget':_0x5df62d});}[a0_0x340bc2(0xfc)](_0x3c9e4e){const _0x2b37dd=a0_0x340bc2;return _0x3c9e4e[_0x2b37dd(0x104)]()[_0x2b37dd(0xfe)]('T')[0x0];}[a0_0x340bc2(0xc1)](_0x358718){const _0x138293=a0_0x340bc2,_0x7281b9=_0x358718[_0x138293(0xd2)](),_0xb19b5d=this[_0x138293(0x113)](_0x358718);return _0x7281b9+'-W'+_0xb19b5d['toString']()['padStart'](0x2,'0');}['getMonthKey'](_0x322041){const _0x1ebf67=a0_0x340bc2,_0x351130=_0x322041['getFullYear'](),_0x52dc70=_0x322041[_0x1ebf67(0xc0)]()+0x1;return _0x351130+'-'+_0x52dc70[_0x1ebf67(0xf3)]()['padStart'](0x2,'0');}[a0_0x340bc2(0x113)](_0x77c25b){const _0x588594=new Date(_0x77c25b['getFullYear'](),0x0,0x1),_0x280d80=(_0x77c25b-_0x588594)/0x5265c00;return Math['ceil']((_0x280d80+_0x588594['getDay']()+0x1)/0x7);}['convertToCSV'](_0xffd604){const _0x3c7bea=a0_0x340bc2,_0x1e4db1=[];return _0x1e4db1[_0x3c7bea(0xc4)]([_0x3c7bea(0xf8),_0x3c7bea(0x10b),_0x3c7bea(0xcf),_0x3c7bea(0xfb),'Requests',_0x3c7bea(0xef),_0x3c7bea(0xf0)]),Object[_0x3c7bea(0xc5)](_0xffd604['daily'])[_0x3c7bea(0xf9)](([_0x5368ba,_0x5ccf69])=>{const _0x3d233e=_0x3c7bea;_0x1e4db1['push'](['Daily',_0x5368ba,_0x5ccf69['cost'],_0x5ccf69['tokens'],_0x5ccf69[_0x3d233e(0x109)],'','']),Object['entries'](_0x5ccf69[_0x3d233e(0x10c)]||{})['forEach'](([_0x3cbaea,_0xfd6180])=>{const _0x4f3ff5=_0x3d233e;_0x1e4db1['push']([_0x4f3ff5(0xd3),_0x5368ba,_0xfd6180['cost'],_0xfd6180[_0x4f3ff5(0x115)],_0xfd6180[_0x4f3ff5(0x109)],_0x3cbaea,'']);});}),_0x1e4db1['map'](_0x40513f=>_0x40513f[_0x3c7bea(0xe2)](','))[_0x3c7bea(0xe2)]('\x0a');}[a0_0x340bc2(0xcb)](){const _0x16c8bc=a0_0x340bc2;try{this['logger']['info']('Budget\x20service\x20initialized');}catch(_0x29efa2){this[_0x16c8bc(0xc8)]['error'](_0x16c8bc(0xf7),{'error':_0x29efa2['message']});}}[a0_0x340bc2(0xc7)](){const _0x31969f=a0_0x340bc2;try{this['logger']['debug']('Usage\x20data\x20saved');}catch(_0x13ca38){this[_0x31969f(0xc8)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0x13ca38['message']});}}[a0_0x340bc2(0xcd)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
|
|
1
|
+
const a0_0x2a3f22=a0_0x50ff;(function(_0x4f163a,_0x3f88d3){const _0x1c2d7f=a0_0x50ff,_0x27e6db=_0x4f163a();while(!![]){try{const _0x3a6a73=parseInt(_0x1c2d7f(0x1de))/0x1+-parseInt(_0x1c2d7f(0x1a5))/0x2+parseInt(_0x1c2d7f(0x1a2))/0x3*(parseInt(_0x1c2d7f(0x1c5))/0x4)+-parseInt(_0x1c2d7f(0x1d9))/0x5*(-parseInt(_0x1c2d7f(0x1e6))/0x6)+parseInt(_0x1c2d7f(0x1da))/0x7*(-parseInt(_0x1c2d7f(0x1f4))/0x8)+-parseInt(_0x1c2d7f(0x1e2))/0x9*(-parseInt(_0x1c2d7f(0x1e0))/0xa)+-parseInt(_0x1c2d7f(0x1c6))/0xb*(parseInt(_0x1c2d7f(0x1b4))/0xc);if(_0x3a6a73===_0x3f88d3)break;else _0x27e6db['push'](_0x27e6db['shift']());}catch(_0xbddd09){_0x27e6db['push'](_0x27e6db['shift']());}}}(a0_0x1300,0x2157b));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x50ff(_0x194a5a,_0x4c473b){_0x194a5a=_0x194a5a-0x18c;const _0x1300ca=a0_0x1300();let _0x50ffa7=_0x1300ca[_0x194a5a];if(a0_0x50ff['dscmxQ']===undefined){var _0xaf154=function(_0x4fdd48){const _0x102b4f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4d0457='',_0x5dfc46='';for(let _0x52ad34=0x0,_0x3c3362,_0x7239ac,_0x5c627f=0x0;_0x7239ac=_0x4fdd48['charAt'](_0x5c627f++);~_0x7239ac&&(_0x3c3362=_0x52ad34%0x4?_0x3c3362*0x40+_0x7239ac:_0x7239ac,_0x52ad34++%0x4)?_0x4d0457+=String['fromCharCode'](0xff&_0x3c3362>>(-0x2*_0x52ad34&0x6)):0x0){_0x7239ac=_0x102b4f['indexOf'](_0x7239ac);}for(let _0x3df13c=0x0,_0x38f284=_0x4d0457['length'];_0x3df13c<_0x38f284;_0x3df13c++){_0x5dfc46+='%'+('00'+_0x4d0457['charCodeAt'](_0x3df13c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5dfc46);};a0_0x50ff['OTjpGF']=_0xaf154,a0_0x50ff['gZeTQX']={},a0_0x50ff['dscmxQ']=!![];}const _0x2ae0eb=_0x1300ca[0x0],_0x777d52=_0x194a5a+_0x2ae0eb,_0x46ecc3=a0_0x50ff['gZeTQX'][_0x777d52];return!_0x46ecc3?(_0x50ffa7=a0_0x50ff['OTjpGF'](_0x50ffa7),a0_0x50ff['gZeTQX'][_0x777d52]=_0x50ffa7):_0x50ffa7=_0x46ecc3,_0x50ffa7;}export class BudgetService{constructor(_0x4d0457,_0x5dfc46){const _0x199b7c=a0_0x50ff;this[_0x199b7c(0x1df)]=_0x4d0457||{},this['logger']=_0x5dfc46,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x199b7c(0x1ce)]={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS[_0x199b7c(0x1a4)],'monthly':BUDGET_LIMITS[_0x199b7c(0x1d2)]},this[_0x199b7c(0x1b6)]={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this[_0x199b7c(0x1bd)](),this[_0x199b7c(0x1b9)]();}['trackUsage'](_0x52ad34,_0x3c3362,_0x7239ac){const _0x1d558b=a0_0x50ff;try{const _0x5c627f=this['calculateCost'](_0x3c3362,_0x7239ac),_0x3df13c=new Date(),_0x38f284=this['getDayKey'](_0x3df13c),_0xaa035d=this['getWeekKey'](_0x3df13c),_0x5de134=this[_0x1d558b(0x18d)](_0x3df13c);this[_0x1d558b(0x19f)](this[_0x1d558b(0x19b)][_0x1d558b(0x1f1)],_0x38f284),this['initializeUsageEntry'](this['usage']['weekly'],_0xaa035d),this[_0x1d558b(0x19f)](this['usage'][_0x1d558b(0x1b5)],_0x5de134);const _0x2396d9={'agentId':_0x52ad34,'modelId':_0x3c3362,'tokens':_0x7239ac[_0x1d558b(0x1e9)],'cost':_0x5c627f,'timestamp':_0x3df13c['toISOString']()};return this['updateUsageEntry'](this['usage'][_0x1d558b(0x1f1)][_0x1d558b(0x1a3)](_0x38f284),_0x2396d9),this[_0x1d558b(0x1c1)](this[_0x1d558b(0x19b)][_0x1d558b(0x1c7)]['get'](_0xaa035d),_0x2396d9),this[_0x1d558b(0x1c1)](this['usage']['monthly'][_0x1d558b(0x1a3)](_0x5de134),_0x2396d9),this['usage'][_0x1d558b(0x1f2)][_0x1d558b(0x18c)]+=_0x7239ac[_0x1d558b(0x1e9)],this[_0x1d558b(0x19b)][_0x1d558b(0x1f2)][_0x1d558b(0x1d4)]+=_0x5c627f,this[_0x1d558b(0x19b)][_0x1d558b(0x1f2)]['requests']+=0x1,this['checkBudgetLimits'](_0x38f284,_0xaa035d,_0x5de134),this[_0x1d558b(0x1b2)]['info'](_0x1d558b(0x1a9),{'agentId':_0x52ad34,'modelId':_0x3c3362,'tokens':_0x7239ac[_0x1d558b(0x1e9)],'cost':_0x5c627f,'totalCost':this['usage']['total']['cost']}),{'cost':_0x5c627f,'totalCost':this[_0x1d558b(0x19b)][_0x1d558b(0x1f2)][_0x1d558b(0x1d4)],'totalTokens':this[_0x1d558b(0x19b)][_0x1d558b(0x1f2)]['tokens'],'dailyUsage':this['usage']['daily']['get'](_0x38f284),'budgetRemaining':this[_0x1d558b(0x192)]()};}catch(_0x58d891){this[_0x1d558b(0x1b2)][_0x1d558b(0x193)](_0x1d558b(0x1ca),{'error':_0x58d891['message'],'agentId':_0x52ad34,'modelId':_0x3c3362});throw _0x58d891;}}[a0_0x2a3f22(0x1ac)](_0x34e27f,_0x2e670a){const _0xebd688=a0_0x2a3f22,_0x475650=COST_PER_TOKEN[_0x34e27f];if(!_0x475650)return this['logger'][_0xebd688(0x1ba)](_0xebd688(0x1e1),{'modelId':_0x34e27f}),0x0;const _0x708689=(_0x2e670a[_0xebd688(0x1ad)]||0x0)*_0x475650['input'],_0x1f5df3=(_0x2e670a[_0xebd688(0x19e)]||0x0)*_0x475650[_0xebd688(0x19a)];return _0x708689+_0x1f5df3;}[a0_0x2a3f22(0x190)](_0xe80a7d='daily',_0x3566d9=new Date()){const _0x5e7ffb=a0_0x2a3f22;switch(_0xe80a7d){case'daily':return this[_0x5e7ffb(0x19b)][_0x5e7ffb(0x1f1)][_0x5e7ffb(0x1a3)](this['getDayKey'](_0x3566d9))||this[_0x5e7ffb(0x1ee)]();case _0x5e7ffb(0x1c7):return this[_0x5e7ffb(0x19b)]['weekly'][_0x5e7ffb(0x1a3)](this[_0x5e7ffb(0x1bb)](_0x3566d9))||this['createEmptyUsage']();case'monthly':return this[_0x5e7ffb(0x19b)]['monthly']['get'](this['getMonthKey'](_0x3566d9))||this['createEmptyUsage']();case'total':return{...this['usage'][_0x5e7ffb(0x1f2)]};default:throw new Error('Invalid\x20period:\x20'+_0xe80a7d);}}[a0_0x2a3f22(0x1a0)](_0x4c6a4d,_0x34af96='daily'){const _0x3ad972=a0_0x2a3f22,_0x3df602=this[_0x3ad972(0x190)](_0x34af96);return _0x3df602['byAgent']?.[_0x4c6a4d]||this[_0x3ad972(0x1ee)]();}[a0_0x2a3f22(0x1d5)](_0x2b127e,_0x5223c8=a0_0x2a3f22(0x1f1)){const _0x1b0c09=a0_0x2a3f22,_0x32e5f3=this['getUsage'](_0x5223c8);return _0x32e5f3['byModel']?.[_0x2b127e]||this[_0x1b0c09(0x1ee)]();}[a0_0x2a3f22(0x19c)](_0x46a555){const _0x182bdf=a0_0x2a3f22;if(_0x46a555[_0x182bdf(0x1f1)]!==undefined)this[_0x182bdf(0x1ce)][_0x182bdf(0x1f1)]=_0x46a555[_0x182bdf(0x1f1)];if(_0x46a555['weekly']!==undefined)this['budgets'][_0x182bdf(0x1c7)]=_0x46a555[_0x182bdf(0x1c7)];if(_0x46a555[_0x182bdf(0x1b5)]!==undefined)this[_0x182bdf(0x1ce)][_0x182bdf(0x1b5)]=_0x46a555[_0x182bdf(0x1b5)];this['logger'][_0x182bdf(0x1e4)]('Budget\x20limits\x20updated',this[_0x182bdf(0x1ce)]),this['saveUsageData']();}['getRemainingBudget'](){const _0xa77ca4=a0_0x2a3f22,_0x3b4caa=new Date(),_0x3ef3bb=this['getUsage'](_0xa77ca4(0x1f1),_0x3b4caa),_0x2d33ec=this[_0xa77ca4(0x190)]('weekly',_0x3b4caa),_0x3aaea4=this['getUsage'](_0xa77ca4(0x1b5),_0x3b4caa);return{'daily':Math[_0xa77ca4(0x1a6)](0x0,this[_0xa77ca4(0x1ce)]['daily']-_0x3ef3bb['cost']),'weekly':Math[_0xa77ca4(0x1a6)](0x0,this[_0xa77ca4(0x1ce)]['weekly']-_0x2d33ec[_0xa77ca4(0x1d4)]),'monthly':Math['max'](0x0,this[_0xa77ca4(0x1ce)]['monthly']-_0x3aaea4['cost'])};}['isWithinBudget'](_0x519f5c=a0_0x2a3f22(0x1f1)){const _0x5ba627=a0_0x2a3f22,_0xc3d10a=this[_0x5ba627(0x190)](_0x519f5c),_0x20702e=this['budgets'][_0x519f5c];return _0xc3d10a[_0x5ba627(0x1d4)]<=_0x20702e;}[a0_0x2a3f22(0x1b0)](_0x3d78fb=0x1e){const _0x471b67=a0_0x2a3f22,_0x320557={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x25fb5b=new Date();let _0x50cec2=0x0,_0x3a5879=0x0,_0x52f1bf=0x0;const _0x2de348=new Map(),_0xa7a3b7=new Map();for(let _0x58aeaf=0x0;_0x58aeaf<_0x3d78fb;_0x58aeaf++){const _0x539e5b=new Date(_0x25fb5b);_0x539e5b[_0x471b67(0x1e5)](_0x539e5b[_0x471b67(0x1c4)]()-_0x58aeaf);const _0x59c568=this['getDayKey'](_0x539e5b),_0x4af2f6=this[_0x471b67(0x19b)][_0x471b67(0x1f1)]['get'](_0x59c568);_0x4af2f6?(_0x50cec2+=_0x4af2f6['cost'],_0x3a5879+=_0x4af2f6[_0x471b67(0x18c)],_0x52f1bf+=_0x4af2f6['requests'],_0x320557['costByDay'][_0x471b67(0x1ef)]({'date':_0x59c568,'cost':_0x4af2f6['cost']}),_0x320557[_0x471b67(0x1aa)]['unshift']({'date':_0x59c568,'tokens':_0x4af2f6['tokens']}),Object[_0x471b67(0x1e7)](_0x4af2f6[_0x471b67(0x1cf)]||{})[_0x471b67(0x1d7)](([_0x5e770a,_0xbc795c])=>{const _0x22eed1=_0x471b67;!_0x2de348[_0x22eed1(0x1c0)](_0x5e770a)&&_0x2de348[_0x22eed1(0x1c3)](_0x5e770a,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x1d097c=_0x2de348[_0x22eed1(0x1a3)](_0x5e770a);_0x1d097c['cost']+=_0xbc795c['cost'],_0x1d097c['tokens']+=_0xbc795c['tokens'],_0x1d097c[_0x22eed1(0x1d6)]+=_0xbc795c[_0x22eed1(0x1d6)];}),Object['entries'](_0x4af2f6[_0x471b67(0x198)]||{})[_0x471b67(0x1d7)](([_0x14998e,_0x2c3d1b])=>{const _0x236b17=_0x471b67;!_0xa7a3b7[_0x236b17(0x1c0)](_0x14998e)&&_0xa7a3b7['set'](_0x14998e,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x2bb28b=_0xa7a3b7['get'](_0x14998e);_0x2bb28b['cost']+=_0x2c3d1b[_0x236b17(0x1d4)],_0x2bb28b[_0x236b17(0x18c)]+=_0x2c3d1b['tokens'],_0x2bb28b[_0x236b17(0x1d6)]+=_0x2c3d1b[_0x236b17(0x1d6)];})):(_0x320557[_0x471b67(0x1af)][_0x471b67(0x1ef)]({'date':_0x59c568,'cost':0x0}),_0x320557['tokensByDay'][_0x471b67(0x1ef)]({'date':_0x59c568,'tokens':0x0}));}return _0x320557['dailyAverages'][_0x471b67(0x1d4)]=_0x50cec2/_0x3d78fb,_0x320557[_0x471b67(0x1be)]['tokens']=_0x3a5879/_0x3d78fb,_0x320557[_0x471b67(0x1be)][_0x471b67(0x1d6)]=_0x52f1bf/_0x3d78fb,_0x320557['topAgents']=Array[_0x471b67(0x1c9)](_0x2de348['entries']())[_0x471b67(0x1cc)](([_0x3a3cc8,_0x16bd05])=>({'id':_0x3a3cc8,..._0x16bd05}))[_0x471b67(0x1bf)]((_0x3d371f,_0x5cfa84)=>_0x5cfa84['cost']-_0x3d371f[_0x471b67(0x1d4)])['slice'](0x0,0xa),_0x320557[_0x471b67(0x1b1)]=Array['from'](_0xa7a3b7[_0x471b67(0x1e7)]())['map'](([_0xd816c8,_0xc6505d])=>({'id':_0xd816c8,..._0xc6505d}))[_0x471b67(0x1bf)]((_0x186cf2,_0x5d97bc)=>_0x5d97bc[_0x471b67(0x1d4)]-_0x186cf2[_0x471b67(0x1d4)])[_0x471b67(0x1cb)](0x0,0xa),_0x320557;}['exportUsageData'](_0xd1bf06='json',_0x146928=null,_0x5ace71=null){const _0x1a8487=a0_0x2a3f22,_0x301d45={'budgets':this[_0x1a8487(0x1ce)],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x4eea20=(_0x3b5c10,_0x3ceb2e)=>{const _0x1902d5={};return _0x3b5c10['forEach']((_0x103ac5,_0x3f0329)=>{const _0x1f509f=_0x3ceb2e(_0x3f0329);(!_0x146928||_0x1f509f>=_0x146928)&&(!_0x5ace71||_0x1f509f<=_0x5ace71)&&(_0x1902d5[_0x3f0329]=_0x103ac5);}),_0x1902d5;};_0x146928||_0x5ace71?(_0x301d45[_0x1a8487(0x1f1)]=_0x4eea20(this['usage']['daily'],_0x4e5d12=>new Date(_0x4e5d12)),_0x301d45[_0x1a8487(0x1c7)]=_0x4eea20(this[_0x1a8487(0x19b)][_0x1a8487(0x1c7)],_0x36d87f=>new Date(_0x36d87f)),_0x301d45[_0x1a8487(0x1b5)]=_0x4eea20(this['usage']['monthly'],_0x5622db=>new Date(_0x5622db+_0x1a8487(0x194)))):(this[_0x1a8487(0x19b)][_0x1a8487(0x1f1)][_0x1a8487(0x1d7)]((_0x2e4e78,_0xe1d6fd)=>_0x301d45[_0x1a8487(0x1f1)][_0xe1d6fd]=_0x2e4e78),this[_0x1a8487(0x19b)]['weekly'][_0x1a8487(0x1d7)]((_0x322c16,_0x1f2061)=>_0x301d45['weekly'][_0x1f2061]=_0x322c16),this['usage'][_0x1a8487(0x1b5)]['forEach']((_0x5454c8,_0x33a6c3)=>_0x301d45[_0x1a8487(0x1b5)][_0x33a6c3]=_0x5454c8));if(_0xd1bf06===_0x1a8487(0x1d1))return this['convertToCSV'](_0x301d45);return JSON['stringify'](_0x301d45,null,0x2);}['initializeUsageEntry'](_0x3216ec,_0x4aba28){!_0x3216ec['has'](_0x4aba28)&&_0x3216ec['set'](_0x4aba28,this['createEmptyUsage']());}[a0_0x2a3f22(0x1ee)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x442f48,_0x15feba){const _0x219ad9=a0_0x2a3f22;_0x442f48['cost']+=_0x15feba['cost'],_0x442f48[_0x219ad9(0x18c)]+=_0x15feba['tokens'],_0x442f48['requests']+=0x1,!_0x442f48[_0x219ad9(0x1cf)][_0x15feba['agentId']]&&(_0x442f48['byAgent'][_0x15feba[_0x219ad9(0x191)]]=this['createEmptyUsage']()),_0x442f48[_0x219ad9(0x1cf)][_0x15feba[_0x219ad9(0x191)]][_0x219ad9(0x1d4)]+=_0x15feba['cost'],_0x442f48[_0x219ad9(0x1cf)][_0x15feba[_0x219ad9(0x191)]][_0x219ad9(0x18c)]+=_0x15feba['tokens'],_0x442f48['byAgent'][_0x15feba['agentId']]['requests']+=0x1,!_0x442f48['byModel'][_0x15feba[_0x219ad9(0x1c2)]]&&(_0x442f48['byModel'][_0x15feba[_0x219ad9(0x1c2)]]=this[_0x219ad9(0x1ee)]()),_0x442f48[_0x219ad9(0x198)][_0x15feba[_0x219ad9(0x1c2)]]['cost']+=_0x15feba['cost'],_0x442f48[_0x219ad9(0x198)][_0x15feba['modelId']]['tokens']+=_0x15feba['tokens'],_0x442f48[_0x219ad9(0x198)][_0x15feba['modelId']]['requests']+=0x1;}[a0_0x2a3f22(0x1ec)](_0x2523df,_0x2dbc33,_0x592ae6){const _0x16e8e0=a0_0x2a3f22,_0x2f2a79=this[_0x16e8e0(0x19b)][_0x16e8e0(0x1f1)][_0x16e8e0(0x1a3)](_0x2523df),_0x2044c2=this[_0x16e8e0(0x19b)][_0x16e8e0(0x1c7)][_0x16e8e0(0x1a3)](_0x2dbc33),_0x4794e3=this[_0x16e8e0(0x19b)][_0x16e8e0(0x1b5)]['get'](_0x592ae6);_0x2f2a79[_0x16e8e0(0x1d4)]>this[_0x16e8e0(0x1ce)]['daily']&&this['sendBudgetAlert']('daily',_0x2f2a79[_0x16e8e0(0x1d4)],this[_0x16e8e0(0x1ce)]['daily']),_0x2044c2[_0x16e8e0(0x1d4)]>this['budgets']['weekly']&&this[_0x16e8e0(0x1e3)](_0x16e8e0(0x1c7),_0x2044c2['cost'],this[_0x16e8e0(0x1ce)]['weekly']),_0x4794e3[_0x16e8e0(0x1d4)]>this[_0x16e8e0(0x1ce)][_0x16e8e0(0x1b5)]&&this['sendBudgetAlert'](_0x16e8e0(0x1b5),_0x4794e3['cost'],this[_0x16e8e0(0x1ce)]['monthly']),this['checkThresholdAlerts'](_0x2f2a79,_0x2044c2,_0x4794e3);}['checkThresholdAlerts'](_0x78a7b,_0x10099e,_0x3832d7){const _0x16bb31=a0_0x2a3f22,_0x504728=this[_0x16bb31(0x1b6)][_0x16bb31(0x1a7)];this[_0x16bb31(0x1dd)]('daily',_0x78a7b['cost'],this['budgets'][_0x16bb31(0x1f1)],_0x504728),this[_0x16bb31(0x1dd)]('weekly',_0x10099e['cost'],this[_0x16bb31(0x1ce)]['weekly'],_0x504728),this['checkThreshold'](_0x16bb31(0x1b5),_0x3832d7[_0x16bb31(0x1d4)],this['budgets'][_0x16bb31(0x1b5)],_0x504728);}[a0_0x2a3f22(0x1dd)](_0x1ef13c,_0x4c8940,_0x51533c,_0x53a517){const _0xb53460=a0_0x2a3f22,_0x384260=_0x4c8940/_0x51533c*0x64;for(const _0x2d283f of _0x53a517){if(_0x384260>=_0x2d283f){const _0xc8e5d3=_0x1ef13c+'_'+_0x2d283f,_0x40525e=this[_0xb53460(0x1b6)][_0xb53460(0x1f0)]['get'](_0xc8e5d3),_0x509e6c=Date['now']();(!_0x40525e||_0x509e6c-_0x40525e>0x36ee80)&&(this[_0xb53460(0x1a8)](_0x1ef13c,_0x384260,_0x2d283f,_0x4c8940,_0x51533c),this['alerts']['lastAlertTimes'][_0xb53460(0x1c3)](_0xc8e5d3,_0x509e6c));break;}}}['sendBudgetAlert'](_0x574a0b,_0x57bb7f,_0x3871c3){const _0x4efafe=a0_0x2a3f22;this['logger']['warn'](_0x4efafe(0x1ae),{'period':_0x574a0b,'currentUsage':_0x57bb7f,'budgetLimit':_0x3871c3,'excess':_0x57bb7f-_0x3871c3}),typeof process!==_0x4efafe(0x19d)&&process[_0x4efafe(0x196)]&&process['emit'](_0x4efafe(0x1b3),{'type':'budget_exceeded','period':_0x574a0b,'currentUsage':_0x57bb7f,'budgetLimit':_0x3871c3,'excess':_0x57bb7f-_0x3871c3});}[a0_0x2a3f22(0x1a8)](_0x13a3a3,_0x3a30e3,_0x23b78a,_0x3d3c8b,_0x27d9b2){const _0x12c49c=a0_0x2a3f22;this['logger']['warn'](_0x12c49c(0x1b8),{'period':_0x13a3a3,'percentage':Math['round'](_0x3a30e3),'threshold':_0x23b78a,'usage':_0x3d3c8b,'budget':_0x27d9b2}),typeof process!==_0x12c49c(0x19d)&&process['emit']&&process[_0x12c49c(0x196)](_0x12c49c(0x1b3),{'type':_0x12c49c(0x1d3),'period':_0x13a3a3,'percentage':Math[_0x12c49c(0x1a1)](_0x3a30e3),'threshold':_0x23b78a,'usage':_0x3d3c8b,'budget':_0x27d9b2});}[a0_0x2a3f22(0x1ab)](_0x21a0dd){const _0xaa2d65=a0_0x2a3f22;return _0x21a0dd['toISOString']()[_0xaa2d65(0x18f)]('T')[0x0];}[a0_0x2a3f22(0x1bb)](_0x13b5ea){const _0x151182=a0_0x2a3f22,_0x40effa=_0x13b5ea['getFullYear'](),_0x2afde2=this[_0x151182(0x1ed)](_0x13b5ea);return _0x40effa+'-W'+_0x2afde2[_0x151182(0x1ea)]()[_0x151182(0x195)](0x2,'0');}['getMonthKey'](_0x24505a){const _0x652185=a0_0x2a3f22,_0x269cdb=_0x24505a['getFullYear'](),_0x33c78c=_0x24505a['getMonth']()+0x1;return _0x269cdb+'-'+_0x33c78c['toString']()[_0x652185(0x195)](0x2,'0');}['getWeekNumber'](_0x1d5b4a){const _0x44e0b7=a0_0x2a3f22,_0xa3ba6f=new Date(_0x1d5b4a[_0x44e0b7(0x1e8)](),0x0,0x1),_0xba38fd=(_0x1d5b4a-_0xa3ba6f)/0x5265c00;return Math['ceil']((_0xba38fd+_0xa3ba6f[_0x44e0b7(0x197)]()+0x1)/0x7);}['convertToCSV'](_0x2149ef){const _0x407fae=a0_0x2a3f22,_0x35498f=[];return _0x35498f[_0x407fae(0x199)](['Period',_0x407fae(0x1db),_0x407fae(0x1f3),_0x407fae(0x1bc),'Requests',_0x407fae(0x1c8),_0x407fae(0x18e)]),Object['entries'](_0x2149ef[_0x407fae(0x1f1)])[_0x407fae(0x1d7)](([_0x54b5b0,_0x18ab9c])=>{const _0x42621b=_0x407fae;_0x35498f[_0x42621b(0x199)](['Daily',_0x54b5b0,_0x18ab9c['cost'],_0x18ab9c['tokens'],_0x18ab9c['requests'],'','']),Object['entries'](_0x18ab9c[_0x42621b(0x1cf)]||{})['forEach'](([_0x537aa0,_0x2985f0])=>{const _0x2b9bdd=_0x42621b;_0x35498f[_0x2b9bdd(0x199)]([_0x2b9bdd(0x1eb),_0x54b5b0,_0x2985f0['cost'],_0x2985f0[_0x2b9bdd(0x18c)],_0x2985f0[_0x2b9bdd(0x1d6)],_0x537aa0,'']);});}),_0x35498f[_0x407fae(0x1cc)](_0x5d088f=>_0x5d088f['join'](','))[_0x407fae(0x1dc)]('\x0a');}[a0_0x2a3f22(0x1bd)](){const _0x5777b5=a0_0x2a3f22;try{this[_0x5777b5(0x1b2)][_0x5777b5(0x1e4)](_0x5777b5(0x1d8));}catch(_0x29ff07){this[_0x5777b5(0x1b2)]['error']('Failed\x20to\x20load\x20usage\x20data',{'error':_0x29ff07['message']});}}['saveUsageData'](){const _0x5d124e=a0_0x2a3f22;try{this[_0x5d124e(0x1b2)]['debug'](_0x5d124e(0x1b7));}catch(_0x445d7e){this['logger'][_0x5d124e(0x193)](_0x5d124e(0x1d0),{'error':_0x445d7e[_0x5d124e(0x1cd)]});}}['setupPeriodicSave'](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}function a0_0x1300(){const _0x46c609=['BwvZC2fNzq','yNvKz2v0CW','yNLbz2vUDa','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','y3n2','tu9oveHmwq','DgHYzxnOB2XKx3jLywnOzwq','y29ZDa','z2v0tw9KzwXvC2fNzq','CMvXDwvZDhm','zM9YrwfJAa','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','nZCZndm1qufdBw1e','otflt3jtDgO','rgf0zq','AM9PBG','y2HLy2TuAhjLC2HVBgq','mJaYmJi3ue9TzhDw','y29UzMLN','nJi2mhv2EurAsq','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','mti2owDfyxPeDq','C2vUzej1zgDLDefSzxj0','Aw5MBW','C2v0rgf0zq','nLLNtefxBq','zw50CMLLCW','z2v0rNvSBfLLyxi','Dg90ywXFDg9Rzw5Z','Dg9tDhjPBMC','rgfPBhK','y2HLy2TcDwrNzxrmAw1PDhm','z2v0v2vLA051BwjLCG','y3jLyxrLrw1WDhLvC2fNzq','Dw5ZAgLMDa','BgfZDefSzxj0vgLTzxm','zgfPBhK','Dg90ywW','q29ZDa','mJC1nJHhtMfMExu','Dg9Rzw5Z','z2v0tw9UDgHlzxK','tw9KzwW','C3bSAxq','z2v0vxnHz2u','ywDLBNrjza','z2v0uMvTywLUAw5NqNvKz2v0','zxjYB3i','ltaX','CgfKu3rHCNq','zw1PDa','z2v0rgf5','yNLnB2rLBa','ChvZAa','B3v0Chv0','DxnHz2u','C2v0qNvKz2v0CW','Dw5KzwzPBMvK','y29TCgXLDgLVBL90B2TLBNm','Aw5PDgLHBgL6zvvZywDLrw50CNK','z2v0qwDLBNrvC2fNzq','CM91BMq','mte1oda5BMz4Bw5K','z2v0','v0vfs0Xz','mtaWmtm2A0LdBMXh','Bwf4','DgHYzxnOB2XKCW','C2vUzfrOCMvZAg9SzefSzxj0','vxnHz2uGDhjHy2TLza','Dg9Rzw5ZqNLeyxK','z2v0rgf5s2v5','y2fSy3vSyxrLq29ZDa','ChjVBxb0x3rVA2vUCW','qNvKz2v0igXPBwL0igv4y2vLzgvK','y29ZDej5rgf5','z2v0vxnHz2vuCMvUzhm','Dg9Wtw9KzwXZ','Bg9Nz2vY','yNvKz2v0qwXLCNq','mtuXnda3nLHRwwjmvG','Bw9UDgHSEq','ywXLCNrZ','vxnHz2uGzgf0ysbZyxzLza','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','C2v0DxbqzxjPB2rPy1nHDMu','D2fYBG','z2v0v2vLA0TLEq','vg9Rzw5Z','Bg9HzfvZywDLrgf0yq','zgfPBhLbDMvYywDLCW','C29YDa','AgfZ','DxbKyxrLvxnHz2vfBNrYEq','Bw9KzwXjza','C2v0','z2v0rgf0zq','nhnOtNznvq','mJjcyuDhEM8','D2vLA2X5','qwDLBNq','zNjVBq','rMfPBgvKihrVihrYywnRihvZywDL','C2XPy2u','BwfW'];a0_0x1300=function(){return _0x46c609;};return a0_0x1300();}export default BudgetService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x2c59aa=a0_0x4f2b;(function(_0x537fad,_0x1da05a){const _0x569cb1=a0_0x4f2b,_0x1c8511=_0x537fad();while(!![]){try{const _0x484d32=-parseInt(_0x569cb1(0xb5))/0x1+parseInt(_0x569cb1(0xd8))/0x2+parseInt(_0x569cb1(0xe1))/0x3+parseInt(_0x569cb1(0xce))/0x4+-parseInt(_0x569cb1(0xcc))/0x5+-parseInt(_0x569cb1(0xb6))/0x6*(parseInt(_0x569cb1(0xc0))/0x7)+parseInt(_0x569cb1(0xdc))/0x8*(-parseInt(_0x569cb1(0xde))/0x9);if(_0x484d32===_0x1da05a)break;else _0x1c8511['push'](_0x1c8511['shift']());}catch(_0x12fbbd){_0x1c8511['push'](_0x1c8511['shift']());}}}(a0_0x6c06,0x53816));function a0_0x6c06(){const _0x314b41=['Aw5PDgLHBgL6zq','s0iIig1Vzgu9iMnVBNrLBNqIpGO','Bg9N','pc9HDhrHy2HLzc1MAwXLCZ4k','zM9YBwf0vgv4DezPBgu','zMXVB3i','mJyYnJe2nu9nzhnIzG','C2L6zq','mtCXoti3mM5Su0LXqW','yNvPBgreEw5HBwLJq29UDgv4Da','zM9YBwf0sw1Hz2vgAwXL','mcbcExrLCW','iIaVpG','zxn0Aw1HDgvKvg9Rzw5Z','CMvWBgfJzq','BwvZC2fNzq','yxr0ywnOBwvUDfnLCNzPy2u','Dg9gAxHLza','odaWmdiWD3bSEfLK','iIb0ExbLpsi','zxjYB3i','zM9YBwf0qNL0zxm','mJrpAKrNA2u','jMfTCdS','mtC0mtu5t3rRAMPY','pc9MAwXLlxjLzMvYzw5Jzxm+cG','z2v0qwn0AxzLqxr0ywnOBwvUDhm','mtG4mJCXmefWB0PACG','BgvUz3rO','zM9YBwf0q29UDgvUDezPBgu','Aw1Hz2u','rxjYB3iGzxn0Aw1HDgLUzYb0B3rHBcb0B2TLBNm','zMLSzxm','y29UDgvUDa','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','mZuZmJq1r0P2EvvJ','mtGXodzXAhjPtw4','Bg9Nz2vY','cIaGpc9MAwXLpG','iIbZAxPLpsi','Bw9Kzq','ica8zMLSzsbUyw1Lpsi','jMX0oW','zxnJyxbLwg1S','cJXHDhrHy2HLzc1MAwXLCZ4k','zM9YBwf0uMvMzxjLBMnLrMLSzq','ndeZD2LJuMTv','qNL0zxm','z2v0qxr0ywnOBwvUDfn1Bw1HCNK','zMLSDgvY','Dg9Rzw5fC3rPBwf0zq','iIbTB2rPzMLLzd0I'];a0_0x6c06=function(){return _0x314b41;};return a0_0x6c06();}function a0_0x4f2b(_0x69e938,_0xe708a3){_0x69e938=_0x69e938-0xae;const _0x6c063d=a0_0x6c06();let _0x4f2b4e=_0x6c063d[_0x69e938];if(a0_0x4f2b['huHiBx']===undefined){var _0x42c5ec=function(_0x3eb9ab){const _0x7bb3d6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x14c266='',_0x495754='';for(let _0x33bcff=0x0,_0x27e150,_0x444204,_0x11fb8f=0x0;_0x444204=_0x3eb9ab['charAt'](_0x11fb8f++);~_0x444204&&(_0x27e150=_0x33bcff%0x4?_0x27e150*0x40+_0x444204:_0x444204,_0x33bcff++%0x4)?_0x14c266+=String['fromCharCode'](0xff&_0x27e150>>(-0x2*_0x33bcff&0x6)):0x0){_0x444204=_0x7bb3d6['indexOf'](_0x444204);}for(let _0x2c5600=0x0,_0x43449=_0x14c266['length'];_0x2c5600<_0x43449;_0x2c5600++){_0x495754+='%'+('00'+_0x14c266['charCodeAt'](_0x2c5600)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x495754);};a0_0x4f2b['egcpSs']=_0x42c5ec,a0_0x4f2b['PheRZE']={},a0_0x4f2b['huHiBx']=!![];}const _0x5864eb=_0x6c063d[0x0],_0x275620=_0x69e938+_0x5864eb,_0x120947=a0_0x4f2b['PheRZE'][_0x275620];return!_0x120947?(_0x4f2b4e=a0_0x4f2b['egcpSs'](_0x4f2b4e),a0_0x4f2b['PheRZE'][_0x275620]=_0x4f2b4e):_0x4f2b4e=_0x120947,_0x4f2b4e;}import a0_0x14c266 from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x495754={},_0x33bcff=null){const _0xbf5d9=a0_0x4f2b;this['config']=_0x495754,this[_0xbf5d9(0xb7)]=_0x33bcff,this['attachmentService']=new a0_0x14c266(_0x495754,_0x33bcff);}async[a0_0x2c59aa(0xc6)](){const _0x2c9e68=a0_0x2c59aa;await this['attachmentService'][_0x2c9e68(0xc6)]();}async[a0_0x2c59aa(0xcf)](_0x27e150){const _0x5d7274=a0_0x2c59aa;try{const _0x444204=await this[_0x5d7274(0xd6)][_0x5d7274(0xe0)](_0x27e150);if(_0x444204[_0x5d7274(0xae)]===0x0)return'';const _0x11fb8f=_0x444204[_0x5d7274(0xc3)](_0x50cf30=>_0x50cf30[_0x5d7274(0xba)]===_0x5d7274(0xb3)),_0x2c5600=_0x444204[_0x5d7274(0xc3)](_0x4ffee1=>_0x4ffee1['mode']==='reference');let _0x43449='';if(_0x11fb8f[_0x5d7274(0xae)]>0x0){_0x43449+=_0x5d7274(0xbe);for(const _0x32a87b of _0x11fb8f){const _0x1c928f=await this[_0x5d7274(0xd6)]['getAttachmentContent'](_0x32a87b['fileId']);if(_0x1c928f){const _0x4b716c=this[_0x5d7274(0xaf)](_0x32a87b,_0x1c928f);_0x43449+=_0x4b716c+'\x0a';}}_0x43449+=_0x5d7274(0xc9);}if(_0x2c5600[_0x5d7274(0xae)]>0x0){_0x43449+='\x0a<file-references>\x0a';for(const _0x20e859 of _0x2c5600){const _0x4bacf6=this['formatReferenceFile'](_0x20e859);_0x43449+=_0x4bacf6+'\x0a';}_0x43449+=_0x5d7274(0xdf),_0x43449+=_0x5d7274(0xb4);}return _0x43449;}catch(_0x1f31ae){return this[_0x5d7274(0xb7)]?.[_0x5d7274(0xda)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x27e150,'error':_0x1f31ae[_0x5d7274(0xd5)]}),'';}}[a0_0x2c59aa(0xaf)](_0x3c9e9f,_0x2feb1c){const _0x2119d2=a0_0x2c59aa,{fileName:_0xf8cf24,fileType:_0x22acd3,size:_0x5d533f,contentType:_0x4eed8f}=_0x3c9e9f,_0x1ce749=(_0x5d533f/0x400)['toFixed'](0x2);if(_0x4eed8f==='text')return this[_0x2119d2(0xca)](_0x3c9e9f,_0x2feb1c);else{if(_0x4eed8f===_0x2119d2(0xb0))return this['formatImageFile'](_0x3c9e9f,_0x2feb1c);else{if(_0x4eed8f==='pdf')return this['formatPdfFile'](_0x3c9e9f,_0x2feb1c);}}return _0x2119d2(0xbb)+this[_0x2119d2(0xbd)](_0xf8cf24)+_0x2119d2(0xd9)+_0x22acd3+_0x2119d2(0xb9)+_0x1ce749+_0x2119d2(0xc7)+this[_0x2119d2(0xbd)](_0x2feb1c)+'\x0a\x20\x20</file>';}[a0_0x2c59aa(0xca)](_0x1a80e8,_0x34b847){const _0x25289f=a0_0x2c59aa,{fileName:_0x439082,fileType:_0x2c495b,size:_0xa52b78}=_0x1a80e8,_0x34ff48=(_0xa52b78/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x439082)+_0x25289f(0xd9)+_0x2c495b+_0x25289f(0xb9)+_0x34ff48+_0x25289f(0xc7)+this[_0x25289f(0xbd)](_0x34b847)+_0x25289f(0xb8);}[a0_0x2c59aa(0xd0)](_0x5cc356,_0x293bd2){const _0x16939e=a0_0x2c59aa,{fileName:_0x4d7a71,fileType:_0x227c6c,size:_0x994bb7}=_0x5cc356,_0x1ea9e8=(_0x994bb7/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x16939e(0xbd)](_0x4d7a71)+_0x16939e(0xd9)+_0x227c6c+_0x16939e(0xb9)+_0x1ea9e8+_0x16939e(0xc7)+_0x293bd2+_0x16939e(0xb8);}['formatPdfFile'](_0x2c1a3b,_0x5c2765){const _0xdd4f37=a0_0x2c59aa,{fileName:_0x304330,fileType:_0x4afc7a,size:_0x16c937}=_0x2c1a3b,_0x19d1f8=(_0x16c937/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x304330)+'\x22\x20type=\x22'+_0x4afc7a+'\x22\x20size=\x22'+_0x19d1f8+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0xdd4f37(0xbd)](_0x5c2765)+_0xdd4f37(0xb8);}[a0_0x2c59aa(0xbf)](_0x2eb1eb){const _0x31b5c3=a0_0x2c59aa,{fileName:_0x4b8a73,originalPath:_0x2f64a7,size:_0x435cd6,fileType:_0x3e1aa5,lastModified:_0x34cbea}=_0x2eb1eb,_0x32760d=this[_0x31b5c3(0xdb)](_0x435cd6),_0x26dc58=new Date(_0x34cbea)['toISOString']()['split']('T')[0x0];return _0x31b5c3(0xbb)+this[_0x31b5c3(0xbd)](_0x4b8a73)+'\x22\x20path=\x22'+this[_0x31b5c3(0xbd)](_0x2f64a7)+_0x31b5c3(0xb9)+_0x32760d+'\x22\x20type=\x22'+_0x3e1aa5+_0x31b5c3(0xc5)+_0x26dc58+_0x31b5c3(0xd2);}[a0_0x2c59aa(0xbd)](_0x11d961){const _0x3cda74=a0_0x2c59aa;if(!_0x11d961)return'';return _0x11d961['replace'](/&/g,_0x3cda74(0xdd))[_0x3cda74(0xd4)](/</g,_0x3cda74(0xbc))['replace'](/>/g,'>')['replace'](/"/g,'"')['replace'](/'/g,''');}[a0_0x2c59aa(0xdb)](_0x53c7e3){const _0x5f43e6=a0_0x2c59aa;if(_0x53c7e3===0x0)return _0x5f43e6(0xd1);const _0x4e2598=0x400,_0x1c249a=[_0x5f43e6(0xc1),'KB','MB','GB'],_0x19d107=Math[_0x5f43e6(0xcb)](Math[_0x5f43e6(0xc8)](_0x53c7e3)/Math[_0x5f43e6(0xc8)](_0x4e2598));return parseFloat((_0x53c7e3/Math['pow'](_0x4e2598,_0x19d107))[_0x5f43e6(0xd7)](0x2))+_0x1c249a[_0x19d107];}async['estimateTotalTokens'](_0x491b84){const _0x319f6f=a0_0x2c59aa;try{const _0x45555f=await this[_0x319f6f(0xd6)]['getActiveAttachments'](_0x491b84);let _0x7b9222=0x0;for(const _0x413eb2 of _0x45555f){_0x413eb2[_0x319f6f(0xba)]==='content'?_0x7b9222+=_0x413eb2[_0x319f6f(0xc4)]||0x0:_0x7b9222+=0x14;}return _0x7b9222;}catch(_0x2f917a){return this['logger']?.[_0x319f6f(0xda)](_0x319f6f(0xb1),{'agentId':_0x491b84,'error':_0x2f917a[_0x319f6f(0xd5)]}),0x0;}}async[a0_0x2c59aa(0xc2)](_0x3a7807){const _0x59e6d6=a0_0x2c59aa;try{const _0x558e57=await this[_0x59e6d6(0xd6)][_0x59e6d6(0xe0)](_0x3a7807),_0x5e4312={'totalActive':_0x558e57[_0x59e6d6(0xae)],'contentMode':_0x558e57[_0x59e6d6(0xc3)](_0x4212a8=>_0x4212a8[_0x59e6d6(0xba)]==='content')[_0x59e6d6(0xae)],'referenceMode':_0x558e57[_0x59e6d6(0xc3)](_0x85c3d7=>_0x85c3d7['mode']==='reference')['length'],'estimatedTokens':0x0,'files':[]};for(const _0xe3ba24 of _0x558e57){_0x5e4312[_0x59e6d6(0xd3)]+=_0xe3ba24[_0x59e6d6(0xc4)]||0x0,_0x5e4312[_0x59e6d6(0xb2)]['push']({'fileName':_0xe3ba24['fileName'],'mode':_0xe3ba24[_0x59e6d6(0xba)],'size':this['formatBytes'](_0xe3ba24[_0x59e6d6(0xcd)]),'tokens':_0xe3ba24['tokenEstimate']||0x0});}return _0x5e4312;}catch(_0x49af63){return this[_0x59e6d6(0xb7)]?.['error']('Error\x20getting\x20attachment\x20summary',{'agentId':_0x3a7807,'error':_0x49af63[_0x59e6d6(0xd5)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
|