@loxia-labs/loxia-autopilot-one 1.0.4 → 1.0.6
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 +1 -1
- package/bin/cli.js +1 -1
- package/bin/loxia-terminal-v2.js +1 -1
- package/bin/loxia-terminal.js +1 -1
- package/bin/start-with-terminal.js +1 -1
- package/package.json +1 -1
- package/scripts/install-scanners.js +1 -1
- package/src/analyzers/CSSAnalyzer.js +1 -1
- package/src/analyzers/ConfigValidator.js +1 -1
- package/src/analyzers/ESLintAnalyzer.js +1 -1
- package/src/analyzers/JavaScriptAnalyzer.js +1 -1
- package/src/analyzers/PrettierFormatter.js +1 -1
- package/src/analyzers/PythonAnalyzer.js +1 -1
- package/src/analyzers/SecurityAnalyzer.js +1 -1
- package/src/analyzers/TypeScriptAnalyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/detector.js +1 -1
- package/src/analyzers/codeCloneDetector/index.js +1 -1
- package/src/analyzers/codeCloneDetector/parser.js +1 -1
- package/src/analyzers/codeCloneDetector/reporter.js +1 -1
- package/src/analyzers/codeCloneDetector/scanner.js +1 -1
- package/src/core/agentPool.js +1 -1
- package/src/core/agentScheduler.js +1 -1
- package/src/core/contextManager.js +1 -1
- package/src/core/messageProcessor.js +1 -1
- package/src/core/orchestrator.js +1 -1
- package/src/core/stateManager.js +1 -1
- package/src/index.js +1 -1
- package/src/interfaces/cli.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
- package/src/interfaces/terminal/api/apiClient.js +1 -1
- package/src/interfaces/terminal/api/messageRouter.js +1 -1
- package/src/interfaces/terminal/api/session.js +1 -1
- package/src/interfaces/terminal/api/websocket.js +1 -1
- package/src/interfaces/terminal/components/AgentCreator.js +1 -1
- package/src/interfaces/terminal/components/AgentEditor.js +1 -1
- package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
- package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
- package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
- package/src/interfaces/terminal/components/Header.js +1 -1
- package/src/interfaces/terminal/components/HelpPanel.js +1 -1
- package/src/interfaces/terminal/components/InputBox.js +1 -1
- package/src/interfaces/terminal/components/Layout.js +1 -1
- package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
- package/src/interfaces/terminal/components/MessageList.js +1 -1
- package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
- package/src/interfaces/terminal/components/SearchPanel.js +1 -1
- package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
- package/src/interfaces/terminal/components/StatusBar.js +1 -1
- package/src/interfaces/terminal/components/TextInput.js +1 -1
- package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
- package/src/interfaces/terminal/config/constants.js +1 -1
- package/src/interfaces/terminal/index.js +1 -1
- package/src/interfaces/terminal/state/useAgentControl.js +1 -1
- package/src/interfaces/terminal/state/useAgents.js +1 -1
- package/src/interfaces/terminal/state/useConnection.js +1 -1
- package/src/interfaces/terminal/state/useMessages.js +1 -1
- package/src/interfaces/terminal/state/useTools.js +1 -1
- package/src/interfaces/terminal/utils/debugLogger.js +1 -1
- package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
- package/src/interfaces/terminal/utils/theme.js +1 -1
- package/src/interfaces/webServer.js +1 -1
- package/src/modules/fileExplorer/controller.js +1 -1
- package/src/modules/fileExplorer/index.js +1 -1
- package/src/modules/fileExplorer/middleware.js +1 -1
- package/src/modules/fileExplorer/routes.js +1 -1
- package/src/services/aiService.js +1 -1
- package/src/services/apiKeyManager.js +1 -1
- package/src/services/benchmarkService.js +1 -1
- package/src/services/budgetService.js +1 -1
- package/src/services/contextInjectionService.js +1 -1
- package/src/services/conversationCompactionService.js +1 -1
- package/src/services/errorHandler.js +1 -1
- package/src/services/fileAttachmentService.js +1 -1
- package/src/services/modelRouterService.js +1 -1
- package/src/services/modelsService.js +1 -1
- package/src/services/qualityInspector.js +1 -1
- package/src/services/tokenCountingService.js +1 -1
- package/src/tools/agentCommunicationTool.js +1 -1
- package/src/tools/agentDelayTool.js +1 -1
- package/src/tools/asyncToolManager.js +1 -1
- package/src/tools/baseTool.js +1 -1
- package/src/tools/browserTool.js +1 -1
- package/src/tools/cloneDetectionTool.js +1 -1
- package/src/tools/dependencyResolverTool.js +1 -1
- package/src/tools/fileContentReplaceTool.js +1 -1
- package/src/tools/fileSystemTool.js +1 -1
- package/src/tools/fileTreeTool.js +1 -1
- package/src/tools/imageTool.js +1 -1
- package/src/tools/importAnalyzerTool.js +1 -1
- package/src/tools/jobDoneTool.js +1 -1
- package/src/tools/seekTool.js +1 -1
- package/src/tools/staticAnalysisTool.js +1 -1
- package/src/tools/taskManagerTool.js +1 -1
- package/src/tools/terminalTool.js +1 -1
- package/src/tools/webTool.js +1 -1
- package/src/types/agent.js +1 -1
- package/src/types/contextReference.js +1 -1
- package/src/types/conversation.js +1 -1
- package/src/types/toolCommand.js +1 -1
- package/src/utilities/attachmentValidator.js +1 -1
- package/src/utilities/configManager.js +1 -1
- package/src/utilities/constants.js +1 -1
- package/src/utilities/directoryAccessManager.js +1 -1
- package/src/utilities/fileProcessor.js +1 -1
- package/src/utilities/logger.js +1 -1
- package/src/utilities/tagParser.js +1 -1
- package/src/utilities/toolConstants.js +1 -1
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/{index-lCBai6dX.js → index-CX8ZfpGw.js} +113 -60
- package/web-ui/build/static/index-Dwg_JrlO.css +1 -0
- package/web-ui/build/static/index-CClD1090.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x383746=a0_0x55a8;(function(_0x5537ef,_0x46bc54){const _0x289cb3=a0_0x55a8,_0x24b280=_0x5537ef();while(!![]){try{const _0x3f08ba=-parseInt(_0x289cb3(0x20c))/0x1*(parseInt(_0x289cb3(0x1d1))/0x2)+-parseInt(_0x289cb3(0x20a))/0x3+parseInt(_0x289cb3(0x214))/0x4+-parseInt(_0x289cb3(0x19a))/0x5+parseInt(_0x289cb3(0x1c9))/0x6*(-parseInt(_0x289cb3(0x1a4))/0x7)+parseInt(_0x289cb3(0x188))/0x8*(parseInt(_0x289cb3(0x189))/0x9)+-parseInt(_0x289cb3(0x19d))/0xa*(-parseInt(_0x289cb3(0x1a3))/0xb);if(_0x3f08ba===_0x46bc54)break;else _0x24b280['push'](_0x24b280['shift']());}catch(_0x1c5ba1){_0x24b280['push'](_0x24b280['shift']());}}}(a0_0x1c1c,0x2ee5c));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x490de4,_0x4af033,_0x154cc0,_0x1dc398){const _0x1e1cc0=a0_0x55a8;this['config']=_0x490de4,this['logger']=_0x4af033,this['budgetService']=_0x154cc0,this[_0x1e1cc0(0x1e9)]=_0x1dc398,this[_0x1e1cc0(0x1cf)]=_0x490de4['backend']?.['baseUrl']||'https://api.loxia.ai',this['timeout']=_0x490de4[_0x1e1cc0(0x1da)]?.[_0x1e1cc0(0x1eb)]||0xea60,this['retryAttempts']=_0x490de4['backend']?.[_0x1e1cc0(0x1d5)]||0x3,this[_0x1e1cc0(0x212)]=new Map(),this['requestQueue']=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this[_0x1e1cc0(0x1cd)]=this['_initializeModelSpecs'](),this['conversationManagers']=new Map(),this[_0x1e1cc0(0x194)]=null,this[_0x1e1cc0(0x196)]=null;}async[a0_0x383746(0x19f)](_0x12be62,_0x220aa1,_0x547269={}){const _0x29350e=a0_0x383746,_0x4cecad=_0x29350e(0x1c4)+Date[_0x29350e(0x1a0)]()+'-'+Math[_0x29350e(0x20f)]()['toString'](0x24)[_0x29350e(0x208)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');await this[_0x29350e(0x1dc)](_0x12be62);const _0x47f5de=this['_formatMessagesForModel'](_0x220aa1,_0x12be62,_0x547269),_0x1f4fa3={'model':_0x12be62,'messages':_0x47f5de,'options':{'max_tokens':this[_0x29350e(0x1cd)][_0x12be62]?.[_0x29350e(0x1f4)]||0xfa0,'temperature':_0x547269['temperature']||0.7,'stream':_0x547269[_0x29350e(0x1ca)]||![]},'metadata':{'requestId':_0x4cecad,'agentId':_0x547269['agentId'],'timestamp':new Date()[_0x29350e(0x1e4)]()}};_0x547269['systemPrompt']&&(_0x1f4fa3[_0x29350e(0x1c3)]=_0x547269['systemPrompt']);this['logger'][_0x29350e(0x19b)]('Sending\x20message\x20to\x20model:\x20'+_0x12be62,{'requestId':_0x4cecad,'agentId':_0x547269[_0x29350e(0x203)],'messageCount':Array['isArray'](_0x220aa1)?_0x220aa1[_0x29350e(0x217)]:0x1,'maxTokens':_0x1f4fa3[_0x29350e(0x1fc)]});const _0x5190c4=await this[_0x29350e(0x186)](_0x29350e(0x204),_0x1f4fa3,_0x4cecad,{..._0x547269,'sessionId':_0x547269['sessionId'],'platformProvided':_0x547269[_0x29350e(0x1a2)]||![]});return _0x5190c4['usage']&&await this['trackUsage'](_0x547269[_0x29350e(0x203)],_0x12be62,{'prompt_tokens':_0x5190c4['usage'][_0x29350e(0x1ce)]||0x0,'completion_tokens':_0x5190c4['usage']['completion_tokens']||0x0,'total_tokens':_0x5190c4[_0x29350e(0x1e1)]['total_tokens']||0x0}),this['_resetCircuitBreaker'](),{'content':_0x5190c4[_0x29350e(0x1e2)][0x0]?.['message']?.['content']||'','model':_0x5190c4[_0x29350e(0x1cb)],'tokenUsage':_0x5190c4['usage'],'requestId':_0x4cecad,'finishReason':_0x5190c4['choices'][0x0]?.['finish_reason']};}catch(_0x2b8ef4){this['_recordFailure'](),this[_0x29350e(0x1df)][_0x29350e(0x1a8)](_0x29350e(0x1e3)+_0x2b8ef4['message'],{'requestId':_0x4cecad,'model':_0x12be62,'agentId':_0x547269[_0x29350e(0x203)],'error':_0x2b8ef4['stack']}),await this[_0x29350e(0x17e)](_0x2b8ef4,{'requestId':_0x4cecad,'model':_0x12be62,'agentId':_0x547269[_0x29350e(0x203)]});throw _0x2b8ef4;}}async[a0_0x383746(0x1f1)](_0x5a28e6,_0x5ac991={}){const _0x348c18=a0_0x383746;try{const _0x4c0f3b=MODEL_ROUTING[_0x5a28e6['toUpperCase']()]||MODEL_ROUTING['FALLBACK'],_0x44ba03=[];for(const _0x302dd2 of _0x4c0f3b){const _0x220d0c=await this['_checkModelHealth'](_0x302dd2);_0x220d0c&&_0x44ba03['push'](_0x302dd2);}if(_0x44ba03[_0x348c18(0x217)]===0x0)return this['logger'][_0x348c18(0x191)]('No\x20healthy\x20models\x20available\x20for\x20task:\x20'+_0x5a28e6+',\x20using\x20fallback'),MODEL_ROUTING[_0x348c18(0x1be)][0x0];let _0x3f0de4=_0x44ba03[0x0];if(_0x5ac991[_0x348c18(0x1c8)]&&_0x44ba03[_0x348c18(0x1b1)](_0x5ac991['preferredModel']))_0x3f0de4=_0x5ac991['preferredModel'];else{if(_0x5ac991['complexity']===_0x348c18(0x1c6)&&_0x44ba03[_0x348c18(0x1b1)](MODELS[_0x348c18(0x1b2)]))_0x3f0de4=MODELS['ANTHROPIC_OPUS'];else _0x5ac991['speed']==='fast'&&_0x44ba03['includes'](MODELS['ANTHROPIC_HAIKU'])&&(_0x3f0de4=MODELS[_0x348c18(0x1f5)]);}return this[_0x348c18(0x1df)]['info'](_0x348c18(0x1a6)+_0x5a28e6,{'selectedModel':_0x3f0de4,'availableModels':_0x44ba03['length'],'context':_0x5ac991}),_0x3f0de4;}catch(_0x25ff4c){return this[_0x348c18(0x1df)]['error'](_0x348c18(0x190)+_0x25ff4c['message'],{'task':_0x5a28e6,'context':_0x5ac991}),MODEL_ROUTING[_0x348c18(0x1be)][0x0];}}async['compactizeConversation'](_0x2e680f,_0x2fc88){const _0x5d9630=a0_0x383746,_0x2efc61=this[_0x5d9630(0x1cd)][_0x2fc88];if(!_0x2efc61)throw new Error(_0x5d9630(0x1b8)+_0x2fc88);const _0x10e463=_0x2efc61['contextWindow']*0.8;let _0x137cef=0x0;const _0x5f4192=[],_0x9a5a69=await Promise[_0x5d9630(0x202)](_0x2e680f[_0x5d9630(0x1f0)](async _0x35d5e1=>({..._0x35d5e1,'estimatedTokens':await this[_0x5d9630(0x1d6)](_0x35d5e1[_0x5d9630(0x1b9)],_0x2fc88)}))),_0x55afa5=[..._0x9a5a69]['reverse']();for(const _0x3a31bb of _0x55afa5){if(_0x137cef+_0x3a31bb['estimatedTokens']>_0x10e463){if(_0x5f4192['length']===0x0){const _0x16a13a=await this[_0x5d9630(0x1ff)](_0x3a31bb[_0x5d9630(0x1b9)],_0x10e463);_0x5f4192[_0x5d9630(0x1bc)]({..._0x3a31bb,'content':_0x16a13a,'estimatedTokens':_0x10e463});}break;}_0x5f4192[_0x5d9630(0x1bc)](_0x3a31bb),_0x137cef+=_0x3a31bb[_0x5d9630(0x19c)];}const _0x24b600=_0x9a5a69['slice'](0x0,-_0x5f4192[_0x5d9630(0x217)]);if(_0x24b600['length']>0x0){const _0x43c62e=await this[_0x5d9630(0x1b0)](_0x24b600,_0x2fc88);_0x5f4192['unshift']({'role':_0x5d9630(0x1c3),'content':_0x5d9630(0x1ea)+_0x43c62e,'timestamp':_0x24b600[0x0][_0x5d9630(0x1b6)],'type':_0x5d9630(0x1a9),'estimatedTokens':await this['_estimateTokens'](_0x43c62e,_0x2fc88)});}return this['logger'][_0x5d9630(0x19b)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x2fc88,{'originalMessages':_0x2e680f[_0x5d9630(0x217)],'compactizedMessages':_0x5f4192[_0x5d9630(0x217)],'estimatedTokens':_0x137cef,'maxTokens':_0x10e463}),_0x5f4192;}async[a0_0x383746(0x18e)](_0x42145f,_0x1b0cf2,_0x20f8ff,_0x4ebc16){const _0x48bf3f=a0_0x383746;try{this[_0x48bf3f(0x18b)]&&this[_0x48bf3f(0x18b)]['trackUsage'](_0x42145f,_0x1b0cf2,_0x20f8ff);}catch(_0x52341a){this[_0x48bf3f(0x1df)][_0x48bf3f(0x1a8)]('Usage\x20tracking\x20failed:\x20'+_0x52341a['message']);}}async['handleHttpError'](_0x4a24c9,_0x461546){const _0x3048d4=a0_0x383746,_0x272576=this['errorHandler']?.[_0x3048d4(0x1c0)]?.(_0x4a24c9,_0x461546);switch(_0x4a24c9['status']||_0x4a24c9['code']){case HTTP_STATUS[_0x3048d4(0x21a)]:this[_0x3048d4(0x1df)][_0x3048d4(0x1a8)](_0x3048d4(0x1b4),{'context':_0x461546,'error':_0x4a24c9['message']});throw new Error('Invalid\x20request:\x20'+_0x4a24c9[_0x3048d4(0x1ad)]);case HTTP_STATUS['UNAUTHORIZED']:this['logger']['error']('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x461546});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS[_0x3048d4(0x1bb)]:this['logger']['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x461546});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x3048d4(0x21b)]:this['logger'][_0x3048d4(0x1a8)](_0x3048d4(0x17f),{'context':_0x461546});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS['TOO_MANY_REQUESTS']:this[_0x3048d4(0x1df)][_0x3048d4(0x191)](_0x3048d4(0x198),{'context':_0x461546}),await this[_0x3048d4(0x184)](_0x461546);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS[_0x3048d4(0x18f)]:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x3048d4(0x1dd)]:this[_0x3048d4(0x1df)]['error'](_0x3048d4(0x218),{'context':_0x461546,'status':_0x4a24c9[_0x3048d4(0x182)]}),await this['_handleServiceUnavailable'](_0x461546);throw new Error(_0x3048d4(0x1b5));default:this['logger']['error']('Unknown\x20AI\x20service\x20error',{'context':_0x461546,'error':_0x4a24c9[_0x3048d4(0x1ad)]});throw new Error('AI\x20service\x20error:\x20'+_0x4a24c9['message']);}}['setApiKeyManager'](_0x417b3e){const _0x4c1e2b=a0_0x383746;this[_0x4c1e2b(0x194)]=_0x417b3e,this['logger']?.['info']('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x417b3e});}['setAgentPool'](_0xaaaaf5){const _0x54c8c2=a0_0x383746;this[_0x54c8c2(0x196)]=_0xaaaaf5,this['logger']?.['info'](_0x54c8c2(0x195),{'hasAgentPool':!!_0xaaaaf5});}async[a0_0x383746(0x215)](_0x4eefa4,_0x203def={}){const _0x271943=a0_0x383746,_0x14482c=_0x271943(0x1fe)+Date[_0x271943(0x1a0)]()+'-'+Math[_0x271943(0x20f)]()['toString'](0x24)[_0x271943(0x208)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x271943(0x1bd));if(!_0x4eefa4||typeof _0x4eefa4!==_0x271943(0x211)||_0x4eefa4[_0x271943(0x1ac)]()[_0x271943(0x217)]===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x570db9=_0x203def['model']||_0x271943(0x1a5),_0x4a0bf=_0x203def['size']||'1024x1024',_0x294f5e=_0x203def[_0x271943(0x207)]||'standard',_0xbf970=_0x203def[_0x271943(0x216)]||'url';this['logger'][_0x271943(0x19b)](_0x271943(0x193)+_0x570db9,{'requestId':_0x14482c,'model':_0x570db9,'size':_0x4a0bf,'quality':_0x294f5e,'promptLength':_0x4eefa4['length']});const _0x3c0be2={'prompt':_0x4eefa4,'model':_0x570db9,'size':_0x4a0bf,'quality':_0x294f5e,'response_format':_0xbf970,'n':0x1,'metadata':{'requestId':_0x14482c,'timestamp':new Date()[_0x271943(0x1e4)]()}},_0xb87ab4=await this['_makeImageAPIRequest'](_0x3c0be2,_0x14482c,{'sessionId':_0x203def['sessionId'],'platformProvided':_0x203def['platformProvided']||![]});return this['_resetCircuitBreaker'](),{'url':_0xb87ab4['data']?.[0x0]?.['url']||null,'b64_json':_0xb87ab4[_0x271943(0x1b7)]?.[0x0]?.['b64_json']||null,'model':_0xb87ab4['model']||_0x570db9,'requestId':_0x14482c,'revisedPrompt':_0xb87ab4['data']?.[0x0]?.['revised_prompt']||_0x4eefa4};}catch(_0x4f2abe){this['_recordFailure'](),this[_0x271943(0x1df)]['error']('Image\x20generation\x20failed:\x20'+_0x4f2abe['message'],{'requestId':_0x14482c,'model':_0x203def[_0x271943(0x1cb)],'error':_0x4f2abe[_0x271943(0x20b)]});throw _0x4f2abe;}}async['checkServiceHealth'](){const _0x39c705=a0_0x383746;try{const _0x5a0892=await this['_makeAPIRequest'](_0x39c705(0x1f8),{},_0x39c705(0x187));return _0x5a0892['status']===_0x39c705(0x18d);}catch(_0x2279a9){return![];}}async[a0_0x383746(0x1ab)](_0x2c45b2,_0x367fcc){const _0x38e657=a0_0x383746;try{if(!this['_isValidModel'](_0x367fcc))throw new Error('Invalid\x20model:\x20'+_0x367fcc);let _0x4ee51a=this['conversationManagers'][_0x38e657(0x18a)](_0x2c45b2);!_0x4ee51a&&(_0x4ee51a=new ConversationManager(_0x2c45b2,this[_0x38e657(0x1df)]),this['conversationManagers']['set'](_0x2c45b2,_0x4ee51a));const _0x39ce8c=await _0x4ee51a['switchModel'](_0x367fcc),_0x50ab9a=await this['agentPool']?.['getAgent'](_0x2c45b2);return _0x50ab9a&&(_0x50ab9a[_0x38e657(0x1db)]=_0x367fcc,await this['agentPool']['persistAgentState'](_0x2c45b2)),this['logger'][_0x38e657(0x19b)](_0x38e657(0x1fd)+_0x2c45b2,{'newModel':_0x367fcc,'messageCount':_0x39ce8c['messages'][_0x38e657(0x217)]}),{'success':!![],'agentId':_0x2c45b2,'newModel':_0x367fcc,'conversation':_0x39ce8c};}catch(_0x5a1f3a){this[_0x38e657(0x1df)][_0x38e657(0x1a8)]('Model\x20switch\x20failed:\x20'+_0x5a1f3a['message'],{'agentId':_0x2c45b2,'newModel':_0x367fcc});throw _0x5a1f3a;}}[a0_0x383746(0x1e6)](){const _0x28b2a9=a0_0x383746,_0x503786={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x28b2a9(0x21d)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x28b2a9(0x1b2)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x28b2a9(0x1f5)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS[_0x28b2a9(0x1ae)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS[_0x28b2a9(0x1ae)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS[_0x28b2a9(0x1ae)],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x28b2a9(0x21c)]]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x28b2a9(0x180)]]:{'provider':MODEL_PROVIDERS[_0x28b2a9(0x1ec)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':_0x28b2a9(0x1d4),'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':_0x28b2a9(0x1d4),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':'AZURE','contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x503786;}[a0_0x383746(0x210)](_0x3e7a99,_0x4f1960,_0x4a4d1d){const _0x509cca=a0_0x383746,_0x2fb331=this['modelSpecs'][_0x4f1960]||{'provider':_0x509cca(0x1d4)};let _0x65219a;typeof _0x3e7a99==='string'?_0x65219a=[{'role':_0x509cca(0x1bf),'content':_0x3e7a99}]:_0x65219a=_0x3e7a99['map'](_0x5bdd5c=>this['_formatSingleMessage'](_0x5bdd5c,_0x4f1960));switch(_0x2fb331[_0x509cca(0x1c2)]){case MODEL_PROVIDERS[_0x509cca(0x21d)]:return this['_formatForAnthropic'](_0x65219a);case MODEL_PROVIDERS[_0x509cca(0x1ae)]:return this['_formatForOpenAI'](_0x65219a);case MODEL_PROVIDERS['AZURE']:return this['_formatForAzure'](_0x65219a);default:return _0x65219a;}}['_formatSingleMessage'](_0x5b4443,_0x1c9270){const _0x405e45=a0_0x383746;return{'role':_0x5b4443['role']||_0x405e45(0x1bf),'content':_0x5b4443['content'],'timestamp':_0x5b4443[_0x405e45(0x1b6)]};}['_formatForAnthropic'](_0x184607){return _0x184607['map'](_0xf9c9bc=>{const _0x1b5092=a0_0x55a8;if(_0xf9c9bc['role']==='system')return{'role':_0x1b5092(0x1bf),'content':_0x1b5092(0x1af)+_0xf9c9bc['content']};return _0xf9c9bc;});}[a0_0x383746(0x206)](_0xff486d){return _0xff486d;}['_formatForAzure'](_0x4ca4ec){const _0x3a26c9=a0_0x383746;return _0x4ca4ec[_0x3a26c9(0x1f0)](_0x351a8c=>({..._0x351a8c,'content':typeof _0x351a8c['content']==='string'?_0x351a8c['content']:JSON[_0x3a26c9(0x21e)](_0x351a8c['content'])}));}[a0_0x383746(0x200)](_0x400390){const _0x30c93f=a0_0x383746;this[_0x30c93f(0x1df)]['debug']('Validating\x20model',{'model':_0x400390,'modelType':typeof _0x400390});if(this[_0x30c93f(0x1cd)][_0x400390]!==undefined)return!![];return this[_0x30c93f(0x1df)][_0x30c93f(0x191)]('Model\x20validation\x20failed',{'model':_0x400390,'availableModels':Object[_0x30c93f(0x1de)](this['modelSpecs'])}),![];}async['_checkModelHealth'](_0x5a3960){return!![];}async[a0_0x383746(0x1d6)](_0x23f3eb,_0x1b2386){const _0x43d4d7=a0_0x383746;return Math['ceil'](_0x23f3eb[_0x43d4d7(0x217)]/0x4);}async['_truncateMessage'](_0x40abba,_0x43d434){const _0x468793=a0_0x383746,_0x2d8bee=_0x43d434*0x4;if(_0x40abba[_0x468793(0x217)]<=_0x2d8bee)return _0x40abba;return _0x40abba[_0x468793(0x181)](0x0,_0x2d8bee-0x14)+_0x468793(0x201);}async['_summarizeMessages'](_0x342a15,_0x3bb8d8){const _0x2b3a3c=a0_0x383746,_0x78c8c1=_0x342a15[_0x2b3a3c(0x1f0)](_0x2ca35e=>_0x2ca35e['role']+':\x20'+_0x2ca35e['content'])['join']('\x0a'),_0x11e2e5=0x1f4;if(_0x78c8c1[_0x2b3a3c(0x217)]<=_0x11e2e5)return _0x78c8c1;return _0x78c8c1['substring'](0x0,_0x11e2e5)+_0x2b3a3c(0x183);}async[a0_0x383746(0x186)](_0x1f8a6c,_0x35dd5c,_0x12eaf0,_0x1c90e7={}){const _0xe1bf29=a0_0x383746,_0x36c916='https://autopilot-api.azurewebsites.net/llm/chat';let _0x330274,_0x357b67=null,_0x39c2e2=null;this[_0xe1bf29(0x1df)]?.[_0xe1bf29(0x19b)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x1c90e7[_0xe1bf29(0x1ba)],'hasSessionId':!!_0x1c90e7[_0xe1bf29(0x1ba)],'optionsKeys':Object[_0xe1bf29(0x1de)](_0x1c90e7),'model':_0x35dd5c[_0xe1bf29(0x1cb)]});if(this[_0xe1bf29(0x194)]&&_0x1c90e7[_0xe1bf29(0x1ba)]){const _0x5c8681=this['apiKeyManager']['getKeysForRequest'](_0x1c90e7[_0xe1bf29(0x1ba)],{'platformProvided':_0x1c90e7[_0xe1bf29(0x1a2)]||![],'vendor':this['_getVendorFromModel'](_0x35dd5c['model'])});_0x357b67=_0x5c8681[_0xe1bf29(0x1d0)],_0x39c2e2=_0x5c8681['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x1c90e7[_0xe1bf29(0x1ba)],'hasLoxiaKey':!!_0x357b67,'hasVendorKey':!!_0x39c2e2,'vendor':this['_getVendorFromModel'](_0x35dd5c[_0xe1bf29(0x1cb)])});}!_0x357b67&&_0x1c90e7['apiKey']&&(_0x357b67=_0x1c90e7[_0xe1bf29(0x1f6)]);!_0x357b67&&this[_0xe1bf29(0x219)][_0xe1bf29(0x1f6)]&&(_0x357b67=this[_0xe1bf29(0x219)]['apiKey']);if(!_0x357b67)throw new Error(_0xe1bf29(0x1c5));const _0x1eb6b1=_0x35dd5c[_0xe1bf29(0x1cb)],_0x4c1e4a={'conversationId':_0x12eaf0,'message':_0x35dd5c['messages'][_0x35dd5c[_0xe1bf29(0x20d)]['length']-0x1]?.['content']||'','messages':_0x35dd5c['messages'],'model':_0x1eb6b1,'requestId':_0x12eaf0,'options':_0x35dd5c[_0xe1bf29(0x192)]||{},'platformProvided':_0x1c90e7[_0xe1bf29(0x1a2)]||![]};_0x35dd5c[_0xe1bf29(0x1c3)]&&(_0x4c1e4a['systemPrompt']=_0x35dd5c['system']);_0x1c90e7['platformProvided']?_0x4c1e4a['apiKey']=_0x357b67:(_0x39c2e2&&(_0x4c1e4a[_0xe1bf29(0x1f9)]=_0x39c2e2),_0x1c90e7['customApiKeys']&&(_0x4c1e4a[_0xe1bf29(0x1d2)]=_0x1c90e7[_0xe1bf29(0x1d2)]),_0x4c1e4a[_0xe1bf29(0x1f6)]=_0x357b67);for(let _0x460676=0x1;_0x460676<=this['retryAttempts'];_0x460676++){try{this[_0xe1bf29(0x1df)][_0xe1bf29(0x19b)]('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x36c916,'model':_0x35dd5c['model'],'requestId':_0x12eaf0,'attempt':_0x460676,'hasApiKey':!!_0x357b67});const _0x4537c8=await fetch(_0x36c916,{'method':'POST','headers':{'Content-Type':_0xe1bf29(0x1aa),'Authorization':'Bearer\x20'+_0x357b67,'X-Request-ID':_0x12eaf0},'body':JSON[_0xe1bf29(0x21e)](_0x4c1e4a),'timeout':this[_0xe1bf29(0x1eb)]});if(!_0x4537c8['ok']){const _0x5d5037=await _0x4537c8[_0xe1bf29(0x1c7)](),_0x5eb4d2=new Error('HTTP\x20'+_0x4537c8[_0xe1bf29(0x182)]+':\x20'+_0x4537c8[_0xe1bf29(0x1ef)]+(_0x5d5037?_0xe1bf29(0x1e7)+_0x5d5037:''));_0x5eb4d2[_0xe1bf29(0x182)]=_0x4537c8[_0xe1bf29(0x182)];throw _0x5eb4d2;}const _0x36f2c1=await _0x4537c8['json']();return{'choices':[{'message':{'content':_0x36f2c1['content']||'','role':_0xe1bf29(0x213)},'finish_reason':_0x36f2c1['finishReason']||_0xe1bf29(0x1cc)}],'usage':_0x36f2c1['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x36f2c1[_0xe1bf29(0x1cb)]||_0x35dd5c[_0xe1bf29(0x1cb)],'id':_0x36f2c1[_0xe1bf29(0x1d7)]||_0x12eaf0};}catch(_0x1ac535){_0x330274=_0x1ac535,this[_0xe1bf29(0x1df)]['warn'](_0xe1bf29(0x205),{'attempt':_0x460676,'requestId':_0x12eaf0,'error':_0x1ac535[_0xe1bf29(0x1ad)],'status':_0x1ac535[_0xe1bf29(0x182)]});if(_0x460676<this[_0xe1bf29(0x1d5)]){const _0x247f3a=Math[_0xe1bf29(0x1c1)](0x2,_0x460676)*0x3e8;this[_0xe1bf29(0x1df)][_0xe1bf29(0x191)]('Retrying\x20in\x20'+_0x247f3a+'ms',{'attempt':_0x460676,'requestId':_0x12eaf0}),await new Promise(_0x380966=>setTimeout(_0x380966,_0x247f3a));}}}this['logger']['error'](_0xe1bf29(0x199),{'requestId':_0x12eaf0,'error':_0x330274['message']});const _0x34f2de=_0x330274['message']&&_0x330274[_0xe1bf29(0x1ad)]['includes']('No\x20API\x20key\x20configured');if(_0x34f2de)throw new Error(_0xe1bf29(0x20e)+_0x330274['message']);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x330274[_0xe1bf29(0x1ad)],'role':_0xe1bf29(0x213)},'finish_reason':_0xe1bf29(0x1cc)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x35dd5c['model'],'id':'error-'+_0x12eaf0,'error':_0x330274[_0xe1bf29(0x1ad)]};}async[a0_0x383746(0x1fb)](_0x1c2d0c,_0x1ab697,_0x25f09c={}){const _0x41c5ed=a0_0x383746,_0x1cca71=_0x41c5ed(0x197);let _0x30ae73,_0x47885e=null,_0x3c60c2=null;this[_0x41c5ed(0x1df)]?.['info']('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x41c5ed(0x194)],'sessionId':_0x25f09c[_0x41c5ed(0x1ba)],'hasSessionId':!!_0x25f09c[_0x41c5ed(0x1ba)],'model':_0x1c2d0c['model']});if(this['apiKeyManager']&&_0x25f09c[_0x41c5ed(0x1ba)]){const _0x4d0074=this['apiKeyManager']['getKeysForRequest'](_0x25f09c[_0x41c5ed(0x1ba)],{'platformProvided':_0x25f09c[_0x41c5ed(0x1a2)]||![],'vendor':this[_0x41c5ed(0x1e8)](_0x1c2d0c[_0x41c5ed(0x1cb)])});_0x47885e=_0x4d0074['loxiaApiKey'],_0x3c60c2=_0x4d0074['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x25f09c['sessionId'],'hasLoxiaKey':!!_0x47885e,'hasVendorKey':!!_0x3c60c2});}!_0x47885e&&_0x25f09c['apiKey']&&(_0x47885e=_0x25f09c[_0x41c5ed(0x1f6)]);!_0x47885e&&this[_0x41c5ed(0x219)][_0x41c5ed(0x1f6)]&&(_0x47885e=this[_0x41c5ed(0x219)][_0x41c5ed(0x1f6)]);if(!_0x47885e)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x29336f={'prompt':_0x1c2d0c['prompt'],'model':_0x1c2d0c[_0x41c5ed(0x1cb)]||_0x41c5ed(0x1f2),'size':_0x1c2d0c['size'],'quality':_0x1c2d0c[_0x41c5ed(0x207)],'style':_0x1c2d0c[_0x41c5ed(0x1fa)]||_0x41c5ed(0x1b3),'n':_0x1c2d0c['n']||0x1,'requestId':_0x1ab697};for(let _0x849279=0x1;_0x849279<=this[_0x41c5ed(0x1d5)];_0x849279++){try{this['logger'][_0x41c5ed(0x19b)](_0x41c5ed(0x1d9),{'url':_0x1cca71,'model':_0x1c2d0c['model'],'requestId':_0x1ab697,'attempt':_0x849279,'hasApiKey':!!_0x47885e});const _0x46371a=await fetch(_0x1cca71,{'method':_0x41c5ed(0x1f3),'headers':{'Content-Type':_0x41c5ed(0x1aa),'Authorization':'Bearer\x20'+_0x47885e,'X-Request-ID':_0x1ab697},'body':JSON[_0x41c5ed(0x21e)](_0x29336f),'timeout':this['timeout']*0x2});if(!_0x46371a['ok']){const _0x56e99f=await _0x46371a[_0x41c5ed(0x1c7)](),_0x4ff5c8=new Error(_0x41c5ed(0x19e)+_0x46371a[_0x41c5ed(0x182)]+':\x20'+_0x46371a['statusText']+(_0x56e99f?'\x20-\x20'+_0x56e99f:''));_0x4ff5c8[_0x41c5ed(0x182)]=_0x46371a['status'];throw _0x4ff5c8;}const _0x377de7=await _0x46371a['json']();return{'data':_0x377de7['images']||[],'model':_0x377de7['model']||_0x1c2d0c[_0x41c5ed(0x1cb)],'created':_0x377de7['created']||Date[_0x41c5ed(0x1a0)](),'usage':_0x377de7['usage']};}catch(_0x3dbf24){_0x30ae73=_0x3dbf24,this['logger'][_0x41c5ed(0x191)]('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x849279,'requestId':_0x1ab697,'error':_0x3dbf24[_0x41c5ed(0x1ad)],'status':_0x3dbf24[_0x41c5ed(0x182)]});if(_0x849279<this[_0x41c5ed(0x1d5)]){const _0x24a2bd=Math['pow'](0x2,_0x849279)*0x3e8;this['logger'][_0x41c5ed(0x191)]('Retrying\x20in\x20'+_0x24a2bd+'ms',{'attempt':_0x849279,'requestId':_0x1ab697}),await new Promise(_0x432335=>setTimeout(_0x432335,_0x24a2bd));}}}this['logger']['error'](_0x41c5ed(0x1ed),{'requestId':_0x1ab697,'error':_0x30ae73[_0x41c5ed(0x1ad)]});throw new Error('Image\x20generation\x20failed:\x20'+_0x30ae73['message']);}async[a0_0x383746(0x1dc)](_0xb3ab97){await new Promise(_0x5dcc54=>setTimeout(_0x5dcc54,0x64));}async[a0_0x383746(0x184)](_0x308992){const _0x5a4fa9=a0_0x383746,_0x5e1c9e=0xea60;this[_0x5a4fa9(0x1df)][_0x5a4fa9(0x19b)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x5e1c9e+'ms',_0x308992),await new Promise(_0x2db8b8=>setTimeout(_0x2db8b8,_0x5e1c9e));}async[a0_0x383746(0x1d8)](_0xd646de){const _0x78d0c9=a0_0x383746;this['_recordFailure']();const _0x266ec8=0x7530;this[_0x78d0c9(0x1df)][_0x78d0c9(0x19b)]('Service\x20unavailable,\x20waiting\x20'+_0x266ec8+'ms',_0xd646de),await new Promise(_0x58d397=>setTimeout(_0x58d397,_0x266ec8));}[a0_0x383746(0x1d3)](){const _0x38aad5=a0_0x383746;if(!this['circuitBreaker']['isOpen'])return![];const _0x338dd8=Date['now']()-this[_0x38aad5(0x1e0)]['lastFailureTime'];if(_0x338dd8>this[_0x38aad5(0x1e0)][_0x38aad5(0x1eb)])return this[_0x38aad5(0x1e0)]['isOpen']=![],this['circuitBreaker']['failures']=0x0,![];return!![];}['_recordFailure'](){const _0x513302=a0_0x383746;this[_0x513302(0x1e0)][_0x513302(0x209)]++,this['circuitBreaker'][_0x513302(0x1e5)]=Date[_0x513302(0x1a0)](),this['circuitBreaker']['failures']>=this['circuitBreaker'][_0x513302(0x185)]&&(this['circuitBreaker']['isOpen']=!![],this['logger'][_0x513302(0x191)]('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}['_resetCircuitBreaker'](){const _0x3c43d5=a0_0x383746;this['circuitBreaker'][_0x3c43d5(0x209)]>0x0&&(this[_0x3c43d5(0x1e0)][_0x3c43d5(0x209)]=0x0,this[_0x3c43d5(0x1e0)][_0x3c43d5(0x1ee)]=![],this['logger']['info']('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x54432c){const _0x2ecae9=a0_0x383746;if(!_0x54432c)return null;const _0x158fe7=_0x54432c[_0x2ecae9(0x1a1)]();if(_0x158fe7['includes'](_0x2ecae9(0x21f))||_0x158fe7[_0x2ecae9(0x1b1)]('claude'))return'anthropic';else{if(_0x158fe7[_0x2ecae9(0x1b1)](_0x2ecae9(0x1f7))||_0x158fe7[_0x2ecae9(0x1b1)](_0x2ecae9(0x18c)))return'openai';else{if(_0x158fe7[_0x2ecae9(0x1b1)]('deepseek'))return'deepseek';else{if(_0x158fe7[_0x2ecae9(0x1b1)]('phi'))return'microsoft';}}}return null;}}function a0_0x55a8(_0x33a8c5,_0x5d4db1){_0x33a8c5=_0x33a8c5-0x17e;const _0x1c1cc1=a0_0x1c1c();let _0x55a8ec=_0x1c1cc1[_0x33a8c5];if(a0_0x55a8['vXSwDt']===undefined){var _0x54fa40=function(_0x1f67fb){const _0x39868e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x490de4='',_0x4af033='';for(let _0x154cc0=0x0,_0x1dc398,_0x12be62,_0x220aa1=0x0;_0x12be62=_0x1f67fb['charAt'](_0x220aa1++);~_0x12be62&&(_0x1dc398=_0x154cc0%0x4?_0x1dc398*0x40+_0x12be62:_0x12be62,_0x154cc0++%0x4)?_0x490de4+=String['fromCharCode'](0xff&_0x1dc398>>(-0x2*_0x154cc0&0x6)):0x0){_0x12be62=_0x39868e['indexOf'](_0x12be62);}for(let _0x547269=0x0,_0x4cecad=_0x490de4['length'];_0x547269<_0x4cecad;_0x547269++){_0x4af033+='%'+('00'+_0x490de4['charCodeAt'](_0x547269)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4af033);};a0_0x55a8['dtWjMz']=_0x54fa40,a0_0x55a8['lAQamz']={},a0_0x55a8['vXSwDt']=!![];}const _0x36d047=_0x1c1cc1[0x0],_0x3061b7=_0x33a8c5+_0x36d047,_0x57a00f=a0_0x55a8['lAQamz'][_0x3061b7];return!_0x57a00f?(_0x55a8ec=a0_0x55a8['dtWjMz'](_0x55a8ec),a0_0x55a8['lAQamz'][_0x3061b7]=_0x55a8ec):_0x55a8ec=_0x57a00f,_0x55a8ec;}function a0_0x1c1c(){const _0xfaeb55=['zxjYB3jiyw5KBgvY','uhjLDMLVDxmGy29UDMvYC2f0Aw9Uihn1Bw1HCNK6ia','DgLTzw91Da','ueHj','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','AxnpCgvU','C3rHDhvZvgv4Da','BwfW','CM91DgvnB2rLBa','yxP1CMuTB3bLBMfPlwrHBgXLmW','ue9tva','Bwf4vg9Rzw5Z','qu5usfjpueLdx0HbsuTv','yxbPs2v5','B3bLBMfP','l2HLywX0Aa','DMvUzg9YqxbPs2v5','C3r5Bgu','x21HA2vjBwfNzufqsvjLCxvLC3q','Bwf4x3rVA2vUCW','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','Aw1Nlq','x3rYDw5JyxrLtwvZC2fNzq','x2LZvMfSAwrnB2rLBa','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','ywXS','ywDLBNrjza','l2nOyxqVy29TCgXLDgLVBNm','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','x2zVCM1HDezVCK9Wzw5bsq','CxvHBgL0Eq','C3vIC3rY','zMfPBhvYzxm','mZm4nde4uuvYrhDt','C3rHy2S','ndGXmZvTtw9VAu0','BwvZC2fNzxm','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','CMfUzg9T','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','C3rYAw5N','CMf0zuXPBwL0zxjZ','yxnZAxn0yw50','mZuWmdy4A0v1z1jN','z2vUzxjHDgvjBwfNzq','CMvZCg9UC2vgB3jTyxq','BgvUz3rO','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','y29UzMLN','qKfex1jfuvvfu1q','tK9ux0zpvu5e','revfufnfruTFuJe','qu5usfjpueLd','C3rYAw5NAwz5','yw50AhjVCgLJ','AgfUzgXLshr0CevYCM9Y','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','ueHjxZq','C3vIC3rYAw5N','C3rHDhvZ','lI4UifTJB252zxjZyxrPB24GC3vTBwfYEsb0CNvUy2f0zwrD','x2HHBMrSzvjHDgvmAw1PDa','DgHYzxnOB2XK','x21HA2vbueLszxf1zxn0','AgvHBhrOlwnOzwnR','mti4mdCYsgjOvvPb','mti2tuTJugPy','z2v0','yNvKz2v0u2vYDMLJzq','z3b0','AgvHBhrOEq','DhjHy2TvC2fNzq','qKfex0DbvevxqvK','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','D2fYBG','B3b0Aw9UCW','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','yxbPs2v5twfUywDLCG','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','ywDLBNrqB29S','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','uMf0zsbSAw1PDcbLEgnLzwrLza','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','mte0mtKYnxzLqKvWsq','Aw5MBW','zxn0Aw1HDgvKvg9Rzw5Z','nti0mffjterita','sfruuca','C2vUze1LC3nHz2u','BM93','Dg9mB3DLCKnHC2u','CgXHDgzVCM1qCM92AwrLza','mtuYmdjctxbNt0C','nJC3ntnqBgvJAg4','zMX1Ec0XlJeTChjV','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','C3DPDgnOtw9KzwW','zxjYB3i','C3vTBwfYEq','yxbWBgLJyxrPB24VANnVBG','C3DPDgnOqwDLBNrnB2rLBa','DhjPBq','BwvZC2fNzq','t1bftKfj','u3LZDgvToIa','x3n1Bw1HCML6zu1LC3nHz2vZ','Aw5JBhvKzxm','qu5usfjpueLdx09qvvm','DML2Awq','qMfKihjLCxvLC3qGDg8GquKGC2vYDMLJzq','quKGC2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzq','DgLTzxn0yw1W','zgf0yq','vw5RBM93BIbTB2rLBdOG','y29UDgvUDa','C2vZC2LVBKLK','rK9sqKLerevo','Dw5ZAgLMDa','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','rKfmtejbq0S','DxnLCG','y2XHC3nPzNLfCNjVCG','Cg93','ChjVDMLKzxi','C3LZDgvT','CMvXlq','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','AgLNAa','Dgv4Da','ChjLzMvYCMvKtw9KzwW','mJiYBwjKrKD1','C3rYzwfT','Bw9KzwW','C3rVCa','Bw9KzwXtCgvJCW','ChjVBxb0x3rVA2vUCW','yMfZzvvYBa','Bg94AwfbCgLlzxK','nLLfBgncrq','y3vZDg9TqxbPs2v5CW','x2LZq2LYy3vPDejYzwfRzxjpCgvU','qvPvuKu','CMv0CNLbDhrLBxb0CW','x2vZDgLTyxrLvg9Rzw5Z','CMvXDwvZDeLK','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','yMfJA2vUza','y3vYCMvUDe1VzgvS','x2nOzwnRuMf0zuXPBwL0','r0furvDbwv9usu1ft1vu','A2v5CW','Bg9Nz2vY','y2LYy3vPDejYzwfRzxi','DxnHz2u','y2HVAwnLCW','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','Dg9ju09tDhjPBMC','BgfZDezHAwX1CMvuAw1L','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','ic0G','x2DLDfzLBMrVCKzYB21nB2rLBa'];a0_0x1c1c=function(){return _0xfaeb55;};return a0_0x1c1c();}class ConversationManager{constructor(_0x200b53,_0x148058){const _0x2b3a53=a0_0x383746;this[_0x2b3a53(0x203)]=_0x200b53,this['logger']=_0x148058,this['conversations']=new Map();}async[a0_0x383746(0x1a7)](_0x44320a){return{'messages':[],'model':_0x44320a,'lastUpdated':new Date()['toISOString']()};}}export default AIService;
|
|
1
|
+
function a0_0x4c95(){const _0x558751=['zgvIDwC','CM9Szq','BwvZC2fNzq','r0furvDbwv9usu1ft1vu','DgHYzxnOB2XK','AxnpCgvU','CM91DgvnB2rLBa','y29UzMLN','uMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','y29UDMvYC2f0Aw9UtwfUywDLCNm','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','C3LZDgvT','t1bftKfj','CMv0CNLbDhrLBxb0CW','y2LYy3vPDejYzwfRzxi','Aw5MBW','yxbPs2v5twfUywDLCG','quKGC2vYDMLJzsbLCNjVCJOG','BM93','DhjHy2TvC2fNzq','n3nhAwDnyW','qu5usfjpueLdx0HbsuTv','revfufnfruTFuJe','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','qMvHCMvYia','y3vYCMvUDe1VzgvS','DML2Awq','C3rYAw5N','z2v0s2v5C0zVCLjLCxvLC3q','qu5usfjpueLdx09qvvm','AxnbCNjHEq','C3rHDhvZ','ue9tva','nw9Uzg9HsG','vu5bvvrit1jjwKve','ndGYodaYu2Hdu3fw','ywDLBNrqB29S','yJy0x2PZB24','CMv2AxnLzf9WCM9TChq','x2LZq2LYy3vPDejYzwfRzxjpCgvU','mZeWsejqtMXZ','x21HA2vjBwfNzufqsvjLCxvLC3q','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','ueHjxZq','uMf0zsbSAw1PDcbLEgnLzwrLza','C3DPDgnOtw9KzwW','yw50AhjVCgLJ','ueHj','mtm3nZuYmNf2v3n5Cq','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','C3vIC3rYAw5N','r1buxZrFtuLosq','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','CgXHDgzVCM1qCM92AwrLza','qvPvuKu','vw5RBM93BIbTB2rLBdOG','Bw9KzwW','x21HA2vbueLszxf1zxn0','C3DPDgnOqwDLBNrnB2rLBa','Aw1Nlq','BwLJCM9ZB2z0','rKfmtejbq0S','yxbWBgLJyxrPB24VANnVBG','quKGC2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzq','y29TCgfJDgL6zunVBNzLCNnHDgLVBG','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','C3LZDgvTuhjVBxb0','CMv2zxjZzq','x3n1Bw1HCML6zu1LC3nHz2vZ','CMfUzg9T','ChjVDMLKzxi','yxnZAxn0yw50','C2v0qxbPs2v5twfUywDLCG','DgvTCgvYyxr1CMu','zMLUAxnOx3jLyxnVBG','C3bLzwq','zxjYB3iT','qKfex1jfuvvfu1q','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','Dg9tDhjPBMC','vMfSAwrHDgLUzYbTB2rLBa','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','AgvHBhrOEq','DxnHz2u','mty4ndflCwT0vg8','x2nOzwnRtw9KzwXizwfSDgG','AgvHBhrOlwnOzwnR','ywDLBNrjza','sw52ywXPzcbTB2rLBdOG','u3LZDgvToIa','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','ywXS','mti0mdy5DwrZC2Dc','x2zVCM1HDezVCKf6DxjL','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','x2DLDfzLBMrVCKzYB21nB2rLBa','x2zVCM1HDezVCKfUDgHYB3bPyW','qu5usfjpueLd','CxvHBgL0Eq','CMvXDwvZDff1zxvL','x2vZDgLTyxrLvg9Rzw5Z','u0vsvKLdrv9vtKfwquLmqujmrq','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','qxv0AgvUDgLJyxrPB24GzMfPBgvKic0Gy2HLy2SGqvbjignYzwrLBNrPywXZ','BwvZC2fNzxm','uMv0CNLPBMCGAw4G','y2vPBa','y3vZDg9TqxbPs2v5CW','y29UDgvUDa','x3jLC2v0q2LYy3vPDejYzwfRzxi','D2fYBG','mtHiCwneuMK','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','C3vIC3rY','z2vUzxjHDgvjBwfNzq','tK9ux0zpvu5e','AgfUzgXLshr0CevYCM9Y','DxjS','DxnLCG','DgLTzw91Da','mZK0mJG4yNbqtxrP','C2vZC2LVBKLK','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','zMfPBhvYzxm','B3bLBMfP','Aw5JBhvKzxm','y2XHC3nPzNLfCNjVCG','C3r5Bgu','y29TCgXLDgLVBL90B2TLBNm','zMfZDa','yNvKz2v0u2vYDMLJzq','BgfZDezHAwX1CMvuAw1L','Bwf4x3rVA2vUCW','Dw5ZAgLMDa','zxjYB3i','A2v5CW','DgLTzxn0yw1W','Ahr0Chm6lY9HCgKUBg94AweUywK','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','Dg9ju09tDhjPBMC','ChvZAa','qxv0AgvUDgLJyxrPB24GzMfPBgvKihDPDgGGquKGC2vYDMLJzq','y2HVAwnLCW','C2v0','Bw9KzwXtCgvJCW','zgvLChnLzwS','x2zVCM1HDfnPBMDSzu1LC3nHz2u','C3rVCa','zgf0yq','DMvUzg9YqxbPs2v5','C3rYzwfT','rK9sqKLerevo','mJGZmZHlu1PeDvm','x2zVCM1HDezVCK9Wzw5bsq','z2v0qwDLBNq','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','BwfW','y3jLyxrLza','zxjYB3jiyw5KBgvY','yxbPs2v5','Bg9Nz2vY','l2HLywX0Aa','Bg94AwfbCgLlzxK','revfufnfruS','BgvUz3rO','CMf0zuXPBwL0zxjZ','yMfJA2vUza','mtaYnhGXmdi0','mtqXotGWofDHqxviBq','Cg93'];a0_0x4c95=function(){return _0x558751;};return a0_0x4c95();}function a0_0x179e(_0x1eb0bd,_0x2b1caa){_0x1eb0bd=_0x1eb0bd-0x186;const _0x4c9560=a0_0x4c95();let _0x179e1a=_0x4c9560[_0x1eb0bd];if(a0_0x179e['jnPcVo']===undefined){var _0x172e64=function(_0xb42407){const _0x4a62a2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x26f75f='',_0x3b14a0='';for(let _0x38d2b1=0x0,_0x142940,_0x2bf6f1,_0x1909d9=0x0;_0x2bf6f1=_0xb42407['charAt'](_0x1909d9++);~_0x2bf6f1&&(_0x142940=_0x38d2b1%0x4?_0x142940*0x40+_0x2bf6f1:_0x2bf6f1,_0x38d2b1++%0x4)?_0x26f75f+=String['fromCharCode'](0xff&_0x142940>>(-0x2*_0x38d2b1&0x6)):0x0){_0x2bf6f1=_0x4a62a2['indexOf'](_0x2bf6f1);}for(let _0x229a92=0x0,_0x4dabac=_0x26f75f['length'];_0x229a92<_0x4dabac;_0x229a92++){_0x3b14a0+='%'+('00'+_0x26f75f['charCodeAt'](_0x229a92)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b14a0);};a0_0x179e['EVsFRD']=_0x172e64,a0_0x179e['AVhOeV']={},a0_0x179e['jnPcVo']=!![];}const _0x50e7f9=_0x4c9560[0x0],_0x55edab=_0x1eb0bd+_0x50e7f9,_0x58335e=a0_0x179e['AVhOeV'][_0x55edab];return!_0x58335e?(_0x179e1a=a0_0x179e['EVsFRD'](_0x179e1a),a0_0x179e['AVhOeV'][_0x55edab]=_0x179e1a):_0x179e1a=_0x58335e,_0x179e1a;}const a0_0x150019=a0_0x179e;(function(_0x42ef73,_0x1cffe1){const _0x433730=a0_0x179e,_0x48b968=_0x42ef73();while(!![]){try{const _0x4ca118=parseInt(_0x433730(0x1f9))/0x1+-parseInt(_0x433730(0x192))/0x2*(-parseInt(_0x433730(0x214))/0x3)+parseInt(_0x433730(0x21e))/0x4*(-parseInt(_0x433730(0x1c5))/0x5)+parseInt(_0x433730(0x1c7))/0x6+-parseInt(_0x433730(0x1b8))/0x7*(parseInt(_0x433730(0x1a2))/0x8)+-parseInt(_0x433730(0x1d4))/0x9+parseInt(_0x433730(0x1cc))/0xa*(parseInt(_0x433730(0x201))/0xb);if(_0x4ca118===_0x1cffe1)break;else _0x48b968['push'](_0x48b968['shift']());}catch(_0x54796c){_0x48b968['push'](_0x48b968['shift']());}}}(a0_0x4c95,0x191d1));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x26f75f,_0x3b14a0,_0x38d2b1,_0x142940){const _0x495fec=a0_0x179e;this['config']=_0x26f75f,this[_0x495fec(0x19a)]=_0x3b14a0,this[_0x495fec(0x228)]=_0x38d2b1,this[_0x495fec(0x198)]=_0x142940,this['baseUrl']=_0x26f75f['backend']?.['baseUrl']||_0x495fec(0x22f),this['timeout']=_0x26f75f['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x26f75f[_0x495fec(0x1a0)]?.[_0x495fec(0x1b1)]||0x3,this[_0x495fec(0x19f)]=new Map(),this[_0x495fec(0x208)]=new Map(),this[_0x495fec(0x1b2)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this['_initializeModelSpecs'](),this[_0x495fec(0x1ad)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async['sendMessage'](_0x2bf6f1,_0x1909d9,_0x229a92={}){const _0x40b28d=a0_0x179e,_0x4dabac='req-'+Date[_0x40b28d(0x1b6)]()+'-'+Math['random']()[_0x40b28d(0x1f4)](0x24)[_0x40b28d(0x217)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x40b28d(0x1bb));await this['_checkRateLimit'](_0x2bf6f1);const _0x30a8fe=this['_formatMessagesForModel'](_0x1909d9,_0x2bf6f1,_0x229a92),_0x2c7db4={'model':_0x2bf6f1,'messages':_0x30a8fe,'options':{'max_tokens':this['modelSpecs'][_0x2bf6f1]?.['maxTokens']||0xfa0,'temperature':_0x229a92[_0x40b28d(0x1ee)]||0.7,'stream':_0x229a92[_0x40b28d(0x190)]||![]},'metadata':{'requestId':_0x4dabac,'agentId':_0x229a92[_0x40b28d(0x1fc)],'timestamp':new Date()['toISOString']()}};_0x229a92['systemPrompt']&&(_0x2c7db4[_0x40b28d(0x1af)]=_0x229a92[_0x40b28d(0x1e7)]);this['logger']['info']('Sending\x20message\x20to\x20model:\x20'+_0x2bf6f1,{'requestId':_0x4dabac,'agentId':_0x229a92[_0x40b28d(0x1fc)],'messageCount':Array[_0x40b28d(0x1c2)](_0x1909d9)?_0x1909d9[_0x40b28d(0x19e)]:0x1,'maxTokens':_0x2c7db4[_0x40b28d(0x22a)]});const _0xeac05e=await this[_0x40b28d(0x1de)]('/chat/completions',_0x2c7db4,_0x4dabac,{..._0x229a92,'sessionId':_0x229a92[_0x40b28d(0x21f)],'platformProvided':_0x229a92['platformProvided']||![]});return _0xeac05e[_0x40b28d(0x1f8)]&&await this[_0x40b28d(0x1b7)](_0x229a92['agentId'],_0x2bf6f1,{'prompt_tokens':_0xeac05e[_0x40b28d(0x1f8)]['prompt_tokens']||0x0,'completion_tokens':_0xeac05e[_0x40b28d(0x1f8)][_0x40b28d(0x226)]||0x0,'total_tokens':_0xeac05e[_0x40b28d(0x1f8)]['total_tokens']||0x0}),this['_resetCircuitBreaker'](),{'content':_0xeac05e['choices'][0x0]?.[_0x40b28d(0x1a6)]?.[_0x40b28d(0x211)]||'','model':_0xeac05e[_0x40b28d(0x1dd)],'tokenUsage':_0xeac05e[_0x40b28d(0x1f8)],'requestId':_0x4dabac,'finishReason':_0xeac05e[_0x40b28d(0x188)][0x0]?.[_0x40b28d(0x1ef)]};}catch(_0x538637){this['_recordFailure'](),this[_0x40b28d(0x19a)]['error']('AI\x20service\x20request\x20failed:\x20'+_0x538637['message'],{'requestId':_0x4dabac,'model':_0x2bf6f1,'agentId':_0x229a92[_0x40b28d(0x1fc)],'error':_0x538637['stack']}),await this[_0x40b28d(0x21a)](_0x538637,{'requestId':_0x4dabac,'model':_0x2bf6f1,'agentId':_0x229a92[_0x40b28d(0x1fc)]});throw _0x538637;}}async[a0_0x150019(0x1aa)](_0x2e77c4,_0x5285ef={}){const _0x4e21c6=a0_0x150019;try{const _0x47f259=MODEL_ROUTING[_0x2e77c4['toUpperCase']()]||MODEL_ROUTING[_0x4e21c6(0x1e2)],_0x331bfe=[];for(const _0xa4ae11 of _0x47f259){const _0x544bbc=await this['_checkModelHealth'](_0xa4ae11);_0x544bbc&&_0x331bfe[_0x4e21c6(0x186)](_0xa4ae11);}if(_0x331bfe[_0x4e21c6(0x19e)]===0x0)return this[_0x4e21c6(0x19a)][_0x4e21c6(0x213)]('No\x20healthy\x20models\x20available\x20for\x20task:\x20'+_0x2e77c4+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x430023=_0x331bfe[0x0];if(_0x5285ef['preferredModel']&&_0x331bfe['includes'](_0x5285ef['preferredModel']))_0x430023=_0x5285ef['preferredModel'];else{if(_0x5285ef['complexity']==='high'&&_0x331bfe['includes'](MODELS['ANTHROPIC_OPUS']))_0x430023=MODELS[_0x4e21c6(0x1c1)];else _0x5285ef[_0x4e21c6(0x1f0)]===_0x4e21c6(0x227)&&_0x331bfe[_0x4e21c6(0x223)](MODELS['ANTHROPIC_HAIKU'])&&(_0x430023=MODELS[_0x4e21c6(0x1b9)]);}return this[_0x4e21c6(0x19a)]['info'](_0x4e21c6(0x231)+_0x2e77c4,{'selectedModel':_0x430023,'availableModels':_0x331bfe['length'],'context':_0x5285ef}),_0x430023;}catch(_0x308fe4){return this['logger'][_0x4e21c6(0x22c)]('Model\x20routing\x20failed:\x20'+_0x308fe4[_0x4e21c6(0x1a6)],{'task':_0x2e77c4,'context':_0x5285ef}),MODEL_ROUTING['FALLBACK'][0x0];}}async[a0_0x150019(0x1e5)](_0x3d2b29,_0x4cb4ab){const _0x268de1=a0_0x150019,_0x5b7171=this[_0x268de1(0x18a)][_0x4cb4ab];if(!_0x5b7171)throw new Error(_0x268de1(0x1dc)+_0x4cb4ab);const _0x3b9073=_0x5b7171['contextWindow']*0.8;let _0x7d6070=0x0;const _0x5e081f=[],_0x5a1100=await Promise[_0x268de1(0x200)](_0x3d2b29['map'](async _0x4af32c=>({..._0x4af32c,'estimatedTokens':await this['_estimateTokens'](_0x4af32c[_0x268de1(0x211)],_0x4cb4ab)}))),_0x5a5f10=[..._0x5a1100][_0x268de1(0x1e8)]();for(const _0x17fbf1 of _0x5a5f10){if(_0x7d6070+_0x17fbf1['estimatedTokens']>_0x3b9073){if(_0x5e081f['length']===0x0){const _0x599f14=await this['_truncateMessage'](_0x17fbf1['content'],_0x3b9073);_0x5e081f['unshift']({..._0x17fbf1,'content':_0x599f14,'estimatedTokens':_0x3b9073});}break;}_0x5e081f['unshift'](_0x17fbf1),_0x7d6070+=_0x17fbf1['estimatedTokens'];}const _0x345e66=_0x5a1100['slice'](0x0,-_0x5e081f[_0x268de1(0x19e)]);if(_0x345e66['length']>0x0){const _0x17ee9b=await this['_summarizeMessages'](_0x345e66,_0x4cb4ab);_0x5e081f[_0x268de1(0x22b)]({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x17ee9b,'timestamp':_0x345e66[0x0]['timestamp'],'type':'summary','estimatedTokens':await this['_estimateTokens'](_0x17ee9b,_0x4cb4ab)});}return this['logger'][_0x268de1(0x1b3)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x4cb4ab,{'originalMessages':_0x3d2b29['length'],'compactizedMessages':_0x5e081f[_0x268de1(0x19e)],'estimatedTokens':_0x7d6070,'maxTokens':_0x3b9073}),_0x5e081f;}async['trackUsage'](_0xaf91b9,_0x5dc00c,_0x450d6d,_0x3af156){const _0x5b54b9=a0_0x150019;try{this[_0x5b54b9(0x228)]&&this[_0x5b54b9(0x228)]['trackUsage'](_0xaf91b9,_0x5dc00c,_0x450d6d);}catch(_0x14b366){this['logger'][_0x5b54b9(0x22c)]('Usage\x20tracking\x20failed:\x20'+_0x14b366['message']);}}async[a0_0x150019(0x21a)](_0x12bdc9,_0x1e1b4f){const _0x130fc8=a0_0x150019,_0x18aa90=this['errorHandler']?.[_0x130fc8(0x224)]?.(_0x12bdc9,_0x1e1b4f);switch(_0x12bdc9['status']||_0x12bdc9['code']){case HTTP_STATUS[_0x130fc8(0x1f2)]:this['logger'][_0x130fc8(0x22c)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x1e1b4f,'error':_0x12bdc9[_0x130fc8(0x1a6)]});throw new Error('Invalid\x20request:\x20'+_0x12bdc9['message']);case HTTP_STATUS[_0x130fc8(0x1c6)]:this['logger'][_0x130fc8(0x22c)](_0x130fc8(0x187),{'context':_0x1e1b4f});throw new Error(_0x130fc8(0x20c));case HTTP_STATUS[_0x130fc8(0x191)]:this[_0x130fc8(0x19a)]['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x1e1b4f});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS[_0x130fc8(0x219)]:this[_0x130fc8(0x19a)]['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x1e1b4f});throw new Error(_0x130fc8(0x1d6));case HTTP_STATUS['TOO_MANY_REQUESTS']:this['logger'][_0x130fc8(0x213)](_0x130fc8(0x1d0),{'context':_0x1e1b4f}),await this['_handleRateLimit'](_0x1e1b4f);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS[_0x130fc8(0x20a)]:case HTTP_STATUS[_0x130fc8(0x1a7)]:this['logger'][_0x130fc8(0x22c)]('AI\x20service\x20unavailable',{'context':_0x1e1b4f,'status':_0x12bdc9['status']}),await this['_handleServiceUnavailable'](_0x1e1b4f);throw new Error(_0x130fc8(0x1e4));default:this[_0x130fc8(0x19a)][_0x130fc8(0x22c)](_0x130fc8(0x1f6),{'context':_0x1e1b4f,'error':_0x12bdc9['message']});throw new Error(_0x130fc8(0x1b5)+_0x12bdc9[_0x130fc8(0x1a6)]);}}[a0_0x150019(0x1ed)](_0x5e141b){const _0x45b357=a0_0x150019;this['apiKeyManager']=_0x5e141b,this['logger']?.[_0x45b357(0x1b3)](_0x45b357(0x215),{'hasManager':!!_0x5e141b});}['setAgentPool'](_0x227846){const _0x5b961e=a0_0x150019;this['agentPool']=_0x227846,this[_0x5b961e(0x19a)]?.['info'](_0x5b961e(0x20b),{'hasAgentPool':!!_0x227846});}async[a0_0x150019(0x218)](_0x5eaf42,_0x65b357={}){const _0x144d9=a0_0x150019,_0x5cb1c9=_0x144d9(0x1e0)+Date['now']()+'-'+Math[_0x144d9(0x1ea)]()[_0x144d9(0x1f4)](0x24)['substr'](0x2,0x9);try{if(this[_0x144d9(0x1cb)]())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x5eaf42||typeof _0x5eaf42!==_0x144d9(0x1bf)||_0x5eaf42['trim']()['length']===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x5bd1af=_0x65b357[_0x144d9(0x1dd)]||'flux-1.1-pro',_0x4b7450=_0x65b357['size']||_0x144d9(0x1a1),_0x4abf7f=_0x65b357[_0x144d9(0x207)]||'standard',_0x28a427=_0x65b357['responseFormat']||'url';this['logger']['info']('Generating\x20image\x20with\x20model:\x20'+_0x5bd1af,{'requestId':_0x5cb1c9,'model':_0x5bd1af,'size':_0x4b7450,'quality':_0x4abf7f,'promptLength':_0x5eaf42['length']});const _0x541518={'prompt':_0x5eaf42,'model':_0x5bd1af,'size':_0x4b7450,'quality':_0x4abf7f,'response_format':_0x28a427,'n':0x1,'metadata':{'requestId':_0x5cb1c9,'timestamp':new Date()['toISOString']()}},_0x3d3be6=await this['_makeImageAPIRequest'](_0x541518,_0x5cb1c9,{'sessionId':_0x65b357['sessionId'],'platformProvided':_0x65b357['platformProvided']||![]});return this[_0x144d9(0x212)](),{'url':_0x3d3be6['data']?.[0x0]?.[_0x144d9(0x21b)]||null,'b64_json':_0x3d3be6['data']?.[0x0]?.[_0x144d9(0x1c9)]||null,'model':_0x3d3be6['model']||_0x5bd1af,'requestId':_0x5cb1c9,'revisedPrompt':_0x3d3be6[_0x144d9(0x18e)]?.[0x0]?.[_0x144d9(0x1ca)]||_0x5eaf42};}catch(_0x3d9197){this['_recordFailure'](),this[_0x144d9(0x19a)]['error'](_0x144d9(0x1f3)+_0x3d9197['message'],{'requestId':_0x5cb1c9,'model':_0x65b357[_0x144d9(0x1dd)],'error':_0x3d9197['stack']});throw _0x3d9197;}}async['checkServiceHealth'](){const _0x22c6b0=a0_0x150019;try{const _0x397469=await this['_makeAPIRequest'](_0x22c6b0(0x19b),{},_0x22c6b0(0x1fb));return _0x397469[_0x22c6b0(0x1c3)]===_0x22c6b0(0x1f7);}catch(_0x1cf89e){return![];}}async[a0_0x150019(0x1df)](_0x1bb148,_0x1cb8ef){const _0x2d9dc0=a0_0x150019;try{if(!this['_isValidModel'](_0x1cb8ef))throw new Error(_0x2d9dc0(0x1fd)+_0x1cb8ef);let _0x3694fc=this['conversationManagers']['get'](_0x1bb148);!_0x3694fc&&(_0x3694fc=new ConversationManager(_0x1bb148,this['logger']),this[_0x2d9dc0(0x1ad)][_0x2d9dc0(0x189)](_0x1bb148,_0x3694fc));const _0x263f63=await _0x3694fc[_0x2d9dc0(0x1d1)](_0x1cb8ef),_0xc941ea=await this[_0x2d9dc0(0x1c8)]?.[_0x2d9dc0(0x194)](_0x1bb148);return _0xc941ea&&(_0xc941ea[_0x2d9dc0(0x1bd)]=_0x1cb8ef,await this[_0x2d9dc0(0x1c8)]['persistAgentState'](_0x1bb148)),this[_0x2d9dc0(0x19a)][_0x2d9dc0(0x1b3)](_0x2d9dc0(0x1d9)+_0x1bb148,{'newModel':_0x1cb8ef,'messageCount':_0x263f63[_0x2d9dc0(0x20d)][_0x2d9dc0(0x19e)]}),{'success':!![],'agentId':_0x1bb148,'newModel':_0x1cb8ef,'conversation':_0x263f63};}catch(_0x48b6ac){this['logger']['error']('Model\x20switch\x20failed:\x20'+_0x48b6ac[_0x2d9dc0(0x1a6)],{'agentId':_0x1bb148,'newModel':_0x1cb8ef});throw _0x48b6ac;}}['_initializeModelSpecs'](){const _0x225d93=a0_0x150019,_0x3a666f={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x225d93(0x206)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x225d93(0x1c1)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x225d93(0x1b9)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS[_0x225d93(0x1b0)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS[_0x225d93(0x1d8)]]:{'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[_0x225d93(0x1b0)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x225d93(0x1ba)]]:{'provider':MODEL_PROVIDERS[_0x225d93(0x19d)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x225d93(0x1cf)]]:{'provider':MODEL_PROVIDERS[_0x225d93(0x1d3)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x225d93(0x1db),'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':_0x225d93(0x1db),'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':_0x225d93(0x1db),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x225d93(0x1db),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x3a666f;}[a0_0x150019(0x230)](_0x58f9c7,_0x58d611,_0x2650ae){const _0x26e20e=a0_0x150019,_0x41b825=this[_0x26e20e(0x18a)][_0x58d611]||{'provider':_0x26e20e(0x1db)};let _0x2f2b57;typeof _0x58f9c7===_0x26e20e(0x1bf)?_0x2f2b57=[{'role':_0x26e20e(0x21c),'content':_0x58f9c7}]:_0x2f2b57=_0x58f9c7['map'](_0x48356e=>this['_formatSingleMessage'](_0x48356e,_0x58d611));switch(_0x41b825[_0x26e20e(0x1eb)]){case MODEL_PROVIDERS[_0x26e20e(0x206)]:return this[_0x26e20e(0x205)](_0x2f2b57);case MODEL_PROVIDERS['OPENAI']:return this[_0x26e20e(0x193)](_0x2f2b57);case MODEL_PROVIDERS[_0x26e20e(0x1db)]:return this[_0x26e20e(0x202)](_0x2f2b57);default:return _0x2f2b57;}}[a0_0x150019(0x18c)](_0xc01512,_0x1b5d56){const _0x2d5b47=a0_0x150019;return{'role':_0xc01512[_0x2d5b47(0x1a5)]||_0x2d5b47(0x21c),'content':_0xc01512['content'],'timestamp':_0xc01512[_0x2d5b47(0x22e)]};}[a0_0x150019(0x205)](_0x24e95f){const _0x546fa1=a0_0x150019;return _0x24e95f[_0x546fa1(0x196)](_0x2c2985=>{const _0x39bd85=_0x546fa1;if(_0x2c2985['role']===_0x39bd85(0x1af))return{'role':_0x39bd85(0x21c),'content':_0x39bd85(0x1fe)+_0x2c2985[_0x39bd85(0x211)]};return _0x2c2985;});}['_formatForOpenAI'](_0x31bc10){return _0x31bc10;}['_formatForAzure'](_0x222958){const _0x2a0fa2=a0_0x150019;return _0x222958[_0x2a0fa2(0x196)](_0x2e9df9=>({..._0x2e9df9,'content':typeof _0x2e9df9[_0x2a0fa2(0x211)]==='string'?_0x2e9df9['content']:JSON['stringify'](_0x2e9df9[_0x2a0fa2(0x211)])}));}['_isValidModel'](_0x57c17e){const _0x591de8=a0_0x150019;this[_0x591de8(0x19a)][_0x591de8(0x1a4)](_0x591de8(0x1f5),{'model':_0x57c17e,'modelType':typeof _0x57c17e});if(this[_0x591de8(0x18a)][_0x57c17e]!==undefined)return!![];return this[_0x591de8(0x19a)]['warn'](_0x591de8(0x195),{'model':_0x57c17e,'availableModels':Object[_0x591de8(0x22d)](this[_0x591de8(0x18a)])}),![];}async[a0_0x150019(0x1fa)](_0x3ca937){return!![];}async[a0_0x150019(0x209)](_0xf0064f,_0x2a6133){const _0x103a6c=a0_0x150019;return Math[_0x103a6c(0x20f)](_0xf0064f[_0x103a6c(0x19e)]/0x4);}async['_truncateMessage'](_0x229970,_0x4a5ea0){const _0x515892=a0_0x150019,_0x21937c=_0x4a5ea0*0x4;if(_0x229970[_0x515892(0x19e)]<=_0x21937c)return _0x229970;return _0x229970[_0x515892(0x1d7)](0x0,_0x21937c-0x14)+_0x515892(0x1ae);}async[a0_0x150019(0x1e9)](_0x163629,_0x190bde){const _0xfebd2e=a0_0x150019,_0x1f9e58=_0x163629[_0xfebd2e(0x196)](_0x3794a2=>_0x3794a2[_0xfebd2e(0x1a5)]+':\x20'+_0x3794a2['content'])['join']('\x0a'),_0x22487d=0x1f4;if(_0x1f9e58[_0xfebd2e(0x19e)]<=_0x22487d)return _0x1f9e58;return _0x1f9e58[_0xfebd2e(0x1d7)](0x0,_0x22487d)+'...\x20[conversation\x20summary\x20truncated]';}async[a0_0x150019(0x1de)](_0x5ea211,_0x15e009,_0xdcb505,_0x45c3d1={}){const _0x1e1381=a0_0x150019,_0x114f92=_0x1e1381(0x1ff);let _0x256d0f,_0x493edf=null,_0x39b429=null;this['logger']?.[_0x1e1381(0x1b3)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x1e1381(0x1b4)],'sessionId':_0x45c3d1['sessionId'],'hasSessionId':!!_0x45c3d1['sessionId'],'optionsKeys':Object['keys'](_0x45c3d1),'model':_0x15e009[_0x1e1381(0x1dd)]});if(this[_0x1e1381(0x1b4)]&&_0x45c3d1[_0x1e1381(0x21f)]){const _0x273adf=this['apiKeyManager']['getKeysForRequest'](_0x45c3d1['sessionId'],{'platformProvided':_0x45c3d1[_0x1e1381(0x1da)]||![],'vendor':this[_0x1e1381(0x204)](_0x15e009[_0x1e1381(0x1dd)])});_0x493edf=_0x273adf[_0x1e1381(0x19c)],_0x39b429=_0x273adf[_0x1e1381(0x18f)],this['logger']?.[_0x1e1381(0x1a4)]('Retrieved API keys from session manager',{'sessionId':_0x45c3d1[_0x1e1381(0x21f)],'hasLoxiaKey':!!_0x493edf,'hasVendorKey':!!_0x39b429,'vendor':this[_0x1e1381(0x204)](_0x15e009[_0x1e1381(0x1dd)])});}!_0x493edf&&_0x45c3d1['apiKey']&&(_0x493edf=_0x45c3d1[_0x1e1381(0x199)]);!_0x493edf&&this['config']['apiKey']&&(_0x493edf=this['config']['apiKey']);if(!_0x493edf)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x40ed17=_0x15e009['model'],_0x1d0f3c={'conversationId':_0xdcb505,'message':_0x15e009['messages'][_0x15e009['messages']['length']-0x1]?.['content']||'','messages':_0x15e009['messages'],'model':_0x40ed17,'requestId':_0xdcb505,'options':_0x15e009['options']||{},'platformProvided':_0x45c3d1[_0x1e1381(0x1da)]||![]};_0x15e009[_0x1e1381(0x1af)]&&(_0x1d0f3c[_0x1e1381(0x1e7)]=_0x15e009[_0x1e1381(0x1af)]);_0x45c3d1['platformProvided']?_0x1d0f3c['apiKey']=_0x493edf:(_0x39b429&&(_0x1d0f3c['vendorApiKey']=_0x39b429),_0x45c3d1[_0x1e1381(0x210)]&&(_0x1d0f3c[_0x1e1381(0x210)]=_0x45c3d1['customApiKeys']),_0x1d0f3c['apiKey']=_0x493edf);for(let _0x158635=0x1;_0x158635<=this[_0x1e1381(0x1b1)];_0x158635++){try{this[_0x1e1381(0x19a)]['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x114f92,'model':_0x15e009[_0x1e1381(0x1dd)],'requestId':_0xdcb505,'attempt':_0x158635,'hasApiKey':!!_0x493edf});const _0x5a7be9=await fetch(_0x114f92,{'method':'POST','headers':{'Content-Type':_0x1e1381(0x1e3),'Authorization':'Bearer\x20'+_0x493edf,'X-Request-ID':_0xdcb505},'body':JSON['stringify'](_0x1d0f3c),'timeout':this[_0x1e1381(0x21d)]});if(!_0x5a7be9['ok']){const _0x52e386=await _0x5a7be9['text'](),_0x2bd809=new Error('HTTP\x20'+_0x5a7be9[_0x1e1381(0x1c3)]+':\x20'+_0x5a7be9['statusText']+(_0x52e386?'\x20-\x20'+_0x52e386:''));_0x2bd809['status']=_0x5a7be9['status'];throw _0x2bd809;}const _0x4e1642=await _0x5a7be9['json']();return{'choices':[{'message':{'content':_0x4e1642['content']||'','role':'assistant'},'finish_reason':_0x4e1642['finishReason']||'stop'}],'usage':_0x4e1642[_0x1e1381(0x1f8)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4e1642['model']||_0x15e009[_0x1e1381(0x1dd)],'id':_0x4e1642['requestId']||_0xdcb505};}catch(_0x25eb26){_0x256d0f=_0x25eb26,this[_0x1e1381(0x19a)]['warn'](_0x1e1381(0x1ac),{'attempt':_0x158635,'requestId':_0xdcb505,'error':_0x25eb26[_0x1e1381(0x1a6)],'status':_0x25eb26[_0x1e1381(0x1c3)]});if(_0x158635<this[_0x1e1381(0x1b1)]){const _0x56f1e1=Math[_0x1e1381(0x1a3)](0x2,_0x158635)*0x3e8;this[_0x1e1381(0x19a)]['warn'](_0x1e1381(0x20e)+_0x56f1e1+'ms',{'attempt':_0x158635,'requestId':_0xdcb505}),await new Promise(_0x57c1b2=>setTimeout(_0x57c1b2,_0x56f1e1));}}}this['logger']['error'](_0x1e1381(0x203),{'requestId':_0xdcb505,'error':_0x256d0f[_0x1e1381(0x1a6)]});const _0x40187b=_0x256d0f['message']&&_0x256d0f['message']['includes']('No\x20API\x20key\x20configured');if(_0x40187b)throw new Error('API\x20Configuration\x20Error:\x20'+_0x256d0f[_0x1e1381(0x1a6)]);return{'choices':[{'message':{'content':_0x1e1381(0x1e6)+_0x256d0f[_0x1e1381(0x1a6)],'role':_0x1e1381(0x1ec)},'finish_reason':_0x1e1381(0x18d)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x15e009['model'],'id':_0x1e1381(0x1f1)+_0xdcb505,'error':_0x256d0f['message']};}async[a0_0x150019(0x1cd)](_0x3ce2b9,_0x93e30a,_0x27d485={}){const _0x36df8a=a0_0x150019,_0x38dacb='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0xa44334,_0x4e0c01=null,_0x44e7b0=null;this['logger']?.[_0x36df8a(0x1b3)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x36df8a(0x1b4)],'sessionId':_0x27d485[_0x36df8a(0x21f)],'hasSessionId':!!_0x27d485[_0x36df8a(0x21f)],'model':_0x3ce2b9[_0x36df8a(0x1dd)]});if(this['apiKeyManager']&&_0x27d485['sessionId']){const _0x4c41d2=this['apiKeyManager'][_0x36df8a(0x1c0)](_0x27d485['sessionId'],{'platformProvided':_0x27d485[_0x36df8a(0x1da)]||![],'vendor':this[_0x36df8a(0x204)](_0x3ce2b9[_0x36df8a(0x1dd)])});_0x4e0c01=_0x4c41d2[_0x36df8a(0x19c)],_0x44e7b0=_0x4c41d2['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x27d485[_0x36df8a(0x21f)],'hasLoxiaKey':!!_0x4e0c01,'hasVendorKey':!!_0x44e7b0});}!_0x4e0c01&&_0x27d485['apiKey']&&(_0x4e0c01=_0x27d485[_0x36df8a(0x199)]);!_0x4e0c01&&this[_0x36df8a(0x1ab)][_0x36df8a(0x199)]&&(_0x4e0c01=this[_0x36df8a(0x1ab)][_0x36df8a(0x199)]);if(!_0x4e0c01)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x3b149b={'prompt':_0x3ce2b9['prompt'],'model':_0x3ce2b9['model']||'azure-openai-dalle3','size':_0x3ce2b9['size'],'quality':_0x3ce2b9['quality'],'style':_0x3ce2b9[_0x36df8a(0x225)]||_0x36df8a(0x1be),'n':_0x3ce2b9['n']||0x1,'requestId':_0x93e30a};for(let _0x5de402=0x1;_0x5de402<=this['retryAttempts'];_0x5de402++){try{this[_0x36df8a(0x19a)]['info'](_0x36df8a(0x1ce),{'url':_0x38dacb,'model':_0x3ce2b9[_0x36df8a(0x1dd)],'requestId':_0x93e30a,'attempt':_0x5de402,'hasApiKey':!!_0x4e0c01});const _0x2b2bc9=await fetch(_0x38dacb,{'method':_0x36df8a(0x1c4),'headers':{'Content-Type':_0x36df8a(0x1e3),'Authorization':_0x36df8a(0x1bc)+_0x4e0c01,'X-Request-ID':_0x93e30a},'body':JSON['stringify'](_0x3b149b),'timeout':this[_0x36df8a(0x21d)]*0x2});if(!_0x2b2bc9['ok']){const _0x3d25bb=await _0x2b2bc9['text'](),_0x430e39=new Error('HTTP\x20'+_0x2b2bc9[_0x36df8a(0x1c3)]+':\x20'+_0x2b2bc9['statusText']+(_0x3d25bb?'\x20-\x20'+_0x3d25bb:''));_0x430e39['status']=_0x2b2bc9['status'];throw _0x430e39;}const _0x1ab511=await _0x2b2bc9['json']();return{'data':_0x1ab511['images']||[],'model':_0x1ab511['model']||_0x3ce2b9['model'],'created':_0x1ab511[_0x36df8a(0x197)]||Date[_0x36df8a(0x1b6)](),'usage':_0x1ab511['usage']};}catch(_0x3664a2){_0xa44334=_0x3664a2,this['logger'][_0x36df8a(0x213)](_0x36df8a(0x1d5),{'attempt':_0x5de402,'requestId':_0x93e30a,'error':_0x3664a2[_0x36df8a(0x1a6)],'status':_0x3664a2['status']});if(_0x5de402<this[_0x36df8a(0x1b1)]){const _0x2c1777=Math[_0x36df8a(0x1a3)](0x2,_0x5de402)*0x3e8;this[_0x36df8a(0x19a)]['warn'](_0x36df8a(0x20e)+_0x2c1777+'ms',{'attempt':_0x5de402,'requestId':_0x93e30a}),await new Promise(_0x2a44d8=>setTimeout(_0x2a44d8,_0x2c1777));}}}this['logger'][_0x36df8a(0x22c)]('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x93e30a,'error':_0xa44334[_0x36df8a(0x1a6)]});throw new Error('Image\x20generation\x20failed:\x20'+_0xa44334['message']);}async['_checkRateLimit'](_0xbcdb7f){await new Promise(_0x9671e9=>setTimeout(_0x9671e9,0x64));}async['_handleRateLimit'](_0x726a2f){const _0x1f4d84=a0_0x150019,_0x740181=0xea60;this['logger'][_0x1f4d84(0x1b3)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x740181+'ms',_0x726a2f),await new Promise(_0x171071=>setTimeout(_0x171071,_0x740181));}async[a0_0x150019(0x220)](_0xb796fc){this['_recordFailure']();const _0x4031ab=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x4031ab+'ms',_0xb796fc),await new Promise(_0x3a0db5=>setTimeout(_0x3a0db5,_0x4031ab));}['_isCircuitBreakerOpen'](){const _0x5595c8=a0_0x150019;if(!this[_0x5595c8(0x1b2)][_0x5595c8(0x1a9)])return![];const _0x54c014=Date[_0x5595c8(0x1b6)]()-this['circuitBreaker'][_0x5595c8(0x229)];if(_0x54c014>this[_0x5595c8(0x1b2)]['timeout'])return this['circuitBreaker'][_0x5595c8(0x1a9)]=![],this[_0x5595c8(0x1b2)][_0x5595c8(0x221)]=0x0,![];return!![];}['_recordFailure'](){const _0x34a3fd=a0_0x150019;this['circuitBreaker'][_0x34a3fd(0x221)]++,this[_0x34a3fd(0x1b2)][_0x34a3fd(0x229)]=Date[_0x34a3fd(0x1b6)](),this[_0x34a3fd(0x1b2)]['failures']>=this[_0x34a3fd(0x1b2)][_0x34a3fd(0x1a8)]&&(this['circuitBreaker']['isOpen']=!![],this[_0x34a3fd(0x19a)]['warn'](_0x34a3fd(0x216)));}['_resetCircuitBreaker'](){const _0x26220=a0_0x150019;this[_0x26220(0x1b2)]['failures']>0x0&&(this[_0x26220(0x1b2)]['failures']=0x0,this['circuitBreaker'][_0x26220(0x1a9)]=![],this[_0x26220(0x19a)][_0x26220(0x1b3)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}['_getVendorFromModel'](_0x51521f){const _0xee6e66=a0_0x150019;if(!_0x51521f)return null;const _0x13f499=_0x51521f['toLowerCase']();if(_0x13f499[_0xee6e66(0x223)](_0xee6e66(0x1d2))||_0x13f499['includes']('claude'))return'anthropic';else{if(_0x13f499['includes'](_0xee6e66(0x222))||_0x13f499[_0xee6e66(0x223)]('gpt'))return _0xee6e66(0x222);else{if(_0x13f499[_0xee6e66(0x223)]('deepseek'))return _0xee6e66(0x18b);else{if(_0x13f499[_0xee6e66(0x223)]('phi'))return _0xee6e66(0x1e1);}}}return null;}}class ConversationManager{constructor(_0x54e079,_0x4665ea){const _0x26f1bb=a0_0x150019;this[_0x26f1bb(0x1fc)]=_0x54e079,this['logger']=_0x4665ea,this['conversations']=new Map();}async[a0_0x150019(0x1d1)](_0x337477){const _0x378ce6=a0_0x150019;return{'messages':[],'model':_0x337477,'lastUpdated':new Date()[_0x378ce6(0x232)]()};}}export default AIService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a0_0x3b83(){const _0x307628=['q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','DMvUzg9Y','mtG1nde1Au1IAwnJ','z2v0','Aw5MBW','C2vZC2LVBKTLExm','mJmZndy0n1HpvwHKEG','z2v0u2vZC2LVBKTLExm','zNjVBq','mMH5qNfyza','z2v0s2v5C0zVCLjLCxvLC3q','zgvSzxrL','mtuXmJe4nhrVtM5PzG','C2L6zq','z2XVyMfSs2v5CW','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','nZq4mZCYAuzuD09S','Bg9Nz2vY','CgXHDgzVCM1qCM92AwrLza','nKjNAuvSyW','Bg94AwfbCgLlzxK','DxbKyxrLzef0','DMvUzg9YqxbPs2v5','ndK1otKZmgrLte1cqq','ndm3nNLds0Thua','Dg9ju09tDhjPBMC','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','C2v0r2XVyMfSs2v5CW','odKXmdy2Eu5cvfjX','oxHUvKH1vG','DMvUzg9Ys2v5CW'];a0_0x3b83=function(){return _0x307628;};return a0_0x3b83();}function a0_0x2834(_0x357e6f,_0x43cea9){_0x357e6f=_0x357e6f-0x13b;const _0x3b8346=a0_0x3b83();let _0x2834d3=_0x3b8346[_0x357e6f];if(a0_0x2834['RpOyaS']===undefined){var _0xf445eb=function(_0x2f01d7){const _0x1361cb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x127852='',_0x5bd500='';for(let _0x401ded=0x0,_0x586bfe,_0x27b6a5,_0x4e19b7=0x0;_0x27b6a5=_0x2f01d7['charAt'](_0x4e19b7++);~_0x27b6a5&&(_0x586bfe=_0x401ded%0x4?_0x586bfe*0x40+_0x27b6a5:_0x27b6a5,_0x401ded++%0x4)?_0x127852+=String['fromCharCode'](0xff&_0x586bfe>>(-0x2*_0x401ded&0x6)):0x0){_0x27b6a5=_0x1361cb['indexOf'](_0x27b6a5);}for(let _0x817c41=0x0,_0x124588=_0x127852['length'];_0x817c41<_0x124588;_0x817c41++){_0x5bd500+='%'+('00'+_0x127852['charCodeAt'](_0x817c41)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5bd500);};a0_0x2834['joDVaY']=_0xf445eb,a0_0x2834['nTcoAk']={},a0_0x2834['RpOyaS']=!![];}const _0x2a9617=_0x3b8346[0x0],_0x1efa85=_0x357e6f+_0x2a9617,_0x576e01=a0_0x2834['nTcoAk'][_0x1efa85];return!_0x576e01?(_0x2834d3=a0_0x2834['joDVaY'](_0x2834d3),a0_0x2834['nTcoAk'][_0x1efa85]=_0x2834d3):_0x2834d3=_0x576e01,_0x2834d3;}const a0_0x569524=a0_0x2834;(function(_0x5cec48,_0x5e1f1a){const _0x476532=a0_0x2834,_0xf14ed4=_0x5cec48();while(!![]){try{const _0xcc9a26=-parseInt(_0x476532(0x140))/0x1*(parseInt(_0x476532(0x150))/0x2)+parseInt(_0x476532(0x144))/0x3+-parseInt(_0x476532(0x157))/0x4+parseInt(_0x476532(0x149))/0x5+parseInt(_0x476532(0x13b))/0x6*(parseInt(_0x476532(0x14d))/0x7)+parseInt(_0x476532(0x153))/0x8+parseInt(_0x476532(0x145))/0x9*(-parseInt(_0x476532(0x13f))/0xa);if(_0xcc9a26===_0x5e1f1a)break;else _0xf14ed4['push'](_0xf14ed4['shift']());}catch(_0x1cd194){_0xf14ed4['push'](_0xf14ed4['shift']());}}}(a0_0x3b83,0x294e3));class ApiKeyManager{constructor(_0x127852){const _0xda03bb=a0_0x2834;this[_0xda03bb(0x158)]=_0x127852,this['sessionKeys']=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x5bd500,_0x401ded){const _0xd6779c=a0_0x2834;if(!_0x5bd500)throw new Error('Session\x20ID\x20is\x20required');this[_0xd6779c(0x14c)]['set'](_0x5bd500,{'loxiaApiKey':_0x401ded[_0xd6779c(0x13c)]||null,'vendorKeys':_0x401ded[_0xd6779c(0x146)]||{},'updatedAt':new Date()['toISOString']()}),this['logger']?.[_0xd6779c(0x14b)]('API\x20keys\x20updated\x20for\x20session',{'sessionId':_0x5bd500,'hasLoxiaKey':!!_0x401ded[_0xd6779c(0x13c)],'vendorKeys':Object['keys'](_0x401ded['vendorKeys']||{}),'timestamp':new Date()[_0xd6779c(0x141)]()});}['getSessionKeys'](_0x586bfe){const _0x25d2ea=a0_0x2834;if(!_0x586bfe)return this[_0x25d2ea(0x155)];const _0x27b6a5=this['sessionKeys'][_0x25d2ea(0x14a)](_0x586bfe);if(_0x27b6a5)return _0x27b6a5;return this['globalKeys'];}[a0_0x569524(0x151)](_0x4e19b7,_0x817c41={}){const _0x13288e=a0_0x569524,_0x124588=this[_0x13288e(0x14e)](_0x4e19b7),_0x4e54f7={'loxiaApiKey':_0x124588[_0x13288e(0x13c)],'vendorApiKey':null};return!_0x817c41[_0x13288e(0x159)]&&_0x817c41['vendor']&&_0x124588['vendorKeys']&&(_0x4e54f7[_0x13288e(0x13e)]=_0x124588[_0x13288e(0x146)][_0x817c41[_0x13288e(0x148)]]),_0x4e54f7;}['removeSessionKeys'](_0x4049f7){const _0x312ff6=a0_0x569524;if(this[_0x312ff6(0x14c)][_0x312ff6(0x152)](_0x4049f7))return this['logger']?.[_0x312ff6(0x14b)]('API\x20keys\x20removed\x20for\x20session',{'sessionId':_0x4049f7}),!![];return![];}[a0_0x569524(0x143)](_0x579480){const _0x59356d=a0_0x569524;this[_0x59356d(0x155)]={'loxiaApiKey':_0x579480['loxiaApiKey']||this['globalKeys']['loxiaApiKey'],'vendorKeys':{...this['globalKeys'][_0x59356d(0x146)],..._0x579480[_0x59356d(0x146)]||{}}},this['logger']?.[_0x59356d(0x14b)](_0x59356d(0x142),{'hasLoxiaKey':!!this[_0x59356d(0x155)]['loxiaApiKey'],'vendorKeys':Object['keys'](this[_0x59356d(0x155)][_0x59356d(0x146)])});}['getActiveSessions'](){const _0x1ace71=a0_0x569524;return Array[_0x1ace71(0x14f)](this[_0x1ace71(0x14c)]['entries']())['map'](([_0x1e1c8b,_0x5c6dd0])=>({'sessionId':_0x1e1c8b,'hasLoxiaKey':!!_0x5c6dd0['loxiaApiKey'],'vendorKeys':Object['keys'](_0x5c6dd0[_0x1ace71(0x146)]||{}),'updatedAt':_0x5c6dd0[_0x1ace71(0x13d)]}));}[a0_0x569524(0x156)](_0x5ddca6=0x18*0x3c*0x3c*0x3e8){const _0x4220b9=a0_0x569524,_0x2dfda9=Date['now'](),_0x536029=[];for(const [_0x9d12c8,_0x2712ad]of this['sessionKeys']['entries']()){const _0x2bd975=_0x2dfda9-new Date(_0x2712ad['updatedAt'])['getTime']();_0x2bd975>_0x5ddca6&&_0x536029['push'](_0x9d12c8);}return _0x536029['forEach'](_0x17c7b7=>{const _0x5e90e9=a0_0x2834;this[_0x5e90e9(0x14c)][_0x5e90e9(0x152)](_0x17c7b7);}),_0x536029['length']>0x0&&this[_0x4220b9(0x158)]?.[_0x4220b9(0x14b)](_0x4220b9(0x147),{'expiredSessions':_0x536029['length'],'remainingSessions':this[_0x4220b9(0x14c)][_0x4220b9(0x154)]}),_0x536029['length'];}}export default ApiKeyManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x24ae0e=a0_0x3c07;(function(_0x246eb6,_0x4e6a4b){const _0x1e9a2f=a0_0x3c07,_0x336e47=_0x246eb6();while(!![]){try{const _0x54742c=parseInt(_0x1e9a2f(0x16b))/0x1*(-parseInt(_0x1e9a2f(0x176))/0x2)+parseInt(_0x1e9a2f(0x16c))/0x3*(parseInt(_0x1e9a2f(0x16a))/0x4)+parseInt(_0x1e9a2f(0x160))/0x5*(parseInt(_0x1e9a2f(0x14b))/0x6)+-parseInt(_0x1e9a2f(0x15d))/0x7+-parseInt(_0x1e9a2f(0x151))/0x8+-parseInt(_0x1e9a2f(0x154))/0x9+parseInt(_0x1e9a2f(0x16d))/0xa;if(_0x54742c===_0x4e6a4b)break;else _0x336e47['push'](_0x336e47['shift']());}catch(_0x2a61e2){_0x336e47['push'](_0x336e47['shift']());}}}(a0_0x67e8,0x975de));import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x2f245c,_0x43c7ce){const _0x59e066=a0_0x3c07;this['config']=_0x2f245c,this['logger']=_0x43c7ce,this[_0x59e066(0x168)]=null,this[_0x59e066(0x169)]=null,this[_0x59e066(0x158)]=![],this['azureBackendUrl']='https://autopilot-api.azurewebsites.net',this[_0x59e066(0x142)]=MODEL_ROUTER_CONFIG[_0x59e066(0x166)];}async['initialize'](){const _0x22c382=a0_0x3c07;try{await this[_0x22c382(0x171)](),this[_0x22c382(0x163)](),this['logger']['info']('Benchmark\x20service\x20initialized');}catch(_0x37e541){this[_0x22c382(0x14e)]['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x37e541['message']}),this[_0x22c382(0x168)]=null;}}[a0_0x24ae0e(0x146)](){const _0x2caaf7=a0_0x24ae0e;if(!this[_0x2caaf7(0x168)])return this['logger'][_0x2caaf7(0x15c)]('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this[_0x2caaf7(0x168)];}async['loadBenchmarks'](){const _0x1a7639=a0_0x24ae0e;if(this['isLoading']){this[_0x1a7639(0x14e)][_0x1a7639(0x153)]('Benchmark\x20loading\x20already\x20in\x20progress');return;}this['isLoading']=!![];try{const _0x3718c6=await this['_fetchFromAzureBackend']();if(_0x3718c6)this['benchmarks']=_0x3718c6,this['lastUpdated']=new Date(),this[_0x1a7639(0x14e)]['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x3718c6['models']?.[_0x1a7639(0x159)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x5df557){this[_0x1a7639(0x14e)]['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x5df557[_0x1a7639(0x167)],'endpoint':url}),!this['benchmarks']&&(this['benchmarks']=null);}finally{this[_0x1a7639(0x158)]=![];}}['getBenchmarkTable'](){const _0x41e97c=a0_0x24ae0e,_0x2bb1a0=this[_0x41e97c(0x146)]();return{'lastUpdated':this[_0x41e97c(0x169)]?.[_0x41e97c(0x162)]()||'unknown','models':_0x2bb1a0['models']||[],'tasks':_0x2bb1a0[_0x41e97c(0x148)]||{},'summary':this[_0x41e97c(0x177)](_0x2bb1a0)};}['needsRefresh'](){const _0x7eb59e=a0_0x24ae0e;if(!this['lastUpdated'])return!![];const _0x19a957=Date[_0x7eb59e(0x144)]()-this[_0x7eb59e(0x169)][_0x7eb59e(0x155)]();return _0x19a957>this[_0x7eb59e(0x142)];}async[a0_0x24ae0e(0x14f)](){const _0x3fca96=a0_0x24ae0e,_0x4ace61=this[_0x3fca96(0x147)]+_0x3fca96(0x15a);let _0x5c1b83=null;this[_0x3fca96(0x150)][_0x3fca96(0x14c)]&&(_0x5c1b83=this[_0x3fca96(0x150)][_0x3fca96(0x14c)]);const _0x507f5e={'method':'GET','headers':{'Content-Type':'application/json',..._0x5c1b83&&{'Authorization':'Bearer\x20'+_0x5c1b83}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x4ace61});const _0x35916e=await fetch(_0x4ace61,_0x507f5e);if(!_0x35916e['ok'])throw new Error(_0x3fca96(0x170)+_0x35916e['status']+':\x20'+_0x35916e[_0x3fca96(0x14a)]);const _0x3397d2=await _0x35916e[_0x3fca96(0x15b)]();return _0x3397d2;}[a0_0x24ae0e(0x177)](_0x2a51ff){const _0x59ffce=a0_0x24ae0e,_0xfade9d=_0x2a51ff[_0x59ffce(0x15f)]||[];return{'totalModels':_0xfade9d[_0x59ffce(0x159)],'taskCategories':Object['keys'](_0x2a51ff[_0x59ffce(0x148)]||{}),'bestForCoding':this[_0x59ffce(0x174)](_0xfade9d,_0x59ffce(0x175)),'bestForAnalysis':this['_getBestModelForTask'](_0xfade9d,_0x59ffce(0x165)),'bestForQuickTasks':this['_getBestModelForTask'](_0xfade9d,_0x59ffce(0x141)),'bestForCreative':this[_0x59ffce(0x174)](_0xfade9d,_0x59ffce(0x161)),'fastestModel':this[_0x59ffce(0x157)](_0xfade9d),'mostCostEfficient':this['_getMostCostEfficient'](_0xfade9d)};}['_getBestModelForTask'](_0x3cde1f,_0x2992dc){const _0x14f44b=a0_0x24ae0e;return _0x3cde1f[_0x14f44b(0x14d)](_0x568ac2=>_0x568ac2['tasks']&&_0x568ac2['tasks'][_0x2992dc])['sort']((_0x5a3b5e,_0x4fa569)=>(_0x4fa569[_0x14f44b(0x148)][_0x2992dc][_0x14f44b(0x143)]||0x0)-(_0x5a3b5e['tasks'][_0x2992dc]['score']||0x0))[0x0]?.[_0x14f44b(0x145)]||_0x14f44b(0x152);}['_getFastestModel'](_0x138801){const _0x154a76=a0_0x24ae0e,_0x27d6fa={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x138801['sort']((_0x36af2d,_0x22e3fc)=>{const _0x1314a2=a0_0x3c07,_0x4589a3=Math[_0x1314a2(0x15e)](...Object['values'](_0x36af2d[_0x1314a2(0x148)]||{})[_0x1314a2(0x16f)](_0x2eceec=>_0x27d6fa[_0x2eceec[_0x1314a2(0x149)]]||0x0)),_0x399339=Math[_0x1314a2(0x15e)](...Object[_0x1314a2(0x164)](_0x22e3fc[_0x1314a2(0x148)]||{})[_0x1314a2(0x16f)](_0x24d230=>_0x27d6fa[_0x24d230['speed']]||0x0));return _0x399339-_0x4589a3;})[0x0]?.[_0x154a76(0x145)]||_0x154a76(0x152);}[a0_0x24ae0e(0x172)](_0x57943e){const _0x2b1304=a0_0x24ae0e,_0x22655a={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x57943e['sort']((_0x38936f,_0x115e31)=>{const _0x3520aa=a0_0x3c07,_0xb12857=Math[_0x3520aa(0x15e)](...Object[_0x3520aa(0x164)](_0x38936f[_0x3520aa(0x148)]||{})['map'](_0x1e54eb=>_0x22655a[_0x1e54eb[_0x3520aa(0x173)]]||0x0)),_0x53f5b1=Math['max'](...Object['values'](_0x115e31[_0x3520aa(0x148)]||{})['map'](_0xe37166=>_0x22655a[_0xe37166['cost']]||0x0));return _0x53f5b1-_0xb12857;})[0x0]?.['name']||_0x2b1304(0x152);}['_scheduleRefresh'](){setInterval(async()=>{const _0x338ab5=a0_0x3c07;this['needsRefresh']()&&(this['logger'][_0x338ab5(0x153)]('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this['refreshInterval']);}async[a0_0x24ae0e(0x156)](){const _0x10f18a=a0_0x24ae0e;this[_0x10f18a(0x14e)]['info'](_0x10f18a(0x16e)),await this[_0x10f18a(0x171)]();}['getStatus'](){const _0x4c073d=a0_0x24ae0e;return{'initialized':!!this['benchmarks'],'lastUpdated':this['lastUpdated']?.[_0x4c073d(0x162)]()||null,'source':this[_0x4c073d(0x168)]?.['source']||_0x4c073d(0x152),'modelCount':this[_0x4c073d(0x168)]?.[_0x4c073d(0x15f)]?.['length']||0x0,'isLoading':this[_0x4c073d(0x158)],'needsRefresh':this['needsRefresh']()};}}function a0_0x3c07(_0xfd4f6a,_0x54bffe){_0xfd4f6a=_0xfd4f6a-0x141;const _0x67e8e4=a0_0x67e8();let _0x3c0741=_0x67e8e4[_0xfd4f6a];if(a0_0x3c07['jvkLXK']===undefined){var _0x5122e5=function(_0x1ccb0d){const _0x20d898='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f245c='',_0x43c7ce='';for(let _0x37e541=0x0,_0x3718c6,_0x5df557,_0x2bb1a0=0x0;_0x5df557=_0x1ccb0d['charAt'](_0x2bb1a0++);~_0x5df557&&(_0x3718c6=_0x37e541%0x4?_0x3718c6*0x40+_0x5df557:_0x5df557,_0x37e541++%0x4)?_0x2f245c+=String['fromCharCode'](0xff&_0x3718c6>>(-0x2*_0x37e541&0x6)):0x0){_0x5df557=_0x20d898['indexOf'](_0x5df557);}for(let _0x19a957=0x0,_0x4ace61=_0x2f245c['length'];_0x19a957<_0x4ace61;_0x19a957++){_0x43c7ce+='%'+('00'+_0x2f245c['charCodeAt'](_0x19a957)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x43c7ce);};a0_0x3c07['cQFRnH']=_0x5122e5,a0_0x3c07['aIigre']={},a0_0x3c07['jvkLXK']=!![];}const _0x2b1127=_0x67e8e4[0x0],_0x110cee=_0xfd4f6a+_0x2b1127,_0x2b3d68=a0_0x3c07['aIigre'][_0x110cee];return!_0x2b3d68?(_0x3c0741=a0_0x3c07['cQFRnH'](_0x3c0741),a0_0x3c07['aIigre'][_0x110cee]=_0x3c0741):_0x3c0741=_0x2b3d68,_0x3c0741;}function a0_0x67e8(){const _0x1652c3=['yw5HBhLZAxm','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','BwvZC2fNzq','yMvUy2HTyxjRCW','BgfZDfvWzgf0zwq','nfjeEw9QEa','mti2mtq1reT5D29v','mtK0mtaWnKjcAgnWvG','mtCWmZi0mJbMzMPdyuq','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','BwfW','sfruuca','Bg9HzejLBMnOBwfYA3m','x2DLDe1VC3rdB3n0rwzMAwnPzw50','y29ZDa','x2DLDejLC3rnB2rLBezVCLrHC2S','y29KAw5N','mKf6AhDyCW','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','CxvPy2STDgfZA3m','CMvMCMvZAeLUDgvYDMfS','C2nVCMu','BM93','BMfTzq','z2v0qMvUy2HTyxjRCW','yxP1CMvcywnRzw5KvxjS','DgfZA3m','C3bLzwq','C3rHDhvZvgv4Da','ndiZmta4nKvyAgnQzq','yxbPs2v5','zMLSDgvY','Bg9Nz2vY','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','y29UzMLN','mJq5mdKWnennDMjfrG','Dw5RBM93BG','zgvIDwC','mta3nJK3nJbrwK9lvM8','z2v0vgLTzq','zM9Yy2vszwzYzxnO','x2DLDezHC3rLC3rnB2rLBa','AxnmB2fKAw5N','BgvUz3rO','l2XSBs9TB2rLBc1Izw5JAg1HCMTZ','ANnVBG','zxjYB3i','ntyWodK1m3HAt3nwwq','Bwf4','Bw9KzwXZ','nvHktMTmwq','y3jLyxrPDMu','Dg9ju09tDhjPBMC','x3nJAgvKDwXLuMvMCMvZAa','DMfSDwvZ'];a0_0x67e8=function(){return _0x1652c3;};return a0_0x67e8();}export default BenchmarkService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a0_0x15a2(_0x1b4fb0,_0x21d86f){_0x1b4fb0=_0x1b4fb0-0xfe;const _0x43c493=a0_0x43c4();let _0x15a2b6=_0x43c493[_0x1b4fb0];if(a0_0x15a2['dlXCqV']===undefined){var _0x52189e=function(_0xdfb201){const _0x218bc0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f46d5='',_0x1b33f8='';for(let _0x18e8ed=0x0,_0x2b47d4,_0x5f3230,_0x7c71e0=0x0;_0x5f3230=_0xdfb201['charAt'](_0x7c71e0++);~_0x5f3230&&(_0x2b47d4=_0x18e8ed%0x4?_0x2b47d4*0x40+_0x5f3230:_0x5f3230,_0x18e8ed++%0x4)?_0x3f46d5+=String['fromCharCode'](0xff&_0x2b47d4>>(-0x2*_0x18e8ed&0x6)):0x0){_0x5f3230=_0x218bc0['indexOf'](_0x5f3230);}for(let _0x5d657b=0x0,_0x3d617a=_0x3f46d5['length'];_0x5d657b<_0x3d617a;_0x5d657b++){_0x1b33f8+='%'+('00'+_0x3f46d5['charCodeAt'](_0x5d657b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1b33f8);};a0_0x15a2['wKrQKW']=_0x52189e,a0_0x15a2['zfJWOC']={},a0_0x15a2['dlXCqV']=!![];}const _0x15ae97=_0x43c493[0x0],_0x25978f=_0x1b4fb0+_0x15ae97,_0x159967=a0_0x15a2['zfJWOC'][_0x25978f];return!_0x159967?(_0x15a2b6=a0_0x15a2['wKrQKW'](_0x15a2b6),a0_0x15a2['zfJWOC'][_0x25978f]=_0x15a2b6):_0x15a2b6=_0x159967,_0x15a2b6;}const a0_0x3e6de1=a0_0x15a2;(function(_0x40ad9b,_0x5691a9){const _0x3c7cb4=a0_0x15a2,_0x42d128=_0x40ad9b();while(!![]){try{const _0x35ed40=-parseInt(_0x3c7cb4(0x12b))/0x1+-parseInt(_0x3c7cb4(0x154))/0x2+parseInt(_0x3c7cb4(0x141))/0x3*(-parseInt(_0x3c7cb4(0x119))/0x4)+-parseInt(_0x3c7cb4(0x105))/0x5+parseInt(_0x3c7cb4(0x11f))/0x6+-parseInt(_0x3c7cb4(0x115))/0x7+parseInt(_0x3c7cb4(0x13a))/0x8;if(_0x35ed40===_0x5691a9)break;else _0x42d128['push'](_0x42d128['shift']());}catch(_0x3092af){_0x42d128['push'](_0x42d128['shift']());}}}(a0_0x43c4,0xa7ea5));function a0_0x43c4(){const _0xabd31c=['C2vUzej1zgDLDefSzxj0','z2v0uMvTywLUAw5NqNvKz2v0','Aw5WDxq','z2v0rNvSBfLLyxi','BM93','v0vfs0Xz','DgHYzxnOB2XKx3jLywnOzwq','Aw5MBW','z2v0tw9UDgHlzxK','Dg9Rzw5Z','vg9Rzw5Z','CM91BMq','C3bSAxq','yNvKz2v0qwXLCNq','mZa4mZmZovfQD2fbua','zw50CMLLCW','z2v0','yNvKz2v0x2v4y2vLzgvK','mJa0nJa0y0jMDfPg','z2v0rgf5s2v5','AxnxAxrOAw5cDwrNzxq','DxbKyxrLvxnHz2vfBNrYEq','z2v0v2vLA051BwjLCG','D2vLA2X5','nJG4ntq4mhn1tfDvAq','y3jLyxrLrw1WDhLvC2fNzq','sw52ywXPzcbWzxjPB2q6ia','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','Aw5PDgLHBgL6zvvZywDLrw50CNK','zxHWB3j0vxnHz2veyxrH','DxnHz2u','zM9YrwfJAa','y2HLy2TcDwrNzxrmAw1PDhm','y29TCgXLDgLVBL90B2TLBNm','y2HLy2TuAhjLC2HVBgrbBgvYDhm','BwvZC2fNzq','mta0mtuZnvbXD2rVua','rgf0zq','vxnHz2uGDhjHy2TLza','z2v0vxnHz2u','z2v0rgf0zq','Dg9Rzw5ZqNLeyxK','C2vUzfrOCMvZAg9SzefSzxj0','Dg90ywW','CgfKu3rHCNq','Dg9ju09tDhjPBMC','C2f2zvvZywDLrgf0yq','q29ZDa','Dw5ZAgLMDa','Bg9Nz2vY','y29ZDa','mJi0nZC2mdHnANLRAfm','zgfPBhK','DhjHy2TvC2fNzq','qNvKz2v0igXPBwL0igv4y2vLzgvK','C2v0','y2HLy2TuAhjLC2HVBgq','ugvYAw9K','oxztuvH1yG','yNLnB2rLBa','vxnHz2uGzgf0ysbZyxzLza','Dg90ywXFDg9Rzw5Z','tu9oveHmwq','z2v0v2vLA0TLEq','C3rYAw5NAwz5','veHsrvnit0XeuW','Bw9UDgHSEq','C2v0qNvKz2v0CW','C2v0DxbqzxjPB2rPy1nHDMu','zw1PDa','y29UDMvYDfrVq1nw','zgfPBhLbDMvYywDLCW','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','ywXLCNrZ','yNvKz2v0CW','y29ZDej5rgf5','BgfZDefSzxj0vgLTzxm','mJm2nJa3mKzICvrkrG','C2v0rgf0zq','Bw9KzwXjza','Dw5KzwzPBMvK','CMvXDwvZDhm','ywDLBNrjza','zxjYB3i','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','C29YDa','ANnVBG','D2fYBG','mJi1ndK5nvfNA09HDa','yNLbz2vUDa'];a0_0x43c4=function(){return _0xabd31c;};return a0_0x43c4();}import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x3f46d5,_0x1b33f8){const _0x2b9554=a0_0x15a2;this['config']=_0x3f46d5||{},this[_0x2b9554(0x138)]=_0x1b33f8,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x2b9554(0x151)]={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS[_0x2b9554(0x10c)],'monthly':BUDGET_LIMITS[_0x2b9554(0x145)]},this[_0x2b9554(0x150)]={'enabled':!![],'thresholds':USAGE_ALERTS[_0x2b9554(0x148)],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x2b9554(0x14b)]();}[a0_0x3e6de1(0x13c)](_0x18e8ed,_0x2b47d4,_0x5f3230){const _0x150699=a0_0x3e6de1;try{const _0x7c71e0=this['calculateCost'](_0x2b47d4,_0x5f3230),_0x5d657b=new Date(),_0x3d617a=this['getDayKey'](_0x5d657b),_0x37f865=this[_0x150699(0x146)](_0x5d657b),_0x15730e=this['getMonthKey'](_0x5d657b);this[_0x150699(0x123)](this[_0x150699(0x125)]['daily'],_0x3d617a),this[_0x150699(0x123)](this[_0x150699(0x125)]['weekly'],_0x37f865),this[_0x150699(0x123)](this['usage']['monthly'],_0x15730e);const _0x40c2fc={'agentId':_0x18e8ed,'modelId':_0x2b47d4,'tokens':_0x5f3230['total_tokens'],'cost':_0x7c71e0,'timestamp':_0x5d657b[_0x150699(0x134)]()};return this['updateUsageEntry'](this[_0x150699(0x125)]['daily'][_0x150699(0x117)](_0x3d617a),_0x40c2fc),this[_0x150699(0x11c)](this['usage']['weekly']['get'](_0x37f865),_0x40c2fc),this['updateUsageEntry'](this['usage'][_0x150699(0x149)]['get'](_0x15730e),_0x40c2fc),this['usage'][_0x150699(0x132)][_0x150699(0x110)]+=_0x5f3230[_0x150699(0x144)],this[_0x150699(0x125)][_0x150699(0x132)]['cost']+=_0x7c71e0,this[_0x150699(0x125)]['total']['requests']+=0x1,this[_0x150699(0x127)](_0x3d617a,_0x37f865,_0x15730e),this[_0x150699(0x138)]['info'](_0x150699(0x12d),{'agentId':_0x18e8ed,'modelId':_0x2b47d4,'tokens':_0x5f3230[_0x150699(0x144)],'cost':_0x7c71e0,'totalCost':this[_0x150699(0x125)]['total']['cost']}),{'cost':_0x7c71e0,'totalCost':this['usage']['total']['cost'],'totalTokens':this[_0x150699(0x125)][_0x150699(0x132)]['tokens'],'dailyUsage':this['usage'][_0x150699(0x13b)]['get'](_0x3d617a),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x1185fc){this[_0x150699(0x138)][_0x150699(0x100)]('Failed\x20to\x20track\x20usage',{'error':_0x1185fc[_0x150699(0x12a)],'agentId':_0x18e8ed,'modelId':_0x2b47d4});throw _0x1185fc;}}['calculateCost'](_0x173e67,_0x554feb){const _0x46b8a9=a0_0x3e6de1,_0x274a5e=COST_PER_TOKEN[_0x173e67];if(!_0x274a5e)return this[_0x46b8a9(0x138)]['warn'](_0x46b8a9(0x14f),{'modelId':_0x173e67}),0x0;const _0x4e45c5=(_0x554feb['prompt_tokens']||0x0)*_0x274a5e[_0x46b8a9(0x109)],_0x21c94a=(_0x554feb[_0x46b8a9(0x128)]||0x0)*_0x274a5e['output'];return _0x4e45c5+_0x21c94a;}['getUsage'](_0x3e1214='daily',_0x435de1=new Date()){const _0x4beabc=a0_0x3e6de1;switch(_0x3e1214){case _0x4beabc(0x13b):return this['usage']['daily'][_0x4beabc(0x117)](this['getDayKey'](_0x435de1))||this['createEmptyUsage']();case'weekly':return this['usage'][_0x4beabc(0x11e)]['get'](this['getWeekKey'](_0x435de1))||this['createEmptyUsage']();case _0x4beabc(0x149):return this['usage']['monthly']['get'](this['getMonthKey'](_0x435de1))||this['createEmptyUsage']();case'total':return{...this[_0x4beabc(0x125)][_0x4beabc(0x132)]};default:throw new Error(_0x4beabc(0x121)+_0x3e1214);}}['getAgentUsage'](_0x3a4a6c,_0x46cc76='daily'){const _0x38a65a=a0_0x3e6de1,_0x1a0da8=this[_0x38a65a(0x12e)](_0x46cc76);return _0x1a0da8['byAgent']?.[_0x3a4a6c]||this['createEmptyUsage']();}['getModelUsage'](_0x210860,_0x5b42ca='daily'){const _0x417d30=this['getUsage'](_0x5b42ca);return _0x417d30['byModel']?.[_0x210860]||this['createEmptyUsage']();}[a0_0x3e6de1(0x14a)](_0x5b4472){const _0x20a5dc=a0_0x3e6de1;if(_0x5b4472[_0x20a5dc(0x13b)]!==undefined)this[_0x20a5dc(0x151)][_0x20a5dc(0x13b)]=_0x5b4472['daily'];if(_0x5b4472['weekly']!==undefined)this[_0x20a5dc(0x151)]['weekly']=_0x5b4472[_0x20a5dc(0x11e)];if(_0x5b4472['monthly']!==undefined)this[_0x20a5dc(0x151)][_0x20a5dc(0x149)]=_0x5b4472[_0x20a5dc(0x149)];this[_0x20a5dc(0x138)][_0x20a5dc(0x10e)]('Budget\x20limits\x20updated',this['budgets']),this['saveUsageData']();}[a0_0x3e6de1(0x108)](){const _0x62daa9=a0_0x3e6de1,_0x71c8f4=new Date(),_0x57311c=this['getUsage']('daily',_0x71c8f4),_0x93200c=this['getUsage'](_0x62daa9(0x11e),_0x71c8f4),_0x1e8297=this['getUsage'](_0x62daa9(0x149),_0x71c8f4);return{'daily':Math['max'](0x0,this['budgets'][_0x62daa9(0x13b)]-_0x57311c[_0x62daa9(0x139)]),'weekly':Math['max'](0x0,this['budgets']['weekly']-_0x93200c['cost']),'monthly':Math['max'](0x0,this['budgets'][_0x62daa9(0x149)]-_0x1e8297['cost'])};}[a0_0x3e6de1(0x11b)](_0x538150=a0_0x3e6de1(0x13b)){const _0x36f717=a0_0x3e6de1,_0xb6ef2=this[_0x36f717(0x12e)](_0x538150),_0x497d90=this['budgets'][_0x538150];return _0xb6ef2['cost']<=_0x497d90;}['getUsageTrends'](_0x240a38=0x1e){const _0x57bc51=a0_0x3e6de1,_0xf2a934={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x382600=new Date();let _0x68dbb6=0x0,_0x2a3faa=0x0,_0x2a7450=0x0;const _0x524ac7=new Map(),_0x187a15=new Map();for(let _0x361c59=0x0;_0x361c59<_0x240a38;_0x361c59++){const _0x11a4ca=new Date(_0x382600);_0x11a4ca[_0x57bc51(0x155)](_0x11a4ca[_0x57bc51(0x12f)]()-_0x361c59);const _0x329f85=this[_0x57bc51(0x11a)](_0x11a4ca),_0x51ec72=this['usage']['daily'][_0x57bc51(0x117)](_0x329f85);_0x51ec72?(_0x68dbb6+=_0x51ec72['cost'],_0x2a3faa+=_0x51ec72[_0x57bc51(0x110)],_0x2a7450+=_0x51ec72['requests'],_0xf2a934[_0x57bc51(0x152)]['unshift']({'date':_0x329f85,'cost':_0x51ec72['cost']}),_0xf2a934['tokensByDay']['unshift']({'date':_0x329f85,'tokens':_0x51ec72[_0x57bc51(0x110)]}),Object[_0x57bc51(0x116)](_0x51ec72[_0x57bc51(0x106)]||{})[_0x57bc51(0x126)](([_0x38e562,_0x27d5e2])=>{const _0x413034=_0x57bc51;!_0x524ac7['has'](_0x38e562)&&_0x524ac7[_0x413034(0x13e)](_0x38e562,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0xf8e8f1=_0x524ac7['get'](_0x38e562);_0xf8e8f1[_0x413034(0x139)]+=_0x27d5e2['cost'],_0xf8e8f1['tokens']+=_0x27d5e2['tokens'],_0xf8e8f1['requests']+=_0x27d5e2['requests'];}),Object[_0x57bc51(0x116)](_0x51ec72[_0x57bc51(0x142)]||{})['forEach'](([_0x10e729,_0x4902ad])=>{const _0x4d81e5=_0x57bc51;!_0x187a15['has'](_0x10e729)&&_0x187a15['set'](_0x10e729,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x636a07=_0x187a15[_0x4d81e5(0x117)](_0x10e729);_0x636a07['cost']+=_0x4902ad[_0x4d81e5(0x139)],_0x636a07['tokens']+=_0x4902ad[_0x4d81e5(0x110)],_0x636a07['requests']+=_0x4902ad[_0x4d81e5(0xfe)];})):(_0xf2a934['costByDay']['unshift']({'date':_0x329f85,'cost':0x0}),_0xf2a934[_0x57bc51(0x130)][_0x57bc51(0x137)]({'date':_0x329f85,'tokens':0x0}));}return _0xf2a934[_0x57bc51(0x14e)][_0x57bc51(0x139)]=_0x68dbb6/_0x240a38,_0xf2a934[_0x57bc51(0x14e)][_0x57bc51(0x110)]=_0x2a3faa/_0x240a38,_0xf2a934[_0x57bc51(0x14e)]['requests']=_0x2a7450/_0x240a38,_0xf2a934['topAgents']=Array['from'](_0x524ac7[_0x57bc51(0x116)]())['map'](([_0x16aaf9,_0x45fa51])=>({'id':_0x16aaf9,..._0x45fa51}))['sort']((_0x27c196,_0x20b356)=>_0x20b356['cost']-_0x27c196[_0x57bc51(0x139)])['slice'](0x0,0xa),_0xf2a934['topModels']=Array['from'](_0x187a15['entries']())['map'](([_0x4ece05,_0x2a60b0])=>({'id':_0x4ece05,..._0x2a60b0}))[_0x57bc51(0x102)]((_0x6388d0,_0x2c64d1)=>_0x2c64d1[_0x57bc51(0x139)]-_0x6388d0['cost'])['slice'](0x0,0xa),_0xf2a934;}[a0_0x3e6de1(0x124)](_0x3c3faa=a0_0x3e6de1(0x103),_0x41d1f2=null,_0x14da64=null){const _0x8dcc0c=a0_0x3e6de1,_0x161857={'budgets':this[_0x8dcc0c(0x151)],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x178974=(_0x482462,_0x18dd98)=>{const _0xf0e2ee=_0x8dcc0c,_0x4760c6={};return _0x482462[_0xf0e2ee(0x126)]((_0x38a08c,_0x4a09f6)=>{const _0x3af333=_0x18dd98(_0x4a09f6);(!_0x41d1f2||_0x3af333>=_0x41d1f2)&&(!_0x14da64||_0x3af333<=_0x14da64)&&(_0x4760c6[_0x4a09f6]=_0x38a08c);}),_0x4760c6;};_0x41d1f2||_0x14da64?(_0x161857[_0x8dcc0c(0x13b)]=_0x178974(this[_0x8dcc0c(0x125)]['daily'],_0x54300e=>new Date(_0x54300e)),_0x161857[_0x8dcc0c(0x11e)]=_0x178974(this['usage'][_0x8dcc0c(0x11e)],_0x57983b=>new Date(_0x57983b)),_0x161857[_0x8dcc0c(0x149)]=_0x178974(this[_0x8dcc0c(0x125)]['monthly'],_0x3d199d=>new Date(_0x3d199d+'-01'))):(this['usage'][_0x8dcc0c(0x13b)][_0x8dcc0c(0x126)]((_0x52fea4,_0x4d3acd)=>_0x161857[_0x8dcc0c(0x13b)][_0x4d3acd]=_0x52fea4),this[_0x8dcc0c(0x125)][_0x8dcc0c(0x11e)][_0x8dcc0c(0x126)]((_0x2dff70,_0x118b87)=>_0x161857[_0x8dcc0c(0x11e)][_0x118b87]=_0x2dff70),this['usage'][_0x8dcc0c(0x149)]['forEach']((_0x20685a,_0x4ded4b)=>_0x161857['monthly'][_0x4ded4b]=_0x20685a));if(_0x3c3faa==='csv')return this[_0x8dcc0c(0x14d)](_0x161857);return JSON[_0x8dcc0c(0x147)](_0x161857,null,0x2);}[a0_0x3e6de1(0x123)](_0x5bd921,_0x15f4db){const _0x22a12b=a0_0x3e6de1;!_0x5bd921['has'](_0x15f4db)&&_0x5bd921[_0x22a12b(0x13e)](_0x15f4db,this['createEmptyUsage']());}[a0_0x3e6de1(0x120)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x2e0dc6,_0x32aad5){const _0x49354d=a0_0x3e6de1;_0x2e0dc6[_0x49354d(0x139)]+=_0x32aad5[_0x49354d(0x139)],_0x2e0dc6[_0x49354d(0x110)]+=_0x32aad5['tokens'],_0x2e0dc6['requests']+=0x1,!_0x2e0dc6['byAgent'][_0x32aad5['agentId']]&&(_0x2e0dc6['byAgent'][_0x32aad5[_0x49354d(0xff)]]=this[_0x49354d(0x120)]()),_0x2e0dc6['byAgent'][_0x32aad5[_0x49354d(0xff)]]['cost']+=_0x32aad5['cost'],_0x2e0dc6[_0x49354d(0x106)][_0x32aad5[_0x49354d(0xff)]][_0x49354d(0x110)]+=_0x32aad5['tokens'],_0x2e0dc6[_0x49354d(0x106)][_0x32aad5['agentId']]['requests']+=0x1,!_0x2e0dc6['byModel'][_0x32aad5[_0x49354d(0x156)]]&&(_0x2e0dc6['byModel'][_0x32aad5['modelId']]=this['createEmptyUsage']()),_0x2e0dc6[_0x49354d(0x142)][_0x32aad5['modelId']]['cost']+=_0x32aad5['cost'],_0x2e0dc6['byModel'][_0x32aad5[_0x49354d(0x156)]]['tokens']+=_0x32aad5['tokens'],_0x2e0dc6['byModel'][_0x32aad5[_0x49354d(0x156)]][_0x49354d(0xfe)]+=0x1;}[a0_0x3e6de1(0x127)](_0x23e5e7,_0x38f0f2,_0x42e20f){const _0x3dcc03=a0_0x3e6de1,_0x356b6e=this[_0x3dcc03(0x125)][_0x3dcc03(0x13b)][_0x3dcc03(0x117)](_0x23e5e7),_0x49375e=this[_0x3dcc03(0x125)][_0x3dcc03(0x11e)]['get'](_0x38f0f2),_0x400a4a=this['usage'][_0x3dcc03(0x149)][_0x3dcc03(0x117)](_0x42e20f);_0x356b6e[_0x3dcc03(0x139)]>this['budgets']['daily']&&this['sendBudgetAlert']('daily',_0x356b6e['cost'],this[_0x3dcc03(0x151)]['daily']),_0x49375e[_0x3dcc03(0x139)]>this[_0x3dcc03(0x151)][_0x3dcc03(0x11e)]&&this[_0x3dcc03(0x107)]('weekly',_0x49375e[_0x3dcc03(0x139)],this['budgets']['weekly']),_0x400a4a[_0x3dcc03(0x139)]>this['budgets'][_0x3dcc03(0x149)]&&this['sendBudgetAlert'](_0x3dcc03(0x149),_0x400a4a['cost'],this['budgets'][_0x3dcc03(0x149)]),this[_0x3dcc03(0x129)](_0x356b6e,_0x49375e,_0x400a4a);}[a0_0x3e6de1(0x129)](_0x186c15,_0x47863c,_0x45c778){const _0x5f082b=a0_0x3e6de1,_0x3b5c0a=this[_0x5f082b(0x150)]['thresholds'];this[_0x5f082b(0x13f)](_0x5f082b(0x13b),_0x186c15[_0x5f082b(0x139)],this[_0x5f082b(0x151)]['daily'],_0x3b5c0a),this[_0x5f082b(0x13f)]('weekly',_0x47863c[_0x5f082b(0x139)],this[_0x5f082b(0x151)]['weekly'],_0x3b5c0a),this[_0x5f082b(0x13f)](_0x5f082b(0x149),_0x45c778[_0x5f082b(0x139)],this[_0x5f082b(0x151)][_0x5f082b(0x149)],_0x3b5c0a);}[a0_0x3e6de1(0x13f)](_0x56b964,_0x572d7d,_0x2842ce,_0x223282){const _0x52baf1=a0_0x3e6de1,_0x12de53=_0x572d7d/_0x2842ce*0x64;for(const _0x26892a of _0x223282){if(_0x12de53>=_0x26892a){const _0x1bb8c9=_0x56b964+'_'+_0x26892a,_0x59c42e=this['alerts'][_0x52baf1(0x153)][_0x52baf1(0x117)](_0x1bb8c9),_0x1db4db=Date[_0x52baf1(0x10b)]();(!_0x59c42e||_0x1db4db-_0x59c42e>0x36ee80)&&(this['sendThresholdAlert'](_0x56b964,_0x12de53,_0x26892a,_0x572d7d,_0x2842ce),this[_0x52baf1(0x150)]['lastAlertTimes'][_0x52baf1(0x13e)](_0x1bb8c9,_0x1db4db));break;}}}[a0_0x3e6de1(0x107)](_0x1c6377,_0x4191d7,_0x200690){const _0x3d39ef=a0_0x3e6de1;this[_0x3d39ef(0x138)][_0x3d39ef(0x104)](_0x3d39ef(0x13d),{'period':_0x1c6377,'currentUsage':_0x4191d7,'budgetLimit':_0x200690,'excess':_0x4191d7-_0x200690}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':_0x3d39ef(0x118),'period':_0x1c6377,'currentUsage':_0x4191d7,'budgetLimit':_0x200690,'excess':_0x4191d7-_0x200690});}[a0_0x3e6de1(0x131)](_0x418bdb,_0x4d272c,_0x44e6ca,_0x1cd759,_0x21ffbd){const _0x902da2=a0_0x3e6de1;this[_0x902da2(0x138)]['warn'](_0x902da2(0x101),{'period':_0x418bdb,'percentage':Math[_0x902da2(0x112)](_0x4d272c),'threshold':_0x44e6ca,'usage':_0x1cd759,'budget':_0x21ffbd}),typeof process!==_0x902da2(0x157)&&process[_0x902da2(0x14c)]&&process['emit'](_0x902da2(0x114),{'type':_0x902da2(0x10d),'period':_0x418bdb,'percentage':Math['round'](_0x4d272c),'threshold':_0x44e6ca,'usage':_0x1cd759,'budget':_0x21ffbd});}[a0_0x3e6de1(0x11a)](_0xe8ef5b){const _0x45bdf5=a0_0x3e6de1;return _0xe8ef5b[_0x45bdf5(0x134)]()[_0x45bdf5(0x113)]('T')[0x0];}['getWeekKey'](_0x244b2b){const _0xd2d858=a0_0x3e6de1,_0x53626b=_0x244b2b['getFullYear'](),_0x356cec=this[_0xd2d858(0x11d)](_0x244b2b);return _0x53626b+'-W'+_0x356cec['toString']()[_0xd2d858(0x133)](0x2,'0');}[a0_0x3e6de1(0x10f)](_0x5612aa){const _0x533f4c=a0_0x3e6de1,_0x5686c4=_0x5612aa[_0x533f4c(0x10a)](),_0x4f59c5=_0x5612aa['getMonth']()+0x1;return _0x5686c4+'-'+_0x4f59c5['toString']()['padStart'](0x2,'0');}[a0_0x3e6de1(0x11d)](_0x1d321a){const _0x70820f=new Date(_0x1d321a['getFullYear'](),0x0,0x1),_0x27436e=(_0x1d321a-_0x70820f)/0x5265c00;return Math['ceil']((_0x27436e+_0x70820f['getDay']()+0x1)/0x7);}[a0_0x3e6de1(0x14d)](_0x86226){const _0x4ad074=a0_0x3e6de1,_0x5531b5=[];return _0x5531b5['push']([_0x4ad074(0x140),_0x4ad074(0x12c),_0x4ad074(0x136),_0x4ad074(0x111),'Requests','Agent','Model']),Object['entries'](_0x86226[_0x4ad074(0x13b)])['forEach'](([_0x56bd30,_0xcb0e25])=>{const _0x3453d6=_0x4ad074;_0x5531b5['push'](['Daily',_0x56bd30,_0xcb0e25['cost'],_0xcb0e25[_0x3453d6(0x110)],_0xcb0e25['requests'],'','']),Object[_0x3453d6(0x116)](_0xcb0e25[_0x3453d6(0x106)]||{})[_0x3453d6(0x126)](([_0x5f315c,_0x125039])=>{_0x5531b5['push'](['Daily',_0x56bd30,_0x125039['cost'],_0x125039['tokens'],_0x125039['requests'],_0x5f315c,'']);});}),_0x5531b5['map'](_0x43eace=>_0x43eace['join'](','))['join']('\x0a');}['loadUsageData'](){const _0x4c01b3=a0_0x3e6de1;try{this['logger'][_0x4c01b3(0x10e)]('Budget\x20service\x20initialized');}catch(_0x526485){this['logger']['error'](_0x4c01b3(0x122),{'error':_0x526485[_0x4c01b3(0x12a)]});}}[a0_0x3e6de1(0x135)](){const _0x2a3e38=a0_0x3e6de1;try{this['logger']['debug'](_0x2a3e38(0x143));}catch(_0x447f7b){this[_0x2a3e38(0x138)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0x447f7b[_0x2a3e38(0x12a)]});}}['setupPeriodicSave'](){setInterval(()=>{const _0x398d61=a0_0x15a2;this[_0x398d61(0x135)]();},0x493e0);}}export default BudgetService;
|
|
1
|
+
const a0_0x53020c=a0_0x48be;function a0_0x22dd(){const _0x2f0b48=['y2HLy2TuAhjLC2HVBgrbBgvYDhm','D2vLA2X5','Dg90ywW','z2v0rgf0zq','y29UDMvYDfrVq1nw','z2v0vxnHz2vuCMvUzhm','ywXLCNrZ','Dg90ywXFDg9Rzw5Z','y2vPBa','z2v0tw9KzwXvC2fNzq','refjtfK','yNLnB2rLBa','y29TCgXLDgLVBL90B2TLBNm','qwDLBNq','Dg9Wtw9KzwXZ','Bw9KzwXjza','yNvKz2v0CW','z2v0v2vLA051BwjLCG','z2v0tw9UDgG','DxbKyxrLvxnHz2vfBNrYEq','DhjHy2TvC2fNzq','CMvXDwvZDhm','mZu1otG3mxjsCgHTvG','C2f2zvvZywDLrgf0yq','zNjVBq','uMvXDwvZDhm','CM91BMq','yNLbz2vUDa','vg9Rzw5Z','DxnHz2u','CgfKu3rHCNq','BwfW','zgfPBhLbDMvYywDLCW','Aw5PDgLHBgL6zvvZywDLrw50CNK','y3jLyxrLrw1WDhLvC2fNzq','y29ZDa','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','y29ZDej5rgf5','y2HLy2TuAhjLC2HVBgq','vxnHz2uGzgf0ysbZyxzLza','Dw5ZAgLMDa','DgHYzxnOB2XKx3jLywnOzwq','C2vUzfrOCMvZAg9SzefSzxj0','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','sw52ywXPzcbWzxjPB2q6ia','zgfPBhK','z2v0v2vLA0TLEq','y2HLy2TcDwrNzxrmAw1PDhm','Dg9WqwDLBNrZ','Dg9ju09tDhjPBMC','zM9YrwfJAa','C2v0','Bw9UDgHSEq','Dg9Rzw5ZqNLeyxK','mJKYmZK5nu5kANr4DW','zw1PDa','qNvKz2v0igXPBwL0igv4y2vLzgvK','rgfPBhK','ugvYAw9K','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','ndyZntaWnuTprKHXAa','yNvKz2v0x2v4y2vLzgvK','qNvKz2v0igXPBwL0CYb1CgrHDgvK','Dg9tDhjPBMC','vxnHz2uGDhjHy2TLza','Aw5MBW','z2v0rgf5','AgfZ','Bg9Nz2vY','z2v0rgf5s2v5','C2v0DxbqzxjPB2rPy1nHDMu','mtiZodyYohHVtfj3ta','D2fYBG','ChvZAa','nti5mdG4wNrYyvfw','z2v0tw9UDgHlzxK','C29YDa','AM9PBG','C2vUzej1zgDLDefSzxj0','Dg9Rzw5Z','z2v0vxnHz2u','tu9oveHmwq','odC5mJi2u3fdy1jX','z2v0','mZe4ndeYogP2su16qG','C2v0rgf0zq','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK','zw50CMLLCW','q29ZDa','y29UzMLN','rMfPBgvKihrVihrYywnRihvZywDL','Bwf4'];a0_0x22dd=function(){return _0x2f0b48;};return a0_0x22dd();}function a0_0x48be(_0xfdc79b,_0x1fa0db){_0xfdc79b=_0xfdc79b-0xc8;const _0x22ddae=a0_0x22dd();let _0x48be08=_0x22ddae[_0xfdc79b];if(a0_0x48be['vZGCRl']===undefined){var _0x156344=function(_0x350194){const _0x1fc3f9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5dff3f='',_0x18570b='';for(let _0x3ea41b=0x0,_0x52d4fd,_0x3fdac0,_0x4a1efa=0x0;_0x3fdac0=_0x350194['charAt'](_0x4a1efa++);~_0x3fdac0&&(_0x52d4fd=_0x3ea41b%0x4?_0x52d4fd*0x40+_0x3fdac0:_0x3fdac0,_0x3ea41b++%0x4)?_0x5dff3f+=String['fromCharCode'](0xff&_0x52d4fd>>(-0x2*_0x3ea41b&0x6)):0x0){_0x3fdac0=_0x1fc3f9['indexOf'](_0x3fdac0);}for(let _0xe3ef3d=0x0,_0x13ca66=_0x5dff3f['length'];_0xe3ef3d<_0x13ca66;_0xe3ef3d++){_0x18570b+='%'+('00'+_0x5dff3f['charCodeAt'](_0xe3ef3d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18570b);};a0_0x48be['nlLSBJ']=_0x156344,a0_0x48be['cGfVGO']={},a0_0x48be['vZGCRl']=!![];}const _0x116055=_0x22ddae[0x0],_0x46f3c2=_0xfdc79b+_0x116055,_0x5c0415=a0_0x48be['cGfVGO'][_0x46f3c2];return!_0x5c0415?(_0x48be08=a0_0x48be['nlLSBJ'](_0x48be08),a0_0x48be['cGfVGO'][_0x46f3c2]=_0x48be08):_0x48be08=_0x5c0415,_0x48be08;}(function(_0x57fea3,_0x5136a){const _0x5d15fd=a0_0x48be,_0x24779c=_0x57fea3();while(!![]){try{const _0x44018f=-parseInt(_0x5d15fd(0xff))/0x1+parseInt(_0x5d15fd(0xf7))/0x2+parseInt(_0x5d15fd(0xe3))/0x3+parseInt(_0x5d15fd(0x101))/0x4+-parseInt(_0x5d15fd(0xe9))/0x5+-parseInt(_0x5d15fd(0xf4))/0x6+parseInt(_0x5d15fd(0x11f))/0x7;if(_0x44018f===_0x5136a)break;else _0x24779c['push'](_0x24779c['shift']());}catch(_0x4aff49){_0x24779c['push'](_0x24779c['shift']());}}}(a0_0x22dd,0x81ab9));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x5dff3f,_0x18570b){const _0x16f584=a0_0x48be;this[_0x16f584(0x106)]=_0x5dff3f||{},this['logger']=_0x18570b,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS[_0x16f584(0x113)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x16f584(0xfe)]},this[_0x16f584(0x10f)]={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this['loadUsageData'](),this[_0x16f584(0xf3)]();}[a0_0x53020c(0x11d)](_0x3ea41b,_0x52d4fd,_0x3fdac0){const _0x4d2314=a0_0x53020c;try{const _0x4a1efa=this['calculateCost'](_0x52d4fd,_0x3fdac0),_0xe3ef3d=new Date(),_0x13ca66=this['getDayKey'](_0xe3ef3d),_0x3587e3=this['getWeekKey'](_0xe3ef3d),_0x3fb589=this[_0x4d2314(0xf8)](_0xe3ef3d);this['initializeUsageEntry'](this['usage']['daily'],_0x13ca66),this[_0x4d2314(0xce)](this[_0x4d2314(0xca)][_0x4d2314(0x10a)],_0x3587e3),this[_0x4d2314(0xce)](this['usage'][_0x4d2314(0xe1)],_0x3fb589);const _0x1a8f69={'agentId':_0x3ea41b,'modelId':_0x52d4fd,'tokens':_0x3fdac0['total_tokens'],'cost':_0x4a1efa,'timestamp':_0xe3ef3d[_0x4d2314(0xde)]()};return this[_0x4d2314(0x11c)](this['usage'][_0x4d2314(0xda)][_0x4d2314(0x100)](_0x13ca66),_0x1a8f69),this['updateUsageEntry'](this['usage'][_0x4d2314(0x10a)][_0x4d2314(0x100)](_0x3587e3),_0x1a8f69),this['updateUsageEntry'](this['usage'][_0x4d2314(0xe1)][_0x4d2314(0x100)](_0x3fb589),_0x1a8f69),this['usage'][_0x4d2314(0x10b)]['tokens']+=_0x3fdac0['total_tokens'],this[_0x4d2314(0xca)]['total'][_0x4d2314(0xd0)]+=_0x4a1efa,this['usage'][_0x4d2314(0x10b)]['requests']+=0x1,this['checkBudgetLimits'](_0x13ca66,_0x3587e3,_0x3fb589),this[_0x4d2314(0xf1)][_0x4d2314(0xee)](_0x4d2314(0xed),{'agentId':_0x3ea41b,'modelId':_0x52d4fd,'tokens':_0x3fdac0[_0x4d2314(0x110)],'cost':_0x4a1efa,'totalCost':this[_0x4d2314(0xca)][_0x4d2314(0x10b)]['cost']}),{'cost':_0x4a1efa,'totalCost':this[_0x4d2314(0xca)]['total']['cost'],'totalTokens':this[_0x4d2314(0xca)][_0x4d2314(0x10b)][_0x4d2314(0xfc)],'dailyUsage':this['usage']['daily'][_0x4d2314(0x100)](_0x13ca66),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x5d2c06){this[_0x4d2314(0xf1)]['error'](_0x4d2314(0x107),{'error':_0x5d2c06['message'],'agentId':_0x3ea41b,'modelId':_0x52d4fd});throw _0x5d2c06;}}['calculateCost'](_0x1fbe48,_0x38ae65){const _0x1607d7=a0_0x53020c,_0x1ff12b=COST_PER_TOKEN[_0x1fbe48];if(!_0x1ff12b)return this[_0x1607d7(0xf1)]['warn']('Unknown\x20model\x20for\x20cost\x20calculation',{'modelId':_0x1fbe48}),0x0;const _0x58add8=(_0x38ae65['prompt_tokens']||0x0)*_0x1ff12b['input'],_0x1239b6=(_0x38ae65[_0x1607d7(0x115)]||0x0)*_0x1ff12b['output'];return _0x58add8+_0x1239b6;}['getUsage'](_0x5ed932=a0_0x53020c(0xda),_0x4081be=new Date()){const _0x42b4d1=a0_0x53020c;switch(_0x5ed932){case _0x42b4d1(0xda):return this[_0x42b4d1(0xca)]['daily']['get'](this['getDayKey'](_0x4081be))||this[_0x42b4d1(0xcf)]();case _0x42b4d1(0x10a):return this[_0x42b4d1(0xca)]['weekly']['get'](this[_0x42b4d1(0xdb)](_0x4081be))||this[_0x42b4d1(0xcf)]();case'monthly':return this[_0x42b4d1(0xca)]['monthly']['get'](this['getMonthKey'](_0x4081be))||this[_0x42b4d1(0xcf)]();case _0x42b4d1(0x10b):return{...this[_0x42b4d1(0xca)]['total']};default:throw new Error(_0x42b4d1(0xd9)+_0x5ed932);}}['getAgentUsage'](_0x4ff57c,_0xf85162=a0_0x53020c(0xda)){const _0x12993e=a0_0x53020c,_0x1f8db3=this[_0x12993e(0xfd)](_0xf85162);return _0x1f8db3[_0x12993e(0xc8)]?.[_0x4ff57c]||this['createEmptyUsage']();}[a0_0x53020c(0x112)](_0x34a4cb,_0x13f4bf='daily'){const _0x539404=this['getUsage'](_0x13f4bf);return _0x539404['byModel']?.[_0x34a4cb]||this['createEmptyUsage']();}['setBudgets'](_0x5c7115){const _0x2df3e1=a0_0x53020c;if(_0x5c7115[_0x2df3e1(0xda)]!==undefined)this[_0x2df3e1(0x119)]['daily']=_0x5c7115[_0x2df3e1(0xda)];if(_0x5c7115[_0x2df3e1(0x10a)]!==undefined)this[_0x2df3e1(0x119)]['weekly']=_0x5c7115[_0x2df3e1(0x10a)];if(_0x5c7115[_0x2df3e1(0xe1)]!==undefined)this[_0x2df3e1(0x119)]['monthly']=_0x5c7115[_0x2df3e1(0xe1)];this['logger'][_0x2df3e1(0xee)](_0x2df3e1(0xeb),this[_0x2df3e1(0x119)]),this[_0x2df3e1(0x120)]();}['getRemainingBudget'](){const _0x189a84=a0_0x53020c,_0x80237a=new Date(),_0x38b281=this[_0x189a84(0xfd)](_0x189a84(0xda),_0x80237a),_0x48e694=this[_0x189a84(0xfd)](_0x189a84(0x10a),_0x80237a),_0x29b61f=this[_0x189a84(0xfd)](_0x189a84(0xe1),_0x80237a);return{'daily':Math['max'](0x0,this['budgets'][_0x189a84(0xda)]-_0x38b281['cost']),'weekly':Math[_0x189a84(0x108)](0x0,this[_0x189a84(0x119)]['weekly']-_0x48e694[_0x189a84(0xd0)]),'monthly':Math['max'](0x0,this[_0x189a84(0x119)][_0x189a84(0xe1)]-_0x29b61f[_0x189a84(0xd0)])};}['isWithinBudget'](_0x4a7988=a0_0x53020c(0xda)){const _0x2c5e33=a0_0x53020c,_0x32f9af=this[_0x2c5e33(0xfd)](_0x4a7988),_0x430619=this['budgets'][_0x4a7988];return _0x32f9af[_0x2c5e33(0xd0)]<=_0x430619;}[a0_0x53020c(0x10e)](_0x37b7da=0x1e){const _0x541b3b=a0_0x53020c,_0x521328={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0xba2dcf=new Date();let _0x41710b=0x0,_0x42484b=0x0,_0x15c99a=0x0;const _0x42875b=new Map(),_0x87637d=new Map();for(let _0x5ce57f=0x0;_0x5ce57f<_0x37b7da;_0x5ce57f++){const _0xd08859=new Date(_0xba2dcf);_0xd08859[_0x541b3b(0x102)](_0xd08859[_0x541b3b(0x10c)]()-_0x5ce57f);const _0x38b5bd=this[_0x541b3b(0xf2)](_0xd08859),_0x59cb1c=this[_0x541b3b(0xca)]['daily'][_0x541b3b(0x100)](_0x38b5bd);_0x59cb1c?(_0x41710b+=_0x59cb1c[_0x541b3b(0xd0)],_0x42484b+=_0x59cb1c['tokens'],_0x15c99a+=_0x59cb1c[_0x541b3b(0x11e)],_0x521328[_0x541b3b(0xd2)]['unshift']({'date':_0x38b5bd,'cost':_0x59cb1c['cost']}),_0x521328['tokensByDay']['unshift']({'date':_0x38b5bd,'tokens':_0x59cb1c[_0x541b3b(0xfc)]}),Object[_0x541b3b(0x104)](_0x59cb1c['byAgent']||{})['forEach'](([_0x502608,_0x2b1d13])=>{!_0x42875b['has'](_0x502608)&&_0x42875b['set'](_0x502608,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x9ab9ff=_0x42875b['get'](_0x502608);_0x9ab9ff['cost']+=_0x2b1d13['cost'],_0x9ab9ff['tokens']+=_0x2b1d13['tokens'],_0x9ab9ff['requests']+=_0x2b1d13['requests'];}),Object[_0x541b3b(0x104)](_0x59cb1c[_0x541b3b(0x114)]||{})[_0x541b3b(0xdf)](([_0x40df86,_0x253fb1])=>{const _0x16957e=_0x541b3b;!_0x87637d[_0x16957e(0xf0)](_0x40df86)&&_0x87637d['set'](_0x40df86,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x474020=_0x87637d['get'](_0x40df86);_0x474020['cost']+=_0x253fb1[_0x16957e(0xd0)],_0x474020['tokens']+=_0x253fb1[_0x16957e(0xfc)],_0x474020['requests']+=_0x253fb1['requests'];})):(_0x521328[_0x541b3b(0xd2)]['unshift']({'date':_0x38b5bd,'cost':0x0}),_0x521328[_0x541b3b(0xe2)][_0x541b3b(0xd5)]({'date':_0x38b5bd,'tokens':0x0}));}return _0x521328['dailyAverages']['cost']=_0x41710b/_0x37b7da,_0x521328[_0x541b3b(0xcd)]['tokens']=_0x42484b/_0x37b7da,_0x521328[_0x541b3b(0xcd)][_0x541b3b(0x11e)]=_0x15c99a/_0x37b7da,_0x521328[_0x541b3b(0xdd)]=Array[_0x541b3b(0x121)](_0x42875b[_0x541b3b(0x104)]())[_0x541b3b(0xcc)](([_0xfbb889,_0x1e6421])=>({'id':_0xfbb889,..._0x1e6421}))[_0x541b3b(0xf9)]((_0x2fe089,_0x35ad4c)=>_0x35ad4c['cost']-_0x2fe089['cost'])['slice'](0x0,0xa),_0x521328[_0x541b3b(0x117)]=Array[_0x541b3b(0x121)](_0x87637d['entries']())['map'](([_0x1adf3c,_0x4ca08a])=>({'id':_0x1adf3c,..._0x4ca08a}))[_0x541b3b(0xf9)]((_0x580d49,_0xbb72f1)=>_0xbb72f1['cost']-_0x580d49['cost'])['slice'](0x0,0xa),_0x521328;}['exportUsageData'](_0x322a42='json',_0x32cf31=null,_0x45b232=null){const _0x27de47=a0_0x53020c,_0x1bf2a7={'budgets':this['budgets'],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x21f41f=(_0x15a042,_0x3b4080)=>{const _0x345ca4={};return _0x15a042['forEach']((_0x38852a,_0x3456fb)=>{const _0x43e04e=_0x3b4080(_0x3456fb);(!_0x32cf31||_0x43e04e>=_0x32cf31)&&(!_0x45b232||_0x43e04e<=_0x45b232)&&(_0x345ca4[_0x3456fb]=_0x38852a);}),_0x345ca4;};_0x32cf31||_0x45b232?(_0x1bf2a7['daily']=_0x21f41f(this[_0x27de47(0xca)]['daily'],_0x357ecf=>new Date(_0x357ecf)),_0x1bf2a7[_0x27de47(0x10a)]=_0x21f41f(this['usage']['weekly'],_0xe06d6f=>new Date(_0xe06d6f)),_0x1bf2a7['monthly']=_0x21f41f(this['usage']['monthly'],_0xd27380=>new Date(_0xd27380+'-01'))):(this['usage']['daily']['forEach']((_0x54d917,_0x22c747)=>_0x1bf2a7[_0x27de47(0xda)][_0x22c747]=_0x54d917),this['usage'][_0x27de47(0x10a)]['forEach']((_0x2ef664,_0x5e652b)=>_0x1bf2a7[_0x27de47(0x10a)][_0x5e652b]=_0x2ef664),this[_0x27de47(0xca)][_0x27de47(0xe1)]['forEach']((_0x2d2c3e,_0x2afcbd)=>_0x1bf2a7['monthly'][_0x2afcbd]=_0x2d2c3e));if(_0x322a42==='csv')return this[_0x27de47(0x10d)](_0x1bf2a7);return JSON['stringify'](_0x1bf2a7,null,0x2);}[a0_0x53020c(0xce)](_0x28e727,_0xefe136){const _0x1f82cc=a0_0x53020c;!_0x28e727[_0x1f82cc(0xf0)](_0xefe136)&&_0x28e727[_0x1f82cc(0xe0)](_0xefe136,this['createEmptyUsage']());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x152c93,_0xb39eb8){const _0x1b232d=a0_0x53020c;_0x152c93['cost']+=_0xb39eb8[_0x1b232d(0xd0)],_0x152c93['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93['requests']+=0x1,!_0x152c93['byAgent'][_0xb39eb8['agentId']]&&(_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']]=this[_0x1b232d(0xcf)]()),_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']][_0x1b232d(0xd0)]+=_0xb39eb8['cost'],_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']]['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93[_0x1b232d(0xc8)][_0xb39eb8['agentId']][_0x1b232d(0x11e)]+=0x1,!_0x152c93[_0x1b232d(0x114)][_0xb39eb8[_0x1b232d(0x118)]]&&(_0x152c93[_0x1b232d(0x114)][_0xb39eb8['modelId']]=this[_0x1b232d(0xcf)]()),_0x152c93[_0x1b232d(0x114)][_0xb39eb8['modelId']][_0x1b232d(0xd0)]+=_0xb39eb8['cost'],_0x152c93['byModel'][_0xb39eb8['modelId']]['tokens']+=_0xb39eb8[_0x1b232d(0xfc)],_0x152c93['byModel'][_0xb39eb8['modelId']][_0x1b232d(0x11e)]+=0x1;}[a0_0x53020c(0xdc)](_0x109339,_0x382313,_0x3dd419){const _0x3de2be=a0_0x53020c,_0x3300cc=this[_0x3de2be(0xca)]['daily']['get'](_0x109339),_0x430e0a=this['usage'][_0x3de2be(0x10a)][_0x3de2be(0x100)](_0x382313),_0x3bf67d=this['usage']['monthly']['get'](_0x3dd419);_0x3300cc[_0x3de2be(0xd0)]>this['budgets']['daily']&&this['sendBudgetAlert']('daily',_0x3300cc[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0xda)]),_0x430e0a[_0x3de2be(0xd0)]>this[_0x3de2be(0x119)]['weekly']&&this['sendBudgetAlert'](_0x3de2be(0x10a),_0x430e0a[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0x10a)]),_0x3bf67d['cost']>this['budgets']['monthly']&&this[_0x3de2be(0xfb)](_0x3de2be(0xe1),_0x3bf67d[_0x3de2be(0xd0)],this['budgets'][_0x3de2be(0xe1)]),this['checkThresholdAlerts'](_0x3300cc,_0x430e0a,_0x3bf67d);}[a0_0x53020c(0x109)](_0x243778,_0x256408,_0x466f97){const _0x56b518=a0_0x53020c,_0x468489=this[_0x56b518(0x10f)]['thresholds'];this[_0x56b518(0xd3)](_0x56b518(0xda),_0x243778['cost'],this['budgets'][_0x56b518(0xda)],_0x468489),this['checkThreshold']('weekly',_0x256408[_0x56b518(0xd0)],this[_0x56b518(0x119)][_0x56b518(0x10a)],_0x468489),this[_0x56b518(0xd3)]('monthly',_0x466f97[_0x56b518(0xd0)],this['budgets'][_0x56b518(0xe1)],_0x468489);}[a0_0x53020c(0xd3)](_0xd17774,_0xa6a50c,_0x4467ee,_0x3f4635){const _0x52b590=a0_0x53020c,_0x2640bc=_0xa6a50c/_0x4467ee*0x64;for(const _0x3f4508 of _0x3f4635){if(_0x2640bc>=_0x3f4508){const _0x4aec93=_0xd17774+'_'+_0x3f4508,_0x1f6665=this[_0x52b590(0x10f)]['lastAlertTimes']['get'](_0x4aec93),_0x10e1b5=Date['now']();(!_0x1f6665||_0x10e1b5-_0x1f6665>0x36ee80)&&(this['sendThresholdAlert'](_0xd17774,_0x2640bc,_0x3f4508,_0xa6a50c,_0x4467ee),this['alerts']['lastAlertTimes']['set'](_0x4aec93,_0x10e1b5));break;}}}[a0_0x53020c(0xfb)](_0x30fdd3,_0x1c576c,_0x1b96e5){const _0x24e626=a0_0x53020c;this[_0x24e626(0xf1)][_0x24e626(0xf5)](_0x24e626(0xe5),{'period':_0x30fdd3,'currentUsage':_0x1c576c,'budgetLimit':_0x1b96e5,'excess':_0x1c576c-_0x1b96e5}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':_0x24e626(0xea),'period':_0x30fdd3,'currentUsage':_0x1c576c,'budgetLimit':_0x1b96e5,'excess':_0x1c576c-_0x1b96e5});}[a0_0x53020c(0xd7)](_0x907ff1,_0x5379bb,_0x3c491b,_0x527d2e,_0x5c3396){const _0x159f88=a0_0x53020c;this['logger'][_0x159f88(0xf5)](_0x159f88(0x103),{'period':_0x907ff1,'percentage':Math[_0x159f88(0x123)](_0x5379bb),'threshold':_0x3c491b,'usage':_0x527d2e,'budget':_0x5c3396}),typeof process!=='undefined'&&process['emit']&&process[_0x159f88(0xe4)]('budgetAlert',{'type':_0x159f88(0xd6),'period':_0x907ff1,'percentage':Math['round'](_0x5379bb),'threshold':_0x3c491b,'usage':_0x527d2e,'budget':_0x5c3396});}[a0_0x53020c(0xf2)](_0x5f0ed3){return _0x5f0ed3['toISOString']()['split']('T')[0x0];}[a0_0x53020c(0xdb)](_0x44ce08){const _0x32f77f=a0_0x53020c,_0x25ac6e=_0x44ce08['getFullYear'](),_0x1fb445=this[_0x32f77f(0x11a)](_0x44ce08);return _0x25ac6e+'-W'+_0x1fb445[_0x32f77f(0xec)]()['padStart'](0x2,'0');}[a0_0x53020c(0xf8)](_0x55591c){const _0x184692=a0_0x53020c,_0xd852d8=_0x55591c['getFullYear'](),_0x3e3c78=_0x55591c[_0x184692(0x11b)]()+0x1;return _0xd852d8+'-'+_0x3e3c78[_0x184692(0xec)]()[_0x184692(0xcb)](0x2,'0');}[a0_0x53020c(0x11a)](_0x513f8f){const _0x2079d3=a0_0x53020c,_0x396117=new Date(_0x513f8f['getFullYear'](),0x0,0x1),_0x3c8cdc=(_0x513f8f-_0x396117)/0x5265c00;return Math[_0x2079d3(0x111)]((_0x3c8cdc+_0x396117[_0x2079d3(0xef)]()+0x1)/0x7);}['convertToCSV'](_0x107ed4){const _0x4c578a=a0_0x53020c,_0x31438d=[];return _0x31438d['push']([_0x4c578a(0xe7),'Date',_0x4c578a(0x105),_0x4c578a(0xc9),_0x4c578a(0x122),_0x4c578a(0x116),'Model']),Object['entries'](_0x107ed4[_0x4c578a(0xda)])[_0x4c578a(0xdf)](([_0x1ae115,_0x17db48])=>{const _0x4ffb4f=_0x4c578a;_0x31438d[_0x4ffb4f(0xf6)]([_0x4ffb4f(0xe6),_0x1ae115,_0x17db48[_0x4ffb4f(0xd0)],_0x17db48[_0x4ffb4f(0xfc)],_0x17db48['requests'],'','']),Object[_0x4ffb4f(0x104)](_0x17db48[_0x4ffb4f(0xc8)]||{})['forEach'](([_0x43653d,_0xfd2144])=>{const _0x36887e=_0x4ffb4f;_0x31438d['push'](['Daily',_0x1ae115,_0xfd2144['cost'],_0xfd2144[_0x36887e(0xfc)],_0xfd2144['requests'],_0x43653d,'']);});}),_0x31438d['map'](_0x429aa5=>_0x429aa5[_0x4c578a(0xfa)](','))['join']('\x0a');}['loadUsageData'](){const _0x578391=a0_0x53020c;try{this['logger'][_0x578391(0xee)](_0x578391(0xd8));}catch(_0x483a4f){this['logger']['error'](_0x578391(0xd1),{'error':_0x483a4f['message']});}}[a0_0x53020c(0x120)](){const _0x347f92=a0_0x53020c;try{this[_0x347f92(0xf1)]['debug'](_0x347f92(0xd4));}catch(_0x572709){this['logger']['error'](_0x347f92(0xe8),{'error':_0x572709['message']});}}[a0_0x53020c(0xf3)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}export default BudgetService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x14a836=a0_0x3f03;function a0_0x5e9c(){const _0xaba3b0=['cIaGpc9MAwXLpG','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','zM9YBwf0sw1Hz2vgAwXL','s0iIig1Vzgu9iMnVBNrLBNqIpGO','yxr0ywnOBwvUDfnLCNzPy2u','zMLSzuLK','mJy0otKWEe1TuvPm','BwvZC2fNzq','Dg9Rzw5fC3rPBwf0zq','zM9YBwf0qNL0zxm','C2L6zq','zM9YBwf0q29UDgvUDezPBgu','zxn0Aw1HDgvKvg9Rzw5Z','mtqYndKWvLzRrhbc','Dgv4Da','Bg9Nz2vY','mJK1nZjezfHXEgm','z2v0qwn0AxzLqxr0ywnOBwvUDhm','zM9YBwf0vgv4DezPBgu','yNvPBgreEw5HBwLJq29UDgv4Da','BgvUz3rO','mJyWndeYuKvTEfPY','ChvZAa','mcbcExrLCW','zxn0Aw1HDgvuB3rHBfrVA2vUCW','rxjYB3iGyNvPBgrPBMCGzhLUyw1PyYbJB250zxH0','zMXVB3i','z2v0qxr0ywnOBwvUDfn1Bw1HCNK','Bg9N','zM9YBwf0uMvMzxjLBMnLrMLSzq','mtmYExLet2v2','ica8zMLSzsbUyw1Lpsi','zMLSzxm','Aw1Hz2u','mJfWBNfsDNa','nZyWnJrzAgzIvxm','iIaVpG','mJC5ode2mhzsChbPta','mtfNDwnnCu0','cJXMAwXLlxjLzMvYzw5Jzxm+cG','iIb0ExbLpsi','odHpDu5sAKu','CgrM','y29UDgvUDa','CMvMzxjLBMnL','CMvWBgfJzq','Dg9gAxHLza','z2v0qxr0ywnOBwvUDenVBNrLBNq','Aw5PDgLHBgL6zq','zxnJyxbLwg1S','iIbWyxrOpsi','mtbbwxPor00','iIbZAxPLpsi','Bw9Kzq','nZuZotnWrNPpD04','Cg93'];a0_0x5e9c=function(){return _0xaba3b0;};return a0_0x5e9c();}(function(_0x153b72,_0x2d353b){const _0x255e99=a0_0x3f03,_0x56337e=_0x153b72();while(!![]){try{const _0x19a33b=-parseInt(_0x255e99(0x199))/0x1*(-parseInt(_0x255e99(0x1bb))/0x2)+parseInt(_0x255e99(0x1b1))/0x3+-parseInt(_0x255e99(0x196))/0x4*(-parseInt(_0x255e99(0x1a6))/0x5)+-parseInt(_0x255e99(0x1c0))/0x6*(-parseInt(_0x255e99(0x195))/0x7)+-parseInt(_0x255e99(0x19c))/0x8*(-parseInt(_0x255e99(0x1a9))/0x9)+parseInt(_0x255e99(0x1b8))/0xa*(-parseInt(_0x255e99(0x191))/0xb)+-parseInt(_0x255e99(0x198))/0xc;if(_0x19a33b===_0x2d353b)break;else _0x56337e['push'](_0x56337e['shift']());}catch(_0x46d6ea){_0x56337e['push'](_0x56337e['shift']());}}}(a0_0x5e9c,0x1a2b9));function a0_0x3f03(_0x38c4e0,_0x17818a){_0x38c4e0=_0x38c4e0-0x18b;const _0x5e9cf9=a0_0x5e9c();let _0x3f03df=_0x5e9cf9[_0x38c4e0];if(a0_0x3f03['yeWGEX']===undefined){var _0x37f94e=function(_0x5035a9){const _0x3dc45d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2aa933='',_0x4169f3='';for(let _0x270f50=0x0,_0x3533a9,_0x85cf14,_0x305935=0x0;_0x85cf14=_0x5035a9['charAt'](_0x305935++);~_0x85cf14&&(_0x3533a9=_0x270f50%0x4?_0x3533a9*0x40+_0x85cf14:_0x85cf14,_0x270f50++%0x4)?_0x2aa933+=String['fromCharCode'](0xff&_0x3533a9>>(-0x2*_0x270f50&0x6)):0x0){_0x85cf14=_0x3dc45d['indexOf'](_0x85cf14);}for(let _0x19b4ad=0x0,_0x114147=_0x2aa933['length'];_0x19b4ad<_0x114147;_0x19b4ad++){_0x4169f3+='%'+('00'+_0x2aa933['charCodeAt'](_0x19b4ad)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4169f3);};a0_0x3f03['OCrAim']=_0x37f94e,a0_0x3f03['ryrAcb']={},a0_0x3f03['yeWGEX']=!![];}const _0x58b941=_0x5e9cf9[0x0],_0x122d19=_0x38c4e0+_0x58b941,_0x23b3c8=a0_0x3f03['ryrAcb'][_0x122d19];return!_0x23b3c8?(_0x3f03df=a0_0x3f03['OCrAim'](_0x3f03df),a0_0x3f03['ryrAcb'][_0x122d19]=_0x3f03df):_0x3f03df=_0x23b3c8,_0x3f03df;}import a0_0x2aa933 from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0x4169f3={},_0x270f50=null){const _0x347662=a0_0x3f03;this['config']=_0x4169f3,this[_0x347662(0x1ba)]=_0x270f50,this[_0x347662(0x1af)]=new a0_0x2aa933(_0x4169f3,_0x270f50);}async[a0_0x14a836(0x1a3)](){const _0x589c57=a0_0x14a836;await this[_0x589c57(0x1af)][_0x589c57(0x1a3)]();}async[a0_0x14a836(0x1be)](_0x3533a9){const _0xcabe1a=a0_0x14a836;try{const _0x85cf14=await this[_0xcabe1a(0x1af)][_0xcabe1a(0x1bc)](_0x3533a9);if(_0x85cf14[_0xcabe1a(0x1bf)]===0x0)return'';const _0x305935=_0x85cf14['filter'](_0x182aa4=>_0x182aa4['mode']==='content'),_0x19b4ad=_0x85cf14['filter'](_0x1847f1=>_0x1847f1[_0xcabe1a(0x1a8)]==='reference');let _0x114147='';if(_0x305935[_0xcabe1a(0x1bf)]>0x0){_0x114147+='\x0a<attached-files>\x0a';for(const _0x3d14fa of _0x305935){const _0x10ee07=await this['attachmentService'][_0xcabe1a(0x1a2)](_0x3d14fa[_0xcabe1a(0x1b0)]);if(_0x10ee07){const _0x375204=this[_0xcabe1a(0x1b6)](_0x3d14fa,_0x10ee07);_0x114147+=_0x375204+'\x0a';}}_0x114147+='</attached-files>\x0a';}if(_0x19b4ad['length']>0x0){_0x114147+=_0xcabe1a(0x19a);for(const _0x32c768 of _0x19b4ad){const _0x4aab86=this[_0xcabe1a(0x190)](_0x32c768);_0x114147+=_0x4aab86+'\x0a';}_0x114147+='</file-references>\x0a',_0x114147+='\x0aNote:\x20Referenced\x20files\x20can\x20be\x20accessed\x20using\x20the\x20filesystem\x20tool\x20if\x20needed.\x0a';}return _0x114147;}catch(_0x2abdb1){return this[_0xcabe1a(0x1ba)]?.['error'](_0xcabe1a(0x18c),{'agentId':_0x3533a9,'error':_0x2abdb1['message']}),'';}}['formatContentFile'](_0x4e9efe,_0x47527e){const _0x5ed438=a0_0x14a836,{fileName:_0x48f397,fileType:_0x149217,size:_0xa5dd09,contentType:_0xb66394}=_0x4e9efe,_0x102495=(_0xa5dd09/0x400)['toFixed'](0x2);if(_0xb66394===_0x5ed438(0x1b9))return this[_0x5ed438(0x1bd)](_0x4e9efe,_0x47527e);else{if(_0xb66394===_0x5ed438(0x194))return this['formatImageFile'](_0x4e9efe,_0x47527e);else{if(_0xb66394===_0x5ed438(0x19d))return this['formatPdfFile'](_0x4e9efe,_0x47527e);}}return _0x5ed438(0x192)+this['escapeXml'](_0x48f397)+'\x22\x20type=\x22'+_0x149217+'\x22\x20size=\x22'+_0x102495+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x47527e)+'\x0a\x20\x20</file>';}[a0_0x14a836(0x1bd)](_0x3abc93,_0x4d1106){const _0x5f2449=a0_0x14a836,{fileName:_0x50fa24,fileType:_0xef5404,size:_0x379f72}=_0x3abc93,_0x32e2cd=(_0x379f72/0x400)['toFixed'](0x2);return _0x5f2449(0x192)+this[_0x5f2449(0x1a4)](_0x50fa24)+_0x5f2449(0x19b)+_0xef5404+'\x22\x20size=\x22'+_0x32e2cd+_0x5f2449(0x1ae)+this[_0x5f2449(0x1a4)](_0x4d1106)+_0x5f2449(0x1ab);}[a0_0x14a836(0x1ad)](_0x17890e,_0x5a6fe9){const _0x39f715=a0_0x14a836,{fileName:_0x3bb629,fileType:_0x49fda8,size:_0x342795}=_0x17890e,_0x3fe991=(_0x342795/0x400)[_0x39f715(0x1a1)](0x2);return _0x39f715(0x192)+this[_0x39f715(0x1a4)](_0x3bb629)+'\x22\x20type=\x22'+_0x49fda8+'\x22\x20size=\x22'+_0x3fe991+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x5a6fe9+_0x39f715(0x1ab);}['formatPdfFile'](_0x1397f9,_0x227304){const _0x5c3ed0=a0_0x14a836,{fileName:_0x2c1a29,fileType:_0x1ea997,size:_0x50aef6}=_0x1397f9,_0x396ba2=(_0x50aef6/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x5c3ed0(0x1a4)](_0x2c1a29)+_0x5c3ed0(0x19b)+_0x1ea997+_0x5c3ed0(0x1a7)+_0x396ba2+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x5c3ed0(0x1a4)](_0x227304)+_0x5c3ed0(0x1ab);}['formatReferenceFile'](_0x5c252f){const _0x27f8c2=a0_0x14a836,{fileName:_0x2de4e5,originalPath:_0x33f1a3,size:_0x5caaa7,fileType:_0x5a53c8,lastModified:_0x40a6b9}=_0x5c252f,_0x466005=this[_0x27f8c2(0x1b4)](_0x5caaa7),_0x37ce0f=new Date(_0x40a6b9)['toISOString']()['split']('T')[0x0];return _0x27f8c2(0x192)+this['escapeXml'](_0x2de4e5)+_0x27f8c2(0x1a5)+this['escapeXml'](_0x33f1a3)+_0x27f8c2(0x1a7)+_0x466005+'\x22\x20type=\x22'+_0x5a53c8+'\x22\x20modified=\x22'+_0x37ce0f+_0x27f8c2(0x197);}[a0_0x14a836(0x1a4)](_0x3aada0){const _0x1b9773=a0_0x14a836;if(!_0x3aada0)return'';return _0x3aada0[_0x1b9773(0x1a0)](/&/g,'&')[_0x1b9773(0x1a0)](/</g,'<')[_0x1b9773(0x1a0)](/>/g,'>')['replace'](/"/g,'"')[_0x1b9773(0x1a0)](/'/g,''');}[a0_0x14a836(0x1b4)](_0x248c9d){const _0x282d8a=a0_0x14a836;if(_0x248c9d===0x0)return _0x282d8a(0x1c2);const _0x26fdf1=0x400,_0x40e9cc=['Bytes','KB','MB','GB'],_0x80372d=Math[_0x282d8a(0x18d)](Math[_0x282d8a(0x18f)](_0x248c9d)/Math['log'](_0x26fdf1));return parseFloat((_0x248c9d/Math[_0x282d8a(0x1aa)](_0x26fdf1,_0x80372d))['toFixed'](0x2))+_0x40e9cc[_0x80372d];}async[a0_0x14a836(0x18b)](_0x1d5c96){const _0x4fffab=a0_0x14a836;try{const _0x59e267=await this['attachmentService'][_0x4fffab(0x1bc)](_0x1d5c96);let _0x4657d5=0x0;for(const _0x484c3b of _0x59e267){_0x484c3b['mode']==='content'?_0x4657d5+=_0x484c3b['tokenEstimate']||0x0:_0x4657d5+=0x14;}return _0x4657d5;}catch(_0x12360d){return this[_0x4fffab(0x1ba)]?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x1d5c96,'error':_0x12360d[_0x4fffab(0x1b2)]}),0x0;}}async[a0_0x14a836(0x18e)](_0x1f50ba){const _0x1e487d=a0_0x14a836;try{const _0x1dbdb1=await this['attachmentService'][_0x1e487d(0x1bc)](_0x1f50ba),_0x57e45c={'totalActive':_0x1dbdb1['length'],'contentMode':_0x1dbdb1['filter'](_0x5a2271=>_0x5a2271[_0x1e487d(0x1a8)]===_0x1e487d(0x19e))[_0x1e487d(0x1bf)],'referenceMode':_0x1dbdb1['filter'](_0x2b6623=>_0x2b6623['mode']===_0x1e487d(0x19f))[_0x1e487d(0x1bf)],'estimatedTokens':0x0,'files':[]};for(const _0x583ea9 of _0x1dbdb1){_0x57e45c[_0x1e487d(0x1b7)]+=_0x583ea9[_0x1e487d(0x1b3)]||0x0,_0x57e45c[_0x1e487d(0x193)][_0x1e487d(0x1c1)]({'fileName':_0x583ea9['fileName'],'mode':_0x583ea9[_0x1e487d(0x1a8)],'size':this['formatBytes'](_0x583ea9[_0x1e487d(0x1b5)]),'tokens':_0x583ea9[_0x1e487d(0x1b3)]||0x0});}return _0x57e45c;}catch(_0x4987ac){return this[_0x1e487d(0x1ba)]?.['error'](_0x1e487d(0x1ac),{'agentId':_0x1f50ba,'error':_0x4987ac['message']}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
|