@loxia-labs/loxia-autopilot-one 1.0.13 → 1.0.14
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 +7 -3
- package/bin/cli.js +1 -1
- package/bin/loxia-terminal-v2.js +1 -1
- package/bin/loxia-terminal.js +1 -1
- package/bin/start-with-terminal.js +1 -1
- package/package.json +1 -1
- package/scripts/install-scanners.js +1 -1
- package/src/analyzers/CSSAnalyzer.js +1 -1
- package/src/analyzers/ConfigValidator.js +1 -1
- package/src/analyzers/ESLintAnalyzer.js +1 -1
- package/src/analyzers/JavaScriptAnalyzer.js +1 -1
- package/src/analyzers/PrettierFormatter.js +1 -1
- package/src/analyzers/PythonAnalyzer.js +1 -1
- package/src/analyzers/SecurityAnalyzer.js +1 -1
- package/src/analyzers/TypeScriptAnalyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/detector.js +1 -1
- package/src/analyzers/codeCloneDetector/index.js +1 -1
- package/src/analyzers/codeCloneDetector/parser.js +1 -1
- package/src/analyzers/codeCloneDetector/reporter.js +1 -1
- package/src/analyzers/codeCloneDetector/scanner.js +1 -1
- package/src/core/agentPool.js +1 -1
- package/src/core/agentScheduler.js +1 -1
- package/src/core/contextManager.js +1 -1
- package/src/core/messageProcessor.js +1 -1
- package/src/core/orchestrator.js +1 -1
- package/src/core/stateManager.js +1 -1
- package/src/index.js +1 -1
- package/src/interfaces/cli.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
- package/src/interfaces/terminal/api/apiClient.js +1 -1
- package/src/interfaces/terminal/api/messageRouter.js +1 -1
- package/src/interfaces/terminal/api/session.js +1 -1
- package/src/interfaces/terminal/api/websocket.js +1 -1
- package/src/interfaces/terminal/components/AgentCreator.js +1 -1
- package/src/interfaces/terminal/components/AgentEditor.js +1 -1
- package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
- package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
- package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
- package/src/interfaces/terminal/components/Header.js +1 -1
- package/src/interfaces/terminal/components/HelpPanel.js +1 -1
- package/src/interfaces/terminal/components/InputBox.js +1 -1
- package/src/interfaces/terminal/components/Layout.js +1 -1
- package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
- package/src/interfaces/terminal/components/MessageList.js +1 -1
- package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
- package/src/interfaces/terminal/components/SearchPanel.js +1 -1
- package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
- package/src/interfaces/terminal/components/StatusBar.js +1 -1
- package/src/interfaces/terminal/components/TextInput.js +1 -1
- package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
- package/src/interfaces/terminal/config/constants.js +1 -1
- package/src/interfaces/terminal/index.js +1 -1
- package/src/interfaces/terminal/state/useAgentControl.js +1 -1
- package/src/interfaces/terminal/state/useAgents.js +1 -1
- package/src/interfaces/terminal/state/useConnection.js +1 -1
- package/src/interfaces/terminal/state/useMessages.js +1 -1
- package/src/interfaces/terminal/state/useTools.js +1 -1
- package/src/interfaces/terminal/utils/debugLogger.js +1 -1
- package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
- package/src/interfaces/terminal/utils/theme.js +1 -1
- package/src/interfaces/webServer.js +1 -1
- package/src/modules/fileExplorer/controller.js +1 -1
- package/src/modules/fileExplorer/index.js +1 -1
- package/src/modules/fileExplorer/middleware.js +1 -1
- package/src/modules/fileExplorer/routes.js +1 -1
- package/src/services/agentActivityService.js +1 -0
- package/src/services/aiService.js +1 -1
- package/src/services/apiKeyManager.js +1 -1
- package/src/services/benchmarkService.js +1 -1
- package/src/services/budgetService.js +1 -1
- package/src/services/contextInjectionService.js +1 -1
- package/src/services/conversationCompactionService.js +1 -1
- package/src/services/errorHandler.js +1 -1
- package/src/services/fileAttachmentService.js +1 -1
- package/src/services/modelRouterService.js +1 -1
- package/src/services/modelsService.js +1 -1
- package/src/services/qualityInspector.js +1 -1
- package/src/services/tokenCountingService.js +1 -1
- package/src/tools/agentCommunicationTool.js +1 -1
- package/src/tools/agentDelayTool.js +1 -1
- package/src/tools/asyncToolManager.js +1 -1
- package/src/tools/baseTool.js +1 -1
- package/src/tools/browserTool.js +1 -1
- package/src/tools/cloneDetectionTool.js +1 -1
- package/src/tools/dependencyResolverTool.js +1 -1
- package/src/tools/fileContentReplaceTool.js +1 -1
- package/src/tools/fileSystemTool.js +1 -1
- package/src/tools/fileTreeTool.js +1 -1
- package/src/tools/imageTool.js +1 -1
- package/src/tools/importAnalyzerTool.js +1 -1
- package/src/tools/jobDoneTool.js +1 -1
- package/src/tools/seekTool.js +1 -1
- package/src/tools/staticAnalysisTool.js +1 -1
- package/src/tools/taskManagerTool.js +1 -1
- package/src/tools/terminalTool.js +1 -1
- package/src/tools/webTool.js +1 -1
- package/src/types/agent.js +1 -1
- package/src/types/contextReference.js +1 -1
- package/src/types/conversation.js +1 -1
- package/src/types/toolCommand.js +1 -1
- package/src/utilities/attachmentValidator.js +1 -1
- package/src/utilities/configManager.js +1 -1
- package/src/utilities/constants.js +1 -1
- package/src/utilities/directoryAccessManager.js +1 -1
- package/src/utilities/fileProcessor.js +1 -1
- package/src/utilities/logger.js +1 -1
- package/src/utilities/tagParser.js +1 -1
- package/src/utilities/toolConstants.js +1 -1
- package/src/utilities/userDataDir.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x3e0030=a0_0x170f;(function(_0xbe0eaa,_0xb89231){const _0x4c1cb9=a0_0x170f,_0x401417=_0xbe0eaa();while(!![]){try{const _0x204c00=-parseInt(_0x4c1cb9(0x215))/0x1*(-parseInt(_0x4c1cb9(0x1c1))/0x2)+parseInt(_0x4c1cb9(0x1df))/0x3*(parseInt(_0x4c1cb9(0x1b0))/0x4)+parseInt(_0x4c1cb9(0x1c9))/0x5+-parseInt(_0x4c1cb9(0x1f9))/0x6+-parseInt(_0x4c1cb9(0x1bc))/0x7+parseInt(_0x4c1cb9(0x222))/0x8+parseInt(_0x4c1cb9(0x1dc))/0x9*(parseInt(_0x4c1cb9(0x257))/0xa);if(_0x204c00===_0xb89231)break;else _0x401417['push'](_0x401417['shift']());}catch(_0x385225){_0x401417['push'](_0x401417['shift']());}}}(a0_0x5f3f,0xd82aa));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x170f(_0xac9fa0,_0x4f2c90){_0xac9fa0=_0xac9fa0-0x1aa;const _0x5f3f94=a0_0x5f3f();let _0x170fb2=_0x5f3f94[_0xac9fa0];if(a0_0x170f['KeDQhl']===undefined){var _0x57e062=function(_0x3ecd70){const _0x5d25e0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x23d0e6='',_0x472369='';for(let _0x3bccf6=0x0,_0x1d963e,_0x330893,_0x2acc76=0x0;_0x330893=_0x3ecd70['charAt'](_0x2acc76++);~_0x330893&&(_0x1d963e=_0x3bccf6%0x4?_0x1d963e*0x40+_0x330893:_0x330893,_0x3bccf6++%0x4)?_0x23d0e6+=String['fromCharCode'](0xff&_0x1d963e>>(-0x2*_0x3bccf6&0x6)):0x0){_0x330893=_0x5d25e0['indexOf'](_0x330893);}for(let _0x389ade=0x0,_0x3ccafb=_0x23d0e6['length'];_0x389ade<_0x3ccafb;_0x389ade++){_0x472369+='%'+('00'+_0x23d0e6['charCodeAt'](_0x389ade)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x472369);};a0_0x170f['ObrxSV']=_0x57e062,a0_0x170f['qqXbkA']={},a0_0x170f['KeDQhl']=!![];}const _0x3e00af=_0x5f3f94[0x0],_0x340a51=_0xac9fa0+_0x3e00af,_0x2a3485=a0_0x170f['qqXbkA'][_0x340a51];return!_0x2a3485?(_0x170fb2=a0_0x170f['ObrxSV'](_0x170fb2),a0_0x170f['qqXbkA'][_0x340a51]=_0x170fb2):_0x170fb2=_0x2a3485,_0x170fb2;}function a0_0x5f3f(){const _0x6141a5=['mJr2vuvcyu0','CgXHDgzVCM1qCM92AwrLza','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','BwvZC2fNzxm','z2vUzxjHDgvjBwfNzq','DxnLCG','yxbPs2v5twfUywDLCG','D2fYBG','DML2Awq','y2vPBa','AxnpCgvU','ue9tva','ic0G','x2nOzwnRuMf0zuXPBwL0','ChjLzMvYCMvKtw9KzwW','x3jLy29YzezHAwX1CMu','C3bLzwq','y29UDMvYC2f0Aw9UCW','x2HHBMrSzvjHDgvmAw1PDa','Dgv4Da','ChjVBxb0','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','CMvXDwvZDff1zxvL','x2zVCM1HDezVCK9Wzw5bsq','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','x3jLC2v0q2LYy3vPDejYzwfRzxi','ntuWnJi2mfvPyuzgDa','zgvLChnLzwS','uMf0zsbSAw1PDcbLEgnLzwrLza','Aw5JBhvKzxm','Dw5ZAgLMDa','sw52ywXPzcbYzxf1zxn0oIa','y3vZDg9TqxbPs2v5CW','r1buxZrFtuLosq','qMvHCMvYia','uMv0CNLPBMCGAw4G','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','x2DLDfzLBMrVCKzYB21nB2rLBa','DMvUzg9YqxbPs2v5','ywDLBNrjza','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','C3rYAw5N','CMfUzg9T','zMX1Ec0XlJeTChjV','C2vUze1LC3nHz2u','C3rHDhvZ','CMf0zuXPBwL0zxjZ','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','u0vsvKLdrv9vtKfwquLmqujmrq','ChvZAa','y29UDgv4DfDPBMrVDW','DxjS','BwvZC2fNzq','mtLyAMreqvi','CMv2zxjZzq','zMfPBhvYzxm','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','quKGC2vYDMLJzsbLCNjVCJOG','z2v0s2v5C0zVCLjLCxvLC3q','z3b0','AgfUzgXLshr0CevYCM9Y','x2zVCM1HDezVCKfUDgHYB3bPyW','Aw5MBW','qKfex0DbvevxqvK','tw9KzwWGC3DPDgnOigzHAwXLzdOG','ANnVBG','ntq4nJqYnef6EKf6rG','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','q2LYy3vPDcbICMvHA2vYihjLC2v0ic0GC2vYDMLJzsbYzwnVDMvYzwq','Bwf4x3rVA2vUCW','CgvYC2LZDefNzw50u3rHDgu','C3LZDgvT','tK9ux0zpvu5e','CMvZCg9UC2vgB3jTyxq','y29TCgXLEgL0Eq','Dg9tDhjPBMC','CMvXlq','DgLTzw91Da','y2LYy3vPDejYzwfRzxi','CM9Szq','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','CMvXDwvZDeLK','t1bftKfj','Aw1Hz2vZ','C3vIC3rYAw5N','BwfW','ywXS','A2v5CW','qu5usfjpueLdx0HbsuTv','C2XPy2u','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','C3DPDgnOtw9KzwW','C3rHBMrHCMq','CxvHBgL0Eq','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','DhjHy2TvC2fNzq','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','z2v0','B3b0Aw9UCW','y29UDMvYC2f0Aw9UtwfUywDLCNm','y29UzMLN','Bg9Nz2vY','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','rKfmtejbq0S','C2v0qwDLBNrqB29S','C3LZDgvTuhjVBxb0','zMLUAxnOuMvHC29U','qvPvuKu','x2nOzwnRtw9KzwXizwfSDgG','zxn0Aw1HDgvKvg9Rzw5Z','zgf0yq','x2LZvMfSAwrnB2rLBa','x3rYDw5JyxrLtwvZC2fNzq','ChjVDMLKzxi','vu5bvvrit1jjwKve','x2LZq2LYy3vPDejYzwfRzxjpCgvU','ywDLBNrqB29S','mtuWBKLnBxHW','BM93','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','yJy0x2PZB24','mtaYnhGXmdi0','x2zVCM1HDfnPBMDSzu1LC3nHz2u','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','CMv0CNLbDhrLBxb0CW','nJe0nJmYrg5tyKv1','yMfJA2vUza','y29UDgvUDa','CMv2AxnLzf9WCM9TChq','Dg9ju09tDhjPBMC','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','yNvKz2v0u2vYDMLJzq','yxbPs2v5','yxnZAxn0yw50','AgLNAa','Bw9KzwW','y2XHC3nPzNLfCNjVCG','ote4ndCYmvvKCKHJrW','y29Kzq','vw5RBM93BIbTB2rLBdOG','C3rYAw5NAwz5','x2vZDgLTyxrLvg9Rzw5Z','mtaWmtr4s2vPquq','Dg9vChbLCKnHC2u','C3rVCa','twfRAw5NihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','C3rHDhvZvgv4Da','BgvUz3rO','qu5usfjpueLd','z2v0qwDLBNq','oti0ndmWr0r3suLS','y2HVAwnLCW','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','DhjPBq','Dg90ywXFDg9Rzw5Z','ueHjxZq','DgHYzxnOB2XK','zxjYB3i','qxv0AgvUDgLJyxrPB24GzMfPBgvKihDPDgGGquKGC2vYDMLJzq','C2vZC2LVBKLK','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','yMfZzvvYBa','C3rHy2S','DxnHz2u','r1buxZq','Bw9KzwXtCgvJCW','C3r5Bgu','zxjYB3jiyw5KBgvY','sfruuca','ntuYmdG3sfvkzM5Y','CgHP','x21HA2vjBwfNzufqsvjLCxvLC3q'];a0_0x5f3f=function(){return _0x6141a5;};return a0_0x5f3f();}class AIService{constructor(_0x23d0e6,_0x472369,_0x3bccf6,_0x1d963e){const _0x977c62=a0_0x170f;this[_0x977c62(0x245)]=_0x23d0e6,this['logger']=_0x472369,this[_0x977c62(0x1b6)]=_0x3bccf6,this[_0x977c62(0x1da)]=_0x1d963e,this[_0x977c62(0x1d4)]=_0x23d0e6[_0x977c62(0x1b1)]?.[_0x977c62(0x1d4)]||'https://api.loxia.ai',this['timeout']=_0x23d0e6['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x23d0e6['backend']?.[_0x977c62(0x1af)]||0x3,this[_0x977c62(0x20d)]=new Map(),this[_0x977c62(0x1f5)]=new Map(),this[_0x977c62(0x22e)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0x977c62(0x20e)](),this[_0x977c62(0x244)]=new Map(),this[_0x977c62(0x1e5)]=null,this[_0x977c62(0x256)]=null;}async[a0_0x3e0030(0x20b)](_0x330893,_0x2acc76,_0x389ade={}){const _0x3b3687=a0_0x3e0030,_0x3ccafb=_0x3b3687(0x22c)+Date['now']()+'-'+Math[_0x3b3687(0x209)]()[_0x3b3687(0x22b)](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this['_checkRateLimit'](_0x330893);const _0x1fcd7a=this[_0x3b3687(0x241)](_0x2acc76,_0x330893,_0x389ade),_0x198f66={'model':_0x330893,'messages':_0x1fcd7a,'options':{'max_tokens':this['modelSpecs'][_0x330893]?.['maxTokens']||0xfa0,'temperature':_0x389ade['temperature']||0.7,'stream':_0x389ade['stream']||![]},'metadata':{'requestId':_0x3ccafb,'agentId':_0x389ade['agentId'],'timestamp':new Date()[_0x3b3687(0x1b4)]()}};_0x389ade[_0x3b3687(0x24b)]&&(_0x198f66[_0x3b3687(0x227)]=_0x389ade['systemPrompt']);this[_0x3b3687(0x246)][_0x3b3687(0x21e)]('Sending\x20message\x20to\x20model:\x20'+_0x330893,{'requestId':_0x3ccafb,'agentId':_0x389ade[_0x3b3687(0x206)],'messageCount':Array['isArray'](_0x2acc76)?_0x2acc76['length']:0x1,'maxTokens':_0x198f66[_0x3b3687(0x225)]});const _0x217122=await this['_makeAPIRequest']('/chat/completions',_0x198f66,_0x3ccafb,{..._0x389ade,'sessionId':_0x389ade['sessionId'],'platformProvided':_0x389ade['platformProvided']||![]});return _0x217122['usage']&&await this['trackUsage'](_0x389ade['agentId'],_0x330893,{'prompt_tokens':_0x217122[_0x3b3687(0x1d6)]['prompt_tokens']||0x0,'completion_tokens':_0x217122['usage']['completion_tokens']||0x0,'total_tokens':_0x217122['usage'][_0x3b3687(0x1cd)]||0x0}),this['_resetCircuitBreaker'](),{'content':_0x217122['choices'][0x0]?.['message']?.['content']||'','model':_0x217122['model'],'tokenUsage':_0x217122[_0x3b3687(0x1d6)],'requestId':_0x3ccafb,'finishReason':_0x217122[_0x3b3687(0x1ca)][0x0]?.['finish_reason']};}catch(_0x23b105){this[_0x3b3687(0x1ee)](),this['logger'][_0x3b3687(0x1d0)](_0x3b3687(0x23f)+_0x23b105[_0x3b3687(0x214)],{'requestId':_0x3ccafb,'model':_0x330893,'agentId':_0x389ade[_0x3b3687(0x206)],'error':_0x23b105[_0x3b3687(0x1d5)]}),await this['handleHttpError'](_0x23b105,{'requestId':_0x3ccafb,'model':_0x330893,'agentId':_0x389ade['agentId']});throw _0x23b105;}}async['routeModel'](_0x2dd936,_0x4871a7={}){const _0xa46688=a0_0x3e0030;try{const _0x2a11e1=MODEL_ROUTING[_0x2dd936[_0xa46688(0x1c2)]()]||MODEL_ROUTING[_0xa46688(0x249)],_0x2dc14b=[];for(const _0x1d3ec6 of _0x2a11e1){const _0x4fdfe7=await this['_checkModelHealth'](_0x1d3ec6);_0x4fdfe7&&_0x2dc14b[_0xa46688(0x211)](_0x1d3ec6);}if(_0x2dc14b[_0xa46688(0x1c6)]===0x0)return this['logger']['warn'](_0xa46688(0x230)+_0x2dd936+',\x20using\x20fallback'),MODEL_ROUTING[_0xa46688(0x249)][0x0];let _0x11a2ef=_0x2dc14b[0x0];if(_0x4871a7[_0xa46688(0x1ed)]&&_0x2dc14b['includes'](_0x4871a7['preferredModel']))_0x11a2ef=_0x4871a7['preferredModel'];else{if(_0x4871a7[_0xa46688(0x22a)]===_0xa46688(0x1b9)&&_0x2dc14b[_0xa46688(0x1fc)](MODELS['ANTHROPIC_OPUS']))_0x11a2ef=MODELS['ANTHROPIC_OPUS'];else _0x4871a7[_0xa46688(0x1ef)]==='fast'&&_0x2dc14b['includes'](MODELS[_0xa46688(0x239)])&&(_0x11a2ef=MODELS['ANTHROPIC_HAIKU']);}return this['logger']['info'](_0xa46688(0x1cb)+_0x2dd936,{'selectedModel':_0x11a2ef,'availableModels':_0x2dc14b[_0xa46688(0x1c6)],'context':_0x4871a7}),_0x11a2ef;}catch(_0xb3af99){return this['logger']['error'](_0xa46688(0x218)+_0xb3af99[_0xa46688(0x214)],{'task':_0x2dd936,'context':_0x4871a7}),MODEL_ROUTING[_0xa46688(0x249)][0x0];}}async['compactizeConversation'](_0x5a0f6a,_0x2f4466){const _0x1d83ed=a0_0x3e0030,_0x15c016=this[_0x1d83ed(0x1d8)][_0x2f4466];if(!_0x15c016)throw new Error(_0x1d83ed(0x1be)+_0x2f4466);const _0x2183ac=_0x15c016[_0x1d83ed(0x212)]*0.8;let _0x3b2aa5=0x0;const _0x4de653=[],_0x14bde9=await Promise[_0x1d83ed(0x237)](_0x5a0f6a[_0x1d83ed(0x236)](async _0x2bbe9d=>({..._0x2bbe9d,'estimatedTokens':await this[_0x1d83ed(0x1c0)](_0x2bbe9d[_0x1d83ed(0x1b2)],_0x2f4466)}))),_0x28e4ad=[..._0x14bde9][_0x1d83ed(0x216)]();for(const _0x2590ae of _0x28e4ad){if(_0x3b2aa5+_0x2590ae['estimatedTokens']>_0x2183ac){if(_0x4de653['length']===0x0){const _0x2bc1f7=await this[_0x1d83ed(0x252)](_0x2590ae['content'],_0x2183ac);_0x4de653[_0x1d83ed(0x1fd)]({..._0x2590ae,'content':_0x2bc1f7,'estimatedTokens':_0x2183ac});}break;}_0x4de653['unshift'](_0x2590ae),_0x3b2aa5+=_0x2590ae[_0x1d83ed(0x24f)];}const _0x485c99=_0x14bde9[_0x1d83ed(0x23a)](0x0,-_0x4de653[_0x1d83ed(0x1c6)]);if(_0x485c99[_0x1d83ed(0x1c6)]>0x0){const _0x235a2e=await this['_summarizeMessages'](_0x485c99,_0x2f4466);_0x4de653['unshift']({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x235a2e,'timestamp':_0x485c99[0x0]['timestamp'],'type':'summary','estimatedTokens':await this[_0x1d83ed(0x1c0)](_0x235a2e,_0x2f4466)});}return this['logger']['info']('Conversation\x20compactized\x20for\x20model:\x20'+_0x2f4466,{'originalMessages':_0x5a0f6a['length'],'compactizedMessages':_0x4de653['length'],'estimatedTokens':_0x3b2aa5,'maxTokens':_0x2183ac}),_0x4de653;}async[a0_0x3e0030(0x240)](_0x33bce2,_0x14196f,_0x1e75d7,_0x5067f6){const _0x4d0c89=a0_0x3e0030;try{this[_0x4d0c89(0x1b6)]&&this[_0x4d0c89(0x1b6)][_0x4d0c89(0x240)](_0x33bce2,_0x14196f,_0x1e75d7);}catch(_0x39183d){this['logger']['error'](_0x4d0c89(0x248)+_0x39183d['message']);}}async[a0_0x3e0030(0x21c)](_0x1b7a87,_0x4f4709){const _0x433a48=a0_0x3e0030,_0x4150a1=this[_0x433a48(0x1da)]?.[_0x433a48(0x1bb)]?.(_0x1b7a87,_0x4f4709);switch(_0x1b7a87[_0x433a48(0x20c)]||_0x1b7a87[_0x433a48(0x1bd)]){case HTTP_STATUS['BAD_REQUEST']:this['logger'][_0x433a48(0x1d0)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x4f4709,'error':_0x1b7a87['message']});throw new Error(_0x433a48(0x1fe)+_0x1b7a87['message']);case HTTP_STATUS[_0x433a48(0x254)]:this[_0x433a48(0x246)]['error'](_0x433a48(0x1d1),{'context':_0x4f4709});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x433a48(0x246)]['error'](_0x433a48(0x203),{'context':_0x4f4709});throw new Error(_0x433a48(0x1f4));case HTTP_STATUS[_0x433a48(0x228)]:this['logger']['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x4f4709});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS['TOO_MANY_REQUESTS']:this['logger']['warn'](_0x433a48(0x1fb),{'context':_0x4f4709}),await this[_0x433a48(0x1f1)](_0x4f4709);throw new Error(_0x433a48(0x1e1));case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS[_0x433a48(0x21f)]:case HTTP_STATUS[_0x433a48(0x210)]:case HTTP_STATUS['GATEWAY_TIMEOUT']:this[_0x433a48(0x246)][_0x433a48(0x1d0)](_0x433a48(0x1d3),{'context':_0x4f4709,'status':_0x1b7a87['status']}),await this['_handleServiceUnavailable'](_0x4f4709);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0x433a48(0x246)]['error'](_0x433a48(0x23b),{'context':_0x4f4709,'error':_0x1b7a87[_0x433a48(0x214)]});throw new Error(_0x433a48(0x219)+_0x1b7a87['message']);}}['setApiKeyManager'](_0x512216){const _0x18445b=a0_0x3e0030;this['apiKeyManager']=_0x512216,this['logger']?.[_0x18445b(0x21e)]('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x512216});}[a0_0x3e0030(0x24a)](_0x3c84ad){const _0x2d8bc1=a0_0x3e0030;this['agentPool']=_0x3c84ad,this[_0x2d8bc1(0x246)]?.['info'](_0x2d8bc1(0x1aa),{'hasAgentPool':!!_0x3c84ad});}async[a0_0x3e0030(0x1e3)](_0x3723ba,_0x24dcd5={}){const _0x5e7e95=a0_0x3e0030,_0x2f27bd='img-'+Date[_0x5e7e95(0x258)]()+'-'+Math[_0x5e7e95(0x209)]()['toString'](0x24)['substr'](0x2,0x9);try{if(this[_0x5e7e95(0x255)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x3723ba||typeof _0x3723ba!=='string'||_0x3723ba[_0x5e7e95(0x1cc)]()['length']===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x14d0b5=_0x24dcd5[_0x5e7e95(0x1ba)]||_0x5e7e95(0x20a),_0x2079d0=_0x24dcd5['size']||_0x5e7e95(0x1ac),_0x5f3209=_0x24dcd5[_0x5e7e95(0x23e)]||_0x5e7e95(0x23d),_0x20a9c0=_0x24dcd5[_0x5e7e95(0x229)]||_0x5e7e95(0x213);this[_0x5e7e95(0x246)][_0x5e7e95(0x21e)](_0x5e7e95(0x1f7)+_0x14d0b5,{'requestId':_0x2f27bd,'model':_0x14d0b5,'size':_0x2079d0,'quality':_0x5f3209,'promptLength':_0x3723ba[_0x5e7e95(0x1c6)]});const _0x5465af={'prompt':_0x3723ba,'model':_0x14d0b5,'size':_0x2079d0,'quality':_0x5f3209,'response_format':_0x20a9c0,'n':0x1,'metadata':{'requestId':_0x2f27bd,'timestamp':new Date()['toISOString']()}},_0x5d461b=await this[_0x5e7e95(0x1de)](_0x5465af,_0x2f27bd,{'sessionId':_0x24dcd5['sessionId'],'platformProvided':_0x24dcd5[_0x5e7e95(0x1e0)]||![]});return this['_resetCircuitBreaker'](),{'url':_0x5d461b[_0x5e7e95(0x250)]?.[0x0]?.[_0x5e7e95(0x213)]||null,'b64_json':_0x5d461b[_0x5e7e95(0x250)]?.[0x0]?.[_0x5e7e95(0x1ab)]||null,'model':_0x5d461b[_0x5e7e95(0x1ba)]||_0x14d0b5,'requestId':_0x2f27bd,'revisedPrompt':_0x5d461b['data']?.[0x0]?.[_0x5e7e95(0x1b3)]||_0x3723ba};}catch(_0x1a215f){this['_recordFailure'](),this[_0x5e7e95(0x246)][_0x5e7e95(0x1d0)]('Image\x20generation\x20failed:\x20'+_0x1a215f[_0x5e7e95(0x214)],{'requestId':_0x2f27bd,'model':_0x24dcd5[_0x5e7e95(0x1ba)],'error':_0x1a215f['stack']});throw _0x1a215f;}}async['checkServiceHealth'](){const _0x8832c7=a0_0x3e0030;try{const _0x468edb=await this['_makeAPIRequest']('/health',{},'health-check');return _0x468edb[_0x8832c7(0x20c)]==='healthy';}catch(_0x5da506){return![];}}async['switchAgentModel'](_0x57b0b2,_0x45c086){const _0x553761=a0_0x3e0030;try{if(!this['_isValidModel'](_0x45c086))throw new Error('Invalid\x20model:\x20'+_0x45c086);let _0x38e0ee=this[_0x553761(0x244)][_0x553761(0x242)](_0x57b0b2);!_0x38e0ee&&(_0x38e0ee=new ConversationManager(_0x57b0b2,this[_0x553761(0x246)]),this['conversationManagers']['set'](_0x57b0b2,_0x38e0ee));const _0x131380=await _0x38e0ee[_0x553761(0x23c)](_0x45c086),_0x18e051=await this[_0x553761(0x256)]?.[_0x553761(0x1c8)](_0x57b0b2);return _0x18e051&&(_0x18e051['currentModel']=_0x45c086,await this[_0x553761(0x256)][_0x553761(0x226)](_0x57b0b2)),this['logger']['info']('Agent\x20model\x20switched:\x20'+_0x57b0b2,{'newModel':_0x45c086,'messageCount':_0x131380['messages'][_0x553761(0x1c6)]}),{'success':!![],'agentId':_0x57b0b2,'newModel':_0x45c086,'conversation':_0x131380};}catch(_0x11ca32){this['logger'][_0x553761(0x1d0)](_0x553761(0x220)+_0x11ca32[_0x553761(0x214)],{'agentId':_0x57b0b2,'newModel':_0x45c086});throw _0x11ca32;}}[a0_0x3e0030(0x20e)](){const _0x1cc308=a0_0x3e0030,_0x55d96d={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS['ANTHROPIC_OPUS']]:{'provider':MODEL_PROVIDERS[_0x1cc308(0x1c7)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS[_0x1cc308(0x1c7)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x1cc308(0x1d7)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS[_0x1cc308(0x200)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x1cc308(0x233)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x1cc308(0x1ce)]]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x1cc308(0x24d),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x1cc308(0x24d),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x1cc308(0x24d),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x1cc308(0x24d),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x55d96d;}[a0_0x3e0030(0x241)](_0x4968b5,_0x503979,_0x5bc17f){const _0x4ca204=a0_0x3e0030,_0x128dcd=this['modelSpecs'][_0x503979]||{'provider':'AZURE'};let _0x3c9058;typeof _0x4968b5===_0x4ca204(0x208)?_0x3c9058=[{'role':'user','content':_0x4968b5}]:_0x3c9058=_0x4968b5[_0x4ca204(0x236)](_0xacaed3=>this[_0x4ca204(0x1ad)](_0xacaed3,_0x503979));switch(_0x128dcd[_0x4ca204(0x253)]){case MODEL_PROVIDERS['ANTHROPIC']:return this['_formatForAnthropic'](_0x3c9058);case MODEL_PROVIDERS[_0x4ca204(0x233)]:return this[_0x4ca204(0x1f6)](_0x3c9058);case MODEL_PROVIDERS['AZURE']:return this['_formatForAzure'](_0x3c9058);default:return _0x3c9058;}}['_formatSingleMessage'](_0x25db3e,_0x735bc2){const _0x20c6c7=a0_0x3e0030;return{'role':_0x25db3e[_0x20c6c7(0x22f)]||'user','content':_0x25db3e[_0x20c6c7(0x1b2)],'timestamp':_0x25db3e['timestamp']};}[a0_0x3e0030(0x21d)](_0x598753){return _0x598753['map'](_0x16694e=>{const _0x328e38=a0_0x170f;if(_0x16694e['role']===_0x328e38(0x227))return{'role':_0x328e38(0x1e4),'content':'System:\x20'+_0x16694e['content']};return _0x16694e;});}[a0_0x3e0030(0x1f6)](_0x510024){return _0x510024;}['_formatForAzure'](_0x4966a5){const _0x18a49c=a0_0x3e0030;return _0x4966a5[_0x18a49c(0x236)](_0x32aca3=>({..._0x32aca3,'content':typeof _0x32aca3[_0x18a49c(0x1b2)]===_0x18a49c(0x208)?_0x32aca3[_0x18a49c(0x1b2)]:JSON['stringify'](_0x32aca3['content'])}));}[a0_0x3e0030(0x251)](_0x1cc3ca){const _0x2f523a=a0_0x3e0030;this[_0x2f523a(0x246)]['debug']('Validating\x20model',{'model':_0x1cc3ca,'modelType':typeof _0x1cc3ca});if(this[_0x2f523a(0x1d8)][_0x1cc3ca]!==undefined)return!![];return this[_0x2f523a(0x246)]['warn']('Model\x20validation\x20failed',{'model':_0x1cc3ca,'availableModels':Object['keys'](this[_0x2f523a(0x1d8)])}),![];}async[a0_0x3e0030(0x24e)](_0x3efbca){return!![];}async[a0_0x3e0030(0x1c0)](_0x1db7aa,_0x3c2bfa){const _0xff12c3=a0_0x3e0030;return Math[_0xff12c3(0x1e8)](_0x1db7aa[_0xff12c3(0x1c6)]/0x4);}async[a0_0x3e0030(0x252)](_0x55e252,_0xca916c){const _0x160532=a0_0x3e0030,_0x4b21cd=_0xca916c*0x4;if(_0x55e252[_0x160532(0x1c6)]<=_0x4b21cd)return _0x55e252;return _0x55e252[_0x160532(0x235)](0x0,_0x4b21cd-0x14)+'\x0a...\x20[message\x20truncated]';}async['_summarizeMessages'](_0x607e8e,_0x4eca31){const _0x36558b=a0_0x3e0030,_0x1e782a=_0x607e8e['map'](_0x449706=>_0x449706[_0x36558b(0x22f)]+':\x20'+_0x449706[_0x36558b(0x1b2)])['join']('\x0a'),_0x29c76b=0x1f4;if(_0x1e782a['length']<=_0x29c76b)return _0x1e782a;return _0x1e782a['substring'](0x0,_0x29c76b)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x204ca0,_0x4d4769,_0xe8511a,_0xb1da53={}){const _0x4d5d1c=a0_0x3e0030,_0x4ee596='https://autopilot-api.azurewebsites.net/llm/chat';let _0x4eadd4,_0x2032cd=null,_0x5a0c43=null;this[_0x4d5d1c(0x246)]?.[_0x4d5d1c(0x21e)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x4d5d1c(0x1e5)],'sessionId':_0xb1da53['sessionId'],'hasSessionId':!!_0xb1da53[_0x4d5d1c(0x1d2)],'optionsKeys':Object[_0x4d5d1c(0x238)](_0xb1da53),'model':_0x4d4769['model']});if(this['apiKeyManager']&&_0xb1da53['sessionId']){const _0x181749=this[_0x4d5d1c(0x1e5)]['getKeysForRequest'](_0xb1da53['sessionId'],{'platformProvided':_0xb1da53[_0x4d5d1c(0x1e0)]||![],'vendor':this['_getVendorFromModel'](_0x4d4769[_0x4d5d1c(0x1ba)])});_0x2032cd=_0x181749['loxiaApiKey'],_0x5a0c43=_0x181749['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0xb1da53[_0x4d5d1c(0x1d2)],'hasLoxiaKey':!!_0x2032cd,'hasVendorKey':!!_0x5a0c43,'vendor':this['_getVendorFromModel'](_0x4d4769[_0x4d5d1c(0x1ba)])});}!_0x2032cd&&_0xb1da53[_0x4d5d1c(0x1b7)]&&(_0x2032cd=_0xb1da53[_0x4d5d1c(0x1b7)]);!_0x2032cd&&this[_0x4d5d1c(0x245)][_0x4d5d1c(0x1b7)]&&(_0x2032cd=this[_0x4d5d1c(0x245)]['apiKey']);if(!_0x2032cd)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x2ef7bc=_0x4d4769[_0x4d5d1c(0x1ba)],_0xe18460={'conversationId':_0xe8511a,'message':_0x4d4769[_0x4d5d1c(0x1e2)][_0x4d4769['messages']['length']-0x1]?.['content']||'','messages':_0x4d4769[_0x4d5d1c(0x1e2)],'model':_0x2ef7bc,'requestId':_0xe8511a,'options':_0x4d4769[_0x4d5d1c(0x243)]||{},'platformProvided':_0xb1da53[_0x4d5d1c(0x1e0)]||![]};_0x4d4769[_0x4d5d1c(0x227)]&&(_0xe18460['systemPrompt']=_0x4d4769['system']);_0xb1da53[_0x4d5d1c(0x1e0)]?_0xe18460[_0x4d5d1c(0x1b7)]=_0x2032cd:(_0x5a0c43&&(_0xe18460[_0x4d5d1c(0x205)]=_0x5a0c43),_0xb1da53['customApiKeys']&&(_0xe18460['customApiKeys']=_0xb1da53[_0x4d5d1c(0x1ff)]),_0xe18460[_0x4d5d1c(0x1b7)]=_0x2032cd);for(let _0x3f25dd=0x1;_0x3f25dd<=this[_0x4d5d1c(0x1af)];_0x3f25dd++){try{this['logger']['info'](_0x4d5d1c(0x1c4),{'url':_0x4ee596,'model':_0x4d4769[_0x4d5d1c(0x1ba)],'requestId':_0xe8511a,'attempt':_0x3f25dd,'hasApiKey':!!_0x2032cd});const _0x4eb289=await fetch(_0x4ee596,{'method':_0x4d5d1c(0x1ea),'headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x2032cd,'X-Request-ID':_0xe8511a},'body':JSON['stringify'](_0xe18460),'timeout':this[_0x4d5d1c(0x22d)]});if(!_0x4eb289['ok']){const _0x489b65=await _0x4eb289[_0x4d5d1c(0x1f2)](),_0x3beab0=new Error(_0x4d5d1c(0x1db)+_0x4eb289['status']+':\x20'+_0x4eb289[_0x4d5d1c(0x1c5)]+(_0x489b65?_0x4d5d1c(0x1eb)+_0x489b65:''));_0x3beab0[_0x4d5d1c(0x20c)]=_0x4eb289[_0x4d5d1c(0x20c)];throw _0x3beab0;}const _0x5efdfa=await _0x4eb289['json']();return{'choices':[{'message':{'content':_0x5efdfa[_0x4d5d1c(0x1b2)]||'','role':'assistant'},'finish_reason':_0x5efdfa[_0x4d5d1c(0x24c)]||_0x4d5d1c(0x1c3)}],'usage':_0x5efdfa[_0x4d5d1c(0x1d6)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x5efdfa['model']||_0x4d4769['model'],'id':_0x5efdfa[_0x4d5d1c(0x232)]||_0xe8511a};}catch(_0xb2371a){_0x4eadd4=_0xb2371a,this[_0x4d5d1c(0x246)][_0x4d5d1c(0x1e6)]('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x3f25dd,'requestId':_0xe8511a,'error':_0xb2371a[_0x4d5d1c(0x214)],'status':_0xb2371a[_0x4d5d1c(0x20c)]});if(_0x3f25dd<this[_0x4d5d1c(0x1af)]){const _0x4fcbe3=Math['pow'](0x2,_0x3f25dd)*0x3e8;this[_0x4d5d1c(0x246)][_0x4d5d1c(0x1e6)](_0x4d5d1c(0x202)+_0x4fcbe3+'ms',{'attempt':_0x3f25dd,'requestId':_0xe8511a}),await new Promise(_0x171b9e=>setTimeout(_0x171b9e,_0x4fcbe3));}}}this['logger'][_0x4d5d1c(0x1d0)](_0x4d5d1c(0x20f),{'requestId':_0xe8511a,'error':_0x4eadd4['message']});const _0x357b5d=_0x4eadd4['message']&&_0x4eadd4['message'][_0x4d5d1c(0x1fc)]('No\x20API\x20key\x20configured');if(_0x357b5d)throw new Error('API\x20Configuration\x20Error:\x20'+_0x4eadd4['message']);return{'choices':[{'message':{'content':_0x4d5d1c(0x223)+_0x4eadd4['message'],'role':_0x4d5d1c(0x1b8)},'finish_reason':_0x4d5d1c(0x1c3)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4d4769['model'],'id':'error-'+_0xe8511a,'error':_0x4eadd4['message']};}async[a0_0x3e0030(0x1de)](_0xcb5c22,_0x2f4b2f,_0x547c53={}){const _0x50ba4c=a0_0x3e0030,_0x48b211=_0x50ba4c(0x1ae);let _0x17c652,_0x442afc=null,_0x478c62=null;this[_0x50ba4c(0x246)]?.[_0x50ba4c(0x21e)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x50ba4c(0x1e5)],'sessionId':_0x547c53[_0x50ba4c(0x1d2)],'hasSessionId':!!_0x547c53[_0x50ba4c(0x1d2)],'model':_0xcb5c22[_0x50ba4c(0x1ba)]});if(this[_0x50ba4c(0x1e5)]&&_0x547c53['sessionId']){const _0x3aba49=this['apiKeyManager'][_0x50ba4c(0x21a)](_0x547c53['sessionId'],{'platformProvided':_0x547c53['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0xcb5c22['model'])});_0x442afc=_0x3aba49['loxiaApiKey'],_0x478c62=_0x3aba49['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x547c53[_0x50ba4c(0x1d2)],'hasLoxiaKey':!!_0x442afc,'hasVendorKey':!!_0x478c62});}!_0x442afc&&_0x547c53[_0x50ba4c(0x1b7)]&&(_0x442afc=_0x547c53['apiKey']);!_0x442afc&&this['config']['apiKey']&&(_0x442afc=this['config'][_0x50ba4c(0x1b7)]);if(!_0x442afc)throw new Error(_0x50ba4c(0x247));const _0x265971={'prompt':_0xcb5c22[_0x50ba4c(0x1f3)],'model':_0xcb5c22['model']||'azure-openai-dalle3','size':_0xcb5c22['size'],'quality':_0xcb5c22[_0x50ba4c(0x23e)],'style':_0xcb5c22[_0x50ba4c(0x1d9)]||_0x50ba4c(0x1e7),'n':_0xcb5c22['n']||0x1,'requestId':_0x2f4b2f};for(let _0x3073f2=0x1;_0x3073f2<=this['retryAttempts'];_0x3073f2++){try{this['logger']['info']('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0x48b211,'model':_0xcb5c22['model'],'requestId':_0x2f4b2f,'attempt':_0x3073f2,'hasApiKey':!!_0x442afc});const _0x256576=await fetch(_0x48b211,{'method':_0x50ba4c(0x1ea),'headers':{'Content-Type':'application/json','Authorization':_0x50ba4c(0x201)+_0x442afc,'X-Request-ID':_0x2f4b2f},'body':JSON[_0x50ba4c(0x1bf)](_0x265971),'timeout':this[_0x50ba4c(0x22d)]*0x2});if(!_0x256576['ok']){const _0x1db09a=await _0x256576[_0x50ba4c(0x1f2)](),_0x512c11=new Error(_0x50ba4c(0x1db)+_0x256576['status']+':\x20'+_0x256576['statusText']+(_0x1db09a?_0x50ba4c(0x1eb)+_0x1db09a:''));_0x512c11[_0x50ba4c(0x20c)]=_0x256576['status'];throw _0x512c11;}const _0x446893=await _0x256576[_0x50ba4c(0x221)]();return{'data':_0x446893[_0x50ba4c(0x234)]||[],'model':_0x446893[_0x50ba4c(0x1ba)]||_0xcb5c22[_0x50ba4c(0x1ba)],'created':_0x446893['created']||Date[_0x50ba4c(0x258)](),'usage':_0x446893['usage']};}catch(_0xe7ef70){_0x17c652=_0xe7ef70,this['logger']['warn'](_0x50ba4c(0x231),{'attempt':_0x3073f2,'requestId':_0x2f4b2f,'error':_0xe7ef70['message'],'status':_0xe7ef70[_0x50ba4c(0x20c)]});if(_0x3073f2<this['retryAttempts']){const _0x5efeb6=Math['pow'](0x2,_0x3073f2)*0x3e8;this[_0x50ba4c(0x246)][_0x50ba4c(0x1e6)]('Retrying\x20in\x20'+_0x5efeb6+'ms',{'attempt':_0x3073f2,'requestId':_0x2f4b2f}),await new Promise(_0xdb1cca=>setTimeout(_0xdb1cca,_0x5efeb6));}}}this['logger'][_0x50ba4c(0x1d0)](_0x50ba4c(0x207),{'requestId':_0x2f4b2f,'error':_0x17c652['message']});throw new Error(_0x50ba4c(0x1b5)+_0x17c652[_0x50ba4c(0x214)]);}async[a0_0x3e0030(0x1ec)](_0x22a694){await new Promise(_0xd0318e=>setTimeout(_0xd0318e,0x64));}async['_handleRateLimit'](_0x4ebb61){const _0x4c219b=0xea60;this['logger']['info']('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x4c219b+'ms',_0x4ebb61),await new Promise(_0x599b25=>setTimeout(_0x599b25,_0x4c219b));}async['_handleServiceUnavailable'](_0x543502){const _0x1b26b2=a0_0x3e0030;this[_0x1b26b2(0x1ee)]();const _0x37271a=0x7530;this['logger'][_0x1b26b2(0x21e)]('Service\x20unavailable,\x20waiting\x20'+_0x37271a+'ms',_0x543502),await new Promise(_0x20d217=>setTimeout(_0x20d217,_0x37271a));}['_isCircuitBreakerOpen'](){const _0x462339=a0_0x3e0030;if(!this[_0x462339(0x22e)]['isOpen'])return![];const _0x1bcc9c=Date[_0x462339(0x258)]()-this['circuitBreaker']['lastFailureTime'];if(_0x1bcc9c>this['circuitBreaker'][_0x462339(0x22d)])return this['circuitBreaker']['isOpen']=![],this['circuitBreaker']['failures']=0x0,![];return!![];}[a0_0x3e0030(0x1ee)](){const _0x2cb137=a0_0x3e0030;this[_0x2cb137(0x22e)]['failures']++,this[_0x2cb137(0x22e)]['lastFailureTime']=Date['now'](),this[_0x2cb137(0x22e)][_0x2cb137(0x217)]>=this[_0x2cb137(0x22e)][_0x2cb137(0x1cf)]&&(this['circuitBreaker'][_0x2cb137(0x1e9)]=!![],this['logger'][_0x2cb137(0x1e6)]('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}[a0_0x3e0030(0x1f8)](){const _0x50cd3c=a0_0x3e0030;this['circuitBreaker'][_0x50cd3c(0x217)]>0x0&&(this[_0x50cd3c(0x22e)]['failures']=0x0,this['circuitBreaker']['isOpen']=![],this[_0x50cd3c(0x246)][_0x50cd3c(0x21e)](_0x50cd3c(0x224)));}[a0_0x3e0030(0x204)](_0x47a8ad){const _0x209244=a0_0x3e0030;if(!_0x47a8ad)return null;const _0x394122=_0x47a8ad['toLowerCase']();if(_0x394122['includes']('anthropic')||_0x394122[_0x209244(0x1fc)]('claude'))return'anthropic';else{if(_0x394122['includes']('openai')||_0x394122[_0x209244(0x1fc)](_0x209244(0x21b)))return'openai';else{if(_0x394122['includes'](_0x209244(0x1fa)))return _0x209244(0x1fa);else{if(_0x394122['includes'](_0x209244(0x1dd)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x3744d1,_0x43ef5a){const _0x325e98=a0_0x3e0030;this['agentId']=_0x3744d1,this['logger']=_0x43ef5a,this[_0x325e98(0x1f0)]=new Map();}async['switchModel'](_0x1aee09){return{'messages':[],'model':_0x1aee09,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
|
|
1
|
+
function a0_0x395b(_0xd463f3,_0x31858c){_0xd463f3=_0xd463f3-0x186;const _0x57cdf3=a0_0x57cd();let _0x395bb0=_0x57cdf3[_0xd463f3];if(a0_0x395b['prpdWG']===undefined){var _0x2a4eeb=function(_0x26c0a7){const _0x6f666a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d2624='',_0x562cd0='';for(let _0x2ff4b1=0x0,_0x223766,_0x413367,_0x493830=0x0;_0x413367=_0x26c0a7['charAt'](_0x493830++);~_0x413367&&(_0x223766=_0x2ff4b1%0x4?_0x223766*0x40+_0x413367:_0x413367,_0x2ff4b1++%0x4)?_0x2d2624+=String['fromCharCode'](0xff&_0x223766>>(-0x2*_0x2ff4b1&0x6)):0x0){_0x413367=_0x6f666a['indexOf'](_0x413367);}for(let _0x2aa0ab=0x0,_0x49614a=_0x2d2624['length'];_0x2aa0ab<_0x49614a;_0x2aa0ab++){_0x562cd0+='%'+('00'+_0x2d2624['charCodeAt'](_0x2aa0ab)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x562cd0);};a0_0x395b['YTaYpJ']=_0x2a4eeb,a0_0x395b['GfNAiA']={},a0_0x395b['prpdWG']=!![];}const _0x6e7d5b=_0x57cdf3[0x0],_0x3fe05a=_0xd463f3+_0x6e7d5b,_0x38aedd=a0_0x395b['GfNAiA'][_0x3fe05a];return!_0x38aedd?(_0x395bb0=a0_0x395b['YTaYpJ'](_0x395bb0),a0_0x395b['GfNAiA'][_0x3fe05a]=_0x395bb0):_0x395bb0=_0x38aedd,_0x395bb0;}const a0_0x2b0c53=a0_0x395b;(function(_0x2a313f,_0x16a8ef){const _0x3f1933=a0_0x395b,_0x334fa9=_0x2a313f();while(!![]){try{const _0x1aaa4f=-parseInt(_0x3f1933(0x1f8))/0x1+parseInt(_0x3f1933(0x21a))/0x2+parseInt(_0x3f1933(0x1d0))/0x3*(-parseInt(_0x3f1933(0x230))/0x4)+parseInt(_0x3f1933(0x1ee))/0x5*(parseInt(_0x3f1933(0x220))/0x6)+-parseInt(_0x3f1933(0x1ea))/0x7+-parseInt(_0x3f1933(0x1b4))/0x8+-parseInt(_0x3f1933(0x1d1))/0x9*(-parseInt(_0x3f1933(0x22c))/0xa);if(_0x1aaa4f===_0x16a8ef)break;else _0x334fa9['push'](_0x334fa9['shift']());}catch(_0x5577d4){_0x334fa9['push'](_0x334fa9['shift']());}}}(a0_0x57cd,0xc6c55));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x57cd(){const _0x1b06a1=['yxbWBgLJyxrPB24VANnVBG','C3rHy2S','DgvTCgvYyxr1CMu','yMfZzvvYBa','x2zVCM1HDezVCKf6DxjL','Aw5MBW','qu5usfjpueLd','y29UDgvUDa','Dg90ywXFDg9Rzw5Z','x2nOzwnRtw9KzwXizwfSDgG','Bw9KzwXtCgvJCW','CMv2zxjZzq','x2zVCM1HDezVCKfUDgHYB3bPyW','C3rYzwfT','vu5bvvrit1jjwKve','yMfJA2vUza','l2HLywX0Aa','C3DPDgnOtw9KzwW','Aw1Hz2vZ','revfufnfruTFuJe','DgLTzw91Da','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','ywDLBNrqB29S','ue9tva','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','Bwf4vg9Rzw5Z','C3bLzwq','Aw1Nlq','C3vIC3rY','x3jLy29YzezHAwX1CMu','mta2nZmWmdHttw5qtLO','x21HA2vbueLszxf1zxn0','CgvYC2LZDefNzw50u3rHDgu','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','Bg94AwfbCgLlzxK','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','B3bLBMfP','l2nOyxqVy29TCgXLDgLVBNm','C3rYAw5NAwz5','u2vYDMLJzsb1BMf2ywLSywjSzsWGD2fPDgLUzYa','CgHP','y3vZDg9TqxbPs2v5CW','C2vZC2LVBKLK','t1bftKfj','ywDLBNrjza','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','rKfmtejbq0S','y2XHC3nPzNLfCNjVCG','Dw5ZAgLMDa','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','DxnHz2u','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','z2v0s2v5C0zVCLjLCxvLC3q','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','Dgv4Da','ChvZAa','oxvPzhfbsa','mZu3ntqZwhv4q2vS','C3rHDhvZ','zxn0Aw1HDgvKvg9Rzw5Z','AM9PBG','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','qu5usfjpueLdx09qvvm','y2vPBa','Bg9Nz2vY','Aw5JBhvKzxm','BwfW','C3rVCa','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','y2HVAwnLCW','yxnZAxn0yw50','quKGC2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzq','x2zVCM1HDfnPBMDSzu1LC3nHz2u','zxjYB3jiyw5KBgvY','DxjS','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','BgvUz3rO','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','ChjVDMLKzxi','qu5usfjpueLdx0HbsuTv','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','r0furvDbwv9usu1ft1vu','mZa1ntG1n0ztEev0ta','C2vUze1LC3nHz2u','C2v0qwDLBNrqB29S','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','mtqXndq1CuvZBxDq','x2LZvMfSAwrnB2rLBa','yNvKz2v0u2vYDMLJzq','zxjYB3iT','qvPvuKu','x2zVCM1HDezVCK9Wzw5bsq','sfruuca','C2L6zq','sw52ywXPzcbYzxf1zxn0oIa','CMvXDwvZDeLK','mte5odK2nxLLwg1ABW','x2DLDfzLBMrVCKzYB21nB2rLBa','qMvHCMvYia','C3rHBMrHCMq','yw50AhjVCgLJ','CM9Szq','D2fYBG','C3DPDgnOqwDLBNrnB2rLBa','Dg9ju09tDhjPBMC','BM93','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','qMfKihjLCxvLC3qGDg8GquKGC2vYDMLJzq','yxP1CMuTB3bLBMfPlwrHBgXLmW','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','qxv0AgvUDgLJyxrPB24GzMfPBgvKic0Gy2HLy2SGqvbjignYzwrLBNrPywXZ','yxbPs2v5twfUywDLCG','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','zMfPBhvYzxm','C3rYAw5N','BwvZC2fNzxm','Ahr0Chm6lY9HCgKUBg94AweUywK','C3LZDgvT','BwvZC2fNzq','x3rYDw5JyxrLtwvZC2fNzq','ve9px01btLLFuKvrvuvtvfm','zgvIDwC','y29UzMLN','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','DhjHy2TvC2fNzq','DxnLCG','y29UDMvYC2f0Aw9UCW','C3rHDhvZvgv4Da','ChjVBxb0','z3b0','nde5ogLlzMLhsG','zgvLChnLzwS','Bw9KzwW','ic0G','y29UDMvYC2f0Aw9UtwfUywDLCNm','ANnVBG','mZblsgLhzMO','rK9sqKLerevo','yxbPs2v5','x2LZq2LYy3vPDejYzwfRzxjpCgvU','zMX1Ec0XlJeTChjV','CMvZCg9UC2vgB3jTyxq','CMfUzg9T','CMv0CNLbDhrLBxb0CW','z2v0qwDLBNq','C3vIC3rYAw5N','y2LYy3vPDejYzwfRzxi','uMv0CNLPBMCGAw4G','mti2mhbhz2HNrq','B3b0Aw9UCW','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','qKfex1jfuvvfu1q','mtGYmdq1mMrgsu90AG','DMvUzg9YqxbPs2v5','C3LZDgvTuhjVBxb0','su5urvjoquXFu0vsvKvsx0vsuK9s','x2vZDgLTyxrLvg9Rzw5Z','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','AgfUzgXLshr0CevYCM9Y','AxnpCgvU','zgf0yq','x3n1Bw1HCML6zu1LC3nHz2vZ','CgXHDgzVCM1qCM92AwrLza','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','AgvHBhrOEq','zxjYB3i','BgfZDezHAwX1CMvuAw1L','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','yJy0x2PZB24','x2HHBMrSzvjHDgvmAw1PDa','x3jLC2v0q2LYy3vPDejYzwfRzxi','C3vTBwfYEq'];a0_0x57cd=function(){return _0x1b06a1;};return a0_0x57cd();}class AIService{constructor(_0x2d2624,_0x562cd0,_0x2ff4b1,_0x223766){const _0xad2375=a0_0x395b;this[_0xad2375(0x212)]=_0x2d2624,this[_0xad2375(0x1d8)]=_0x562cd0,this['budgetService']=_0x2ff4b1,this['errorHandler']=_0x223766,this[_0xad2375(0x199)]=_0x2d2624['backend']?.[_0xad2375(0x199)]||_0xad2375(0x20c),this[_0xad2375(0x1aa)]=_0x2d2624[_0xad2375(0x1a5)]?.[_0xad2375(0x1aa)]||0xea60,this[_0xad2375(0x227)]=_0x2d2624[_0xad2375(0x1a5)]?.['retryAttempts']||0x3,this['rateLimiters']=new Map(),this['requestQueue']=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0xad2375(0x1d5)](),this[_0xad2375(0x21e)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async[a0_0x2b0c53(0x1eb)](_0x413367,_0x493830,_0x2aa0ab={}){const _0x3ae6af=a0_0x2b0c53,_0x49614a='req-'+Date[_0x3ae6af(0x201)]()+'-'+Math[_0x3ae6af(0x226)]()['toString'](0x24)[_0x3ae6af(0x1b2)](0x2,0x9);try{if(this[_0x3ae6af(0x223)]())throw new Error(_0x3ae6af(0x1ae));await this['_checkRateLimit'](_0x413367);const _0x578fef=this['_formatMessagesForModel'](_0x493830,_0x413367,_0x2aa0ab),_0x67ecd1={'model':_0x413367,'messages':_0x578fef,'options':{'max_tokens':this[_0x3ae6af(0x1a0)][_0x413367]?.[_0x3ae6af(0x1af)]||0xfa0,'temperature':_0x2aa0ab[_0x3ae6af(0x198)]||0.7,'stream':_0x2aa0ab[_0x3ae6af(0x1a3)]||![]},'metadata':{'requestId':_0x49614a,'agentId':_0x2aa0ab[_0x3ae6af(0x1c4)],'timestamp':new Date()[_0x3ae6af(0x200)]()}};_0x2aa0ab[_0x3ae6af(0x232)]&&(_0x67ecd1['system']=_0x2aa0ab['systemPrompt']);this['logger'][_0x3ae6af(0x19b)](_0x3ae6af(0x1cb)+_0x413367,{'requestId':_0x49614a,'agentId':_0x2aa0ab['agentId'],'messageCount':Array['isArray'](_0x493830)?_0x493830['length']:0x1,'maxTokens':_0x67ecd1['max_tokens']});const _0x554a60=await this['_makeAPIRequest'](_0x3ae6af(0x1bd),_0x67ecd1,_0x49614a,{..._0x2aa0ab,'sessionId':_0x2aa0ab['sessionId'],'platformProvided':_0x2aa0ab[_0x3ae6af(0x18c)]||![]});return _0x554a60['usage']&&await this[_0x3ae6af(0x214)](_0x2aa0ab[_0x3ae6af(0x1c4)],_0x413367,{'prompt_tokens':_0x554a60['usage']['prompt_tokens']||0x0,'completion_tokens':_0x554a60['usage']['completion_tokens']||0x0,'total_tokens':_0x554a60['usage'][_0x3ae6af(0x19e)]||0x0}),this[_0x3ae6af(0x194)](),{'content':_0x554a60[_0x3ae6af(0x1dd)][0x0]?.[_0x3ae6af(0x20e)]?.[_0x3ae6af(0x19d)]||'','model':_0x554a60['model'],'tokenUsage':_0x554a60[_0x3ae6af(0x1ca)],'requestId':_0x49614a,'finishReason':_0x554a60[_0x3ae6af(0x1dd)][0x0]?.['finish_reason']};}catch(_0x2f6346){this[_0x3ae6af(0x1b3)](),this[_0x3ae6af(0x1d8)]['error'](_0x3ae6af(0x22e)+_0x2f6346['message'],{'requestId':_0x49614a,'model':_0x413367,'agentId':_0x2aa0ab['agentId'],'error':_0x2f6346['stack']}),await this[_0x3ae6af(0x188)](_0x2f6346,{'requestId':_0x49614a,'model':_0x413367,'agentId':_0x2aa0ab['agentId']});throw _0x2f6346;}}async['routeModel'](_0x9cdfaf,_0x13b87b={}){const _0x129b86=a0_0x2b0c53;try{const _0x518bc8=MODEL_ROUTING[_0x9cdfaf['toUpperCase']()]||MODEL_ROUTING[_0x129b86(0x1c6)],_0x1ad857=[];for(const _0x59ac0e of _0x518bc8){const _0x6e0860=await this[_0x129b86(0x19f)](_0x59ac0e);_0x6e0860&&_0x1ad857[_0x129b86(0x1cf)](_0x59ac0e);}if(_0x1ad857[_0x129b86(0x1e4)]===0x0)return this[_0x129b86(0x1d8)][_0x129b86(0x1fe)](_0x129b86(0x191)+_0x9cdfaf+',\x20using\x20fallback'),MODEL_ROUTING[_0x129b86(0x1c6)][0x0];let _0x2b1b8c=_0x1ad857[0x0];if(_0x13b87b['preferredModel']&&_0x1ad857['includes'](_0x13b87b['preferredModel']))_0x2b1b8c=_0x13b87b['preferredModel'];else{if(_0x13b87b['complexity']==='high'&&_0x1ad857[_0x129b86(0x1d9)](MODELS['ANTHROPIC_OPUS']))_0x2b1b8c=MODELS['ANTHROPIC_OPUS'];else _0x13b87b[_0x129b86(0x1b0)]==='fast'&&_0x1ad857[_0x129b86(0x1d9)](MODELS['ANTHROPIC_HAIKU'])&&(_0x2b1b8c=MODELS['ANTHROPIC_HAIKU']);}return this[_0x129b86(0x1d8)][_0x129b86(0x19b)]('Model\x20routed\x20for\x20task:\x20'+_0x9cdfaf,{'selectedModel':_0x2b1b8c,'availableModels':_0x1ad857[_0x129b86(0x1e4)],'context':_0x13b87b}),_0x2b1b8c;}catch(_0x4292b1){return this[_0x129b86(0x1d8)]['error'](_0x129b86(0x1c5)+_0x4292b1['message'],{'task':_0x9cdfaf,'context':_0x13b87b}),MODEL_ROUTING[_0x129b86(0x1c6)][0x0];}}async['compactizeConversation'](_0x3ecae5,_0x4fe3b2){const _0x28dc1c=a0_0x2b0c53,_0x53d220=this[_0x28dc1c(0x1a0)][_0x4fe3b2];if(!_0x53d220)throw new Error('Unknown\x20model:\x20'+_0x4fe3b2);const _0x43d778=_0x53d220['contextWindow']*0.8;let _0x1bf541=0x0;const _0x110b98=[],_0x4fd6ba=await Promise['all'](_0x3ecae5['map'](async _0x57823e=>({..._0x57823e,'estimatedTokens':await this['_estimateTokens'](_0x57823e['content'],_0x4fe3b2)}))),_0x2efd73=[..._0x4fd6ba][_0x28dc1c(0x1a1)]();for(const _0x1fa472 of _0x2efd73){if(_0x1bf541+_0x1fa472[_0x28dc1c(0x1d3)]>_0x43d778){if(_0x110b98[_0x28dc1c(0x1e4)]===0x0){const _0x1f2757=await this[_0x28dc1c(0x20f)](_0x1fa472[_0x28dc1c(0x19d)],_0x43d778);_0x110b98[_0x28dc1c(0x1c8)]({..._0x1fa472,'content':_0x1f2757,'estimatedTokens':_0x43d778});}break;}_0x110b98['unshift'](_0x1fa472),_0x1bf541+=_0x1fa472['estimatedTokens'];}const _0x2d132c=_0x4fd6ba['slice'](0x0,-_0x110b98['length']);if(_0x2d132c['length']>0x0){const _0x1f0ec7=await this['_summarizeMessages'](_0x2d132c,_0x4fe3b2);_0x110b98['unshift']({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x1f0ec7,'timestamp':_0x2d132c[0x0]['timestamp'],'type':_0x28dc1c(0x195),'estimatedTokens':await this['_estimateTokens'](_0x1f0ec7,_0x4fe3b2)});}return this[_0x28dc1c(0x1d8)]['info'](_0x28dc1c(0x1dc)+_0x4fe3b2,{'originalMessages':_0x3ecae5[_0x28dc1c(0x1e4)],'compactizedMessages':_0x110b98['length'],'estimatedTokens':_0x1bf541,'maxTokens':_0x43d778}),_0x110b98;}async['trackUsage'](_0x1e192c,_0x4fe2fe,_0x1d7158,_0x571c49){const _0x5448d4=a0_0x2b0c53;try{this[_0x5448d4(0x1f0)]&&this[_0x5448d4(0x1f0)]['trackUsage'](_0x1e192c,_0x4fe2fe,_0x1d7158);}catch(_0x508d9f){this['logger'][_0x5448d4(0x18f)](_0x5448d4(0x1e5)+_0x508d9f['message']);}}async[a0_0x2b0c53(0x188)](_0x124b96,_0x3bf7a9){const _0x886c11=a0_0x2b0c53,_0x4290bd=this[_0x886c11(0x1e1)]?.[_0x886c11(0x1c7)]?.(_0x124b96,_0x3bf7a9);switch(_0x124b96['status']||_0x124b96['code']){case HTTP_STATUS[_0x886c11(0x22f)]:this[_0x886c11(0x1d8)]['error'](_0x886c11(0x203),{'context':_0x3bf7a9,'error':_0x124b96['message']});throw new Error(_0x886c11(0x1f6)+_0x124b96[_0x886c11(0x20e)]);case HTTP_STATUS[_0x886c11(0x1a4)]:this[_0x886c11(0x1d8)]['error']('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x3bf7a9});throw new Error(_0x886c11(0x206));case HTTP_STATUS[_0x886c11(0x221)]:this['logger']['error'](_0x886c11(0x1b7),{'context':_0x3bf7a9});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS['NOT_FOUND']:this[_0x886c11(0x1d8)][_0x886c11(0x18f)](_0x886c11(0x18d),{'context':_0x3bf7a9});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS[_0x886c11(0x210)]:this['logger']['warn']('Rate\x20limit\x20exceeded',{'context':_0x3bf7a9}),await this[_0x886c11(0x193)](_0x3bf7a9);throw new Error(_0x886c11(0x1c9));case HTTP_STATUS[_0x886c11(0x233)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x886c11(0x1e9)]:this[_0x886c11(0x1d8)]['error'](_0x886c11(0x1ba),{'context':_0x3bf7a9,'status':_0x124b96['status']}),await this['_handleServiceUnavailable'](_0x3bf7a9);throw new Error(_0x886c11(0x1df));default:this[_0x886c11(0x1d8)]['error']('Unknown\x20AI\x20service\x20error',{'context':_0x3bf7a9,'error':_0x124b96['message']});throw new Error('AI\x20service\x20error:\x20'+_0x124b96[_0x886c11(0x20e)]);}}['setApiKeyManager'](_0x603c5e){const _0xf33d79=a0_0x2b0c53;this['apiKeyManager']=_0x603c5e,this[_0xf33d79(0x1d8)]?.[_0xf33d79(0x19b)]('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x603c5e});}[a0_0x2b0c53(0x1ec)](_0x36b22c){const _0x331162=a0_0x2b0c53;this['agentPool']=_0x36b22c,this['logger']?.[_0x331162(0x19b)](_0x331162(0x1b8),{'hasAgentPool':!!_0x36b22c});}async['generateImage'](_0x297eb1,_0x404ee9={}){const _0xbe35c0=a0_0x2b0c53,_0x43e581=_0xbe35c0(0x1b1)+Date['now']()+'-'+Math['random']()['toString'](0x24)[_0xbe35c0(0x1b2)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0xbe35c0(0x1ae));if(!_0x297eb1||typeof _0x297eb1!==_0xbe35c0(0x20a)||_0x297eb1['trim']()[_0xbe35c0(0x1e4)]===0x0)throw new Error(_0xbe35c0(0x208));const _0x1b79d3=_0x404ee9['model']||_0xbe35c0(0x224),_0x4bfad3=_0x404ee9['size']||'1024x1024',_0x38a950=_0x404ee9['quality']||_0xbe35c0(0x1fb),_0x32d175=_0x404ee9[_0xbe35c0(0x225)]||'url';this[_0xbe35c0(0x1d8)]['info']('Generating\x20image\x20with\x20model:\x20'+_0x1b79d3,{'requestId':_0x43e581,'model':_0x1b79d3,'size':_0x4bfad3,'quality':_0x38a950,'promptLength':_0x297eb1[_0xbe35c0(0x1e4)]});const _0x28a89a={'prompt':_0x297eb1,'model':_0x1b79d3,'size':_0x4bfad3,'quality':_0x38a950,'response_format':_0x32d175,'n':0x1,'metadata':{'requestId':_0x43e581,'timestamp':new Date()['toISOString']()}},_0x3e2306=await this['_makeImageAPIRequest'](_0x28a89a,_0x43e581,{'sessionId':_0x404ee9[_0xbe35c0(0x1c2)],'platformProvided':_0x404ee9[_0xbe35c0(0x18c)]||![]});return this['_resetCircuitBreaker'](),{'url':_0x3e2306['data']?.[0x0]?.[_0xbe35c0(0x1e2)]||null,'b64_json':_0x3e2306[_0xbe35c0(0x18a)]?.[0x0]?.[_0xbe35c0(0x192)]||null,'model':_0x3e2306['model']||_0x1b79d3,'requestId':_0x43e581,'revisedPrompt':_0x3e2306['data']?.[0x0]?.['revised_prompt']||_0x297eb1};}catch(_0xd063e0){this['_recordFailure'](),this[_0xbe35c0(0x1d8)][_0xbe35c0(0x18f)](_0xbe35c0(0x213)+_0xd063e0['message'],{'requestId':_0x43e581,'model':_0x404ee9['model'],'error':_0xd063e0[_0xbe35c0(0x197)]});throw _0xd063e0;}}async['checkServiceHealth'](){const _0x297990=a0_0x2b0c53;try{const _0x3a229a=await this[_0x297990(0x1b5)](_0x297990(0x1a6),{},'health-check');return _0x3a229a['status']===_0x297990(0x18e);}catch(_0x1bcb37){return![];}}async[a0_0x2b0c53(0x1ff)](_0x2e61c5,_0x4e0bf8){const _0x17ee45=a0_0x2b0c53;try{if(!this['_isValidModel'](_0x4e0bf8))throw new Error('Invalid\x20model:\x20'+_0x4e0bf8);let _0x10dd80=this[_0x17ee45(0x21e)]['get'](_0x2e61c5);!_0x10dd80&&(_0x10dd80=new ConversationManager(_0x2e61c5,this['logger']),this['conversationManagers']['set'](_0x2e61c5,_0x10dd80));const _0x434e1a=await _0x10dd80['switchModel'](_0x4e0bf8),_0x4c1946=await this[_0x17ee45(0x1ac)]?.[_0x17ee45(0x228)](_0x2e61c5);return _0x4c1946&&(_0x4c1946['currentModel']=_0x4e0bf8,await this['agentPool'][_0x17ee45(0x1b6)](_0x2e61c5)),this['logger']['info'](_0x17ee45(0x202)+_0x2e61c5,{'newModel':_0x4e0bf8,'messageCount':_0x434e1a['messages']['length']}),{'success':!![],'agentId':_0x2e61c5,'newModel':_0x4e0bf8,'conversation':_0x434e1a};}catch(_0x3fd18c){this[_0x17ee45(0x1d8)][_0x17ee45(0x18f)]('Model\x20switch\x20failed:\x20'+_0x3fd18c[_0x17ee45(0x20e)],{'agentId':_0x2e61c5,'newModel':_0x4e0bf8});throw _0x3fd18c;}}[a0_0x2b0c53(0x1d5)](){const _0x14f214=a0_0x2b0c53,_0x5a330d={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x14f214(0x19c)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x14f214(0x1d6)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x14f214(0x1e7)]]:{'provider':MODEL_PROVIDERS[_0x14f214(0x19c)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS[_0x14f214(0x1c3)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x14f214(0x1a9)]]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x14f214(0x1f2),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x14f214(0x1f2),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x14f214(0x1f2),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x14f214(0x1f2),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x14f214(0x1f2),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x5a330d;}['_formatMessagesForModel'](_0x4b3466,_0x3d48ed,_0x531928){const _0x50c9ad=a0_0x2b0c53,_0x41e83c=this['modelSpecs'][_0x3d48ed]||{'provider':_0x50c9ad(0x1f2)};let _0x573728;typeof _0x4b3466==='string'?_0x573728=[{'role':_0x50c9ad(0x215),'content':_0x4b3466}]:_0x573728=_0x4b3466['map'](_0xe4389a=>this[_0x50c9ad(0x1e0)](_0xe4389a,_0x3d48ed));switch(_0x41e83c[_0x50c9ad(0x1e6)]){case MODEL_PROVIDERS[_0x50c9ad(0x19c)]:return this[_0x50c9ad(0x1a2)](_0x573728);case MODEL_PROVIDERS[_0x50c9ad(0x1c3)]:return this[_0x50c9ad(0x1f3)](_0x573728);case MODEL_PROVIDERS[_0x50c9ad(0x1f2)]:return this[_0x50c9ad(0x19a)](_0x573728);default:return _0x573728;}}[a0_0x2b0c53(0x1e0)](_0x3f6544,_0x17ec3b){return{'role':_0x3f6544['role']||'user','content':_0x3f6544['content'],'timestamp':_0x3f6544['timestamp']};}[a0_0x2b0c53(0x1a2)](_0x2f41db){const _0x23a10d=a0_0x2b0c53;return _0x2f41db[_0x23a10d(0x1da)](_0x22c8f7=>{const _0x3b6816=_0x23a10d;if(_0x22c8f7[_0x3b6816(0x1fd)]===_0x3b6816(0x20d))return{'role':_0x3b6816(0x215),'content':'System:\x20'+_0x22c8f7[_0x3b6816(0x19d)]};return _0x22c8f7;});}['_formatForOpenAI'](_0x204076){return _0x204076;}[a0_0x2b0c53(0x19a)](_0x4a560a){const _0x5f32cd=a0_0x2b0c53;return _0x4a560a[_0x5f32cd(0x1da)](_0x11ff67=>({..._0x11ff67,'content':typeof _0x11ff67['content']==='string'?_0x11ff67[_0x5f32cd(0x19d)]:JSON['stringify'](_0x11ff67[_0x5f32cd(0x19d)])}));}[a0_0x2b0c53(0x1ef)](_0x48dd2d){const _0x527109=a0_0x2b0c53;this['logger'][_0x527109(0x211)]('Validating\x20model',{'model':_0x48dd2d,'modelType':typeof _0x48dd2d});if(this[_0x527109(0x1a0)][_0x48dd2d]!==undefined)return!![];return this[_0x527109(0x1d8)][_0x527109(0x1fe)](_0x527109(0x186),{'model':_0x48dd2d,'availableModels':Object['keys'](this[_0x527109(0x1a0)])}),![];}async['_checkModelHealth'](_0x2024dd){return!![];}async[a0_0x2b0c53(0x234)](_0xd1aa25,_0x34e8c0){const _0x259e08=a0_0x2b0c53;return Math[_0x259e08(0x1d7)](_0xd1aa25[_0x259e08(0x1e4)]/0x4);}async[a0_0x2b0c53(0x20f)](_0x438d4d,_0xa751dd){const _0x2cea33=a0_0x2b0c53,_0x306519=_0xa751dd*0x4;if(_0x438d4d['length']<=_0x306519)return _0x438d4d;return _0x438d4d[_0x2cea33(0x229)](0x0,_0x306519-0x14)+'\x0a...\x20[message\x20truncated]';}async[a0_0x2b0c53(0x18b)](_0x5ee8bb,_0x3c8676){const _0x3cdc68=a0_0x2b0c53,_0x10c69f=_0x5ee8bb[_0x3cdc68(0x1da)](_0x1d71ff=>_0x1d71ff['role']+':\x20'+_0x1d71ff['content'])[_0x3cdc68(0x1d4)]('\x0a'),_0x16cbb4=0x1f4;if(_0x10c69f['length']<=_0x16cbb4)return _0x10c69f;return _0x10c69f['substring'](0x0,_0x16cbb4)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x37ce9b,_0x143756,_0x313d49,_0x405438={}){const _0x21cad1=a0_0x2b0c53,_0x3d8fcb='https://autopilot-api.azurewebsites.net/llm/chat';let _0x5b8a8b,_0x5e8352=null,_0x43a260=null;this[_0x21cad1(0x1d8)]?.[_0x21cad1(0x19b)](_0x21cad1(0x1bb),{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x405438['sessionId'],'hasSessionId':!!_0x405438['sessionId'],'optionsKeys':Object['keys'](_0x405438),'model':_0x143756['model']});if(this[_0x21cad1(0x207)]&&_0x405438['sessionId']){const _0x2a240a=this[_0x21cad1(0x207)]['getKeysForRequest'](_0x405438['sessionId'],{'platformProvided':_0x405438[_0x21cad1(0x18c)]||![],'vendor':this[_0x21cad1(0x1f9)](_0x143756[_0x21cad1(0x21c)])});_0x5e8352=_0x2a240a[_0x21cad1(0x1b9)],_0x43a260=_0x2a240a['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x405438[_0x21cad1(0x1c2)],'hasLoxiaKey':!!_0x5e8352,'hasVendorKey':!!_0x43a260,'vendor':this['_getVendorFromModel'](_0x143756[_0x21cad1(0x21c)])});}!_0x5e8352&&_0x405438['apiKey']&&(_0x5e8352=_0x405438['apiKey']);!_0x5e8352&&this[_0x21cad1(0x212)][_0x21cad1(0x222)]&&(_0x5e8352=this[_0x21cad1(0x212)]['apiKey']);if(!_0x5e8352)throw new Error(_0x21cad1(0x1e8));const _0x5c0e7c=_0x143756['model'],_0x414f66={'conversationId':_0x313d49,'message':_0x143756[_0x21cad1(0x20b)][_0x143756[_0x21cad1(0x20b)][_0x21cad1(0x1e4)]-0x1]?.['content']||'','messages':_0x143756['messages'],'model':_0x5c0e7c,'requestId':_0x313d49,'options':_0x143756[_0x21cad1(0x22d)]||{},'platformProvided':_0x405438[_0x21cad1(0x18c)]||![]};_0x143756['system']&&(_0x414f66[_0x21cad1(0x232)]=_0x143756[_0x21cad1(0x20d)]);_0x405438['platformProvided']?_0x414f66['apiKey']=_0x5e8352:(_0x43a260&&(_0x414f66[_0x21cad1(0x231)]=_0x43a260),_0x405438['customApiKeys']&&(_0x414f66[_0x21cad1(0x1c1)]=_0x405438['customApiKeys']),_0x414f66[_0x21cad1(0x222)]=_0x5e8352);for(let _0x3cba79=0x1;_0x3cba79<=this[_0x21cad1(0x227)];_0x3cba79++){try{this[_0x21cad1(0x1d8)]['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x3d8fcb,'model':_0x143756[_0x21cad1(0x21c)],'requestId':_0x313d49,'attempt':_0x3cba79,'hasApiKey':!!_0x5e8352});const _0x17f510=await fetch(_0x3d8fcb,{'method':'POST','headers':{'Content-Type':_0x21cad1(0x196),'Authorization':_0x21cad1(0x1fa)+_0x5e8352,'X-Request-ID':_0x313d49},'body':JSON[_0x21cad1(0x1be)](_0x414f66),'timeout':this[_0x21cad1(0x1aa)]});if(!_0x17f510['ok']){const _0x50ff5b=await _0x17f510[_0x21cad1(0x1ce)](),_0x3a1490=new Error(_0x21cad1(0x1f4)+_0x17f510[_0x21cad1(0x1d2)]+':\x20'+_0x17f510['statusText']+(_0x50ff5b?_0x21cad1(0x21d)+_0x50ff5b:''));_0x3a1490[_0x21cad1(0x1d2)]=_0x17f510['status'];throw _0x3a1490;}const _0x3387e9=await _0x17f510[_0x21cad1(0x21f)]();return{'choices':[{'message':{'content':_0x3387e9['content']||'','role':'assistant'},'finish_reason':_0x3387e9['finishReason']||_0x21cad1(0x1db)}],'usage':_0x3387e9[_0x21cad1(0x1ca)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x3387e9['model']||_0x143756[_0x21cad1(0x21c)],'id':_0x3387e9[_0x21cad1(0x1f7)]||_0x313d49};}catch(_0x4d46de){_0x5b8a8b=_0x4d46de,this[_0x21cad1(0x1d8)]['warn'](_0x21cad1(0x1ab),{'attempt':_0x3cba79,'requestId':_0x313d49,'error':_0x4d46de['message'],'status':_0x4d46de[_0x21cad1(0x1d2)]});if(_0x3cba79<this[_0x21cad1(0x227)]){const _0x31411e=Math['pow'](0x2,_0x3cba79)*0x3e8;this[_0x21cad1(0x1d8)][_0x21cad1(0x1fe)]('Retrying\x20in\x20'+_0x31411e+'ms',{'attempt':_0x3cba79,'requestId':_0x313d49}),await new Promise(_0x2c0c8c=>setTimeout(_0x2c0c8c,_0x31411e));}}}this[_0x21cad1(0x1d8)][_0x21cad1(0x18f)](_0x21cad1(0x1cd),{'requestId':_0x313d49,'error':_0x5b8a8b[_0x21cad1(0x20e)]});const _0x5da23e=_0x5b8a8b[_0x21cad1(0x20e)]&&_0x5b8a8b['message']['includes']('No\x20API\x20key\x20configured');if(_0x5da23e)throw new Error('API\x20Configuration\x20Error:\x20'+_0x5b8a8b[_0x21cad1(0x20e)]);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x5b8a8b[_0x21cad1(0x20e)],'role':_0x21cad1(0x1de)},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x143756['model'],'id':_0x21cad1(0x1f1)+_0x313d49,'error':_0x5b8a8b['message']};}async['_makeImageAPIRequest'](_0x5c3fc7,_0x65e87d,_0x1521b1={}){const _0x4c1f33=a0_0x2b0c53,_0x14d16d='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x5b7097,_0x1915dd=null,_0x1ce033=null;this['logger']?.['info']('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x1521b1[_0x4c1f33(0x1c2)],'hasSessionId':!!_0x1521b1['sessionId'],'model':_0x5c3fc7[_0x4c1f33(0x21c)]});if(this[_0x4c1f33(0x207)]&&_0x1521b1[_0x4c1f33(0x1c2)]){const _0x20ff81=this[_0x4c1f33(0x207)][_0x4c1f33(0x1cc)](_0x1521b1[_0x4c1f33(0x1c2)],{'platformProvided':_0x1521b1[_0x4c1f33(0x18c)]||![],'vendor':this['_getVendorFromModel'](_0x5c3fc7[_0x4c1f33(0x21c)])});_0x1915dd=_0x20ff81[_0x4c1f33(0x1b9)],_0x1ce033=_0x20ff81['vendorApiKey'],this[_0x4c1f33(0x1d8)]?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x1521b1[_0x4c1f33(0x1c2)],'hasLoxiaKey':!!_0x1915dd,'hasVendorKey':!!_0x1ce033});}!_0x1915dd&&_0x1521b1[_0x4c1f33(0x222)]&&(_0x1915dd=_0x1521b1['apiKey']);!_0x1915dd&&this['config'][_0x4c1f33(0x222)]&&(_0x1915dd=this['config'][_0x4c1f33(0x222)]);if(!_0x1915dd)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x3bbcdd={'prompt':_0x5c3fc7[_0x4c1f33(0x218)],'model':_0x5c3fc7[_0x4c1f33(0x21c)]||_0x4c1f33(0x204),'size':_0x5c3fc7[_0x4c1f33(0x1f5)],'quality':_0x5c3fc7['quality'],'style':_0x5c3fc7['style']||'vivid','n':_0x5c3fc7['n']||0x1,'requestId':_0x65e87d};for(let _0x50fdcd=0x1;_0x50fdcd<=this[_0x4c1f33(0x227)];_0x50fdcd++){try{this['logger']['info'](_0x4c1f33(0x205),{'url':_0x14d16d,'model':_0x5c3fc7[_0x4c1f33(0x21c)],'requestId':_0x65e87d,'attempt':_0x50fdcd,'hasApiKey':!!_0x1915dd});const _0xf35e56=await fetch(_0x14d16d,{'method':_0x4c1f33(0x1ad),'headers':{'Content-Type':_0x4c1f33(0x196),'Authorization':'Bearer\x20'+_0x1915dd,'X-Request-ID':_0x65e87d},'body':JSON[_0x4c1f33(0x1be)](_0x3bbcdd),'timeout':this['timeout']*0x2});if(!_0xf35e56['ok']){const _0x4382c4=await _0xf35e56['text'](),_0x46c607=new Error(_0x4c1f33(0x1f4)+_0xf35e56['status']+':\x20'+_0xf35e56[_0x4c1f33(0x217)]+(_0x4382c4?'\x20-\x20'+_0x4382c4:''));_0x46c607['status']=_0xf35e56[_0x4c1f33(0x1d2)];throw _0x46c607;}const _0x28fce3=await _0xf35e56[_0x4c1f33(0x21f)]();return{'data':_0x28fce3[_0x4c1f33(0x1a8)]||[],'model':_0x28fce3['model']||_0x5c3fc7[_0x4c1f33(0x21c)],'created':_0x28fce3['created']||Date['now'](),'usage':_0x28fce3['usage']};}catch(_0x317382){_0x5b7097=_0x317382,this[_0x4c1f33(0x1d8)]['warn'](_0x4c1f33(0x1ed),{'attempt':_0x50fdcd,'requestId':_0x65e87d,'error':_0x317382['message'],'status':_0x317382['status']});if(_0x50fdcd<this['retryAttempts']){const _0x1e154e=Math['pow'](0x2,_0x50fdcd)*0x3e8;this[_0x4c1f33(0x1d8)][_0x4c1f33(0x1fe)](_0x4c1f33(0x22b)+_0x1e154e+'ms',{'attempt':_0x50fdcd,'requestId':_0x65e87d}),await new Promise(_0x18653c=>setTimeout(_0x18653c,_0x1e154e));}}}this['logger'][_0x4c1f33(0x18f)](_0x4c1f33(0x1e3),{'requestId':_0x65e87d,'error':_0x5b7097['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x5b7097['message']);}async['_checkRateLimit'](_0x4e06c2){await new Promise(_0x551218=>setTimeout(_0x551218,0x64));}async['_handleRateLimit'](_0x17c0ae){const _0x9cb0b=a0_0x2b0c53,_0x334a6a=0xea60;this[_0x9cb0b(0x1d8)][_0x9cb0b(0x19b)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x334a6a+'ms',_0x17c0ae),await new Promise(_0x1767e7=>setTimeout(_0x1767e7,_0x334a6a));}async['_handleServiceUnavailable'](_0x276ba3){const _0x10f67e=a0_0x2b0c53;this['_recordFailure']();const _0x2c23be=0x7530;this['logger'][_0x10f67e(0x19b)](_0x10f67e(0x1bf)+_0x2c23be+'ms',_0x276ba3),await new Promise(_0x4e5a16=>setTimeout(_0x4e5a16,_0x2c23be));}['_isCircuitBreakerOpen'](){const _0x3989a2=a0_0x2b0c53;if(!this[_0x3989a2(0x22a)][_0x3989a2(0x189)])return![];const _0x2fa484=Date[_0x3989a2(0x201)]()-this['circuitBreaker'][_0x3989a2(0x190)];if(_0x2fa484>this['circuitBreaker']['timeout'])return this[_0x3989a2(0x22a)]['isOpen']=![],this['circuitBreaker']['failures']=0x0,![];return!![];}['_recordFailure'](){const _0x1bbf06=a0_0x2b0c53;this[_0x1bbf06(0x22a)]['failures']++,this[_0x1bbf06(0x22a)][_0x1bbf06(0x190)]=Date['now'](),this['circuitBreaker']['failures']>=this[_0x1bbf06(0x22a)]['threshold']&&(this[_0x1bbf06(0x22a)][_0x1bbf06(0x189)]=!![],this[_0x1bbf06(0x1d8)]['warn'](_0x1bbf06(0x187)));}['_resetCircuitBreaker'](){const _0x5e27e8=a0_0x2b0c53;this['circuitBreaker']['failures']>0x0&&(this[_0x5e27e8(0x22a)][_0x5e27e8(0x209)]=0x0,this['circuitBreaker'][_0x5e27e8(0x189)]=![],this['logger']['info']('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}[a0_0x2b0c53(0x1f9)](_0x29e27a){const _0x58d5a0=a0_0x2b0c53;if(!_0x29e27a)return null;const _0x2c8042=_0x29e27a['toLowerCase']();if(_0x2c8042['includes'](_0x58d5a0(0x1fc))||_0x2c8042['includes']('claude'))return _0x58d5a0(0x1fc);else{if(_0x2c8042[_0x58d5a0(0x1d9)](_0x58d5a0(0x1bc))||_0x2c8042['includes'](_0x58d5a0(0x219)))return'openai';else{if(_0x2c8042[_0x58d5a0(0x1d9)](_0x58d5a0(0x21b)))return'deepseek';else{if(_0x2c8042['includes'](_0x58d5a0(0x1c0)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0xeda784,_0x47f12d){const _0x39e7ee=a0_0x2b0c53;this[_0x39e7ee(0x1c4)]=_0xeda784,this[_0x39e7ee(0x1d8)]=_0x47f12d,this[_0x39e7ee(0x216)]=new Map();}async[a0_0x2b0c53(0x1a7)](_0x3ef064){const _0x2bef48=a0_0x2b0c53;return{'messages':[],'model':_0x3ef064,'lastUpdated':new Date()[_0x2bef48(0x200)]()};}}export default AIService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x4d97ac=a0_0x3fc6;(function(_0x4d0ed0,_0x2760d4){const _0x560b88=a0_0x3fc6,_0x1f3484=_0x4d0ed0();while(!![]){try{const _0x13f3f8=-parseInt(_0x560b88(0x17e))/0x1*(-parseInt(_0x560b88(0x18b))/0x2)+parseInt(_0x560b88(0x193))/0x3+parseInt(_0x560b88(0x179))/0x4+-parseInt(_0x560b88(0x18f))/0x5+parseInt(_0x560b88(0x199))/0x6+parseInt(_0x560b88(0x17d))/0x7+-parseInt(_0x560b88(0x194))/0x8;if(_0x13f3f8===_0x2760d4)break;else _0x1f3484['push'](_0x1f3484['shift']());}catch(_0x4277e3){_0x1f3484['push'](_0x1f3484['shift']());}}}(a0_0x5112,0x30ae4));function a0_0x3fc6(_0x3656bf,_0x3ed9df){_0x3656bf=_0x3656bf-0x178;const _0x51121c=a0_0x5112();let _0x3fc688=_0x51121c[_0x3656bf];if(a0_0x3fc6['evQhxe']===undefined){var _0x1d390e=function(_0x44cfc0){const _0x116daf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39b63c='',_0xcc68f9='';for(let _0xe9ff36=0x0,_0x496191,_0x13f6d7,_0x18846c=0x0;_0x13f6d7=_0x44cfc0['charAt'](_0x18846c++);~_0x13f6d7&&(_0x496191=_0xe9ff36%0x4?_0x496191*0x40+_0x13f6d7:_0x13f6d7,_0xe9ff36++%0x4)?_0x39b63c+=String['fromCharCode'](0xff&_0x496191>>(-0x2*_0xe9ff36&0x6)):0x0){_0x13f6d7=_0x116daf['indexOf'](_0x13f6d7);}for(let _0x26f97b=0x0,_0x5ccb83=_0x39b63c['length'];_0x26f97b<_0x5ccb83;_0x26f97b++){_0xcc68f9+='%'+('00'+_0x39b63c['charCodeAt'](_0x26f97b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xcc68f9);};a0_0x3fc6['REJwpn']=_0x1d390e,a0_0x3fc6['UUCzeO']={},a0_0x3fc6['evQhxe']=!![];}const _0x5a5dba=_0x51121c[0x0],_0x195601=_0x3656bf+_0x5a5dba,_0x155d05=a0_0x3fc6['UUCzeO'][_0x195601];return!_0x155d05?(_0x3fc688=a0_0x3fc6['REJwpn'](_0x3fc688),a0_0x3fc6['UUCzeO'][_0x195601]=_0x3fc688):_0x3fc688=_0x155d05,_0x3fc688;}class ApiKeyManager{constructor(_0x39b63c){const _0x140629=a0_0x3fc6;this['logger']=_0x39b63c,this['sessionKeys']=new Map(),this[_0x140629(0x198)]={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0xcc68f9,_0xe9ff36){const _0x2a7ebc=a0_0x3fc6;if(!_0xcc68f9)throw new Error(_0x2a7ebc(0x17c));this['sessionKeys'][_0x2a7ebc(0x185)](_0xcc68f9,{'loxiaApiKey':_0xe9ff36['loxiaApiKey']||null,'vendorKeys':_0xe9ff36['vendorKeys']||{},'updatedAt':new Date()[_0x2a7ebc(0x184)]()}),this[_0x2a7ebc(0x191)]?.[_0x2a7ebc(0x195)]('API\x20keys\x20updated\x20for\x20session',{'sessionId':_0xcc68f9,'hasLoxiaKey':!!_0xe9ff36['loxiaApiKey'],'vendorKeys':Object['keys'](_0xe9ff36[_0x2a7ebc(0x187)]||{}),'timestamp':new Date()[_0x2a7ebc(0x184)]()});}[a0_0x4d97ac(0x196)](_0x496191){const _0x364cb1=a0_0x4d97ac;if(!_0x496191)return this[_0x364cb1(0x198)];const _0x13f6d7=this[_0x364cb1(0x17f)]['get'](_0x496191);if(_0x13f6d7)return _0x13f6d7;return this['globalKeys'];}[a0_0x4d97ac(0x181)](_0x18846c,_0x26f97b={}){const _0x3f9bb0=a0_0x4d97ac,_0x5ccb83=this[_0x3f9bb0(0x196)](_0x18846c),_0x53c7c9={'loxiaApiKey':_0x5ccb83['loxiaApiKey'],'vendorApiKey':null};return!_0x26f97b['platformProvided']&&_0x26f97b[_0x3f9bb0(0x197)]&&_0x5ccb83[_0x3f9bb0(0x187)]&&(_0x53c7c9[_0x3f9bb0(0x192)]=_0x5ccb83[_0x3f9bb0(0x187)][_0x26f97b[_0x3f9bb0(0x197)]]),_0x53c7c9;}[a0_0x4d97ac(0x17b)](_0xe4343f){const _0x2509fc=a0_0x4d97ac;if(this['sessionKeys'][_0x2509fc(0x189)](_0xe4343f))return this['logger']?.[_0x2509fc(0x195)](_0x2509fc(0x18a),{'sessionId':_0xe4343f}),!![];return![];}['setGlobalKeys'](_0x12b670){const _0x257645=a0_0x4d97ac;this[_0x257645(0x198)]={'loxiaApiKey':_0x12b670['loxiaApiKey']||this[_0x257645(0x198)][_0x257645(0x18c)],'vendorKeys':{...this['globalKeys']['vendorKeys'],..._0x12b670[_0x257645(0x187)]||{}}},this['logger']?.[_0x257645(0x195)](_0x257645(0x188),{'hasLoxiaKey':!!this['globalKeys']['loxiaApiKey'],'vendorKeys':Object['keys'](this['globalKeys'][_0x257645(0x187)])});}[a0_0x4d97ac(0x182)](){const _0x407667=a0_0x4d97ac;return Array['from'](this[_0x407667(0x17f)][_0x407667(0x178)]())[_0x407667(0x18d)](([_0x22ca96,_0x2c1fa1])=>({'sessionId':_0x22ca96,'hasLoxiaKey':!!_0x2c1fa1['loxiaApiKey'],'vendorKeys':Object[_0x407667(0x190)](_0x2c1fa1[_0x407667(0x187)]||{}),'updatedAt':_0x2c1fa1[_0x407667(0x18e)]}));}['cleanupExpiredSessions'](_0x5e96a9=0x18*0x3c*0x3c*0x3e8){const _0x10b927=a0_0x4d97ac,_0x5202e4=Date['now'](),_0x310256=[];for(const [_0x44b93e,_0x3916b0]of this['sessionKeys'][_0x10b927(0x178)]()){const _0x446bac=_0x5202e4-new Date(_0x3916b0[_0x10b927(0x18e)])[_0x10b927(0x17a)]();_0x446bac>_0x5e96a9&&_0x310256['push'](_0x44b93e);}return _0x310256[_0x10b927(0x180)](_0x4ce055=>{const _0x6f432d=_0x10b927;this[_0x6f432d(0x17f)]['delete'](_0x4ce055);}),_0x310256['length']>0x0&&this[_0x10b927(0x191)]?.['info'](_0x10b927(0x186),{'expiredSessions':_0x310256[_0x10b927(0x183)],'remainingSessions':this[_0x10b927(0x17f)]['size']}),_0x310256['length'];}}function a0_0x5112(){const _0x317e74=['zM9YrwfJAa','z2v0s2v5C0zVCLjLCxvLC3q','z2v0qwn0AxzLu2vZC2LVBNm','BgvUz3rO','Dg9ju09tDhjPBMC','C2v0','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','DMvUzg9Ys2v5CW','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','zgvSzxrL','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','nfb5D1PZqG','Bg94AwfbCgLlzxK','BwfW','DxbKyxrLzef0','ntiXotyWDgTMv09Y','A2v5CW','Bg9Nz2vY','DMvUzg9YqxbPs2v5','mJq2nJe1AuvywxnV','mZKZmZa2nefWuhzvvq','Aw5MBW','z2v0u2vZC2LVBKTLExm','DMvUzg9Y','z2XVyMfSs2v5CW','mZa3mty0D3LdsKHy','zw50CMLLCW','odq3ndi4Evr1D2HZ','z2v0vgLTzq','CMvTB3zLu2vZC2LVBKTLExm','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','mJuWntCXm3ffq2Tgwq','ndyXmdn3zhLAEue','C2vZC2LVBKTLExm'];a0_0x5112=function(){return _0x317e74;};return a0_0x5112();}export default ApiKeyManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x1342eb=a0_0x3895;function a0_0x3895(_0x367c8f,_0x3cb00a){_0x367c8f=_0x367c8f-0x84;const _0x5b2df6=a0_0x5b2d();let _0x3895bb=_0x5b2df6[_0x367c8f];if(a0_0x3895['LFWIDe']===undefined){var _0x53baf1=function(_0x433d40){const _0x8b21e9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x27f61c='',_0x2be7d='';for(let _0x291abf=0x0,_0x58c15f,_0x258275,_0x53de8b=0x0;_0x258275=_0x433d40['charAt'](_0x53de8b++);~_0x258275&&(_0x58c15f=_0x291abf%0x4?_0x58c15f*0x40+_0x258275:_0x258275,_0x291abf++%0x4)?_0x27f61c+=String['fromCharCode'](0xff&_0x58c15f>>(-0x2*_0x291abf&0x6)):0x0){_0x258275=_0x8b21e9['indexOf'](_0x258275);}for(let _0x1fabc6=0x0,_0x3bd0ad=_0x27f61c['length'];_0x1fabc6<_0x3bd0ad;_0x1fabc6++){_0x2be7d+='%'+('00'+_0x27f61c['charCodeAt'](_0x1fabc6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2be7d);};a0_0x3895['HlyAiZ']=_0x53baf1,a0_0x3895['bJFjyf']={},a0_0x3895['LFWIDe']=!![];}const _0x16d4e9=_0x5b2df6[0x0],_0x4927ea=_0x367c8f+_0x16d4e9,_0x2d7c35=a0_0x3895['bJFjyf'][_0x4927ea];return!_0x2d7c35?(_0x3895bb=a0_0x3895['HlyAiZ'](_0x3895bb),a0_0x3895['bJFjyf'][_0x4927ea]=_0x3895bb):_0x3895bb=_0x2d7c35,_0x3895bb;}(function(_0x49b177,_0x3b3ecc){const _0x410c9b=a0_0x3895,_0x58b42c=_0x49b177();while(!![]){try{const _0x36c7cf=parseInt(_0x410c9b(0xb4))/0x1+-parseInt(_0x410c9b(0x92))/0x2+parseInt(_0x410c9b(0x86))/0x3+parseInt(_0x410c9b(0xa0))/0x4+parseInt(_0x410c9b(0x85))/0x5+-parseInt(_0x410c9b(0x87))/0x6*(-parseInt(_0x410c9b(0xa6))/0x7)+-parseInt(_0x410c9b(0x94))/0x8*(parseInt(_0x410c9b(0x95))/0x9);if(_0x36c7cf===_0x3b3ecc)break;else _0x58b42c['push'](_0x58b42c['shift']());}catch(_0x195c11){_0x58b42c['push'](_0x58b42c['shift']());}}}(a0_0x5b2d,0x7f7cc));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x27f61c,_0x2be7d){const _0x145cef=a0_0x3895;this[_0x145cef(0x98)]=_0x27f61c,this[_0x145cef(0xa5)]=_0x2be7d,this['benchmarks']=null,this['lastUpdated']=null,this['isLoading']=![],this[_0x145cef(0x8f)]=_0x145cef(0xa2),this['refreshInterval']=MODEL_ROUTER_CONFIG['BENCHMARK_REFRESH_INTERVAL'];}async[a0_0x1342eb(0x91)](){const _0x46090a=a0_0x1342eb;try{await this['loadBenchmarks'](),this['_scheduleRefresh'](),this['logger'][_0x46090a(0xa3)](_0x46090a(0x88));}catch(_0x291abf){this['logger']['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x291abf['message']}),this['benchmarks']=null;}}['getBenchmarks'](){const _0x4ffa6a=a0_0x1342eb;if(!this[_0x4ffa6a(0x9a)])return this[_0x4ffa6a(0xa5)]['error'](_0x4ffa6a(0x8d),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this[_0x4ffa6a(0x9a)];}async['loadBenchmarks'](){const _0x16eb2d=a0_0x1342eb;if(this['isLoading']){this[_0x16eb2d(0xa5)]['debug'](_0x16eb2d(0x90));return;}this['isLoading']=!![];try{const _0x58c15f=await this['_fetchFromAzureBackend']();if(_0x58c15f)this[_0x16eb2d(0x9a)]=_0x58c15f,this['lastUpdated']=new Date(),this['logger']['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x58c15f[_0x16eb2d(0x9e)]?.[_0x16eb2d(0x99)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x258275){this['logger'][_0x16eb2d(0xb7)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x258275['message'],'endpoint':url}),!this[_0x16eb2d(0x9a)]&&(this['benchmarks']=null);}finally{this[_0x16eb2d(0x9d)]=![];}}['getBenchmarkTable'](){const _0x5830f3=a0_0x1342eb,_0x53de8b=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.[_0x5830f3(0x8a)]()||_0x5830f3(0x84),'models':_0x53de8b[_0x5830f3(0x9e)]||[],'tasks':_0x53de8b[_0x5830f3(0x9b)]||{},'summary':this['_generateBenchmarkSummary'](_0x53de8b)};}[a0_0x1342eb(0xad)](){const _0x12fba8=a0_0x1342eb;if(!this[_0x12fba8(0xaa)])return!![];const _0x1fabc6=Date[_0x12fba8(0xa1)]()-this[_0x12fba8(0xaa)]['getTime']();return _0x1fabc6>this['refreshInterval'];}async[a0_0x1342eb(0x8b)](){const _0xee24e4=a0_0x1342eb,_0x3bd0ad=this[_0xee24e4(0x8f)]+'/llm/model-benchmarks';let _0x398a3e=null;this['config'][_0xee24e4(0xb6)]&&(_0x398a3e=this['config'][_0xee24e4(0xb6)]);const _0x58a232={'method':'GET','headers':{'Content-Type':_0xee24e4(0x8e),..._0x398a3e&&{'Authorization':_0xee24e4(0xa9)+_0x398a3e}},'timeout':0x2710};this[_0xee24e4(0xa5)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x3bd0ad});const _0x507868=await fetch(_0x3bd0ad,_0x58a232);if(!_0x507868['ok'])throw new Error('HTTP\x20'+_0x507868['status']+':\x20'+_0x507868['statusText']);const _0x3413ce=await _0x507868[_0xee24e4(0xba)]();return _0x3413ce;}[a0_0x1342eb(0xb5)](_0x50f9e5){const _0x2784a3=a0_0x1342eb,_0x195188=_0x50f9e5['models']||[];return{'totalModels':_0x195188['length'],'taskCategories':Object[_0x2784a3(0x93)](_0x50f9e5['tasks']||{}),'bestForCoding':this['_getBestModelForTask'](_0x195188,_0x2784a3(0xa7)),'bestForAnalysis':this[_0x2784a3(0xbc)](_0x195188,_0x2784a3(0xab)),'bestForQuickTasks':this[_0x2784a3(0xbc)](_0x195188,'quick-tasks'),'bestForCreative':this['_getBestModelForTask'](_0x195188,_0x2784a3(0xb1)),'fastestModel':this[_0x2784a3(0xae)](_0x195188),'mostCostEfficient':this['_getMostCostEfficient'](_0x195188)};}[a0_0x1342eb(0xbc)](_0x35892c,_0x2b4937){const _0x825030=a0_0x1342eb;return _0x35892c[_0x825030(0xb0)](_0x556e8d=>_0x556e8d[_0x825030(0x9b)]&&_0x556e8d[_0x825030(0x9b)][_0x2b4937])['sort']((_0x311b99,_0x3f3200)=>(_0x3f3200[_0x825030(0x9b)][_0x2b4937][_0x825030(0x97)]||0x0)-(_0x311b99[_0x825030(0x9b)][_0x2b4937]['score']||0x0))[0x0]?.[_0x825030(0x9f)]||'unknown';}[a0_0x1342eb(0xae)](_0x2437b4){const _0x4d736c=a0_0x1342eb,_0x58f052={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x2437b4[_0x4d736c(0xb3)]((_0x470f5d,_0x5685ba)=>{const _0x2c3fa3=_0x4d736c,_0x2e7146=Math['max'](...Object[_0x2c3fa3(0x9c)](_0x470f5d[_0x2c3fa3(0x9b)]||{})[_0x2c3fa3(0xac)](_0x13a87a=>_0x58f052[_0x13a87a[_0x2c3fa3(0x89)]]||0x0)),_0x15c536=Math[_0x2c3fa3(0xa8)](...Object[_0x2c3fa3(0x9c)](_0x5685ba[_0x2c3fa3(0x9b)]||{})['map'](_0x1757ed=>_0x58f052[_0x1757ed['speed']]||0x0));return _0x15c536-_0x2e7146;})[0x0]?.[_0x4d736c(0x9f)]||_0x4d736c(0x84);}[a0_0x1342eb(0xbb)](_0x29afac){const _0x3f475f=a0_0x1342eb,_0x137f08={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x29afac[_0x3f475f(0xb3)]((_0x4d5a8e,_0x4d1de9)=>{const _0x481b29=_0x3f475f,_0x58d59d=Math[_0x481b29(0xa8)](...Object['values'](_0x4d5a8e[_0x481b29(0x9b)]||{})[_0x481b29(0xac)](_0x5930ac=>_0x137f08[_0x5930ac['cost']]||0x0)),_0x19109f=Math['max'](...Object[_0x481b29(0x9c)](_0x4d1de9['tasks']||{})[_0x481b29(0xac)](_0x4d9c6c=>_0x137f08[_0x4d9c6c[_0x481b29(0xb8)]]||0x0));return _0x19109f-_0x58d59d;})[0x0]?.[_0x3f475f(0x9f)]||_0x3f475f(0x84);}[a0_0x1342eb(0xb9)](){const _0x5e36a8=a0_0x1342eb;setInterval(async()=>{const _0x35f2c5=a0_0x3895;this[_0x35f2c5(0xad)]()&&(this[_0x35f2c5(0xa5)][_0x35f2c5(0xa4)](_0x35f2c5(0xb2)),await this['loadBenchmarks']());},this[_0x5e36a8(0x8c)]);}async[a0_0x1342eb(0xaf)](){const _0x41add8=a0_0x1342eb;this[_0x41add8(0xa5)][_0x41add8(0xa3)]('Force\x20refreshing\x20benchmark\x20data'),await this['loadBenchmarks']();}['getStatus'](){const _0x27522f=a0_0x1342eb;return{'initialized':!!this[_0x27522f(0x9a)],'lastUpdated':this['lastUpdated']?.[_0x27522f(0x8a)]()||null,'source':this['benchmarks']?.[_0x27522f(0x96)]||_0x27522f(0x84),'modelCount':this['benchmarks']?.['models']?.[_0x27522f(0x99)]||0x0,'isLoading':this[_0x27522f(0x9d)],'needsRefresh':this['needsRefresh']()};}}function a0_0x5b2d(){const _0x5e4d19=['CMvMCMvZAeLUDgvYDMfS','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','yxbWBgLJyxrPB24VANnVBG','yxP1CMvcywnRzw5KvxjS','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','Aw5PDgLHBgL6zq','mZaYmZyYs3fWwgfN','A2v5CW','mJiYotm3nKjOywPgvW','ndvTyMnszLi','C291CMnL','C2nVCMu','y29UzMLN','BgvUz3rO','yMvUy2HTyxjRCW','DgfZA3m','DMfSDwvZ','AxnmB2fKAw5N','Bw9KzwXZ','BMfTzq','mZKXmJeXnMfAvLrcEG','BM93','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0','Aw5MBW','zgvIDwC','Bg9Nz2vY','otfKCKDOze0','y29KAw5N','Bwf4','qMvHCMvYia','BgfZDfvWzgf0zwq','yw5HBhLZAxm','BwfW','BMvLzhnszwzYzxnO','x2DLDezHC3rLC3rnB2rLBa','zM9Yy2vszwzYzxnO','zMLSDgvY','y3jLyxrPDMu','uMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','C29YDa','otq2mZn2u05lr1u','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','yxbPs2v5','zxjYB3i','y29ZDa','x3nJAgvKDwXLuMvMCMvZAa','ANnVBG','x2DLDe1VC3rdB3n0rwzMAwnPzw50','x2DLDejLC3rnB2rLBezVCLrHC2S','Dw5RBM93BG','nJCZmZaWzNLTwM1Z','mtyWntqWnxDsvejqCq','mtq5nJy0ELbLvw9L','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','C3bLzwq','Dg9ju09tDhjPBMC','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza'];a0_0x5b2d=function(){return _0x5e4d19;};return a0_0x5b2d();}export default BenchmarkService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x724650=a0_0x1e31;function a0_0x1e31(_0x54b0f8,_0x5a2a36){_0x54b0f8=_0x54b0f8-0xef;const _0xac542f=a0_0xac54();let _0x1e3186=_0xac542f[_0x54b0f8];if(a0_0x1e31['eYbMkQ']===undefined){var _0xdb1714=function(_0x874371){const _0x3ee2e5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x425aa4='',_0x279712='';for(let _0x9d779a=0x0,_0x1236bb,_0x336e16,_0x37d27c=0x0;_0x336e16=_0x874371['charAt'](_0x37d27c++);~_0x336e16&&(_0x1236bb=_0x9d779a%0x4?_0x1236bb*0x40+_0x336e16:_0x336e16,_0x9d779a++%0x4)?_0x425aa4+=String['fromCharCode'](0xff&_0x1236bb>>(-0x2*_0x9d779a&0x6)):0x0){_0x336e16=_0x3ee2e5['indexOf'](_0x336e16);}for(let _0xdb069d=0x0,_0xd3a1e3=_0x425aa4['length'];_0xdb069d<_0xd3a1e3;_0xdb069d++){_0x279712+='%'+('00'+_0x425aa4['charCodeAt'](_0xdb069d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x279712);};a0_0x1e31['EdyXAE']=_0xdb1714,a0_0x1e31['aMnalk']={},a0_0x1e31['eYbMkQ']=!![];}const _0x306cbd=_0xac542f[0x0],_0x1da0d2=_0x54b0f8+_0x306cbd,_0x52f401=a0_0x1e31['aMnalk'][_0x1da0d2];return!_0x52f401?(_0x1e3186=a0_0x1e31['EdyXAE'](_0x1e3186),a0_0x1e31['aMnalk'][_0x1da0d2]=_0x1e3186):_0x1e3186=_0x52f401,_0x1e3186;}(function(_0x27b771,_0x25bfa0){const _0x156012=a0_0x1e31,_0x2489d7=_0x27b771();while(!![]){try{const _0x10f9ab=-parseInt(_0x156012(0x144))/0x1*(-parseInt(_0x156012(0xef))/0x2)+-parseInt(_0x156012(0x104))/0x3*(-parseInt(_0x156012(0x12d))/0x4)+parseInt(_0x156012(0x130))/0x5+parseInt(_0x156012(0x12e))/0x6*(-parseInt(_0x156012(0x10d))/0x7)+parseInt(_0x156012(0x124))/0x8+parseInt(_0x156012(0x135))/0x9+-parseInt(_0x156012(0x128))/0xa;if(_0x10f9ab===_0x25bfa0)break;else _0x2489d7['push'](_0x2489d7['shift']());}catch(_0x47389e){_0x2489d7['push'](_0x2489d7['shift']());}}}(a0_0xac54,0x9dc92));function a0_0xac54(){const _0x4ed5fe=['z2v0rgf0zq','nJK1nJqWoe1brufhBq','Dg90ywXFDg9Rzw5Z','refjtfK','DxnHz2u','mtG5mZyXmdbzAKD5wgK','D2vLA2X5','BwfW','zgfPBhK','Aw5MBW','ndu1nKPmyNfqCq','mtC0r3jgqLHw','Bg9Nz2vY','mZeYntm0meH1z0XMAG','y29UzMLN','C29YDa','CgfKu3rHCNq','BM93','mZa0mJC3nevVwhfHBW','vxnHz2uGzgf0ysbZyxzLza','ywXLCNrZ','z2v0rNvSBfLLyxi','z2v0tw9UDgHlzxK','ChvZAa','Dg9tDhjPBMC','Bw9UDgHSEq','sw52ywXPzcbWzxjPB2q6ia','zNjVBq','z2v0v2vLA0TLEq','z2v0','y2fSy3vSyxrLq29ZDa','C2v0DxbqzxjPB2rPy1nHDMu','zxjYB3i','nuzkthHxwa','y3jLyxrLrw1WDhLvC2fNzq','zgvIDwC','D2fYBG','ntmWntrMrhfhzgO','y2HLy2TuAhjLC2HVBgq','yNvKz2v0CW','Bwf4','Bg9HzfvZywDLrgf0yq','yNLnB2rLBa','C2v0qNvKz2v0CW','ChjVBxb0x3rVA2vUCW','Aw5WDxq','Bw9KzwXjza','yNLbz2vUDa','C2vUzfrOCMvZAg9SzefSzxj0','Aw5PDgLHBgL6zvvZywDLrw50CNK','zM9YrwfJAa','CMvXDwvZDhm','Dg9Rzw5Z','zgfPBhLbDMvYywDLCW','y29UDMvYDfrVq1nw','vg9Rzw5Z','AM9PBG','y2HLy2TuAhjLC2HVBgrbBgvYDhm','mJa0ouPvt09Wza','zw50CMLLCW','z2v0rgf5','z2v0vxnHz2u','v0vfs0Xz','z2v0tw9KzwXvC2fNzq','ywDLBNrjza','z2v0uMvTywLUAw5NqNvKz2v0','y29ZDej5rgf5','ndKWotfOwNztBfG','DgHYzxnOB2XKx3jLywnOzwq','yNvKz2v0x2v4y2vLzgvK','AxnxAxrOAw5cDwrNzxq','CM91BMq','C3bSAxq','Dg90ywW','DxbKyxrLvxnHz2vfBNrYEq','rgf0zq','veHsrvnit0XeuW','y29ZDa','C2vUzej1zgDLDefSzxj0','C2v0','Dw5ZAgLMDa','z2v0rgf5s2v5','zw1PDa','uMvXDwvZDhm','qNvKz2v0igXPBwL0CYb1CgrHDgvK','AgfZ','tu9oveHmwq','yNvKz2v0qwXLCNq','q29ZDa'];a0_0xac54=function(){return _0x4ed5fe;};return a0_0xac54();}import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x425aa4,_0x279712){const _0x2a9d1b=a0_0x1e31;this[_0x2a9d1b(0x131)]=_0x425aa4||{},this[_0x2a9d1b(0x12f)]=_0x279712,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x2a9d1b(0x126)],'weekly':BUDGET_LIMITS[_0x2a9d1b(0x108)],'monthly':BUDGET_LIMITS[_0x2a9d1b(0x120)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS[_0x2a9d1b(0x116)],'lastAlertTimes':new Map()},this[_0x2a9d1b(0xf3)](),this[_0x2a9d1b(0x142)]();}['trackUsage'](_0x9d779a,_0x1236bb,_0x336e16){const _0x33ea51=a0_0x1e31;try{const _0x37d27c=this[_0x33ea51(0x141)](_0x1236bb,_0x336e16),_0xdb069d=new Date(),_0xd3a1e3=this['getDayKey'](_0xdb069d),_0x4094bc=this[_0x33ea51(0x13f)](_0xdb069d),_0x44562a=this['getMonthKey'](_0xdb069d);this[_0x33ea51(0xfb)](this['usage']['daily'],_0xd3a1e3),this[_0x33ea51(0xfb)](this['usage']['weekly'],_0x4094bc),this[_0x33ea51(0xfb)](this['usage']['monthly'],_0x44562a);const _0x7c5e14={'agentId':_0x9d779a,'modelId':_0x1236bb,'tokens':_0x336e16['total_tokens'],'cost':_0x37d27c,'timestamp':_0xdb069d['toISOString']()};return this[_0x33ea51(0x114)](this[_0x33ea51(0x127)][_0x33ea51(0x12b)][_0x33ea51(0x140)](_0xd3a1e3),_0x7c5e14),this['updateUsageEntry'](this['usage']['weekly']['get'](_0x4094bc),_0x7c5e14),this['updateUsageEntry'](this['usage'][_0x33ea51(0x13c)][_0x33ea51(0x140)](_0x44562a),_0x7c5e14),this['usage'][_0x33ea51(0x113)][_0x33ea51(0xfe)]+=_0x336e16[_0x33ea51(0x125)],this['usage']['total'][_0x33ea51(0x117)]+=_0x37d27c,this['usage']['total']['requests']+=0x1,this['checkBudgetLimits'](_0xd3a1e3,_0x4094bc,_0x44562a),this['logger'][_0x33ea51(0x12c)]('Usage\x20tracked',{'agentId':_0x9d779a,'modelId':_0x1236bb,'tokens':_0x336e16[_0x33ea51(0x125)],'cost':_0x37d27c,'totalCost':this['usage']['total'][_0x33ea51(0x117)]}),{'cost':_0x37d27c,'totalCost':this[_0x33ea51(0x127)]['total']['cost'],'totalTokens':this[_0x33ea51(0x127)][_0x33ea51(0x113)]['tokens'],'dailyUsage':this['usage'][_0x33ea51(0x12b)]['get'](_0xd3a1e3),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x2492c9){this['logger'][_0x33ea51(0x143)]('Failed\x20to\x20track\x20usage',{'error':_0x2492c9['message'],'agentId':_0x9d779a,'modelId':_0x1236bb});throw _0x2492c9;}}['calculateCost'](_0x9bc8f,_0x14f7c9){const _0x43c48a=a0_0x1e31,_0x4b2f5f=COST_PER_TOKEN[_0x9bc8f];if(!_0x4b2f5f)return this[_0x43c48a(0x12f)][_0x43c48a(0x147)]('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x9bc8f}),0x0;const _0x33dd68=(_0x14f7c9[_0x43c48a(0xf6)]||0x0)*_0x4b2f5f[_0x43c48a(0xf7)],_0x2ac472=(_0x14f7c9['completion_tokens']||0x0)*_0x4b2f5f['output'];return _0x33dd68+_0x2ac472;}['getUsage'](_0x409295='daily',_0x1fa15f=new Date()){const _0x492516=a0_0x1e31;switch(_0x409295){case'daily':return this[_0x492516(0x127)][_0x492516(0x12b)][_0x492516(0x140)](this[_0x492516(0x11b)](_0x1fa15f))||this['createEmptyUsage']();case _0x492516(0x129):return this[_0x492516(0x127)]['weekly']['get'](this['getWeekKey'](_0x1fa15f))||this['createEmptyUsage']();case _0x492516(0x13c):return this[_0x492516(0x127)][_0x492516(0x13c)][_0x492516(0x140)](this['getMonthKey'](_0x1fa15f))||this[_0x492516(0x145)]();case'total':return{...this[_0x492516(0x127)]['total']};default:throw new Error(_0x492516(0x13d)+_0x409295);}}['getAgentUsage'](_0x45b7c3,_0x78a9f3='daily'){const _0x4382ab=this['getUsage'](_0x78a9f3);return _0x4382ab['byAgent']?.[_0x45b7c3]||this['createEmptyUsage']();}[a0_0x724650(0x109)](_0x32c519,_0x27136f='daily'){const _0x20a680=a0_0x724650,_0x2d0ce7=this['getUsage'](_0x27136f);return _0x2d0ce7[_0x20a680(0xf4)]?.[_0x32c519]||this[_0x20a680(0x145)]();}[a0_0x724650(0xf5)](_0x5b534f){const _0x1a41fe=a0_0x724650;if(_0x5b534f['daily']!==undefined)this['budgets'][_0x1a41fe(0x12b)]=_0x5b534f['daily'];if(_0x5b534f['weekly']!==undefined)this['budgets']['weekly']=_0x5b534f['weekly'];if(_0x5b534f['monthly']!==undefined)this[_0x1a41fe(0xf1)][_0x1a41fe(0x13c)]=_0x5b534f['monthly'];this[_0x1a41fe(0x12f)][_0x1a41fe(0x12c)](_0x1a41fe(0x11e),this['budgets']),this['saveUsageData']();}[a0_0x724650(0x10b)](){const _0x1026cf=a0_0x724650,_0x2c9d94=new Date(),_0x4d906e=this['getUsage']('daily',_0x2c9d94),_0x271377=this[_0x1026cf(0x107)]('weekly',_0x2c9d94),_0x5a85aa=this[_0x1026cf(0x107)]('monthly',_0x2c9d94);return{'daily':Math['max'](0x0,this['budgets'][_0x1026cf(0x12b)]-_0x4d906e['cost']),'weekly':Math[_0x1026cf(0xf2)](0x0,this[_0x1026cf(0xf1)][_0x1026cf(0x129)]-_0x271377[_0x1026cf(0x117)]),'monthly':Math['max'](0x0,this['budgets']['monthly']-_0x5a85aa['cost'])};}[a0_0x724650(0x110)](_0x5f5bc5=a0_0x724650(0x12b)){const _0x50c6da=a0_0x724650,_0xf0af7a=this[_0x50c6da(0x107)](_0x5f5bc5),_0x2fab71=this[_0x50c6da(0xf1)][_0x5f5bc5];return _0xf0af7a['cost']<=_0x2fab71;}['getUsageTrends'](_0x18fd48=0x1e){const _0x413bb0=a0_0x724650,_0x226d6e={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0xac0583=new Date();let _0x34c864=0x0,_0x3d91eb=0x0,_0x55646d=0x0;const _0x3dce1b=new Map(),_0x5df2a0=new Map();for(let _0x3acceb=0x0;_0x3acceb<_0x18fd48;_0x3acceb++){const _0x1995b1=new Date(_0xac0583);_0x1995b1['setDate'](_0x1995b1[_0x413bb0(0x123)]()-_0x3acceb);const _0x3a10d2=this[_0x413bb0(0x11b)](_0x1995b1),_0x581132=this['usage']['daily'][_0x413bb0(0x140)](_0x3a10d2);_0x581132?(_0x34c864+=_0x581132['cost'],_0x3d91eb+=_0x581132[_0x413bb0(0xfe)],_0x55646d+=_0x581132[_0x413bb0(0xfd)],_0x226d6e[_0x413bb0(0x10c)]['unshift']({'date':_0x3a10d2,'cost':_0x581132['cost']}),_0x226d6e['tokensByDay'][_0x413bb0(0x11a)]({'date':_0x3a10d2,'tokens':_0x581132['tokens']}),Object[_0x413bb0(0x105)](_0x581132['byAgent']||{})['forEach'](([_0x2f6895,_0x57f000])=>{const _0x3ab428=_0x413bb0;!_0x3dce1b[_0x3ab428(0x11f)](_0x2f6895)&&_0x3dce1b[_0x3ab428(0x119)](_0x2f6895,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x30b11f=_0x3dce1b['get'](_0x2f6895);_0x30b11f['cost']+=_0x57f000['cost'],_0x30b11f[_0x3ab428(0xfe)]+=_0x57f000[_0x3ab428(0xfe)],_0x30b11f[_0x3ab428(0xfd)]+=_0x57f000[_0x3ab428(0xfd)];}),Object['entries'](_0x581132[_0x413bb0(0xf4)]||{})['forEach'](([_0x3ecd77,_0x291724])=>{const _0x3d66b9=_0x413bb0;!_0x5df2a0['has'](_0x3ecd77)&&_0x5df2a0[_0x3d66b9(0x119)](_0x3ecd77,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x359cf1=_0x5df2a0[_0x3d66b9(0x140)](_0x3ecd77);_0x359cf1[_0x3d66b9(0x117)]+=_0x291724[_0x3d66b9(0x117)],_0x359cf1[_0x3d66b9(0xfe)]+=_0x291724['tokens'],_0x359cf1['requests']+=_0x291724[_0x3d66b9(0xfd)];})):(_0x226d6e['costByDay'][_0x413bb0(0x11a)]({'date':_0x3a10d2,'cost':0x0}),_0x226d6e['tokensByDay'][_0x413bb0(0x11a)]({'date':_0x3a10d2,'tokens':0x0}));}return _0x226d6e['dailyAverages']['cost']=_0x34c864/_0x18fd48,_0x226d6e[_0x413bb0(0xff)]['tokens']=_0x3d91eb/_0x18fd48,_0x226d6e['dailyAverages']['requests']=_0x55646d/_0x18fd48,_0x226d6e['topAgents']=Array[_0x413bb0(0x13e)](_0x3dce1b[_0x413bb0(0x105)]())['map'](([_0x48b0b2,_0x89acfd])=>({'id':_0x48b0b2,..._0x89acfd}))[_0x413bb0(0x132)]((_0x810685,_0x4856d3)=>_0x4856d3['cost']-_0x810685['cost'])['slice'](0x0,0xa),_0x226d6e['topModels']=Array['from'](_0x5df2a0['entries']())['map'](([_0x1f064a,_0x73bdcf])=>({'id':_0x1f064a,..._0x73bdcf}))[_0x413bb0(0x132)]((_0x390760,_0x37cb97)=>_0x37cb97['cost']-_0x390760[_0x413bb0(0x117)])['slice'](0x0,0xa),_0x226d6e;}['exportUsageData'](_0x2ccfbf='json',_0x3d87ad=null,_0x3a655a=null){const _0x38d809=a0_0x724650,_0x1f5a16={'budgets':this['budgets'],'total':this['usage'][_0x38d809(0x113)],'daily':{},'weekly':{},'monthly':{}},_0x3fae38=(_0x1d9fc5,_0x146c29)=>{const _0x390f5a={};return _0x1d9fc5['forEach']((_0x3fe154,_0x352e83)=>{const _0x46b15c=_0x146c29(_0x352e83);(!_0x3d87ad||_0x46b15c>=_0x3d87ad)&&(!_0x3a655a||_0x46b15c<=_0x3a655a)&&(_0x390f5a[_0x352e83]=_0x3fe154);}),_0x390f5a;};_0x3d87ad||_0x3a655a?(_0x1f5a16['daily']=_0x3fae38(this['usage'][_0x38d809(0x12b)],_0xde8eb7=>new Date(_0xde8eb7)),_0x1f5a16[_0x38d809(0x129)]=_0x3fae38(this['usage'][_0x38d809(0x129)],_0x271316=>new Date(_0x271316)),_0x1f5a16[_0x38d809(0x13c)]=_0x3fae38(this['usage']['monthly'],_0x10b46d=>new Date(_0x10b46d+'-01'))):(this[_0x38d809(0x127)][_0x38d809(0x12b)][_0x38d809(0xfc)]((_0x5a7c97,_0x5d00b9)=>_0x1f5a16[_0x38d809(0x12b)][_0x5d00b9]=_0x5a7c97),this[_0x38d809(0x127)][_0x38d809(0x129)]['forEach']((_0x4f9fae,_0xed364f)=>_0x1f5a16[_0x38d809(0x129)][_0xed364f]=_0x4f9fae),this[_0x38d809(0x127)]['monthly'][_0x38d809(0xfc)]((_0x10415b,_0x487cd3)=>_0x1f5a16['monthly'][_0x487cd3]=_0x10415b));if(_0x2ccfbf==='csv')return this[_0x38d809(0x100)](_0x1f5a16);return JSON['stringify'](_0x1f5a16,null,0x2);}['initializeUsageEntry'](_0x2f8bc4,_0x2a2456){const _0x34244c=a0_0x724650;!_0x2f8bc4['has'](_0x2a2456)&&_0x2f8bc4[_0x34244c(0x119)](_0x2a2456,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x16942a,_0x2b6d0c){const _0x5b7caa=a0_0x724650;_0x16942a[_0x5b7caa(0x117)]+=_0x2b6d0c['cost'],_0x16942a[_0x5b7caa(0xfe)]+=_0x2b6d0c[_0x5b7caa(0xfe)],_0x16942a[_0x5b7caa(0xfd)]+=0x1,!_0x16942a[_0x5b7caa(0xf9)][_0x2b6d0c[_0x5b7caa(0x10a)]]&&(_0x16942a['byAgent'][_0x2b6d0c[_0x5b7caa(0x10a)]]=this[_0x5b7caa(0x145)]()),_0x16942a['byAgent'][_0x2b6d0c[_0x5b7caa(0x10a)]]['cost']+=_0x2b6d0c['cost'],_0x16942a[_0x5b7caa(0xf9)][_0x2b6d0c['agentId']]['tokens']+=_0x2b6d0c['tokens'],_0x16942a[_0x5b7caa(0xf9)][_0x2b6d0c['agentId']][_0x5b7caa(0xfd)]+=0x1,!_0x16942a['byModel'][_0x2b6d0c[_0x5b7caa(0xf8)]]&&(_0x16942a['byModel'][_0x2b6d0c['modelId']]=this[_0x5b7caa(0x145)]()),_0x16942a[_0x5b7caa(0xf4)][_0x2b6d0c[_0x5b7caa(0xf8)]][_0x5b7caa(0x117)]+=_0x2b6d0c['cost'],_0x16942a['byModel'][_0x2b6d0c[_0x5b7caa(0xf8)]][_0x5b7caa(0xfe)]+=_0x2b6d0c['tokens'],_0x16942a['byModel'][_0x2b6d0c['modelId']][_0x5b7caa(0xfd)]+=0x1;}['checkBudgetLimits'](_0x22a94d,_0x5c8864,_0x35fae1){const _0x59bfde=a0_0x724650,_0x36dad6=this[_0x59bfde(0x127)]['daily'][_0x59bfde(0x140)](_0x22a94d),_0x596bb6=this[_0x59bfde(0x127)][_0x59bfde(0x129)]['get'](_0x5c8864),_0x3c4c42=this['usage'][_0x59bfde(0x13c)]['get'](_0x35fae1);_0x36dad6[_0x59bfde(0x117)]>this['budgets']['daily']&&this[_0x59bfde(0x118)](_0x59bfde(0x12b),_0x36dad6['cost'],this[_0x59bfde(0xf1)]['daily']),_0x596bb6['cost']>this['budgets']['weekly']&&this['sendBudgetAlert'](_0x59bfde(0x129),_0x596bb6['cost'],this[_0x59bfde(0xf1)][_0x59bfde(0x129)]),_0x3c4c42['cost']>this['budgets']['monthly']&&this[_0x59bfde(0x118)]('monthly',_0x3c4c42['cost'],this['budgets'][_0x59bfde(0x13c)]),this[_0x59bfde(0x103)](_0x36dad6,_0x596bb6,_0x3c4c42);}['checkThresholdAlerts'](_0x154cb9,_0x44874a,_0x3e0c7d){const _0x10daf8=a0_0x724650,_0x3a2be2=this['alerts']['thresholds'];this['checkThreshold']('daily',_0x154cb9[_0x10daf8(0x117)],this[_0x10daf8(0xf1)]['daily'],_0x3a2be2),this[_0x10daf8(0xf0)]('weekly',_0x44874a[_0x10daf8(0x117)],this[_0x10daf8(0xf1)][_0x10daf8(0x129)],_0x3a2be2),this[_0x10daf8(0xf0)]('monthly',_0x3e0c7d[_0x10daf8(0x117)],this['budgets']['monthly'],_0x3a2be2);}[a0_0x724650(0xf0)](_0x99b342,_0x1f182e,_0x2efb61,_0xf0c095){const _0x1aa08c=a0_0x724650,_0x39dbad=_0x1f182e/_0x2efb61*0x64;for(const _0x31bbc9 of _0xf0c095){if(_0x39dbad>=_0x31bbc9){const _0x2e4358=_0x99b342+'_'+_0x31bbc9,_0x4e92f8=this[_0x1aa08c(0x137)]['lastAlertTimes'][_0x1aa08c(0x140)](_0x2e4358),_0x3ea48e=Date[_0x1aa08c(0x134)]();(!_0x4e92f8||_0x3ea48e-_0x4e92f8>0x36ee80)&&(this[_0x1aa08c(0xfa)](_0x99b342,_0x39dbad,_0x31bbc9,_0x1f182e,_0x2efb61),this[_0x1aa08c(0x137)]['lastAlertTimes'][_0x1aa08c(0x119)](_0x2e4358,_0x3ea48e));break;}}}['sendBudgetAlert'](_0x4141c3,_0x13c3b4,_0x1c422f){const _0x4a8e55=a0_0x724650;this['logger'][_0x4a8e55(0x147)]('Budget\x20limit\x20exceeded',{'period':_0x4141c3,'currentUsage':_0x13c3b4,'budgetLimit':_0x1c422f,'excess':_0x13c3b4-_0x1c422f}),typeof process!=='undefined'&&process['emit']&&process['emit'](_0x4a8e55(0x121),{'type':_0x4a8e55(0x10f),'period':_0x4141c3,'currentUsage':_0x13c3b4,'budgetLimit':_0x1c422f,'excess':_0x13c3b4-_0x1c422f});}['sendThresholdAlert'](_0x127a77,_0x222d6a,_0x3fe609,_0x47bb67,_0x1b0351){const _0x1d78d7=a0_0x724650;this[_0x1d78d7(0x12f)]['warn']('Budget\x20threshold\x20reached',{'period':_0x127a77,'percentage':Math['round'](_0x222d6a),'threshold':_0x3fe609,'usage':_0x47bb67,'budget':_0x1b0351}),typeof process!=='undefined'&&process[_0x1d78d7(0x11c)]&&process['emit']('budgetAlert',{'type':_0x1d78d7(0x10e),'period':_0x127a77,'percentage':Math[_0x1d78d7(0x111)](_0x222d6a),'threshold':_0x3fe609,'usage':_0x47bb67,'budget':_0x1b0351});}['getDayKey'](_0x55d8dc){const _0x109b50=a0_0x724650;return _0x55d8dc['toISOString']()[_0x109b50(0x112)]('T')[0x0];}['getWeekKey'](_0x1e1fe1){const _0x1eb7ce=a0_0x724650,_0x500175=_0x1e1fe1[_0x1eb7ce(0x138)](),_0x270c4e=this['getWeekNumber'](_0x1e1fe1);return _0x500175+'-W'+_0x270c4e['toString']()['padStart'](0x2,'0');}[a0_0x724650(0x139)](_0x4059f2){const _0x1af5fc=a0_0x724650,_0x1a4519=_0x4059f2[_0x1af5fc(0x138)](),_0x25e9bc=_0x4059f2['getMonth']()+0x1;return _0x1a4519+'-'+_0x25e9bc[_0x1af5fc(0x13b)]()[_0x1af5fc(0x133)](0x2,'0');}['getWeekNumber'](_0xa10e40){const _0x41ba0d=a0_0x724650,_0x82ba58=new Date(_0xa10e40[_0x41ba0d(0x138)](),0x0,0x1),_0x316178=(_0xa10e40-_0x82ba58)/0x5265c00;return Math['ceil']((_0x316178+_0x82ba58[_0x41ba0d(0x106)]()+0x1)/0x7);}['convertToCSV'](_0x5898b9){const _0x3dba08=a0_0x724650,_0x2aaed7=[];return _0x2aaed7['push'](['Period',_0x3dba08(0x115),_0x3dba08(0x122),_0x3dba08(0x101),_0x3dba08(0x11d),'Agent','Model']),Object['entries'](_0x5898b9['daily'])[_0x3dba08(0xfc)](([_0x181732,_0x10eb6a])=>{const _0x190779=_0x3dba08;_0x2aaed7[_0x190779(0x13a)](['Daily',_0x181732,_0x10eb6a[_0x190779(0x117)],_0x10eb6a['tokens'],_0x10eb6a[_0x190779(0xfd)],'','']),Object['entries'](_0x10eb6a[_0x190779(0xf9)]||{})[_0x190779(0xfc)](([_0x4a8b54,_0x5c12c3])=>{const _0x42ac7a=_0x190779;_0x2aaed7[_0x42ac7a(0x13a)](['Daily',_0x181732,_0x5c12c3['cost'],_0x5c12c3['tokens'],_0x5c12c3['requests'],_0x4a8b54,'']);});}),_0x2aaed7[_0x3dba08(0x12a)](_0x255287=>_0x255287[_0x3dba08(0x102)](','))['join']('\x0a');}[a0_0x724650(0xf3)](){const _0x1e3e7d=a0_0x724650;try{this['logger']['info']('Budget\x20service\x20initialized');}catch(_0x3fb4f7){this[_0x1e3e7d(0x12f)][_0x1e3e7d(0x143)]('Failed\x20to\x20load\x20usage\x20data',{'error':_0x3fb4f7['message']});}}['saveUsageData'](){const _0x2d630c=a0_0x724650;try{this['logger'][_0x2d630c(0x146)](_0x2d630c(0x136));}catch(_0x6b947c){this[_0x2d630c(0x12f)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0x6b947c['message']});}}[a0_0x724650(0x142)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
|
|
1
|
+
function a0_0x5dcf(_0x290c5d,_0x45ea62){_0x290c5d=_0x290c5d-0xc0;const _0x56c73e=a0_0x56c7();let _0x5dcf4b=_0x56c73e[_0x290c5d];if(a0_0x5dcf['cfWKdf']===undefined){var _0x42ede6=function(_0x2857cf){const _0x4aec38='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xa78609='',_0xc4316a='';for(let _0x3dcf71=0x0,_0x2bd6e6,_0x5d8d2e,_0x2bc25b=0x0;_0x5d8d2e=_0x2857cf['charAt'](_0x2bc25b++);~_0x5d8d2e&&(_0x2bd6e6=_0x3dcf71%0x4?_0x2bd6e6*0x40+_0x5d8d2e:_0x5d8d2e,_0x3dcf71++%0x4)?_0xa78609+=String['fromCharCode'](0xff&_0x2bd6e6>>(-0x2*_0x3dcf71&0x6)):0x0){_0x5d8d2e=_0x4aec38['indexOf'](_0x5d8d2e);}for(let _0x16ff34=0x0,_0x30a240=_0xa78609['length'];_0x16ff34<_0x30a240;_0x16ff34++){_0xc4316a+='%'+('00'+_0xa78609['charCodeAt'](_0x16ff34)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xc4316a);};a0_0x5dcf['bilopj']=_0x42ede6,a0_0x5dcf['SLkmpF']={},a0_0x5dcf['cfWKdf']=!![];}const _0x2ffca6=_0x56c73e[0x0],_0x52f10e=_0x290c5d+_0x2ffca6,_0x36b255=a0_0x5dcf['SLkmpF'][_0x52f10e];return!_0x36b255?(_0x5dcf4b=a0_0x5dcf['bilopj'](_0x5dcf4b),a0_0x5dcf['SLkmpF'][_0x52f10e]=_0x5dcf4b):_0x5dcf4b=_0x36b255,_0x5dcf4b;}const a0_0x340bc2=a0_0x5dcf;(function(_0x54fc3f,_0x169f71){const _0x4b3559=a0_0x5dcf,_0x1475f3=_0x54fc3f();while(!![]){try{const _0x208c3c=-parseInt(_0x4b3559(0xdd))/0x1*(parseInt(_0x4b3559(0x107))/0x2)+parseInt(_0x4b3559(0x10e))/0x3*(parseInt(_0x4b3559(0xda))/0x4)+parseInt(_0x4b3559(0xec))/0x5+parseInt(_0x4b3559(0xfd))/0x6*(-parseInt(_0x4b3559(0x11c))/0x7)+-parseInt(_0x4b3559(0x11b))/0x8*(parseInt(_0x4b3559(0xe0))/0x9)+-parseInt(_0x4b3559(0xf4))/0xa*(parseInt(_0x4b3559(0x100))/0xb)+-parseInt(_0x4b3559(0xe5))/0xc*(-parseInt(_0x4b3559(0xd7))/0xd);if(_0x208c3c===_0x169f71)break;else _0x1475f3['push'](_0x1475f3['shift']());}catch(_0x57cfcc){_0x1475f3['push'](_0x1475f3['shift']());}}}(a0_0x56c7,0x390dd));function a0_0x56c7(){const _0x23f112=['z2v0','C2v0','y29UzMLN','y2HLy2TuAhjLC2HVBgrbBgvYDhm','mZi5nMjuqLv4uG','mtrktwnHq1q','z2v0tw9UDgG','z2v0v2vLA0TLEq','C3rYAw5NAwz5','yNvKz2v0qwXLCNq','ChvZAa','zw50CMLLCW','y29UDMvYDfrVq1nw','C2f2zvvZywDLrgf0yq','Bg9Nz2vY','ywXLCNrZ','Aw5PDgLHBgL6zvvZywDLrw50CNK','Bg9HzfvZywDLrgf0yq','yNvKz2v0CW','C2v0DxbqzxjPB2rPy1nHDMu','D2fYBG','q29ZDa','Dg90ywW','y3n2','z2v0rNvSBfLLyxi','rgfPBhK','y3jLyxrLrw1WDhLvC2fNzq','refjtfK','AxnxAxrOAw5cDwrNzxq','mtaZmde1oujItfv3Ea','z2v0qwDLBNrvC2fNzq','veHsrvnit0XeuW','mZe2DhLuwLb1','z2v0vxnHz2u','Bw9UDgHSEq','mZvptMfNBxi','C2v0qNvKz2v0CW','zgfPBhLbDMvYywDLCW','mtaXotDgCgjqBwi','BgfZDefSzxj0vgLTzxm','AM9PBG','ANnVBG','z2v0tw9KzwXvC2fNzq','mtq0r2TPuMLR','z2v0uMvTywLUAw5NqNvKz2v0','Bwf4','Dg9WqwDLBNrZ','qNvKz2v0igXPBwL0CYb1CgrHDgvK','ltaX','Dw5ZAgLMDa','mtGYmJyXmgz6thfsBW','yNLnB2rLBa','Dg9Rzw5ZqNLeyxK','qwDLBNq','tw9KzwW','AgfZ','y29ZDa','Dg9tDhjPBMC','mteYmhDNy2rQyq','C29YDa','C2vUzfrOCMvZAg9SzefSzxj0','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','ugvYAw9K','zM9YrwfJAa','zw1PDa','vg9Rzw5Z','z2v0rgf5s2v5','nZmZmdm4uKfkrhzl','C3bSAxq','zgfPBhK','mJiXmJfoswjnr2e','ywDLBNrjza','BM93','C2XPy2u','Dg9ju09tDhjPBMC','BwfW','DxnHz2u','mtKZotrgEgzNzgm','y2HLy2TcDwrNzxrmAw1PDhm','CMvXDwvZDhm','BwvZC2fNzq','rgf0zq','yNLbz2vUDa','y2fSy3vSyxrLq29ZDa','nZm2ohbJvwvYua','zxjYB3i','DxbKyxrLvxnHz2vfBNrYEq','C2vUzej1zgDLDefSzxj0','D2vLA2X5','z2v0v2vLA051BwjLCG','DgHYzxnOB2XKCW','Dg9Rzw5Z','y29ZDej5rgf5'];a0_0x56c7=function(){return _0x23f112;};return a0_0x56c7();}import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0xa78609,_0xc4316a){const _0x4035de=a0_0x5dcf;this[_0x4035de(0x119)]=_0xa78609||{},this['logger']=_0xc4316a,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x4035de(0xcc)]={'daily':BUDGET_LIMITS[_0x4035de(0xd5)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS['MONTHLY']},this[_0x4035de(0xc9)]={'enabled':!![],'thresholds':USAGE_ALERTS[_0x4035de(0xd9)],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x4035de(0xcd)]();}['trackUsage'](_0x3dcf71,_0x2bd6e6,_0x5d8d2e){const _0x11e6b8=a0_0x5dcf;try{const _0x2bc25b=this[_0x11e6b8(0x10d)](_0x2bd6e6,_0x5d8d2e),_0x16ff34=new Date(),_0x30a240=this['getDayKey'](_0x16ff34),_0x25c34b=this[_0x11e6b8(0xc1)](_0x16ff34),_0x309c99=this['getMonthKey'](_0x16ff34);this[_0x11e6b8(0xca)](this[_0x11e6b8(0x106)]['daily'],_0x30a240),this[_0x11e6b8(0xca)](this[_0x11e6b8(0x106)][_0x11e6b8(0x112)],_0x25c34b),this['initializeUsageEntry'](this['usage'][_0x11e6b8(0xdc)],_0x309c99);const _0x1a5d17={'agentId':_0x3dcf71,'modelId':_0x2bd6e6,'tokens':_0x5d8d2e['total_tokens'],'cost':_0x2bc25b,'timestamp':_0x16ff34['toISOString']()};return this['updateUsageEntry'](this['usage'][_0x11e6b8(0xff)]['get'](_0x30a240),_0x1a5d17),this[_0x11e6b8(0x110)](this['usage'][_0x11e6b8(0x112)]['get'](_0x25c34b),_0x1a5d17),this[_0x11e6b8(0x110)](this['usage'][_0x11e6b8(0xdc)][_0x11e6b8(0x117)](_0x309c99),_0x1a5d17),this[_0x11e6b8(0x106)][_0x11e6b8(0xd0)]['tokens']+=_0x5d8d2e['total_tokens'],this[_0x11e6b8(0x106)][_0x11e6b8(0xd0)][_0x11e6b8(0xf2)]+=_0x2bc25b,this[_0x11e6b8(0x106)]['total']['requests']+=0x1,this[_0x11e6b8(0x108)](_0x30a240,_0x25c34b,_0x309c99),this['logger']['info']('Usage\x20tracked',{'agentId':_0x3dcf71,'modelId':_0x2bd6e6,'tokens':_0x5d8d2e['total_tokens'],'cost':_0x2bc25b,'totalCost':this[_0x11e6b8(0x106)][_0x11e6b8(0xd0)]['cost']}),{'cost':_0x2bc25b,'totalCost':this['usage'][_0x11e6b8(0xd0)]['cost'],'totalTokens':this[_0x11e6b8(0x106)]['total']['tokens'],'dailyUsage':this['usage'][_0x11e6b8(0xff)][_0x11e6b8(0x117)](_0x30a240),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x5f050d){this[_0x11e6b8(0xc8)][_0x11e6b8(0x10f)]('Failed\x20to\x20track\x20usage',{'error':_0x5f050d[_0x11e6b8(0x10a)],'agentId':_0x3dcf71,'modelId':_0x2bd6e6});throw _0x5f050d;}}['calculateCost'](_0x2781c2,_0x9bbdeb){const _0x3ff51f=a0_0x5dcf,_0x3d0b6f=COST_PER_TOKEN[_0x2781c2];if(!_0x3d0b6f)return this[_0x3ff51f(0xc8)]['warn']('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x2781c2}),0x0;const _0x345428=(_0x9bbdeb['prompt_tokens']||0x0)*_0x3d0b6f['input'],_0x1579fa=(_0x9bbdeb['completion_tokens']||0x0)*_0x3d0b6f['output'];return _0x345428+_0x1579fa;}['getUsage'](_0x59deba=a0_0x340bc2(0xff),_0x1cbf96=new Date()){const _0x59fb5d=a0_0x340bc2;switch(_0x59deba){case'daily':return this['usage'][_0x59fb5d(0xff)][_0x59fb5d(0x117)](this['getDayKey'](_0x1cbf96))||this['createEmptyUsage']();case _0x59fb5d(0x112):return this['usage']['weekly'][_0x59fb5d(0x117)](this[_0x59fb5d(0xc1)](_0x1cbf96))||this[_0x59fb5d(0xd4)]();case'monthly':return this['usage'][_0x59fb5d(0xdc)][_0x59fb5d(0x117)](this['getMonthKey'](_0x1cbf96))||this[_0x59fb5d(0xd4)]();case _0x59fb5d(0xd0):return{...this[_0x59fb5d(0x106)]['total']};default:throw new Error('Invalid\x20period:\x20'+_0x59deba);}}[a0_0x340bc2(0xd8)](_0x5c402e,_0x40df65='daily'){const _0x52b4a2=a0_0x340bc2,_0x3e07fe=this['getUsage'](_0x40df65);return _0x3e07fe['byAgent']?.[_0x5c402e]||this[_0x52b4a2(0xd4)]();}[a0_0x340bc2(0xe4)](_0x2a8858,_0x1c642e='daily'){const _0x16a5f5=a0_0x340bc2,_0x51daf8=this['getUsage'](_0x1c642e);return _0x51daf8['byModel']?.[_0x2a8858]||this[_0x16a5f5(0xd4)]();}[a0_0x340bc2(0xde)](_0x1ede0c){const _0x1c17fb=a0_0x340bc2;if(_0x1ede0c['daily']!==undefined)this['budgets'][_0x1c17fb(0xff)]=_0x1ede0c[_0x1c17fb(0xff)];if(_0x1ede0c[_0x1c17fb(0x112)]!==undefined)this[_0x1c17fb(0xcc)][_0x1c17fb(0x112)]=_0x1ede0c[_0x1c17fb(0x112)];if(_0x1ede0c['monthly']!==undefined)this[_0x1c17fb(0xcc)][_0x1c17fb(0xdc)]=_0x1ede0c[_0x1c17fb(0xdc)];this['logger']['info'](_0x1c17fb(0xe9),this['budgets']),this['saveUsageData']();}[a0_0x340bc2(0xe6)](){const _0x298ed6=a0_0x340bc2,_0x1cd8d0=new Date(),_0x3bf971=this[_0x298ed6(0xdb)](_0x298ed6(0xff),_0x1cd8d0),_0x1f9727=this['getUsage']('weekly',_0x1cd8d0),_0x4ab28b=this[_0x298ed6(0xdb)]('monthly',_0x1cd8d0);return{'daily':Math['max'](0x0,this['budgets'][_0x298ed6(0xff)]-_0x3bf971['cost']),'weekly':Math[_0x298ed6(0xe7)](0x0,this['budgets'][_0x298ed6(0x112)]-_0x1f9727[_0x298ed6(0xf2)]),'monthly':Math['max'](0x0,this['budgets'][_0x298ed6(0xdc)]-_0x4ab28b['cost'])};}[a0_0x340bc2(0xd6)](_0x38fe80=a0_0x340bc2(0xff)){const _0xdee4fa=a0_0x340bc2,_0x58884f=this[_0xdee4fa(0xdb)](_0x38fe80),_0x5c6545=this[_0xdee4fa(0xcc)][_0x38fe80];return _0x58884f['cost']<=_0x5c6545;}['getUsageTrends'](_0x5ad238=0x1e){const _0x12ce13=a0_0x340bc2,_0x1d4d53={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x224cd6=new Date();let _0x5d8d3c=0x0,_0x5f5622=0x0,_0x4492f1=0x0;const _0x20b344=new Map(),_0x4d8f0f=new Map();for(let _0x5f44c0=0x0;_0x5f44c0<_0x5ad238;_0x5f44c0++){const _0x2080a8=new Date(_0x224cd6);_0x2080a8['setDate'](_0x2080a8['getDate']()-_0x5f44c0);const _0x15ba42=this['getDayKey'](_0x2080a8),_0x37b61c=this[_0x12ce13(0x106)][_0x12ce13(0xff)]['get'](_0x15ba42);_0x37b61c?(_0x5d8d3c+=_0x37b61c['cost'],_0x5f5622+=_0x37b61c[_0x12ce13(0x115)],_0x4492f1+=_0x37b61c['requests'],_0x1d4d53[_0x12ce13(0x116)][_0x12ce13(0xeb)]({'date':_0x15ba42,'cost':_0x37b61c[_0x12ce13(0xf2)]}),_0x1d4d53['tokensByDay'][_0x12ce13(0xeb)]({'date':_0x15ba42,'tokens':_0x37b61c['tokens']}),Object[_0x12ce13(0xc5)](_0x37b61c['byAgent']||{})[_0x12ce13(0xf9)](([_0x285493,_0x4401c2])=>{const _0x4261c3=_0x12ce13;!_0x20b344[_0x4261c3(0xf1)](_0x285493)&&_0x20b344['set'](_0x285493,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x2ae5f2=_0x20b344['get'](_0x285493);_0x2ae5f2['cost']+=_0x4401c2['cost'],_0x2ae5f2[_0x4261c3(0x115)]+=_0x4401c2[_0x4261c3(0x115)],_0x2ae5f2['requests']+=_0x4401c2[_0x4261c3(0x109)];}),Object[_0x12ce13(0xc5)](_0x37b61c[_0x12ce13(0xed)]||{})['forEach'](([_0x582557,_0x210849])=>{const _0x20c06a=_0x12ce13;!_0x4d8f0f['has'](_0x582557)&&_0x4d8f0f['set'](_0x582557,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x15c6d5=_0x4d8f0f[_0x20c06a(0x117)](_0x582557);_0x15c6d5[_0x20c06a(0xf2)]+=_0x210849['cost'],_0x15c6d5[_0x20c06a(0x115)]+=_0x210849[_0x20c06a(0x115)],_0x15c6d5[_0x20c06a(0x109)]+=_0x210849[_0x20c06a(0x109)];})):(_0x1d4d53[_0x12ce13(0x116)]['unshift']({'date':_0x15ba42,'cost':0x0}),_0x1d4d53[_0x12ce13(0xee)]['unshift']({'date':_0x15ba42,'tokens':0x0}));}return _0x1d4d53[_0x12ce13(0xdf)][_0x12ce13(0xf2)]=_0x5d8d3c/_0x5ad238,_0x1d4d53[_0x12ce13(0xdf)]['tokens']=_0x5f5622/_0x5ad238,_0x1d4d53[_0x12ce13(0xdf)]['requests']=_0x4492f1/_0x5ad238,_0x1d4d53[_0x12ce13(0xe8)]=Array['from'](_0x20b344['entries']())['map'](([_0x153918,_0x2baee0])=>({'id':_0x153918,..._0x2baee0}))[_0x12ce13(0xf5)]((_0x285257,_0x3300b4)=>_0x3300b4[_0x12ce13(0xf2)]-_0x285257[_0x12ce13(0xf2)])[_0x12ce13(0x103)](0x0,0xa),_0x1d4d53['topModels']=Array['from'](_0x4d8f0f[_0x12ce13(0xc5)]())[_0x12ce13(0x105)](([_0x3bf2b6,_0x351b6d])=>({'id':_0x3bf2b6,..._0x351b6d}))[_0x12ce13(0xf5)]((_0x43c8fb,_0x16c3e3)=>_0x16c3e3[_0x12ce13(0xf2)]-_0x43c8fb[_0x12ce13(0xf2)])['slice'](0x0,0xa),_0x1d4d53;}['exportUsageData'](_0x3c5c9e=a0_0x340bc2(0xe3),_0x3cd9dc=null,_0x4b06a2=null){const _0x1c58fa=a0_0x340bc2,_0x41cc6c={'budgets':this[_0x1c58fa(0xcc)],'total':this[_0x1c58fa(0x106)][_0x1c58fa(0xd0)],'daily':{},'weekly':{},'monthly':{}},_0x223641=(_0x199f17,_0xa5ed85)=>{const _0x511e03=_0x1c58fa,_0x13ef33={};return _0x199f17[_0x511e03(0xf9)]((_0x18fe16,_0x3e18d0)=>{const _0x2629a2=_0xa5ed85(_0x3e18d0);(!_0x3cd9dc||_0x2629a2>=_0x3cd9dc)&&(!_0x4b06a2||_0x2629a2<=_0x4b06a2)&&(_0x13ef33[_0x3e18d0]=_0x18fe16);}),_0x13ef33;};_0x3cd9dc||_0x4b06a2?(_0x41cc6c['daily']=_0x223641(this[_0x1c58fa(0x106)][_0x1c58fa(0xff)],_0x587a98=>new Date(_0x587a98)),_0x41cc6c[_0x1c58fa(0x112)]=_0x223641(this['usage'][_0x1c58fa(0x112)],_0x196fb8=>new Date(_0x196fb8)),_0x41cc6c[_0x1c58fa(0xdc)]=_0x223641(this[_0x1c58fa(0x106)][_0x1c58fa(0xdc)],_0x29a616=>new Date(_0x29a616+_0x1c58fa(0xea)))):(this[_0x1c58fa(0x106)][_0x1c58fa(0xff)]['forEach']((_0x513a72,_0x100fcf)=>_0x41cc6c['daily'][_0x100fcf]=_0x513a72),this['usage']['weekly'][_0x1c58fa(0xf9)]((_0x1c11f3,_0x4a895e)=>_0x41cc6c['weekly'][_0x4a895e]=_0x1c11f3),this['usage']['monthly'][_0x1c58fa(0xf9)]((_0x3f137c,_0x715c7a)=>_0x41cc6c['monthly'][_0x715c7a]=_0x3f137c));if(_0x3c5c9e===_0x1c58fa(0xd1))return this[_0x1c58fa(0xc6)](_0x41cc6c);return JSON[_0x1c58fa(0xc2)](_0x41cc6c,null,0x2);}[a0_0x340bc2(0xca)](_0x3e852a,_0x5cadc3){const _0x514073=a0_0x340bc2;!_0x3e852a[_0x514073(0xf1)](_0x5cadc3)&&_0x3e852a[_0x514073(0x118)](_0x5cadc3,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x340bc2(0x110)](_0x3fe3c0,_0x2b7e73){const _0x27e203=a0_0x340bc2;_0x3fe3c0['cost']+=_0x2b7e73[_0x27e203(0xf2)],_0x3fe3c0['tokens']+=_0x2b7e73[_0x27e203(0x115)],_0x3fe3c0['requests']+=0x1,!_0x3fe3c0[_0x27e203(0x10c)][_0x2b7e73[_0x27e203(0x101)]]&&(_0x3fe3c0['byAgent'][_0x2b7e73[_0x27e203(0x101)]]=this[_0x27e203(0xd4)]()),_0x3fe3c0[_0x27e203(0x10c)][_0x2b7e73[_0x27e203(0x101)]]['cost']+=_0x2b7e73[_0x27e203(0xf2)],_0x3fe3c0['byAgent'][_0x2b7e73[_0x27e203(0x101)]][_0x27e203(0x115)]+=_0x2b7e73[_0x27e203(0x115)],_0x3fe3c0[_0x27e203(0x10c)][_0x2b7e73['agentId']]['requests']+=0x1,!_0x3fe3c0[_0x27e203(0xed)][_0x2b7e73['modelId']]&&(_0x3fe3c0['byModel'][_0x2b7e73['modelId']]=this['createEmptyUsage']()),_0x3fe3c0[_0x27e203(0xed)][_0x2b7e73['modelId']][_0x27e203(0xf2)]+=_0x2b7e73[_0x27e203(0xf2)],_0x3fe3c0[_0x27e203(0xed)][_0x2b7e73['modelId']][_0x27e203(0x115)]+=_0x2b7e73['tokens'],_0x3fe3c0[_0x27e203(0xed)][_0x2b7e73['modelId']][_0x27e203(0x109)]+=0x1;}[a0_0x340bc2(0x108)](_0x41164d,_0x4d9eff,_0x29cecf){const _0x160610=a0_0x340bc2,_0x3d4e43=this['usage']['daily']['get'](_0x41164d),_0x4288c9=this['usage'][_0x160610(0x112)]['get'](_0x4d9eff),_0x93c4a5=this['usage'][_0x160610(0xdc)][_0x160610(0x117)](_0x29cecf);_0x3d4e43['cost']>this['budgets']['daily']&&this[_0x160610(0x111)](_0x160610(0xff),_0x3d4e43['cost'],this['budgets']['daily']),_0x4288c9['cost']>this[_0x160610(0xcc)][_0x160610(0x112)]&&this['sendBudgetAlert'](_0x160610(0x112),_0x4288c9[_0x160610(0xf2)],this[_0x160610(0xcc)]['weekly']),_0x93c4a5['cost']>this['budgets']['monthly']&&this['sendBudgetAlert']('monthly',_0x93c4a5['cost'],this[_0x160610(0xcc)]['monthly']),this[_0x160610(0x11a)](_0x3d4e43,_0x4288c9,_0x93c4a5);}[a0_0x340bc2(0x11a)](_0x4242c5,_0x3fefa0,_0x367ddb){const _0x100b46=a0_0x340bc2,_0x5517fb=this['alerts'][_0x100b46(0x114)];this['checkThreshold'](_0x100b46(0xff),_0x4242c5[_0x100b46(0xf2)],this['budgets'][_0x100b46(0xff)],_0x5517fb),this['checkThreshold'](_0x100b46(0x112),_0x3fefa0['cost'],this['budgets']['weekly'],_0x5517fb),this['checkThreshold'](_0x100b46(0xdc),_0x367ddb[_0x100b46(0xf2)],this['budgets']['monthly'],_0x5517fb);}['checkThreshold'](_0x2a128e,_0x44c2ef,_0x16c682,_0x59f102){const _0x38d56d=a0_0x340bc2,_0x38c621=_0x44c2ef/_0x16c682*0x64;for(const _0x2f7475 of _0x59f102){if(_0x38c621>=_0x2f7475){const _0x44aea0=_0x2a128e+'_'+_0x2f7475,_0x17536c=this[_0x38d56d(0xc9)][_0x38d56d(0xe1)]['get'](_0x44aea0),_0x46f1a6=Date[_0x38d56d(0x102)]();(!_0x17536c||_0x46f1a6-_0x17536c>0x36ee80)&&(this[_0x38d56d(0xf6)](_0x2a128e,_0x38c621,_0x2f7475,_0x44c2ef,_0x16c682),this[_0x38d56d(0xc9)][_0x38d56d(0xe1)]['set'](_0x44aea0,_0x46f1a6));break;}}}['sendBudgetAlert'](_0x576fd2,_0x1a2334,_0x372881){const _0x52ad61=a0_0x340bc2;this['logger']['warn']('Budget\x20limit\x20exceeded',{'period':_0x576fd2,'currentUsage':_0x1a2334,'budgetLimit':_0x372881,'excess':_0x1a2334-_0x372881}),typeof process!=='undefined'&&process['emit']&&process[_0x52ad61(0xfa)]('budgetAlert',{'type':'budget_exceeded','period':_0x576fd2,'currentUsage':_0x1a2334,'budgetLimit':_0x372881,'excess':_0x1a2334-_0x372881});}['sendThresholdAlert'](_0x4d671e,_0x446079,_0x374493,_0x39f282,_0x5df62d){const _0x3b751a=a0_0x340bc2;this['logger'][_0x3b751a(0xce)]('Budget\x20threshold\x20reached',{'period':_0x4d671e,'percentage':Math['round'](_0x446079),'threshold':_0x374493,'usage':_0x39f282,'budget':_0x5df62d}),typeof process!=='undefined'&&process['emit']&&process[_0x3b751a(0xfa)](_0x3b751a(0xc3),{'type':'threshold_reached','period':_0x4d671e,'percentage':Math['round'](_0x446079),'threshold':_0x374493,'usage':_0x39f282,'budget':_0x5df62d});}[a0_0x340bc2(0xfc)](_0x3c9e4e){const _0x2b37dd=a0_0x340bc2;return _0x3c9e4e[_0x2b37dd(0x104)]()[_0x2b37dd(0xfe)]('T')[0x0];}[a0_0x340bc2(0xc1)](_0x358718){const _0x138293=a0_0x340bc2,_0x7281b9=_0x358718[_0x138293(0xd2)](),_0xb19b5d=this[_0x138293(0x113)](_0x358718);return _0x7281b9+'-W'+_0xb19b5d['toString']()['padStart'](0x2,'0');}['getMonthKey'](_0x322041){const _0x1ebf67=a0_0x340bc2,_0x351130=_0x322041['getFullYear'](),_0x52dc70=_0x322041[_0x1ebf67(0xc0)]()+0x1;return _0x351130+'-'+_0x52dc70[_0x1ebf67(0xf3)]()['padStart'](0x2,'0');}[a0_0x340bc2(0x113)](_0x77c25b){const _0x588594=new Date(_0x77c25b['getFullYear'](),0x0,0x1),_0x280d80=(_0x77c25b-_0x588594)/0x5265c00;return Math['ceil']((_0x280d80+_0x588594['getDay']()+0x1)/0x7);}['convertToCSV'](_0xffd604){const _0x3c7bea=a0_0x340bc2,_0x1e4db1=[];return _0x1e4db1[_0x3c7bea(0xc4)]([_0x3c7bea(0xf8),_0x3c7bea(0x10b),_0x3c7bea(0xcf),_0x3c7bea(0xfb),'Requests',_0x3c7bea(0xef),_0x3c7bea(0xf0)]),Object[_0x3c7bea(0xc5)](_0xffd604['daily'])[_0x3c7bea(0xf9)](([_0x5368ba,_0x5ccf69])=>{const _0x3d233e=_0x3c7bea;_0x1e4db1['push'](['Daily',_0x5368ba,_0x5ccf69['cost'],_0x5ccf69['tokens'],_0x5ccf69[_0x3d233e(0x109)],'','']),Object['entries'](_0x5ccf69[_0x3d233e(0x10c)]||{})['forEach'](([_0x3cbaea,_0xfd6180])=>{const _0x4f3ff5=_0x3d233e;_0x1e4db1['push']([_0x4f3ff5(0xd3),_0x5368ba,_0xfd6180['cost'],_0xfd6180[_0x4f3ff5(0x115)],_0xfd6180[_0x4f3ff5(0x109)],_0x3cbaea,'']);});}),_0x1e4db1['map'](_0x40513f=>_0x40513f[_0x3c7bea(0xe2)](','))[_0x3c7bea(0xe2)]('\x0a');}[a0_0x340bc2(0xcb)](){const _0x16c8bc=a0_0x340bc2;try{this['logger']['info']('Budget\x20service\x20initialized');}catch(_0x29efa2){this[_0x16c8bc(0xc8)]['error'](_0x16c8bc(0xf7),{'error':_0x29efa2['message']});}}[a0_0x340bc2(0xc7)](){const _0x31969f=a0_0x340bc2;try{this['logger']['debug']('Usage\x20data\x20saved');}catch(_0x13ca38){this[_0x31969f(0xc8)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0x13ca38['message']});}}[a0_0x340bc2(0xcd)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a0_0x5e8d55=a0_0x1a5c;(function(_0xcd86a8,_0x44d45f){const _0x25c24f=a0_0x1a5c,_0x589f79=_0xcd86a8();while(!![]){try{const _0xa7a996=-parseInt(_0x25c24f(0x1b9))/0x1*(parseInt(_0x25c24f(0x1a2))/0x2)+-parseInt(_0x25c24f(0x1ad))/0x3+parseInt(_0x25c24f(0x1c7))/0x4+parseInt(_0x25c24f(0x1a1))/0x5*(parseInt(_0x25c24f(0x1b0))/0x6)+-parseInt(_0x25c24f(0x1c5))/0x7+-parseInt(_0x25c24f(0x1c1))/0x8+-parseInt(_0x25c24f(0x1c0))/0x9*(-parseInt(_0x25c24f(0x1ba))/0xa);if(_0xa7a996===_0x44d45f)break;else _0x589f79['push'](_0x589f79['shift']());}catch(_0x77e9a6){_0x589f79['push'](_0x589f79['shift']());}}}(a0_0x1760,0x5f879));import a0_0x4f751d from'./fileAttachmentService.js';function a0_0x1a5c(_0x46709d,_0x40aeea){_0x46709d=_0x46709d-0x1a0;const _0x176071=a0_0x1760();let _0x1a5c35=_0x176071[_0x46709d];if(a0_0x1a5c['QFDBfp']===undefined){var _0x590904=function(_0x3e01a5){const _0x233005='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4f751d='',_0xcfa573='';for(let _0x173ad2=0x0,_0x496d55,_0x327178,_0x582fb7=0x0;_0x327178=_0x3e01a5['charAt'](_0x582fb7++);~_0x327178&&(_0x496d55=_0x173ad2%0x4?_0x496d55*0x40+_0x327178:_0x327178,_0x173ad2++%0x4)?_0x4f751d+=String['fromCharCode'](0xff&_0x496d55>>(-0x2*_0x173ad2&0x6)):0x0){_0x327178=_0x233005['indexOf'](_0x327178);}for(let _0x57c29f=0x0,_0x3707ee=_0x4f751d['length'];_0x57c29f<_0x3707ee;_0x57c29f++){_0xcfa573+='%'+('00'+_0x4f751d['charCodeAt'](_0x57c29f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xcfa573);};a0_0x1a5c['JQXZOg']=_0x590904,a0_0x1a5c['bZriwO']={},a0_0x1a5c['QFDBfp']=!![];}const _0x5f4315=_0x176071[0x0],_0x1cbc79=_0x46709d+_0x5f4315,_0x2e5e45=a0_0x1a5c['bZriwO'][_0x1cbc79];return!_0x2e5e45?(_0x1a5c35=a0_0x1a5c['JQXZOg'](_0x1a5c35),a0_0x1a5c['bZriwO'][_0x1cbc79]=_0x1a5c35):_0x1a5c35=_0x2e5e45,_0x1a5c35;}function a0_0x1760(){const _0x21b180=['cJXHDhrHy2HLzc1MAwXLCZ4k','zM9YBwf0ugrMrMLSzq','BwvZC2fNzq','z2v0qwn0AxzLqxr0ywnOBwvUDhm','zxn0Aw1HDgvKvg9Rzw5Z','ow9Ks0XquW','ndm1mti0oer4tMDcEa','BgvUz3rO','ica8zMLSzsbUyw1Lpsi','s0iIig1Vzgu9iMnVBNrLBNqIpGO','mJi5nJqYwxPzzfHZ','iIaVpG','mtu0nJe1mNrSAKTZtW','iIbZAxPLpsi','mcbcExrLCW','iIb0ExbLpsi','zM9YBwf0vgv4DezPBgu','jNf1B3q7','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','Dg9Rzw5fC3rPBwf0zq','rxjYB3iGzxn0Aw1HDgLUzYb0B3rHBcb0B2TLBNm','y29UzMLN','zM9YBwf0qNL0zxm','CMvWBgfJzq','mZCWnwTYyKrkwq','ote0mtHLAhDtBgO','yxr0ywnOBwvUDfnLCNzPy2u','zxjYB3i','CMvMzxjLBMnL','CgrM','zM9YBwf0uMvMzxjLBMnLrMLSzq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','Dg9gAxHLza','zxnJyxbLwg1S','Bw9Kzq','Bg9Nz2vY','mtC4odq4mfzTtxPMwq','zMLSDgvY','cIaGpc9MAwXLpG','mtuZmhjItxHvAq','C2L6zq','iIbTB2rPzMLLzd0I','ChvZAa','Cg93','y29UDgvUDa','Aw1Hz2u','zM9YBwf0sw1Hz2vgAwXL','C3bSAxq','nuDPsfnktW','mtiXnZiXmZbAt0j4Dgu'];a0_0x1760=function(){return _0x21b180;};return a0_0x1760();}class ContextInjectionService{constructor(_0xcfa573={},_0x173ad2=null){const _0x1575b4=a0_0x1a5c;this[_0x1575b4(0x1d0)]=_0xcfa573,this[_0x1575b4(0x1ac)]=_0x173ad2,this[_0x1575b4(0x1a3)]=new a0_0x4f751d(_0xcfa573,_0x173ad2);}async['initialize'](){await this['attachmentService']['initialize']();}async['buildDynamicContext'](_0x496d55){const _0xac3fbe=a0_0x1a5c;try{const _0x327178=await this['attachmentService'][_0xac3fbe(0x1be)](_0x496d55);if(_0x327178[_0xac3fbe(0x1c2)]===0x0)return'';const _0x582fb7=_0x327178['filter'](_0x1f2a0e=>_0x1f2a0e['mode']==='content'),_0x57c29f=_0x327178['filter'](_0x75ed48=>_0x75ed48[_0xac3fbe(0x1ab)]==='reference');let _0x3707ee='';if(_0x582fb7['length']>0x0){_0x3707ee+=_0xac3fbe(0x1bb);for(const _0x2fe8eb of _0x582fb7){const _0x1b64a4=await this[_0xac3fbe(0x1a3)]['getAttachmentContent'](_0x2fe8eb['fileId']);if(_0x1b64a4){const _0x313235=this['formatContentFile'](_0x2fe8eb,_0x1b64a4);_0x3707ee+=_0x313235+'\x0a';}}_0x3707ee+='</attached-files>\x0a';}if(_0x57c29f[_0xac3fbe(0x1c2)]>0x0){_0x3707ee+='\x0a<file-references>\x0a';for(const _0x19c409 of _0x57c29f){const _0x585f6c=this[_0xac3fbe(0x1a7)](_0x19c409);_0x3707ee+=_0x585f6c+'\x0a';}_0x3707ee+=_0xac3fbe(0x1a8),_0x3707ee+=_0xac3fbe(0x1cd);}return _0x3707ee;}catch(_0x2b17bf){return this[_0xac3fbe(0x1ac)]?.[_0xac3fbe(0x1a4)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x496d55,'error':_0x2b17bf['message']}),'';}}['formatContentFile'](_0x377ea2,_0x28f0e8){const _0x48cfec=a0_0x1a5c,{fileName:_0x29c2ca,fileType:_0x2f364a,size:_0x497dd4,contentType:_0x270d47}=_0x377ea2,_0x1c2440=(_0x497dd4/0x400)['toFixed'](0x2);if(_0x270d47==='text')return this['formatTextFile'](_0x377ea2,_0x28f0e8);else{if(_0x270d47===_0x48cfec(0x1b6))return this[_0x48cfec(0x1b7)](_0x377ea2,_0x28f0e8);else{if(_0x270d47===_0x48cfec(0x1a6))return this[_0x48cfec(0x1bc)](_0x377ea2,_0x28f0e8);}}return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x29c2ca)+'\x22\x20type=\x22'+_0x2f364a+_0x48cfec(0x1c8)+_0x1c2440+_0x48cfec(0x1c4)+this[_0x48cfec(0x1aa)](_0x28f0e8)+_0x48cfec(0x1af);}[a0_0x5e8d55(0x1cb)](_0x5434f7,_0x3fcb7c){const _0x1e7e50=a0_0x5e8d55,{fileName:_0x57ad9d,fileType:_0x4aece7,size:_0x545a8e}=_0x5434f7,_0x59f338=(_0x545a8e/0x400)[_0x1e7e50(0x1a9)](0x2);return _0x1e7e50(0x1c3)+this['escapeXml'](_0x57ad9d)+_0x1e7e50(0x1ca)+_0x4aece7+'\x22\x20size=\x22'+_0x59f338+_0x1e7e50(0x1c4)+this[_0x1e7e50(0x1aa)](_0x3fcb7c)+_0x1e7e50(0x1af);}['formatImageFile'](_0x42ba01,_0xbff2b1){const _0x5ef4ec=a0_0x5e8d55,{fileName:_0xc81dbc,fileType:_0x2e9802,size:_0x334003}=_0x42ba01,_0x468eac=(_0x334003/0x400)[_0x5ef4ec(0x1a9)](0x2);return _0x5ef4ec(0x1c3)+this[_0x5ef4ec(0x1aa)](_0xc81dbc)+'\x22\x20type=\x22'+_0x2e9802+'\x22\x20size=\x22'+_0x468eac+_0x5ef4ec(0x1c4)+_0xbff2b1+_0x5ef4ec(0x1af);}['formatPdfFile'](_0x57250d,_0x58f5d4){const _0x42125a=a0_0x5e8d55,{fileName:_0x5e0b2e,fileType:_0xae65e1,size:_0x2a0e5d}=_0x57250d,_0x4152df=(_0x2a0e5d/0x400)[_0x42125a(0x1a9)](0x2);return _0x42125a(0x1c3)+this[_0x42125a(0x1aa)](_0x5e0b2e)+_0x42125a(0x1ca)+_0xae65e1+_0x42125a(0x1c8)+_0x4152df+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x42125a(0x1aa)](_0x58f5d4)+_0x42125a(0x1af);}[a0_0x5e8d55(0x1a7)](_0x4a0d2a){const _0x13a1c9=a0_0x5e8d55,{fileName:_0xd8a1f5,originalPath:_0x5e86e4,size:_0x1ff061,fileType:_0x51c578,lastModified:_0x5f5180}=_0x4a0d2a,_0x383479=this['formatBytes'](_0x1ff061),_0x2d935d=new Date(_0x5f5180)['toISOString']()[_0x13a1c9(0x1b8)]('T')[0x0];return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0xd8a1f5)+'\x22\x20path=\x22'+this['escapeXml'](_0x5e86e4)+_0x13a1c9(0x1c8)+_0x383479+'\x22\x20type=\x22'+_0x51c578+_0x13a1c9(0x1b2)+_0x2d935d+_0x13a1c9(0x1c6);}['escapeXml'](_0x276cdd){const _0x1018f8=a0_0x5e8d55;if(!_0x276cdd)return'';return _0x276cdd[_0x1018f8(0x1a0)](/&/g,'&')[_0x1018f8(0x1a0)](/</g,'<')['replace'](/>/g,'>')[_0x1018f8(0x1a0)](/"/g,_0x1018f8(0x1cc))[_0x1018f8(0x1a0)](/'/g,''');}[a0_0x5e8d55(0x1d1)](_0x310ee5){const _0x471fb5=a0_0x5e8d55;if(_0x310ee5===0x0)return _0x471fb5(0x1c9);const _0x21aa7e=0x400,_0x1f06e4=['Bytes','KB','MB','GB'],_0x44168b=Math['floor'](Math['log'](_0x310ee5)/Math['log'](_0x21aa7e));return parseFloat((_0x310ee5/Math[_0x471fb5(0x1b4)](_0x21aa7e,_0x44168b))[_0x471fb5(0x1a9)](0x2))+_0x1f06e4[_0x44168b];}async['estimateTotalTokens'](_0xa3eb89){const _0x59fdf4=a0_0x5e8d55;try{const _0x2760c7=await this['attachmentService'][_0x59fdf4(0x1be)](_0xa3eb89);let _0x2550ad=0x0;for(const _0x34a131 of _0x2760c7){_0x34a131[_0x59fdf4(0x1ab)]===_0x59fdf4(0x1b5)?_0x2550ad+=_0x34a131[_0x59fdf4(0x1ce)]||0x0:_0x2550ad+=0x14;}return _0x2550ad;}catch(_0x39a394){return this[_0x59fdf4(0x1ac)]?.['error'](_0x59fdf4(0x1cf),{'agentId':_0xa3eb89,'error':_0x39a394[_0x59fdf4(0x1bd)]}),0x0;}}async['getAttachmentSummary'](_0x1e0fe0){const _0x3a9fbc=a0_0x5e8d55;try{const _0x4e787e=await this[_0x3a9fbc(0x1a3)][_0x3a9fbc(0x1be)](_0x1e0fe0),_0x5e4e2a={'totalActive':_0x4e787e[_0x3a9fbc(0x1c2)],'contentMode':_0x4e787e[_0x3a9fbc(0x1ae)](_0x35ed12=>_0x35ed12['mode']==='content')[_0x3a9fbc(0x1c2)],'referenceMode':_0x4e787e[_0x3a9fbc(0x1ae)](_0x39df08=>_0x39df08['mode']===_0x3a9fbc(0x1a5))[_0x3a9fbc(0x1c2)],'estimatedTokens':0x0,'files':[]};for(const _0x37abd8 of _0x4e787e){_0x5e4e2a[_0x3a9fbc(0x1bf)]+=_0x37abd8[_0x3a9fbc(0x1ce)]||0x0,_0x5e4e2a['files'][_0x3a9fbc(0x1b3)]({'fileName':_0x37abd8['fileName'],'mode':_0x37abd8['mode'],'size':this['formatBytes'](_0x37abd8[_0x3a9fbc(0x1b1)]),'tokens':_0x37abd8['tokenEstimate']||0x0});}return _0x5e4e2a;}catch(_0x1602f4){return this['logger']?.['error']('Error\x20getting\x20attachment\x20summary',{'agentId':_0x1e0fe0,'error':_0x1602f4[_0x3a9fbc(0x1bd)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
|