@loxia-labs/loxia-autopilot-one 1.0.6 → 1.0.8
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/aiService.js +1 -1
- package/src/services/apiKeyManager.js +1 -1
- package/src/services/benchmarkService.js +1 -1
- package/src/services/budgetService.js +1 -1
- package/src/services/contextInjectionService.js +1 -1
- package/src/services/conversationCompactionService.js +1 -1
- package/src/services/errorHandler.js +1 -1
- package/src/services/fileAttachmentService.js +1 -1
- package/src/services/modelRouterService.js +1 -1
- package/src/services/modelsService.js +1 -1
- package/src/services/qualityInspector.js +1 -1
- package/src/services/tokenCountingService.js +1 -1
- package/src/tools/agentCommunicationTool.js +1 -1
- package/src/tools/agentDelayTool.js +1 -1
- package/src/tools/asyncToolManager.js +1 -1
- package/src/tools/baseTool.js +1 -1
- package/src/tools/browserTool.js +1 -1
- package/src/tools/cloneDetectionTool.js +1 -1
- package/src/tools/dependencyResolverTool.js +1 -1
- package/src/tools/fileContentReplaceTool.js +1 -1
- package/src/tools/fileSystemTool.js +1 -1
- package/src/tools/fileTreeTool.js +1 -1
- package/src/tools/imageTool.js +1 -1
- package/src/tools/importAnalyzerTool.js +1 -1
- package/src/tools/jobDoneTool.js +1 -1
- package/src/tools/seekTool.js +1 -1
- package/src/tools/staticAnalysisTool.js +1 -1
- package/src/tools/taskManagerTool.js +1 -1
- package/src/tools/terminalTool.js +1 -1
- package/src/tools/webTool.js +1 -1
- package/src/types/agent.js +1 -1
- package/src/types/contextReference.js +1 -1
- package/src/types/conversation.js +1 -1
- package/src/types/toolCommand.js +1 -1
- package/src/utilities/attachmentValidator.js +1 -1
- package/src/utilities/configManager.js +1 -1
- package/src/utilities/constants.js +1 -1
- package/src/utilities/directoryAccessManager.js +1 -1
- package/src/utilities/fileProcessor.js +1 -1
- package/src/utilities/logger.js +1 -1
- package/src/utilities/tagParser.js +1 -1
- package/src/utilities/toolConstants.js +1 -1
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/index-BmKxmRe3.css +1 -0
- package/web-ui/build/static/{index-CX8ZfpGw.js → index-BzXbDs8z.js} +69 -69
- package/web-ui/build/static/index-Dwg_JrlO.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x4c95(){const _0x558751=['zgvIDwC','CM9Szq','BwvZC2fNzq','r0furvDbwv9usu1ft1vu','DgHYzxnOB2XK','AxnpCgvU','CM91DgvnB2rLBa','y29UzMLN','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','y29UDMvYC2f0Aw9UtwfUywDLCNm','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','C3LZDgvT','t1bftKfj','CMv0CNLbDhrLBxb0CW','y2LYy3vPDejYzwfRzxi','Aw5MBW','yxbPs2v5twfUywDLCG','quKGC2vYDMLJzsbLCNjVCJOG','BM93','DhjHy2TvC2fNzq','n3nhAwDnyW','qu5usfjpueLdx0HbsuTv','revfufnfruTFuJe','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','qMvHCMvYia','y3vYCMvUDe1VzgvS','DML2Awq','C3rYAw5N','z2v0s2v5C0zVCLjLCxvLC3q','qu5usfjpueLdx09qvvm','AxnbCNjHEq','C3rHDhvZ','ue9tva','nw9Uzg9HsG','vu5bvvrit1jjwKve','ndGYodaYu2Hdu3fw','ywDLBNrqB29S','yJy0x2PZB24','CMv2AxnLzf9WCM9TChq','x2LZq2LYy3vPDejYzwfRzxjpCgvU','mZeWsejqtMXZ','x21HA2vjBwfNzufqsvjLCxvLC3q','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','ueHjxZq','uMf0zsbSAw1PDcbLEgnLzwrLza','C3DPDgnOtw9KzwW','yw50AhjVCgLJ','ueHj','mtm3nZuYmNf2v3n5Cq','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','C3vIC3rYAw5N','r1buxZrFtuLosq','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','CgXHDgzVCM1qCM92AwrLza','qvPvuKu','vw5RBM93BIbTB2rLBdOG','Bw9KzwW','x21HA2vbueLszxf1zxn0','C3DPDgnOqwDLBNrnB2rLBa','Aw1Nlq','BwLJCM9ZB2z0','rKfmtejbq0S','yxbWBgLJyxrPB24VANnVBG','quKGC2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzq','y29TCgfJDgL6zunVBNzLCNnHDgLVBG','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','C3LZDgvTuhjVBxb0','CMv2zxjZzq','x3n1Bw1HCML6zu1LC3nHz2vZ','CMfUzg9T','ChjVDMLKzxi','yxnZAxn0yw50','C2v0qxbPs2v5twfUywDLCG','DgvTCgvYyxr1CMu','zMLUAxnOx3jLyxnVBG','C3bLzwq','zxjYB3iT','qKfex1jfuvvfu1q','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','Dg9tDhjPBMC','vMfSAwrHDgLUzYbTB2rLBa','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','AgvHBhrOEq','DxnHz2u','mty4ndflCwT0vg8','x2nOzwnRtw9KzwXizwfSDgG','AgvHBhrOlwnOzwnR','ywDLBNrjza','sw52ywXPzcbTB2rLBdOG','u3LZDgvToIa','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','ywXS','mti0mdy5DwrZC2Dc','x2zVCM1HDezVCKf6DxjL','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','x2DLDfzLBMrVCKzYB21nB2rLBa','x2zVCM1HDezVCKfUDgHYB3bPyW','qu5usfjpueLd','CxvHBgL0Eq','CMvXDwvZDff1zxvL','x2vZDgLTyxrLvg9Rzw5Z','u0vsvKLdrv9vtKfwquLmqujmrq','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','qxv0AgvUDgLJyxrPB24GzMfPBgvKic0Gy2HLy2SGqvbjignYzwrLBNrPywXZ','BwvZC2fNzxm','uMv0CNLPBMCGAw4G','y2vPBa','y3vZDg9TqxbPs2v5CW','y29UDgvUDa','x3jLC2v0q2LYy3vPDejYzwfRzxi','D2fYBG','mtHiCwneuMK','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','C3vIC3rY','z2vUzxjHDgvjBwfNzq','tK9ux0zpvu5e','AgfUzgXLshr0CevYCM9Y','DxjS','DxnLCG','DgLTzw91Da','mZK0mJG4yNbqtxrP','C2vZC2LVBKLK','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','zMfPBhvYzxm','B3bLBMfP','Aw5JBhvKzxm','y2XHC3nPzNLfCNjVCG','C3r5Bgu','y29TCgXLDgLVBL90B2TLBNm','zMfZDa','yNvKz2v0u2vYDMLJzq','BgfZDezHAwX1CMvuAw1L','Bwf4x3rVA2vUCW','Dw5ZAgLMDa','zxjYB3i','A2v5CW','DgLTzxn0yw1W','Ahr0Chm6lY9HCgKUBg94AweUywK','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','Dg9ju09tDhjPBMC','ChvZAa','qxv0AgvUDgLJyxrPB24GzMfPBgvKihDPDgGGquKGC2vYDMLJzq','y2HVAwnLCW','C2v0','Bw9KzwXtCgvJCW','zgvLChnLzwS','x2zVCM1HDfnPBMDSzu1LC3nHz2u','C3rVCa','zgf0yq','DMvUzg9YqxbPs2v5','C3rYzwfT','rK9sqKLerevo','mJGZmZHlu1PeDvm','x2zVCM1HDezVCK9Wzw5bsq','z2v0qwDLBNq','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','BwfW','y3jLyxrLza','zxjYB3jiyw5KBgvY','yxbPs2v5','Bg9Nz2vY','l2HLywX0Aa','Bg94AwfbCgLlzxK','revfufnfruS','BgvUz3rO','CMf0zuXPBwL0zxjZ','yMfJA2vUza','mtaYnhGXmdi0','mtqXotGWofDHqxviBq','Cg93'];a0_0x4c95=function(){return _0x558751;};return a0_0x4c95();}function a0_0x179e(_0x1eb0bd,_0x2b1caa){_0x1eb0bd=_0x1eb0bd-0x186;const _0x4c9560=a0_0x4c95();let _0x179e1a=_0x4c9560[_0x1eb0bd];if(a0_0x179e['jnPcVo']===undefined){var _0x172e64=function(_0xb42407){const _0x4a62a2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x26f75f='',_0x3b14a0='';for(let _0x38d2b1=0x0,_0x142940,_0x2bf6f1,_0x1909d9=0x0;_0x2bf6f1=_0xb42407['charAt'](_0x1909d9++);~_0x2bf6f1&&(_0x142940=_0x38d2b1%0x4?_0x142940*0x40+_0x2bf6f1:_0x2bf6f1,_0x38d2b1++%0x4)?_0x26f75f+=String['fromCharCode'](0xff&_0x142940>>(-0x2*_0x38d2b1&0x6)):0x0){_0x2bf6f1=_0x4a62a2['indexOf'](_0x2bf6f1);}for(let _0x229a92=0x0,_0x4dabac=_0x26f75f['length'];_0x229a92<_0x4dabac;_0x229a92++){_0x3b14a0+='%'+('00'+_0x26f75f['charCodeAt'](_0x229a92)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b14a0);};a0_0x179e['EVsFRD']=_0x172e64,a0_0x179e['AVhOeV']={},a0_0x179e['jnPcVo']=!![];}const _0x50e7f9=_0x4c9560[0x0],_0x55edab=_0x1eb0bd+_0x50e7f9,_0x58335e=a0_0x179e['AVhOeV'][_0x55edab];return!_0x58335e?(_0x179e1a=a0_0x179e['EVsFRD'](_0x179e1a),a0_0x179e['AVhOeV'][_0x55edab]=_0x179e1a):_0x179e1a=_0x58335e,_0x179e1a;}const a0_0x150019=a0_0x179e;(function(_0x42ef73,_0x1cffe1){const _0x433730=a0_0x179e,_0x48b968=_0x42ef73();while(!![]){try{const _0x4ca118=parseInt(_0x433730(0x1f9))/0x1+-parseInt(_0x433730(0x192))/0x2*(-parseInt(_0x433730(0x214))/0x3)+parseInt(_0x433730(0x21e))/0x4*(-parseInt(_0x433730(0x1c5))/0x5)+parseInt(_0x433730(0x1c7))/0x6+-parseInt(_0x433730(0x1b8))/0x7*(parseInt(_0x433730(0x1a2))/0x8)+-parseInt(_0x433730(0x1d4))/0x9+parseInt(_0x433730(0x1cc))/0xa*(parseInt(_0x433730(0x201))/0xb);if(_0x4ca118===_0x1cffe1)break;else _0x48b968['push'](_0x48b968['shift']());}catch(_0x54796c){_0x48b968['push'](_0x48b968['shift']());}}}(a0_0x4c95,0x191d1));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x26f75f,_0x3b14a0,_0x38d2b1,_0x142940){const _0x495fec=a0_0x179e;this['config']=_0x26f75f,this[_0x495fec(0x19a)]=_0x3b14a0,this[_0x495fec(0x228)]=_0x38d2b1,this[_0x495fec(0x198)]=_0x142940,this['baseUrl']=_0x26f75f['backend']?.['baseUrl']||_0x495fec(0x22f),this['timeout']=_0x26f75f['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x26f75f[_0x495fec(0x1a0)]?.[_0x495fec(0x1b1)]||0x3,this[_0x495fec(0x19f)]=new Map(),this[_0x495fec(0x208)]=new Map(),this[_0x495fec(0x1b2)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this['_initializeModelSpecs'](),this[_0x495fec(0x1ad)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async['sendMessage'](_0x2bf6f1,_0x1909d9,_0x229a92={}){const _0x40b28d=a0_0x179e,_0x4dabac='req-'+Date[_0x40b28d(0x1b6)]()+'-'+Math['random']()[_0x40b28d(0x1f4)](0x24)[_0x40b28d(0x217)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x40b28d(0x1bb));await this['_checkRateLimit'](_0x2bf6f1);const _0x30a8fe=this['_formatMessagesForModel'](_0x1909d9,_0x2bf6f1,_0x229a92),_0x2c7db4={'model':_0x2bf6f1,'messages':_0x30a8fe,'options':{'max_tokens':this['modelSpecs'][_0x2bf6f1]?.['maxTokens']||0xfa0,'temperature':_0x229a92[_0x40b28d(0x1ee)]||0.7,'stream':_0x229a92[_0x40b28d(0x190)]||![]},'metadata':{'requestId':_0x4dabac,'agentId':_0x229a92[_0x40b28d(0x1fc)],'timestamp':new Date()['toISOString']()}};_0x229a92['systemPrompt']&&(_0x2c7db4[_0x40b28d(0x1af)]=_0x229a92[_0x40b28d(0x1e7)]);this['logger']['info']('Sending\x20message\x20to\x20model:\x20'+_0x2bf6f1,{'requestId':_0x4dabac,'agentId':_0x229a92[_0x40b28d(0x1fc)],'messageCount':Array[_0x40b28d(0x1c2)](_0x1909d9)?_0x1909d9[_0x40b28d(0x19e)]:0x1,'maxTokens':_0x2c7db4[_0x40b28d(0x22a)]});const _0xeac05e=await this[_0x40b28d(0x1de)]('/chat/completions',_0x2c7db4,_0x4dabac,{..._0x229a92,'sessionId':_0x229a92[_0x40b28d(0x21f)],'platformProvided':_0x229a92['platformProvided']||![]});return _0xeac05e[_0x40b28d(0x1f8)]&&await this[_0x40b28d(0x1b7)](_0x229a92['agentId'],_0x2bf6f1,{'prompt_tokens':_0xeac05e[_0x40b28d(0x1f8)]['prompt_tokens']||0x0,'completion_tokens':_0xeac05e[_0x40b28d(0x1f8)][_0x40b28d(0x226)]||0x0,'total_tokens':_0xeac05e[_0x40b28d(0x1f8)]['total_tokens']||0x0}),this['_resetCircuitBreaker'](),{'content':_0xeac05e['choices'][0x0]?.[_0x40b28d(0x1a6)]?.[_0x40b28d(0x211)]||'','model':_0xeac05e[_0x40b28d(0x1dd)],'tokenUsage':_0xeac05e[_0x40b28d(0x1f8)],'requestId':_0x4dabac,'finishReason':_0xeac05e[_0x40b28d(0x188)][0x0]?.[_0x40b28d(0x1ef)]};}catch(_0x538637){this['_recordFailure'](),this[_0x40b28d(0x19a)]['error']('AI\x20service\x20request\x20failed:\x20'+_0x538637['message'],{'requestId':_0x4dabac,'model':_0x2bf6f1,'agentId':_0x229a92[_0x40b28d(0x1fc)],'error':_0x538637['stack']}),await this[_0x40b28d(0x21a)](_0x538637,{'requestId':_0x4dabac,'model':_0x2bf6f1,'agentId':_0x229a92[_0x40b28d(0x1fc)]});throw _0x538637;}}async[a0_0x150019(0x1aa)](_0x2e77c4,_0x5285ef={}){const _0x4e21c6=a0_0x150019;try{const _0x47f259=MODEL_ROUTING[_0x2e77c4['toUpperCase']()]||MODEL_ROUTING[_0x4e21c6(0x1e2)],_0x331bfe=[];for(const _0xa4ae11 of _0x47f259){const _0x544bbc=await this['_checkModelHealth'](_0xa4ae11);_0x544bbc&&_0x331bfe[_0x4e21c6(0x186)](_0xa4ae11);}if(_0x331bfe[_0x4e21c6(0x19e)]===0x0)return this[_0x4e21c6(0x19a)][_0x4e21c6(0x213)]('No\x20healthy\x20models\x20available\x20for\x20task:\x20'+_0x2e77c4+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x430023=_0x331bfe[0x0];if(_0x5285ef['preferredModel']&&_0x331bfe['includes'](_0x5285ef['preferredModel']))_0x430023=_0x5285ef['preferredModel'];else{if(_0x5285ef['complexity']==='high'&&_0x331bfe['includes'](MODELS['ANTHROPIC_OPUS']))_0x430023=MODELS[_0x4e21c6(0x1c1)];else _0x5285ef[_0x4e21c6(0x1f0)]===_0x4e21c6(0x227)&&_0x331bfe[_0x4e21c6(0x223)](MODELS['ANTHROPIC_HAIKU'])&&(_0x430023=MODELS[_0x4e21c6(0x1b9)]);}return this[_0x4e21c6(0x19a)]['info'](_0x4e21c6(0x231)+_0x2e77c4,{'selectedModel':_0x430023,'availableModels':_0x331bfe['length'],'context':_0x5285ef}),_0x430023;}catch(_0x308fe4){return this['logger'][_0x4e21c6(0x22c)]('Model\x20routing\x20failed:\x20'+_0x308fe4[_0x4e21c6(0x1a6)],{'task':_0x2e77c4,'context':_0x5285ef}),MODEL_ROUTING['FALLBACK'][0x0];}}async[a0_0x150019(0x1e5)](_0x3d2b29,_0x4cb4ab){const _0x268de1=a0_0x150019,_0x5b7171=this[_0x268de1(0x18a)][_0x4cb4ab];if(!_0x5b7171)throw new Error(_0x268de1(0x1dc)+_0x4cb4ab);const _0x3b9073=_0x5b7171['contextWindow']*0.8;let _0x7d6070=0x0;const _0x5e081f=[],_0x5a1100=await Promise[_0x268de1(0x200)](_0x3d2b29['map'](async _0x4af32c=>({..._0x4af32c,'estimatedTokens':await this['_estimateTokens'](_0x4af32c[_0x268de1(0x211)],_0x4cb4ab)}))),_0x5a5f10=[..._0x5a1100][_0x268de1(0x1e8)]();for(const _0x17fbf1 of _0x5a5f10){if(_0x7d6070+_0x17fbf1['estimatedTokens']>_0x3b9073){if(_0x5e081f['length']===0x0){const _0x599f14=await this['_truncateMessage'](_0x17fbf1['content'],_0x3b9073);_0x5e081f['unshift']({..._0x17fbf1,'content':_0x599f14,'estimatedTokens':_0x3b9073});}break;}_0x5e081f['unshift'](_0x17fbf1),_0x7d6070+=_0x17fbf1['estimatedTokens'];}const _0x345e66=_0x5a1100['slice'](0x0,-_0x5e081f[_0x268de1(0x19e)]);if(_0x345e66['length']>0x0){const _0x17ee9b=await this['_summarizeMessages'](_0x345e66,_0x4cb4ab);_0x5e081f[_0x268de1(0x22b)]({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x17ee9b,'timestamp':_0x345e66[0x0]['timestamp'],'type':'summary','estimatedTokens':await this['_estimateTokens'](_0x17ee9b,_0x4cb4ab)});}return this['logger'][_0x268de1(0x1b3)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x4cb4ab,{'originalMessages':_0x3d2b29['length'],'compactizedMessages':_0x5e081f[_0x268de1(0x19e)],'estimatedTokens':_0x7d6070,'maxTokens':_0x3b9073}),_0x5e081f;}async['trackUsage'](_0xaf91b9,_0x5dc00c,_0x450d6d,_0x3af156){const _0x5b54b9=a0_0x150019;try{this[_0x5b54b9(0x228)]&&this[_0x5b54b9(0x228)]['trackUsage'](_0xaf91b9,_0x5dc00c,_0x450d6d);}catch(_0x14b366){this['logger'][_0x5b54b9(0x22c)]('Usage\x20tracking\x20failed:\x20'+_0x14b366['message']);}}async[a0_0x150019(0x21a)](_0x12bdc9,_0x1e1b4f){const _0x130fc8=a0_0x150019,_0x18aa90=this['errorHandler']?.[_0x130fc8(0x224)]?.(_0x12bdc9,_0x1e1b4f);switch(_0x12bdc9['status']||_0x12bdc9['code']){case HTTP_STATUS[_0x130fc8(0x1f2)]:this['logger'][_0x130fc8(0x22c)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x1e1b4f,'error':_0x12bdc9[_0x130fc8(0x1a6)]});throw new Error('Invalid\x20request:\x20'+_0x12bdc9['message']);case HTTP_STATUS[_0x130fc8(0x1c6)]:this['logger'][_0x130fc8(0x22c)](_0x130fc8(0x187),{'context':_0x1e1b4f});throw new Error(_0x130fc8(0x20c));case HTTP_STATUS[_0x130fc8(0x191)]:this[_0x130fc8(0x19a)]['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x1e1b4f});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x130fc8(0x219)]:this[_0x130fc8(0x19a)]['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x1e1b4f});throw new Error(_0x130fc8(0x1d6));case HTTP_STATUS['TOO_MANY_REQUESTS']:this['logger'][_0x130fc8(0x213)](_0x130fc8(0x1d0),{'context':_0x1e1b4f}),await this['_handleRateLimit'](_0x1e1b4f);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS[_0x130fc8(0x20a)]:case HTTP_STATUS[_0x130fc8(0x1a7)]:this['logger'][_0x130fc8(0x22c)]('AI\x20service\x20unavailable',{'context':_0x1e1b4f,'status':_0x12bdc9['status']}),await this['_handleServiceUnavailable'](_0x1e1b4f);throw new Error(_0x130fc8(0x1e4));default:this[_0x130fc8(0x19a)][_0x130fc8(0x22c)](_0x130fc8(0x1f6),{'context':_0x1e1b4f,'error':_0x12bdc9['message']});throw new Error(_0x130fc8(0x1b5)+_0x12bdc9[_0x130fc8(0x1a6)]);}}[a0_0x150019(0x1ed)](_0x5e141b){const _0x45b357=a0_0x150019;this['apiKeyManager']=_0x5e141b,this['logger']?.[_0x45b357(0x1b3)](_0x45b357(0x215),{'hasManager':!!_0x5e141b});}['setAgentPool'](_0x227846){const _0x5b961e=a0_0x150019;this['agentPool']=_0x227846,this[_0x5b961e(0x19a)]?.['info'](_0x5b961e(0x20b),{'hasAgentPool':!!_0x227846});}async[a0_0x150019(0x218)](_0x5eaf42,_0x65b357={}){const _0x144d9=a0_0x150019,_0x5cb1c9=_0x144d9(0x1e0)+Date['now']()+'-'+Math[_0x144d9(0x1ea)]()[_0x144d9(0x1f4)](0x24)['substr'](0x2,0x9);try{if(this[_0x144d9(0x1cb)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x5eaf42||typeof _0x5eaf42!==_0x144d9(0x1bf)||_0x5eaf42['trim']()['length']===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x5bd1af=_0x65b357[_0x144d9(0x1dd)]||'flux-1.1-pro',_0x4b7450=_0x65b357['size']||_0x144d9(0x1a1),_0x4abf7f=_0x65b357[_0x144d9(0x207)]||'standard',_0x28a427=_0x65b357['responseFormat']||'url';this['logger']['info']('Generating\x20image\x20with\x20model:\x20'+_0x5bd1af,{'requestId':_0x5cb1c9,'model':_0x5bd1af,'size':_0x4b7450,'quality':_0x4abf7f,'promptLength':_0x5eaf42['length']});const _0x541518={'prompt':_0x5eaf42,'model':_0x5bd1af,'size':_0x4b7450,'quality':_0x4abf7f,'response_format':_0x28a427,'n':0x1,'metadata':{'requestId':_0x5cb1c9,'timestamp':new Date()['toISOString']()}},_0x3d3be6=await this['_makeImageAPIRequest'](_0x541518,_0x5cb1c9,{'sessionId':_0x65b357['sessionId'],'platformProvided':_0x65b357['platformProvided']||![]});return this[_0x144d9(0x212)](),{'url':_0x3d3be6['data']?.[0x0]?.[_0x144d9(0x21b)]||null,'b64_json':_0x3d3be6['data']?.[0x0]?.[_0x144d9(0x1c9)]||null,'model':_0x3d3be6['model']||_0x5bd1af,'requestId':_0x5cb1c9,'revisedPrompt':_0x3d3be6[_0x144d9(0x18e)]?.[0x0]?.[_0x144d9(0x1ca)]||_0x5eaf42};}catch(_0x3d9197){this['_recordFailure'](),this[_0x144d9(0x19a)]['error'](_0x144d9(0x1f3)+_0x3d9197['message'],{'requestId':_0x5cb1c9,'model':_0x65b357[_0x144d9(0x1dd)],'error':_0x3d9197['stack']});throw _0x3d9197;}}async['checkServiceHealth'](){const _0x22c6b0=a0_0x150019;try{const _0x397469=await this['_makeAPIRequest'](_0x22c6b0(0x19b),{},_0x22c6b0(0x1fb));return _0x397469[_0x22c6b0(0x1c3)]===_0x22c6b0(0x1f7);}catch(_0x1cf89e){return![];}}async[a0_0x150019(0x1df)](_0x1bb148,_0x1cb8ef){const _0x2d9dc0=a0_0x150019;try{if(!this['_isValidModel'](_0x1cb8ef))throw new Error(_0x2d9dc0(0x1fd)+_0x1cb8ef);let _0x3694fc=this['conversationManagers']['get'](_0x1bb148);!_0x3694fc&&(_0x3694fc=new ConversationManager(_0x1bb148,this['logger']),this[_0x2d9dc0(0x1ad)][_0x2d9dc0(0x189)](_0x1bb148,_0x3694fc));const _0x263f63=await _0x3694fc[_0x2d9dc0(0x1d1)](_0x1cb8ef),_0xc941ea=await this[_0x2d9dc0(0x1c8)]?.[_0x2d9dc0(0x194)](_0x1bb148);return _0xc941ea&&(_0xc941ea[_0x2d9dc0(0x1bd)]=_0x1cb8ef,await this[_0x2d9dc0(0x1c8)]['persistAgentState'](_0x1bb148)),this[_0x2d9dc0(0x19a)][_0x2d9dc0(0x1b3)](_0x2d9dc0(0x1d9)+_0x1bb148,{'newModel':_0x1cb8ef,'messageCount':_0x263f63[_0x2d9dc0(0x20d)][_0x2d9dc0(0x19e)]}),{'success':!![],'agentId':_0x1bb148,'newModel':_0x1cb8ef,'conversation':_0x263f63};}catch(_0x48b6ac){this['logger']['error']('Model\x20switch\x20failed:\x20'+_0x48b6ac[_0x2d9dc0(0x1a6)],{'agentId':_0x1bb148,'newModel':_0x1cb8ef});throw _0x48b6ac;}}['_initializeModelSpecs'](){const _0x225d93=a0_0x150019,_0x3a666f={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x225d93(0x206)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x225d93(0x1c1)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x225d93(0x1b9)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS[_0x225d93(0x1b0)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS[_0x225d93(0x1d8)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS[_0x225d93(0x1b0)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x225d93(0x1ba)]]:{'provider':MODEL_PROVIDERS[_0x225d93(0x19d)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x225d93(0x1cf)]]:{'provider':MODEL_PROVIDERS[_0x225d93(0x1d3)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x225d93(0x1db),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x225d93(0x1db),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x225d93(0x1db),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x225d93(0x1db),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x3a666f;}[a0_0x150019(0x230)](_0x58f9c7,_0x58d611,_0x2650ae){const _0x26e20e=a0_0x150019,_0x41b825=this[_0x26e20e(0x18a)][_0x58d611]||{'provider':_0x26e20e(0x1db)};let _0x2f2b57;typeof _0x58f9c7===_0x26e20e(0x1bf)?_0x2f2b57=[{'role':_0x26e20e(0x21c),'content':_0x58f9c7}]:_0x2f2b57=_0x58f9c7['map'](_0x48356e=>this['_formatSingleMessage'](_0x48356e,_0x58d611));switch(_0x41b825[_0x26e20e(0x1eb)]){case MODEL_PROVIDERS[_0x26e20e(0x206)]:return this[_0x26e20e(0x205)](_0x2f2b57);case MODEL_PROVIDERS['OPENAI']:return this[_0x26e20e(0x193)](_0x2f2b57);case MODEL_PROVIDERS[_0x26e20e(0x1db)]:return this[_0x26e20e(0x202)](_0x2f2b57);default:return _0x2f2b57;}}[a0_0x150019(0x18c)](_0xc01512,_0x1b5d56){const _0x2d5b47=a0_0x150019;return{'role':_0xc01512[_0x2d5b47(0x1a5)]||_0x2d5b47(0x21c),'content':_0xc01512['content'],'timestamp':_0xc01512[_0x2d5b47(0x22e)]};}[a0_0x150019(0x205)](_0x24e95f){const _0x546fa1=a0_0x150019;return _0x24e95f[_0x546fa1(0x196)](_0x2c2985=>{const _0x39bd85=_0x546fa1;if(_0x2c2985['role']===_0x39bd85(0x1af))return{'role':_0x39bd85(0x21c),'content':_0x39bd85(0x1fe)+_0x2c2985[_0x39bd85(0x211)]};return _0x2c2985;});}['_formatForOpenAI'](_0x31bc10){return _0x31bc10;}['_formatForAzure'](_0x222958){const _0x2a0fa2=a0_0x150019;return _0x222958[_0x2a0fa2(0x196)](_0x2e9df9=>({..._0x2e9df9,'content':typeof _0x2e9df9[_0x2a0fa2(0x211)]==='string'?_0x2e9df9['content']:JSON['stringify'](_0x2e9df9[_0x2a0fa2(0x211)])}));}['_isValidModel'](_0x57c17e){const _0x591de8=a0_0x150019;this[_0x591de8(0x19a)][_0x591de8(0x1a4)](_0x591de8(0x1f5),{'model':_0x57c17e,'modelType':typeof _0x57c17e});if(this[_0x591de8(0x18a)][_0x57c17e]!==undefined)return!![];return this[_0x591de8(0x19a)]['warn'](_0x591de8(0x195),{'model':_0x57c17e,'availableModels':Object[_0x591de8(0x22d)](this[_0x591de8(0x18a)])}),![];}async[a0_0x150019(0x1fa)](_0x3ca937){return!![];}async[a0_0x150019(0x209)](_0xf0064f,_0x2a6133){const _0x103a6c=a0_0x150019;return Math[_0x103a6c(0x20f)](_0xf0064f[_0x103a6c(0x19e)]/0x4);}async['_truncateMessage'](_0x229970,_0x4a5ea0){const _0x515892=a0_0x150019,_0x21937c=_0x4a5ea0*0x4;if(_0x229970[_0x515892(0x19e)]<=_0x21937c)return _0x229970;return _0x229970[_0x515892(0x1d7)](0x0,_0x21937c-0x14)+_0x515892(0x1ae);}async[a0_0x150019(0x1e9)](_0x163629,_0x190bde){const _0xfebd2e=a0_0x150019,_0x1f9e58=_0x163629[_0xfebd2e(0x196)](_0x3794a2=>_0x3794a2[_0xfebd2e(0x1a5)]+':\x20'+_0x3794a2['content'])['join']('\x0a'),_0x22487d=0x1f4;if(_0x1f9e58[_0xfebd2e(0x19e)]<=_0x22487d)return _0x1f9e58;return _0x1f9e58[_0xfebd2e(0x1d7)](0x0,_0x22487d)+'...\x20[conversation\x20summary\x20truncated]';}async[a0_0x150019(0x1de)](_0x5ea211,_0x15e009,_0xdcb505,_0x45c3d1={}){const _0x1e1381=a0_0x150019,_0x114f92=_0x1e1381(0x1ff);let _0x256d0f,_0x493edf=null,_0x39b429=null;this['logger']?.[_0x1e1381(0x1b3)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x1e1381(0x1b4)],'sessionId':_0x45c3d1['sessionId'],'hasSessionId':!!_0x45c3d1['sessionId'],'optionsKeys':Object['keys'](_0x45c3d1),'model':_0x15e009[_0x1e1381(0x1dd)]});if(this[_0x1e1381(0x1b4)]&&_0x45c3d1[_0x1e1381(0x21f)]){const _0x273adf=this['apiKeyManager']['getKeysForRequest'](_0x45c3d1['sessionId'],{'platformProvided':_0x45c3d1[_0x1e1381(0x1da)]||![],'vendor':this[_0x1e1381(0x204)](_0x15e009[_0x1e1381(0x1dd)])});_0x493edf=_0x273adf[_0x1e1381(0x19c)],_0x39b429=_0x273adf[_0x1e1381(0x18f)],this['logger']?.[_0x1e1381(0x1a4)]('Retrieved API keys from session manager',{'sessionId':_0x45c3d1[_0x1e1381(0x21f)],'hasLoxiaKey':!!_0x493edf,'hasVendorKey':!!_0x39b429,'vendor':this[_0x1e1381(0x204)](_0x15e009[_0x1e1381(0x1dd)])});}!_0x493edf&&_0x45c3d1['apiKey']&&(_0x493edf=_0x45c3d1[_0x1e1381(0x199)]);!_0x493edf&&this['config']['apiKey']&&(_0x493edf=this['config']['apiKey']);if(!_0x493edf)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x40ed17=_0x15e009['model'],_0x1d0f3c={'conversationId':_0xdcb505,'message':_0x15e009['messages'][_0x15e009['messages']['length']-0x1]?.['content']||'','messages':_0x15e009['messages'],'model':_0x40ed17,'requestId':_0xdcb505,'options':_0x15e009['options']||{},'platformProvided':_0x45c3d1[_0x1e1381(0x1da)]||![]};_0x15e009[_0x1e1381(0x1af)]&&(_0x1d0f3c[_0x1e1381(0x1e7)]=_0x15e009[_0x1e1381(0x1af)]);_0x45c3d1['platformProvided']?_0x1d0f3c['apiKey']=_0x493edf:(_0x39b429&&(_0x1d0f3c['vendorApiKey']=_0x39b429),_0x45c3d1[_0x1e1381(0x210)]&&(_0x1d0f3c[_0x1e1381(0x210)]=_0x45c3d1['customApiKeys']),_0x1d0f3c['apiKey']=_0x493edf);for(let _0x158635=0x1;_0x158635<=this[_0x1e1381(0x1b1)];_0x158635++){try{this[_0x1e1381(0x19a)]['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x114f92,'model':_0x15e009[_0x1e1381(0x1dd)],'requestId':_0xdcb505,'attempt':_0x158635,'hasApiKey':!!_0x493edf});const _0x5a7be9=await fetch(_0x114f92,{'method':'POST','headers':{'Content-Type':_0x1e1381(0x1e3),'Authorization':'Bearer\x20'+_0x493edf,'X-Request-ID':_0xdcb505},'body':JSON['stringify'](_0x1d0f3c),'timeout':this[_0x1e1381(0x21d)]});if(!_0x5a7be9['ok']){const _0x52e386=await _0x5a7be9['text'](),_0x2bd809=new Error('HTTP\x20'+_0x5a7be9[_0x1e1381(0x1c3)]+':\x20'+_0x5a7be9['statusText']+(_0x52e386?'\x20-\x20'+_0x52e386:''));_0x2bd809['status']=_0x5a7be9['status'];throw _0x2bd809;}const _0x4e1642=await _0x5a7be9['json']();return{'choices':[{'message':{'content':_0x4e1642['content']||'','role':'assistant'},'finish_reason':_0x4e1642['finishReason']||'stop'}],'usage':_0x4e1642[_0x1e1381(0x1f8)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4e1642['model']||_0x15e009[_0x1e1381(0x1dd)],'id':_0x4e1642['requestId']||_0xdcb505};}catch(_0x25eb26){_0x256d0f=_0x25eb26,this[_0x1e1381(0x19a)]['warn'](_0x1e1381(0x1ac),{'attempt':_0x158635,'requestId':_0xdcb505,'error':_0x25eb26[_0x1e1381(0x1a6)],'status':_0x25eb26[_0x1e1381(0x1c3)]});if(_0x158635<this[_0x1e1381(0x1b1)]){const _0x56f1e1=Math[_0x1e1381(0x1a3)](0x2,_0x158635)*0x3e8;this[_0x1e1381(0x19a)]['warn'](_0x1e1381(0x20e)+_0x56f1e1+'ms',{'attempt':_0x158635,'requestId':_0xdcb505}),await new Promise(_0x57c1b2=>setTimeout(_0x57c1b2,_0x56f1e1));}}}this['logger']['error'](_0x1e1381(0x203),{'requestId':_0xdcb505,'error':_0x256d0f[_0x1e1381(0x1a6)]});const _0x40187b=_0x256d0f['message']&&_0x256d0f['message']['includes']('No\x20API\x20key\x20configured');if(_0x40187b)throw new Error('API\x20Configuration\x20Error:\x20'+_0x256d0f[_0x1e1381(0x1a6)]);return{'choices':[{'message':{'content':_0x1e1381(0x1e6)+_0x256d0f[_0x1e1381(0x1a6)],'role':_0x1e1381(0x1ec)},'finish_reason':_0x1e1381(0x18d)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x15e009['model'],'id':_0x1e1381(0x1f1)+_0xdcb505,'error':_0x256d0f['message']};}async[a0_0x150019(0x1cd)](_0x3ce2b9,_0x93e30a,_0x27d485={}){const _0x36df8a=a0_0x150019,_0x38dacb='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0xa44334,_0x4e0c01=null,_0x44e7b0=null;this['logger']?.[_0x36df8a(0x1b3)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x36df8a(0x1b4)],'sessionId':_0x27d485[_0x36df8a(0x21f)],'hasSessionId':!!_0x27d485[_0x36df8a(0x21f)],'model':_0x3ce2b9[_0x36df8a(0x1dd)]});if(this['apiKeyManager']&&_0x27d485['sessionId']){const _0x4c41d2=this['apiKeyManager'][_0x36df8a(0x1c0)](_0x27d485['sessionId'],{'platformProvided':_0x27d485[_0x36df8a(0x1da)]||![],'vendor':this[_0x36df8a(0x204)](_0x3ce2b9[_0x36df8a(0x1dd)])});_0x4e0c01=_0x4c41d2[_0x36df8a(0x19c)],_0x44e7b0=_0x4c41d2['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x27d485[_0x36df8a(0x21f)],'hasLoxiaKey':!!_0x4e0c01,'hasVendorKey':!!_0x44e7b0});}!_0x4e0c01&&_0x27d485['apiKey']&&(_0x4e0c01=_0x27d485[_0x36df8a(0x199)]);!_0x4e0c01&&this[_0x36df8a(0x1ab)][_0x36df8a(0x199)]&&(_0x4e0c01=this[_0x36df8a(0x1ab)][_0x36df8a(0x199)]);if(!_0x4e0c01)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x3b149b={'prompt':_0x3ce2b9['prompt'],'model':_0x3ce2b9['model']||'azure-openai-dalle3','size':_0x3ce2b9['size'],'quality':_0x3ce2b9['quality'],'style':_0x3ce2b9[_0x36df8a(0x225)]||_0x36df8a(0x1be),'n':_0x3ce2b9['n']||0x1,'requestId':_0x93e30a};for(let _0x5de402=0x1;_0x5de402<=this['retryAttempts'];_0x5de402++){try{this[_0x36df8a(0x19a)]['info'](_0x36df8a(0x1ce),{'url':_0x38dacb,'model':_0x3ce2b9[_0x36df8a(0x1dd)],'requestId':_0x93e30a,'attempt':_0x5de402,'hasApiKey':!!_0x4e0c01});const _0x2b2bc9=await fetch(_0x38dacb,{'method':_0x36df8a(0x1c4),'headers':{'Content-Type':_0x36df8a(0x1e3),'Authorization':_0x36df8a(0x1bc)+_0x4e0c01,'X-Request-ID':_0x93e30a},'body':JSON['stringify'](_0x3b149b),'timeout':this[_0x36df8a(0x21d)]*0x2});if(!_0x2b2bc9['ok']){const _0x3d25bb=await _0x2b2bc9['text'](),_0x430e39=new Error('HTTP\x20'+_0x2b2bc9[_0x36df8a(0x1c3)]+':\x20'+_0x2b2bc9['statusText']+(_0x3d25bb?'\x20-\x20'+_0x3d25bb:''));_0x430e39['status']=_0x2b2bc9['status'];throw _0x430e39;}const _0x1ab511=await _0x2b2bc9['json']();return{'data':_0x1ab511['images']||[],'model':_0x1ab511['model']||_0x3ce2b9['model'],'created':_0x1ab511[_0x36df8a(0x197)]||Date[_0x36df8a(0x1b6)](),'usage':_0x1ab511['usage']};}catch(_0x3664a2){_0xa44334=_0x3664a2,this['logger'][_0x36df8a(0x213)](_0x36df8a(0x1d5),{'attempt':_0x5de402,'requestId':_0x93e30a,'error':_0x3664a2[_0x36df8a(0x1a6)],'status':_0x3664a2['status']});if(_0x5de402<this[_0x36df8a(0x1b1)]){const _0x2c1777=Math[_0x36df8a(0x1a3)](0x2,_0x5de402)*0x3e8;this[_0x36df8a(0x19a)]['warn'](_0x36df8a(0x20e)+_0x2c1777+'ms',{'attempt':_0x5de402,'requestId':_0x93e30a}),await new Promise(_0x2a44d8=>setTimeout(_0x2a44d8,_0x2c1777));}}}this['logger'][_0x36df8a(0x22c)]('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x93e30a,'error':_0xa44334[_0x36df8a(0x1a6)]});throw new Error('Image\x20generation\x20failed:\x20'+_0xa44334['message']);}async['_checkRateLimit'](_0xbcdb7f){await new Promise(_0x9671e9=>setTimeout(_0x9671e9,0x64));}async['_handleRateLimit'](_0x726a2f){const _0x1f4d84=a0_0x150019,_0x740181=0xea60;this['logger'][_0x1f4d84(0x1b3)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x740181+'ms',_0x726a2f),await new Promise(_0x171071=>setTimeout(_0x171071,_0x740181));}async[a0_0x150019(0x220)](_0xb796fc){this['_recordFailure']();const _0x4031ab=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x4031ab+'ms',_0xb796fc),await new Promise(_0x3a0db5=>setTimeout(_0x3a0db5,_0x4031ab));}['_isCircuitBreakerOpen'](){const _0x5595c8=a0_0x150019;if(!this[_0x5595c8(0x1b2)][_0x5595c8(0x1a9)])return![];const _0x54c014=Date[_0x5595c8(0x1b6)]()-this['circuitBreaker'][_0x5595c8(0x229)];if(_0x54c014>this[_0x5595c8(0x1b2)]['timeout'])return this['circuitBreaker'][_0x5595c8(0x1a9)]=![],this[_0x5595c8(0x1b2)][_0x5595c8(0x221)]=0x0,![];return!![];}['_recordFailure'](){const _0x34a3fd=a0_0x150019;this['circuitBreaker'][_0x34a3fd(0x221)]++,this[_0x34a3fd(0x1b2)][_0x34a3fd(0x229)]=Date[_0x34a3fd(0x1b6)](),this[_0x34a3fd(0x1b2)]['failures']>=this[_0x34a3fd(0x1b2)][_0x34a3fd(0x1a8)]&&(this['circuitBreaker']['isOpen']=!![],this[_0x34a3fd(0x19a)]['warn'](_0x34a3fd(0x216)));}['_resetCircuitBreaker'](){const _0x26220=a0_0x150019;this[_0x26220(0x1b2)]['failures']>0x0&&(this[_0x26220(0x1b2)]['failures']=0x0,this['circuitBreaker'][_0x26220(0x1a9)]=![],this[_0x26220(0x19a)][_0x26220(0x1b3)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x51521f){const _0xee6e66=a0_0x150019;if(!_0x51521f)return null;const _0x13f499=_0x51521f['toLowerCase']();if(_0x13f499[_0xee6e66(0x223)](_0xee6e66(0x1d2))||_0x13f499['includes']('claude'))return'anthropic';else{if(_0x13f499['includes'](_0xee6e66(0x222))||_0x13f499[_0xee6e66(0x223)]('gpt'))return _0xee6e66(0x222);else{if(_0x13f499[_0xee6e66(0x223)]('deepseek'))return _0xee6e66(0x18b);else{if(_0x13f499[_0xee6e66(0x223)]('phi'))return _0xee6e66(0x1e1);}}}return null;}}class ConversationManager{constructor(_0x54e079,_0x4665ea){const _0x26f1bb=a0_0x150019;this[_0x26f1bb(0x1fc)]=_0x54e079,this['logger']=_0x4665ea,this['conversations']=new Map();}async[a0_0x150019(0x1d1)](_0x337477){const _0x378ce6=a0_0x150019;return{'messages':[],'model':_0x337477,'lastUpdated':new Date()[_0x378ce6(0x232)]()};}}export default AIService;
|
|
1
|
+
const a0_0x4c22d6=a0_0xa457;(function(_0x2fb4a2,_0x3296ee){const _0xa0e36c=a0_0xa457,_0xbf114b=_0x2fb4a2();while(!![]){try{const _0x33afff=-parseInt(_0xa0e36c(0x1b7))/0x1*(-parseInt(_0xa0e36c(0x1c5))/0x2)+-parseInt(_0xa0e36c(0x1aa))/0x3+-parseInt(_0xa0e36c(0x181))/0x4+-parseInt(_0xa0e36c(0x202))/0x5*(parseInt(_0xa0e36c(0x219))/0x6)+parseInt(_0xa0e36c(0x1e6))/0x7+parseInt(_0xa0e36c(0x196))/0x8*(parseInt(_0xa0e36c(0x205))/0x9)+parseInt(_0xa0e36c(0x200))/0xa;if(_0x33afff===_0x3296ee)break;else _0xbf114b['push'](_0xbf114b['shift']());}catch(_0x210b59){_0xbf114b['push'](_0xbf114b['shift']());}}}(a0_0x1bf8,0x43400));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x29c8a4,_0x451f6d,_0x4e9209,_0x1bcdf1){const _0x98222c=a0_0xa457;this['config']=_0x29c8a4,this['logger']=_0x451f6d,this[_0x98222c(0x1ab)]=_0x4e9209,this['errorHandler']=_0x1bcdf1,this[_0x98222c(0x193)]=_0x29c8a4[_0x98222c(0x19f)]?.[_0x98222c(0x193)]||_0x98222c(0x21d),this['timeout']=_0x29c8a4['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x29c8a4[_0x98222c(0x19f)]?.['retryAttempts']||0x3,this[_0x98222c(0x209)]=new Map(),this[_0x98222c(0x1ca)]=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this['_initializeModelSpecs'](),this[_0x98222c(0x217)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async[a0_0x4c22d6(0x19a)](_0x36186f,_0x3c0e73,_0x1ace94={}){const _0x231450=a0_0x4c22d6,_0x1c1ce9='req-'+Date[_0x231450(0x1a4)]()+'-'+Math['random']()[_0x231450(0x182)](0x24)['substr'](0x2,0x9);try{if(this[_0x231450(0x1d3)]())throw new Error(_0x231450(0x1ef));await this[_0x231450(0x189)](_0x36186f);const _0x4425d0=this[_0x231450(0x1be)](_0x3c0e73,_0x36186f,_0x1ace94),_0x151c08={'model':_0x36186f,'messages':_0x4425d0,'options':{'max_tokens':this[_0x231450(0x203)][_0x36186f]?.['maxTokens']||0xfa0,'temperature':_0x1ace94[_0x231450(0x1c4)]||0.7,'stream':_0x1ace94[_0x231450(0x191)]||![]},'metadata':{'requestId':_0x1c1ce9,'agentId':_0x1ace94['agentId'],'timestamp':new Date()['toISOString']()}};_0x1ace94['systemPrompt']&&(_0x151c08['system']=_0x1ace94['systemPrompt']);this['logger'][_0x231450(0x183)]('Sending\x20message\x20to\x20model:\x20'+_0x36186f,{'requestId':_0x1c1ce9,'agentId':_0x1ace94[_0x231450(0x1b2)],'messageCount':Array['isArray'](_0x3c0e73)?_0x3c0e73['length']:0x1,'maxTokens':_0x151c08['max_tokens']});const _0x17725e=await this['_makeAPIRequest']('/chat/completions',_0x151c08,_0x1c1ce9,{..._0x1ace94,'sessionId':_0x1ace94['sessionId'],'platformProvided':_0x1ace94[_0x231450(0x194)]||![]});return _0x17725e['usage']&&await this[_0x231450(0x187)](_0x1ace94['agentId'],_0x36186f,{'prompt_tokens':_0x17725e['usage']['prompt_tokens']||0x0,'completion_tokens':_0x17725e[_0x231450(0x1ec)]['completion_tokens']||0x0,'total_tokens':_0x17725e[_0x231450(0x1ec)][_0x231450(0x1a5)]||0x0}),this[_0x231450(0x1e1)](),{'content':_0x17725e['choices'][0x0]?.['message']?.[_0x231450(0x20c)]||'','model':_0x17725e[_0x231450(0x1bc)],'tokenUsage':_0x17725e[_0x231450(0x1ec)],'requestId':_0x1c1ce9,'finishReason':_0x17725e[_0x231450(0x204)][0x0]?.['finish_reason']};}catch(_0x2453bd){this['_recordFailure'](),this[_0x231450(0x18a)][_0x231450(0x1ee)](_0x231450(0x1a8)+_0x2453bd[_0x231450(0x1d4)],{'requestId':_0x1c1ce9,'model':_0x36186f,'agentId':_0x1ace94['agentId'],'error':_0x2453bd[_0x231450(0x1d5)]}),await this[_0x231450(0x1f3)](_0x2453bd,{'requestId':_0x1c1ce9,'model':_0x36186f,'agentId':_0x1ace94[_0x231450(0x1b2)]});throw _0x2453bd;}}async[a0_0x4c22d6(0x17b)](_0xe76ff6,_0x15ec10={}){const _0x3f24b4=a0_0x4c22d6;try{const _0x1e97b4=MODEL_ROUTING[_0xe76ff6[_0x3f24b4(0x1e0)]()]||MODEL_ROUTING[_0x3f24b4(0x1c1)],_0x7e43bb=[];for(const _0x3f2438 of _0x1e97b4){const _0x551825=await this[_0x3f24b4(0x17d)](_0x3f2438);_0x551825&&_0x7e43bb['push'](_0x3f2438);}if(_0x7e43bb['length']===0x0)return this['logger']['warn'](_0x3f24b4(0x195)+_0xe76ff6+_0x3f24b4(0x1d7)),MODEL_ROUTING[_0x3f24b4(0x1c1)][0x0];let _0x377e4c=_0x7e43bb[0x0];if(_0x15ec10['preferredModel']&&_0x7e43bb['includes'](_0x15ec10['preferredModel']))_0x377e4c=_0x15ec10[_0x3f24b4(0x1cd)];else{if(_0x15ec10[_0x3f24b4(0x1c7)]===_0x3f24b4(0x1d0)&&_0x7e43bb['includes'](MODELS['ANTHROPIC_OPUS']))_0x377e4c=MODELS['ANTHROPIC_OPUS'];else _0x15ec10['speed']==='fast'&&_0x7e43bb['includes'](MODELS[_0x3f24b4(0x1e4)])&&(_0x377e4c=MODELS['ANTHROPIC_HAIKU']);}return this['logger']['info']('Model\x20routed\x20for\x20task:\x20'+_0xe76ff6,{'selectedModel':_0x377e4c,'availableModels':_0x7e43bb['length'],'context':_0x15ec10}),_0x377e4c;}catch(_0x5a12a9){return this['logger']['error']('Model\x20routing\x20failed:\x20'+_0x5a12a9['message'],{'task':_0xe76ff6,'context':_0x15ec10}),MODEL_ROUTING['FALLBACK'][0x0];}}async[a0_0x4c22d6(0x1af)](_0x1ed3da,_0x2cc762){const _0x42c5aa=a0_0x4c22d6,_0x45bbce=this['modelSpecs'][_0x2cc762];if(!_0x45bbce)throw new Error('Unknown\x20model:\x20'+_0x2cc762);const _0x559cf5=_0x45bbce[_0x42c5aa(0x210)]*0.8;let _0x121f12=0x0;const _0x56256e=[],_0x1a47a0=await Promise[_0x42c5aa(0x1e3)](_0x1ed3da[_0x42c5aa(0x212)](async _0x2cde7c=>({..._0x2cde7c,'estimatedTokens':await this[_0x42c5aa(0x1bb)](_0x2cde7c[_0x42c5aa(0x20c)],_0x2cc762)}))),_0x458317=[..._0x1a47a0][_0x42c5aa(0x1de)]();for(const _0x41f2e3 of _0x458317){if(_0x121f12+_0x41f2e3[_0x42c5aa(0x1b3)]>_0x559cf5){if(_0x56256e['length']===0x0){const _0x20c607=await this['_truncateMessage'](_0x41f2e3['content'],_0x559cf5);_0x56256e['unshift']({..._0x41f2e3,'content':_0x20c607,'estimatedTokens':_0x559cf5});}break;}_0x56256e['unshift'](_0x41f2e3),_0x121f12+=_0x41f2e3[_0x42c5aa(0x1b3)];}const _0x5d999e=_0x1a47a0['slice'](0x0,-_0x56256e[_0x42c5aa(0x1dc)]);if(_0x5d999e['length']>0x0){const _0x4488f3=await this['_summarizeMessages'](_0x5d999e,_0x2cc762);_0x56256e['unshift']({'role':_0x42c5aa(0x1eb),'content':'Previous\x20conversation\x20summary:\x20'+_0x4488f3,'timestamp':_0x5d999e[0x0]['timestamp'],'type':'summary','estimatedTokens':await this[_0x42c5aa(0x1bb)](_0x4488f3,_0x2cc762)});}return this['logger'][_0x42c5aa(0x183)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x2cc762,{'originalMessages':_0x1ed3da['length'],'compactizedMessages':_0x56256e['length'],'estimatedTokens':_0x121f12,'maxTokens':_0x559cf5}),_0x56256e;}async[a0_0x4c22d6(0x187)](_0x2a085c,_0x3ec304,_0x348b07,_0x4ede6d){const _0x55cd70=a0_0x4c22d6;try{this['budgetService']&&this[_0x55cd70(0x1ab)]['trackUsage'](_0x2a085c,_0x3ec304,_0x348b07);}catch(_0x6724ea){this['logger']['error'](_0x55cd70(0x19e)+_0x6724ea[_0x55cd70(0x1d4)]);}}async[a0_0x4c22d6(0x1f3)](_0x362f27,_0x2b4f4b){const _0x1aaaeb=a0_0x4c22d6,_0x18fc7b=this[_0x1aaaeb(0x1a2)]?.[_0x1aaaeb(0x1c9)]?.(_0x362f27,_0x2b4f4b);switch(_0x362f27['status']||_0x362f27[_0x1aaaeb(0x18e)]){case HTTP_STATUS['BAD_REQUEST']:this['logger'][_0x1aaaeb(0x1ee)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x2b4f4b,'error':_0x362f27['message']});throw new Error(_0x1aaaeb(0x18f)+_0x362f27[_0x1aaaeb(0x1d4)]);case HTTP_STATUS[_0x1aaaeb(0x1fe)]:this['logger'][_0x1aaaeb(0x1ee)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x2b4f4b});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x1aaaeb(0x18a)]['error'](_0x1aaaeb(0x1f8),{'context':_0x2b4f4b});throw new Error(_0x1aaaeb(0x1b5));case HTTP_STATUS[_0x1aaaeb(0x179)]:this[_0x1aaaeb(0x18a)]['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x2b4f4b});throw new Error(_0x1aaaeb(0x1a3));case HTTP_STATUS[_0x1aaaeb(0x21a)]:this[_0x1aaaeb(0x18a)][_0x1aaaeb(0x1b0)]('Rate\x20limit\x20exceeded',{'context':_0x2b4f4b}),await this['_handleRateLimit'](_0x2b4f4b);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS[_0x1aaaeb(0x21b)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x1aaaeb(0x198)]:this['logger']['error'](_0x1aaaeb(0x1e9),{'context':_0x2b4f4b,'status':_0x362f27[_0x1aaaeb(0x192)]}),await this['_handleServiceUnavailable'](_0x2b4f4b);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger'][_0x1aaaeb(0x1ee)]('Unknown\x20AI\x20service\x20error',{'context':_0x2b4f4b,'error':_0x362f27['message']});throw new Error('AI\x20service\x20error:\x20'+_0x362f27[_0x1aaaeb(0x1d4)]);}}['setApiKeyManager'](_0x18e299){const _0x455558=a0_0x4c22d6;this[_0x455558(0x1d6)]=_0x18e299,this['logger']?.['info']('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x18e299});}[a0_0x4c22d6(0x1c3)](_0x3aef81){const _0x3e3b26=a0_0x4c22d6;this[_0x3e3b26(0x18d)]=_0x3aef81,this['logger']?.['info']('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x3aef81});}async[a0_0x4c22d6(0x213)](_0x542e08,_0x57e17d={}){const _0x599a58=a0_0x4c22d6,_0x44f4c6='img-'+Date[_0x599a58(0x1a4)]()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x542e08||typeof _0x542e08!=='string'||_0x542e08[_0x599a58(0x214)]()[_0x599a58(0x1dc)]===0x0)throw new Error(_0x599a58(0x20f));const _0x416600=_0x57e17d[_0x599a58(0x1bc)]||_0x599a58(0x20e),_0x3f1389=_0x57e17d[_0x599a58(0x1c0)]||_0x599a58(0x1cf),_0x17053a=_0x57e17d['quality']||'standard',_0x2156e2=_0x57e17d[_0x599a58(0x1fa)]||'url';this[_0x599a58(0x18a)]['info'](_0x599a58(0x1ff)+_0x416600,{'requestId':_0x44f4c6,'model':_0x416600,'size':_0x3f1389,'quality':_0x17053a,'promptLength':_0x542e08['length']});const _0xbb889e={'prompt':_0x542e08,'model':_0x416600,'size':_0x3f1389,'quality':_0x17053a,'response_format':_0x2156e2,'n':0x1,'metadata':{'requestId':_0x44f4c6,'timestamp':new Date()['toISOString']()}},_0x5b65c1=await this[_0x599a58(0x1bf)](_0xbb889e,_0x44f4c6,{'sessionId':_0x57e17d['sessionId'],'platformProvided':_0x57e17d[_0x599a58(0x194)]||![]});return this[_0x599a58(0x1e1)](),{'url':_0x5b65c1[_0x599a58(0x208)]?.[0x0]?.[_0x599a58(0x21c)]||null,'b64_json':_0x5b65c1['data']?.[0x0]?.[_0x599a58(0x1a0)]||null,'model':_0x5b65c1['model']||_0x416600,'requestId':_0x44f4c6,'revisedPrompt':_0x5b65c1['data']?.[0x0]?.[_0x599a58(0x1f6)]||_0x542e08};}catch(_0x263ca8){this['_recordFailure'](),this['logger'][_0x599a58(0x1ee)]('Image\x20generation\x20failed:\x20'+_0x263ca8['message'],{'requestId':_0x44f4c6,'model':_0x57e17d['model'],'error':_0x263ca8[_0x599a58(0x1d5)]});throw _0x263ca8;}}async[a0_0x4c22d6(0x19c)](){const _0x2ed4b7=a0_0x4c22d6;try{const _0x41b794=await this[_0x2ed4b7(0x1d1)](_0x2ed4b7(0x1df),{},'health-check');return _0x41b794[_0x2ed4b7(0x192)]==='healthy';}catch(_0x12c10c){return![];}}async['switchAgentModel'](_0x3c6d56,_0x32c9b8){const _0x44b508=a0_0x4c22d6;try{if(!this['_isValidModel'](_0x32c9b8))throw new Error(_0x44b508(0x1db)+_0x32c9b8);let _0x17f5ee=this['conversationManagers']['get'](_0x3c6d56);!_0x17f5ee&&(_0x17f5ee=new ConversationManager(_0x3c6d56,this['logger']),this[_0x44b508(0x217)]['set'](_0x3c6d56,_0x17f5ee));const _0x36f745=await _0x17f5ee['switchModel'](_0x32c9b8),_0x100c47=await this[_0x44b508(0x18d)]?.['getAgent'](_0x3c6d56);return _0x100c47&&(_0x100c47[_0x44b508(0x207)]=_0x32c9b8,await this['agentPool']['persistAgentState'](_0x3c6d56)),this[_0x44b508(0x18a)][_0x44b508(0x183)](_0x44b508(0x17f)+_0x3c6d56,{'newModel':_0x32c9b8,'messageCount':_0x36f745['messages']['length']}),{'success':!![],'agentId':_0x3c6d56,'newModel':_0x32c9b8,'conversation':_0x36f745};}catch(_0x205f6f){this[_0x44b508(0x18a)]['error'](_0x44b508(0x19d)+_0x205f6f['message'],{'agentId':_0x3c6d56,'newModel':_0x32c9b8});throw _0x205f6f;}}['_initializeModelSpecs'](){const _0x154fe1=a0_0x4c22d6,_0x4e048c={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x185)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x154fe1(0x1fc)]]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x185)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x185)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x1da)],'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['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[_0x154fe1(0x1da)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x154fe1(0x1f1)]]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x1d8)],'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':_0x154fe1(0x1bd),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x154fe1(0x1bd),'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':_0x154fe1(0x1bd),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x154fe1(0x1bd),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x4e048c;}[a0_0x4c22d6(0x1be)](_0x54deec,_0x258f5d,_0x53168e){const _0x2ea61a=a0_0x4c22d6,_0xa76cef=this['modelSpecs'][_0x258f5d]||{'provider':'AZURE'};let _0x49e53a;typeof _0x54deec===_0x2ea61a(0x1cc)?_0x49e53a=[{'role':_0x2ea61a(0x1b1),'content':_0x54deec}]:_0x49e53a=_0x54deec[_0x2ea61a(0x212)](_0x27c0e2=>this[_0x2ea61a(0x1c6)](_0x27c0e2,_0x258f5d));switch(_0xa76cef[_0x2ea61a(0x186)]){case MODEL_PROVIDERS['ANTHROPIC']:return this['_formatForAnthropic'](_0x49e53a);case MODEL_PROVIDERS['OPENAI']:return this[_0x2ea61a(0x1f2)](_0x49e53a);case MODEL_PROVIDERS[_0x2ea61a(0x1bd)]:return this['_formatForAzure'](_0x49e53a);default:return _0x49e53a;}}['_formatSingleMessage'](_0x280d00,_0x3ba1f6){const _0x5ee02a=a0_0x4c22d6;return{'role':_0x280d00['role']||_0x5ee02a(0x1b1),'content':_0x280d00['content'],'timestamp':_0x280d00['timestamp']};}['_formatForAnthropic'](_0x1d164b){return _0x1d164b['map'](_0x4fcbb3=>{const _0x23701e=a0_0xa457;if(_0x4fcbb3['role']===_0x23701e(0x1eb))return{'role':_0x23701e(0x1b1),'content':'System:\x20'+_0x4fcbb3[_0x23701e(0x20c)]};return _0x4fcbb3;});}[a0_0x4c22d6(0x1f2)](_0x482f22){return _0x482f22;}['_formatForAzure'](_0x25997b){const _0x5b6afb=a0_0x4c22d6;return _0x25997b['map'](_0x4513dd=>({..._0x4513dd,'content':typeof _0x4513dd[_0x5b6afb(0x20c)]==='string'?_0x4513dd['content']:JSON['stringify'](_0x4513dd[_0x5b6afb(0x20c)])}));}[a0_0x4c22d6(0x1b6)](_0x1a03fc){const _0x1ff307=a0_0x4c22d6;this['logger'][_0x1ff307(0x19b)]('Validating\x20model',{'model':_0x1a03fc,'modelType':typeof _0x1a03fc});if(this[_0x1ff307(0x203)][_0x1a03fc]!==undefined)return!![];return this['logger'][_0x1ff307(0x1b0)](_0x1ff307(0x188),{'model':_0x1a03fc,'availableModels':Object['keys'](this[_0x1ff307(0x203)])}),![];}async[a0_0x4c22d6(0x17d)](_0x973ba9){return!![];}async[a0_0x4c22d6(0x1bb)](_0x535a12,_0x433001){return Math['ceil'](_0x535a12['length']/0x4);}async[a0_0x4c22d6(0x1ce)](_0x17f4e0,_0x3f2486){const _0x4c5bd1=a0_0x4c22d6,_0x491278=_0x3f2486*0x4;if(_0x17f4e0['length']<=_0x491278)return _0x17f4e0;return _0x17f4e0['substring'](0x0,_0x491278-0x14)+_0x4c5bd1(0x206);}async['_summarizeMessages'](_0x16e3b1,_0x55de4f){const _0x3d4430=a0_0x4c22d6,_0x1369e5=_0x16e3b1[_0x3d4430(0x212)](_0x41feb1=>_0x41feb1['role']+':\x20'+_0x41feb1[_0x3d4430(0x20c)])['join']('\x0a'),_0x4f5b46=0x1f4;if(_0x1369e5[_0x3d4430(0x1dc)]<=_0x4f5b46)return _0x1369e5;return _0x1369e5['substring'](0x0,_0x4f5b46)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x3e6882,_0x433b70,_0x3ee6a1,_0x1167e4={}){const _0x211093=a0_0x4c22d6,_0x3a625f='https://autopilot-api.azurewebsites.net/llm/chat';let _0x2f5417,_0x18d63b=null,_0x598512=null;this[_0x211093(0x18a)]?.['info'](_0x211093(0x1e8),{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x1167e4[_0x211093(0x1d9)],'hasSessionId':!!_0x1167e4['sessionId'],'optionsKeys':Object['keys'](_0x1167e4),'model':_0x433b70['model']});if(this[_0x211093(0x1d6)]&&_0x1167e4['sessionId']){const _0xe37fce=this[_0x211093(0x1d6)][_0x211093(0x1f4)](_0x1167e4[_0x211093(0x1d9)],{'platformProvided':_0x1167e4['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0x433b70[_0x211093(0x1bc)])});_0x18d63b=_0xe37fce[_0x211093(0x1cb)],_0x598512=_0xe37fce['vendorApiKey'],this['logger']?.[_0x211093(0x19b)]('Retrieved API keys from session manager',{'sessionId':_0x1167e4['sessionId'],'hasLoxiaKey':!!_0x18d63b,'hasVendorKey':!!_0x598512,'vendor':this[_0x211093(0x1ae)](_0x433b70['model'])});}!_0x18d63b&&_0x1167e4['apiKey']&&(_0x18d63b=_0x1167e4[_0x211093(0x1c8)]);!_0x18d63b&&this[_0x211093(0x201)]['apiKey']&&(_0x18d63b=this['config'][_0x211093(0x1c8)]);if(!_0x18d63b)throw new Error(_0x211093(0x216));const _0x2634d6=_0x433b70['model'],_0x16a0a5={'conversationId':_0x3ee6a1,'message':_0x433b70[_0x211093(0x1b8)][_0x433b70[_0x211093(0x1b8)]['length']-0x1]?.[_0x211093(0x20c)]||'','messages':_0x433b70['messages'],'model':_0x2634d6,'requestId':_0x3ee6a1,'options':_0x433b70['options']||{},'platformProvided':_0x1167e4['platformProvided']||![]};_0x433b70[_0x211093(0x1eb)]&&(_0x16a0a5[_0x211093(0x1e7)]=_0x433b70['system']);_0x1167e4[_0x211093(0x194)]?_0x16a0a5[_0x211093(0x1c8)]=_0x18d63b:(_0x598512&&(_0x16a0a5['vendorApiKey']=_0x598512),_0x1167e4['customApiKeys']&&(_0x16a0a5['customApiKeys']=_0x1167e4['customApiKeys']),_0x16a0a5['apiKey']=_0x18d63b);for(let _0x5e459e=0x1;_0x5e459e<=this['retryAttempts'];_0x5e459e++){try{this['logger']['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x3a625f,'model':_0x433b70['model'],'requestId':_0x3ee6a1,'attempt':_0x5e459e,'hasApiKey':!!_0x18d63b});const _0x2e6fa2=await fetch(_0x3a625f,{'method':'POST','headers':{'Content-Type':_0x211093(0x1f5),'Authorization':'Bearer\x20'+_0x18d63b,'X-Request-ID':_0x3ee6a1},'body':JSON[_0x211093(0x215)](_0x16a0a5),'timeout':this[_0x211093(0x1fd)]});if(!_0x2e6fa2['ok']){const _0x2c022f=await _0x2e6fa2['text'](),_0x193b85=new Error(_0x211093(0x17c)+_0x2e6fa2[_0x211093(0x192)]+':\x20'+_0x2e6fa2['statusText']+(_0x2c022f?'\x20-\x20'+_0x2c022f:''));_0x193b85[_0x211093(0x192)]=_0x2e6fa2['status'];throw _0x193b85;}const _0x1d56ff=await _0x2e6fa2[_0x211093(0x218)]();return{'choices':[{'message':{'content':_0x1d56ff[_0x211093(0x20c)]||'','role':_0x211093(0x180)},'finish_reason':_0x1d56ff['finishReason']||_0x211093(0x211)}],'usage':_0x1d56ff['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x1d56ff[_0x211093(0x1bc)]||_0x433b70[_0x211093(0x1bc)],'id':_0x1d56ff['requestId']||_0x3ee6a1};}catch(_0x219f66){_0x2f5417=_0x219f66,this['logger']['warn']('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x5e459e,'requestId':_0x3ee6a1,'error':_0x219f66[_0x211093(0x1d4)],'status':_0x219f66[_0x211093(0x192)]});if(_0x5e459e<this[_0x211093(0x18c)]){const _0x78caca=Math[_0x211093(0x1ea)](0x2,_0x5e459e)*0x3e8;this['logger']['warn']('Retrying\x20in\x20'+_0x78caca+'ms',{'attempt':_0x5e459e,'requestId':_0x3ee6a1}),await new Promise(_0x2e1511=>setTimeout(_0x2e1511,_0x78caca));}}}this[_0x211093(0x18a)]['error']('All\x20attempts\x20to\x20reach\x20backend\x20failed,\x20using\x20mock\x20response',{'requestId':_0x3ee6a1,'error':_0x2f5417['message']});const _0x4753f6=_0x2f5417['message']&&_0x2f5417[_0x211093(0x1d4)][_0x211093(0x1a6)](_0x211093(0x1ed));if(_0x4753f6)throw new Error(_0x211093(0x21e)+_0x2f5417['message']);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x2f5417[_0x211093(0x1d4)],'role':'assistant'},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x433b70['model'],'id':_0x211093(0x1ba)+_0x3ee6a1,'error':_0x2f5417[_0x211093(0x1d4)]};}async[a0_0x4c22d6(0x1bf)](_0x588c75,_0x27ddf2,_0x379627={}){const _0x291b56=a0_0x4c22d6,_0x4e9693='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x563b79,_0x1f360e=null,_0xb60f69=null;this[_0x291b56(0x18a)]?.[_0x291b56(0x183)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x291b56(0x1d6)],'sessionId':_0x379627['sessionId'],'hasSessionId':!!_0x379627[_0x291b56(0x1d9)],'model':_0x588c75[_0x291b56(0x1bc)]});if(this['apiKeyManager']&&_0x379627['sessionId']){const _0x38d932=this[_0x291b56(0x1d6)][_0x291b56(0x1f4)](_0x379627['sessionId'],{'platformProvided':_0x379627['platformProvided']||![],'vendor':this[_0x291b56(0x1ae)](_0x588c75[_0x291b56(0x1bc)])});_0x1f360e=_0x38d932['loxiaApiKey'],_0xb60f69=_0x38d932[_0x291b56(0x20a)],this[_0x291b56(0x18a)]?.[_0x291b56(0x19b)]('Retrieved API keys from session manager for image',{'sessionId':_0x379627[_0x291b56(0x1d9)],'hasLoxiaKey':!!_0x1f360e,'hasVendorKey':!!_0xb60f69});}!_0x1f360e&&_0x379627[_0x291b56(0x1c8)]&&(_0x1f360e=_0x379627['apiKey']);!_0x1f360e&&this['config']['apiKey']&&(_0x1f360e=this[_0x291b56(0x201)][_0x291b56(0x1c8)]);if(!_0x1f360e)throw new Error(_0x291b56(0x216));const _0x1f59ac={'prompt':_0x588c75[_0x291b56(0x1ac)],'model':_0x588c75[_0x291b56(0x1bc)]||'azure-openai-dalle3','size':_0x588c75['size'],'quality':_0x588c75['quality'],'style':_0x588c75[_0x291b56(0x199)]||_0x291b56(0x1a9),'n':_0x588c75['n']||0x1,'requestId':_0x27ddf2};for(let _0x28c297=0x1;_0x28c297<=this['retryAttempts'];_0x28c297++){try{this['logger'][_0x291b56(0x183)](_0x291b56(0x1dd),{'url':_0x4e9693,'model':_0x588c75['model'],'requestId':_0x27ddf2,'attempt':_0x28c297,'hasApiKey':!!_0x1f360e});const _0x14d993=await fetch(_0x4e9693,{'method':_0x291b56(0x1fb),'headers':{'Content-Type':_0x291b56(0x1f5),'Authorization':_0x291b56(0x17a)+_0x1f360e,'X-Request-ID':_0x27ddf2},'body':JSON['stringify'](_0x1f59ac),'timeout':this[_0x291b56(0x1fd)]*0x2});if(!_0x14d993['ok']){const _0x43075e=await _0x14d993[_0x291b56(0x1c2)](),_0x27ff73=new Error('HTTP\x20'+_0x14d993['status']+':\x20'+_0x14d993['statusText']+(_0x43075e?'\x20-\x20'+_0x43075e:''));_0x27ff73['status']=_0x14d993[_0x291b56(0x192)];throw _0x27ff73;}const _0x4cc799=await _0x14d993['json']();return{'data':_0x4cc799['images']||[],'model':_0x4cc799['model']||_0x588c75['model'],'created':_0x4cc799[_0x291b56(0x1a7)]||Date[_0x291b56(0x1a4)](),'usage':_0x4cc799[_0x291b56(0x1ec)]};}catch(_0x109984){_0x563b79=_0x109984,this[_0x291b56(0x18a)][_0x291b56(0x1b0)]('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x28c297,'requestId':_0x27ddf2,'error':_0x109984['message'],'status':_0x109984[_0x291b56(0x192)]});if(_0x28c297<this[_0x291b56(0x18c)]){const _0x336f4c=Math[_0x291b56(0x1ea)](0x2,_0x28c297)*0x3e8;this['logger'][_0x291b56(0x1b0)]('Retrying\x20in\x20'+_0x336f4c+'ms',{'attempt':_0x28c297,'requestId':_0x27ddf2}),await new Promise(_0x569cb1=>setTimeout(_0x569cb1,_0x336f4c));}}}this[_0x291b56(0x18a)][_0x291b56(0x1ee)]('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x27ddf2,'error':_0x563b79['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x563b79[_0x291b56(0x1d4)]);}async['_checkRateLimit'](_0x48a24d){await new Promise(_0x11e708=>setTimeout(_0x11e708,0x64));}async[a0_0x4c22d6(0x197)](_0x10908c){const _0x2e88f7=a0_0x4c22d6,_0x3f1cc8=0xea60;this['logger'][_0x2e88f7(0x183)](_0x2e88f7(0x184)+_0x3f1cc8+'ms',_0x10908c),await new Promise(_0x38c8a3=>setTimeout(_0x38c8a3,_0x3f1cc8));}async[a0_0x4c22d6(0x1a1)](_0x56a5b1){const _0x24875c=a0_0x4c22d6;this['_recordFailure']();const _0x53516b=0x7530;this['logger'][_0x24875c(0x183)](_0x24875c(0x1b9)+_0x53516b+'ms',_0x56a5b1),await new Promise(_0x251056=>setTimeout(_0x251056,_0x53516b));}['_isCircuitBreakerOpen'](){const _0x2e2cde=a0_0x4c22d6;if(!this['circuitBreaker'][_0x2e2cde(0x1f0)])return![];const _0x16b0e3=Date[_0x2e2cde(0x1a4)]()-this['circuitBreaker'][_0x2e2cde(0x1ad)];if(_0x16b0e3>this[_0x2e2cde(0x17e)]['timeout'])return this['circuitBreaker'][_0x2e2cde(0x1f0)]=![],this[_0x2e2cde(0x17e)]['failures']=0x0,![];return!![];}[a0_0x4c22d6(0x1b4)](){const _0x1f7ca9=a0_0x4c22d6;this[_0x1f7ca9(0x17e)]['failures']++,this[_0x1f7ca9(0x17e)]['lastFailureTime']=Date[_0x1f7ca9(0x1a4)](),this[_0x1f7ca9(0x17e)][_0x1f7ca9(0x18b)]>=this[_0x1f7ca9(0x17e)][_0x1f7ca9(0x1f7)]&&(this[_0x1f7ca9(0x17e)][_0x1f7ca9(0x1f0)]=!![],this['logger']['warn'](_0x1f7ca9(0x1d2)));}[a0_0x4c22d6(0x1e1)](){const _0x1f8a99=a0_0x4c22d6;this[_0x1f8a99(0x17e)][_0x1f8a99(0x18b)]>0x0&&(this[_0x1f8a99(0x17e)]['failures']=0x0,this['circuitBreaker'][_0x1f8a99(0x1f0)]=![],this['logger'][_0x1f8a99(0x183)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}[a0_0x4c22d6(0x1ae)](_0x2a4ae5){const _0x55afcb=a0_0x4c22d6;if(!_0x2a4ae5)return null;const _0x4e7fc5=_0x2a4ae5['toLowerCase']();if(_0x4e7fc5['includes']('anthropic')||_0x4e7fc5[_0x55afcb(0x1a6)](_0x55afcb(0x20b)))return _0x55afcb(0x190);else{if(_0x4e7fc5[_0x55afcb(0x1a6)](_0x55afcb(0x20d))||_0x4e7fc5[_0x55afcb(0x1a6)]('gpt'))return'openai';else{if(_0x4e7fc5['includes']('deepseek'))return _0x55afcb(0x1e2);else{if(_0x4e7fc5[_0x55afcb(0x1a6)]('phi'))return _0x55afcb(0x1f9);}}}return null;}}class ConversationManager{constructor(_0x45d1a2,_0x3a7a8c){const _0x48a5d0=a0_0x4c22d6;this[_0x48a5d0(0x1b2)]=_0x45d1a2,this[_0x48a5d0(0x18a)]=_0x3a7a8c,this['conversations']=new Map();}async['switchModel'](_0x3cf9ef){const _0xa4e811=a0_0x4c22d6;return{'messages':[],'model':_0x3cf9ef,'lastUpdated':new Date()[_0xa4e811(0x1e5)]()};}}function a0_0xa457(_0x3b0189,_0x24f9e5){_0x3b0189=_0x3b0189-0x179;const _0x1bf8f9=a0_0x1bf8();let _0xa45750=_0x1bf8f9[_0x3b0189];if(a0_0xa457['VVtUrl']===undefined){var _0x5c366=function(_0x90f73d){const _0x434590='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29c8a4='',_0x451f6d='';for(let _0x4e9209=0x0,_0x1bcdf1,_0x36186f,_0x3c0e73=0x0;_0x36186f=_0x90f73d['charAt'](_0x3c0e73++);~_0x36186f&&(_0x1bcdf1=_0x4e9209%0x4?_0x1bcdf1*0x40+_0x36186f:_0x36186f,_0x4e9209++%0x4)?_0x29c8a4+=String['fromCharCode'](0xff&_0x1bcdf1>>(-0x2*_0x4e9209&0x6)):0x0){_0x36186f=_0x434590['indexOf'](_0x36186f);}for(let _0x1ace94=0x0,_0x1c1ce9=_0x29c8a4['length'];_0x1ace94<_0x1c1ce9;_0x1ace94++){_0x451f6d+='%'+('00'+_0x29c8a4['charCodeAt'](_0x1ace94)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x451f6d);};a0_0xa457['IAbIJu']=_0x5c366,a0_0xa457['xetLEm']={},a0_0xa457['VVtUrl']=!![];}const _0xcafd5b=_0x1bf8f9[0x0],_0x3ca9f3=_0x3b0189+_0xcafd5b,_0x491de8=a0_0xa457['xetLEm'][_0x3ca9f3];return!_0x491de8?(_0xa45750=a0_0xa457['IAbIJu'](_0xa45750),a0_0xa457['xetLEm'][_0x3ca9f3]=_0xa45750):_0xa45750=_0x491de8,_0xa45750;}function a0_0x1bf8(){const _0x51b182=['sw52ywXPzcbTB2rLBdOG','BgvUz3rO','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','CMv2zxjZzq','l2HLywX0Aa','Dg9vChbLCKnHC2u','x3jLC2v0q2LYy3vPDejYzwfRzxi','zgvLChnLzwS','ywXS','qu5usfjpueLdx0HbsuTv','Dg9ju09tDhjPBMC','mZyZndu0n1vmrvjcvW','C3LZDgvTuhjVBxb0','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','Cg93','C3LZDgvT','DxnHz2u','tM8GqvbjigTLEsbJB25MAwD1CMvK','zxjYB3i','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','AxnpCgvU','revfufnfruTFuJe','x2zVCM1HDezVCK9Wzw5bsq','AgfUzgXLshr0CevYCM9Y','z2v0s2v5C0zVCLjLCxvLC3q','yxbWBgLJyxrPB24VANnVBG','CMv2AxnLzf9WCM9TChq','DgHYzxnOB2XK','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','BwLJCM9ZB2z0','CMvZCg9UC2vgB3jTyxq','ue9tva','qu5usfjpueLdx09qvvm','DgLTzw91Da','vu5bvvrit1jjwKve','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','mJq2ntK0meHrBxnfAa','y29UzMLN','nZu1A21bueLo','Bw9KzwXtCgvJCW','y2HVAwnLCW','ntr0qvfeEeK','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','y3vYCMvUDe1VzgvS','zgf0yq','CMf0zuXPBwL0zxjZ','DMvUzg9YqxbPs2v5','y2XHDwrL','y29UDgvUDa','B3bLBMfP','zMX1Ec0XlJeTChjV','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','y29UDgv4DfDPBMrVDW','C3rVCa','BwfW','z2vUzxjHDgvjBwfNzq','DhjPBq','C3rYAw5NAwz5','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','y29UDMvYC2f0Aw9UtwfUywDLCNm','ANnVBG','mtuYotrHC2HAtxO','ve9px01btLLFuKvrvuvtvfm','su5urvjoquXFu0vsvKvsx0vsuK9s','DxjS','Ahr0Chm6lY9HCgKUBg94AweUywK','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','tK9ux0zpvu5e','qMvHCMvYia','CM91DgvnB2rLBa','sfruuca','x2nOzwnRtw9KzwXizwfSDgG','y2LYy3vPDejYzwfRzxi','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','yxnZAxn0yw50','ndy4odi4r2jmvLP2','Dg9tDhjPBMC','Aw5MBW','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','qu5usfjpueLd','ChjVDMLKzxi','DhjHy2TvC2fNzq','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','x2nOzwnRuMf0zuXPBwL0','Bg9Nz2vY','zMfPBhvYzxm','CMv0CNLbDhrLBxb0CW','ywDLBNrqB29S','y29Kzq','sw52ywXPzcbYzxf1zxn0oIa','yw50AhjVCgLJ','C3rYzwfT','C3rHDhvZ','yMfZzvvYBa','CgXHDgzVCM1qCM92AwrLza','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','ntKXmKTNuuXpBW','x2HHBMrSzvjHDgvmAw1PDa','r0furvDbwv9usu1ft1vu','C3r5Bgu','C2vUze1LC3nHz2u','zgvIDwC','y2HLy2Ttzxj2AwnLsgvHBhrO','tw9KzwWGC3DPDgnOigzHAwXLzdOG','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','yMfJA2vUza','yJy0x2PZB24','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','zxjYB3jiyw5KBgvY','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','BM93','Dg90ywXFDg9Rzw5Z','Aw5JBhvKzxm','y3jLyxrLza','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','DML2Awq','oty1mtm5EvLQwuT4','yNvKz2v0u2vYDMLJzq','ChjVBxb0','BgfZDezHAwX1CMvuAw1L','x2DLDfzLBMrVCKzYB21nB2rLBa','y29TCgfJDgL6zunVBNzLCNnHDgLVBG','D2fYBG','DxnLCG','ywDLBNrjza','zxn0Aw1HDgvKvg9Rzw5Z','x3jLy29YzezHAwX1CMu','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','x2LZvMfSAwrnB2rLBa','mZi5mdi2sujfANri','BwvZC2fNzxm','u2vYDMLJzsb1BMf2ywLSywjSzsWGD2fPDgLUzYa','zxjYB3iT','x2vZDgLTyxrLvg9Rzw5Z','Bw9KzwW','qvPvuKu','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','x21HA2vjBwfNzufqsvjLCxvLC3q','C2L6zq','rKfmtejbq0S','Dgv4Da','C2v0qwDLBNrqB29S','DgvTCgvYyxr1CMu','mKDgshfsvq','x2zVCM1HDfnPBMDSzu1LC3nHz2u','y29TCgXLEgL0Eq','yxbPs2v5','y2XHC3nPzNLfCNjVCG','CMvXDwvZDff1zxvL','Bg94AwfbCgLlzxK','C3rYAw5N','ChjLzMvYCMvKtw9KzwW','x3rYDw5JyxrLtwvZC2fNzq','mtaYnhGXmdi0','AgLNAa','x21HA2vbueLszxf1zxn0','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','x2LZq2LYy3vPDejYzwfRzxjpCgvU','BwvZC2fNzq','C3rHy2S','yxbPs2v5twfUywDLCG','lcb1C2LUzYbMywXSyMfJAW','revfufnfruS','C2vZC2LVBKLK','t1bftKfj'];a0_0x1bf8=function(){return _0x51b182;};return a0_0x1bf8();}export default AIService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a0_0x2575cb=a0_0x4fab;function a0_0x4fab(_0x5406c5,_0x4fbafd){_0x5406c5=_0x5406c5-0x1ae;const _0x5d64c9=a0_0x5d64();let _0x4fab86=_0x5d64c9[_0x5406c5];if(a0_0x4fab['iVNFZx']===undefined){var _0x108845=function(_0x154b01){const _0x30519c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x50cd77='',_0x34169c='';for(let _0x245d69=0x0,_0x3305a8,_0x13a2a0,_0x15c922=0x0;_0x13a2a0=_0x154b01['charAt'](_0x15c922++);~_0x13a2a0&&(_0x3305a8=_0x245d69%0x4?_0x3305a8*0x40+_0x13a2a0:_0x13a2a0,_0x245d69++%0x4)?_0x50cd77+=String['fromCharCode'](0xff&_0x3305a8>>(-0x2*_0x245d69&0x6)):0x0){_0x13a2a0=_0x30519c['indexOf'](_0x13a2a0);}for(let _0x508f16=0x0,_0x333eac=_0x50cd77['length'];_0x508f16<_0x333eac;_0x508f16++){_0x34169c+='%'+('00'+_0x50cd77['charCodeAt'](_0x508f16)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x34169c);};a0_0x4fab['npzOkQ']=_0x108845,a0_0x4fab['NzdTrO']={},a0_0x4fab['iVNFZx']=!![];}const _0x361af8=_0x5d64c9[0x0],_0x4a5bba=_0x5406c5+_0x361af8,_0x2e99eb=a0_0x4fab['NzdTrO'][_0x4a5bba];return!_0x2e99eb?(_0x4fab86=a0_0x4fab['npzOkQ'](_0x4fab86),a0_0x4fab['NzdTrO'][_0x4a5bba]=_0x4fab86):_0x4fab86=_0x2e99eb,_0x4fab86;}function a0_0x5d64(){const _0x36ead1=['Bg94AwfbCgLlzxK','mtKZndu4m2TVrgnzra','mJCZmtKYrKnzs3Pe','nJi2mZqYvu9zte1p','ndG3ogfuqxnjwG','mtC4mZy2mfbuBhzZrq','z2v0qwn0AxzLu2vZC2LVBNm','z2v0vgLTzq','Bg9Nz2vY','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','DMvUzg9YqxbPs2v5','Dg9ju09tDhjPBMC','CMvTB3zLu2vZC2LVBKTLExm','mJeWsgPUB3vo','z2XVyMfSs2v5CW','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','ChvZAa','A2v5CW','Aw5MBW','mZaWqKXnBw9I','BgvUz3rO','mtCXmMTJCK9WCW','mJGWndLrr0HMzLC','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','C2vZC2LVBKTLExm','nZC5mMPnAw9WCW','BM93','zM9YrwfJAa','DMvUzg9Ys2v5CW'];a0_0x5d64=function(){return _0x36ead1;};return a0_0x5d64();}(function(_0x18a2dd,_0x33f551){const _0x5c326c=a0_0x4fab,_0x9c6f3c=_0x18a2dd();while(!![]){try{const _0x49c046=-parseInt(_0x5c326c(0x1ba))/0x1+parseInt(_0x5c326c(0x1b9))/0x2+parseInt(_0x5c326c(0x1b8))/0x3+-parseInt(_0x5c326c(0x1b3))/0x4*(parseInt(_0x5c326c(0x1c4))/0x5)+parseInt(_0x5c326c(0x1ca))/0x6*(parseInt(_0x5c326c(0x1b0))/0x7)+-parseInt(_0x5c326c(0x1af))/0x8*(parseInt(_0x5c326c(0x1bb))/0x9)+parseInt(_0x5c326c(0x1bc))/0xa;if(_0x49c046===_0x33f551)break;else _0x9c6f3c['push'](_0x9c6f3c['shift']());}catch(_0xd72c8b){_0x9c6f3c['push'](_0x9c6f3c['shift']());}}}(a0_0x5d64,0x5209b));class ApiKeyManager{constructor(_0x50cd77){const _0x2213a7=a0_0x4fab;this['logger']=_0x50cd77,this[_0x2213a7(0x1b2)]=new Map(),this[_0x2213a7(0x1c5)]={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x34169c,_0x245d69){const _0x1f7c37=a0_0x4fab;if(!_0x34169c)throw new Error('Session\x20ID\x20is\x20required');this['sessionKeys']['set'](_0x34169c,{'loxiaApiKey':_0x245d69[_0x1f7c37(0x1b7)]||null,'vendorKeys':_0x245d69['vendorKeys']||{},'updatedAt':new Date()['toISOString']()}),this[_0x1f7c37(0x1bf)]?.['info'](_0x1f7c37(0x1c0),{'sessionId':_0x34169c,'hasLoxiaKey':!!_0x245d69[_0x1f7c37(0x1b7)],'vendorKeys':Object['keys'](_0x245d69['vendorKeys']||{}),'timestamp':new Date()[_0x1f7c37(0x1c2)]()});}['getSessionKeys'](_0x3305a8){const _0xa0e70=a0_0x4fab;if(!_0x3305a8)return this[_0xa0e70(0x1c5)];const _0x13a2a0=this[_0xa0e70(0x1b2)]['get'](_0x3305a8);if(_0x13a2a0)return _0x13a2a0;return this[_0xa0e70(0x1c5)];}['getKeysForRequest'](_0x15c922,_0x508f16={}){const _0x3181e8=a0_0x4fab,_0x333eac=this['getSessionKeys'](_0x15c922),_0x5c41ba={'loxiaApiKey':_0x333eac[_0x3181e8(0x1b7)],'vendorApiKey':null};return!_0x508f16['platformProvided']&&_0x508f16['vendor']&&_0x333eac[_0x3181e8(0x1b6)]&&(_0x5c41ba[_0x3181e8(0x1c1)]=_0x333eac['vendorKeys'][_0x508f16['vendor']]),_0x5c41ba;}[a0_0x2575cb(0x1c3)](_0x307f12){const _0x2c4d3b=a0_0x2575cb;if(this[_0x2c4d3b(0x1b2)]['delete'](_0x307f12))return this[_0x2c4d3b(0x1bf)]?.['info'](_0x2c4d3b(0x1b1),{'sessionId':_0x307f12}),!![];return![];}['setGlobalKeys'](_0x354b7c){const _0x3ee3fe=a0_0x2575cb;this['globalKeys']={'loxiaApiKey':_0x354b7c['loxiaApiKey']||this[_0x3ee3fe(0x1c5)]['loxiaApiKey'],'vendorKeys':{...this['globalKeys'][_0x3ee3fe(0x1b6)],..._0x354b7c[_0x3ee3fe(0x1b6)]||{}}},this[_0x3ee3fe(0x1bf)]?.['info'](_0x3ee3fe(0x1c6),{'hasLoxiaKey':!!this['globalKeys'][_0x3ee3fe(0x1b7)],'vendorKeys':Object[_0x3ee3fe(0x1c8)](this[_0x3ee3fe(0x1c5)][_0x3ee3fe(0x1b6)])});}[a0_0x2575cb(0x1bd)](){const _0x5eebfc=a0_0x2575cb;return Array['from'](this[_0x5eebfc(0x1b2)]['entries']())['map'](([_0xab271d,_0x54ca7f])=>({'sessionId':_0xab271d,'hasLoxiaKey':!!_0x54ca7f['loxiaApiKey'],'vendorKeys':Object['keys'](_0x54ca7f['vendorKeys']||{}),'updatedAt':_0x54ca7f['updatedAt']}));}['cleanupExpiredSessions'](_0x5e0166=0x18*0x3c*0x3c*0x3e8){const _0x41ca63=a0_0x2575cb,_0x4d5ee5=Date[_0x41ca63(0x1b4)](),_0x52338d=[];for(const [_0x5775ef,_0x3c1de6]of this['sessionKeys']['entries']()){const _0x3ea037=_0x4d5ee5-new Date(_0x3c1de6['updatedAt'])[_0x41ca63(0x1be)]();_0x3ea037>_0x5e0166&&_0x52338d[_0x41ca63(0x1c7)](_0x5775ef);}return _0x52338d[_0x41ca63(0x1b5)](_0x41b34d=>{const _0x1770c1=_0x41ca63;this[_0x1770c1(0x1b2)]['delete'](_0x41b34d);}),_0x52338d['length']>0x0&&this['logger']?.[_0x41ca63(0x1c9)]('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x52338d['length'],'remainingSessions':this[_0x41ca63(0x1b2)]['size']}),_0x52338d[_0x41ca63(0x1ae)];}}export default ApiKeyManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x31312b=a0_0x3819;(function(_0x405f82,_0xb87011){const _0x5d75c5=a0_0x3819,_0x167b88=_0x405f82();while(!![]){try{const _0x25c0cb=-parseInt(_0x5d75c5(0x108))/0x1*(-parseInt(_0x5d75c5(0xff))/0x2)+parseInt(_0x5d75c5(0x11e))/0x3+-parseInt(_0x5d75c5(0xf5))/0x4+parseInt(_0x5d75c5(0x112))/0x5+parseInt(_0x5d75c5(0x11b))/0x6+-parseInt(_0x5d75c5(0x10f))/0x7+parseInt(_0x5d75c5(0x107))/0x8;if(_0x25c0cb===_0xb87011)break;else _0x167b88['push'](_0x167b88['shift']());}catch(_0x5564c9){_0x167b88['push'](_0x167b88['shift']());}}}(a0_0x14a2,0xb17ab));function a0_0x3819(_0x1c86e3,_0x339caf){_0x1c86e3=_0x1c86e3-0xf5;const _0x14a245=a0_0x14a2();let _0x381901=_0x14a245[_0x1c86e3];if(a0_0x3819['uJmYwn']===undefined){var _0x2751b5=function(_0x37f9cb){const _0x146c2b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x13edf9='',_0x10c357='';for(let _0x4319fc=0x0,_0x525c02,_0x25e0c5,_0x954ed1=0x0;_0x25e0c5=_0x37f9cb['charAt'](_0x954ed1++);~_0x25e0c5&&(_0x525c02=_0x4319fc%0x4?_0x525c02*0x40+_0x25e0c5:_0x25e0c5,_0x4319fc++%0x4)?_0x13edf9+=String['fromCharCode'](0xff&_0x525c02>>(-0x2*_0x4319fc&0x6)):0x0){_0x25e0c5=_0x146c2b['indexOf'](_0x25e0c5);}for(let _0x312932=0x0,_0x1beb38=_0x13edf9['length'];_0x312932<_0x1beb38;_0x312932++){_0x10c357+='%'+('00'+_0x13edf9['charCodeAt'](_0x312932)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x10c357);};a0_0x3819['qgBXZT']=_0x2751b5,a0_0x3819['pKJbFz']={},a0_0x3819['uJmYwn']=!![];}const _0x1133a5=_0x14a245[0x0],_0x4aa2e9=_0x1c86e3+_0x1133a5,_0x459920=a0_0x3819['pKJbFz'][_0x4aa2e9];return!_0x459920?(_0x381901=a0_0x3819['qgBXZT'](_0x381901),a0_0x3819['pKJbFz'][_0x4aa2e9]=_0x381901):_0x381901=_0x459920,_0x381901;}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';function a0_0x14a2(){const _0x4a9a85=['Bwf4','ANnVBG','Dg9ju09tDhjPBMC','x2DLDe1VC3rdB3n0rwzMAwnPzw50','DgfZA3m','z2v0qMvUy2HTyxjRvgfIBgu','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','zxjYB3i','C3rHDhvZ','odC0nJi0q0PuBvLL','CxvPy2STDgfZA3m','C3rHDhvZvgv4Da','C2nVCMu','AxnmB2fKAw5N','Bw9KzwXZ','C29YDa','BgvUz3rO','mJK5mZC5mKLKBgDTvG','m2nytKDLyG','z2v0u3rHDhvZ','BMfTzq','x3nJAgvKDwXLuMvMCMvZAa','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','BwvZC2fNzq','DMfSDwvZ','otK3nJu0n3boDwLNtq','yMvUy2HTyxjRCW','Bg9Nz2vY','mZuWmZC4mfzHA3zQrW','y29ZDa','BwfW','BM93','yw5HBhLZAxm','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','uMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','zgvIDwC','C3bLzwq','ndy1mtyYnKzpr3P1za','CMvMCMvZAeLUDgvYDMfS','BMvLzhnszwzYzxnO','odeYotu4Dfvore1Y','z2v0qMvUy2HTyxjRCW','C291CMnL','y29UzMLN','Dw5RBM93BG','BgfZDfvWzgf0zwq','yxbWBgLJyxrPB24VANnVBG','Aw5MBW','x2DLDejLC3rnB2rLBezVCLrHC2S','nteYmZK4ofriD0TUBq'];a0_0x14a2=function(){return _0x4a9a85;};return a0_0x14a2();}class BenchmarkService{constructor(_0x13edf9,_0x10c357){const _0x2cf728=a0_0x3819;this['config']=_0x13edf9,this['logger']=_0x10c357,this['benchmarks']=null,this[_0x2cf728(0x123)]=null,this[_0x2cf728(0x103)]=![],this['azureBackendUrl']='https://autopilot-api.azurewebsites.net',this[_0x2cf728(0x11c)]=MODEL_ROUTER_CONFIG['BENCHMARK_REFRESH_INTERVAL'];}async['initialize'](){const _0x296c4f=a0_0x3819;try{await this['loadBenchmarks'](),this['_scheduleRefresh'](),this['logger']['info'](_0x296c4f(0x10c));}catch(_0x4319fc){this['logger'][_0x296c4f(0xfd)]('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x4319fc[_0x296c4f(0x10d)]}),this[_0x296c4f(0x110)]=null;}}['getBenchmarks'](){const _0x22ba2d=a0_0x3819;if(!this['benchmarks'])return this['logger'][_0x22ba2d(0xfd)]('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async['loadBenchmarks'](){const _0x4df915=a0_0x3819;if(this[_0x4df915(0x103)]){this[_0x4df915(0x111)]['debug']('Benchmark\x20loading\x20already\x20in\x20progress');return;}this[_0x4df915(0x103)]=!![];try{const _0x525c02=await this['_fetchFromAzureBackend']();if(_0x525c02)this[_0x4df915(0x110)]=_0x525c02,this['lastUpdated']=new Date(),this['logger']['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x525c02['models']?.[_0x4df915(0x106)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x25e0c5){this['logger']['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x25e0c5[_0x4df915(0x10d)],'endpoint':url}),!this[_0x4df915(0x110)]&&(this[_0x4df915(0x110)]=null);}finally{this[_0x4df915(0x103)]=![];}}[a0_0x31312b(0xfb)](){const _0xc279e2=a0_0x31312b,_0x954ed1=this[_0xc279e2(0x11f)]();return{'lastUpdated':this[_0xc279e2(0x123)]?.[_0xc279e2(0xf8)]()||_0xc279e2(0x122),'models':_0x954ed1[_0xc279e2(0x104)]||[],'tasks':_0x954ed1[_0xc279e2(0xfa)]||{},'summary':this[_0xc279e2(0xfc)](_0x954ed1)};}['needsRefresh'](){const _0x1017df=a0_0x31312b;if(!this[_0x1017df(0x123)])return!![];const _0x312932=Date[_0x1017df(0x115)]()-this[_0x1017df(0x123)]['getTime']();return _0x312932>this['refreshInterval'];}async[a0_0x31312b(0x117)](){const _0x528fa3=a0_0x31312b,_0x1beb38=this['azureBackendUrl']+'/llm/model-benchmarks';let _0x37da7d=null;this['config']['apiKey']&&(_0x37da7d=this[_0x528fa3(0x121)]['apiKey']);const _0x325e9c={'method':'GET','headers':{'Content-Type':_0x528fa3(0x124),..._0x37da7d&&{'Authorization':'Bearer\x20'+_0x37da7d}},'timeout':0x2710};this[_0x528fa3(0x111)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x1beb38});const _0x4243bd=await fetch(_0x1beb38,_0x325e9c);if(!_0x4243bd['ok'])throw new Error('HTTP\x20'+_0x4243bd[_0x528fa3(0xfe)]+':\x20'+_0x4243bd[_0x528fa3(0x101)]);const _0x3c59fe=await _0x4243bd[_0x528fa3(0xf7)]();return _0x3c59fe;}['_generateBenchmarkSummary'](_0x4e3a47){const _0x544988=a0_0x31312b,_0x192e5e=_0x4e3a47[_0x544988(0x104)]||[];return{'totalModels':_0x192e5e['length'],'taskCategories':Object['keys'](_0x4e3a47[_0x544988(0xfa)]||{}),'bestForCoding':this['_getBestModelForTask'](_0x192e5e,'coding'),'bestForAnalysis':this['_getBestModelForTask'](_0x192e5e,_0x544988(0x116)),'bestForQuickTasks':this[_0x544988(0x126)](_0x192e5e,_0x544988(0x100)),'bestForCreative':this['_getBestModelForTask'](_0x192e5e,'creative'),'fastestModel':this['_getFastestModel'](_0x192e5e),'mostCostEfficient':this[_0x544988(0xf9)](_0x192e5e)};}[a0_0x31312b(0x126)](_0x14f760,_0x54a37a){const _0x3233f9=a0_0x31312b;return _0x14f760['filter'](_0x5a30b3=>_0x5a30b3['tasks']&&_0x5a30b3['tasks'][_0x54a37a])[_0x3233f9(0x105)]((_0x2ddf10,_0x198471)=>(_0x198471[_0x3233f9(0xfa)][_0x54a37a]['score']||0x0)-(_0x2ddf10[_0x3233f9(0xfa)][_0x54a37a][_0x3233f9(0x102)]||0x0))[0x0]?.[_0x3233f9(0x10a)]||'unknown';}['_getFastestModel'](_0x34ed2b){const _0x296ec6=a0_0x31312b,_0x29169b={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x34ed2b['sort']((_0x199180,_0xd3f5d1)=>{const _0x2afdc4=a0_0x3819,_0x57e97f=Math[_0x2afdc4(0xf6)](...Object['values'](_0x199180['tasks']||{})[_0x2afdc4(0x114)](_0x4541a4=>_0x29169b[_0x4541a4[_0x2afdc4(0x11a)]]||0x0)),_0x514957=Math[_0x2afdc4(0xf6)](...Object['values'](_0xd3f5d1['tasks']||{})[_0x2afdc4(0x114)](_0x1a40ce=>_0x29169b[_0x1a40ce[_0x2afdc4(0x11a)]]||0x0));return _0x514957-_0x57e97f;})[0x0]?.[_0x296ec6(0x10a)]||_0x296ec6(0x122);}['_getMostCostEfficient'](_0x5e0cbe){const _0x40acbe=a0_0x31312b,_0x53ca6e={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x5e0cbe[_0x40acbe(0x105)]((_0x2a2093,_0x3d89b4)=>{const _0x51bfb1=_0x40acbe,_0x3900d5=Math[_0x51bfb1(0xf6)](...Object[_0x51bfb1(0x10e)](_0x2a2093['tasks']||{})['map'](_0x2be7ec=>_0x53ca6e[_0x2be7ec[_0x51bfb1(0x113)]]||0x0)),_0x24e5c0=Math[_0x51bfb1(0xf6)](...Object[_0x51bfb1(0x10e)](_0x3d89b4[_0x51bfb1(0xfa)]||{})[_0x51bfb1(0x114)](_0x232df3=>_0x53ca6e[_0x232df3[_0x51bfb1(0x113)]]||0x0));return _0x24e5c0-_0x3900d5;})[0x0]?.['name']||'unknown';}[a0_0x31312b(0x10b)](){const _0x3bcc8a=a0_0x31312b;setInterval(async()=>{const _0x380e7a=a0_0x3819;this['needsRefresh']()&&(this[_0x380e7a(0x111)][_0x380e7a(0x119)](_0x380e7a(0x118)),await this['loadBenchmarks']());},this[_0x3bcc8a(0x11c)]);}async['forceRefresh'](){const _0x5e2cd0=a0_0x31312b;this['logger'][_0x5e2cd0(0x125)]('Force\x20refreshing\x20benchmark\x20data'),await this['loadBenchmarks']();}[a0_0x31312b(0x109)](){const _0x3daf73=a0_0x31312b;return{'initialized':!!this['benchmarks'],'lastUpdated':this[_0x3daf73(0x123)]?.[_0x3daf73(0xf8)]()||null,'source':this['benchmarks']?.[_0x3daf73(0x120)]||'unknown','modelCount':this['benchmarks']?.[_0x3daf73(0x104)]?.[_0x3daf73(0x106)]||0x0,'isLoading':this[_0x3daf73(0x103)],'needsRefresh':this[_0x3daf73(0x11d)]()};}}export default BenchmarkService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x53020c=a0_0x48be;function a0_0x22dd(){const _0x2f0b48=['y2HLy2TuAhjLC2HVBgrbBgvYDhm','D2vLA2X5','Dg90ywW','z2v0rgf0zq','y29UDMvYDfrVq1nw','z2v0vxnHz2vuCMvUzhm','ywXLCNrZ','Dg90ywXFDg9Rzw5Z','y2vPBa','z2v0tw9KzwXvC2fNzq','refjtfK','yNLnB2rLBa','y29TCgXLDgLVBL90B2TLBNm','qwDLBNq','Dg9Wtw9KzwXZ','Bw9KzwXjza','yNvKz2v0CW','z2v0v2vLA051BwjLCG','z2v0tw9UDgG','DxbKyxrLvxnHz2vfBNrYEq','DhjHy2TvC2fNzq','CMvXDwvZDhm','mZu1otG3mxjsCgHTvG','C2f2zvvZywDLrgf0yq','zNjVBq','uMvXDwvZDhm','CM91BMq','yNLbz2vUDa','vg9Rzw5Z','DxnHz2u','CgfKu3rHCNq','BwfW','zgfPBhLbDMvYywDLCW','Aw5PDgLHBgL6zvvZywDLrw50CNK','y3jLyxrLrw1WDhLvC2fNzq','y29ZDa','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','y29ZDej5rgf5','y2HLy2TuAhjLC2HVBgq','vxnHz2uGzgf0ysbZyxzLza','Dw5ZAgLMDa','DgHYzxnOB2XKx3jLywnOzwq','C2vUzfrOCMvZAg9SzefSzxj0','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','sw52ywXPzcbWzxjPB2q6ia','zgfPBhK','z2v0v2vLA0TLEq','y2HLy2TcDwrNzxrmAw1PDhm','Dg9WqwDLBNrZ','Dg9ju09tDhjPBMC','zM9YrwfJAa','C2v0','Bw9UDgHSEq','Dg9Rzw5ZqNLeyxK','mJKYmZK5nu5kANr4DW','zw1PDa','qNvKz2v0igXPBwL0igv4y2vLzgvK','rgfPBhK','ugvYAw9K','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','ndyZntaWnuTprKHXAa','yNvKz2v0x2v4y2vLzgvK','qNvKz2v0igXPBwL0CYb1CgrHDgvK','Dg9tDhjPBMC','vxnHz2uGDhjHy2TLza','Aw5MBW','z2v0rgf5','AgfZ','Bg9Nz2vY','z2v0rgf5s2v5','C2v0DxbqzxjPB2rPy1nHDMu','mtiZodyYohHVtfj3ta','D2fYBG','ChvZAa','nti5mdG4wNrYyvfw','z2v0tw9UDgHlzxK','C29YDa','AM9PBG','C2vUzej1zgDLDefSzxj0','Dg9Rzw5Z','z2v0vxnHz2u','tu9oveHmwq','odC5mJi2u3fdy1jX','z2v0','mZe4ndeYogP2su16qG','C2v0rgf0zq','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','zw50CMLLCW','q29ZDa','y29UzMLN','rMfPBgvKihrVihrYywnRihvZywDL','Bwf4'];a0_0x22dd=function(){return _0x2f0b48;};return a0_0x22dd();}function a0_0x48be(_0xfdc79b,_0x1fa0db){_0xfdc79b=_0xfdc79b-0xc8;const _0x22ddae=a0_0x22dd();let _0x48be08=_0x22ddae[_0xfdc79b];if(a0_0x48be['vZGCRl']===undefined){var _0x156344=function(_0x350194){const _0x1fc3f9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5dff3f='',_0x18570b='';for(let _0x3ea41b=0x0,_0x52d4fd,_0x3fdac0,_0x4a1efa=0x0;_0x3fdac0=_0x350194['charAt'](_0x4a1efa++);~_0x3fdac0&&(_0x52d4fd=_0x3ea41b%0x4?_0x52d4fd*0x40+_0x3fdac0:_0x3fdac0,_0x3ea41b++%0x4)?_0x5dff3f+=String['fromCharCode'](0xff&_0x52d4fd>>(-0x2*_0x3ea41b&0x6)):0x0){_0x3fdac0=_0x1fc3f9['indexOf'](_0x3fdac0);}for(let _0xe3ef3d=0x0,_0x13ca66=_0x5dff3f['length'];_0xe3ef3d<_0x13ca66;_0xe3ef3d++){_0x18570b+='%'+('00'+_0x5dff3f['charCodeAt'](_0xe3ef3d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18570b);};a0_0x48be['nlLSBJ']=_0x156344,a0_0x48be['cGfVGO']={},a0_0x48be['vZGCRl']=!![];}const _0x116055=_0x22ddae[0x0],_0x46f3c2=_0xfdc79b+_0x116055,_0x5c0415=a0_0x48be['cGfVGO'][_0x46f3c2];return!_0x5c0415?(_0x48be08=a0_0x48be['nlLSBJ'](_0x48be08),a0_0x48be['cGfVGO'][_0x46f3c2]=_0x48be08):_0x48be08=_0x5c0415,_0x48be08;}(function(_0x57fea3,_0x5136a){const _0x5d15fd=a0_0x48be,_0x24779c=_0x57fea3();while(!![]){try{const _0x44018f=-parseInt(_0x5d15fd(0xff))/0x1+parseInt(_0x5d15fd(0xf7))/0x2+parseInt(_0x5d15fd(0xe3))/0x3+parseInt(_0x5d15fd(0x101))/0x4+-parseInt(_0x5d15fd(0xe9))/0x5+-parseInt(_0x5d15fd(0xf4))/0x6+parseInt(_0x5d15fd(0x11f))/0x7;if(_0x44018f===_0x5136a)break;else _0x24779c['push'](_0x24779c['shift']());}catch(_0x4aff49){_0x24779c['push'](_0x24779c['shift']());}}}(a0_0x22dd,0x81ab9));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x5dff3f,_0x18570b){const _0x16f584=a0_0x48be;this[_0x16f584(0x106)]=_0x5dff3f||{},this['logger']=_0x18570b,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x16f584(0x113)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x16f584(0xfe)]},this[_0x16f584(0x10f)]={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x16f584(0xf3)]();}[a0_0x53020c(0x11d)](_0x3ea41b,_0x52d4fd,_0x3fdac0){const _0x4d2314=a0_0x53020c;try{const _0x4a1efa=this['calculateCost'](_0x52d4fd,_0x3fdac0),_0xe3ef3d=new Date(),_0x13ca66=this['getDayKey'](_0xe3ef3d),_0x3587e3=this['getWeekKey'](_0xe3ef3d),_0x3fb589=this[_0x4d2314(0xf8)](_0xe3ef3d);this['initializeUsageEntry'](this['usage']['daily'],_0x13ca66),this[_0x4d2314(0xce)](this[_0x4d2314(0xca)][_0x4d2314(0x10a)],_0x3587e3),this[_0x4d2314(0xce)](this['usage'][_0x4d2314(0xe1)],_0x3fb589);const _0x1a8f69={'agentId':_0x3ea41b,'modelId':_0x52d4fd,'tokens':_0x3fdac0['total_tokens'],'cost':_0x4a1efa,'timestamp':_0xe3ef3d[_0x4d2314(0xde)]()};return this[_0x4d2314(0x11c)](this['usage'][_0x4d2314(0xda)][_0x4d2314(0x100)](_0x13ca66),_0x1a8f69),this['updateUsageEntry'](this['usage'][_0x4d2314(0x10a)][_0x4d2314(0x100)](_0x3587e3),_0x1a8f69),this['updateUsageEntry'](this['usage'][_0x4d2314(0xe1)][_0x4d2314(0x100)](_0x3fb589),_0x1a8f69),this['usage'][_0x4d2314(0x10b)]['tokens']+=_0x3fdac0['total_tokens'],this[_0x4d2314(0xca)]['total'][_0x4d2314(0xd0)]+=_0x4a1efa,this['usage'][_0x4d2314(0x10b)]['requests']+=0x1,this['checkBudgetLimits'](_0x13ca66,_0x3587e3,_0x3fb589),this[_0x4d2314(0xf1)][_0x4d2314(0xee)](_0x4d2314(0xed),{'agentId':_0x3ea41b,'modelId':_0x52d4fd,'tokens':_0x3fdac0[_0x4d2314(0x110)],'cost':_0x4a1efa,'totalCost':this[_0x4d2314(0xca)][_0x4d2314(0x10b)]['cost']}),{'cost':_0x4a1efa,'totalCost':this[_0x4d2314(0xca)]['total']['cost'],'totalTokens':this[_0x4d2314(0xca)][_0x4d2314(0x10b)][_0x4d2314(0xfc)],'dailyUsage':this['usage']['daily'][_0x4d2314(0x100)](_0x13ca66),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x5d2c06){this[_0x4d2314(0xf1)]['error'](_0x4d2314(0x107),{'error':_0x5d2c06['message'],'agentId':_0x3ea41b,'modelId':_0x52d4fd});throw _0x5d2c06;}}['calculateCost'](_0x1fbe48,_0x38ae65){const _0x1607d7=a0_0x53020c,_0x1ff12b=COST_PER_TOKEN[_0x1fbe48];if(!_0x1ff12b)return this[_0x1607d7(0xf1)]['warn']('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x1fbe48}),0x0;const _0x58add8=(_0x38ae65['prompt_tokens']||0x0)*_0x1ff12b['input'],_0x1239b6=(_0x38ae65[_0x1607d7(0x115)]||0x0)*_0x1ff12b['output'];return _0x58add8+_0x1239b6;}['getUsage'](_0x5ed932=a0_0x53020c(0xda),_0x4081be=new Date()){const _0x42b4d1=a0_0x53020c;switch(_0x5ed932){case _0x42b4d1(0xda):return this[_0x42b4d1(0xca)]['daily']['get'](this['getDayKey'](_0x4081be))||this[_0x42b4d1(0xcf)]();case _0x42b4d1(0x10a):return this[_0x42b4d1(0xca)]['weekly']['get'](this[_0x42b4d1(0xdb)](_0x4081be))||this[_0x42b4d1(0xcf)]();case'monthly':return this[_0x42b4d1(0xca)]['monthly']['get'](this['getMonthKey'](_0x4081be))||this[_0x42b4d1(0xcf)]();case _0x42b4d1(0x10b):return{...this[_0x42b4d1(0xca)]['total']};default:throw new Error(_0x42b4d1(0xd9)+_0x5ed932);}}['getAgentUsage'](_0x4ff57c,_0xf85162=a0_0x53020c(0xda)){const _0x12993e=a0_0x53020c,_0x1f8db3=this[_0x12993e(0xfd)](_0xf85162);return _0x1f8db3[_0x12993e(0xc8)]?.[_0x4ff57c]||this['createEmptyUsage']();}[a0_0x53020c(0x112)](_0x34a4cb,_0x13f4bf='daily'){const _0x539404=this['getUsage'](_0x13f4bf);return _0x539404['byModel']?.[_0x34a4cb]||this['createEmptyUsage']();}['setBudgets'](_0x5c7115){const _0x2df3e1=a0_0x53020c;if(_0x5c7115[_0x2df3e1(0xda)]!==undefined)this[_0x2df3e1(0x119)]['daily']=_0x5c7115[_0x2df3e1(0xda)];if(_0x5c7115[_0x2df3e1(0x10a)]!==undefined)this[_0x2df3e1(0x119)]['weekly']=_0x5c7115[_0x2df3e1(0x10a)];if(_0x5c7115[_0x2df3e1(0xe1)]!==undefined)this[_0x2df3e1(0x119)]['monthly']=_0x5c7115[_0x2df3e1(0xe1)];this['logger'][_0x2df3e1(0xee)](_0x2df3e1(0xeb),this[_0x2df3e1(0x119)]),this[_0x2df3e1(0x120)]();}['getRemainingBudget'](){const _0x189a84=a0_0x53020c,_0x80237a=new Date(),_0x38b281=this[_0x189a84(0xfd)](_0x189a84(0xda),_0x80237a),_0x48e694=this[_0x189a84(0xfd)](_0x189a84(0x10a),_0x80237a),_0x29b61f=this[_0x189a84(0xfd)](_0x189a84(0xe1),_0x80237a);return{'daily':Math['max'](0x0,this['budgets'][_0x189a84(0xda)]-_0x38b281['cost']),'weekly':Math[_0x189a84(0x108)](0x0,this[_0x189a84(0x119)]['weekly']-_0x48e694[_0x189a84(0xd0)]),'monthly':Math['max'](0x0,this[_0x189a84(0x119)][_0x189a84(0xe1)]-_0x29b61f[_0x189a84(0xd0)])};}['isWithinBudget'](_0x4a7988=a0_0x53020c(0xda)){const _0x2c5e33=a0_0x53020c,_0x32f9af=this[_0x2c5e33(0xfd)](_0x4a7988),_0x430619=this['budgets'][_0x4a7988];return _0x32f9af[_0x2c5e33(0xd0)]<=_0x430619;}[a0_0x53020c(0x10e)](_0x37b7da=0x1e){const _0x541b3b=a0_0x53020c,_0x521328={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0xba2dcf=new Date();let _0x41710b=0x0,_0x42484b=0x0,_0x15c99a=0x0;const _0x42875b=new Map(),_0x87637d=new Map();for(let _0x5ce57f=0x0;_0x5ce57f<_0x37b7da;_0x5ce57f++){const _0xd08859=new Date(_0xba2dcf);_0xd08859[_0x541b3b(0x102)](_0xd08859[_0x541b3b(0x10c)]()-_0x5ce57f);const _0x38b5bd=this[_0x541b3b(0xf2)](_0xd08859),_0x59cb1c=this[_0x541b3b(0xca)]['daily'][_0x541b3b(0x100)](_0x38b5bd);_0x59cb1c?(_0x41710b+=_0x59cb1c[_0x541b3b(0xd0)],_0x42484b+=_0x59cb1c['tokens'],_0x15c99a+=_0x59cb1c[_0x541b3b(0x11e)],_0x521328[_0x541b3b(0xd2)]['unshift']({'date':_0x38b5bd,'cost':_0x59cb1c['cost']}),_0x521328['tokensByDay']['unshift']({'date':_0x38b5bd,'tokens':_0x59cb1c[_0x541b3b(0xfc)]}),Object[_0x541b3b(0x104)](_0x59cb1c['byAgent']||{})['forEach'](([_0x502608,_0x2b1d13])=>{!_0x42875b['has'](_0x502608)&&_0x42875b['set'](_0x502608,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x9ab9ff=_0x42875b['get'](_0x502608);_0x9ab9ff['cost']+=_0x2b1d13['cost'],_0x9ab9ff['tokens']+=_0x2b1d13['tokens'],_0x9ab9ff['requests']+=_0x2b1d13['requests'];}),Object[_0x541b3b(0x104)](_0x59cb1c[_0x541b3b(0x114)]||{})[_0x541b3b(0xdf)](([_0x40df86,_0x253fb1])=>{const _0x16957e=_0x541b3b;!_0x87637d[_0x16957e(0xf0)](_0x40df86)&&_0x87637d['set'](_0x40df86,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x474020=_0x87637d['get'](_0x40df86);_0x474020['cost']+=_0x253fb1[_0x16957e(0xd0)],_0x474020['tokens']+=_0x253fb1[_0x16957e(0xfc)],_0x474020['requests']+=_0x253fb1['requests'];})):(_0x521328[_0x541b3b(0xd2)]['unshift']({'date':_0x38b5bd,'cost':0x0}),_0x521328[_0x541b3b(0xe2)][_0x541b3b(0xd5)]({'date':_0x38b5bd,'tokens':0x0}));}return _0x521328['dailyAverages']['cost']=_0x41710b/_0x37b7da,_0x521328[_0x541b3b(0xcd)]['tokens']=_0x42484b/_0x37b7da,_0x521328[_0x541b3b(0xcd)][_0x541b3b(0x11e)]=_0x15c99a/_0x37b7da,_0x521328[_0x541b3b(0xdd)]=Array[_0x541b3b(0x121)](_0x42875b[_0x541b3b(0x104)]())[_0x541b3b(0xcc)](([_0xfbb889,_0x1e6421])=>({'id':_0xfbb889,..._0x1e6421}))[_0x541b3b(0xf9)]((_0x2fe089,_0x35ad4c)=>_0x35ad4c['cost']-_0x2fe089['cost'])['slice'](0x0,0xa),_0x521328[_0x541b3b(0x117)]=Array[_0x541b3b(0x121)](_0x87637d['entries']())['map'](([_0x1adf3c,_0x4ca08a])=>({'id':_0x1adf3c,..._0x4ca08a}))[_0x541b3b(0xf9)]((_0x580d49,_0xbb72f1)=>_0xbb72f1['cost']-_0x580d49['cost'])['slice'](0x0,0xa),_0x521328;}['exportUsageData'](_0x322a42='json',_0x32cf31=null,_0x45b232=null){const _0x27de47=a0_0x53020c,_0x1bf2a7={'budgets':this['budgets'],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x21f41f=(_0x15a042,_0x3b4080)=>{const _0x345ca4={};return _0x15a042['forEach']((_0x38852a,_0x3456fb)=>{const _0x43e04e=_0x3b4080(_0x3456fb);(!_0x32cf31||_0x43e04e>=_0x32cf31)&&(!_0x45b232||_0x43e04e<=_0x45b232)&&(_0x345ca4[_0x3456fb]=_0x38852a);}),_0x345ca4;};_0x32cf31||_0x45b232?(_0x1bf2a7['daily']=_0x21f41f(this[_0x27de47(0xca)]['daily'],_0x357ecf=>new Date(_0x357ecf)),_0x1bf2a7[_0x27de47(0x10a)]=_0x21f41f(this['usage']['weekly'],_0xe06d6f=>new Date(_0xe06d6f)),_0x1bf2a7['monthly']=_0x21f41f(this['usage']['monthly'],_0xd27380=>new Date(_0xd27380+'-01'))):(this['usage']['daily']['forEach']((_0x54d917,_0x22c747)=>_0x1bf2a7[_0x27de47(0xda)][_0x22c747]=_0x54d917),this['usage'][_0x27de47(0x10a)]['forEach']((_0x2ef664,_0x5e652b)=>_0x1bf2a7[_0x27de47(0x10a)][_0x5e652b]=_0x2ef664),this[_0x27de47(0xca)][_0x27de47(0xe1)]['forEach']((_0x2d2c3e,_0x2afcbd)=>_0x1bf2a7['monthly'][_0x2afcbd]=_0x2d2c3e));if(_0x322a42==='csv')return this[_0x27de47(0x10d)](_0x1bf2a7);return JSON['stringify'](_0x1bf2a7,null,0x2);}[a0_0x53020c(0xce)](_0x28e727,_0xefe136){const _0x1f82cc=a0_0x53020c;!_0x28e727[_0x1f82cc(0xf0)](_0xefe136)&&_0x28e727[_0x1f82cc(0xe0)](_0xefe136,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x152c93,_0xb39eb8){const _0x1b232d=a0_0x53020c;_0x152c93['cost']+=_0xb39eb8[_0x1b232d(0xd0)],_0x152c93['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93['requests']+=0x1,!_0x152c93['byAgent'][_0xb39eb8['agentId']]&&(_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']]=this[_0x1b232d(0xcf)]()),_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']][_0x1b232d(0xd0)]+=_0xb39eb8['cost'],_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']]['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']][_0x1b232d(0x11e)]+=0x1,!_0x152c93[_0x1b232d(0x114)][_0xb39eb8[_0x1b232d(0x118)]]&&(_0x152c93[_0x1b232d(0x114)][_0xb39eb8['modelId']]=this[_0x1b232d(0xcf)]()),_0x152c93[_0x1b232d(0x114)][_0xb39eb8['modelId']][_0x1b232d(0xd0)]+=_0xb39eb8['cost'],_0x152c93['byModel'][_0xb39eb8['modelId']]['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93['byModel'][_0xb39eb8['modelId']][_0x1b232d(0x11e)]+=0x1;}[a0_0x53020c(0xdc)](_0x109339,_0x382313,_0x3dd419){const _0x3de2be=a0_0x53020c,_0x3300cc=this[_0x3de2be(0xca)]['daily']['get'](_0x109339),_0x430e0a=this['usage'][_0x3de2be(0x10a)][_0x3de2be(0x100)](_0x382313),_0x3bf67d=this['usage']['monthly']['get'](_0x3dd419);_0x3300cc[_0x3de2be(0xd0)]>this['budgets']['daily']&&this['sendBudgetAlert']('daily',_0x3300cc[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0xda)]),_0x430e0a[_0x3de2be(0xd0)]>this[_0x3de2be(0x119)]['weekly']&&this['sendBudgetAlert'](_0x3de2be(0x10a),_0x430e0a[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0x10a)]),_0x3bf67d['cost']>this['budgets']['monthly']&&this[_0x3de2be(0xfb)](_0x3de2be(0xe1),_0x3bf67d[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0xe1)]),this['checkThresholdAlerts'](_0x3300cc,_0x430e0a,_0x3bf67d);}[a0_0x53020c(0x109)](_0x243778,_0x256408,_0x466f97){const _0x56b518=a0_0x53020c,_0x468489=this[_0x56b518(0x10f)]['thresholds'];this[_0x56b518(0xd3)](_0x56b518(0xda),_0x243778['cost'],this['budgets'][_0x56b518(0xda)],_0x468489),this['checkThreshold']('weekly',_0x256408[_0x56b518(0xd0)],this[_0x56b518(0x119)][_0x56b518(0x10a)],_0x468489),this[_0x56b518(0xd3)]('monthly',_0x466f97[_0x56b518(0xd0)],this['budgets'][_0x56b518(0xe1)],_0x468489);}[a0_0x53020c(0xd3)](_0xd17774,_0xa6a50c,_0x4467ee,_0x3f4635){const _0x52b590=a0_0x53020c,_0x2640bc=_0xa6a50c/_0x4467ee*0x64;for(const _0x3f4508 of _0x3f4635){if(_0x2640bc>=_0x3f4508){const _0x4aec93=_0xd17774+'_'+_0x3f4508,_0x1f6665=this[_0x52b590(0x10f)]['lastAlertTimes']['get'](_0x4aec93),_0x10e1b5=Date['now']();(!_0x1f6665||_0x10e1b5-_0x1f6665>0x36ee80)&&(this['sendThresholdAlert'](_0xd17774,_0x2640bc,_0x3f4508,_0xa6a50c,_0x4467ee),this['alerts']['lastAlertTimes']['set'](_0x4aec93,_0x10e1b5));break;}}}[a0_0x53020c(0xfb)](_0x30fdd3,_0x1c576c,_0x1b96e5){const _0x24e626=a0_0x53020c;this[_0x24e626(0xf1)][_0x24e626(0xf5)](_0x24e626(0xe5),{'period':_0x30fdd3,'currentUsage':_0x1c576c,'budgetLimit':_0x1b96e5,'excess':_0x1c576c-_0x1b96e5}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':_0x24e626(0xea),'period':_0x30fdd3,'currentUsage':_0x1c576c,'budgetLimit':_0x1b96e5,'excess':_0x1c576c-_0x1b96e5});}[a0_0x53020c(0xd7)](_0x907ff1,_0x5379bb,_0x3c491b,_0x527d2e,_0x5c3396){const _0x159f88=a0_0x53020c;this['logger'][_0x159f88(0xf5)](_0x159f88(0x103),{'period':_0x907ff1,'percentage':Math[_0x159f88(0x123)](_0x5379bb),'threshold':_0x3c491b,'usage':_0x527d2e,'budget':_0x5c3396}),typeof process!=='undefined'&&process['emit']&&process[_0x159f88(0xe4)]('budgetAlert',{'type':_0x159f88(0xd6),'period':_0x907ff1,'percentage':Math['round'](_0x5379bb),'threshold':_0x3c491b,'usage':_0x527d2e,'budget':_0x5c3396});}[a0_0x53020c(0xf2)](_0x5f0ed3){return _0x5f0ed3['toISOString']()['split']('T')[0x0];}[a0_0x53020c(0xdb)](_0x44ce08){const _0x32f77f=a0_0x53020c,_0x25ac6e=_0x44ce08['getFullYear'](),_0x1fb445=this[_0x32f77f(0x11a)](_0x44ce08);return _0x25ac6e+'-W'+_0x1fb445[_0x32f77f(0xec)]()['padStart'](0x2,'0');}[a0_0x53020c(0xf8)](_0x55591c){const _0x184692=a0_0x53020c,_0xd852d8=_0x55591c['getFullYear'](),_0x3e3c78=_0x55591c[_0x184692(0x11b)]()+0x1;return _0xd852d8+'-'+_0x3e3c78[_0x184692(0xec)]()[_0x184692(0xcb)](0x2,'0');}[a0_0x53020c(0x11a)](_0x513f8f){const _0x2079d3=a0_0x53020c,_0x396117=new Date(_0x513f8f['getFullYear'](),0x0,0x1),_0x3c8cdc=(_0x513f8f-_0x396117)/0x5265c00;return Math[_0x2079d3(0x111)]((_0x3c8cdc+_0x396117[_0x2079d3(0xef)]()+0x1)/0x7);}['convertToCSV'](_0x107ed4){const _0x4c578a=a0_0x53020c,_0x31438d=[];return _0x31438d['push']([_0x4c578a(0xe7),'Date',_0x4c578a(0x105),_0x4c578a(0xc9),_0x4c578a(0x122),_0x4c578a(0x116),'Model']),Object['entries'](_0x107ed4[_0x4c578a(0xda)])[_0x4c578a(0xdf)](([_0x1ae115,_0x17db48])=>{const _0x4ffb4f=_0x4c578a;_0x31438d[_0x4ffb4f(0xf6)]([_0x4ffb4f(0xe6),_0x1ae115,_0x17db48[_0x4ffb4f(0xd0)],_0x17db48[_0x4ffb4f(0xfc)],_0x17db48['requests'],'','']),Object[_0x4ffb4f(0x104)](_0x17db48[_0x4ffb4f(0xc8)]||{})['forEach'](([_0x43653d,_0xfd2144])=>{const _0x36887e=_0x4ffb4f;_0x31438d['push'](['Daily',_0x1ae115,_0xfd2144['cost'],_0xfd2144[_0x36887e(0xfc)],_0xfd2144['requests'],_0x43653d,'']);});}),_0x31438d['map'](_0x429aa5=>_0x429aa5[_0x4c578a(0xfa)](','))['join']('\x0a');}['loadUsageData'](){const _0x578391=a0_0x53020c;try{this['logger'][_0x578391(0xee)](_0x578391(0xd8));}catch(_0x483a4f){this['logger']['error'](_0x578391(0xd1),{'error':_0x483a4f['message']});}}[a0_0x53020c(0x120)](){const _0x347f92=a0_0x53020c;try{this[_0x347f92(0xf1)]['debug'](_0x347f92(0xd4));}catch(_0x572709){this['logger']['error'](_0x347f92(0xe8),{'error':_0x572709['message']});}}[a0_0x53020c(0xf3)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
|
|
1
|
+
const a0_0x167936=a0_0x30d2;(function(_0x371c44,_0x1504b6){const _0x39132d=a0_0x30d2,_0x5d9456=_0x371c44();while(!![]){try{const _0x4bf983=-parseInt(_0x39132d(0x111))/0x1+-parseInt(_0x39132d(0x115))/0x2+-parseInt(_0x39132d(0x135))/0x3+-parseInt(_0x39132d(0x125))/0x4+parseInt(_0x39132d(0x11d))/0x5*(-parseInt(_0x39132d(0x117))/0x6)+-parseInt(_0x39132d(0x11c))/0x7*(-parseInt(_0x39132d(0x133))/0x8)+parseInt(_0x39132d(0x128))/0x9*(parseInt(_0x39132d(0x12a))/0xa);if(_0x4bf983===_0x1504b6)break;else _0x5d9456['push'](_0x5d9456['shift']());}catch(_0x207be0){_0x5d9456['push'](_0x5d9456['shift']());}}}(a0_0x5725,0x87488));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x30d2(_0x514a18,_0x220df7){_0x514a18=_0x514a18-0x108;const _0x5725f1=a0_0x5725();let _0x30d209=_0x5725f1[_0x514a18];if(a0_0x30d2['uDRioC']===undefined){var _0x111dce=function(_0x85ccee){const _0x40b6c8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x9541e3='',_0x168ecd='';for(let _0x272b33=0x0,_0x3ccaa8,_0x5456fb,_0x3db74d=0x0;_0x5456fb=_0x85ccee['charAt'](_0x3db74d++);~_0x5456fb&&(_0x3ccaa8=_0x272b33%0x4?_0x3ccaa8*0x40+_0x5456fb:_0x5456fb,_0x272b33++%0x4)?_0x9541e3+=String['fromCharCode'](0xff&_0x3ccaa8>>(-0x2*_0x272b33&0x6)):0x0){_0x5456fb=_0x40b6c8['indexOf'](_0x5456fb);}for(let _0x37cc00=0x0,_0x1e3068=_0x9541e3['length'];_0x37cc00<_0x1e3068;_0x37cc00++){_0x168ecd+='%'+('00'+_0x9541e3['charCodeAt'](_0x37cc00)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x168ecd);};a0_0x30d2['PNJQpx']=_0x111dce,a0_0x30d2['EqjZnl']={},a0_0x30d2['uDRioC']=!![];}const _0x5c15fc=_0x5725f1[0x0],_0x26afd5=_0x514a18+_0x5c15fc,_0x3806b6=a0_0x30d2['EqjZnl'][_0x26afd5];return!_0x3806b6?(_0x30d209=a0_0x30d2['PNJQpx'](_0x30d209),a0_0x30d2['EqjZnl'][_0x26afd5]=_0x30d209):_0x30d209=_0x3806b6,_0x30d209;}export class BudgetService{constructor(_0x9541e3,_0x168ecd){const _0x17f6e5=a0_0x30d2;this[_0x17f6e5(0x168)]=_0x9541e3||{},this[_0x17f6e5(0x155)]=_0x168ecd,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x17f6e5(0x14f)]={'daily':BUDGET_LIMITS[_0x17f6e5(0x113)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x17f6e5(0x131)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS[_0x17f6e5(0x149)],'lastAlertTimes':new Map()},this[_0x17f6e5(0x160)](),this['setupPeriodicSave']();}[a0_0x167936(0x122)](_0x272b33,_0x3ccaa8,_0x5456fb){const _0xd85ae1=a0_0x167936;try{const _0x3db74d=this[_0xd85ae1(0x14a)](_0x3ccaa8,_0x5456fb),_0x37cc00=new Date(),_0x1e3068=this[_0xd85ae1(0x110)](_0x37cc00),_0x170626=this[_0xd85ae1(0x163)](_0x37cc00),_0xe04a3f=this[_0xd85ae1(0x11f)](_0x37cc00);this[_0xd85ae1(0x13c)](this[_0xd85ae1(0x145)][_0xd85ae1(0x132)],_0x1e3068),this['initializeUsageEntry'](this['usage'][_0xd85ae1(0x14c)],_0x170626),this[_0xd85ae1(0x13c)](this['usage'][_0xd85ae1(0x112)],_0xe04a3f);const _0x40de57={'agentId':_0x272b33,'modelId':_0x3ccaa8,'tokens':_0x5456fb[_0xd85ae1(0x141)],'cost':_0x3db74d,'timestamp':_0x37cc00['toISOString']()};return this['updateUsageEntry'](this['usage'][_0xd85ae1(0x132)][_0xd85ae1(0x142)](_0x1e3068),_0x40de57),this['updateUsageEntry'](this['usage']['weekly'][_0xd85ae1(0x142)](_0x170626),_0x40de57),this['updateUsageEntry'](this[_0xd85ae1(0x145)]['monthly'][_0xd85ae1(0x142)](_0xe04a3f),_0x40de57),this[_0xd85ae1(0x145)]['total']['tokens']+=_0x5456fb['total_tokens'],this[_0xd85ae1(0x145)]['total']['cost']+=_0x3db74d,this['usage']['total'][_0xd85ae1(0x134)]+=0x1,this['checkBudgetLimits'](_0x1e3068,_0x170626,_0xe04a3f),this['logger']['info'](_0xd85ae1(0x158),{'agentId':_0x272b33,'modelId':_0x3ccaa8,'tokens':_0x5456fb['total_tokens'],'cost':_0x3db74d,'totalCost':this['usage']['total'][_0xd85ae1(0x118)]}),{'cost':_0x3db74d,'totalCost':this['usage']['total']['cost'],'totalTokens':this['usage'][_0xd85ae1(0x108)]['tokens'],'dailyUsage':this['usage'][_0xd85ae1(0x132)]['get'](_0x1e3068),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x5a6123){this[_0xd85ae1(0x155)][_0xd85ae1(0x148)](_0xd85ae1(0x126),{'error':_0x5a6123['message'],'agentId':_0x272b33,'modelId':_0x3ccaa8});throw _0x5a6123;}}['calculateCost'](_0x253dfc,_0x2eda47){const _0x163757=a0_0x167936,_0x1f5a86=COST_PER_TOKEN[_0x253dfc];if(!_0x1f5a86)return this[_0x163757(0x155)][_0x163757(0x15b)](_0x163757(0x14d),{'modelId':_0x253dfc}),0x0;const _0x20e338=(_0x2eda47[_0x163757(0x10f)]||0x0)*_0x1f5a86['input'],_0x55d09f=(_0x2eda47['completion_tokens']||0x0)*_0x1f5a86[_0x163757(0x157)];return _0x20e338+_0x55d09f;}['getUsage'](_0x59ff7e='daily',_0x2b1162=new Date()){const _0xe632a8=a0_0x167936;switch(_0x59ff7e){case'daily':return this['usage']['daily']['get'](this[_0xe632a8(0x110)](_0x2b1162))||this['createEmptyUsage']();case'weekly':return this[_0xe632a8(0x145)]['weekly'][_0xe632a8(0x142)](this[_0xe632a8(0x163)](_0x2b1162))||this['createEmptyUsage']();case _0xe632a8(0x112):return this['usage']['monthly'][_0xe632a8(0x142)](this[_0xe632a8(0x11f)](_0x2b1162))||this[_0xe632a8(0x166)]();case'total':return{...this['usage'][_0xe632a8(0x108)]};default:throw new Error(_0xe632a8(0x123)+_0x59ff7e);}}['getAgentUsage'](_0x4eb8ca,_0x138421=a0_0x167936(0x132)){const _0xb531d=this['getUsage'](_0x138421);return _0xb531d['byAgent']?.[_0x4eb8ca]||this['createEmptyUsage']();}[a0_0x167936(0x137)](_0x5bc0d7,_0x165425='daily'){const _0x1d2a95=a0_0x167936,_0x4ba1fb=this[_0x1d2a95(0x11e)](_0x165425);return _0x4ba1fb[_0x1d2a95(0x156)]?.[_0x5bc0d7]||this[_0x1d2a95(0x166)]();}[a0_0x167936(0x120)](_0x32ea5b){const _0xe9882f=a0_0x167936;if(_0x32ea5b['daily']!==undefined)this[_0xe9882f(0x14f)][_0xe9882f(0x132)]=_0x32ea5b['daily'];if(_0x32ea5b[_0xe9882f(0x14c)]!==undefined)this['budgets'][_0xe9882f(0x14c)]=_0x32ea5b[_0xe9882f(0x14c)];if(_0x32ea5b['monthly']!==undefined)this[_0xe9882f(0x14f)]['monthly']=_0x32ea5b[_0xe9882f(0x112)];this['logger']['info']('Budget\x20limits\x20updated',this['budgets']),this[_0xe9882f(0x136)]();}['getRemainingBudget'](){const _0x331b15=a0_0x167936,_0x81f72=new Date(),_0x174f2e=this[_0x331b15(0x11e)](_0x331b15(0x132),_0x81f72),_0x6a5d27=this['getUsage']('weekly',_0x81f72),_0x1bfad6=this['getUsage'](_0x331b15(0x112),_0x81f72);return{'daily':Math[_0x331b15(0x151)](0x0,this[_0x331b15(0x14f)][_0x331b15(0x132)]-_0x174f2e[_0x331b15(0x118)]),'weekly':Math['max'](0x0,this[_0x331b15(0x14f)]['weekly']-_0x6a5d27['cost']),'monthly':Math[_0x331b15(0x151)](0x0,this[_0x331b15(0x14f)]['monthly']-_0x1bfad6[_0x331b15(0x118)])};}[a0_0x167936(0x114)](_0xfca345='daily'){const _0x15bb45=this['getUsage'](_0xfca345),_0x58d7d2=this['budgets'][_0xfca345];return _0x15bb45['cost']<=_0x58d7d2;}['getUsageTrends'](_0x36401f=0x1e){const _0x3ff1ae=a0_0x167936,_0x84684a={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x157940=new Date();let _0x537e1c=0x0,_0x9c848f=0x0,_0x59e8f1=0x0;const _0x889db5=new Map(),_0x204878=new Map();for(let _0x4663eb=0x0;_0x4663eb<_0x36401f;_0x4663eb++){const _0x5d89a0=new Date(_0x157940);_0x5d89a0['setDate'](_0x5d89a0['getDate']()-_0x4663eb);const _0x2d2eca=this[_0x3ff1ae(0x110)](_0x5d89a0),_0x1bd3c5=this[_0x3ff1ae(0x145)][_0x3ff1ae(0x132)][_0x3ff1ae(0x142)](_0x2d2eca);_0x1bd3c5?(_0x537e1c+=_0x1bd3c5['cost'],_0x9c848f+=_0x1bd3c5[_0x3ff1ae(0x130)],_0x59e8f1+=_0x1bd3c5['requests'],_0x84684a['costByDay'][_0x3ff1ae(0x140)]({'date':_0x2d2eca,'cost':_0x1bd3c5['cost']}),_0x84684a[_0x3ff1ae(0x11a)]['unshift']({'date':_0x2d2eca,'tokens':_0x1bd3c5[_0x3ff1ae(0x130)]}),Object['entries'](_0x1bd3c5['byAgent']||{})[_0x3ff1ae(0x13a)](([_0xd9946c,_0x591ede])=>{const _0x3b60be=_0x3ff1ae;!_0x889db5[_0x3b60be(0x161)](_0xd9946c)&&_0x889db5['set'](_0xd9946c,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x3d8ee2=_0x889db5['get'](_0xd9946c);_0x3d8ee2['cost']+=_0x591ede[_0x3b60be(0x118)],_0x3d8ee2[_0x3b60be(0x130)]+=_0x591ede[_0x3b60be(0x130)],_0x3d8ee2['requests']+=_0x591ede[_0x3b60be(0x134)];}),Object['entries'](_0x1bd3c5['byModel']||{})['forEach'](([_0x2c67e2,_0x32ce0d])=>{const _0xf00126=_0x3ff1ae;!_0x204878[_0xf00126(0x161)](_0x2c67e2)&&_0x204878['set'](_0x2c67e2,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x4353d8=_0x204878['get'](_0x2c67e2);_0x4353d8['cost']+=_0x32ce0d['cost'],_0x4353d8['tokens']+=_0x32ce0d[_0xf00126(0x130)],_0x4353d8['requests']+=_0x32ce0d['requests'];})):(_0x84684a['costByDay'][_0x3ff1ae(0x140)]({'date':_0x2d2eca,'cost':0x0}),_0x84684a['tokensByDay'][_0x3ff1ae(0x140)]({'date':_0x2d2eca,'tokens':0x0}));}return _0x84684a[_0x3ff1ae(0x159)]['cost']=_0x537e1c/_0x36401f,_0x84684a['dailyAverages']['tokens']=_0x9c848f/_0x36401f,_0x84684a[_0x3ff1ae(0x159)]['requests']=_0x59e8f1/_0x36401f,_0x84684a[_0x3ff1ae(0x12f)]=Array['from'](_0x889db5[_0x3ff1ae(0x10a)]())[_0x3ff1ae(0x169)](([_0x39a2b5,_0x208b36])=>({'id':_0x39a2b5,..._0x208b36}))[_0x3ff1ae(0x12d)]((_0x4ba363,_0x52c74a)=>_0x52c74a[_0x3ff1ae(0x118)]-_0x4ba363[_0x3ff1ae(0x118)])['slice'](0x0,0xa),_0x84684a[_0x3ff1ae(0x124)]=Array[_0x3ff1ae(0x15f)](_0x204878['entries']())[_0x3ff1ae(0x169)](([_0x23794c,_0x2ee03e])=>({'id':_0x23794c,..._0x2ee03e}))[_0x3ff1ae(0x12d)]((_0x38a683,_0x155f6a)=>_0x155f6a[_0x3ff1ae(0x118)]-_0x38a683['cost'])[_0x3ff1ae(0x15c)](0x0,0xa),_0x84684a;}[a0_0x167936(0x10b)](_0x96331e='json',_0x1eab0b=null,_0x48d655=null){const _0x1abda9=a0_0x167936,_0x1d6f06={'budgets':this[_0x1abda9(0x14f)],'total':this[_0x1abda9(0x145)]['total'],'daily':{},'weekly':{},'monthly':{}},_0xb17006=(_0x35f91e,_0x2667ea)=>{const _0x298c36=_0x1abda9,_0x49837e={};return _0x35f91e[_0x298c36(0x13a)]((_0x525b16,_0x3e9a0f)=>{const _0x495082=_0x2667ea(_0x3e9a0f);(!_0x1eab0b||_0x495082>=_0x1eab0b)&&(!_0x48d655||_0x495082<=_0x48d655)&&(_0x49837e[_0x3e9a0f]=_0x525b16);}),_0x49837e;};_0x1eab0b||_0x48d655?(_0x1d6f06[_0x1abda9(0x132)]=_0xb17006(this[_0x1abda9(0x145)][_0x1abda9(0x132)],_0x2f6805=>new Date(_0x2f6805)),_0x1d6f06['weekly']=_0xb17006(this['usage']['weekly'],_0x596201=>new Date(_0x596201)),_0x1d6f06['monthly']=_0xb17006(this[_0x1abda9(0x145)]['monthly'],_0x420e69=>new Date(_0x420e69+_0x1abda9(0x146)))):(this[_0x1abda9(0x145)]['daily']['forEach']((_0x229476,_0x224562)=>_0x1d6f06['daily'][_0x224562]=_0x229476),this[_0x1abda9(0x145)][_0x1abda9(0x14c)][_0x1abda9(0x13a)]((_0x59819c,_0x23929d)=>_0x1d6f06[_0x1abda9(0x14c)][_0x23929d]=_0x59819c),this['usage']['monthly'][_0x1abda9(0x13a)]((_0x33ae32,_0x5aeb70)=>_0x1d6f06[_0x1abda9(0x112)][_0x5aeb70]=_0x33ae32));if(_0x96331e===_0x1abda9(0x119))return this[_0x1abda9(0x12c)](_0x1d6f06);return JSON['stringify'](_0x1d6f06,null,0x2);}[a0_0x167936(0x13c)](_0x206e3c,_0x3fdf4d){const _0x210ec8=a0_0x167936;!_0x206e3c[_0x210ec8(0x161)](_0x3fdf4d)&&_0x206e3c['set'](_0x3fdf4d,this['createEmptyUsage']());}[a0_0x167936(0x166)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x35b9bd,_0x4b6c78){const _0x94ed95=a0_0x167936;_0x35b9bd['cost']+=_0x4b6c78[_0x94ed95(0x118)],_0x35b9bd['tokens']+=_0x4b6c78[_0x94ed95(0x130)],_0x35b9bd['requests']+=0x1,!_0x35b9bd[_0x94ed95(0x14b)][_0x4b6c78[_0x94ed95(0x165)]]&&(_0x35b9bd['byAgent'][_0x4b6c78['agentId']]=this['createEmptyUsage']()),_0x35b9bd['byAgent'][_0x4b6c78[_0x94ed95(0x165)]][_0x94ed95(0x118)]+=_0x4b6c78['cost'],_0x35b9bd['byAgent'][_0x4b6c78[_0x94ed95(0x165)]][_0x94ed95(0x130)]+=_0x4b6c78[_0x94ed95(0x130)],_0x35b9bd['byAgent'][_0x4b6c78[_0x94ed95(0x165)]]['requests']+=0x1,!_0x35b9bd['byModel'][_0x4b6c78[_0x94ed95(0x138)]]&&(_0x35b9bd[_0x94ed95(0x156)][_0x4b6c78[_0x94ed95(0x138)]]=this[_0x94ed95(0x166)]()),_0x35b9bd[_0x94ed95(0x156)][_0x4b6c78['modelId']]['cost']+=_0x4b6c78[_0x94ed95(0x118)],_0x35b9bd['byModel'][_0x4b6c78['modelId']]['tokens']+=_0x4b6c78['tokens'],_0x35b9bd['byModel'][_0x4b6c78['modelId']]['requests']+=0x1;}['checkBudgetLimits'](_0x32e062,_0x5a2fce,_0x5556e9){const _0x56ec34=a0_0x167936,_0x3a8e1a=this[_0x56ec34(0x145)]['daily']['get'](_0x32e062),_0x2daa24=this[_0x56ec34(0x145)][_0x56ec34(0x14c)][_0x56ec34(0x142)](_0x5a2fce),_0x6785e1=this['usage']['monthly'][_0x56ec34(0x142)](_0x5556e9);_0x3a8e1a[_0x56ec34(0x118)]>this['budgets']['daily']&&this['sendBudgetAlert'](_0x56ec34(0x132),_0x3a8e1a['cost'],this[_0x56ec34(0x14f)][_0x56ec34(0x132)]),_0x2daa24[_0x56ec34(0x118)]>this[_0x56ec34(0x14f)][_0x56ec34(0x14c)]&&this['sendBudgetAlert']('weekly',_0x2daa24[_0x56ec34(0x118)],this[_0x56ec34(0x14f)]['weekly']),_0x6785e1['cost']>this[_0x56ec34(0x14f)]['monthly']&&this[_0x56ec34(0x12e)](_0x56ec34(0x112),_0x6785e1['cost'],this['budgets'][_0x56ec34(0x112)]),this[_0x56ec34(0x13d)](_0x3a8e1a,_0x2daa24,_0x6785e1);}['checkThresholdAlerts'](_0x2eacbb,_0x52ee3b,_0x1b1416){const _0x8c0967=a0_0x167936,_0x13abaa=this['alerts'][_0x8c0967(0x150)];this[_0x8c0967(0x15e)](_0x8c0967(0x132),_0x2eacbb[_0x8c0967(0x118)],this['budgets']['daily'],_0x13abaa),this['checkThreshold'](_0x8c0967(0x14c),_0x52ee3b[_0x8c0967(0x118)],this['budgets'][_0x8c0967(0x14c)],_0x13abaa),this['checkThreshold']('monthly',_0x1b1416['cost'],this['budgets'][_0x8c0967(0x112)],_0x13abaa);}['checkThreshold'](_0x5004a3,_0x57be5,_0x40bdbe,_0x523658){const _0x36cc98=a0_0x167936,_0x48bcf7=_0x57be5/_0x40bdbe*0x64;for(const _0x37dc92 of _0x523658){if(_0x48bcf7>=_0x37dc92){const _0x380abb=_0x5004a3+'_'+_0x37dc92,_0x60d6cd=this[_0x36cc98(0x15a)][_0x36cc98(0x116)]['get'](_0x380abb),_0x188fe9=Date[_0x36cc98(0x152)]();(!_0x60d6cd||_0x188fe9-_0x60d6cd>0x36ee80)&&(this[_0x36cc98(0x121)](_0x5004a3,_0x48bcf7,_0x37dc92,_0x57be5,_0x40bdbe),this['alerts']['lastAlertTimes'][_0x36cc98(0x144)](_0x380abb,_0x188fe9));break;}}}[a0_0x167936(0x12e)](_0x2bf5b4,_0x2c7a0d,_0x4bf88a){const _0x2071d6=a0_0x167936;this['logger']['warn'](_0x2071d6(0x11b),{'period':_0x2bf5b4,'currentUsage':_0x2c7a0d,'budgetLimit':_0x4bf88a,'excess':_0x2c7a0d-_0x4bf88a}),typeof process!=='undefined'&&process[_0x2071d6(0x162)]&&process[_0x2071d6(0x162)](_0x2071d6(0x10c),{'type':'budget_exceeded','period':_0x2bf5b4,'currentUsage':_0x2c7a0d,'budgetLimit':_0x4bf88a,'excess':_0x2c7a0d-_0x4bf88a});}[a0_0x167936(0x121)](_0x4c7685,_0x19b34f,_0x115194,_0x1092ce,_0x20aba8){const _0x526d06=a0_0x167936;this[_0x526d06(0x155)]['warn']('Budget\x20threshold\x20reached',{'period':_0x4c7685,'percentage':Math['round'](_0x19b34f),'threshold':_0x115194,'usage':_0x1092ce,'budget':_0x20aba8}),typeof process!=='undefined'&&process[_0x526d06(0x162)]&&process[_0x526d06(0x162)](_0x526d06(0x10c),{'type':_0x526d06(0x13f),'period':_0x4c7685,'percentage':Math[_0x526d06(0x167)](_0x19b34f),'threshold':_0x115194,'usage':_0x1092ce,'budget':_0x20aba8});}[a0_0x167936(0x110)](_0x5205c3){const _0x410659=a0_0x167936;return _0x5205c3['toISOString']()[_0x410659(0x15d)]('T')[0x0];}['getWeekKey'](_0x446dce){const _0x5cc177=a0_0x167936,_0x33fde0=_0x446dce['getFullYear'](),_0x480403=this['getWeekNumber'](_0x446dce);return _0x33fde0+'-W'+_0x480403[_0x5cc177(0x153)]()['padStart'](0x2,'0');}[a0_0x167936(0x11f)](_0x374008){const _0x1e7878=a0_0x167936,_0x23d453=_0x374008['getFullYear'](),_0x11d734=_0x374008['getMonth']()+0x1;return _0x23d453+'-'+_0x11d734[_0x1e7878(0x153)]()[_0x1e7878(0x154)](0x2,'0');}[a0_0x167936(0x13e)](_0x5cda69){const _0x284e6f=new Date(_0x5cda69['getFullYear'](),0x0,0x1),_0x412845=(_0x5cda69-_0x284e6f)/0x5265c00;return Math['ceil']((_0x412845+_0x284e6f['getDay']()+0x1)/0x7);}[a0_0x167936(0x12c)](_0x4df4f){const _0x1b083a=a0_0x167936,_0x31d96b=[];return _0x31d96b['push']([_0x1b083a(0x16a),_0x1b083a(0x10e),_0x1b083a(0x147),'Tokens',_0x1b083a(0x12b),'Agent',_0x1b083a(0x13b)]),Object['entries'](_0x4df4f['daily'])[_0x1b083a(0x13a)](([_0x50f39c,_0x1ba0ce])=>{const _0x4d2c7a=_0x1b083a;_0x31d96b[_0x4d2c7a(0x139)]([_0x4d2c7a(0x109),_0x50f39c,_0x1ba0ce['cost'],_0x1ba0ce[_0x4d2c7a(0x130)],_0x1ba0ce[_0x4d2c7a(0x134)],'','']),Object[_0x4d2c7a(0x10a)](_0x1ba0ce[_0x4d2c7a(0x14b)]||{})[_0x4d2c7a(0x13a)](([_0xe86e12,_0x3f7bfa])=>{const _0x530c2a=_0x4d2c7a;_0x31d96b['push']([_0x530c2a(0x109),_0x50f39c,_0x3f7bfa[_0x530c2a(0x118)],_0x3f7bfa[_0x530c2a(0x130)],_0x3f7bfa[_0x530c2a(0x134)],_0xe86e12,'']);});}),_0x31d96b[_0x1b083a(0x169)](_0x173610=>_0x173610[_0x1b083a(0x164)](','))['join']('\x0a');}[a0_0x167936(0x160)](){const _0x1f7458=a0_0x167936;try{this[_0x1f7458(0x155)][_0x1f7458(0x127)](_0x1f7458(0x10d));}catch(_0x1a02bc){this[_0x1f7458(0x155)][_0x1f7458(0x148)]('Failed\x20to\x20load\x20usage\x20data',{'error':_0x1a02bc['message']});}}[a0_0x167936(0x136)](){const _0x14c917=a0_0x167936;try{this[_0x14c917(0x155)][_0x14c917(0x14e)]('Usage\x20data\x20saved');}catch(_0x4f97c8){this[_0x14c917(0x155)][_0x14c917(0x148)](_0x14c917(0x129),{'error':_0x4f97c8['message']});}}[a0_0x167936(0x143)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}function a0_0x5725(){const _0xfba01=['Bg9Nz2vY','yNLnB2rLBa','B3v0Chv0','vxnHz2uGDhjHy2TLza','zgfPBhLbDMvYywDLCW','ywXLCNrZ','D2fYBG','C2XPy2u','C3bSAxq','y2HLy2TuAhjLC2HVBgq','zNjVBq','Bg9HzfvZywDLrgf0yq','AgfZ','zw1PDa','z2v0v2vLA0TLEq','AM9PBG','ywDLBNrjza','y3jLyxrLrw1WDhLvC2fNzq','CM91BMq','y29UzMLN','BwfW','ugvYAw9K','Dg90ywW','rgfPBhK','zw50CMLLCW','zxHWB3j0vxnHz2veyxrH','yNvKz2v0qwXLCNq','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','rgf0zq','ChjVBxb0x3rVA2vUCW','z2v0rgf5s2v5','ntu4otm2A0DIC1ry','Bw9UDgHSEq','refjtfK','AxnxAxrOAw5cDwrNzxq','mtG5mJG2uePdCwLO','BgfZDefSzxj0vgLTzxm','mJqWnM91zhHeBq','y29ZDa','y3n2','Dg9Rzw5ZqNLeyxK','qNvKz2v0igXPBwL0igv4y2vLzgvK','mZvKuuHMDvG','odiZmhrcEgj2yG','z2v0vxnHz2u','z2v0tw9UDgHlzxK','C2v0qNvKz2v0CW','C2vUzfrOCMvZAg9SzefSzxj0','DhjHy2TvC2fNzq','sw52ywXPzcbWzxjPB2q6ia','Dg9Wtw9KzwXZ','mZK0mtC1mNbRwNjiEa','rMfPBgvKihrVihrYywnRihvZywDL','Aw5MBW','mZq3ntHsB29XALG','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','odCXmhjuqwfhrG','uMvXDwvZDhm','y29UDMvYDfrVq1nw','C29YDa','C2vUzej1zgDLDefSzxj0','Dg9WqwDLBNrZ','Dg9Rzw5Z','tu9oveHmwq','zgfPBhK','ndaZotyWEKXTA2DJ','CMvXDwvZDhm','mJi4oti4mKnnzMT3wq','C2f2zvvZywDLrgf0yq','z2v0tw9KzwXvC2fNzq','Bw9KzwXjza','ChvZAa','zM9YrwfJAa','tw9KzwW','Aw5PDgLHBgL6zvvZywDLrw50CNK','y2HLy2TuAhjLC2HVBgrbBgvYDhm','z2v0v2vLA051BwjLCG','DgHYzxnOB2XKx3jLywnOzwq','Dw5ZAgLMDa','Dg90ywXFDg9Rzw5Z','z2v0','C2v0DxbqzxjPB2rPy1nHDMu','C2v0','DxnHz2u','ltaX','q29ZDa','zxjYB3i','veHsrvnit0XeuW','y2fSy3vSyxrLq29ZDa','yNLbz2vUDa','D2vLA2X5','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','zgvIDwC','yNvKz2v0CW','DgHYzxnOB2XKCW','Bwf4','BM93','Dg9tDhjPBMC','CgfKu3rHCNq'];a0_0x5725=function(){return _0xfba01;};return a0_0x5725();}export default BudgetService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0xdc88c5=a0_0x3027;(function(_0x44cdad,_0x2e7e39){const _0x35f7ca=a0_0x3027,_0x43c3bb=_0x44cdad();while(!![]){try{const _0x2397f3=-parseInt(_0x35f7ca(0x1dc))/0x1*(-parseInt(_0x35f7ca(0x207))/0x2)+parseInt(_0x35f7ca(0x203))/0x3*(parseInt(_0x35f7ca(0x1db))/0x4)+-parseInt(_0x35f7ca(0x1fe))/0x5*(-parseInt(_0x35f7ca(0x1e6))/0x6)+parseInt(_0x35f7ca(0x206))/0x7+parseInt(_0x35f7ca(0x1f3))/0x8+parseInt(_0x35f7ca(0x1e1))/0x9*(-parseInt(_0x35f7ca(0x205))/0xa)+-parseInt(_0x35f7ca(0x1dd))/0xb*(parseInt(_0x35f7ca(0x1f1))/0xc);if(_0x2397f3===_0x2e7e39)break;else _0x43c3bb['push'](_0x43c3bb['shift']());}catch(_0x2bf563){_0x43c3bb['push'](_0x43c3bb['shift']());}}}(a0_0x1e13,0xc5253));function a0_0x1e13(){const _0x174ed8=['Aw5PDgLHBgL6zq','jMfTCdS','mteWndu0vg1RBNDV','jNf1B3q7','yNvPBgreEw5HBwLJq29UDgv4Da','zxjYB3i','Dg9gAxHLza','jMX0oW','cJXMAwXLlxjLzMvYzw5Jzxm+cG','iIaVpG','z2v0qwn0AxzLqxr0ywnOBwvUDhm','Bg9Nz2vY','BwvZC2fNzq','nJqYmJuYodrbD3HkCNa','ica8zMLSzsbUyw1Lpsi','otmZntmXmMHksMjjza','Dg9Rzw5fC3rPBwf0zq','Bw9Kzq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','zM9YBwf0qNL0zxm','Cg93','cIaGpc9MAwXLpG','CMvWBgfJzq','zMLSDgvY','yxr0ywnOBwvUDfnLCNzPy2u','zM9YBwf0q29UDgvUDezPBgu','ndm1CwHiq1HT','iIbZAxPLpsi','CMvMzxjLBMnL','Bg9N','rxjYB3iGyNvPBgrPBMCGzhLUyw1PyYbJB250zxH0','ow9mrejWvG','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','nJaYmJGWvennBLjq','nZK4nJa1nxrfugvpqW','nteZmdKWuhrNvKL3','Dgv4Da','CgrM','z2v0qxr0ywnOBwvUDfn1Bw1HCNK','BgvUz3rO','zM9YBwf0sw1Hz2vgAwXL','zMLSzu5HBwu','mteWodu4ne9Zr2DPqq','nKHtu0HrsW','mtfyzvDZCMO','Aw1Hz2u','zM9YBwf0vgv4DezPBgu','zxnJyxbLwg1S','mtHKC3LpAw4','iIbWyxrOpsi','iIb0ExbLpsi'];a0_0x1e13=function(){return _0x174ed8;};return a0_0x1e13();}import a0_0xd9c09a from'./fileAttachmentService.js';function a0_0x3027(_0x4f30ac,_0x27f0b0){_0x4f30ac=_0x4f30ac-0x1d7;const _0x1e1329=a0_0x1e13();let _0x3027a1=_0x1e1329[_0x4f30ac];if(a0_0x3027['ZDLHzT']===undefined){var _0x123dda=function(_0x3017aa){const _0x331066='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xd9c09a='',_0x35daf4='';for(let _0x3275fd=0x0,_0x19b8e1,_0xd69f49,_0x208152=0x0;_0xd69f49=_0x3017aa['charAt'](_0x208152++);~_0xd69f49&&(_0x19b8e1=_0x3275fd%0x4?_0x19b8e1*0x40+_0xd69f49:_0xd69f49,_0x3275fd++%0x4)?_0xd9c09a+=String['fromCharCode'](0xff&_0x19b8e1>>(-0x2*_0x3275fd&0x6)):0x0){_0xd69f49=_0x331066['indexOf'](_0xd69f49);}for(let _0x515527=0x0,_0x172dc3=_0xd9c09a['length'];_0x515527<_0x172dc3;_0x515527++){_0x35daf4+='%'+('00'+_0xd9c09a['charCodeAt'](_0x515527)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x35daf4);};a0_0x3027['svjGIg']=_0x123dda,a0_0x3027['QDeoBE']={},a0_0x3027['ZDLHzT']=!![];}const _0x56d3a3=_0x1e1329[0x0],_0x2289d6=_0x4f30ac+_0x56d3a3,_0x2c271c=a0_0x3027['QDeoBE'][_0x2289d6];return!_0x2c271c?(_0x3027a1=a0_0x3027['svjGIg'](_0x3027a1),a0_0x3027['QDeoBE'][_0x2289d6]=_0x3027a1):_0x3027a1=_0x2c271c,_0x3027a1;}class ContextInjectionService{constructor(_0x35daf4={},_0x3275fd=null){const _0x43879c=a0_0x3027;this['config']=_0x35daf4,this['logger']=_0x3275fd,this[_0x43879c(0x1fc)]=new a0_0xd9c09a(_0x35daf4,_0x3275fd);}async['initialize'](){const _0x5a53f6=a0_0x3027;await this[_0x5a53f6(0x1fc)][_0x5a53f6(0x1e4)]();}async[a0_0xdc88c5(0x1e8)](_0x19b8e1){const _0x48d219=a0_0xdc88c5;try{const _0xd69f49=await this['attachmentService']['getActiveAttachments'](_0x19b8e1);if(_0xd69f49[_0x48d219(0x1d8)]===0x0)return'';const _0x208152=_0xd69f49[_0x48d219(0x1fb)](_0x4af04f=>_0x4af04f['mode']==='content'),_0x515527=_0xd69f49[_0x48d219(0x1fb)](_0x566fea=>_0x566fea['mode']===_0x48d219(0x200));let _0x172dc3='';if(_0x208152[_0x48d219(0x1d8)]>0x0){_0x172dc3+='\x0a<attached-files>\x0a';for(const _0xc2a188 of _0x208152){const _0x44a83e=await this[_0x48d219(0x1fc)]['getAttachmentContent'](_0xc2a188['fileId']);if(_0x44a83e){const _0x27466a=this['formatContentFile'](_0xc2a188,_0x44a83e);_0x172dc3+=_0x27466a+'\x0a';}}_0x172dc3+='</attached-files>\x0a';}if(_0x515527['length']>0x0){_0x172dc3+=_0x48d219(0x1ec);for(const _0x2bb297 of _0x515527){const _0x3f13d5=this['formatReferenceFile'](_0x2bb297);_0x172dc3+=_0x3f13d5+'\x0a';}_0x172dc3+=_0x48d219(0x1f6),_0x172dc3+=_0x48d219(0x204);}return _0x172dc3;}catch(_0x291cce){return this['logger']?.[_0x48d219(0x1e9)](_0x48d219(0x202),{'agentId':_0x19b8e1,'error':_0x291cce['message']}),'';}}[a0_0xdc88c5(0x1fd)](_0x36c69c,_0x60d65){const _0x2dc4ac=a0_0xdc88c5,{fileName:_0x185dca,fileType:_0x2fabf3,size:_0x58ea76,contentType:_0x7d87af}=_0x36c69c,_0x47eb9c=(_0x58ea76/0x400)['toFixed'](0x2);if(_0x7d87af===_0x2dc4ac(0x208))return this[_0x2dc4ac(0x1df)](_0x36c69c,_0x60d65);else{if(_0x7d87af===_0x2dc4ac(0x1de))return this[_0x2dc4ac(0x1d9)](_0x36c69c,_0x60d65);else{if(_0x7d87af===_0x2dc4ac(0x209))return this['formatPdfFile'](_0x36c69c,_0x60d65);}}return _0x2dc4ac(0x1f2)+this[_0x2dc4ac(0x1e0)](_0x185dca)+_0x2dc4ac(0x1e3)+_0x2fabf3+_0x2dc4ac(0x1ff)+_0x47eb9c+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x60d65)+'\x0a\x20\x20</file>';}[a0_0xdc88c5(0x1df)](_0x5800a3,_0x594ca8){const _0x45278b=a0_0xdc88c5,{fileName:_0x3c5fb9,fileType:_0x2135c1,size:_0xb69d53}=_0x5800a3,_0x5b45fc=(_0xb69d53/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x45278b(0x1e0)](_0x3c5fb9)+'\x22\x20type=\x22'+_0x2135c1+_0x45278b(0x1ff)+_0x5b45fc+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x45278b(0x1e0)](_0x594ca8)+'\x0a\x20\x20</file>';}[a0_0xdc88c5(0x1d9)](_0x26f8a7,_0x59f0ec){const _0x150dfd=a0_0xdc88c5,{fileName:_0x269857,fileType:_0x19b9eb,size:_0x1af07e}=_0x26f8a7,_0x24accf=(_0x1af07e/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x269857)+_0x150dfd(0x1e3)+_0x19b9eb+_0x150dfd(0x1ff)+_0x24accf+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x59f0ec+_0x150dfd(0x1f9);}['formatPdfFile'](_0xc2111b,_0x791326){const _0x168116=a0_0xdc88c5,{fileName:_0x432d71,fileType:_0x792bde,size:_0x589f69}=_0xc2111b,_0x33fe19=(_0x589f69/0x400)[_0x168116(0x1ea)](0x2);return _0x168116(0x1f2)+this['escapeXml'](_0x432d71)+'\x22\x20type=\x22'+_0x792bde+'\x22\x20size=\x22'+_0x33fe19+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x791326)+'\x0a\x20\x20</file>';}['formatReferenceFile'](_0x4a19dd){const _0x6bacc6=a0_0xdc88c5,{fileName:_0x20f5bd,originalPath:_0x2645e0,size:_0x1b3116,fileType:_0x493aab,lastModified:_0x2bba1b}=_0x4a19dd,_0x3a52fe=this[_0x6bacc6(0x1f7)](_0x1b3116),_0x329c8b=new Date(_0x2bba1b)['toISOString']()['split']('T')[0x0];return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x20f5bd)+_0x6bacc6(0x1e2)+this[_0x6bacc6(0x1e0)](_0x2645e0)+'\x22\x20size=\x22'+_0x3a52fe+_0x6bacc6(0x1e3)+_0x493aab+'\x22\x20modified=\x22'+_0x329c8b+_0x6bacc6(0x1ed);}[a0_0xdc88c5(0x1e0)](_0xb6e7a){const _0x1ad7e7=a0_0xdc88c5;if(!_0xb6e7a)return'';return _0xb6e7a[_0x1ad7e7(0x1fa)](/&/g,_0x1ad7e7(0x1e5))[_0x1ad7e7(0x1fa)](/</g,_0x1ad7e7(0x1eb))[_0x1ad7e7(0x1fa)](/>/g,'>')[_0x1ad7e7(0x1fa)](/"/g,_0x1ad7e7(0x1e7))['replace'](/'/g,''');}[a0_0xdc88c5(0x1f7)](_0x37cc06){const _0x21aecd=a0_0xdc88c5;if(_0x37cc06===0x0)return'0\x20Bytes';const _0x3d5f77=0x400,_0x1e7002=['Bytes','KB','MB','GB'],_0xb3e122=Math['floor'](Math[_0x21aecd(0x201)](_0x37cc06)/Math['log'](_0x3d5f77));return parseFloat((_0x37cc06/Math[_0x21aecd(0x1f8)](_0x3d5f77,_0xb3e122))['toFixed'](0x2))+_0x1e7002[_0xb3e122];}async['estimateTotalTokens'](_0x2b42ed){const _0x3b031a=a0_0xdc88c5;try{const _0x4cf4a9=await this['attachmentService']['getActiveAttachments'](_0x2b42ed);let _0xc316cf=0x0;for(const _0xe5d6e7 of _0x4cf4a9){_0xe5d6e7['mode']==='content'?_0xc316cf+=_0xe5d6e7[_0x3b031a(0x1f4)]||0x0:_0xc316cf+=0x14;}return _0xc316cf;}catch(_0x1c3da8){return this['logger']?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x2b42ed,'error':_0x1c3da8['message']}),0x0;}}async[a0_0xdc88c5(0x1d7)](_0x4623f0){const _0x8dab11=a0_0xdc88c5;try{const _0x4208f6=await this['attachmentService'][_0x8dab11(0x1ee)](_0x4623f0),_0xa1ac71={'totalActive':_0x4208f6['length'],'contentMode':_0x4208f6[_0x8dab11(0x1fb)](_0x43401c=>_0x43401c[_0x8dab11(0x1f5)]==='content')[_0x8dab11(0x1d8)],'referenceMode':_0x4208f6['filter'](_0x288f9b=>_0x288f9b[_0x8dab11(0x1f5)]==='reference')[_0x8dab11(0x1d8)],'estimatedTokens':0x0,'files':[]};for(const _0x184018 of _0x4208f6){_0xa1ac71['estimatedTokens']+=_0x184018[_0x8dab11(0x1f4)]||0x0,_0xa1ac71['files']['push']({'fileName':_0x184018[_0x8dab11(0x1da)],'mode':_0x184018[_0x8dab11(0x1f5)],'size':this[_0x8dab11(0x1f7)](_0x184018['size']),'tokens':_0x184018['tokenEstimate']||0x0});}return _0xa1ac71;}catch(_0x531129){return this[_0x8dab11(0x1ef)]?.[_0x8dab11(0x1e9)]('Error\x20getting\x20attachment\x20summary',{'agentId':_0x4623f0,'error':_0x531129[_0x8dab11(0x1f0)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
|