@loxia-labs/loxia-autopilot-one 1.0.12 → 1.0.13
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/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/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
|
+
const a0_0x3e0030=a0_0x170f;(function(_0xbe0eaa,_0xb89231){const _0x4c1cb9=a0_0x170f,_0x401417=_0xbe0eaa();while(!![]){try{const _0x204c00=-parseInt(_0x4c1cb9(0x215))/0x1*(-parseInt(_0x4c1cb9(0x1c1))/0x2)+parseInt(_0x4c1cb9(0x1df))/0x3*(parseInt(_0x4c1cb9(0x1b0))/0x4)+parseInt(_0x4c1cb9(0x1c9))/0x5+-parseInt(_0x4c1cb9(0x1f9))/0x6+-parseInt(_0x4c1cb9(0x1bc))/0x7+parseInt(_0x4c1cb9(0x222))/0x8+parseInt(_0x4c1cb9(0x1dc))/0x9*(parseInt(_0x4c1cb9(0x257))/0xa);if(_0x204c00===_0xb89231)break;else _0x401417['push'](_0x401417['shift']());}catch(_0x385225){_0x401417['push'](_0x401417['shift']());}}}(a0_0x5f3f,0xd82aa));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0x170f(_0xac9fa0,_0x4f2c90){_0xac9fa0=_0xac9fa0-0x1aa;const _0x5f3f94=a0_0x5f3f();let _0x170fb2=_0x5f3f94[_0xac9fa0];if(a0_0x170f['KeDQhl']===undefined){var _0x57e062=function(_0x3ecd70){const _0x5d25e0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x23d0e6='',_0x472369='';for(let _0x3bccf6=0x0,_0x1d963e,_0x330893,_0x2acc76=0x0;_0x330893=_0x3ecd70['charAt'](_0x2acc76++);~_0x330893&&(_0x1d963e=_0x3bccf6%0x4?_0x1d963e*0x40+_0x330893:_0x330893,_0x3bccf6++%0x4)?_0x23d0e6+=String['fromCharCode'](0xff&_0x1d963e>>(-0x2*_0x3bccf6&0x6)):0x0){_0x330893=_0x5d25e0['indexOf'](_0x330893);}for(let _0x389ade=0x0,_0x3ccafb=_0x23d0e6['length'];_0x389ade<_0x3ccafb;_0x389ade++){_0x472369+='%'+('00'+_0x23d0e6['charCodeAt'](_0x389ade)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x472369);};a0_0x170f['ObrxSV']=_0x57e062,a0_0x170f['qqXbkA']={},a0_0x170f['KeDQhl']=!![];}const _0x3e00af=_0x5f3f94[0x0],_0x340a51=_0xac9fa0+_0x3e00af,_0x2a3485=a0_0x170f['qqXbkA'][_0x340a51];return!_0x2a3485?(_0x170fb2=a0_0x170f['ObrxSV'](_0x170fb2),a0_0x170f['qqXbkA'][_0x340a51]=_0x170fb2):_0x170fb2=_0x2a3485,_0x170fb2;}function a0_0x5f3f(){const _0x6141a5=['mJr2vuvcyu0','CgXHDgzVCM1qCM92AwrLza','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','BwvZC2fNzxm','z2vUzxjHDgvjBwfNzq','DxnLCG','yxbPs2v5twfUywDLCG','D2fYBG','DML2Awq','y2vPBa','AxnpCgvU','ue9tva','ic0G','x2nOzwnRuMf0zuXPBwL0','ChjLzMvYCMvKtw9KzwW','x3jLy29YzezHAwX1CMu','C3bLzwq','y29UDMvYC2f0Aw9UCW','x2HHBMrSzvjHDgvmAw1PDa','Dgv4Da','ChjVBxb0','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','CMvXDwvZDff1zxvL','x2zVCM1HDezVCK9Wzw5bsq','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','x3jLC2v0q2LYy3vPDejYzwfRzxi','ntuWnJi2mfvPyuzgDa','zgvLChnLzwS','uMf0zsbSAw1PDcbLEgnLzwrLza','Aw5JBhvKzxm','Dw5ZAgLMDa','sw52ywXPzcbYzxf1zxn0oIa','y3vZDg9TqxbPs2v5CW','r1buxZrFtuLosq','qMvHCMvYia','uMv0CNLPBMCGAw4G','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','x2DLDfzLBMrVCKzYB21nB2rLBa','DMvUzg9YqxbPs2v5','ywDLBNrjza','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','C3rYAw5N','CMfUzg9T','zMX1Ec0XlJeTChjV','C2vUze1LC3nHz2u','C3rHDhvZ','CMf0zuXPBwL0zxjZ','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','u0vsvKLdrv9vtKfwquLmqujmrq','ChvZAa','y29UDgv4DfDPBMrVDW','DxjS','BwvZC2fNzq','mtLyAMreqvi','CMv2zxjZzq','zMfPBhvYzxm','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','quKGC2vYDMLJzsbLCNjVCJOG','z2v0s2v5C0zVCLjLCxvLC3q','z3b0','AgfUzgXLshr0CevYCM9Y','x2zVCM1HDezVCKfUDgHYB3bPyW','Aw5MBW','qKfex0DbvevxqvK','tw9KzwWGC3DPDgnOigzHAwXLzdOG','ANnVBG','ntq4nJqYnef6EKf6rG','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','q2LYy3vPDcbICMvHA2vYihjLC2v0ic0GC2vYDMLJzsbYzwnVDMvYzwq','Bwf4x3rVA2vUCW','CgvYC2LZDefNzw50u3rHDgu','C3LZDgvT','tK9ux0zpvu5e','CMvZCg9UC2vgB3jTyxq','y29TCgXLEgL0Eq','Dg9tDhjPBMC','CMvXlq','DgLTzw91Da','y2LYy3vPDejYzwfRzxi','CM9Szq','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','CMvXDwvZDeLK','t1bftKfj','Aw1Hz2vZ','C3vIC3rYAw5N','BwfW','ywXS','A2v5CW','qu5usfjpueLdx0HbsuTv','C2XPy2u','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','C3DPDgnOtw9KzwW','C3rHBMrHCMq','CxvHBgL0Eq','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','DhjHy2TvC2fNzq','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','z2v0','B3b0Aw9UCW','y29UDMvYC2f0Aw9UtwfUywDLCNm','y29UzMLN','Bg9Nz2vY','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','rKfmtejbq0S','C2v0qwDLBNrqB29S','C3LZDgvTuhjVBxb0','zMLUAxnOuMvHC29U','qvPvuKu','x2nOzwnRtw9KzwXizwfSDgG','zxn0Aw1HDgvKvg9Rzw5Z','zgf0yq','x2LZvMfSAwrnB2rLBa','x3rYDw5JyxrLtwvZC2fNzq','ChjVDMLKzxi','vu5bvvrit1jjwKve','x2LZq2LYy3vPDejYzwfRzxjpCgvU','ywDLBNrqB29S','mtuWBKLnBxHW','BM93','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','yJy0x2PZB24','mtaYnhGXmdi0','x2zVCM1HDfnPBMDSzu1LC3nHz2u','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','CMv0CNLbDhrLBxb0CW','nJe0nJmYrg5tyKv1','yMfJA2vUza','y29UDgvUDa','CMv2AxnLzf9WCM9TChq','Dg9ju09tDhjPBMC','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','yNvKz2v0u2vYDMLJzq','yxbPs2v5','yxnZAxn0yw50','AgLNAa','Bw9KzwW','y2XHC3nPzNLfCNjVCG','ote4ndCYmvvKCKHJrW','y29Kzq','vw5RBM93BIbTB2rLBdOG','C3rYAw5NAwz5','x2vZDgLTyxrLvg9Rzw5Z','mtaWmtr4s2vPquq','Dg9vChbLCKnHC2u','C3rVCa','twfRAw5NihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','C3rHDhvZvgv4Da','BgvUz3rO','qu5usfjpueLd','z2v0qwDLBNq','oti0ndmWr0r3suLS','y2HVAwnLCW','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','DhjPBq','Dg90ywXFDg9Rzw5Z','ueHjxZq','DgHYzxnOB2XK','zxjYB3i','qxv0AgvUDgLJyxrPB24GzMfPBgvKihDPDgGGquKGC2vYDMLJzq','C2vZC2LVBKLK','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','yMfZzvvYBa','C3rHy2S','DxnHz2u','r1buxZq','Bw9KzwXtCgvJCW','C3r5Bgu','zxjYB3jiyw5KBgvY','sfruuca','ntuYmdG3sfvkzM5Y','CgHP','x21HA2vjBwfNzufqsvjLCxvLC3q'];a0_0x5f3f=function(){return _0x6141a5;};return a0_0x5f3f();}class AIService{constructor(_0x23d0e6,_0x472369,_0x3bccf6,_0x1d963e){const _0x977c62=a0_0x170f;this[_0x977c62(0x245)]=_0x23d0e6,this['logger']=_0x472369,this[_0x977c62(0x1b6)]=_0x3bccf6,this[_0x977c62(0x1da)]=_0x1d963e,this[_0x977c62(0x1d4)]=_0x23d0e6[_0x977c62(0x1b1)]?.[_0x977c62(0x1d4)]||'https://api.loxia.ai',this['timeout']=_0x23d0e6['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x23d0e6['backend']?.[_0x977c62(0x1af)]||0x3,this[_0x977c62(0x20d)]=new Map(),this[_0x977c62(0x1f5)]=new Map(),this[_0x977c62(0x22e)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this[_0x977c62(0x20e)](),this[_0x977c62(0x244)]=new Map(),this[_0x977c62(0x1e5)]=null,this[_0x977c62(0x256)]=null;}async[a0_0x3e0030(0x20b)](_0x330893,_0x2acc76,_0x389ade={}){const _0x3b3687=a0_0x3e0030,_0x3ccafb=_0x3b3687(0x22c)+Date['now']()+'-'+Math[_0x3b3687(0x209)]()[_0x3b3687(0x22b)](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this['_checkRateLimit'](_0x330893);const _0x1fcd7a=this[_0x3b3687(0x241)](_0x2acc76,_0x330893,_0x389ade),_0x198f66={'model':_0x330893,'messages':_0x1fcd7a,'options':{'max_tokens':this['modelSpecs'][_0x330893]?.['maxTokens']||0xfa0,'temperature':_0x389ade['temperature']||0.7,'stream':_0x389ade['stream']||![]},'metadata':{'requestId':_0x3ccafb,'agentId':_0x389ade['agentId'],'timestamp':new Date()[_0x3b3687(0x1b4)]()}};_0x389ade[_0x3b3687(0x24b)]&&(_0x198f66[_0x3b3687(0x227)]=_0x389ade['systemPrompt']);this[_0x3b3687(0x246)][_0x3b3687(0x21e)]('Sending\x20message\x20to\x20model:\x20'+_0x330893,{'requestId':_0x3ccafb,'agentId':_0x389ade[_0x3b3687(0x206)],'messageCount':Array['isArray'](_0x2acc76)?_0x2acc76['length']:0x1,'maxTokens':_0x198f66[_0x3b3687(0x225)]});const _0x217122=await this['_makeAPIRequest']('/chat/completions',_0x198f66,_0x3ccafb,{..._0x389ade,'sessionId':_0x389ade['sessionId'],'platformProvided':_0x389ade['platformProvided']||![]});return _0x217122['usage']&&await this['trackUsage'](_0x389ade['agentId'],_0x330893,{'prompt_tokens':_0x217122[_0x3b3687(0x1d6)]['prompt_tokens']||0x0,'completion_tokens':_0x217122['usage']['completion_tokens']||0x0,'total_tokens':_0x217122['usage'][_0x3b3687(0x1cd)]||0x0}),this['_resetCircuitBreaker'](),{'content':_0x217122['choices'][0x0]?.['message']?.['content']||'','model':_0x217122['model'],'tokenUsage':_0x217122[_0x3b3687(0x1d6)],'requestId':_0x3ccafb,'finishReason':_0x217122[_0x3b3687(0x1ca)][0x0]?.['finish_reason']};}catch(_0x23b105){this[_0x3b3687(0x1ee)](),this['logger'][_0x3b3687(0x1d0)](_0x3b3687(0x23f)+_0x23b105[_0x3b3687(0x214)],{'requestId':_0x3ccafb,'model':_0x330893,'agentId':_0x389ade[_0x3b3687(0x206)],'error':_0x23b105[_0x3b3687(0x1d5)]}),await this['handleHttpError'](_0x23b105,{'requestId':_0x3ccafb,'model':_0x330893,'agentId':_0x389ade['agentId']});throw _0x23b105;}}async['routeModel'](_0x2dd936,_0x4871a7={}){const _0xa46688=a0_0x3e0030;try{const _0x2a11e1=MODEL_ROUTING[_0x2dd936[_0xa46688(0x1c2)]()]||MODEL_ROUTING[_0xa46688(0x249)],_0x2dc14b=[];for(const _0x1d3ec6 of _0x2a11e1){const _0x4fdfe7=await this['_checkModelHealth'](_0x1d3ec6);_0x4fdfe7&&_0x2dc14b[_0xa46688(0x211)](_0x1d3ec6);}if(_0x2dc14b[_0xa46688(0x1c6)]===0x0)return this['logger']['warn'](_0xa46688(0x230)+_0x2dd936+',\x20using\x20fallback'),MODEL_ROUTING[_0xa46688(0x249)][0x0];let _0x11a2ef=_0x2dc14b[0x0];if(_0x4871a7[_0xa46688(0x1ed)]&&_0x2dc14b['includes'](_0x4871a7['preferredModel']))_0x11a2ef=_0x4871a7['preferredModel'];else{if(_0x4871a7[_0xa46688(0x22a)]===_0xa46688(0x1b9)&&_0x2dc14b[_0xa46688(0x1fc)](MODELS['ANTHROPIC_OPUS']))_0x11a2ef=MODELS['ANTHROPIC_OPUS'];else _0x4871a7[_0xa46688(0x1ef)]==='fast'&&_0x2dc14b['includes'](MODELS[_0xa46688(0x239)])&&(_0x11a2ef=MODELS['ANTHROPIC_HAIKU']);}return this['logger']['info'](_0xa46688(0x1cb)+_0x2dd936,{'selectedModel':_0x11a2ef,'availableModels':_0x2dc14b[_0xa46688(0x1c6)],'context':_0x4871a7}),_0x11a2ef;}catch(_0xb3af99){return this['logger']['error'](_0xa46688(0x218)+_0xb3af99[_0xa46688(0x214)],{'task':_0x2dd936,'context':_0x4871a7}),MODEL_ROUTING[_0xa46688(0x249)][0x0];}}async['compactizeConversation'](_0x5a0f6a,_0x2f4466){const _0x1d83ed=a0_0x3e0030,_0x15c016=this[_0x1d83ed(0x1d8)][_0x2f4466];if(!_0x15c016)throw new Error(_0x1d83ed(0x1be)+_0x2f4466);const _0x2183ac=_0x15c016[_0x1d83ed(0x212)]*0.8;let _0x3b2aa5=0x0;const _0x4de653=[],_0x14bde9=await Promise[_0x1d83ed(0x237)](_0x5a0f6a[_0x1d83ed(0x236)](async _0x2bbe9d=>({..._0x2bbe9d,'estimatedTokens':await this[_0x1d83ed(0x1c0)](_0x2bbe9d[_0x1d83ed(0x1b2)],_0x2f4466)}))),_0x28e4ad=[..._0x14bde9][_0x1d83ed(0x216)]();for(const _0x2590ae of _0x28e4ad){if(_0x3b2aa5+_0x2590ae['estimatedTokens']>_0x2183ac){if(_0x4de653['length']===0x0){const _0x2bc1f7=await this[_0x1d83ed(0x252)](_0x2590ae['content'],_0x2183ac);_0x4de653[_0x1d83ed(0x1fd)]({..._0x2590ae,'content':_0x2bc1f7,'estimatedTokens':_0x2183ac});}break;}_0x4de653['unshift'](_0x2590ae),_0x3b2aa5+=_0x2590ae[_0x1d83ed(0x24f)];}const _0x485c99=_0x14bde9[_0x1d83ed(0x23a)](0x0,-_0x4de653[_0x1d83ed(0x1c6)]);if(_0x485c99[_0x1d83ed(0x1c6)]>0x0){const _0x235a2e=await this['_summarizeMessages'](_0x485c99,_0x2f4466);_0x4de653['unshift']({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x235a2e,'timestamp':_0x485c99[0x0]['timestamp'],'type':'summary','estimatedTokens':await this[_0x1d83ed(0x1c0)](_0x235a2e,_0x2f4466)});}return this['logger']['info']('Conversation\x20compactized\x20for\x20model:\x20'+_0x2f4466,{'originalMessages':_0x5a0f6a['length'],'compactizedMessages':_0x4de653['length'],'estimatedTokens':_0x3b2aa5,'maxTokens':_0x2183ac}),_0x4de653;}async[a0_0x3e0030(0x240)](_0x33bce2,_0x14196f,_0x1e75d7,_0x5067f6){const _0x4d0c89=a0_0x3e0030;try{this[_0x4d0c89(0x1b6)]&&this[_0x4d0c89(0x1b6)][_0x4d0c89(0x240)](_0x33bce2,_0x14196f,_0x1e75d7);}catch(_0x39183d){this['logger']['error'](_0x4d0c89(0x248)+_0x39183d['message']);}}async[a0_0x3e0030(0x21c)](_0x1b7a87,_0x4f4709){const _0x433a48=a0_0x3e0030,_0x4150a1=this[_0x433a48(0x1da)]?.[_0x433a48(0x1bb)]?.(_0x1b7a87,_0x4f4709);switch(_0x1b7a87[_0x433a48(0x20c)]||_0x1b7a87[_0x433a48(0x1bd)]){case HTTP_STATUS['BAD_REQUEST']:this['logger'][_0x433a48(0x1d0)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x4f4709,'error':_0x1b7a87['message']});throw new Error(_0x433a48(0x1fe)+_0x1b7a87['message']);case HTTP_STATUS[_0x433a48(0x254)]:this[_0x433a48(0x246)]['error'](_0x433a48(0x1d1),{'context':_0x4f4709});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x433a48(0x246)]['error'](_0x433a48(0x203),{'context':_0x4f4709});throw new Error(_0x433a48(0x1f4));case HTTP_STATUS[_0x433a48(0x228)]:this['logger']['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x4f4709});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS['TOO_MANY_REQUESTS']:this['logger']['warn'](_0x433a48(0x1fb),{'context':_0x4f4709}),await this[_0x433a48(0x1f1)](_0x4f4709);throw new Error(_0x433a48(0x1e1));case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS[_0x433a48(0x21f)]:case HTTP_STATUS[_0x433a48(0x210)]:case HTTP_STATUS['GATEWAY_TIMEOUT']:this[_0x433a48(0x246)][_0x433a48(0x1d0)](_0x433a48(0x1d3),{'context':_0x4f4709,'status':_0x1b7a87['status']}),await this['_handleServiceUnavailable'](_0x4f4709);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this[_0x433a48(0x246)]['error'](_0x433a48(0x23b),{'context':_0x4f4709,'error':_0x1b7a87[_0x433a48(0x214)]});throw new Error(_0x433a48(0x219)+_0x1b7a87['message']);}}['setApiKeyManager'](_0x512216){const _0x18445b=a0_0x3e0030;this['apiKeyManager']=_0x512216,this['logger']?.[_0x18445b(0x21e)]('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x512216});}[a0_0x3e0030(0x24a)](_0x3c84ad){const _0x2d8bc1=a0_0x3e0030;this['agentPool']=_0x3c84ad,this[_0x2d8bc1(0x246)]?.['info'](_0x2d8bc1(0x1aa),{'hasAgentPool':!!_0x3c84ad});}async[a0_0x3e0030(0x1e3)](_0x3723ba,_0x24dcd5={}){const _0x5e7e95=a0_0x3e0030,_0x2f27bd='img-'+Date[_0x5e7e95(0x258)]()+'-'+Math[_0x5e7e95(0x209)]()['toString'](0x24)['substr'](0x2,0x9);try{if(this[_0x5e7e95(0x255)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x3723ba||typeof _0x3723ba!=='string'||_0x3723ba[_0x5e7e95(0x1cc)]()['length']===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x14d0b5=_0x24dcd5[_0x5e7e95(0x1ba)]||_0x5e7e95(0x20a),_0x2079d0=_0x24dcd5['size']||_0x5e7e95(0x1ac),_0x5f3209=_0x24dcd5[_0x5e7e95(0x23e)]||_0x5e7e95(0x23d),_0x20a9c0=_0x24dcd5[_0x5e7e95(0x229)]||_0x5e7e95(0x213);this[_0x5e7e95(0x246)][_0x5e7e95(0x21e)](_0x5e7e95(0x1f7)+_0x14d0b5,{'requestId':_0x2f27bd,'model':_0x14d0b5,'size':_0x2079d0,'quality':_0x5f3209,'promptLength':_0x3723ba[_0x5e7e95(0x1c6)]});const _0x5465af={'prompt':_0x3723ba,'model':_0x14d0b5,'size':_0x2079d0,'quality':_0x5f3209,'response_format':_0x20a9c0,'n':0x1,'metadata':{'requestId':_0x2f27bd,'timestamp':new Date()['toISOString']()}},_0x5d461b=await this[_0x5e7e95(0x1de)](_0x5465af,_0x2f27bd,{'sessionId':_0x24dcd5['sessionId'],'platformProvided':_0x24dcd5[_0x5e7e95(0x1e0)]||![]});return this['_resetCircuitBreaker'](),{'url':_0x5d461b[_0x5e7e95(0x250)]?.[0x0]?.[_0x5e7e95(0x213)]||null,'b64_json':_0x5d461b[_0x5e7e95(0x250)]?.[0x0]?.[_0x5e7e95(0x1ab)]||null,'model':_0x5d461b[_0x5e7e95(0x1ba)]||_0x14d0b5,'requestId':_0x2f27bd,'revisedPrompt':_0x5d461b['data']?.[0x0]?.[_0x5e7e95(0x1b3)]||_0x3723ba};}catch(_0x1a215f){this['_recordFailure'](),this[_0x5e7e95(0x246)][_0x5e7e95(0x1d0)]('Image\x20generation\x20failed:\x20'+_0x1a215f[_0x5e7e95(0x214)],{'requestId':_0x2f27bd,'model':_0x24dcd5[_0x5e7e95(0x1ba)],'error':_0x1a215f['stack']});throw _0x1a215f;}}async['checkServiceHealth'](){const _0x8832c7=a0_0x3e0030;try{const _0x468edb=await this['_makeAPIRequest']('/health',{},'health-check');return _0x468edb[_0x8832c7(0x20c)]==='healthy';}catch(_0x5da506){return![];}}async['switchAgentModel'](_0x57b0b2,_0x45c086){const _0x553761=a0_0x3e0030;try{if(!this['_isValidModel'](_0x45c086))throw new Error('Invalid\x20model:\x20'+_0x45c086);let _0x38e0ee=this[_0x553761(0x244)][_0x553761(0x242)](_0x57b0b2);!_0x38e0ee&&(_0x38e0ee=new ConversationManager(_0x57b0b2,this[_0x553761(0x246)]),this['conversationManagers']['set'](_0x57b0b2,_0x38e0ee));const _0x131380=await _0x38e0ee[_0x553761(0x23c)](_0x45c086),_0x18e051=await this[_0x553761(0x256)]?.[_0x553761(0x1c8)](_0x57b0b2);return _0x18e051&&(_0x18e051['currentModel']=_0x45c086,await this[_0x553761(0x256)][_0x553761(0x226)](_0x57b0b2)),this['logger']['info']('Agent\x20model\x20switched:\x20'+_0x57b0b2,{'newModel':_0x45c086,'messageCount':_0x131380['messages'][_0x553761(0x1c6)]}),{'success':!![],'agentId':_0x57b0b2,'newModel':_0x45c086,'conversation':_0x131380};}catch(_0x11ca32){this['logger'][_0x553761(0x1d0)](_0x553761(0x220)+_0x11ca32[_0x553761(0x214)],{'agentId':_0x57b0b2,'newModel':_0x45c086});throw _0x11ca32;}}[a0_0x3e0030(0x20e)](){const _0x1cc308=a0_0x3e0030,_0x55d96d={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS['ANTHROPIC_OPUS']]:{'provider':MODEL_PROVIDERS[_0x1cc308(0x1c7)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS[_0x1cc308(0x1c7)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x1cc308(0x1d7)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS[_0x1cc308(0x200)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x1cc308(0x233)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x1cc308(0x1ce)]]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x1cc308(0x24d),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x1cc308(0x24d),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x1cc308(0x24d),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x1cc308(0x24d),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x55d96d;}[a0_0x3e0030(0x241)](_0x4968b5,_0x503979,_0x5bc17f){const _0x4ca204=a0_0x3e0030,_0x128dcd=this['modelSpecs'][_0x503979]||{'provider':'AZURE'};let _0x3c9058;typeof _0x4968b5===_0x4ca204(0x208)?_0x3c9058=[{'role':'user','content':_0x4968b5}]:_0x3c9058=_0x4968b5[_0x4ca204(0x236)](_0xacaed3=>this[_0x4ca204(0x1ad)](_0xacaed3,_0x503979));switch(_0x128dcd[_0x4ca204(0x253)]){case MODEL_PROVIDERS['ANTHROPIC']:return this['_formatForAnthropic'](_0x3c9058);case MODEL_PROVIDERS[_0x4ca204(0x233)]:return this[_0x4ca204(0x1f6)](_0x3c9058);case MODEL_PROVIDERS['AZURE']:return this['_formatForAzure'](_0x3c9058);default:return _0x3c9058;}}['_formatSingleMessage'](_0x25db3e,_0x735bc2){const _0x20c6c7=a0_0x3e0030;return{'role':_0x25db3e[_0x20c6c7(0x22f)]||'user','content':_0x25db3e[_0x20c6c7(0x1b2)],'timestamp':_0x25db3e['timestamp']};}[a0_0x3e0030(0x21d)](_0x598753){return _0x598753['map'](_0x16694e=>{const _0x328e38=a0_0x170f;if(_0x16694e['role']===_0x328e38(0x227))return{'role':_0x328e38(0x1e4),'content':'System:\x20'+_0x16694e['content']};return _0x16694e;});}[a0_0x3e0030(0x1f6)](_0x510024){return _0x510024;}['_formatForAzure'](_0x4966a5){const _0x18a49c=a0_0x3e0030;return _0x4966a5[_0x18a49c(0x236)](_0x32aca3=>({..._0x32aca3,'content':typeof _0x32aca3[_0x18a49c(0x1b2)]===_0x18a49c(0x208)?_0x32aca3[_0x18a49c(0x1b2)]:JSON['stringify'](_0x32aca3['content'])}));}[a0_0x3e0030(0x251)](_0x1cc3ca){const _0x2f523a=a0_0x3e0030;this[_0x2f523a(0x246)]['debug']('Validating\x20model',{'model':_0x1cc3ca,'modelType':typeof _0x1cc3ca});if(this[_0x2f523a(0x1d8)][_0x1cc3ca]!==undefined)return!![];return this[_0x2f523a(0x246)]['warn']('Model\x20validation\x20failed',{'model':_0x1cc3ca,'availableModels':Object['keys'](this[_0x2f523a(0x1d8)])}),![];}async[a0_0x3e0030(0x24e)](_0x3efbca){return!![];}async[a0_0x3e0030(0x1c0)](_0x1db7aa,_0x3c2bfa){const _0xff12c3=a0_0x3e0030;return Math[_0xff12c3(0x1e8)](_0x1db7aa[_0xff12c3(0x1c6)]/0x4);}async[a0_0x3e0030(0x252)](_0x55e252,_0xca916c){const _0x160532=a0_0x3e0030,_0x4b21cd=_0xca916c*0x4;if(_0x55e252[_0x160532(0x1c6)]<=_0x4b21cd)return _0x55e252;return _0x55e252[_0x160532(0x235)](0x0,_0x4b21cd-0x14)+'\x0a...\x20[message\x20truncated]';}async['_summarizeMessages'](_0x607e8e,_0x4eca31){const _0x36558b=a0_0x3e0030,_0x1e782a=_0x607e8e['map'](_0x449706=>_0x449706[_0x36558b(0x22f)]+':\x20'+_0x449706[_0x36558b(0x1b2)])['join']('\x0a'),_0x29c76b=0x1f4;if(_0x1e782a['length']<=_0x29c76b)return _0x1e782a;return _0x1e782a['substring'](0x0,_0x29c76b)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x204ca0,_0x4d4769,_0xe8511a,_0xb1da53={}){const _0x4d5d1c=a0_0x3e0030,_0x4ee596='https://autopilot-api.azurewebsites.net/llm/chat';let _0x4eadd4,_0x2032cd=null,_0x5a0c43=null;this[_0x4d5d1c(0x246)]?.[_0x4d5d1c(0x21e)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x4d5d1c(0x1e5)],'sessionId':_0xb1da53['sessionId'],'hasSessionId':!!_0xb1da53[_0x4d5d1c(0x1d2)],'optionsKeys':Object[_0x4d5d1c(0x238)](_0xb1da53),'model':_0x4d4769['model']});if(this['apiKeyManager']&&_0xb1da53['sessionId']){const _0x181749=this[_0x4d5d1c(0x1e5)]['getKeysForRequest'](_0xb1da53['sessionId'],{'platformProvided':_0xb1da53[_0x4d5d1c(0x1e0)]||![],'vendor':this['_getVendorFromModel'](_0x4d4769[_0x4d5d1c(0x1ba)])});_0x2032cd=_0x181749['loxiaApiKey'],_0x5a0c43=_0x181749['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0xb1da53[_0x4d5d1c(0x1d2)],'hasLoxiaKey':!!_0x2032cd,'hasVendorKey':!!_0x5a0c43,'vendor':this['_getVendorFromModel'](_0x4d4769[_0x4d5d1c(0x1ba)])});}!_0x2032cd&&_0xb1da53[_0x4d5d1c(0x1b7)]&&(_0x2032cd=_0xb1da53[_0x4d5d1c(0x1b7)]);!_0x2032cd&&this[_0x4d5d1c(0x245)][_0x4d5d1c(0x1b7)]&&(_0x2032cd=this[_0x4d5d1c(0x245)]['apiKey']);if(!_0x2032cd)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x2ef7bc=_0x4d4769[_0x4d5d1c(0x1ba)],_0xe18460={'conversationId':_0xe8511a,'message':_0x4d4769[_0x4d5d1c(0x1e2)][_0x4d4769['messages']['length']-0x1]?.['content']||'','messages':_0x4d4769[_0x4d5d1c(0x1e2)],'model':_0x2ef7bc,'requestId':_0xe8511a,'options':_0x4d4769[_0x4d5d1c(0x243)]||{},'platformProvided':_0xb1da53[_0x4d5d1c(0x1e0)]||![]};_0x4d4769[_0x4d5d1c(0x227)]&&(_0xe18460['systemPrompt']=_0x4d4769['system']);_0xb1da53[_0x4d5d1c(0x1e0)]?_0xe18460[_0x4d5d1c(0x1b7)]=_0x2032cd:(_0x5a0c43&&(_0xe18460[_0x4d5d1c(0x205)]=_0x5a0c43),_0xb1da53['customApiKeys']&&(_0xe18460['customApiKeys']=_0xb1da53[_0x4d5d1c(0x1ff)]),_0xe18460[_0x4d5d1c(0x1b7)]=_0x2032cd);for(let _0x3f25dd=0x1;_0x3f25dd<=this[_0x4d5d1c(0x1af)];_0x3f25dd++){try{this['logger']['info'](_0x4d5d1c(0x1c4),{'url':_0x4ee596,'model':_0x4d4769[_0x4d5d1c(0x1ba)],'requestId':_0xe8511a,'attempt':_0x3f25dd,'hasApiKey':!!_0x2032cd});const _0x4eb289=await fetch(_0x4ee596,{'method':_0x4d5d1c(0x1ea),'headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x2032cd,'X-Request-ID':_0xe8511a},'body':JSON['stringify'](_0xe18460),'timeout':this[_0x4d5d1c(0x22d)]});if(!_0x4eb289['ok']){const _0x489b65=await _0x4eb289[_0x4d5d1c(0x1f2)](),_0x3beab0=new Error(_0x4d5d1c(0x1db)+_0x4eb289['status']+':\x20'+_0x4eb289[_0x4d5d1c(0x1c5)]+(_0x489b65?_0x4d5d1c(0x1eb)+_0x489b65:''));_0x3beab0[_0x4d5d1c(0x20c)]=_0x4eb289[_0x4d5d1c(0x20c)];throw _0x3beab0;}const _0x5efdfa=await _0x4eb289['json']();return{'choices':[{'message':{'content':_0x5efdfa[_0x4d5d1c(0x1b2)]||'','role':'assistant'},'finish_reason':_0x5efdfa[_0x4d5d1c(0x24c)]||_0x4d5d1c(0x1c3)}],'usage':_0x5efdfa[_0x4d5d1c(0x1d6)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x5efdfa['model']||_0x4d4769['model'],'id':_0x5efdfa[_0x4d5d1c(0x232)]||_0xe8511a};}catch(_0xb2371a){_0x4eadd4=_0xb2371a,this[_0x4d5d1c(0x246)][_0x4d5d1c(0x1e6)]('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x3f25dd,'requestId':_0xe8511a,'error':_0xb2371a[_0x4d5d1c(0x214)],'status':_0xb2371a[_0x4d5d1c(0x20c)]});if(_0x3f25dd<this[_0x4d5d1c(0x1af)]){const _0x4fcbe3=Math['pow'](0x2,_0x3f25dd)*0x3e8;this[_0x4d5d1c(0x246)][_0x4d5d1c(0x1e6)](_0x4d5d1c(0x202)+_0x4fcbe3+'ms',{'attempt':_0x3f25dd,'requestId':_0xe8511a}),await new Promise(_0x171b9e=>setTimeout(_0x171b9e,_0x4fcbe3));}}}this['logger'][_0x4d5d1c(0x1d0)](_0x4d5d1c(0x20f),{'requestId':_0xe8511a,'error':_0x4eadd4['message']});const _0x357b5d=_0x4eadd4['message']&&_0x4eadd4['message'][_0x4d5d1c(0x1fc)]('No\x20API\x20key\x20configured');if(_0x357b5d)throw new Error('API\x20Configuration\x20Error:\x20'+_0x4eadd4['message']);return{'choices':[{'message':{'content':_0x4d5d1c(0x223)+_0x4eadd4['message'],'role':_0x4d5d1c(0x1b8)},'finish_reason':_0x4d5d1c(0x1c3)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4d4769['model'],'id':'error-'+_0xe8511a,'error':_0x4eadd4['message']};}async[a0_0x3e0030(0x1de)](_0xcb5c22,_0x2f4b2f,_0x547c53={}){const _0x50ba4c=a0_0x3e0030,_0x48b211=_0x50ba4c(0x1ae);let _0x17c652,_0x442afc=null,_0x478c62=null;this[_0x50ba4c(0x246)]?.[_0x50ba4c(0x21e)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x50ba4c(0x1e5)],'sessionId':_0x547c53[_0x50ba4c(0x1d2)],'hasSessionId':!!_0x547c53[_0x50ba4c(0x1d2)],'model':_0xcb5c22[_0x50ba4c(0x1ba)]});if(this[_0x50ba4c(0x1e5)]&&_0x547c53['sessionId']){const _0x3aba49=this['apiKeyManager'][_0x50ba4c(0x21a)](_0x547c53['sessionId'],{'platformProvided':_0x547c53['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0xcb5c22['model'])});_0x442afc=_0x3aba49['loxiaApiKey'],_0x478c62=_0x3aba49['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x547c53[_0x50ba4c(0x1d2)],'hasLoxiaKey':!!_0x442afc,'hasVendorKey':!!_0x478c62});}!_0x442afc&&_0x547c53[_0x50ba4c(0x1b7)]&&(_0x442afc=_0x547c53['apiKey']);!_0x442afc&&this['config']['apiKey']&&(_0x442afc=this['config'][_0x50ba4c(0x1b7)]);if(!_0x442afc)throw new Error(_0x50ba4c(0x247));const _0x265971={'prompt':_0xcb5c22[_0x50ba4c(0x1f3)],'model':_0xcb5c22['model']||'azure-openai-dalle3','size':_0xcb5c22['size'],'quality':_0xcb5c22[_0x50ba4c(0x23e)],'style':_0xcb5c22[_0x50ba4c(0x1d9)]||_0x50ba4c(0x1e7),'n':_0xcb5c22['n']||0x1,'requestId':_0x2f4b2f};for(let _0x3073f2=0x1;_0x3073f2<=this['retryAttempts'];_0x3073f2++){try{this['logger']['info']('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0x48b211,'model':_0xcb5c22['model'],'requestId':_0x2f4b2f,'attempt':_0x3073f2,'hasApiKey':!!_0x442afc});const _0x256576=await fetch(_0x48b211,{'method':_0x50ba4c(0x1ea),'headers':{'Content-Type':'application/json','Authorization':_0x50ba4c(0x201)+_0x442afc,'X-Request-ID':_0x2f4b2f},'body':JSON[_0x50ba4c(0x1bf)](_0x265971),'timeout':this[_0x50ba4c(0x22d)]*0x2});if(!_0x256576['ok']){const _0x1db09a=await _0x256576[_0x50ba4c(0x1f2)](),_0x512c11=new Error(_0x50ba4c(0x1db)+_0x256576['status']+':\x20'+_0x256576['statusText']+(_0x1db09a?_0x50ba4c(0x1eb)+_0x1db09a:''));_0x512c11[_0x50ba4c(0x20c)]=_0x256576['status'];throw _0x512c11;}const _0x446893=await _0x256576[_0x50ba4c(0x221)]();return{'data':_0x446893[_0x50ba4c(0x234)]||[],'model':_0x446893[_0x50ba4c(0x1ba)]||_0xcb5c22[_0x50ba4c(0x1ba)],'created':_0x446893['created']||Date[_0x50ba4c(0x258)](),'usage':_0x446893['usage']};}catch(_0xe7ef70){_0x17c652=_0xe7ef70,this['logger']['warn'](_0x50ba4c(0x231),{'attempt':_0x3073f2,'requestId':_0x2f4b2f,'error':_0xe7ef70['message'],'status':_0xe7ef70[_0x50ba4c(0x20c)]});if(_0x3073f2<this['retryAttempts']){const _0x5efeb6=Math['pow'](0x2,_0x3073f2)*0x3e8;this[_0x50ba4c(0x246)][_0x50ba4c(0x1e6)]('Retrying\x20in\x20'+_0x5efeb6+'ms',{'attempt':_0x3073f2,'requestId':_0x2f4b2f}),await new Promise(_0xdb1cca=>setTimeout(_0xdb1cca,_0x5efeb6));}}}this['logger'][_0x50ba4c(0x1d0)](_0x50ba4c(0x207),{'requestId':_0x2f4b2f,'error':_0x17c652['message']});throw new Error(_0x50ba4c(0x1b5)+_0x17c652[_0x50ba4c(0x214)]);}async[a0_0x3e0030(0x1ec)](_0x22a694){await new Promise(_0xd0318e=>setTimeout(_0xd0318e,0x64));}async['_handleRateLimit'](_0x4ebb61){const _0x4c219b=0xea60;this['logger']['info']('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x4c219b+'ms',_0x4ebb61),await new Promise(_0x599b25=>setTimeout(_0x599b25,_0x4c219b));}async['_handleServiceUnavailable'](_0x543502){const _0x1b26b2=a0_0x3e0030;this[_0x1b26b2(0x1ee)]();const _0x37271a=0x7530;this['logger'][_0x1b26b2(0x21e)]('Service\x20unavailable,\x20waiting\x20'+_0x37271a+'ms',_0x543502),await new Promise(_0x20d217=>setTimeout(_0x20d217,_0x37271a));}['_isCircuitBreakerOpen'](){const _0x462339=a0_0x3e0030;if(!this[_0x462339(0x22e)]['isOpen'])return![];const _0x1bcc9c=Date[_0x462339(0x258)]()-this['circuitBreaker']['lastFailureTime'];if(_0x1bcc9c>this['circuitBreaker'][_0x462339(0x22d)])return this['circuitBreaker']['isOpen']=![],this['circuitBreaker']['failures']=0x0,![];return!![];}[a0_0x3e0030(0x1ee)](){const _0x2cb137=a0_0x3e0030;this[_0x2cb137(0x22e)]['failures']++,this[_0x2cb137(0x22e)]['lastFailureTime']=Date['now'](),this[_0x2cb137(0x22e)][_0x2cb137(0x217)]>=this[_0x2cb137(0x22e)][_0x2cb137(0x1cf)]&&(this['circuitBreaker'][_0x2cb137(0x1e9)]=!![],this['logger'][_0x2cb137(0x1e6)]('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}[a0_0x3e0030(0x1f8)](){const _0x50cd3c=a0_0x3e0030;this['circuitBreaker'][_0x50cd3c(0x217)]>0x0&&(this[_0x50cd3c(0x22e)]['failures']=0x0,this['circuitBreaker']['isOpen']=![],this[_0x50cd3c(0x246)][_0x50cd3c(0x21e)](_0x50cd3c(0x224)));}[a0_0x3e0030(0x204)](_0x47a8ad){const _0x209244=a0_0x3e0030;if(!_0x47a8ad)return null;const _0x394122=_0x47a8ad['toLowerCase']();if(_0x394122['includes']('anthropic')||_0x394122[_0x209244(0x1fc)]('claude'))return'anthropic';else{if(_0x394122['includes']('openai')||_0x394122[_0x209244(0x1fc)](_0x209244(0x21b)))return'openai';else{if(_0x394122['includes'](_0x209244(0x1fa)))return _0x209244(0x1fa);else{if(_0x394122['includes'](_0x209244(0x1dd)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x3744d1,_0x43ef5a){const _0x325e98=a0_0x3e0030;this['agentId']=_0x3744d1,this['logger']=_0x43ef5a,this[_0x325e98(0x1f0)]=new Map();}async['switchModel'](_0x1aee09){return{'messages':[],'model':_0x1aee09,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x32a75f=a0_0x3cc4;(function(_0x16be96,_0x3b8c50){const _0xe9b5e4=a0_0x3cc4,_0x284249=_0x16be96();while(!![]){try{const _0x3279ed=parseInt(_0xe9b5e4(0x121))/0x1*(-parseInt(_0xe9b5e4(0x118))/0x2)+parseInt(_0xe9b5e4(0x11b))/0x3+parseInt(_0xe9b5e4(0x134))/0x4+parseInt(_0xe9b5e4(0x124))/0x5+-parseInt(_0xe9b5e4(0x131))/0x6*(-parseInt(_0xe9b5e4(0x133))/0x7)+parseInt(_0xe9b5e4(0x136))/0x8+parseInt(_0xe9b5e4(0x132))/0x9*(-parseInt(_0xe9b5e4(0x11f))/0xa);if(_0x3279ed===_0x3b8c50)break;else _0x284249['push'](_0x284249['shift']());}catch(_0x3491b7){_0x284249['push'](_0x284249['shift']());}}}(a0_0x1ab5,0xd9a7a));function a0_0x3cc4(_0x2dc9cf,_0x2ce59c){_0x2dc9cf=_0x2dc9cf-0x118;const _0x1ab5ab=a0_0x1ab5();let _0x3cc411=_0x1ab5ab[_0x2dc9cf];if(a0_0x3cc4['oHVVZA']===undefined){var _0x58cc4e=function(_0x349bcb){const _0x44ee83='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2aab2c='',_0x3c0d92='';for(let _0xed99ef=0x0,_0x21b796,_0x42554f,_0x2df3bb=0x0;_0x42554f=_0x349bcb['charAt'](_0x2df3bb++);~_0x42554f&&(_0x21b796=_0xed99ef%0x4?_0x21b796*0x40+_0x42554f:_0x42554f,_0xed99ef++%0x4)?_0x2aab2c+=String['fromCharCode'](0xff&_0x21b796>>(-0x2*_0xed99ef&0x6)):0x0){_0x42554f=_0x44ee83['indexOf'](_0x42554f);}for(let _0x4e856f=0x0,_0x5afa71=_0x2aab2c['length'];_0x4e856f<_0x5afa71;_0x4e856f++){_0x3c0d92+='%'+('00'+_0x2aab2c['charCodeAt'](_0x4e856f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3c0d92);};a0_0x3cc4['yxaGfh']=_0x58cc4e,a0_0x3cc4['XaZBqU']={},a0_0x3cc4['oHVVZA']=!![];}const _0x520050=_0x1ab5ab[0x0],_0x3a89fd=_0x2dc9cf+_0x520050,_0x2097ad=a0_0x3cc4['XaZBqU'][_0x3a89fd];return!_0x2097ad?(_0x3cc411=a0_0x3cc4['yxaGfh'](_0x3cc411),a0_0x3cc4['XaZBqU'][_0x3a89fd]=_0x3cc411):_0x3cc411=_0x2097ad,_0x3cc411;}function a0_0x1ab5(){const _0xa45171=['DMvUzg9Ys2v5CW','ntCXmdeXnw5qqLr3rG','C2v0','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','z2v0u2vZC2LVBKTLExm','C2L6zq','C2v0u2vZC2LVBKTLExm','zgvSzxrL','Bg9Nz2vY','z2XVyMfSs2v5CW','A2v5CW','Dg9ju09tDhjPBMC','ChvZAa','nJCXodj0q2f5Aw8','mtHHtKfuuxy','ote3tgf0rwXY','nJK5nti3mLrWzuDzBW','Aw5MBW','mta0ntiWntz5sgvHy3C','CgXHDgzVCM1qCM92AwrLza','z2v0vgLTzq','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','z2v0','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','mJy0ndK3ofvHDvDqrq','zM9YrwfJAa','C2vZC2LVBKTLExm','mZy5nZiZnMnHzgHSqq','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','Bg94AwfbCgLlzxK','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','mJm0mti4mJbhrgDVAKy','DMvUzg9Y','mwXvA1fLBq','BgvUz3rO'];a0_0x1ab5=function(){return _0xa45171;};return a0_0x1ab5();}class ApiKeyManager{constructor(_0x2aab2c){const _0x181124=a0_0x3cc4;this['logger']=_0x2aab2c,this[_0x181124(0x11a)]=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x32a75f(0x12a)](_0x3c0d92,_0xed99ef){const _0x109205=a0_0x32a75f;if(!_0x3c0d92)throw new Error(_0x109205(0x139));this['sessionKeys'][_0x109205(0x125)](_0x3c0d92,{'loxiaApiKey':_0xed99ef['loxiaApiKey']||null,'vendorKeys':_0xed99ef['vendorKeys']||{},'updatedAt':new Date()['toISOString']()}),this[_0x109205(0x12c)]?.[_0x109205(0x135)](_0x109205(0x13b),{'sessionId':_0x3c0d92,'hasLoxiaKey':!!_0xed99ef[_0x109205(0x11d)],'vendorKeys':Object['keys'](_0xed99ef['vendorKeys']||{}),'timestamp':new Date()[_0x109205(0x12f)]()});}[a0_0x32a75f(0x128)](_0x21b796){const _0xdee655=a0_0x32a75f;if(!_0x21b796)return this['globalKeys'];const _0x42554f=this['sessionKeys'][_0xdee655(0x13a)](_0x21b796);if(_0x42554f)return _0x42554f;return this['globalKeys'];}['getKeysForRequest'](_0x2df3bb,_0x4e856f={}){const _0x1e0159=a0_0x32a75f,_0x5afa71=this[_0x1e0159(0x128)](_0x2df3bb),_0x21b51a={'loxiaApiKey':_0x5afa71['loxiaApiKey'],'vendorApiKey':null};return!_0x4e856f[_0x1e0159(0x137)]&&_0x4e856f['vendor']&&_0x5afa71[_0x1e0159(0x123)]&&(_0x21b51a['vendorApiKey']=_0x5afa71['vendorKeys'][_0x4e856f[_0x1e0159(0x120)]]),_0x21b51a;}['removeSessionKeys'](_0x978d51){const _0x5f0f6c=a0_0x32a75f;if(this[_0x5f0f6c(0x11a)]['delete'](_0x978d51))return this['logger']?.['info'](_0x5f0f6c(0x127),{'sessionId':_0x978d51}),!![];return![];}['setGlobalKeys'](_0x306848){const _0x3944c3=a0_0x32a75f;this[_0x3944c3(0x12d)]={'loxiaApiKey':_0x306848[_0x3944c3(0x11d)]||this['globalKeys'][_0x3944c3(0x11d)],'vendorKeys':{...this[_0x3944c3(0x12d)][_0x3944c3(0x123)],..._0x306848['vendorKeys']||{}}},this['logger']?.[_0x3944c3(0x135)](_0x3944c3(0x126),{'hasLoxiaKey':!!this[_0x3944c3(0x12d)]['loxiaApiKey'],'vendorKeys':Object[_0x3944c3(0x12e)](this[_0x3944c3(0x12d)]['vendorKeys'])});}['getActiveSessions'](){const _0x564722=a0_0x32a75f;return Array['from'](this[_0x564722(0x11a)]['entries']())['map'](([_0x4b4299,_0x25aef4])=>({'sessionId':_0x4b4299,'hasLoxiaKey':!!_0x25aef4['loxiaApiKey'],'vendorKeys':Object['keys'](_0x25aef4['vendorKeys']||{}),'updatedAt':_0x25aef4['updatedAt']}));}[a0_0x32a75f(0x11e)](_0x4d37ee=0x18*0x3c*0x3c*0x3e8){const _0x82831=a0_0x32a75f,_0xb89f27=Date['now'](),_0x3eb0fa=[];for(const [_0x3e269e,_0x297b34]of this['sessionKeys']['entries']()){const _0x544a17=_0xb89f27-new Date(_0x297b34['updatedAt'])[_0x82831(0x138)]();_0x544a17>_0x4d37ee&&_0x3eb0fa[_0x82831(0x130)](_0x3e269e);}return _0x3eb0fa[_0x82831(0x119)](_0x4e2455=>{const _0x4890b3=_0x82831;this['sessionKeys'][_0x4890b3(0x12b)](_0x4e2455);}),_0x3eb0fa['length']>0x0&&this[_0x82831(0x12c)]?.['info'](_0x82831(0x11c),{'expiredSessions':_0x3eb0fa['length'],'remainingSessions':this['sessionKeys'][_0x82831(0x129)]}),_0x3eb0fa[_0x82831(0x122)];}}export default ApiKeyManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a0_0x4dfa4b=a0_0x8c3c;(function(_0x2cc64c,_0x31789f){const _0x37723f=a0_0x8c3c,_0x51d6bb=_0x2cc64c();while(!![]){try{const _0x3c0d31=-parseInt(_0x37723f(0x10f))/0x1*(-parseInt(_0x37723f(0x114))/0x2)+parseInt(_0x37723f(0x104))/0x3+-parseInt(_0x37723f(0x10a))/0x4+parseInt(_0x37723f(0x124))/0x5+-parseInt(_0x37723f(0x12f))/0x6*(parseInt(_0x37723f(0x12b))/0x7)+-parseInt(_0x37723f(0xfb))/0x8+parseInt(_0x37723f(0x11a))/0x9*(-parseInt(_0x37723f(0x111))/0xa);if(_0x3c0d31===_0x31789f)break;else _0x51d6bb['push'](_0x51d6bb['shift']());}catch(_0x34b774){_0x51d6bb['push'](_0x51d6bb['shift']());}}}(a0_0xff92,0x23ba7));function a0_0xff92(){const _0x39b56c=['BMfTzq','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','Bg9HzejLBMnOBwfYA3m','yxbWBgLJyxrPB24VANnVBG','yMvUy2HTyxjRCW','CMvMCMvZAeLUDgvYDMfS','A2v5CW','z2v0vgLTzq','ndC3ote4uengzfnY','Aw5PDgLHBgL6zq','C29YDa','BMvLzhnszwzYzxnO','C291CMnL','DMfSDwvZ','mtG1otiWsMjlvvbe','x2DLDejLC3rnB2rLBezVCLrHC2S','C3bLzwq','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','BgvUz3rO','mJmWmZe1yLn6qxLW','BwfW','mtbAzhzIwvC','DgfZA3m','z2v0u3rHDhvZ','mMrns0jluG','yxP1CMvcywnRzw5KvxjS','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','y29UzMLN','zxjYB3i','x2DLDezHC3rLC3rnB2rLBa','mtKXnJi3muTQCLz5Aa','Bwf4','y3jLyxrPDMu','CxvPy2STDgfZA3m','x3nJAgvKDwXLuMvMCMvZAa','r0vu','Dw5RBM93BG','Bw9KzwXZ','BM93','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','mti1ndmZnwXkreTWrW','BwvZC2fNzq','yw5HBhLZAxm','AxnmB2fKAw5N','BgfZDfvWzgf0zwq','uMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','C3rHDhvZ','mtqYnZK5m3jzuwHPwa','qMvHCMvYia','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','nKnZrwTIsW','zgvIDwC','Bg9Nz2vY','mJq1otC2u0zWsNjU'];a0_0xff92=function(){return _0x39b56c;};return a0_0xff92();}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';function a0_0x8c3c(_0x18027a,_0x755289){_0x18027a=_0x18027a-0xf9;const _0xff9243=a0_0xff92();let _0x8c3c3b=_0xff9243[_0x18027a];if(a0_0x8c3c['lUOnoL']===undefined){var _0x16d7ef=function(_0x165276){const _0x51f00d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x32140d='',_0x51c314='';for(let _0x121f28=0x0,_0x1b0cf6,_0x1cc196,_0x2b529a=0x0;_0x1cc196=_0x165276['charAt'](_0x2b529a++);~_0x1cc196&&(_0x1b0cf6=_0x121f28%0x4?_0x1b0cf6*0x40+_0x1cc196:_0x1cc196,_0x121f28++%0x4)?_0x32140d+=String['fromCharCode'](0xff&_0x1b0cf6>>(-0x2*_0x121f28&0x6)):0x0){_0x1cc196=_0x51f00d['indexOf'](_0x1cc196);}for(let _0x3672a1=0x0,_0x5655d1=_0x32140d['length'];_0x3672a1<_0x5655d1;_0x3672a1++){_0x51c314+='%'+('00'+_0x32140d['charCodeAt'](_0x3672a1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x51c314);};a0_0x8c3c['WGUcpg']=_0x16d7ef,a0_0x8c3c['rGGHar']={},a0_0x8c3c['lUOnoL']=!![];}const _0x45a0b0=_0xff9243[0x0],_0x3c916c=_0x18027a+_0x45a0b0,_0x2120ed=a0_0x8c3c['rGGHar'][_0x3c916c];return!_0x2120ed?(_0x8c3c3b=a0_0x8c3c['WGUcpg'](_0x8c3c3b),a0_0x8c3c['rGGHar'][_0x3c916c]=_0x8c3c3b):_0x8c3c3b=_0x2120ed,_0x8c3c3b;}class BenchmarkService{constructor(_0x32140d,_0x51c314){const _0x41eef6=a0_0x8c3c;this['config']=_0x32140d,this['logger']=_0x51c314,this['benchmarks']=null,this[_0x41eef6(0x128)]=null,this[_0x41eef6(0x127)]=![],this[_0x41eef6(0x115)]='https://autopilot-api.azurewebsites.net',this['refreshInterval']=MODEL_ROUTER_CONFIG['BENCHMARK_REFRESH_INTERVAL'];}async[a0_0x4dfa4b(0x105)](){const _0x3cd73e=a0_0x4dfa4b;try{await this['loadBenchmarks'](),this[_0x3cd73e(0x11e)](),this['logger']['info'](_0x3cd73e(0x12e));}catch(_0x121f28){this['logger'][_0x3cd73e(0x118)]('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x121f28[_0x3cd73e(0x125)]}),this[_0x3cd73e(0x100)]=null;}}['getBenchmarks'](){const _0x5a3d93=a0_0x4dfa4b;if(!this[_0x5a3d93(0x100)])return this['logger']['error'](_0x5a3d93(0xfd),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async['loadBenchmarks'](){const _0x326389=a0_0x4dfa4b;if(this['isLoading']){this[_0x326389(0xfa)]['debug']('Benchmark\x20loading\x20already\x20in\x20progress');return;}this[_0x326389(0x127)]=!![];try{const _0x1b0cf6=await this[_0x326389(0x12d)]();if(_0x1b0cf6)this['benchmarks']=_0x1b0cf6,this['lastUpdated']=new Date(),this[_0x326389(0xfa)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x1b0cf6[_0x326389(0x121)]?.['length']||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x1cc196){this['logger']['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x1cc196[_0x326389(0x125)],'endpoint':url}),!this[_0x326389(0x100)]&&(this['benchmarks']=null);}finally{this['isLoading']=![];}}['getBenchmarkTable'](){const _0x2b529a=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.['toISOString']()||'unknown','models':_0x2b529a['models']||[],'tasks':_0x2b529a['tasks']||{},'summary':this['_generateBenchmarkSummary'](_0x2b529a)};}[a0_0x4dfa4b(0x107)](){const _0x3d0541=a0_0x4dfa4b;if(!this['lastUpdated'])return!![];const _0x3672a1=Date[_0x3d0541(0x122)]()-this[_0x3d0541(0x128)][_0x3d0541(0x103)]();return _0x3672a1>this['refreshInterval'];}async[a0_0x4dfa4b(0x12d)](){const _0x520e22=a0_0x4dfa4b,_0x5655d1=this['azureBackendUrl']+_0x520e22(0x123);let _0x17557d=null;this[_0x520e22(0x117)]['apiKey']&&(_0x17557d=this[_0x520e22(0x117)]['apiKey']);const _0x3e7fb0={'method':_0x520e22(0x11f),'headers':{'Content-Type':_0x520e22(0xff),..._0x17557d&&{'Authorization':_0x520e22(0x12c)+_0x17557d}},'timeout':0x2710};this[_0x520e22(0xfa)][_0x520e22(0xf9)]('Fetching benchmarks from Azure backend',{'url':_0x5655d1});const _0x8c585c=await fetch(_0x5655d1,_0x3e7fb0);if(!_0x8c585c['ok'])throw new Error('HTTP\x20'+_0x8c585c[_0x520e22(0x12a)]+':\x20'+_0x8c585c['statusText']);const _0x26505d=await _0x8c585c['json']();return _0x26505d;}[a0_0x4dfa4b(0x10d)](_0x4172b8){const _0x21edff=a0_0x4dfa4b,_0x2f7ee8=_0x4172b8[_0x21edff(0x121)]||[];return{'totalModels':_0x2f7ee8['length'],'taskCategories':Object[_0x21edff(0x102)](_0x4172b8['tasks']||{}),'bestForCoding':this[_0x21edff(0x10b)](_0x2f7ee8,'coding'),'bestForAnalysis':this[_0x21edff(0x10b)](_0x2f7ee8,_0x21edff(0x126)),'bestForQuickTasks':this[_0x21edff(0x10b)](_0x2f7ee8,_0x21edff(0x11d)),'bestForCreative':this[_0x21edff(0x10b)](_0x2f7ee8,_0x21edff(0x11c)),'fastestModel':this['_getFastestModel'](_0x2f7ee8),'mostCostEfficient':this['_getMostCostEfficient'](_0x2f7ee8)};}[a0_0x4dfa4b(0x10b)](_0x86a7d1,_0x15770a){const _0x32275d=a0_0x4dfa4b;return _0x86a7d1['filter'](_0x56688c=>_0x56688c['tasks']&&_0x56688c['tasks'][_0x15770a])[_0x32275d(0x106)]((_0x1895ec,_0x2d24e6)=>(_0x2d24e6[_0x32275d(0x112)][_0x15770a]['score']||0x0)-(_0x1895ec['tasks'][_0x15770a]['score']||0x0))[0x0]?.['name']||_0x32275d(0x120);}[a0_0x4dfa4b(0x119)](_0x38cb0a){const _0x35b50c=a0_0x4dfa4b,_0x472ee6={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x38cb0a['sort']((_0xdcba98,_0x8bfb0f)=>{const _0x575ebc=a0_0x8c3c,_0x54e9f0=Math[_0x575ebc(0x11b)](...Object['values'](_0xdcba98[_0x575ebc(0x112)]||{})[_0x575ebc(0x110)](_0xa1b908=>_0x472ee6[_0xa1b908[_0x575ebc(0x10c)]]||0x0)),_0x359e9e=Math[_0x575ebc(0x11b)](...Object[_0x575ebc(0x109)](_0x8bfb0f[_0x575ebc(0x112)]||{})['map'](_0x4b9c2e=>_0x472ee6[_0x4b9c2e['speed']]||0x0));return _0x359e9e-_0x54e9f0;})[0x0]?.['name']||_0x35b50c(0x120);}['_getMostCostEfficient'](_0x35a172){const _0x716170=a0_0x4dfa4b,_0x3cd56f={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x35a172[_0x716170(0x106)]((_0x18d4c9,_0x31e21e)=>{const _0x9fa16=_0x716170,_0x55b581=Math['max'](...Object['values'](_0x18d4c9[_0x9fa16(0x112)]||{})[_0x9fa16(0x110)](_0x3bcc02=>_0x3cd56f[_0x3bcc02['cost']]||0x0)),_0xbf8b98=Math['max'](...Object[_0x9fa16(0x109)](_0x31e21e['tasks']||{})['map'](_0x366f13=>_0x3cd56f[_0x366f13['cost']]||0x0));return _0xbf8b98-_0x55b581;})[0x0]?.[_0x716170(0xfc)]||'unknown';}['_scheduleRefresh'](){const _0x55aaac=a0_0x4dfa4b;setInterval(async()=>{const _0x5cfc3c=a0_0x8c3c;this[_0x5cfc3c(0x107)]()&&(this[_0x5cfc3c(0xfa)]['debug'](_0x5cfc3c(0x129)),await this[_0x5cfc3c(0xfe)]());},this[_0x55aaac(0x101)]);}async['forceRefresh'](){const _0x133d95=a0_0x4dfa4b;this[_0x133d95(0xfa)]['info'](_0x133d95(0x116)),await this[_0x133d95(0xfe)]();}[a0_0x4dfa4b(0x113)](){const _0x2cc59e=a0_0x4dfa4b;return{'initialized':!!this[_0x2cc59e(0x100)],'lastUpdated':this['lastUpdated']?.['toISOString']()||null,'source':this['benchmarks']?.[_0x2cc59e(0x108)]||_0x2cc59e(0x120),'modelCount':this['benchmarks']?.['models']?.[_0x2cc59e(0x10e)]||0x0,'isLoading':this[_0x2cc59e(0x127)],'needsRefresh':this['needsRefresh']()};}}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
|
+
const a0_0x724650=a0_0x1e31;function a0_0x1e31(_0x54b0f8,_0x5a2a36){_0x54b0f8=_0x54b0f8-0xef;const _0xac542f=a0_0xac54();let _0x1e3186=_0xac542f[_0x54b0f8];if(a0_0x1e31['eYbMkQ']===undefined){var _0xdb1714=function(_0x874371){const _0x3ee2e5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x425aa4='',_0x279712='';for(let _0x9d779a=0x0,_0x1236bb,_0x336e16,_0x37d27c=0x0;_0x336e16=_0x874371['charAt'](_0x37d27c++);~_0x336e16&&(_0x1236bb=_0x9d779a%0x4?_0x1236bb*0x40+_0x336e16:_0x336e16,_0x9d779a++%0x4)?_0x425aa4+=String['fromCharCode'](0xff&_0x1236bb>>(-0x2*_0x9d779a&0x6)):0x0){_0x336e16=_0x3ee2e5['indexOf'](_0x336e16);}for(let _0xdb069d=0x0,_0xd3a1e3=_0x425aa4['length'];_0xdb069d<_0xd3a1e3;_0xdb069d++){_0x279712+='%'+('00'+_0x425aa4['charCodeAt'](_0xdb069d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x279712);};a0_0x1e31['EdyXAE']=_0xdb1714,a0_0x1e31['aMnalk']={},a0_0x1e31['eYbMkQ']=!![];}const _0x306cbd=_0xac542f[0x0],_0x1da0d2=_0x54b0f8+_0x306cbd,_0x52f401=a0_0x1e31['aMnalk'][_0x1da0d2];return!_0x52f401?(_0x1e3186=a0_0x1e31['EdyXAE'](_0x1e3186),a0_0x1e31['aMnalk'][_0x1da0d2]=_0x1e3186):_0x1e3186=_0x52f401,_0x1e3186;}(function(_0x27b771,_0x25bfa0){const _0x156012=a0_0x1e31,_0x2489d7=_0x27b771();while(!![]){try{const _0x10f9ab=-parseInt(_0x156012(0x144))/0x1*(-parseInt(_0x156012(0xef))/0x2)+-parseInt(_0x156012(0x104))/0x3*(-parseInt(_0x156012(0x12d))/0x4)+parseInt(_0x156012(0x130))/0x5+parseInt(_0x156012(0x12e))/0x6*(-parseInt(_0x156012(0x10d))/0x7)+parseInt(_0x156012(0x124))/0x8+parseInt(_0x156012(0x135))/0x9+-parseInt(_0x156012(0x128))/0xa;if(_0x10f9ab===_0x25bfa0)break;else _0x2489d7['push'](_0x2489d7['shift']());}catch(_0x47389e){_0x2489d7['push'](_0x2489d7['shift']());}}}(a0_0xac54,0x9dc92));function a0_0xac54(){const _0x4ed5fe=['z2v0rgf0zq','nJK1nJqWoe1brufhBq','Dg90ywXFDg9Rzw5Z','refjtfK','DxnHz2u','mtG5mZyXmdbzAKD5wgK','D2vLA2X5','BwfW','zgfPBhK','Aw5MBW','ndu1nKPmyNfqCq','mtC0r3jgqLHw','Bg9Nz2vY','mZeYntm0meH1z0XMAG','y29UzMLN','C29YDa','CgfKu3rHCNq','BM93','mZa0mJC3nevVwhfHBW','vxnHz2uGzgf0ysbZyxzLza','ywXLCNrZ','z2v0rNvSBfLLyxi','z2v0tw9UDgHlzxK','ChvZAa','Dg9tDhjPBMC','Bw9UDgHSEq','sw52ywXPzcbWzxjPB2q6ia','zNjVBq','z2v0v2vLA0TLEq','z2v0','y2fSy3vSyxrLq29ZDa','C2v0DxbqzxjPB2rPy1nHDMu','zxjYB3i','nuzkthHxwa','y3jLyxrLrw1WDhLvC2fNzq','zgvIDwC','D2fYBG','ntmWntrMrhfhzgO','y2HLy2TuAhjLC2HVBgq','yNvKz2v0CW','Bwf4','Bg9HzfvZywDLrgf0yq','yNLnB2rLBa','C2v0qNvKz2v0CW','ChjVBxb0x3rVA2vUCW','Aw5WDxq','Bw9KzwXjza','yNLbz2vUDa','C2vUzfrOCMvZAg9SzefSzxj0','Aw5PDgLHBgL6zvvZywDLrw50CNK','zM9YrwfJAa','CMvXDwvZDhm','Dg9Rzw5Z','zgfPBhLbDMvYywDLCW','y29UDMvYDfrVq1nw','vg9Rzw5Z','AM9PBG','y2HLy2TuAhjLC2HVBgrbBgvYDhm','mJa0ouPvt09Wza','zw50CMLLCW','z2v0rgf5','z2v0vxnHz2u','v0vfs0Xz','z2v0tw9KzwXvC2fNzq','ywDLBNrjza','z2v0uMvTywLUAw5NqNvKz2v0','y29ZDej5rgf5','ndKWotfOwNztBfG','DgHYzxnOB2XKx3jLywnOzwq','yNvKz2v0x2v4y2vLzgvK','AxnxAxrOAw5cDwrNzxq','CM91BMq','C3bSAxq','Dg90ywW','DxbKyxrLvxnHz2vfBNrYEq','rgf0zq','veHsrvnit0XeuW','y29ZDa','C2vUzej1zgDLDefSzxj0','C2v0','Dw5ZAgLMDa','z2v0rgf5s2v5','zw1PDa','uMvXDwvZDhm','qNvKz2v0igXPBwL0CYb1CgrHDgvK','AgfZ','tu9oveHmwq','yNvKz2v0qwXLCNq','q29ZDa'];a0_0xac54=function(){return _0x4ed5fe;};return a0_0xac54();}import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x425aa4,_0x279712){const _0x2a9d1b=a0_0x1e31;this[_0x2a9d1b(0x131)]=_0x425aa4||{},this[_0x2a9d1b(0x12f)]=_0x279712,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x2a9d1b(0x126)],'weekly':BUDGET_LIMITS[_0x2a9d1b(0x108)],'monthly':BUDGET_LIMITS[_0x2a9d1b(0x120)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS[_0x2a9d1b(0x116)],'lastAlertTimes':new Map()},this[_0x2a9d1b(0xf3)](),this[_0x2a9d1b(0x142)]();}['trackUsage'](_0x9d779a,_0x1236bb,_0x336e16){const _0x33ea51=a0_0x1e31;try{const _0x37d27c=this[_0x33ea51(0x141)](_0x1236bb,_0x336e16),_0xdb069d=new Date(),_0xd3a1e3=this['getDayKey'](_0xdb069d),_0x4094bc=this[_0x33ea51(0x13f)](_0xdb069d),_0x44562a=this['getMonthKey'](_0xdb069d);this[_0x33ea51(0xfb)](this['usage']['daily'],_0xd3a1e3),this[_0x33ea51(0xfb)](this['usage']['weekly'],_0x4094bc),this[_0x33ea51(0xfb)](this['usage']['monthly'],_0x44562a);const _0x7c5e14={'agentId':_0x9d779a,'modelId':_0x1236bb,'tokens':_0x336e16['total_tokens'],'cost':_0x37d27c,'timestamp':_0xdb069d['toISOString']()};return this[_0x33ea51(0x114)](this[_0x33ea51(0x127)][_0x33ea51(0x12b)][_0x33ea51(0x140)](_0xd3a1e3),_0x7c5e14),this['updateUsageEntry'](this['usage']['weekly']['get'](_0x4094bc),_0x7c5e14),this['updateUsageEntry'](this['usage'][_0x33ea51(0x13c)][_0x33ea51(0x140)](_0x44562a),_0x7c5e14),this['usage'][_0x33ea51(0x113)][_0x33ea51(0xfe)]+=_0x336e16[_0x33ea51(0x125)],this['usage']['total'][_0x33ea51(0x117)]+=_0x37d27c,this['usage']['total']['requests']+=0x1,this['checkBudgetLimits'](_0xd3a1e3,_0x4094bc,_0x44562a),this['logger'][_0x33ea51(0x12c)]('Usage\x20tracked',{'agentId':_0x9d779a,'modelId':_0x1236bb,'tokens':_0x336e16[_0x33ea51(0x125)],'cost':_0x37d27c,'totalCost':this['usage']['total'][_0x33ea51(0x117)]}),{'cost':_0x37d27c,'totalCost':this[_0x33ea51(0x127)]['total']['cost'],'totalTokens':this[_0x33ea51(0x127)][_0x33ea51(0x113)]['tokens'],'dailyUsage':this['usage'][_0x33ea51(0x12b)]['get'](_0xd3a1e3),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x2492c9){this['logger'][_0x33ea51(0x143)]('Failed\x20to\x20track\x20usage',{'error':_0x2492c9['message'],'agentId':_0x9d779a,'modelId':_0x1236bb});throw _0x2492c9;}}['calculateCost'](_0x9bc8f,_0x14f7c9){const _0x43c48a=a0_0x1e31,_0x4b2f5f=COST_PER_TOKEN[_0x9bc8f];if(!_0x4b2f5f)return this[_0x43c48a(0x12f)][_0x43c48a(0x147)]('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x9bc8f}),0x0;const _0x33dd68=(_0x14f7c9[_0x43c48a(0xf6)]||0x0)*_0x4b2f5f[_0x43c48a(0xf7)],_0x2ac472=(_0x14f7c9['completion_tokens']||0x0)*_0x4b2f5f['output'];return _0x33dd68+_0x2ac472;}['getUsage'](_0x409295='daily',_0x1fa15f=new Date()){const _0x492516=a0_0x1e31;switch(_0x409295){case'daily':return this[_0x492516(0x127)][_0x492516(0x12b)][_0x492516(0x140)](this[_0x492516(0x11b)](_0x1fa15f))||this['createEmptyUsage']();case _0x492516(0x129):return this[_0x492516(0x127)]['weekly']['get'](this['getWeekKey'](_0x1fa15f))||this['createEmptyUsage']();case _0x492516(0x13c):return this[_0x492516(0x127)][_0x492516(0x13c)][_0x492516(0x140)](this['getMonthKey'](_0x1fa15f))||this[_0x492516(0x145)]();case'total':return{...this[_0x492516(0x127)]['total']};default:throw new Error(_0x492516(0x13d)+_0x409295);}}['getAgentUsage'](_0x45b7c3,_0x78a9f3='daily'){const _0x4382ab=this['getUsage'](_0x78a9f3);return _0x4382ab['byAgent']?.[_0x45b7c3]||this['createEmptyUsage']();}[a0_0x724650(0x109)](_0x32c519,_0x27136f='daily'){const _0x20a680=a0_0x724650,_0x2d0ce7=this['getUsage'](_0x27136f);return _0x2d0ce7[_0x20a680(0xf4)]?.[_0x32c519]||this[_0x20a680(0x145)]();}[a0_0x724650(0xf5)](_0x5b534f){const _0x1a41fe=a0_0x724650;if(_0x5b534f['daily']!==undefined)this['budgets'][_0x1a41fe(0x12b)]=_0x5b534f['daily'];if(_0x5b534f['weekly']!==undefined)this['budgets']['weekly']=_0x5b534f['weekly'];if(_0x5b534f['monthly']!==undefined)this[_0x1a41fe(0xf1)][_0x1a41fe(0x13c)]=_0x5b534f['monthly'];this[_0x1a41fe(0x12f)][_0x1a41fe(0x12c)](_0x1a41fe(0x11e),this['budgets']),this['saveUsageData']();}[a0_0x724650(0x10b)](){const _0x1026cf=a0_0x724650,_0x2c9d94=new Date(),_0x4d906e=this['getUsage']('daily',_0x2c9d94),_0x271377=this[_0x1026cf(0x107)]('weekly',_0x2c9d94),_0x5a85aa=this[_0x1026cf(0x107)]('monthly',_0x2c9d94);return{'daily':Math['max'](0x0,this['budgets'][_0x1026cf(0x12b)]-_0x4d906e['cost']),'weekly':Math[_0x1026cf(0xf2)](0x0,this[_0x1026cf(0xf1)][_0x1026cf(0x129)]-_0x271377[_0x1026cf(0x117)]),'monthly':Math['max'](0x0,this['budgets']['monthly']-_0x5a85aa['cost'])};}[a0_0x724650(0x110)](_0x5f5bc5=a0_0x724650(0x12b)){const _0x50c6da=a0_0x724650,_0xf0af7a=this[_0x50c6da(0x107)](_0x5f5bc5),_0x2fab71=this[_0x50c6da(0xf1)][_0x5f5bc5];return _0xf0af7a['cost']<=_0x2fab71;}['getUsageTrends'](_0x18fd48=0x1e){const _0x413bb0=a0_0x724650,_0x226d6e={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0xac0583=new Date();let _0x34c864=0x0,_0x3d91eb=0x0,_0x55646d=0x0;const _0x3dce1b=new Map(),_0x5df2a0=new Map();for(let _0x3acceb=0x0;_0x3acceb<_0x18fd48;_0x3acceb++){const _0x1995b1=new Date(_0xac0583);_0x1995b1['setDate'](_0x1995b1[_0x413bb0(0x123)]()-_0x3acceb);const _0x3a10d2=this[_0x413bb0(0x11b)](_0x1995b1),_0x581132=this['usage']['daily'][_0x413bb0(0x140)](_0x3a10d2);_0x581132?(_0x34c864+=_0x581132['cost'],_0x3d91eb+=_0x581132[_0x413bb0(0xfe)],_0x55646d+=_0x581132[_0x413bb0(0xfd)],_0x226d6e[_0x413bb0(0x10c)]['unshift']({'date':_0x3a10d2,'cost':_0x581132['cost']}),_0x226d6e['tokensByDay'][_0x413bb0(0x11a)]({'date':_0x3a10d2,'tokens':_0x581132['tokens']}),Object[_0x413bb0(0x105)](_0x581132['byAgent']||{})['forEach'](([_0x2f6895,_0x57f000])=>{const _0x3ab428=_0x413bb0;!_0x3dce1b[_0x3ab428(0x11f)](_0x2f6895)&&_0x3dce1b[_0x3ab428(0x119)](_0x2f6895,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x30b11f=_0x3dce1b['get'](_0x2f6895);_0x30b11f['cost']+=_0x57f000['cost'],_0x30b11f[_0x3ab428(0xfe)]+=_0x57f000[_0x3ab428(0xfe)],_0x30b11f[_0x3ab428(0xfd)]+=_0x57f000[_0x3ab428(0xfd)];}),Object['entries'](_0x581132[_0x413bb0(0xf4)]||{})['forEach'](([_0x3ecd77,_0x291724])=>{const _0x3d66b9=_0x413bb0;!_0x5df2a0['has'](_0x3ecd77)&&_0x5df2a0[_0x3d66b9(0x119)](_0x3ecd77,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x359cf1=_0x5df2a0[_0x3d66b9(0x140)](_0x3ecd77);_0x359cf1[_0x3d66b9(0x117)]+=_0x291724[_0x3d66b9(0x117)],_0x359cf1[_0x3d66b9(0xfe)]+=_0x291724['tokens'],_0x359cf1['requests']+=_0x291724[_0x3d66b9(0xfd)];})):(_0x226d6e['costByDay'][_0x413bb0(0x11a)]({'date':_0x3a10d2,'cost':0x0}),_0x226d6e['tokensByDay'][_0x413bb0(0x11a)]({'date':_0x3a10d2,'tokens':0x0}));}return _0x226d6e['dailyAverages']['cost']=_0x34c864/_0x18fd48,_0x226d6e[_0x413bb0(0xff)]['tokens']=_0x3d91eb/_0x18fd48,_0x226d6e['dailyAverages']['requests']=_0x55646d/_0x18fd48,_0x226d6e['topAgents']=Array[_0x413bb0(0x13e)](_0x3dce1b[_0x413bb0(0x105)]())['map'](([_0x48b0b2,_0x89acfd])=>({'id':_0x48b0b2,..._0x89acfd}))[_0x413bb0(0x132)]((_0x810685,_0x4856d3)=>_0x4856d3['cost']-_0x810685['cost'])['slice'](0x0,0xa),_0x226d6e['topModels']=Array['from'](_0x5df2a0['entries']())['map'](([_0x1f064a,_0x73bdcf])=>({'id':_0x1f064a,..._0x73bdcf}))[_0x413bb0(0x132)]((_0x390760,_0x37cb97)=>_0x37cb97['cost']-_0x390760[_0x413bb0(0x117)])['slice'](0x0,0xa),_0x226d6e;}['exportUsageData'](_0x2ccfbf='json',_0x3d87ad=null,_0x3a655a=null){const _0x38d809=a0_0x724650,_0x1f5a16={'budgets':this['budgets'],'total':this['usage'][_0x38d809(0x113)],'daily':{},'weekly':{},'monthly':{}},_0x3fae38=(_0x1d9fc5,_0x146c29)=>{const _0x390f5a={};return _0x1d9fc5['forEach']((_0x3fe154,_0x352e83)=>{const _0x46b15c=_0x146c29(_0x352e83);(!_0x3d87ad||_0x46b15c>=_0x3d87ad)&&(!_0x3a655a||_0x46b15c<=_0x3a655a)&&(_0x390f5a[_0x352e83]=_0x3fe154);}),_0x390f5a;};_0x3d87ad||_0x3a655a?(_0x1f5a16['daily']=_0x3fae38(this['usage'][_0x38d809(0x12b)],_0xde8eb7=>new Date(_0xde8eb7)),_0x1f5a16[_0x38d809(0x129)]=_0x3fae38(this['usage'][_0x38d809(0x129)],_0x271316=>new Date(_0x271316)),_0x1f5a16[_0x38d809(0x13c)]=_0x3fae38(this['usage']['monthly'],_0x10b46d=>new Date(_0x10b46d+'-01'))):(this[_0x38d809(0x127)][_0x38d809(0x12b)][_0x38d809(0xfc)]((_0x5a7c97,_0x5d00b9)=>_0x1f5a16[_0x38d809(0x12b)][_0x5d00b9]=_0x5a7c97),this[_0x38d809(0x127)][_0x38d809(0x129)]['forEach']((_0x4f9fae,_0xed364f)=>_0x1f5a16[_0x38d809(0x129)][_0xed364f]=_0x4f9fae),this[_0x38d809(0x127)]['monthly'][_0x38d809(0xfc)]((_0x10415b,_0x487cd3)=>_0x1f5a16['monthly'][_0x487cd3]=_0x10415b));if(_0x2ccfbf==='csv')return this[_0x38d809(0x100)](_0x1f5a16);return JSON['stringify'](_0x1f5a16,null,0x2);}['initializeUsageEntry'](_0x2f8bc4,_0x2a2456){const _0x34244c=a0_0x724650;!_0x2f8bc4['has'](_0x2a2456)&&_0x2f8bc4[_0x34244c(0x119)](_0x2a2456,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x16942a,_0x2b6d0c){const _0x5b7caa=a0_0x724650;_0x16942a[_0x5b7caa(0x117)]+=_0x2b6d0c['cost'],_0x16942a[_0x5b7caa(0xfe)]+=_0x2b6d0c[_0x5b7caa(0xfe)],_0x16942a[_0x5b7caa(0xfd)]+=0x1,!_0x16942a[_0x5b7caa(0xf9)][_0x2b6d0c[_0x5b7caa(0x10a)]]&&(_0x16942a['byAgent'][_0x2b6d0c[_0x5b7caa(0x10a)]]=this[_0x5b7caa(0x145)]()),_0x16942a['byAgent'][_0x2b6d0c[_0x5b7caa(0x10a)]]['cost']+=_0x2b6d0c['cost'],_0x16942a[_0x5b7caa(0xf9)][_0x2b6d0c['agentId']]['tokens']+=_0x2b6d0c['tokens'],_0x16942a[_0x5b7caa(0xf9)][_0x2b6d0c['agentId']][_0x5b7caa(0xfd)]+=0x1,!_0x16942a['byModel'][_0x2b6d0c[_0x5b7caa(0xf8)]]&&(_0x16942a['byModel'][_0x2b6d0c['modelId']]=this[_0x5b7caa(0x145)]()),_0x16942a[_0x5b7caa(0xf4)][_0x2b6d0c[_0x5b7caa(0xf8)]][_0x5b7caa(0x117)]+=_0x2b6d0c['cost'],_0x16942a['byModel'][_0x2b6d0c[_0x5b7caa(0xf8)]][_0x5b7caa(0xfe)]+=_0x2b6d0c['tokens'],_0x16942a['byModel'][_0x2b6d0c['modelId']][_0x5b7caa(0xfd)]+=0x1;}['checkBudgetLimits'](_0x22a94d,_0x5c8864,_0x35fae1){const _0x59bfde=a0_0x724650,_0x36dad6=this[_0x59bfde(0x127)]['daily'][_0x59bfde(0x140)](_0x22a94d),_0x596bb6=this[_0x59bfde(0x127)][_0x59bfde(0x129)]['get'](_0x5c8864),_0x3c4c42=this['usage'][_0x59bfde(0x13c)]['get'](_0x35fae1);_0x36dad6[_0x59bfde(0x117)]>this['budgets']['daily']&&this[_0x59bfde(0x118)](_0x59bfde(0x12b),_0x36dad6['cost'],this[_0x59bfde(0xf1)]['daily']),_0x596bb6['cost']>this['budgets']['weekly']&&this['sendBudgetAlert'](_0x59bfde(0x129),_0x596bb6['cost'],this[_0x59bfde(0xf1)][_0x59bfde(0x129)]),_0x3c4c42['cost']>this['budgets']['monthly']&&this[_0x59bfde(0x118)]('monthly',_0x3c4c42['cost'],this['budgets'][_0x59bfde(0x13c)]),this[_0x59bfde(0x103)](_0x36dad6,_0x596bb6,_0x3c4c42);}['checkThresholdAlerts'](_0x154cb9,_0x44874a,_0x3e0c7d){const _0x10daf8=a0_0x724650,_0x3a2be2=this['alerts']['thresholds'];this['checkThreshold']('daily',_0x154cb9[_0x10daf8(0x117)],this[_0x10daf8(0xf1)]['daily'],_0x3a2be2),this[_0x10daf8(0xf0)]('weekly',_0x44874a[_0x10daf8(0x117)],this[_0x10daf8(0xf1)][_0x10daf8(0x129)],_0x3a2be2),this[_0x10daf8(0xf0)]('monthly',_0x3e0c7d[_0x10daf8(0x117)],this['budgets']['monthly'],_0x3a2be2);}[a0_0x724650(0xf0)](_0x99b342,_0x1f182e,_0x2efb61,_0xf0c095){const _0x1aa08c=a0_0x724650,_0x39dbad=_0x1f182e/_0x2efb61*0x64;for(const _0x31bbc9 of _0xf0c095){if(_0x39dbad>=_0x31bbc9){const _0x2e4358=_0x99b342+'_'+_0x31bbc9,_0x4e92f8=this[_0x1aa08c(0x137)]['lastAlertTimes'][_0x1aa08c(0x140)](_0x2e4358),_0x3ea48e=Date[_0x1aa08c(0x134)]();(!_0x4e92f8||_0x3ea48e-_0x4e92f8>0x36ee80)&&(this[_0x1aa08c(0xfa)](_0x99b342,_0x39dbad,_0x31bbc9,_0x1f182e,_0x2efb61),this[_0x1aa08c(0x137)]['lastAlertTimes'][_0x1aa08c(0x119)](_0x2e4358,_0x3ea48e));break;}}}['sendBudgetAlert'](_0x4141c3,_0x13c3b4,_0x1c422f){const _0x4a8e55=a0_0x724650;this['logger'][_0x4a8e55(0x147)]('Budget\x20limit\x20exceeded',{'period':_0x4141c3,'currentUsage':_0x13c3b4,'budgetLimit':_0x1c422f,'excess':_0x13c3b4-_0x1c422f}),typeof process!=='undefined'&&process['emit']&&process['emit'](_0x4a8e55(0x121),{'type':_0x4a8e55(0x10f),'period':_0x4141c3,'currentUsage':_0x13c3b4,'budgetLimit':_0x1c422f,'excess':_0x13c3b4-_0x1c422f});}['sendThresholdAlert'](_0x127a77,_0x222d6a,_0x3fe609,_0x47bb67,_0x1b0351){const _0x1d78d7=a0_0x724650;this[_0x1d78d7(0x12f)]['warn']('Budget\x20threshold\x20reached',{'period':_0x127a77,'percentage':Math['round'](_0x222d6a),'threshold':_0x3fe609,'usage':_0x47bb67,'budget':_0x1b0351}),typeof process!=='undefined'&&process[_0x1d78d7(0x11c)]&&process['emit']('budgetAlert',{'type':_0x1d78d7(0x10e),'period':_0x127a77,'percentage':Math[_0x1d78d7(0x111)](_0x222d6a),'threshold':_0x3fe609,'usage':_0x47bb67,'budget':_0x1b0351});}['getDayKey'](_0x55d8dc){const _0x109b50=a0_0x724650;return _0x55d8dc['toISOString']()[_0x109b50(0x112)]('T')[0x0];}['getWeekKey'](_0x1e1fe1){const _0x1eb7ce=a0_0x724650,_0x500175=_0x1e1fe1[_0x1eb7ce(0x138)](),_0x270c4e=this['getWeekNumber'](_0x1e1fe1);return _0x500175+'-W'+_0x270c4e['toString']()['padStart'](0x2,'0');}[a0_0x724650(0x139)](_0x4059f2){const _0x1af5fc=a0_0x724650,_0x1a4519=_0x4059f2[_0x1af5fc(0x138)](),_0x25e9bc=_0x4059f2['getMonth']()+0x1;return _0x1a4519+'-'+_0x25e9bc[_0x1af5fc(0x13b)]()[_0x1af5fc(0x133)](0x2,'0');}['getWeekNumber'](_0xa10e40){const _0x41ba0d=a0_0x724650,_0x82ba58=new Date(_0xa10e40[_0x41ba0d(0x138)](),0x0,0x1),_0x316178=(_0xa10e40-_0x82ba58)/0x5265c00;return Math['ceil']((_0x316178+_0x82ba58[_0x41ba0d(0x106)]()+0x1)/0x7);}['convertToCSV'](_0x5898b9){const _0x3dba08=a0_0x724650,_0x2aaed7=[];return _0x2aaed7['push'](['Period',_0x3dba08(0x115),_0x3dba08(0x122),_0x3dba08(0x101),_0x3dba08(0x11d),'Agent','Model']),Object['entries'](_0x5898b9['daily'])[_0x3dba08(0xfc)](([_0x181732,_0x10eb6a])=>{const _0x190779=_0x3dba08;_0x2aaed7[_0x190779(0x13a)](['Daily',_0x181732,_0x10eb6a[_0x190779(0x117)],_0x10eb6a['tokens'],_0x10eb6a[_0x190779(0xfd)],'','']),Object['entries'](_0x10eb6a[_0x190779(0xf9)]||{})[_0x190779(0xfc)](([_0x4a8b54,_0x5c12c3])=>{const _0x42ac7a=_0x190779;_0x2aaed7[_0x42ac7a(0x13a)](['Daily',_0x181732,_0x5c12c3['cost'],_0x5c12c3['tokens'],_0x5c12c3['requests'],_0x4a8b54,'']);});}),_0x2aaed7[_0x3dba08(0x12a)](_0x255287=>_0x255287[_0x3dba08(0x102)](','))['join']('\x0a');}[a0_0x724650(0xf3)](){const _0x1e3e7d=a0_0x724650;try{this['logger']['info']('Budget\x20service\x20initialized');}catch(_0x3fb4f7){this[_0x1e3e7d(0x12f)][_0x1e3e7d(0x143)]('Failed\x20to\x20load\x20usage\x20data',{'error':_0x3fb4f7['message']});}}['saveUsageData'](){const _0x2d630c=a0_0x724650;try{this['logger'][_0x2d630c(0x146)](_0x2d630c(0x136));}catch(_0x6b947c){this[_0x2d630c(0x12f)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0x6b947c['message']});}}[a0_0x724650(0x142)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a0_0x2046(){const _0x376aa3=['mJa2mdC3nLzRuLfyrq','iIbZAxPLpsi','mZK0mNLyAuXNAW','Bg9Nz2vY','Dgv4Da','zMLSzuLK','zxjYB3i','CMvMzxjLBMnL','Dg9Rzw5fC3rPBwf0zq','y29UzMLN','BgvUz3rO','ChvZAa','yxr0ywnOBwvUDfnLCNzPy2u','zM9YBwf0q29UDgvUDezPBgu','mZGZmgDUBwnAta','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','zxnJyxbLwg1S','mtrUqKrju2K','zMLSDgvY','CMvWBgfJzq','zM9YBwf0vgv4DezPBgu','mJq5otqYBfLguxH2','mtbnrfbjAuS','zM9YBwf0qNL0zxm','cJXMAwXLlxjLzMvYzw5Jzxm+cG','iIbTB2rPzMLLzd0I','Bw9Kzq','BwvZC2fNzq','zMXVB3i','mtaWodiWngjQzfHcrq','cIaGpc9MAwXLpG','CgrM','yNvPBgreEw5HBwLJq29UDgv4Da','Bg9N','iIb0ExbLpsi','m0DOvvvvqq','Dg9gAxHLza','zM9YBwf0uMvMzxjLBMnLrMLSzq','zMLSzxm','rxjYB3iGzxn0Aw1HDgLUzYb0B3rHBcb0B2TLBNm','ica8zMLSzsbUyw1Lpsi','mty4vKPftKDh','mJu4mZCYExbhquTn','y29UDgvUDa','s0iIig1Vzgu9iMnVBNrLBNqIpGO','iIbWyxrOpsi','Aw1Hz2u','zM9YBwf0ugrMrMLSzq','ode4mJHoqw90t1m','mZq5ndC3mNbHshPoBG'];a0_0x2046=function(){return _0x376aa3;};return a0_0x2046();}function a0_0x36ff(_0x521c3c,_0x37d8cf){_0x521c3c=_0x521c3c-0x77;const _0x2046d6=a0_0x2046();let _0x36fff9=_0x2046d6[_0x521c3c];if(a0_0x36ff['pFirSF']===undefined){var _0x227afd=function(_0x1267f8){const _0x14ef8e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39f97e='',_0x579b28='';for(let _0x3d9d23=0x0,_0x1bc13c,_0x518895,_0x157698=0x0;_0x518895=_0x1267f8['charAt'](_0x157698++);~_0x518895&&(_0x1bc13c=_0x3d9d23%0x4?_0x1bc13c*0x40+_0x518895:_0x518895,_0x3d9d23++%0x4)?_0x39f97e+=String['fromCharCode'](0xff&_0x1bc13c>>(-0x2*_0x3d9d23&0x6)):0x0){_0x518895=_0x14ef8e['indexOf'](_0x518895);}for(let _0x507eb8=0x0,_0x56225e=_0x39f97e['length'];_0x507eb8<_0x56225e;_0x507eb8++){_0x579b28+='%'+('00'+_0x39f97e['charCodeAt'](_0x507eb8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x579b28);};a0_0x36ff['bquYaR']=_0x227afd,a0_0x36ff['lcrcxA']={},a0_0x36ff['pFirSF']=!![];}const _0x5744f6=_0x2046d6[0x0],_0x25bea4=_0x521c3c+_0x5744f6,_0x5e037a=a0_0x36ff['lcrcxA'][_0x25bea4];return!_0x5e037a?(_0x36fff9=a0_0x36ff['bquYaR'](_0x36fff9),a0_0x36ff['lcrcxA'][_0x25bea4]=_0x36fff9):_0x36fff9=_0x5e037a,_0x36fff9;}const a0_0x27e730=a0_0x36ff;(function(_0x2319c2,_0xbee343){const _0x13bc54=a0_0x36ff,_0x4414a3=_0x2319c2();while(!![]){try{const _0x4522be=parseInt(_0x13bc54(0x95))/0x1+parseInt(_0x13bc54(0x8f))/0x2+-parseInt(_0x13bc54(0x88))/0x3*(parseInt(_0x13bc54(0x82))/0x4)+parseInt(_0x13bc54(0xa5))/0x5*(parseInt(_0x13bc54(0x99))/0x6)+-parseInt(_0x13bc54(0xa9))/0x7*(-parseInt(_0x13bc54(0x97))/0x8)+-parseInt(_0x13bc54(0x96))/0x9*(parseInt(_0x13bc54(0x7b))/0xa)+-parseInt(_0x13bc54(0x7a))/0xb*(parseInt(_0x13bc54(0x8e))/0xc);if(_0x4522be===_0xbee343)break;else _0x4414a3['push'](_0x4414a3['shift']());}catch(_0x4158ae){_0x4414a3['push'](_0x4414a3['shift']());}}}(a0_0x2046,0x4229b));import a0_0x39f97e from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x579b28={},_0x3d9d23=null){const _0x1e625f=a0_0x36ff;this[_0x1e625f(0xa0)]=_0x579b28,this['logger']=_0x3d9d23,this['attachmentService']=new a0_0x39f97e(_0x579b28,_0x3d9d23);}async['initialize'](){await this['attachmentService']['initialize']();}async[a0_0x27e730(0x85)](_0x1bc13c){const _0x24a6bd=a0_0x27e730;try{const _0x518895=await this[_0x24a6bd(0xa3)]['getActiveAttachments'](_0x1bc13c);if(_0x518895[_0x24a6bd(0xa1)]===0x0)return'';const _0x157698=_0x518895['filter'](_0x3dc528=>_0x3dc528['mode']===_0x24a6bd(0x90)),_0x507eb8=_0x518895[_0x24a6bd(0x77)](_0x1c50cc=>_0x1c50cc['mode']==='reference');let _0x56225e='';if(_0x157698['length']>0x0){_0x56225e+='\x0a<attached-files>\x0a';for(const _0xdf016e of _0x157698){const _0xc34069=await this[_0x24a6bd(0xa3)]['getAttachmentContent'](_0xdf016e[_0x24a6bd(0x9c)]);if(_0xc34069){const _0x239492=this[_0x24a6bd(0xa4)](_0xdf016e,_0xc34069);_0x56225e+=_0x239492+'\x0a';}}_0x56225e+='</attached-files>\x0a';}if(_0x507eb8[_0x24a6bd(0xa1)]>0x0){_0x56225e+=_0x24a6bd(0x7d);for(const _0x474fe7 of _0x507eb8){const _0x4ec1cc=this[_0x24a6bd(0x8a)](_0x474fe7);_0x56225e+=_0x4ec1cc+'\x0a';}_0x56225e+='</file-references>\x0a',_0x56225e+=_0x24a6bd(0xa6);}return _0x56225e;}catch(_0x25f0a5){return this['logger']?.['error']('Error\x20building\x20dynamic\x20context',{'agentId':_0x1bc13c,'error':_0x25f0a5['message']}),'';}}['formatContentFile'](_0x4962ff,_0x2b5ba6){const _0xf08be0=a0_0x27e730,{fileName:_0x5d8638,fileType:_0x57e8ba,size:_0xf3e80d,contentType:_0x237967}=_0x4962ff,_0x55c52f=(_0xf3e80d/0x400)['toFixed'](0x2);if(_0x237967===_0xf08be0(0x9b))return this[_0xf08be0(0x79)](_0x4962ff,_0x2b5ba6);else{if(_0x237967===_0xf08be0(0x93))return this['formatImageFile'](_0x4962ff,_0x2b5ba6);else{if(_0x237967===_0xf08be0(0x84))return this[_0xf08be0(0x94)](_0x4962ff,_0x2b5ba6);}}return _0xf08be0(0x8d)+this[_0xf08be0(0xa8)](_0x5d8638)+_0xf08be0(0x87)+_0x57e8ba+_0xf08be0(0x98)+_0x55c52f+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x2b5ba6)+_0xf08be0(0x83);}[a0_0x27e730(0x79)](_0x298ef1,_0x4583fe){const _0x1866ab=a0_0x27e730,{fileName:_0x222144,fileType:_0x243c1b,size:_0x3b47e6}=_0x298ef1,_0x7347db=(_0x3b47e6/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x222144)+_0x1866ab(0x87)+_0x243c1b+_0x1866ab(0x98)+_0x7347db+_0x1866ab(0x91)+this[_0x1866ab(0xa8)](_0x4583fe)+'\x0a\x20\x20</file>';}['formatImageFile'](_0x902da1,_0x270708){const _0x1f3974=a0_0x27e730,{fileName:_0x332b87,fileType:_0x505249,size:_0x27537d}=_0x902da1,_0x2c6c98=(_0x27537d/0x400)[_0x1f3974(0x89)](0x2);return _0x1f3974(0x8d)+this['escapeXml'](_0x332b87)+_0x1f3974(0x87)+_0x505249+_0x1f3974(0x98)+_0x2c6c98+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x270708+'\x0a\x20\x20</file>';}[a0_0x27e730(0x94)](_0x4e800d,_0x49689e){const _0x210a68=a0_0x27e730,{fileName:_0x44eb45,fileType:_0x48427d,size:_0x1a0ce7}=_0x4e800d,_0x1fb9af=(_0x1a0ce7/0x400)[_0x210a68(0x89)](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x210a68(0xa8)](_0x44eb45)+'\x22\x20type=\x22'+_0x48427d+'\x22\x20size=\x22'+_0x1fb9af+_0x210a68(0x91)+this[_0x210a68(0xa8)](_0x49689e)+_0x210a68(0x83);}['formatReferenceFile'](_0x54840e){const _0xf8250e=a0_0x27e730,{fileName:_0x3d6171,originalPath:_0x4c4591,size:_0x130280,fileType:_0x4fa142,lastModified:_0x2d441d}=_0x54840e,_0x41bbdf=this['formatBytes'](_0x130280),_0x5d252e=new Date(_0x2d441d)['toISOString']()['split']('T')[0x0];return _0xf8250e(0x8d)+this[_0xf8250e(0xa8)](_0x3d6171)+_0xf8250e(0x92)+this[_0xf8250e(0xa8)](_0x4c4591)+_0xf8250e(0x98)+_0x41bbdf+_0xf8250e(0x87)+_0x4fa142+_0xf8250e(0x7e)+_0x5d252e+'\x22\x20/>';}['escapeXml'](_0x19a548){const _0x2852b8=a0_0x27e730;if(!_0x19a548)return'';return _0x19a548['replace'](/&/g,'&')[_0x2852b8(0x78)](/</g,'<')['replace'](/>/g,'>')[_0x2852b8(0x78)](/"/g,'"')['replace'](/'/g,''');}['formatBytes'](_0x51c192){const _0x4bd8eb=a0_0x27e730;if(_0x51c192===0x0)return'0\x20Bytes';const _0x2032df=0x400,_0x477bdf=['Bytes','KB','MB','GB'],_0x1675f4=Math[_0x4bd8eb(0x81)](Math[_0x4bd8eb(0x86)](_0x51c192)/Math[_0x4bd8eb(0x86)](_0x2032df));return parseFloat((_0x51c192/Math['pow'](_0x2032df,_0x1675f4))[_0x4bd8eb(0x89)](0x2))+_0x477bdf[_0x1675f4];}async['estimateTotalTokens'](_0x2ad5bd){const _0x1e95af=a0_0x27e730;try{const _0x189b4c=await this[_0x1e95af(0xa3)]['getActiveAttachments'](_0x2ad5bd);let _0x524901=0x0;for(const _0x2c35e0 of _0x189b4c){_0x2c35e0['mode']===_0x1e95af(0x90)?_0x524901+=_0x2c35e0['tokenEstimate']||0x0:_0x524901+=0x14;}return _0x524901;}catch(_0x2d4fb7){return this['logger']?.['error'](_0x1e95af(0x8c),{'agentId':_0x2ad5bd,'error':_0x2d4fb7[_0x1e95af(0x80)]}),0x0;}}async['getAttachmentSummary'](_0x317947){const _0x1a5c82=a0_0x27e730;try{const _0x426012=await this[_0x1a5c82(0xa3)]['getActiveAttachments'](_0x317947),_0x3561aa={'totalActive':_0x426012['length'],'contentMode':_0x426012[_0x1a5c82(0x77)](_0x174141=>_0x174141[_0x1a5c82(0x7f)]==='content')['length'],'referenceMode':_0x426012[_0x1a5c82(0x77)](_0x2f40ae=>_0x2f40ae['mode']===_0x1a5c82(0x9e))['length'],'estimatedTokens':0x0,'files':[]};for(const _0x4dfcba of _0x426012){_0x3561aa['estimatedTokens']+=_0x4dfcba['tokenEstimate']||0x0,_0x3561aa[_0x1a5c82(0x8b)][_0x1a5c82(0xa2)]({'fileName':_0x4dfcba['fileName'],'mode':_0x4dfcba['mode'],'size':this[_0x1a5c82(0x7c)](_0x4dfcba['size']),'tokens':_0x4dfcba[_0x1a5c82(0x9f)]||0x0});}return _0x3561aa;}catch(_0x523ce1){return this[_0x1a5c82(0x9a)]?.[_0x1a5c82(0x9d)](_0x1a5c82(0xa7),{'agentId':_0x317947,'error':_0x523ce1[_0x1a5c82(0x80)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
|