@loxia-labs/loxia-autopilot-one 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +1 -1
- package/bin/loxia-terminal-v2.js +1 -1
- package/bin/loxia-terminal.js +1 -1
- package/bin/start-with-terminal.js +1 -1
- package/package.json +2 -1
- package/scripts/install-scanners.js +1 -1
- package/src/analyzers/CSSAnalyzer.js +1 -1
- package/src/analyzers/ConfigValidator.js +1 -1
- package/src/analyzers/ESLintAnalyzer.js +1 -1
- package/src/analyzers/JavaScriptAnalyzer.js +1 -1
- package/src/analyzers/PrettierFormatter.js +1 -1
- package/src/analyzers/PythonAnalyzer.js +1 -1
- package/src/analyzers/SecurityAnalyzer.js +1 -1
- package/src/analyzers/TypeScriptAnalyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/detector.js +1 -1
- package/src/analyzers/codeCloneDetector/index.js +1 -1
- package/src/analyzers/codeCloneDetector/parser.js +1 -1
- package/src/analyzers/codeCloneDetector/reporter.js +1 -1
- package/src/analyzers/codeCloneDetector/scanner.js +1 -1
- package/src/core/agentPool.js +1 -1
- package/src/core/agentScheduler.js +1 -1
- package/src/core/contextManager.js +1 -1
- package/src/core/messageProcessor.js +1 -1
- package/src/core/orchestrator.js +1 -1
- package/src/core/stateManager.js +1 -1
- package/src/index.js +1 -1
- package/src/interfaces/cli.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
- package/src/interfaces/terminal/api/apiClient.js +1 -1
- package/src/interfaces/terminal/api/messageRouter.js +1 -1
- package/src/interfaces/terminal/api/session.js +1 -1
- package/src/interfaces/terminal/api/websocket.js +1 -1
- package/src/interfaces/terminal/components/AgentCreator.js +1 -1
- package/src/interfaces/terminal/components/AgentEditor.js +1 -1
- package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
- package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
- package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
- package/src/interfaces/terminal/components/Header.js +1 -1
- package/src/interfaces/terminal/components/HelpPanel.js +1 -1
- package/src/interfaces/terminal/components/InputBox.js +1 -1
- package/src/interfaces/terminal/components/Layout.js +1 -1
- package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
- package/src/interfaces/terminal/components/MessageList.js +1 -1
- package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
- package/src/interfaces/terminal/components/SearchPanel.js +1 -1
- package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
- package/src/interfaces/terminal/components/StatusBar.js +1 -1
- package/src/interfaces/terminal/components/TextInput.js +1 -1
- package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
- package/src/interfaces/terminal/config/constants.js +1 -1
- package/src/interfaces/terminal/index.js +1 -1
- package/src/interfaces/terminal/state/useAgentControl.js +1 -1
- package/src/interfaces/terminal/state/useAgents.js +1 -1
- package/src/interfaces/terminal/state/useConnection.js +1 -1
- package/src/interfaces/terminal/state/useMessages.js +1 -1
- package/src/interfaces/terminal/state/useTools.js +1 -1
- package/src/interfaces/terminal/utils/debugLogger.js +1 -1
- package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
- package/src/interfaces/terminal/utils/theme.js +1 -1
- package/src/interfaces/webServer.js +1 -1
- package/src/modules/fileExplorer/controller.js +1 -1
- package/src/modules/fileExplorer/index.js +1 -1
- package/src/modules/fileExplorer/middleware.js +1 -1
- package/src/modules/fileExplorer/routes.js +1 -1
- package/src/services/aiService.js +1 -1
- package/src/services/apiKeyManager.js +1 -1
- package/src/services/benchmarkService.js +1 -1
- package/src/services/budgetService.js +1 -1
- package/src/services/contextInjectionService.js +1 -1
- package/src/services/conversationCompactionService.js +1 -1
- package/src/services/errorHandler.js +1 -1
- package/src/services/fileAttachmentService.js +1 -1
- package/src/services/modelRouterService.js +1 -1
- package/src/services/modelsService.js +1 -1
- package/src/services/qualityInspector.js +1 -1
- package/src/services/tokenCountingService.js +1 -1
- package/src/tools/agentCommunicationTool.js +1 -1
- package/src/tools/agentDelayTool.js +1 -1
- package/src/tools/asyncToolManager.js +1 -1
- package/src/tools/baseTool.js +1 -1
- package/src/tools/browserTool.js +1 -1
- package/src/tools/cloneDetectionTool.js +1 -1
- package/src/tools/dependencyResolverTool.js +1 -1
- package/src/tools/fileContentReplaceTool.js +1 -1
- package/src/tools/fileSystemTool.js +1 -1
- package/src/tools/fileTreeTool.js +1 -1
- package/src/tools/imageTool.js +1 -1
- package/src/tools/importAnalyzerTool.js +1 -1
- package/src/tools/jobDoneTool.js +1 -1
- package/src/tools/seekTool.js +1 -1
- package/src/tools/staticAnalysisTool.js +1 -1
- package/src/tools/taskManagerTool.js +1 -1
- package/src/tools/terminalTool.js +1 -1
- package/src/tools/webTool.js +1 -1
- package/src/types/agent.js +1 -1
- package/src/types/contextReference.js +1 -1
- package/src/types/conversation.js +1 -1
- package/src/types/toolCommand.js +1 -1
- package/src/utilities/attachmentValidator.js +1 -1
- package/src/utilities/configManager.js +1 -1
- package/src/utilities/constants.js +1 -1
- package/src/utilities/directoryAccessManager.js +1 -1
- package/src/utilities/fileProcessor.js +1 -1
- package/src/utilities/logger.js +1 -1
- package/src/utilities/tagParser.js +1 -1
- package/src/utilities/toolConstants.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x1ee68b=a0_0x61d5;function a0_0x61d5(_0x4882a2,_0x573fad){_0x4882a2=_0x4882a2-0x155;const _0x220079=a0_0x2200();let _0x61d5a9=_0x220079[_0x4882a2];if(a0_0x61d5['scDwBa']===undefined){var _0x3ecd92=function(_0xd899fe){const _0x41632a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x531ed3='',_0xe7e58a='';for(let _0x3272c9=0x0,_0x407c1c,_0x50d9f1,_0x4f551c=0x0;_0x50d9f1=_0xd899fe['charAt'](_0x4f551c++);~_0x50d9f1&&(_0x407c1c=_0x3272c9%0x4?_0x407c1c*0x40+_0x50d9f1:_0x50d9f1,_0x3272c9++%0x4)?_0x531ed3+=String['fromCharCode'](0xff&_0x407c1c>>(-0x2*_0x3272c9&0x6)):0x0){_0x50d9f1=_0x41632a['indexOf'](_0x50d9f1);}for(let _0x4df59f=0x0,_0x444377=_0x531ed3['length'];_0x4df59f<_0x444377;_0x4df59f++){_0xe7e58a+='%'+('00'+_0x531ed3['charCodeAt'](_0x4df59f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xe7e58a);};a0_0x61d5['mKhoZX']=_0x3ecd92,a0_0x61d5['bCbyJz']={},a0_0x61d5['scDwBa']=!![];}const _0x45f9a0=_0x220079[0x0],_0x5c5c6d=_0x4882a2+_0x45f9a0,_0x42bc2d=a0_0x61d5['bCbyJz'][_0x5c5c6d];return!_0x42bc2d?(_0x61d5a9=a0_0x61d5['mKhoZX'](_0x61d5a9),a0_0x61d5['bCbyJz'][_0x5c5c6d]=_0x61d5a9):_0x61d5a9=_0x42bc2d,_0x61d5a9;}(function(_0x3249f4,_0x4dcd8f){const _0xb0e11=a0_0x61d5,_0x2cb7ca=_0x3249f4();while(!![]){try{const _0x1ea631=-parseInt(_0xb0e11(0x16a))/0x1*(parseInt(_0xb0e11(0x1aa))/0x2)+-parseInt(_0xb0e11(0x1b5))/0x3+parseInt(_0xb0e11(0x1e4))/0x4+-parseInt(_0xb0e11(0x199))/0x5+parseInt(_0xb0e11(0x191))/0x6+-parseInt(_0xb0e11(0x16b))/0x7+-parseInt(_0xb0e11(0x160))/0x8*(-parseInt(_0xb0e11(0x1e2))/0x9);if(_0x1ea631===_0x4dcd8f)break;else _0x2cb7ca['push'](_0x2cb7ca['shift']());}catch(_0x3394eb){_0x2cb7ca['push'](_0x2cb7ca['shift']());}}}(a0_0x2200,0x4cad3));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x531ed3,_0xe7e58a,_0x3272c9,_0x407c1c){const _0x333a73=a0_0x61d5;this[_0x333a73(0x19b)]=_0x531ed3,this[_0x333a73(0x193)]=_0xe7e58a,this[_0x333a73(0x1c7)]=_0x3272c9,this['errorHandler']=_0x407c1c,this['baseUrl']=_0x531ed3[_0x333a73(0x190)]?.[_0x333a73(0x1a0)]||'https://api.loxia.ai',this[_0x333a73(0x1ce)]=_0x531ed3['backend']?.['timeout']||0xea60,this[_0x333a73(0x1cb)]=_0x531ed3['backend']?.[_0x333a73(0x1cb)]||0x3,this['rateLimiters']=new Map(),this['requestQueue']=new Map(),this[_0x333a73(0x162)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this[_0x333a73(0x17f)]=this['_initializeModelSpecs'](),this[_0x333a73(0x18a)]=new Map(),this['apiKeyManager']=null,this[_0x333a73(0x1eb)]=null;}async[a0_0x1ee68b(0x1f2)](_0x50d9f1,_0x4f551c,_0x4df59f={}){const _0x4f9ecc=a0_0x1ee68b,_0x444377='req-'+Date[_0x4f9ecc(0x1cc)]()+'-'+Math['random']()[_0x4f9ecc(0x1d1)](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x4f9ecc(0x192));await this['_checkRateLimit'](_0x50d9f1);const _0x3d7017=this['_formatMessagesForModel'](_0x4f551c,_0x50d9f1,_0x4df59f),_0x3412d9={'model':_0x50d9f1,'messages':_0x3d7017,'options':{'max_tokens':this[_0x4f9ecc(0x17f)][_0x50d9f1]?.['maxTokens']||0xfa0,'temperature':_0x4df59f[_0x4f9ecc(0x1a6)]||0.7,'stream':_0x4df59f[_0x4f9ecc(0x179)]||![]},'metadata':{'requestId':_0x444377,'agentId':_0x4df59f[_0x4f9ecc(0x1bd)],'timestamp':new Date()['toISOString']()}};_0x4df59f['systemPrompt']&&(_0x3412d9[_0x4f9ecc(0x19f)]=_0x4df59f['systemPrompt']);this['logger'][_0x4f9ecc(0x1ba)]('Sending\x20message\x20to\x20model:\x20'+_0x50d9f1,{'requestId':_0x444377,'agentId':_0x4df59f[_0x4f9ecc(0x1bd)],'messageCount':Array[_0x4f9ecc(0x1b9)](_0x4f551c)?_0x4f551c[_0x4f9ecc(0x1c6)]:0x1,'maxTokens':_0x3412d9['max_tokens']});const _0x2883eb=await this['_makeAPIRequest'](_0x4f9ecc(0x172),_0x3412d9,_0x444377,{..._0x4df59f,'sessionId':_0x4df59f[_0x4f9ecc(0x164)],'platformProvided':_0x4df59f['platformProvided']||![]});return _0x2883eb['usage']&&await this[_0x4f9ecc(0x1e9)](_0x4df59f[_0x4f9ecc(0x1bd)],_0x50d9f1,{'prompt_tokens':_0x2883eb[_0x4f9ecc(0x186)][_0x4f9ecc(0x1e0)]||0x0,'completion_tokens':_0x2883eb[_0x4f9ecc(0x186)]['completion_tokens']||0x0,'total_tokens':_0x2883eb['usage'][_0x4f9ecc(0x184)]||0x0}),this['_resetCircuitBreaker'](),{'content':_0x2883eb['choices'][0x0]?.['message']?.[_0x4f9ecc(0x1df)]||'','model':_0x2883eb[_0x4f9ecc(0x1b1)],'tokenUsage':_0x2883eb['usage'],'requestId':_0x444377,'finishReason':_0x2883eb['choices'][0x0]?.['finish_reason']};}catch(_0x3b5a2b){this[_0x4f9ecc(0x1b0)](),this[_0x4f9ecc(0x193)]['error']('AI\x20service\x20request\x20failed:\x20'+_0x3b5a2b['message'],{'requestId':_0x444377,'model':_0x50d9f1,'agentId':_0x4df59f[_0x4f9ecc(0x1bd)],'error':_0x3b5a2b[_0x4f9ecc(0x180)]}),await this['handleHttpError'](_0x3b5a2b,{'requestId':_0x444377,'model':_0x50d9f1,'agentId':_0x4df59f[_0x4f9ecc(0x1bd)]});throw _0x3b5a2b;}}async[a0_0x1ee68b(0x1a3)](_0x3b42cb,_0x34a913={}){const _0x40517c=a0_0x1ee68b;try{const _0x15ec8f=MODEL_ROUTING[_0x3b42cb[_0x40517c(0x177)]()]||MODEL_ROUTING[_0x40517c(0x197)],_0x4334c0=[];for(const _0xb56c42 of _0x15ec8f){const _0x479560=await this[_0x40517c(0x1b2)](_0xb56c42);_0x479560&&_0x4334c0[_0x40517c(0x168)](_0xb56c42);}if(_0x4334c0[_0x40517c(0x1c6)]===0x0)return this['logger'][_0x40517c(0x1ef)](_0x40517c(0x1a5)+_0x3b42cb+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0xaec4f9=_0x4334c0[0x0];if(_0x34a913[_0x40517c(0x1ae)]&&_0x4334c0[_0x40517c(0x1de)](_0x34a913[_0x40517c(0x1ae)]))_0xaec4f9=_0x34a913[_0x40517c(0x1ae)];else{if(_0x34a913['complexity']==='high'&&_0x4334c0[_0x40517c(0x1de)](MODELS[_0x40517c(0x17e)]))_0xaec4f9=MODELS[_0x40517c(0x17e)];else _0x34a913[_0x40517c(0x1a7)]===_0x40517c(0x1ac)&&_0x4334c0['includes'](MODELS[_0x40517c(0x16e)])&&(_0xaec4f9=MODELS[_0x40517c(0x16e)]);}return this[_0x40517c(0x193)]['info'](_0x40517c(0x196)+_0x3b42cb,{'selectedModel':_0xaec4f9,'availableModels':_0x4334c0['length'],'context':_0x34a913}),_0xaec4f9;}catch(_0x10bfd4){return this[_0x40517c(0x193)]['error'](_0x40517c(0x189)+_0x10bfd4[_0x40517c(0x1ab)],{'task':_0x3b42cb,'context':_0x34a913}),MODEL_ROUTING[_0x40517c(0x197)][0x0];}}async[a0_0x1ee68b(0x155)](_0x52040f,_0x1183b0){const _0x50bd29=a0_0x1ee68b,_0x58869b=this[_0x50bd29(0x17f)][_0x1183b0];if(!_0x58869b)throw new Error(_0x50bd29(0x1d4)+_0x1183b0);const _0x5e76c7=_0x58869b['contextWindow']*0.8;let _0x4f2f74=0x0;const _0x3af523=[],_0x5138d4=await Promise['all'](_0x52040f[_0x50bd29(0x1cd)](async _0x1eda0b=>({..._0x1eda0b,'estimatedTokens':await this['_estimateTokens'](_0x1eda0b[_0x50bd29(0x1df)],_0x1183b0)}))),_0x3d8831=[..._0x5138d4][_0x50bd29(0x1bb)]();for(const _0x22f69d of _0x3d8831){if(_0x4f2f74+_0x22f69d[_0x50bd29(0x1dd)]>_0x5e76c7){if(_0x3af523['length']===0x0){const _0x146d65=await this[_0x50bd29(0x1e5)](_0x22f69d['content'],_0x5e76c7);_0x3af523['unshift']({..._0x22f69d,'content':_0x146d65,'estimatedTokens':_0x5e76c7});}break;}_0x3af523['unshift'](_0x22f69d),_0x4f2f74+=_0x22f69d[_0x50bd29(0x1dd)];}const _0x4d0a8e=_0x5138d4['slice'](0x0,-_0x3af523[_0x50bd29(0x1c6)]);if(_0x4d0a8e['length']>0x0){const _0x1182f9=await this['_summarizeMessages'](_0x4d0a8e,_0x1183b0);_0x3af523[_0x50bd29(0x18f)]({'role':'system','content':'Previous\x20conversation\x20summary:\x20'+_0x1182f9,'timestamp':_0x4d0a8e[0x0]['timestamp'],'type':'summary','estimatedTokens':await this[_0x50bd29(0x1c9)](_0x1182f9,_0x1183b0)});}return this[_0x50bd29(0x193)][_0x50bd29(0x1ba)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x1183b0,{'originalMessages':_0x52040f[_0x50bd29(0x1c6)],'compactizedMessages':_0x3af523['length'],'estimatedTokens':_0x4f2f74,'maxTokens':_0x5e76c7}),_0x3af523;}async[a0_0x1ee68b(0x1e9)](_0x53fdb2,_0x469296,_0xd749e3,_0x4f6a06){const _0x5b0743=a0_0x1ee68b;try{this[_0x5b0743(0x1c7)]&&this[_0x5b0743(0x1c7)][_0x5b0743(0x1e9)](_0x53fdb2,_0x469296,_0xd749e3);}catch(_0x5501b7){this['logger']['error'](_0x5b0743(0x17a)+_0x5501b7[_0x5b0743(0x1ab)]);}}async[a0_0x1ee68b(0x1ea)](_0x599cb9,_0x2c8aeb){const _0xa9f84a=a0_0x1ee68b,_0x122488=this[_0xa9f84a(0x17c)]?.[_0xa9f84a(0x15f)]?.(_0x599cb9,_0x2c8aeb);switch(_0x599cb9[_0xa9f84a(0x1d0)]||_0x599cb9[_0xa9f84a(0x157)]){case HTTP_STATUS[_0xa9f84a(0x1c0)]:this['logger']['error'](_0xa9f84a(0x166),{'context':_0x2c8aeb,'error':_0x599cb9[_0xa9f84a(0x1ab)]});throw new Error(_0xa9f84a(0x1e1)+_0x599cb9[_0xa9f84a(0x1ab)]);case HTTP_STATUS['UNAUTHORIZED']:this[_0xa9f84a(0x193)][_0xa9f84a(0x1be)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x2c8aeb});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0xa9f84a(0x193)]['error']('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x2c8aeb});throw new Error('Access\x20forbidden\x20-\x20insufficient\x20permissions');case HTTP_STATUS['NOT_FOUND']:this['logger']['error'](_0xa9f84a(0x167),{'context':_0x2c8aeb});throw new Error(_0xa9f84a(0x1ad));case HTTP_STATUS['TOO_MANY_REQUESTS']:this[_0xa9f84a(0x193)][_0xa9f84a(0x1ef)]('Rate\x20limit\x20exceeded',{'context':_0x2c8aeb}),await this[_0xa9f84a(0x1af)](_0x2c8aeb);throw new Error(_0xa9f84a(0x1d7));case HTTP_STATUS[_0xa9f84a(0x1b4)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0xa9f84a(0x1f0)]:this['logger']['error']('AI\x20service\x20unavailable',{'context':_0x2c8aeb,'status':_0x599cb9[_0xa9f84a(0x1d0)]}),await this['_handleServiceUnavailable'](_0x2c8aeb);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger'][_0xa9f84a(0x1be)](_0xa9f84a(0x18e),{'context':_0x2c8aeb,'error':_0x599cb9['message']});throw new Error('AI\x20service\x20error:\x20'+_0x599cb9['message']);}}['setApiKeyManager'](_0x23807c){const _0xd2e33=a0_0x1ee68b;this['apiKeyManager']=_0x23807c,this[_0xd2e33(0x193)]?.['info'](_0xd2e33(0x1d3),{'hasManager':!!_0x23807c});}['setAgentPool'](_0x10d559){const _0x494664=a0_0x1ee68b;this['agentPool']=_0x10d559,this[_0x494664(0x193)]?.[_0x494664(0x1ba)]('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x10d559});}async[a0_0x1ee68b(0x159)](_0x2e205b,_0x4a9895={}){const _0x1bf961=a0_0x1ee68b,_0x4943d0='img-'+Date[_0x1bf961(0x1cc)]()+'-'+Math['random']()[_0x1bf961(0x1d1)](0x24)['substr'](0x2,0x9);try{if(this[_0x1bf961(0x16c)]())throw new Error(_0x1bf961(0x192));if(!_0x2e205b||typeof _0x2e205b!=='string'||_0x2e205b[_0x1bf961(0x156)]()['length']===0x0)throw new Error('Image\x20generation\x20requires\x20a\x20non-empty\x20text\x20prompt');const _0x3c5749=_0x4a9895[_0x1bf961(0x1b1)]||'flux-1.1-pro',_0x497d69=_0x4a9895['size']||'1024x1024',_0x55456b=_0x4a9895[_0x1bf961(0x15a)]||_0x1bf961(0x1c2),_0x1958a9=_0x4a9895['responseFormat']||_0x1bf961(0x194);this['logger']['info'](_0x1bf961(0x16f)+_0x3c5749,{'requestId':_0x4943d0,'model':_0x3c5749,'size':_0x497d69,'quality':_0x55456b,'promptLength':_0x2e205b[_0x1bf961(0x1c6)]});const _0xad2bc3={'prompt':_0x2e205b,'model':_0x3c5749,'size':_0x497d69,'quality':_0x55456b,'response_format':_0x1958a9,'n':0x1,'metadata':{'requestId':_0x4943d0,'timestamp':new Date()[_0x1bf961(0x195)]()}},_0x39a37a=await this[_0x1bf961(0x181)](_0xad2bc3,_0x4943d0,{'sessionId':_0x4a9895[_0x1bf961(0x164)],'platformProvided':_0x4a9895['platformProvided']||![]});return this[_0x1bf961(0x1d2)](),{'url':_0x39a37a['data']?.[0x0]?.['url']||null,'b64_json':_0x39a37a['data']?.[0x0]?.[_0x1bf961(0x18c)]||null,'model':_0x39a37a['model']||_0x3c5749,'requestId':_0x4943d0,'revisedPrompt':_0x39a37a[_0x1bf961(0x1a4)]?.[0x0]?.['revised_prompt']||_0x2e205b};}catch(_0x2459d0){this['_recordFailure'](),this[_0x1bf961(0x193)]['error']('Image\x20generation\x20failed:\x20'+_0x2459d0['message'],{'requestId':_0x4943d0,'model':_0x4a9895['model'],'error':_0x2459d0[_0x1bf961(0x180)]});throw _0x2459d0;}}async[a0_0x1ee68b(0x185)](){const _0x1eb631=a0_0x1ee68b;try{const _0x4b91e9=await this[_0x1eb631(0x1bc)]('/health',{},'health-check');return _0x4b91e9[_0x1eb631(0x1d0)]===_0x1eb631(0x183);}catch(_0x2339a4){return![];}}async['switchAgentModel'](_0x3c3840,_0xe358f5){const _0x18c45d=a0_0x1ee68b;try{if(!this['_isValidModel'](_0xe358f5))throw new Error('Invalid\x20model:\x20'+_0xe358f5);let _0xb3a02e=this[_0x18c45d(0x18a)]['get'](_0x3c3840);!_0xb3a02e&&(_0xb3a02e=new ConversationManager(_0x3c3840,this['logger']),this['conversationManagers'][_0x18c45d(0x1e6)](_0x3c3840,_0xb3a02e));const _0x5e79f1=await _0xb3a02e['switchModel'](_0xe358f5),_0x148b0d=await this['agentPool']?.[_0x18c45d(0x174)](_0x3c3840);return _0x148b0d&&(_0x148b0d[_0x18c45d(0x19d)]=_0xe358f5,await this['agentPool'][_0x18c45d(0x1a2)](_0x3c3840)),this[_0x18c45d(0x193)][_0x18c45d(0x1ba)](_0x18c45d(0x16d)+_0x3c3840,{'newModel':_0xe358f5,'messageCount':_0x5e79f1[_0x18c45d(0x1c8)]['length']}),{'success':!![],'agentId':_0x3c3840,'newModel':_0xe358f5,'conversation':_0x5e79f1};}catch(_0x338f03){this['logger'][_0x18c45d(0x1be)](_0x18c45d(0x1c3)+_0x338f03[_0x18c45d(0x1ab)],{'agentId':_0x3c3840,'newModel':_0xe358f5});throw _0x338f03;}}[a0_0x1ee68b(0x15b)](){const _0x2618eb=a0_0x1ee68b,_0x3592db={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS['ANTHROPIC_OPUS']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS[_0x2618eb(0x16e)]]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x2618eb(0x1c1)]]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS[_0x2618eb(0x1c4)],'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[_0x2618eb(0x1c4)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x2618eb(0x1c4)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS['DEEPSEEK_R1']]:{'provider':MODEL_PROVIDERS[_0x2618eb(0x163)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS[_0x2618eb(0x1ca)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x2618eb(0x182),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x2618eb(0x182),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':'AZURE','contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x3592db;}['_formatMessagesForModel'](_0x348d52,_0x3d3dac,_0x2ac02e){const _0x3bd41a=a0_0x1ee68b,_0x4941e0=this['modelSpecs'][_0x3d3dac]||{'provider':_0x3bd41a(0x182)};let _0x517c73;typeof _0x348d52==='string'?_0x517c73=[{'role':'user','content':_0x348d52}]:_0x517c73=_0x348d52[_0x3bd41a(0x1cd)](_0x33a4d8=>this['_formatSingleMessage'](_0x33a4d8,_0x3d3dac));switch(_0x4941e0['provider']){case MODEL_PROVIDERS['ANTHROPIC']:return this['_formatForAnthropic'](_0x517c73);case MODEL_PROVIDERS[_0x3bd41a(0x1c4)]:return this[_0x3bd41a(0x1d5)](_0x517c73);case MODEL_PROVIDERS[_0x3bd41a(0x182)]:return this['_formatForAzure'](_0x517c73);default:return _0x517c73;}}['_formatSingleMessage'](_0x27e0ef,_0x534499){const _0x3adf89=a0_0x1ee68b;return{'role':_0x27e0ef[_0x3adf89(0x161)]||'user','content':_0x27e0ef['content'],'timestamp':_0x27e0ef[_0x3adf89(0x1d6)]};}[a0_0x1ee68b(0x1b6)](_0x49c3a4){const _0x5a5ffb=a0_0x1ee68b;return _0x49c3a4[_0x5a5ffb(0x1cd)](_0x22b8e8=>{const _0x47daee=_0x5a5ffb;if(_0x22b8e8[_0x47daee(0x161)]===_0x47daee(0x19f))return{'role':'user','content':'System:\x20'+_0x22b8e8[_0x47daee(0x1df)]};return _0x22b8e8;});}[a0_0x1ee68b(0x1d5)](_0x28ebb7){return _0x28ebb7;}['_formatForAzure'](_0x4d3eb8){const _0x298095=a0_0x1ee68b;return _0x4d3eb8['map'](_0x4623a0=>({..._0x4623a0,'content':typeof _0x4623a0['content']==='string'?_0x4623a0['content']:JSON[_0x298095(0x15d)](_0x4623a0[_0x298095(0x1df)])}));}['_isValidModel'](_0x13c179){const _0x4d292a=a0_0x1ee68b;this['logger'][_0x4d292a(0x171)]('Validating\x20model',{'model':_0x13c179,'modelType':typeof _0x13c179});if(this['modelSpecs'][_0x13c179]!==undefined)return!![];return this[_0x4d292a(0x193)]['warn'](_0x4d292a(0x15c),{'model':_0x13c179,'availableModels':Object['keys'](this[_0x4d292a(0x17f)])}),![];}async[a0_0x1ee68b(0x1b2)](_0x3f9ec0){return!![];}async['_estimateTokens'](_0x321e1b,_0x1f9ba3){const _0x461ab3=a0_0x1ee68b;return Math['ceil'](_0x321e1b[_0x461ab3(0x1c6)]/0x4);}async['_truncateMessage'](_0x3e5256,_0x5d1e1d){const _0xdba118=a0_0x1ee68b,_0x41d0cc=_0x5d1e1d*0x4;if(_0x3e5256['length']<=_0x41d0cc)return _0x3e5256;return _0x3e5256[_0xdba118(0x19c)](0x0,_0x41d0cc-0x14)+'\x0a...\x20[message\x20truncated]';}async[a0_0x1ee68b(0x19e)](_0x5b9570,_0x4abe4b){const _0x3e6f01=a0_0x1ee68b,_0x4be709=_0x5b9570[_0x3e6f01(0x1cd)](_0x4966a8=>_0x4966a8[_0x3e6f01(0x161)]+':\x20'+_0x4966a8['content'])['join']('\x0a'),_0x1d28ec=0x1f4;if(_0x4be709['length']<=_0x1d28ec)return _0x4be709;return _0x4be709['substring'](0x0,_0x1d28ec)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x3ca7c0,_0x41fc97,_0x303bba,_0x44df24={}){const _0x9324ec=a0_0x1ee68b,_0x4514f7=_0x9324ec(0x198);let _0x4d258a,_0x2751e9=null,_0x3cd9bf=null;this['logger']?.[_0x9324ec(0x1ba)]('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x44df24['sessionId'],'hasSessionId':!!_0x44df24['sessionId'],'optionsKeys':Object['keys'](_0x44df24),'model':_0x41fc97[_0x9324ec(0x1b1)]});if(this[_0x9324ec(0x1dc)]&&_0x44df24['sessionId']){const _0x34445d=this['apiKeyManager']['getKeysForRequest'](_0x44df24[_0x9324ec(0x164)],{'platformProvided':_0x44df24['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0x41fc97[_0x9324ec(0x1b1)])});_0x2751e9=_0x34445d[_0x9324ec(0x1cf)],_0x3cd9bf=_0x34445d[_0x9324ec(0x1a9)],this[_0x9324ec(0x193)]?.[_0x9324ec(0x171)]('Retrieved API keys from session manager',{'sessionId':_0x44df24[_0x9324ec(0x164)],'hasLoxiaKey':!!_0x2751e9,'hasVendorKey':!!_0x3cd9bf,'vendor':this[_0x9324ec(0x1d9)](_0x41fc97[_0x9324ec(0x1b1)])});}!_0x2751e9&&_0x44df24['apiKey']&&(_0x2751e9=_0x44df24['apiKey']);!_0x2751e9&&this[_0x9324ec(0x19b)]['apiKey']&&(_0x2751e9=this[_0x9324ec(0x19b)]['apiKey']);if(!_0x2751e9)throw new Error(_0x9324ec(0x1e7));const _0x551b46=_0x41fc97[_0x9324ec(0x1b1)],_0x1b2ad1={'conversationId':_0x303bba,'message':_0x41fc97['messages'][_0x41fc97['messages'][_0x9324ec(0x1c6)]-0x1]?.['content']||'','messages':_0x41fc97[_0x9324ec(0x1c8)],'model':_0x551b46,'requestId':_0x303bba,'options':_0x41fc97[_0x9324ec(0x176)]||{},'platformProvided':_0x44df24['platformProvided']||![]};_0x41fc97[_0x9324ec(0x19f)]&&(_0x1b2ad1['systemPrompt']=_0x41fc97[_0x9324ec(0x19f)]);_0x44df24['platformProvided']?_0x1b2ad1['apiKey']=_0x2751e9:(_0x3cd9bf&&(_0x1b2ad1[_0x9324ec(0x1a9)]=_0x3cd9bf),_0x44df24[_0x9324ec(0x1a1)]&&(_0x1b2ad1['customApiKeys']=_0x44df24['customApiKeys']),_0x1b2ad1[_0x9324ec(0x17b)]=_0x2751e9);for(let _0x4ab6f2=0x1;_0x4ab6f2<=this['retryAttempts'];_0x4ab6f2++){try{this['logger'][_0x9324ec(0x1ba)](_0x9324ec(0x169),{'url':_0x4514f7,'model':_0x41fc97['model'],'requestId':_0x303bba,'attempt':_0x4ab6f2,'hasApiKey':!!_0x2751e9});const _0xdd1d09=await fetch(_0x4514f7,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x2751e9,'X-Request-ID':_0x303bba},'body':JSON['stringify'](_0x1b2ad1),'timeout':this[_0x9324ec(0x1ce)]});if(!_0xdd1d09['ok']){const _0x1fb4b0=await _0xdd1d09[_0x9324ec(0x18d)](),_0x3b2672=new Error('HTTP\x20'+_0xdd1d09[_0x9324ec(0x1d0)]+':\x20'+_0xdd1d09[_0x9324ec(0x1b7)]+(_0x1fb4b0?'\x20-\x20'+_0x1fb4b0:''));_0x3b2672[_0x9324ec(0x1d0)]=_0xdd1d09['status'];throw _0x3b2672;}const _0x4845e0=await _0xdd1d09[_0x9324ec(0x1da)]();return{'choices':[{'message':{'content':_0x4845e0[_0x9324ec(0x1df)]||'','role':'assistant'},'finish_reason':_0x4845e0['finishReason']||_0x9324ec(0x1ee)}],'usage':_0x4845e0[_0x9324ec(0x186)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x4845e0[_0x9324ec(0x1b1)]||_0x41fc97[_0x9324ec(0x1b1)],'id':_0x4845e0[_0x9324ec(0x1f3)]||_0x303bba};}catch(_0x404cd8){_0x4d258a=_0x404cd8,this['logger'][_0x9324ec(0x1ef)]('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x4ab6f2,'requestId':_0x303bba,'error':_0x404cd8['message'],'status':_0x404cd8[_0x9324ec(0x1d0)]});if(_0x4ab6f2<this[_0x9324ec(0x1cb)]){const _0x2647e2=Math['pow'](0x2,_0x4ab6f2)*0x3e8;this[_0x9324ec(0x193)][_0x9324ec(0x1ef)](_0x9324ec(0x175)+_0x2647e2+'ms',{'attempt':_0x4ab6f2,'requestId':_0x303bba}),await new Promise(_0x4d646e=>setTimeout(_0x4d646e,_0x2647e2));}}}this[_0x9324ec(0x193)]['error'](_0x9324ec(0x170),{'requestId':_0x303bba,'error':_0x4d258a[_0x9324ec(0x1ab)]});const _0x2394d7=_0x4d258a['message']&&_0x4d258a['message'][_0x9324ec(0x1de)]('No\x20API\x20key\x20configured');if(_0x2394d7)throw new Error(_0x9324ec(0x1b8)+_0x4d258a[_0x9324ec(0x1ab)]);return{'choices':[{'message':{'content':_0x9324ec(0x173)+_0x4d258a['message'],'role':'assistant'},'finish_reason':_0x9324ec(0x1ee)}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x41fc97['model'],'id':'error-'+_0x303bba,'error':_0x4d258a['message']};}async['_makeImageAPIRequest'](_0x1d3244,_0x131ede,_0x55671d={}){const _0x3b75ef=a0_0x1ee68b,_0x3192a2=_0x3b75ef(0x1bf);let _0x77dc89,_0x3341eb=null,_0x411ec5=null;this['logger']?.['info'](_0x3b75ef(0x1ec),{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x55671d[_0x3b75ef(0x164)],'hasSessionId':!!_0x55671d[_0x3b75ef(0x164)],'model':_0x1d3244['model']});if(this['apiKeyManager']&&_0x55671d['sessionId']){const _0x4b5546=this[_0x3b75ef(0x1dc)]['getKeysForRequest'](_0x55671d[_0x3b75ef(0x164)],{'platformProvided':_0x55671d[_0x3b75ef(0x1c5)]||![],'vendor':this['_getVendorFromModel'](_0x1d3244[_0x3b75ef(0x1b1)])});_0x3341eb=_0x4b5546['loxiaApiKey'],_0x411ec5=_0x4b5546[_0x3b75ef(0x1a9)],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x55671d['sessionId'],'hasLoxiaKey':!!_0x3341eb,'hasVendorKey':!!_0x411ec5});}!_0x3341eb&&_0x55671d['apiKey']&&(_0x3341eb=_0x55671d['apiKey']);!_0x3341eb&&this['config']['apiKey']&&(_0x3341eb=this['config']['apiKey']);if(!_0x3341eb)throw new Error(_0x3b75ef(0x1e7));const _0x1f2668={'prompt':_0x1d3244[_0x3b75ef(0x1f1)],'model':_0x1d3244[_0x3b75ef(0x1b1)]||_0x3b75ef(0x1ed),'size':_0x1d3244[_0x3b75ef(0x15e)],'quality':_0x1d3244[_0x3b75ef(0x15a)],'style':_0x1d3244['style']||'vivid','n':_0x1d3244['n']||0x1,'requestId':_0x131ede};for(let _0x1919d4=0x1;_0x1919d4<=this['retryAttempts'];_0x1919d4++){try{this['logger']['info']('Making\x20image\x20request\x20to\x20Azure\x20backend',{'url':_0x3192a2,'model':_0x1d3244[_0x3b75ef(0x1b1)],'requestId':_0x131ede,'attempt':_0x1919d4,'hasApiKey':!!_0x3341eb});const _0x348175=await fetch(_0x3192a2,{'method':_0x3b75ef(0x1e3),'headers':{'Content-Type':_0x3b75ef(0x165),'Authorization':'Bearer\x20'+_0x3341eb,'X-Request-ID':_0x131ede},'body':JSON['stringify'](_0x1f2668),'timeout':this['timeout']*0x2});if(!_0x348175['ok']){const _0x32053d=await _0x348175['text'](),_0x361563=new Error('HTTP\x20'+_0x348175['status']+':\x20'+_0x348175['statusText']+(_0x32053d?_0x3b75ef(0x188)+_0x32053d:''));_0x361563['status']=_0x348175[_0x3b75ef(0x1d0)];throw _0x361563;}const _0x18bf12=await _0x348175[_0x3b75ef(0x1da)]();return{'data':_0x18bf12['images']||[],'model':_0x18bf12[_0x3b75ef(0x1b1)]||_0x1d3244[_0x3b75ef(0x1b1)],'created':_0x18bf12['created']||Date['now'](),'usage':_0x18bf12['usage']};}catch(_0x32e5b3){_0x77dc89=_0x32e5b3,this['logger'][_0x3b75ef(0x1ef)]('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x1919d4,'requestId':_0x131ede,'error':_0x32e5b3['message'],'status':_0x32e5b3['status']});if(_0x1919d4<this[_0x3b75ef(0x1cb)]){const _0x22fd24=Math['pow'](0x2,_0x1919d4)*0x3e8;this[_0x3b75ef(0x193)]['warn']('Retrying\x20in\x20'+_0x22fd24+'ms',{'attempt':_0x1919d4,'requestId':_0x131ede}),await new Promise(_0x3a2f40=>setTimeout(_0x3a2f40,_0x22fd24));}}}this[_0x3b75ef(0x193)]['error']('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x131ede,'error':_0x77dc89['message']});throw new Error(_0x3b75ef(0x158)+_0x77dc89['message']);}async[a0_0x1ee68b(0x1b3)](_0x4cc783){await new Promise(_0x504983=>setTimeout(_0x504983,0x64));}async[a0_0x1ee68b(0x1af)](_0x48cac2){const _0x1d47f6=a0_0x1ee68b,_0x21c82a=0xea60;this['logger']['info'](_0x1d47f6(0x19a)+_0x21c82a+'ms',_0x48cac2),await new Promise(_0x4ccca7=>setTimeout(_0x4ccca7,_0x21c82a));}async[a0_0x1ee68b(0x17d)](_0x5437b4){const _0x30934a=a0_0x1ee68b;this['_recordFailure']();const _0x54b436=0x7530;this[_0x30934a(0x193)]['info']('Service\x20unavailable,\x20waiting\x20'+_0x54b436+'ms',_0x5437b4),await new Promise(_0x2f2c84=>setTimeout(_0x2f2c84,_0x54b436));}['_isCircuitBreakerOpen'](){const _0x19dc36=a0_0x1ee68b;if(!this['circuitBreaker']['isOpen'])return![];const _0x273339=Date[_0x19dc36(0x1cc)]()-this[_0x19dc36(0x162)]['lastFailureTime'];if(_0x273339>this['circuitBreaker']['timeout'])return this['circuitBreaker'][_0x19dc36(0x187)]=![],this[_0x19dc36(0x162)]['failures']=0x0,![];return!![];}['_recordFailure'](){const _0x1260e8=a0_0x1ee68b;this[_0x1260e8(0x162)][_0x1260e8(0x178)]++,this[_0x1260e8(0x162)]['lastFailureTime']=Date['now'](),this['circuitBreaker'][_0x1260e8(0x178)]>=this['circuitBreaker'][_0x1260e8(0x18b)]&&(this[_0x1260e8(0x162)]['isOpen']=!![],this[_0x1260e8(0x193)]['warn'](_0x1260e8(0x1e8)));}[a0_0x1ee68b(0x1d2)](){const _0x196b67=a0_0x1ee68b;this['circuitBreaker'][_0x196b67(0x178)]>0x0&&(this['circuitBreaker'][_0x196b67(0x178)]=0x0,this[_0x196b67(0x162)][_0x196b67(0x187)]=![],this[_0x196b67(0x193)]['info']('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}[a0_0x1ee68b(0x1d9)](_0x3ffc08){const _0x2ab2c3=a0_0x1ee68b;if(!_0x3ffc08)return null;const _0x3dc776=_0x3ffc08['toLowerCase']();if(_0x3dc776[_0x2ab2c3(0x1de)]('anthropic')||_0x3dc776[_0x2ab2c3(0x1de)]('claude'))return'anthropic';else{if(_0x3dc776['includes']('openai')||_0x3dc776[_0x2ab2c3(0x1de)](_0x2ab2c3(0x1d8)))return'openai';else{if(_0x3dc776['includes']('deepseek'))return'deepseek';else{if(_0x3dc776['includes'](_0x2ab2c3(0x1a8)))return'microsoft';}}}return null;}}class ConversationManager{constructor(_0x5adffc,_0x3bde02){const _0x409c5f=a0_0x1ee68b;this[_0x409c5f(0x1bd)]=_0x5adffc,this['logger']=_0x3bde02,this[_0x409c5f(0x1db)]=new Map();}async['switchModel'](_0x55d12b){return{'messages':[],'model':_0x55d12b,'lastUpdated':new Date()['toISOString']()};}}function a0_0x2200(){const _0xa585=['tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','DhjHy2TvC2fNzq','AgfUzgXLshr0CevYCM9Y','ywDLBNrqB29S','8j+wVo+4JYbjBwfNzsbbueKGCMvXDwvZDcbZDgf0zq','yxP1CMuTB3bLBMfPlwrHBgXLmW','C3rVCa','D2fYBG','r0furvDbwv9usu1ft1vu','ChjVBxb0','C2vUze1LC3nHz2u','CMvXDwvZDeLK','y29TCgfJDgL6zunVBNzLCNnHDgLVBG','DhjPBq','y29Kzq','sw1Hz2uGz2vUzxjHDgLVBIbMywLSzwq6ia','z2vUzxjHDgvjBwfNzq','CxvHBgL0Eq','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','C3rYAw5NAwz5','C2L6zq','y2XHC3nPzNLfCNjVCG','mtK5mKLhzNPLza','CM9Szq','y2LYy3vPDejYzwfRzxi','revfufnfruS','C2vZC2LVBKLK','yxbWBgLJyxrPB24VANnVBG','qMfKihjLCxvLC3qGDg8GquKGC2vYDMLJzq','quKGC2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','ChvZAa','twfRAw5NihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','mJC3ntC0zvLfzhvi','nde0mdaZogfAtg9QuW','x2LZq2LYy3vPDejYzwfRzxjpCgvU','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','qu5usfjpueLdx0HbsuTv','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','zgvIDwC','l2nOyxqVy29TCgXLDgLVBNm','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','z2v0qwDLBNq','uMv0CNLPBMCGAw4G','B3b0Aw9UCW','Dg9vChbLCKnHC2u','zMfPBhvYzxm','C3rYzwfT','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','yxbPs2v5','zxjYB3jiyw5KBgvY','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','qu5usfjpueLdx09qvvm','Bw9KzwXtCgvJCW','C3rHy2S','x21HA2vjBwfNzufqsvjLCxvLC3q','qvPvuKu','AgvHBhrOEq','Dg90ywXFDg9Rzw5Z','y2HLy2Ttzxj2AwnLsgvHBhrO','DxnHz2u','AxnpCgvU','ic0G','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','y29UDMvYC2f0Aw9UtwfUywDLCNm','DgHYzxnOB2XK','yJy0x2PZB24','Dgv4Da','vw5RBM93BIbbssbZzxj2AwnLigvYCM9Y','Dw5ZAgLMDa','yMfJA2vUza','mtK0mdK0nNrzAeDjDq','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','Bg9Nz2vY','DxjS','Dg9ju09tDhjPBMC','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','rKfmtejbq0S','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','mJu3nJCYmgXezMnIrW','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','y29UzMLN','C3vIC3rYAw5N','y3vYCMvUDe1VzgvS','x3n1Bw1HCML6zu1LC3nHz2vZ','C3LZDgvT','yMfZzvvYBa','y3vZDg9TqxbPs2v5CW','CgvYC2LZDefNzw50u3rHDgu','CM91DgvnB2rLBa','zgf0yq','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','DgvTCgvYyxr1CMu','C3bLzwq','CgHP','DMvUzg9YqxbPs2v5','mKPVDKrHAG','BwvZC2fNzq','zMfZDa','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','ChjLzMvYCMvKtw9KzwW','x2HHBMrSzvjHDgvmAw1PDa','x3jLy29YzezHAwX1CMu','Bw9KzwW','x2nOzwnRtw9KzwXizwfSDgG','x2nOzwnRuMf0zuXPBwL0','su5urvjoquXFu0vsvKvsx0vsuK9s','nte4odCXuwrUB3jJ','x2zVCM1HDezVCKfUDgHYB3bPyW','C3rHDhvZvgv4Da','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','AxnbCNjHEq','Aw5MBW','CMv2zxjZzq','x21HA2vbueLszxf1zxn0','ywDLBNrjza','zxjYB3i','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','qKfex1jfuvvfu1q','r1buxZq','C3rHBMrHCMq','tw9KzwWGC3DPDgnOigzHAwXLzdOG','t1bftKfj','CgXHDgzVCM1qCM92AwrLza','BgvUz3rO','yNvKz2v0u2vYDMLJzq','BwvZC2fNzxm','x2vZDgLTyxrLvg9Rzw5Z','ueHj','CMv0CNLbDhrLBxb0CW','BM93','BwfW','DgLTzw91Da','Bg94AwfbCgLlzxK','C3rHDhvZ','Dg9tDhjPBMC','x3jLC2v0q2LYy3vPDejYzwfRzxi','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGquKGC2vYDMLJzq','vw5RBM93BIbTB2rLBdOG','x2zVCM1HDezVCK9Wzw5bsq','DgLTzxn0yw1W','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','z3b0','x2DLDfzLBMrVCKzYB21nB2rLBa','ANnVBG','y29UDMvYC2f0Aw9UCW','yxbPs2v5twfUywDLCG','zxn0Aw1HDgvKvg9Rzw5Z','Aw5JBhvKzxm','y29UDgvUDa','ChjVBxb0x3rVA2vUCW','sw52ywXPzcbYzxf1zxn0oIa','mZyYmdDhBvLSuey','ue9tva','mJe4ndyZmK1qANnjtG','x3rYDw5JyxrLtwvZC2fNzq','C2v0'];a0_0x2200=function(){return _0xa585;};return a0_0x2200();}export default AIService;
|
|
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 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a0_0xc30d(_0x3064c0,_0x5860a0){_0x3064c0=_0x3064c0-0x11d;const _0x48d27c=a0_0x48d2();let _0xc30da=_0x48d27c[_0x3064c0];if(a0_0xc30d['mCwxzB']===undefined){var _0x533422=function(_0x4f3802){const _0x3af920='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x40d8fd='',_0x25ca01='';for(let _0x2bcf34=0x0,_0x310495,_0x237e07,_0x2cc361=0x0;_0x237e07=_0x4f3802['charAt'](_0x2cc361++);~_0x237e07&&(_0x310495=_0x2bcf34%0x4?_0x310495*0x40+_0x237e07:_0x237e07,_0x2bcf34++%0x4)?_0x40d8fd+=String['fromCharCode'](0xff&_0x310495>>(-0x2*_0x2bcf34&0x6)):0x0){_0x237e07=_0x3af920['indexOf'](_0x237e07);}for(let _0x56b7d5=0x0,_0x127e78=_0x40d8fd['length'];_0x56b7d5<_0x127e78;_0x56b7d5++){_0x25ca01+='%'+('00'+_0x40d8fd['charCodeAt'](_0x56b7d5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x25ca01);};a0_0xc30d['PbePRf']=_0x533422,a0_0xc30d['bQuZLo']={},a0_0xc30d['mCwxzB']=!![];}const _0x418927=_0x48d27c[0x0],_0x33da7a=_0x3064c0+_0x418927,_0x3a4dc5=a0_0xc30d['bQuZLo'][_0x33da7a];return!_0x3a4dc5?(_0xc30da=a0_0xc30d['PbePRf'](_0xc30da),a0_0xc30d['bQuZLo'][_0x33da7a]=_0xc30da):_0xc30da=_0x3a4dc5,_0xc30da;}const a0_0x5c8590=a0_0xc30d;(function(_0x252a51,_0x17caee){const _0x2c47e0=a0_0xc30d,_0xabd73f=_0x252a51();while(!![]){try{const _0x20b9b4=parseInt(_0x2c47e0(0x120))/0x1+parseInt(_0x2c47e0(0x11d))/0x2*(parseInt(_0x2c47e0(0x12e))/0x3)+-parseInt(_0x2c47e0(0x131))/0x4+-parseInt(_0x2c47e0(0x129))/0x5+parseInt(_0x2c47e0(0x123))/0x6*(parseInt(_0x2c47e0(0x127))/0x7)+-parseInt(_0x2c47e0(0x122))/0x8+parseInt(_0x2c47e0(0x12d))/0x9*(parseInt(_0x2c47e0(0x133))/0xa);if(_0x20b9b4===_0x17caee)break;else _0xabd73f['push'](_0xabd73f['shift']());}catch(_0x17bf23){_0xabd73f['push'](_0xabd73f['shift']());}}}(a0_0x48d2,0x4ad03));class ApiKeyManager{constructor(_0x40d8fd){const _0x11f10c=a0_0xc30d;this[_0x11f10c(0x136)]=_0x40d8fd,this['sessionKeys']=new Map(),this['globalKeys']={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x25ca01,_0x2bcf34){const _0x40fbe7=a0_0xc30d;if(!_0x25ca01)throw new Error('Session\x20ID\x20is\x20required');this['sessionKeys'][_0x40fbe7(0x12b)](_0x25ca01,{'loxiaApiKey':_0x2bcf34['loxiaApiKey']||null,'vendorKeys':_0x2bcf34['vendorKeys']||{},'updatedAt':new Date()['toISOString']()}),this['logger']?.['info'](_0x40fbe7(0x126),{'sessionId':_0x25ca01,'hasLoxiaKey':!!_0x2bcf34[_0x40fbe7(0x12f)],'vendorKeys':Object[_0x40fbe7(0x121)](_0x2bcf34[_0x40fbe7(0x13a)]||{}),'timestamp':new Date()['toISOString']()});}[a0_0x5c8590(0x125)](_0x310495){const _0x230e5d=a0_0x5c8590;if(!_0x310495)return this[_0x230e5d(0x128)];const _0x237e07=this['sessionKeys'][_0x230e5d(0x137)](_0x310495);if(_0x237e07)return _0x237e07;return this[_0x230e5d(0x128)];}['getKeysForRequest'](_0x2cc361,_0x56b7d5={}){const _0xf13782=a0_0x5c8590,_0x127e78=this[_0xf13782(0x125)](_0x2cc361),_0xaf6d55={'loxiaApiKey':_0x127e78['loxiaApiKey'],'vendorApiKey':null};return!_0x56b7d5[_0xf13782(0x132)]&&_0x56b7d5[_0xf13782(0x11e)]&&_0x127e78['vendorKeys']&&(_0xaf6d55[_0xf13782(0x11f)]=_0x127e78[_0xf13782(0x13a)][_0x56b7d5[_0xf13782(0x11e)]]),_0xaf6d55;}['removeSessionKeys'](_0x8449f1){const _0x294bd0=a0_0x5c8590;if(this[_0x294bd0(0x12a)][_0x294bd0(0x139)](_0x8449f1))return this[_0x294bd0(0x136)]?.[_0x294bd0(0x130)]('API\x20keys\x20removed\x20for\x20session',{'sessionId':_0x8449f1}),!![];return![];}['setGlobalKeys'](_0x234081){const _0x5b3d9c=a0_0x5c8590;this['globalKeys']={'loxiaApiKey':_0x234081[_0x5b3d9c(0x12f)]||this['globalKeys']['loxiaApiKey'],'vendorKeys':{...this['globalKeys'][_0x5b3d9c(0x13a)],..._0x234081[_0x5b3d9c(0x13a)]||{}}},this[_0x5b3d9c(0x136)]?.['info']('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this[_0x5b3d9c(0x128)][_0x5b3d9c(0x12f)],'vendorKeys':Object[_0x5b3d9c(0x121)](this[_0x5b3d9c(0x128)]['vendorKeys'])});}[a0_0x5c8590(0x134)](){const _0x512641=a0_0x5c8590;return Array['from'](this['sessionKeys'][_0x512641(0x135)]())['map'](([_0x40914b,_0x19c252])=>({'sessionId':_0x40914b,'hasLoxiaKey':!!_0x19c252['loxiaApiKey'],'vendorKeys':Object['keys'](_0x19c252[_0x512641(0x13a)]||{}),'updatedAt':_0x19c252['updatedAt']}));}[a0_0x5c8590(0x138)](_0x2325f1=0x18*0x3c*0x3c*0x3e8){const _0x874c0e=a0_0x5c8590,_0x1f4c10=Date['now'](),_0x2024a3=[];for(const [_0x11cdaf,_0x47a319]of this['sessionKeys']['entries']()){const _0x2b325a=_0x1f4c10-new Date(_0x47a319['updatedAt'])['getTime']();_0x2b325a>_0x2325f1&&_0x2024a3['push'](_0x11cdaf);}return _0x2024a3[_0x874c0e(0x124)](_0x4d3db0=>{const _0x439deb=_0x874c0e;this[_0x439deb(0x12a)][_0x439deb(0x139)](_0x4d3db0);}),_0x2024a3['length']>0x0&&this['logger']?.[_0x874c0e(0x130)]('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x2024a3[_0x874c0e(0x12c)],'remainingSessions':this['sessionKeys']['size']}),_0x2024a3['length'];}}export default ApiKeyManager;function a0_0x48d2(){const _0xf05bf6=['zw50CMLLCW','Bg9Nz2vY','z2v0','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','zgvSzxrL','DMvUzg9Ys2v5CW','ng9Ks2L2sG','DMvUzg9Y','DMvUzg9YqxbPs2v5','mJG5ntm0Agv0ANbA','A2v5CW','nJKZnZiWDKPxsvzK','nteWntrise5rBhG','zM9YrwfJAa','z2v0u2vZC2LVBKTLExm','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','mtG5ufzxCvLU','z2XVyMfSs2v5CW','mJi5ndy1nuves3DKBG','C2vZC2LVBKTLExm','C2v0','BgvUz3rO','mtuXmK9fBwDABq','nZuXnJm4wNfYswr0','Bg94AwfbCgLlzxK','Aw5MBW','mtyZmda4mhLnDvzerq','CgXHDgzVCM1qCM92AwrLza','mtqYndbyExrerfa','z2v0qwn0AxzLu2vZC2LVBNm'];a0_0x48d2=function(){return _0xf05bf6;};return a0_0x48d2();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a0_0x1015cd=a0_0x471c;(function(_0x519a00,_0x269bae){const _0x560bdf=a0_0x471c,_0x2a94fa=_0x519a00();while(!![]){try{const _0x2995b1=parseInt(_0x560bdf(0x1ad))/0x1*(-parseInt(_0x560bdf(0x19e))/0x2)+parseInt(_0x560bdf(0x198))/0x3*(parseInt(_0x560bdf(0x1ae))/0x4)+-parseInt(_0x560bdf(0x184))/0x5*(-parseInt(_0x560bdf(0x191))/0x6)+-parseInt(_0x560bdf(0x1af))/0x7*(parseInt(_0x560bdf(0x1ac))/0x8)+parseInt(_0x560bdf(0x1a7))/0x9*(parseInt(_0x560bdf(0x194))/0xa)+-parseInt(_0x560bdf(0x1b0))/0xb+-parseInt(_0x560bdf(0x19c))/0xc;if(_0x2995b1===_0x269bae)break;else _0x2a94fa['push'](_0x2a94fa['shift']());}catch(_0xcb5616){_0x2a94fa['push'](_0x2a94fa['shift']());}}}(a0_0x16ef,0x6cab4));function a0_0x471c(_0x19843c,_0x5bd363){_0x19843c=_0x19843c-0x17d;const _0x16ef40=a0_0x16ef();let _0x471c6f=_0x16ef40[_0x19843c];if(a0_0x471c['wHbQuk']===undefined){var _0x5e9719=function(_0x2b611d){const _0x3c6694='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xcdf71c='',_0x4c18b2='';for(let _0x540f79=0x0,_0x970edf,_0x214a99,_0x190987=0x0;_0x214a99=_0x2b611d['charAt'](_0x190987++);~_0x214a99&&(_0x970edf=_0x540f79%0x4?_0x970edf*0x40+_0x214a99:_0x214a99,_0x540f79++%0x4)?_0xcdf71c+=String['fromCharCode'](0xff&_0x970edf>>(-0x2*_0x540f79&0x6)):0x0){_0x214a99=_0x3c6694['indexOf'](_0x214a99);}for(let _0x5efe09=0x0,_0x519d2f=_0xcdf71c['length'];_0x5efe09<_0x519d2f;_0x5efe09++){_0x4c18b2+='%'+('00'+_0xcdf71c['charCodeAt'](_0x5efe09)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4c18b2);};a0_0x471c['GnIGaX']=_0x5e9719,a0_0x471c['CJAmwa']={},a0_0x471c['wHbQuk']=!![];}const _0x3ffb79=_0x16ef40[0x0],_0x50844c=_0x19843c+_0x3ffb79,_0x20dfbc=a0_0x471c['CJAmwa'][_0x50844c];return!_0x20dfbc?(_0x471c6f=a0_0x471c['GnIGaX'](_0x471c6f),a0_0x471c['CJAmwa'][_0x50844c]=_0x471c6f):_0x471c6f=_0x20dfbc,_0x471c6f;}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0xcdf71c,_0x4c18b2){const _0x5edaf5=a0_0x471c;this['config']=_0xcdf71c,this['logger']=_0x4c18b2,this['benchmarks']=null,this['lastUpdated']=null,this[_0x5edaf5(0x19b)]=![],this[_0x5edaf5(0x180)]='https://autopilot-api.azurewebsites.net',this['refreshInterval']=MODEL_ROUTER_CONFIG[_0x5edaf5(0x181)];}async['initialize'](){const _0xc7b8e2=a0_0x471c;try{await this[_0xc7b8e2(0x1b3)](),this[_0xc7b8e2(0x1a8)](),this['logger']['info'](_0xc7b8e2(0x1aa));}catch(_0x540f79){this['logger']['error']('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x540f79['message']}),this['benchmarks']=null;}}[a0_0x1015cd(0x1a3)](){const _0x48924a=a0_0x1015cd;if(!this[_0x48924a(0x17e)])return this[_0x48924a(0x19d)][_0x48924a(0x18d)](_0x48924a(0x193),{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this[_0x48924a(0x17e)];}async[a0_0x1015cd(0x1b3)](){const _0x28d662=a0_0x1015cd;if(this['isLoading']){this['logger']['debug'](_0x28d662(0x1a6));return;}this[_0x28d662(0x19b)]=!![];try{const _0x970edf=await this[_0x28d662(0x1ab)]();if(_0x970edf)this['benchmarks']=_0x970edf,this[_0x28d662(0x18e)]=new Date(),this['logger'][_0x28d662(0x189)]('Benchmarks loaded from Azure backend',{'modelCount':_0x970edf['models']?.[_0x28d662(0x1a5)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x214a99){this[_0x28d662(0x19d)]['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x214a99[_0x28d662(0x1a2)],'endpoint':url}),!this['benchmarks']&&(this['benchmarks']=null);}finally{this['isLoading']=![];}}['getBenchmarkTable'](){const _0x229b0d=a0_0x1015cd,_0x190987=this['getBenchmarks']();return{'lastUpdated':this[_0x229b0d(0x18e)]?.[_0x229b0d(0x195)]()||_0x229b0d(0x183),'models':_0x190987[_0x229b0d(0x1a1)]||[],'tasks':_0x190987[_0x229b0d(0x19f)]||{},'summary':this[_0x229b0d(0x19a)](_0x190987)};}[a0_0x1015cd(0x1b4)](){const _0x26fdb5=a0_0x1015cd;if(!this['lastUpdated'])return!![];const _0x5efe09=Date[_0x26fdb5(0x187)]()-this[_0x26fdb5(0x18e)][_0x26fdb5(0x186)]();return _0x5efe09>this['refreshInterval'];}async['_fetchFromAzureBackend'](){const _0xb54ae6=a0_0x1015cd,_0x519d2f=this[_0xb54ae6(0x180)]+'/llm/model-benchmarks';let _0x2576fb=null;this['config'][_0xb54ae6(0x18f)]&&(_0x2576fb=this[_0xb54ae6(0x185)]['apiKey']);const _0x1d092b={'method':'GET','headers':{'Content-Type':'application/json',..._0x2576fb&&{'Authorization':'Bearer\x20'+_0x2576fb}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x519d2f});const _0x25acfa=await fetch(_0x519d2f,_0x1d092b);if(!_0x25acfa['ok'])throw new Error('HTTP\x20'+_0x25acfa['status']+':\x20'+_0x25acfa['statusText']);const _0x4e11a7=await _0x25acfa['json']();return _0x4e11a7;}['_generateBenchmarkSummary'](_0x45e1d6){const _0x399acf=a0_0x1015cd,_0x521200=_0x45e1d6['models']||[];return{'totalModels':_0x521200[_0x399acf(0x1a5)],'taskCategories':Object['keys'](_0x45e1d6['tasks']||{}),'bestForCoding':this['_getBestModelForTask'](_0x521200,_0x399acf(0x1b1)),'bestForAnalysis':this[_0x399acf(0x1a0)](_0x521200,'analysis'),'bestForQuickTasks':this['_getBestModelForTask'](_0x521200,'quick-tasks'),'bestForCreative':this['_getBestModelForTask'](_0x521200,_0x399acf(0x1a9)),'fastestModel':this[_0x399acf(0x1a4)](_0x521200),'mostCostEfficient':this['_getMostCostEfficient'](_0x521200)};}['_getBestModelForTask'](_0x16d476,_0xef6174){const _0x4b1475=a0_0x1015cd;return _0x16d476[_0x4b1475(0x196)](_0x596a7d=>_0x596a7d['tasks']&&_0x596a7d['tasks'][_0xef6174])[_0x4b1475(0x18c)]((_0x218f14,_0x233162)=>(_0x233162['tasks'][_0xef6174]['score']||0x0)-(_0x218f14['tasks'][_0xef6174]['score']||0x0))[0x0]?.[_0x4b1475(0x197)]||_0x4b1475(0x183);}['_getFastestModel'](_0x20ba8c){const _0xd510a2=a0_0x1015cd,_0x4ccf29={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x20ba8c['sort']((_0x24fa3f,_0xbdfeea)=>{const _0x7b0612=a0_0x471c,_0x116683=Math['max'](...Object[_0x7b0612(0x188)](_0x24fa3f[_0x7b0612(0x19f)]||{})['map'](_0x56fc20=>_0x4ccf29[_0x56fc20[_0x7b0612(0x1b2)]]||0x0)),_0x259b8c=Math['max'](...Object['values'](_0xbdfeea['tasks']||{})['map'](_0xf1031c=>_0x4ccf29[_0xf1031c[_0x7b0612(0x1b2)]]||0x0));return _0x259b8c-_0x116683;})[0x0]?.[_0xd510a2(0x197)]||_0xd510a2(0x183);}[a0_0x1015cd(0x192)](_0x5cbf53){const _0x3c85b7=a0_0x1015cd,_0x235131={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x5cbf53['sort']((_0x219589,_0x343f73)=>{const _0x4a4e0a=a0_0x471c,_0x5a84ab=Math[_0x4a4e0a(0x18a)](...Object['values'](_0x219589['tasks']||{})[_0x4a4e0a(0x190)](_0x15f7c4=>_0x235131[_0x15f7c4['cost']]||0x0)),_0xcfe481=Math['max'](...Object['values'](_0x343f73[_0x4a4e0a(0x19f)]||{})['map'](_0x449170=>_0x235131[_0x449170['cost']]||0x0));return _0xcfe481-_0x5a84ab;})[0x0]?.[_0x3c85b7(0x197)]||_0x3c85b7(0x183);}['_scheduleRefresh'](){const _0x7155a1=a0_0x1015cd;setInterval(async()=>{const _0x5290b7=a0_0x471c;this[_0x5290b7(0x1b4)]()&&(this[_0x5290b7(0x19d)][_0x5290b7(0x17d)]('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this[_0x7155a1(0x18b)]);}async[a0_0x1015cd(0x199)](){const _0x363a0a=a0_0x1015cd;this[_0x363a0a(0x19d)][_0x363a0a(0x189)](_0x363a0a(0x182)),await this['loadBenchmarks']();}['getStatus'](){const _0x503a7b=a0_0x1015cd;return{'initialized':!!this['benchmarks'],'lastUpdated':this['lastUpdated']?.[_0x503a7b(0x195)]()||null,'source':this['benchmarks']?.[_0x503a7b(0x17f)]||'unknown','modelCount':this['benchmarks']?.[_0x503a7b(0x1a1)]?.['length']||0x0,'isLoading':this['isLoading'],'needsRefresh':this[_0x503a7b(0x1b4)]()};}}function a0_0x16ef(){const _0x578dfd=['nJzqAfLjwgi','DgfZA3m','x2DLDejLC3rnB2rLBezVCLrHC2S','Bw9KzwXZ','BwvZC2fNzq','z2v0qMvUy2HTyxjRCW','x2DLDezHC3rLC3rnB2rLBa','BgvUz3rO','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','mJDnAMn6vKG','x3nJAgvKDwXLuMvMCMvZAa','y3jLyxrPDMu','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','mteYDMHMyKHO','otq2n0DTvLbUwq','mZi5mMTbyKz6zG','odi4mZfMB2vPzKi','mtmZntCXoxfMsev2za','y29KAw5N','C3bLzwq','Bg9HzejLBMnOBwfYA3m','BMvLzhnszwzYzxnO','zgvIDwC','yMvUy2HTyxjRCW','C291CMnL','yxP1CMvcywnRzw5KvxjS','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','Dw5RBM93BG','nwv0uhjICG','y29UzMLN','z2v0vgLTzq','BM93','DMfSDwvZ','Aw5MBW','Bwf4','CMvMCMvZAeLUDgvYDMfS','C29YDa','zxjYB3i','BgfZDfvWzgf0zwq','yxbPs2v5','BwfW','ndi0mtK0nMvPy2vSqG','x2DLDe1VC3rdB3n0rwzMAwnPzw50','tM8GyMvUy2HTyxjRigrHDgeGyxzHAwXHyMXLic0GqvbjigzLDgnOigzHAwXLza','mtK1nJm5mg5bC2rTDW','Dg9ju09tDhjPBMC','zMLSDgvY','BMfTzq','mJa3vuvbs3v3','zM9Yy2vszwzYzxnO','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','AxnmB2fKAw5N','mZy3mZaYmgDJt1DcBa','Bg9Nz2vY'];a0_0x16ef=function(){return _0x578dfd;};return a0_0x16ef();}export default BenchmarkService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x16c752=a0_0x390e;function a0_0x390e(_0x4f6201,_0x25f7a1){_0x4f6201=_0x4f6201-0x1ef;const _0x3a69d2=a0_0x3a69();let _0x390e05=_0x3a69d2[_0x4f6201];if(a0_0x390e['bIiSjs']===undefined){var _0x1b39c9=function(_0x4f79ca){const _0x134808='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xb28a82='',_0x891055='';for(let _0x5ea8e7=0x0,_0x413429,_0x5242e6,_0x2ce437=0x0;_0x5242e6=_0x4f79ca['charAt'](_0x2ce437++);~_0x5242e6&&(_0x413429=_0x5ea8e7%0x4?_0x413429*0x40+_0x5242e6:_0x5242e6,_0x5ea8e7++%0x4)?_0xb28a82+=String['fromCharCode'](0xff&_0x413429>>(-0x2*_0x5ea8e7&0x6)):0x0){_0x5242e6=_0x134808['indexOf'](_0x5242e6);}for(let _0x37b542=0x0,_0x2ed13a=_0xb28a82['length'];_0x37b542<_0x2ed13a;_0x37b542++){_0x891055+='%'+('00'+_0xb28a82['charCodeAt'](_0x37b542)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x891055);};a0_0x390e['WHJpZg']=_0x1b39c9,a0_0x390e['mOEYDe']={},a0_0x390e['bIiSjs']=!![];}const _0x45ad71=_0x3a69d2[0x0],_0x5b2c0e=_0x4f6201+_0x45ad71,_0x3be9b5=a0_0x390e['mOEYDe'][_0x5b2c0e];return!_0x3be9b5?(_0x390e05=a0_0x390e['WHJpZg'](_0x390e05),a0_0x390e['mOEYDe'][_0x5b2c0e]=_0x390e05):_0x390e05=_0x3be9b5,_0x390e05;}(function(_0x43683d,_0x260c97){const _0x3fc20a=a0_0x390e,_0x319079=_0x43683d();while(!![]){try{const _0x318615=parseInt(_0x3fc20a(0x24a))/0x1+-parseInt(_0x3fc20a(0x219))/0x2+-parseInt(_0x3fc20a(0x237))/0x3+-parseInt(_0x3fc20a(0x250))/0x4+-parseInt(_0x3fc20a(0x1f3))/0x5*(-parseInt(_0x3fc20a(0x218))/0x6)+-parseInt(_0x3fc20a(0x248))/0x7+parseInt(_0x3fc20a(0x202))/0x8;if(_0x318615===_0x260c97)break;else _0x319079['push'](_0x319079['shift']());}catch(_0x14a3ee){_0x319079['push'](_0x319079['shift']());}}}(a0_0x3a69,0x7a26a));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0xb28a82,_0x891055){const _0x20b009=a0_0x390e;this[_0x20b009(0x21e)]=_0xb28a82||{},this['logger']=_0x891055,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this['budgets']={'daily':BUDGET_LIMITS['DAILY'],'weekly':BUDGET_LIMITS[_0x20b009(0x1f6)],'monthly':BUDGET_LIMITS[_0x20b009(0x1fc)]},this[_0x20b009(0x227)]={'enabled':!![],'thresholds':USAGE_ALERTS[_0x20b009(0x206)],'lastAlertTimes':new Map()},this['loadUsageData'](),this['setupPeriodicSave']();}[a0_0x16c752(0x214)](_0x5ea8e7,_0x413429,_0x5242e6){const _0x181969=a0_0x16c752;try{const _0x2ce437=this[_0x181969(0x205)](_0x413429,_0x5242e6),_0x37b542=new Date(),_0x2ed13a=this[_0x181969(0x246)](_0x37b542),_0x1a64b1=this[_0x181969(0x228)](_0x37b542),_0x112695=this[_0x181969(0x1f1)](_0x37b542);this['initializeUsageEntry'](this['usage']['daily'],_0x2ed13a),this[_0x181969(0x23b)](this['usage']['weekly'],_0x1a64b1),this['initializeUsageEntry'](this[_0x181969(0x229)][_0x181969(0x1f0)],_0x112695);const _0x5dea44={'agentId':_0x5ea8e7,'modelId':_0x413429,'tokens':_0x5242e6[_0x181969(0x247)],'cost':_0x2ce437,'timestamp':_0x37b542['toISOString']()};return this[_0x181969(0x211)](this[_0x181969(0x229)][_0x181969(0x23e)]['get'](_0x2ed13a),_0x5dea44),this[_0x181969(0x211)](this['usage']['weekly']['get'](_0x1a64b1),_0x5dea44),this['updateUsageEntry'](this['usage'][_0x181969(0x1f0)][_0x181969(0x1fa)](_0x112695),_0x5dea44),this['usage'][_0x181969(0x215)][_0x181969(0x203)]+=_0x5242e6['total_tokens'],this[_0x181969(0x229)]['total'][_0x181969(0x225)]+=_0x2ce437,this['usage'][_0x181969(0x215)]['requests']+=0x1,this['checkBudgetLimits'](_0x2ed13a,_0x1a64b1,_0x112695),this['logger'][_0x181969(0x1f9)](_0x181969(0x21d),{'agentId':_0x5ea8e7,'modelId':_0x413429,'tokens':_0x5242e6['total_tokens'],'cost':_0x2ce437,'totalCost':this['usage'][_0x181969(0x215)]['cost']}),{'cost':_0x2ce437,'totalCost':this[_0x181969(0x229)]['total'][_0x181969(0x225)],'totalTokens':this['usage'][_0x181969(0x215)][_0x181969(0x203)],'dailyUsage':this[_0x181969(0x229)]['daily'][_0x181969(0x1fa)](_0x2ed13a),'budgetRemaining':this[_0x181969(0x216)]()};}catch(_0xc9fddb){this['logger']['error'](_0x181969(0x24d),{'error':_0xc9fddb[_0x181969(0x22c)],'agentId':_0x5ea8e7,'modelId':_0x413429});throw _0xc9fddb;}}['calculateCost'](_0x27645c,_0x309d8e){const _0x4b70ff=a0_0x16c752,_0x742b34=COST_PER_TOKEN[_0x27645c];if(!_0x742b34)return this[_0x4b70ff(0x209)][_0x4b70ff(0x21b)](_0x4b70ff(0x1fd),{'modelId':_0x27645c}),0x0;const _0x36bc01=(_0x309d8e[_0x4b70ff(0x241)]||0x0)*_0x742b34['input'],_0x4c88f6=(_0x309d8e['completion_tokens']||0x0)*_0x742b34[_0x4b70ff(0x1fe)];return _0x36bc01+_0x4c88f6;}['getUsage'](_0xd82055=a0_0x16c752(0x23e),_0x9e1020=new Date()){const _0x15c0ae=a0_0x16c752;switch(_0xd82055){case'daily':return this['usage']['daily'][_0x15c0ae(0x1fa)](this[_0x15c0ae(0x246)](_0x9e1020))||this[_0x15c0ae(0x22b)]();case'weekly':return this['usage'][_0x15c0ae(0x22e)]['get'](this[_0x15c0ae(0x228)](_0x9e1020))||this['createEmptyUsage']();case'monthly':return this[_0x15c0ae(0x229)][_0x15c0ae(0x1f0)][_0x15c0ae(0x1fa)](this[_0x15c0ae(0x1f1)](_0x9e1020))||this['createEmptyUsage']();case _0x15c0ae(0x215):return{...this['usage']['total']};default:throw new Error(_0x15c0ae(0x226)+_0xd82055);}}[a0_0x16c752(0x1f2)](_0x38cbfd,_0x909784='daily'){const _0x5d314b=a0_0x16c752,_0x13249a=this['getUsage'](_0x909784);return _0x13249a[_0x5d314b(0x212)]?.[_0x38cbfd]||this[_0x5d314b(0x22b)]();}[a0_0x16c752(0x245)](_0x1d5d71,_0x28b572=a0_0x16c752(0x23e)){const _0x18a6d6=a0_0x16c752,_0x384c76=this[_0x18a6d6(0x208)](_0x28b572);return _0x384c76['byModel']?.[_0x1d5d71]||this['createEmptyUsage']();}['setBudgets'](_0x22bf27){const _0x57e0f0=a0_0x16c752;if(_0x22bf27[_0x57e0f0(0x23e)]!==undefined)this['budgets']['daily']=_0x22bf27['daily'];if(_0x22bf27['weekly']!==undefined)this['budgets']['weekly']=_0x22bf27['weekly'];if(_0x22bf27[_0x57e0f0(0x1f0)]!==undefined)this['budgets'][_0x57e0f0(0x1f0)]=_0x22bf27[_0x57e0f0(0x1f0)];this[_0x57e0f0(0x209)][_0x57e0f0(0x1f9)]('Budget\x20limits\x20updated',this[_0x57e0f0(0x23a)]),this['saveUsageData']();}[a0_0x16c752(0x216)](){const _0x59ff9c=a0_0x16c752,_0x1dcb9f=new Date(),_0x3cb77f=this['getUsage'](_0x59ff9c(0x23e),_0x1dcb9f),_0x531532=this['getUsage'](_0x59ff9c(0x22e),_0x1dcb9f),_0x35f499=this[_0x59ff9c(0x208)]('monthly',_0x1dcb9f);return{'daily':Math['max'](0x0,this['budgets'][_0x59ff9c(0x23e)]-_0x3cb77f['cost']),'weekly':Math[_0x59ff9c(0x1f4)](0x0,this['budgets'][_0x59ff9c(0x22e)]-_0x531532['cost']),'monthly':Math['max'](0x0,this['budgets'][_0x59ff9c(0x1f0)]-_0x35f499[_0x59ff9c(0x225)])};}['isWithinBudget'](_0xaffcd='daily'){const _0x4a9086=this['getUsage'](_0xaffcd),_0x574bbb=this['budgets'][_0xaffcd];return _0x4a9086['cost']<=_0x574bbb;}[a0_0x16c752(0x1ff)](_0x1ff05c=0x1e){const _0x44d813=a0_0x16c752,_0x18f15a={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x2ac997=new Date();let _0x5ad5a8=0x0,_0x3a6821=0x0,_0x4231e1=0x0;const _0x4caf45=new Map(),_0x41e91b=new Map();for(let _0x12dd2d=0x0;_0x12dd2d<_0x1ff05c;_0x12dd2d++){const _0x5b018d=new Date(_0x2ac997);_0x5b018d[_0x44d813(0x24f)](_0x5b018d['getDate']()-_0x12dd2d);const _0x4b8fa6=this['getDayKey'](_0x5b018d),_0x325a96=this['usage'][_0x44d813(0x23e)][_0x44d813(0x1fa)](_0x4b8fa6);_0x325a96?(_0x5ad5a8+=_0x325a96[_0x44d813(0x225)],_0x3a6821+=_0x325a96[_0x44d813(0x203)],_0x4231e1+=_0x325a96[_0x44d813(0x20f)],_0x18f15a[_0x44d813(0x20d)]['unshift']({'date':_0x4b8fa6,'cost':_0x325a96['cost']}),_0x18f15a[_0x44d813(0x21c)][_0x44d813(0x21f)]({'date':_0x4b8fa6,'tokens':_0x325a96[_0x44d813(0x203)]}),Object['entries'](_0x325a96['byAgent']||{})[_0x44d813(0x21a)](([_0x5674c8,_0x3c3415])=>{const _0x2414a3=_0x44d813;!_0x4caf45[_0x2414a3(0x22d)](_0x5674c8)&&_0x4caf45['set'](_0x5674c8,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x233e94=_0x4caf45['get'](_0x5674c8);_0x233e94[_0x2414a3(0x225)]+=_0x3c3415[_0x2414a3(0x225)],_0x233e94['tokens']+=_0x3c3415['tokens'],_0x233e94[_0x2414a3(0x20f)]+=_0x3c3415[_0x2414a3(0x20f)];}),Object['entries'](_0x325a96['byModel']||{})['forEach'](([_0x33d2c2,_0x45c487])=>{const _0x504985=_0x44d813;!_0x41e91b[_0x504985(0x22d)](_0x33d2c2)&&_0x41e91b[_0x504985(0x236)](_0x33d2c2,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x262f03=_0x41e91b['get'](_0x33d2c2);_0x262f03['cost']+=_0x45c487['cost'],_0x262f03['tokens']+=_0x45c487['tokens'],_0x262f03['requests']+=_0x45c487[_0x504985(0x20f)];})):(_0x18f15a[_0x44d813(0x20d)][_0x44d813(0x21f)]({'date':_0x4b8fa6,'cost':0x0}),_0x18f15a['tokensByDay']['unshift']({'date':_0x4b8fa6,'tokens':0x0}));}return _0x18f15a['dailyAverages']['cost']=_0x5ad5a8/_0x1ff05c,_0x18f15a[_0x44d813(0x243)]['tokens']=_0x3a6821/_0x1ff05c,_0x18f15a['dailyAverages'][_0x44d813(0x20f)]=_0x4231e1/_0x1ff05c,_0x18f15a[_0x44d813(0x213)]=Array[_0x44d813(0x231)](_0x4caf45['entries']())[_0x44d813(0x24b)](([_0x300226,_0x4b72af])=>({'id':_0x300226,..._0x4b72af}))[_0x44d813(0x20a)]((_0x1c2a8c,_0x30ea0e)=>_0x30ea0e['cost']-_0x1c2a8c[_0x44d813(0x225)])[_0x44d813(0x233)](0x0,0xa),_0x18f15a['topModels']=Array[_0x44d813(0x231)](_0x41e91b[_0x44d813(0x238)]())['map'](([_0x4eb478,_0x3091bb])=>({'id':_0x4eb478,..._0x3091bb}))['sort']((_0x18dd49,_0xf6a556)=>_0xf6a556[_0x44d813(0x225)]-_0x18dd49['cost'])[_0x44d813(0x233)](0x0,0xa),_0x18f15a;}[a0_0x16c752(0x23d)](_0x45b10f=a0_0x16c752(0x235),_0x5f584c=null,_0x5b7b22=null){const _0x5d410d=a0_0x16c752,_0x23c270={'budgets':this['budgets'],'total':this['usage'][_0x5d410d(0x215)],'daily':{},'weekly':{},'monthly':{}},_0x505378=(_0x24bc4d,_0x3a5fde)=>{const _0x5250c8={};return _0x24bc4d['forEach']((_0x566b36,_0x1900c2)=>{const _0xa1cd43=_0x3a5fde(_0x1900c2);(!_0x5f584c||_0xa1cd43>=_0x5f584c)&&(!_0x5b7b22||_0xa1cd43<=_0x5b7b22)&&(_0x5250c8[_0x1900c2]=_0x566b36);}),_0x5250c8;};_0x5f584c||_0x5b7b22?(_0x23c270['daily']=_0x505378(this['usage'][_0x5d410d(0x23e)],_0x58e290=>new Date(_0x58e290)),_0x23c270[_0x5d410d(0x22e)]=_0x505378(this['usage']['weekly'],_0x13c6d6=>new Date(_0x13c6d6)),_0x23c270['monthly']=_0x505378(this[_0x5d410d(0x229)][_0x5d410d(0x1f0)],_0x516477=>new Date(_0x516477+_0x5d410d(0x20b)))):(this[_0x5d410d(0x229)]['daily']['forEach']((_0x277d2e,_0x4b4931)=>_0x23c270[_0x5d410d(0x23e)][_0x4b4931]=_0x277d2e),this['usage']['weekly']['forEach']((_0x543572,_0x514095)=>_0x23c270['weekly'][_0x514095]=_0x543572),this[_0x5d410d(0x229)][_0x5d410d(0x1f0)]['forEach']((_0x322b80,_0x397b15)=>_0x23c270['monthly'][_0x397b15]=_0x322b80));if(_0x45b10f===_0x5d410d(0x244))return this['convertToCSV'](_0x23c270);return JSON['stringify'](_0x23c270,null,0x2);}['initializeUsageEntry'](_0x45fc9a,_0x465191){const _0x113abf=a0_0x16c752;!_0x45fc9a['has'](_0x465191)&&_0x45fc9a['set'](_0x465191,this[_0x113abf(0x22b)]());}[a0_0x16c752(0x22b)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x16c752(0x211)](_0x423079,_0x22fa18){const _0x580714=a0_0x16c752;_0x423079[_0x580714(0x225)]+=_0x22fa18[_0x580714(0x225)],_0x423079[_0x580714(0x203)]+=_0x22fa18['tokens'],_0x423079[_0x580714(0x20f)]+=0x1,!_0x423079['byAgent'][_0x22fa18[_0x580714(0x230)]]&&(_0x423079['byAgent'][_0x22fa18[_0x580714(0x230)]]=this['createEmptyUsage']()),_0x423079['byAgent'][_0x22fa18[_0x580714(0x230)]][_0x580714(0x225)]+=_0x22fa18['cost'],_0x423079['byAgent'][_0x22fa18['agentId']][_0x580714(0x203)]+=_0x22fa18[_0x580714(0x203)],_0x423079['byAgent'][_0x22fa18[_0x580714(0x230)]][_0x580714(0x20f)]+=0x1,!_0x423079[_0x580714(0x217)][_0x22fa18[_0x580714(0x242)]]&&(_0x423079['byModel'][_0x22fa18[_0x580714(0x242)]]=this['createEmptyUsage']()),_0x423079[_0x580714(0x217)][_0x22fa18['modelId']]['cost']+=_0x22fa18['cost'],_0x423079[_0x580714(0x217)][_0x22fa18['modelId']][_0x580714(0x203)]+=_0x22fa18['tokens'],_0x423079['byModel'][_0x22fa18['modelId']][_0x580714(0x20f)]+=0x1;}['checkBudgetLimits'](_0x4312b9,_0x235d7a,_0x2479d1){const _0xa5f2eb=a0_0x16c752,_0x85e80f=this[_0xa5f2eb(0x229)]['daily']['get'](_0x4312b9),_0x10468c=this[_0xa5f2eb(0x229)]['weekly'][_0xa5f2eb(0x1fa)](_0x235d7a),_0x143b15=this['usage']['monthly'][_0xa5f2eb(0x1fa)](_0x2479d1);_0x85e80f[_0xa5f2eb(0x225)]>this['budgets']['daily']&&this['sendBudgetAlert'](_0xa5f2eb(0x23e),_0x85e80f['cost'],this['budgets']['daily']),_0x10468c['cost']>this[_0xa5f2eb(0x23a)]['weekly']&&this['sendBudgetAlert'](_0xa5f2eb(0x22e),_0x10468c['cost'],this[_0xa5f2eb(0x23a)]['weekly']),_0x143b15[_0xa5f2eb(0x225)]>this['budgets']['monthly']&&this['sendBudgetAlert']('monthly',_0x143b15['cost'],this[_0xa5f2eb(0x23a)]['monthly']),this['checkThresholdAlerts'](_0x85e80f,_0x10468c,_0x143b15);}[a0_0x16c752(0x20e)](_0xccacaa,_0xdfe6b8,_0x54923a){const _0x233748=a0_0x16c752,_0x4f9b23=this['alerts'][_0x233748(0x222)];this['checkThreshold'](_0x233748(0x23e),_0xccacaa['cost'],this[_0x233748(0x23a)]['daily'],_0x4f9b23),this[_0x233748(0x224)](_0x233748(0x22e),_0xdfe6b8[_0x233748(0x225)],this[_0x233748(0x23a)]['weekly'],_0x4f9b23),this[_0x233748(0x224)](_0x233748(0x1f0),_0x54923a[_0x233748(0x225)],this[_0x233748(0x23a)][_0x233748(0x1f0)],_0x4f9b23);}[a0_0x16c752(0x224)](_0x1cf39d,_0x49866c,_0x450909,_0x3fe17d){const _0x2ee4af=a0_0x16c752,_0x5022fb=_0x49866c/_0x450909*0x64;for(const _0xdc5f6f of _0x3fe17d){if(_0x5022fb>=_0xdc5f6f){const _0x3e8869=_0x1cf39d+'_'+_0xdc5f6f,_0x4316b9=this[_0x2ee4af(0x227)]['lastAlertTimes']['get'](_0x3e8869),_0x42a7b7=Date[_0x2ee4af(0x23f)]();(!_0x4316b9||_0x42a7b7-_0x4316b9>0x36ee80)&&(this[_0x2ee4af(0x251)](_0x1cf39d,_0x5022fb,_0xdc5f6f,_0x49866c,_0x450909),this['alerts'][_0x2ee4af(0x239)][_0x2ee4af(0x236)](_0x3e8869,_0x42a7b7));break;}}}['sendBudgetAlert'](_0x3a1357,_0x4d2154,_0x598fba){const _0x4b24ab=a0_0x16c752;this[_0x4b24ab(0x209)]['warn'](_0x4b24ab(0x24c),{'period':_0x3a1357,'currentUsage':_0x4d2154,'budgetLimit':_0x598fba,'excess':_0x4d2154-_0x598fba}),typeof process!=='undefined'&&process['emit']&&process['emit'](_0x4b24ab(0x240),{'type':_0x4b24ab(0x210),'period':_0x3a1357,'currentUsage':_0x4d2154,'budgetLimit':_0x598fba,'excess':_0x4d2154-_0x598fba});}['sendThresholdAlert'](_0x5c1b3b,_0x55d7b9,_0x587673,_0x25e076,_0x3648dc){const _0x2ba884=a0_0x16c752;this['logger'][_0x2ba884(0x21b)]('Budget\x20threshold\x20reached',{'period':_0x5c1b3b,'percentage':Math['round'](_0x55d7b9),'threshold':_0x587673,'usage':_0x25e076,'budget':_0x3648dc}),typeof process!=='undefined'&&process[_0x2ba884(0x22a)]&&process['emit']('budgetAlert',{'type':_0x2ba884(0x232),'period':_0x5c1b3b,'percentage':Math[_0x2ba884(0x223)](_0x55d7b9),'threshold':_0x587673,'usage':_0x25e076,'budget':_0x3648dc});}[a0_0x16c752(0x246)](_0x521589){const _0x154667=a0_0x16c752;return _0x521589[_0x154667(0x220)]()[_0x154667(0x200)]('T')[0x0];}['getWeekKey'](_0xdd24f8){const _0x4ed6b5=a0_0x16c752,_0x49c35a=_0xdd24f8['getFullYear'](),_0x3985cb=this['getWeekNumber'](_0xdd24f8);return _0x49c35a+'-W'+_0x3985cb[_0x4ed6b5(0x1f5)]()['padStart'](0x2,'0');}['getMonthKey'](_0x2ef0c1){const _0x5d4897=a0_0x16c752,_0x1eb889=_0x2ef0c1[_0x5d4897(0x22f)](),_0x347c7f=_0x2ef0c1['getMonth']()+0x1;return _0x1eb889+'-'+_0x347c7f[_0x5d4897(0x1f5)]()[_0x5d4897(0x207)](0x2,'0');}[a0_0x16c752(0x1f7)](_0x1986cc){const _0x337753=a0_0x16c752,_0x377b82=new Date(_0x1986cc['getFullYear'](),0x0,0x1),_0x1142e1=(_0x1986cc-_0x377b82)/0x5265c00;return Math[_0x337753(0x201)]((_0x1142e1+_0x377b82['getDay']()+0x1)/0x7);}['convertToCSV'](_0x269fdc){const _0x407b73=a0_0x16c752,_0x42f6f3=[];return _0x42f6f3['push']([_0x407b73(0x24e),'Date','Cost','Tokens',_0x407b73(0x23c),_0x407b73(0x221),_0x407b73(0x249)]),Object[_0x407b73(0x238)](_0x269fdc['daily'])[_0x407b73(0x21a)](([_0x5d5ba1,_0x2627de])=>{const _0x1e5527=_0x407b73;_0x42f6f3['push']([_0x1e5527(0x20c),_0x5d5ba1,_0x2627de[_0x1e5527(0x225)],_0x2627de['tokens'],_0x2627de[_0x1e5527(0x20f)],'','']),Object['entries'](_0x2627de['byAgent']||{})[_0x1e5527(0x21a)](([_0x1adfc3,_0xaef986])=>{const _0x1c693f=_0x1e5527;_0x42f6f3['push']([_0x1c693f(0x20c),_0x5d5ba1,_0xaef986[_0x1c693f(0x225)],_0xaef986['tokens'],_0xaef986[_0x1c693f(0x20f)],_0x1adfc3,'']);});}),_0x42f6f3[_0x407b73(0x24b)](_0x59abf9=>_0x59abf9['join'](','))['join']('\x0a');}['loadUsageData'](){const _0x11648c=a0_0x16c752;try{this['logger']['info'](_0x11648c(0x204));}catch(_0x23dc44){this['logger']['error'](_0x11648c(0x1ef),{'error':_0x23dc44['message']});}}[a0_0x16c752(0x1f8)](){const _0x1e552d=a0_0x16c752;try{this['logger']['debug'](_0x1e552d(0x234));}catch(_0x5c3534){this[_0x1e552d(0x209)]['error'](_0x1e552d(0x1fb),{'error':_0x5c3534[_0x1e552d(0x22c)]});}}['setupPeriodicSave'](){setInterval(()=>{const _0x5d8b1f=a0_0x390e;this[_0x5d8b1f(0x1f8)]();},0x493e0);}}function a0_0x3a69(){const _0x4cc5b1=['Dg9Rzw5Z','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','y2fSy3vSyxrLq29ZDa','veHsrvnit0XeuW','CgfKu3rHCNq','z2v0vxnHz2u','Bg9Nz2vY','C29YDa','ltaX','rgfPBhK','y29ZDej5rgf5','y2HLy2TuAhjLC2HVBgrbBgvYDhm','CMvXDwvZDhm','yNvKz2v0x2v4y2vLzgvK','DxbKyxrLvxnHz2vfBNrYEq','yNLbz2vUDa','Dg9WqwDLBNrZ','DhjHy2TvC2fNzq','Dg90ywW','z2v0uMvTywLUAw5NqNvKz2v0','yNLnB2rLBa','nKrns01gzW','mta3ntCZog1IC2ztsq','zM9YrwfJAa','D2fYBG','Dg9Rzw5ZqNLeyxK','vxnHz2uGDhjHy2TLza','y29UzMLN','Dw5ZAgLMDa','Dg9ju09tDhjPBMC','qwDLBNq','DgHYzxnOB2XKCW','CM91BMq','y2HLy2TuAhjLC2HVBgq','y29ZDa','sw52ywXPzcbWzxjPB2q6ia','ywXLCNrZ','z2v0v2vLA0TLEq','DxnHz2u','zw1PDa','y3jLyxrLrw1WDhLvC2fNzq','BwvZC2fNzq','AgfZ','D2vLA2X5','z2v0rNvSBfLLyxi','ywDLBNrjza','zNjVBq','DgHYzxnOB2XKx3jLywnOzwq','C2XPy2u','vxnHz2uGzgf0ysbZyxzLza','ANnVBG','C2v0','mJaZmZu0mujUwKnnBq','zw50CMLLCW','BgfZDefSzxj0vgLTzxm','yNvKz2v0CW','Aw5PDgLHBgL6zvvZywDLrw50CNK','uMvXDwvZDhm','zxHWB3j0vxnHz2veyxrH','zgfPBhK','BM93','yNvKz2v0qwXLCNq','ChjVBxb0x3rVA2vUCW','Bw9KzwXjza','zgfPBhLbDMvYywDLCW','y3n2','z2v0tw9KzwXvC2fNzq','z2v0rgf5s2v5','Dg90ywXFDg9Rzw5Z','ntuZmtKXogfwugXIBq','tw9KzwW','ndmYntr3q1zkCfm','BwfW','qNvKz2v0igXPBwL0igv4y2vLzgvK','rMfPBgvKihrVihrYywnRihvZywDL','ugvYAw9K','C2v0rgf0zq','nZC2otqWs0Puuw1I','C2vUzfrOCMvZAg9SzefSzxj0','rMfPBgvKihrVigXVywqGDxnHz2uGzgf0yq','Bw9UDgHSEq','z2v0tw9UDgHlzxK','z2v0qwDLBNrvC2fNzq','mtK4mdy3meftB09cAG','Bwf4','Dg9tDhjPBMC','v0vfs0Xz','z2v0v2vLA051BwjLCG','C2f2zvvZywDLrgf0yq','Aw5MBW','z2v0','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','tu9oveHmwq','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','B3v0Chv0','z2v0vxnHz2vuCMvUzhm','C3bSAxq','y2vPBa','mtGWodKZmZzoq0vvBNq'];a0_0x3a69=function(){return _0x4cc5b1;};return a0_0x3a69();}export default BudgetService;
|
|
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 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a0_0x2ff622=a0_0x1d57;(function(_0x337c1d,_0x334467){const _0x3f1bd4=a0_0x1d57,_0x54340c=_0x337c1d();while(!![]){try{const _0x4a997b=-parseInt(_0x3f1bd4(0xec))/0x1+parseInt(_0x3f1bd4(0xfe))/0x2+parseInt(_0x3f1bd4(0xde))/0x3*(parseInt(_0x3f1bd4(0xf3))/0x4)+-parseInt(_0x3f1bd4(0xe4))/0x5*(-parseInt(_0x3f1bd4(0xf7))/0x6)+-parseInt(_0x3f1bd4(0x108))/0x7+parseInt(_0x3f1bd4(0x10c))/0x8*(parseInt(_0x3f1bd4(0x102))/0x9)+-parseInt(_0x3f1bd4(0xe0))/0xa;if(_0x4a997b===_0x334467)break;else _0x54340c['push'](_0x54340c['shift']());}catch(_0x1dd549){_0x54340c['push'](_0x54340c['shift']());}}}(a0_0x5416,0x2528a));function a0_0x5416(){const _0x5e217c=['cIaGpc9MAwXLpG','BgvUz3rO','nJGWmJjsu2X1Bhu','zMLSDgvY','CMvMzxjLBMnL','jMfTCdS','Bg9Nz2vY','zMXVB3i','nZm5odm3zwzuq21q','zMLSzxm','Aw5PDgLHBgL6zq','zM9YBwf0qNL0zxm','mtm2q0DxugD6','yNvPBgreEw5HBwLJq29UDgv4Da','rxjYB3iGyNvPBgrPBMCGzhLUyw1PyYbJB250zxH0','jMfWB3m7','zM9YBwf0ugrMrMLSzq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','zM9YBwf0sw1Hz2vgAwXL','zM9YBwf0vgv4DezPBgu','m1fnzffRwG','y29UDgvUDa','mZK1ndK2mfLUsffwta','zM9YBwf0uMvMzxjLBMnLrMLSzq','iIaVpG','CMvWBgfJzq','mte3nJGZnwT6vufsrq','rxjYB3iGzxn0Aw1HDgLUzYb0B3rHBcb0B2TLBNm','zxjYB3i','zxnJyxbLwg1S','BwvZC2fNzq','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','Dg9Rzw5fC3rPBwf0zq','CgrM','mJi1mtG0u3v1zLfd','zMLSzu5HBwu','iIbZAxPLpsi','iIbWyxrOpsi','y29UzMLN','C2L6zq','Bw9Kzq','otyWnZy0zuXxzKrx','C3bSAxq','zxn0Aw1HDgvKvg9Rzw5Z','z2v0qwn0AxzLqxr0ywnOBwvUDhm','nNbtEuHLtq','zM9YBwf0q29UDgvUDezPBgu','ica8zMLSzsbUyw1Lpsi','cJXHDhrHy2HLzc1MAwXLCZ4k','yxr0ywnOBwvUDfnLCNzPy2u','ChvZAa','Cg93','ntq5mdu4txHgzMfz','iIb0ExbLpsi'];a0_0x5416=function(){return _0x5e217c;};return a0_0x5416();}import a0_0xef1d6e from'./fileAttachmentService.js';function a0_0x1d57(_0x182bc6,_0x44268a){_0x182bc6=_0x182bc6-0xd9;const _0x5416ba=a0_0x5416();let _0x1d5762=_0x5416ba[_0x182bc6];if(a0_0x1d57['uyGesK']===undefined){var _0x4000fd=function(_0x41cb5c){const _0x54f090='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xef1d6e='',_0x4c5607='';for(let _0x24d79b=0x0,_0x2b7756,_0x16af80,_0x43b997=0x0;_0x16af80=_0x41cb5c['charAt'](_0x43b997++);~_0x16af80&&(_0x2b7756=_0x24d79b%0x4?_0x2b7756*0x40+_0x16af80:_0x16af80,_0x24d79b++%0x4)?_0xef1d6e+=String['fromCharCode'](0xff&_0x2b7756>>(-0x2*_0x24d79b&0x6)):0x0){_0x16af80=_0x54f090['indexOf'](_0x16af80);}for(let _0x1df026=0x0,_0x1e0318=_0xef1d6e['length'];_0x1df026<_0x1e0318;_0x1df026++){_0x4c5607+='%'+('00'+_0xef1d6e['charCodeAt'](_0x1df026)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4c5607);};a0_0x1d57['JivmxF']=_0x4000fd,a0_0x1d57['PPRGvu']={},a0_0x1d57['uyGesK']=!![];}const _0x441a55=_0x5416ba[0x0],_0x4e19b4=_0x182bc6+_0x441a55,_0x233199=a0_0x1d57['PPRGvu'][_0x4e19b4];return!_0x233199?(_0x1d5762=a0_0x1d57['JivmxF'](_0x1d5762),a0_0x1d57['PPRGvu'][_0x4e19b4]=_0x1d5762):_0x1d5762=_0x233199,_0x1d5762;}class ContextInjectionService{constructor(_0x4c5607={},_0x24d79b=null){const _0x3c22e5=a0_0x1d57;this[_0x3c22e5(0xf0)]=_0x4c5607,this['logger']=_0x24d79b,this[_0x3c22e5(0xfb)]=new a0_0xef1d6e(_0x4c5607,_0x24d79b);}async[a0_0x2ff622(0x10a)](){const _0x388cbd=a0_0x2ff622;await this[_0x388cbd(0xfb)]['initialize']();}async[a0_0x2ff622(0x10d)](_0x2b7756){const _0x5b8b93=a0_0x2ff622;try{const _0x16af80=await this[_0x5b8b93(0xfb)]['getActiveAttachments'](_0x2b7756);if(_0x16af80['length']===0x0)return'';const _0x43b997=_0x16af80['filter'](_0x21584c=>_0x21584c[_0x5b8b93(0xf2)]==='content'),_0x1df026=_0x16af80['filter'](_0x56196e=>_0x56196e[_0x5b8b93(0xf2)]==='reference');let _0x1e0318='';if(_0x43b997['length']>0x0){_0x1e0318+=_0x5b8b93(0xfa);for(const _0x1a5a84 of _0x43b997){const _0x1fcf55=await this[_0x5b8b93(0xfb)]['getAttachmentContent'](_0x1a5a84['fileId']);if(_0x1fcf55){const _0x36b591=this[_0x5b8b93(0xf8)](_0x1a5a84,_0x1fcf55);_0x1e0318+=_0x36b591+'\x0a';}}_0x1e0318+='</attached-files>\x0a';}if(_0x1df026['length']>0x0){_0x1e0318+='\x0a<file-references>\x0a';for(const _0x19500b of _0x1df026){const _0x53950e=this['formatReferenceFile'](_0x19500b);_0x1e0318+=_0x53950e+'\x0a';}_0x1e0318+=_0x5b8b93(0xdb),_0x1e0318+='\x0aNote:\x20Referenced\x20files\x20can\x20be\x20accessed\x20using\x20the\x20filesystem\x20tool\x20if\x20needed.\x0a';}return _0x1e0318;}catch(_0x4e38c0){return this['logger']?.['error'](_0x5b8b93(0x10e),{'agentId':_0x2b7756,'error':_0x4e38c0['message']}),'';}}[a0_0x2ff622(0xf8)](_0x3d0fa3,_0x9f6ba2){const _0x1e7228=a0_0x2ff622,{fileName:_0x17be4c,fileType:_0x539c90,size:_0x1c9820,contentType:_0x2d8878}=_0x3d0fa3,_0x2ffdf7=(_0x1c9820/0x400)['toFixed'](0x2);if(_0x2d8878==='text')return this[_0x1e7228(0xdd)](_0x3d0fa3,_0x9f6ba2);else{if(_0x2d8878==='image')return this['formatImageFile'](_0x3d0fa3,_0x9f6ba2);else{if(_0x2d8878===_0x1e7228(0xeb))return this['formatPdfFile'](_0x3d0fa3,_0x9f6ba2);}}return'\x20\x20<file\x20name=\x22'+this[_0x1e7228(0xe7)](_0x17be4c)+'\x22\x20type=\x22'+_0x539c90+_0x1e7228(0xee)+_0x2ffdf7+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x9f6ba2)+_0x1e7228(0x100);}[a0_0x2ff622(0xdd)](_0x1d7782,_0xb5d6a){const _0x176e75=a0_0x2ff622,{fileName:_0x4acf9e,fileType:_0x195535,size:_0x284f16}=_0x1d7782,_0x25f3d9=(_0x284f16/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x4acf9e)+_0x176e75(0xff)+_0x195535+_0x176e75(0xee)+_0x25f3d9+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x176e75(0xe7)](_0xb5d6a)+'\x0a\x20\x20</file>';}[a0_0x2ff622(0xdc)](_0x3f4da3,_0x4731f4){const _0x1960e8=a0_0x2ff622,{fileName:_0x22bc5e,fileType:_0x2f20aa,size:_0x340053}=_0x3f4da3,_0x5c68db=(_0x340053/0x400)['toFixed'](0x2);return _0x1960e8(0xf9)+this['escapeXml'](_0x22bc5e)+_0x1960e8(0xff)+_0x2f20aa+_0x1960e8(0xee)+_0x5c68db+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x4731f4+'\x0a\x20\x20</file>';}[a0_0x2ff622(0xda)](_0x251b9d,_0x2b33ce){const _0x1d78a9=a0_0x2ff622,{fileName:_0x2e753e,fileType:_0x59faba,size:_0x15b62f}=_0x251b9d,_0x4f2c39=(_0x15b62f/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x2e753e)+_0x1d78a9(0xff)+_0x59faba+_0x1d78a9(0xee)+_0x4f2c39+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x1d78a9(0xe7)](_0x2b33ce)+'\x0a\x20\x20</file>';}[a0_0x2ff622(0xe1)](_0x4645fc){const _0xf1f230=a0_0x2ff622,{fileName:_0xb69ee0,originalPath:_0x1b0a77,size:_0x515f9d,fileType:_0x19e49f,lastModified:_0x4e245d}=_0x4645fc,_0x5c0ebb=this[_0xf1f230(0x10b)](_0x515f9d),_0x3ba5ab=new Date(_0x4e245d)['toISOString']()[_0xf1f230(0xf4)]('T')[0x0];return _0xf1f230(0xf9)+this['escapeXml'](_0xb69ee0)+_0xf1f230(0xef)+this[_0xf1f230(0xe7)](_0x1b0a77)+_0xf1f230(0xee)+_0x5c0ebb+'\x22\x20type=\x22'+_0x19e49f+'\x22\x20modified=\x22'+_0x3ba5ab+_0xf1f230(0xe2);}['escapeXml'](_0x570db2){const _0x5cec6e=a0_0x2ff622;if(!_0x570db2)return'';return _0x570db2[_0x5cec6e(0xe3)](/&/g,_0x5cec6e(0x105))['replace'](/</g,'<')[_0x5cec6e(0xe3)](/>/g,'>')['replace'](/"/g,'"')[_0x5cec6e(0xe3)](/'/g,_0x5cec6e(0xd9));}['formatBytes'](_0x1cf6dd){const _0x5b6479=a0_0x2ff622;if(_0x1cf6dd===0x0)return'0\x20Bytes';const _0xb2c648=0x400,_0x3e592c=['Bytes','KB','MB','GB'],_0x392561=Math[_0x5b6479(0x107)](Math['log'](_0x1cf6dd)/Math['log'](_0xb2c648));return parseFloat((_0x1cf6dd/Math[_0x5b6479(0xfd)](_0xb2c648,_0x392561))['toFixed'](0x2))+_0x3e592c[_0x392561];}async['estimateTotalTokens'](_0x4a0c08){const _0xdd3e39=a0_0x2ff622;try{const _0x4ecc99=await this['attachmentService'][_0xdd3e39(0xf6)](_0x4a0c08);let _0x174b19=0x0;for(const _0x2ed6b6 of _0x4ecc99){_0x2ed6b6[_0xdd3e39(0xf2)]===_0xdd3e39(0xdf)?_0x174b19+=_0x2ed6b6[_0xdd3e39(0xea)]||0x0:_0x174b19+=0x14;}return _0x174b19;}catch(_0x371191){return this['logger']?.['error'](_0xdd3e39(0xe5),{'agentId':_0x4a0c08,'error':_0x371191['message']}),0x0;}}async['getAttachmentSummary'](_0xefba91){const _0x3aec4b=a0_0x2ff622;try{const _0x4519c7=await this[_0x3aec4b(0xfb)]['getActiveAttachments'](_0xefba91),_0x321c96={'totalActive':_0x4519c7[_0x3aec4b(0x101)],'contentMode':_0x4519c7['filter'](_0x5a2d04=>_0x5a2d04['mode']===_0x3aec4b(0xdf))[_0x3aec4b(0x101)],'referenceMode':_0x4519c7[_0x3aec4b(0x103)](_0x11aca7=>_0x11aca7[_0x3aec4b(0xf2)]===_0x3aec4b(0x104))['length'],'estimatedTokens':0x0,'files':[]};for(const _0x4d9b15 of _0x4519c7){_0x321c96[_0x3aec4b(0xf5)]+=_0x4d9b15['tokenEstimate']||0x0,_0x321c96[_0x3aec4b(0x109)][_0x3aec4b(0xfc)]({'fileName':_0x4d9b15[_0x3aec4b(0xed)],'mode':_0x4d9b15['mode'],'size':this[_0x3aec4b(0x10b)](_0x4d9b15[_0x3aec4b(0xf1)]),'tokens':_0x4d9b15['tokenEstimate']||0x0});}return _0x321c96;}catch(_0x303ea6){return this[_0x3aec4b(0x106)]?.[_0x3aec4b(0xe6)](_0x3aec4b(0xe9),{'agentId':_0xefba91,'error':_0x303ea6[_0x3aec4b(0xe8)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;
|