@loxia-labs/loxia-autopilot-one 1.0.10 → 1.0.11
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-CoRE46V-.js → index-C5X7qBNF.js} +63 -63
- package/web-ui/build/static/index-g2UFuTwG.css +1 -0
- package/web-ui/build/static/index-P281Rusr.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x21be3e=a0_0x4b19;(function(_0x14be9b,_0x1aad50){const _0x50c473=a0_0x4b19,_0x484771=_0x14be9b();while(!![]){try{const _0x55b071=parseInt(_0x50c473(0x186))/0x1+-parseInt(_0x50c473(0x18a))/0x2*(parseInt(_0x50c473(0x14b))/0x3)+-parseInt(_0x50c473(0x195))/0x4+-parseInt(_0x50c473(0x16a))/0x5+-parseInt(_0x50c473(0x1c1))/0x6*(parseInt(_0x50c473(0x178))/0x7)+-parseInt(_0x50c473(0x15f))/0x8*(parseInt(_0x50c473(0x171))/0x9)+-parseInt(_0x50c473(0x156))/0xa*(-parseInt(_0x50c473(0x16e))/0xb);if(_0x55b071===_0x1aad50)break;else _0x484771['push'](_0x484771['shift']());}catch(_0x107608){_0x484771['push'](_0x484771['shift']());}}}(a0_0x5eaf,0xedbcb));function a0_0x5eaf(){const _0x8c0661=['mJu1ndeXowTdqvP0ra','su5urvjoquXFu0vsvKvsx0vsuK9s','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','A2v5CW','ywDLBNrqB29S','ChjVDMLKzxi','x2zVCM1HDezVCK9Wzw5bsq','mty4CgTfBfrl','C3vIC3rYAw5N','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','z2v0','CMvZCg9UC2vgB3jTyxq','t1bftKfj','DgLTzw91Da','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','revfufnfruTFuJe','8j+wVo+4JYbjBwfNzsbbueKGCMvXDwvZDcbZDgf0zq','BwfW','B3bLBMfP','Aw5JBhvKzxm','Bw9KzwXtCgvJCW','mte1mJK1m0vXCeX5wG','y3vZDg9TqxbPs2v5CW','ChvZAa','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','mti2ogjozLneAq','l2HLywX0Aa','lcb1C2LUzYbMywXSyMfJAW','u3LZDgvToIa','qvPvuKu','y2XHDwrL','x2vZDgLTyxrLvg9Rzw5Z','tK9ux0zpvu5e','Dg9vChbLCKnHC2u','y29UDgvUDa','BM93','ntGZodG4ogrSy1jOuq','CMvXDwvZDff1zxvL','C3DPDgnOtw9KzwW','C3vIC3rY','AgvHBhrOlwnOzwnR','DgLTzxn0yw1W','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','CMf0zuXPBwL0zxjZ','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','CM9Szq','C3rVCa','x3jLy29YzezHAwX1CMu','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','r1buxZq','vMfSAwrHDgLUzYbTB2rLBa','C3LZDgvTuhjVBxb0','Dw5ZAgLMDa','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','y2vPBa','u2vYDMLJzsb1BMf2ywLSywjSzsWGD2fPDgLUzYa','yxbPs2v5','AgLNAa','Aw1Hz2vZ','DgvTCgvYyxr1CMu','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','qu5usfjpueLdx09qvvm','Bg94AwfbCgLlzxK','tw9KzwWGC3DPDgnOigzHAwXLzdOG','AgvHBhrOEq','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','zxn0Aw1HDgvKvg9Rzw5Z','CMv0CNLbDhrLBxb0CW','D2fYBG','zxjYB3jiyw5KBgvY','zMfZDa','ANnVBG','sw52ywXPzcbYzxf1zxn0oIa','x3rYDw5JyxrLtwvZC2fNzq','C2L6zq','u0vsvKLdrv9vtKfwquLmqujmrq','yNvKz2v0u2vYDMLJzq','C3rYAw5N','C2v0qxbPs2v5twfUywDLCG','mJG0mdGYtxnIvvPn','CMv2AxnLzf9WCM9TChq','y29UDMvYC2f0Aw9UtwfUywDLCNm','y2LYy3vPDejYzwfRzxi','yxP1CMuTB3bLBMfPlwrHBgXLmW','DxnLCG','yxbPs2v5twfUywDLCG','x2zVCM1HDezVCKf6DxjL','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','x2zVCM1HDezVCKfUDgHYB3bPyW','y29UzMLN','y2HVAwnLCW','qu5usfjpueLd','CxvHBgL0Eq','x3jLC2v0q2LYy3vPDejYzwfRzxi','vw5RBM93BIbTB2rLBdOG','DxnHz2u','Cg93','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','yMfZzvvYBa','x2HHBMrSzvjHDgvmAw1PDa','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','x2LZq2LYy3vPDejYzwfRzxjpCgvU','C3rHDhvZ','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','C3LZDgvT','CMfUzg9T','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','ve9px01btLLFuKvrvuvtvfm','CMvXlq','qKfex0DbvevxqvK','zgvLChnLzwS','BwvZC2fNzq','rK9sqKLerevo','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','rKfmtejbq0S','Bg9Nz2vY','CM91DgvnB2rLBa','zgf0yq','zMLUAxnOuMvHC29U','ic0G','DMvUzg9YqxbPs2v5','Dg9tDhjPBMC','Dgv4Da','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','odqWm1jfB0PTvq','ChjVBxb0','ChjLzMvYCMvKtw9KzwW','x2nOzwnRuMf0zuXPBwL0','AgfUzgXLshr0CevYCM9Y','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','C2vZC2LVBKLK','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','CgXHDgzVCM1qCM92AwrLza','AxnbCNjHEq','DxjS','ntyZmhLxD0jMrG','y2XHC3nPzNLfCNjVCG','x2nOzwnRtw9KzwXizwfSDgG','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','zMfPBhvYzxm','Dg9ju09tDhjPBMC','Bw9KzwW','yxnZAxn0yw50','DhjHy2TvC2fNzq','ndHQsxP5r2C','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','zxjYB3i','C3rHy2S','x2DLDfzLBMrVCKzYB21nB2rLBa','uMf0zsbSAw1PDcbLEgnLzwrLza','AxnpCgvU','y29UDMvYC2f0Aw9UCW','BgvUz3rO','BwvZC2fNzxm','ndy2mZa4mfHIC3PsEq','sfruuca','ywDLBNrjza','ueHjxZq','mtmZnda4EwruquXW','Aw5MBW','DgHYzxnOB2XK'];a0_0x5eaf=function(){return _0x8c0661;};return a0_0x5eaf();}function a0_0x4b19(_0xe51fb1,_0x35595a){_0xe51fb1=_0xe51fb1-0x11e;const _0x5eaf36=a0_0x5eaf();let _0x4b190a=_0x5eaf36[_0xe51fb1];if(a0_0x4b19['kbSGRC']===undefined){var _0x36d06e=function(_0x4c2958){const _0x1a9f07='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x581188='',_0x53d06d='';for(let _0x41d1b4=0x0,_0x52602a,_0x21dee8,_0x415ecd=0x0;_0x21dee8=_0x4c2958['charAt'](_0x415ecd++);~_0x21dee8&&(_0x52602a=_0x41d1b4%0x4?_0x52602a*0x40+_0x21dee8:_0x21dee8,_0x41d1b4++%0x4)?_0x581188+=String['fromCharCode'](0xff&_0x52602a>>(-0x2*_0x41d1b4&0x6)):0x0){_0x21dee8=_0x1a9f07['indexOf'](_0x21dee8);}for(let _0x2c52ed=0x0,_0x157403=_0x581188['length'];_0x2c52ed<_0x157403;_0x2c52ed++){_0x53d06d+='%'+('00'+_0x581188['charCodeAt'](_0x2c52ed)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x53d06d);};a0_0x4b19['KEhxvW']=_0x36d06e,a0_0x4b19['hxephV']={},a0_0x4b19['kbSGRC']=!![];}const _0x275905=_0x5eaf36[0x0],_0x17da4e=_0xe51fb1+_0x275905,_0x232745=a0_0x4b19['hxephV'][_0x17da4e];return!_0x232745?(_0x4b190a=a0_0x4b19['KEhxvW'](_0x4b190a),a0_0x4b19['hxephV'][_0x17da4e]=_0x4b190a):_0x4b190a=_0x232745,_0x4b190a;}import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x581188,_0x53d06d,_0x41d1b4,_0x52602a){const _0x2e5167=a0_0x4b19;this['config']=_0x581188,this[_0x2e5167(0x142)]=_0x53d06d,this[_0x2e5167(0x1be)]=_0x41d1b4,this[_0x2e5167(0x1b7)]=_0x52602a,this[_0x2e5167(0x130)]=_0x581188['backend']?.[_0x2e5167(0x130)]||'https://api.loxia.ai',this[_0x2e5167(0x17e)]=_0x581188['backend']?.[_0x2e5167(0x17e)]||0xea60,this[_0x2e5167(0x1b5)]=_0x581188['backend']?.[_0x2e5167(0x1b5)]||0x3,this[_0x2e5167(0x19c)]=new Map(),this[_0x2e5167(0x196)]=new Map(),this[_0x2e5167(0x120)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this[_0x2e5167(0x185)]=this['_initializeModelSpecs'](),this[_0x2e5167(0x11f)]=new Map(),this['apiKeyManager']=null,this[_0x2e5167(0x175)]=null;}async['sendMessage'](_0x21dee8,_0x415ecd,_0x2c52ed={}){const _0x1889c8=a0_0x4b19,_0x157403=_0x1889c8(0x13b)+Date[_0x1889c8(0x194)]()+'-'+Math['random']()[_0x1889c8(0x148)](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this[_0x1889c8(0x14e)](_0x21dee8);const _0x261cb=this[_0x1889c8(0x132)](_0x415ecd,_0x21dee8,_0x2c52ed),_0x4c074b={'model':_0x21dee8,'messages':_0x261cb,'options':{'max_tokens':this[_0x1889c8(0x185)][_0x21dee8]?.['maxTokens']||0xfa0,'temperature':_0x2c52ed[_0x1889c8(0x1ad)]||0.7,'stream':_0x2c52ed['stream']||![]},'metadata':{'requestId':_0x157403,'agentId':_0x2c52ed[_0x1889c8(0x16c)],'timestamp':new Date()[_0x1889c8(0x15b)]()}};_0x2c52ed['systemPrompt']&&(_0x4c074b['system']=_0x2c52ed['systemPrompt']);this[_0x1889c8(0x142)]['info'](_0x1889c8(0x1a6)+_0x21dee8,{'requestId':_0x157403,'agentId':_0x2c52ed[_0x1889c8(0x16c)],'messageCount':Array[_0x1889c8(0x154)](_0x415ecd)?_0x415ecd[_0x1889c8(0x168)]:0x1,'maxTokens':_0x4c074b['max_tokens']});const _0x565482=await this['_makeAPIRequest']('/chat/completions',_0x4c074b,_0x157403,{..._0x2c52ed,'sessionId':_0x2c52ed[_0x1889c8(0x151)],'platformProvided':_0x2c52ed['platformProvided']||![]});return _0x565482['usage']&&await this[_0x1889c8(0x15e)](_0x2c52ed[_0x1889c8(0x16c)],_0x21dee8,{'prompt_tokens':_0x565482[_0x1889c8(0x12d)]['prompt_tokens']||0x0,'completion_tokens':_0x565482['usage']['completion_tokens']||0x0,'total_tokens':_0x565482[_0x1889c8(0x12d)]['total_tokens']||0x0}),this[_0x1889c8(0x12b)](),{'content':_0x565482[_0x1889c8(0x128)][0x0]?.[_0x1889c8(0x13e)]?.['content']||'','model':_0x565482['model'],'tokenUsage':_0x565482[_0x1889c8(0x12d)],'requestId':_0x157403,'finishReason':_0x565482[_0x1889c8(0x128)][0x0]?.['finish_reason']};}catch(_0x2a78e6){this['_recordFailure'](),this['logger'][_0x1889c8(0x162)]('AI\x20service\x20request\x20failed:\x20'+_0x2a78e6[_0x1889c8(0x13e)],{'requestId':_0x157403,'model':_0x21dee8,'agentId':_0x2c52ed[_0x1889c8(0x16c)],'error':_0x2a78e6[_0x1889c8(0x163)]}),await this[_0x1889c8(0x14f)](_0x2a78e6,{'requestId':_0x157403,'model':_0x21dee8,'agentId':_0x2c52ed[_0x1889c8(0x16c)]});throw _0x2a78e6;}}async[a0_0x21be3e(0x143)](_0x4698ed,_0x1e61cf={}){const _0xc4b400=a0_0x21be3e;try{const _0x329db4=MODEL_ROUTING[_0x4698ed[_0xc4b400(0x192)]()]||MODEL_ROUTING[_0xc4b400(0x141)],_0x4634dd=[];for(const _0x2fe50c of _0x329db4){const _0x28b289=await this[_0xc4b400(0x158)](_0x2fe50c);_0x28b289&&_0x4634dd[_0xc4b400(0x188)](_0x2fe50c);}if(_0x4634dd['length']===0x0)return this[_0xc4b400(0x142)][_0xc4b400(0x1b6)](_0xc4b400(0x12f)+_0x4698ed+_0xc4b400(0x18c)),MODEL_ROUTING[_0xc4b400(0x141)][0x0];let _0x39ec34=_0x4634dd[0x0];if(_0x1e61cf[_0xc4b400(0x14d)]&&_0x4634dd['includes'](_0x1e61cf[_0xc4b400(0x14d)]))_0x39ec34=_0x1e61cf[_0xc4b400(0x14d)];else{if(_0x1e61cf['complexity']===_0xc4b400(0x1ab)&&_0x4634dd[_0xc4b400(0x184)](MODELS[_0xc4b400(0x1af)]))_0x39ec34=MODELS[_0xc4b400(0x1af)];else _0x1e61cf['speed']===_0xc4b400(0x1b8)&&_0x4634dd['includes'](MODELS['ANTHROPIC_HAIKU'])&&(_0x39ec34=MODELS['ANTHROPIC_HAIKU']);}return this[_0xc4b400(0x142)]['info'](_0xc4b400(0x140)+_0x4698ed,{'selectedModel':_0x39ec34,'availableModels':_0x4634dd[_0xc4b400(0x168)],'context':_0x1e61cf}),_0x39ec34;}catch(_0x149b8e){return this[_0xc4b400(0x142)]['error']('Model\x20routing\x20failed:\x20'+_0x149b8e['message'],{'task':_0x4698ed,'context':_0x1e61cf}),MODEL_ROUTING['FALLBACK'][0x0];}}async['compactizeConversation'](_0x2b2013,_0xa243ca){const _0x209d75=a0_0x21be3e,_0xcaa780=this['modelSpecs'][_0xa243ca];if(!_0xcaa780)throw new Error(_0x209d75(0x12c)+_0xa243ca);const _0x2cbff1=_0xcaa780['contextWindow']*0.8;let _0x2a77cf=0x0;const _0x31ebc6=[],_0xa6639c=await Promise['all'](_0x2b2013['map'](async _0x2c4047=>({..._0x2c4047,'estimatedTokens':await this[_0x209d75(0x190)](_0x2c4047['content'],_0xa243ca)}))),_0x1629c6=[..._0xa6639c]['reverse']();for(const _0x5da2a9 of _0x1629c6){if(_0x2a77cf+_0x5da2a9[_0x209d75(0x1b4)]>_0x2cbff1){if(_0x31ebc6[_0x209d75(0x168)]===0x0){const _0x3fd6f5=await this[_0x209d75(0x1bb)](_0x5da2a9[_0x209d75(0x193)],_0x2cbff1);_0x31ebc6['unshift']({..._0x5da2a9,'content':_0x3fd6f5,'estimatedTokens':_0x2cbff1});}break;}_0x31ebc6[_0x209d75(0x1a5)](_0x5da2a9),_0x2a77cf+=_0x5da2a9[_0x209d75(0x1b4)];}const _0x20fa13=_0xa6639c['slice'](0x0,-_0x31ebc6['length']);if(_0x20fa13[_0x209d75(0x168)]>0x0){const _0x350872=await this['_summarizeMessages'](_0x20fa13,_0xa243ca);_0x31ebc6['unshift']({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x350872,'timestamp':_0x20fa13[0x0]['timestamp'],'type':'summary','estimatedTokens':await this['_estimateTokens'](_0x350872,_0xa243ca)});}return this[_0x209d75(0x142)]['info'](_0x209d75(0x19d)+_0xa243ca,{'originalMessages':_0x2b2013[_0x209d75(0x168)],'compactizedMessages':_0x31ebc6['length'],'estimatedTokens':_0x2a77cf,'maxTokens':_0x2cbff1}),_0x31ebc6;}async[a0_0x21be3e(0x15e)](_0x264258,_0x31d272,_0x32e8b9,_0x369175){const _0x342bdf=a0_0x21be3e;try{this[_0x342bdf(0x1be)]&&this['budgetService']['trackUsage'](_0x264258,_0x31d272,_0x32e8b9);}catch(_0x25d4b0){this['logger']['error'](_0x342bdf(0x17f)+_0x25d4b0['message']);}}async['handleHttpError'](_0x1d3df7,_0x423183){const _0x48d4ee=a0_0x21be3e,_0x288358=this[_0x48d4ee(0x1b7)]?.[_0x48d4ee(0x157)]?.(_0x1d3df7,_0x423183);switch(_0x1d3df7['status']||_0x1d3df7['code']){case HTTP_STATUS['BAD_REQUEST']:this[_0x48d4ee(0x142)]['error']('Bad\x20request\x20to\x20AI\x20service',{'context':_0x423183,'error':_0x1d3df7[_0x48d4ee(0x13e)]});throw new Error(_0x48d4ee(0x1ba)+_0x1d3df7['message']);case HTTP_STATUS['UNAUTHORIZED']:this['logger'][_0x48d4ee(0x162)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x423183});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS[_0x48d4ee(0x13f)]:this['logger']['error'](_0x48d4ee(0x14a),{'context':_0x423183});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x48d4ee(0x191)]:this['logger'][_0x48d4ee(0x162)]('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x423183});throw new Error(_0x48d4ee(0x150));case HTTP_STATUS[_0x48d4ee(0x13a)]:this['logger']['warn'](_0x48d4ee(0x165),{'context':_0x423183}),await this[_0x48d4ee(0x131)](_0x423183);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS[_0x48d4ee(0x172)]:case HTTP_STATUS[_0x48d4ee(0x13c)]:case HTTP_STATUS[_0x48d4ee(0x1bd)]:case HTTP_STATUS['GATEWAY_TIMEOUT']:this[_0x48d4ee(0x142)][_0x48d4ee(0x162)]('AI\x20service\x20unavailable',{'context':_0x423183,'status':_0x1d3df7[_0x48d4ee(0x134)]}),await this[_0x48d4ee(0x160)](_0x423183);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0x48d4ee(0x142)][_0x48d4ee(0x162)](_0x48d4ee(0x152),{'context':_0x423183,'error':_0x1d3df7['message']});throw new Error('AI\x20service\x20error:\x20'+_0x1d3df7[_0x48d4ee(0x13e)]);}}[a0_0x21be3e(0x1c0)](_0x4147fd){const _0x5cd2ff=a0_0x21be3e;this[_0x5cd2ff(0x123)]=_0x4147fd,this['logger']?.['info']('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x4147fd});}['setAgentPool'](_0x42c82b){const _0x78be0b=a0_0x21be3e;this[_0x78be0b(0x175)]=_0x42c82b,this['logger']?.['info']('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x42c82b});}async['generateImage'](_0x255fe8,_0x56385f={}){const _0x5af6ca=a0_0x21be3e,_0x5ca228='img-'+Date['now']()+'-'+Math[_0x5af6ca(0x138)]()[_0x5af6ca(0x148)](0x24)[_0x5af6ca(0x198)](0x2,0x9);try{if(this[_0x5af6ca(0x133)]())throw new Error(_0x5af6ca(0x139));if(!_0x255fe8||typeof _0x255fe8!==_0x5af6ca(0x1bf)||_0x255fe8['trim']()[_0x5af6ca(0x168)]===0x0)throw new Error(_0x5af6ca(0x19b));const _0x5ef501=_0x56385f['model']||'flux-1.1-pro',_0x36e4bb=_0x56385f[_0x5af6ca(0x1bc)]||'1024x1024',_0x23fd50=_0x56385f[_0x5af6ca(0x12a)]||'standard',_0x3b4884=_0x56385f[_0x5af6ca(0x17c)]||_0x5af6ca(0x155);this[_0x5af6ca(0x142)][_0x5af6ca(0x16f)](_0x5af6ca(0x136)+_0x5ef501,{'requestId':_0x5ca228,'model':_0x5ef501,'size':_0x36e4bb,'quality':_0x23fd50,'promptLength':_0x255fe8['length']});const _0x331c88={'prompt':_0x255fe8,'model':_0x5ef501,'size':_0x36e4bb,'quality':_0x23fd50,'response_format':_0x3b4884,'n':0x1,'metadata':{'requestId':_0x5ca228,'timestamp':new Date()[_0x5af6ca(0x15b)]()}},_0x79f551=await this['_makeImageAPIRequest'](_0x331c88,_0x5ca228,{'sessionId':_0x56385f[_0x5af6ca(0x151)],'platformProvided':_0x56385f['platformProvided']||![]});return this['_resetCircuitBreaker'](),{'url':_0x79f551[_0x5af6ca(0x144)]?.[0x0]?.[_0x5af6ca(0x155)]||null,'b64_json':_0x79f551['data']?.[0x0]?.['b64_json']||null,'model':_0x79f551['model']||_0x5ef501,'requestId':_0x5ca228,'revisedPrompt':_0x79f551[_0x5af6ca(0x144)]?.[0x0]?.[_0x5af6ca(0x11e)]||_0x255fe8};}catch(_0x56c810){this[_0x5af6ca(0x1a0)](),this[_0x5af6ca(0x142)][_0x5af6ca(0x162)](_0x5af6ca(0x159)+_0x56c810['message'],{'requestId':_0x5ca228,'model':_0x56385f['model'],'error':_0x56c810['stack']});throw _0x56c810;}}async['checkServiceHealth'](){const _0x5b087b=a0_0x21be3e;try{const _0x2677ae=await this['_makeAPIRequest'](_0x5b087b(0x18b),{},_0x5b087b(0x199));return _0x2677ae[_0x5b087b(0x134)]===_0x5b087b(0x1b2);}catch(_0x4ae156){return![];}}async['switchAgentModel'](_0x1c87a2,_0x13e6f3){const _0x22b734=a0_0x21be3e;try{if(!this['_isValidModel'](_0x13e6f3))throw new Error('Invalid\x20model:\x20'+_0x13e6f3);let _0x12c09a=this[_0x22b734(0x11f)][_0x22b734(0x17b)](_0x1c87a2);!_0x12c09a&&(_0x12c09a=new ConversationManager(_0x1c87a2,this['logger']),this['conversationManagers']['set'](_0x1c87a2,_0x12c09a));const _0xf4f851=await _0x12c09a['switchModel'](_0x13e6f3),_0x38d0af=await this['agentPool']?.['getAgent'](_0x1c87a2);return _0x38d0af&&(_0x38d0af['currentModel']=_0x13e6f3,await this['agentPool']['persistAgentState'](_0x1c87a2)),this['logger'][_0x22b734(0x16f)](_0x22b734(0x125)+_0x1c87a2,{'newModel':_0x13e6f3,'messageCount':_0xf4f851[_0x22b734(0x169)][_0x22b734(0x168)]}),{'success':!![],'agentId':_0x1c87a2,'newModel':_0x13e6f3,'conversation':_0xf4f851};}catch(_0x34b454){this['logger']['error'](_0x22b734(0x1b1)+_0x34b454[_0x22b734(0x13e)],{'agentId':_0x1c87a2,'newModel':_0x13e6f3});throw _0x34b454;}}[a0_0x21be3e(0x173)](){const _0xf1cdd=a0_0x21be3e,_0x5f21fb={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0xf1cdd(0x129)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0xf1cdd(0x1af)]]:{'provider':MODEL_PROVIDERS[_0xf1cdd(0x129)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0xf1cdd(0x1a2)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0xf1cdd(0x17d)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0xf1cdd(0x17d)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0xf1cdd(0x180)]]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0xf1cdd(0x16d)]]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0xf1cdd(0x18e),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x5f21fb;}[a0_0x21be3e(0x132)](_0x166163,_0x11e730,_0x295d82){const _0xef3128=a0_0x21be3e,_0x536358=this['modelSpecs'][_0x11e730]||{'provider':_0xef3128(0x18e)};let _0x34f3e2;typeof _0x166163==='string'?_0x34f3e2=[{'role':'user','content':_0x166163}]:_0x34f3e2=_0x166163['map'](_0xdcf389=>this['_formatSingleMessage'](_0xdcf389,_0x11e730));switch(_0x536358[_0xef3128(0x176)]){case MODEL_PROVIDERS['ANTHROPIC']:return this[_0xef3128(0x126)](_0x34f3e2);case MODEL_PROVIDERS[_0xef3128(0x17d)]:return this[_0xef3128(0x177)](_0x34f3e2);case MODEL_PROVIDERS[_0xef3128(0x18e)]:return this[_0xef3128(0x124)](_0x34f3e2);default:return _0x34f3e2;}}['_formatSingleMessage'](_0x2e91aa,_0x2b388c){const _0x438c80=a0_0x21be3e;return{'role':_0x2e91aa['role']||_0x438c80(0x122),'content':_0x2e91aa[_0x438c80(0x193)],'timestamp':_0x2e91aa[_0x438c80(0x19a)]};}['_formatForAnthropic'](_0x45d070){const _0x2e128e=a0_0x21be3e;return _0x45d070[_0x2e128e(0x182)](_0x395660=>{const _0x16a1b8=_0x2e128e;if(_0x395660['role']==='system')return{'role':'user','content':_0x16a1b8(0x18d)+_0x395660['content']};return _0x395660;});}[a0_0x21be3e(0x177)](_0x51301f){return _0x51301f;}[a0_0x21be3e(0x124)](_0x386793){const _0x3b8522=a0_0x21be3e;return _0x386793['map'](_0x572e98=>({..._0x572e98,'content':typeof _0x572e98[_0x3b8522(0x193)]===_0x3b8522(0x1bf)?_0x572e98[_0x3b8522(0x193)]:JSON['stringify'](_0x572e98['content'])}));}['_isValidModel'](_0x47d190){const _0x18b705=a0_0x21be3e;this['logger']['debug'](_0x18b705(0x1a3),{'model':_0x47d190,'modelType':typeof _0x47d190});if(this[_0x18b705(0x185)][_0x47d190]!==undefined)return!![];return this['logger']['warn']('Model\x20validation\x20failed',{'model':_0x47d190,'availableModels':Object[_0x18b705(0x174)](this[_0x18b705(0x185)])}),![];}async['_checkModelHealth'](_0xe9c8b4){return!![];}async['_estimateTokens'](_0x31de6d,_0x52e6d9){const _0x40184e=a0_0x21be3e;return Math[_0x40184e(0x1a8)](_0x31de6d['length']/0x4);}async['_truncateMessage'](_0x41601a,_0x60e439){const _0x5f03da=a0_0x21be3e,_0x75f789=_0x60e439*0x4;if(_0x41601a[_0x5f03da(0x168)]<=_0x75f789)return _0x41601a;return _0x41601a[_0x5f03da(0x179)](0x0,_0x75f789-0x14)+_0x5f03da(0x161);}async['_summarizeMessages'](_0x2ce26d,_0x5cb085){const _0x3a95ef=a0_0x21be3e,_0x548ec1=_0x2ce26d['map'](_0x54e31a=>_0x54e31a[_0x3a95ef(0x19e)]+':\x20'+_0x54e31a[_0x3a95ef(0x193)])['join']('\x0a'),_0x45ca39=0x1f4;if(_0x548ec1['length']<=_0x45ca39)return _0x548ec1;return _0x548ec1[_0x3a95ef(0x179)](0x0,_0x45ca39)+_0x3a95ef(0x17a);}async['_makeAPIRequest'](_0x17b4e6,_0x37e2c6,_0x5f451d,_0x510a86={}){const _0x1ea3d5=a0_0x21be3e,_0x1b1e30=_0x1ea3d5(0x135);let _0x595b48,_0x149b06=null,_0x286569=null;this[_0x1ea3d5(0x142)]?.['info'](_0x1ea3d5(0x189),{'hasApiKeyManager':!!this[_0x1ea3d5(0x123)],'sessionId':_0x510a86[_0x1ea3d5(0x151)],'hasSessionId':!!_0x510a86[_0x1ea3d5(0x151)],'optionsKeys':Object[_0x1ea3d5(0x174)](_0x510a86),'model':_0x37e2c6['model']});if(this[_0x1ea3d5(0x123)]&&_0x510a86['sessionId']){const _0x4e7613=this['apiKeyManager']['getKeysForRequest'](_0x510a86[_0x1ea3d5(0x151)],{'platformProvided':_0x510a86[_0x1ea3d5(0x153)]||![],'vendor':this[_0x1ea3d5(0x164)](_0x37e2c6['model'])});_0x149b06=_0x4e7613[_0x1ea3d5(0x1b0)],_0x286569=_0x4e7613['vendorApiKey'],this[_0x1ea3d5(0x142)]?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x510a86[_0x1ea3d5(0x151)],'hasLoxiaKey':!!_0x149b06,'hasVendorKey':!!_0x286569,'vendor':this[_0x1ea3d5(0x164)](_0x37e2c6[_0x1ea3d5(0x15c)])});}!_0x149b06&&_0x510a86[_0x1ea3d5(0x1aa)]&&(_0x149b06=_0x510a86[_0x1ea3d5(0x1aa)]);!_0x149b06&&this['config'][_0x1ea3d5(0x1aa)]&&(_0x149b06=this['config'][_0x1ea3d5(0x1aa)]);if(!_0x149b06)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x2debe5=_0x37e2c6[_0x1ea3d5(0x15c)],_0x256930={'conversationId':_0x5f451d,'message':_0x37e2c6[_0x1ea3d5(0x169)][_0x37e2c6['messages']['length']-0x1]?.[_0x1ea3d5(0x193)]||'','messages':_0x37e2c6['messages'],'model':_0x2debe5,'requestId':_0x5f451d,'options':_0x37e2c6['options']||{},'platformProvided':_0x510a86['platformProvided']||![]};_0x37e2c6['system']&&(_0x256930[_0x1ea3d5(0x1a4)]=_0x37e2c6[_0x1ea3d5(0x137)]);_0x510a86[_0x1ea3d5(0x153)]?_0x256930['apiKey']=_0x149b06:(_0x286569&&(_0x256930['vendorApiKey']=_0x286569),_0x510a86['customApiKeys']&&(_0x256930['customApiKeys']=_0x510a86[_0x1ea3d5(0x187)]),_0x256930[_0x1ea3d5(0x1aa)]=_0x149b06);for(let _0x49b89a=0x1;_0x49b89a<=this[_0x1ea3d5(0x1b5)];_0x49b89a++){try{this['logger'][_0x1ea3d5(0x16f)]('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x1b1e30,'model':_0x37e2c6[_0x1ea3d5(0x15c)],'requestId':_0x5f451d,'attempt':_0x49b89a,'hasApiKey':!!_0x149b06});const _0x4b45a7=await fetch(_0x1b1e30,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x149b06,'X-Request-ID':_0x5f451d},'body':JSON['stringify'](_0x256930),'timeout':this['timeout']});if(!_0x4b45a7['ok']){const _0x5cbb32=await _0x4b45a7['text'](),_0x50f304=new Error(_0x1ea3d5(0x16b)+_0x4b45a7[_0x1ea3d5(0x134)]+':\x20'+_0x4b45a7['statusText']+(_0x5cbb32?_0x1ea3d5(0x146)+_0x5cbb32:''));_0x50f304[_0x1ea3d5(0x134)]=_0x4b45a7[_0x1ea3d5(0x134)];throw _0x50f304;}const _0x410c22=await _0x4b45a7['json']();return{'choices':[{'message':{'content':_0x410c22['content']||'','role':_0x1ea3d5(0x15d)},'finish_reason':_0x410c22[_0x1ea3d5(0x145)]||_0x1ea3d5(0x19f)}],'usage':_0x410c22['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x410c22[_0x1ea3d5(0x15c)]||_0x37e2c6['model'],'id':_0x410c22['requestId']||_0x5f451d};}catch(_0x5d3bf2){_0x595b48=_0x5d3bf2,this['logger'][_0x1ea3d5(0x1b6)]('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x49b89a,'requestId':_0x5f451d,'error':_0x5d3bf2['message'],'status':_0x5d3bf2['status']});if(_0x49b89a<this['retryAttempts']){const _0xc54ac5=Math['pow'](0x2,_0x49b89a)*0x3e8;this['logger'][_0x1ea3d5(0x1b6)]('Retrying\x20in\x20'+_0xc54ac5+'ms',{'attempt':_0x49b89a,'requestId':_0x5f451d}),await new Promise(_0x269245=>setTimeout(_0x269245,_0xc54ac5));}}}this['logger']['error'](_0x1ea3d5(0x1a1),{'requestId':_0x5f451d,'error':_0x595b48['message']});const _0x3636ef=_0x595b48['message']&&_0x595b48['message'][_0x1ea3d5(0x184)]('No\x20API\x20key\x20configured');if(_0x3636ef)throw new Error('API\x20Configuration\x20Error:\x20'+_0x595b48['message']);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x595b48['message'],'role':_0x1ea3d5(0x15d)},'finish_reason':_0x1ea3d5(0x19f)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x37e2c6['model'],'id':'error-'+_0x5f451d,'error':_0x595b48[_0x1ea3d5(0x13e)]};}async['_makeImageAPIRequest'](_0x506e7d,_0x4ec5ab,_0x953017={}){const _0x59d5cc=a0_0x21be3e,_0x354f42='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x32abcb,_0x525c1a=null,_0x1b0af9=null;this[_0x59d5cc(0x142)]?.['info'](_0x59d5cc(0x181),{'hasApiKeyManager':!!this[_0x59d5cc(0x123)],'sessionId':_0x953017[_0x59d5cc(0x151)],'hasSessionId':!!_0x953017[_0x59d5cc(0x151)],'model':_0x506e7d[_0x59d5cc(0x15c)]});if(this['apiKeyManager']&&_0x953017[_0x59d5cc(0x151)]){const _0x447bd9=this['apiKeyManager']['getKeysForRequest'](_0x953017['sessionId'],{'platformProvided':_0x953017['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0x506e7d[_0x59d5cc(0x15c)])});_0x525c1a=_0x447bd9[_0x59d5cc(0x1b0)],_0x1b0af9=_0x447bd9[_0x59d5cc(0x147)],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x953017['sessionId'],'hasLoxiaKey':!!_0x525c1a,'hasVendorKey':!!_0x1b0af9});}!_0x525c1a&&_0x953017[_0x59d5cc(0x1aa)]&&(_0x525c1a=_0x953017[_0x59d5cc(0x1aa)]);!_0x525c1a&&this['config']['apiKey']&&(_0x525c1a=this[_0x59d5cc(0x127)][_0x59d5cc(0x1aa)]);if(!_0x525c1a)throw new Error(_0x59d5cc(0x1ae));const _0x5dd739={'prompt':_0x506e7d[_0x59d5cc(0x14c)],'model':_0x506e7d['model']||_0x59d5cc(0x121),'size':_0x506e7d['size'],'quality':_0x506e7d[_0x59d5cc(0x12a)],'style':_0x506e7d['style']||'vivid','n':_0x506e7d['n']||0x1,'requestId':_0x4ec5ab};for(let _0x4a0cb4=0x1;_0x4a0cb4<=this['retryAttempts'];_0x4a0cb4++){try{this[_0x59d5cc(0x142)]['info'](_0x59d5cc(0x1a7),{'url':_0x354f42,'model':_0x506e7d['model'],'requestId':_0x4ec5ab,'attempt':_0x4a0cb4,'hasApiKey':!!_0x525c1a});const _0x4e2968=await fetch(_0x354f42,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x525c1a,'X-Request-ID':_0x4ec5ab},'body':JSON['stringify'](_0x5dd739),'timeout':this['timeout']*0x2});if(!_0x4e2968['ok']){const _0x467978=await _0x4e2968[_0x59d5cc(0x149)](),_0x21f824=new Error(_0x59d5cc(0x16b)+_0x4e2968[_0x59d5cc(0x134)]+':\x20'+_0x4e2968['statusText']+(_0x467978?_0x59d5cc(0x146)+_0x467978:''));_0x21f824[_0x59d5cc(0x134)]=_0x4e2968['status'];throw _0x21f824;}const _0x26b43a=await _0x4e2968[_0x59d5cc(0x1b9)]();return{'data':_0x26b43a[_0x59d5cc(0x1ac)]||[],'model':_0x26b43a[_0x59d5cc(0x15c)]||_0x506e7d['model'],'created':_0x26b43a['created']||Date[_0x59d5cc(0x194)](),'usage':_0x26b43a[_0x59d5cc(0x12d)]};}catch(_0x190eca){_0x32abcb=_0x190eca,this['logger']['warn']('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x4a0cb4,'requestId':_0x4ec5ab,'error':_0x190eca['message'],'status':_0x190eca['status']});if(_0x4a0cb4<this[_0x59d5cc(0x1b5)]){const _0x39b4da=Math[_0x59d5cc(0x12e)](0x2,_0x4a0cb4)*0x3e8;this['logger'][_0x59d5cc(0x1b6)]('Retrying\x20in\x20'+_0x39b4da+'ms',{'attempt':_0x4a0cb4,'requestId':_0x4ec5ab}),await new Promise(_0xf7333=>setTimeout(_0xf7333,_0x39b4da));}}}this[_0x59d5cc(0x142)]['error']('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x4ec5ab,'error':_0x32abcb['message']});throw new Error(_0x59d5cc(0x159)+_0x32abcb['message']);}async['_checkRateLimit'](_0x1a6b92){await new Promise(_0x2f7e81=>setTimeout(_0x2f7e81,0x64));}async[a0_0x21be3e(0x131)](_0x4a568e){const _0x12ba8e=a0_0x21be3e,_0x128340=0xea60;this['logger'][_0x12ba8e(0x16f)](_0x12ba8e(0x1b3)+_0x128340+'ms',_0x4a568e),await new Promise(_0x567115=>setTimeout(_0x567115,_0x128340));}async['_handleServiceUnavailable'](_0x4a0178){const _0x44f241=a0_0x21be3e;this['_recordFailure']();const _0x50f237=0x7530;this['logger']['info'](_0x44f241(0x1a9)+_0x50f237+'ms',_0x4a0178),await new Promise(_0x5219a9=>setTimeout(_0x5219a9,_0x50f237));}[a0_0x21be3e(0x133)](){const _0xa5f0e2=a0_0x21be3e;if(!this['circuitBreaker'][_0xa5f0e2(0x166)])return![];const _0x3eff99=Date[_0xa5f0e2(0x194)]()-this['circuitBreaker']['lastFailureTime'];if(_0x3eff99>this[_0xa5f0e2(0x120)]['timeout'])return this['circuitBreaker'][_0xa5f0e2(0x166)]=![],this['circuitBreaker'][_0xa5f0e2(0x15a)]=0x0,![];return!![];}['_recordFailure'](){const _0x435daa=a0_0x21be3e;this[_0x435daa(0x120)][_0x435daa(0x15a)]++,this['circuitBreaker']['lastFailureTime']=Date[_0x435daa(0x194)](),this[_0x435daa(0x120)][_0x435daa(0x15a)]>=this[_0x435daa(0x120)][_0x435daa(0x170)]&&(this['circuitBreaker']['isOpen']=!![],this['logger'][_0x435daa(0x1b6)]('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}[a0_0x21be3e(0x12b)](){const _0x4d4d86=a0_0x21be3e;this[_0x4d4d86(0x120)][_0x4d4d86(0x15a)]>0x0&&(this[_0x4d4d86(0x120)][_0x4d4d86(0x15a)]=0x0,this[_0x4d4d86(0x120)]['isOpen']=![],this['logger']['info']('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x51e6ad){const _0x54f348=a0_0x21be3e;if(!_0x51e6ad)return null;const _0x23ed69=_0x51e6ad['toLowerCase']();if(_0x23ed69['includes']('anthropic')||_0x23ed69['includes'](_0x54f348(0x18f)))return'anthropic';else{if(_0x23ed69[_0x54f348(0x184)]('openai')||_0x23ed69['includes']('gpt'))return _0x54f348(0x183);else{if(_0x23ed69[_0x54f348(0x184)](_0x54f348(0x13d)))return _0x54f348(0x13d);else{if(_0x23ed69[_0x54f348(0x184)]('phi'))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x4b6524,_0x162a55){const _0x293dde=a0_0x21be3e;this[_0x293dde(0x16c)]=_0x4b6524,this['logger']=_0x162a55,this[_0x293dde(0x167)]=new Map();}async[a0_0x21be3e(0x197)](_0x2584d8){const _0x49b06c=a0_0x21be3e;return{'messages':[],'model':_0x2584d8,'lastUpdated':new Date()[_0x49b06c(0x15b)]()};}}export default AIService;
|
|
1
|
+
const a0_0x353b80=a0_0x36f7;(function(_0x3aa805,_0x26dbc){const _0x475af6=a0_0x36f7,_0x25cfc0=_0x3aa805();while(!![]){try{const _0x2128ad=-parseInt(_0x475af6(0x1e6))/0x1*(-parseInt(_0x475af6(0x1d8))/0x2)+parseInt(_0x475af6(0x23b))/0x3+parseInt(_0x475af6(0x206))/0x4+-parseInt(_0x475af6(0x22f))/0x5+parseInt(_0x475af6(0x1ef))/0x6*(-parseInt(_0x475af6(0x252))/0x7)+parseInt(_0x475af6(0x214))/0x8*(parseInt(_0x475af6(0x1d6))/0x9)+-parseInt(_0x475af6(0x26b))/0xa;if(_0x2128ad===_0x26dbc)break;else _0x25cfc0['push'](_0x25cfc0['shift']());}catch(_0x31271e){_0x25cfc0['push'](_0x25cfc0['shift']());}}}(a0_0x35b5,0x9733f));function a0_0x36f7(_0x3ac1dd,_0x49b9fc){_0x3ac1dd=_0x3ac1dd-0x1cf;const _0x35b5ba=a0_0x35b5();let _0x36f773=_0x35b5ba[_0x3ac1dd];if(a0_0x36f7['VUNOQu']===undefined){var _0x2ea2b3=function(_0x4eb66e){const _0x35e721='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x47f60f='',_0x2d8016='';for(let _0x17233d=0x0,_0x5878ed,_0x3f92eb,_0x4c7498=0x0;_0x3f92eb=_0x4eb66e['charAt'](_0x4c7498++);~_0x3f92eb&&(_0x5878ed=_0x17233d%0x4?_0x5878ed*0x40+_0x3f92eb:_0x3f92eb,_0x17233d++%0x4)?_0x47f60f+=String['fromCharCode'](0xff&_0x5878ed>>(-0x2*_0x17233d&0x6)):0x0){_0x3f92eb=_0x35e721['indexOf'](_0x3f92eb);}for(let _0x49d02c=0x0,_0x53dd7e=_0x47f60f['length'];_0x49d02c<_0x53dd7e;_0x49d02c++){_0x2d8016+='%'+('00'+_0x47f60f['charCodeAt'](_0x49d02c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2d8016);};a0_0x36f7['YmnZMw']=_0x2ea2b3,a0_0x36f7['WTRLkj']={},a0_0x36f7['VUNOQu']=!![];}const _0x3ab003=_0x35b5ba[0x0],_0x23f407=_0x3ac1dd+_0x3ab003,_0x7b8bb5=a0_0x36f7['WTRLkj'][_0x23f407];return!_0x7b8bb5?(_0x36f773=a0_0x36f7['YmnZMw'](_0x36f773),a0_0x36f7['WTRLkj'][_0x23f407]=_0x36f773):_0x36f773=_0x7b8bb5,_0x36f773;}function a0_0x35b5(){const _0x3a66b0=['y29UDMvYC2f0Aw9UtwfUywDLCNm','x2HHBMrSzvjHDgvmAw1PDa','y29UDMvYC2f0Aw9UCW','yxbPs2v5','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','u3LZDgvToIa','C3rVCa','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','yMfJA2vUza','C3vIC3rY','yJy0x2PZB24','zxn0Aw1HDgvKvg9Rzw5Z','x3jLy29YzezHAwX1CMu','x2DLDfzLBMrVCKzYB21nB2rLBa','zgvIDwC','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','mta3oteYmdbWwLDRq0K','DhjHy2TvC2fNzq','z2v0s2v5C0zVCLjLCxvLC3q','x21HA2vbueLszxf1zxn0','C3rHBMrHCMq','y2XHDwrL','ChjLzMvYCMvKtw9KzwW','zMfZDa','y2XHC3nPzNLfCNjVCG','zMfPBhvYzxm','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','zxjYB3i','qu5usfjpueLdx09qvvm','BwvZC2fNzxm','z3b0','ueHj','Aw5MBW','Bw9KzwXtCgvJCW','CMvXDwvZDff1zxvL','BM93','qKfex1jfuvvfu1q','nta3mtu5AM51BgLq','x2zVCM1HDezVCKfUDgHYB3bPyW','nerervbIvG','BgfZDezHAwX1CMvuAw1L','C2v0qwDLBNrqB29S','ywDLBNrqB29S','qvPvuKu','CMfUzg9T','C3bLzwq','DxjS','Bw9KzwW','uhjLDMLVDxmGy29UDMvYC2f0Aw9Uihn1Bw1HCNK6ia','BwfW','x3rYDw5JyxrLtwvZC2fNzq','qMvHCMvYia','Aw1Hz2vZ','mtiWmtu0AKjOqMzK','B3b0Aw9UCW','twfRAw5NihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','yxP1CMuTB3bLBMfPlwrHBgXLmW','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','y29UDgv4DfDPBMrVDW','zMLUAxnOx3jLyxnVBG','C2vUze1LC3nHz2u','DMvUzg9YqxbPs2v5','mJmWnZeYsgniBLPf','Cg93','D2fYBG','uMv0CNLPBMCGAw4G','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','C3DPDgnOtw9KzwW','DxnHz2u','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','y29Kzq','C3r5Bgu','x2nOzwnRtw9KzwXizwfSDgG','x2zVCM1HDezVCK9Wzw5bsq','BwvZC2fNzq','z2vUzxjHDgvjBwfNzq','C2L6zq','Dg9vChbLCKnHC2u','y3vYCMvUDe1VzgvS','AgfUzgXLshr0CevYCM9Y','C3rHy2S','y29UDgvUDa','Aw1Nlq','Bg9Nz2vY','qu5usfjpueLdx1nptK5fva','ndq0mtK5nKTjuwzoBG','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','C3LZDgvT','C3vTBwfYEq','yxbPs2v5twfUywDLCG','DgHYzxnOB2XK','uMf0zsbSAw1PDcbLEgnLzwrLza','B3bLBMfP','vw5RBM93BIbTB2rLBdOG','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','CMvZCg9UC2vgB3jTyxq','C3vIC3rYAw5N','z2v0qwDLBNq','C2vZC2LVBKLK','mtuYy09hDNjp','x2vZDgLTyxrLvg9Rzw5Z','CgHP','C3rYzwfT','Dgv4Da','vu5bvvrit1jjwKve','x3jLC2v0q2LYy3vPDejYzwfRzxi','rKfmtejbq0S','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','Bg94AwfbCgLlzxK','ANnVBG','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','C3LZDgvTuhjVBxb0','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','tM8GqvbjigTLEsbJB25MAwD1CMvK','ChjVBxb0x3rVA2vUCW','qu5usfjpueLdx0HbsuTv','t1bftKfj','AgvHBhrOEq','CM9Szq','l2nOyxqVy29TCgXLDgLVBNm','CMv2AxnLzf9WCM9TChq','y2HVAwnLCW','DxnLCG','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','CgXHDgzVCM1qCM92AwrLza','mZK0nZCYmezpuLnjvq','DML2Awq','su5urvjoquXFu0vsvKvsx0vsuK9s','Dw5ZAgLMDa','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','ywDLBNrjza','mtaYnhGXmdi0','y29UzMLN','Aw5JBhvKzxm','DhjPBq','zgf0yq','CxvHBgL0Eq','mZqYotuXm2vJtvfPtG','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','CMv0CNLbDhrLBxb0CW','yNvKz2v0u2vYDMLJzq','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','x2LZvMfSAwrnB2rLBa','qMfKihjLCxvLC3qGDg8GquKGC2vYDMLJzq','x2zVCM1HDfnPBMDSzu1LC3nHz2u','x2nOzwnRuMf0zuXPBwL0','C2v0qxbPs2v5twfUywDLCG','AxnpCgvU','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','Ahr0Chm6lY9HCgKUBg94AweUywK','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','yMfZzvvYBa','C3rHDhvZ','y2LYy3vPDejYzwfRzxi','BgvUz3rO','Bwf4vg9Rzw5Z','DgLTzw91Da','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','mtK2y2zry1vw','DgLTzxn0yw1W','qu5usfjpueLd','ve9px01btLLFuKvrvuvtvfm','tK9ux0zpvu5e','CgvYC2LZDefNzw50u3rHDgu','x2zVCM1HDezVCKf6DxjL','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq'];a0_0x35b5=function(){return _0x3a66b0;};return a0_0x35b5();}import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x47f60f,_0x2d8016,_0x17233d,_0x5878ed){const _0x46fb17=a0_0x36f7;this['config']=_0x47f60f,this['logger']=_0x2d8016,this['budgetService']=_0x17233d,this['errorHandler']=_0x5878ed,this[_0x46fb17(0x24b)]=_0x47f60f[_0x46fb17(0x263)]?.['baseUrl']||_0x46fb17(0x248),this[_0x46fb17(0x250)]=_0x47f60f['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x47f60f['backend']?.[_0x46fb17(0x23e)]||0x3,this['rateLimiters']=new Map(),this[_0x46fb17(0x1d3)]=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0x46fb17(0x233)](),this[_0x46fb17(0x25a)]=new Map(),this[_0x46fb17(0x20a)]=null,this[_0x46fb17(0x1db)]=null;}async[a0_0x353b80(0x1ed)](_0x3f92eb,_0x4c7498,_0x49d02c={}){const _0x34fe76=a0_0x353b80,_0x53dd7e='req-'+Date['now']()+'-'+Math[_0x34fe76(0x1dd)]()['toString'](0x24)[_0x34fe76(0x264)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x34fe76(0x222));await this['_checkRateLimit'](_0x3f92eb);const _0x5e717a=this[_0x34fe76(0x26a)](_0x4c7498,_0x3f92eb,_0x49d02c),_0x2b8ae1={'model':_0x3f92eb,'messages':_0x5e717a,'options':{'max_tokens':this['modelSpecs'][_0x3f92eb]?.[_0x34fe76(0x24f)]||0xfa0,'temperature':_0x49d02c['temperature']||0.7,'stream':_0x49d02c[_0x34fe76(0x217)]||![]},'metadata':{'requestId':_0x53dd7e,'agentId':_0x49d02c['agentId'],'timestamp':new Date()['toISOString']()}};_0x49d02c['systemPrompt']&&(_0x2b8ae1[_0x34fe76(0x208)]=_0x49d02c['systemPrompt']);this[_0x34fe76(0x204)]['info']('Sending\x20message\x20to\x20model:\x20'+_0x3f92eb,{'requestId':_0x53dd7e,'agentId':_0x49d02c[_0x34fe76(0x234)],'messageCount':Array['isArray'](_0x4c7498)?_0x4c7498[_0x34fe76(0x24e)]:0x1,'maxTokens':_0x2b8ae1['max_tokens']});const _0x524f43=await this['_makeAPIRequest'](_0x34fe76(0x229),_0x2b8ae1,_0x53dd7e,{..._0x49d02c,'sessionId':_0x49d02c[_0x34fe76(0x213)],'platformProvided':_0x49d02c[_0x34fe76(0x22e)]||![]});return _0x524f43[_0x34fe76(0x1f5)]&&await this[_0x34fe76(0x26c)](_0x49d02c[_0x34fe76(0x234)],_0x3f92eb,{'prompt_tokens':_0x524f43[_0x34fe76(0x1f5)][_0x34fe76(0x224)]||0x0,'completion_tokens':_0x524f43[_0x34fe76(0x1f5)]['completion_tokens']||0x0,'total_tokens':_0x524f43['usage']['total_tokens']||0x0}),this[_0x34fe76(0x21a)](),{'content':_0x524f43[_0x34fe76(0x22b)][0x0]?.['message']?.['content']||'','model':_0x524f43['model'],'tokenUsage':_0x524f43['usage'],'requestId':_0x53dd7e,'finishReason':_0x524f43[_0x34fe76(0x22b)][0x0]?.[_0x34fe76(0x1ec)]};}catch(_0x33c570){this[_0x34fe76(0x267)](),this['logger']['error']('AI\x20service\x20request\x20failed:\x20'+_0x33c570['message'],{'requestId':_0x53dd7e,'model':_0x3f92eb,'agentId':_0x49d02c[_0x34fe76(0x234)],'error':_0x33c570['stack']}),await this[_0x34fe76(0x200)](_0x33c570,{'requestId':_0x53dd7e,'model':_0x3f92eb,'agentId':_0x49d02c['agentId']});throw _0x33c570;}}async['routeModel'](_0x31101c,_0x3a76d7={}){const _0x3891fc=a0_0x353b80;try{const _0x105131=MODEL_ROUTING[_0x31101c[_0x3891fc(0x1fe)]()]||MODEL_ROUTING['FALLBACK'],_0x58cc1f=[];for(const _0x49df08 of _0x105131){const _0x1a3dab=await this['_checkModelHealth'](_0x49df08);_0x1a3dab&&_0x58cc1f['push'](_0x49df08);}if(_0x58cc1f[_0x3891fc(0x24e)]===0x0)return this[_0x3891fc(0x204)]['warn'](_0x3891fc(0x21f)+_0x31101c+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x32eec0=_0x58cc1f[0x0];if(_0x3a76d7[_0x3891fc(0x271)]&&_0x58cc1f[_0x3891fc(0x237)](_0x3a76d7['preferredModel']))_0x32eec0=_0x3a76d7[_0x3891fc(0x271)];else{if(_0x3a76d7['complexity']==='high'&&_0x58cc1f['includes'](MODELS['ANTHROPIC_OPUS']))_0x32eec0=MODELS[_0x3891fc(0x277)];else _0x3a76d7[_0x3891fc(0x1de)]===_0x3891fc(0x272)&&_0x58cc1f[_0x3891fc(0x237)](MODELS[_0x3891fc(0x225)])&&(_0x32eec0=MODELS[_0x3891fc(0x225)]);}return this[_0x3891fc(0x204)][_0x3891fc(0x1d1)](_0x3891fc(0x25f)+_0x31101c,{'selectedModel':_0x32eec0,'availableModels':_0x58cc1f[_0x3891fc(0x24e)],'context':_0x3a76d7}),_0x32eec0;}catch(_0x47246a){return this[_0x3891fc(0x204)][_0x3891fc(0x276)](_0x3891fc(0x22d)+_0x47246a[_0x3891fc(0x1fb)],{'task':_0x31101c,'context':_0x3a76d7}),MODEL_ROUTING[_0x3891fc(0x21b)][0x0];}}async['compactizeConversation'](_0x296c34,_0x561fbe){const _0xe4f006=a0_0x353b80,_0x576aa4=this[_0xe4f006(0x1d2)][_0x561fbe];if(!_0x576aa4)throw new Error(_0xe4f006(0x20e)+_0x561fbe);const _0x4809fb=_0x576aa4[_0xe4f006(0x1eb)]*0.8;let _0x48223c=0x0;const _0x574be9=[],_0x100847=await Promise['all'](_0x296c34['map'](async _0x4c741e=>({..._0x4c741e,'estimatedTokens':await this[_0xe4f006(0x215)](_0x4c741e['content'],_0x561fbe)}))),_0xe65e7=[..._0x100847]['reverse']();for(const _0x12beff of _0xe65e7){if(_0x48223c+_0x12beff[_0xe4f006(0x266)]>_0x4809fb){if(_0x574be9['length']===0x0){const _0x1097d5=await this['_truncateMessage'](_0x12beff['content'],_0x4809fb);_0x574be9[_0xe4f006(0x232)]({..._0x12beff,'content':_0x1097d5,'estimatedTokens':_0x4809fb});}break;}_0x574be9[_0xe4f006(0x232)](_0x12beff),_0x48223c+=_0x12beff['estimatedTokens'];}const _0x1aa24d=_0x100847['slice'](0x0,-_0x574be9['length']);if(_0x1aa24d['length']>0x0){const _0x2693ec=await this['_summarizeMessages'](_0x1aa24d,_0x561fbe);_0x574be9[_0xe4f006(0x232)]({'role':_0xe4f006(0x208),'content':_0xe4f006(0x1e1)+_0x2693ec,'timestamp':_0x1aa24d[0x0]['timestamp'],'type':_0xe4f006(0x209),'estimatedTokens':await this['_estimateTokens'](_0x2693ec,_0x561fbe)});}return this[_0xe4f006(0x204)]['info'](_0xe4f006(0x24a)+_0x561fbe,{'originalMessages':_0x296c34[_0xe4f006(0x24e)],'compactizedMessages':_0x574be9[_0xe4f006(0x24e)],'estimatedTokens':_0x48223c,'maxTokens':_0x4809fb}),_0x574be9;}async['trackUsage'](_0x1d1079,_0x1f8c47,_0x2da714,_0x393ae2){const _0x1722c6=a0_0x353b80;try{this[_0x1722c6(0x23f)]&&this['budgetService'][_0x1722c6(0x26c)](_0x1d1079,_0x1f8c47,_0x2da714);}catch(_0x579a4d){this['logger'][_0x1722c6(0x276)](_0x1722c6(0x275)+_0x579a4d[_0x1722c6(0x1fb)]);}}async['handleHttpError'](_0x5e8f91,_0x2c4f5a){const _0x2adfb0=a0_0x353b80,_0x15de26=this['errorHandler']?.[_0x2adfb0(0x273)]?.(_0x5e8f91,_0x2c4f5a);switch(_0x5e8f91['status']||_0x5e8f91[_0x2adfb0(0x1f7)]){case HTTP_STATUS[_0x2adfb0(0x1d5)]:this['logger'][_0x2adfb0(0x276)](_0x2adfb0(0x242),{'context':_0x2c4f5a,'error':_0x5e8f91[_0x2adfb0(0x1fb)]});throw new Error('Invalid\x20request:\x20'+_0x5e8f91[_0x2adfb0(0x1fb)]);case HTTP_STATUS[_0x2adfb0(0x219)]:this['logger'][_0x2adfb0(0x276)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x2c4f5a});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x2adfb0(0x204)][_0x2adfb0(0x276)]('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x2c4f5a});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x2adfb0(0x256)]:this['logger'][_0x2adfb0(0x276)](_0x2adfb0(0x240),{'context':_0x2c4f5a});throw new Error(_0x2adfb0(0x1f3));case HTTP_STATUS[_0x2adfb0(0x255)]:this[_0x2adfb0(0x204)]['warn'](_0x2adfb0(0x20c),{'context':_0x2c4f5a}),await this[_0x2adfb0(0x25b)](_0x2c4f5a);throw new Error(_0x2adfb0(0x262));case HTTP_STATUS[_0x2adfb0(0x231)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS['GATEWAY_TIMEOUT']:this['logger'][_0x2adfb0(0x276)](_0x2adfb0(0x25e),{'context':_0x2c4f5a,'status':_0x5e8f91['status']}),await this['_handleServiceUnavailable'](_0x2c4f5a);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger']['error']('Unknown\x20AI\x20service\x20error',{'context':_0x2c4f5a,'error':_0x5e8f91[_0x2adfb0(0x1fb)]});throw new Error('AI\x20service\x20error:\x20'+_0x5e8f91[_0x2adfb0(0x1fb)]);}}[a0_0x353b80(0x245)](_0x1752bc){const _0x4f2c8d=a0_0x353b80;this['apiKeyManager']=_0x1752bc,this[_0x4f2c8d(0x204)]?.['info'](_0x4f2c8d(0x259),{'hasManager':!!_0x1752bc});}[a0_0x353b80(0x1da)](_0x3dbfad){const _0x15abd9=a0_0x353b80;this[_0x15abd9(0x1db)]=_0x3dbfad,this[_0x15abd9(0x204)]?.[_0x15abd9(0x1d1)]('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x3dbfad});}async[a0_0x353b80(0x1fc)](_0x30e336,_0x1319e4={}){const _0x3c945f=a0_0x353b80,_0xdba4d2=_0x3c945f(0x203)+Date[_0x3c945f(0x1d4)]()+'-'+Math['random']()['toString'](0x24)[_0x3c945f(0x264)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x30e336||typeof _0x30e336!=='string'||_0x30e336[_0x3c945f(0x238)]()[_0x3c945f(0x24e)]===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x9d75b9=_0x1319e4[_0x3c945f(0x1e0)]||'flux-1.1-pro',_0x444afe=_0x1319e4[_0x3c945f(0x1fd)]||_0x3c945f(0x235),_0x52927e=_0x1319e4['quality']||_0x3c945f(0x26f),_0x257b07=_0x1319e4[_0x3c945f(0x210)]||_0x3c945f(0x1df);this['logger'][_0x3c945f(0x1d1)](_0x3c945f(0x20f)+_0x9d75b9,{'requestId':_0xdba4d2,'model':_0x9d75b9,'size':_0x444afe,'quality':_0x52927e,'promptLength':_0x30e336[_0x3c945f(0x24e)]});const _0x2911f9={'prompt':_0x30e336,'model':_0x9d75b9,'size':_0x444afe,'quality':_0x52927e,'response_format':_0x257b07,'n':0x1,'metadata':{'requestId':_0xdba4d2,'timestamp':new Date()['toISOString']()}},_0x30c8f9=await this['_makeImageAPIRequest'](_0x2911f9,_0xdba4d2,{'sessionId':_0x1319e4[_0x3c945f(0x213)],'platformProvided':_0x1319e4[_0x3c945f(0x22e)]||![]});return this[_0x3c945f(0x21a)](),{'url':_0x30c8f9[_0x3c945f(0x239)]?.[0x0]?.['url']||null,'b64_json':_0x30c8f9['data']?.[0x0]?.[_0x3c945f(0x265)]||null,'model':_0x30c8f9[_0x3c945f(0x1e0)]||_0x9d75b9,'requestId':_0xdba4d2,'revisedPrompt':_0x30c8f9[_0x3c945f(0x239)]?.[0x0]?.[_0x3c945f(0x22a)]||_0x30e336};}catch(_0x4ab399){this['_recordFailure'](),this[_0x3c945f(0x204)][_0x3c945f(0x276)]('Image\x20generation\x20failed:\x20'+_0x4ab399['message'],{'requestId':_0xdba4d2,'model':_0x1319e4[_0x3c945f(0x1e0)],'error':_0x4ab399[_0x3c945f(0x201)]});throw _0x4ab399;}}async['checkServiceHealth'](){const _0x5ed53d=a0_0x353b80;try{const _0x4c639c=await this['_makeAPIRequest']('/health',{},'health-check');return _0x4c639c['status']===_0x5ed53d(0x227);}catch(_0x1fdee5){return![];}}async['switchAgentModel'](_0x7e5ef3,_0x34b2e5){const _0x557467=a0_0x353b80;try{if(!this[_0x557467(0x241)](_0x34b2e5))throw new Error('Invalid\x20model:\x20'+_0x34b2e5);let _0x284de7=this[_0x557467(0x25a)]['get'](_0x7e5ef3);!_0x284de7&&(_0x284de7=new ConversationManager(_0x7e5ef3,this[_0x557467(0x204)]),this[_0x557467(0x25a)]['set'](_0x7e5ef3,_0x284de7));const _0x566158=await _0x284de7[_0x557467(0x1f4)](_0x34b2e5),_0x23a6aa=await this[_0x557467(0x1db)]?.[_0x557467(0x212)](_0x7e5ef3);return _0x23a6aa&&(_0x23a6aa[_0x557467(0x1ff)]=_0x34b2e5,await this[_0x557467(0x1db)][_0x557467(0x257)](_0x7e5ef3)),this['logger']['info'](_0x557467(0x251)+_0x7e5ef3,{'newModel':_0x34b2e5,'messageCount':_0x566158['messages'][_0x557467(0x24e)]}),{'success':!![],'agentId':_0x7e5ef3,'newModel':_0x34b2e5,'conversation':_0x566158};}catch(_0xc4c4e9){this['logger']['error']('Model\x20switch\x20failed:\x20'+_0xc4c4e9['message'],{'agentId':_0x7e5ef3,'newModel':_0x34b2e5});throw _0xc4c4e9;}}[a0_0x353b80(0x233)](){const _0x251b70=a0_0x353b80,_0x46a84d={[MODELS[_0x251b70(0x205)]]:{'provider':MODEL_PROVIDERS[_0x251b70(0x254)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x251b70(0x277)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x251b70(0x225)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x251b70(0x226)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS[_0x251b70(0x1d0)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x251b70(0x1dc),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x251b70(0x1dc),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x251b70(0x1dc),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x251b70(0x1dc),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x46a84d;}[a0_0x353b80(0x26a)](_0x5756b7,_0x349122,_0x38de0d){const _0x5dc4bf=a0_0x353b80,_0x507bc0=this['modelSpecs'][_0x349122]||{'provider':'AZURE'};let _0x11a95e;typeof _0x5756b7==='string'?_0x11a95e=[{'role':_0x5dc4bf(0x22c),'content':_0x5756b7}]:_0x11a95e=_0x5756b7[_0x5dc4bf(0x1e2)](_0x2c54ec=>this[_0x5dc4bf(0x243)](_0x2c54ec,_0x349122));switch(_0x507bc0['provider']){case MODEL_PROVIDERS[_0x5dc4bf(0x254)]:return this['_formatForAnthropic'](_0x11a95e);case MODEL_PROVIDERS['OPENAI']:return this['_formatForOpenAI'](_0x11a95e);case MODEL_PROVIDERS[_0x5dc4bf(0x1dc)]:return this[_0x5dc4bf(0x258)](_0x11a95e);default:return _0x11a95e;}}[a0_0x353b80(0x243)](_0x3df56a,_0x170878){const _0x2b6e9f=a0_0x353b80;return{'role':_0x3df56a[_0x2b6e9f(0x228)]||_0x2b6e9f(0x22c),'content':_0x3df56a[_0x2b6e9f(0x202)],'timestamp':_0x3df56a[_0x2b6e9f(0x253)]};}[a0_0x353b80(0x1d7)](_0x5dcde0){return _0x5dcde0['map'](_0x313113=>{const _0x532126=a0_0x36f7;if(_0x313113['role']==='system')return{'role':'user','content':_0x532126(0x260)+_0x313113['content']};return _0x313113;});}[a0_0x353b80(0x1fa)](_0x595239){return _0x595239;}['_formatForAzure'](_0x58306c){const _0x3958b4=a0_0x353b80;return _0x58306c['map'](_0xd38ed0=>({..._0xd38ed0,'content':typeof _0xd38ed0[_0x3958b4(0x202)]==='string'?_0xd38ed0['content']:JSON['stringify'](_0xd38ed0[_0x3958b4(0x202)])}));}[a0_0x353b80(0x241)](_0x1e49b6){const _0x12bbba=a0_0x353b80;this['logger'][_0x12bbba(0x269)]('Validating\x20model',{'model':_0x1e49b6,'modelType':typeof _0x1e49b6});if(this['modelSpecs'][_0x1e49b6]!==undefined)return!![];return this[_0x12bbba(0x204)][_0x12bbba(0x1f1)](_0x12bbba(0x249),{'model':_0x1e49b6,'availableModels':Object['keys'](this['modelSpecs'])}),![];}async[a0_0x353b80(0x1f9)](_0x2fba96){return!![];}async['_estimateTokens'](_0xb6615b,_0x5593ac){const _0x5c5f88=a0_0x353b80;return Math['ceil'](_0xb6615b[_0x5c5f88(0x24e)]/0x4);}async[a0_0x353b80(0x1e3)](_0x1f1905,_0x46605b){const _0x48ae79=a0_0x353b80,_0x53096b=_0x46605b*0x4;if(_0x1f1905[_0x48ae79(0x24e)]<=_0x53096b)return _0x1f1905;return _0x1f1905[_0x48ae79(0x211)](0x0,_0x53096b-0x14)+'\x0a...\x20[message\x20truncated]';}async['_summarizeMessages'](_0x193dc5,_0x542e6d){const _0x617245=a0_0x353b80,_0x72aa1d=_0x193dc5['map'](_0x4e852e=>_0x4e852e[_0x617245(0x228)]+':\x20'+_0x4e852e['content'])['join']('\x0a'),_0x16ac19=0x1f4;if(_0x72aa1d['length']<=_0x16ac19)return _0x72aa1d;return _0x72aa1d[_0x617245(0x211)](0x0,_0x16ac19)+_0x617245(0x21c);}async[a0_0x353b80(0x26e)](_0x20679c,_0x4ec65a,_0x118463,_0x183bca={}){const _0x2276c2=a0_0x353b80,_0x1b7f7a=_0x2276c2(0x23d);let _0x660736,_0x49772a=null,_0x5bde4e=null;this['logger']?.['info']('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x2276c2(0x20a)],'sessionId':_0x183bca['sessionId'],'hasSessionId':!!_0x183bca['sessionId'],'optionsKeys':Object['keys'](_0x183bca),'model':_0x4ec65a['model']});if(this['apiKeyManager']&&_0x183bca['sessionId']){const _0x49f0ef=this[_0x2276c2(0x20a)][_0x2276c2(0x26d)](_0x183bca[_0x2276c2(0x213)],{'platformProvided':_0x183bca[_0x2276c2(0x22e)]||![],'vendor':this['_getVendorFromModel'](_0x4ec65a['model'])});_0x49772a=_0x49f0ef[_0x2276c2(0x21d)],_0x5bde4e=_0x49f0ef[_0x2276c2(0x1ee)],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x183bca[_0x2276c2(0x213)],'hasLoxiaKey':!!_0x49772a,'hasVendorKey':!!_0x5bde4e,'vendor':this[_0x2276c2(0x268)](_0x4ec65a[_0x2276c2(0x1e0)])});}!_0x49772a&&_0x183bca[_0x2276c2(0x25d)]&&(_0x49772a=_0x183bca[_0x2276c2(0x25d)]);!_0x49772a&&this[_0x2276c2(0x236)]['apiKey']&&(_0x49772a=this['config'][_0x2276c2(0x25d)]);if(!_0x49772a)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x5bb7fd=_0x4ec65a['model'],_0x3920ec={'conversationId':_0x118463,'message':_0x4ec65a['messages'][_0x4ec65a[_0x2276c2(0x278)]['length']-0x1]?.[_0x2276c2(0x202)]||'','messages':_0x4ec65a['messages'],'model':_0x5bb7fd,'requestId':_0x118463,'options':_0x4ec65a[_0x2276c2(0x1e7)]||{},'platformProvided':_0x183bca['platformProvided']||![]};_0x4ec65a['system']&&(_0x3920ec[_0x2276c2(0x221)]=_0x4ec65a[_0x2276c2(0x208)]);_0x183bca['platformProvided']?_0x3920ec['apiKey']=_0x49772a:(_0x5bde4e&&(_0x3920ec['vendorApiKey']=_0x5bde4e),_0x183bca['customApiKeys']&&(_0x3920ec['customApiKeys']=_0x183bca['customApiKeys']),_0x3920ec['apiKey']=_0x49772a);for(let _0x3c04cd=0x1;_0x3c04cd<=this['retryAttempts'];_0x3c04cd++){try{this['logger'][_0x2276c2(0x1d1)](_0x2276c2(0x1e8),{'url':_0x1b7f7a,'model':_0x4ec65a[_0x2276c2(0x1e0)],'requestId':_0x118463,'attempt':_0x3c04cd,'hasApiKey':!!_0x49772a});const _0x5ddc48=await fetch(_0x1b7f7a,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':_0x2276c2(0x1e4)+_0x49772a,'X-Request-ID':_0x118463},'body':JSON['stringify'](_0x3920ec),'timeout':this['timeout']});if(!_0x5ddc48['ok']){const _0xa4a923=await _0x5ddc48[_0x2276c2(0x218)](),_0x455f8c=new Error('HTTP\x20'+_0x5ddc48[_0x2276c2(0x24c)]+':\x20'+_0x5ddc48['statusText']+(_0xa4a923?'\x20-\x20'+_0xa4a923:''));_0x455f8c[_0x2276c2(0x24c)]=_0x5ddc48[_0x2276c2(0x24c)];throw _0x455f8c;}const _0x27327d=await _0x5ddc48[_0x2276c2(0x21e)]();return{'choices':[{'message':{'content':_0x27327d['content']||'','role':'assistant'},'finish_reason':_0x27327d['finishReason']||_0x2276c2(0x261)}],'usage':_0x27327d['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x27327d['model']||_0x4ec65a[_0x2276c2(0x1e0)],'id':_0x27327d['requestId']||_0x118463};}catch(_0xe45d12){_0x660736=_0xe45d12,this['logger']['warn'](_0x2276c2(0x207),{'attempt':_0x3c04cd,'requestId':_0x118463,'error':_0xe45d12['message'],'status':_0xe45d12['status']});if(_0x3c04cd<this['retryAttempts']){const _0x2b8aa2=Math[_0x2276c2(0x1f0)](0x2,_0x3c04cd)*0x3e8;this[_0x2276c2(0x204)]['warn']('Retrying\x20in\x20'+_0x2b8aa2+'ms',{'attempt':_0x3c04cd,'requestId':_0x118463}),await new Promise(_0x71a536=>setTimeout(_0x71a536,_0x2b8aa2));}}}this['logger']['error'](_0x2276c2(0x23c),{'requestId':_0x118463,'error':_0x660736['message']});const _0x3e0f5a=_0x660736[_0x2276c2(0x1fb)]&&_0x660736[_0x2276c2(0x1fb)]['includes'](_0x2276c2(0x223));if(_0x3e0f5a)throw new Error('API\x20Configuration\x20Error:\x20'+_0x660736['message']);return{'choices':[{'message':{'content':_0x2276c2(0x1f6)+_0x660736['message'],'role':'assistant'},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4ec65a[_0x2276c2(0x1e0)],'id':'error-'+_0x118463,'error':_0x660736['message']};}async['_makeImageAPIRequest'](_0x3d6c5a,_0x503792,_0x4795f9={}){const _0x15d057=a0_0x353b80,_0xd5b989='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x3c06a4,_0x4ec8f5=null,_0x1c4430=null;this['logger']?.['info']('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x4795f9[_0x15d057(0x213)],'hasSessionId':!!_0x4795f9['sessionId'],'model':_0x3d6c5a[_0x15d057(0x1e0)]});if(this[_0x15d057(0x20a)]&&_0x4795f9['sessionId']){const _0x476f7d=this[_0x15d057(0x20a)][_0x15d057(0x26d)](_0x4795f9[_0x15d057(0x213)],{'platformProvided':_0x4795f9[_0x15d057(0x22e)]||![],'vendor':this['_getVendorFromModel'](_0x3d6c5a[_0x15d057(0x1e0)])});_0x4ec8f5=_0x476f7d[_0x15d057(0x21d)],_0x1c4430=_0x476f7d['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x4795f9['sessionId'],'hasLoxiaKey':!!_0x4ec8f5,'hasVendorKey':!!_0x1c4430});}!_0x4ec8f5&&_0x4795f9['apiKey']&&(_0x4ec8f5=_0x4795f9['apiKey']);!_0x4ec8f5&&this['config'][_0x15d057(0x25d)]&&(_0x4ec8f5=this[_0x15d057(0x236)]['apiKey']);if(!_0x4ec8f5)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x25274a={'prompt':_0x3d6c5a['prompt'],'model':_0x3d6c5a[_0x15d057(0x1e0)]||_0x15d057(0x1e9),'size':_0x3d6c5a['size'],'quality':_0x3d6c5a[_0x15d057(0x23a)],'style':_0x3d6c5a[_0x15d057(0x1f8)]||_0x15d057(0x230),'n':_0x3d6c5a['n']||0x1,'requestId':_0x503792};for(let _0x5c959a=0x1;_0x5c959a<=this[_0x15d057(0x23e)];_0x5c959a++){try{this['logger'][_0x15d057(0x1d1)]('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0xd5b989,'model':_0x3d6c5a[_0x15d057(0x1e0)],'requestId':_0x503792,'attempt':_0x5c959a,'hasApiKey':!!_0x4ec8f5});const _0x2e12b7=await fetch(_0xd5b989,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x4ec8f5,'X-Request-ID':_0x503792},'body':JSON['stringify'](_0x25274a),'timeout':this[_0x15d057(0x250)]*0x2});if(!_0x2e12b7['ok']){const _0x534115=await _0x2e12b7['text'](),_0x11b129=new Error('HTTP\x20'+_0x2e12b7[_0x15d057(0x24c)]+':\x20'+_0x2e12b7['statusText']+(_0x534115?'\x20-\x20'+_0x534115:''));_0x11b129['status']=_0x2e12b7['status'];throw _0x11b129;}const _0xc31778=await _0x2e12b7['json']();return{'data':_0xc31778[_0x15d057(0x1e5)]||[],'model':_0xc31778['model']||_0x3d6c5a[_0x15d057(0x1e0)],'created':_0xc31778['created']||Date['now'](),'usage':_0xc31778['usage']};}catch(_0x1a3c34){_0x3c06a4=_0x1a3c34,this[_0x15d057(0x204)]['warn'](_0x15d057(0x220),{'attempt':_0x5c959a,'requestId':_0x503792,'error':_0x1a3c34['message'],'status':_0x1a3c34['status']});if(_0x5c959a<this['retryAttempts']){const _0x3342e6=Math['pow'](0x2,_0x5c959a)*0x3e8;this['logger'][_0x15d057(0x1f1)](_0x15d057(0x1f2)+_0x3342e6+'ms',{'attempt':_0x5c959a,'requestId':_0x503792}),await new Promise(_0x130ef6=>setTimeout(_0x130ef6,_0x3342e6));}}}this[_0x15d057(0x204)]['error']('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x503792,'error':_0x3c06a4[_0x15d057(0x1fb)]});throw new Error('Image\x20generation\x20failed:\x20'+_0x3c06a4['message']);}async[a0_0x353b80(0x244)](_0x10306a){await new Promise(_0x2c45fe=>setTimeout(_0x2c45fe,0x64));}async[a0_0x353b80(0x25b)](_0x5415e5){const _0x2a5724=a0_0x353b80,_0x3953a4=0xea60;this[_0x2a5724(0x204)][_0x2a5724(0x1d1)](_0x2a5724(0x247)+_0x3953a4+'ms',_0x5415e5),await new Promise(_0x2bdc81=>setTimeout(_0x2bdc81,_0x3953a4));}async[a0_0x353b80(0x1ea)](_0x4452a4){const _0x4bd661=a0_0x353b80;this[_0x4bd661(0x267)]();const _0x3ede15=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x3ede15+'ms',_0x4452a4),await new Promise(_0x4410e1=>setTimeout(_0x4410e1,_0x3ede15));}['_isCircuitBreakerOpen'](){const _0x10a710=a0_0x353b80;if(!this['circuitBreaker']['isOpen'])return![];const _0x59c264=Date[_0x10a710(0x1d4)]()-this['circuitBreaker'][_0x10a710(0x1d9)];if(_0x59c264>this[_0x10a710(0x24d)][_0x10a710(0x250)])return this['circuitBreaker'][_0x10a710(0x246)]=![],this['circuitBreaker'][_0x10a710(0x274)]=0x0,![];return!![];}['_recordFailure'](){const _0x27f960=a0_0x353b80;this['circuitBreaker']['failures']++,this['circuitBreaker'][_0x27f960(0x1d9)]=Date[_0x27f960(0x1d4)](),this[_0x27f960(0x24d)]['failures']>=this[_0x27f960(0x24d)][_0x27f960(0x20b)]&&(this[_0x27f960(0x24d)]['isOpen']=!![],this[_0x27f960(0x204)]['warn']('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}[a0_0x353b80(0x21a)](){const _0x250e9b=a0_0x353b80;this['circuitBreaker'][_0x250e9b(0x274)]>0x0&&(this[_0x250e9b(0x24d)][_0x250e9b(0x274)]=0x0,this[_0x250e9b(0x24d)]['isOpen']=![],this[_0x250e9b(0x204)][_0x250e9b(0x1d1)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x148dd1){const _0x2827e9=a0_0x353b80;if(!_0x148dd1)return null;const _0x30fa39=_0x148dd1['toLowerCase']();if(_0x30fa39['includes']('anthropic')||_0x30fa39['includes'](_0x2827e9(0x270)))return'anthropic';else{if(_0x30fa39[_0x2827e9(0x237)]('openai')||_0x30fa39[_0x2827e9(0x237)](_0x2827e9(0x1cf)))return _0x2827e9(0x20d);else{if(_0x30fa39['includes']('deepseek'))return'deepseek';else{if(_0x30fa39['includes'](_0x2827e9(0x216)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x20c6e3,_0x282907){const _0x54509c=a0_0x353b80;this['agentId']=_0x20c6e3,this['logger']=_0x282907,this[_0x54509c(0x25c)]=new Map();}async['switchModel'](_0x1b9535){return{'messages':[],'model':_0x1b9535,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a0_0x44eec7=a0_0x5baa;(function(_0xafea70,_0x1c59c0){const _0x5ba0d3=a0_0x5baa,_0xccb200=_0xafea70();while(!![]){try{const _0x4d74fd=-parseInt(_0x5ba0d3(0x69))/0x1*(parseInt(_0x5ba0d3(0x6a))/0x2)+-parseInt(_0x5ba0d3(0x6d))/0x3+parseInt(_0x5ba0d3(0x71))/0x4*(parseInt(_0x5ba0d3(0x7f))/0x5)+-parseInt(_0x5ba0d3(0x74))/0x6+parseInt(_0x5ba0d3(0x73))/0x7+-parseInt(_0x5ba0d3(0x88))/0x8*(parseInt(_0x5ba0d3(0x8a))/0x9)+parseInt(_0x5ba0d3(0x6f))/0xa;if(_0x4d74fd===_0x1c59c0)break;else _0xccb200['push'](_0xccb200['shift']());}catch(_0x4b1a23){_0xccb200['push'](_0xccb200['shift']());}}}(a0_0x20f6,0x7fbbd));class ApiKeyManager{constructor(_0x3bc4c1){this['logger']=_0x3bc4c1,this['sessionKeys']=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x44eec7(0x7a)](_0x46d807,_0x2ce6ad){const _0x1c51d6=a0_0x44eec7;if(!_0x46d807)throw new Error(_0x1c51d6(0x6e));this[_0x1c51d6(0x78)][_0x1c51d6(0x84)](_0x46d807,{'loxiaApiKey':_0x2ce6ad['loxiaApiKey']||null,'vendorKeys':_0x2ce6ad[_0x1c51d6(0x85)]||{},'updatedAt':new Date()[_0x1c51d6(0x67)]()}),this['logger']?.[_0x1c51d6(0x76)](_0x1c51d6(0x87),{'sessionId':_0x46d807,'hasLoxiaKey':!!_0x2ce6ad['loxiaApiKey'],'vendorKeys':Object[_0x1c51d6(0x80)](_0x2ce6ad['vendorKeys']||{}),'timestamp':new Date()[_0x1c51d6(0x67)]()});}[a0_0x44eec7(0x79)](_0x291a6f){const _0x4f6b11=a0_0x44eec7;if(!_0x291a6f)return this[_0x4f6b11(0x72)];const _0x179aeb=this[_0x4f6b11(0x78)][_0x4f6b11(0x6b)](_0x291a6f);if(_0x179aeb)return _0x179aeb;return this['globalKeys'];}['getKeysForRequest'](_0x25ef4d,_0x1c682f={}){const _0x537fb9=a0_0x44eec7,_0x1bafdf=this['getSessionKeys'](_0x25ef4d),_0x53951c={'loxiaApiKey':_0x1bafdf['loxiaApiKey'],'vendorApiKey':null};return!_0x1c682f[_0x537fb9(0x81)]&&_0x1c682f[_0x537fb9(0x7e)]&&_0x1bafdf[_0x537fb9(0x85)]&&(_0x53951c['vendorApiKey']=_0x1bafdf['vendorKeys'][_0x1c682f[_0x537fb9(0x7e)]]),_0x53951c;}[a0_0x44eec7(0x75)](_0x39ef5c){const _0x38cfda=a0_0x44eec7;if(this[_0x38cfda(0x78)]['delete'](_0x39ef5c))return this['logger']?.['info']('API\x20keys\x20removed\x20for\x20session',{'sessionId':_0x39ef5c}),!![];return![];}[a0_0x44eec7(0x68)](_0x13dc30){const _0x1db569=a0_0x44eec7;this[_0x1db569(0x72)]={'loxiaApiKey':_0x13dc30['loxiaApiKey']||this['globalKeys']['loxiaApiKey'],'vendorKeys':{...this[_0x1db569(0x72)]['vendorKeys'],..._0x13dc30['vendorKeys']||{}}},this[_0x1db569(0x70)]?.[_0x1db569(0x76)]('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this[_0x1db569(0x72)]['loxiaApiKey'],'vendorKeys':Object['keys'](this['globalKeys']['vendorKeys'])});}['getActiveSessions'](){const _0x14428a=a0_0x44eec7;return Array['from'](this[_0x14428a(0x78)][_0x14428a(0x7c)]())['map'](([_0x5758b9,_0x8eaf77])=>({'sessionId':_0x5758b9,'hasLoxiaKey':!!_0x8eaf77[_0x14428a(0x86)],'vendorKeys':Object[_0x14428a(0x80)](_0x8eaf77['vendorKeys']||{}),'updatedAt':_0x8eaf77[_0x14428a(0x77)]}));}[a0_0x44eec7(0x83)](_0x3a612e=0x18*0x3c*0x3c*0x3e8){const _0x8920b9=a0_0x44eec7,_0x3ec470=Date['now'](),_0x385592=[];for(const [_0x3f63e1,_0x190033]of this[_0x8920b9(0x78)]['entries']()){const _0xe3357c=_0x3ec470-new Date(_0x190033[_0x8920b9(0x77)])[_0x8920b9(0x7d)]();_0xe3357c>_0x3a612e&&_0x385592[_0x8920b9(0x82)](_0x3f63e1);}return _0x385592['forEach'](_0x3d80e9=>{const _0x967502=_0x8920b9;this[_0x967502(0x78)][_0x967502(0x7b)](_0x3d80e9);}),_0x385592[_0x8920b9(0x6c)]>0x0&&this['logger']?.['info']('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x385592[_0x8920b9(0x6c)],'remainingSessions':this['sessionKeys'][_0x8920b9(0x89)]}),_0x385592[_0x8920b9(0x6c)];}}function a0_0x5baa(_0x13100c,_0x5ba549){_0x13100c=_0x13100c-0x67;const _0x20f62a=a0_0x20f6();let _0x5baa34=_0x20f62a[_0x13100c];if(a0_0x5baa['GEJlvr']===undefined){var _0xc23035=function(_0x4b6a64){const _0x3162e5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3bc4c1='',_0x46d807='';for(let _0x2ce6ad=0x0,_0x291a6f,_0x179aeb,_0x25ef4d=0x0;_0x179aeb=_0x4b6a64['charAt'](_0x25ef4d++);~_0x179aeb&&(_0x291a6f=_0x2ce6ad%0x4?_0x291a6f*0x40+_0x179aeb:_0x179aeb,_0x2ce6ad++%0x4)?_0x3bc4c1+=String['fromCharCode'](0xff&_0x291a6f>>(-0x2*_0x2ce6ad&0x6)):0x0){_0x179aeb=_0x3162e5['indexOf'](_0x179aeb);}for(let _0x1c682f=0x0,_0x1bafdf=_0x3bc4c1['length'];_0x1c682f<_0x1bafdf;_0x1c682f++){_0x46d807+='%'+('00'+_0x3bc4c1['charCodeAt'](_0x1c682f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x46d807);};a0_0x5baa['aAqmRn']=_0xc23035,a0_0x5baa['sIRcLR']={},a0_0x5baa['GEJlvr']=!![];}const _0x462117=_0x20f62a[0x0],_0x16936e=_0x13100c+_0x462117,_0x361669=a0_0x5baa['sIRcLR'][_0x16936e];return!_0x361669?(_0x5baa34=a0_0x5baa['aAqmRn'](_0x5baa34),a0_0x5baa['sIRcLR'][_0x16936e]=_0x5baa34):_0x5baa34=_0x361669,_0x5baa34;}function a0_0x20f6(){const _0x49a423=['z2v0','BgvUz3rO','mtGWnJq1nNL6yvnQCW','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','mtq4mtiZntbbuffUC0e','Bg9Nz2vY','mJK0nda0DgP1EhLe','z2XVyMfSs2v5CW','mJqWotu2ohLxDMHowq','mZyWotq4mgT3A21RuW','CMvTB3zLu2vZC2LVBKTLExm','Aw5MBW','DxbKyxrLzef0','C2vZC2LVBKTLExm','z2v0u2vZC2LVBKTLExm','C2v0u2vZC2LVBKTLExm','zgvSzxrL','zw50CMLLCW','z2v0vgLTzq','DMvUzg9Y','nJv3CuPOB2K','A2v5CW','CgXHDgzVCM1qCM92AwrLza','ChvZAa','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','C2v0','DMvUzg9Ys2v5CW','Bg94AwfbCgLlzxK','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','mZC2CMDcs2jO','C2L6zq','mteXotqYuxz5q09p','Dg9ju09tDhjPBMC','C2v0r2XVyMfSs2v5CW','mtyYmZndtenVqNa','ntHVrLPSrMm'];a0_0x20f6=function(){return _0x49a423;};return a0_0x20f6();}export default ApiKeyManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a0_0x36b7(_0x5b43cc,_0x2a697b){_0x5b43cc=_0x5b43cc-0x12e;const _0x313d51=a0_0x313d();let _0x36b7ec=_0x313d51[_0x5b43cc];if(a0_0x36b7['tyewPy']===undefined){var _0x1a6a5=function(_0x140d1c){const _0x161b2d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3d5997='',_0x2834a2='';for(let _0x3cef39=0x0,_0x2be70e,_0xefe6db,_0x2c6e68=0x0;_0xefe6db=_0x140d1c['charAt'](_0x2c6e68++);~_0xefe6db&&(_0x2be70e=_0x3cef39%0x4?_0x2be70e*0x40+_0xefe6db:_0xefe6db,_0x3cef39++%0x4)?_0x3d5997+=String['fromCharCode'](0xff&_0x2be70e>>(-0x2*_0x3cef39&0x6)):0x0){_0xefe6db=_0x161b2d['indexOf'](_0xefe6db);}for(let _0x3d16ae=0x0,_0x36a753=_0x3d5997['length'];_0x3d16ae<_0x36a753;_0x3d16ae++){_0x2834a2+='%'+('00'+_0x3d5997['charCodeAt'](_0x3d16ae)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2834a2);};a0_0x36b7['RufCHz']=_0x1a6a5,a0_0x36b7['CCumzs']={},a0_0x36b7['tyewPy']=!![];}const _0x3d1314=_0x313d51[0x0],_0x468a7d=_0x5b43cc+_0x3d1314,_0x410705=a0_0x36b7['CCumzs'][_0x468a7d];return!_0x410705?(_0x36b7ec=a0_0x36b7['RufCHz'](_0x36b7ec),a0_0x36b7['CCumzs'][_0x468a7d]=_0x36b7ec):_0x36b7ec=_0x410705,_0x36b7ec;}function a0_0x313d(){const _0x4ed61a=['mZq3mtK4nKLPq3fyDG','uMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','CMvMCMvZAeLUDgvYDMfS','DMfSDwvZ','yw5HBhLZAxm','rMfPBgvKihrVigLUAxrPywXPEMuGyMvUy2HTyxjRihnLCNzPy2uGlsbotYbgquXmqKfdsW','mtiXotq4mK9bAhrhEa','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0','x2DLDezHC3rLC3rnB2rLBa','r0vu','Bg9Nz2vY','z2v0qMvUy2HTyxjRCW','DgfZA3m','y3jLyxrPDMu','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','BwfW','y29UzMLN','nZjqDwn1v0O','mtqWmJrguu5svg0','m1nZEKvOqq','x2DLDe1VC3rdB3n0rwzMAwnPzw50','zxjYB3i','Bw9KzwXZ','qMvHCMvYia','BgvUz3rO','y29ZDa','Aw5MBW','Dw5RBM93BG','AxnmB2fKAw5N','yxbWBgLJyxrPB24VANnVBG','C291CMnL','ndu1mdmWvgLbtvnS','otKYmde1EgTsAxzn','C3rHDhvZ','x2DLDejLC3rnB2rLBezVCLrHC2S','yMvUy2HTyxjRCW','Bg9HzejLBMnOBwfYA3m','Bwf4','A2v5CW','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','mty2mJa5ouLQqwLxEG','nda0whbyrefw','BgfZDfvWzgf0zwq','C29YDa'];a0_0x313d=function(){return _0x4ed61a;};return a0_0x313d();}const a0_0x278d50=a0_0x36b7;(function(_0x26d1a3,_0x17fc9d){const _0x214f4f=a0_0x36b7,_0x59a112=_0x26d1a3();while(!![]){try{const _0x174ad3=parseInt(_0x214f4f(0x148))/0x1+-parseInt(_0x214f4f(0x13f))/0x2*(parseInt(_0x214f4f(0x133))/0x3)+-parseInt(_0x214f4f(0x149))/0x4+-parseInt(_0x214f4f(0x140))/0x5+parseInt(_0x214f4f(0x152))/0x6+-parseInt(_0x214f4f(0x14c))/0x7+parseInt(_0x214f4f(0x132))/0x8*(parseInt(_0x214f4f(0x131))/0x9);if(_0x174ad3===_0x17fc9d)break;else _0x59a112['push'](_0x59a112['shift']());}catch(_0x58288e){_0x59a112['push'](_0x59a112['shift']());}}}(a0_0x313d,0xe9ba9));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x3d5997,_0x2834a2){const _0x2a0f87=a0_0x36b7;this[_0x2a0f87(0x130)]=_0x3d5997,this['logger']=_0x2834a2,this[_0x2a0f87(0x143)]=null,this[_0x2a0f87(0x14a)]=null,this[_0x2a0f87(0x13c)]=![],this['azureBackendUrl']=_0x2a0f87(0x153),this['refreshInterval']=MODEL_ROUTER_CONFIG[_0x2a0f87(0x12e)];}async['initialize'](){const _0x51bb7b=a0_0x36b7;try{await this[_0x51bb7b(0x144)](),this['_scheduleRefresh'](),this['logger'][_0x51bb7b(0x13a)]('Benchmark\x20service\x20initialized');}catch(_0x3cef39){this[_0x51bb7b(0x156)]['error'](_0x51bb7b(0x151),{'error':_0x3cef39['message']}),this['benchmarks']=null;}}['getBenchmarks'](){const _0x517ec5=a0_0x36b7;if(!this[_0x517ec5(0x143)])return this[_0x517ec5(0x156)][_0x517ec5(0x135)]('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async['loadBenchmarks'](){const _0xb62ece=a0_0x36b7;if(this['isLoading']){this['logger']['debug'](_0xb62ece(0x147));return;}this['isLoading']=!![];try{const _0x2be70e=await this['_fetchFromAzureBackend']();if(_0x2be70e)this[_0xb62ece(0x143)]=_0x2be70e,this[_0xb62ece(0x14a)]=new Date(),this[_0xb62ece(0x156)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x2be70e[_0xb62ece(0x136)]?.[_0xb62ece(0x138)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0xefe6db){this[_0xb62ece(0x156)][_0xb62ece(0x135)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0xefe6db['message'],'endpoint':url}),!this['benchmarks']&&(this[_0xb62ece(0x143)]=null);}finally{this[_0xb62ece(0x13c)]=![];}}['getBenchmarkTable'](){const _0x3e21d4=a0_0x36b7,_0x2c6e68=this[_0x3e21d4(0x157)]();return{'lastUpdated':this[_0x3e21d4(0x14a)]?.['toISOString']()||'unknown','models':_0x2c6e68[_0x3e21d4(0x136)]||[],'tasks':_0x2c6e68['tasks']||{},'summary':this['_generateBenchmarkSummary'](_0x2c6e68)};}['needsRefresh'](){const _0x22f507=a0_0x36b7;if(!this[_0x22f507(0x14a)])return!![];const _0x3d16ae=Date['now']()-this[_0x22f507(0x14a)]['getTime']();return _0x3d16ae>this['refreshInterval'];}async['_fetchFromAzureBackend'](){const _0x529367=a0_0x36b7,_0x36a753=this['azureBackendUrl']+'/llm/model-benchmarks';let _0xf1dc73=null;this['config']['apiKey']&&(_0xf1dc73=this[_0x529367(0x130)]['apiKey']);const _0x1dc38f={'method':_0x529367(0x155),'headers':{'Content-Type':_0x529367(0x13d),..._0xf1dc73&&{'Authorization':_0x529367(0x137)+_0xf1dc73}},'timeout':0x2710};this[_0x529367(0x156)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x36a753});const _0x449d68=await fetch(_0x36a753,_0x1dc38f);if(!_0x449d68['ok'])throw new Error('HTTP\x20'+_0x449d68[_0x529367(0x141)]+':\x20'+_0x449d68['statusText']);const _0x26f333=await _0x449d68['json']();return _0x26f333;}['_generateBenchmarkSummary'](_0x13637f){const _0x48c3f1=a0_0x36b7,_0x541029=_0x13637f[_0x48c3f1(0x136)]||[];return{'totalModels':_0x541029[_0x48c3f1(0x138)],'taskCategories':Object[_0x48c3f1(0x146)](_0x13637f[_0x48c3f1(0x158)]||{}),'bestForCoding':this['_getBestModelForTask'](_0x541029,'coding'),'bestForAnalysis':this['_getBestModelForTask'](_0x541029,_0x48c3f1(0x150)),'bestForQuickTasks':this[_0x48c3f1(0x142)](_0x541029,'quick-tasks'),'bestForCreative':this['_getBestModelForTask'](_0x541029,_0x48c3f1(0x159)),'fastestModel':this['_getFastestModel'](_0x541029),'mostCostEfficient':this[_0x48c3f1(0x134)](_0x541029)};}[a0_0x278d50(0x142)](_0x6a643a,_0x34d7ac){const _0x25da30=a0_0x278d50;return _0x6a643a['filter'](_0x485306=>_0x485306['tasks']&&_0x485306[_0x25da30(0x158)][_0x34d7ac])['sort']((_0x41af76,_0x407cf5)=>(_0x407cf5[_0x25da30(0x158)][_0x34d7ac]['score']||0x0)-(_0x41af76[_0x25da30(0x158)][_0x34d7ac]['score']||0x0))[0x0]?.['name']||_0x25da30(0x13b);}[a0_0x278d50(0x154)](_0x2b7417){const _0x36cab5=a0_0x278d50,_0x34dc8e={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x2b7417['sort']((_0x4ac3e9,_0x1aac14)=>{const _0x2f954f=a0_0x36b7,_0xa5c086=Math[_0x2f954f(0x145)](...Object[_0x2f954f(0x14f)](_0x4ac3e9['tasks']||{})[_0x2f954f(0x12f)](_0x11a09e=>_0x34dc8e[_0x11a09e['speed']]||0x0)),_0xa91ddf=Math[_0x2f954f(0x145)](...Object['values'](_0x1aac14[_0x2f954f(0x158)]||{})['map'](_0x2e9225=>_0x34dc8e[_0x2e9225['speed']]||0x0));return _0xa91ddf-_0xa5c086;})[0x0]?.['name']||_0x36cab5(0x13b);}[a0_0x278d50(0x134)](_0xc7c19c){const _0x4ea0b=a0_0x278d50,_0x232f8f={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0xc7c19c[_0x4ea0b(0x14b)]((_0x54ebbb,_0x246868)=>{const _0x709e86=_0x4ea0b,_0x249d3c=Math['max'](...Object['values'](_0x54ebbb[_0x709e86(0x158)]||{})[_0x709e86(0x12f)](_0x5ee209=>_0x232f8f[_0x5ee209[_0x709e86(0x139)]]||0x0)),_0x2fe197=Math['max'](...Object['values'](_0x246868[_0x709e86(0x158)]||{})['map'](_0x27992c=>_0x232f8f[_0x27992c['cost']]||0x0));return _0x2fe197-_0x249d3c;})[0x0]?.['name']||_0x4ea0b(0x13b);}['_scheduleRefresh'](){const _0x480df7=a0_0x278d50;setInterval(async()=>{const _0x3f2e0e=a0_0x36b7;this['needsRefresh']()&&(this['logger']['debug'](_0x3f2e0e(0x14d)),await this[_0x3f2e0e(0x144)]());},this[_0x480df7(0x14e)]);}async['forceRefresh'](){const _0x107910=a0_0x278d50;this['logger'][_0x107910(0x13a)]('Force\x20refreshing\x20benchmark\x20data'),await this[_0x107910(0x144)]();}['getStatus'](){const _0x35916b=a0_0x278d50;return{'initialized':!!this['benchmarks'],'lastUpdated':this['lastUpdated']?.['toISOString']()||null,'source':this['benchmarks']?.[_0x35916b(0x13e)]||_0x35916b(0x13b),'modelCount':this[_0x35916b(0x143)]?.[_0x35916b(0x136)]?.[_0x35916b(0x138)]||0x0,'isLoading':this[_0x35916b(0x13c)],'needsRefresh':this['needsRefresh']()};}}export default BenchmarkService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0xb7fd51=a0_0x17cc;function a0_0x2171(){const _0x323de0=['y29UDMvYDfrVq1nw','mtaWmZbpq2jOA0G','uMvXDwvZDhm','DhjHy2TvC2fNzq','y29ZDa','y2HLy2TuAhjLC2HVBgq','odHVy0PKDNa','Aw5PDgLHBgL6zvvZywDLrw50CNK','Bg9Nz2vY','ltaX','Bw9UDgHSEq','Dw5ZAgLMDa','refjtfK','v0vfs0Xz','Dg9Rzw5ZqNLeyxK','AgfZ','CM91BMq','C3rYAw5NAwz5','BwvZC2fNzq','Bg9HzfvZywDLrgf0yq','y29ZDej5rgf5','z2v0v2vLA0TLEq','z2v0rgf0zq','BM93','Dg9tDhjPBMC','zw1PDa','mtn1sMn4yKK','tw9KzwW','Dg90ywW','z2v0','AM9PBG','C2vUzej1zgDLDefSzxj0','z2v0rgf5s2v5','z2v0vxnHz2u','zxHWB3j0vxnHz2veyxrH','ywDLBNrjza','C2v0','ChvZAa','z2v0rgf5','y2fSy3vSyxrLq29ZDa','D2fYBG','mJC2wgfgrvvs','BgfZDefSzxj0vgLTzxm','Bw9KzwXjza','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','rMfPBgvKihrVihrYywnRihvZywDL','Dg9Rzw5Z','zNjVBq','Bwf4','ugvYAw9K','zw50CMLLCW','z2v0tw9UDgHlzxK','D2vLA2X5','zM9YrwfJAa','z2v0uMvTywLUAw5NqNvKz2v0','tu9oveHmwq','z2v0rNvSBfLLyxi','zxjYB3i','mZaZotnMvKPcCue','CgfKu3rHCNq','yNvKz2v0CW','yNLbz2vUDa','y3jLyxrLrw1WDhLvC2fNzq','Aw5MBW','mZu5ndCYshnAswDM','yNvKz2v0qwXLCNq','qNvKz2v0igXPBwL0igv4y2vLzgvK','DgHYzxnOB2XKx3jLywnOzwq','nJG0Ae5QyKfo','rgfPBhK','y2HLy2TuAhjLC2HVBgrbBgvYDhm','vxnHz2uGDhjHy2TLza','yNLnB2rLBa','CMvXDwvZDhm','mtCXoxbQt3PQDW','C29YDa','zgfPBhK','q29ZDa','mJq2D0jMzgz6','nJyWmJG2mM5WvMPbqW','ote4uuvTqKPT','DxbKyxrLvxnHz2vfBNrYEq','nZK3n3bvEuH2AW','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','B3v0Chv0','y3n2','C2v0DxbqzxjPB2rPy1nHDMu','Dg9WqwDLBNrZ','C3bSAxq','nZy5mgfnCun5wq','mZv1zhjxzgS','DxnHz2u'];a0_0x2171=function(){return _0x323de0;};return a0_0x2171();}(function(_0xf3ff29,_0x55705b){const _0x289513=a0_0x17cc,_0x1dfc45=_0xf3ff29();while(!![]){try{const _0x1c4b7f=parseInt(_0x289513(0xc1))/0x1*(-parseInt(_0x289513(0xbf))/0x2)+parseInt(_0x289513(0xc3))/0x3*(parseInt(_0x289513(0xd3))/0x4)+parseInt(_0x289513(0xca))/0x5*(parseInt(_0x289513(0xb5))/0x6)+-parseInt(_0x289513(0xcb))/0x7*(parseInt(_0x289513(0xb1))/0x8)+parseInt(_0x289513(0xbb))/0x9*(-parseInt(_0x289513(0xce))/0xa)+parseInt(_0x289513(0xab))/0xb*(-parseInt(_0x289513(0xf6))/0xc)+-parseInt(_0x289513(0xe7))/0xd*(-parseInt(_0x289513(0xc0))/0xe);if(_0x1c4b7f===_0x55705b)break;else _0x1dfc45['push'](_0x1dfc45['shift']());}catch(_0xa48127){_0x1dfc45['push'](_0x1dfc45['shift']());}}}(a0_0x2171,0x1b875));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x17cc(_0x4e93ad,_0x438ba2){_0x4e93ad=_0x4e93ad-0x9e;const _0x21711e=a0_0x2171();let _0x17cc75=_0x21711e[_0x4e93ad];if(a0_0x17cc['ZDzFtr']===undefined){var _0x4b25da=function(_0x487371){const _0x56b808='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f7e60='',_0x565183='';for(let _0x2f1c83=0x0,_0x44e198,_0x3f6654,_0x3b9548=0x0;_0x3f6654=_0x487371['charAt'](_0x3b9548++);~_0x3f6654&&(_0x44e198=_0x2f1c83%0x4?_0x44e198*0x40+_0x3f6654:_0x3f6654,_0x2f1c83++%0x4)?_0x3f7e60+=String['fromCharCode'](0xff&_0x44e198>>(-0x2*_0x2f1c83&0x6)):0x0){_0x3f6654=_0x56b808['indexOf'](_0x3f6654);}for(let _0x34e635=0x0,_0xea2f11=_0x3f7e60['length'];_0x34e635<_0xea2f11;_0x34e635++){_0x565183+='%'+('00'+_0x3f7e60['charCodeAt'](_0x34e635)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x565183);};a0_0x17cc['nHqfMe']=_0x4b25da,a0_0x17cc['ZOTonD']={},a0_0x17cc['ZDzFtr']=!![];}const _0x1f0849=_0x21711e[0x0],_0xa65333=_0x4e93ad+_0x1f0849,_0x94564=a0_0x17cc['ZOTonD'][_0xa65333];return!_0x94564?(_0x17cc75=a0_0x17cc['nHqfMe'](_0x17cc75),a0_0x17cc['ZOTonD'][_0xa65333]=_0x17cc75):_0x17cc75=_0x94564,_0x17cc75;}export class BudgetService{constructor(_0x3f7e60,_0x565183){const _0x20979b=a0_0x17cc;this['config']=_0x3f7e60||{},this[_0x20979b(0xd5)]=_0x565183,this[_0x20979b(0xcc)]={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x20979b(0xd9)],'weekly':BUDGET_LIMITS[_0x20979b(0xda)],'monthly':BUDGET_LIMITS[_0x20979b(0xa8)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this['loadUsageData'](),this['setupPeriodicSave']();}[a0_0xb7fd51(0xd0)](_0x2f1c83,_0x44e198,_0x3f6654){const _0x1abf7d=a0_0xb7fd51;try{const _0x3b9548=this[_0x1abf7d(0xf4)](_0x44e198,_0x3f6654),_0x34e635=new Date(),_0xea2f11=this[_0x1abf7d(0xed)](_0x34e635),_0x521a85=this[_0x1abf7d(0xe2)](_0x34e635),_0x1f69e6=this['getMonthKey'](_0x34e635);this['initializeUsageEntry'](this['usage']['daily'],_0xea2f11),this[_0x1abf7d(0xd4)](this['usage']['weekly'],_0x521a85),this[_0x1abf7d(0xd4)](this[_0x1abf7d(0xcc)]['monthly'],_0x1f69e6);const _0x4c8229={'agentId':_0x2f1c83,'modelId':_0x44e198,'tokens':_0x3f6654['total_tokens'],'cost':_0x3b9548,'timestamp':_0x34e635['toISOString']()};return this['updateUsageEntry'](this[_0x1abf7d(0xcc)]['daily'][_0x1abf7d(0xea)](_0xea2f11),_0x4c8229),this['updateUsageEntry'](this['usage']['weekly']['get'](_0x521a85),_0x4c8229),this[_0x1abf7d(0xc2)](this[_0x1abf7d(0xcc)][_0x1abf7d(0xd7)]['get'](_0x1f69e6),_0x4c8229),this['usage'][_0x1abf7d(0xe9)][_0x1abf7d(0x9f)]+=_0x3f6654['total_tokens'],this[_0x1abf7d(0xcc)]['total'][_0x1abf7d(0xd1)]+=_0x3b9548,this[_0x1abf7d(0xcc)][_0x1abf7d(0xe9)]['requests']+=0x1,this['checkBudgetLimits'](_0xea2f11,_0x521a85,_0x1f69e6),this['logger']['info'](_0x1abf7d(0xb8),{'agentId':_0x2f1c83,'modelId':_0x44e198,'tokens':_0x3f6654['total_tokens'],'cost':_0x3b9548,'totalCost':this['usage'][_0x1abf7d(0xe9)]['cost']}),{'cost':_0x3b9548,'totalCost':this[_0x1abf7d(0xcc)]['total'][_0x1abf7d(0xd1)],'totalTokens':this[_0x1abf7d(0xcc)]['total']['tokens'],'dailyUsage':this[_0x1abf7d(0xcc)]['daily']['get'](_0xea2f11),'budgetRemaining':this[_0x1abf7d(0xa7)]()};}catch(_0x21e36d){this['logger'][_0x1abf7d(0xaa)](_0x1abf7d(0x9e),{'error':_0x21e36d['message'],'agentId':_0x2f1c83,'modelId':_0x44e198});throw _0x21e36d;}}['calculateCost'](_0x1c0940,_0x52f518){const _0x31b361=a0_0xb7fd51,_0x2171bc=COST_PER_TOKEN[_0x1c0940];if(!_0x2171bc)return this['logger'][_0x31b361(0xf5)]('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x1c0940}),0x0;const _0x11b994=(_0x52f518['prompt_tokens']||0x0)*_0x2171bc['input'],_0x461668=(_0x52f518['completion_tokens']||0x0)*_0x2171bc[_0x31b361(0xc5)];return _0x11b994+_0x461668;}[a0_0xb7fd51(0xee)](_0x253ad7='daily',_0x33fe5f=new Date()){const _0x1c3463=a0_0xb7fd51;switch(_0x253ad7){case'daily':return this[_0x1c3463(0xcc)]['daily']['get'](this[_0x1c3463(0xed)](_0x33fe5f))||this[_0x1c3463(0xaf)]();case'weekly':return this['usage']['weekly']['get'](this[_0x1c3463(0xe2)](_0x33fe5f))||this['createEmptyUsage']();case'monthly':return this[_0x1c3463(0xcc)][_0x1c3463(0xd7)]['get'](this[_0x1c3463(0xa4)](_0x33fe5f))||this[_0x1c3463(0xaf)]();case _0x1c3463(0xe9):return{...this['usage'][_0x1c3463(0xe9)]};default:throw new Error('Invalid\x20period:\x20'+_0x253ad7);}}['getAgentUsage'](_0x331fa9,_0x4118e6='daily'){const _0x26d053=a0_0xb7fd51,_0x4b4d76=this[_0x26d053(0xee)](_0x4118e6);return _0x4b4d76[_0x26d053(0xae)]?.[_0x331fa9]||this[_0x26d053(0xaf)]();}['getModelUsage'](_0x55c7c4,_0x4e3896='daily'){const _0x50f505=this['getUsage'](_0x4e3896);return _0x50f505['byModel']?.[_0x55c7c4]||this['createEmptyUsage']();}['setBudgets'](_0x3da2a7){const _0xaf9dbb=a0_0xb7fd51;if(_0x3da2a7['daily']!==undefined)this[_0xaf9dbb(0xad)][_0xaf9dbb(0xbd)]=_0x3da2a7[_0xaf9dbb(0xbd)];if(_0x3da2a7[_0xaf9dbb(0xa5)]!==undefined)this['budgets'][_0xaf9dbb(0xa5)]=_0x3da2a7['weekly'];if(_0x3da2a7[_0xaf9dbb(0xd7)]!==undefined)this['budgets'][_0xaf9dbb(0xd7)]=_0x3da2a7['monthly'];this['logger'][_0xaf9dbb(0xb0)]('Budget\x20limits\x20updated',this[_0xaf9dbb(0xad)]),this['saveUsageData']();}[a0_0xb7fd51(0xa7)](){const _0x5eb65e=a0_0xb7fd51,_0x134eab=new Date(),_0x10e2db=this['getUsage']('daily',_0x134eab),_0xa03ae4=this['getUsage']('weekly',_0x134eab),_0x91b9e8=this['getUsage']('monthly',_0x134eab);return{'daily':Math[_0x5eb65e(0xa1)](0x0,this[_0x5eb65e(0xad)]['daily']-_0x10e2db[_0x5eb65e(0xd1)]),'weekly':Math['max'](0x0,this[_0x5eb65e(0xad)]['weekly']-_0xa03ae4['cost']),'monthly':Math[_0x5eb65e(0xa1)](0x0,this[_0x5eb65e(0xad)][_0x5eb65e(0xd7)]-_0x91b9e8['cost'])};}['isWithinBudget'](_0x37314f=a0_0xb7fd51(0xbd)){const _0x32f0b7=a0_0xb7fd51,_0x374ee3=this['getUsage'](_0x37314f),_0x7b12aa=this['budgets'][_0x37314f];return _0x374ee3[_0x32f0b7(0xd1)]<=_0x7b12aa;}['getUsageTrends'](_0x44f23e=0x1e){const _0x568de5=a0_0xb7fd51,_0x5bc312={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x1119ae=new Date();let _0xb426f=0x0,_0x115c5f=0x0,_0x1868e6=0x0;const _0x1cd0b2=new Map(),_0x594c87=new Map();for(let _0x36b1d6=0x0;_0x36b1d6<_0x44f23e;_0x36b1d6++){const _0x2f1d95=new Date(_0x1119ae);_0x2f1d95['setDate'](_0x2f1d95[_0x568de5(0xe3)]()-_0x36b1d6);const _0x196ee6=this['getDayKey'](_0x2f1d95),_0x4df06a=this['usage'][_0x568de5(0xbd)][_0x568de5(0xea)](_0x196ee6);_0x4df06a?(_0xb426f+=_0x4df06a[_0x568de5(0xd1)],_0x115c5f+=_0x4df06a[_0x568de5(0x9f)],_0x1868e6+=_0x4df06a[_0x568de5(0xba)],_0x5bc312['costByDay'][_0x568de5(0xd8)]({'date':_0x196ee6,'cost':_0x4df06a['cost']}),_0x5bc312['tokensByDay']['unshift']({'date':_0x196ee6,'tokens':_0x4df06a[_0x568de5(0x9f)]}),Object[_0x568de5(0xa3)](_0x4df06a['byAgent']||{})['forEach'](([_0x3ca1db,_0x2562d3])=>{const _0x2faae0=_0x568de5;!_0x1cd0b2[_0x2faae0(0xdc)](_0x3ca1db)&&_0x1cd0b2['set'](_0x3ca1db,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x44c94e=_0x1cd0b2['get'](_0x3ca1db);_0x44c94e['cost']+=_0x2562d3['cost'],_0x44c94e[_0x2faae0(0x9f)]+=_0x2562d3[_0x2faae0(0x9f)],_0x44c94e[_0x2faae0(0xba)]+=_0x2562d3[_0x2faae0(0xba)];}),Object['entries'](_0x4df06a['byModel']||{})[_0x568de5(0xa6)](([_0x1126d0,_0x3f9df2])=>{!_0x594c87['has'](_0x1126d0)&&_0x594c87['set'](_0x1126d0,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x5dd8f9=_0x594c87['get'](_0x1126d0);_0x5dd8f9['cost']+=_0x3f9df2['cost'],_0x5dd8f9['tokens']+=_0x3f9df2['tokens'],_0x5dd8f9['requests']+=_0x3f9df2['requests'];})):(_0x5bc312[_0x568de5(0xe1)][_0x568de5(0xd8)]({'date':_0x196ee6,'cost':0x0}),_0x5bc312[_0x568de5(0xdb)][_0x568de5(0xd8)]({'date':_0x196ee6,'tokens':0x0}));}return _0x5bc312['dailyAverages']['cost']=_0xb426f/_0x44f23e,_0x5bc312['dailyAverages']['tokens']=_0x115c5f/_0x44f23e,_0x5bc312['dailyAverages'][_0x568de5(0xba)]=_0x1868e6/_0x44f23e,_0x5bc312[_0x568de5(0xc8)]=Array['from'](_0x1cd0b2[_0x568de5(0xa3)]())['map'](([_0x5ee248,_0x1c2929])=>({'id':_0x5ee248,..._0x1c2929}))[_0x568de5(0xbc)]((_0x349840,_0x5a5cc3)=>_0x5a5cc3['cost']-_0x349840[_0x568de5(0xd1)])['slice'](0x0,0xa),_0x5bc312['topModels']=Array[_0x568de5(0xa0)](_0x594c87[_0x568de5(0xa3)]())['map'](([_0x2c7c93,_0x5d5c19])=>({'id':_0x2c7c93,..._0x5d5c19}))['sort']((_0x67f7b0,_0x2994e)=>_0x2994e[_0x568de5(0xd1)]-_0x67f7b0[_0x568de5(0xd1)])['slice'](0x0,0xa),_0x5bc312;}[a0_0xb7fd51(0xef)](_0x104a70='json',_0x28b90e=null,_0x24f5db=null){const _0x22e245=a0_0xb7fd51,_0x11c5eb={'budgets':this['budgets'],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x1c61b2=(_0x57580c,_0x2a49a0)=>{const _0x5523da={};return _0x57580c['forEach']((_0x42ce42,_0x2a3cf8)=>{const _0x429a14=_0x2a49a0(_0x2a3cf8);(!_0x28b90e||_0x429a14>=_0x28b90e)&&(!_0x24f5db||_0x429a14<=_0x24f5db)&&(_0x5523da[_0x2a3cf8]=_0x42ce42);}),_0x5523da;};_0x28b90e||_0x24f5db?(_0x11c5eb['daily']=_0x1c61b2(this['usage'][_0x22e245(0xbd)],_0x4c166f=>new Date(_0x4c166f)),_0x11c5eb[_0x22e245(0xa5)]=_0x1c61b2(this[_0x22e245(0xcc)][_0x22e245(0xa5)],_0x45c4d5=>new Date(_0x45c4d5)),_0x11c5eb['monthly']=_0x1c61b2(this['usage'][_0x22e245(0xd7)],_0xe2354a=>new Date(_0xe2354a+_0x22e245(0xd6)))):(this['usage'][_0x22e245(0xbd)]['forEach']((_0x267353,_0x2cccb8)=>_0x11c5eb[_0x22e245(0xbd)][_0x2cccb8]=_0x267353),this[_0x22e245(0xcc)][_0x22e245(0xa5)][_0x22e245(0xa6)]((_0x1486db,_0x4a3742)=>_0x11c5eb[_0x22e245(0xa5)][_0x4a3742]=_0x1486db),this['usage']['monthly']['forEach']((_0xf2b21b,_0x2da091)=>_0x11c5eb[_0x22e245(0xd7)][_0x2da091]=_0xf2b21b));if(_0x104a70===_0x22e245(0xc6))return this[_0x22e245(0xcd)](_0x11c5eb);return JSON[_0x22e245(0xde)](_0x11c5eb,null,0x2);}[a0_0xb7fd51(0xd4)](_0x45640c,_0x493d87){!_0x45640c['has'](_0x493d87)&&_0x45640c['set'](_0x493d87,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0xb7fd51(0xc2)](_0x313bab,_0x5dd00d){const _0x5d313b=a0_0xb7fd51;_0x313bab['cost']+=_0x5dd00d[_0x5d313b(0xd1)],_0x313bab['tokens']+=_0x5dd00d[_0x5d313b(0x9f)],_0x313bab['requests']+=0x1,!_0x313bab[_0x5d313b(0xae)][_0x5dd00d['agentId']]&&(_0x313bab[_0x5d313b(0xae)][_0x5dd00d['agentId']]=this['createEmptyUsage']()),_0x313bab['byAgent'][_0x5dd00d[_0x5d313b(0xf0)]]['cost']+=_0x5dd00d[_0x5d313b(0xd1)],_0x313bab[_0x5d313b(0xae)][_0x5dd00d['agentId']]['tokens']+=_0x5dd00d[_0x5d313b(0x9f)],_0x313bab[_0x5d313b(0xae)][_0x5dd00d['agentId']]['requests']+=0x1,!_0x313bab[_0x5d313b(0xb9)][_0x5dd00d[_0x5d313b(0xf8)]]&&(_0x313bab[_0x5d313b(0xb9)][_0x5dd00d[_0x5d313b(0xf8)]]=this['createEmptyUsage']()),_0x313bab[_0x5d313b(0xb9)][_0x5dd00d[_0x5d313b(0xf8)]][_0x5d313b(0xd1)]+=_0x5dd00d[_0x5d313b(0xd1)],_0x313bab['byModel'][_0x5dd00d['modelId']][_0x5d313b(0x9f)]+=_0x5dd00d['tokens'],_0x313bab['byModel'][_0x5dd00d[_0x5d313b(0xf8)]][_0x5d313b(0xba)]+=0x1;}['checkBudgetLimits'](_0x5e6a10,_0x361b99,_0x33425b){const _0x2066a0=a0_0xb7fd51,_0x273a35=this['usage'][_0x2066a0(0xbd)]['get'](_0x5e6a10),_0x3a409e=this[_0x2066a0(0xcc)][_0x2066a0(0xa5)]['get'](_0x361b99),_0x318b85=this['usage']['monthly'][_0x2066a0(0xea)](_0x33425b);_0x273a35[_0x2066a0(0xd1)]>this[_0x2066a0(0xad)]['daily']&&this[_0x2066a0(0xec)]('daily',_0x273a35[_0x2066a0(0xd1)],this[_0x2066a0(0xad)]['daily']),_0x3a409e['cost']>this['budgets']['weekly']&&this['sendBudgetAlert']('weekly',_0x3a409e[_0x2066a0(0xd1)],this[_0x2066a0(0xad)][_0x2066a0(0xa5)]),_0x318b85[_0x2066a0(0xd1)]>this['budgets']['monthly']&&this['sendBudgetAlert']('monthly',_0x318b85['cost'],this[_0x2066a0(0xad)]['monthly']),this['checkThresholdAlerts'](_0x273a35,_0x3a409e,_0x318b85);}[a0_0xb7fd51(0xb7)](_0x33e217,_0x7f0f34,_0x14dc31){const _0x4a320f=a0_0xb7fd51,_0x4cc2dc=this['alerts']['thresholds'];this[_0x4a320f(0xd2)]('daily',_0x33e217[_0x4a320f(0xd1)],this['budgets'][_0x4a320f(0xbd)],_0x4cc2dc),this['checkThreshold']('weekly',_0x7f0f34[_0x4a320f(0xd1)],this[_0x4a320f(0xad)][_0x4a320f(0xa5)],_0x4cc2dc),this['checkThreshold']('monthly',_0x14dc31['cost'],this['budgets'][_0x4a320f(0xd7)],_0x4cc2dc);}['checkThreshold'](_0x527efa,_0x4f08ab,_0x5a8f69,_0x5cd046){const _0x45db19=a0_0xb7fd51,_0x1c1556=_0x4f08ab/_0x5a8f69*0x64;for(const _0x44b8ae of _0x5cd046){if(_0x1c1556>=_0x44b8ae){const _0x324d59=_0x527efa+'_'+_0x44b8ae,_0x51ca53=this['alerts']['lastAlertTimes'][_0x45db19(0xea)](_0x324d59),_0x11c76d=Date[_0x45db19(0xe4)]();(!_0x51ca53||_0x11c76d-_0x51ca53>0x36ee80)&&(this['sendThresholdAlert'](_0x527efa,_0x1c1556,_0x44b8ae,_0x4f08ab,_0x5a8f69),this['alerts'][_0x45db19(0xf7)][_0x45db19(0xf1)](_0x324d59,_0x11c76d));break;}}}['sendBudgetAlert'](_0x4e677b,_0x48e9c2,_0x5eeb9e){const _0x1ce701=a0_0xb7fd51;this[_0x1ce701(0xd5)][_0x1ce701(0xf5)](_0x1ce701(0xb3),{'period':_0x4e677b,'currentUsage':_0x48e9c2,'budgetLimit':_0x5eeb9e,'excess':_0x48e9c2-_0x5eeb9e}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':'budget_exceeded','period':_0x4e677b,'currentUsage':_0x48e9c2,'budgetLimit':_0x5eeb9e,'excess':_0x48e9c2-_0x5eeb9e});}['sendThresholdAlert'](_0x41a504,_0x739ab9,_0x4be1ea,_0x2d5cbb,_0x1280ec){const _0x391f18=a0_0xb7fd51;this[_0x391f18(0xd5)]['warn'](_0x391f18(0xc4),{'period':_0x41a504,'percentage':Math['round'](_0x739ab9),'threshold':_0x4be1ea,'usage':_0x2d5cbb,'budget':_0x1280ec}),typeof process!=='undefined'&&process['emit']&&process[_0x391f18(0xe6)](_0x391f18(0xb2),{'type':_0x391f18(0xb4),'period':_0x41a504,'percentage':Math[_0x391f18(0xdd)](_0x739ab9),'threshold':_0x4be1ea,'usage':_0x2d5cbb,'budget':_0x1280ec});}[a0_0xb7fd51(0xed)](_0x2e45e7){const _0x8a0504=a0_0xb7fd51;return _0x2e45e7['toISOString']()[_0x8a0504(0xc9)]('T')[0x0];}[a0_0xb7fd51(0xe2)](_0x115935){const _0x7bc41a=a0_0xb7fd51,_0x4c07ac=_0x115935['getFullYear'](),_0x5ad7ff=this['getWeekNumber'](_0x115935);return _0x4c07ac+'-W'+_0x5ad7ff[_0x7bc41a(0xe5)]()[_0x7bc41a(0xac)](0x2,'0');}['getMonthKey'](_0x3a548f){const _0x59ccb3=a0_0xb7fd51,_0x4caf83=_0x3a548f[_0x59ccb3(0xa9)](),_0x1d0b5d=_0x3a548f['getMonth']()+0x1;return _0x4caf83+'-'+_0x1d0b5d[_0x59ccb3(0xe5)]()[_0x59ccb3(0xac)](0x2,'0');}['getWeekNumber'](_0x21d0af){const _0x53882e=a0_0xb7fd51,_0x46688f=new Date(_0x21d0af[_0x53882e(0xa9)](),0x0,0x1),_0x22520f=(_0x21d0af-_0x46688f)/0x5265c00;return Math['ceil']((_0x22520f+_0x46688f[_0x53882e(0xf3)]()+0x1)/0x7);}['convertToCSV'](_0x291436){const _0x3a1c93=a0_0xb7fd51,_0x332451=[];return _0x332451[_0x3a1c93(0xf2)]([_0x3a1c93(0xa2),'Date',_0x3a1c93(0xbe),'Tokens',_0x3a1c93(0xcf),'Agent',_0x3a1c93(0xe8)]),Object[_0x3a1c93(0xa3)](_0x291436['daily'])[_0x3a1c93(0xa6)](([_0x27dd67,_0x57bfec])=>{const _0x1a4441=_0x3a1c93;_0x332451['push']([_0x1a4441(0xb6),_0x27dd67,_0x57bfec['cost'],_0x57bfec['tokens'],_0x57bfec['requests'],'','']),Object['entries'](_0x57bfec['byAgent']||{})[_0x1a4441(0xa6)](([_0x7c0778,_0x2a3250])=>{const _0x1deb62=_0x1a4441;_0x332451['push']([_0x1deb62(0xb6),_0x27dd67,_0x2a3250['cost'],_0x2a3250['tokens'],_0x2a3250[_0x1deb62(0xba)],_0x7c0778,'']);});}),_0x332451['map'](_0x5340f8=>_0x5340f8['join'](','))[_0x3a1c93(0xeb)]('\x0a');}[a0_0xb7fd51(0xe0)](){const _0x46f2b2=a0_0xb7fd51;try{this[_0x46f2b2(0xd5)][_0x46f2b2(0xb0)](_0x46f2b2(0xf9));}catch(_0x412c00){this['logger']['error']('Failed\x20to\x20load\x20usage\x20data',{'error':_0x412c00[_0x46f2b2(0xdf)]});}}['saveUsageData'](){const _0x5ac466=a0_0xb7fd51;try{this[_0x5ac466(0xd5)]['debug']('Usage\x20data\x20saved');}catch(_0x2878d5){this[_0x5ac466(0xd5)][_0x5ac466(0xaa)]('Failed\x20to\x20save\x20usage\x20data',{'error':_0x2878d5[_0x5ac466(0xdf)]});}}[a0_0xb7fd51(0xc7)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
|
|
1
|
+
const a0_0x217561=a0_0x13ec;function a0_0x57bf(){const _0xa518bc=['tw9KzwW','C2v0qNvKz2v0CW','veHsrvnit0XeuW','zgfPBhLbDMvYywDLCW','y2HLy2TcDwrNzxrmAw1PDhm','mZeXotC3nfLRrwTcEa','ywDLBNrjza','Dw5ZAgLMDa','Aw5WDxq','Aw5PDgLHBgL6zvvZywDLrw50CNK','y2HLy2TuAhjLC2HVBgq','zM9YrwfJAa','ndyYmJe1Dfjfwuvm','y29ZDa','rgfPBhK','mJCWndy3mwHIDuHgzG','zxjYB3i','z2v0rNvSBfLLyxi','C29YDa','C2f2zvvZywDLrgf0yq','yNvKz2v0qwXLCNq','vxnHz2uGzgf0ysbZyxzLza','CMvXDwvZDhm','nJG5nJq2nfLHqLPQsG','C2v0','mZbUqNLdt3u','y29TCgXLDgLVBL90B2TLBNm','yNLbz2vUDa','nty5otuYnM9XAhfdqq','z2v0','z2v0qwDLBNrvC2fNzq','ChvZAa','CM91BMq','zw1PDa','mtK1otK1B05QvKnz','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','ltaX','Bw9KzwXjza','y2fSy3vSyxrLq29ZDa','qNvKz2v0igXPBwL0CYb1CgrHDgvK','C2v0DxbqzxjPB2rPy1nHDMu','Dg9Rzw5Z','mJe0nJy0nhrsA3Hrsq','BwvZC2fNzq','Aw5MBW','zgvIDwC','z2v0rgf5','y3n2','Bg9Nz2vY','AgfZ','Dg9ju09tDhjPBMC','AM9PBG','y2HLy2TuAhjLC2HVBgrbBgvYDhm','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','z2v0v2vLA0TLEq','zgfPBhK','D2vLA2X5','Bwf4','AxnxAxrOAw5cDwrNzxq','z2v0tw9UDgHlzxK','y3jLyxrLrw1WDhLvC2fNzq','mtb2sNPiyxO','mJHZCKzqA2S','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','z2v0v2vLA051BwjLCG','Dg9Wtw9KzwXZ','Dw5KzwzPBMvK','Bw9UDgHSEq','Dg9tDhjPBMC','ywXLCNrZ','z2v0rgf5s2v5','z2v0uMvTywLUAw5NqNvKz2v0','C2v0rgf0zq','z2v0vxnHz2u','D2fYBG','DxbKyxrLvxnHz2vfBNrYEq','y29UDMvYDfrVq1nw','zw50CMLLCW','Dg90ywW','rMfPBgvKihrVihrYywnRihvZywDL','Bg9HzfvZywDLrgf0yq','C2vUzej1zgDLDefSzxj0','yNLnB2rLBa','C3rYAw5NAwz5','CgfKu3rHCNq','tu9oveHmwq','y29ZDej5rgf5','ugvYAw9K','DxnHz2u','BM93','yNvKz2v0CW'];a0_0x57bf=function(){return _0xa518bc;};return a0_0x57bf();}function a0_0x13ec(_0x300fd9,_0x2d7354){_0x300fd9=_0x300fd9-0xdc;const _0x57bf36=a0_0x57bf();let _0x13ec9e=_0x57bf36[_0x300fd9];if(a0_0x13ec['yskFVh']===undefined){var _0x149fe5=function(_0x2d6bc7){const _0x635e84='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x14147f='',_0x4cca03='';for(let _0x2d7d37=0x0,_0x4ebf98,_0x10c343,_0x1a6a7b=0x0;_0x10c343=_0x2d6bc7['charAt'](_0x1a6a7b++);~_0x10c343&&(_0x4ebf98=_0x2d7d37%0x4?_0x4ebf98*0x40+_0x10c343:_0x10c343,_0x2d7d37++%0x4)?_0x14147f+=String['fromCharCode'](0xff&_0x4ebf98>>(-0x2*_0x2d7d37&0x6)):0x0){_0x10c343=_0x635e84['indexOf'](_0x10c343);}for(let _0x3c0724=0x0,_0x510704=_0x14147f['length'];_0x3c0724<_0x510704;_0x3c0724++){_0x4cca03+='%'+('00'+_0x14147f['charCodeAt'](_0x3c0724)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4cca03);};a0_0x13ec['SSLJHd']=_0x149fe5,a0_0x13ec['FPkitN']={},a0_0x13ec['yskFVh']=!![];}const _0x2a80ec=_0x57bf36[0x0],_0x329e4a=_0x300fd9+_0x2a80ec,_0x3326ad=a0_0x13ec['FPkitN'][_0x329e4a];return!_0x3326ad?(_0x13ec9e=a0_0x13ec['SSLJHd'](_0x13ec9e),a0_0x13ec['FPkitN'][_0x329e4a]=_0x13ec9e):_0x13ec9e=_0x3326ad,_0x13ec9e;}(function(_0x33183e,_0x5e4128){const _0x1ccb75=a0_0x13ec,_0x51ef89=_0x33183e();while(!![]){try{const _0x52b11e=parseInt(_0x1ccb75(0x11a))/0x1*(parseInt(_0x1ccb75(0x135))/0x2)+parseInt(_0x1ccb75(0x122))/0x3+-parseInt(_0x1ccb75(0x136))/0x4*(parseInt(_0x1ccb75(0x104))/0x5)+-parseInt(_0x1ccb75(0x114))/0x6+parseInt(_0x1ccb75(0xfd))/0x7+parseInt(_0x1ccb75(0x10f))/0x8+parseInt(_0x1ccb75(0x107))/0x9*(-parseInt(_0x1ccb75(0x111))/0xa);if(_0x52b11e===_0x5e4128)break;else _0x51ef89['push'](_0x51ef89['shift']());}catch(_0xb7ce1e){_0x51ef89['push'](_0x51ef89['shift']());}}}(a0_0x57bf,0x7b36c));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x14147f,_0x4cca03){const _0x216e9a=a0_0x13ec;this['config']=_0x14147f||{},this[_0x216e9a(0x128)]=_0x4cca03,this[_0x216e9a(0xf5)]={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x216e9a(0xf2)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS[_0x216e9a(0xfa)],'lastAlertTimes':new Map()},this[_0x216e9a(0xed)](),this[_0x216e9a(0x120)]();}['trackUsage'](_0x2d7d37,_0x4ebf98,_0x10c343){const _0x17c130=a0_0x13ec;try{const _0x1a6a7b=this[_0x17c130(0x11e)](_0x4ebf98,_0x10c343),_0x3c0724=new Date(),_0x510704=this[_0x17c130(0xe3)](_0x3c0724),_0x729664=this['getWeekKey'](_0x3c0724),_0x23f193=this[_0x17c130(0x133)](_0x3c0724);this['initializeUsageEntry'](this[_0x17c130(0xf5)][_0x17c130(0x12f)],_0x510704),this[_0x17c130(0x101)](this['usage'][_0x17c130(0x130)],_0x729664),this['initializeUsageEntry'](this['usage'][_0x17c130(0xe0)],_0x23f193);const _0xf27d99={'agentId':_0x2d7d37,'modelId':_0x4ebf98,'tokens':_0x10c343['total_tokens'],'cost':_0x1a6a7b,'timestamp':_0x3c0724[_0x17c130(0x12a)]()};return this['updateUsageEntry'](this[_0x17c130(0xf5)][_0x17c130(0x12f)][_0x17c130(0x115)](_0x510704),_0xf27d99),this[_0x17c130(0xe8)](this['usage'][_0x17c130(0x130)][_0x17c130(0x115)](_0x729664),_0xf27d99),this['updateUsageEntry'](this[_0x17c130(0xf5)][_0x17c130(0xe0)]['get'](_0x23f193),_0xf27d99),this['usage']['total']['tokens']+=_0x10c343['total_tokens'],this[_0x17c130(0xf5)][_0x17c130(0xeb)]['cost']+=_0x1a6a7b,this[_0x17c130(0xf5)]['total']['requests']+=0x1,this[_0x17c130(0xfc)](_0x510704,_0x729664,_0x23f193),this[_0x17c130(0x128)][_0x17c130(0x124)]('Usage\x20tracked',{'agentId':_0x2d7d37,'modelId':_0x4ebf98,'tokens':_0x10c343['total_tokens'],'cost':_0x1a6a7b,'totalCost':this[_0x17c130(0xf5)][_0x17c130(0xeb)]['cost']}),{'cost':_0x1a6a7b,'totalCost':this[_0x17c130(0xf5)][_0x17c130(0xeb)][_0x17c130(0x105)],'totalTokens':this[_0x17c130(0xf5)][_0x17c130(0xeb)]['tokens'],'dailyUsage':this['usage']['daily'][_0x17c130(0x115)](_0x510704),'budgetRemaining':this[_0x17c130(0xe4)]()};}catch(_0x77516b){this[_0x17c130(0x128)][_0x17c130(0x108)](_0x17c130(0xec),{'error':_0x77516b['message'],'agentId':_0x2d7d37,'modelId':_0x4ebf98});throw _0x77516b;}}[a0_0x217561(0x11e)](_0x2b5540,_0x519d69){const _0x315ae3=a0_0x217561,_0x41b135=COST_PER_TOKEN[_0x2b5540];if(!_0x41b135)return this[_0x315ae3(0x128)][_0x315ae3(0xe7)](_0x315ae3(0x11b),{'modelId':_0x2b5540}),0x0;const _0x2a84d4=(_0x519d69['prompt_tokens']||0x0)*_0x41b135[_0x315ae3(0x100)],_0x387090=(_0x519d69[_0x315ae3(0x112)]||0x0)*_0x41b135['output'];return _0x2a84d4+_0x387090;}['getUsage'](_0x1aac1b=a0_0x217561(0x12f),_0x42b8ca=new Date()){const _0xf689d8=a0_0x217561;switch(_0x1aac1b){case _0xf689d8(0x12f):return this['usage']['daily'][_0xf689d8(0x115)](this[_0xf689d8(0xe3)](_0x42b8ca))||this['createEmptyUsage']();case _0xf689d8(0x130):return this['usage']['weekly'][_0xf689d8(0x115)](this[_0xf689d8(0x12e)](_0x42b8ca))||this['createEmptyUsage']();case _0xf689d8(0xe0):return this['usage'][_0xf689d8(0xe0)]['get'](this[_0xf689d8(0x133)](_0x42b8ca))||this['createEmptyUsage']();case _0xf689d8(0xeb):return{...this['usage'][_0xf689d8(0xeb)]};default:throw new Error('Invalid\x20period:\x20'+_0x1aac1b);}}[a0_0x217561(0x116)](_0x2ed630,_0x5076de='daily'){const _0xc22988=a0_0x217561,_0x38b790=this[_0xc22988(0xe6)](_0x5076de);return _0x38b790['byAgent']?.[_0x2ed630]||this[_0xc22988(0x134)]();}['getModelUsage'](_0x3d9f24,_0x48143c=a0_0x217561(0x12f)){const _0x1287a0=this['getUsage'](_0x48143c);return _0x1287a0['byModel']?.[_0x3d9f24]||this['createEmptyUsage']();}[a0_0x217561(0xf9)](_0x194c1e){const _0x554f7c=a0_0x217561;if(_0x194c1e[_0x554f7c(0x12f)]!==undefined)this['budgets'][_0x554f7c(0x12f)]=_0x194c1e['daily'];if(_0x194c1e[_0x554f7c(0x130)]!==undefined)this['budgets']['weekly']=_0x194c1e['weekly'];if(_0x194c1e['monthly']!==undefined)this['budgets'][_0x554f7c(0xe0)]=_0x194c1e[_0x554f7c(0xe0)];this[_0x554f7c(0x128)][_0x554f7c(0x124)](_0x554f7c(0x11f),this['budgets']),this[_0x554f7c(0x10b)]();}[a0_0x217561(0xe4)](){const _0x41f3f5=a0_0x217561,_0x48ee8e=new Date(),_0x25c991=this[_0x41f3f5(0xe6)](_0x41f3f5(0x12f),_0x48ee8e),_0x1fc40f=this['getUsage']('weekly',_0x48ee8e),_0x208f61=this[_0x41f3f5(0xe6)](_0x41f3f5(0xe0),_0x48ee8e);return{'daily':Math['max'](0x0,this[_0x41f3f5(0xf7)][_0x41f3f5(0x12f)]-_0x25c991[_0x41f3f5(0x105)]),'weekly':Math[_0x41f3f5(0x131)](0x0,this['budgets']['weekly']-_0x1fc40f[_0x41f3f5(0x105)]),'monthly':Math['max'](0x0,this[_0x41f3f5(0xf7)]['monthly']-_0x208f61[_0x41f3f5(0x105)])};}[a0_0x217561(0x132)](_0x24a527=a0_0x217561(0x12f)){const _0x2a317d=a0_0x217561,_0x411697=this[_0x2a317d(0xe6)](_0x24a527),_0xa427e6=this[_0x2a317d(0xf7)][_0x24a527];return _0x411697['cost']<=_0xa427e6;}['getUsageTrends'](_0x24b92b=0x1e){const _0x25a917=a0_0x217561,_0x4b21f3={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0xe23d47=new Date();let _0x2b4738=0x0,_0x166544=0x0,_0x11692d=0x0;const _0x3e2a51=new Map(),_0x462993=new Map();for(let _0x40d972=0x0;_0x40d972<_0x24b92b;_0x40d972++){const _0x4b95fc=new Date(_0xe23d47);_0x4b95fc[_0x25a917(0xe5)](_0x4b95fc['getDate']()-_0x40d972);const _0x4d9d20=this[_0x25a917(0xe3)](_0x4b95fc),_0x287076=this[_0x25a917(0xf5)][_0x25a917(0x12f)][_0x25a917(0x115)](_0x4d9d20);_0x287076?(_0x2b4738+=_0x287076[_0x25a917(0x105)],_0x166544+=_0x287076['tokens'],_0x11692d+=_0x287076[_0x25a917(0x10e)],_0x4b21f3[_0x25a917(0xf3)]['unshift']({'date':_0x4d9d20,'cost':_0x287076[_0x25a917(0x105)]}),_0x4b21f3['tokensByDay']['unshift']({'date':_0x4d9d20,'tokens':_0x287076[_0x25a917(0x121)]}),Object['entries'](_0x287076[_0x25a917(0x113)]||{})['forEach'](([_0x18bfdf,_0x1cc974])=>{const _0x1c2a48=_0x25a917;!_0x3e2a51['has'](_0x18bfdf)&&_0x3e2a51['set'](_0x18bfdf,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x22d6fa=_0x3e2a51['get'](_0x18bfdf);_0x22d6fa[_0x1c2a48(0x105)]+=_0x1cc974[_0x1c2a48(0x105)],_0x22d6fa['tokens']+=_0x1cc974[_0x1c2a48(0x121)],_0x22d6fa[_0x1c2a48(0x10e)]+=_0x1cc974['requests'];}),Object['entries'](_0x287076['byModel']||{})['forEach'](([_0x6fb98,_0x2c98d8])=>{const _0x38818c=_0x25a917;!_0x462993[_0x38818c(0x129)](_0x6fb98)&&_0x462993[_0x38818c(0x110)](_0x6fb98,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x5f0ec3=_0x462993[_0x38818c(0x115)](_0x6fb98);_0x5f0ec3[_0x38818c(0x105)]+=_0x2c98d8['cost'],_0x5f0ec3['tokens']+=_0x2c98d8['tokens'],_0x5f0ec3[_0x38818c(0x10e)]+=_0x2c98d8['requests'];})):(_0x4b21f3[_0x25a917(0xf3)]['unshift']({'date':_0x4d9d20,'cost':0x0}),_0x4b21f3['tokensByDay'][_0x25a917(0xff)]({'date':_0x4d9d20,'tokens':0x0}));}return _0x4b21f3[_0x25a917(0xfb)][_0x25a917(0x105)]=_0x2b4738/_0x24b92b,_0x4b21f3['dailyAverages'][_0x25a917(0x121)]=_0x166544/_0x24b92b,_0x4b21f3[_0x25a917(0xfb)]['requests']=_0x11692d/_0x24b92b,_0x4b21f3['topAgents']=Array['from'](_0x3e2a51[_0x25a917(0xea)]())['map'](([_0x23d63b,_0x5c0205])=>({'id':_0x23d63b,..._0x5c0205}))[_0x25a917(0x10a)]((_0x5779af,_0x5ebd0a)=>_0x5ebd0a[_0x25a917(0x105)]-_0x5779af['cost'])['slice'](0x0,0xa),_0x4b21f3[_0x25a917(0xde)]=Array['from'](_0x462993['entries']())['map'](([_0x1a0d8a,_0x3e08cd])=>({'id':_0x1a0d8a,..._0x3e08cd}))['sort']((_0x1fbcfa,_0x424e92)=>_0x424e92[_0x25a917(0x105)]-_0x1fbcfa[_0x25a917(0x105)])['slice'](0x0,0xa),_0x4b21f3;}['exportUsageData'](_0x31ecd2='json',_0x1e2533=null,_0x257007=null){const _0x77f78d=a0_0x217561,_0x3cdd1f={'budgets':this[_0x77f78d(0xf7)],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0xaf8f56=(_0x381634,_0x1ed313)=>{const _0x550172=_0x77f78d,_0x55f07b={};return _0x381634[_0x550172(0x103)]((_0xc584d6,_0x1f77ef)=>{const _0x256f6c=_0x1ed313(_0x1f77ef);(!_0x1e2533||_0x256f6c>=_0x1e2533)&&(!_0x257007||_0x256f6c<=_0x257007)&&(_0x55f07b[_0x1f77ef]=_0xc584d6);}),_0x55f07b;};_0x1e2533||_0x257007?(_0x3cdd1f['daily']=_0xaf8f56(this['usage']['daily'],_0x42e02a=>new Date(_0x42e02a)),_0x3cdd1f[_0x77f78d(0x130)]=_0xaf8f56(this[_0x77f78d(0xf5)][_0x77f78d(0x130)],_0x52206=>new Date(_0x52206)),_0x3cdd1f['monthly']=_0xaf8f56(this[_0x77f78d(0xf5)]['monthly'],_0x5bcdb2=>new Date(_0x5bcdb2+_0x77f78d(0x11c)))):(this[_0x77f78d(0xf5)]['daily']['forEach']((_0x1181b5,_0x20ef2d)=>_0x3cdd1f[_0x77f78d(0x12f)][_0x20ef2d]=_0x1181b5),this['usage']['weekly'][_0x77f78d(0x103)]((_0x2995c4,_0x2ec233)=>_0x3cdd1f[_0x77f78d(0x130)][_0x2ec233]=_0x2995c4),this['usage'][_0x77f78d(0xe0)][_0x77f78d(0x103)]((_0x59e4da,_0x5cf716)=>_0x3cdd1f[_0x77f78d(0xe0)][_0x5cf716]=_0x59e4da));if(_0x31ecd2===_0x77f78d(0x127))return this['convertToCSV'](_0x3cdd1f);return JSON[_0x77f78d(0xf0)](_0x3cdd1f,null,0x2);}[a0_0x217561(0x101)](_0x3a3d28,_0x374344){const _0x5e72db=a0_0x217561;!_0x3a3d28[_0x5e72db(0x129)](_0x374344)&&_0x3a3d28['set'](_0x374344,this[_0x5e72db(0x134)]());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x217561(0xe8)](_0x181626,_0x1d61d5){const _0xa59ae0=a0_0x217561;_0x181626[_0xa59ae0(0x105)]+=_0x1d61d5['cost'],_0x181626['tokens']+=_0x1d61d5['tokens'],_0x181626['requests']+=0x1,!_0x181626[_0xa59ae0(0x113)][_0x1d61d5['agentId']]&&(_0x181626[_0xa59ae0(0x113)][_0x1d61d5[_0xa59ae0(0xfe)]]=this['createEmptyUsage']()),_0x181626['byAgent'][_0x1d61d5['agentId']]['cost']+=_0x1d61d5[_0xa59ae0(0x105)],_0x181626['byAgent'][_0x1d61d5[_0xa59ae0(0xfe)]][_0xa59ae0(0x121)]+=_0x1d61d5['tokens'],_0x181626[_0xa59ae0(0x113)][_0x1d61d5['agentId']][_0xa59ae0(0x10e)]+=0x1,!_0x181626[_0xa59ae0(0xef)][_0x1d61d5[_0xa59ae0(0x11d)]]&&(_0x181626[_0xa59ae0(0xef)][_0x1d61d5['modelId']]=this[_0xa59ae0(0x134)]()),_0x181626['byModel'][_0x1d61d5[_0xa59ae0(0x11d)]]['cost']+=_0x1d61d5['cost'],_0x181626['byModel'][_0x1d61d5['modelId']]['tokens']+=_0x1d61d5['tokens'],_0x181626[_0xa59ae0(0xef)][_0x1d61d5[_0xa59ae0(0x11d)]]['requests']+=0x1;}['checkBudgetLimits'](_0x57e9aa,_0x4b221f,_0x571ced){const _0x3d9da5=a0_0x217561,_0x4f61be=this['usage']['daily']['get'](_0x57e9aa),_0x4e2073=this[_0x3d9da5(0xf5)][_0x3d9da5(0x130)]['get'](_0x4b221f),_0xba7b0d=this['usage'][_0x3d9da5(0xe0)]['get'](_0x571ced);_0x4f61be[_0x3d9da5(0x105)]>this['budgets'][_0x3d9da5(0x12f)]&&this[_0x3d9da5(0xee)](_0x3d9da5(0x12f),_0x4f61be['cost'],this[_0x3d9da5(0xf7)]['daily']),_0x4e2073[_0x3d9da5(0x105)]>this['budgets'][_0x3d9da5(0x130)]&&this[_0x3d9da5(0xee)]('weekly',_0x4e2073['cost'],this['budgets']['weekly']),_0xba7b0d['cost']>this['budgets'][_0x3d9da5(0xe0)]&&this['sendBudgetAlert'](_0x3d9da5(0xe0),_0xba7b0d[_0x3d9da5(0x105)],this[_0x3d9da5(0xf7)][_0x3d9da5(0xe0)]),this[_0x3d9da5(0x12c)](_0x4f61be,_0x4e2073,_0xba7b0d);}['checkThresholdAlerts'](_0x227a4f,_0xf9a288,_0x43050b){const _0x5b8ca9=a0_0x217561,_0x1e248a=this[_0x5b8ca9(0xe2)]['thresholds'];this[_0x5b8ca9(0x102)]('daily',_0x227a4f[_0x5b8ca9(0x105)],this['budgets']['daily'],_0x1e248a),this['checkThreshold']('weekly',_0xf9a288['cost'],this['budgets']['weekly'],_0x1e248a),this[_0x5b8ca9(0x102)](_0x5b8ca9(0xe0),_0x43050b['cost'],this['budgets']['monthly'],_0x1e248a);}['checkThreshold'](_0xea0b8,_0x4bd446,_0x459c05,_0x3a573f){const _0x2b3a03=a0_0x217561,_0x2270c8=_0x4bd446/_0x459c05*0x64;for(const _0x2bef94 of _0x3a573f){if(_0x2270c8>=_0x2bef94){const _0x4c6949=_0xea0b8+'_'+_0x2bef94,_0x2e466f=this['alerts']['lastAlertTimes'][_0x2b3a03(0x115)](_0x4c6949),_0x4bbc0d=Date[_0x2b3a03(0xf6)]();(!_0x2e466f||_0x4bbc0d-_0x2e466f>0x36ee80)&&(this['sendThresholdAlert'](_0xea0b8,_0x2270c8,_0x2bef94,_0x4bd446,_0x459c05),this[_0x2b3a03(0xe2)]['lastAlertTimes']['set'](_0x4c6949,_0x4bbc0d));break;}}}['sendBudgetAlert'](_0xd3279b,_0x3bee18,_0x58fc45){const _0x4502fa=a0_0x217561;this[_0x4502fa(0x128)]['warn']('Budget\x20limit\x20exceeded',{'period':_0xd3279b,'currentUsage':_0x3bee18,'budgetLimit':_0x58fc45,'excess':_0x3bee18-_0x58fc45}),typeof process!==_0x4502fa(0xdf)&&process['emit']&&process['emit'](_0x4502fa(0x10c),{'type':'budget_exceeded','period':_0xd3279b,'currentUsage':_0x3bee18,'budgetLimit':_0x58fc45,'excess':_0x3bee18-_0x58fc45});}['sendThresholdAlert'](_0x10daef,_0xda7a02,_0x4bada0,_0x85c5e4,_0x1ca49d){const _0x3ef901=a0_0x217561;this['logger'][_0x3ef901(0xe7)]('Budget\x20threshold\x20reached',{'period':_0x10daef,'percentage':Math[_0x3ef901(0x118)](_0xda7a02),'threshold':_0x4bada0,'usage':_0x85c5e4,'budget':_0x1ca49d}),typeof process!=='undefined'&&process[_0x3ef901(0x119)]&&process['emit']('budgetAlert',{'type':'threshold_reached','period':_0x10daef,'percentage':Math['round'](_0xda7a02),'threshold':_0x4bada0,'usage':_0x85c5e4,'budget':_0x1ca49d});}['getDayKey'](_0x371b93){const _0x480e50=a0_0x217561;return _0x371b93[_0x480e50(0x12a)]()['split']('T')[0x0];}['getWeekKey'](_0x3abe69){const _0x276238=a0_0x217561,_0xf28f4c=_0x3abe69[_0x276238(0x109)](),_0x228d6c=this['getWeekNumber'](_0x3abe69);return _0xf28f4c+'-W'+_0x228d6c['toString']()['padStart'](0x2,'0');}[a0_0x217561(0x133)](_0x2fdc1c){const _0xca4e02=a0_0x217561,_0x12528d=_0x2fdc1c[_0xca4e02(0x109)](),_0x494e08=_0x2fdc1c['getMonth']()+0x1;return _0x12528d+'-'+_0x494e08[_0xca4e02(0xe1)]()[_0xca4e02(0xf1)](0x2,'0');}[a0_0x217561(0xdd)](_0x1c8d3a){const _0x3ac5e8=a0_0x217561,_0x176bbf=new Date(_0x1c8d3a['getFullYear'](),0x0,0x1),_0x36760=(_0x1c8d3a-_0x176bbf)/0x5265c00;return Math['ceil']((_0x36760+_0x176bbf[_0x3ac5e8(0x126)]()+0x1)/0x7);}[a0_0x217561(0xe9)](_0x34c050){const _0x1f81fa=a0_0x217561,_0x4a8df8=[];return _0x4a8df8[_0x1f81fa(0x117)]([_0x1f81fa(0xf4),'Date','Cost','Tokens','Requests','Agent',_0x1f81fa(0xf8)]),Object['entries'](_0x34c050[_0x1f81fa(0x12f)])['forEach'](([_0x55aae6,_0x298d2e])=>{const _0x17871a=_0x1f81fa;_0x4a8df8[_0x17871a(0x117)](['Daily',_0x55aae6,_0x298d2e[_0x17871a(0x105)],_0x298d2e['tokens'],_0x298d2e['requests'],'','']),Object['entries'](_0x298d2e['byAgent']||{})['forEach'](([_0x1ea794,_0x4161a2])=>{const _0x432cdd=_0x17871a;_0x4a8df8['push']([_0x432cdd(0x106),_0x55aae6,_0x4161a2[_0x432cdd(0x105)],_0x4161a2[_0x432cdd(0x121)],_0x4161a2['requests'],_0x1ea794,'']);});}),_0x4a8df8['map'](_0x121730=>_0x121730[_0x1f81fa(0x12b)](','))['join']('\x0a');}[a0_0x217561(0xed)](){const _0x2f4cd1=a0_0x217561;try{this['logger']['info'](_0x2f4cd1(0x12d));}catch(_0x3ef5dd){this['logger'][_0x2f4cd1(0x108)](_0x2f4cd1(0xdc),{'error':_0x3ef5dd['message']});}}['saveUsageData'](){const _0x7809c9=a0_0x217561;try{this['logger'][_0x7809c9(0x125)](_0x7809c9(0x10d));}catch(_0x2b7282){this[_0x7809c9(0x128)][_0x7809c9(0x108)]('Failed\x20to\x20save\x20usage\x20data',{'error':_0x2b7282[_0x7809c9(0x123)]});}}['setupPeriodicSave'](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a0_0x4ebb(_0x3b29d1,_0x2f6fde){_0x3b29d1=_0x3b29d1-0xfd;const _0x10f072=a0_0x10f0();let _0x4ebb47=_0x10f072[_0x3b29d1];if(a0_0x4ebb['fBrJmD']===undefined){var _0x4d4050=function(_0x5b6c44){const _0x457403='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x7f49bd='',_0x2226f4='';for(let _0x49302e=0x0,_0x482e2b,_0x5948d6,_0x3502e8=0x0;_0x5948d6=_0x5b6c44['charAt'](_0x3502e8++);~_0x5948d6&&(_0x482e2b=_0x49302e%0x4?_0x482e2b*0x40+_0x5948d6:_0x5948d6,_0x49302e++%0x4)?_0x7f49bd+=String['fromCharCode'](0xff&_0x482e2b>>(-0x2*_0x49302e&0x6)):0x0){_0x5948d6=_0x457403['indexOf'](_0x5948d6);}for(let _0x3de263=0x0,_0x4d8fb7=_0x7f49bd['length'];_0x3de263<_0x4d8fb7;_0x3de263++){_0x2226f4+='%'+('00'+_0x7f49bd['charCodeAt'](_0x3de263)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2226f4);};a0_0x4ebb['LSRrXz']=_0x4d4050,a0_0x4ebb['AwjAWP']={},a0_0x4ebb['fBrJmD']=!![];}const _0x4a78da=_0x10f072[0x0],_0x55a345=_0x3b29d1+_0x4a78da,_0x23aea0=a0_0x4ebb['AwjAWP'][_0x55a345];return!_0x23aea0?(_0x4ebb47=a0_0x4ebb['LSRrXz'](_0x4ebb47),a0_0x4ebb['AwjAWP'][_0x55a345]=_0x4ebb47):_0x4ebb47=_0x23aea0,_0x4ebb47;}const a0_0x4c45f7=a0_0x4ebb;(function(_0xef7cc2,_0x3e02f9){const _0x45b102=a0_0x4ebb,_0x381436=_0xef7cc2();while(!![]){try{const _0x5a0dec=parseInt(_0x45b102(0x10c))/0x1+-parseInt(_0x45b102(0x12e))/0x2*(parseInt(_0x45b102(0x10e))/0x3)+-parseInt(_0x45b102(0x129))/0x4*(-parseInt(_0x45b102(0x12d))/0x5)+-parseInt(_0x45b102(0x12c))/0x6+parseInt(_0x45b102(0x11e))/0x7*(-parseInt(_0x45b102(0x11d))/0x8)+-parseInt(_0x45b102(0x125))/0x9+parseInt(_0x45b102(0x10b))/0xa*(parseInt(_0x45b102(0x11a))/0xb);if(_0x5a0dec===_0x3e02f9)break;else _0x381436['push'](_0x381436['shift']());}catch(_0x26d66f){_0x381436['push'](_0x381436['shift']());}}}(a0_0x10f0,0x3f47c));import a0_0x7f49bd from'./fileAttachmentService.js';function a0_0x10f0(){const _0x1a4289=['CMvMzxjLBMnL','zMLSzu5HBwu','zM9YBwf0q29UDgvUDezPBgu','Dg9Rzw5fC3rPBwf0zq','Dg9ju09tDhjPBMC','zM9YBwf0vgv4DezPBgu','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','nde5mhfev1vzqq','mZK1mJqWCLHTtNr6','zM9YBwf0qNL0zxm','m0jTu3POAG','jNf1B3q7','zxn0Aw1HDgvuB3rHBfrVA2vUCW','pc9HDhrHy2HLzc1MAwXLCZ4k','zxnJyxbLwg1S','zM9YBwf0sw1Hz2vgAwXL','BwvZC2fNzq','z2v0qwn0AxzLqxr0ywnOBwvUDhm','ChvZAa','zMXVB3i','y29UDgvUDa','yNvPBgreEw5HBwLJq29UDgv4Da','nZiZofb0Cg1uva','jMD0oW','Bw9Kzq','mJq4nJqWoeXqBvfsuW','n2L2EhrssW','zMLSDgvY','iIb0ExbLpsi','CgrM','iIbTB2rPzMLLzd0I','Bg9Nz2vY','s0iIig1Vzgu9iMnVBNrLBNqIpGO','mtC0odqYmvDWDNLqBG','Aw5PDgLHBgL6zq','jMX0oW','CMvWBgfJzq','mtu1nLbczgHztq','zM9YBwf0uMvMzxjLBMnLrMLSzq','jMfWB3m7','mJGXmtG0whD1sLDS','nty5mg5tChLeqW','nJa0otG4uvzzswnn','z2v0qxr0ywnOBwvUDenVBNrLBNq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','iIbZAxPLpsi','Bg9N','zM9YBwf0ugrMrMLSzq','Dgv4Da','yxr0ywnOBwvUDfnLCNzPy2u','cJXMAwXLlxjLzMvYzw5Jzxm+cG','zxjYB3i','cIaGpc9MAwXLpG','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','BgvUz3rO','ica8zMLSzsbUyw1Lpsi','Dg9gAxHLza'];a0_0x10f0=function(){return _0x1a4289;};return a0_0x10f0();}class ContextInjectionService{constructor(_0x2226f4={},_0x49302e=null){const _0x1103bf=a0_0x4ebb;this['config']=_0x2226f4,this['logger']=_0x49302e,this[_0x1103bf(0x135)]=new a0_0x7f49bd(_0x2226f4,_0x49302e);}async['initialize'](){const _0x22f244=a0_0x4ebb;await this['attachmentService'][_0x22f244(0x126)]();}async[a0_0x4c45f7(0x119)](_0x482e2b){const _0x22de7b=a0_0x4c45f7;try{const _0x5948d6=await this[_0x22de7b(0x135)][_0x22de7b(0x115)](_0x482e2b);if(_0x5948d6['length']===0x0)return'';const _0x3502e8=_0x5948d6[_0x22de7b(0x11f)](_0x5d5ce1=>_0x5d5ce1['mode']===_0x22de7b(0x118)),_0x3de263=_0x5948d6[_0x22de7b(0x11f)](_0x26690f=>_0x26690f['mode']==='reference');let _0x4d8fb7='';if(_0x3502e8[_0x22de7b(0x101)]>0x0){_0x4d8fb7+='\x0a<attached-files>\x0a';for(const _0x5029e5 of _0x3502e8){const _0x35d888=await this[_0x22de7b(0x135)][_0x22de7b(0x12f)](_0x5029e5['fileId']);if(_0x35d888){const _0x4920d7=this['formatContentFile'](_0x5029e5,_0x35d888);_0x4d8fb7+=_0x4920d7+'\x0a';}}_0x4d8fb7+=_0x22de7b(0x111);}if(_0x3de263[_0x22de7b(0x101)]>0x0){_0x4d8fb7+=_0x22de7b(0xfd);for(const _0x25016e of _0x3de263){const _0x24a3e1=this['formatReferenceFile'](_0x25016e);_0x4d8fb7+=_0x24a3e1+'\x0a';}_0x4d8fb7+=_0x22de7b(0x130),_0x4d8fb7+=_0x22de7b(0x10a);}return _0x4d8fb7;}catch(_0x2a2761){return this['logger']?.[_0x22de7b(0xfe)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x482e2b,'error':_0x2a2761[_0x22de7b(0x114)]}),'';}}[a0_0x4c45f7(0x106)](_0x521d53,_0x404d12){const _0x35c0be=a0_0x4c45f7,{fileName:_0x264b4c,fileType:_0x2bb86a,size:_0x1defb8,contentType:_0x274d08}=_0x521d53,_0x352da1=(_0x1defb8/0x400)['toFixed'](0x2);if(_0x274d08===_0x35c0be(0x134))return this[_0x35c0be(0x109)](_0x521d53,_0x404d12);else{if(_0x274d08==='image')return this[_0x35c0be(0x113)](_0x521d53,_0x404d12);else{if(_0x274d08===_0x35c0be(0x121))return this[_0x35c0be(0x133)](_0x521d53,_0x404d12);}}return'\x20\x20<file\x20name=\x22'+this[_0x35c0be(0x112)](_0x264b4c)+'\x22\x20type=\x22'+_0x2bb86a+_0x35c0be(0x131)+_0x352da1+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x35c0be(0x112)](_0x404d12)+'\x0a\x20\x20</file>';}[a0_0x4c45f7(0x109)](_0x1a0c90,_0xfb3933){const _0x591336=a0_0x4c45f7,{fileName:_0x13c96a,fileType:_0x2753e7,size:_0x2ea6d2}=_0x1a0c90,_0x208fdc=(_0x2ea6d2/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x13c96a)+'\x22\x20type=\x22'+_0x2753e7+'\x22\x20size=\x22'+_0x208fdc+_0x591336(0x124)+this[_0x591336(0x112)](_0xfb3933)+'\x0a\x20\x20</file>';}['formatImageFile'](_0x1c6791,_0x47a393){const _0x1b7616=a0_0x4c45f7,{fileName:_0x2203f4,fileType:_0xd167c0,size:_0x39e644}=_0x1c6791,_0x528ee7=(_0x39e644/0x400)[_0x1b7616(0x103)](0x2);return _0x1b7616(0x102)+this['escapeXml'](_0x2203f4)+_0x1b7616(0x120)+_0xd167c0+'\x22\x20size=\x22'+_0x528ee7+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x47a393+'\x0a\x20\x20</file>';}['formatPdfFile'](_0x3b4a8b,_0x56e522){const _0x16490e=a0_0x4c45f7,{fileName:_0x4331e0,fileType:_0x4dac4d,size:_0x5f0c86}=_0x3b4a8b,_0xd8305e=(_0x5f0c86/0x400)['toFixed'](0x2);return _0x16490e(0x102)+this['escapeXml'](_0x4331e0)+_0x16490e(0x120)+_0x4dac4d+'\x22\x20size=\x22'+_0xd8305e+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x56e522)+_0x16490e(0xff);}[a0_0x4c45f7(0x12a)](_0x4918af){const _0x490bbc=a0_0x4c45f7,{fileName:_0x42d2b6,originalPath:_0x3cdd0c,size:_0x54309e,fileType:_0x21aa08,lastModified:_0x23f94a}=_0x4918af,_0xb4298e=this['formatBytes'](_0x54309e),_0xbbfa52=new Date(_0x23f94a)[_0x490bbc(0x108)]()['split']('T')[0x0];return _0x490bbc(0x102)+this[_0x490bbc(0x112)](_0x42d2b6)+'\x22\x20path=\x22'+this[_0x490bbc(0x112)](_0x3cdd0c)+_0x490bbc(0x131)+_0xb4298e+'\x22\x20type=\x22'+_0x21aa08+_0x490bbc(0x122)+_0xbbfa52+'\x22\x20/>';}[a0_0x4c45f7(0x112)](_0x2e75a1){const _0x4eb381=a0_0x4c45f7;if(!_0x2e75a1)return'';return _0x2e75a1[_0x4eb381(0x128)](/&/g,'&')['replace'](/</g,_0x4eb381(0x127))['replace'](/>/g,_0x4eb381(0x11b))[_0x4eb381(0x128)](/"/g,_0x4eb381(0x10f))['replace'](/'/g,_0x4eb381(0x12b));}['formatBytes'](_0x252202){const _0x1abfc8=a0_0x4c45f7;if(_0x252202===0x0)return'0\x20Bytes';const _0xd91ec8=0x400,_0xee1a6=['Bytes','KB','MB','GB'],_0x323d36=Math[_0x1abfc8(0x117)](Math['log'](_0x252202)/Math[_0x1abfc8(0x132)](_0xd91ec8));return parseFloat((_0x252202/Math['pow'](_0xd91ec8,_0x323d36))[_0x1abfc8(0x103)](0x2))+_0xee1a6[_0x323d36];}async[a0_0x4c45f7(0x110)](_0x29ae16){const _0x4eeb4a=a0_0x4c45f7;try{const _0x5e162b=await this['attachmentService'][_0x4eeb4a(0x115)](_0x29ae16);let _0x2764b5=0x0;for(const _0x406149 of _0x5e162b){_0x406149['mode']===_0x4eeb4a(0x118)?_0x2764b5+=_0x406149['tokenEstimate']||0x0:_0x2764b5+=0x14;}return _0x2764b5;}catch(_0x12156e){return this[_0x4eeb4a(0x123)]?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x29ae16,'error':_0x12156e[_0x4eeb4a(0x114)]}),0x0;}}async['getAttachmentSummary'](_0x52e229){const _0x1bd759=a0_0x4c45f7;try{const _0x3d7c7c=await this['attachmentService'][_0x1bd759(0x115)](_0x52e229),_0x4df3cf={'totalActive':_0x3d7c7c[_0x1bd759(0x101)],'contentMode':_0x3d7c7c['filter'](_0x323ce3=>_0x323ce3[_0x1bd759(0x11c)]==='content')['length'],'referenceMode':_0x3d7c7c[_0x1bd759(0x11f)](_0x5b8f1e=>_0x5b8f1e['mode']===_0x1bd759(0x104))[_0x1bd759(0x101)],'estimatedTokens':0x0,'files':[]};for(const _0xe32939 of _0x3d7c7c){_0x4df3cf['estimatedTokens']+=_0xe32939[_0x1bd759(0x107)]||0x0,_0x4df3cf['files'][_0x1bd759(0x116)]({'fileName':_0xe32939[_0x1bd759(0x105)],'mode':_0xe32939[_0x1bd759(0x11c)],'size':this[_0x1bd759(0x10d)](_0xe32939['size']),'tokens':_0xe32939['tokenEstimate']||0x0});}return _0x4df3cf;}catch(_0x66f9e1){return this['logger']?.['error'](_0x1bd759(0x100),{'agentId':_0x52e229,'error':_0x66f9e1[_0x1bd759(0x114)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
|