@loxia-labs/loxia-autopilot-one 1.0.8 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/cli.js +1 -1
- package/bin/loxia-terminal-v2.js +1 -1
- package/bin/loxia-terminal.js +1 -1
- package/bin/start-with-terminal.js +1 -1
- package/package.json +1 -1
- package/scripts/install-scanners.js +1 -1
- package/src/analyzers/CSSAnalyzer.js +1 -1
- package/src/analyzers/ConfigValidator.js +1 -1
- package/src/analyzers/ESLintAnalyzer.js +1 -1
- package/src/analyzers/JavaScriptAnalyzer.js +1 -1
- package/src/analyzers/PrettierFormatter.js +1 -1
- package/src/analyzers/PythonAnalyzer.js +1 -1
- package/src/analyzers/SecurityAnalyzer.js +1 -1
- package/src/analyzers/TypeScriptAnalyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/detector.js +1 -1
- package/src/analyzers/codeCloneDetector/index.js +1 -1
- package/src/analyzers/codeCloneDetector/parser.js +1 -1
- package/src/analyzers/codeCloneDetector/reporter.js +1 -1
- package/src/analyzers/codeCloneDetector/scanner.js +1 -1
- package/src/core/agentPool.js +1 -1
- package/src/core/agentScheduler.js +1 -1
- package/src/core/contextManager.js +1 -1
- package/src/core/messageProcessor.js +1 -1
- package/src/core/orchestrator.js +1 -1
- package/src/core/stateManager.js +1 -1
- package/src/index.js +1 -1
- package/src/interfaces/cli.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
- package/src/interfaces/terminal/api/apiClient.js +1 -1
- package/src/interfaces/terminal/api/messageRouter.js +1 -1
- package/src/interfaces/terminal/api/session.js +1 -1
- package/src/interfaces/terminal/api/websocket.js +1 -1
- package/src/interfaces/terminal/components/AgentCreator.js +1 -1
- package/src/interfaces/terminal/components/AgentEditor.js +1 -1
- package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
- package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
- package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
- package/src/interfaces/terminal/components/Header.js +1 -1
- package/src/interfaces/terminal/components/HelpPanel.js +1 -1
- package/src/interfaces/terminal/components/InputBox.js +1 -1
- package/src/interfaces/terminal/components/Layout.js +1 -1
- package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
- package/src/interfaces/terminal/components/MessageList.js +1 -1
- package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
- package/src/interfaces/terminal/components/SearchPanel.js +1 -1
- package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
- package/src/interfaces/terminal/components/StatusBar.js +1 -1
- package/src/interfaces/terminal/components/TextInput.js +1 -1
- package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
- package/src/interfaces/terminal/config/constants.js +1 -1
- package/src/interfaces/terminal/index.js +1 -1
- package/src/interfaces/terminal/state/useAgentControl.js +1 -1
- package/src/interfaces/terminal/state/useAgents.js +1 -1
- package/src/interfaces/terminal/state/useConnection.js +1 -1
- package/src/interfaces/terminal/state/useMessages.js +1 -1
- package/src/interfaces/terminal/state/useTools.js +1 -1
- package/src/interfaces/terminal/utils/debugLogger.js +1 -1
- package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
- package/src/interfaces/terminal/utils/theme.js +1 -1
- package/src/interfaces/webServer.js +1 -1
- package/src/modules/fileExplorer/controller.js +1 -1
- package/src/modules/fileExplorer/index.js +1 -1
- package/src/modules/fileExplorer/middleware.js +1 -1
- package/src/modules/fileExplorer/routes.js +1 -1
- package/src/services/aiService.js +1 -1
- package/src/services/apiKeyManager.js +1 -1
- package/src/services/benchmarkService.js +1 -1
- package/src/services/budgetService.js +1 -1
- package/src/services/contextInjectionService.js +1 -1
- package/src/services/conversationCompactionService.js +1 -1
- package/src/services/errorHandler.js +1 -1
- package/src/services/fileAttachmentService.js +1 -1
- package/src/services/modelRouterService.js +1 -1
- package/src/services/modelsService.js +1 -1
- package/src/services/qualityInspector.js +1 -1
- package/src/services/tokenCountingService.js +1 -1
- package/src/tools/agentCommunicationTool.js +1 -1
- package/src/tools/agentDelayTool.js +1 -1
- package/src/tools/asyncToolManager.js +1 -1
- package/src/tools/baseTool.js +1 -1
- package/src/tools/browserTool.js +1 -1
- package/src/tools/cloneDetectionTool.js +1 -1
- package/src/tools/dependencyResolverTool.js +1 -1
- package/src/tools/fileContentReplaceTool.js +1 -1
- package/src/tools/fileSystemTool.js +1 -1
- package/src/tools/fileTreeTool.js +1 -1
- package/src/tools/imageTool.js +1 -1
- package/src/tools/importAnalyzerTool.js +1 -1
- package/src/tools/jobDoneTool.js +1 -1
- package/src/tools/seekTool.js +1 -1
- package/src/tools/staticAnalysisTool.js +1 -1
- package/src/tools/taskManagerTool.js +1 -1
- package/src/tools/terminalTool.js +1 -1
- package/src/tools/webTool.js +1 -1
- package/src/types/agent.js +1 -1
- package/src/types/contextReference.js +1 -1
- package/src/types/conversation.js +1 -1
- package/src/types/toolCommand.js +1 -1
- package/src/utilities/attachmentValidator.js +1 -1
- package/src/utilities/configManager.js +1 -1
- package/src/utilities/constants.js +1 -1
- package/src/utilities/directoryAccessManager.js +1 -1
- package/src/utilities/fileProcessor.js +1 -1
- package/src/utilities/logger.js +1 -1
- package/src/utilities/tagParser.js +1 -1
- package/src/utilities/toolConstants.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x4c22d6=a0_0xa457;(function(_0x2fb4a2,_0x3296ee){const _0xa0e36c=a0_0xa457,_0xbf114b=_0x2fb4a2();while(!![]){try{const _0x33afff=-parseInt(_0xa0e36c(0x1b7))/0x1*(-parseInt(_0xa0e36c(0x1c5))/0x2)+-parseInt(_0xa0e36c(0x1aa))/0x3+-parseInt(_0xa0e36c(0x181))/0x4+-parseInt(_0xa0e36c(0x202))/0x5*(parseInt(_0xa0e36c(0x219))/0x6)+parseInt(_0xa0e36c(0x1e6))/0x7+parseInt(_0xa0e36c(0x196))/0x8*(parseInt(_0xa0e36c(0x205))/0x9)+parseInt(_0xa0e36c(0x200))/0xa;if(_0x33afff===_0x3296ee)break;else _0xbf114b['push'](_0xbf114b['shift']());}catch(_0x210b59){_0xbf114b['push'](_0xbf114b['shift']());}}}(a0_0x1bf8,0x43400));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x29c8a4,_0x451f6d,_0x4e9209,_0x1bcdf1){const _0x98222c=a0_0xa457;this['config']=_0x29c8a4,this['logger']=_0x451f6d,this[_0x98222c(0x1ab)]=_0x4e9209,this['errorHandler']=_0x1bcdf1,this[_0x98222c(0x193)]=_0x29c8a4[_0x98222c(0x19f)]?.[_0x98222c(0x193)]||_0x98222c(0x21d),this['timeout']=_0x29c8a4['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x29c8a4[_0x98222c(0x19f)]?.['retryAttempts']||0x3,this[_0x98222c(0x209)]=new Map(),this[_0x98222c(0x1ca)]=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this['_initializeModelSpecs'](),this[_0x98222c(0x217)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async[a0_0x4c22d6(0x19a)](_0x36186f,_0x3c0e73,_0x1ace94={}){const _0x231450=a0_0x4c22d6,_0x1c1ce9='req-'+Date[_0x231450(0x1a4)]()+'-'+Math['random']()[_0x231450(0x182)](0x24)['substr'](0x2,0x9);try{if(this[_0x231450(0x1d3)]())throw new Error(_0x231450(0x1ef));await this[_0x231450(0x189)](_0x36186f);const _0x4425d0=this[_0x231450(0x1be)](_0x3c0e73,_0x36186f,_0x1ace94),_0x151c08={'model':_0x36186f,'messages':_0x4425d0,'options':{'max_tokens':this[_0x231450(0x203)][_0x36186f]?.['maxTokens']||0xfa0,'temperature':_0x1ace94[_0x231450(0x1c4)]||0.7,'stream':_0x1ace94[_0x231450(0x191)]||![]},'metadata':{'requestId':_0x1c1ce9,'agentId':_0x1ace94['agentId'],'timestamp':new Date()['toISOString']()}};_0x1ace94['systemPrompt']&&(_0x151c08['system']=_0x1ace94['systemPrompt']);this['logger'][_0x231450(0x183)]('Sending\x20message\x20to\x20model:\x20'+_0x36186f,{'requestId':_0x1c1ce9,'agentId':_0x1ace94[_0x231450(0x1b2)],'messageCount':Array['isArray'](_0x3c0e73)?_0x3c0e73['length']:0x1,'maxTokens':_0x151c08['max_tokens']});const _0x17725e=await this['_makeAPIRequest']('/chat/completions',_0x151c08,_0x1c1ce9,{..._0x1ace94,'sessionId':_0x1ace94['sessionId'],'platformProvided':_0x1ace94[_0x231450(0x194)]||![]});return _0x17725e['usage']&&await this[_0x231450(0x187)](_0x1ace94['agentId'],_0x36186f,{'prompt_tokens':_0x17725e['usage']['prompt_tokens']||0x0,'completion_tokens':_0x17725e[_0x231450(0x1ec)]['completion_tokens']||0x0,'total_tokens':_0x17725e[_0x231450(0x1ec)][_0x231450(0x1a5)]||0x0}),this[_0x231450(0x1e1)](),{'content':_0x17725e['choices'][0x0]?.['message']?.[_0x231450(0x20c)]||'','model':_0x17725e[_0x231450(0x1bc)],'tokenUsage':_0x17725e[_0x231450(0x1ec)],'requestId':_0x1c1ce9,'finishReason':_0x17725e[_0x231450(0x204)][0x0]?.['finish_reason']};}catch(_0x2453bd){this['_recordFailure'](),this[_0x231450(0x18a)][_0x231450(0x1ee)](_0x231450(0x1a8)+_0x2453bd[_0x231450(0x1d4)],{'requestId':_0x1c1ce9,'model':_0x36186f,'agentId':_0x1ace94['agentId'],'error':_0x2453bd[_0x231450(0x1d5)]}),await this[_0x231450(0x1f3)](_0x2453bd,{'requestId':_0x1c1ce9,'model':_0x36186f,'agentId':_0x1ace94[_0x231450(0x1b2)]});throw _0x2453bd;}}async[a0_0x4c22d6(0x17b)](_0xe76ff6,_0x15ec10={}){const _0x3f24b4=a0_0x4c22d6;try{const _0x1e97b4=MODEL_ROUTING[_0xe76ff6[_0x3f24b4(0x1e0)]()]||MODEL_ROUTING[_0x3f24b4(0x1c1)],_0x7e43bb=[];for(const _0x3f2438 of _0x1e97b4){const _0x551825=await this[_0x3f24b4(0x17d)](_0x3f2438);_0x551825&&_0x7e43bb['push'](_0x3f2438);}if(_0x7e43bb['length']===0x0)return this['logger']['warn'](_0x3f24b4(0x195)+_0xe76ff6+_0x3f24b4(0x1d7)),MODEL_ROUTING[_0x3f24b4(0x1c1)][0x0];let _0x377e4c=_0x7e43bb[0x0];if(_0x15ec10['preferredModel']&&_0x7e43bb['includes'](_0x15ec10['preferredModel']))_0x377e4c=_0x15ec10[_0x3f24b4(0x1cd)];else{if(_0x15ec10[_0x3f24b4(0x1c7)]===_0x3f24b4(0x1d0)&&_0x7e43bb['includes'](MODELS['ANTHROPIC_OPUS']))_0x377e4c=MODELS['ANTHROPIC_OPUS'];else _0x15ec10['speed']==='fast'&&_0x7e43bb['includes'](MODELS[_0x3f24b4(0x1e4)])&&(_0x377e4c=MODELS['ANTHROPIC_HAIKU']);}return this['logger']['info']('Model\x20routed\x20for\x20task:\x20'+_0xe76ff6,{'selectedModel':_0x377e4c,'availableModels':_0x7e43bb['length'],'context':_0x15ec10}),_0x377e4c;}catch(_0x5a12a9){return this['logger']['error']('Model\x20routing\x20failed:\x20'+_0x5a12a9['message'],{'task':_0xe76ff6,'context':_0x15ec10}),MODEL_ROUTING['FALLBACK'][0x0];}}async[a0_0x4c22d6(0x1af)](_0x1ed3da,_0x2cc762){const _0x42c5aa=a0_0x4c22d6,_0x45bbce=this['modelSpecs'][_0x2cc762];if(!_0x45bbce)throw new Error('Unknown\x20model:\x20'+_0x2cc762);const _0x559cf5=_0x45bbce[_0x42c5aa(0x210)]*0.8;let _0x121f12=0x0;const _0x56256e=[],_0x1a47a0=await Promise[_0x42c5aa(0x1e3)](_0x1ed3da[_0x42c5aa(0x212)](async _0x2cde7c=>({..._0x2cde7c,'estimatedTokens':await this[_0x42c5aa(0x1bb)](_0x2cde7c[_0x42c5aa(0x20c)],_0x2cc762)}))),_0x458317=[..._0x1a47a0][_0x42c5aa(0x1de)]();for(const _0x41f2e3 of _0x458317){if(_0x121f12+_0x41f2e3[_0x42c5aa(0x1b3)]>_0x559cf5){if(_0x56256e['length']===0x0){const _0x20c607=await this['_truncateMessage'](_0x41f2e3['content'],_0x559cf5);_0x56256e['unshift']({..._0x41f2e3,'content':_0x20c607,'estimatedTokens':_0x559cf5});}break;}_0x56256e['unshift'](_0x41f2e3),_0x121f12+=_0x41f2e3[_0x42c5aa(0x1b3)];}const _0x5d999e=_0x1a47a0['slice'](0x0,-_0x56256e[_0x42c5aa(0x1dc)]);if(_0x5d999e['length']>0x0){const _0x4488f3=await this['_summarizeMessages'](_0x5d999e,_0x2cc762);_0x56256e['unshift']({'role':_0x42c5aa(0x1eb),'content':'Previous\x20conversation\x20summary:\x20'+_0x4488f3,'timestamp':_0x5d999e[0x0]['timestamp'],'type':'summary','estimatedTokens':await this[_0x42c5aa(0x1bb)](_0x4488f3,_0x2cc762)});}return this['logger'][_0x42c5aa(0x183)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x2cc762,{'originalMessages':_0x1ed3da['length'],'compactizedMessages':_0x56256e['length'],'estimatedTokens':_0x121f12,'maxTokens':_0x559cf5}),_0x56256e;}async[a0_0x4c22d6(0x187)](_0x2a085c,_0x3ec304,_0x348b07,_0x4ede6d){const _0x55cd70=a0_0x4c22d6;try{this['budgetService']&&this[_0x55cd70(0x1ab)]['trackUsage'](_0x2a085c,_0x3ec304,_0x348b07);}catch(_0x6724ea){this['logger']['error'](_0x55cd70(0x19e)+_0x6724ea[_0x55cd70(0x1d4)]);}}async[a0_0x4c22d6(0x1f3)](_0x362f27,_0x2b4f4b){const _0x1aaaeb=a0_0x4c22d6,_0x18fc7b=this[_0x1aaaeb(0x1a2)]?.[_0x1aaaeb(0x1c9)]?.(_0x362f27,_0x2b4f4b);switch(_0x362f27['status']||_0x362f27[_0x1aaaeb(0x18e)]){case HTTP_STATUS['BAD_REQUEST']:this['logger'][_0x1aaaeb(0x1ee)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x2b4f4b,'error':_0x362f27['message']});throw new Error(_0x1aaaeb(0x18f)+_0x362f27[_0x1aaaeb(0x1d4)]);case HTTP_STATUS[_0x1aaaeb(0x1fe)]:this['logger'][_0x1aaaeb(0x1ee)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x2b4f4b});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x1aaaeb(0x18a)]['error'](_0x1aaaeb(0x1f8),{'context':_0x2b4f4b});throw new Error(_0x1aaaeb(0x1b5));case HTTP_STATUS[_0x1aaaeb(0x179)]:this[_0x1aaaeb(0x18a)]['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x2b4f4b});throw new Error(_0x1aaaeb(0x1a3));case HTTP_STATUS[_0x1aaaeb(0x21a)]:this[_0x1aaaeb(0x18a)][_0x1aaaeb(0x1b0)]('Rate\x20limit\x20exceeded',{'context':_0x2b4f4b}),await this['_handleRateLimit'](_0x2b4f4b);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS[_0x1aaaeb(0x21b)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x1aaaeb(0x198)]:this['logger']['error'](_0x1aaaeb(0x1e9),{'context':_0x2b4f4b,'status':_0x362f27[_0x1aaaeb(0x192)]}),await this['_handleServiceUnavailable'](_0x2b4f4b);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger'][_0x1aaaeb(0x1ee)]('Unknown\x20AI\x20service\x20error',{'context':_0x2b4f4b,'error':_0x362f27['message']});throw new Error('AI\x20service\x20error:\x20'+_0x362f27[_0x1aaaeb(0x1d4)]);}}['setApiKeyManager'](_0x18e299){const _0x455558=a0_0x4c22d6;this[_0x455558(0x1d6)]=_0x18e299,this['logger']?.['info']('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x18e299});}[a0_0x4c22d6(0x1c3)](_0x3aef81){const _0x3e3b26=a0_0x4c22d6;this[_0x3e3b26(0x18d)]=_0x3aef81,this['logger']?.['info']('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x3aef81});}async[a0_0x4c22d6(0x213)](_0x542e08,_0x57e17d={}){const _0x599a58=a0_0x4c22d6,_0x44f4c6='img-'+Date[_0x599a58(0x1a4)]()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x542e08||typeof _0x542e08!=='string'||_0x542e08[_0x599a58(0x214)]()[_0x599a58(0x1dc)]===0x0)throw new Error(_0x599a58(0x20f));const _0x416600=_0x57e17d[_0x599a58(0x1bc)]||_0x599a58(0x20e),_0x3f1389=_0x57e17d[_0x599a58(0x1c0)]||_0x599a58(0x1cf),_0x17053a=_0x57e17d['quality']||'standard',_0x2156e2=_0x57e17d[_0x599a58(0x1fa)]||'url';this[_0x599a58(0x18a)]['info'](_0x599a58(0x1ff)+_0x416600,{'requestId':_0x44f4c6,'model':_0x416600,'size':_0x3f1389,'quality':_0x17053a,'promptLength':_0x542e08['length']});const _0xbb889e={'prompt':_0x542e08,'model':_0x416600,'size':_0x3f1389,'quality':_0x17053a,'response_format':_0x2156e2,'n':0x1,'metadata':{'requestId':_0x44f4c6,'timestamp':new Date()['toISOString']()}},_0x5b65c1=await this[_0x599a58(0x1bf)](_0xbb889e,_0x44f4c6,{'sessionId':_0x57e17d['sessionId'],'platformProvided':_0x57e17d[_0x599a58(0x194)]||![]});return this[_0x599a58(0x1e1)](),{'url':_0x5b65c1[_0x599a58(0x208)]?.[0x0]?.[_0x599a58(0x21c)]||null,'b64_json':_0x5b65c1['data']?.[0x0]?.[_0x599a58(0x1a0)]||null,'model':_0x5b65c1['model']||_0x416600,'requestId':_0x44f4c6,'revisedPrompt':_0x5b65c1['data']?.[0x0]?.[_0x599a58(0x1f6)]||_0x542e08};}catch(_0x263ca8){this['_recordFailure'](),this['logger'][_0x599a58(0x1ee)]('Image\x20generation\x20failed:\x20'+_0x263ca8['message'],{'requestId':_0x44f4c6,'model':_0x57e17d['model'],'error':_0x263ca8[_0x599a58(0x1d5)]});throw _0x263ca8;}}async[a0_0x4c22d6(0x19c)](){const _0x2ed4b7=a0_0x4c22d6;try{const _0x41b794=await this[_0x2ed4b7(0x1d1)](_0x2ed4b7(0x1df),{},'health-check');return _0x41b794[_0x2ed4b7(0x192)]==='healthy';}catch(_0x12c10c){return![];}}async['switchAgentModel'](_0x3c6d56,_0x32c9b8){const _0x44b508=a0_0x4c22d6;try{if(!this['_isValidModel'](_0x32c9b8))throw new Error(_0x44b508(0x1db)+_0x32c9b8);let _0x17f5ee=this['conversationManagers']['get'](_0x3c6d56);!_0x17f5ee&&(_0x17f5ee=new ConversationManager(_0x3c6d56,this['logger']),this[_0x44b508(0x217)]['set'](_0x3c6d56,_0x17f5ee));const _0x36f745=await _0x17f5ee['switchModel'](_0x32c9b8),_0x100c47=await this[_0x44b508(0x18d)]?.['getAgent'](_0x3c6d56);return _0x100c47&&(_0x100c47[_0x44b508(0x207)]=_0x32c9b8,await this['agentPool']['persistAgentState'](_0x3c6d56)),this[_0x44b508(0x18a)][_0x44b508(0x183)](_0x44b508(0x17f)+_0x3c6d56,{'newModel':_0x32c9b8,'messageCount':_0x36f745['messages']['length']}),{'success':!![],'agentId':_0x3c6d56,'newModel':_0x32c9b8,'conversation':_0x36f745};}catch(_0x205f6f){this[_0x44b508(0x18a)]['error'](_0x44b508(0x19d)+_0x205f6f['message'],{'agentId':_0x3c6d56,'newModel':_0x32c9b8});throw _0x205f6f;}}['_initializeModelSpecs'](){const _0x154fe1=a0_0x4c22d6,_0x4e048c={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x185)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x154fe1(0x1fc)]]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x185)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x185)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x1da)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS[_0x154fe1(0x1da)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x154fe1(0x1f1)]]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x1d8)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x154fe1(0x1bd),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x154fe1(0x1bd),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x154fe1(0x1bd),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x154fe1(0x1bd),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x4e048c;}[a0_0x4c22d6(0x1be)](_0x54deec,_0x258f5d,_0x53168e){const _0x2ea61a=a0_0x4c22d6,_0xa76cef=this['modelSpecs'][_0x258f5d]||{'provider':'AZURE'};let _0x49e53a;typeof _0x54deec===_0x2ea61a(0x1cc)?_0x49e53a=[{'role':_0x2ea61a(0x1b1),'content':_0x54deec}]:_0x49e53a=_0x54deec[_0x2ea61a(0x212)](_0x27c0e2=>this[_0x2ea61a(0x1c6)](_0x27c0e2,_0x258f5d));switch(_0xa76cef[_0x2ea61a(0x186)]){case MODEL_PROVIDERS['ANTHROPIC']:return this['_formatForAnthropic'](_0x49e53a);case MODEL_PROVIDERS['OPENAI']:return this[_0x2ea61a(0x1f2)](_0x49e53a);case MODEL_PROVIDERS[_0x2ea61a(0x1bd)]:return this['_formatForAzure'](_0x49e53a);default:return _0x49e53a;}}['_formatSingleMessage'](_0x280d00,_0x3ba1f6){const _0x5ee02a=a0_0x4c22d6;return{'role':_0x280d00['role']||_0x5ee02a(0x1b1),'content':_0x280d00['content'],'timestamp':_0x280d00['timestamp']};}['_formatForAnthropic'](_0x1d164b){return _0x1d164b['map'](_0x4fcbb3=>{const _0x23701e=a0_0xa457;if(_0x4fcbb3['role']===_0x23701e(0x1eb))return{'role':_0x23701e(0x1b1),'content':'System:\x20'+_0x4fcbb3[_0x23701e(0x20c)]};return _0x4fcbb3;});}[a0_0x4c22d6(0x1f2)](_0x482f22){return _0x482f22;}['_formatForAzure'](_0x25997b){const _0x5b6afb=a0_0x4c22d6;return _0x25997b['map'](_0x4513dd=>({..._0x4513dd,'content':typeof _0x4513dd[_0x5b6afb(0x20c)]==='string'?_0x4513dd['content']:JSON['stringify'](_0x4513dd[_0x5b6afb(0x20c)])}));}[a0_0x4c22d6(0x1b6)](_0x1a03fc){const _0x1ff307=a0_0x4c22d6;this['logger'][_0x1ff307(0x19b)]('Validating\x20model',{'model':_0x1a03fc,'modelType':typeof _0x1a03fc});if(this[_0x1ff307(0x203)][_0x1a03fc]!==undefined)return!![];return this['logger'][_0x1ff307(0x1b0)](_0x1ff307(0x188),{'model':_0x1a03fc,'availableModels':Object['keys'](this[_0x1ff307(0x203)])}),![];}async[a0_0x4c22d6(0x17d)](_0x973ba9){return!![];}async[a0_0x4c22d6(0x1bb)](_0x535a12,_0x433001){return Math['ceil'](_0x535a12['length']/0x4);}async[a0_0x4c22d6(0x1ce)](_0x17f4e0,_0x3f2486){const _0x4c5bd1=a0_0x4c22d6,_0x491278=_0x3f2486*0x4;if(_0x17f4e0['length']<=_0x491278)return _0x17f4e0;return _0x17f4e0['substring'](0x0,_0x491278-0x14)+_0x4c5bd1(0x206);}async['_summarizeMessages'](_0x16e3b1,_0x55de4f){const _0x3d4430=a0_0x4c22d6,_0x1369e5=_0x16e3b1[_0x3d4430(0x212)](_0x41feb1=>_0x41feb1['role']+':\x20'+_0x41feb1[_0x3d4430(0x20c)])['join']('\x0a'),_0x4f5b46=0x1f4;if(_0x1369e5[_0x3d4430(0x1dc)]<=_0x4f5b46)return _0x1369e5;return _0x1369e5['substring'](0x0,_0x4f5b46)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x3e6882,_0x433b70,_0x3ee6a1,_0x1167e4={}){const _0x211093=a0_0x4c22d6,_0x3a625f='https://autopilot-api.azurewebsites.net/llm/chat';let _0x2f5417,_0x18d63b=null,_0x598512=null;this[_0x211093(0x18a)]?.['info'](_0x211093(0x1e8),{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x1167e4[_0x211093(0x1d9)],'hasSessionId':!!_0x1167e4['sessionId'],'optionsKeys':Object['keys'](_0x1167e4),'model':_0x433b70['model']});if(this[_0x211093(0x1d6)]&&_0x1167e4['sessionId']){const _0xe37fce=this[_0x211093(0x1d6)][_0x211093(0x1f4)](_0x1167e4[_0x211093(0x1d9)],{'platformProvided':_0x1167e4['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0x433b70[_0x211093(0x1bc)])});_0x18d63b=_0xe37fce[_0x211093(0x1cb)],_0x598512=_0xe37fce['vendorApiKey'],this['logger']?.[_0x211093(0x19b)]('Retrieved API keys from session manager',{'sessionId':_0x1167e4['sessionId'],'hasLoxiaKey':!!_0x18d63b,'hasVendorKey':!!_0x598512,'vendor':this[_0x211093(0x1ae)](_0x433b70['model'])});}!_0x18d63b&&_0x1167e4['apiKey']&&(_0x18d63b=_0x1167e4[_0x211093(0x1c8)]);!_0x18d63b&&this[_0x211093(0x201)]['apiKey']&&(_0x18d63b=this['config'][_0x211093(0x1c8)]);if(!_0x18d63b)throw new Error(_0x211093(0x216));const _0x2634d6=_0x433b70['model'],_0x16a0a5={'conversationId':_0x3ee6a1,'message':_0x433b70[_0x211093(0x1b8)][_0x433b70[_0x211093(0x1b8)]['length']-0x1]?.[_0x211093(0x20c)]||'','messages':_0x433b70['messages'],'model':_0x2634d6,'requestId':_0x3ee6a1,'options':_0x433b70['options']||{},'platformProvided':_0x1167e4['platformProvided']||![]};_0x433b70[_0x211093(0x1eb)]&&(_0x16a0a5[_0x211093(0x1e7)]=_0x433b70['system']);_0x1167e4[_0x211093(0x194)]?_0x16a0a5[_0x211093(0x1c8)]=_0x18d63b:(_0x598512&&(_0x16a0a5['vendorApiKey']=_0x598512),_0x1167e4['customApiKeys']&&(_0x16a0a5['customApiKeys']=_0x1167e4['customApiKeys']),_0x16a0a5['apiKey']=_0x18d63b);for(let _0x5e459e=0x1;_0x5e459e<=this['retryAttempts'];_0x5e459e++){try{this['logger']['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x3a625f,'model':_0x433b70['model'],'requestId':_0x3ee6a1,'attempt':_0x5e459e,'hasApiKey':!!_0x18d63b});const _0x2e6fa2=await fetch(_0x3a625f,{'method':'POST','headers':{'Content-Type':_0x211093(0x1f5),'Authorization':'Bearer\x20'+_0x18d63b,'X-Request-ID':_0x3ee6a1},'body':JSON[_0x211093(0x215)](_0x16a0a5),'timeout':this[_0x211093(0x1fd)]});if(!_0x2e6fa2['ok']){const _0x2c022f=await _0x2e6fa2['text'](),_0x193b85=new Error(_0x211093(0x17c)+_0x2e6fa2[_0x211093(0x192)]+':\x20'+_0x2e6fa2['statusText']+(_0x2c022f?'\x20-\x20'+_0x2c022f:''));_0x193b85[_0x211093(0x192)]=_0x2e6fa2['status'];throw _0x193b85;}const _0x1d56ff=await _0x2e6fa2[_0x211093(0x218)]();return{'choices':[{'message':{'content':_0x1d56ff[_0x211093(0x20c)]||'','role':_0x211093(0x180)},'finish_reason':_0x1d56ff['finishReason']||_0x211093(0x211)}],'usage':_0x1d56ff['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x1d56ff[_0x211093(0x1bc)]||_0x433b70[_0x211093(0x1bc)],'id':_0x1d56ff['requestId']||_0x3ee6a1};}catch(_0x219f66){_0x2f5417=_0x219f66,this['logger']['warn']('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x5e459e,'requestId':_0x3ee6a1,'error':_0x219f66[_0x211093(0x1d4)],'status':_0x219f66[_0x211093(0x192)]});if(_0x5e459e<this[_0x211093(0x18c)]){const _0x78caca=Math[_0x211093(0x1ea)](0x2,_0x5e459e)*0x3e8;this['logger']['warn']('Retrying\x20in\x20'+_0x78caca+'ms',{'attempt':_0x5e459e,'requestId':_0x3ee6a1}),await new Promise(_0x2e1511=>setTimeout(_0x2e1511,_0x78caca));}}}this[_0x211093(0x18a)]['error']('All\x20attempts\x20to\x20reach\x20backend\x20failed,\x20using\x20mock\x20response',{'requestId':_0x3ee6a1,'error':_0x2f5417['message']});const _0x4753f6=_0x2f5417['message']&&_0x2f5417[_0x211093(0x1d4)][_0x211093(0x1a6)](_0x211093(0x1ed));if(_0x4753f6)throw new Error(_0x211093(0x21e)+_0x2f5417['message']);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x2f5417[_0x211093(0x1d4)],'role':'assistant'},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x433b70['model'],'id':_0x211093(0x1ba)+_0x3ee6a1,'error':_0x2f5417[_0x211093(0x1d4)]};}async[a0_0x4c22d6(0x1bf)](_0x588c75,_0x27ddf2,_0x379627={}){const _0x291b56=a0_0x4c22d6,_0x4e9693='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x563b79,_0x1f360e=null,_0xb60f69=null;this[_0x291b56(0x18a)]?.[_0x291b56(0x183)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x291b56(0x1d6)],'sessionId':_0x379627['sessionId'],'hasSessionId':!!_0x379627[_0x291b56(0x1d9)],'model':_0x588c75[_0x291b56(0x1bc)]});if(this['apiKeyManager']&&_0x379627['sessionId']){const _0x38d932=this[_0x291b56(0x1d6)][_0x291b56(0x1f4)](_0x379627['sessionId'],{'platformProvided':_0x379627['platformProvided']||![],'vendor':this[_0x291b56(0x1ae)](_0x588c75[_0x291b56(0x1bc)])});_0x1f360e=_0x38d932['loxiaApiKey'],_0xb60f69=_0x38d932[_0x291b56(0x20a)],this[_0x291b56(0x18a)]?.[_0x291b56(0x19b)]('Retrieved API keys from session manager for image',{'sessionId':_0x379627[_0x291b56(0x1d9)],'hasLoxiaKey':!!_0x1f360e,'hasVendorKey':!!_0xb60f69});}!_0x1f360e&&_0x379627[_0x291b56(0x1c8)]&&(_0x1f360e=_0x379627['apiKey']);!_0x1f360e&&this['config']['apiKey']&&(_0x1f360e=this[_0x291b56(0x201)][_0x291b56(0x1c8)]);if(!_0x1f360e)throw new Error(_0x291b56(0x216));const _0x1f59ac={'prompt':_0x588c75[_0x291b56(0x1ac)],'model':_0x588c75[_0x291b56(0x1bc)]||'azure-openai-dalle3','size':_0x588c75['size'],'quality':_0x588c75['quality'],'style':_0x588c75[_0x291b56(0x199)]||_0x291b56(0x1a9),'n':_0x588c75['n']||0x1,'requestId':_0x27ddf2};for(let _0x28c297=0x1;_0x28c297<=this['retryAttempts'];_0x28c297++){try{this['logger'][_0x291b56(0x183)](_0x291b56(0x1dd),{'url':_0x4e9693,'model':_0x588c75['model'],'requestId':_0x27ddf2,'attempt':_0x28c297,'hasApiKey':!!_0x1f360e});const _0x14d993=await fetch(_0x4e9693,{'method':_0x291b56(0x1fb),'headers':{'Content-Type':_0x291b56(0x1f5),'Authorization':_0x291b56(0x17a)+_0x1f360e,'X-Request-ID':_0x27ddf2},'body':JSON['stringify'](_0x1f59ac),'timeout':this[_0x291b56(0x1fd)]*0x2});if(!_0x14d993['ok']){const _0x43075e=await _0x14d993[_0x291b56(0x1c2)](),_0x27ff73=new Error('HTTP\x20'+_0x14d993['status']+':\x20'+_0x14d993['statusText']+(_0x43075e?'\x20-\x20'+_0x43075e:''));_0x27ff73['status']=_0x14d993[_0x291b56(0x192)];throw _0x27ff73;}const _0x4cc799=await _0x14d993['json']();return{'data':_0x4cc799['images']||[],'model':_0x4cc799['model']||_0x588c75['model'],'created':_0x4cc799[_0x291b56(0x1a7)]||Date[_0x291b56(0x1a4)](),'usage':_0x4cc799[_0x291b56(0x1ec)]};}catch(_0x109984){_0x563b79=_0x109984,this[_0x291b56(0x18a)][_0x291b56(0x1b0)]('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x28c297,'requestId':_0x27ddf2,'error':_0x109984['message'],'status':_0x109984[_0x291b56(0x192)]});if(_0x28c297<this[_0x291b56(0x18c)]){const _0x336f4c=Math[_0x291b56(0x1ea)](0x2,_0x28c297)*0x3e8;this['logger'][_0x291b56(0x1b0)]('Retrying\x20in\x20'+_0x336f4c+'ms',{'attempt':_0x28c297,'requestId':_0x27ddf2}),await new Promise(_0x569cb1=>setTimeout(_0x569cb1,_0x336f4c));}}}this[_0x291b56(0x18a)][_0x291b56(0x1ee)]('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x27ddf2,'error':_0x563b79['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x563b79[_0x291b56(0x1d4)]);}async['_checkRateLimit'](_0x48a24d){await new Promise(_0x11e708=>setTimeout(_0x11e708,0x64));}async[a0_0x4c22d6(0x197)](_0x10908c){const _0x2e88f7=a0_0x4c22d6,_0x3f1cc8=0xea60;this['logger'][_0x2e88f7(0x183)](_0x2e88f7(0x184)+_0x3f1cc8+'ms',_0x10908c),await new Promise(_0x38c8a3=>setTimeout(_0x38c8a3,_0x3f1cc8));}async[a0_0x4c22d6(0x1a1)](_0x56a5b1){const _0x24875c=a0_0x4c22d6;this['_recordFailure']();const _0x53516b=0x7530;this['logger'][_0x24875c(0x183)](_0x24875c(0x1b9)+_0x53516b+'ms',_0x56a5b1),await new Promise(_0x251056=>setTimeout(_0x251056,_0x53516b));}['_isCircuitBreakerOpen'](){const _0x2e2cde=a0_0x4c22d6;if(!this['circuitBreaker'][_0x2e2cde(0x1f0)])return![];const _0x16b0e3=Date[_0x2e2cde(0x1a4)]()-this['circuitBreaker'][_0x2e2cde(0x1ad)];if(_0x16b0e3>this[_0x2e2cde(0x17e)]['timeout'])return this['circuitBreaker'][_0x2e2cde(0x1f0)]=![],this[_0x2e2cde(0x17e)]['failures']=0x0,![];return!![];}[a0_0x4c22d6(0x1b4)](){const _0x1f7ca9=a0_0x4c22d6;this[_0x1f7ca9(0x17e)]['failures']++,this[_0x1f7ca9(0x17e)]['lastFailureTime']=Date[_0x1f7ca9(0x1a4)](),this[_0x1f7ca9(0x17e)][_0x1f7ca9(0x18b)]>=this[_0x1f7ca9(0x17e)][_0x1f7ca9(0x1f7)]&&(this[_0x1f7ca9(0x17e)][_0x1f7ca9(0x1f0)]=!![],this['logger']['warn'](_0x1f7ca9(0x1d2)));}[a0_0x4c22d6(0x1e1)](){const _0x1f8a99=a0_0x4c22d6;this[_0x1f8a99(0x17e)][_0x1f8a99(0x18b)]>0x0&&(this[_0x1f8a99(0x17e)]['failures']=0x0,this['circuitBreaker'][_0x1f8a99(0x1f0)]=![],this['logger'][_0x1f8a99(0x183)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}[a0_0x4c22d6(0x1ae)](_0x2a4ae5){const _0x55afcb=a0_0x4c22d6;if(!_0x2a4ae5)return null;const _0x4e7fc5=_0x2a4ae5['toLowerCase']();if(_0x4e7fc5['includes']('anthropic')||_0x4e7fc5[_0x55afcb(0x1a6)](_0x55afcb(0x20b)))return _0x55afcb(0x190);else{if(_0x4e7fc5[_0x55afcb(0x1a6)](_0x55afcb(0x20d))||_0x4e7fc5[_0x55afcb(0x1a6)]('gpt'))return'openai';else{if(_0x4e7fc5['includes']('deepseek'))return _0x55afcb(0x1e2);else{if(_0x4e7fc5[_0x55afcb(0x1a6)]('phi'))return _0x55afcb(0x1f9);}}}return null;}}class ConversationManager{constructor(_0x45d1a2,_0x3a7a8c){const _0x48a5d0=a0_0x4c22d6;this[_0x48a5d0(0x1b2)]=_0x45d1a2,this[_0x48a5d0(0x18a)]=_0x3a7a8c,this['conversations']=new Map();}async['switchModel'](_0x3cf9ef){const _0xa4e811=a0_0x4c22d6;return{'messages':[],'model':_0x3cf9ef,'lastUpdated':new Date()[_0xa4e811(0x1e5)]()};}}function a0_0xa457(_0x3b0189,_0x24f9e5){_0x3b0189=_0x3b0189-0x179;const _0x1bf8f9=a0_0x1bf8();let _0xa45750=_0x1bf8f9[_0x3b0189];if(a0_0xa457['VVtUrl']===undefined){var _0x5c366=function(_0x90f73d){const _0x434590='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29c8a4='',_0x451f6d='';for(let _0x4e9209=0x0,_0x1bcdf1,_0x36186f,_0x3c0e73=0x0;_0x36186f=_0x90f73d['charAt'](_0x3c0e73++);~_0x36186f&&(_0x1bcdf1=_0x4e9209%0x4?_0x1bcdf1*0x40+_0x36186f:_0x36186f,_0x4e9209++%0x4)?_0x29c8a4+=String['fromCharCode'](0xff&_0x1bcdf1>>(-0x2*_0x4e9209&0x6)):0x0){_0x36186f=_0x434590['indexOf'](_0x36186f);}for(let _0x1ace94=0x0,_0x1c1ce9=_0x29c8a4['length'];_0x1ace94<_0x1c1ce9;_0x1ace94++){_0x451f6d+='%'+('00'+_0x29c8a4['charCodeAt'](_0x1ace94)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x451f6d);};a0_0xa457['IAbIJu']=_0x5c366,a0_0xa457['xetLEm']={},a0_0xa457['VVtUrl']=!![];}const _0xcafd5b=_0x1bf8f9[0x0],_0x3ca9f3=_0x3b0189+_0xcafd5b,_0x491de8=a0_0xa457['xetLEm'][_0x3ca9f3];return!_0x491de8?(_0xa45750=a0_0xa457['IAbIJu'](_0xa45750),a0_0xa457['xetLEm'][_0x3ca9f3]=_0xa45750):_0xa45750=_0x491de8,_0xa45750;}function a0_0x1bf8(){const _0x51b182=['sw52ywXPzcbTB2rLBdOG','BgvUz3rO','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','CMv2zxjZzq','l2HLywX0Aa','Dg9vChbLCKnHC2u','x3jLC2v0q2LYy3vPDejYzwfRzxi','zgvLChnLzwS','ywXS','qu5usfjpueLdx0HbsuTv','Dg9ju09tDhjPBMC','mZyZndu0n1vmrvjcvW','C3LZDgvTuhjVBxb0','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','Cg93','C3LZDgvT','DxnHz2u','tM8GqvbjigTLEsbJB25MAwD1CMvK','zxjYB3i','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','AxnpCgvU','revfufnfruTFuJe','x2zVCM1HDezVCK9Wzw5bsq','AgfUzgXLshr0CevYCM9Y','z2v0s2v5C0zVCLjLCxvLC3q','yxbWBgLJyxrPB24VANnVBG','CMv2AxnLzf9WCM9TChq','DgHYzxnOB2XK','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','BwLJCM9ZB2z0','CMvZCg9UC2vgB3jTyxq','ue9tva','qu5usfjpueLdx09qvvm','DgLTzw91Da','vu5bvvrit1jjwKve','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','mJq2ntK0meHrBxnfAa','y29UzMLN','nZu1A21bueLo','Bw9KzwXtCgvJCW','y2HVAwnLCW','ntr0qvfeEeK','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','y3vYCMvUDe1VzgvS','zgf0yq','CMf0zuXPBwL0zxjZ','DMvUzg9YqxbPs2v5','y2XHDwrL','y29UDgvUDa','B3bLBMfP','zMX1Ec0XlJeTChjV','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','y29UDgv4DfDPBMrVDW','C3rVCa','BwfW','z2vUzxjHDgvjBwfNzq','DhjPBq','C3rYAw5NAwz5','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','y29UDMvYC2f0Aw9UtwfUywDLCNm','ANnVBG','mtuYotrHC2HAtxO','ve9px01btLLFuKvrvuvtvfm','su5urvjoquXFu0vsvKvsx0vsuK9s','DxjS','Ahr0Chm6lY9HCgKUBg94AweUywK','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','tK9ux0zpvu5e','qMvHCMvYia','CM91DgvnB2rLBa','sfruuca','x2nOzwnRtw9KzwXizwfSDgG','y2LYy3vPDejYzwfRzxi','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','yxnZAxn0yw50','ndy4odi4r2jmvLP2','Dg9tDhjPBMC','Aw5MBW','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','qu5usfjpueLd','ChjVDMLKzxi','DhjHy2TvC2fNzq','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','x2nOzwnRuMf0zuXPBwL0','Bg9Nz2vY','zMfPBhvYzxm','CMv0CNLbDhrLBxb0CW','ywDLBNrqB29S','y29Kzq','sw52ywXPzcbYzxf1zxn0oIa','yw50AhjVCgLJ','C3rYzwfT','C3rHDhvZ','yMfZzvvYBa','CgXHDgzVCM1qCM92AwrLza','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','ntKXmKTNuuXpBW','x2HHBMrSzvjHDgvmAw1PDa','r0furvDbwv9usu1ft1vu','C3r5Bgu','C2vUze1LC3nHz2u','zgvIDwC','y2HLy2Ttzxj2AwnLsgvHBhrO','tw9KzwWGC3DPDgnOigzHAwXLzdOG','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','yMfJA2vUza','yJy0x2PZB24','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','zxjYB3jiyw5KBgvY','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','BM93','Dg90ywXFDg9Rzw5Z','Aw5JBhvKzxm','y3jLyxrLza','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','DML2Awq','oty1mtm5EvLQwuT4','yNvKz2v0u2vYDMLJzq','ChjVBxb0','BgfZDezHAwX1CMvuAw1L','x2DLDfzLBMrVCKzYB21nB2rLBa','y29TCgfJDgL6zunVBNzLCNnHDgLVBG','D2fYBG','DxnLCG','ywDLBNrjza','zxn0Aw1HDgvKvg9Rzw5Z','x3jLy29YzezHAwX1CMu','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','x2LZvMfSAwrnB2rLBa','mZi5mdi2sujfANri','BwvZC2fNzxm','u2vYDMLJzsb1BMf2ywLSywjSzsWGD2fPDgLUzYa','zxjYB3iT','x2vZDgLTyxrLvg9Rzw5Z','Bw9KzwW','qvPvuKu','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','x21HA2vjBwfNzufqsvjLCxvLC3q','C2L6zq','rKfmtejbq0S','Dgv4Da','C2v0qwDLBNrqB29S','DgvTCgvYyxr1CMu','mKDgshfsvq','x2zVCM1HDfnPBMDSzu1LC3nHz2u','y29TCgXLEgL0Eq','yxbPs2v5','y2XHC3nPzNLfCNjVCG','CMvXDwvZDff1zxvL','Bg94AwfbCgLlzxK','C3rYAw5N','ChjLzMvYCMvKtw9KzwW','x3rYDw5JyxrLtwvZC2fNzq','mtaYnhGXmdi0','AgLNAa','x21HA2vbueLszxf1zxn0','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','x2LZq2LYy3vPDejYzwfRzxjpCgvU','BwvZC2fNzq','C3rHy2S','yxbPs2v5twfUywDLCG','lcb1C2LUzYbMywXSyMfJAW','revfufnfruS','C2vZC2LVBKLK','t1bftKfj'];a0_0x1bf8=function(){return _0x51b182;};return a0_0x1bf8();}export default AIService;
|
|
1
|
+
const a0_0x252d00=a0_0x2f8c;(function(_0x37b5c0,_0x3103aa){const _0x505ab9=a0_0x2f8c,_0x4cfb53=_0x37b5c0();while(!![]){try{const _0x50b730=-parseInt(_0x505ab9(0x21b))/0x1*(-parseInt(_0x505ab9(0x1fd))/0x2)+-parseInt(_0x505ab9(0x1b2))/0x3*(-parseInt(_0x505ab9(0x215))/0x4)+parseInt(_0x505ab9(0x21a))/0x5+parseInt(_0x505ab9(0x1a7))/0x6*(-parseInt(_0x505ab9(0x199))/0x7)+parseInt(_0x505ab9(0x1f8))/0x8+parseInt(_0x505ab9(0x1bf))/0x9+-parseInt(_0x505ab9(0x1df))/0xa*(parseInt(_0x505ab9(0x1b8))/0xb);if(_0x50b730===_0x3103aa)break;else _0x4cfb53['push'](_0x4cfb53['shift']());}catch(_0x106617){_0x4cfb53['push'](_0x4cfb53['shift']());}}}(a0_0x5c38,0x3ee4c));function a0_0x2f8c(_0x3fccc2,_0x15a6f8){_0x3fccc2=_0x3fccc2-0x18a;const _0x5c38fa=a0_0x5c38();let _0x2f8c9f=_0x5c38fa[_0x3fccc2];if(a0_0x2f8c['ibqdLZ']===undefined){var _0x2311aa=function(_0x2563c3){const _0x1a0912='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x292262='',_0x172f2b='';for(let _0x4cf816=0x0,_0x48d3bd,_0x1d5747,_0x5200fd=0x0;_0x1d5747=_0x2563c3['charAt'](_0x5200fd++);~_0x1d5747&&(_0x48d3bd=_0x4cf816%0x4?_0x48d3bd*0x40+_0x1d5747:_0x1d5747,_0x4cf816++%0x4)?_0x292262+=String['fromCharCode'](0xff&_0x48d3bd>>(-0x2*_0x4cf816&0x6)):0x0){_0x1d5747=_0x1a0912['indexOf'](_0x1d5747);}for(let _0x27c446=0x0,_0x1b1ef4=_0x292262['length'];_0x27c446<_0x1b1ef4;_0x27c446++){_0x172f2b+='%'+('00'+_0x292262['charCodeAt'](_0x27c446)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x172f2b);};a0_0x2f8c['PYCtIz']=_0x2311aa,a0_0x2f8c['XqERyS']={},a0_0x2f8c['ibqdLZ']=!![];}const _0x1317d2=_0x5c38fa[0x0],_0x4b3c1d=_0x3fccc2+_0x1317d2,_0x2bb1cb=a0_0x2f8c['XqERyS'][_0x4b3c1d];return!_0x2bb1cb?(_0x2f8c9f=a0_0x2f8c['PYCtIz'](_0x2f8c9f),a0_0x2f8c['XqERyS'][_0x4b3c1d]=_0x2f8c9f):_0x2f8c9f=_0x2bb1cb,_0x2f8c9f;}import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x292262,_0x172f2b,_0x4cf816,_0x48d3bd){const _0x3e4454=a0_0x2f8c;this[_0x3e4454(0x1a3)]=_0x292262,this['logger']=_0x172f2b,this[_0x3e4454(0x21c)]=_0x4cf816,this['errorHandler']=_0x48d3bd,this[_0x3e4454(0x20c)]=_0x292262[_0x3e4454(0x227)]?.['baseUrl']||'https://api.loxia.ai',this['timeout']=_0x292262[_0x3e4454(0x227)]?.['timeout']||0xea60,this[_0x3e4454(0x1e3)]=_0x292262[_0x3e4454(0x227)]?.[_0x3e4454(0x1e3)]||0x3,this['rateLimiters']=new Map(),this[_0x3e4454(0x221)]=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this[_0x3e4454(0x1d1)]=this[_0x3e4454(0x1ce)](),this['conversationManagers']=new Map(),this['apiKeyManager']=null,this[_0x3e4454(0x1de)]=null;}async[a0_0x252d00(0x19d)](_0x1d5747,_0x5200fd,_0x27c446={}){const _0x2cac8c=a0_0x252d00,_0x1b1ef4='req-'+Date['now']()+'-'+Math['random']()['toString'](0x24)[_0x2cac8c(0x1ed)](0x2,0x9);try{if(this[_0x2cac8c(0x204)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this['_checkRateLimit'](_0x1d5747);const _0x175c6d=this[_0x2cac8c(0x1dd)](_0x5200fd,_0x1d5747,_0x27c446),_0x9f0548={'model':_0x1d5747,'messages':_0x175c6d,'options':{'max_tokens':this[_0x2cac8c(0x1d1)][_0x1d5747]?.['maxTokens']||0xfa0,'temperature':_0x27c446['temperature']||0.7,'stream':_0x27c446['stream']||![]},'metadata':{'requestId':_0x1b1ef4,'agentId':_0x27c446['agentId'],'timestamp':new Date()['toISOString']()}};_0x27c446[_0x2cac8c(0x1a4)]&&(_0x9f0548['system']=_0x27c446['systemPrompt']);this['logger'][_0x2cac8c(0x1a9)]('Sending\x20message\x20to\x20model:\x20'+_0x1d5747,{'requestId':_0x1b1ef4,'agentId':_0x27c446['agentId'],'messageCount':Array['isArray'](_0x5200fd)?_0x5200fd[_0x2cac8c(0x212)]:0x1,'maxTokens':_0x9f0548['max_tokens']});const _0x5130b5=await this['_makeAPIRequest']('/chat/completions',_0x9f0548,_0x1b1ef4,{..._0x27c446,'sessionId':_0x27c446[_0x2cac8c(0x1ba)],'platformProvided':_0x27c446[_0x2cac8c(0x1b4)]||![]});return _0x5130b5['usage']&&await this[_0x2cac8c(0x1f9)](_0x27c446['agentId'],_0x1d5747,{'prompt_tokens':_0x5130b5[_0x2cac8c(0x1d3)][_0x2cac8c(0x18b)]||0x0,'completion_tokens':_0x5130b5['usage']['completion_tokens']||0x0,'total_tokens':_0x5130b5['usage'][_0x2cac8c(0x205)]||0x0}),this['_resetCircuitBreaker'](),{'content':_0x5130b5[_0x2cac8c(0x1ae)][0x0]?.[_0x2cac8c(0x1cf)]?.[_0x2cac8c(0x1d8)]||'','model':_0x5130b5[_0x2cac8c(0x217)],'tokenUsage':_0x5130b5['usage'],'requestId':_0x1b1ef4,'finishReason':_0x5130b5[_0x2cac8c(0x1ae)][0x0]?.['finish_reason']};}catch(_0x55ec0){this['_recordFailure'](),this['logger']['error'](_0x2cac8c(0x1ac)+_0x55ec0[_0x2cac8c(0x1cf)],{'requestId':_0x1b1ef4,'model':_0x1d5747,'agentId':_0x27c446[_0x2cac8c(0x1a0)],'error':_0x55ec0['stack']}),await this[_0x2cac8c(0x20a)](_0x55ec0,{'requestId':_0x1b1ef4,'model':_0x1d5747,'agentId':_0x27c446['agentId']});throw _0x55ec0;}}async[a0_0x252d00(0x1fe)](_0x1e9b2a,_0x6f2daf={}){const _0x488b40=a0_0x252d00;try{const _0x59cc7d=MODEL_ROUTING[_0x1e9b2a[_0x488b40(0x1da)]()]||MODEL_ROUTING['FALLBACK'],_0x263e0e=[];for(const _0x209422 of _0x59cc7d){const _0x4aa60b=await this['_checkModelHealth'](_0x209422);_0x4aa60b&&_0x263e0e[_0x488b40(0x1ec)](_0x209422);}if(_0x263e0e[_0x488b40(0x212)]===0x0)return this['logger']['warn']('No\x20healthy\x20models\x20available\x20for\x20task:\x20'+_0x1e9b2a+',\x20using\x20fallback'),MODEL_ROUTING[_0x488b40(0x1ad)][0x0];let _0xcd40f=_0x263e0e[0x0];if(_0x6f2daf['preferredModel']&&_0x263e0e[_0x488b40(0x1c8)](_0x6f2daf[_0x488b40(0x1f4)]))_0xcd40f=_0x6f2daf['preferredModel'];else{if(_0x6f2daf['complexity']==='high'&&_0x263e0e[_0x488b40(0x1c8)](MODELS[_0x488b40(0x1f2)]))_0xcd40f=MODELS[_0x488b40(0x1f2)];else _0x6f2daf['speed']==='fast'&&_0x263e0e[_0x488b40(0x1c8)](MODELS[_0x488b40(0x1e7)])&&(_0xcd40f=MODELS[_0x488b40(0x1e7)]);}return this[_0x488b40(0x1b1)]['info'](_0x488b40(0x1e6)+_0x1e9b2a,{'selectedModel':_0xcd40f,'availableModels':_0x263e0e[_0x488b40(0x212)],'context':_0x6f2daf}),_0xcd40f;}catch(_0x48478c){return this['logger']['error']('Model\x20routing\x20failed:\x20'+_0x48478c['message'],{'task':_0x1e9b2a,'context':_0x6f2daf}),MODEL_ROUTING['FALLBACK'][0x0];}}async[a0_0x252d00(0x1d5)](_0x3bcd2f,_0x1ff468){const _0xbbf51a=a0_0x252d00,_0x198f95=this[_0xbbf51a(0x1d1)][_0x1ff468];if(!_0x198f95)throw new Error(_0xbbf51a(0x207)+_0x1ff468);const _0x132423=_0x198f95['contextWindow']*0.8;let _0x27cc2f=0x0;const _0x39d620=[],_0x5c3ac5=await Promise['all'](_0x3bcd2f['map'](async _0x2b2fc4=>({..._0x2b2fc4,'estimatedTokens':await this['_estimateTokens'](_0x2b2fc4['content'],_0x1ff468)}))),_0x34c9e4=[..._0x5c3ac5][_0xbbf51a(0x1e5)]();for(const _0x58e4c9 of _0x34c9e4){if(_0x27cc2f+_0x58e4c9['estimatedTokens']>_0x132423){if(_0x39d620['length']===0x0){const _0x3a1f1c=await this[_0xbbf51a(0x1fb)](_0x58e4c9['content'],_0x132423);_0x39d620[_0xbbf51a(0x1cb)]({..._0x58e4c9,'content':_0x3a1f1c,'estimatedTokens':_0x132423});}break;}_0x39d620['unshift'](_0x58e4c9),_0x27cc2f+=_0x58e4c9[_0xbbf51a(0x1b0)];}const _0x56d9cb=_0x5c3ac5['slice'](0x0,-_0x39d620[_0xbbf51a(0x212)]);if(_0x56d9cb[_0xbbf51a(0x212)]>0x0){const _0x2560fd=await this[_0xbbf51a(0x1f3)](_0x56d9cb,_0x1ff468);_0x39d620[_0xbbf51a(0x1cb)]({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x2560fd,'timestamp':_0x56d9cb[0x0]['timestamp'],'type':'summary','estimatedTokens':await this[_0xbbf51a(0x200)](_0x2560fd,_0x1ff468)});}return this['logger']['info']('Conversation\x20compactized\x20for\x20model:\x20'+_0x1ff468,{'originalMessages':_0x3bcd2f[_0xbbf51a(0x212)],'compactizedMessages':_0x39d620[_0xbbf51a(0x212)],'estimatedTokens':_0x27cc2f,'maxTokens':_0x132423}),_0x39d620;}async[a0_0x252d00(0x1f9)](_0x3f4484,_0xe67996,_0x30c9a1,_0x3f4d2f){const _0x5b7a7d=a0_0x252d00;try{this[_0x5b7a7d(0x21c)]&&this[_0x5b7a7d(0x21c)]['trackUsage'](_0x3f4484,_0xe67996,_0x30c9a1);}catch(_0x4d7436){this[_0x5b7a7d(0x1b1)][_0x5b7a7d(0x18a)](_0x5b7a7d(0x1a5)+_0x4d7436['message']);}}async[a0_0x252d00(0x20a)](_0x1e44e2,_0x40c10e){const _0x2335ea=a0_0x252d00,_0x5d2bb4=this['errorHandler']?.[_0x2335ea(0x1c6)]?.(_0x1e44e2,_0x40c10e);switch(_0x1e44e2[_0x2335ea(0x1b6)]||_0x1e44e2['code']){case HTTP_STATUS['BAD_REQUEST']:this['logger'][_0x2335ea(0x18a)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x40c10e,'error':_0x1e44e2[_0x2335ea(0x1cf)]});throw new Error('Invalid\x20request:\x20'+_0x1e44e2['message']);case HTTP_STATUS['UNAUTHORIZED']:this[_0x2335ea(0x1b1)][_0x2335ea(0x18a)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x40c10e});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this['logger']['error'](_0x2335ea(0x1ff),{'context':_0x40c10e});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS['NOT_FOUND']:this['logger']['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x40c10e});throw new Error(_0x2335ea(0x1bb));case HTTP_STATUS[_0x2335ea(0x1c0)]:this['logger'][_0x2335ea(0x193)](_0x2335ea(0x1ca),{'context':_0x40c10e}),await this[_0x2335ea(0x229)](_0x40c10e);throw new Error(_0x2335ea(0x1cd));case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x2335ea(0x1aa)]:this['logger'][_0x2335ea(0x18a)](_0x2335ea(0x18d),{'context':_0x40c10e,'status':_0x1e44e2['status']}),await this[_0x2335ea(0x1ef)](_0x40c10e);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger'][_0x2335ea(0x18a)]('Unknown\x20AI\x20service\x20error',{'context':_0x40c10e,'error':_0x1e44e2['message']});throw new Error(_0x2335ea(0x1f1)+_0x1e44e2['message']);}}[a0_0x252d00(0x195)](_0x5cdc8c){const _0x88df7c=a0_0x252d00;this['apiKeyManager']=_0x5cdc8c,this['logger']?.[_0x88df7c(0x1a9)](_0x88df7c(0x21d),{'hasManager':!!_0x5cdc8c});}['setAgentPool'](_0x470d2f){const _0x325147=a0_0x252d00;this[_0x325147(0x1de)]=_0x470d2f,this['logger']?.['info'](_0x325147(0x208),{'hasAgentPool':!!_0x470d2f});}async['generateImage'](_0x17487a,_0x5471cb={}){const _0x4c98af=a0_0x252d00,_0x2060ea='img-'+Date['now']()+'-'+Math['random']()[_0x4c98af(0x210)](0x24)[_0x4c98af(0x1ed)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x17487a||typeof _0x17487a!=='string'||_0x17487a[_0x4c98af(0x216)]()['length']===0x0)throw new Error(_0x4c98af(0x1e9));const _0x564b9c=_0x5471cb[_0x4c98af(0x217)]||'flux-1.1-pro',_0x4780a4=_0x5471cb[_0x4c98af(0x1d7)]||'1024x1024',_0x26ced0=_0x5471cb['quality']||'standard',_0x53b488=_0x5471cb['responseFormat']||'url';this['logger']['info']('Generating\x20image\x20with\x20model:\x20'+_0x564b9c,{'requestId':_0x2060ea,'model':_0x564b9c,'size':_0x4780a4,'quality':_0x26ced0,'promptLength':_0x17487a['length']});const _0x235540={'prompt':_0x17487a,'model':_0x564b9c,'size':_0x4780a4,'quality':_0x26ced0,'response_format':_0x53b488,'n':0x1,'metadata':{'requestId':_0x2060ea,'timestamp':new Date()[_0x4c98af(0x20f)]()}},_0xdf3e7d=await this[_0x4c98af(0x18f)](_0x235540,_0x2060ea,{'sessionId':_0x5471cb['sessionId'],'platformProvided':_0x5471cb[_0x4c98af(0x1b4)]||![]});return this[_0x4c98af(0x226)](),{'url':_0xdf3e7d[_0x4c98af(0x1c5)]?.[0x0]?.['url']||null,'b64_json':_0xdf3e7d['data']?.[0x0]?.[_0x4c98af(0x196)]||null,'model':_0xdf3e7d[_0x4c98af(0x217)]||_0x564b9c,'requestId':_0x2060ea,'revisedPrompt':_0xdf3e7d[_0x4c98af(0x1c5)]?.[0x0]?.[_0x4c98af(0x1e2)]||_0x17487a};}catch(_0x52c1d9){this['_recordFailure'](),this['logger'][_0x4c98af(0x18a)](_0x4c98af(0x20d)+_0x52c1d9[_0x4c98af(0x1cf)],{'requestId':_0x2060ea,'model':_0x5471cb[_0x4c98af(0x217)],'error':_0x52c1d9[_0x4c98af(0x18c)]});throw _0x52c1d9;}}async['checkServiceHealth'](){const _0x2eb1f1=a0_0x252d00;try{const _0x34760d=await this['_makeAPIRequest'](_0x2eb1f1(0x1af),{},'health-check');return _0x34760d[_0x2eb1f1(0x1b6)]==='healthy';}catch(_0x3a19f0){return![];}}async['switchAgentModel'](_0x1c975a,_0x408c4f){const _0xf94515=a0_0x252d00;try{if(!this['_isValidModel'](_0x408c4f))throw new Error('Invalid\x20model:\x20'+_0x408c4f);let _0x128021=this[_0xf94515(0x198)][_0xf94515(0x1f6)](_0x1c975a);!_0x128021&&(_0x128021=new ConversationManager(_0x1c975a,this['logger']),this[_0xf94515(0x198)]['set'](_0x1c975a,_0x128021));const _0x40e31d=await _0x128021['switchModel'](_0x408c4f),_0x639576=await this['agentPool']?.[_0xf94515(0x220)](_0x1c975a);return _0x639576&&(_0x639576[_0xf94515(0x213)]=_0x408c4f,await this[_0xf94515(0x1de)][_0xf94515(0x1c4)](_0x1c975a)),this['logger']['info'](_0xf94515(0x194)+_0x1c975a,{'newModel':_0x408c4f,'messageCount':_0x40e31d['messages'][_0xf94515(0x212)]}),{'success':!![],'agentId':_0x1c975a,'newModel':_0x408c4f,'conversation':_0x40e31d};}catch(_0x1e41ee){this[_0xf94515(0x1b1)]['error']('Model\x20switch\x20failed:\x20'+_0x1e41ee[_0xf94515(0x1cf)],{'agentId':_0x1c975a,'newModel':_0x408c4f});throw _0x1e41ee;}}['_initializeModelSpecs'](){const _0x4184fe=a0_0x252d00,_0x1ac642={[MODELS[_0x4184fe(0x1f0)]]:{'provider':MODEL_PROVIDERS[_0x4184fe(0x1c2)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS['ANTHROPIC_OPUS']]:{'provider':MODEL_PROVIDERS[_0x4184fe(0x1c2)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x4184fe(0x1db)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS[_0x4184fe(0x201)]]:{'provider':MODEL_PROVIDERS[_0x4184fe(0x1e0)],'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[_0x4184fe(0x1e0)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS[_0x4184fe(0x1e0)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x4184fe(0x1e0)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x4184fe(0x228)]]:{'provider':MODEL_PROVIDERS[_0x4184fe(0x218)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x4184fe(0x1b9)]]:{'provider':MODEL_PROVIDERS[_0x4184fe(0x1d9)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x4184fe(0x1ee),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x4184fe(0x1ee),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':'AZURE','contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x1ac642;}[a0_0x252d00(0x1dd)](_0xcd17c3,_0x41d448,_0x26001e){const _0x40b772=a0_0x252d00,_0x836b0c=this[_0x40b772(0x1d1)][_0x41d448]||{'provider':_0x40b772(0x1ee)};let _0x1fdc61;typeof _0xcd17c3===_0x40b772(0x1c3)?_0x1fdc61=[{'role':_0x40b772(0x20e),'content':_0xcd17c3}]:_0x1fdc61=_0xcd17c3['map'](_0x3f6672=>this['_formatSingleMessage'](_0x3f6672,_0x41d448));switch(_0x836b0c[_0x40b772(0x1b3)]){case MODEL_PROVIDERS[_0x40b772(0x1c2)]:return this['_formatForAnthropic'](_0x1fdc61);case MODEL_PROVIDERS[_0x40b772(0x1e0)]:return this['_formatForOpenAI'](_0x1fdc61);case MODEL_PROVIDERS['AZURE']:return this[_0x40b772(0x21e)](_0x1fdc61);default:return _0x1fdc61;}}[a0_0x252d00(0x1ea)](_0x3bdab1,_0x1253b4){const _0x264408=a0_0x252d00;return{'role':_0x3bdab1[_0x264408(0x1a8)]||_0x264408(0x20e),'content':_0x3bdab1['content'],'timestamp':_0x3bdab1['timestamp']};}['_formatForAnthropic'](_0x3b4d17){const _0x21a1f2=a0_0x252d00;return _0x3b4d17[_0x21a1f2(0x1fc)](_0x249cf7=>{const _0x468f34=_0x21a1f2;if(_0x249cf7[_0x468f34(0x1a8)]==='system')return{'role':_0x468f34(0x20e),'content':'System:\x20'+_0x249cf7['content']};return _0x249cf7;});}[a0_0x252d00(0x1bc)](_0x2c7571){return _0x2c7571;}[a0_0x252d00(0x21e)](_0xefc887){const _0x3102c8=a0_0x252d00;return _0xefc887['map'](_0x2ccb97=>({..._0x2ccb97,'content':typeof _0x2ccb97[_0x3102c8(0x1d8)]===_0x3102c8(0x1c3)?_0x2ccb97[_0x3102c8(0x1d8)]:JSON['stringify'](_0x2ccb97[_0x3102c8(0x1d8)])}));}['_isValidModel'](_0x55e3c3){const _0x2a0d7d=a0_0x252d00;this['logger']['debug']('Validating\x20model',{'model':_0x55e3c3,'modelType':typeof _0x55e3c3});if(this[_0x2a0d7d(0x1d1)][_0x55e3c3]!==undefined)return!![];return this['logger'][_0x2a0d7d(0x193)]('Model\x20validation\x20failed',{'model':_0x55e3c3,'availableModels':Object['keys'](this[_0x2a0d7d(0x1d1)])}),![];}async['_checkModelHealth'](_0x47ecad){return!![];}async['_estimateTokens'](_0x3e03b0,_0x23a78d){return Math['ceil'](_0x3e03b0['length']/0x4);}async[a0_0x252d00(0x1fb)](_0x2ee4b3,_0x1af381){const _0x40c2ab=_0x1af381*0x4;if(_0x2ee4b3['length']<=_0x40c2ab)return _0x2ee4b3;return _0x2ee4b3['substring'](0x0,_0x40c2ab-0x14)+'\x0a...\x20[message\x20truncated]';}async['_summarizeMessages'](_0x495de2,_0x26e009){const _0xc8399f=a0_0x252d00,_0x1dabe3=_0x495de2[_0xc8399f(0x1fc)](_0x9d959=>_0x9d959['role']+':\x20'+_0x9d959['content'])['join']('\x0a'),_0x1e00d6=0x1f4;if(_0x1dabe3[_0xc8399f(0x212)]<=_0x1e00d6)return _0x1dabe3;return _0x1dabe3[_0xc8399f(0x1d0)](0x0,_0x1e00d6)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x48b9a9,_0x49023e,_0x597352,_0x5bf5c9={}){const _0x5794df=a0_0x252d00,_0x3c57db=_0x5794df(0x202);let _0x48feb6,_0x457a22=null,_0x4938b3=null;this[_0x5794df(0x1b1)]?.['info'](_0x5794df(0x1c1),{'hasApiKeyManager':!!this[_0x5794df(0x219)],'sessionId':_0x5bf5c9[_0x5794df(0x1ba)],'hasSessionId':!!_0x5bf5c9['sessionId'],'optionsKeys':Object[_0x5794df(0x191)](_0x5bf5c9),'model':_0x49023e['model']});if(this['apiKeyManager']&&_0x5bf5c9[_0x5794df(0x1ba)]){const _0x3b95f4=this['apiKeyManager'][_0x5794df(0x19f)](_0x5bf5c9[_0x5794df(0x1ba)],{'platformProvided':_0x5bf5c9[_0x5794df(0x1b4)]||![],'vendor':this[_0x5794df(0x1f5)](_0x49023e[_0x5794df(0x217)])});_0x457a22=_0x3b95f4[_0x5794df(0x209)],_0x4938b3=_0x3b95f4[_0x5794df(0x1d4)],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x5bf5c9['sessionId'],'hasLoxiaKey':!!_0x457a22,'hasVendorKey':!!_0x4938b3,'vendor':this[_0x5794df(0x1f5)](_0x49023e['model'])});}!_0x457a22&&_0x5bf5c9['apiKey']&&(_0x457a22=_0x5bf5c9[_0x5794df(0x1fa)]);!_0x457a22&&this[_0x5794df(0x1a3)][_0x5794df(0x1fa)]&&(_0x457a22=this['config']['apiKey']);if(!_0x457a22)throw new Error(_0x5794df(0x211));const _0xf1283c=_0x49023e['model'],_0x7ae8de={'conversationId':_0x597352,'message':_0x49023e[_0x5794df(0x18e)][_0x49023e[_0x5794df(0x18e)]['length']-0x1]?.['content']||'','messages':_0x49023e[_0x5794df(0x18e)],'model':_0xf1283c,'requestId':_0x597352,'options':_0x49023e[_0x5794df(0x1c9)]||{},'platformProvided':_0x5bf5c9[_0x5794df(0x1b4)]||![]};_0x49023e['system']&&(_0x7ae8de['systemPrompt']=_0x49023e[_0x5794df(0x1dc)]);_0x5bf5c9[_0x5794df(0x1b4)]?_0x7ae8de[_0x5794df(0x1fa)]=_0x457a22:(_0x4938b3&&(_0x7ae8de[_0x5794df(0x1d4)]=_0x4938b3),_0x5bf5c9['customApiKeys']&&(_0x7ae8de[_0x5794df(0x197)]=_0x5bf5c9[_0x5794df(0x197)]),_0x7ae8de['apiKey']=_0x457a22);for(let _0x4a4b04=0x1;_0x4a4b04<=this['retryAttempts'];_0x4a4b04++){try{this[_0x5794df(0x1b1)]['info'](_0x5794df(0x1e8),{'url':_0x3c57db,'model':_0x49023e['model'],'requestId':_0x597352,'attempt':_0x4a4b04,'hasApiKey':!!_0x457a22});const _0x28d4ee=await fetch(_0x3c57db,{'method':'POST','headers':{'Content-Type':_0x5794df(0x1e1),'Authorization':_0x5794df(0x1c7)+_0x457a22,'X-Request-ID':_0x597352},'body':JSON[_0x5794df(0x19c)](_0x7ae8de),'timeout':this['timeout']});if(!_0x28d4ee['ok']){const _0x4d0b69=await _0x28d4ee['text'](),_0x581cd6=new Error(_0x5794df(0x19a)+_0x28d4ee[_0x5794df(0x1b6)]+':\x20'+_0x28d4ee[_0x5794df(0x1a2)]+(_0x4d0b69?_0x5794df(0x1a6)+_0x4d0b69:''));_0x581cd6[_0x5794df(0x1b6)]=_0x28d4ee['status'];throw _0x581cd6;}const _0x5ce431=await _0x28d4ee[_0x5794df(0x192)]();return{'choices':[{'message':{'content':_0x5ce431['content']||'','role':'assistant'},'finish_reason':_0x5ce431['finishReason']||'stop'}],'usage':_0x5ce431['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x5ce431['model']||_0x49023e[_0x5794df(0x217)],'id':_0x5ce431['requestId']||_0x597352};}catch(_0xf23a32){_0x48feb6=_0xf23a32,this[_0x5794df(0x1b1)][_0x5794df(0x193)]('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x4a4b04,'requestId':_0x597352,'error':_0xf23a32['message'],'status':_0xf23a32[_0x5794df(0x1b6)]});if(_0x4a4b04<this['retryAttempts']){const _0x5e9064=Math[_0x5794df(0x225)](0x2,_0x4a4b04)*0x3e8;this['logger'][_0x5794df(0x193)]('Retrying\x20in\x20'+_0x5e9064+'ms',{'attempt':_0x4a4b04,'requestId':_0x597352}),await new Promise(_0x4ff2ef=>setTimeout(_0x4ff2ef,_0x5e9064));}}}this[_0x5794df(0x1b1)][_0x5794df(0x18a)]('All\x20attempts\x20to\x20reach\x20backend\x20failed,\x20using\x20mock\x20response',{'requestId':_0x597352,'error':_0x48feb6[_0x5794df(0x1cf)]});const _0x583231=_0x48feb6[_0x5794df(0x1cf)]&&_0x48feb6['message'][_0x5794df(0x1c8)]('No\x20API\x20key\x20configured');if(_0x583231)throw new Error(_0x5794df(0x223)+_0x48feb6['message']);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x48feb6['message'],'role':_0x5794df(0x20b)},'finish_reason':_0x5794df(0x214)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x49023e[_0x5794df(0x217)],'id':_0x5794df(0x206)+_0x597352,'error':_0x48feb6[_0x5794df(0x1cf)]};}async['_makeImageAPIRequest'](_0x5dd71f,_0x2c696a,_0x1c85a6={}){const _0x4f0a93=a0_0x252d00,_0xbbab4d=_0x4f0a93(0x1ab);let _0x3d5fa6,_0x49b2b4=null,_0x3108df=null;this[_0x4f0a93(0x1b1)]?.[_0x4f0a93(0x1a9)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x4f0a93(0x219)],'sessionId':_0x1c85a6[_0x4f0a93(0x1ba)],'hasSessionId':!!_0x1c85a6[_0x4f0a93(0x1ba)],'model':_0x5dd71f[_0x4f0a93(0x217)]});if(this['apiKeyManager']&&_0x1c85a6[_0x4f0a93(0x1ba)]){const _0x582b65=this['apiKeyManager'][_0x4f0a93(0x19f)](_0x1c85a6['sessionId'],{'platformProvided':_0x1c85a6[_0x4f0a93(0x1b4)]||![],'vendor':this[_0x4f0a93(0x1f5)](_0x5dd71f['model'])});_0x49b2b4=_0x582b65['loxiaApiKey'],_0x3108df=_0x582b65[_0x4f0a93(0x1d4)],this[_0x4f0a93(0x1b1)]?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x1c85a6['sessionId'],'hasLoxiaKey':!!_0x49b2b4,'hasVendorKey':!!_0x3108df});}!_0x49b2b4&&_0x1c85a6['apiKey']&&(_0x49b2b4=_0x1c85a6['apiKey']);!_0x49b2b4&&this[_0x4f0a93(0x1a3)]['apiKey']&&(_0x49b2b4=this['config']['apiKey']);if(!_0x49b2b4)throw new Error(_0x4f0a93(0x211));const _0x23bbcc={'prompt':_0x5dd71f[_0x4f0a93(0x1b5)],'model':_0x5dd71f['model']||'azure-openai-dalle3','size':_0x5dd71f['size'],'quality':_0x5dd71f[_0x4f0a93(0x21f)],'style':_0x5dd71f['style']||'vivid','n':_0x5dd71f['n']||0x1,'requestId':_0x2c696a};for(let _0x336fa1=0x1;_0x336fa1<=this['retryAttempts'];_0x336fa1++){try{this[_0x4f0a93(0x1b1)][_0x4f0a93(0x1a9)](_0x4f0a93(0x19b),{'url':_0xbbab4d,'model':_0x5dd71f[_0x4f0a93(0x217)],'requestId':_0x2c696a,'attempt':_0x336fa1,'hasApiKey':!!_0x49b2b4});const _0x2f1b1c=await fetch(_0xbbab4d,{'method':'POST','headers':{'Content-Type':_0x4f0a93(0x1e1),'Authorization':'Bearer\x20'+_0x49b2b4,'X-Request-ID':_0x2c696a},'body':JSON['stringify'](_0x23bbcc),'timeout':this['timeout']*0x2});if(!_0x2f1b1c['ok']){const _0xf731fc=await _0x2f1b1c['text'](),_0x24106c=new Error(_0x4f0a93(0x19a)+_0x2f1b1c['status']+':\x20'+_0x2f1b1c['statusText']+(_0xf731fc?'\x20-\x20'+_0xf731fc:''));_0x24106c['status']=_0x2f1b1c[_0x4f0a93(0x1b6)];throw _0x24106c;}const _0x5dd1c4=await _0x2f1b1c['json']();return{'data':_0x5dd1c4['images']||[],'model':_0x5dd1c4['model']||_0x5dd71f['model'],'created':_0x5dd1c4[_0x4f0a93(0x1cc)]||Date['now'](),'usage':_0x5dd1c4['usage']};}catch(_0x45a9ea){_0x3d5fa6=_0x45a9ea,this['logger']['warn']('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x336fa1,'requestId':_0x2c696a,'error':_0x45a9ea[_0x4f0a93(0x1cf)],'status':_0x45a9ea['status']});if(_0x336fa1<this['retryAttempts']){const _0x569d5b=Math[_0x4f0a93(0x225)](0x2,_0x336fa1)*0x3e8;this[_0x4f0a93(0x1b1)][_0x4f0a93(0x193)](_0x4f0a93(0x203)+_0x569d5b+'ms',{'attempt':_0x336fa1,'requestId':_0x2c696a}),await new Promise(_0x472ca3=>setTimeout(_0x472ca3,_0x569d5b));}}}this['logger'][_0x4f0a93(0x18a)](_0x4f0a93(0x1f7),{'requestId':_0x2c696a,'error':_0x3d5fa6['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x3d5fa6[_0x4f0a93(0x1cf)]);}async['_checkRateLimit'](_0x3a4397){await new Promise(_0x1a4f3c=>setTimeout(_0x1a4f3c,0x64));}async[a0_0x252d00(0x229)](_0x6da084){const _0x5eecb1=a0_0x252d00,_0x1d8201=0xea60;this[_0x5eecb1(0x1b1)][_0x5eecb1(0x1a9)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x1d8201+'ms',_0x6da084),await new Promise(_0x48a04b=>setTimeout(_0x48a04b,_0x1d8201));}async['_handleServiceUnavailable'](_0x4708c9){const _0xc709d=a0_0x252d00;this[_0xc709d(0x1be)]();const _0x192c37=0x7530;this[_0xc709d(0x1b1)]['info']('Service\x20unavailable,\x20waiting\x20'+_0x192c37+'ms',_0x4708c9),await new Promise(_0x4cd481=>setTimeout(_0x4cd481,_0x192c37));}['_isCircuitBreakerOpen'](){const _0x246bcb=a0_0x252d00;if(!this[_0x246bcb(0x1a1)]['isOpen'])return![];const _0x1ee5fe=Date['now']()-this[_0x246bcb(0x1a1)][_0x246bcb(0x1e4)];if(_0x1ee5fe>this[_0x246bcb(0x1a1)]['timeout'])return this['circuitBreaker']['isOpen']=![],this[_0x246bcb(0x1a1)][_0x246bcb(0x222)]=0x0,![];return!![];}[a0_0x252d00(0x1be)](){const _0x457923=a0_0x252d00;this['circuitBreaker'][_0x457923(0x222)]++,this[_0x457923(0x1a1)]['lastFailureTime']=Date[_0x457923(0x19e)](),this['circuitBreaker']['failures']>=this['circuitBreaker'][_0x457923(0x224)]&&(this[_0x457923(0x1a1)][_0x457923(0x1b7)]=!![],this[_0x457923(0x1b1)]['warn']('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}['_resetCircuitBreaker'](){const _0x5491a9=a0_0x252d00;this[_0x5491a9(0x1a1)]['failures']>0x0&&(this[_0x5491a9(0x1a1)]['failures']=0x0,this['circuitBreaker'][_0x5491a9(0x1b7)]=![],this[_0x5491a9(0x1b1)]['info']('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}[a0_0x252d00(0x1f5)](_0x25d10f){const _0xe0c0aa=a0_0x252d00;if(!_0x25d10f)return null;const _0x30f497=_0x25d10f['toLowerCase']();if(_0x30f497[_0xe0c0aa(0x1c8)](_0xe0c0aa(0x1d6))||_0x30f497[_0xe0c0aa(0x1c8)]('claude'))return _0xe0c0aa(0x1d6);else{if(_0x30f497[_0xe0c0aa(0x1c8)](_0xe0c0aa(0x1eb))||_0x30f497[_0xe0c0aa(0x1c8)]('gpt'))return'openai';else{if(_0x30f497[_0xe0c0aa(0x1c8)](_0xe0c0aa(0x190)))return'deepseek';else{if(_0x30f497[_0xe0c0aa(0x1c8)]('phi'))return _0xe0c0aa(0x1bd);}}}return null;}}class ConversationManager{constructor(_0x43fe35,_0x15ff6c){const _0x1e6340=a0_0x252d00;this['agentId']=_0x43fe35,this[_0x1e6340(0x1b1)]=_0x15ff6c,this[_0x1e6340(0x1d2)]=new Map();}async['switchModel'](_0x5d813c){return{'messages':[],'model':_0x5d813c,'lastUpdated':new Date()['toISOString']()};}}function a0_0x5c38(){const _0x580651=['qu5usfjpueLd','C3rYAw5N','CgvYC2LZDefNzw50u3rHDgu','zgf0yq','y2XHC3nPzNLfCNjVCG','qMvHCMvYia','Aw5JBhvKzxm','B3b0Aw9UCW','uMf0zsbSAw1PDcbLEgnLzwrLza','Dw5ZAgLMDa','y3jLyxrLza','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','BwvZC2fNzq','C3vIC3rYAw5N','Bw9KzwXtCgvJCW','y29UDMvYC2f0Aw9UCW','DxnHz2u','DMvUzg9YqxbPs2v5','y29TCgfJDgL6zunVBNzLCNnHDgLVBG','yw50AhjVCgLJ','C2L6zq','y29UDgvUDa','ueHj','Dg9vChbLCKnHC2u','r1buxZq','C3LZDgvT','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','ywDLBNrqB29S','mtm3ntmXmgHNuK5UvW','t1bftKfj','yxbWBgLJyxrPB24VANnVBG','CMv2AxnLzf9WCM9TChq','CMv0CNLbDhrLBxb0CW','BgfZDezHAwX1CMvuAw1L','CMv2zxjZzq','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','qu5usfjpueLdx0HbsuTv','twfRAw5NihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','x2zVCM1HDfnPBMDSzu1LC3nHz2u','B3bLBMfP','ChvZAa','C3vIC3rY','qvPvuKu','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','qu5usfjpueLdx1nptK5fva','quKGC2vYDMLJzsbLCNjVCJOG','qu5usfjpueLdx09qvvm','x3n1Bw1HCML6zu1LC3nHz2vZ','ChjLzMvYCMvKtw9KzwW','x2DLDfzLBMrVCKzYB21nB2rLBa','z2v0','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','mJyWotG4ohrQz21Azq','DhjHy2TvC2fNzq','yxbPs2v5','x3rYDw5JyxrLtwvZC2fNzq','BwfW','mMjswNLWuG','CM91DgvnB2rLBa','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','x2vZDgLTyxrLvg9Rzw5Z','r1buxZrFtuLosq','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','uMv0CNLPBMCGAw4G','x2LZq2LYy3vPDejYzwfRzxjpCgvU','Dg90ywXFDg9Rzw5Z','zxjYB3iT','vw5RBM93BIbTB2rLBdOG','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','Bg94AwfbCgLlzxK','AgfUzgXLshr0CevYCM9Y','yxnZAxn0yw50','yMfZzvvYBa','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','DxnLCG','Dg9ju09tDhjPBMC','Dg9tDhjPBMC','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','BgvUz3rO','y3vYCMvUDe1VzgvS','C3rVCa','nJq4ndrpqNjjvNi','DhjPBq','Bw9KzwW','revfufnfruS','yxbPs2v5twfUywDLCG','oduXotCWq2DjC0jt','mtq2nZiXsfDZvgHf','yNvKz2v0u2vYDMLJzq','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq','x2zVCM1HDezVCKf6DxjL','CxvHBgL0Eq','z2v0qwDLBNq','CMvXDwvZDff1zxvL','zMfPBhvYzxm','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','DgHYzxnOB2XK','Cg93','x3jLC2v0q2LYy3vPDejYzwfRzxi','yMfJA2vUza','revfufnfruTFuJe','x2HHBMrSzvjHDgvmAw1PDa','zxjYB3i','ChjVBxb0x3rVA2vUCW','C3rHy2S','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','BwvZC2fNzxm','x21HA2vjBwfNzufqsvjLCxvLC3q','zgvLChnLzwS','A2v5CW','ANnVBG','D2fYBG','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','C2v0qxbPs2v5twfUywDLCG','yJy0x2PZB24','y3vZDg9TqxbPs2v5CW','y29UDMvYC2f0Aw9UtwfUywDLCNm','ndLrBeHnvhi','sfruuca','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','C3rYAw5NAwz5','C2vUze1LC3nHz2u','BM93','z2v0s2v5C0zVCLjLCxvLC3q','ywDLBNrjza','y2LYy3vPDejYzwfRzxi','C3rHDhvZvgv4Da','y29UzMLN','C3LZDgvTuhjVBxb0','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','ic0G','nJy0mtroEhbgvfy','CM9Szq','Aw5MBW','r0furvDbwv9usu1ft1vu','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','rKfmtejbq0S','y2HVAwnLCW','l2HLywX0Aa','zxn0Aw1HDgvKvg9Rzw5Z','Bg9Nz2vY','mtHVweT0tNe','ChjVDMLKzxi','CgXHDgzVCM1qCM92AwrLza','ChjVBxb0','C3rHDhvZ','AxnpCgvU','mZn5tgXWsxe','ueHjxZq','C2vZC2LVBKLK','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','x2zVCM1HDezVCK9Wzw5bsq','BwLJCM9ZB2z0','x3jLy29YzezHAwX1CMu','nJm2mZLjyxrhwxG','ve9px01btLLFuKvrvuvtvfm','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq'];a0_0x5c38=function(){return _0x580651;};return a0_0x5c38();}export default AIService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x370ab2=a0_0x24f9;(function(_0xbf610e,_0x364a21){const _0x46193e=a0_0x24f9,_0x25bb3f=_0xbf610e();while(!![]){try{const _0x4199cc=parseInt(_0x46193e(0x1c9))/0x1+parseInt(_0x46193e(0x1cd))/0x2+-parseInt(_0x46193e(0x1c7))/0x3*(parseInt(_0x46193e(0x1d3))/0x4)+-parseInt(_0x46193e(0x1cb))/0x5*(parseInt(_0x46193e(0x1d7))/0x6)+parseInt(_0x46193e(0x1c8))/0x7*(-parseInt(_0x46193e(0x1d5))/0x8)+-parseInt(_0x46193e(0x1d4))/0x9+parseInt(_0x46193e(0x1d6))/0xa;if(_0x4199cc===_0x364a21)break;else _0x25bb3f['push'](_0x25bb3f['shift']());}catch(_0x3f5aaa){_0x25bb3f['push'](_0x25bb3f['shift']());}}}(a0_0xa6e2,0xc96bd));class ApiKeyManager{constructor(_0x298352){const _0x202f26=a0_0x24f9;this[_0x202f26(0x1df)]=_0x298352,this[_0x202f26(0x1bd)]=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x370ab2(0x1bc)](_0x2a1547,_0x41aa9e){const _0x27ecf5=a0_0x370ab2;if(!_0x2a1547)throw new Error(_0x27ecf5(0x1d9));this['sessionKeys']['set'](_0x2a1547,{'loxiaApiKey':_0x41aa9e[_0x27ecf5(0x1c5)]||null,'vendorKeys':_0x41aa9e[_0x27ecf5(0x1ca)]||{},'updatedAt':new Date()['toISOString']()}),this['logger']?.[_0x27ecf5(0x1db)]('API\x20keys\x20updated\x20for\x20session',{'sessionId':_0x2a1547,'hasLoxiaKey':!!_0x41aa9e['loxiaApiKey'],'vendorKeys':Object[_0x27ecf5(0x1c4)](_0x41aa9e[_0x27ecf5(0x1ca)]||{}),'timestamp':new Date()[_0x27ecf5(0x1c2)]()});}['getSessionKeys'](_0x1c3fb8){if(!_0x1c3fb8)return this['globalKeys'];const _0x450571=this['sessionKeys']['get'](_0x1c3fb8);if(_0x450571)return _0x450571;return this['globalKeys'];}[a0_0x370ab2(0x1cc)](_0x343aa0,_0x3f29cf={}){const _0x103af1=a0_0x370ab2,_0x5d68ee=this[_0x103af1(0x1dc)](_0x343aa0),_0x571c27={'loxiaApiKey':_0x5d68ee[_0x103af1(0x1c5)],'vendorApiKey':null};return!_0x3f29cf['platformProvided']&&_0x3f29cf[_0x103af1(0x1be)]&&_0x5d68ee['vendorKeys']&&(_0x571c27[_0x103af1(0x1d2)]=_0x5d68ee[_0x103af1(0x1ca)][_0x3f29cf['vendor']]),_0x571c27;}['removeSessionKeys'](_0x7127f){const _0x1bff44=a0_0x370ab2;if(this['sessionKeys'][_0x1bff44(0x1c3)](_0x7127f))return this['logger']?.['info'](_0x1bff44(0x1c1),{'sessionId':_0x7127f}),!![];return![];}['setGlobalKeys'](_0x419862){const _0x30d41c=a0_0x370ab2;this[_0x30d41c(0x1d1)]={'loxiaApiKey':_0x419862[_0x30d41c(0x1c5)]||this[_0x30d41c(0x1d1)]['loxiaApiKey'],'vendorKeys':{...this[_0x30d41c(0x1d1)]['vendorKeys'],..._0x419862[_0x30d41c(0x1ca)]||{}}},this[_0x30d41c(0x1df)]?.['info'](_0x30d41c(0x1de),{'hasLoxiaKey':!!this[_0x30d41c(0x1d1)]['loxiaApiKey'],'vendorKeys':Object['keys'](this['globalKeys'][_0x30d41c(0x1ca)])});}[a0_0x370ab2(0x1c0)](){const _0x588fb8=a0_0x370ab2;return Array['from'](this['sessionKeys'][_0x588fb8(0x1c6)]())[_0x588fb8(0x1bf)](([_0x54d0ac,_0x23956e])=>({'sessionId':_0x54d0ac,'hasLoxiaKey':!!_0x23956e['loxiaApiKey'],'vendorKeys':Object[_0x588fb8(0x1c4)](_0x23956e['vendorKeys']||{}),'updatedAt':_0x23956e[_0x588fb8(0x1dd)]}));}['cleanupExpiredSessions'](_0x2ad23f=0x18*0x3c*0x3c*0x3e8){const _0xc66e35=a0_0x370ab2,_0x240c1d=Date[_0xc66e35(0x1d8)](),_0x1c0d8f=[];for(const [_0x15809e,_0x145c54]of this[_0xc66e35(0x1bd)][_0xc66e35(0x1c6)]()){const _0x1a76cf=_0x240c1d-new Date(_0x145c54[_0xc66e35(0x1dd)])[_0xc66e35(0x1ce)]();_0x1a76cf>_0x2ad23f&&_0x1c0d8f[_0xc66e35(0x1da)](_0x15809e);}return _0x1c0d8f[_0xc66e35(0x1d0)](_0x3cd244=>{const _0x3bee5c=_0xc66e35;this[_0x3bee5c(0x1bd)][_0x3bee5c(0x1c3)](_0x3cd244);}),_0x1c0d8f['length']>0x0&&this[_0xc66e35(0x1df)]?.[_0xc66e35(0x1db)]('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x1c0d8f['length'],'remainingSessions':this['sessionKeys'][_0xc66e35(0x1cf)]}),_0x1c0d8f['length'];}}function a0_0xa6e2(){const _0x279e45=['nZy4mJi1uKLeu3DQ','DMvUzg9Ys2v5CW','nJvTA05ptuW','z2v0s2v5C0zVCLjLCxvLC3q','mJC4odm1ng5TquPWBW','z2v0vgLTzq','C2L6zq','zM9YrwfJAa','z2XVyMfSs2v5CW','DMvUzg9YqxbPs2v5','mtq5mML2AuTTAq','ndK3nJC5m2XmDujoDG','mtzStKTWrwK','mtC3mdyWnZbmtuHMuw4','nJiYmZi2CKzvr3zP','BM93','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','ChvZAa','Aw5MBW','z2v0u2vZC2LVBKTLExm','DxbKyxrLzef0','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','Bg9Nz2vY','C2v0u2vZC2LVBKTLExm','C2vZC2LVBKTLExm','DMvUzg9Y','BwfW','z2v0qwn0AxzLu2vZC2LVBNm','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','Dg9ju09tDhjPBMC','zgvSzxrL','A2v5CW','Bg94AwfbCgLlzxK','zw50CMLLCW','otuXnMfsy2PmCG','odiXodD5v2v0t3e'];a0_0xa6e2=function(){return _0x279e45;};return a0_0xa6e2();}function a0_0x24f9(_0x53e4f3,_0x1f53a5){_0x53e4f3=_0x53e4f3-0x1bc;const _0xa6e2e=a0_0xa6e2();let _0x24f9bf=_0xa6e2e[_0x53e4f3];if(a0_0x24f9['gQlqmo']===undefined){var _0x2fbcab=function(_0xf15492){const _0x4392e3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x298352='',_0x2a1547='';for(let _0x41aa9e=0x0,_0x1c3fb8,_0x450571,_0x343aa0=0x0;_0x450571=_0xf15492['charAt'](_0x343aa0++);~_0x450571&&(_0x1c3fb8=_0x41aa9e%0x4?_0x1c3fb8*0x40+_0x450571:_0x450571,_0x41aa9e++%0x4)?_0x298352+=String['fromCharCode'](0xff&_0x1c3fb8>>(-0x2*_0x41aa9e&0x6)):0x0){_0x450571=_0x4392e3['indexOf'](_0x450571);}for(let _0x3f29cf=0x0,_0x5d68ee=_0x298352['length'];_0x3f29cf<_0x5d68ee;_0x3f29cf++){_0x2a1547+='%'+('00'+_0x298352['charCodeAt'](_0x3f29cf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2a1547);};a0_0x24f9['GZZAlc']=_0x2fbcab,a0_0x24f9['kaiysj']={},a0_0x24f9['gQlqmo']=!![];}const _0x2c6315=_0xa6e2e[0x0],_0x43e99c=_0x53e4f3+_0x2c6315,_0x417b3d=a0_0x24f9['kaiysj'][_0x43e99c];return!_0x417b3d?(_0x24f9bf=a0_0x24f9['GZZAlc'](_0x24f9bf),a0_0x24f9['kaiysj'][_0x43e99c]=_0x24f9bf):_0x24f9bf=_0x417b3d,_0x24f9bf;}export default ApiKeyManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x2d2047=a0_0x57ee;function a0_0x3f90(){const _0x309693=['mtbPthjZBNe','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','DMfSDwvZ','nZmWn2fLCgf0Eq','nJu3ota2CxDzBMPO','yxbWBgLJyxrPB24VANnVBG','Aw5MBW','C3bLzwq','zMLSDgvY','Bg9HzejLBMnOBwfYA3m','zgvIDwC','BMfTzq','mZros0LHEvu','BMvLzhnszwzYzxnO','ntzJEhv0zxy','AxnmB2fKAw5N','Bw9KzwXZ','y29KAw5N','ndi3mZC3nxfAB091CW','BgvUz3rO','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','nde1ndy3sKj1uMPw','CMvMCMvZAeLUDgvYDMfS','yxP1CMvcywnRzw5KvxjS','BwfW','Dw5RBM93BG','yxbPs2v5','mJe3mdK2mKTQvhnfuG','zM9Yy2vszwzYzxnO','ndG4uu5VyNj2','nJm1nJverKHetvq','mZqZn0r1CwLqwa','Bg9Nz2vY','BgfZDfvWzgf0zwq','sfruuca','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','x2DLDejLC3rnB2rLBezVCLrHC2S','y29ZDa','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','CxvPy2STDgfZA3m','DgfZA3m','yMvUy2HTyxjRCW','z2v0qMvUy2HTyxjRCW','y29UzMLN','Aw5PDgLHBgL6zq','Bwf4','BwvZC2fNzq','C2nVCMu','C29YDa','C291CMnL','z2v0qMvUy2HTyxjRvgfIBgu'];a0_0x3f90=function(){return _0x309693;};return a0_0x3f90();}(function(_0x34bcbf,_0x4e81ea){const _0xcccd24=a0_0x57ee,_0x2e9b9e=_0x34bcbf();while(!![]){try{const _0x4a03e5=-parseInt(_0xcccd24(0xfd))/0x1*(-parseInt(_0xcccd24(0x106))/0x2)+-parseInt(_0xcccd24(0xdc))/0x3+parseInt(_0xcccd24(0x108))/0x4*(parseInt(_0xcccd24(0xe5))/0x5)+-parseInt(_0xcccd24(0xfe))/0x6+-parseInt(_0xcccd24(0xe6))/0x7*(-parseInt(_0xcccd24(0xe4))/0x8)+-parseInt(_0xcccd24(0xe2))/0x9+parseInt(_0xcccd24(0xfa))/0xa*(parseInt(_0xcccd24(0x10c))/0xb);if(_0x4a03e5===_0x4e81ea)break;else _0x2e9b9e['push'](_0x2e9b9e['shift']());}catch(_0xf7d4d9){_0x2e9b9e['push'](_0x2e9b9e['shift']());}}}(a0_0x3f90,0x38797));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';function a0_0x57ee(_0x449c59,_0x5c9ccf){_0x449c59=_0x449c59-0xdc;const _0x3f90df=a0_0x3f90();let _0x57ee25=_0x3f90df[_0x449c59];if(a0_0x57ee['FhcBYQ']===undefined){var _0x59224a=function(_0x528e6c){const _0x2fa286='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xddb1b2='',_0x2462e5='';for(let _0x4903fe=0x0,_0x545731,_0x4fc8aa,_0x567f73=0x0;_0x4fc8aa=_0x528e6c['charAt'](_0x567f73++);~_0x4fc8aa&&(_0x545731=_0x4903fe%0x4?_0x545731*0x40+_0x4fc8aa:_0x4fc8aa,_0x4903fe++%0x4)?_0xddb1b2+=String['fromCharCode'](0xff&_0x545731>>(-0x2*_0x4903fe&0x6)):0x0){_0x4fc8aa=_0x2fa286['indexOf'](_0x4fc8aa);}for(let _0x13fc85=0x0,_0x2d37df=_0xddb1b2['length'];_0x13fc85<_0x2d37df;_0x13fc85++){_0x2462e5+='%'+('00'+_0xddb1b2['charCodeAt'](_0x13fc85)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2462e5);};a0_0x57ee['TIKFIL']=_0x59224a,a0_0x57ee['IbNYMr']={},a0_0x57ee['FhcBYQ']=!![];}const _0x187f80=_0x3f90df[0x0],_0x51900c=_0x449c59+_0x187f80,_0x257367=a0_0x57ee['IbNYMr'][_0x51900c];return!_0x257367?(_0x57ee25=a0_0x57ee['TIKFIL'](_0x57ee25),a0_0x57ee['IbNYMr'][_0x51900c]=_0x57ee25):_0x57ee25=_0x257367,_0x57ee25;}class BenchmarkService{constructor(_0xddb1b2,_0x2462e5){const _0x5bc36a=a0_0x57ee;this[_0x5bc36a(0xf2)]=_0xddb1b2,this['logger']=_0x2462e5,this['benchmarks']=null,this['lastUpdated']=null,this[_0x5bc36a(0x109)]=![],this[_0x5bc36a(0xde)]='https://autopilot-api.azurewebsites.net',this['refreshInterval']=MODEL_ROUTER_CONFIG[_0x5bc36a(0xfb)];}async[a0_0x2d2047(0xf3)](){const _0x29a291=a0_0x2d2047;try{await this['loadBenchmarks'](),this['_scheduleRefresh'](),this['logger'][_0x29a291(0x100)]('Benchmark\x20service\x20initialized');}catch(_0x4903fe){this['logger']['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x4903fe[_0x29a291(0xf5)]}),this[_0x29a291(0xf0)]=null;}}[a0_0x2d2047(0xf1)](){const _0x2b41d7=a0_0x2d2047;if(!this['benchmarks'])return this[_0x2b41d7(0xe7)]['error']('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async['loadBenchmarks'](){const _0x14e537=a0_0x2d2047;if(this['isLoading']){this['logger']['debug']('Benchmark\x20loading\x20already\x20in\x20progress');return;}this[_0x14e537(0x109)]=!![];try{const _0x545731=await this[_0x14e537(0x10e)]();if(_0x545731)this['benchmarks']=_0x545731,this['lastUpdated']=new Date(),this[_0x14e537(0xe7)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x545731['models']?.[_0x14e537(0x10d)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x4fc8aa){this[_0x14e537(0xe7)]['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x4fc8aa[_0x14e537(0xf5)],'endpoint':url}),!this['benchmarks']&&(this['benchmarks']=null);}finally{this[_0x14e537(0x109)]=![];}}[a0_0x2d2047(0xf9)](){const _0x5e890d=a0_0x2d2047,_0x567f73=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.['toISOString']()||'unknown','models':_0x567f73[_0x5e890d(0x10a)]||[],'tasks':_0x567f73['tasks']||{},'summary':this[_0x5e890d(0xed)](_0x567f73)};}[a0_0x2d2047(0x107)](){const _0x417e52=a0_0x2d2047;if(!this[_0x417e52(0xe8)])return!![];const _0x13fc85=Date['now']()-this[_0x417e52(0xe8)]['getTime']();return _0x13fc85>this[_0x417e52(0xdd)];}async[a0_0x2d2047(0x10e)](){const _0x1e5beb=a0_0x2d2047,_0x2d37df=this['azureBackendUrl']+_0x1e5beb(0xea);let _0x44f070=null;this[_0x1e5beb(0xf2)][_0x1e5beb(0xe1)]&&(_0x44f070=this[_0x1e5beb(0xf2)]['apiKey']);const _0x24c850={'method':'GET','headers':{'Content-Type':_0x1e5beb(0xff),..._0x44f070&&{'Authorization':'Bearer\x20'+_0x44f070}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x2d37df});const _0x1af1dd=await fetch(_0x2d37df,_0x24c850);if(!_0x1af1dd['ok'])throw new Error(_0x1e5beb(0xe9)+_0x1af1dd['status']+':\x20'+_0x1af1dd['statusText']);const _0x542a26=await _0x1af1dd['json']();return _0x542a26;}['_generateBenchmarkSummary'](_0x825c3f){const _0x5cf75e=a0_0x2d2047,_0x5859e4=_0x825c3f[_0x5cf75e(0x10a)]||[];return{'totalModels':_0x5859e4['length'],'taskCategories':Object['keys'](_0x825c3f[_0x5cf75e(0xef)]||{}),'bestForCoding':this['_getBestModelForTask'](_0x5859e4,_0x5cf75e(0x10b)),'bestForAnalysis':this['_getBestModelForTask'](_0x5859e4,'analysis'),'bestForQuickTasks':this['_getBestModelForTask'](_0x5859e4,_0x5cf75e(0xee)),'bestForCreative':this['_getBestModelForTask'](_0x5859e4,'creative'),'fastestModel':this['_getFastestModel'](_0x5859e4),'mostCostEfficient':this['_getMostCostEfficient'](_0x5859e4)};}[a0_0x2d2047(0xeb)](_0x4dc6a8,_0x402f9){const _0x4f2659=a0_0x2d2047;return _0x4dc6a8[_0x4f2659(0x102)](_0x2a16e6=>_0x2a16e6['tasks']&&_0x2a16e6[_0x4f2659(0xef)][_0x402f9])['sort']((_0x2007c6,_0x10c0c6)=>(_0x10c0c6[_0x4f2659(0xef)][_0x402f9][_0x4f2659(0xf6)]||0x0)-(_0x2007c6['tasks'][_0x402f9]['score']||0x0))[0x0]?.[_0x4f2659(0x105)]||'unknown';}['_getFastestModel'](_0x27631b){const _0x27eef2=a0_0x2d2047,_0x2fcf0a={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x27631b[_0x27eef2(0xf7)]((_0x2e28e7,_0x27ff8a)=>{const _0x55f22d=_0x27eef2,_0x326588=Math['max'](...Object['values'](_0x2e28e7['tasks']||{})[_0x55f22d(0xdf)](_0x3ee301=>_0x2fcf0a[_0x3ee301[_0x55f22d(0x101)]]||0x0)),_0x15a98f=Math['max'](...Object['values'](_0x27ff8a[_0x55f22d(0xef)]||{})[_0x55f22d(0xdf)](_0x785402=>_0x2fcf0a[_0x785402['speed']]||0x0));return _0x15a98f-_0x326588;})[0x0]?.['name']||'unknown';}['_getMostCostEfficient'](_0x1e01d4){const _0x54b10e=a0_0x2d2047,_0x541939={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x1e01d4['sort']((_0xf6979b,_0x2b1156)=>{const _0x4d5b85=a0_0x57ee,_0x237b60=Math['max'](...Object['values'](_0xf6979b['tasks']||{})[_0x4d5b85(0xdf)](_0x3a1561=>_0x541939[_0x3a1561['cost']]||0x0)),_0xf66a6=Math[_0x4d5b85(0xf4)](...Object[_0x4d5b85(0xfc)](_0x2b1156['tasks']||{})[_0x4d5b85(0xdf)](_0x5116d8=>_0x541939[_0x5116d8[_0x4d5b85(0xec)]]||0x0));return _0xf66a6-_0x237b60;})[0x0]?.[_0x54b10e(0x105)]||_0x54b10e(0xe0);}['_scheduleRefresh'](){const _0x554074=a0_0x2d2047;setInterval(async()=>{const _0x16ae44=a0_0x57ee;this['needsRefresh']()&&(this['logger'][_0x16ae44(0x104)]('Refreshing\x20benchmark\x20data'),await this[_0x16ae44(0x103)]());},this[_0x554074(0xdd)]);}async[a0_0x2d2047(0xe3)](){const _0x11117b=a0_0x2d2047;this['logger'][_0x11117b(0x100)]('Force\x20refreshing\x20benchmark\x20data'),await this['loadBenchmarks']();}['getStatus'](){const _0x563caf=a0_0x2d2047;return{'initialized':!!this['benchmarks'],'lastUpdated':this[_0x563caf(0xe8)]?.['toISOString']()||null,'source':this['benchmarks']?.[_0x563caf(0xf8)]||'unknown','modelCount':this[_0x563caf(0xf0)]?.[_0x563caf(0x10a)]?.[_0x563caf(0x10d)]||0x0,'isLoading':this[_0x563caf(0x109)],'needsRefresh':this['needsRefresh']()};}}export default BenchmarkService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x167936=a0_0x30d2;(function(_0x371c44,_0x1504b6){const _0x39132d=a0_0x30d2,_0x5d9456=_0x371c44();while(!![]){try{const _0x4bf983=-parseInt(_0x39132d(0x111))/0x1+-parseInt(_0x39132d(0x115))/0x2+-parseInt(_0x39132d(0x135))/0x3+-parseInt(_0x39132d(0x125))/0x4+parseInt(_0x39132d(0x11d))/0x5*(-parseInt(_0x39132d(0x117))/0x6)+-parseInt(_0x39132d(0x11c))/0x7*(-parseInt(_0x39132d(0x133))/0x8)+parseInt(_0x39132d(0x128))/0x9*(parseInt(_0x39132d(0x12a))/0xa);if(_0x4bf983===_0x1504b6)break;else _0x5d9456['push'](_0x5d9456['shift']());}catch(_0x207be0){_0x5d9456['push'](_0x5d9456['shift']());}}}(a0_0x5725,0x87488));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x30d2(_0x514a18,_0x220df7){_0x514a18=_0x514a18-0x108;const _0x5725f1=a0_0x5725();let _0x30d209=_0x5725f1[_0x514a18];if(a0_0x30d2['uDRioC']===undefined){var _0x111dce=function(_0x85ccee){const _0x40b6c8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x9541e3='',_0x168ecd='';for(let _0x272b33=0x0,_0x3ccaa8,_0x5456fb,_0x3db74d=0x0;_0x5456fb=_0x85ccee['charAt'](_0x3db74d++);~_0x5456fb&&(_0x3ccaa8=_0x272b33%0x4?_0x3ccaa8*0x40+_0x5456fb:_0x5456fb,_0x272b33++%0x4)?_0x9541e3+=String['fromCharCode'](0xff&_0x3ccaa8>>(-0x2*_0x272b33&0x6)):0x0){_0x5456fb=_0x40b6c8['indexOf'](_0x5456fb);}for(let _0x37cc00=0x0,_0x1e3068=_0x9541e3['length'];_0x37cc00<_0x1e3068;_0x37cc00++){_0x168ecd+='%'+('00'+_0x9541e3['charCodeAt'](_0x37cc00)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x168ecd);};a0_0x30d2['PNJQpx']=_0x111dce,a0_0x30d2['EqjZnl']={},a0_0x30d2['uDRioC']=!![];}const _0x5c15fc=_0x5725f1[0x0],_0x26afd5=_0x514a18+_0x5c15fc,_0x3806b6=a0_0x30d2['EqjZnl'][_0x26afd5];return!_0x3806b6?(_0x30d209=a0_0x30d2['PNJQpx'](_0x30d209),a0_0x30d2['EqjZnl'][_0x26afd5]=_0x30d209):_0x30d209=_0x3806b6,_0x30d209;}export class BudgetService{constructor(_0x9541e3,_0x168ecd){const _0x17f6e5=a0_0x30d2;this[_0x17f6e5(0x168)]=_0x9541e3||{},this[_0x17f6e5(0x155)]=_0x168ecd,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x17f6e5(0x14f)]={'daily':BUDGET_LIMITS[_0x17f6e5(0x113)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x17f6e5(0x131)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS[_0x17f6e5(0x149)],'lastAlertTimes':new Map()},this[_0x17f6e5(0x160)](),this['setupPeriodicSave']();}[a0_0x167936(0x122)](_0x272b33,_0x3ccaa8,_0x5456fb){const _0xd85ae1=a0_0x167936;try{const _0x3db74d=this[_0xd85ae1(0x14a)](_0x3ccaa8,_0x5456fb),_0x37cc00=new Date(),_0x1e3068=this[_0xd85ae1(0x110)](_0x37cc00),_0x170626=this[_0xd85ae1(0x163)](_0x37cc00),_0xe04a3f=this[_0xd85ae1(0x11f)](_0x37cc00);this[_0xd85ae1(0x13c)](this[_0xd85ae1(0x145)][_0xd85ae1(0x132)],_0x1e3068),this['initializeUsageEntry'](this['usage'][_0xd85ae1(0x14c)],_0x170626),this[_0xd85ae1(0x13c)](this['usage'][_0xd85ae1(0x112)],_0xe04a3f);const _0x40de57={'agentId':_0x272b33,'modelId':_0x3ccaa8,'tokens':_0x5456fb[_0xd85ae1(0x141)],'cost':_0x3db74d,'timestamp':_0x37cc00['toISOString']()};return this['updateUsageEntry'](this['usage'][_0xd85ae1(0x132)][_0xd85ae1(0x142)](_0x1e3068),_0x40de57),this['updateUsageEntry'](this['usage']['weekly'][_0xd85ae1(0x142)](_0x170626),_0x40de57),this['updateUsageEntry'](this[_0xd85ae1(0x145)]['monthly'][_0xd85ae1(0x142)](_0xe04a3f),_0x40de57),this[_0xd85ae1(0x145)]['total']['tokens']+=_0x5456fb['total_tokens'],this[_0xd85ae1(0x145)]['total']['cost']+=_0x3db74d,this['usage']['total'][_0xd85ae1(0x134)]+=0x1,this['checkBudgetLimits'](_0x1e3068,_0x170626,_0xe04a3f),this['logger']['info'](_0xd85ae1(0x158),{'agentId':_0x272b33,'modelId':_0x3ccaa8,'tokens':_0x5456fb['total_tokens'],'cost':_0x3db74d,'totalCost':this['usage']['total'][_0xd85ae1(0x118)]}),{'cost':_0x3db74d,'totalCost':this['usage']['total']['cost'],'totalTokens':this['usage'][_0xd85ae1(0x108)]['tokens'],'dailyUsage':this['usage'][_0xd85ae1(0x132)]['get'](_0x1e3068),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x5a6123){this[_0xd85ae1(0x155)][_0xd85ae1(0x148)](_0xd85ae1(0x126),{'error':_0x5a6123['message'],'agentId':_0x272b33,'modelId':_0x3ccaa8});throw _0x5a6123;}}['calculateCost'](_0x253dfc,_0x2eda47){const _0x163757=a0_0x167936,_0x1f5a86=COST_PER_TOKEN[_0x253dfc];if(!_0x1f5a86)return this[_0x163757(0x155)][_0x163757(0x15b)](_0x163757(0x14d),{'modelId':_0x253dfc}),0x0;const _0x20e338=(_0x2eda47[_0x163757(0x10f)]||0x0)*_0x1f5a86['input'],_0x55d09f=(_0x2eda47['completion_tokens']||0x0)*_0x1f5a86[_0x163757(0x157)];return _0x20e338+_0x55d09f;}['getUsage'](_0x59ff7e='daily',_0x2b1162=new Date()){const _0xe632a8=a0_0x167936;switch(_0x59ff7e){case'daily':return this['usage']['daily']['get'](this[_0xe632a8(0x110)](_0x2b1162))||this['createEmptyUsage']();case'weekly':return this[_0xe632a8(0x145)]['weekly'][_0xe632a8(0x142)](this[_0xe632a8(0x163)](_0x2b1162))||this['createEmptyUsage']();case _0xe632a8(0x112):return this['usage']['monthly'][_0xe632a8(0x142)](this[_0xe632a8(0x11f)](_0x2b1162))||this[_0xe632a8(0x166)]();case'total':return{...this['usage'][_0xe632a8(0x108)]};default:throw new Error(_0xe632a8(0x123)+_0x59ff7e);}}['getAgentUsage'](_0x4eb8ca,_0x138421=a0_0x167936(0x132)){const _0xb531d=this['getUsage'](_0x138421);return _0xb531d['byAgent']?.[_0x4eb8ca]||this['createEmptyUsage']();}[a0_0x167936(0x137)](_0x5bc0d7,_0x165425='daily'){const _0x1d2a95=a0_0x167936,_0x4ba1fb=this[_0x1d2a95(0x11e)](_0x165425);return _0x4ba1fb[_0x1d2a95(0x156)]?.[_0x5bc0d7]||this[_0x1d2a95(0x166)]();}[a0_0x167936(0x120)](_0x32ea5b){const _0xe9882f=a0_0x167936;if(_0x32ea5b['daily']!==undefined)this[_0xe9882f(0x14f)][_0xe9882f(0x132)]=_0x32ea5b['daily'];if(_0x32ea5b[_0xe9882f(0x14c)]!==undefined)this['budgets'][_0xe9882f(0x14c)]=_0x32ea5b[_0xe9882f(0x14c)];if(_0x32ea5b['monthly']!==undefined)this[_0xe9882f(0x14f)]['monthly']=_0x32ea5b[_0xe9882f(0x112)];this['logger']['info']('Budget\x20limits\x20updated',this['budgets']),this[_0xe9882f(0x136)]();}['getRemainingBudget'](){const _0x331b15=a0_0x167936,_0x81f72=new Date(),_0x174f2e=this[_0x331b15(0x11e)](_0x331b15(0x132),_0x81f72),_0x6a5d27=this['getUsage']('weekly',_0x81f72),_0x1bfad6=this['getUsage'](_0x331b15(0x112),_0x81f72);return{'daily':Math[_0x331b15(0x151)](0x0,this[_0x331b15(0x14f)][_0x331b15(0x132)]-_0x174f2e[_0x331b15(0x118)]),'weekly':Math['max'](0x0,this[_0x331b15(0x14f)]['weekly']-_0x6a5d27['cost']),'monthly':Math[_0x331b15(0x151)](0x0,this[_0x331b15(0x14f)]['monthly']-_0x1bfad6[_0x331b15(0x118)])};}[a0_0x167936(0x114)](_0xfca345='daily'){const _0x15bb45=this['getUsage'](_0xfca345),_0x58d7d2=this['budgets'][_0xfca345];return _0x15bb45['cost']<=_0x58d7d2;}['getUsageTrends'](_0x36401f=0x1e){const _0x3ff1ae=a0_0x167936,_0x84684a={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x157940=new Date();let _0x537e1c=0x0,_0x9c848f=0x0,_0x59e8f1=0x0;const _0x889db5=new Map(),_0x204878=new Map();for(let _0x4663eb=0x0;_0x4663eb<_0x36401f;_0x4663eb++){const _0x5d89a0=new Date(_0x157940);_0x5d89a0['setDate'](_0x5d89a0['getDate']()-_0x4663eb);const _0x2d2eca=this[_0x3ff1ae(0x110)](_0x5d89a0),_0x1bd3c5=this[_0x3ff1ae(0x145)][_0x3ff1ae(0x132)][_0x3ff1ae(0x142)](_0x2d2eca);_0x1bd3c5?(_0x537e1c+=_0x1bd3c5['cost'],_0x9c848f+=_0x1bd3c5[_0x3ff1ae(0x130)],_0x59e8f1+=_0x1bd3c5['requests'],_0x84684a['costByDay'][_0x3ff1ae(0x140)]({'date':_0x2d2eca,'cost':_0x1bd3c5['cost']}),_0x84684a[_0x3ff1ae(0x11a)]['unshift']({'date':_0x2d2eca,'tokens':_0x1bd3c5[_0x3ff1ae(0x130)]}),Object['entries'](_0x1bd3c5['byAgent']||{})[_0x3ff1ae(0x13a)](([_0xd9946c,_0x591ede])=>{const _0x3b60be=_0x3ff1ae;!_0x889db5[_0x3b60be(0x161)](_0xd9946c)&&_0x889db5['set'](_0xd9946c,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x3d8ee2=_0x889db5['get'](_0xd9946c);_0x3d8ee2['cost']+=_0x591ede[_0x3b60be(0x118)],_0x3d8ee2[_0x3b60be(0x130)]+=_0x591ede[_0x3b60be(0x130)],_0x3d8ee2['requests']+=_0x591ede[_0x3b60be(0x134)];}),Object['entries'](_0x1bd3c5['byModel']||{})['forEach'](([_0x2c67e2,_0x32ce0d])=>{const _0xf00126=_0x3ff1ae;!_0x204878[_0xf00126(0x161)](_0x2c67e2)&&_0x204878['set'](_0x2c67e2,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x4353d8=_0x204878['get'](_0x2c67e2);_0x4353d8['cost']+=_0x32ce0d['cost'],_0x4353d8['tokens']+=_0x32ce0d[_0xf00126(0x130)],_0x4353d8['requests']+=_0x32ce0d['requests'];})):(_0x84684a['costByDay'][_0x3ff1ae(0x140)]({'date':_0x2d2eca,'cost':0x0}),_0x84684a['tokensByDay'][_0x3ff1ae(0x140)]({'date':_0x2d2eca,'tokens':0x0}));}return _0x84684a[_0x3ff1ae(0x159)]['cost']=_0x537e1c/_0x36401f,_0x84684a['dailyAverages']['tokens']=_0x9c848f/_0x36401f,_0x84684a[_0x3ff1ae(0x159)]['requests']=_0x59e8f1/_0x36401f,_0x84684a[_0x3ff1ae(0x12f)]=Array['from'](_0x889db5[_0x3ff1ae(0x10a)]())[_0x3ff1ae(0x169)](([_0x39a2b5,_0x208b36])=>({'id':_0x39a2b5,..._0x208b36}))[_0x3ff1ae(0x12d)]((_0x4ba363,_0x52c74a)=>_0x52c74a[_0x3ff1ae(0x118)]-_0x4ba363[_0x3ff1ae(0x118)])['slice'](0x0,0xa),_0x84684a[_0x3ff1ae(0x124)]=Array[_0x3ff1ae(0x15f)](_0x204878['entries']())[_0x3ff1ae(0x169)](([_0x23794c,_0x2ee03e])=>({'id':_0x23794c,..._0x2ee03e}))[_0x3ff1ae(0x12d)]((_0x38a683,_0x155f6a)=>_0x155f6a[_0x3ff1ae(0x118)]-_0x38a683['cost'])[_0x3ff1ae(0x15c)](0x0,0xa),_0x84684a;}[a0_0x167936(0x10b)](_0x96331e='json',_0x1eab0b=null,_0x48d655=null){const _0x1abda9=a0_0x167936,_0x1d6f06={'budgets':this[_0x1abda9(0x14f)],'total':this[_0x1abda9(0x145)]['total'],'daily':{},'weekly':{},'monthly':{}},_0xb17006=(_0x35f91e,_0x2667ea)=>{const _0x298c36=_0x1abda9,_0x49837e={};return _0x35f91e[_0x298c36(0x13a)]((_0x525b16,_0x3e9a0f)=>{const _0x495082=_0x2667ea(_0x3e9a0f);(!_0x1eab0b||_0x495082>=_0x1eab0b)&&(!_0x48d655||_0x495082<=_0x48d655)&&(_0x49837e[_0x3e9a0f]=_0x525b16);}),_0x49837e;};_0x1eab0b||_0x48d655?(_0x1d6f06[_0x1abda9(0x132)]=_0xb17006(this[_0x1abda9(0x145)][_0x1abda9(0x132)],_0x2f6805=>new Date(_0x2f6805)),_0x1d6f06['weekly']=_0xb17006(this['usage']['weekly'],_0x596201=>new Date(_0x596201)),_0x1d6f06['monthly']=_0xb17006(this[_0x1abda9(0x145)]['monthly'],_0x420e69=>new Date(_0x420e69+_0x1abda9(0x146)))):(this[_0x1abda9(0x145)]['daily']['forEach']((_0x229476,_0x224562)=>_0x1d6f06['daily'][_0x224562]=_0x229476),this[_0x1abda9(0x145)][_0x1abda9(0x14c)][_0x1abda9(0x13a)]((_0x59819c,_0x23929d)=>_0x1d6f06[_0x1abda9(0x14c)][_0x23929d]=_0x59819c),this['usage']['monthly'][_0x1abda9(0x13a)]((_0x33ae32,_0x5aeb70)=>_0x1d6f06[_0x1abda9(0x112)][_0x5aeb70]=_0x33ae32));if(_0x96331e===_0x1abda9(0x119))return this[_0x1abda9(0x12c)](_0x1d6f06);return JSON['stringify'](_0x1d6f06,null,0x2);}[a0_0x167936(0x13c)](_0x206e3c,_0x3fdf4d){const _0x210ec8=a0_0x167936;!_0x206e3c[_0x210ec8(0x161)](_0x3fdf4d)&&_0x206e3c['set'](_0x3fdf4d,this['createEmptyUsage']());}[a0_0x167936(0x166)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x35b9bd,_0x4b6c78){const _0x94ed95=a0_0x167936;_0x35b9bd['cost']+=_0x4b6c78[_0x94ed95(0x118)],_0x35b9bd['tokens']+=_0x4b6c78[_0x94ed95(0x130)],_0x35b9bd['requests']+=0x1,!_0x35b9bd[_0x94ed95(0x14b)][_0x4b6c78[_0x94ed95(0x165)]]&&(_0x35b9bd['byAgent'][_0x4b6c78['agentId']]=this['createEmptyUsage']()),_0x35b9bd['byAgent'][_0x4b6c78[_0x94ed95(0x165)]][_0x94ed95(0x118)]+=_0x4b6c78['cost'],_0x35b9bd['byAgent'][_0x4b6c78[_0x94ed95(0x165)]][_0x94ed95(0x130)]+=_0x4b6c78[_0x94ed95(0x130)],_0x35b9bd['byAgent'][_0x4b6c78[_0x94ed95(0x165)]]['requests']+=0x1,!_0x35b9bd['byModel'][_0x4b6c78[_0x94ed95(0x138)]]&&(_0x35b9bd[_0x94ed95(0x156)][_0x4b6c78[_0x94ed95(0x138)]]=this[_0x94ed95(0x166)]()),_0x35b9bd[_0x94ed95(0x156)][_0x4b6c78['modelId']]['cost']+=_0x4b6c78[_0x94ed95(0x118)],_0x35b9bd['byModel'][_0x4b6c78['modelId']]['tokens']+=_0x4b6c78['tokens'],_0x35b9bd['byModel'][_0x4b6c78['modelId']]['requests']+=0x1;}['checkBudgetLimits'](_0x32e062,_0x5a2fce,_0x5556e9){const _0x56ec34=a0_0x167936,_0x3a8e1a=this[_0x56ec34(0x145)]['daily']['get'](_0x32e062),_0x2daa24=this[_0x56ec34(0x145)][_0x56ec34(0x14c)][_0x56ec34(0x142)](_0x5a2fce),_0x6785e1=this['usage']['monthly'][_0x56ec34(0x142)](_0x5556e9);_0x3a8e1a[_0x56ec34(0x118)]>this['budgets']['daily']&&this['sendBudgetAlert'](_0x56ec34(0x132),_0x3a8e1a['cost'],this[_0x56ec34(0x14f)][_0x56ec34(0x132)]),_0x2daa24[_0x56ec34(0x118)]>this[_0x56ec34(0x14f)][_0x56ec34(0x14c)]&&this['sendBudgetAlert']('weekly',_0x2daa24[_0x56ec34(0x118)],this[_0x56ec34(0x14f)]['weekly']),_0x6785e1['cost']>this[_0x56ec34(0x14f)]['monthly']&&this[_0x56ec34(0x12e)](_0x56ec34(0x112),_0x6785e1['cost'],this['budgets'][_0x56ec34(0x112)]),this[_0x56ec34(0x13d)](_0x3a8e1a,_0x2daa24,_0x6785e1);}['checkThresholdAlerts'](_0x2eacbb,_0x52ee3b,_0x1b1416){const _0x8c0967=a0_0x167936,_0x13abaa=this['alerts'][_0x8c0967(0x150)];this[_0x8c0967(0x15e)](_0x8c0967(0x132),_0x2eacbb[_0x8c0967(0x118)],this['budgets']['daily'],_0x13abaa),this['checkThreshold'](_0x8c0967(0x14c),_0x52ee3b[_0x8c0967(0x118)],this['budgets'][_0x8c0967(0x14c)],_0x13abaa),this['checkThreshold']('monthly',_0x1b1416['cost'],this['budgets'][_0x8c0967(0x112)],_0x13abaa);}['checkThreshold'](_0x5004a3,_0x57be5,_0x40bdbe,_0x523658){const _0x36cc98=a0_0x167936,_0x48bcf7=_0x57be5/_0x40bdbe*0x64;for(const _0x37dc92 of _0x523658){if(_0x48bcf7>=_0x37dc92){const _0x380abb=_0x5004a3+'_'+_0x37dc92,_0x60d6cd=this[_0x36cc98(0x15a)][_0x36cc98(0x116)]['get'](_0x380abb),_0x188fe9=Date[_0x36cc98(0x152)]();(!_0x60d6cd||_0x188fe9-_0x60d6cd>0x36ee80)&&(this[_0x36cc98(0x121)](_0x5004a3,_0x48bcf7,_0x37dc92,_0x57be5,_0x40bdbe),this['alerts']['lastAlertTimes'][_0x36cc98(0x144)](_0x380abb,_0x188fe9));break;}}}[a0_0x167936(0x12e)](_0x2bf5b4,_0x2c7a0d,_0x4bf88a){const _0x2071d6=a0_0x167936;this['logger']['warn'](_0x2071d6(0x11b),{'period':_0x2bf5b4,'currentUsage':_0x2c7a0d,'budgetLimit':_0x4bf88a,'excess':_0x2c7a0d-_0x4bf88a}),typeof process!=='undefined'&&process[_0x2071d6(0x162)]&&process[_0x2071d6(0x162)](_0x2071d6(0x10c),{'type':'budget_exceeded','period':_0x2bf5b4,'currentUsage':_0x2c7a0d,'budgetLimit':_0x4bf88a,'excess':_0x2c7a0d-_0x4bf88a});}[a0_0x167936(0x121)](_0x4c7685,_0x19b34f,_0x115194,_0x1092ce,_0x20aba8){const _0x526d06=a0_0x167936;this[_0x526d06(0x155)]['warn']('Budget\x20threshold\x20reached',{'period':_0x4c7685,'percentage':Math['round'](_0x19b34f),'threshold':_0x115194,'usage':_0x1092ce,'budget':_0x20aba8}),typeof process!=='undefined'&&process[_0x526d06(0x162)]&&process[_0x526d06(0x162)](_0x526d06(0x10c),{'type':_0x526d06(0x13f),'period':_0x4c7685,'percentage':Math[_0x526d06(0x167)](_0x19b34f),'threshold':_0x115194,'usage':_0x1092ce,'budget':_0x20aba8});}[a0_0x167936(0x110)](_0x5205c3){const _0x410659=a0_0x167936;return _0x5205c3['toISOString']()[_0x410659(0x15d)]('T')[0x0];}['getWeekKey'](_0x446dce){const _0x5cc177=a0_0x167936,_0x33fde0=_0x446dce['getFullYear'](),_0x480403=this['getWeekNumber'](_0x446dce);return _0x33fde0+'-W'+_0x480403[_0x5cc177(0x153)]()['padStart'](0x2,'0');}[a0_0x167936(0x11f)](_0x374008){const _0x1e7878=a0_0x167936,_0x23d453=_0x374008['getFullYear'](),_0x11d734=_0x374008['getMonth']()+0x1;return _0x23d453+'-'+_0x11d734[_0x1e7878(0x153)]()[_0x1e7878(0x154)](0x2,'0');}[a0_0x167936(0x13e)](_0x5cda69){const _0x284e6f=new Date(_0x5cda69['getFullYear'](),0x0,0x1),_0x412845=(_0x5cda69-_0x284e6f)/0x5265c00;return Math['ceil']((_0x412845+_0x284e6f['getDay']()+0x1)/0x7);}[a0_0x167936(0x12c)](_0x4df4f){const _0x1b083a=a0_0x167936,_0x31d96b=[];return _0x31d96b['push']([_0x1b083a(0x16a),_0x1b083a(0x10e),_0x1b083a(0x147),'Tokens',_0x1b083a(0x12b),'Agent',_0x1b083a(0x13b)]),Object['entries'](_0x4df4f['daily'])[_0x1b083a(0x13a)](([_0x50f39c,_0x1ba0ce])=>{const _0x4d2c7a=_0x1b083a;_0x31d96b[_0x4d2c7a(0x139)]([_0x4d2c7a(0x109),_0x50f39c,_0x1ba0ce['cost'],_0x1ba0ce[_0x4d2c7a(0x130)],_0x1ba0ce[_0x4d2c7a(0x134)],'','']),Object[_0x4d2c7a(0x10a)](_0x1ba0ce[_0x4d2c7a(0x14b)]||{})[_0x4d2c7a(0x13a)](([_0xe86e12,_0x3f7bfa])=>{const _0x530c2a=_0x4d2c7a;_0x31d96b['push']([_0x530c2a(0x109),_0x50f39c,_0x3f7bfa[_0x530c2a(0x118)],_0x3f7bfa[_0x530c2a(0x130)],_0x3f7bfa[_0x530c2a(0x134)],_0xe86e12,'']);});}),_0x31d96b[_0x1b083a(0x169)](_0x173610=>_0x173610[_0x1b083a(0x164)](','))['join']('\x0a');}[a0_0x167936(0x160)](){const _0x1f7458=a0_0x167936;try{this[_0x1f7458(0x155)][_0x1f7458(0x127)](_0x1f7458(0x10d));}catch(_0x1a02bc){this[_0x1f7458(0x155)][_0x1f7458(0x148)]('Failed\x20to\x20load\x20usage\x20data',{'error':_0x1a02bc['message']});}}[a0_0x167936(0x136)](){const _0x14c917=a0_0x167936;try{this[_0x14c917(0x155)][_0x14c917(0x14e)]('Usage\x20data\x20saved');}catch(_0x4f97c8){this[_0x14c917(0x155)][_0x14c917(0x148)](_0x14c917(0x129),{'error':_0x4f97c8['message']});}}[a0_0x167936(0x143)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}function a0_0x5725(){const _0xfba01=['Bg9Nz2vY','yNLnB2rLBa','B3v0Chv0','vxnHz2uGDhjHy2TLza','zgfPBhLbDMvYywDLCW','ywXLCNrZ','D2fYBG','C2XPy2u','C3bSAxq','y2HLy2TuAhjLC2HVBgq','zNjVBq','Bg9HzfvZywDLrgf0yq','AgfZ','zw1PDa','z2v0v2vLA0TLEq','AM9PBG','ywDLBNrjza','y3jLyxrLrw1WDhLvC2fNzq','CM91BMq','y29UzMLN','BwfW','ugvYAw9K','Dg90ywW','rgfPBhK','zw50CMLLCW','zxHWB3j0vxnHz2veyxrH','yNvKz2v0qwXLCNq','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','rgf0zq','ChjVBxb0x3rVA2vUCW','z2v0rgf5s2v5','ntu4otm2A0DIC1ry','Bw9UDgHSEq','refjtfK','AxnxAxrOAw5cDwrNzxq','mtG5mJG2uePdCwLO','BgfZDefSzxj0vgLTzxm','mJqWnM91zhHeBq','y29ZDa','y3n2','Dg9Rzw5ZqNLeyxK','qNvKz2v0igXPBwL0igv4y2vLzgvK','mZvKuuHMDvG','odiZmhrcEgj2yG','z2v0vxnHz2u','z2v0tw9UDgHlzxK','C2v0qNvKz2v0CW','C2vUzfrOCMvZAg9SzefSzxj0','DhjHy2TvC2fNzq','sw52ywXPzcbWzxjPB2q6ia','Dg9Wtw9KzwXZ','mZK0mtC1mNbRwNjiEa','rMfPBgvKihrVihrYywnRihvZywDL','Aw5MBW','mZq3ntHsB29XALG','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','odCXmhjuqwfhrG','uMvXDwvZDhm','y29UDMvYDfrVq1nw','C29YDa','C2vUzej1zgDLDefSzxj0','Dg9WqwDLBNrZ','Dg9Rzw5Z','tu9oveHmwq','zgfPBhK','ndaZotyWEKXTA2DJ','CMvXDwvZDhm','mJi4oti4mKnnzMT3wq','C2f2zvvZywDLrgf0yq','z2v0tw9KzwXvC2fNzq','Bw9KzwXjza','ChvZAa','zM9YrwfJAa','tw9KzwW','Aw5PDgLHBgL6zvvZywDLrw50CNK','y2HLy2TuAhjLC2HVBgrbBgvYDhm','z2v0v2vLA051BwjLCG','DgHYzxnOB2XKx3jLywnOzwq','Dw5ZAgLMDa','Dg90ywXFDg9Rzw5Z','z2v0','C2v0DxbqzxjPB2rPy1nHDMu','C2v0','DxnHz2u','ltaX','q29ZDa','zxjYB3i','veHsrvnit0XeuW','y2fSy3vSyxrLq29ZDa','yNLbz2vUDa','D2vLA2X5','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','zgvIDwC','yNvKz2v0CW','DgHYzxnOB2XKCW','Bwf4','BM93','Dg9tDhjPBMC','CgfKu3rHCNq'];a0_0x5725=function(){return _0xfba01;};return a0_0x5725();}export default BudgetService;
|
|
1
|
+
function a0_0x1d88(){const _0x3555b5=['C2XPy2u','mtiWndCWn3fvBw5bva','yNLnB2rLBa','DxbKyxrLvxnHz2vfBNrYEq','z2v0tw9KzwXvC2fNzq','rgfPBhK','mKTSqMfRtG','C2v0','z2v0','C3rYAw5NAwz5','C2f2zvvZywDLrgf0yq','ltaX','D2fYBG','Bw9UDgHSEq','zgfPBhK','z2v0vxnHz2u','C2v0DxbqzxjPB2rPy1nHDMu','Dg9WqwDLBNrZ','BwfW','ywDLBNrjza','zgfPBhLbDMvYywDLCW','y29UDMvYDfrVq1nw','tu9oveHmwq','z2v0v2vLA0TLEq','DxnHz2u','Dg9Rzw5ZqNLeyxK','tw9KzwW','z2v0rgf0zq','Bw9KzwXjza','zM9YrwfJAa','uMvXDwvZDhm','AM9PBG','C2vUzej1zgDLDefSzxj0','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','z2v0rgf5s2v5','Bwf4','nJa2nJuXmefOtvnvCa','AgfZ','otCZnJnLv1bpDhK','Aw5PDgLHBgL6zvvZywDLrw50CNK','z2v0tw9UDgHlzxK','y2fSy3vSyxrLq29ZDa','zNjVBq','zxjYB3i','Aw5MBW','mZy4ndqWmgLUuurbyq','ugvYAw9K','Dg9Rzw5Z','zxHWB3j0vxnHz2veyxrH','ywXLCNrZ','ChvZAa','Aw5WDxq','CM91BMq','Dw5KzwzPBMvK','z2v0uMvTywLUAw5NqNvKz2v0','qwDLBNq','y3jLyxrLrw1WDhLvC2fNzq','z2v0rgf5','CMvXDwvZDhm','mtaYrg1Orhzh','v0vfs0Xz','Dg9ju09tDhjPBMC','ANnVBG','y2HLy2TuAhjLC2HVBgrbBgvYDhm','Bg9HzfvZywDLrgf0yq','mZCXntm3munsCuToyq','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','sw52ywXPzcbWzxjPB2q6ia','y29ZDej5rgf5','Bg9Nz2vY','ne9Kve14sq','Dw5ZAgLMDa','BgfZDefSzxj0vgLTzxm','C3bSAxq','z2v0rNvSBfLLyxi','zgvIDwC','vg9Rzw5Z','BM93','y29ZDa','zw1PDa','ChjVBxb0x3rVA2vUCW','qNvKz2v0igXPBwL0igv4y2vLzgvK','yNLbz2vUDa','D2vLA2X5','yNvKz2v0CW','ndm3mtz5BhjgwKq','vxnHz2uGzgf0ysbZyxzLza','Dg90ywW','zw50CMLLCW','mZe5odi0twj5zvrO'];a0_0x1d88=function(){return _0x3555b5;};return a0_0x1d88();}const a0_0x19b1a7=a0_0x5a35;(function(_0x31ae1b,_0x648c14){const _0x4d9c10=a0_0x5a35,_0x3e8295=_0x31ae1b();while(!![]){try{const _0x5e20cf=parseInt(_0x4d9c10(0x1ac))/0x1*(parseInt(_0x4d9c10(0x1a1))/0x2)+parseInt(_0x4d9c10(0x1a7))/0x3*(-parseInt(_0x4d9c10(0x192))/0x4)+parseInt(_0x4d9c10(0x179))/0x5+parseInt(_0x4d9c10(0x187))/0x6*(-parseInt(_0x4d9c10(0x172))/0x7)+parseInt(_0x4d9c10(0x1a5))/0x8+-parseInt(_0x4d9c10(0x18d))/0x9+parseInt(_0x4d9c10(0x170))/0xa;if(_0x5e20cf===_0x648c14)break;else _0x3e8295['push'](_0x3e8295['shift']());}catch(_0x5ab7a2){_0x3e8295['push'](_0x3e8295['shift']());}}}(a0_0x1d88,0x5be40));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x5a35(_0x58875f,_0x23a8ca){_0x58875f=_0x58875f-0x162;const _0x1d88e4=a0_0x1d88();let _0x5a35a2=_0x1d88e4[_0x58875f];if(a0_0x5a35['mXEZQi']===undefined){var _0x3a6a79=function(_0x25be76){const _0x19b11b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x261a12='',_0x3b7c8c='';for(let _0x5078b5=0x0,_0x4553d5,_0x3c689e,_0x3bcd59=0x0;_0x3c689e=_0x25be76['charAt'](_0x3bcd59++);~_0x3c689e&&(_0x4553d5=_0x5078b5%0x4?_0x4553d5*0x40+_0x3c689e:_0x3c689e,_0x5078b5++%0x4)?_0x261a12+=String['fromCharCode'](0xff&_0x4553d5>>(-0x2*_0x5078b5&0x6)):0x0){_0x3c689e=_0x19b11b['indexOf'](_0x3c689e);}for(let _0x2ca803=0x0,_0x46799c=_0x261a12['length'];_0x2ca803<_0x46799c;_0x2ca803++){_0x3b7c8c+='%'+('00'+_0x261a12['charCodeAt'](_0x2ca803)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b7c8c);};a0_0x5a35['LPRywt']=_0x3a6a79,a0_0x5a35['fouxri']={},a0_0x5a35['mXEZQi']=!![];}const _0x4e3d2b=_0x1d88e4[0x0],_0x35e099=_0x58875f+_0x4e3d2b,_0xaec2ff=a0_0x5a35['fouxri'][_0x35e099];return!_0xaec2ff?(_0x5a35a2=a0_0x5a35['LPRywt'](_0x5a35a2),a0_0x5a35['fouxri'][_0x35e099]=_0x5a35a2):_0x5a35a2=_0xaec2ff,_0x5a35a2;}export class BudgetService{constructor(_0x261a12,_0x3b7c8c){const _0x86ee32=a0_0x5a35;this['config']=_0x261a12||{},this[_0x86ee32(0x191)]=_0x3b7c8c,this[_0x86ee32(0x164)]={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x86ee32(0x1a0)]={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS[_0x86ee32(0x188)],'monthly':BUDGET_LIMITS[_0x86ee32(0x162)]},this[_0x86ee32(0x17d)]={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x86ee32(0x1b6)]();}['trackUsage'](_0x5078b5,_0x4553d5,_0x3c689e){const _0x37dbd5=a0_0x5a35;try{const _0x3bcd59=this[_0x37dbd5(0x175)](_0x4553d5,_0x3c689e),_0x2ca803=new Date(),_0x46799c=this[_0x37dbd5(0x16e)](_0x2ca803),_0x51701e=this[_0x37dbd5(0x163)](_0x2ca803),_0x664547=this[_0x37dbd5(0x174)](_0x2ca803);this[_0x37dbd5(0x173)](this['usage']['daily'],_0x46799c),this[_0x37dbd5(0x173)](this['usage']['weekly'],_0x51701e),this['initializeUsageEntry'](this['usage'][_0x37dbd5(0x1b3)],_0x664547);const _0xc15070={'agentId':_0x5078b5,'modelId':_0x4553d5,'tokens':_0x3c689e['total_tokens'],'cost':_0x3bcd59,'timestamp':_0x2ca803['toISOString']()};return this['updateUsageEntry'](this[_0x37dbd5(0x164)]['daily']['get'](_0x46799c),_0xc15070),this['updateUsageEntry'](this['usage']['weekly']['get'](_0x51701e),_0xc15070),this[_0x37dbd5(0x1a9)](this['usage']['monthly']['get'](_0x664547),_0xc15070),this[_0x37dbd5(0x164)]['total'][_0x37dbd5(0x17b)]+=_0x3c689e['total_tokens'],this[_0x37dbd5(0x164)]['total']['cost']+=_0x3bcd59,this['usage']['total'][_0x37dbd5(0x186)]+=0x1,this['checkBudgetLimits'](_0x46799c,_0x51701e,_0x664547),this[_0x37dbd5(0x191)]['info']('Usage\x20tracked',{'agentId':_0x5078b5,'modelId':_0x4553d5,'tokens':_0x3c689e['total_tokens'],'cost':_0x3bcd59,'totalCost':this['usage']['total'][_0x37dbd5(0x19a)]}),{'cost':_0x3bcd59,'totalCost':this['usage'][_0x37dbd5(0x1a3)]['cost'],'totalTokens':this[_0x37dbd5(0x164)][_0x37dbd5(0x1a3)][_0x37dbd5(0x17b)],'dailyUsage':this['usage']['daily']['get'](_0x46799c),'budgetRemaining':this[_0x37dbd5(0x182)]()};}catch(_0x38e2d7){this[_0x37dbd5(0x191)]['error']('Failed\x20to\x20track\x20usage',{'error':_0x38e2d7['message'],'agentId':_0x5078b5,'modelId':_0x4553d5});throw _0x38e2d7;}}['calculateCost'](_0x3b82aa,_0x60ce1e){const _0x229a9f=a0_0x5a35,_0x1f8522=COST_PER_TOKEN[_0x3b82aa];if(!_0x1f8522)return this['logger']['warn']('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x3b82aa}),0x0;const _0x8c95e=(_0x60ce1e[_0x229a9f(0x19c)]||0x0)*_0x1f8522[_0x229a9f(0x17f)],_0x3d37a1=(_0x60ce1e['completion_tokens']||0x0)*_0x1f8522['output'];return _0x8c95e+_0x3d37a1;}['getUsage'](_0x45fb3a=a0_0x19b1a7(0x1b4),_0x23db96=new Date()){const _0x4b324c=a0_0x19b1a7;switch(_0x45fb3a){case _0x4b324c(0x1b4):return this['usage'][_0x4b324c(0x1b4)][_0x4b324c(0x1ae)](this[_0x4b324c(0x16e)](_0x23db96))||this['createEmptyUsage']();case _0x4b324c(0x19f):return this[_0x4b324c(0x164)]['weekly']['get'](this[_0x4b324c(0x163)](_0x23db96))||this[_0x4b324c(0x184)]();case'monthly':return this['usage']['monthly'][_0x4b324c(0x1ae)](this[_0x4b324c(0x174)](_0x23db96))||this[_0x4b324c(0x184)]();case'total':return{...this['usage'][_0x4b324c(0x1a3)]};default:throw new Error(_0x4b324c(0x18f)+_0x45fb3a);}}['getAgentUsage'](_0x176d8f,_0x5e5296=a0_0x19b1a7(0x1b4)){const _0x37f4d3=a0_0x19b1a7,_0x1138b7=this[_0x37f4d3(0x1b5)](_0x5e5296);return _0x1138b7[_0x37f4d3(0x19e)]?.[_0x176d8f]||this[_0x37f4d3(0x184)]();}[a0_0x19b1a7(0x1aa)](_0x496bfd,_0x29bcb4='daily'){const _0x120659=a0_0x19b1a7,_0x1086ba=this['getUsage'](_0x29bcb4);return _0x1086ba[_0x120659(0x1a8)]?.[_0x496bfd]||this['createEmptyUsage']();}['setBudgets'](_0x45ee38){const _0x5e365f=a0_0x19b1a7;if(_0x45ee38['daily']!==undefined)this['budgets']['daily']=_0x45ee38['daily'];if(_0x45ee38[_0x5e365f(0x19f)]!==undefined)this['budgets']['weekly']=_0x45ee38[_0x5e365f(0x19f)];if(_0x45ee38[_0x5e365f(0x1b3)]!==undefined)this[_0x5e365f(0x1a0)]['monthly']=_0x45ee38['monthly'];this['logger'][_0x5e365f(0x178)]('Budget\x20limits\x20updated',this['budgets']),this[_0x5e365f(0x1b0)]();}['getRemainingBudget'](){const _0x43c73c=a0_0x19b1a7,_0x841d8a=new Date(),_0x4ce638=this['getUsage']('daily',_0x841d8a),_0x3ca998=this[_0x43c73c(0x1b5)]('weekly',_0x841d8a),_0x475140=this['getUsage'](_0x43c73c(0x1b3),_0x841d8a);return{'daily':Math['max'](0x0,this['budgets'][_0x43c73c(0x1b4)]-_0x4ce638[_0x43c73c(0x19a)]),'weekly':Math[_0x43c73c(0x16f)](0x0,this['budgets']['weekly']-_0x3ca998[_0x43c73c(0x19a)]),'monthly':Math['max'](0x0,this['budgets']['monthly']-_0x475140['cost'])};}['isWithinBudget'](_0x5d113c=a0_0x19b1a7(0x1b4)){const _0x36f935=a0_0x19b1a7,_0x2d7582=this['getUsage'](_0x5d113c),_0x316801=this[_0x36f935(0x1a0)][_0x5d113c];return _0x2d7582['cost']<=_0x316801;}['getUsageTrends'](_0xe12892=0x1e){const _0x5df2ac=a0_0x19b1a7,_0x12395e={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x42fddf=new Date();let _0x3c9439=0x0,_0x20b403=0x0,_0x4061c0=0x0;const _0x3e9f5b=new Map(),_0x23d56f=new Map();for(let _0x96e447=0x0;_0x96e447<_0xe12892;_0x96e447++){const _0x1f1773=new Date(_0x42fddf);_0x1f1773['setDate'](_0x1f1773[_0x5df2ac(0x167)]()-_0x96e447);const _0x490e09=this[_0x5df2ac(0x16e)](_0x1f1773),_0x1203fd=this[_0x5df2ac(0x164)][_0x5df2ac(0x1b4)][_0x5df2ac(0x1ae)](_0x490e09);_0x1203fd?(_0x3c9439+=_0x1203fd[_0x5df2ac(0x19a)],_0x20b403+=_0x1203fd[_0x5df2ac(0x17b)],_0x4061c0+=_0x1203fd['requests'],_0x12395e[_0x5df2ac(0x190)]['unshift']({'date':_0x490e09,'cost':_0x1203fd['cost']}),_0x12395e['tokensByDay'][_0x5df2ac(0x193)]({'date':_0x490e09,'tokens':_0x1203fd[_0x5df2ac(0x17b)]}),Object['entries'](_0x1203fd['byAgent']||{})[_0x5df2ac(0x169)](([_0x548103,_0x363b6d])=>{const _0x38fdc7=_0x5df2ac;!_0x3e9f5b['has'](_0x548103)&&_0x3e9f5b[_0x38fdc7(0x1ad)](_0x548103,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x5d2bbd=_0x3e9f5b[_0x38fdc7(0x1ae)](_0x548103);_0x5d2bbd[_0x38fdc7(0x19a)]+=_0x363b6d['cost'],_0x5d2bbd[_0x38fdc7(0x17b)]+=_0x363b6d[_0x38fdc7(0x17b)],_0x5d2bbd['requests']+=_0x363b6d['requests'];}),Object['entries'](_0x1203fd['byModel']||{})[_0x5df2ac(0x169)](([_0x58aacb,_0xb083d1])=>{const _0x113287=_0x5df2ac;!_0x23d56f[_0x113287(0x171)](_0x58aacb)&&_0x23d56f['set'](_0x58aacb,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x18129c=_0x23d56f[_0x113287(0x1ae)](_0x58aacb);_0x18129c['cost']+=_0xb083d1['cost'],_0x18129c['tokens']+=_0xb083d1['tokens'],_0x18129c['requests']+=_0xb083d1[_0x113287(0x186)];})):(_0x12395e['costByDay'][_0x5df2ac(0x193)]({'date':_0x490e09,'cost':0x0}),_0x12395e[_0x5df2ac(0x165)]['unshift']({'date':_0x490e09,'tokens':0x0}));}return _0x12395e[_0x5df2ac(0x1ba)][_0x5df2ac(0x19a)]=_0x3c9439/_0xe12892,_0x12395e[_0x5df2ac(0x1ba)][_0x5df2ac(0x17b)]=_0x20b403/_0xe12892,_0x12395e['dailyAverages'][_0x5df2ac(0x186)]=_0x4061c0/_0xe12892,_0x12395e[_0x5df2ac(0x1b7)]=Array[_0x5df2ac(0x176)](_0x3e9f5b[_0x5df2ac(0x1a4)]())['map'](([_0x142995,_0x2fcc80])=>({'id':_0x142995,..._0x2fcc80}))['sort']((_0x1515c2,_0x408a7e)=>_0x408a7e[_0x5df2ac(0x19a)]-_0x1515c2['cost'])[_0x5df2ac(0x1a6)](0x0,0xa),_0x12395e['topModels']=Array['from'](_0x23d56f[_0x5df2ac(0x1a4)]())['map'](([_0x118529,_0x46f267])=>({'id':_0x118529,..._0x46f267}))['sort']((_0x4ef913,_0x1d7681)=>_0x1d7681['cost']-_0x4ef913['cost'])[_0x5df2ac(0x1a6)](0x0,0xa),_0x12395e;}[a0_0x19b1a7(0x17c)](_0x1b6a86=a0_0x19b1a7(0x18a),_0x4e6de0=null,_0x30a28c=null){const _0x87f3ad=a0_0x19b1a7,_0x4425ba={'budgets':this['budgets'],'total':this['usage'][_0x87f3ad(0x1a3)],'daily':{},'weekly':{},'monthly':{}},_0x3fdbd3=(_0x4654e5,_0x32208c)=>{const _0x2b4bf1=_0x87f3ad,_0x553b4e={};return _0x4654e5[_0x2b4bf1(0x169)]((_0x3fa595,_0x58d756)=>{const _0x698f20=_0x32208c(_0x58d756);(!_0x4e6de0||_0x698f20>=_0x4e6de0)&&(!_0x30a28c||_0x698f20<=_0x30a28c)&&(_0x553b4e[_0x58d756]=_0x3fa595);}),_0x553b4e;};_0x4e6de0||_0x30a28c?(_0x4425ba['daily']=_0x3fdbd3(this[_0x87f3ad(0x164)]['daily'],_0x34a4c9=>new Date(_0x34a4c9)),_0x4425ba['weekly']=_0x3fdbd3(this['usage'][_0x87f3ad(0x19f)],_0x1c8ce4=>new Date(_0x1c8ce4)),_0x4425ba[_0x87f3ad(0x1b3)]=_0x3fdbd3(this['usage']['monthly'],_0x5f3840=>new Date(_0x5f3840+_0x87f3ad(0x1b1)))):(this['usage'][_0x87f3ad(0x1b4)]['forEach']((_0x469a43,_0x305379)=>_0x4425ba[_0x87f3ad(0x1b4)][_0x305379]=_0x469a43),this[_0x87f3ad(0x164)]['weekly'][_0x87f3ad(0x169)]((_0x1fed44,_0x209e9c)=>_0x4425ba[_0x87f3ad(0x19f)][_0x209e9c]=_0x1fed44),this['usage'][_0x87f3ad(0x1b3)]['forEach']((_0x52a632,_0x1726dd)=>_0x4425ba[_0x87f3ad(0x1b3)][_0x1726dd]=_0x52a632));if(_0x1b6a86==='csv')return this['convertToCSV'](_0x4425ba);return JSON[_0x87f3ad(0x1af)](_0x4425ba,null,0x2);}['initializeUsageEntry'](_0xa0bc5d,_0xc7aeb1){const _0x3ef504=a0_0x19b1a7;!_0xa0bc5d['has'](_0xc7aeb1)&&_0xa0bc5d[_0x3ef504(0x1ad)](_0xc7aeb1,this[_0x3ef504(0x184)]());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x19b1a7(0x1a9)](_0x26f794,_0x1a153b){const _0x8cb960=a0_0x19b1a7;_0x26f794['cost']+=_0x1a153b[_0x8cb960(0x19a)],_0x26f794[_0x8cb960(0x17b)]+=_0x1a153b[_0x8cb960(0x17b)],_0x26f794[_0x8cb960(0x186)]+=0x1,!_0x26f794[_0x8cb960(0x19e)][_0x1a153b['agentId']]&&(_0x26f794[_0x8cb960(0x19e)][_0x1a153b[_0x8cb960(0x1b9)]]=this['createEmptyUsage']()),_0x26f794[_0x8cb960(0x19e)][_0x1a153b['agentId']]['cost']+=_0x1a153b['cost'],_0x26f794['byAgent'][_0x1a153b[_0x8cb960(0x1b9)]][_0x8cb960(0x17b)]+=_0x1a153b['tokens'],_0x26f794['byAgent'][_0x1a153b[_0x8cb960(0x1b9)]][_0x8cb960(0x186)]+=0x1,!_0x26f794[_0x8cb960(0x1a8)][_0x1a153b['modelId']]&&(_0x26f794[_0x8cb960(0x1a8)][_0x1a153b['modelId']]=this[_0x8cb960(0x184)]()),_0x26f794['byModel'][_0x1a153b[_0x8cb960(0x168)]][_0x8cb960(0x19a)]+=_0x1a153b['cost'],_0x26f794[_0x8cb960(0x1a8)][_0x1a153b['modelId']][_0x8cb960(0x17b)]+=_0x1a153b[_0x8cb960(0x17b)],_0x26f794[_0x8cb960(0x1a8)][_0x1a153b['modelId']][_0x8cb960(0x186)]+=0x1;}['checkBudgetLimits'](_0x2a90ad,_0x228284,_0x51341f){const _0x543cc2=a0_0x19b1a7,_0x42fd09=this['usage'][_0x543cc2(0x1b4)]['get'](_0x2a90ad),_0x5c8dec=this[_0x543cc2(0x164)]['weekly']['get'](_0x228284),_0x140aa7=this['usage']['monthly']['get'](_0x51341f);_0x42fd09['cost']>this['budgets'][_0x543cc2(0x1b4)]&&this[_0x543cc2(0x16c)]('daily',_0x42fd09['cost'],this['budgets'][_0x543cc2(0x1b4)]),_0x5c8dec['cost']>this['budgets']['weekly']&&this[_0x543cc2(0x16c)](_0x543cc2(0x19f),_0x5c8dec[_0x543cc2(0x19a)],this['budgets']['weekly']),_0x140aa7[_0x543cc2(0x19a)]>this['budgets']['monthly']&&this[_0x543cc2(0x16c)](_0x543cc2(0x1b3),_0x140aa7[_0x543cc2(0x19a)],this['budgets']['monthly']),this[_0x543cc2(0x18b)](_0x42fd09,_0x5c8dec,_0x140aa7);}[a0_0x19b1a7(0x18b)](_0x27f881,_0x2bead3,_0x482b91){const _0x281d48=a0_0x19b1a7,_0x5de005=this[_0x281d48(0x17d)]['thresholds'];this['checkThreshold']('daily',_0x27f881[_0x281d48(0x19a)],this['budgets'][_0x281d48(0x1b4)],_0x5de005),this['checkThreshold']('weekly',_0x2bead3[_0x281d48(0x19a)],this['budgets'][_0x281d48(0x19f)],_0x5de005),this['checkThreshold'](_0x281d48(0x1b3),_0x482b91[_0x281d48(0x19a)],this[_0x281d48(0x1a0)]['monthly'],_0x5de005);}['checkThreshold'](_0x595608,_0x152031,_0x59be70,_0x167405){const _0x46d259=a0_0x19b1a7,_0xd4f6f5=_0x152031/_0x59be70*0x64;for(const _0xbb9d61 of _0x167405){if(_0xd4f6f5>=_0xbb9d61){const _0x882a06=_0x595608+'_'+_0xbb9d61,_0x823600=this['alerts']['lastAlertTimes']['get'](_0x882a06),_0x26819a=Date[_0x46d259(0x199)]();(!_0x823600||_0x26819a-_0x823600>0x36ee80)&&(this['sendThresholdAlert'](_0x595608,_0xd4f6f5,_0xbb9d61,_0x152031,_0x59be70),this['alerts'][_0x46d259(0x194)][_0x46d259(0x1ad)](_0x882a06,_0x26819a));break;}}}['sendBudgetAlert'](_0x2e8a3c,_0x54fae8,_0x1fde20){const _0x4a2ec1=a0_0x19b1a7;this[_0x4a2ec1(0x191)][_0x4a2ec1(0x1b2)](_0x4a2ec1(0x19d),{'period':_0x2e8a3c,'currentUsage':_0x54fae8,'budgetLimit':_0x1fde20,'excess':_0x54fae8-_0x1fde20}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':'budget_exceeded','period':_0x2e8a3c,'currentUsage':_0x54fae8,'budgetLimit':_0x1fde20,'excess':_0x54fae8-_0x1fde20});}['sendThresholdAlert'](_0x3663a7,_0x4a2c81,_0x336e82,_0x38bec4,_0x5b70e0){const _0x51a17b=a0_0x19b1a7;this['logger']['warn'](_0x51a17b(0x16d),{'period':_0x3663a7,'percentage':Math[_0x51a17b(0x180)](_0x4a2c81),'threshold':_0x336e82,'usage':_0x38bec4,'budget':_0x5b70e0}),typeof process!==_0x51a17b(0x181)&&process['emit']&&process[_0x51a17b(0x19b)]('budgetAlert',{'type':'threshold_reached','period':_0x3663a7,'percentage':Math['round'](_0x4a2c81),'threshold':_0x336e82,'usage':_0x38bec4,'budget':_0x5b70e0});}['getDayKey'](_0x5d3b0a){const _0x10d569=a0_0x19b1a7;return _0x5d3b0a[_0x10d569(0x189)]()[_0x10d569(0x195)]('T')[0x0];}[a0_0x19b1a7(0x163)](_0x2a10e8){const _0x4e27d9=a0_0x19b1a7,_0x38f19b=_0x2a10e8[_0x4e27d9(0x196)](),_0x4a572b=this['getWeekNumber'](_0x2a10e8);return _0x38f19b+'-W'+_0x4a572b['toString']()['padStart'](0x2,'0');}[a0_0x19b1a7(0x174)](_0x4176f4){const _0x28dcb5=a0_0x19b1a7,_0xbee6cd=_0x4176f4[_0x28dcb5(0x196)](),_0x4d6ce1=_0x4176f4['getMonth']()+0x1;return _0xbee6cd+'-'+_0x4d6ce1['toString']()['padStart'](0x2,'0');}['getWeekNumber'](_0x8b6213){const _0x27053e=a0_0x19b1a7,_0x569716=new Date(_0x8b6213[_0x27053e(0x196)](),0x0,0x1),_0x30111e=(_0x8b6213-_0x569716)/0x5265c00;return Math['ceil']((_0x30111e+_0x569716[_0x27053e(0x185)]()+0x1)/0x7);}[a0_0x19b1a7(0x1bb)](_0x5ab03e){const _0x6b3897=a0_0x19b1a7,_0x3ea993=[];return _0x3ea993[_0x6b3897(0x17e)]([_0x6b3897(0x17a),'Date','Cost',_0x6b3897(0x198),_0x6b3897(0x16a),_0x6b3897(0x183),_0x6b3897(0x166)]),Object[_0x6b3897(0x1a4)](_0x5ab03e[_0x6b3897(0x1b4)])[_0x6b3897(0x169)](([_0x245d14,_0x8a5aba])=>{const _0x573bf4=_0x6b3897;_0x3ea993['push'](['Daily',_0x245d14,_0x8a5aba[_0x573bf4(0x19a)],_0x8a5aba[_0x573bf4(0x17b)],_0x8a5aba[_0x573bf4(0x186)],'','']),Object['entries'](_0x8a5aba['byAgent']||{})['forEach'](([_0x38584f,_0x42bade])=>{const _0x5ea3b1=_0x573bf4;_0x3ea993['push']([_0x5ea3b1(0x1ab),_0x245d14,_0x42bade['cost'],_0x42bade['tokens'],_0x42bade[_0x5ea3b1(0x186)],_0x38584f,'']);});}),_0x3ea993[_0x6b3897(0x1b8)](_0x4f39f0=>_0x4f39f0[_0x6b3897(0x16b)](','))[_0x6b3897(0x16b)]('\x0a');}[a0_0x19b1a7(0x18c)](){const _0x5c9f3b=a0_0x19b1a7;try{this[_0x5c9f3b(0x191)][_0x5c9f3b(0x178)]('Budget\x20service\x20initialized');}catch(_0x14abea){this[_0x5c9f3b(0x191)][_0x5c9f3b(0x177)]('Failed\x20to\x20load\x20usage\x20data',{'error':_0x14abea['message']});}}['saveUsageData'](){const _0xb2222d=a0_0x19b1a7;try{this['logger'][_0xb2222d(0x197)](_0xb2222d(0x1a2));}catch(_0x2d4edc){this['logger'][_0xb2222d(0x177)](_0xb2222d(0x18e),{'error':_0x2d4edc['message']});}}['setupPeriodicSave'](){setInterval(()=>{const _0x4df0bd=a0_0x5a35;this[_0x4df0bd(0x1b0)]();},0x493e0);}}export default BudgetService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x5cc333=a0_0x2f60;function a0_0x2f60(_0x283aae,_0x2efd23){_0x283aae=_0x283aae-0x66;const _0x42b6aa=a0_0x42b6();let _0x2f604c=_0x42b6aa[_0x283aae];if(a0_0x2f60['ZhXZtW']===undefined){var _0x191bd1=function(_0x39c7ca){const _0x4e30d1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x425593='',_0x4828f3='';for(let _0x261339=0x0,_0x465f36,_0x481552,_0x50622b=0x0;_0x481552=_0x39c7ca['charAt'](_0x50622b++);~_0x481552&&(_0x465f36=_0x261339%0x4?_0x465f36*0x40+_0x481552:_0x481552,_0x261339++%0x4)?_0x425593+=String['fromCharCode'](0xff&_0x465f36>>(-0x2*_0x261339&0x6)):0x0){_0x481552=_0x4e30d1['indexOf'](_0x481552);}for(let _0x3252b3=0x0,_0xe1f7ab=_0x425593['length'];_0x3252b3<_0xe1f7ab;_0x3252b3++){_0x4828f3+='%'+('00'+_0x425593['charCodeAt'](_0x3252b3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4828f3);};a0_0x2f60['LqBnDT']=_0x191bd1,a0_0x2f60['cgVPvN']={},a0_0x2f60['ZhXZtW']=!![];}const _0x42750b=_0x42b6aa[0x0],_0x1bf86c=_0x283aae+_0x42750b,_0x3919b7=a0_0x2f60['cgVPvN'][_0x1bf86c];return!_0x3919b7?(_0x2f604c=a0_0x2f60['LqBnDT'](_0x2f604c),a0_0x2f60['cgVPvN'][_0x1bf86c]=_0x2f604c):_0x2f604c=_0x3919b7,_0x2f604c;}(function(_0x32f014,_0xbf99f7){const _0x540e3a=a0_0x2f60,_0xe61f34=_0x32f014();while(!![]){try{const _0x516c6f=-parseInt(_0x540e3a(0x7b))/0x1*(-parseInt(_0x540e3a(0x97))/0x2)+parseInt(_0x540e3a(0x88))/0x3+-parseInt(_0x540e3a(0x92))/0x4+parseInt(_0x540e3a(0x87))/0x5+parseInt(_0x540e3a(0x6e))/0x6*(-parseInt(_0x540e3a(0x82))/0x7)+-parseInt(_0x540e3a(0x78))/0x8*(-parseInt(_0x540e3a(0x83))/0x9)+-parseInt(_0x540e3a(0x81))/0xa;if(_0x516c6f===_0xbf99f7)break;else _0xe61f34['push'](_0xe61f34['shift']());}catch(_0x3710ac){_0xe61f34['push'](_0xe61f34['shift']());}}}(a0_0x42b6,0xe9170));import a0_0x425593 from'./fileAttachmentService.js';function a0_0x42b6(){const _0x290e10=['nJq0mZmZouvPyxLlCG','nJnqD2XOC3u','qNL0zxm','cJXMAwXLlxjLzMvYzw5Jzxm+cG','zM9YBwf0qNL0zxm','ota4ntKZnxbLD0T6vG','mte2ntyZoeHovgjLBW','zMLSzu5HBwu','yxr0ywnOBwvUDfnLCNzPy2u','ica8zMLSzsbUyw1Lpsi','Dg9ju09tDhjPBMC','Bw9Kzq','zxn0Aw1HDgvuB3rHBfrVA2vUCW','iIbTB2rPzMLLzd0I','pc9HDhrHy2HLzc1MAwXLCZ4k','Dg9Rzw5fC3rPBwf0zq','mJi5odq4DKzJthbf','zM9YBwf0sw1Hz2vgAwXL','zM9YBwf0vgv4DezPBgu','yNvPBgreEw5HBwLJq29UDgv4Da','zM9YBwf0ugrMrMLSzq','mZmWmti3neTmCK51vq','CMvWBgfJzq','Bg9Nz2vY','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','jMfTCdS','jNf1B3q7','BwvZC2fNzq','s0iIig1Vzgu9iMnVBNrLBNqIpGO','zMXVB3i','zM9YBwf0uMvMzxjLBMnLrMLSzq','z2v0qwn0AxzLqxr0ywnOBwvUDhm','mtjKCeXssfq','Aw5PDgLHBgL6zq','iIb0ExbLpsi','mcbcExrLCW','zM9YBwf0q29UDgvUDezPBgu','y29UDgvUDa','CMvMzxjLBMnL','zMLSDgvY','BgvUz3rO','cIaGpc9MAwXLpG','mtCWmdCYEuPsAfPs','rxjYB3iGyNvPBgrPBMCGzhLUyw1PyYbJB250zxH0','CgrM','mwDZDurdDq','Dg9gAxHLza','rxjYB3iGzxn0Aw1HDgLUzYb0B3rHBcb0B2TLBNm','zxjYB3i','zxnJyxbLwg1S','iIbZAxPLpsi','mte1mJaZmtbiv2Tvr0m'];a0_0x42b6=function(){return _0x290e10;};return a0_0x42b6();}class ContextInjectionService{constructor(_0x4828f3={},_0x261339=null){const _0x5257fa=a0_0x2f60;this['config']=_0x4828f3,this['logger']=_0x261339,this[_0x5257fa(0x8a)]=new a0_0x425593(_0x4828f3,_0x261339);}async[a0_0x5cc333(0x6f)](){const _0x22d3c9=a0_0x5cc333;await this[_0x22d3c9(0x8a)][_0x22d3c9(0x6f)]();}async[a0_0x5cc333(0x95)](_0x465f36){const _0x276151=a0_0x5cc333;try{const _0x481552=await this['attachmentService'][_0x276151(0x6d)](_0x465f36);if(_0x481552[_0x276151(0x76)]===0x0)return'';const _0x50622b=_0x481552[_0x276151(0x75)](_0x7cb6ee=>_0x7cb6ee[_0x276151(0x8d)]===_0x276151(0x73)),_0x3252b3=_0x481552[_0x276151(0x75)](_0x1b3ade=>_0x1b3ade[_0x276151(0x8d)]===_0x276151(0x74));let _0xe1f7ab='';if(_0x50622b[_0x276151(0x76)]>0x0){_0xe1f7ab+='\x0a<attached-files>\x0a';for(const _0x4b8f8d of _0x50622b){const _0x21622d=await this[_0x276151(0x8a)]['getAttachmentContent'](_0x4b8f8d['fileId']);if(_0x21622d){const _0x171546=this['formatContentFile'](_0x4b8f8d,_0x21622d);_0xe1f7ab+=_0x171546+'\x0a';}}_0xe1f7ab+=_0x276151(0x90);}if(_0x3252b3[_0x276151(0x76)]>0x0){_0xe1f7ab+=_0x276151(0x85);for(const _0x2e9b6b of _0x3252b3){const _0x21039d=this[_0x276151(0x6c)](_0x2e9b6b);_0xe1f7ab+=_0x21039d+'\x0a';}_0xe1f7ab+='</file-references>\x0a',_0xe1f7ab+=_0x276151(0x66);}return _0xe1f7ab;}catch(_0x18759c){return this['logger']?.[_0x276151(0x7e)](_0x276151(0x79),{'agentId':_0x465f36,'error':_0x18759c['message']}),'';}}[a0_0x5cc333(0x72)](_0xc9ab29,_0x5d654a){const _0x5982e2=a0_0x5cc333,{fileName:_0x218522,fileType:_0x4036ab,size:_0x15c973,contentType:_0x28f727}=_0xc9ab29,_0x5c87dc=(_0x15c973/0x400)['toFixed'](0x2);if(_0x28f727==='text')return this['formatTextFile'](_0xc9ab29,_0x5d654a);else{if(_0x28f727==='image')return this[_0x5982e2(0x93)](_0xc9ab29,_0x5d654a);else{if(_0x28f727===_0x5982e2(0x7a))return this[_0x5982e2(0x96)](_0xc9ab29,_0x5d654a);}}return _0x5982e2(0x8b)+this['escapeXml'](_0x218522)+'\x22\x20type=\x22'+_0x4036ab+_0x5982e2(0x80)+_0x5c87dc+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x5d654a)+'\x0a\x20\x20</file>';}[a0_0x5cc333(0x94)](_0x215c0e,_0x68eac2){const _0x5676dc=a0_0x5cc333,{fileName:_0x13a25b,fileType:_0x184a13,size:_0x49abb5}=_0x215c0e,_0x3c5827=(_0x49abb5/0x400)[_0x5676dc(0x7c)](0x2);return _0x5676dc(0x8b)+this[_0x5676dc(0x7f)](_0x13a25b)+'\x22\x20type=\x22'+_0x184a13+'\x22\x20size=\x22'+_0x3c5827+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x68eac2)+'\x0a\x20\x20</file>';}['formatImageFile'](_0x21c4c2,_0x5181ec){const _0x2e831a=a0_0x5cc333,{fileName:_0x46e084,fileType:_0x33f741,size:_0x93a98f}=_0x21c4c2,_0x2122ca=(_0x93a98f/0x400)[_0x2e831a(0x7c)](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x46e084)+'\x22\x20type=\x22'+_0x33f741+'\x22\x20size=\x22'+_0x2122ca+_0x2e831a(0x6a)+_0x5181ec+_0x2e831a(0x77);}[a0_0x5cc333(0x96)](_0x4ac32d,_0x88e1c5){const _0x4213d5=a0_0x5cc333,{fileName:_0x3b8903,fileType:_0x2b3e8b,size:_0x16c067}=_0x4ac32d,_0x4d9497=(_0x16c067/0x400)[_0x4213d5(0x7c)](0x2);return _0x4213d5(0x8b)+this[_0x4213d5(0x7f)](_0x3b8903)+_0x4213d5(0x70)+_0x2b3e8b+_0x4213d5(0x80)+_0x4d9497+_0x4213d5(0x6a)+this['escapeXml'](_0x88e1c5)+'\x0a\x20\x20</file>';}[a0_0x5cc333(0x6c)](_0x5e4837){const _0x1291c4=a0_0x5cc333,{fileName:_0xa357be,originalPath:_0x1625f8,size:_0x4b74d3,fileType:_0x15cd1c,lastModified:_0x5c5d1e}=_0x5e4837,_0x1c46f6=this['formatBytes'](_0x4b74d3),_0x564719=new Date(_0x5c5d1e)[_0x1291c4(0x8c)]()['split']('T')[0x0];return _0x1291c4(0x8b)+this[_0x1291c4(0x7f)](_0xa357be)+'\x22\x20path=\x22'+this[_0x1291c4(0x7f)](_0x1625f8)+_0x1291c4(0x80)+_0x1c46f6+_0x1291c4(0x70)+_0x15cd1c+_0x1291c4(0x8f)+_0x564719+'\x22\x20/>';}[a0_0x5cc333(0x7f)](_0x35f82c){const _0x1e0a8d=a0_0x5cc333;if(!_0x35f82c)return'';return _0x35f82c['replace'](/&/g,_0x1e0a8d(0x67))['replace'](/</g,'<')[_0x1e0a8d(0x98)](/>/g,'>')[_0x1e0a8d(0x98)](/"/g,_0x1e0a8d(0x68))[_0x1e0a8d(0x98)](/'/g,''');}[a0_0x5cc333(0x86)](_0x11a7b8){const _0x2849ae=a0_0x5cc333;if(_0x11a7b8===0x0)return _0x2849ae(0x71);const _0x45946c=0x400,_0x5aa0b8=[_0x2849ae(0x84),'KB','MB','GB'],_0x338040=Math[_0x2849ae(0x6b)](Math['log'](_0x11a7b8)/Math['log'](_0x45946c));return parseFloat((_0x11a7b8/Math['pow'](_0x45946c,_0x338040))['toFixed'](0x2))+_0x5aa0b8[_0x338040];}async[a0_0x5cc333(0x8e)](_0x3dcaf3){const _0x194a3e=a0_0x5cc333;try{const _0x33265f=await this['attachmentService'][_0x194a3e(0x6d)](_0x3dcaf3);let _0x53a3e0=0x0;for(const _0x57fc5e of _0x33265f){_0x57fc5e['mode']==='content'?_0x53a3e0+=_0x57fc5e[_0x194a3e(0x91)]||0x0:_0x53a3e0+=0x14;}return _0x53a3e0;}catch(_0x4a1439){return this[_0x194a3e(0x99)]?.[_0x194a3e(0x7e)](_0x194a3e(0x7d),{'agentId':_0x3dcaf3,'error':_0x4a1439['message']}),0x0;}}async['getAttachmentSummary'](_0x21e2ef){const _0x115efc=a0_0x5cc333;try{const _0x304f65=await this['attachmentService'][_0x115efc(0x6d)](_0x21e2ef),_0x3f96c2={'totalActive':_0x304f65['length'],'contentMode':_0x304f65[_0x115efc(0x75)](_0xa28c7b=>_0xa28c7b['mode']===_0x115efc(0x73))[_0x115efc(0x76)],'referenceMode':_0x304f65['filter'](_0x40b225=>_0x40b225[_0x115efc(0x8d)]==='reference')[_0x115efc(0x76)],'estimatedTokens':0x0,'files':[]};for(const _0x171e36 of _0x304f65){_0x3f96c2['estimatedTokens']+=_0x171e36[_0x115efc(0x91)]||0x0,_0x3f96c2['files']['push']({'fileName':_0x171e36[_0x115efc(0x89)],'mode':_0x171e36[_0x115efc(0x8d)],'size':this['formatBytes'](_0x171e36['size']),'tokens':_0x171e36[_0x115efc(0x91)]||0x0});}return _0x3f96c2;}catch(_0x150b0a){return this[_0x115efc(0x99)]?.[_0x115efc(0x7e)]('Error\x20getting\x20attachment\x20summary',{'agentId':_0x21e2ef,'error':_0x150b0a[_0x115efc(0x69)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
|