@loxia-labs/loxia-autopilot-one 1.0.12 → 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 -2
- 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_0x293c1d=a0_0x2075;(function(_0x1aae45,_0x11a431){const _0x1dffa2=a0_0x2075,_0x6e0991=_0x1aae45();while(!![]){try{const _0x4dfdab=-parseInt(_0x1dffa2(0x1e3))/0x1+parseInt(_0x1dffa2(0x222))/0x2*(-parseInt(_0x1dffa2(0x198))/0x3)+parseInt(_0x1dffa2(0x1c0))/0x4+parseInt(_0x1dffa2(0x1d6))/0x5*(-parseInt(_0x1dffa2(0x1c3))/0x6)+parseInt(_0x1dffa2(0x1da))/0x7+-parseInt(_0x1dffa2(0x201))/0x8+-parseInt(_0x1dffa2(0x1f9))/0x9*(-parseInt(_0x1dffa2(0x1b5))/0xa);if(_0x4dfdab===_0x11a431)break;else _0x6e0991['push'](_0x6e0991['shift']());}catch(_0x4cf504){_0x6e0991['push'](_0x6e0991['shift']());}}}(a0_0x311f,0xada31));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x2075(_0xf77a90,_0x628751){_0xf77a90=_0xf77a90-0x193;const _0x311fdf=a0_0x311f();let _0x2075a5=_0x311fdf[_0xf77a90];if(a0_0x2075['VxdMfI']===undefined){var _0x181edc=function(_0x2d5a87){const _0x2fe778='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2502dd='',_0x41822c='';for(let _0x512c48=0x0,_0x311eee,_0x20928c,_0x1e02c4=0x0;_0x20928c=_0x2d5a87['charAt'](_0x1e02c4++);~_0x20928c&&(_0x311eee=_0x512c48%0x4?_0x311eee*0x40+_0x20928c:_0x20928c,_0x512c48++%0x4)?_0x2502dd+=String['fromCharCode'](0xff&_0x311eee>>(-0x2*_0x512c48&0x6)):0x0){_0x20928c=_0x2fe778['indexOf'](_0x20928c);}for(let _0x54b86b=0x0,_0x47c13e=_0x2502dd['length'];_0x54b86b<_0x47c13e;_0x54b86b++){_0x41822c+='%'+('00'+_0x2502dd['charCodeAt'](_0x54b86b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x41822c);};a0_0x2075['yJDEeA']=_0x181edc,a0_0x2075['oBesbS']={},a0_0x2075['VxdMfI']=!![];}const _0x597b49=_0x311fdf[0x0],_0x3d0f75=_0xf77a90+_0x597b49,_0x3194b2=a0_0x2075['oBesbS'][_0x3d0f75];return!_0x3194b2?(_0x2075a5=a0_0x2075['yJDEeA'](_0x2075a5),a0_0x2075['oBesbS'][_0x3d0f75]=_0x2075a5):_0x2075a5=_0x3194b2,_0x2075a5;}class AIService{constructor(_0x2502dd,_0x41822c,_0x512c48,_0x311eee){const _0x326559=a0_0x2075;this[_0x326559(0x1a6)]=_0x2502dd,this['logger']=_0x41822c,this[_0x326559(0x208)]=_0x512c48,this[_0x326559(0x1cd)]=_0x311eee,this[_0x326559(0x1ab)]=_0x2502dd['backend']?.[_0x326559(0x1ab)]||'https://api.loxia.ai',this[_0x326559(0x213)]=_0x2502dd[_0x326559(0x20c)]?.[_0x326559(0x213)]||0xea60,this['retryAttempts']=_0x2502dd['backend']?.['retryAttempts']||0x3,this['rateLimiters']=new Map(),this[_0x326559(0x22b)]=new Map(),this[_0x326559(0x219)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this['_initializeModelSpecs'](),this[_0x326559(0x1cf)]=new Map(),this[_0x326559(0x1ad)]=null,this[_0x326559(0x1cc)]=null;}async['sendMessage'](_0x20928c,_0x1e02c4,_0x54b86b={}){const _0x5e4036=a0_0x2075,_0x47c13e='req-'+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this[_0x5e4036(0x1e9)](_0x20928c);const _0x5bd70a=this[_0x5e4036(0x209)](_0x1e02c4,_0x20928c,_0x54b86b),_0x29c382={'model':_0x20928c,'messages':_0x5bd70a,'options':{'max_tokens':this['modelSpecs'][_0x20928c]?.['maxTokens']||0xfa0,'temperature':_0x54b86b['temperature']||0.7,'stream':_0x54b86b['stream']||![]},'metadata':{'requestId':_0x47c13e,'agentId':_0x54b86b['agentId'],'timestamp':new Date()[_0x5e4036(0x1e0)]()}};_0x54b86b['systemPrompt']&&(_0x29c382['system']=_0x54b86b['systemPrompt']);this['logger']['info']('Sending\x20message\x20to\x20model:\x20'+_0x20928c,{'requestId':_0x47c13e,'agentId':_0x54b86b[_0x5e4036(0x224)],'messageCount':Array[_0x5e4036(0x1e1)](_0x1e02c4)?_0x1e02c4[_0x5e4036(0x197)]:0x1,'maxTokens':_0x29c382[_0x5e4036(0x20a)]});const _0x4ed6fc=await this['_makeAPIRequest']('/chat/completions',_0x29c382,_0x47c13e,{..._0x54b86b,'sessionId':_0x54b86b['sessionId'],'platformProvided':_0x54b86b['platformProvided']||![]});return _0x4ed6fc['usage']&&await this['trackUsage'](_0x54b86b[_0x5e4036(0x224)],_0x20928c,{'prompt_tokens':_0x4ed6fc[_0x5e4036(0x20b)]['prompt_tokens']||0x0,'completion_tokens':_0x4ed6fc['usage']['completion_tokens']||0x0,'total_tokens':_0x4ed6fc[_0x5e4036(0x20b)][_0x5e4036(0x227)]||0x0}),this[_0x5e4036(0x1d7)](),{'content':_0x4ed6fc['choices'][0x0]?.['message']?.[_0x5e4036(0x1f2)]||'','model':_0x4ed6fc[_0x5e4036(0x1a1)],'tokenUsage':_0x4ed6fc['usage'],'requestId':_0x47c13e,'finishReason':_0x4ed6fc[_0x5e4036(0x1f1)][0x0]?.['finish_reason']};}catch(_0x7fd068){this['_recordFailure'](),this[_0x5e4036(0x1be)]['error']('AI\x20service\x20request\x20failed:\x20'+_0x7fd068['message'],{'requestId':_0x47c13e,'model':_0x20928c,'agentId':_0x54b86b['agentId'],'error':_0x7fd068['stack']}),await this[_0x5e4036(0x203)](_0x7fd068,{'requestId':_0x47c13e,'model':_0x20928c,'agentId':_0x54b86b[_0x5e4036(0x224)]});throw _0x7fd068;}}async[a0_0x293c1d(0x1ba)](_0xeffb41,_0x18b861={}){const _0x45e662=a0_0x293c1d;try{const _0x1fd6e1=MODEL_ROUTING[_0xeffb41[_0x45e662(0x1a5)]()]||MODEL_ROUTING[_0x45e662(0x1a9)],_0x2cd8e1=[];for(const _0xeeeb76 of _0x1fd6e1){const _0x37a8df=await this['_checkModelHealth'](_0xeeeb76);_0x37a8df&&_0x2cd8e1[_0x45e662(0x1a4)](_0xeeeb76);}if(_0x2cd8e1['length']===0x0)return this[_0x45e662(0x1be)][_0x45e662(0x1fe)]('No\x20healthy\x20models\x20available\x20for\x20task:\x20'+_0xeffb41+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x357561=_0x2cd8e1[0x0];if(_0x18b861['preferredModel']&&_0x2cd8e1[_0x45e662(0x1d1)](_0x18b861['preferredModel']))_0x357561=_0x18b861['preferredModel'];else{if(_0x18b861['complexity']===_0x45e662(0x220)&&_0x2cd8e1[_0x45e662(0x1d1)](MODELS['ANTHROPIC_OPUS']))_0x357561=MODELS['ANTHROPIC_OPUS'];else _0x18b861['speed']==='fast'&&_0x2cd8e1[_0x45e662(0x1d1)](MODELS['ANTHROPIC_HAIKU'])&&(_0x357561=MODELS[_0x45e662(0x1fb)]);}return this['logger']['info'](_0x45e662(0x1ed)+_0xeffb41,{'selectedModel':_0x357561,'availableModels':_0x2cd8e1['length'],'context':_0x18b861}),_0x357561;}catch(_0x486d4a){return this[_0x45e662(0x1be)]['error']('Model\x20routing\x20failed:\x20'+_0x486d4a[_0x45e662(0x1d8)],{'task':_0xeffb41,'context':_0x18b861}),MODEL_ROUTING[_0x45e662(0x1a9)][0x0];}}async['compactizeConversation'](_0x24ec1d,_0x56c1ef){const _0x531c8c=a0_0x293c1d,_0x33d514=this[_0x531c8c(0x232)][_0x56c1ef];if(!_0x33d514)throw new Error(_0x531c8c(0x218)+_0x56c1ef);const _0x580458=_0x33d514['contextWindow']*0.8;let _0x12cc37=0x0;const _0x105f99=[],_0x30a7b9=await Promise[_0x531c8c(0x223)](_0x24ec1d[_0x531c8c(0x19f)](async _0x5c4bba=>({..._0x5c4bba,'estimatedTokens':await this['_estimateTokens'](_0x5c4bba[_0x531c8c(0x1f2)],_0x56c1ef)}))),_0x4d7953=[..._0x30a7b9]['reverse']();for(const _0x285f9c of _0x4d7953){if(_0x12cc37+_0x285f9c['estimatedTokens']>_0x580458){if(_0x105f99['length']===0x0){const _0xe9bc6d=await this[_0x531c8c(0x19b)](_0x285f9c['content'],_0x580458);_0x105f99['unshift']({..._0x285f9c,'content':_0xe9bc6d,'estimatedTokens':_0x580458});}break;}_0x105f99[_0x531c8c(0x1b4)](_0x285f9c),_0x12cc37+=_0x285f9c[_0x531c8c(0x1e8)];}const _0xf60f16=_0x30a7b9[_0x531c8c(0x21b)](0x0,-_0x105f99['length']);if(_0xf60f16[_0x531c8c(0x197)]>0x0){const _0x596e9f=await this[_0x531c8c(0x225)](_0xf60f16,_0x56c1ef);_0x105f99['unshift']({'role':_0x531c8c(0x210),'content':_0x531c8c(0x1ea)+_0x596e9f,'timestamp':_0xf60f16[0x0]['timestamp'],'type':_0x531c8c(0x1df),'estimatedTokens':await this[_0x531c8c(0x20f)](_0x596e9f,_0x56c1ef)});}return this['logger'][_0x531c8c(0x19a)](_0x531c8c(0x1ae)+_0x56c1ef,{'originalMessages':_0x24ec1d['length'],'compactizedMessages':_0x105f99['length'],'estimatedTokens':_0x12cc37,'maxTokens':_0x580458}),_0x105f99;}async['trackUsage'](_0x490bfe,_0x150478,_0x1f75af,_0x3c5eff){const _0x44bd47=a0_0x293c1d;try{this[_0x44bd47(0x208)]&&this[_0x44bd47(0x208)]['trackUsage'](_0x490bfe,_0x150478,_0x1f75af);}catch(_0x18d5b9){this[_0x44bd47(0x1be)]['error'](_0x44bd47(0x205)+_0x18d5b9[_0x44bd47(0x1d8)]);}}async['handleHttpError'](_0x2b6da1,_0x5efb75){const _0x4202d1=a0_0x293c1d,_0x5cdc9b=this[_0x4202d1(0x1cd)]?.[_0x4202d1(0x1d9)]?.(_0x2b6da1,_0x5efb75);switch(_0x2b6da1[_0x4202d1(0x1e5)]||_0x2b6da1['code']){case HTTP_STATUS[_0x4202d1(0x1bf)]:this['logger'][_0x4202d1(0x211)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x5efb75,'error':_0x2b6da1['message']});throw new Error(_0x4202d1(0x1ff)+_0x2b6da1[_0x4202d1(0x1d8)]);case HTTP_STATUS['UNAUTHORIZED']:this['logger']['error']('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x5efb75});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x4202d1(0x1be)]['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x5efb75});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x4202d1(0x1a3)]:this['logger'][_0x4202d1(0x211)](_0x4202d1(0x1b8),{'context':_0x5efb75});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS[_0x4202d1(0x1de)]:this['logger'][_0x4202d1(0x1fe)]('Rate\x20limit\x20exceeded',{'context':_0x5efb75}),await this['_handleRateLimit'](_0x5efb75);throw new Error(_0x4202d1(0x1eb));case HTTP_STATUS[_0x4202d1(0x1dd)]:case HTTP_STATUS[_0x4202d1(0x1b6)]:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x4202d1(0x1fc)]:this['logger'][_0x4202d1(0x211)](_0x4202d1(0x216),{'context':_0x5efb75,'status':_0x2b6da1[_0x4202d1(0x1e5)]}),await this[_0x4202d1(0x19e)](_0x5efb75);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0x4202d1(0x1be)]['error']('Unknown\x20AI\x20service\x20error',{'context':_0x5efb75,'error':_0x2b6da1[_0x4202d1(0x1d8)]});throw new Error('AI\x20service\x20error:\x20'+_0x2b6da1[_0x4202d1(0x1d8)]);}}[a0_0x293c1d(0x1aa)](_0x556e73){const _0x183d15=a0_0x293c1d;this[_0x183d15(0x1ad)]=_0x556e73,this[_0x183d15(0x1be)]?.[_0x183d15(0x19a)]('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x556e73});}['setAgentPool'](_0xf6d851){const _0x2f541e=a0_0x293c1d;this[_0x2f541e(0x1cc)]=_0xf6d851,this[_0x2f541e(0x1be)]?.[_0x2f541e(0x19a)]('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0xf6d851});}async['generateImage'](_0x50847a,_0x43514c={}){const _0x582659=a0_0x293c1d,_0x54fdef=_0x582659(0x221)+Date['now']()+'-'+Math[_0x582659(0x22f)]()[_0x582659(0x1dc)](0x24)['substr'](0x2,0x9);try{if(this[_0x582659(0x1f0)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x50847a||typeof _0x50847a!=='string'||_0x50847a[_0x582659(0x21c)]()[_0x582659(0x197)]===0x0)throw new Error(_0x582659(0x1e6));const _0x46eeda=_0x43514c[_0x582659(0x1a1)]||_0x582659(0x22a),_0x3895a4=_0x43514c[_0x582659(0x193)]||_0x582659(0x1f8),_0x39a03c=_0x43514c[_0x582659(0x226)]||_0x582659(0x215),_0x32ea6f=_0x43514c['responseFormat']||_0x582659(0x1fd);this['logger'][_0x582659(0x19a)]('Generating\x20image\x20with\x20model:\x20'+_0x46eeda,{'requestId':_0x54fdef,'model':_0x46eeda,'size':_0x3895a4,'quality':_0x39a03c,'promptLength':_0x50847a[_0x582659(0x197)]});const _0x5a6fcd={'prompt':_0x50847a,'model':_0x46eeda,'size':_0x3895a4,'quality':_0x39a03c,'response_format':_0x32ea6f,'n':0x1,'metadata':{'requestId':_0x54fdef,'timestamp':new Date()['toISOString']()}},_0x40156a=await this[_0x582659(0x1ec)](_0x5a6fcd,_0x54fdef,{'sessionId':_0x43514c[_0x582659(0x1d4)],'platformProvided':_0x43514c['platformProvided']||![]});return this['_resetCircuitBreaker'](),{'url':_0x40156a['data']?.[0x0]?.['url']||null,'b64_json':_0x40156a[_0x582659(0x1c1)]?.[0x0]?.['b64_json']||null,'model':_0x40156a['model']||_0x46eeda,'requestId':_0x54fdef,'revisedPrompt':_0x40156a[_0x582659(0x1c1)]?.[0x0]?.['revised_prompt']||_0x50847a};}catch(_0x3b951c){this[_0x582659(0x207)](),this['logger'][_0x582659(0x211)](_0x582659(0x21d)+_0x3b951c['message'],{'requestId':_0x54fdef,'model':_0x43514c['model'],'error':_0x3b951c['stack']});throw _0x3b951c;}}async[a0_0x293c1d(0x1b0)](){const _0x3e24ed=a0_0x293c1d;try{const _0x5487e4=await this['_makeAPIRequest']('/health',{},'health-check');return _0x5487e4['status']===_0x3e24ed(0x1ce);}catch(_0x586ddc){return![];}}async[a0_0x293c1d(0x1e2)](_0x488a3f,_0x396f48){const _0x44c2ad=a0_0x293c1d;try{if(!this['_isValidModel'](_0x396f48))throw new Error(_0x44c2ad(0x1c5)+_0x396f48);let _0x12ca08=this[_0x44c2ad(0x1cf)]['get'](_0x488a3f);!_0x12ca08&&(_0x12ca08=new ConversationManager(_0x488a3f,this['logger']),this[_0x44c2ad(0x1cf)][_0x44c2ad(0x1c9)](_0x488a3f,_0x12ca08));const _0x4d0f1e=await _0x12ca08['switchModel'](_0x396f48),_0x2c3015=await this[_0x44c2ad(0x1cc)]?.[_0x44c2ad(0x1db)](_0x488a3f);return _0x2c3015&&(_0x2c3015[_0x44c2ad(0x1b1)]=_0x396f48,await this[_0x44c2ad(0x1cc)]['persistAgentState'](_0x488a3f)),this[_0x44c2ad(0x1be)][_0x44c2ad(0x19a)](_0x44c2ad(0x1ee)+_0x488a3f,{'newModel':_0x396f48,'messageCount':_0x4d0f1e[_0x44c2ad(0x1ac)]['length']}),{'success':!![],'agentId':_0x488a3f,'newModel':_0x396f48,'conversation':_0x4d0f1e};}catch(_0x52293e){this['logger'][_0x44c2ad(0x211)](_0x44c2ad(0x1c2)+_0x52293e[_0x44c2ad(0x1d8)],{'agentId':_0x488a3f,'newModel':_0x396f48});throw _0x52293e;}}['_initializeModelSpecs'](){const _0x4a98d7=a0_0x293c1d,_0x1dad2c={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x4a98d7(0x229)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x4a98d7(0x1f7)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x4a98d7(0x1fb)]]:{'provider':MODEL_PROVIDERS[_0x4a98d7(0x229)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x4a98d7(0x200)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS[_0x4a98d7(0x206)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0x4a98d7(0x1d3)],'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[_0x4a98d7(0x1d3)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x4a98d7(0x21e)]]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x4a98d7(0x1f5),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x4a98d7(0x1f5),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x4a98d7(0x1f5),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x4a98d7(0x1f5),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x1dad2c;}[a0_0x293c1d(0x209)](_0x36a394,_0x429e5c,_0x4dcbdb){const _0x3d4998=a0_0x293c1d,_0x166d90=this['modelSpecs'][_0x429e5c]||{'provider':_0x3d4998(0x1f5)};let _0x338427;typeof _0x36a394==='string'?_0x338427=[{'role':'user','content':_0x36a394}]:_0x338427=_0x36a394[_0x3d4998(0x19f)](_0x393e47=>this[_0x3d4998(0x195)](_0x393e47,_0x429e5c));switch(_0x166d90['provider']){case MODEL_PROVIDERS[_0x3d4998(0x229)]:return this['_formatForAnthropic'](_0x338427);case MODEL_PROVIDERS['OPENAI']:return this['_formatForOpenAI'](_0x338427);case MODEL_PROVIDERS[_0x3d4998(0x1f5)]:return this[_0x3d4998(0x204)](_0x338427);default:return _0x338427;}}[a0_0x293c1d(0x195)](_0xe64631,_0x1327c7){const _0x34ec7c=a0_0x293c1d;return{'role':_0xe64631[_0x34ec7c(0x1a7)]||'user','content':_0xe64631[_0x34ec7c(0x1f2)],'timestamp':_0xe64631[_0x34ec7c(0x1b3)]};}[a0_0x293c1d(0x1c8)](_0x4d61e1){return _0x4d61e1['map'](_0x212be1=>{const _0x3f6f40=a0_0x2075;if(_0x212be1['role']===_0x3f6f40(0x210))return{'role':'user','content':_0x3f6f40(0x214)+_0x212be1[_0x3f6f40(0x1f2)]};return _0x212be1;});}[a0_0x293c1d(0x1cb)](_0x4e96b9){return _0x4e96b9;}['_formatForAzure'](_0x2b2b80){return _0x2b2b80['map'](_0xde8f18=>({..._0xde8f18,'content':typeof _0xde8f18['content']==='string'?_0xde8f18['content']:JSON['stringify'](_0xde8f18['content'])}));}['_isValidModel'](_0x5ad54b){const _0x2ceaa0=a0_0x293c1d;this['logger']['debug']('Validating\x20model',{'model':_0x5ad54b,'modelType':typeof _0x5ad54b});if(this['modelSpecs'][_0x5ad54b]!==undefined)return!![];return this[_0x2ceaa0(0x1be)][_0x2ceaa0(0x1fe)](_0x2ceaa0(0x1a2),{'model':_0x5ad54b,'availableModels':Object[_0x2ceaa0(0x1d2)](this['modelSpecs'])}),![];}async[a0_0x293c1d(0x22c)](_0x5a895c){return!![];}async['_estimateTokens'](_0x3f8380,_0x4ea9d2){return Math['ceil'](_0x3f8380['length']/0x4);}async[a0_0x293c1d(0x19b)](_0x40a4c5,_0x48a015){const _0x53b972=a0_0x293c1d,_0x21c3b7=_0x48a015*0x4;if(_0x40a4c5[_0x53b972(0x197)]<=_0x21c3b7)return _0x40a4c5;return _0x40a4c5[_0x53b972(0x233)](0x0,_0x21c3b7-0x14)+_0x53b972(0x217);}async['_summarizeMessages'](_0x15ffb7,_0x27198e){const _0x5baef5=a0_0x293c1d,_0x1ed07c=_0x15ffb7[_0x5baef5(0x19f)](_0x528307=>_0x528307[_0x5baef5(0x1a7)]+':\x20'+_0x528307[_0x5baef5(0x1f2)])['join']('\x0a'),_0x54048e=0x1f4;if(_0x1ed07c['length']<=_0x54048e)return _0x1ed07c;return _0x1ed07c[_0x5baef5(0x233)](0x0,_0x54048e)+_0x5baef5(0x1ca);}async[a0_0x293c1d(0x1d5)](_0x1c4813,_0x32a15e,_0xbb66fa,_0x2009e7={}){const _0x176b34=a0_0x293c1d,_0x53fd89='https://autopilot-api.azurewebsites.net/llm/chat';let _0x234110,_0x182c6f=null,_0x1f83e3=null;this['logger']?.[_0x176b34(0x19a)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x176b34(0x1ad)],'sessionId':_0x2009e7[_0x176b34(0x1d4)],'hasSessionId':!!_0x2009e7[_0x176b34(0x1d4)],'optionsKeys':Object[_0x176b34(0x1d2)](_0x2009e7),'model':_0x32a15e[_0x176b34(0x1a1)]});if(this['apiKeyManager']&&_0x2009e7[_0x176b34(0x1d4)]){const _0x5333fb=this['apiKeyManager'][_0x176b34(0x1c4)](_0x2009e7['sessionId'],{'platformProvided':_0x2009e7['platformProvided']||![],'vendor':this[_0x176b34(0x1a8)](_0x32a15e[_0x176b34(0x1a1)])});_0x182c6f=_0x5333fb[_0x176b34(0x19c)],_0x1f83e3=_0x5333fb[_0x176b34(0x1bd)],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x2009e7['sessionId'],'hasLoxiaKey':!!_0x182c6f,'hasVendorKey':!!_0x1f83e3,'vendor':this['_getVendorFromModel'](_0x32a15e[_0x176b34(0x1a1)])});}!_0x182c6f&&_0x2009e7['apiKey']&&(_0x182c6f=_0x2009e7[_0x176b34(0x20e)]);!_0x182c6f&&this['config']['apiKey']&&(_0x182c6f=this[_0x176b34(0x1a6)]['apiKey']);if(!_0x182c6f)throw new Error(_0x176b34(0x202));const _0x3978ff=_0x32a15e[_0x176b34(0x1a1)],_0x2593e5={'conversationId':_0xbb66fa,'message':_0x32a15e[_0x176b34(0x1ac)][_0x32a15e['messages']['length']-0x1]?.['content']||'','messages':_0x32a15e[_0x176b34(0x1ac)],'model':_0x3978ff,'requestId':_0xbb66fa,'options':_0x32a15e['options']||{},'platformProvided':_0x2009e7[_0x176b34(0x22d)]||![]};_0x32a15e[_0x176b34(0x210)]&&(_0x2593e5['systemPrompt']=_0x32a15e[_0x176b34(0x210)]);_0x2009e7['platformProvided']?_0x2593e5['apiKey']=_0x182c6f:(_0x1f83e3&&(_0x2593e5[_0x176b34(0x1bd)]=_0x1f83e3),_0x2009e7[_0x176b34(0x1fa)]&&(_0x2593e5[_0x176b34(0x1fa)]=_0x2009e7[_0x176b34(0x1fa)]),_0x2593e5['apiKey']=_0x182c6f);for(let _0x4c2e1e=0x1;_0x4c2e1e<=this['retryAttempts'];_0x4c2e1e++){try{this[_0x176b34(0x1be)]['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x53fd89,'model':_0x32a15e['model'],'requestId':_0xbb66fa,'attempt':_0x4c2e1e,'hasApiKey':!!_0x182c6f});const _0x4669bc=await fetch(_0x53fd89,{'method':_0x176b34(0x1e4),'headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x182c6f,'X-Request-ID':_0xbb66fa},'body':JSON['stringify'](_0x2593e5),'timeout':this[_0x176b34(0x213)]});if(!_0x4669bc['ok']){const _0x556508=await _0x4669bc['text'](),_0x35485a=new Error('HTTP\x20'+_0x4669bc[_0x176b34(0x1e5)]+':\x20'+_0x4669bc['statusText']+(_0x556508?_0x176b34(0x1f3)+_0x556508:''));_0x35485a['status']=_0x4669bc['status'];throw _0x35485a;}const _0x5d2f24=await _0x4669bc[_0x176b34(0x228)]();return{'choices':[{'message':{'content':_0x5d2f24['content']||'','role':'assistant'},'finish_reason':_0x5d2f24[_0x176b34(0x20d)]||_0x176b34(0x231)}],'usage':_0x5d2f24['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x5d2f24['model']||_0x32a15e[_0x176b34(0x1a1)],'id':_0x5d2f24[_0x176b34(0x1f6)]||_0xbb66fa};}catch(_0x307130){_0x234110=_0x307130,this['logger']['warn'](_0x176b34(0x234),{'attempt':_0x4c2e1e,'requestId':_0xbb66fa,'error':_0x307130[_0x176b34(0x1d8)],'status':_0x307130[_0x176b34(0x1e5)]});if(_0x4c2e1e<this['retryAttempts']){const _0x2712d3=Math[_0x176b34(0x1c7)](0x2,_0x4c2e1e)*0x3e8;this[_0x176b34(0x1be)]['warn']('Retrying\x20in\x20'+_0x2712d3+'ms',{'attempt':_0x4c2e1e,'requestId':_0xbb66fa}),await new Promise(_0x3411a9=>setTimeout(_0x3411a9,_0x2712d3));}}}this[_0x176b34(0x1be)]['error'](_0x176b34(0x196),{'requestId':_0xbb66fa,'error':_0x234110[_0x176b34(0x1d8)]});const _0x1faedb=_0x234110[_0x176b34(0x1d8)]&&_0x234110['message']['includes'](_0x176b34(0x1a0));if(_0x1faedb)throw new Error('API\x20Configuration\x20Error:\x20'+_0x234110[_0x176b34(0x1d8)]);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x234110[_0x176b34(0x1d8)],'role':'assistant'},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x32a15e[_0x176b34(0x1a1)],'id':_0x176b34(0x21a)+_0xbb66fa,'error':_0x234110[_0x176b34(0x1d8)]};}async['_makeImageAPIRequest'](_0x10d41f,_0x10f34b,_0x5b641d={}){const _0xde6409=a0_0x293c1d,_0x2b7afb='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x137905,_0x4588e0=null,_0x41d17e=null;this['logger']?.['info']('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0xde6409(0x1ad)],'sessionId':_0x5b641d['sessionId'],'hasSessionId':!!_0x5b641d['sessionId'],'model':_0x10d41f[_0xde6409(0x1a1)]});if(this[_0xde6409(0x1ad)]&&_0x5b641d['sessionId']){const _0x50e0ba=this[_0xde6409(0x1ad)][_0xde6409(0x1c4)](_0x5b641d['sessionId'],{'platformProvided':_0x5b641d[_0xde6409(0x22d)]||![],'vendor':this[_0xde6409(0x1a8)](_0x10d41f['model'])});_0x4588e0=_0x50e0ba[_0xde6409(0x19c)],_0x41d17e=_0x50e0ba['vendorApiKey'],this[_0xde6409(0x1be)]?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x5b641d['sessionId'],'hasLoxiaKey':!!_0x4588e0,'hasVendorKey':!!_0x41d17e});}!_0x4588e0&&_0x5b641d[_0xde6409(0x20e)]&&(_0x4588e0=_0x5b641d['apiKey']);!_0x4588e0&&this[_0xde6409(0x1a6)][_0xde6409(0x20e)]&&(_0x4588e0=this['config'][_0xde6409(0x20e)]);if(!_0x4588e0)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x487fd7={'prompt':_0x10d41f['prompt'],'model':_0x10d41f[_0xde6409(0x1a1)]||_0xde6409(0x1f4),'size':_0x10d41f[_0xde6409(0x193)],'quality':_0x10d41f['quality'],'style':_0x10d41f[_0xde6409(0x1b7)]||_0xde6409(0x1d0),'n':_0x10d41f['n']||0x1,'requestId':_0x10f34b};for(let _0x545ea0=0x1;_0x545ea0<=this[_0xde6409(0x1bb)];_0x545ea0++){try{this[_0xde6409(0x1be)][_0xde6409(0x19a)](_0xde6409(0x1b9),{'url':_0x2b7afb,'model':_0x10d41f[_0xde6409(0x1a1)],'requestId':_0x10f34b,'attempt':_0x545ea0,'hasApiKey':!!_0x4588e0});const _0x1e70e5=await fetch(_0x2b7afb,{'method':_0xde6409(0x1e4),'headers':{'Content-Type':_0xde6409(0x22e),'Authorization':'Bearer\x20'+_0x4588e0,'X-Request-ID':_0x10f34b},'body':JSON[_0xde6409(0x21f)](_0x487fd7),'timeout':this[_0xde6409(0x213)]*0x2});if(!_0x1e70e5['ok']){const _0x16225f=await _0x1e70e5['text'](),_0x467c28=new Error('HTTP\x20'+_0x1e70e5['status']+':\x20'+_0x1e70e5[_0xde6409(0x19d)]+(_0x16225f?'\x20-\x20'+_0x16225f:''));_0x467c28['status']=_0x1e70e5[_0xde6409(0x1e5)];throw _0x467c28;}const _0x1be291=await _0x1e70e5[_0xde6409(0x228)]();return{'data':_0x1be291['images']||[],'model':_0x1be291[_0xde6409(0x1a1)]||_0x10d41f['model'],'created':_0x1be291['created']||Date['now'](),'usage':_0x1be291['usage']};}catch(_0x3838ae){_0x137905=_0x3838ae,this['logger'][_0xde6409(0x1fe)]('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x545ea0,'requestId':_0x10f34b,'error':_0x3838ae[_0xde6409(0x1d8)],'status':_0x3838ae['status']});if(_0x545ea0<this['retryAttempts']){const _0x12f689=Math[_0xde6409(0x1c7)](0x2,_0x545ea0)*0x3e8;this['logger'][_0xde6409(0x1fe)]('Retrying\x20in\x20'+_0x12f689+'ms',{'attempt':_0x545ea0,'requestId':_0x10f34b}),await new Promise(_0x51f6c5=>setTimeout(_0x51f6c5,_0x12f689));}}}this['logger'][_0xde6409(0x211)](_0xde6409(0x1bc),{'requestId':_0x10f34b,'error':_0x137905['message']});throw new Error(_0xde6409(0x21d)+_0x137905[_0xde6409(0x1d8)]);}async['_checkRateLimit'](_0x11a006){await new Promise(_0x2b2cf8=>setTimeout(_0x2b2cf8,0x64));}async[a0_0x293c1d(0x212)](_0x2a680b){const _0x1e8b62=a0_0x293c1d,_0x1b58d4=0xea60;this[_0x1e8b62(0x1be)][_0x1e8b62(0x19a)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x1b58d4+'ms',_0x2a680b),await new Promise(_0x42aad9=>setTimeout(_0x42aad9,_0x1b58d4));}async['_handleServiceUnavailable'](_0x5ebaa5){const _0x4b78b0=a0_0x293c1d;this['_recordFailure']();const _0x4ff1d6=0x7530;this[_0x4b78b0(0x1be)][_0x4b78b0(0x19a)]('Service\x20unavailable,\x20waiting\x20'+_0x4ff1d6+'ms',_0x5ebaa5),await new Promise(_0x8f7e04=>setTimeout(_0x8f7e04,_0x4ff1d6));}[a0_0x293c1d(0x1f0)](){const _0x41c91c=a0_0x293c1d;if(!this['circuitBreaker'][_0x41c91c(0x199)])return![];const _0x1b187c=Date[_0x41c91c(0x1c6)]()-this['circuitBreaker']['lastFailureTime'];if(_0x1b187c>this['circuitBreaker'][_0x41c91c(0x213)])return this[_0x41c91c(0x219)][_0x41c91c(0x199)]=![],this['circuitBreaker'][_0x41c91c(0x1b2)]=0x0,![];return!![];}['_recordFailure'](){const _0x58d373=a0_0x293c1d;this['circuitBreaker'][_0x58d373(0x1b2)]++,this[_0x58d373(0x219)]['lastFailureTime']=Date['now'](),this['circuitBreaker']['failures']>=this[_0x58d373(0x219)][_0x58d373(0x194)]&&(this[_0x58d373(0x219)][_0x58d373(0x199)]=!![],this['logger']['warn']('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}[a0_0x293c1d(0x1d7)](){const _0x240c4b=a0_0x293c1d;this['circuitBreaker'][_0x240c4b(0x1b2)]>0x0&&(this['circuitBreaker']['failures']=0x0,this['circuitBreaker'][_0x240c4b(0x199)]=![],this[_0x240c4b(0x1be)]['info'](_0x240c4b(0x1af)));}['_getVendorFromModel'](_0x272d1e){const _0x5c0dc0=a0_0x293c1d;if(!_0x272d1e)return null;const _0x49d717=_0x272d1e[_0x5c0dc0(0x1ef)]();if(_0x49d717['includes'](_0x5c0dc0(0x230))||_0x49d717[_0x5c0dc0(0x1d1)]('claude'))return _0x5c0dc0(0x230);else{if(_0x49d717['includes'](_0x5c0dc0(0x1e7))||_0x49d717[_0x5c0dc0(0x1d1)]('gpt'))return _0x5c0dc0(0x1e7);else{if(_0x49d717[_0x5c0dc0(0x1d1)]('deepseek'))return'deepseek';else{if(_0x49d717[_0x5c0dc0(0x1d1)]('phi'))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x2423c7,_0x3bfbf2){this['agentId']=_0x2423c7,this['logger']=_0x3bfbf2,this['conversations']=new Map();}async['switchModel'](_0x26997f){return{'messages':[],'model':_0x26997f,'lastUpdated':new Date()['toISOString']()};}}function a0_0x311f(){const _0x15f95b=['x2nOzwnRtw9KzwXizwfSDgG','CgXHDgzVCM1qCM92AwrLza','yxbWBgLJyxrPB24VANnVBG','CMfUzg9T','yw50AhjVCgLJ','C3rVCa','Bw9KzwXtCgvJCW','C3vIC3rYAw5N','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','C2L6zq','DgHYzxnOB2XK','x2zVCM1HDfnPBMDSzu1LC3nHz2u','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','BgvUz3rO','m3Hgv0vAwG','AxnpCgvU','Aw5MBW','x3rYDw5JyxrLtwvZC2fNzq','Bg94AwfbCgLlzxK','C3rHDhvZvgv4Da','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','BwfW','tM8GqvbjigTLEsbJB25MAwD1CMvK','Bw9KzwW','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','tK9ux0zpvu5e','ChvZAa','Dg9vChbLCKnHC2u','y29UzMLN','CM9Szq','x2DLDfzLBMrVCKzYB21nB2rLBa','rKfmtejbq0S','C2v0qxbPs2v5twfUywDLCG','yMfZzvvYBa','BwvZC2fNzxm','yxbPs2v5twfUywDLCG','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','q2LYy3vPDcbICMvHA2vYihjLC2v0ic0GC2vYDMLJzsbYzwnVDMvYzwq','y2HLy2Ttzxj2AwnLsgvHBhrO','y3vYCMvUDe1VzgvS','zMfPBhvYzxm','DgLTzxn0yw1W','Dw5ZAgLMDa','mZb5svvVsMK','qKfex0DbvevxqvK','C3r5Bgu','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','CM91DgvnB2rLBa','CMv0CNLbDhrLBxb0CW','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','DMvUzg9YqxbPs2v5','Bg9Nz2vY','qKfex1jfuvvfu1q','mJe2mtCYtfjnvwTX','zgf0yq','tw9KzwWGC3DPDgnOigzHAwXLzdOG','mJeZntiYCMDOEKLd','z2v0s2v5C0zVCLjLCxvLC3q','sw52ywXPzcbTB2rLBdOG','BM93','Cg93','x2zVCM1HDezVCKfUDgHYB3bPyW','C2v0','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','x2zVCM1HDezVCK9Wzw5bsq','ywDLBNrqB29S','zxjYB3jiyw5KBgvY','AgvHBhrOEq','y29UDMvYC2f0Aw9UtwfUywDLCNm','DML2Awq','Aw5JBhvKzxm','A2v5CW','t1bftKfj','C2vZC2LVBKLK','x21HA2vbueLszxf1zxn0','ntbvAxjzsMG','x3jLC2v0q2LYy3vPDejYzwfRzxi','BwvZC2fNzq','y2XHC3nPzNLfCNjVCG','ode5ndq3m0vkANnlrG','z2v0qwDLBNq','Dg9tDhjPBMC','su5urvjoquXFu0vsvKvsx0vsuK9s','ve9px01btLLFuKvrvuvtvfm','C3vTBwfYEq','Dg9ju09tDhjPBMC','AxnbCNjHEq','C3DPDgnOqwDLBNrnB2rLBa','nJa1odC2tM51zvzq','ue9tva','C3rHDhvZ','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','B3bLBMfP','zxn0Aw1HDgvKvg9Rzw5Z','x2nOzwnRuMf0zuXPBwL0','uhjLDMLVDxmGy29UDMvYC2f0Aw9Uihn1Bw1HCNK6ia','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','x21HA2vjBwfNzufqsvjLCxvLC3q','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','Dg9mB3DLCKnHC2u','x2LZq2LYy3vPDejYzwfRzxjpCgvU','y2HVAwnLCW','y29UDgvUDa','ic0G','yxP1CMuTB3bLBMfPlwrHBgXLmW','qvPvuKu','CMvXDwvZDeLK','qu5usfjpueLdx09qvvm','mtaYnhGXmdi0','mtC2ote4nfvYDerwDq','y3vZDg9TqxbPs2v5CW','qu5usfjpueLdx0HbsuTv','r0furvDbwv9usu1ft1vu','DxjS','D2fYBG','sw52ywXPzcbYzxf1zxn0oIa','r1buxZq','odqZodqWC0vVqM54','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','AgfUzgXLshr0CevYCM9Y','x2zVCM1HDezVCKf6DxjL','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','r1buxZrFtuLosq','x3jLy29YzezHAwX1CMu','yNvKz2v0u2vYDMLJzq','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','Bwf4x3rVA2vUCW','DxnHz2u','yMfJA2vUza','zMLUAxnOuMvHC29U','yxbPs2v5','x2vZDgLTyxrLvg9Rzw5Z','C3LZDgvT','zxjYB3i','x2HHBMrSzvjHDgvmAw1PDa','DgLTzw91Da','u3LZDgvToIa','C3rHBMrHCMq','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','vw5RBM93BIbTB2rLBdOG','y2LYy3vPDejYzwfRzxi','zxjYB3iT','C2XPy2u','DhjPBq','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','ueHjxZq','C3rYAw5NAwz5','AgLNAa','Aw1Nlq','nZe5mZrfyM9kEve','ywXS','ywDLBNrjza','x3n1Bw1HCML6zu1LC3nHz2vZ','CxvHBgL0Eq','Dg90ywXFDg9Rzw5Z','ANnVBG','qu5usfjpueLd','zMX1Ec0XlJeTChjV','CMvXDwvZDff1zxvL'];a0_0x311f=function(){return _0x15f95b;};return a0_0x311f();}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
|
-
function
|
|
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_0x398c00=a0_0x2441;function a0_0x2441(_0x3faf6c,_0xadc7be){_0x3faf6c=_0x3faf6c-0x10f;const _0x2134cd=a0_0x2134();let _0x2441c8=_0x2134cd[_0x3faf6c];if(a0_0x2441['ifuXRJ']===undefined){var _0x48c44c=function(_0x24a234){const _0x2d647b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x56224d='',_0x3d9de3='';for(let _0x433397=0x0,_0x42b67d,_0x11385a,_0x491f8c=0x0;_0x11385a=_0x24a234['charAt'](_0x491f8c++);~_0x11385a&&(_0x42b67d=_0x433397%0x4?_0x42b67d*0x40+_0x11385a:_0x11385a,_0x433397++%0x4)?_0x56224d+=String['fromCharCode'](0xff&_0x42b67d>>(-0x2*_0x433397&0x6)):0x0){_0x11385a=_0x2d647b['indexOf'](_0x11385a);}for(let _0x592a19=0x0,_0x4124a9=_0x56224d['length'];_0x592a19<_0x4124a9;_0x592a19++){_0x3d9de3+='%'+('00'+_0x56224d['charCodeAt'](_0x592a19)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3d9de3);};a0_0x2441['SHdMtt']=_0x48c44c,a0_0x2441['OCKEtu']={},a0_0x2441['ifuXRJ']=!![];}const _0x190293=_0x2134cd[0x0],_0x7cc9ea=_0x3faf6c+_0x190293,_0xb40942=a0_0x2441['OCKEtu'][_0x7cc9ea];return!_0xb40942?(_0x2441c8=a0_0x2441['SHdMtt'](_0x2441c8),a0_0x2441['OCKEtu'][_0x7cc9ea]=_0x2441c8):_0x2441c8=_0xb40942,_0x2441c8;}(function(_0xb5503f,_0x2bb4b9){const _0x48db99=a0_0x2441,_0x2a650a=_0xb5503f();while(!![]){try{const _0x33d8fe=parseInt(_0x48db99(0x12f))/0x1*(parseInt(_0x48db99(0x15f))/0x2)+-parseInt(_0x48db99(0x130))/0x3+parseInt(_0x48db99(0x11a))/0x4*(parseInt(_0x48db99(0x125))/0x5)+parseInt(_0x48db99(0x110))/0x6+-parseInt(_0x48db99(0x12e))/0x7*(-parseInt(_0x48db99(0x14b))/0x8)+parseInt(_0x48db99(0x145))/0x9+parseInt(_0x48db99(0x132))/0xa*(-parseInt(_0x48db99(0x136))/0xb);if(_0x33d8fe===_0x2bb4b9)break;else _0x2a650a['push'](_0x2a650a['shift']());}catch(_0x4d573f){_0x2a650a['push'](_0x2a650a['shift']());}}}(a0_0x2134,0xcaf28));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x2134(){const _0x5a67fd=['C29YDa','yNvKz2v0CW','Bwf4','mZC2A1HlzgrP','D2vLA2X5','BM93','rMfPBgvKihrVihrYywnRihvZywDL','Dw5ZAgLMDa','C2v0','C3bSAxq','refjtfK','zgfPBhLbDMvYywDLCW','y3jLyxrLrw1WDhLvC2fNzq','Dg90ywXFDg9Rzw5Z','ANnVBG','y2vPBa','Aw5PDgLHBgL6zvvZywDLrw50CNK','ywDLBNrjza','q29ZDa','Dg9WqwDLBNrZ','Bw9UDgHSEq','ywXLCNrZ','Aw5WDxq','mLHUv1fvwG','CMvXDwvZDhm','DxnHz2u','C2vUzej1zgDLDefSzxj0','Dw5KzwzPBMvK','y29UDMvYDfrVq1nw','Bw9KzwXjza','Dg90ywW','rgfPBhK','Dg9Rzw5ZqNLeyxK','ntm3mtyWmLneAM1jwG','y2HLy2TcDwrNzxrmAw1PDhm','y2HLy2TuAhjLC2HVBgrbBgvYDhm','z2v0','Dg9ju09tDhjPBMC','z2v0v2vLA0TLEq','AgfZ','BgfZDefSzxj0vgLTzxm','z2v0tw9UDgHlzxK','zxjYB3i','mZG2ngLcv3Lhzq','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','y29ZDa','yNLbz2vUDa','C2XPy2u','AM9PBG','C2f2zvvZywDLrgf0yq','vxnHz2uGzgf0ysbZyxzLza','zgfPBhK','z2v0vxnHz2u','ugvYAw9K','mJyXmerwr0LgCG','zNjVBq','DhjHy2TvC2fNzq','ChjVBxb0x3rVA2vUCW','C3rYAw5NAwz5','y2HLy2TuAhjLC2HVBgq','tw9KzwW','z2v0tw9UDgG','veHsrvnit0XeuW','mte0otG5wLvby2D5','mJm2mtuZt3vbrvvo','mZmWnJi3uwXWrKLU','C2v0DxbqzxjPB2rPy1nHDMu','mJm4otqWv0fUzufQ','CgfKu3rHCNq','ChvZAa','qNvKz2v0igXPBwL0igv4y2vLzgvK','mta0nxHzren6sa','zM9YrwfJAa','D2fYBG','Dg9tDhjPBMC','Bg9Nz2vY','zxHWB3j0vxnHz2veyxrH','z2v0rNvSBfLLyxi','yNLnB2rLBa','y2fSy3vSyxrLq29ZDa','DxbKyxrLvxnHz2vfBNrYEq','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','Dg9Rzw5Z','z2v0rgf5s2v5','zw1PDa','BwfW','nZiZmZaZmhfZu2v3ta','zw50CMLLCW','uMvXDwvZDhm'];a0_0x2134=function(){return _0x5a67fd;};return a0_0x2134();}export class BudgetService{constructor(_0x56224d,_0x3d9de3){const _0x136797=a0_0x2441;this['config']=_0x56224d||{},this['logger']=_0x3d9de3,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x136797(0x152)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS['MONTHLY']},this[_0x136797(0x15d)]={'enabled':!![],'thresholds':USAGE_ALERTS[_0x136797(0x12d)],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x136797(0x131)]();}[a0_0x398c00(0x127)](_0x433397,_0x42b67d,_0x11385a){const _0x59bb8a=a0_0x398c00;try{const _0x491f8c=this[_0x59bb8a(0x13e)](_0x42b67d,_0x11385a),_0x592a19=new Date(),_0x4124a9=this['getDayKey'](_0x592a19),_0x435e56=this[_0x59bb8a(0x115)](_0x592a19),_0x51ede9=this[_0x59bb8a(0x118)](_0x592a19);this['initializeUsageEntry'](this[_0x59bb8a(0x161)][_0x59bb8a(0x122)],_0x4124a9),this[_0x59bb8a(0x158)](this[_0x59bb8a(0x161)][_0x59bb8a(0x14c)],_0x435e56),this[_0x59bb8a(0x158)](this['usage']['monthly'],_0x51ede9);const _0x5dc94c={'agentId':_0x433397,'modelId':_0x42b67d,'tokens':_0x11385a['total_tokens'],'cost':_0x491f8c,'timestamp':_0x592a19[_0x59bb8a(0x114)]()};return this[_0x59bb8a(0x13f)](this[_0x59bb8a(0x161)][_0x59bb8a(0x122)]['get'](_0x4124a9),_0x5dc94c),this['updateUsageEntry'](this[_0x59bb8a(0x161)][_0x59bb8a(0x14c)]['get'](_0x435e56),_0x5dc94c),this['updateUsageEntry'](this['usage']['monthly']['get'](_0x51ede9),_0x5dc94c),this['usage']['total']['tokens']+=_0x11385a[_0x59bb8a(0x155)],this['usage']['total'][_0x59bb8a(0x11c)]+=_0x491f8c,this[_0x59bb8a(0x161)][_0x59bb8a(0x166)]['requests']+=0x1,this['checkBudgetLimits'](_0x4124a9,_0x435e56,_0x51ede9),this['logger']['info']('Usage\x20tracked',{'agentId':_0x433397,'modelId':_0x42b67d,'tokens':_0x11385a[_0x59bb8a(0x155)],'cost':_0x491f8c,'totalCost':this[_0x59bb8a(0x161)]['total']['cost']}),{'cost':_0x491f8c,'totalCost':this['usage']['total'][_0x59bb8a(0x11c)],'totalTokens':this[_0x59bb8a(0x161)]['total']['tokens'],'dailyUsage':this[_0x59bb8a(0x161)][_0x59bb8a(0x122)]['get'](_0x4124a9),'budgetRemaining':this['getRemainingBudget']()};}catch(_0xc829dc){this[_0x59bb8a(0x13a)][_0x59bb8a(0x119)](_0x59bb8a(0x14e),{'error':_0xc829dc['message'],'agentId':_0x433397,'modelId':_0x42b67d});throw _0xc829dc;}}[a0_0x398c00(0x13e)](_0x242cd5,_0x385cc0){const _0x2e093d=a0_0x398c00,_0x2e5a5c=COST_PER_TOKEN[_0x242cd5];if(!_0x2e5a5c)return this['logger'][_0x2e093d(0x138)]('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x242cd5}),0x0;const _0x88719e=(_0x385cc0[_0x2e093d(0x128)]||0x0)*_0x2e5a5c[_0x2e093d(0x15e)],_0x3c8af1=(_0x385cc0['completion_tokens']||0x0)*_0x2e5a5c['output'];return _0x88719e+_0x3c8af1;}['getUsage'](_0x31573a='daily',_0x24504a=new Date()){const _0x35f547=a0_0x398c00;switch(_0x31573a){case _0x35f547(0x122):return this[_0x35f547(0x161)][_0x35f547(0x122)][_0x35f547(0x113)](this['getDayKey'](_0x24504a))||this['createEmptyUsage']();case'weekly':return this['usage']['weekly']['get'](this[_0x35f547(0x115)](_0x24504a))||this['createEmptyUsage']();case'monthly':return this['usage']['monthly'][_0x35f547(0x113)](this[_0x35f547(0x118)](_0x24504a))||this[_0x35f547(0x154)]();case _0x35f547(0x166):return{...this[_0x35f547(0x161)][_0x35f547(0x166)]};default:throw new Error('Invalid\x20period:\x20'+_0x31573a);}}['getAgentUsage'](_0x1d49f1,_0x27f703='daily'){const _0x592b5a=a0_0x398c00,_0x37a03a=this[_0x592b5a(0x123)](_0x27f703);return _0x37a03a[_0x592b5a(0x11d)]?.[_0x1d49f1]||this[_0x592b5a(0x154)]();}['getModelUsage'](_0x3d075f,_0x5d2d5f='daily'){const _0x292f6a=this['getUsage'](_0x5d2d5f);return _0x292f6a['byModel']?.[_0x3d075f]||this['createEmptyUsage']();}['setBudgets'](_0x114b60){const _0x334d2a=a0_0x398c00;if(_0x114b60[_0x334d2a(0x122)]!==undefined)this[_0x334d2a(0x149)]['daily']=_0x114b60['daily'];if(_0x114b60[_0x334d2a(0x14c)]!==undefined)this['budgets']['weekly']=_0x114b60['weekly'];if(_0x114b60['monthly']!==undefined)this[_0x334d2a(0x149)][_0x334d2a(0x15c)]=_0x114b60[_0x334d2a(0x15c)];this['logger']['info']('Budget\x20limits\x20updated',this[_0x334d2a(0x149)]),this[_0x334d2a(0x120)]();}['getRemainingBudget'](){const _0x512594=a0_0x398c00,_0x2a2b1b=new Date(),_0x191ba0=this['getUsage']('daily',_0x2a2b1b),_0x346437=this['getUsage']('weekly',_0x2a2b1b),_0x311fe0=this[_0x512594(0x123)](_0x512594(0x15c),_0x2a2b1b);return{'daily':Math['max'](0x0,this[_0x512594(0x149)]['daily']-_0x191ba0[_0x512594(0x11c)]),'weekly':Math[_0x512594(0x14a)](0x0,this['budgets'][_0x512594(0x14c)]-_0x346437['cost']),'monthly':Math[_0x512594(0x14a)](0x0,this['budgets']['monthly']-_0x311fe0[_0x512594(0x11c)])};}['isWithinBudget'](_0x10f330=a0_0x398c00(0x122)){const _0x212438=a0_0x398c00,_0x45fdb3=this['getUsage'](_0x10f330),_0x2ca158=this['budgets'][_0x10f330];return _0x45fdb3[_0x212438(0x11c)]<=_0x2ca158;}['getUsageTrends'](_0x3ab614=0x1e){const _0x306505=a0_0x398c00,_0x73b8d8={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x448bf3=new Date();let _0x7b5547=0x0,_0x48d13a=0x0,_0x5f2d66=0x0;const _0x44c433=new Map(),_0x35acb4=new Map();for(let _0x38ef20=0x0;_0x38ef20<_0x3ab614;_0x38ef20++){const _0x4ea373=new Date(_0x448bf3);_0x4ea373['setDate'](_0x4ea373['getDate']()-_0x38ef20);const _0x580594=this[_0x306505(0x142)](_0x4ea373),_0x549453=this['usage'][_0x306505(0x122)]['get'](_0x580594);_0x549453?(_0x7b5547+=_0x549453['cost'],_0x48d13a+=_0x549453[_0x306505(0x141)],_0x5f2d66+=_0x549453[_0x306505(0x160)],_0x73b8d8['costByDay'][_0x306505(0x14f)]({'date':_0x580594,'cost':_0x549453[_0x306505(0x11c)]}),_0x73b8d8[_0x306505(0x10f)]['unshift']({'date':_0x580594,'tokens':_0x549453['tokens']}),Object[_0x306505(0x146)](_0x549453[_0x306505(0x11d)]||{})['forEach'](([_0x25a2f7,_0x2ba2d5])=>{const _0x506dc0=_0x306505;!_0x44c433[_0x506dc0(0x116)](_0x25a2f7)&&_0x44c433['set'](_0x25a2f7,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x4029c9=_0x44c433['get'](_0x25a2f7);_0x4029c9[_0x506dc0(0x11c)]+=_0x2ba2d5['cost'],_0x4029c9['tokens']+=_0x2ba2d5['tokens'],_0x4029c9[_0x506dc0(0x160)]+=_0x2ba2d5[_0x506dc0(0x160)];}),Object[_0x306505(0x146)](_0x549453[_0x306505(0x13d)]||{})['forEach'](([_0x519479,_0x548da4])=>{const _0x24be16=_0x306505;!_0x35acb4['has'](_0x519479)&&_0x35acb4[_0x24be16(0x150)](_0x519479,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x23d957=_0x35acb4[_0x24be16(0x113)](_0x519479);_0x23d957['cost']+=_0x548da4['cost'],_0x23d957['tokens']+=_0x548da4[_0x24be16(0x141)],_0x23d957['requests']+=_0x548da4[_0x24be16(0x160)];})):(_0x73b8d8['costByDay'][_0x306505(0x14f)]({'date':_0x580594,'cost':0x0}),_0x73b8d8[_0x306505(0x10f)]['unshift']({'date':_0x580594,'tokens':0x0}));}return _0x73b8d8[_0x306505(0x153)][_0x306505(0x11c)]=_0x7b5547/_0x3ab614,_0x73b8d8[_0x306505(0x153)]['tokens']=_0x48d13a/_0x3ab614,_0x73b8d8['dailyAverages'][_0x306505(0x160)]=_0x5f2d66/_0x3ab614,_0x73b8d8[_0x306505(0x15b)]=Array[_0x306505(0x126)](_0x44c433[_0x306505(0x146)]())[_0x306505(0x144)](([_0x4c126b,_0x16ea48])=>({'id':_0x4c126b,..._0x16ea48}))[_0x306505(0x148)]((_0x137e2f,_0x48905a)=>_0x48905a[_0x306505(0x11c)]-_0x137e2f[_0x306505(0x11c)])[_0x306505(0x11e)](0x0,0xa),_0x73b8d8['topModels']=Array[_0x306505(0x126)](_0x35acb4[_0x306505(0x146)]())['map'](([_0x11ecf4,_0x195a5c])=>({'id':_0x11ecf4,..._0x195a5c}))[_0x306505(0x148)]((_0x5c94e1,_0x34af50)=>_0x34af50[_0x306505(0x11c)]-_0x5c94e1[_0x306505(0x11c)])[_0x306505(0x11e)](0x0,0xa),_0x73b8d8;}[a0_0x398c00(0x13b)](_0x21ff8e=a0_0x398c00(0x156),_0x8899bf=null,_0x958bde=null){const _0x455378=a0_0x398c00,_0x173ae7={'budgets':this[_0x455378(0x149)],'total':this[_0x455378(0x161)]['total'],'daily':{},'weekly':{},'monthly':{}},_0x1cf944=(_0x1a8fbc,_0x25984a)=>{const _0x5e311c={};return _0x1a8fbc['forEach']((_0x272b76,_0x14c11c)=>{const _0x4ade6f=_0x25984a(_0x14c11c);(!_0x8899bf||_0x4ade6f>=_0x8899bf)&&(!_0x958bde||_0x4ade6f<=_0x958bde)&&(_0x5e311c[_0x14c11c]=_0x272b76);}),_0x5e311c;};_0x8899bf||_0x958bde?(_0x173ae7[_0x455378(0x122)]=_0x1cf944(this[_0x455378(0x161)][_0x455378(0x122)],_0x6c6260=>new Date(_0x6c6260)),_0x173ae7['weekly']=_0x1cf944(this['usage']['weekly'],_0x571884=>new Date(_0x571884)),_0x173ae7['monthly']=_0x1cf944(this[_0x455378(0x161)]['monthly'],_0x295226=>new Date(_0x295226+'-01'))):(this[_0x455378(0x161)]['daily'][_0x455378(0x137)]((_0x5747f9,_0x307a38)=>_0x173ae7['daily'][_0x307a38]=_0x5747f9),this['usage'][_0x455378(0x14c)][_0x455378(0x137)]((_0x36bf1b,_0x521906)=>_0x173ae7['weekly'][_0x521906]=_0x36bf1b),this['usage'][_0x455378(0x15c)][_0x455378(0x137)]((_0x514eb7,_0x1f5f1b)=>_0x173ae7[_0x455378(0x15c)][_0x1f5f1b]=_0x514eb7));if(_0x21ff8e==='csv')return this['convertToCSV'](_0x173ae7);return JSON[_0x455378(0x129)](_0x173ae7,null,0x2);}['initializeUsageEntry'](_0xf5aeb7,_0x15a626){const _0x5b4794=a0_0x398c00;!_0xf5aeb7['has'](_0x15a626)&&_0xf5aeb7['set'](_0x15a626,this[_0x5b4794(0x154)]());}[a0_0x398c00(0x154)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x351ff0,_0x4d23b2){const _0x103ab4=a0_0x398c00;_0x351ff0['cost']+=_0x4d23b2['cost'],_0x351ff0['tokens']+=_0x4d23b2[_0x103ab4(0x141)],_0x351ff0['requests']+=0x1,!_0x351ff0['byAgent'][_0x4d23b2['agentId']]&&(_0x351ff0[_0x103ab4(0x11d)][_0x4d23b2['agentId']]=this[_0x103ab4(0x154)]()),_0x351ff0['byAgent'][_0x4d23b2['agentId']][_0x103ab4(0x11c)]+=_0x4d23b2[_0x103ab4(0x11c)],_0x351ff0[_0x103ab4(0x11d)][_0x4d23b2['agentId']][_0x103ab4(0x141)]+=_0x4d23b2[_0x103ab4(0x141)],_0x351ff0[_0x103ab4(0x11d)][_0x4d23b2[_0x103ab4(0x159)]]['requests']+=0x1,!_0x351ff0['byModel'][_0x4d23b2['modelId']]&&(_0x351ff0['byModel'][_0x4d23b2[_0x103ab4(0x165)]]=this['createEmptyUsage']()),_0x351ff0['byModel'][_0x4d23b2['modelId']][_0x103ab4(0x11c)]+=_0x4d23b2[_0x103ab4(0x11c)],_0x351ff0['byModel'][_0x4d23b2['modelId']]['tokens']+=_0x4d23b2[_0x103ab4(0x141)],_0x351ff0['byModel'][_0x4d23b2[_0x103ab4(0x165)]]['requests']+=0x1;}[a0_0x398c00(0x111)](_0x482540,_0xf057e5,_0x133dba){const _0x468d90=a0_0x398c00,_0x5a470b=this['usage'][_0x468d90(0x122)][_0x468d90(0x113)](_0x482540),_0x3df44b=this[_0x468d90(0x161)][_0x468d90(0x14c)][_0x468d90(0x113)](_0xf057e5),_0x3202ef=this['usage'][_0x468d90(0x15c)][_0x468d90(0x113)](_0x133dba);_0x5a470b[_0x468d90(0x11c)]>this['budgets']['daily']&&this[_0x468d90(0x162)](_0x468d90(0x122),_0x5a470b['cost'],this['budgets']['daily']),_0x3df44b[_0x468d90(0x11c)]>this['budgets'][_0x468d90(0x14c)]&&this[_0x468d90(0x162)](_0x468d90(0x14c),_0x3df44b['cost'],this[_0x468d90(0x149)]['weekly']),_0x3202ef['cost']>this['budgets']['monthly']&&this['sendBudgetAlert'](_0x468d90(0x15c),_0x3202ef[_0x468d90(0x11c)],this[_0x468d90(0x149)]['monthly']),this[_0x468d90(0x112)](_0x5a470b,_0x3df44b,_0x3202ef);}['checkThresholdAlerts'](_0x449981,_0x4b545e,_0x1c5a04){const _0x4ddb58=a0_0x398c00,_0x14775d=this[_0x4ddb58(0x15d)]['thresholds'];this[_0x4ddb58(0x12a)]('daily',_0x449981[_0x4ddb58(0x11c)],this[_0x4ddb58(0x149)]['daily'],_0x14775d),this[_0x4ddb58(0x12a)]('weekly',_0x4b545e['cost'],this['budgets']['weekly'],_0x14775d),this['checkThreshold'](_0x4ddb58(0x15c),_0x1c5a04['cost'],this[_0x4ddb58(0x149)][_0x4ddb58(0x15c)],_0x14775d);}[a0_0x398c00(0x12a)](_0x31a436,_0x1ef903,_0x62dde3,_0x4a2c22){const _0x4ebebf=a0_0x398c00,_0x1c5aeb=_0x1ef903/_0x62dde3*0x64;for(const _0x22343b of _0x4a2c22){if(_0x1c5aeb>=_0x22343b){const _0x2e65a0=_0x31a436+'_'+_0x22343b,_0x1d63d=this[_0x4ebebf(0x15d)][_0x4ebebf(0x117)][_0x4ebebf(0x113)](_0x2e65a0),_0x3cb821=Date[_0x4ebebf(0x14d)]();(!_0x1d63d||_0x3cb821-_0x1d63d>0x36ee80)&&(this['sendThresholdAlert'](_0x31a436,_0x1c5aeb,_0x22343b,_0x1ef903,_0x62dde3),this['alerts']['lastAlertTimes'][_0x4ebebf(0x150)](_0x2e65a0,_0x3cb821));break;}}}['sendBudgetAlert'](_0xf33a77,_0x341658,_0x537a7b){const _0x1b09e5=a0_0x398c00;this['logger']['warn'](_0x1b09e5(0x135),{'period':_0xf33a77,'currentUsage':_0x341658,'budgetLimit':_0x537a7b,'excess':_0x341658-_0x537a7b}),typeof process!==_0x1b09e5(0x163)&&process['emit']&&process[_0x1b09e5(0x143)]('budgetAlert',{'type':'budget_exceeded','period':_0xf33a77,'currentUsage':_0x341658,'budgetLimit':_0x537a7b,'excess':_0x341658-_0x537a7b});}['sendThresholdAlert'](_0x413b4e,_0x1b5a74,_0x9d0aaa,_0x4367ac,_0x1b0794){const _0x2d78c3=a0_0x398c00;this[_0x2d78c3(0x13a)][_0x2d78c3(0x138)](_0x2d78c3(0x11b),{'period':_0x413b4e,'percentage':Math['round'](_0x1b5a74),'threshold':_0x9d0aaa,'usage':_0x4367ac,'budget':_0x1b0794}),typeof process!==_0x2d78c3(0x163)&&process['emit']&&process[_0x2d78c3(0x143)]('budgetAlert',{'type':'threshold_reached','period':_0x413b4e,'percentage':Math['round'](_0x1b5a74),'threshold':_0x9d0aaa,'usage':_0x4367ac,'budget':_0x1b0794});}[a0_0x398c00(0x142)](_0x20c5db){const _0x4b3784=a0_0x398c00;return _0x20c5db['toISOString']()[_0x4b3784(0x151)]('T')[0x0];}[a0_0x398c00(0x115)](_0x9a2174){const _0x508e60=a0_0x398c00,_0x9742bd=_0x9a2174['getFullYear'](),_0x32e7d7=this['getWeekNumber'](_0x9a2174);return _0x9742bd+'-W'+_0x32e7d7[_0x508e60(0x139)]()['padStart'](0x2,'0');}[a0_0x398c00(0x118)](_0x39ddeb){const _0xd13704=a0_0x398c00,_0x34da99=_0x39ddeb[_0xd13704(0x13c)](),_0x29dcb6=_0x39ddeb[_0xd13704(0x12c)]()+0x1;return _0x34da99+'-'+_0x29dcb6[_0xd13704(0x139)]()[_0xd13704(0x133)](0x2,'0');}['getWeekNumber'](_0x49a585){const _0x48f169=a0_0x398c00,_0x2195f8=new Date(_0x49a585['getFullYear'](),0x0,0x1),_0x1bfe34=(_0x49a585-_0x2195f8)/0x5265c00;return Math[_0x48f169(0x157)]((_0x1bfe34+_0x2195f8['getDay']()+0x1)/0x7);}[a0_0x398c00(0x164)](_0x58ca55){const _0x318c69=a0_0x398c00,_0x37a733=[];return _0x37a733['push']([_0x318c69(0x124),'Date',_0x318c69(0x15a),'Tokens',_0x318c69(0x147),'Agent',_0x318c69(0x12b)]),Object['entries'](_0x58ca55['daily'])[_0x318c69(0x137)](([_0x4ed66f,_0x15bb71])=>{const _0x268635=_0x318c69;_0x37a733[_0x268635(0x134)](['Daily',_0x4ed66f,_0x15bb71['cost'],_0x15bb71['tokens'],_0x15bb71[_0x268635(0x160)],'','']),Object[_0x268635(0x146)](_0x15bb71['byAgent']||{})[_0x268635(0x137)](([_0xb69ef9,_0x26d816])=>{const _0x277114=_0x268635;_0x37a733[_0x277114(0x134)]([_0x277114(0x167),_0x4ed66f,_0x26d816['cost'],_0x26d816[_0x277114(0x141)],_0x26d816[_0x277114(0x160)],_0xb69ef9,'']);});}),_0x37a733[_0x318c69(0x144)](_0x475c88=>_0x475c88[_0x318c69(0x11f)](','))['join']('\x0a');}['loadUsageData'](){try{this['logger']['info']('Budget\x20service\x20initialized');}catch(_0x1a8a27){this['logger']['error']('Failed\x20to\x20load\x20usage\x20data',{'error':_0x1a8a27['message']});}}[a0_0x398c00(0x120)](){const _0x5258b8=a0_0x398c00;try{this['logger']['debug'](_0x5258b8(0x121));}catch(_0x4f23d6){this[_0x5258b8(0x13a)][_0x5258b8(0x119)](_0x5258b8(0x140),{'error':_0x4f23d6['message']});}}[a0_0x398c00(0x131)](){setInterval(()=>{const _0x36a3df=a0_0x2441;this[_0x36a3df(0x120)]();},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
|
-
const
|
|
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;
|