@loxia-labs/loxia-autopilot-one 1.0.14 → 1.0.15
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-CR8edPA3.js +348 -0
- package/web-ui/build/static/index-uN7nOVvZ.css +1 -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
|
+
const a0_0x58e07c=a0_0x524b;function a0_0x1aa9(){const _0x2a2048=['uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','C3rHDhvZvgv4Da','Bw9KzwW','Aw5MBW','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','qu5usfjpueLdx09qvvm','ChjVBxb0','8j+wVo+4JYbjBwfNzsbbueKGCMvXDwvZDcbZDgf0zq','z2v0s2v5C0zVCLjLCxvLC3q','zgvIDwC','x3n1Bw1HCML6zu1LC3nHz2vZ','CxvHBgL0Eq','CgHP','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','C3rYAw5N','qu5usfjpueLd','x2nOzwnRtw9KzwXizwfSDgG','qKfex0DbvevxqvK','tM8GqvbjigTLEsbJB25MAwD1CMvK','Aw5JBhvKzxm','z2v0qwDLBNq','DhjHy2TvC2fNzq','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','t1bftKfj','y2LYy3vPDejYzwfRzxi','Aw1Nlq','C3r5Bgu','B3b0Aw9UCW','yw50AhjVCgLJ','zxjYB3iT','mZK5nZe0nKXRDgDTvq','BM93','mJy0ndmWB1HJB3fg','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','x2zVCM1HDfnPBMDSzu1LC3nHz2u','CgXHDgzVCM1qCM92AwrLza','C3rYAw5NAwz5','ue9tva','yNvKz2v0u2vYDMLJzq','y29UDgvUDa','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','qMvHCMvYia','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','x2zVCM1HDezVCKfUDgHYB3bPyW','x21HA2vbueLszxf1zxn0','x2DLDfzLBMrVCKzYB21nB2rLBa','mtaWBMjpshPM','zMfPBhvYzxm','yxbPs2v5','y3jLyxrLza','DgLTzxn0yw1W','Dg90ywXFDg9Rzw5Z','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','yxP1CMuTB3bLBMfPlwrHBgXLmW','ChjVDMLKzxi','C3bLzwq','y29Kzq','Bg9Nz2vY','revfufnfruTFuJe','Cg93','qu5usfjpueLdx0HbsuTv','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','uMf0zsbSAw1PDcbLEgnLzwrLza','ndjRB3LnAfa','uMv0CNLPBMCGAw4G','qvPvuKu','ic0G','su5urvjoquXFu0vsvKvsx0vsuK9s','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','ntiYtfHQCgHX','x21HA2vjBwfNzufqsvjLCxvLC3q','ChjLzMvYCMvKtw9KzwW','DxjS','mte2nti4mgLMtvzZtq','y3vZDg9TqxbPs2v5CW','C3vTBwfYEq','y2XHC3nPzNLfCNjVCG','Dw5ZAgLMDa','AgvHBhrOEq','Aw1Hz2vZ','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','CMfUzg9T','AxnpCgvU','sfruuca','q2LYy3vPDcbICMvHA2vYihjLC2v0ic0GC2vYDMLJzsbYzwnVDMvYzwq','C3LZDgvT','Dg9ju09tDhjPBMC','C3rHDhvZ','vw5RBM93BIbTB2rLBdOG','C3rHBMrHCMq','zMfZDa','yMfJA2vUza','BwvZC2fNzq','zxjYB3jiyw5KBgvY','BwvZC2fNzxm','BgvUz3rO','zxjYB3i','DxnHz2u','ndq3mdiWnwzZB2zvyW','nZq0ntq5nKDxtvjYCG','Ahr0Chm6lY9HCgKUBg94AweUywK','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','BgfZDezHAwX1CMvuAw1L','Bwf4x3rVA2vUCW','sw52ywXPzcbTB2rLBdOG','revfufnfruS','DxnLCG','zgf0yq','quKGC2vYDMLJzsbLCNjVCJOG','DMvUzg9YqxbPs2v5','C3rHy2S','AgvHBhrOlwnOzwnR','x2zVCM1HDezVCKf6DxjL','yMfZzvvYBa','u3LZDgvToIa','D2fYBG','CMv0CNLbDhrLBxb0CW','x3jLC2v0q2LYy3vPDejYzwfRzxi','ANnVBG','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq','C2v0qxbPs2v5twfUywDLCG','C3rVCa','ywDLBNrjza','x3rYDw5JyxrLtwvZC2fNzq','ywDLBNrqB29S','Bw9KzwXtCgvJCW','x2vZDgLTyxrLvg9Rzw5Z','zgvLChnLzwS','mZe3n3nlvvHqtG','yxbWBgLJyxrPB24VANnVBG','CM9Szq','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','z3b0','AxnbCNjHEq','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','AgfUzgXLshr0CevYCM9Y','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','C3rYzwfT','C3vIC3rY','yxbPs2v5twfUywDLCG','y29UzMLN','C2L6zq','DgLTzw91Da','tK9ux0zpvu5e','yxnZAxn0yw50','yJy0x2PZB24','C2vZC2LVBKLK','BwfW','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','CMf0zuXPBwL0zxjZ','DgHYzxnOB2XK','ueHj','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','x3jLy29YzezHAwX1CMu','y2HVAwnLCW','x2zVCM1HDezVCK9Wzw5bsq','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','odi0odeYEKXquNf1'];a0_0x1aa9=function(){return _0x2a2048;};return a0_0x1aa9();}(function(_0x2a3bdc,_0x159a24){const _0x4af759=a0_0x524b,_0x1ba77b=_0x2a3bdc();while(!![]){try{const _0x4844cf=-parseInt(_0x4af759(0xd8))/0x1*(parseInt(_0x4af759(0x125))/0x2)+parseInt(_0x4af759(0x114))/0x3+-parseInt(_0x4af759(0xf5))/0x4+parseInt(_0x4af759(0x15a))/0x5+parseInt(_0x4af759(0x15b))/0x6+parseInt(_0x4af759(0x136))/0x7*(-parseInt(_0x4af759(0x141))/0x8)+-parseInt(_0x4af759(0x13d))/0x9*(parseInt(_0x4af759(0x116))/0xa);if(_0x4844cf===_0x159a24)break;else _0x1ba77b['push'](_0x1ba77b['shift']());}catch(_0xafc03e){_0x1ba77b['push'](_0x1ba77b['shift']());}}}(a0_0x1aa9,0xa9968));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x524b(_0x540b8f,_0x3b3d12){_0x540b8f=_0x540b8f-0xc6;const _0x1aa958=a0_0x1aa9();let _0x524b4a=_0x1aa958[_0x540b8f];if(a0_0x524b['rEgDfb']===undefined){var _0x4936da=function(_0x525d7f){const _0x506d73='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3101f8='',_0x56d469='';for(let _0x559853=0x0,_0x31b886,_0x4d5949,_0x41d219=0x0;_0x4d5949=_0x525d7f['charAt'](_0x41d219++);~_0x4d5949&&(_0x31b886=_0x559853%0x4?_0x31b886*0x40+_0x4d5949:_0x4d5949,_0x559853++%0x4)?_0x3101f8+=String['fromCharCode'](0xff&_0x31b886>>(-0x2*_0x559853&0x6)):0x0){_0x4d5949=_0x506d73['indexOf'](_0x4d5949);}for(let _0x5c55bf=0x0,_0x113139=_0x3101f8['length'];_0x5c55bf<_0x113139;_0x5c55bf++){_0x56d469+='%'+('00'+_0x3101f8['charCodeAt'](_0x5c55bf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x56d469);};a0_0x524b['QnKeyS']=_0x4936da,a0_0x524b['eDqYPy']={},a0_0x524b['rEgDfb']=!![];}const _0x3aa58b=_0x1aa958[0x0],_0x5290c6=_0x540b8f+_0x3aa58b,_0x2c8340=a0_0x524b['eDqYPy'][_0x5290c6];return!_0x2c8340?(_0x524b4a=a0_0x524b['QnKeyS'](_0x524b4a),a0_0x524b['eDqYPy'][_0x5290c6]=_0x524b4a):_0x524b4a=_0x2c8340,_0x524b4a;}class AIService{constructor(_0x3101f8,_0x56d469,_0x559853,_0x31b886){const _0x1df78a=a0_0x524b;this[_0x1df78a(0xe4)]=_0x3101f8,this['logger']=_0x56d469,this['budgetService']=_0x559853,this[_0x1df78a(0x155)]=_0x31b886,this[_0x1df78a(0xc9)]=_0x3101f8[_0x1df78a(0x153)]?.[_0x1df78a(0xc9)]||_0x1df78a(0x15c),this['timeout']=_0x3101f8[_0x1df78a(0x153)]?.[_0x1df78a(0xe6)]||0xea60,this['retryAttempts']=_0x3101f8['backend']?.['retryAttempts']||0x3,this[_0x1df78a(0xed)]=new Map(),this['requestQueue']=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0x1df78a(0x120)](),this['conversationManagers']=new Map(),this['apiKeyManager']=null,this[_0x1df78a(0xd4)]=null;}async['sendMessage'](_0x4d5949,_0x41d219,_0x5c55bf={}){const _0x477f6f=a0_0x524b,_0x113139='req-'+Date[_0x477f6f(0x115)]()+'-'+Math[_0x477f6f(0x149)]()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this['_checkRateLimit'](_0x4d5949);const _0x288356=this['_formatMessagesForModel'](_0x41d219,_0x4d5949,_0x5c55bf),_0x1a07ee={'model':_0x4d5949,'messages':_0x288356,'options':{'max_tokens':this[_0x477f6f(0xd5)][_0x4d5949]?.['maxTokens']||0xfa0,'temperature':_0x5c55bf['temperature']||0.7,'stream':_0x5c55bf[_0x477f6f(0xe1)]||![]},'metadata':{'requestId':_0x113139,'agentId':_0x5c55bf['agentId'],'timestamp':new Date()[_0x477f6f(0x14e)]()}};_0x5c55bf['systemPrompt']&&(_0x1a07ee[_0x477f6f(0x14d)]=_0x5c55bf['systemPrompt']);this[_0x477f6f(0x130)][_0x477f6f(0xf9)](_0x477f6f(0x10c)+_0x4d5949,{'requestId':_0x113139,'agentId':_0x5c55bf['agentId'],'messageCount':Array[_0x477f6f(0xdd)](_0x41d219)?_0x41d219['length']:0x1,'maxTokens':_0x1a07ee[_0x477f6f(0x15f)]});const _0x309ba7=await this['_makeAPIRequest']('/chat/completions',_0x1a07ee,_0x113139,{..._0x5c55bf,'sessionId':_0x5c55bf[_0x477f6f(0xea)],'platformProvided':_0x5c55bf['platformProvided']||![]});return _0x309ba7['usage']&&await this[_0x477f6f(0x10b)](_0x5c55bf['agentId'],_0x4d5949,{'prompt_tokens':_0x309ba7['usage']['prompt_tokens']||0x0,'completion_tokens':_0x309ba7['usage']['completion_tokens']||0x0,'total_tokens':_0x309ba7[_0x477f6f(0x159)][_0x477f6f(0x12a)]||0x0}),this[_0x477f6f(0xcd)](),{'content':_0x309ba7[_0x477f6f(0xf2)][0x0]?.['message']?.['content']||'','model':_0x309ba7[_0x477f6f(0xf8)],'tokenUsage':_0x309ba7['usage'],'requestId':_0x113139,'finishReason':_0x309ba7['choices'][0x0]?.['finish_reason']};}catch(_0x2984ce){this['_recordFailure'](),this['logger']['error'](_0x477f6f(0x13c)+_0x2984ce['message'],{'requestId':_0x113139,'model':_0x4d5949,'agentId':_0x5c55bf['agentId'],'error':_0x2984ce[_0x477f6f(0xc6)]}),await this[_0x477f6f(0xdf)](_0x2984ce,{'requestId':_0x113139,'model':_0x4d5949,'agentId':_0x5c55bf['agentId']});throw _0x2984ce;}}async['routeModel'](_0x80dc2b,_0x1b3937={}){const _0x126c28=a0_0x524b;try{const _0x315852=MODEL_ROUTING[_0x80dc2b['toUpperCase']()]||MODEL_ROUTING['FALLBACK'],_0x36cd01=[];for(const _0x4329cf of _0x315852){const _0xcf69f9=await this[_0x126c28(0x106)](_0x4329cf);_0xcf69f9&&_0x36cd01['push'](_0x4329cf);}if(_0x36cd01['length']===0x0)return this['logger']['warn'](_0x126c28(0xde)+_0x80dc2b+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x5856a5=_0x36cd01[0x0];if(_0x1b3937['preferredModel']&&_0x36cd01['includes'](_0x1b3937['preferredModel']))_0x5856a5=_0x1b3937[_0x126c28(0x13f)];else{if(_0x1b3937['complexity']==='high'&&_0x36cd01[_0x126c28(0x109)](MODELS[_0x126c28(0xfb)]))_0x5856a5=MODELS['ANTHROPIC_OPUS'];else _0x1b3937[_0x126c28(0x12e)]===_0x126c28(0x152)&&_0x36cd01[_0x126c28(0x109)](MODELS[_0x126c28(0x133)])&&(_0x5856a5=MODELS[_0x126c28(0x133)]);}return this['logger']['info'](_0x126c28(0xf0)+_0x80dc2b,{'selectedModel':_0x5856a5,'availableModels':_0x36cd01['length'],'context':_0x1b3937}),_0x5856a5;}catch(_0x541b3e){return this['logger']['error']('Model\x20routing\x20failed:\x20'+_0x541b3e['message'],{'task':_0x80dc2b,'context':_0x1b3937}),MODEL_ROUTING['FALLBACK'][0x0];}}async['compactizeConversation'](_0x5b8049,_0x5d4920){const _0x1b803c=a0_0x524b,_0x13ec4e=this['modelSpecs'][_0x5d4920];if(!_0x13ec4e)throw new Error(_0x1b803c(0x150)+_0x5d4920);const _0x983b51=_0x13ec4e['contextWindow']*0.8;let _0x1e844d=0x0;const _0x30a591=[],_0x3beecd=await Promise['all'](_0x5b8049[_0x1b803c(0xeb)](async _0x7b8ce5=>({..._0x7b8ce5,'estimatedTokens':await this[_0x1b803c(0xd6)](_0x7b8ce5[_0x1b803c(0x11d)],_0x5d4920)}))),_0x4f849b=[..._0x3beecd]['reverse']();for(const _0x355c43 of _0x4f849b){if(_0x1e844d+_0x355c43['estimatedTokens']>_0x983b51){if(_0x30a591['length']===0x0){const _0x4c1b4d=await this[_0x1b803c(0xd3)](_0x355c43['content'],_0x983b51);_0x30a591[_0x1b803c(0x145)]({..._0x355c43,'content':_0x4c1b4d,'estimatedTokens':_0x983b51});}break;}_0x30a591[_0x1b803c(0x145)](_0x355c43),_0x1e844d+=_0x355c43['estimatedTokens'];}const _0xaffa53=_0x3beecd['slice'](0x0,-_0x30a591[_0x1b803c(0x157)]);if(_0xaffa53[_0x1b803c(0x157)]>0x0){const _0x160a6a=await this[_0x1b803c(0x100)](_0xaffa53,_0x5d4920);_0x30a591['unshift']({'role':_0x1b803c(0x14d),'content':'Previous\x20conversation\x20summary:\x20'+_0x160a6a,'timestamp':_0xaffa53[0x0][_0x1b803c(0x129)],'type':_0x1b803c(0x143),'estimatedTokens':await this[_0x1b803c(0xd6)](_0x160a6a,_0x5d4920)});}return this['logger'][_0x1b803c(0xf9)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x5d4920,{'originalMessages':_0x5b8049['length'],'compactizedMessages':_0x30a591['length'],'estimatedTokens':_0x1e844d,'maxTokens':_0x983b51}),_0x30a591;}async['trackUsage'](_0x78ab37,_0x19eae6,_0x276f84,_0x5f5e7c){const _0x31ba7a=a0_0x524b;try{this[_0x31ba7a(0x11c)]&&this['budgetService']['trackUsage'](_0x78ab37,_0x19eae6,_0x276f84);}catch(_0x4f6922){this[_0x31ba7a(0x130)]['error']('Usage\x20tracking\x20failed:\x20'+_0x4f6922[_0x31ba7a(0x154)]);}}async['handleHttpError'](_0xb20ad5,_0x19cec2){const _0x4712aa=a0_0x524b,_0x5d696c=this[_0x4712aa(0x155)]?.[_0x4712aa(0x144)]?.(_0xb20ad5,_0x19cec2);switch(_0xb20ad5[_0x4712aa(0x14f)]||_0xb20ad5[_0x4712aa(0x12f)]){case HTTP_STATUS['BAD_REQUEST']:this['logger'][_0x4712aa(0x158)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x19cec2,'error':_0xb20ad5['message']});throw new Error('Invalid\x20request:\x20'+_0xb20ad5[_0x4712aa(0x154)]);case HTTP_STATUS['UNAUTHORIZED']:this['logger'][_0x4712aa(0x158)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x19cec2});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this['logger']['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x19cec2});throw new Error(_0x4712aa(0xec));case HTTP_STATUS[_0x4712aa(0xe7)]:this['logger'][_0x4712aa(0x158)]('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x19cec2});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS['TOO_MANY_REQUESTS']:this[_0x4712aa(0x130)]['warn'](_0x4712aa(0x135),{'context':_0x19cec2}),await this['_handleRateLimit'](_0x19cec2);throw new Error(_0x4712aa(0xf6));case HTTP_STATUS[_0x4712aa(0x13a)]:case HTTP_STATUS[_0x4712aa(0x107)]:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS['GATEWAY_TIMEOUT']:this[_0x4712aa(0x130)][_0x4712aa(0x158)](_0x4712aa(0x11e),{'context':_0x19cec2,'status':_0xb20ad5['status']}),await this[_0x4712aa(0x12b)](_0x19cec2);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0x4712aa(0x130)]['error']('Unknown\x20AI\x20service\x20error',{'context':_0x19cec2,'error':_0xb20ad5['message']});throw new Error(_0x4712aa(0x164)+_0xb20ad5[_0x4712aa(0x154)]);}}[a0_0x58e07c(0xd0)](_0x2779e2){const _0xd30e29=a0_0x58e07c;this['apiKeyManager']=_0x2779e2,this[_0xd30e29(0x130)]?.['info'](_0xd30e29(0xcf),{'hasManager':!!_0x2779e2});}['setAgentPool'](_0x3f66df){const _0x30af80=a0_0x58e07c;this['agentPool']=_0x3f66df,this[_0x30af80(0x130)]?.[_0x30af80(0xf9)]('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x3f66df});}async['generateImage'](_0x46560a,_0x25f103={}){const _0x2fa17b=a0_0x58e07c,_0x4a261d=_0x2fa17b(0x10f)+Date['now']()+'-'+Math[_0x2fa17b(0x149)]()['toString'](0x24)[_0x2fa17b(0xe2)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x46560a||typeof _0x46560a!==_0x2fa17b(0x104)||_0x46560a['trim']()[_0x2fa17b(0x157)]===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x4b0f0e=_0x25f103['model']||'flux-1.1-pro',_0x473fe3=_0x25f103[_0x2fa17b(0xe5)]||'1024x1024',_0x3a3b7a=_0x25f103[_0x2fa17b(0x101)]||_0x2fa17b(0x151),_0x43e10b=_0x25f103['responseFormat']||_0x2fa17b(0x140);this[_0x2fa17b(0x130)][_0x2fa17b(0xf9)]('Generating\x20image\x20with\x20model:\x20'+_0x4b0f0e,{'requestId':_0x4a261d,'model':_0x4b0f0e,'size':_0x473fe3,'quality':_0x3a3b7a,'promptLength':_0x46560a['length']});const _0x2ac027={'prompt':_0x46560a,'model':_0x4b0f0e,'size':_0x473fe3,'quality':_0x3a3b7a,'response_format':_0x43e10b,'n':0x1,'metadata':{'requestId':_0x4a261d,'timestamp':new Date()[_0x2fa17b(0x14e)]()}},_0x44caa8=await this[_0x2fa17b(0x13e)](_0x2ac027,_0x4a261d,{'sessionId':_0x25f103['sessionId'],'platformProvided':_0x25f103[_0x2fa17b(0x119)]||![]});return this['_resetCircuitBreaker'](),{'url':_0x44caa8['data']?.[0x0]?.['url']||null,'b64_json':_0x44caa8[_0x2fa17b(0x163)]?.[0x0]?.[_0x2fa17b(0xe9)]||null,'model':_0x44caa8['model']||_0x4b0f0e,'requestId':_0x4a261d,'revisedPrompt':_0x44caa8[_0x2fa17b(0x163)]?.[0x0]?.['revised_prompt']||_0x46560a};}catch(_0x292984){this[_0x2fa17b(0xf1)](),this['logger']['error']('Image\x20generation\x20failed:\x20'+_0x292984['message'],{'requestId':_0x4a261d,'model':_0x25f103['model'],'error':_0x292984[_0x2fa17b(0xc6)]});throw _0x292984;}}async['checkServiceHealth'](){const _0x4d44db=a0_0x58e07c;try{const _0xbbc62d=await this[_0x4d44db(0x123)]('/health',{},_0x4d44db(0xc7));return _0xbbc62d[_0x4d44db(0x14f)]===_0x4d44db(0x146);}catch(_0x42094d){return![];}}async['switchAgentModel'](_0x4fcf6e,_0x553903){const _0x2b9b53=a0_0x58e07c;try{if(!this['_isValidModel'](_0x553903))throw new Error(_0x2b9b53(0x160)+_0x553903);let _0x2959a5=this['conversationManagers']['get'](_0x4fcf6e);!_0x2959a5&&(_0x2959a5=new ConversationManager(_0x4fcf6e,this['logger']),this['conversationManagers']['set'](_0x4fcf6e,_0x2959a5));const _0x32585f=await _0x2959a5['switchModel'](_0x553903),_0x47b347=await this[_0x2b9b53(0xd4)]?.[_0x2b9b53(0x10a)](_0x4fcf6e);return _0x47b347&&(_0x47b347['currentModel']=_0x553903,await this['agentPool']['persistAgentState'](_0x4fcf6e)),this['logger'][_0x2b9b53(0xf9)](_0x2b9b53(0x117)+_0x4fcf6e,{'newModel':_0x553903,'messageCount':_0x32585f[_0x2b9b53(0x156)]['length']}),{'success':!![],'agentId':_0x4fcf6e,'newModel':_0x553903,'conversation':_0x32585f};}catch(_0x49095b){this[_0x2b9b53(0x130)][_0x2b9b53(0x158)]('Model\x20switch\x20failed:\x20'+_0x49095b[_0x2b9b53(0x154)],{'agentId':_0x4fcf6e,'newModel':_0x553903});throw _0x49095b;}}[a0_0x58e07c(0x120)](){const _0x4e4a5f=a0_0x58e07c,_0x42e6fd={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x4e4a5f(0xfb)]]:{'provider':MODEL_PROVIDERS[_0x4e4a5f(0x105)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS[_0x4e4a5f(0x105)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0x4e4a5f(0x10d)],'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[_0x4e4a5f(0x10d)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x4e4a5f(0x10d)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x4e4a5f(0x131)]]:{'provider':MODEL_PROVIDERS[_0x4e4a5f(0x161)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS[_0x4e4a5f(0xef)],'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':_0x4e4a5f(0x138),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':'AZURE','contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x42e6fd;}['_formatMessagesForModel'](_0x71007b,_0x34fef1,_0x280e1b){const _0x4da3e8=a0_0x58e07c,_0x581c43=this['modelSpecs'][_0x34fef1]||{'provider':'AZURE'};let _0x23c971;typeof _0x71007b===_0x4da3e8(0x104)?_0x23c971=[{'role':_0x4da3e8(0x162),'content':_0x71007b}]:_0x23c971=_0x71007b[_0x4da3e8(0xeb)](_0xa380b0=>this['_formatSingleMessage'](_0xa380b0,_0x34fef1));switch(_0x581c43[_0x4da3e8(0x12d)]){case MODEL_PROVIDERS['ANTHROPIC']:return this[_0x4da3e8(0x122)](_0x23c971);case MODEL_PROVIDERS['OPENAI']:return this[_0x4da3e8(0xf3)](_0x23c971);case MODEL_PROVIDERS['AZURE']:return this[_0x4da3e8(0xc8)](_0x23c971);default:return _0x23c971;}}[a0_0x58e07c(0x118)](_0x3d34a0,_0x2346fa){const _0x19056b=a0_0x58e07c;return{'role':_0x3d34a0[_0x19056b(0xda)]||'user','content':_0x3d34a0[_0x19056b(0x11d)],'timestamp':_0x3d34a0[_0x19056b(0x129)]};}['_formatForAnthropic'](_0x2db566){return _0x2db566['map'](_0x5be645=>{const _0x15b70e=a0_0x524b;if(_0x5be645[_0x15b70e(0xda)]===_0x15b70e(0x14d))return{'role':_0x15b70e(0x162),'content':_0x15b70e(0xca)+_0x5be645['content']};return _0x5be645;});}[a0_0x58e07c(0xf3)](_0x5f3215){return _0x5f3215;}['_formatForAzure'](_0x42c5cd){const _0x35f388=a0_0x58e07c;return _0x42c5cd[_0x35f388(0xeb)](_0x59b587=>({..._0x59b587,'content':typeof _0x59b587['content']===_0x35f388(0x104)?_0x59b587['content']:JSON['stringify'](_0x59b587['content'])}));}['_isValidModel'](_0x2a53e5){const _0x218ee8=a0_0x58e07c;this[_0x218ee8(0x130)][_0x218ee8(0xff)]('Validating\x20model',{'model':_0x2a53e5,'modelType':typeof _0x2a53e5});if(this['modelSpecs'][_0x2a53e5]!==undefined)return!![];return this['logger']['warn']('Model\x20validation\x20failed',{'model':_0x2a53e5,'availableModels':Object['keys'](this['modelSpecs'])}),![];}async['_checkModelHealth'](_0x34e6bb){return!![];}async[a0_0x58e07c(0xd6)](_0x5d45dc,_0x286f9c){const _0x5437e3=a0_0x58e07c;return Math['ceil'](_0x5d45dc[_0x5437e3(0x157)]/0x4);}async[a0_0x58e07c(0xd3)](_0x30d706,_0x4d86ad){const _0x4aa58f=a0_0x58e07c,_0x2b8566=_0x4d86ad*0x4;if(_0x30d706['length']<=_0x2b8566)return _0x30d706;return _0x30d706['substring'](0x0,_0x2b8566-0x14)+_0x4aa58f(0x13b);}async['_summarizeMessages'](_0x37b455,_0x302980){const _0x1df728=a0_0x58e07c,_0x22f311=_0x37b455[_0x1df728(0xeb)](_0x350f40=>_0x350f40[_0x1df728(0xda)]+':\x20'+_0x350f40[_0x1df728(0x11d)])['join']('\x0a'),_0x8d4029=0x1f4;if(_0x22f311['length']<=_0x8d4029)return _0x22f311;return _0x22f311['substring'](0x0,_0x8d4029)+'...\x20[conversation\x20summary\x20truncated]';}async[a0_0x58e07c(0x123)](_0x23be5d,_0x37919d,_0x596390,_0x1941ac={}){const _0x273bf8=a0_0x58e07c,_0xacdf81='https://autopilot-api.azurewebsites.net/llm/chat';let _0x434462,_0x48988d=null,_0x34a639=null;this[_0x273bf8(0x130)]?.['info'](_0x273bf8(0x148),{'hasApiKeyManager':!!this[_0x273bf8(0xe3)],'sessionId':_0x1941ac[_0x273bf8(0xea)],'hasSessionId':!!_0x1941ac[_0x273bf8(0xea)],'optionsKeys':Object['keys'](_0x1941ac),'model':_0x37919d['model']});if(this[_0x273bf8(0xe3)]&&_0x1941ac['sessionId']){const _0x2e92b2=this[_0x273bf8(0xe3)][_0x273bf8(0xfe)](_0x1941ac['sessionId'],{'platformProvided':_0x1941ac[_0x273bf8(0x119)]||![],'vendor':this[_0x273bf8(0x124)](_0x37919d[_0x273bf8(0xf8)])});_0x48988d=_0x2e92b2['loxiaApiKey'],_0x34a639=_0x2e92b2[_0x273bf8(0x165)],this['logger']?.[_0x273bf8(0xff)]('Retrieved API keys from session manager',{'sessionId':_0x1941ac['sessionId'],'hasLoxiaKey':!!_0x48988d,'hasVendorKey':!!_0x34a639,'vendor':this['_getVendorFromModel'](_0x37919d[_0x273bf8(0xf8)])});}!_0x48988d&&_0x1941ac[_0x273bf8(0x127)]&&(_0x48988d=_0x1941ac[_0x273bf8(0x127)]);!_0x48988d&&this[_0x273bf8(0xe4)]['apiKey']&&(_0x48988d=this[_0x273bf8(0xe4)]['apiKey']);if(!_0x48988d)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x16a943=_0x37919d[_0x273bf8(0xf8)],_0x478eb5={'conversationId':_0x596390,'message':_0x37919d[_0x273bf8(0x156)][_0x37919d['messages']['length']-0x1]?.['content']||'','messages':_0x37919d['messages'],'model':_0x16a943,'requestId':_0x596390,'options':_0x37919d[_0x273bf8(0x111)]||{},'platformProvided':_0x1941ac['platformProvided']||![]};_0x37919d[_0x273bf8(0x14d)]&&(_0x478eb5['systemPrompt']=_0x37919d['system']);_0x1941ac[_0x273bf8(0x119)]?_0x478eb5[_0x273bf8(0x127)]=_0x48988d:(_0x34a639&&(_0x478eb5[_0x273bf8(0x165)]=_0x34a639),_0x1941ac['customApiKeys']&&(_0x478eb5[_0x273bf8(0x142)]=_0x1941ac[_0x273bf8(0x142)]),_0x478eb5[_0x273bf8(0x127)]=_0x48988d);for(let _0x2e97bb=0x1;_0x2e97bb<=this[_0x273bf8(0xcc)];_0x2e97bb++){try{this[_0x273bf8(0x130)][_0x273bf8(0xf9)]('Making\x20request\x20to\x20Azure\x20backend',{'url':_0xacdf81,'model':_0x37919d['model'],'requestId':_0x596390,'attempt':_0x2e97bb,'hasApiKey':!!_0x48988d});const _0xa07066=await fetch(_0xacdf81,{'method':_0x273bf8(0x11b),'headers':{'Content-Type':'application/json','Authorization':_0x273bf8(0x11f)+_0x48988d,'X-Request-ID':_0x596390},'body':JSON['stringify'](_0x478eb5),'timeout':this['timeout']});if(!_0xa07066['ok']){const _0x33c69e=await _0xa07066['text'](),_0x25feea=new Error('HTTP\x20'+_0xa07066[_0x273bf8(0x14f)]+':\x20'+_0xa07066[_0x273bf8(0xf7)]+(_0x33c69e?'\x20-\x20'+_0x33c69e:''));_0x25feea[_0x273bf8(0x14f)]=_0xa07066[_0x273bf8(0x14f)];throw _0x25feea;}const _0x3883b2=await _0xa07066[_0x273bf8(0xce)]();return{'choices':[{'message':{'content':_0x3883b2[_0x273bf8(0x11d)]||'','role':_0x273bf8(0xe8)},'finish_reason':_0x3883b2['finishReason']||_0x273bf8(0xd1)}],'usage':_0x3883b2[_0x273bf8(0x159)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x3883b2['model']||_0x37919d[_0x273bf8(0xf8)],'id':_0x3883b2['requestId']||_0x596390};}catch(_0x4f0d05){_0x434462=_0x4f0d05,this['logger'][_0x273bf8(0xcb)](_0x273bf8(0xf4),{'attempt':_0x2e97bb,'requestId':_0x596390,'error':_0x4f0d05['message'],'status':_0x4f0d05[_0x273bf8(0x14f)]});if(_0x2e97bb<this[_0x273bf8(0xcc)]){const _0x3d5240=Math[_0x273bf8(0x132)](0x2,_0x2e97bb)*0x3e8;this[_0x273bf8(0x130)]['warn'](_0x273bf8(0x137)+_0x3d5240+'ms',{'attempt':_0x2e97bb,'requestId':_0x596390}),await new Promise(_0x3bae16=>setTimeout(_0x3bae16,_0x3d5240));}}}this[_0x273bf8(0x130)][_0x273bf8(0x158)]('All\x20attempts\x20to\x20reach\x20backend\x20failed,\x20using\x20mock\x20response',{'requestId':_0x596390,'error':_0x434462['message']});const _0x7825c5=_0x434462[_0x273bf8(0x154)]&&_0x434462['message'][_0x273bf8(0x109)](_0x273bf8(0x108));if(_0x7825c5)throw new Error(_0x273bf8(0xe0)+_0x434462[_0x273bf8(0x154)]);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x434462['message'],'role':_0x273bf8(0xe8)},'finish_reason':_0x273bf8(0xd1)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x37919d['model'],'id':_0x273bf8(0x113)+_0x596390,'error':_0x434462[_0x273bf8(0x154)]};}async['_makeImageAPIRequest'](_0x23794c,_0x2206c1,_0x422194={}){const _0x4d8435=a0_0x58e07c,_0x58d14b=_0x4d8435(0x134);let _0x599303,_0x14529b=null,_0x16bbf8=null;this[_0x4d8435(0x130)]?.[_0x4d8435(0xf9)](_0x4d8435(0xfd),{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x422194['sessionId'],'hasSessionId':!!_0x422194['sessionId'],'model':_0x23794c[_0x4d8435(0xf8)]});if(this[_0x4d8435(0xe3)]&&_0x422194[_0x4d8435(0xea)]){const _0x189b12=this['apiKeyManager']['getKeysForRequest'](_0x422194['sessionId'],{'platformProvided':_0x422194['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0x23794c[_0x4d8435(0xf8)])});_0x14529b=_0x189b12['loxiaApiKey'],_0x16bbf8=_0x189b12['vendorApiKey'],this[_0x4d8435(0x130)]?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x422194['sessionId'],'hasLoxiaKey':!!_0x14529b,'hasVendorKey':!!_0x16bbf8});}!_0x14529b&&_0x422194[_0x4d8435(0x127)]&&(_0x14529b=_0x422194['apiKey']);!_0x14529b&&this['config'][_0x4d8435(0x127)]&&(_0x14529b=this[_0x4d8435(0xe4)]['apiKey']);if(!_0x14529b)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x537ee8={'prompt':_0x23794c[_0x4d8435(0xfc)],'model':_0x23794c[_0x4d8435(0xf8)]||_0x4d8435(0x12c),'size':_0x23794c['size'],'quality':_0x23794c[_0x4d8435(0x101)],'style':_0x23794c[_0x4d8435(0x110)]||'vivid','n':_0x23794c['n']||0x1,'requestId':_0x2206c1};for(let _0x401261=0x1;_0x401261<=this['retryAttempts'];_0x401261++){try{this[_0x4d8435(0x130)][_0x4d8435(0xf9)]('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0x58d14b,'model':_0x23794c['model'],'requestId':_0x2206c1,'attempt':_0x401261,'hasApiKey':!!_0x14529b});const _0x405333=await fetch(_0x58d14b,{'method':'POST','headers':{'Content-Type':_0x4d8435(0xd9),'Authorization':'Bearer\x20'+_0x14529b,'X-Request-ID':_0x2206c1},'body':JSON[_0x4d8435(0x11a)](_0x537ee8),'timeout':this[_0x4d8435(0xe6)]*0x2});if(!_0x405333['ok']){const _0x499801=await _0x405333['text'](),_0x2b54d0=new Error(_0x4d8435(0x14b)+_0x405333['status']+':\x20'+_0x405333['statusText']+(_0x499801?_0x4d8435(0x139)+_0x499801:''));_0x2b54d0['status']=_0x405333['status'];throw _0x2b54d0;}const _0x2962ad=await _0x405333[_0x4d8435(0xce)]();return{'data':_0x2962ad[_0x4d8435(0x147)]||[],'model':_0x2962ad['model']||_0x23794c[_0x4d8435(0xf8)],'created':_0x2962ad[_0x4d8435(0x128)]||Date[_0x4d8435(0x115)](),'usage':_0x2962ad['usage']};}catch(_0x2289be){_0x599303=_0x2289be,this['logger'][_0x4d8435(0xcb)](_0x4d8435(0x121),{'attempt':_0x401261,'requestId':_0x2206c1,'error':_0x2289be[_0x4d8435(0x154)],'status':_0x2289be[_0x4d8435(0x14f)]});if(_0x401261<this['retryAttempts']){const _0x4eeacf=Math['pow'](0x2,_0x401261)*0x3e8;this['logger']['warn']('Retrying\x20in\x20'+_0x4eeacf+'ms',{'attempt':_0x401261,'requestId':_0x2206c1}),await new Promise(_0x59c91e=>setTimeout(_0x59c91e,_0x4eeacf));}}}this['logger'][_0x4d8435(0x158)](_0x4d8435(0xdb),{'requestId':_0x2206c1,'error':_0x599303['message']});throw new Error(_0x4d8435(0x103)+_0x599303['message']);}async['_checkRateLimit'](_0x2ed234){await new Promise(_0x28da3f=>setTimeout(_0x28da3f,0x64));}async['_handleRateLimit'](_0x4b2892){const _0x5a6571=a0_0x58e07c,_0x37fba7=0xea60;this['logger'][_0x5a6571(0xf9)](_0x5a6571(0x15d)+_0x37fba7+'ms',_0x4b2892),await new Promise(_0x4a2897=>setTimeout(_0x4a2897,_0x37fba7));}async[a0_0x58e07c(0x12b)](_0x16ffef){const _0x51f8e4=a0_0x58e07c;this[_0x51f8e4(0xf1)]();const _0x49674c=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x49674c+'ms',_0x16ffef),await new Promise(_0x5dd729=>setTimeout(_0x5dd729,_0x49674c));}['_isCircuitBreakerOpen'](){const _0x2af83e=a0_0x58e07c;if(!this[_0x2af83e(0x10e)]['isOpen'])return![];const _0xb3a1df=Date['now']()-this[_0x2af83e(0x10e)]['lastFailureTime'];if(_0xb3a1df>this['circuitBreaker'][_0x2af83e(0xe6)])return this['circuitBreaker'][_0x2af83e(0x14a)]=![],this['circuitBreaker']['failures']=0x0,![];return!![];}[a0_0x58e07c(0xf1)](){const _0x3c6cae=a0_0x58e07c;this[_0x3c6cae(0x10e)]['failures']++,this['circuitBreaker'][_0x3c6cae(0x15e)]=Date['now'](),this[_0x3c6cae(0x10e)][_0x3c6cae(0x126)]>=this[_0x3c6cae(0x10e)][_0x3c6cae(0xee)]&&(this['circuitBreaker']['isOpen']=!![],this[_0x3c6cae(0x130)]['warn'](_0x3c6cae(0xfa)));}['_resetCircuitBreaker'](){const _0x27db32=a0_0x58e07c;this[_0x27db32(0x10e)]['failures']>0x0&&(this[_0x27db32(0x10e)]['failures']=0x0,this['circuitBreaker']['isOpen']=![],this[_0x27db32(0x130)]['info'](_0x27db32(0x14c)));}['_getVendorFromModel'](_0x17d1ff){const _0x4b745d=a0_0x58e07c;if(!_0x17d1ff)return null;const _0x5af8ba=_0x17d1ff['toLowerCase']();if(_0x5af8ba['includes']('anthropic')||_0x5af8ba['includes']('claude'))return _0x4b745d(0x112);else{if(_0x5af8ba['includes']('openai')||_0x5af8ba[_0x4b745d(0x109)](_0x4b745d(0xdc)))return'openai';else{if(_0x5af8ba[_0x4b745d(0x109)](_0x4b745d(0xd7)))return'deepseek';else{if(_0x5af8ba[_0x4b745d(0x109)](_0x4b745d(0x102)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x26ab7c,_0x29cbec){const _0x2aead6=a0_0x58e07c;this[_0x2aead6(0xd2)]=_0x26ab7c,this['logger']=_0x29cbec,this['conversations']=new Map();}async['switchModel'](_0x683f45){return{'messages':[],'model':_0x683f45,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a0_0x13ba(){const _0x3d099d=['mu9IuKfAyW','C2vZC2LVBKTLExm','z2v0u2vZC2LVBKTLExm','z2v0qwn0AxzLu2vZC2LVBNm','zM9YrwfJAa','nZK0mJC2DuDSwLbK','CMvTB3zLu2vZC2LVBKTLExm','DMvUzg9Y','ntaXotm5nK9Rt3bgwG','mZC2mdm5m0DtD0feyG','DxbKyxrLzef0','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','BM93','ntaZnJCYnxf3u0jeEq','C2v0r2XVyMfSs2v5CW','mJa0mtm3nNjns0DmDG','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','z2v0','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','Bg9Nz2vY','DMvUzg9Ys2v5CW','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','z2XVyMfSs2v5CW','Dg9ju09tDhjPBMC','A2v5CW','odDbu3jzwMW','mZzqvxDHz2y','zw50CMLLCW','Aw5MBW','mtm0nZG4twTyuuzJ','Bg94AwfbCgLlzxK','ChvZAa','mtq3odm3mdbmEfDdyvK','zNjVBq','zgvSzxrL','CgXHDgzVCM1qCM92AwrLza','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW'];a0_0x13ba=function(){return _0x3d099d;};return a0_0x13ba();}const a0_0x19c439=a0_0x5695;function a0_0x5695(_0x146438,_0x2b6aee){_0x146438=_0x146438-0x68;const _0x13bad8=a0_0x13ba();let _0x569521=_0x13bad8[_0x146438];if(a0_0x5695['pcRmHF']===undefined){var _0x2774ce=function(_0x55c67c){const _0xcbe78a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1595b7='',_0x6d5402='';for(let _0x24e253=0x0,_0x5e80ae,_0x5c9da1,_0x23c824=0x0;_0x5c9da1=_0x55c67c['charAt'](_0x23c824++);~_0x5c9da1&&(_0x5e80ae=_0x24e253%0x4?_0x5e80ae*0x40+_0x5c9da1:_0x5c9da1,_0x24e253++%0x4)?_0x1595b7+=String['fromCharCode'](0xff&_0x5e80ae>>(-0x2*_0x24e253&0x6)):0x0){_0x5c9da1=_0xcbe78a['indexOf'](_0x5c9da1);}for(let _0x2550dc=0x0,_0x140c8f=_0x1595b7['length'];_0x2550dc<_0x140c8f;_0x2550dc++){_0x6d5402+='%'+('00'+_0x1595b7['charCodeAt'](_0x2550dc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x6d5402);};a0_0x5695['APLebj']=_0x2774ce,a0_0x5695['YfHOlc']={},a0_0x5695['pcRmHF']=!![];}const _0x22c167=_0x13bad8[0x0],_0x3cd890=_0x146438+_0x22c167,_0x5d0b94=a0_0x5695['YfHOlc'][_0x3cd890];return!_0x5d0b94?(_0x569521=a0_0x5695['APLebj'](_0x569521),a0_0x5695['YfHOlc'][_0x3cd890]=_0x569521):_0x569521=_0x5d0b94,_0x569521;}(function(_0x16ad37,_0x262400){const _0x2b2f96=a0_0x5695,_0x14dbab=_0x16ad37();while(!![]){try{const _0x1a5e88=parseInt(_0x2b2f96(0x6f))/0x1*(parseInt(_0x2b2f96(0x74))/0x2)+parseInt(_0x2b2f96(0x88))/0x3*(parseInt(_0x2b2f96(0x8c))/0x4)+-parseInt(_0x2b2f96(0x7c))/0x5+-parseInt(_0x2b2f96(0x77))/0x6+parseInt(_0x2b2f96(0x78))/0x7+parseInt(_0x2b2f96(0x7e))/0x8*(-parseInt(_0x2b2f96(0x89))/0x9)+parseInt(_0x2b2f96(0x6a))/0xa;if(_0x1a5e88===_0x262400)break;else _0x14dbab['push'](_0x14dbab['shift']());}catch(_0x3c1478){_0x14dbab['push'](_0x14dbab['shift']());}}}(a0_0x13ba,0x80409));class ApiKeyManager{constructor(_0x1595b7){const _0x74a8e1=a0_0x5695;this['logger']=_0x1595b7,this['sessionKeys']=new Map(),this[_0x74a8e1(0x85)]={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x6d5402,_0x24e253){const _0x208ed8=a0_0x5695;if(!_0x6d5402)throw new Error(_0x208ed8(0x7f));this['sessionKeys']['set'](_0x6d5402,{'loxiaApiKey':_0x24e253['loxiaApiKey']||null,'vendorKeys':_0x24e253['vendorKeys']||{},'updatedAt':new Date()[_0x208ed8(0x86)]()}),this[_0x208ed8(0x82)]?.[_0x208ed8(0x8b)](_0x208ed8(0x81),{'sessionId':_0x6d5402,'hasLoxiaKey':!!_0x24e253['loxiaApiKey'],'vendorKeys':Object['keys'](_0x24e253[_0x208ed8(0x83)]||{}),'timestamp':new Date()[_0x208ed8(0x86)]()});}['getSessionKeys'](_0x5e80ae){const _0x8119f1=a0_0x5695;if(!_0x5e80ae)return this[_0x8119f1(0x85)];const _0x5c9da1=this[_0x8119f1(0x70)][_0x8119f1(0x80)](_0x5e80ae);if(_0x5c9da1)return _0x5c9da1;return this['globalKeys'];}['getKeysForRequest'](_0x23c824,_0x2550dc={}){const _0x5353b3=a0_0x5695,_0x140c8f=this[_0x5353b3(0x71)](_0x23c824),_0x5da8b8={'loxiaApiKey':_0x140c8f[_0x5353b3(0x68)],'vendorApiKey':null};return!_0x2550dc[_0x5353b3(0x6d)]&&_0x2550dc[_0x5353b3(0x76)]&&_0x140c8f[_0x5353b3(0x83)]&&(_0x5da8b8['vendorApiKey']=_0x140c8f['vendorKeys'][_0x2550dc['vendor']]),_0x5da8b8;}[a0_0x19c439(0x75)](_0x52a19d){const _0x58382b=a0_0x19c439;if(this[_0x58382b(0x70)]['delete'](_0x52a19d))return this['logger']?.['info'](_0x58382b(0x7a),{'sessionId':_0x52a19d}),!![];return![];}[a0_0x19c439(0x7d)](_0x308c8e){const _0x24e0f6=a0_0x19c439;this[_0x24e0f6(0x85)]={'loxiaApiKey':_0x308c8e['loxiaApiKey']||this['globalKeys'][_0x24e0f6(0x68)],'vendorKeys':{...this['globalKeys']['vendorKeys'],..._0x308c8e[_0x24e0f6(0x83)]||{}}},this[_0x24e0f6(0x82)]?.['info']('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this['globalKeys'][_0x24e0f6(0x68)],'vendorKeys':Object[_0x24e0f6(0x87)](this['globalKeys']['vendorKeys'])});}[a0_0x19c439(0x72)](){const _0x7b0546=a0_0x19c439;return Array[_0x7b0546(0x6b)](this[_0x7b0546(0x70)]['entries']())['map'](([_0x219246,_0x19604a])=>({'sessionId':_0x219246,'hasLoxiaKey':!!_0x19604a['loxiaApiKey'],'vendorKeys':Object['keys'](_0x19604a['vendorKeys']||{}),'updatedAt':_0x19604a[_0x7b0546(0x79)]}));}[a0_0x19c439(0x6e)](_0x439856=0x18*0x3c*0x3c*0x3e8){const _0xb980d1=a0_0x19c439,_0x1de088=Date[_0xb980d1(0x7b)](),_0x30ca03=[];for(const [_0x2f4199,_0x148af1]of this['sessionKeys'][_0xb980d1(0x8a)]()){const _0x3e9abd=_0x1de088-new Date(_0x148af1[_0xb980d1(0x79)])['getTime']();_0x3e9abd>_0x439856&&_0x30ca03[_0xb980d1(0x69)](_0x2f4199);}return _0x30ca03[_0xb980d1(0x73)](_0x5ccd81=>{const _0x5c38f6=_0xb980d1;this['sessionKeys'][_0x5c38f6(0x6c)](_0x5ccd81);}),_0x30ca03['length']>0x0&&this[_0xb980d1(0x82)]?.[_0xb980d1(0x8b)](_0xb980d1(0x84),{'expiredSessions':_0x30ca03['length'],'remainingSessions':this[_0xb980d1(0x70)]['size']}),_0x30ca03['length'];}}export default ApiKeyManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x54c676=a0_0x12cf;(function(_0x28525a,_0x7d4ee0){const _0x306830=a0_0x12cf,_0x2aa104=_0x28525a();while(!![]){try{const _0x1bf92c=parseInt(_0x306830(0x1e7))/0x1+parseInt(_0x306830(0x1ed))/0x2*(-parseInt(_0x306830(0x20e))/0x3)+-parseInt(_0x306830(0x1e2))/0x4+-parseInt(_0x306830(0x1ec))/0x5+-parseInt(_0x306830(0x1f8))/0x6+parseInt(_0x306830(0x206))/0x7+-parseInt(_0x306830(0x1fb))/0x8*(-parseInt(_0x306830(0x1e0))/0x9);if(_0x1bf92c===_0x7d4ee0)break;else _0x2aa104['push'](_0x2aa104['shift']());}catch(_0x2b2c74){_0x2aa104['push'](_0x2aa104['shift']());}}}(a0_0x2740,0x616f2));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x4f9fe2,_0x57b13f){const _0xb44ccb=a0_0x12cf;this['config']=_0x4f9fe2,this[_0xb44ccb(0x1fd)]=_0x57b13f,this['benchmarks']=null,this['lastUpdated']=null,this[_0xb44ccb(0x210)]=![],this['azureBackendUrl']='https://autopilot-api.azurewebsites.net',this['refreshInterval']=MODEL_ROUTER_CONFIG[_0xb44ccb(0x1fe)];}async[a0_0x54c676(0x1e9)](){const _0x1c3b37=a0_0x54c676;try{await this[_0x1c3b37(0x1f9)](),this['_scheduleRefresh'](),this[_0x1c3b37(0x1fd)]['info']('Benchmark\x20service\x20initialized');}catch(_0x299544){this['logger'][_0x1c3b37(0x208)]('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x299544['message']}),this[_0x1c3b37(0x1f5)]=null;}}['getBenchmarks'](){const _0x3ecc7e=a0_0x54c676;if(!this['benchmarks'])return this['logger']['error'](_0x3ecc7e(0x1fa),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async[a0_0x54c676(0x1f9)](){const _0x542dc4=a0_0x54c676;if(this['isLoading']){this[_0x542dc4(0x1fd)]['debug']('Benchmark\x20loading\x20already\x20in\x20progress');return;}this['isLoading']=!![];try{const _0x5f4a91=await this[_0x542dc4(0x207)]();if(_0x5f4a91)this['benchmarks']=_0x5f4a91,this[_0x542dc4(0x1e1)]=new Date(),this['logger'][_0x542dc4(0x1f1)]('Benchmarks loaded from Azure backend',{'modelCount':_0x5f4a91['models']?.['length']||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x329bc3){this['logger'][_0x542dc4(0x208)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x329bc3[_0x542dc4(0x212)],'endpoint':url}),!this[_0x542dc4(0x1f5)]&&(this[_0x542dc4(0x1f5)]=null);}finally{this['isLoading']=![];}}[a0_0x54c676(0x1e4)](){const _0x4329a4=a0_0x54c676,_0x5e4966=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.['toISOString']()||_0x4329a4(0x1f3),'models':_0x5e4966['models']||[],'tasks':_0x5e4966['tasks']||{},'summary':this['_generateBenchmarkSummary'](_0x5e4966)};}[a0_0x54c676(0x1eb)](){const _0x10591d=a0_0x54c676;if(!this[_0x10591d(0x1e1)])return!![];const _0x47d58c=Date['now']()-this['lastUpdated'][_0x10591d(0x1f7)]();return _0x47d58c>this[_0x10591d(0x202)];}async[a0_0x54c676(0x207)](){const _0x1b39f7=a0_0x54c676,_0x1fbb9d=this['azureBackendUrl']+_0x1b39f7(0x1f6);let _0x10e7da=null;this[_0x1b39f7(0x1ea)]['apiKey']&&(_0x10e7da=this[_0x1b39f7(0x1ea)]['apiKey']);const _0x26c19b={'method':_0x1b39f7(0x1ef),'headers':{'Content-Type':'application/json',..._0x10e7da&&{'Authorization':_0x1b39f7(0x1fc)+_0x10e7da}},'timeout':0x2710};this[_0x1b39f7(0x1fd)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x1fbb9d});const _0x5f1ebe=await fetch(_0x1fbb9d,_0x26c19b);if(!_0x5f1ebe['ok'])throw new Error(_0x1b39f7(0x211)+_0x5f1ebe['status']+':\x20'+_0x5f1ebe[_0x1b39f7(0x205)]);const _0x24c896=await _0x5f1ebe[_0x1b39f7(0x200)]();return _0x24c896;}[a0_0x54c676(0x1ee)](_0x4df1f5){const _0x3bf770=a0_0x54c676,_0x342554=_0x4df1f5['models']||[];return{'totalModels':_0x342554[_0x3bf770(0x1f2)],'taskCategories':Object[_0x3bf770(0x20a)](_0x4df1f5['tasks']||{}),'bestForCoding':this[_0x3bf770(0x209)](_0x342554,'coding'),'bestForAnalysis':this[_0x3bf770(0x209)](_0x342554,_0x3bf770(0x201)),'bestForQuickTasks':this[_0x3bf770(0x209)](_0x342554,_0x3bf770(0x204)),'bestForCreative':this['_getBestModelForTask'](_0x342554,_0x3bf770(0x1e3)),'fastestModel':this['_getFastestModel'](_0x342554),'mostCostEfficient':this['_getMostCostEfficient'](_0x342554)};}['_getBestModelForTask'](_0x4ef701,_0x32dda4){const _0xc6ee9c=a0_0x54c676;return _0x4ef701['filter'](_0x13083b=>_0x13083b[_0xc6ee9c(0x20f)]&&_0x13083b['tasks'][_0x32dda4])['sort']((_0x48af96,_0x598ccc)=>(_0x598ccc[_0xc6ee9c(0x20f)][_0x32dda4]['score']||0x0)-(_0x48af96[_0xc6ee9c(0x20f)][_0x32dda4]['score']||0x0))[0x0]?.[_0xc6ee9c(0x1f0)]||_0xc6ee9c(0x1f3);}['_getFastestModel'](_0x580859){const _0x4d8096=a0_0x54c676,_0x4b6fff={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x580859['sort']((_0x51f4bb,_0x218ef7)=>{const _0x3bf6be=a0_0x12cf,_0x52c266=Math[_0x3bf6be(0x203)](...Object[_0x3bf6be(0x20c)](_0x51f4bb[_0x3bf6be(0x20f)]||{})['map'](_0x347044=>_0x4b6fff[_0x347044['speed']]||0x0)),_0x327bce=Math['max'](...Object[_0x3bf6be(0x20c)](_0x218ef7[_0x3bf6be(0x20f)]||{})[_0x3bf6be(0x1e6)](_0x42ff41=>_0x4b6fff[_0x42ff41['speed']]||0x0));return _0x327bce-_0x52c266;})[0x0]?.[_0x4d8096(0x1f0)]||_0x4d8096(0x1f3);}[a0_0x54c676(0x1f4)](_0x38836c){const _0x5b28d7={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x38836c['sort']((_0x5b8989,_0x4f5655)=>{const _0x32a2a2=a0_0x12cf,_0x481d1d=Math['max'](...Object[_0x32a2a2(0x20c)](_0x5b8989[_0x32a2a2(0x20f)]||{})['map'](_0x471055=>_0x5b28d7[_0x471055[_0x32a2a2(0x1ff)]]||0x0)),_0x30ed4b=Math[_0x32a2a2(0x203)](...Object[_0x32a2a2(0x20c)](_0x4f5655[_0x32a2a2(0x20f)]||{})['map'](_0x1bf833=>_0x5b28d7[_0x1bf833['cost']]||0x0));return _0x30ed4b-_0x481d1d;})[0x0]?.['name']||'unknown';}[a0_0x54c676(0x1e5)](){const _0x54ae54=a0_0x54c676;setInterval(async()=>{const _0x26f5c7=a0_0x12cf;this['needsRefresh']()&&(this['logger'][_0x26f5c7(0x1e8)]('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this[_0x54ae54(0x202)]);}async['forceRefresh'](){const _0x1a6708=a0_0x54c676;this['logger']['info'](_0x1a6708(0x20d)),await this['loadBenchmarks']();}[a0_0x54c676(0x20b)](){const _0x549abe=a0_0x54c676;return{'initialized':!!this['benchmarks'],'lastUpdated':this['lastUpdated']?.[_0x549abe(0x213)]()||null,'source':this['benchmarks']?.[_0x549abe(0x1df)]||_0x549abe(0x1f3),'modelCount':this['benchmarks']?.['models']?.[_0x549abe(0x1f2)]||0x0,'isLoading':this['isLoading'],'needsRefresh':this[_0x549abe(0x1eb)]()};}}export default BenchmarkService;function a0_0x12cf(_0x50618e,_0x523f26){_0x50618e=_0x50618e-0x1df;const _0x27409d=a0_0x2740();let _0x12cf4e=_0x27409d[_0x50618e];if(a0_0x12cf['xXZQFD']===undefined){var _0x391ee5=function(_0x5332c4){const _0x566dcd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4f9fe2='',_0x57b13f='';for(let _0x299544=0x0,_0x5f4a91,_0x329bc3,_0x5e4966=0x0;_0x329bc3=_0x5332c4['charAt'](_0x5e4966++);~_0x329bc3&&(_0x5f4a91=_0x299544%0x4?_0x5f4a91*0x40+_0x329bc3:_0x329bc3,_0x299544++%0x4)?_0x4f9fe2+=String['fromCharCode'](0xff&_0x5f4a91>>(-0x2*_0x299544&0x6)):0x0){_0x329bc3=_0x566dcd['indexOf'](_0x329bc3);}for(let _0x47d58c=0x0,_0x1fbb9d=_0x4f9fe2['length'];_0x47d58c<_0x1fbb9d;_0x47d58c++){_0x57b13f+='%'+('00'+_0x4f9fe2['charCodeAt'](_0x47d58c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x57b13f);};a0_0x12cf['vVpOVS']=_0x391ee5,a0_0x12cf['hsHJnT']={},a0_0x12cf['xXZQFD']=!![];}const _0x1040d1=_0x27409d[0x0],_0x139bb2=_0x50618e+_0x1040d1,_0xd5cbca=a0_0x12cf['hsHJnT'][_0x139bb2];return!_0xd5cbca?(_0x12cf4e=a0_0x12cf['vVpOVS'](_0x12cf4e),a0_0x12cf['hsHJnT'][_0x139bb2]=_0x12cf4e):_0x12cf4e=_0xd5cbca,_0x12cf4e;}function a0_0x2740(){const _0xe8b9c8=['BMfTzq','Aw5MBW','BgvUz3rO','Dw5RBM93BG','x2DLDe1VC3rdB3n0rwzMAwnPzw50','yMvUy2HTyxjRCW','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','z2v0vgLTzq','mJqYnJq5nLr2rxnssa','Bg9HzejLBMnOBwfYA3m','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','nZq1nZy4DuLWCgjn','qMvHCMvYia','Bg9Nz2vY','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','y29ZDa','ANnVBG','yw5HBhLZAxm','CMvMCMvZAeLUDgvYDMfS','Bwf4','CxvPy2STDgfZA3m','C3rHDhvZvgv4Da','ndG0nZGYoxDethvAyW','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','zxjYB3i','x2DLDejLC3rnB2rLBezVCLrHC2S','A2v5CW','z2v0u3rHDhvZ','DMfSDwvZ','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','nZa1D2Tur3Lb','DgfZA3m','AxnmB2fKAw5N','sfruuca','BwvZC2fNzq','Dg9ju09tDhjPBMC','C291CMnL','otbVz3PmuwG','BgfZDfvWzgf0zwq','mJy4mJCYmg9Aq0HpsW','y3jLyxrPDMu','z2v0qMvUy2HTyxjRvgfIBgu','x3nJAgvKDwXLuMvMCMvZAa','BwfW','nZmXnde0t0zHCLnV','zgvIDwC','Aw5PDgLHBgL6zq','y29UzMLN','BMvLzhnszwzYzxnO','mJy2nZqWmhbctuPirW','mJK2nLHxwuncuG','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','r0vu'];a0_0x2740=function(){return _0xe8b9c8;};return a0_0x2740();}
|
|
@@ -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
|
+
function a0_0xc992(_0x1d1ad0,_0x1fd5d4){_0x1d1ad0=_0x1d1ad0-0x1a1;const _0x3de347=a0_0x3de3();let _0xc9920c=_0x3de347[_0x1d1ad0];if(a0_0xc992['RgMthS']===undefined){var _0x3c1e05=function(_0x53f4ed){const _0x3ce7b8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xda20db='',_0x4103cc='';for(let _0x554444=0x0,_0xcfea4f,_0x320dae,_0x10ee18=0x0;_0x320dae=_0x53f4ed['charAt'](_0x10ee18++);~_0x320dae&&(_0xcfea4f=_0x554444%0x4?_0xcfea4f*0x40+_0x320dae:_0x320dae,_0x554444++%0x4)?_0xda20db+=String['fromCharCode'](0xff&_0xcfea4f>>(-0x2*_0x554444&0x6)):0x0){_0x320dae=_0x3ce7b8['indexOf'](_0x320dae);}for(let _0x3d11b2=0x0,_0x1c7f81=_0xda20db['length'];_0x3d11b2<_0x1c7f81;_0x3d11b2++){_0x4103cc+='%'+('00'+_0xda20db['charCodeAt'](_0x3d11b2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4103cc);};a0_0xc992['LKRQZT']=_0x3c1e05,a0_0xc992['nIAgiy']={},a0_0xc992['RgMthS']=!![];}const _0x255628=_0x3de347[0x0],_0x42e62d=_0x1d1ad0+_0x255628,_0xcd5aff=a0_0xc992['nIAgiy'][_0x42e62d];return!_0xcd5aff?(_0xc9920c=a0_0xc992['LKRQZT'](_0xc9920c),a0_0xc992['nIAgiy'][_0x42e62d]=_0xc9920c):_0xc9920c=_0xcd5aff,_0xc9920c;}function a0_0x3de3(){const _0x50b676=['ANnVBG','z2v0vxnHz2vuCMvUzhm','z2v0qwDLBNrvC2fNzq','sw52ywXPzcbWzxjPB2q6ia','ltaX','mJKXnJeZmhbeC0vrzG','Bg9HzfvZywDLrgf0yq','Bw9KzwXjza','Dg9ju09tDhjPBMC','y3n2','Bwf4','ChvZAa','Dw5KzwzPBMvK','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','DgHYzxnOB2XKx3jLywnOzwq','zgfPBhK','C2XPy2u','z2v0rgf5s2v5','C2v0qNvKz2v0CW','z2v0rgf0zq','z2v0tw9UDgG','DxnHz2u','CMvXDwvZDhm','Dw5ZAgLMDa','BwfW','yNvKz2v0x2v4y2vLzgvK','Bw9UDgHSEq','zgfPBhLbDMvYywDLCW','C29YDa','y2HLy2TuAhjLC2HVBgrbBgvYDhm','y29ZDa','B3v0Chv0','DxbKyxrLvxnHz2vfBNrYEq','yNLnB2rLBa','C3rYAw5NAwz5','C2vUzej1zgDLDefSzxj0','rMfPBgvKihrVihrYywnRihvZywDL','z2v0rNvSBfLLyxi','BgfZDefSzxj0vgLTzxm','C2vUzfrOCMvZAg9SzefSzxj0','vxnHz2uGzgf0ysbZyxzLza','ywXLCNrZ','nZHwshbOB1K','zM9YrwfJAa','y2HLy2TuAhjLC2HVBgq','z2v0v2vLA051BwjLCG','Dg9Rzw5Z','z2v0uMvTywLUAw5NqNvKz2v0','C2f2zvvZywDLrgf0yq','D2vLA2X5','ndvRChjSsg0','Dg90ywXFDg9Rzw5Z','y2fSy3vSyxrLq29ZDa','nty3ndGYnhb4zgHoCW','AM9PBG','zNjVBq','yNLbz2vUDa','Dg90ywW','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','Aw5PDgLHBgL6zvvZywDLrw50CNK','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','y2vPBa','Bg9Nz2vY','q29ZDa','D2fYBG','C2v0','zxjYB3i','nZa3sufXyufT','odu3mZr3ExviDvO','y3jLyxrLrw1WDhLvC2fNzq','mta4mJHLvfDwA0m','yNvKz2v0CW','C2v0rgf0zq','yNvKz2v0qwXLCNq','AgfZ','Dg9Rzw5ZqNLeyxK','ywDLBNrjza','C2v0DxbqzxjPB2rPy1nHDMu','mti1mtC4mg5pvKrQAa','nti2mtzkB09eANK','zw50CMLLCW','zw1PDa','rgf0zq','uMvXDwvZDhm','DhjHy2TvC2fNzq','z2v0vxnHz2u','nteWmJHHt21NAMi','z2v0tw9UDgHlzxK','Aw5WDxq','vxnHz2uGDhjHy2TLza','z2v0','tu9oveHmwq'];a0_0x3de3=function(){return _0x50b676;};return a0_0x3de3();}const a0_0x1580b4=a0_0xc992;(function(_0x55b4e5,_0x186ee3){const _0x1ed3a8=a0_0xc992,_0x4259ed=_0x55b4e5();while(!![]){try{const _0x48b93a=-parseInt(_0x1ed3a8(0x1ab))/0x1+parseInt(_0x1ed3a8(0x1a3))/0x2+parseInt(_0x1ed3a8(0x1db))/0x3*(-parseInt(_0x1ed3a8(0x1f8))/0x4)+parseInt(_0x1ed3a8(0x1e3))/0x5*(parseInt(_0x1ed3a8(0x1f6))/0x6)+parseInt(_0x1ed3a8(0x1f5))/0x7*(parseInt(_0x1ed3a8(0x1a4))/0x8)+-parseInt(_0x1ed3a8(0x1e6))/0x9+-parseInt(_0x1ed3a8(0x1b6))/0xa;if(_0x48b93a===_0x186ee3)break;else _0x4259ed['push'](_0x4259ed['shift']());}catch(_0x3a5b92){_0x4259ed['push'](_0x4259ed['shift']());}}}(a0_0x3de3,0x5b9a9));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0xda20db,_0x4103cc){const _0x5ca772=a0_0xc992;this['config']=_0xda20db||{},this[_0x5ca772(0x1f0)]=_0x4103cc,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x5ca772(0x1f9)]={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x5ca772(0x1b0)]},this[_0x5ca772(0x1da)]={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this['loadUsageData'](),this['setupPeriodicSave']();}[a0_0x1580b4(0x1a9)](_0x554444,_0xcfea4f,_0x320dae){const _0x1051f6=a0_0x1580b4;try{const _0x10ee18=this[_0x1051f6(0x1e5)](_0xcfea4f,_0x320dae),_0x3d11b2=new Date(),_0x1c7f81=this[_0x1051f6(0x1c2)](_0x3d11b2),_0x52fa3a=this['getWeekKey'](_0x3d11b2),_0x254dbd=this[_0x1051f6(0x1ac)](_0x3d11b2);this['initializeUsageEntry'](this['usage'][_0x1051f6(0x1c0)],_0x1c7f81),this['initializeUsageEntry'](this[_0x1051f6(0x1c6)][_0x1051f6(0x1e2)],_0x52fa3a),this[_0x1051f6(0x1ed)](this[_0x1051f6(0x1c6)][_0x1051f6(0x1cb)],_0x254dbd);const _0x6b6c99={'agentId':_0x554444,'modelId':_0xcfea4f,'tokens':_0x320dae[_0x1051f6(0x1e4)],'cost':_0x10ee18,'timestamp':_0x3d11b2[_0x1051f6(0x1b9)]()};return this[_0x1051f6(0x1d1)](this['usage']['daily']['get'](_0x1c7f81),_0x6b6c99),this[_0x1051f6(0x1d1)](this['usage'][_0x1051f6(0x1e2)][_0x1051f6(0x1af)](_0x52fa3a),_0x6b6c99),this['updateUsageEntry'](this[_0x1051f6(0x1c6)]['monthly']['get'](_0x254dbd),_0x6b6c99),this['usage'][_0x1051f6(0x1ea)][_0x1051f6(0x1df)]+=_0x320dae['total_tokens'],this['usage']['total']['cost']+=_0x10ee18,this[_0x1051f6(0x1c6)][_0x1051f6(0x1ea)][_0x1051f6(0x1c7)]+=0x1,this['checkBudgetLimits'](_0x1c7f81,_0x52fa3a,_0x254dbd),this[_0x1051f6(0x1f0)]['info'](_0x1051f6(0x1ae),{'agentId':_0x554444,'modelId':_0xcfea4f,'tokens':_0x320dae[_0x1051f6(0x1e4)],'cost':_0x10ee18,'totalCost':this['usage']['total']['cost']}),{'cost':_0x10ee18,'totalCost':this['usage']['total'][_0x1051f6(0x1cf)],'totalTokens':this[_0x1051f6(0x1c6)]['total']['tokens'],'dailyUsage':this['usage'][_0x1051f6(0x1c0)]['get'](_0x1c7f81),'budgetRemaining':this[_0x1051f6(0x1e0)]()};}catch(_0x3b3d42){this['logger']['error'](_0x1051f6(0x1d5),{'error':_0x3b3d42['message'],'agentId':_0x554444,'modelId':_0xcfea4f});throw _0x3b3d42;}}['calculateCost'](_0x22bedb,_0x48a97f){const _0x50481d=a0_0x1580b4,_0xdd8779=COST_PER_TOKEN[_0x22bedb];if(!_0xdd8779)return this['logger'][_0x50481d(0x1f2)](_0x50481d(0x1be),{'modelId':_0x22bedb}),0x0;const _0x35a55d=(_0x48a97f['prompt_tokens']||0x0)*_0xdd8779[_0x50481d(0x1ad)],_0x1a3aec=(_0x48a97f['completion_tokens']||0x0)*_0xdd8779[_0x50481d(0x1d0)];return _0x35a55d+_0x1a3aec;}[a0_0x1580b4(0x1aa)](_0x6d1f10=a0_0x1580b4(0x1c0),_0x4beb30=new Date()){const _0x3f60f4=a0_0x1580b4;switch(_0x6d1f10){case'daily':return this['usage']['daily']['get'](this[_0x3f60f4(0x1c2)](_0x4beb30))||this[_0x3f60f4(0x1f7)]();case'weekly':return this['usage'][_0x3f60f4(0x1e2)][_0x3f60f4(0x1af)](this['getWeekKey'](_0x4beb30))||this['createEmptyUsage']();case _0x3f60f4(0x1cb):return this[_0x3f60f4(0x1c6)]['monthly']['get'](this[_0x3f60f4(0x1ac)](_0x4beb30))||this[_0x3f60f4(0x1f7)]();case'total':return{...this[_0x3f60f4(0x1c6)]['total']};default:throw new Error(_0x3f60f4(0x1b4)+_0x6d1f10);}}[a0_0x1580b4(0x1b3)](_0x3fd911,_0x646a2b=a0_0x1580b4(0x1c0)){const _0x57fe94=a0_0x1580b4,_0x364b7b=this['getUsage'](_0x646a2b);return _0x364b7b['byAgent']?.[_0x3fd911]||this[_0x57fe94(0x1f7)]();}['getModelUsage'](_0x1a120a,_0x53b572='daily'){const _0x4c9248=this['getUsage'](_0x53b572);return _0x4c9248['byModel']?.[_0x1a120a]||this['createEmptyUsage']();}[a0_0x1580b4(0x1c3)](_0x50d6c6){const _0x88a729=a0_0x1580b4;if(_0x50d6c6['daily']!==undefined)this['budgets'][_0x88a729(0x1c0)]=_0x50d6c6['daily'];if(_0x50d6c6['weekly']!==undefined)this['budgets']['weekly']=_0x50d6c6['weekly'];if(_0x50d6c6[_0x88a729(0x1cb)]!==undefined)this['budgets'][_0x88a729(0x1cb)]=_0x50d6c6['monthly'];this['logger']['info']('Budget\x20limits\x20updated',this[_0x88a729(0x1f9)]),this[_0x88a729(0x1e1)]();}[a0_0x1580b4(0x1e0)](){const _0x5ee749=a0_0x1580b4,_0x2629c9=new Date(),_0x185b27=this['getUsage'](_0x5ee749(0x1c0),_0x2629c9),_0x16f0a5=this[_0x5ee749(0x1aa)]('weekly',_0x2629c9),_0x111d0a=this[_0x5ee749(0x1aa)](_0x5ee749(0x1cb),_0x2629c9);return{'daily':Math[_0x5ee749(0x1bb)](0x0,this[_0x5ee749(0x1f9)][_0x5ee749(0x1c0)]-_0x185b27[_0x5ee749(0x1cf)]),'weekly':Math[_0x5ee749(0x1bb)](0x0,this['budgets'][_0x5ee749(0x1e2)]-_0x16f0a5[_0x5ee749(0x1cf)]),'monthly':Math[_0x5ee749(0x1bb)](0x0,this[_0x5ee749(0x1f9)][_0x5ee749(0x1cb)]-_0x111d0a['cost'])};}['isWithinBudget'](_0x4b0df3=a0_0x1580b4(0x1c0)){const _0x4ba9d7=a0_0x1580b4,_0xd14a12=this[_0x4ba9d7(0x1aa)](_0x4b0df3),_0x20c2a7=this['budgets'][_0x4b0df3];return _0xd14a12['cost']<=_0x20c2a7;}[a0_0x1580b4(0x1b2)](_0x55627d=0x1e){const _0x594e33=a0_0x1580b4,_0x5502df={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x491ffe=new Date();let _0x39a4bb=0x0,_0x163a15=0x0,_0xf859c8=0x0;const _0x2ca67e=new Map(),_0x243db3=new Map();for(let _0x37fe6c=0x0;_0x37fe6c<_0x55627d;_0x37fe6c++){const _0xb12d80=new Date(_0x491ffe);_0xb12d80[_0x594e33(0x1fa)](_0xb12d80[_0x594e33(0x1c4)]()-_0x37fe6c);const _0x42a87b=this['getDayKey'](_0xb12d80),_0x17ddf5=this[_0x594e33(0x1c6)][_0x594e33(0x1c0)][_0x594e33(0x1af)](_0x42a87b);_0x17ddf5?(_0x39a4bb+=_0x17ddf5['cost'],_0x163a15+=_0x17ddf5['tokens'],_0xf859c8+=_0x17ddf5[_0x594e33(0x1c7)],_0x5502df['costByDay'][_0x594e33(0x1c8)]({'date':_0x42a87b,'cost':_0x17ddf5[_0x594e33(0x1cf)]}),_0x5502df[_0x594e33(0x1fd)]['unshift']({'date':_0x42a87b,'tokens':_0x17ddf5['tokens']}),Object['entries'](_0x17ddf5[_0x594e33(0x1e9)]||{})['forEach'](([_0x17fc1d,_0x405f5e])=>{const _0xb7bad4=_0x594e33;!_0x2ca67e[_0xb7bad4(0x1fc)](_0x17fc1d)&&_0x2ca67e['set'](_0x17fc1d,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x56b897=_0x2ca67e[_0xb7bad4(0x1af)](_0x17fc1d);_0x56b897['cost']+=_0x405f5e[_0xb7bad4(0x1cf)],_0x56b897[_0xb7bad4(0x1df)]+=_0x405f5e[_0xb7bad4(0x1df)],_0x56b897['requests']+=_0x405f5e[_0xb7bad4(0x1c7)];}),Object[_0x594e33(0x1a5)](_0x17ddf5[_0x594e33(0x1d2)]||{})[_0x594e33(0x1dc)](([_0x290514,_0x3c97f3])=>{const _0x12f912=_0x594e33;!_0x243db3['has'](_0x290514)&&_0x243db3[_0x12f912(0x1f3)](_0x290514,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x19e51d=_0x243db3['get'](_0x290514);_0x19e51d[_0x12f912(0x1cf)]+=_0x3c97f3[_0x12f912(0x1cf)],_0x19e51d[_0x12f912(0x1df)]+=_0x3c97f3[_0x12f912(0x1df)],_0x19e51d[_0x12f912(0x1c7)]+=_0x3c97f3['requests'];})):(_0x5502df['costByDay'][_0x594e33(0x1c8)]({'date':_0x42a87b,'cost':0x0}),_0x5502df[_0x594e33(0x1fd)]['unshift']({'date':_0x42a87b,'tokens':0x0}));}return _0x5502df['dailyAverages'][_0x594e33(0x1cf)]=_0x39a4bb/_0x55627d,_0x5502df[_0x594e33(0x1cc)][_0x594e33(0x1df)]=_0x163a15/_0x55627d,_0x5502df['dailyAverages'][_0x594e33(0x1c7)]=_0xf859c8/_0x55627d,_0x5502df['topAgents']=Array[_0x594e33(0x1e8)](_0x2ca67e['entries']())[_0x594e33(0x1c9)](([_0x42d50f,_0x20e4c3])=>({'id':_0x42d50f,..._0x20e4c3}))['sort']((_0x4eb0be,_0xb841b7)=>_0xb841b7[_0x594e33(0x1cf)]-_0x4eb0be['cost'])[_0x594e33(0x1c1)](0x0,0xa),_0x5502df['topModels']=Array['from'](_0x243db3['entries']())['map'](([_0x10102b,_0x1bdb90])=>({'id':_0x10102b,..._0x1bdb90}))[_0x594e33(0x1cd)]((_0x3815d2,_0x3b7d88)=>_0x3b7d88[_0x594e33(0x1cf)]-_0x3815d2['cost'])[_0x594e33(0x1c1)](0x0,0xa),_0x5502df;}['exportUsageData'](_0x56ef5c=a0_0x1580b4(0x1b1),_0x21b037=null,_0x199cfe=null){const _0x8ac120=a0_0x1580b4,_0x451f47={'budgets':this[_0x8ac120(0x1f9)],'total':this[_0x8ac120(0x1c6)][_0x8ac120(0x1ea)],'daily':{},'weekly':{},'monthly':{}},_0x1b1b7e=(_0x570ade,_0x577007)=>{const _0x10c754=_0x8ac120,_0x38d62b={};return _0x570ade[_0x10c754(0x1dc)]((_0x27bf67,_0x344353)=>{const _0x52adcb=_0x577007(_0x344353);(!_0x21b037||_0x52adcb>=_0x21b037)&&(!_0x199cfe||_0x52adcb<=_0x199cfe)&&(_0x38d62b[_0x344353]=_0x27bf67);}),_0x38d62b;};_0x21b037||_0x199cfe?(_0x451f47[_0x8ac120(0x1c0)]=_0x1b1b7e(this[_0x8ac120(0x1c6)]['daily'],_0x18f9ae=>new Date(_0x18f9ae)),_0x451f47[_0x8ac120(0x1e2)]=_0x1b1b7e(this['usage']['weekly'],_0x56d982=>new Date(_0x56d982)),_0x451f47['monthly']=_0x1b1b7e(this['usage']['monthly'],_0x334c0d=>new Date(_0x334c0d+_0x8ac120(0x1b5)))):(this['usage'][_0x8ac120(0x1c0)][_0x8ac120(0x1dc)]((_0xd1a752,_0x2a6031)=>_0x451f47['daily'][_0x2a6031]=_0xd1a752),this[_0x8ac120(0x1c6)][_0x8ac120(0x1e2)][_0x8ac120(0x1dc)]((_0x2b1c34,_0x120ced)=>_0x451f47['weekly'][_0x120ced]=_0x2b1c34),this['usage'][_0x8ac120(0x1cb)][_0x8ac120(0x1dc)]((_0x5c7ec2,_0x3fa1ed)=>_0x451f47['monthly'][_0x3fa1ed]=_0x5c7ec2));if(_0x56ef5c===_0x8ac120(0x1ba))return this['convertToCSV'](_0x451f47);return JSON[_0x8ac120(0x1d3)](_0x451f47,null,0x2);}[a0_0x1580b4(0x1ed)](_0x322763,_0x71860){const _0x5bee08=a0_0x1580b4;!_0x322763['has'](_0x71860)&&_0x322763[_0x5bee08(0x1f3)](_0x71860,this['createEmptyUsage']());}[a0_0x1580b4(0x1f7)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x1580b4(0x1d1)](_0x160125,_0x2bd6bf){const _0x12e4d4=a0_0x1580b4;_0x160125['cost']+=_0x2bd6bf[_0x12e4d4(0x1cf)],_0x160125['tokens']+=_0x2bd6bf['tokens'],_0x160125[_0x12e4d4(0x1c7)]+=0x1,!_0x160125[_0x12e4d4(0x1e9)][_0x2bd6bf['agentId']]&&(_0x160125['byAgent'][_0x2bd6bf['agentId']]=this[_0x12e4d4(0x1f7)]()),_0x160125[_0x12e4d4(0x1e9)][_0x2bd6bf[_0x12e4d4(0x1a1)]][_0x12e4d4(0x1cf)]+=_0x2bd6bf['cost'],_0x160125['byAgent'][_0x2bd6bf[_0x12e4d4(0x1a1)]]['tokens']+=_0x2bd6bf[_0x12e4d4(0x1df)],_0x160125['byAgent'][_0x2bd6bf[_0x12e4d4(0x1a1)]][_0x12e4d4(0x1c7)]+=0x1,!_0x160125[_0x12e4d4(0x1d2)][_0x2bd6bf[_0x12e4d4(0x1b8)]]&&(_0x160125[_0x12e4d4(0x1d2)][_0x2bd6bf[_0x12e4d4(0x1b8)]]=this['createEmptyUsage']()),_0x160125['byModel'][_0x2bd6bf['modelId']]['cost']+=_0x2bd6bf['cost'],_0x160125[_0x12e4d4(0x1d2)][_0x2bd6bf[_0x12e4d4(0x1b8)]]['tokens']+=_0x2bd6bf['tokens'],_0x160125['byModel'][_0x2bd6bf[_0x12e4d4(0x1b8)]]['requests']+=0x1;}['checkBudgetLimits'](_0x1a0f1c,_0x1971b7,_0x1459b5){const _0x29b0e0=a0_0x1580b4,_0x45c20c=this[_0x29b0e0(0x1c6)][_0x29b0e0(0x1c0)][_0x29b0e0(0x1af)](_0x1a0f1c),_0x33de9c=this[_0x29b0e0(0x1c6)]['weekly']['get'](_0x1971b7),_0x24cbe6=this['usage']['monthly'][_0x29b0e0(0x1af)](_0x1459b5);_0x45c20c[_0x29b0e0(0x1cf)]>this[_0x29b0e0(0x1f9)][_0x29b0e0(0x1c0)]&&this['sendBudgetAlert'](_0x29b0e0(0x1c0),_0x45c20c[_0x29b0e0(0x1cf)],this['budgets']['daily']),_0x33de9c[_0x29b0e0(0x1cf)]>this['budgets']['weekly']&&this['sendBudgetAlert']('weekly',_0x33de9c[_0x29b0e0(0x1cf)],this[_0x29b0e0(0x1f9)]['weekly']),_0x24cbe6[_0x29b0e0(0x1cf)]>this['budgets'][_0x29b0e0(0x1cb)]&&this[_0x29b0e0(0x1d4)](_0x29b0e0(0x1cb),_0x24cbe6['cost'],this[_0x29b0e0(0x1f9)]['monthly']),this[_0x29b0e0(0x1ce)](_0x45c20c,_0x33de9c,_0x24cbe6);}[a0_0x1580b4(0x1ce)](_0x3138b0,_0x1e097b,_0xb41969){const _0x21aca9=a0_0x1580b4,_0x273253=this[_0x21aca9(0x1da)]['thresholds'];this['checkThreshold']('daily',_0x3138b0[_0x21aca9(0x1cf)],this[_0x21aca9(0x1f9)]['daily'],_0x273253),this[_0x21aca9(0x1dd)](_0x21aca9(0x1e2),_0x1e097b['cost'],this['budgets'][_0x21aca9(0x1e2)],_0x273253),this[_0x21aca9(0x1dd)]('monthly',_0xb41969[_0x21aca9(0x1cf)],this['budgets'][_0x21aca9(0x1cb)],_0x273253);}['checkThreshold'](_0xd80fda,_0x523c98,_0x453ae7,_0x2f786a){const _0x50ca0e=a0_0x1580b4,_0x46a533=_0x523c98/_0x453ae7*0x64;for(const _0x29076a of _0x2f786a){if(_0x46a533>=_0x29076a){const _0x52a136=_0xd80fda+'_'+_0x29076a,_0x218a24=this['alerts'][_0x50ca0e(0x1d7)]['get'](_0x52a136),_0x2bf148=Date['now']();(!_0x218a24||_0x2bf148-_0x218a24>0x36ee80)&&(this[_0x50ca0e(0x1d8)](_0xd80fda,_0x46a533,_0x29076a,_0x523c98,_0x453ae7),this[_0x50ca0e(0x1da)][_0x50ca0e(0x1d7)]['set'](_0x52a136,_0x2bf148));break;}}}['sendBudgetAlert'](_0x52b552,_0xd8b4dc,_0x2984da){const _0x4be83c=a0_0x1580b4;this['logger']['warn']('Budget\x20limit\x20exceeded',{'period':_0x52b552,'currentUsage':_0xd8b4dc,'budgetLimit':_0x2984da,'excess':_0xd8b4dc-_0x2984da}),typeof process!==_0x4be83c(0x1bd)&&process['emit']&&process[_0x4be83c(0x1a6)]('budgetAlert',{'type':_0x4be83c(0x1ca),'period':_0x52b552,'currentUsage':_0xd8b4dc,'budgetLimit':_0x2984da,'excess':_0xd8b4dc-_0x2984da});}['sendThresholdAlert'](_0x2eadcb,_0x2bc21b,_0x314558,_0x20e8e2,_0x3365d6){const _0x37018c=a0_0x1580b4;this[_0x37018c(0x1f0)]['warn'](_0x37018c(0x1eb),{'period':_0x2eadcb,'percentage':Math['round'](_0x2bc21b),'threshold':_0x314558,'usage':_0x20e8e2,'budget':_0x3365d6}),typeof process!==_0x37018c(0x1bd)&&process['emit']&&process['emit'](_0x37018c(0x1fb),{'type':_0x37018c(0x1bf),'period':_0x2eadcb,'percentage':Math['round'](_0x2bc21b),'threshold':_0x314558,'usage':_0x20e8e2,'budget':_0x3365d6});}['getDayKey'](_0x2dcbf1){return _0x2dcbf1['toISOString']()['split']('T')[0x0];}['getWeekKey'](_0x2e7947){const _0x393633=a0_0x1580b4,_0x4fcc60=_0x2e7947[_0x393633(0x1d6)](),_0xe08e3e=this['getWeekNumber'](_0x2e7947);return _0x4fcc60+'-W'+_0xe08e3e['toString']()['padStart'](0x2,'0');}['getMonthKey'](_0xddf3c1){const _0x48313a=a0_0x1580b4,_0x2acf6a=_0xddf3c1['getFullYear'](),_0x5746b3=_0xddf3c1[_0x48313a(0x1c5)]()+0x1;return _0x2acf6a+'-'+_0x5746b3['toString']()['padStart'](0x2,'0');}[a0_0x1580b4(0x1de)](_0x1bf3b3){const _0x7b4138=a0_0x1580b4,_0x816762=new Date(_0x1bf3b3[_0x7b4138(0x1d6)](),0x0,0x1),_0x2904f2=(_0x1bf3b3-_0x816762)/0x5265c00;return Math[_0x7b4138(0x1ef)]((_0x2904f2+_0x816762['getDay']()+0x1)/0x7);}['convertToCSV'](_0x5930f9){const _0x553e2b=a0_0x1580b4,_0x1510a2=[];return _0x1510a2[_0x553e2b(0x1bc)](['Period',_0x553e2b(0x1a7),_0x553e2b(0x1f1),'Tokens',_0x553e2b(0x1a8),'Agent','Model']),Object['entries'](_0x5930f9['daily'])['forEach'](([_0x40e311,_0xc5c9cb])=>{const _0x37f595=_0x553e2b;_0x1510a2['push'](['Daily',_0x40e311,_0xc5c9cb[_0x37f595(0x1cf)],_0xc5c9cb['tokens'],_0xc5c9cb[_0x37f595(0x1c7)],'','']),Object[_0x37f595(0x1a5)](_0xc5c9cb[_0x37f595(0x1e9)]||{})[_0x37f595(0x1dc)](([_0x438906,_0x4cbf4d])=>{const _0x3f907e=_0x37f595;_0x1510a2['push'](['Daily',_0x40e311,_0x4cbf4d[_0x3f907e(0x1cf)],_0x4cbf4d['tokens'],_0x4cbf4d['requests'],_0x438906,'']);});}),_0x1510a2[_0x553e2b(0x1c9)](_0x3516dd=>_0x3516dd[_0x553e2b(0x1e7)](','))['join']('\x0a');}[a0_0x1580b4(0x1b7)](){const _0x44b26b=a0_0x1580b4;try{this['logger']['info'](_0x44b26b(0x1ee));}catch(_0x5caf32){this[_0x44b26b(0x1f0)][_0x44b26b(0x1f4)](_0x44b26b(0x1ec),{'error':_0x5caf32['message']});}}['saveUsageData'](){const _0x24a14e=a0_0x1580b4;try{this[_0x24a14e(0x1f0)]['debug'](_0x24a14e(0x1d9));}catch(_0x1db88c){this[_0x24a14e(0x1f0)][_0x24a14e(0x1f4)]('Failed\x20to\x20save\x20usage\x20data',{'error':_0x1db88c['message']});}}[a0_0x1580b4(0x1a2)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x27467d=a0_0x3beb;(function(_0x35cfaa,_0x187249){const _0xf8b63e=a0_0x3beb,_0x234201=_0x35cfaa();while(!![]){try{const _0x57b271=-parseInt(_0xf8b63e(0x1a2))/0x1+parseInt(_0xf8b63e(0x1b3))/0x2*(parseInt(_0xf8b63e(0x1ba))/0x3)+-parseInt(_0xf8b63e(0x1cf))/0x4+-parseInt(_0xf8b63e(0x1b2))/0x5+-parseInt(_0xf8b63e(0x1ae))/0x6+-parseInt(_0xf8b63e(0x1ac))/0x7+parseInt(_0xf8b63e(0x1c8))/0x8*(parseInt(_0xf8b63e(0x1ca))/0x9);if(_0x57b271===_0x187249)break;else _0x234201['push'](_0x234201['shift']());}catch(_0x2ab36d){_0x234201['push'](_0x234201['shift']());}}}(a0_0x5b01,0x70f9b));import a0_0x4520a9 from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x43c888={},_0x14bfa6=null){const _0x2bb67e=a0_0x3beb;this[_0x2bb67e(0x1c3)]=_0x43c888,this[_0x2bb67e(0x1a5)]=_0x14bfa6,this[_0x2bb67e(0x1b5)]=new a0_0x4520a9(_0x43c888,_0x14bfa6);}async[a0_0x27467d(0x1ad)](){const _0x10dc1e=a0_0x27467d;await this[_0x10dc1e(0x1b5)][_0x10dc1e(0x1ad)]();}async['buildDynamicContext'](_0x2831f6){const _0x3e1429=a0_0x27467d;try{const _0x28f635=await this[_0x3e1429(0x1b5)][_0x3e1429(0x1c7)](_0x2831f6);if(_0x28f635[_0x3e1429(0x1b0)]===0x0)return'';const _0x2bb101=_0x28f635[_0x3e1429(0x1a3)](_0x3a631e=>_0x3a631e[_0x3e1429(0x1c1)]==='content'),_0x5918ed=_0x28f635['filter'](_0x16237f=>_0x16237f['mode']==='reference');let _0x56079c='';if(_0x2bb101['length']>0x0){_0x56079c+=_0x3e1429(0x1c2);for(const _0x4aef70 of _0x2bb101){const _0x50a752=await this['attachmentService'][_0x3e1429(0x1b1)](_0x4aef70[_0x3e1429(0x1a4)]);if(_0x50a752){const _0x39dc06=this[_0x3e1429(0x1bb)](_0x4aef70,_0x50a752);_0x56079c+=_0x39dc06+'\x0a';}}_0x56079c+=_0x3e1429(0x1ce);}if(_0x5918ed[_0x3e1429(0x1b0)]>0x0){_0x56079c+=_0x3e1429(0x1c4);for(const _0x44b2f0 of _0x5918ed){const _0x562bbe=this['formatReferenceFile'](_0x44b2f0);_0x56079c+=_0x562bbe+'\x0a';}_0x56079c+=_0x3e1429(0x1af),_0x56079c+='\x0aNote:\x20Referenced\x20files\x20can\x20be\x20accessed\x20using\x20the\x20filesystem\x20tool\x20if\x20needed.\x0a';}return _0x56079c;}catch(_0xb78cc4){return this['logger']?.[_0x3e1429(0x1d0)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x2831f6,'error':_0xb78cc4[_0x3e1429(0x1c9)]}),'';}}['formatContentFile'](_0x1133d1,_0x181b46){const _0x42b752=a0_0x27467d,{fileName:_0x5f0e78,fileType:_0x52faba,size:_0x2f54e1,contentType:_0x1bb8a8}=_0x1133d1,_0x32c902=(_0x2f54e1/0x400)[_0x42b752(0x1a6)](0x2);if(_0x1bb8a8===_0x42b752(0x1cb))return this['formatTextFile'](_0x1133d1,_0x181b46);else{if(_0x1bb8a8===_0x42b752(0x1a8))return this[_0x42b752(0x19f)](_0x1133d1,_0x181b46);else{if(_0x1bb8a8==='pdf')return this[_0x42b752(0x1b4)](_0x1133d1,_0x181b46);}}return'\x20\x20<file\x20name=\x22'+this[_0x42b752(0x1b6)](_0x5f0e78)+'\x22\x20type=\x22'+_0x52faba+_0x42b752(0x1b7)+_0x32c902+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x181b46)+_0x42b752(0x1c6);}['formatTextFile'](_0x1a7620,_0x212621){const _0x59aa8b=a0_0x27467d,{fileName:_0x3a8910,fileType:_0x52f9b5,size:_0x3ea1af}=_0x1a7620,_0x121947=(_0x3ea1af/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x59aa8b(0x1b6)](_0x3a8910)+'\x22\x20type=\x22'+_0x52f9b5+'\x22\x20size=\x22'+_0x121947+_0x59aa8b(0x1a7)+this['escapeXml'](_0x212621)+_0x59aa8b(0x1c6);}['formatImageFile'](_0x181c5c,_0x5fd763){const _0x36d614=a0_0x27467d,{fileName:_0x36aa3d,fileType:_0x51eac0,size:_0x142903}=_0x181c5c,_0x4d0ef5=(_0x142903/0x400)[_0x36d614(0x1a6)](0x2);return _0x36d614(0x1b9)+this[_0x36d614(0x1b6)](_0x36aa3d)+'\x22\x20type=\x22'+_0x51eac0+'\x22\x20size=\x22'+_0x4d0ef5+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x5fd763+'\x0a\x20\x20</file>';}[a0_0x27467d(0x1b4)](_0x53ebb4,_0x5cf8c8){const _0x5ab5ca=a0_0x27467d,{fileName:_0x24d8b4,fileType:_0x172b5d,size:_0x282385}=_0x53ebb4,_0x1f21ea=(_0x282385/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x24d8b4)+_0x5ab5ca(0x1aa)+_0x172b5d+'\x22\x20size=\x22'+_0x1f21ea+_0x5ab5ca(0x1a7)+this[_0x5ab5ca(0x1b6)](_0x5cf8c8)+_0x5ab5ca(0x1c6);}[a0_0x27467d(0x1a0)](_0x2dcc4b){const _0xaab0a8=a0_0x27467d,{fileName:_0x1ea29f,originalPath:_0x496300,size:_0x1f5cb8,fileType:_0x456d59,lastModified:_0x20402f}=_0x2dcc4b,_0x25b463=this[_0xaab0a8(0x1ab)](_0x1f5cb8),_0x1e3e7d=new Date(_0x20402f)['toISOString']()['split']('T')[0x0];return _0xaab0a8(0x1b9)+this['escapeXml'](_0x1ea29f)+'\x22\x20path=\x22'+this[_0xaab0a8(0x1b6)](_0x496300)+'\x22\x20size=\x22'+_0x25b463+'\x22\x20type=\x22'+_0x456d59+_0xaab0a8(0x1c5)+_0x1e3e7d+'\x22\x20/>';}['escapeXml'](_0x3eb17f){const _0x3d2566=a0_0x27467d;if(!_0x3eb17f)return'';return _0x3eb17f[_0x3d2566(0x1a9)](/&/g,_0x3d2566(0x1b8))['replace'](/</g,'<')['replace'](/>/g,'>')[_0x3d2566(0x1a9)](/"/g,_0x3d2566(0x1a1))[_0x3d2566(0x1a9)](/'/g,''');}['formatBytes'](_0x578956){const _0x39ab96=a0_0x27467d;if(_0x578956===0x0)return'0\x20Bytes';const _0x554768=0x400,_0x742c54=['Bytes','KB','MB','GB'],_0x4156ca=Math[_0x39ab96(0x1bd)](Math[_0x39ab96(0x1bc)](_0x578956)/Math['log'](_0x554768));return parseFloat((_0x578956/Math[_0x39ab96(0x1cc)](_0x554768,_0x4156ca))[_0x39ab96(0x1a6)](0x2))+_0x742c54[_0x4156ca];}async[a0_0x27467d(0x1bf)](_0x3d1376){const _0x4a0d7f=a0_0x27467d;try{const _0x1a0945=await this[_0x4a0d7f(0x1b5)]['getActiveAttachments'](_0x3d1376);let _0x11b2ee=0x0;for(const _0x2d5dfd of _0x1a0945){_0x2d5dfd[_0x4a0d7f(0x1c1)]===_0x4a0d7f(0x1be)?_0x11b2ee+=_0x2d5dfd[_0x4a0d7f(0x1cd)]||0x0:_0x11b2ee+=0x14;}return _0x11b2ee;}catch(_0x57ab37){return this[_0x4a0d7f(0x1a5)]?.[_0x4a0d7f(0x1d0)]('Error\x20estimating\x20total\x20tokens',{'agentId':_0x3d1376,'error':_0x57ab37['message']}),0x0;}}async['getAttachmentSummary'](_0x1e7322){const _0x6d2279=a0_0x27467d;try{const _0x7637ac=await this[_0x6d2279(0x1b5)]['getActiveAttachments'](_0x1e7322),_0x56a2e7={'totalActive':_0x7637ac[_0x6d2279(0x1b0)],'contentMode':_0x7637ac['filter'](_0x163088=>_0x163088['mode']==='content')[_0x6d2279(0x1b0)],'referenceMode':_0x7637ac[_0x6d2279(0x1a3)](_0x48e574=>_0x48e574['mode']==='reference')['length'],'estimatedTokens':0x0,'files':[]};for(const _0x33cf96 of _0x7637ac){_0x56a2e7[_0x6d2279(0x1c0)]+=_0x33cf96['tokenEstimate']||0x0,_0x56a2e7['files']['push']({'fileName':_0x33cf96['fileName'],'mode':_0x33cf96[_0x6d2279(0x1c1)],'size':this[_0x6d2279(0x1ab)](_0x33cf96['size']),'tokens':_0x33cf96['tokenEstimate']||0x0});}return _0x56a2e7;}catch(_0x4def7f){return this[_0x6d2279(0x1a5)]?.[_0x6d2279(0x1d0)]('Error\x20getting\x20attachment\x20summary',{'agentId':_0x1e7322,'error':_0x4def7f[_0x6d2279(0x1c9)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}function a0_0x3beb(_0x162fb1,_0x8b3f40){_0x162fb1=_0x162fb1-0x19f;const _0x5b01b7=a0_0x5b01();let _0x3beb04=_0x5b01b7[_0x162fb1];if(a0_0x3beb['QbXOGL']===undefined){var _0x5505a2=function(_0xf2d8f8){const _0x37934c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4520a9='',_0x43c888='';for(let _0x14bfa6=0x0,_0x2831f6,_0x28f635,_0x2bb101=0x0;_0x28f635=_0xf2d8f8['charAt'](_0x2bb101++);~_0x28f635&&(_0x2831f6=_0x14bfa6%0x4?_0x2831f6*0x40+_0x28f635:_0x28f635,_0x14bfa6++%0x4)?_0x4520a9+=String['fromCharCode'](0xff&_0x2831f6>>(-0x2*_0x14bfa6&0x6)):0x0){_0x28f635=_0x37934c['indexOf'](_0x28f635);}for(let _0x5918ed=0x0,_0x56079c=_0x4520a9['length'];_0x5918ed<_0x56079c;_0x5918ed++){_0x43c888+='%'+('00'+_0x4520a9['charCodeAt'](_0x5918ed)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x43c888);};a0_0x3beb['iirojo']=_0x5505a2,a0_0x3beb['tHEmqc']={},a0_0x3beb['QbXOGL']=!![];}const _0x2b8968=_0x5b01b7[0x0],_0xbf7001=_0x162fb1+_0x2b8968,_0x51d1d8=a0_0x3beb['tHEmqc'][_0xbf7001];return!_0x51d1d8?(_0x3beb04=a0_0x3beb['iirojo'](_0x3beb04),a0_0x3beb['tHEmqc'][_0xbf7001]=_0x3beb04):_0x3beb04=_0x51d1d8,_0x3beb04;}function a0_0x5b01(){const _0x5c6ea2=['Dg9Rzw5fC3rPBwf0zq','pc9HDhrHy2HLzc1MAwXLCZ4k','mte1mJq0ne52Bw95sG','zxjYB3i','zM9YBwf0sw1Hz2vgAwXL','zM9YBwf0uMvMzxjLBMnLrMLSzq','jNf1B3q7','ody4mtCXzgjhBgPA','zMLSDgvY','zMLSzuLK','Bg9Nz2vY','Dg9gAxHLza','s0iIig1Vzgu9iMnVBNrLBNqIpGO','Aw1Hz2u','CMvWBgfJzq','iIb0ExbLpsi','zM9YBwf0qNL0zxm','nZi1mtCYs3zWy3Lm','Aw5PDgLHBgL6zq','mZm4mZmWnhfIvKfHuW','pc9MAwXLlxjLzMvYzw5Jzxm+cG','BgvUz3rO','z2v0qxr0ywnOBwvUDenVBNrLBNq','mtCYmZK5nun4z3jTqW','mtyXmtzwyw1YEK4','zM9YBwf0ugrMrMLSzq','yxr0ywnOBwvUDfnLCNzPy2u','zxnJyxbLwg1S','iIbZAxPLpsi','jMfTCdS','ica8zMLSzsbUyw1Lpsi','mtGZzhvYwgHJ','zM9YBwf0q29UDgvUDezPBgu','Bg9N','zMXVB3i','y29UDgvUDa','zxn0Aw1HDgvuB3rHBfrVA2vUCW','zxn0Aw1HDgvKvg9Rzw5Z','Bw9Kzq','cJXHDhrHy2HLzc1MAwXLCZ4k','y29UzMLN','cJXMAwXLlxjLzMvYzw5Jzxm+cG','iIbTB2rPzMLLzd0I','cIaGpc9MAwXLpG','z2v0qwn0AxzLqxr0ywnOBwvUDhm','odb4Cxfgvwu','BwvZC2fNzq','mtKYntC5m1vgqLzqqG','Dgv4Da','Cg93'];a0_0x5b01=function(){return _0x5c6ea2;};return a0_0x5b01();}export default ContextInjectionService;
|