@loxia-labs/loxia-autopilot-one 1.0.7 → 1.0.8

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.
Files changed (119) hide show
  1. package/README.md +2 -2
  2. package/bin/cli.js +1 -1
  3. package/bin/loxia-terminal-v2.js +1 -1
  4. package/bin/loxia-terminal.js +1 -1
  5. package/bin/start-with-terminal.js +1 -1
  6. package/package.json +1 -1
  7. package/scripts/install-scanners.js +1 -1
  8. package/src/analyzers/CSSAnalyzer.js +1 -1
  9. package/src/analyzers/ConfigValidator.js +1 -1
  10. package/src/analyzers/ESLintAnalyzer.js +1 -1
  11. package/src/analyzers/JavaScriptAnalyzer.js +1 -1
  12. package/src/analyzers/PrettierFormatter.js +1 -1
  13. package/src/analyzers/PythonAnalyzer.js +1 -1
  14. package/src/analyzers/SecurityAnalyzer.js +1 -1
  15. package/src/analyzers/TypeScriptAnalyzer.js +1 -1
  16. package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
  17. package/src/analyzers/codeCloneDetector/detector.js +1 -1
  18. package/src/analyzers/codeCloneDetector/index.js +1 -1
  19. package/src/analyzers/codeCloneDetector/parser.js +1 -1
  20. package/src/analyzers/codeCloneDetector/reporter.js +1 -1
  21. package/src/analyzers/codeCloneDetector/scanner.js +1 -1
  22. package/src/core/agentPool.js +1 -1
  23. package/src/core/agentScheduler.js +1 -1
  24. package/src/core/contextManager.js +1 -1
  25. package/src/core/messageProcessor.js +1 -1
  26. package/src/core/orchestrator.js +1 -1
  27. package/src/core/stateManager.js +1 -1
  28. package/src/index.js +1 -1
  29. package/src/interfaces/cli.js +1 -1
  30. package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
  31. package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
  32. package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
  33. package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
  34. package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
  35. package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
  36. package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
  37. package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
  38. package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
  39. package/src/interfaces/terminal/api/apiClient.js +1 -1
  40. package/src/interfaces/terminal/api/messageRouter.js +1 -1
  41. package/src/interfaces/terminal/api/session.js +1 -1
  42. package/src/interfaces/terminal/api/websocket.js +1 -1
  43. package/src/interfaces/terminal/components/AgentCreator.js +1 -1
  44. package/src/interfaces/terminal/components/AgentEditor.js +1 -1
  45. package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
  46. package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
  47. package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
  48. package/src/interfaces/terminal/components/Header.js +1 -1
  49. package/src/interfaces/terminal/components/HelpPanel.js +1 -1
  50. package/src/interfaces/terminal/components/InputBox.js +1 -1
  51. package/src/interfaces/terminal/components/Layout.js +1 -1
  52. package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
  53. package/src/interfaces/terminal/components/MessageList.js +1 -1
  54. package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
  55. package/src/interfaces/terminal/components/SearchPanel.js +1 -1
  56. package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
  57. package/src/interfaces/terminal/components/StatusBar.js +1 -1
  58. package/src/interfaces/terminal/components/TextInput.js +1 -1
  59. package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
  60. package/src/interfaces/terminal/config/constants.js +1 -1
  61. package/src/interfaces/terminal/index.js +1 -1
  62. package/src/interfaces/terminal/state/useAgentControl.js +1 -1
  63. package/src/interfaces/terminal/state/useAgents.js +1 -1
  64. package/src/interfaces/terminal/state/useConnection.js +1 -1
  65. package/src/interfaces/terminal/state/useMessages.js +1 -1
  66. package/src/interfaces/terminal/state/useTools.js +1 -1
  67. package/src/interfaces/terminal/utils/debugLogger.js +1 -1
  68. package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
  69. package/src/interfaces/terminal/utils/theme.js +1 -1
  70. package/src/interfaces/webServer.js +1 -1
  71. package/src/modules/fileExplorer/controller.js +1 -1
  72. package/src/modules/fileExplorer/index.js +1 -1
  73. package/src/modules/fileExplorer/middleware.js +1 -1
  74. package/src/modules/fileExplorer/routes.js +1 -1
  75. package/src/services/aiService.js +1 -1
  76. package/src/services/apiKeyManager.js +1 -1
  77. package/src/services/benchmarkService.js +1 -1
  78. package/src/services/budgetService.js +1 -1
  79. package/src/services/contextInjectionService.js +1 -1
  80. package/src/services/conversationCompactionService.js +1 -1
  81. package/src/services/errorHandler.js +1 -1
  82. package/src/services/fileAttachmentService.js +1 -1
  83. package/src/services/modelRouterService.js +1 -1
  84. package/src/services/modelsService.js +1 -1
  85. package/src/services/qualityInspector.js +1 -1
  86. package/src/services/tokenCountingService.js +1 -1
  87. package/src/tools/agentCommunicationTool.js +1 -1
  88. package/src/tools/agentDelayTool.js +1 -1
  89. package/src/tools/asyncToolManager.js +1 -1
  90. package/src/tools/baseTool.js +1 -1
  91. package/src/tools/browserTool.js +1 -1
  92. package/src/tools/cloneDetectionTool.js +1 -1
  93. package/src/tools/dependencyResolverTool.js +1 -1
  94. package/src/tools/fileContentReplaceTool.js +1 -1
  95. package/src/tools/fileSystemTool.js +1 -1
  96. package/src/tools/fileTreeTool.js +1 -1
  97. package/src/tools/imageTool.js +1 -1
  98. package/src/tools/importAnalyzerTool.js +1 -1
  99. package/src/tools/jobDoneTool.js +1 -1
  100. package/src/tools/seekTool.js +1 -1
  101. package/src/tools/staticAnalysisTool.js +1 -1
  102. package/src/tools/taskManagerTool.js +1 -1
  103. package/src/tools/terminalTool.js +1 -1
  104. package/src/tools/webTool.js +1 -1
  105. package/src/types/agent.js +1 -1
  106. package/src/types/contextReference.js +1 -1
  107. package/src/types/conversation.js +1 -1
  108. package/src/types/toolCommand.js +1 -1
  109. package/src/utilities/attachmentValidator.js +1 -1
  110. package/src/utilities/configManager.js +1 -1
  111. package/src/utilities/constants.js +1 -1
  112. package/src/utilities/directoryAccessManager.js +1 -1
  113. package/src/utilities/fileProcessor.js +1 -1
  114. package/src/utilities/logger.js +1 -1
  115. package/src/utilities/tagParser.js +1 -1
  116. package/src/utilities/toolConstants.js +1 -1
  117. package/web-ui/build/index.html +2 -2
  118. package/web-ui/build/static/{index-BVF_10a5.css → index-BmKxmRe3.css} +1 -1
  119. package/web-ui/build/static/{index-DE5VFS1q.js → index-BzXbDs8z.js} +63 -63
@@ -1 +1 @@
1
- const a0_0x4bf198=a0_0xfd66;(function(_0x5a5e8c,_0x1c7aa4){const _0x23d3dc=a0_0xfd66,_0x4204c7=_0x5a5e8c();while(!![]){try{const _0x247c8f=-parseInt(_0x23d3dc(0x25a))/0x1+parseInt(_0x23d3dc(0x23c))/0x2*(parseInt(_0x23d3dc(0x1de))/0x3)+parseInt(_0x23d3dc(0x21f))/0x4*(parseInt(_0x23d3dc(0x1ca))/0x5)+parseInt(_0x23d3dc(0x1f0))/0x6+parseInt(_0x23d3dc(0x21a))/0x7*(-parseInt(_0x23d3dc(0x21c))/0x8)+parseInt(_0x23d3dc(0x207))/0x9+-parseInt(_0x23d3dc(0x1df))/0xa*(parseInt(_0x23d3dc(0x216))/0xb);if(_0x247c8f===_0x1c7aa4)break;else _0x4204c7['push'](_0x4204c7['shift']());}catch(_0xa714f0){_0x4204c7['push'](_0x4204c7['shift']());}}}(a0_0xf1a0,0x18c74));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';function a0_0xfd66(_0x22862e,_0x2e1830){_0x22862e=_0x22862e-0x1c1;const _0xf1a0d=a0_0xf1a0();let _0xfd66f9=_0xf1a0d[_0x22862e];if(a0_0xfd66['ZrbhbC']===undefined){var _0x26e5fd=function(_0x414b3f){const _0x2b597c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29f3b3='',_0x13f05f='';for(let _0x2eb08f=0x0,_0x5d6e1a,_0x13e5bf,_0x2582fa=0x0;_0x13e5bf=_0x414b3f['charAt'](_0x2582fa++);~_0x13e5bf&&(_0x5d6e1a=_0x2eb08f%0x4?_0x5d6e1a*0x40+_0x13e5bf:_0x13e5bf,_0x2eb08f++%0x4)?_0x29f3b3+=String['fromCharCode'](0xff&_0x5d6e1a>>(-0x2*_0x2eb08f&0x6)):0x0){_0x13e5bf=_0x2b597c['indexOf'](_0x13e5bf);}for(let _0x563471=0x0,_0x5a005d=_0x29f3b3['length'];_0x563471<_0x5a005d;_0x563471++){_0x13f05f+='%'+('00'+_0x29f3b3['charCodeAt'](_0x563471)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x13f05f);};a0_0xfd66['OSqATj']=_0x26e5fd,a0_0xfd66['dFBZmf']={},a0_0xfd66['ZrbhbC']=!![];}const _0x281b25=_0xf1a0d[0x0],_0x2ab585=_0x22862e+_0x281b25,_0x482f1a=a0_0xfd66['dFBZmf'][_0x2ab585];return!_0x482f1a?(_0xfd66f9=a0_0xfd66['OSqATj'](_0xfd66f9),a0_0xfd66['dFBZmf'][_0x2ab585]=_0xfd66f9):_0xfd66f9=_0x482f1a,_0xfd66f9;}class AIService{constructor(_0x29f3b3,_0x13f05f,_0x2eb08f,_0x5d6e1a){const _0x2d11b9=a0_0xfd66;this['config']=_0x29f3b3,this['logger']=_0x13f05f,this['budgetService']=_0x2eb08f,this[_0x2d11b9(0x251)]=_0x5d6e1a,this['baseUrl']=_0x29f3b3[_0x2d11b9(0x204)]?.[_0x2d11b9(0x218)]||_0x2d11b9(0x205),this[_0x2d11b9(0x225)]=_0x29f3b3['backend']?.['timeout']||0xea60,this[_0x2d11b9(0x213)]=_0x29f3b3[_0x2d11b9(0x204)]?.['retryAttempts']||0x3,this[_0x2d11b9(0x1eb)]=new Map(),this['requestQueue']=new Map(),this[_0x2d11b9(0x259)]={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this[_0x2d11b9(0x234)]=this['_initializeModelSpecs'](),this['conversationManagers']=new Map(),this['apiKeyManager']=null,this[_0x2d11b9(0x1fd)]=null;}async[a0_0x4bf198(0x217)](_0x13e5bf,_0x2582fa,_0x563471={}){const _0x3677bc=a0_0x4bf198,_0x5a005d=_0x3677bc(0x1fc)+Date[_0x3677bc(0x24d)]()+'-'+Math['random']()['toString'](0x24)[_0x3677bc(0x1f9)](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x3677bc(0x222));await this['_checkRateLimit'](_0x13e5bf);const _0x185fe7=this[_0x3677bc(0x1e0)](_0x2582fa,_0x13e5bf,_0x563471),_0x54b279={'model':_0x13e5bf,'messages':_0x185fe7,'options':{'max_tokens':this[_0x3677bc(0x234)][_0x13e5bf]?.[_0x3677bc(0x22f)]||0xfa0,'temperature':_0x563471['temperature']||0.7,'stream':_0x563471[_0x3677bc(0x1ec)]||![]},'metadata':{'requestId':_0x5a005d,'agentId':_0x563471[_0x3677bc(0x1d3)],'timestamp':new Date()[_0x3677bc(0x1d7)]()}};_0x563471['systemPrompt']&&(_0x54b279[_0x3677bc(0x1c2)]=_0x563471['systemPrompt']);this['logger']['info'](_0x3677bc(0x1f7)+_0x13e5bf,{'requestId':_0x5a005d,'agentId':_0x563471['agentId'],'messageCount':Array[_0x3677bc(0x267)](_0x2582fa)?_0x2582fa[_0x3677bc(0x1ce)]:0x1,'maxTokens':_0x54b279['max_tokens']});const _0x559357=await this[_0x3677bc(0x209)](_0x3677bc(0x1e9),_0x54b279,_0x5a005d,{..._0x563471,'sessionId':_0x563471['sessionId'],'platformProvided':_0x563471[_0x3677bc(0x232)]||![]});return _0x559357[_0x3677bc(0x206)]&&await this[_0x3677bc(0x20d)](_0x563471['agentId'],_0x13e5bf,{'prompt_tokens':_0x559357[_0x3677bc(0x206)]['prompt_tokens']||0x0,'completion_tokens':_0x559357[_0x3677bc(0x206)]['completion_tokens']||0x0,'total_tokens':_0x559357['usage']['total_tokens']||0x0}),this['_resetCircuitBreaker'](),{'content':_0x559357['choices'][0x0]?.['message']?.[_0x3677bc(0x242)]||'','model':_0x559357[_0x3677bc(0x250)],'tokenUsage':_0x559357[_0x3677bc(0x206)],'requestId':_0x5a005d,'finishReason':_0x559357[_0x3677bc(0x25c)][0x0]?.['finish_reason']};}catch(_0x27594d){this[_0x3677bc(0x257)](),this[_0x3677bc(0x1e8)]['error']('AI\x20service\x20request\x20failed:\x20'+_0x27594d[_0x3677bc(0x235)],{'requestId':_0x5a005d,'model':_0x13e5bf,'agentId':_0x563471['agentId'],'error':_0x27594d[_0x3677bc(0x20c)]}),await this[_0x3677bc(0x201)](_0x27594d,{'requestId':_0x5a005d,'model':_0x13e5bf,'agentId':_0x563471['agentId']});throw _0x27594d;}}async['routeModel'](_0xa0ee27,_0x360982={}){const _0x11838b=a0_0x4bf198;try{const _0x35bffe=MODEL_ROUTING[_0xa0ee27[_0x11838b(0x255)]()]||MODEL_ROUTING[_0x11838b(0x224)],_0x48911f=[];for(const _0x2a62ea of _0x35bffe){const _0x7831aa=await this['_checkModelHealth'](_0x2a62ea);_0x7831aa&&_0x48911f[_0x11838b(0x1e2)](_0x2a62ea);}if(_0x48911f[_0x11838b(0x1ce)]===0x0)return this['logger'][_0x11838b(0x22e)](_0x11838b(0x1dc)+_0xa0ee27+',\x20using\x20fallback'),MODEL_ROUTING['FALLBACK'][0x0];let _0x5caf40=_0x48911f[0x0];if(_0x360982['preferredModel']&&_0x48911f['includes'](_0x360982['preferredModel']))_0x5caf40=_0x360982['preferredModel'];else{if(_0x360982['complexity']===_0x11838b(0x260)&&_0x48911f['includes'](MODELS[_0x11838b(0x1f1)]))_0x5caf40=MODELS['ANTHROPIC_OPUS'];else _0x360982['speed']==='fast'&&_0x48911f['includes'](MODELS[_0x11838b(0x212)])&&(_0x5caf40=MODELS[_0x11838b(0x212)]);}return this['logger']['info'](_0x11838b(0x266)+_0xa0ee27,{'selectedModel':_0x5caf40,'availableModels':_0x48911f['length'],'context':_0x360982}),_0x5caf40;}catch(_0x36a0f8){return this[_0x11838b(0x1e8)][_0x11838b(0x23b)](_0x11838b(0x1ef)+_0x36a0f8[_0x11838b(0x235)],{'task':_0xa0ee27,'context':_0x360982}),MODEL_ROUTING['FALLBACK'][0x0];}}async['compactizeConversation'](_0x357a65,_0x36f4ac){const _0x25a17e=a0_0x4bf198,_0x401231=this[_0x25a17e(0x234)][_0x36f4ac];if(!_0x401231)throw new Error('Unknown\x20model:\x20'+_0x36f4ac);const _0xc3a315=_0x401231['contextWindow']*0.8;let _0x4f42dd=0x0;const _0xf31c1f=[],_0x5e164e=await Promise['all'](_0x357a65[_0x25a17e(0x1e3)](async _0x23caaf=>({..._0x23caaf,'estimatedTokens':await this[_0x25a17e(0x226)](_0x23caaf['content'],_0x36f4ac)}))),_0x19943d=[..._0x5e164e]['reverse']();for(const _0x22684c of _0x19943d){if(_0x4f42dd+_0x22684c['estimatedTokens']>_0xc3a315){if(_0xf31c1f[_0x25a17e(0x1ce)]===0x0){const _0x53fbb1=await this['_truncateMessage'](_0x22684c['content'],_0xc3a315);_0xf31c1f['unshift']({..._0x22684c,'content':_0x53fbb1,'estimatedTokens':_0xc3a315});}break;}_0xf31c1f[_0x25a17e(0x1d6)](_0x22684c),_0x4f42dd+=_0x22684c[_0x25a17e(0x265)];}const _0x15d767=_0x5e164e[_0x25a17e(0x228)](0x0,-_0xf31c1f['length']);if(_0x15d767['length']>0x0){const _0x5181bc=await this['_summarizeMessages'](_0x15d767,_0x36f4ac);_0xf31c1f[_0x25a17e(0x1d6)]({'role':_0x25a17e(0x1c2),'content':'Previous\x20conversation\x20summary:\x20'+_0x5181bc,'timestamp':_0x15d767[0x0]['timestamp'],'type':'summary','estimatedTokens':await this[_0x25a17e(0x226)](_0x5181bc,_0x36f4ac)});}return this[_0x25a17e(0x1e8)][_0x25a17e(0x238)](_0x25a17e(0x22c)+_0x36f4ac,{'originalMessages':_0x357a65['length'],'compactizedMessages':_0xf31c1f[_0x25a17e(0x1ce)],'estimatedTokens':_0x4f42dd,'maxTokens':_0xc3a315}),_0xf31c1f;}async['trackUsage'](_0x197baf,_0x1ef57b,_0x159771,_0x145a58){const _0x2a7bce=a0_0x4bf198;try{this['budgetService']&&this[_0x2a7bce(0x20b)]['trackUsage'](_0x197baf,_0x1ef57b,_0x159771);}catch(_0x4e8a98){this['logger'][_0x2a7bce(0x23b)](_0x2a7bce(0x1ea)+_0x4e8a98['message']);}}async['handleHttpError'](_0x5a5e3c,_0x4f434b){const _0x443603=a0_0x4bf198,_0x422f4a=this[_0x443603(0x251)]?.['classifyError']?.(_0x5a5e3c,_0x4f434b);switch(_0x5a5e3c[_0x443603(0x20a)]||_0x5a5e3c[_0x443603(0x1fe)]){case HTTP_STATUS[_0x443603(0x25d)]:this['logger'][_0x443603(0x23b)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x4f434b,'error':_0x5a5e3c[_0x443603(0x235)]});throw new Error('Invalid\x20request:\x20'+_0x5a5e3c['message']);case HTTP_STATUS[_0x443603(0x1d4)]:this[_0x443603(0x1e8)][_0x443603(0x23b)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x4f434b});throw new Error(_0x443603(0x1fb));case HTTP_STATUS['FORBIDDEN']:this[_0x443603(0x1e8)][_0x443603(0x23b)]('Access\x20forbidden\x20to\x20AI\x20service',{'context':_0x4f434b});throw new Error(_0x443603(0x1e1));case HTTP_STATUS[_0x443603(0x25b)]:this['logger']['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x4f434b});throw new Error('Service\x20endpoint\x20not\x20found');case HTTP_STATUS['TOO_MANY_REQUESTS']:this[_0x443603(0x1e8)][_0x443603(0x22e)](_0x443603(0x208),{'context':_0x4f434b}),await this['_handleRateLimit'](_0x4f434b);throw new Error(_0x443603(0x1f4));case HTTP_STATUS['INTERNAL_SERVER_ERROR']:case HTTP_STATUS[_0x443603(0x230)]:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS['GATEWAY_TIMEOUT']:this['logger']['error'](_0x443603(0x247),{'context':_0x4f434b,'status':_0x5a5e3c['status']}),await this[_0x443603(0x20e)](_0x4f434b);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger']['error']('Unknown\x20AI\x20service\x20error',{'context':_0x4f434b,'error':_0x5a5e3c[_0x443603(0x235)]});throw new Error(_0x443603(0x23d)+_0x5a5e3c['message']);}}[a0_0x4bf198(0x1c4)](_0x2cf131){const _0x194ae3=a0_0x4bf198;this[_0x194ae3(0x263)]=_0x2cf131,this['logger']?.['info']('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x2cf131});}['setAgentPool'](_0x151862){const _0xe3478b=a0_0x4bf198;this['agentPool']=_0x151862,this['logger']?.[_0xe3478b(0x238)](_0xe3478b(0x229),{'hasAgentPool':!!_0x151862});}async[a0_0x4bf198(0x261)](_0x238cba,_0x3c5490={}){const _0x4b9465=a0_0x4bf198,_0x2854d7=_0x4b9465(0x1c3)+Date['now']()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error(_0x4b9465(0x222));if(!_0x238cba||typeof _0x238cba!==_0x4b9465(0x1d9)||_0x238cba[_0x4b9465(0x268)]()[_0x4b9465(0x1ce)]===0x0)throw new Error(_0x4b9465(0x1d1));const _0x57dce8=_0x3c5490[_0x4b9465(0x250)]||'flux-1.1-pro',_0x1ab50c=_0x3c5490[_0x4b9465(0x1ed)]||'1024x1024',_0x47b6af=_0x3c5490[_0x4b9465(0x1d5)]||_0x4b9465(0x22b),_0x5e68ae=_0x3c5490['responseFormat']||'url';this[_0x4b9465(0x1e8)]['info'](_0x4b9465(0x252)+_0x57dce8,{'requestId':_0x2854d7,'model':_0x57dce8,'size':_0x1ab50c,'quality':_0x47b6af,'promptLength':_0x238cba['length']});const _0x31c770={'prompt':_0x238cba,'model':_0x57dce8,'size':_0x1ab50c,'quality':_0x47b6af,'response_format':_0x5e68ae,'n':0x1,'metadata':{'requestId':_0x2854d7,'timestamp':new Date()['toISOString']()}},_0x30ec39=await this[_0x4b9465(0x1c8)](_0x31c770,_0x2854d7,{'sessionId':_0x3c5490[_0x4b9465(0x24e)],'platformProvided':_0x3c5490[_0x4b9465(0x232)]||![]});return this['_resetCircuitBreaker'](),{'url':_0x30ec39['data']?.[0x0]?.['url']||null,'b64_json':_0x30ec39[_0x4b9465(0x227)]?.[0x0]?.['b64_json']||null,'model':_0x30ec39[_0x4b9465(0x250)]||_0x57dce8,'requestId':_0x2854d7,'revisedPrompt':_0x30ec39['data']?.[0x0]?.['revised_prompt']||_0x238cba};}catch(_0x42f118){this['_recordFailure'](),this['logger'][_0x4b9465(0x23b)]('Image\x20generation\x20failed:\x20'+_0x42f118[_0x4b9465(0x235)],{'requestId':_0x2854d7,'model':_0x3c5490['model'],'error':_0x42f118[_0x4b9465(0x20c)]});throw _0x42f118;}}async['checkServiceHealth'](){const _0x20aa5a=a0_0x4bf198;try{const _0x49b50c=await this['_makeAPIRequest']('/health',{},_0x20aa5a(0x254));return _0x49b50c['status']==='healthy';}catch(_0x31106e){return![];}}async[a0_0x4bf198(0x1e6)](_0x487ef5,_0x23416e){const _0x2c68a8=a0_0x4bf198;try{if(!this[_0x2c68a8(0x203)](_0x23416e))throw new Error('Invalid\x20model:\x20'+_0x23416e);let _0x2bf93d=this['conversationManagers'][_0x2c68a8(0x24a)](_0x487ef5);!_0x2bf93d&&(_0x2bf93d=new ConversationManager(_0x487ef5,this['logger']),this['conversationManagers']['set'](_0x487ef5,_0x2bf93d));const _0x3161cd=await _0x2bf93d['switchModel'](_0x23416e),_0x134fb8=await this['agentPool']?.['getAgent'](_0x487ef5);return _0x134fb8&&(_0x134fb8['currentModel']=_0x23416e,await this[_0x2c68a8(0x1fd)]['persistAgentState'](_0x487ef5)),this['logger'][_0x2c68a8(0x238)]('Agent\x20model\x20switched:\x20'+_0x487ef5,{'newModel':_0x23416e,'messageCount':_0x3161cd[_0x2c68a8(0x1cd)]['length']}),{'success':!![],'agentId':_0x487ef5,'newModel':_0x23416e,'conversation':_0x3161cd};}catch(_0xf27d0f){this[_0x2c68a8(0x1e8)][_0x2c68a8(0x23b)](_0x2c68a8(0x1f5)+_0xf27d0f[_0x2c68a8(0x235)],{'agentId':_0x487ef5,'newModel':_0x23416e});throw _0xf27d0f;}}[a0_0x4bf198(0x1c6)](){const _0x5dc9d3=a0_0x4bf198,_0x1409e8={[MODELS[_0x5dc9d3(0x253)]]:{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x25f)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS['ANTHROPIC_OPUS']]:{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x25f)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS['ANTHROPIC'],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS[_0x5dc9d3(0x1cc)]]:{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x1cb)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x1cb)],'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[_0x5dc9d3(0x1cb)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x1cb)],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x5dc9d3(0x210)]]:{'provider':MODEL_PROVIDERS['DEEPSEEK'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS[_0x5dc9d3(0x1c1)]]:{'provider':MODEL_PROVIDERS[_0x5dc9d3(0x223)],'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':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x5dc9d3(0x1c5),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':_0x5dc9d3(0x1c5),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':'AZURE','contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x1409e8;}[a0_0x4bf198(0x1e0)](_0x3e0ae2,_0x130990,_0x562fc){const _0x3f6526=a0_0x4bf198,_0x10bf14=this[_0x3f6526(0x234)][_0x130990]||{'provider':_0x3f6526(0x1c5)};let _0x565f05;typeof _0x3e0ae2===_0x3f6526(0x1d9)?_0x565f05=[{'role':'user','content':_0x3e0ae2}]:_0x565f05=_0x3e0ae2['map'](_0x2f4dd0=>this['_formatSingleMessage'](_0x2f4dd0,_0x130990));switch(_0x10bf14[_0x3f6526(0x215)]){case MODEL_PROVIDERS['ANTHROPIC']:return this['_formatForAnthropic'](_0x565f05);case MODEL_PROVIDERS[_0x3f6526(0x1cb)]:return this[_0x3f6526(0x21e)](_0x565f05);case MODEL_PROVIDERS['AZURE']:return this['_formatForAzure'](_0x565f05);default:return _0x565f05;}}[a0_0x4bf198(0x240)](_0x28c110,_0x24015d){const _0x3c28bf=a0_0x4bf198;return{'role':_0x28c110[_0x3c28bf(0x1ff)]||_0x3c28bf(0x231),'content':_0x28c110[_0x3c28bf(0x242)],'timestamp':_0x28c110['timestamp']};}['_formatForAnthropic'](_0x5b1257){return _0x5b1257['map'](_0x5a372d=>{const _0x18788e=a0_0xfd66;if(_0x5a372d['role']==='system')return{'role':_0x18788e(0x231),'content':'System:\x20'+_0x5a372d[_0x18788e(0x242)]};return _0x5a372d;});}['_formatForOpenAI'](_0x4c95b0){return _0x4c95b0;}[a0_0x4bf198(0x1dd)](_0x2ddc9a){return _0x2ddc9a['map'](_0x51609e=>({..._0x51609e,'content':typeof _0x51609e['content']==='string'?_0x51609e['content']:JSON['stringify'](_0x51609e['content'])}));}['_isValidModel'](_0xc013b8){const _0x409719=a0_0x4bf198;this[_0x409719(0x1e8)]['debug']('Validating\x20model',{'model':_0xc013b8,'modelType':typeof _0xc013b8});if(this[_0x409719(0x234)][_0xc013b8]!==undefined)return!![];return this['logger'][_0x409719(0x22e)]('Model\x20validation\x20failed',{'model':_0xc013b8,'availableModels':Object['keys'](this[_0x409719(0x234)])}),![];}async['_checkModelHealth'](_0x4397d1){return!![];}async[a0_0x4bf198(0x226)](_0x3667f0,_0x40a269){const _0x1038b4=a0_0x4bf198;return Math[_0x1038b4(0x1db)](_0x3667f0['length']/0x4);}async[a0_0x4bf198(0x1e4)](_0x1a6fea,_0x19e474){const _0x3cc57e=a0_0x4bf198,_0x5227fe=_0x19e474*0x4;if(_0x1a6fea[_0x3cc57e(0x1ce)]<=_0x5227fe)return _0x1a6fea;return _0x1a6fea['substring'](0x0,_0x5227fe-0x14)+_0x3cc57e(0x243);}async[a0_0x4bf198(0x262)](_0x240f48,_0x366a04){const _0x4973bc=a0_0x4bf198,_0x5115ba=_0x240f48[_0x4973bc(0x1e3)](_0x13386f=>_0x13386f['role']+':\x20'+_0x13386f['content'])[_0x4973bc(0x23f)]('\x0a'),_0x2110e4=0x1f4;if(_0x5115ba['length']<=_0x2110e4)return _0x5115ba;return _0x5115ba[_0x4973bc(0x200)](0x0,_0x2110e4)+'...\x20[conversation\x20summary\x20truncated]';}async[a0_0x4bf198(0x209)](_0x46a56f,_0x44a367,_0x12d31d,_0x2e07f2={}){const _0x33c1b9=a0_0x4bf198,_0x521f88=_0x33c1b9(0x248);let _0x597f47,_0x320ef0=null,_0x3e4ae8=null;this['logger']?.['info']('🔑\x20API\x20Key\x20retrieval\x20state',{'hasApiKeyManager':!!this[_0x33c1b9(0x263)],'sessionId':_0x2e07f2['sessionId'],'hasSessionId':!!_0x2e07f2['sessionId'],'optionsKeys':Object[_0x33c1b9(0x1d2)](_0x2e07f2),'model':_0x44a367['model']});if(this[_0x33c1b9(0x263)]&&_0x2e07f2['sessionId']){const _0x447255=this['apiKeyManager']['getKeysForRequest'](_0x2e07f2[_0x33c1b9(0x24e)],{'platformProvided':_0x2e07f2[_0x33c1b9(0x232)]||![],'vendor':this[_0x33c1b9(0x1d0)](_0x44a367['model'])});_0x320ef0=_0x447255[_0x33c1b9(0x1f8)],_0x3e4ae8=_0x447255['vendorApiKey'],this['logger']?.['debug']('Retrieved API keys from session manager',{'sessionId':_0x2e07f2[_0x33c1b9(0x24e)],'hasLoxiaKey':!!_0x320ef0,'hasVendorKey':!!_0x3e4ae8,'vendor':this[_0x33c1b9(0x1d0)](_0x44a367[_0x33c1b9(0x250)])});}!_0x320ef0&&_0x2e07f2[_0x33c1b9(0x22a)]&&(_0x320ef0=_0x2e07f2['apiKey']);!_0x320ef0&&this[_0x33c1b9(0x1ee)][_0x33c1b9(0x22a)]&&(_0x320ef0=this['config']['apiKey']);if(!_0x320ef0)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0x4de739=_0x44a367['model'],_0x2e4608={'conversationId':_0x12d31d,'message':_0x44a367['messages'][_0x44a367[_0x33c1b9(0x1cd)]['length']-0x1]?.[_0x33c1b9(0x242)]||'','messages':_0x44a367[_0x33c1b9(0x1cd)],'model':_0x4de739,'requestId':_0x12d31d,'options':_0x44a367[_0x33c1b9(0x241)]||{},'platformProvided':_0x2e07f2[_0x33c1b9(0x232)]||![]};_0x44a367['system']&&(_0x2e4608['systemPrompt']=_0x44a367['system']);_0x2e07f2['platformProvided']?_0x2e4608['apiKey']=_0x320ef0:(_0x3e4ae8&&(_0x2e4608[_0x33c1b9(0x245)]=_0x3e4ae8),_0x2e07f2[_0x33c1b9(0x1c9)]&&(_0x2e4608['customApiKeys']=_0x2e07f2['customApiKeys']),_0x2e4608[_0x33c1b9(0x22a)]=_0x320ef0);for(let _0xaef020=0x1;_0xaef020<=this[_0x33c1b9(0x213)];_0xaef020++){try{this['logger'][_0x33c1b9(0x238)]('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x521f88,'model':_0x44a367[_0x33c1b9(0x250)],'requestId':_0x12d31d,'attempt':_0xaef020,'hasApiKey':!!_0x320ef0});const _0x5163a3=await fetch(_0x521f88,{'method':_0x33c1b9(0x23e),'headers':{'Content-Type':_0x33c1b9(0x220),'Authorization':'Bearer\x20'+_0x320ef0,'X-Request-ID':_0x12d31d},'body':JSON['stringify'](_0x2e4608),'timeout':this[_0x33c1b9(0x225)]});if(!_0x5163a3['ok']){const _0x4e3df9=await _0x5163a3['text'](),_0x2a31fb=new Error('HTTP\x20'+_0x5163a3['status']+':\x20'+_0x5163a3[_0x33c1b9(0x1e7)]+(_0x4e3df9?'\x20-\x20'+_0x4e3df9:''));_0x2a31fb['status']=_0x5163a3[_0x33c1b9(0x20a)];throw _0x2a31fb;}const _0xb0bc8=await _0x5163a3[_0x33c1b9(0x233)]();return{'choices':[{'message':{'content':_0xb0bc8['content']||'','role':'assistant'},'finish_reason':_0xb0bc8['finishReason']||_0x33c1b9(0x1d8)}],'usage':_0xb0bc8[_0x33c1b9(0x206)]||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0xb0bc8[_0x33c1b9(0x250)]||_0x44a367[_0x33c1b9(0x250)],'id':_0xb0bc8['requestId']||_0x12d31d};}catch(_0x2ade40){_0x597f47=_0x2ade40,this['logger']['warn']('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0xaef020,'requestId':_0x12d31d,'error':_0x2ade40[_0x33c1b9(0x235)],'status':_0x2ade40['status']});if(_0xaef020<this[_0x33c1b9(0x213)]){const _0x5e03b3=Math[_0x33c1b9(0x236)](0x2,_0xaef020)*0x3e8;this[_0x33c1b9(0x1e8)]['warn']('Retrying\x20in\x20'+_0x5e03b3+'ms',{'attempt':_0xaef020,'requestId':_0x12d31d}),await new Promise(_0x1cde56=>setTimeout(_0x1cde56,_0x5e03b3));}}}this['logger'][_0x33c1b9(0x23b)](_0x33c1b9(0x25e),{'requestId':_0x12d31d,'error':_0x597f47[_0x33c1b9(0x235)]});const _0x5a3fe8=_0x597f47[_0x33c1b9(0x235)]&&_0x597f47[_0x33c1b9(0x235)][_0x33c1b9(0x1fa)](_0x33c1b9(0x239));if(_0x5a3fe8)throw new Error(_0x33c1b9(0x246)+_0x597f47[_0x33c1b9(0x235)]);return{'choices':[{'message':{'content':_0x33c1b9(0x256)+_0x597f47['message'],'role':'assistant'},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x44a367['model'],'id':'error-'+_0x12d31d,'error':_0x597f47[_0x33c1b9(0x235)]};}async[a0_0x4bf198(0x1c8)](_0x130ebd,_0x48273b,_0x1df34e={}){const _0x48c4b4=a0_0x4bf198,_0x298af5=_0x48c4b4(0x221);let _0x4be58f,_0x12d655=null,_0x4f31df=null;this[_0x48c4b4(0x1e8)]?.[_0x48c4b4(0x238)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x1df34e['sessionId'],'hasSessionId':!!_0x1df34e['sessionId'],'model':_0x130ebd[_0x48c4b4(0x250)]});if(this['apiKeyManager']&&_0x1df34e[_0x48c4b4(0x24e)]){const _0x5919d4=this['apiKeyManager'][_0x48c4b4(0x24c)](_0x1df34e['sessionId'],{'platformProvided':_0x1df34e[_0x48c4b4(0x232)]||![],'vendor':this['_getVendorFromModel'](_0x130ebd['model'])});_0x12d655=_0x5919d4['loxiaApiKey'],_0x4f31df=_0x5919d4[_0x48c4b4(0x245)],this['logger']?.['debug']('Retrieved API keys from session manager for image',{'sessionId':_0x1df34e['sessionId'],'hasLoxiaKey':!!_0x12d655,'hasVendorKey':!!_0x4f31df});}!_0x12d655&&_0x1df34e['apiKey']&&(_0x12d655=_0x1df34e['apiKey']);!_0x12d655&&this['config'][_0x48c4b4(0x22a)]&&(_0x12d655=this['config']['apiKey']);if(!_0x12d655)throw new Error('No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.');const _0xf78439={'prompt':_0x130ebd['prompt'],'model':_0x130ebd[_0x48c4b4(0x250)]||_0x48c4b4(0x21b),'size':_0x130ebd['size'],'quality':_0x130ebd['quality'],'style':_0x130ebd['style']||_0x48c4b4(0x202),'n':_0x130ebd['n']||0x1,'requestId':_0x48273b};for(let _0x4d260a=0x1;_0x4d260a<=this[_0x48c4b4(0x213)];_0x4d260a++){try{this[_0x48c4b4(0x1e8)][_0x48c4b4(0x238)](_0x48c4b4(0x1f2),{'url':_0x298af5,'model':_0x130ebd['model'],'requestId':_0x48273b,'attempt':_0x4d260a,'hasApiKey':!!_0x12d655});const _0x17508a=await fetch(_0x298af5,{'method':_0x48c4b4(0x23e),'headers':{'Content-Type':_0x48c4b4(0x220),'Authorization':'Bearer\x20'+_0x12d655,'X-Request-ID':_0x48273b},'body':JSON[_0x48c4b4(0x20f)](_0xf78439),'timeout':this['timeout']*0x2});if(!_0x17508a['ok']){const _0x210088=await _0x17508a['text'](),_0x36c785=new Error(_0x48c4b4(0x24b)+_0x17508a['status']+':\x20'+_0x17508a[_0x48c4b4(0x1e7)]+(_0x210088?_0x48c4b4(0x219)+_0x210088:''));_0x36c785[_0x48c4b4(0x20a)]=_0x17508a[_0x48c4b4(0x20a)];throw _0x36c785;}const _0x59951d=await _0x17508a['json']();return{'data':_0x59951d['images']||[],'model':_0x59951d[_0x48c4b4(0x250)]||_0x130ebd['model'],'created':_0x59951d[_0x48c4b4(0x1cf)]||Date[_0x48c4b4(0x24d)](),'usage':_0x59951d[_0x48c4b4(0x206)]};}catch(_0x532000){_0x4be58f=_0x532000,this[_0x48c4b4(0x1e8)][_0x48c4b4(0x22e)](_0x48c4b4(0x244),{'attempt':_0x4d260a,'requestId':_0x48273b,'error':_0x532000[_0x48c4b4(0x235)],'status':_0x532000[_0x48c4b4(0x20a)]});if(_0x4d260a<this['retryAttempts']){const _0x55dc98=Math['pow'](0x2,_0x4d260a)*0x3e8;this['logger'][_0x48c4b4(0x22e)](_0x48c4b4(0x1f6)+_0x55dc98+'ms',{'attempt':_0x4d260a,'requestId':_0x48273b}),await new Promise(_0x56d976=>setTimeout(_0x56d976,_0x55dc98));}}}this['logger']['error'](_0x48c4b4(0x1e5),{'requestId':_0x48273b,'error':_0x4be58f['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x4be58f[_0x48c4b4(0x235)]);}async[a0_0x4bf198(0x21d)](_0x633271){await new Promise(_0x2a606b=>setTimeout(_0x2a606b,0x64));}async['_handleRateLimit'](_0xfae115){const _0x52c21b=a0_0x4bf198,_0x53a45e=0xea60;this[_0x52c21b(0x1e8)][_0x52c21b(0x238)]('Rate\x20limit\x20exceeded,\x20waiting\x20'+_0x53a45e+'ms',_0xfae115),await new Promise(_0x3e7dc9=>setTimeout(_0x3e7dc9,_0x53a45e));}async[a0_0x4bf198(0x20e)](_0x3a7491){this['_recordFailure']();const _0x3da10d=0x7530;this['logger']['info']('Service\x20unavailable,\x20waiting\x20'+_0x3da10d+'ms',_0x3a7491),await new Promise(_0x2fe648=>setTimeout(_0x2fe648,_0x3da10d));}['_isCircuitBreakerOpen'](){const _0x5154d3=a0_0x4bf198;if(!this['circuitBreaker'][_0x5154d3(0x214)])return![];const _0x4d2e0c=Date[_0x5154d3(0x24d)]()-this['circuitBreaker'][_0x5154d3(0x23a)];if(_0x4d2e0c>this[_0x5154d3(0x259)]['timeout'])return this[_0x5154d3(0x259)][_0x5154d3(0x214)]=![],this['circuitBreaker'][_0x5154d3(0x24f)]=0x0,![];return!![];}[a0_0x4bf198(0x257)](){const _0xc132f7=a0_0x4bf198;this[_0xc132f7(0x259)]['failures']++,this['circuitBreaker'][_0xc132f7(0x23a)]=Date['now'](),this['circuitBreaker'][_0xc132f7(0x24f)]>=this['circuitBreaker'][_0xc132f7(0x22d)]&&(this[_0xc132f7(0x259)][_0xc132f7(0x214)]=!![],this['logger'][_0xc132f7(0x22e)]('Circuit\x20breaker\x20opened\x20due\x20to\x20repeated\x20failures'));}['_resetCircuitBreaker'](){const _0x37abcc=a0_0x4bf198;this[_0x37abcc(0x259)]['failures']>0x0&&(this[_0x37abcc(0x259)][_0x37abcc(0x24f)]=0x0,this['circuitBreaker'][_0x37abcc(0x214)]=![],this['logger'][_0x37abcc(0x238)](_0x37abcc(0x237)));}[a0_0x4bf198(0x1d0)](_0x314e9d){const _0x15940f=a0_0x4bf198;if(!_0x314e9d)return null;const _0x1c1c6c=_0x314e9d[_0x15940f(0x258)]();if(_0x1c1c6c[_0x15940f(0x1fa)](_0x15940f(0x1c7))||_0x1c1c6c['includes'](_0x15940f(0x1da)))return'anthropic';else{if(_0x1c1c6c['includes'](_0x15940f(0x249))||_0x1c1c6c['includes']('gpt'))return _0x15940f(0x249);else{if(_0x1c1c6c['includes'](_0x15940f(0x211)))return _0x15940f(0x211);else{if(_0x1c1c6c['includes']('phi'))return _0x15940f(0x264);}}}return null;}}function a0_0xf1a0(){const _0x4efa4f=['ANnVBG','Bw9KzwXtCgvJCW','BwvZC2fNzq','Cg93','q2LYy3vPDcbICMvHA2vYihjLC2v0ic0GC2vYDMLJzsbYzwnVDMvYzwq','Aw5MBW','tM8GqvbjigTLEsbJB25MAwD1CMvK','BgfZDezHAwX1CMvuAw1L','zxjYB3i','mtb3Ce5bv3q','quKGC2vYDMLJzsbLCNjVCJOG','ue9tva','AM9PBG','x2zVCM1HDfnPBMDSzu1LC3nHz2u','B3b0Aw9UCW','y29UDgvUDa','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','sw1Hz2uGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5KigzHAwXLza','DMvUzg9YqxbPs2v5','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','B3bLBMfP','z2v0','sfruuca','z2v0s2v5C0zVCLjLCxvLC3q','BM93','C2vZC2LVBKLK','zMfPBhvYzxm','Bw9KzwW','zxjYB3jiyw5KBgvY','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','qu5usfjpueLdx1nptK5fva','AgvHBhrOlwnOzwnR','Dg9vChbLCKnHC2u','ssbHCg9SB2DPEMuSigj1Dcbjj20GDw5HyMXLihrVignVBM5Ly3qGDg8GDgHLiefjihnLCNzPy2uGyxqGDgHLig1VBwvUDc4GrxjYB3i6ia','x3jLy29YzezHAwX1CMu','Dg9mB3DLCKnHC2u','y2LYy3vPDejYzwfRzxi','mJeXndfht09Tr3u','tK9ux0zpvu5e','y2HVAwnLCW','qKfex1jfuvvfu1q','qwXSigf0DgvTChrZihrVihjLywnOigjHy2TLBMqGzMfPBgvKlcb1C2LUzYbTB2nRihjLC3bVBNnL','qu5usfjpueLd','AgLNAa','z2vUzxjHDgvjBwfNzq','x3n1Bw1HCML6zu1LC3nHz2vZ','yxbPs2v5twfUywDLCG','BwLJCM9ZB2z0','zxn0Aw1HDgvKvg9Rzw5Z','tw9KzwWGCM91DgvKigzVCIb0yxnRoIa','AxnbCNjHEq','DhjPBq','ueHjxZq','C3LZDgvT','Aw1Nlq','C2v0qxbPs2v5twfUywDLCG','qvPvuKu','x2LUAxrPywXPEMvnB2rLBfnWzwnZ','yw50AhjVCgLJ','x21HA2vjBwfNzufqsvjLCxvLC3q','y3vZDg9TqxbPs2v5CW','nJuYnduWyNfztLnk','t1bftKfj','r1buxZq','BwvZC2fNzxm','BgvUz3rO','y3jLyxrLza','x2DLDfzLBMrVCKzYB21nB2rLBa','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','A2v5CW','ywDLBNrjza','vu5bvvrit1jjwKve','CxvHBgL0Eq','Dw5ZAgLMDa','Dg9ju09tDhjPBMC','C3rVCa','C3rYAw5N','y2XHDwrL','y2vPBa','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','x2zVCM1HDezVCKf6DxjL','mtu0nxfwz3PqrG','mteWntCWr2TlsuHr','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','ChvZAa','BwfW','x3rYDw5JyxrLtwvZC2fNzq','qwXSigLTywDLigDLBMvYyxrPB24Gyxr0zw1WDhmGzMfPBgvK','C3DPDgnOqwDLBNrnB2rLBa','C3rHDhvZvgv4Da','Bg9Nz2vY','l2nOyxqVy29TCgXLDgLVBNm','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','CMf0zuXPBwL0zxjZ','C3rYzwfT','C2L6zq','y29UzMLN','tw9KzwWGCM91DgLUzYbMywLSzwq6ia','otu2ntHmD0jNBxO','qu5usfjpueLdx09qvvm','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','y29UDMvYC2f0Aw9UCW','uMf0zsbSAw1PDcbLEgnLzwrLzcaTihjLCxvLC3qGCxvLDwvKigzVCIbYzxrYEq','tw9KzwWGC3DPDgnOigzHAwXLzdOG','uMv0CNLPBMCGAw4G','u2vUzgLUzYbTzxnZywDLihrVig1VzgvSoIa','Bg94AwfbCgLlzxK','C3vIC3rY','Aw5JBhvKzxm','qxv0AgvUDgLJyxrPB24GzMfPBgvKic0Gy2HLy2SGqvbjignYzwrLBNrPywXZ','CMvXlq','ywDLBNrqB29S','y29Kzq','CM9Szq','C3vIC3rYAw5N','AgfUzgXLshr0CevYCM9Y','DML2Awq','x2LZvMfSAwrnB2rLBa','yMfJA2vUza','Ahr0Chm6lY9HCgKUBg94AweUywK','DxnHz2u','ode1mZy0AwHerLHf','uMf0zsbSAw1PDcbLEgnLzwrLza','x21HA2vbueLszxf1zxn0','C3rHDhvZ','yNvKz2v0u2vYDMLJzq','C3rHy2S','DhjHy2TvC2fNzq','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','C3rYAw5NAwz5','revfufnfruTFuJe','zgvLChnLzwS','qu5usfjpueLdx0HbsuTv','CMv0CNLbDhrLBxb0CW','AxnpCgvU','ChjVDMLKzxi','nZDRt3L1Cfy','C2vUze1LC3nHz2u','yMfZzvvYBa','ic0G','n1fkvhPWuW','yxP1CMuTB3bLBMfPlwrHBgXLmW','mZe2ntC2DfPXuff5','x2nOzwnRuMf0zuXPBwL0','x2zVCM1HDezVCK9Wzw5bsq','nhfcrLniqG','yxbWBgLJyxrPB24VANnVBG','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9Nzw5LCMf0zs1PBwfNzq','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','ueHj','rKfmtejbq0S','DgLTzw91Da','x2vZDgLTyxrLvg9Rzw5Z','zgf0yq','C2XPy2u','qwDLBNqGCg9VBcbZzxqGzM9YiefjihnLCNzPy2u','yxbPs2v5','C3rHBMrHCMq','q29UDMvYC2f0Aw9UignVBxbHy3rPEMvKigzVCIbTB2rLBdOG','DgHYzxnOB2XK','D2fYBG','Bwf4vg9Rzw5Z','qKfex0DbvevxqvK','DxnLCG','CgXHDgzVCM1qCM92AwrLza'];a0_0xf1a0=function(){return _0x4efa4f;};return a0_0xf1a0();}class ConversationManager{constructor(_0x2595b1,_0x16d169){const _0x1c38a7=a0_0x4bf198;this[_0x1c38a7(0x1d3)]=_0x2595b1,this[_0x1c38a7(0x1e8)]=_0x16d169,this[_0x1c38a7(0x1f3)]=new Map();}async['switchModel'](_0x1c2199){const _0x39d2b8=a0_0x4bf198;return{'messages':[],'model':_0x1c2199,'lastUpdated':new Date()[_0x39d2b8(0x1d7)]()};}}export default AIService;
1
+ const a0_0x4c22d6=a0_0xa457;(function(_0x2fb4a2,_0x3296ee){const _0xa0e36c=a0_0xa457,_0xbf114b=_0x2fb4a2();while(!![]){try{const _0x33afff=-parseInt(_0xa0e36c(0x1b7))/0x1*(-parseInt(_0xa0e36c(0x1c5))/0x2)+-parseInt(_0xa0e36c(0x1aa))/0x3+-parseInt(_0xa0e36c(0x181))/0x4+-parseInt(_0xa0e36c(0x202))/0x5*(parseInt(_0xa0e36c(0x219))/0x6)+parseInt(_0xa0e36c(0x1e6))/0x7+parseInt(_0xa0e36c(0x196))/0x8*(parseInt(_0xa0e36c(0x205))/0x9)+parseInt(_0xa0e36c(0x200))/0xa;if(_0x33afff===_0x3296ee)break;else _0xbf114b['push'](_0xbf114b['shift']());}catch(_0x210b59){_0xbf114b['push'](_0xbf114b['shift']());}}}(a0_0x1bf8,0x43400));import{MODELS,MODEL_PROVIDERS,MODEL_ROUTING,HTTP_STATUS,ERROR_TYPES,SYSTEM_DEFAULTS}from'../utilities/constants.js';class AIService{constructor(_0x29c8a4,_0x451f6d,_0x4e9209,_0x1bcdf1){const _0x98222c=a0_0xa457;this['config']=_0x29c8a4,this['logger']=_0x451f6d,this[_0x98222c(0x1ab)]=_0x4e9209,this['errorHandler']=_0x1bcdf1,this[_0x98222c(0x193)]=_0x29c8a4[_0x98222c(0x19f)]?.[_0x98222c(0x193)]||_0x98222c(0x21d),this['timeout']=_0x29c8a4['backend']?.['timeout']||0xea60,this['retryAttempts']=_0x29c8a4[_0x98222c(0x19f)]?.['retryAttempts']||0x3,this[_0x98222c(0x209)]=new Map(),this[_0x98222c(0x1ca)]=new Map(),this['circuitBreaker']={'failures':0x0,'lastFailureTime':null,'isOpen':![],'threshold':0x5,'timeout':0x7530},this['modelSpecs']=this['_initializeModelSpecs'](),this[_0x98222c(0x217)]=new Map(),this['apiKeyManager']=null,this['agentPool']=null;}async[a0_0x4c22d6(0x19a)](_0x36186f,_0x3c0e73,_0x1ace94={}){const _0x231450=a0_0x4c22d6,_0x1c1ce9='req-'+Date[_0x231450(0x1a4)]()+'-'+Math['random']()[_0x231450(0x182)](0x24)['substr'](0x2,0x9);try{if(this[_0x231450(0x1d3)]())throw new Error(_0x231450(0x1ef));await this[_0x231450(0x189)](_0x36186f);const _0x4425d0=this[_0x231450(0x1be)](_0x3c0e73,_0x36186f,_0x1ace94),_0x151c08={'model':_0x36186f,'messages':_0x4425d0,'options':{'max_tokens':this[_0x231450(0x203)][_0x36186f]?.['maxTokens']||0xfa0,'temperature':_0x1ace94[_0x231450(0x1c4)]||0.7,'stream':_0x1ace94[_0x231450(0x191)]||![]},'metadata':{'requestId':_0x1c1ce9,'agentId':_0x1ace94['agentId'],'timestamp':new Date()['toISOString']()}};_0x1ace94['systemPrompt']&&(_0x151c08['system']=_0x1ace94['systemPrompt']);this['logger'][_0x231450(0x183)]('Sending\x20message\x20to\x20model:\x20'+_0x36186f,{'requestId':_0x1c1ce9,'agentId':_0x1ace94[_0x231450(0x1b2)],'messageCount':Array['isArray'](_0x3c0e73)?_0x3c0e73['length']:0x1,'maxTokens':_0x151c08['max_tokens']});const _0x17725e=await this['_makeAPIRequest']('/chat/completions',_0x151c08,_0x1c1ce9,{..._0x1ace94,'sessionId':_0x1ace94['sessionId'],'platformProvided':_0x1ace94[_0x231450(0x194)]||![]});return _0x17725e['usage']&&await this[_0x231450(0x187)](_0x1ace94['agentId'],_0x36186f,{'prompt_tokens':_0x17725e['usage']['prompt_tokens']||0x0,'completion_tokens':_0x17725e[_0x231450(0x1ec)]['completion_tokens']||0x0,'total_tokens':_0x17725e[_0x231450(0x1ec)][_0x231450(0x1a5)]||0x0}),this[_0x231450(0x1e1)](),{'content':_0x17725e['choices'][0x0]?.['message']?.[_0x231450(0x20c)]||'','model':_0x17725e[_0x231450(0x1bc)],'tokenUsage':_0x17725e[_0x231450(0x1ec)],'requestId':_0x1c1ce9,'finishReason':_0x17725e[_0x231450(0x204)][0x0]?.['finish_reason']};}catch(_0x2453bd){this['_recordFailure'](),this[_0x231450(0x18a)][_0x231450(0x1ee)](_0x231450(0x1a8)+_0x2453bd[_0x231450(0x1d4)],{'requestId':_0x1c1ce9,'model':_0x36186f,'agentId':_0x1ace94['agentId'],'error':_0x2453bd[_0x231450(0x1d5)]}),await this[_0x231450(0x1f3)](_0x2453bd,{'requestId':_0x1c1ce9,'model':_0x36186f,'agentId':_0x1ace94[_0x231450(0x1b2)]});throw _0x2453bd;}}async[a0_0x4c22d6(0x17b)](_0xe76ff6,_0x15ec10={}){const _0x3f24b4=a0_0x4c22d6;try{const _0x1e97b4=MODEL_ROUTING[_0xe76ff6[_0x3f24b4(0x1e0)]()]||MODEL_ROUTING[_0x3f24b4(0x1c1)],_0x7e43bb=[];for(const _0x3f2438 of _0x1e97b4){const _0x551825=await this[_0x3f24b4(0x17d)](_0x3f2438);_0x551825&&_0x7e43bb['push'](_0x3f2438);}if(_0x7e43bb['length']===0x0)return this['logger']['warn'](_0x3f24b4(0x195)+_0xe76ff6+_0x3f24b4(0x1d7)),MODEL_ROUTING[_0x3f24b4(0x1c1)][0x0];let _0x377e4c=_0x7e43bb[0x0];if(_0x15ec10['preferredModel']&&_0x7e43bb['includes'](_0x15ec10['preferredModel']))_0x377e4c=_0x15ec10[_0x3f24b4(0x1cd)];else{if(_0x15ec10[_0x3f24b4(0x1c7)]===_0x3f24b4(0x1d0)&&_0x7e43bb['includes'](MODELS['ANTHROPIC_OPUS']))_0x377e4c=MODELS['ANTHROPIC_OPUS'];else _0x15ec10['speed']==='fast'&&_0x7e43bb['includes'](MODELS[_0x3f24b4(0x1e4)])&&(_0x377e4c=MODELS['ANTHROPIC_HAIKU']);}return this['logger']['info']('Model\x20routed\x20for\x20task:\x20'+_0xe76ff6,{'selectedModel':_0x377e4c,'availableModels':_0x7e43bb['length'],'context':_0x15ec10}),_0x377e4c;}catch(_0x5a12a9){return this['logger']['error']('Model\x20routing\x20failed:\x20'+_0x5a12a9['message'],{'task':_0xe76ff6,'context':_0x15ec10}),MODEL_ROUTING['FALLBACK'][0x0];}}async[a0_0x4c22d6(0x1af)](_0x1ed3da,_0x2cc762){const _0x42c5aa=a0_0x4c22d6,_0x45bbce=this['modelSpecs'][_0x2cc762];if(!_0x45bbce)throw new Error('Unknown\x20model:\x20'+_0x2cc762);const _0x559cf5=_0x45bbce[_0x42c5aa(0x210)]*0.8;let _0x121f12=0x0;const _0x56256e=[],_0x1a47a0=await Promise[_0x42c5aa(0x1e3)](_0x1ed3da[_0x42c5aa(0x212)](async _0x2cde7c=>({..._0x2cde7c,'estimatedTokens':await this[_0x42c5aa(0x1bb)](_0x2cde7c[_0x42c5aa(0x20c)],_0x2cc762)}))),_0x458317=[..._0x1a47a0][_0x42c5aa(0x1de)]();for(const _0x41f2e3 of _0x458317){if(_0x121f12+_0x41f2e3[_0x42c5aa(0x1b3)]>_0x559cf5){if(_0x56256e['length']===0x0){const _0x20c607=await this['_truncateMessage'](_0x41f2e3['content'],_0x559cf5);_0x56256e['unshift']({..._0x41f2e3,'content':_0x20c607,'estimatedTokens':_0x559cf5});}break;}_0x56256e['unshift'](_0x41f2e3),_0x121f12+=_0x41f2e3[_0x42c5aa(0x1b3)];}const _0x5d999e=_0x1a47a0['slice'](0x0,-_0x56256e[_0x42c5aa(0x1dc)]);if(_0x5d999e['length']>0x0){const _0x4488f3=await this['_summarizeMessages'](_0x5d999e,_0x2cc762);_0x56256e['unshift']({'role':_0x42c5aa(0x1eb),'content':'Previous\x20conversation\x20summary:\x20'+_0x4488f3,'timestamp':_0x5d999e[0x0]['timestamp'],'type':'summary','estimatedTokens':await this[_0x42c5aa(0x1bb)](_0x4488f3,_0x2cc762)});}return this['logger'][_0x42c5aa(0x183)]('Conversation\x20compactized\x20for\x20model:\x20'+_0x2cc762,{'originalMessages':_0x1ed3da['length'],'compactizedMessages':_0x56256e['length'],'estimatedTokens':_0x121f12,'maxTokens':_0x559cf5}),_0x56256e;}async[a0_0x4c22d6(0x187)](_0x2a085c,_0x3ec304,_0x348b07,_0x4ede6d){const _0x55cd70=a0_0x4c22d6;try{this['budgetService']&&this[_0x55cd70(0x1ab)]['trackUsage'](_0x2a085c,_0x3ec304,_0x348b07);}catch(_0x6724ea){this['logger']['error'](_0x55cd70(0x19e)+_0x6724ea[_0x55cd70(0x1d4)]);}}async[a0_0x4c22d6(0x1f3)](_0x362f27,_0x2b4f4b){const _0x1aaaeb=a0_0x4c22d6,_0x18fc7b=this[_0x1aaaeb(0x1a2)]?.[_0x1aaaeb(0x1c9)]?.(_0x362f27,_0x2b4f4b);switch(_0x362f27['status']||_0x362f27[_0x1aaaeb(0x18e)]){case HTTP_STATUS['BAD_REQUEST']:this['logger'][_0x1aaaeb(0x1ee)]('Bad\x20request\x20to\x20AI\x20service',{'context':_0x2b4f4b,'error':_0x362f27['message']});throw new Error(_0x1aaaeb(0x18f)+_0x362f27[_0x1aaaeb(0x1d4)]);case HTTP_STATUS[_0x1aaaeb(0x1fe)]:this['logger'][_0x1aaaeb(0x1ee)]('Authentication\x20failed\x20with\x20AI\x20service',{'context':_0x2b4f4b});throw new Error('Authentication\x20failed\x20-\x20check\x20API\x20credentials');case HTTP_STATUS['FORBIDDEN']:this[_0x1aaaeb(0x18a)]['error'](_0x1aaaeb(0x1f8),{'context':_0x2b4f4b});throw new Error(_0x1aaaeb(0x1b5));case HTTP_STATUS[_0x1aaaeb(0x179)]:this[_0x1aaaeb(0x18a)]['error']('AI\x20service\x20endpoint\x20not\x20found',{'context':_0x2b4f4b});throw new Error(_0x1aaaeb(0x1a3));case HTTP_STATUS[_0x1aaaeb(0x21a)]:this[_0x1aaaeb(0x18a)][_0x1aaaeb(0x1b0)]('Rate\x20limit\x20exceeded',{'context':_0x2b4f4b}),await this['_handleRateLimit'](_0x2b4f4b);throw new Error('Rate\x20limit\x20exceeded\x20-\x20request\x20queued\x20for\x20retry');case HTTP_STATUS[_0x1aaaeb(0x21b)]:case HTTP_STATUS['BAD_GATEWAY']:case HTTP_STATUS['SERVICE_UNAVAILABLE']:case HTTP_STATUS[_0x1aaaeb(0x198)]:this['logger']['error'](_0x1aaaeb(0x1e9),{'context':_0x2b4f4b,'status':_0x362f27[_0x1aaaeb(0x192)]}),await this['_handleServiceUnavailable'](_0x2b4f4b);throw new Error('AI\x20service\x20temporarily\x20unavailable');default:this['logger'][_0x1aaaeb(0x1ee)]('Unknown\x20AI\x20service\x20error',{'context':_0x2b4f4b,'error':_0x362f27['message']});throw new Error('AI\x20service\x20error:\x20'+_0x362f27[_0x1aaaeb(0x1d4)]);}}['setApiKeyManager'](_0x18e299){const _0x455558=a0_0x4c22d6;this[_0x455558(0x1d6)]=_0x18e299,this['logger']?.['info']('API\x20key\x20manager\x20set\x20for\x20AI\x20service',{'hasManager':!!_0x18e299});}[a0_0x4c22d6(0x1c3)](_0x3aef81){const _0x3e3b26=a0_0x4c22d6;this[_0x3e3b26(0x18d)]=_0x3aef81,this['logger']?.['info']('Agent\x20pool\x20set\x20for\x20AI\x20service',{'hasAgentPool':!!_0x3aef81});}async[a0_0x4c22d6(0x213)](_0x542e08,_0x57e17d={}){const _0x599a58=a0_0x4c22d6,_0x44f4c6='img-'+Date[_0x599a58(0x1a4)]()+'-'+Math['random']()['toString'](0x24)['substr'](0x2,0x9);try{if(this['_isCircuitBreakerOpen']())throw new Error('Service\x20temporarily\x20unavailable\x20-\x20circuit\x20breaker\x20is\x20open');if(!_0x542e08||typeof _0x542e08!=='string'||_0x542e08[_0x599a58(0x214)]()[_0x599a58(0x1dc)]===0x0)throw new Error(_0x599a58(0x20f));const _0x416600=_0x57e17d[_0x599a58(0x1bc)]||_0x599a58(0x20e),_0x3f1389=_0x57e17d[_0x599a58(0x1c0)]||_0x599a58(0x1cf),_0x17053a=_0x57e17d['quality']||'standard',_0x2156e2=_0x57e17d[_0x599a58(0x1fa)]||'url';this[_0x599a58(0x18a)]['info'](_0x599a58(0x1ff)+_0x416600,{'requestId':_0x44f4c6,'model':_0x416600,'size':_0x3f1389,'quality':_0x17053a,'promptLength':_0x542e08['length']});const _0xbb889e={'prompt':_0x542e08,'model':_0x416600,'size':_0x3f1389,'quality':_0x17053a,'response_format':_0x2156e2,'n':0x1,'metadata':{'requestId':_0x44f4c6,'timestamp':new Date()['toISOString']()}},_0x5b65c1=await this[_0x599a58(0x1bf)](_0xbb889e,_0x44f4c6,{'sessionId':_0x57e17d['sessionId'],'platformProvided':_0x57e17d[_0x599a58(0x194)]||![]});return this[_0x599a58(0x1e1)](),{'url':_0x5b65c1[_0x599a58(0x208)]?.[0x0]?.[_0x599a58(0x21c)]||null,'b64_json':_0x5b65c1['data']?.[0x0]?.[_0x599a58(0x1a0)]||null,'model':_0x5b65c1['model']||_0x416600,'requestId':_0x44f4c6,'revisedPrompt':_0x5b65c1['data']?.[0x0]?.[_0x599a58(0x1f6)]||_0x542e08};}catch(_0x263ca8){this['_recordFailure'](),this['logger'][_0x599a58(0x1ee)]('Image\x20generation\x20failed:\x20'+_0x263ca8['message'],{'requestId':_0x44f4c6,'model':_0x57e17d['model'],'error':_0x263ca8[_0x599a58(0x1d5)]});throw _0x263ca8;}}async[a0_0x4c22d6(0x19c)](){const _0x2ed4b7=a0_0x4c22d6;try{const _0x41b794=await this[_0x2ed4b7(0x1d1)](_0x2ed4b7(0x1df),{},'health-check');return _0x41b794[_0x2ed4b7(0x192)]==='healthy';}catch(_0x12c10c){return![];}}async['switchAgentModel'](_0x3c6d56,_0x32c9b8){const _0x44b508=a0_0x4c22d6;try{if(!this['_isValidModel'](_0x32c9b8))throw new Error(_0x44b508(0x1db)+_0x32c9b8);let _0x17f5ee=this['conversationManagers']['get'](_0x3c6d56);!_0x17f5ee&&(_0x17f5ee=new ConversationManager(_0x3c6d56,this['logger']),this[_0x44b508(0x217)]['set'](_0x3c6d56,_0x17f5ee));const _0x36f745=await _0x17f5ee['switchModel'](_0x32c9b8),_0x100c47=await this[_0x44b508(0x18d)]?.['getAgent'](_0x3c6d56);return _0x100c47&&(_0x100c47[_0x44b508(0x207)]=_0x32c9b8,await this['agentPool']['persistAgentState'](_0x3c6d56)),this[_0x44b508(0x18a)][_0x44b508(0x183)](_0x44b508(0x17f)+_0x3c6d56,{'newModel':_0x32c9b8,'messageCount':_0x36f745['messages']['length']}),{'success':!![],'agentId':_0x3c6d56,'newModel':_0x32c9b8,'conversation':_0x36f745};}catch(_0x205f6f){this[_0x44b508(0x18a)]['error'](_0x44b508(0x19d)+_0x205f6f['message'],{'agentId':_0x3c6d56,'newModel':_0x32c9b8});throw _0x205f6f;}}['_initializeModelSpecs'](){const _0x154fe1=a0_0x4c22d6,_0x4e048c={[MODELS['ANTHROPIC_SONNET']]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x185)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.015},[MODELS[_0x154fe1(0x1fc)]]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x185)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.075},[MODELS['ANTHROPIC_HAIKU']]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x185)],'contextWindow':0x30d40,'maxTokens':0x2000,'costPer1kTokens':0.0025},[MODELS['GPT_4']]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x1da)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},[MODELS['GPT_4_MINI']]:{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4o':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-4o-mini':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x1f400,'maxTokens':0x4000,'costPer1kTokens':0.0015},'gpt-4-turbo':{'provider':MODEL_PROVIDERS[_0x154fe1(0x1da)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'gpt-3.5-turbo':{'provider':MODEL_PROVIDERS['OPENAI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},[MODELS[_0x154fe1(0x1f1)]]:{'provider':MODEL_PROVIDERS[_0x154fe1(0x1d8)],'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},[MODELS['PHI_4']]:{'provider':MODEL_PROVIDERS['PHI'],'contextWindow':0x4000,'maxTokens':0x1000,'costPer1kTokens':0.001},'azure-ai-grok3':{'provider':_0x154fe1(0x1bd),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.01},'azure-ai-deepseek-r1':{'provider':_0x154fe1(0x1bd),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.002},'azure-openai-gpt-5':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4':{'provider':_0x154fe1(0x1bd),'contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'azure-openai-gpt-4o':{'provider':'AZURE','contextWindow':0x1f400,'maxTokens':0x2000,'costPer1kTokens':0.03},'autopilot-model-router':{'provider':_0x154fe1(0x1bd),'contextWindow':0x4000,'maxTokens':0x800,'costPer1kTokens':0.001}};return _0x4e048c;}[a0_0x4c22d6(0x1be)](_0x54deec,_0x258f5d,_0x53168e){const _0x2ea61a=a0_0x4c22d6,_0xa76cef=this['modelSpecs'][_0x258f5d]||{'provider':'AZURE'};let _0x49e53a;typeof _0x54deec===_0x2ea61a(0x1cc)?_0x49e53a=[{'role':_0x2ea61a(0x1b1),'content':_0x54deec}]:_0x49e53a=_0x54deec[_0x2ea61a(0x212)](_0x27c0e2=>this[_0x2ea61a(0x1c6)](_0x27c0e2,_0x258f5d));switch(_0xa76cef[_0x2ea61a(0x186)]){case MODEL_PROVIDERS['ANTHROPIC']:return this['_formatForAnthropic'](_0x49e53a);case MODEL_PROVIDERS['OPENAI']:return this[_0x2ea61a(0x1f2)](_0x49e53a);case MODEL_PROVIDERS[_0x2ea61a(0x1bd)]:return this['_formatForAzure'](_0x49e53a);default:return _0x49e53a;}}['_formatSingleMessage'](_0x280d00,_0x3ba1f6){const _0x5ee02a=a0_0x4c22d6;return{'role':_0x280d00['role']||_0x5ee02a(0x1b1),'content':_0x280d00['content'],'timestamp':_0x280d00['timestamp']};}['_formatForAnthropic'](_0x1d164b){return _0x1d164b['map'](_0x4fcbb3=>{const _0x23701e=a0_0xa457;if(_0x4fcbb3['role']===_0x23701e(0x1eb))return{'role':_0x23701e(0x1b1),'content':'System:\x20'+_0x4fcbb3[_0x23701e(0x20c)]};return _0x4fcbb3;});}[a0_0x4c22d6(0x1f2)](_0x482f22){return _0x482f22;}['_formatForAzure'](_0x25997b){const _0x5b6afb=a0_0x4c22d6;return _0x25997b['map'](_0x4513dd=>({..._0x4513dd,'content':typeof _0x4513dd[_0x5b6afb(0x20c)]==='string'?_0x4513dd['content']:JSON['stringify'](_0x4513dd[_0x5b6afb(0x20c)])}));}[a0_0x4c22d6(0x1b6)](_0x1a03fc){const _0x1ff307=a0_0x4c22d6;this['logger'][_0x1ff307(0x19b)]('Validating\x20model',{'model':_0x1a03fc,'modelType':typeof _0x1a03fc});if(this[_0x1ff307(0x203)][_0x1a03fc]!==undefined)return!![];return this['logger'][_0x1ff307(0x1b0)](_0x1ff307(0x188),{'model':_0x1a03fc,'availableModels':Object['keys'](this[_0x1ff307(0x203)])}),![];}async[a0_0x4c22d6(0x17d)](_0x973ba9){return!![];}async[a0_0x4c22d6(0x1bb)](_0x535a12,_0x433001){return Math['ceil'](_0x535a12['length']/0x4);}async[a0_0x4c22d6(0x1ce)](_0x17f4e0,_0x3f2486){const _0x4c5bd1=a0_0x4c22d6,_0x491278=_0x3f2486*0x4;if(_0x17f4e0['length']<=_0x491278)return _0x17f4e0;return _0x17f4e0['substring'](0x0,_0x491278-0x14)+_0x4c5bd1(0x206);}async['_summarizeMessages'](_0x16e3b1,_0x55de4f){const _0x3d4430=a0_0x4c22d6,_0x1369e5=_0x16e3b1[_0x3d4430(0x212)](_0x41feb1=>_0x41feb1['role']+':\x20'+_0x41feb1[_0x3d4430(0x20c)])['join']('\x0a'),_0x4f5b46=0x1f4;if(_0x1369e5[_0x3d4430(0x1dc)]<=_0x4f5b46)return _0x1369e5;return _0x1369e5['substring'](0x0,_0x4f5b46)+'...\x20[conversation\x20summary\x20truncated]';}async['_makeAPIRequest'](_0x3e6882,_0x433b70,_0x3ee6a1,_0x1167e4={}){const _0x211093=a0_0x4c22d6,_0x3a625f='https://autopilot-api.azurewebsites.net/llm/chat';let _0x2f5417,_0x18d63b=null,_0x598512=null;this[_0x211093(0x18a)]?.['info'](_0x211093(0x1e8),{'hasApiKeyManager':!!this['apiKeyManager'],'sessionId':_0x1167e4[_0x211093(0x1d9)],'hasSessionId':!!_0x1167e4['sessionId'],'optionsKeys':Object['keys'](_0x1167e4),'model':_0x433b70['model']});if(this[_0x211093(0x1d6)]&&_0x1167e4['sessionId']){const _0xe37fce=this[_0x211093(0x1d6)][_0x211093(0x1f4)](_0x1167e4[_0x211093(0x1d9)],{'platformProvided':_0x1167e4['platformProvided']||![],'vendor':this['_getVendorFromModel'](_0x433b70[_0x211093(0x1bc)])});_0x18d63b=_0xe37fce[_0x211093(0x1cb)],_0x598512=_0xe37fce['vendorApiKey'],this['logger']?.[_0x211093(0x19b)]('Retrieved API keys from session manager',{'sessionId':_0x1167e4['sessionId'],'hasLoxiaKey':!!_0x18d63b,'hasVendorKey':!!_0x598512,'vendor':this[_0x211093(0x1ae)](_0x433b70['model'])});}!_0x18d63b&&_0x1167e4['apiKey']&&(_0x18d63b=_0x1167e4[_0x211093(0x1c8)]);!_0x18d63b&&this[_0x211093(0x201)]['apiKey']&&(_0x18d63b=this['config'][_0x211093(0x1c8)]);if(!_0x18d63b)throw new Error(_0x211093(0x216));const _0x2634d6=_0x433b70['model'],_0x16a0a5={'conversationId':_0x3ee6a1,'message':_0x433b70[_0x211093(0x1b8)][_0x433b70[_0x211093(0x1b8)]['length']-0x1]?.[_0x211093(0x20c)]||'','messages':_0x433b70['messages'],'model':_0x2634d6,'requestId':_0x3ee6a1,'options':_0x433b70['options']||{},'platformProvided':_0x1167e4['platformProvided']||![]};_0x433b70[_0x211093(0x1eb)]&&(_0x16a0a5[_0x211093(0x1e7)]=_0x433b70['system']);_0x1167e4[_0x211093(0x194)]?_0x16a0a5[_0x211093(0x1c8)]=_0x18d63b:(_0x598512&&(_0x16a0a5['vendorApiKey']=_0x598512),_0x1167e4['customApiKeys']&&(_0x16a0a5['customApiKeys']=_0x1167e4['customApiKeys']),_0x16a0a5['apiKey']=_0x18d63b);for(let _0x5e459e=0x1;_0x5e459e<=this['retryAttempts'];_0x5e459e++){try{this['logger']['info']('Making\x20request\x20to\x20Azure\x20backend',{'url':_0x3a625f,'model':_0x433b70['model'],'requestId':_0x3ee6a1,'attempt':_0x5e459e,'hasApiKey':!!_0x18d63b});const _0x2e6fa2=await fetch(_0x3a625f,{'method':'POST','headers':{'Content-Type':_0x211093(0x1f5),'Authorization':'Bearer\x20'+_0x18d63b,'X-Request-ID':_0x3ee6a1},'body':JSON[_0x211093(0x215)](_0x16a0a5),'timeout':this[_0x211093(0x1fd)]});if(!_0x2e6fa2['ok']){const _0x2c022f=await _0x2e6fa2['text'](),_0x193b85=new Error(_0x211093(0x17c)+_0x2e6fa2[_0x211093(0x192)]+':\x20'+_0x2e6fa2['statusText']+(_0x2c022f?'\x20-\x20'+_0x2c022f:''));_0x193b85[_0x211093(0x192)]=_0x2e6fa2['status'];throw _0x193b85;}const _0x1d56ff=await _0x2e6fa2[_0x211093(0x218)]();return{'choices':[{'message':{'content':_0x1d56ff[_0x211093(0x20c)]||'','role':_0x211093(0x180)},'finish_reason':_0x1d56ff['finishReason']||_0x211093(0x211)}],'usage':_0x1d56ff['usage']||{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x1d56ff[_0x211093(0x1bc)]||_0x433b70[_0x211093(0x1bc)],'id':_0x1d56ff['requestId']||_0x3ee6a1};}catch(_0x219f66){_0x2f5417=_0x219f66,this['logger']['warn']('Request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x5e459e,'requestId':_0x3ee6a1,'error':_0x219f66[_0x211093(0x1d4)],'status':_0x219f66[_0x211093(0x192)]});if(_0x5e459e<this[_0x211093(0x18c)]){const _0x78caca=Math[_0x211093(0x1ea)](0x2,_0x5e459e)*0x3e8;this['logger']['warn']('Retrying\x20in\x20'+_0x78caca+'ms',{'attempt':_0x5e459e,'requestId':_0x3ee6a1}),await new Promise(_0x2e1511=>setTimeout(_0x2e1511,_0x78caca));}}}this[_0x211093(0x18a)]['error']('All\x20attempts\x20to\x20reach\x20backend\x20failed,\x20using\x20mock\x20response',{'requestId':_0x3ee6a1,'error':_0x2f5417['message']});const _0x4753f6=_0x2f5417['message']&&_0x2f5417[_0x211093(0x1d4)][_0x211093(0x1a6)](_0x211093(0x1ed));if(_0x4753f6)throw new Error(_0x211093(0x21e)+_0x2f5417['message']);return{'choices':[{'message':{'content':'I\x20apologize,\x20but\x20I\x27m\x20unable\x20to\x20connect\x20to\x20the\x20AI\x20service\x20at\x20the\x20moment.\x20Error:\x20'+_0x2f5417[_0x211093(0x1d4)],'role':'assistant'},'finish_reason':'stop'}],'usage':{'prompt_tokens':0x0,'completion_tokens':0x0,'total_tokens':0x0},'model':_0x433b70['model'],'id':_0x211093(0x1ba)+_0x3ee6a1,'error':_0x2f5417[_0x211093(0x1d4)]};}async[a0_0x4c22d6(0x1bf)](_0x588c75,_0x27ddf2,_0x379627={}){const _0x291b56=a0_0x4c22d6,_0x4e9693='https://autopilot-api.azurewebsites.net/llm/generate-image';let _0x563b79,_0x1f360e=null,_0xb60f69=null;this[_0x291b56(0x18a)]?.[_0x291b56(0x183)]('🖼️\x20Image\x20API\x20request\x20state',{'hasApiKeyManager':!!this[_0x291b56(0x1d6)],'sessionId':_0x379627['sessionId'],'hasSessionId':!!_0x379627[_0x291b56(0x1d9)],'model':_0x588c75[_0x291b56(0x1bc)]});if(this['apiKeyManager']&&_0x379627['sessionId']){const _0x38d932=this[_0x291b56(0x1d6)][_0x291b56(0x1f4)](_0x379627['sessionId'],{'platformProvided':_0x379627['platformProvided']||![],'vendor':this[_0x291b56(0x1ae)](_0x588c75[_0x291b56(0x1bc)])});_0x1f360e=_0x38d932['loxiaApiKey'],_0xb60f69=_0x38d932[_0x291b56(0x20a)],this[_0x291b56(0x18a)]?.[_0x291b56(0x19b)]('Retrieved API keys from session manager for image',{'sessionId':_0x379627[_0x291b56(0x1d9)],'hasLoxiaKey':!!_0x1f360e,'hasVendorKey':!!_0xb60f69});}!_0x1f360e&&_0x379627[_0x291b56(0x1c8)]&&(_0x1f360e=_0x379627['apiKey']);!_0x1f360e&&this['config']['apiKey']&&(_0x1f360e=this[_0x291b56(0x201)][_0x291b56(0x1c8)]);if(!_0x1f360e)throw new Error(_0x291b56(0x216));const _0x1f59ac={'prompt':_0x588c75[_0x291b56(0x1ac)],'model':_0x588c75[_0x291b56(0x1bc)]||'azure-openai-dalle3','size':_0x588c75['size'],'quality':_0x588c75['quality'],'style':_0x588c75[_0x291b56(0x199)]||_0x291b56(0x1a9),'n':_0x588c75['n']||0x1,'requestId':_0x27ddf2};for(let _0x28c297=0x1;_0x28c297<=this['retryAttempts'];_0x28c297++){try{this['logger'][_0x291b56(0x183)](_0x291b56(0x1dd),{'url':_0x4e9693,'model':_0x588c75['model'],'requestId':_0x27ddf2,'attempt':_0x28c297,'hasApiKey':!!_0x1f360e});const _0x14d993=await fetch(_0x4e9693,{'method':_0x291b56(0x1fb),'headers':{'Content-Type':_0x291b56(0x1f5),'Authorization':_0x291b56(0x17a)+_0x1f360e,'X-Request-ID':_0x27ddf2},'body':JSON['stringify'](_0x1f59ac),'timeout':this[_0x291b56(0x1fd)]*0x2});if(!_0x14d993['ok']){const _0x43075e=await _0x14d993[_0x291b56(0x1c2)](),_0x27ff73=new Error('HTTP\x20'+_0x14d993['status']+':\x20'+_0x14d993['statusText']+(_0x43075e?'\x20-\x20'+_0x43075e:''));_0x27ff73['status']=_0x14d993[_0x291b56(0x192)];throw _0x27ff73;}const _0x4cc799=await _0x14d993['json']();return{'data':_0x4cc799['images']||[],'model':_0x4cc799['model']||_0x588c75['model'],'created':_0x4cc799[_0x291b56(0x1a7)]||Date[_0x291b56(0x1a4)](),'usage':_0x4cc799[_0x291b56(0x1ec)]};}catch(_0x109984){_0x563b79=_0x109984,this[_0x291b56(0x18a)][_0x291b56(0x1b0)]('Image\x20request\x20to\x20Azure\x20backend\x20failed',{'attempt':_0x28c297,'requestId':_0x27ddf2,'error':_0x109984['message'],'status':_0x109984[_0x291b56(0x192)]});if(_0x28c297<this[_0x291b56(0x18c)]){const _0x336f4c=Math[_0x291b56(0x1ea)](0x2,_0x28c297)*0x3e8;this['logger'][_0x291b56(0x1b0)]('Retrying\x20in\x20'+_0x336f4c+'ms',{'attempt':_0x28c297,'requestId':_0x27ddf2}),await new Promise(_0x569cb1=>setTimeout(_0x569cb1,_0x336f4c));}}}this[_0x291b56(0x18a)][_0x291b56(0x1ee)]('All\x20image\x20generation\x20attempts\x20failed',{'requestId':_0x27ddf2,'error':_0x563b79['message']});throw new Error('Image\x20generation\x20failed:\x20'+_0x563b79[_0x291b56(0x1d4)]);}async['_checkRateLimit'](_0x48a24d){await new Promise(_0x11e708=>setTimeout(_0x11e708,0x64));}async[a0_0x4c22d6(0x197)](_0x10908c){const _0x2e88f7=a0_0x4c22d6,_0x3f1cc8=0xea60;this['logger'][_0x2e88f7(0x183)](_0x2e88f7(0x184)+_0x3f1cc8+'ms',_0x10908c),await new Promise(_0x38c8a3=>setTimeout(_0x38c8a3,_0x3f1cc8));}async[a0_0x4c22d6(0x1a1)](_0x56a5b1){const _0x24875c=a0_0x4c22d6;this['_recordFailure']();const _0x53516b=0x7530;this['logger'][_0x24875c(0x183)](_0x24875c(0x1b9)+_0x53516b+'ms',_0x56a5b1),await new Promise(_0x251056=>setTimeout(_0x251056,_0x53516b));}['_isCircuitBreakerOpen'](){const _0x2e2cde=a0_0x4c22d6;if(!this['circuitBreaker'][_0x2e2cde(0x1f0)])return![];const _0x16b0e3=Date[_0x2e2cde(0x1a4)]()-this['circuitBreaker'][_0x2e2cde(0x1ad)];if(_0x16b0e3>this[_0x2e2cde(0x17e)]['timeout'])return this['circuitBreaker'][_0x2e2cde(0x1f0)]=![],this[_0x2e2cde(0x17e)]['failures']=0x0,![];return!![];}[a0_0x4c22d6(0x1b4)](){const _0x1f7ca9=a0_0x4c22d6;this[_0x1f7ca9(0x17e)]['failures']++,this[_0x1f7ca9(0x17e)]['lastFailureTime']=Date[_0x1f7ca9(0x1a4)](),this[_0x1f7ca9(0x17e)][_0x1f7ca9(0x18b)]>=this[_0x1f7ca9(0x17e)][_0x1f7ca9(0x1f7)]&&(this[_0x1f7ca9(0x17e)][_0x1f7ca9(0x1f0)]=!![],this['logger']['warn'](_0x1f7ca9(0x1d2)));}[a0_0x4c22d6(0x1e1)](){const _0x1f8a99=a0_0x4c22d6;this[_0x1f8a99(0x17e)][_0x1f8a99(0x18b)]>0x0&&(this[_0x1f8a99(0x17e)]['failures']=0x0,this['circuitBreaker'][_0x1f8a99(0x1f0)]=![],this['logger'][_0x1f8a99(0x183)]('Circuit\x20breaker\x20reset\x20-\x20service\x20recovered'));}[a0_0x4c22d6(0x1ae)](_0x2a4ae5){const _0x55afcb=a0_0x4c22d6;if(!_0x2a4ae5)return null;const _0x4e7fc5=_0x2a4ae5['toLowerCase']();if(_0x4e7fc5['includes']('anthropic')||_0x4e7fc5[_0x55afcb(0x1a6)](_0x55afcb(0x20b)))return _0x55afcb(0x190);else{if(_0x4e7fc5[_0x55afcb(0x1a6)](_0x55afcb(0x20d))||_0x4e7fc5[_0x55afcb(0x1a6)]('gpt'))return'openai';else{if(_0x4e7fc5['includes']('deepseek'))return _0x55afcb(0x1e2);else{if(_0x4e7fc5[_0x55afcb(0x1a6)]('phi'))return _0x55afcb(0x1f9);}}}return null;}}class ConversationManager{constructor(_0x45d1a2,_0x3a7a8c){const _0x48a5d0=a0_0x4c22d6;this[_0x48a5d0(0x1b2)]=_0x45d1a2,this[_0x48a5d0(0x18a)]=_0x3a7a8c,this['conversations']=new Map();}async['switchModel'](_0x3cf9ef){const _0xa4e811=a0_0x4c22d6;return{'messages':[],'model':_0x3cf9ef,'lastUpdated':new Date()[_0xa4e811(0x1e5)]()};}}function a0_0xa457(_0x3b0189,_0x24f9e5){_0x3b0189=_0x3b0189-0x179;const _0x1bf8f9=a0_0x1bf8();let _0xa45750=_0x1bf8f9[_0x3b0189];if(a0_0xa457['VVtUrl']===undefined){var _0x5c366=function(_0x90f73d){const _0x434590='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29c8a4='',_0x451f6d='';for(let _0x4e9209=0x0,_0x1bcdf1,_0x36186f,_0x3c0e73=0x0;_0x36186f=_0x90f73d['charAt'](_0x3c0e73++);~_0x36186f&&(_0x1bcdf1=_0x4e9209%0x4?_0x1bcdf1*0x40+_0x36186f:_0x36186f,_0x4e9209++%0x4)?_0x29c8a4+=String['fromCharCode'](0xff&_0x1bcdf1>>(-0x2*_0x4e9209&0x6)):0x0){_0x36186f=_0x434590['indexOf'](_0x36186f);}for(let _0x1ace94=0x0,_0x1c1ce9=_0x29c8a4['length'];_0x1ace94<_0x1c1ce9;_0x1ace94++){_0x451f6d+='%'+('00'+_0x29c8a4['charCodeAt'](_0x1ace94)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x451f6d);};a0_0xa457['IAbIJu']=_0x5c366,a0_0xa457['xetLEm']={},a0_0xa457['VVtUrl']=!![];}const _0xcafd5b=_0x1bf8f9[0x0],_0x3ca9f3=_0x3b0189+_0xcafd5b,_0x491de8=a0_0xa457['xetLEm'][_0x3ca9f3];return!_0x491de8?(_0xa45750=a0_0xa457['IAbIJu'](_0xa45750),a0_0xa457['xetLEm'][_0x3ca9f3]=_0xa45750):_0xa45750=_0x491de8,_0xa45750;}function a0_0x1bf8(){const _0x51b182=['sw52ywXPzcbTB2rLBdOG','BgvUz3rO','twfRAw5NigLTywDLihjLCxvLC3qGDg8GqxP1CMuGyMfJA2vUza','CMv2zxjZzq','l2HLywX0Aa','Dg9vChbLCKnHC2u','x3jLC2v0q2LYy3vPDejYzwfRzxi','zgvLChnLzwS','ywXS','qu5usfjpueLdx0HbsuTv','Dg9ju09tDhjPBMC','mZyZndu0n1vmrvjcvW','C3LZDgvTuhjVBxb0','8j+uKsbbueKGs2v5ihjLDhjPzxzHBcbZDgf0zq','quKGC2vYDMLJzsb1BMf2ywLSywjSzq','Cg93','C3LZDgvT','DxnHz2u','tM8GqvbjigTLEsbJB25MAwD1CMvK','zxjYB3i','u2vYDMLJzsb0zw1WB3jHCMLSEsb1BMf2ywLSywjSzsaTignPCMn1AxqGyNjLywTLCIbPCYbVCgvU','AxnpCgvU','revfufnfruTFuJe','x2zVCM1HDezVCK9Wzw5bsq','AgfUzgXLshr0CevYCM9Y','z2v0s2v5C0zVCLjLCxvLC3q','yxbWBgLJyxrPB24VANnVBG','CMv2AxnLzf9WCM9TChq','DgHYzxnOB2XK','qwnJzxnZigzVCMjPzgrLBIb0BYbbssbZzxj2AwnL','BwLJCM9ZB2z0','CMvZCg9UC2vgB3jTyxq','ue9tva','qu5usfjpueLdx09qvvm','DgLTzw91Da','vu5bvvrit1jjwKve','r2vUzxjHDgLUzYbPBwfNzsb3AxrOig1VzgvSoIa','mJq2ntK0meHrBxnfAa','y29UzMLN','nZu1A21bueLo','Bw9KzwXtCgvJCW','y2HVAwnLCW','ntr0qvfeEeK','cI4UlIbBBwvZC2fNzsb0CNvUy2f0zwrD','y3vYCMvUDe1VzgvS','zgf0yq','CMf0zuXPBwL0zxjZ','DMvUzg9YqxbPs2v5','y2XHDwrL','y29UDgvUDa','B3bLBMfP','zMX1Ec0XlJeTChjV','sw1Hz2uGz2vUzxjHDgLVBIbYzxf1AxjLCYbHig5VBI1LBxb0Esb0zxH0ihbYB21WDa','y29UDgv4DfDPBMrVDW','C3rVCa','BwfW','z2vUzxjHDgvjBwfNzq','DhjPBq','C3rYAw5NAwz5','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','y29UDMvYC2f0Aw9UtwfUywDLCNm','ANnVBG','mtuYotrHC2HAtxO','ve9px01btLLFuKvrvuvtvfm','su5urvjoquXFu0vsvKvsx0vsuK9s','DxjS','Ahr0Chm6lY9HCgKUBg94AweUywK','qvbjienVBMzPz3vYyxrPB24GrxjYB3i6ia','tK9ux0zpvu5e','qMvHCMvYia','CM91DgvnB2rLBa','sfruuca','x2nOzwnRtw9KzwXizwfSDgG','y2LYy3vPDejYzwfRzxi','qwDLBNqGBw9KzwWGC3DPDgnOzwq6ia','yxnZAxn0yw50','ndy4odi4r2jmvLP2','Dg9tDhjPBMC','Aw5MBW','uMf0zsbSAw1PDcbLEgnLzwrLzcWGD2fPDgLUzYa','qu5usfjpueLd','ChjVDMLKzxi','DhjHy2TvC2fNzq','tw9KzwWGDMfSAwrHDgLVBIbMywLSzwq','x2nOzwnRuMf0zuXPBwL0','Bg9Nz2vY','zMfPBhvYzxm','CMv0CNLbDhrLBxb0CW','ywDLBNrqB29S','y29Kzq','sw52ywXPzcbYzxf1zxn0oIa','yw50AhjVCgLJ','C3rYzwfT','C3rHDhvZ','yMfZzvvYBa','CgXHDgzVCM1qCM92AwrLza','tM8GAgvHBhrOEsbTB2rLBhmGyxzHAwXHyMXLigzVCIb0yxnRoIa','ntKXmKTNuuXpBW','x2HHBMrSzvjHDgvmAw1PDa','r0furvDbwv9usu1ft1vu','C3r5Bgu','C2vUze1LC3nHz2u','zgvIDwC','y2HLy2Ttzxj2AwnLsgvHBhrO','tw9KzwWGC3DPDgnOigzHAwXLzdOG','vxnHz2uGDhjHy2TPBMCGzMfPBgvKoIa','yMfJA2vUza','yJy0x2PZB24','x2HHBMrSzvnLCNzPy2vvBMf2ywLSywjSzq','zxjYB3jiyw5KBgvY','u2vYDMLJzsbLBMrWB2LUDcbUB3qGzM91BMq','BM93','Dg90ywXFDg9Rzw5Z','Aw5JBhvKzxm','y3jLyxrLza','quKGC2vYDMLJzsbYzxf1zxn0igzHAwXLzdOG','DML2Awq','oty1mtm5EvLQwuT4','yNvKz2v0u2vYDMLJzq','ChjVBxb0','BgfZDezHAwX1CMvuAw1L','x2DLDfzLBMrVCKzYB21nB2rLBa','y29TCgfJDgL6zunVBNzLCNnHDgLVBG','D2fYBG','DxnLCG','ywDLBNrjza','zxn0Aw1HDgvKvg9Rzw5Z','x3jLy29YzezHAwX1CMu','qwnJzxnZigzVCMjPzgrLBIaTigLUC3vMzMLJAwvUDcbWzxjTAxnZAw9UCW','x2LZvMfSAwrnB2rLBa','mZi5mdi2sujfANri','BwvZC2fNzxm','u2vYDMLJzsb1BMf2ywLSywjSzsWGD2fPDgLUzYa','zxjYB3iT','x2vZDgLTyxrLvg9Rzw5Z','Bw9KzwW','qvPvuKu','x2zVCM1HDe1LC3nHz2vZrM9Ytw9KzwW','x21HA2vjBwfNzufqsvjLCxvLC3q','C2L6zq','rKfmtejbq0S','Dgv4Da','C2v0qwDLBNrqB29S','DgvTCgvYyxr1CMu','mKDgshfsvq','x2zVCM1HDfnPBMDSzu1LC3nHz2u','y29TCgXLEgL0Eq','yxbPs2v5','y2XHC3nPzNLfCNjVCG','CMvXDwvZDff1zxvL','Bg94AwfbCgLlzxK','C3rYAw5N','ChjLzMvYCMvKtw9KzwW','x3rYDw5JyxrLtwvZC2fNzq','mtaYnhGXmdi0','AgLNAa','x21HA2vbueLszxf1zxn0','q2LYy3vPDcbICMvHA2vYig9Wzw5LzcbKDwuGDg8GCMvWzwf0zwqGzMfPBhvYzxm','x2LZq2LYy3vPDejYzwfRzxjpCgvU','BwvZC2fNzq','C3rHy2S','yxbPs2v5twfUywDLCG','lcb1C2LUzYbMywXSyMfJAW','revfufnfruS','C2vZC2LVBKLK','t1bftKfj'];a0_0x1bf8=function(){return _0x51b182;};return a0_0x1bf8();}export default AIService;
@@ -1 +1 @@
1
- const a0_0x5df5da=a0_0x458c;(function(_0x43dbf8,_0x44a32f){const _0x9cf5f6=a0_0x458c,_0x1ec0f2=_0x43dbf8();while(!![]){try{const _0x7ec408=parseInt(_0x9cf5f6(0xb1))/0x1*(parseInt(_0x9cf5f6(0xa8))/0x2)+-parseInt(_0x9cf5f6(0x98))/0x3+parseInt(_0x9cf5f6(0xa1))/0x4+-parseInt(_0x9cf5f6(0xab))/0x5*(-parseInt(_0x9cf5f6(0xa2))/0x6)+-parseInt(_0x9cf5f6(0xb8))/0x7*(-parseInt(_0x9cf5f6(0xb6))/0x8)+-parseInt(_0x9cf5f6(0xa9))/0x9*(parseInt(_0x9cf5f6(0xaf))/0xa)+parseInt(_0x9cf5f6(0xb7))/0xb;if(_0x7ec408===_0x44a32f)break;else _0x1ec0f2['push'](_0x1ec0f2['shift']());}catch(_0x1a8a9b){_0x1ec0f2['push'](_0x1ec0f2['shift']());}}}(a0_0x3a84,0xa6976));function a0_0x3a84(){const _0x1a8237=['mJyXnZHgtgTnB3O','z2v0vgLTzq','z2v0qwn0AxzLu2vZC2LVBNm','Aw5MBW','y2XLyw51Cev4CgLYzwrtzxnZAw9UCW','C2vZC2LVBKTLExm','mtq2A0Hhquri','mZaYntq0BwzlB2nT','Bg9Nz2vY','mtaYnxngy3PItq','BwfW','z2v0s2v5C0zVCLjLCxvLC3q','DMvUzg9YqxbPs2v5','mZaWDKjdsLDP','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','mJaXmuDqAgjjEa','A2v5CW','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','q2XLyw5Lzcb1CcbLEhbPCMvKiefqssbRzxKGC2vZC2LVBNm','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','mtuWnJa0ogjHCNfbtG','mtK0nJuWnwj4wu1ytW','n0XUwhjIAW','Bg94AwfbCgLlzxK','C2v0u2vZC2LVBKTLExm','mta1ndi2m0HpELLYtG','z2v0','DMvUzg9Ys2v5CW','zgvSzxrL','BM93','z2XVyMfSs2v5CW','zw50CMLLCW','C2v0r2XVyMfSs2v5CW','C2L6zq','mJu0mZmYme9eAwPRBW'];a0_0x3a84=function(){return _0x1a8237;};return a0_0x3a84();}function a0_0x458c(_0x433daa,_0x3085c6){_0x433daa=_0x433daa-0x97;const _0x3a846f=a0_0x3a84();let _0x458c99=_0x3a846f[_0x433daa];if(a0_0x458c['pOcRBd']===undefined){var _0x4a47a5=function(_0x24f2e6){const _0x1e3903='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1f5e83='',_0x472fbe='';for(let _0x3c1c59=0x0,_0x5100bb,_0x47476b,_0x36ea1b=0x0;_0x47476b=_0x24f2e6['charAt'](_0x36ea1b++);~_0x47476b&&(_0x5100bb=_0x3c1c59%0x4?_0x5100bb*0x40+_0x47476b:_0x47476b,_0x3c1c59++%0x4)?_0x1f5e83+=String['fromCharCode'](0xff&_0x5100bb>>(-0x2*_0x3c1c59&0x6)):0x0){_0x47476b=_0x1e3903['indexOf'](_0x47476b);}for(let _0x5a56bc=0x0,_0xb07a5f=_0x1f5e83['length'];_0x5a56bc<_0xb07a5f;_0x5a56bc++){_0x472fbe+='%'+('00'+_0x1f5e83['charCodeAt'](_0x5a56bc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x472fbe);};a0_0x458c['ODqSsI']=_0x4a47a5,a0_0x458c['NwAjue']={},a0_0x458c['pOcRBd']=!![];}const _0x330304=_0x3a846f[0x0],_0x49d227=_0x433daa+_0x330304,_0x282bd9=a0_0x458c['NwAjue'][_0x49d227];return!_0x282bd9?(_0x458c99=a0_0x458c['ODqSsI'](_0x458c99),a0_0x458c['NwAjue'][_0x49d227]=_0x458c99):_0x458c99=_0x282bd9,_0x458c99;}class ApiKeyManager{constructor(_0x1f5e83){const _0x1e7f4b=a0_0x458c;this['logger']=_0x1f5e83,this[_0x1e7f4b(0xa7)]=new Map(),this[_0x1e7f4b(0x9d)]={'loxiaApiKey':null,'vendorKeys':{}};}[a0_0x5df5da(0x97)](_0x472fbe,_0x3c1c59){const _0x22835d=a0_0x5df5da;if(!_0x472fbe)throw new Error(_0x22835d(0xb0));this[_0x22835d(0xa7)]['set'](_0x472fbe,{'loxiaApiKey':_0x3c1c59['loxiaApiKey']||null,'vendorKeys':_0x3c1c59['vendorKeys']||{},'updatedAt':new Date()['toISOString']()}),this['logger']?.['info'](_0x22835d(0xb3),{'sessionId':_0x472fbe,'hasLoxiaKey':!!_0x3c1c59[_0x22835d(0xb9)],'vendorKeys':Object['keys'](_0x3c1c59[_0x22835d(0x9a)]||{}),'timestamp':new Date()['toISOString']()});}['getSessionKeys'](_0x5100bb){const _0x392467=a0_0x5df5da;if(!_0x5100bb)return this[_0x392467(0x9d)];const _0x47476b=this['sessionKeys'][_0x392467(0x99)](_0x5100bb);if(_0x47476b)return _0x47476b;return this['globalKeys'];}[a0_0x5df5da(0xad)](_0x36ea1b,_0x5a56bc={}){const _0x4935c4=a0_0x5df5da,_0xb07a5f=this['getSessionKeys'](_0x36ea1b),_0x32a5b1={'loxiaApiKey':_0xb07a5f[_0x4935c4(0xb9)],'vendorApiKey':null};return!_0x5a56bc['platformProvided']&&_0x5a56bc['vendor']&&_0xb07a5f['vendorKeys']&&(_0x32a5b1[_0x4935c4(0xae)]=_0xb07a5f['vendorKeys'][_0x5a56bc['vendor']]),_0x32a5b1;}['removeSessionKeys'](_0x3f0cdb){const _0x2078e6=a0_0x5df5da;if(this['sessionKeys'][_0x2078e6(0x9b)](_0x3f0cdb))return this[_0x2078e6(0xaa)]?.['info'](_0x2078e6(0xb5),{'sessionId':_0x3f0cdb}),!![];return![];}[a0_0x5df5da(0x9f)](_0x3de3a8){const _0x3ae719=a0_0x5df5da;this['globalKeys']={'loxiaApiKey':_0x3de3a8['loxiaApiKey']||this['globalKeys'][_0x3ae719(0xb9)],'vendorKeys':{...this['globalKeys'][_0x3ae719(0x9a)],..._0x3de3a8['vendorKeys']||{}}},this[_0x3ae719(0xaa)]?.[_0x3ae719(0xa5)]('Global\x20API\x20keys\x20updated',{'hasLoxiaKey':!!this['globalKeys'][_0x3ae719(0xb9)],'vendorKeys':Object[_0x3ae719(0xb2)](this['globalKeys']['vendorKeys'])});}[a0_0x5df5da(0xa4)](){const _0x182931=a0_0x5df5da;return Array['from'](this[_0x182931(0xa7)][_0x182931(0x9e)]())[_0x182931(0xac)](([_0x44b756,_0x2f5644])=>({'sessionId':_0x44b756,'hasLoxiaKey':!!_0x2f5644['loxiaApiKey'],'vendorKeys':Object['keys'](_0x2f5644[_0x182931(0x9a)]||{}),'updatedAt':_0x2f5644['updatedAt']}));}[a0_0x5df5da(0xa6)](_0x778f2=0x18*0x3c*0x3c*0x3e8){const _0x2efc69=a0_0x5df5da,_0x298b61=Date[_0x2efc69(0x9c)](),_0x4b2486=[];for(const [_0x1c19a0,_0x2e0675]of this['sessionKeys']['entries']()){const _0x43517e=_0x298b61-new Date(_0x2e0675['updatedAt'])[_0x2efc69(0xa3)]();_0x43517e>_0x778f2&&_0x4b2486['push'](_0x1c19a0);}return _0x4b2486['forEach'](_0x4082b5=>{const _0x5a6fe1=_0x2efc69;this[_0x5a6fe1(0xa7)][_0x5a6fe1(0x9b)](_0x4082b5);}),_0x4b2486['length']>0x0&&this[_0x2efc69(0xaa)]?.[_0x2efc69(0xa5)](_0x2efc69(0xb4),{'expiredSessions':_0x4b2486['length'],'remainingSessions':this[_0x2efc69(0xa7)][_0x2efc69(0xa0)]}),_0x4b2486['length'];}}export default ApiKeyManager;
1
+ const a0_0x2575cb=a0_0x4fab;function a0_0x4fab(_0x5406c5,_0x4fbafd){_0x5406c5=_0x5406c5-0x1ae;const _0x5d64c9=a0_0x5d64();let _0x4fab86=_0x5d64c9[_0x5406c5];if(a0_0x4fab['iVNFZx']===undefined){var _0x108845=function(_0x154b01){const _0x30519c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x50cd77='',_0x34169c='';for(let _0x245d69=0x0,_0x3305a8,_0x13a2a0,_0x15c922=0x0;_0x13a2a0=_0x154b01['charAt'](_0x15c922++);~_0x13a2a0&&(_0x3305a8=_0x245d69%0x4?_0x3305a8*0x40+_0x13a2a0:_0x13a2a0,_0x245d69++%0x4)?_0x50cd77+=String['fromCharCode'](0xff&_0x3305a8>>(-0x2*_0x245d69&0x6)):0x0){_0x13a2a0=_0x30519c['indexOf'](_0x13a2a0);}for(let _0x508f16=0x0,_0x333eac=_0x50cd77['length'];_0x508f16<_0x333eac;_0x508f16++){_0x34169c+='%'+('00'+_0x50cd77['charCodeAt'](_0x508f16)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x34169c);};a0_0x4fab['npzOkQ']=_0x108845,a0_0x4fab['NzdTrO']={},a0_0x4fab['iVNFZx']=!![];}const _0x361af8=_0x5d64c9[0x0],_0x4a5bba=_0x5406c5+_0x361af8,_0x2e99eb=a0_0x4fab['NzdTrO'][_0x4a5bba];return!_0x2e99eb?(_0x4fab86=a0_0x4fab['npzOkQ'](_0x4fab86),a0_0x4fab['NzdTrO'][_0x4a5bba]=_0x4fab86):_0x4fab86=_0x2e99eb,_0x4fab86;}function a0_0x5d64(){const _0x36ead1=['Bg94AwfbCgLlzxK','mtKZndu4m2TVrgnzra','mJCZmtKYrKnzs3Pe','nJi2mZqYvu9zte1p','ndG3ogfuqxnjwG','mtC4mZy2mfbuBhzZrq','z2v0qwn0AxzLu2vZC2LVBNm','z2v0vgLTzq','Bg9Nz2vY','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','DMvUzg9YqxbPs2v5','Dg9ju09tDhjPBMC','CMvTB3zLu2vZC2LVBKTLExm','mJeWsgPUB3vo','z2XVyMfSs2v5CW','r2XVyMfSiefqssbRzxLZihvWzgf0zwq','ChvZAa','A2v5CW','Aw5MBW','mZaWqKXnBw9I','BgvUz3rO','mtCXmMTJCK9WCW','mJGWndLrr0HMzLC','qvbjigTLExmGCMvTB3zLzcbMB3iGC2vZC2LVBG','C2vZC2LVBKTLExm','nZC5mMPnAw9WCW','BM93','zM9YrwfJAa','DMvUzg9Ys2v5CW'];a0_0x5d64=function(){return _0x36ead1;};return a0_0x5d64();}(function(_0x18a2dd,_0x33f551){const _0x5c326c=a0_0x4fab,_0x9c6f3c=_0x18a2dd();while(!![]){try{const _0x49c046=-parseInt(_0x5c326c(0x1ba))/0x1+parseInt(_0x5c326c(0x1b9))/0x2+parseInt(_0x5c326c(0x1b8))/0x3+-parseInt(_0x5c326c(0x1b3))/0x4*(parseInt(_0x5c326c(0x1c4))/0x5)+parseInt(_0x5c326c(0x1ca))/0x6*(parseInt(_0x5c326c(0x1b0))/0x7)+-parseInt(_0x5c326c(0x1af))/0x8*(parseInt(_0x5c326c(0x1bb))/0x9)+parseInt(_0x5c326c(0x1bc))/0xa;if(_0x49c046===_0x33f551)break;else _0x9c6f3c['push'](_0x9c6f3c['shift']());}catch(_0xd72c8b){_0x9c6f3c['push'](_0x9c6f3c['shift']());}}}(a0_0x5d64,0x5209b));class ApiKeyManager{constructor(_0x50cd77){const _0x2213a7=a0_0x4fab;this['logger']=_0x50cd77,this[_0x2213a7(0x1b2)]=new Map(),this[_0x2213a7(0x1c5)]={'loxiaApiKey':null,'vendorKeys':{}};}['setSessionKeys'](_0x34169c,_0x245d69){const _0x1f7c37=a0_0x4fab;if(!_0x34169c)throw new Error('Session\x20ID\x20is\x20required');this['sessionKeys']['set'](_0x34169c,{'loxiaApiKey':_0x245d69[_0x1f7c37(0x1b7)]||null,'vendorKeys':_0x245d69['vendorKeys']||{},'updatedAt':new Date()['toISOString']()}),this[_0x1f7c37(0x1bf)]?.['info'](_0x1f7c37(0x1c0),{'sessionId':_0x34169c,'hasLoxiaKey':!!_0x245d69[_0x1f7c37(0x1b7)],'vendorKeys':Object['keys'](_0x245d69['vendorKeys']||{}),'timestamp':new Date()[_0x1f7c37(0x1c2)]()});}['getSessionKeys'](_0x3305a8){const _0xa0e70=a0_0x4fab;if(!_0x3305a8)return this[_0xa0e70(0x1c5)];const _0x13a2a0=this[_0xa0e70(0x1b2)]['get'](_0x3305a8);if(_0x13a2a0)return _0x13a2a0;return this[_0xa0e70(0x1c5)];}['getKeysForRequest'](_0x15c922,_0x508f16={}){const _0x3181e8=a0_0x4fab,_0x333eac=this['getSessionKeys'](_0x15c922),_0x5c41ba={'loxiaApiKey':_0x333eac[_0x3181e8(0x1b7)],'vendorApiKey':null};return!_0x508f16['platformProvided']&&_0x508f16['vendor']&&_0x333eac[_0x3181e8(0x1b6)]&&(_0x5c41ba[_0x3181e8(0x1c1)]=_0x333eac['vendorKeys'][_0x508f16['vendor']]),_0x5c41ba;}[a0_0x2575cb(0x1c3)](_0x307f12){const _0x2c4d3b=a0_0x2575cb;if(this[_0x2c4d3b(0x1b2)]['delete'](_0x307f12))return this[_0x2c4d3b(0x1bf)]?.['info'](_0x2c4d3b(0x1b1),{'sessionId':_0x307f12}),!![];return![];}['setGlobalKeys'](_0x354b7c){const _0x3ee3fe=a0_0x2575cb;this['globalKeys']={'loxiaApiKey':_0x354b7c['loxiaApiKey']||this[_0x3ee3fe(0x1c5)]['loxiaApiKey'],'vendorKeys':{...this['globalKeys'][_0x3ee3fe(0x1b6)],..._0x354b7c[_0x3ee3fe(0x1b6)]||{}}},this[_0x3ee3fe(0x1bf)]?.['info'](_0x3ee3fe(0x1c6),{'hasLoxiaKey':!!this['globalKeys'][_0x3ee3fe(0x1b7)],'vendorKeys':Object[_0x3ee3fe(0x1c8)](this[_0x3ee3fe(0x1c5)][_0x3ee3fe(0x1b6)])});}[a0_0x2575cb(0x1bd)](){const _0x5eebfc=a0_0x2575cb;return Array['from'](this[_0x5eebfc(0x1b2)]['entries']())['map'](([_0xab271d,_0x54ca7f])=>({'sessionId':_0xab271d,'hasLoxiaKey':!!_0x54ca7f['loxiaApiKey'],'vendorKeys':Object['keys'](_0x54ca7f['vendorKeys']||{}),'updatedAt':_0x54ca7f['updatedAt']}));}['cleanupExpiredSessions'](_0x5e0166=0x18*0x3c*0x3c*0x3e8){const _0x41ca63=a0_0x2575cb,_0x4d5ee5=Date[_0x41ca63(0x1b4)](),_0x52338d=[];for(const [_0x5775ef,_0x3c1de6]of this['sessionKeys']['entries']()){const _0x3ea037=_0x4d5ee5-new Date(_0x3c1de6['updatedAt'])[_0x41ca63(0x1be)]();_0x3ea037>_0x5e0166&&_0x52338d[_0x41ca63(0x1c7)](_0x5775ef);}return _0x52338d[_0x41ca63(0x1b5)](_0x41b34d=>{const _0x1770c1=_0x41ca63;this[_0x1770c1(0x1b2)]['delete'](_0x41b34d);}),_0x52338d['length']>0x0&&this['logger']?.[_0x41ca63(0x1c9)]('Cleaned\x20up\x20expired\x20API\x20key\x20sessions',{'expiredSessions':_0x52338d['length'],'remainingSessions':this[_0x41ca63(0x1b2)]['size']}),_0x52338d[_0x41ca63(0x1ae)];}}export default ApiKeyManager;
@@ -1 +1 @@
1
- const a0_0x3b7194=a0_0x66ed;(function(_0x4cee1e,_0x452d4f){const _0x440839=a0_0x66ed,_0x4e7c9f=_0x4cee1e();while(!![]){try{const _0x44820e=parseInt(_0x440839(0x1c6))/0x1+-parseInt(_0x440839(0x1a4))/0x2*(parseInt(_0x440839(0x1bc))/0x3)+parseInt(_0x440839(0x1b1))/0x4*(-parseInt(_0x440839(0x1a0))/0x5)+-parseInt(_0x440839(0x1be))/0x6*(-parseInt(_0x440839(0x1a5))/0x7)+-parseInt(_0x440839(0x1bb))/0x8+-parseInt(_0x440839(0x198))/0x9*(parseInt(_0x440839(0x1b2))/0xa)+parseInt(_0x440839(0x1bf))/0xb;if(_0x44820e===_0x452d4f)break;else _0x4e7c9f['push'](_0x4e7c9f['shift']());}catch(_0x35ceb4){_0x4e7c9f['push'](_0x4e7c9f['shift']());}}}(a0_0x349f,0x6f1ab));function a0_0x349f(){const _0x20eb43=['ntKXv1fJwuzu','rM9Yy2uGCMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','mtaXotaYofHHBgroBW','mtq2nJi1odjeuejhBvu','qMvUy2HTyxjRigXVywrPBMCGywXYzwfKEsbPBIbWCM9NCMvZCW','x2DLDezHC3rLC3rnB2rLBa','zM9Yy2vszwzYzxnO','Aw5MBW','Dg9ju09tDhjPBMC','Bw9KzwXZ','mJyZnZe5Cfjbyw1x','C3bLzwq','sfruuca','BM93','x3nJAgvKDwXLuMvMCMvZAa','BMfTzq','mJDUrNDrshG','DMfSDwvZ','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0','yxbPs2v5','x2DLDejLC3rnB2rLBezVCLrHC2S','qMvHCMvYia','A2v5CW','y29UzMLN','nZG1twzWsgDg','y29KAw5N','AxnmB2fKAw5N','DgfZA3m','ntyWnMnQAhbftq','mtrTEvz3CfC','z2v0u3rHDhvZ','yw5HBhLZAxm','Dw5RBM93BG','z2v0qMvUy2HTyxjRvgfIBgu','CMvMCMvZAeLUDgvYDMfS','Bg9Nz2vY','z2v0vgLTzq','C3rHDhvZvgv4Da','yMvUy2HTyxjRCW','Bwf4','qKvoq0Hnqvjlx1jfrLjfu0HFsu5urvjwquW','mtm2sxvICffo','mte3mtC5me5Nq0DQEq','BgfZDfvWzgf0zwq','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','zxjYB3i','Bg9HzejLBMnOBwfYA3m','C29YDa','yxbWBgLJyxrPB24VANnVBG','C2nVCMu','yxP1CMvcywnRzw5KvxjS','ndu3nZy2nhfMEgnwDa'];a0_0x349f=function(){return _0x20eb43;};return a0_0x349f();}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';class BenchmarkService{constructor(_0x215f90,_0x563508){const _0x2673d1=a0_0x66ed;this[_0x2673d1(0x19f)]=_0x215f90,this['logger']=_0x563508,this[_0x2673d1(0x1ae)]=null,this['lastUpdated']=null,this['isLoading']=![],this[_0x2673d1(0x1ba)]=_0x2673d1(0x19a),this[_0x2673d1(0x1aa)]=MODEL_ROUTER_CONFIG[_0x2673d1(0x1b0)];}async['initialize'](){const _0x2cabc3=a0_0x66ed;try{await this['loadBenchmarks'](),this[_0x2cabc3(0x196)](),this['logger'][_0x2cabc3(0x1c3)]('Benchmark\x20service\x20initialized');}catch(_0x10ba35){this[_0x2cabc3(0x1ab)][_0x2cabc3(0x1b5)]('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x10ba35['message']}),this[_0x2cabc3(0x1ae)]=null;}}['getBenchmarks'](){const _0x57bc39=a0_0x66ed;if(!this['benchmarks'])return this['logger'][_0x57bc39(0x1b5)]('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async[a0_0x3b7194(0x1b6)](){const _0x14abf6=a0_0x3b7194;if(this[_0x14abf6(0x1a2)]){this[_0x14abf6(0x1ab)]['debug'](_0x14abf6(0x1c0));return;}this[_0x14abf6(0x1a2)]=!![];try{const _0x5087dd=await this[_0x14abf6(0x1b4)]();if(_0x5087dd)this[_0x14abf6(0x1ae)]=_0x5087dd,this[_0x14abf6(0x1b3)]=new Date(),this[_0x14abf6(0x1ab)][_0x14abf6(0x1c3)]('Benchmarks loaded from Azure backend',{'modelCount':_0x5087dd['models']?.['length']||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x1f2928){this[_0x14abf6(0x1ab)][_0x14abf6(0x1b5)]('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x1f2928['message'],'endpoint':url}),!this['benchmarks']&&(this[_0x14abf6(0x1ae)]=null);}finally{this['isLoading']=![];}}[a0_0x3b7194(0x1a9)](){const _0x359752=a0_0x3b7194,_0x19169e=this['getBenchmarks']();return{'lastUpdated':this['lastUpdated']?.['toISOString']()||_0x359752(0x1a8),'models':_0x19169e['models']||[],'tasks':_0x19169e[_0x359752(0x1a3)]||{},'summary':this['_generateBenchmarkSummary'](_0x19169e)};}['needsRefresh'](){const _0x14d4da=a0_0x3b7194;if(!this['lastUpdated'])return!![];const _0x4934f4=Date[_0x14d4da(0x195)]()-this['lastUpdated'][_0x14d4da(0x1ac)]();return _0x4934f4>this['refreshInterval'];}async[a0_0x3b7194(0x1b4)](){const _0x5d847a=a0_0x3b7194,_0x20b1d3=this['azureBackendUrl']+'/llm/model-benchmarks';let _0x289c7b=null;this['config'][_0x5d847a(0x19b)]&&(_0x289c7b=this['config'][_0x5d847a(0x19b)]);const _0x90b5b6={'method':'GET','headers':{'Content-Type':_0x5d847a(0x1b8),..._0x289c7b&&{'Authorization':_0x5d847a(0x19d)+_0x289c7b}},'timeout':0x2710};this['logger']['debug']('Fetching benchmarks from Azure backend',{'url':_0x20b1d3});const _0x60e506=await fetch(_0x20b1d3,_0x90b5b6);if(!_0x60e506['ok'])throw new Error(_0x5d847a(0x194)+_0x60e506['status']+':\x20'+_0x60e506[_0x5d847a(0x1ad)]);const _0x5ed22e=await _0x60e506['json']();return _0x5ed22e;}['_generateBenchmarkSummary'](_0x11f1f6){const _0x28afcc=a0_0x3b7194,_0x2becb8=_0x11f1f6[_0x28afcc(0x1c5)]||[];return{'totalModels':_0x2becb8['length'],'taskCategories':Object[_0x28afcc(0x19e)](_0x11f1f6['tasks']||{}),'bestForCoding':this['_getBestModelForTask'](_0x2becb8,_0x28afcc(0x1a1)),'bestForAnalysis':this['_getBestModelForTask'](_0x2becb8,_0x28afcc(0x1a7)),'bestForQuickTasks':this['_getBestModelForTask'](_0x2becb8,'quick-tasks'),'bestForCreative':this[_0x28afcc(0x19c)](_0x2becb8,'creative'),'fastestModel':this[_0x28afcc(0x1c1)](_0x2becb8),'mostCostEfficient':this['_getMostCostEfficient'](_0x2becb8)};}['_getBestModelForTask'](_0x447a2a,_0x29a6ba){const _0x32cf21=a0_0x3b7194;return _0x447a2a['filter'](_0x2ad58d=>_0x2ad58d['tasks']&&_0x2ad58d[_0x32cf21(0x1a3)][_0x29a6ba])['sort']((_0x565259,_0x2078bc)=>(_0x2078bc['tasks'][_0x29a6ba][_0x32cf21(0x1b9)]||0x0)-(_0x565259[_0x32cf21(0x1a3)][_0x29a6ba]['score']||0x0))[0x0]?.[_0x32cf21(0x197)]||_0x32cf21(0x1a8);}[a0_0x3b7194(0x1c1)](_0x143a57){const _0x4ff4bb=a0_0x3b7194,_0xc1c94d={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x143a57['sort']((_0x1e0d22,_0xcd93a2)=>{const _0x4ffad5=a0_0x66ed,_0x44dca0=Math[_0x4ffad5(0x1af)](...Object[_0x4ffad5(0x199)](_0x1e0d22['tasks']||{})['map'](_0x46a153=>_0xc1c94d[_0x46a153['speed']]||0x0)),_0x1d9044=Math[_0x4ffad5(0x1af)](...Object['values'](_0xcd93a2[_0x4ffad5(0x1a3)]||{})['map'](_0x113b96=>_0xc1c94d[_0x113b96[_0x4ffad5(0x193)]]||0x0));return _0x1d9044-_0x44dca0;})[0x0]?.[_0x4ff4bb(0x197)]||'unknown';}['_getMostCostEfficient'](_0x1de6d6){const _0x1994bf=a0_0x3b7194,_0x390a07={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x1de6d6[_0x1994bf(0x1b7)]((_0x48c7df,_0x9898fa)=>{const _0x2d75a7=_0x1994bf,_0x25b786=Math['max'](...Object[_0x2d75a7(0x199)](_0x48c7df['tasks']||{})['map'](_0x462200=>_0x390a07[_0x462200['cost']]||0x0)),_0x401559=Math[_0x2d75a7(0x1af)](...Object[_0x2d75a7(0x199)](_0x9898fa[_0x2d75a7(0x1a3)]||{})['map'](_0x305f44=>_0x390a07[_0x305f44['cost']]||0x0));return _0x401559-_0x25b786;})[0x0]?.['name']||_0x1994bf(0x1a8);}['_scheduleRefresh'](){const _0x5568ea=a0_0x3b7194;setInterval(async()=>{const _0x5987c0=a0_0x66ed;this['needsRefresh']()&&(this[_0x5987c0(0x1ab)]['debug']('Refreshing\x20benchmark\x20data'),await this['loadBenchmarks']());},this[_0x5568ea(0x1aa)]);}async[a0_0x3b7194(0x1c2)](){const _0x52e560=a0_0x3b7194;this[_0x52e560(0x1ab)]['info'](_0x52e560(0x1bd)),await this[_0x52e560(0x1b6)]();}[a0_0x3b7194(0x1a6)](){const _0x2652d6=a0_0x3b7194;return{'initialized':!!this[_0x2652d6(0x1ae)],'lastUpdated':this['lastUpdated']?.[_0x2652d6(0x1c4)]()||null,'source':this[_0x2652d6(0x1ae)]?.['source']||'unknown','modelCount':this['benchmarks']?.[_0x2652d6(0x1c5)]?.['length']||0x0,'isLoading':this[_0x2652d6(0x1a2)],'needsRefresh':this['needsRefresh']()};}}function a0_0x66ed(_0x5902da,_0x62f9be){_0x5902da=_0x5902da-0x193;const _0x349ff3=a0_0x349f();let _0x66eddb=_0x349ff3[_0x5902da];if(a0_0x66ed['qouVyq']===undefined){var _0xbe4636=function(_0x5601a4){const _0x3f9824='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x215f90='',_0x563508='';for(let _0x10ba35=0x0,_0x5087dd,_0x1f2928,_0x19169e=0x0;_0x1f2928=_0x5601a4['charAt'](_0x19169e++);~_0x1f2928&&(_0x5087dd=_0x10ba35%0x4?_0x5087dd*0x40+_0x1f2928:_0x1f2928,_0x10ba35++%0x4)?_0x215f90+=String['fromCharCode'](0xff&_0x5087dd>>(-0x2*_0x10ba35&0x6)):0x0){_0x1f2928=_0x3f9824['indexOf'](_0x1f2928);}for(let _0x4934f4=0x0,_0x20b1d3=_0x215f90['length'];_0x4934f4<_0x20b1d3;_0x4934f4++){_0x563508+='%'+('00'+_0x215f90['charCodeAt'](_0x4934f4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x563508);};a0_0x66ed['CQsCYx']=_0xbe4636,a0_0x66ed['lqtkeY']={},a0_0x66ed['qouVyq']=!![];}const _0xbeb5e4=_0x349ff3[0x0],_0x318fb4=_0x5902da+_0xbeb5e4,_0x1826a2=a0_0x66ed['lqtkeY'][_0x318fb4];return!_0x1826a2?(_0x66eddb=a0_0x66ed['CQsCYx'](_0x66eddb),a0_0x66ed['lqtkeY'][_0x318fb4]=_0x66eddb):_0x66eddb=_0x1826a2,_0x66eddb;}export default BenchmarkService;
1
+ const a0_0x31312b=a0_0x3819;(function(_0x405f82,_0xb87011){const _0x5d75c5=a0_0x3819,_0x167b88=_0x405f82();while(!![]){try{const _0x25c0cb=-parseInt(_0x5d75c5(0x108))/0x1*(-parseInt(_0x5d75c5(0xff))/0x2)+parseInt(_0x5d75c5(0x11e))/0x3+-parseInt(_0x5d75c5(0xf5))/0x4+parseInt(_0x5d75c5(0x112))/0x5+parseInt(_0x5d75c5(0x11b))/0x6+-parseInt(_0x5d75c5(0x10f))/0x7+parseInt(_0x5d75c5(0x107))/0x8;if(_0x25c0cb===_0xb87011)break;else _0x167b88['push'](_0x167b88['shift']());}catch(_0x5564c9){_0x167b88['push'](_0x167b88['shift']());}}}(a0_0x14a2,0xb17ab));function a0_0x3819(_0x1c86e3,_0x339caf){_0x1c86e3=_0x1c86e3-0xf5;const _0x14a245=a0_0x14a2();let _0x381901=_0x14a245[_0x1c86e3];if(a0_0x3819['uJmYwn']===undefined){var _0x2751b5=function(_0x37f9cb){const _0x146c2b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x13edf9='',_0x10c357='';for(let _0x4319fc=0x0,_0x525c02,_0x25e0c5,_0x954ed1=0x0;_0x25e0c5=_0x37f9cb['charAt'](_0x954ed1++);~_0x25e0c5&&(_0x525c02=_0x4319fc%0x4?_0x525c02*0x40+_0x25e0c5:_0x25e0c5,_0x4319fc++%0x4)?_0x13edf9+=String['fromCharCode'](0xff&_0x525c02>>(-0x2*_0x4319fc&0x6)):0x0){_0x25e0c5=_0x146c2b['indexOf'](_0x25e0c5);}for(let _0x312932=0x0,_0x1beb38=_0x13edf9['length'];_0x312932<_0x1beb38;_0x312932++){_0x10c357+='%'+('00'+_0x13edf9['charCodeAt'](_0x312932)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x10c357);};a0_0x3819['qgBXZT']=_0x2751b5,a0_0x3819['pKJbFz']={},a0_0x3819['uJmYwn']=!![];}const _0x1133a5=_0x14a245[0x0],_0x4aa2e9=_0x1c86e3+_0x1133a5,_0x459920=a0_0x3819['pKJbFz'][_0x4aa2e9];return!_0x459920?(_0x381901=a0_0x3819['qgBXZT'](_0x381901),a0_0x3819['pKJbFz'][_0x4aa2e9]=_0x381901):_0x381901=_0x459920,_0x381901;}import{MODEL_ROUTER_CONFIG,HTTP_STATUS}from'../utilities/constants.js';function a0_0x14a2(){const _0x4a9a85=['Bwf4','ANnVBG','Dg9ju09tDhjPBMC','x2DLDe1VC3rdB3n0rwzMAwnPzw50','DgfZA3m','z2v0qMvUy2HTyxjRvgfIBgu','x2DLBMvYyxrLqMvUy2HTyxjRu3vTBwfYEq','zxjYB3i','C3rHDhvZ','odC0nJi0q0PuBvLL','CxvPy2STDgfZA3m','C3rHDhvZvgv4Da','C2nVCMu','AxnmB2fKAw5N','Bw9KzwXZ','C29YDa','BgvUz3rO','mJK5mZC5mKLKBgDTvG','m2nytKDLyG','z2v0u3rHDhvZ','BMfTzq','x3nJAgvKDwXLuMvMCMvZAa','qMvUy2HTyxjRihnLCNzPy2uGAw5PDgLHBgL6zwq','BwvZC2fNzq','DMfSDwvZ','otK3nJu0n3boDwLNtq','yMvUy2HTyxjRCW','Bg9Nz2vY','mZuWmZC4mfzHA3zQrW','y29ZDa','BwfW','BM93','yw5HBhLZAxm','x2zLDgnOrNjVBuf6DxjLqMfJA2vUza','uMvMCMvZAgLUzYbIzw5JAg1HCMSGzgf0yq','zgvIDwC','C3bLzwq','ndy1mtyYnKzpr3P1za','CMvMCMvZAeLUDgvYDMfS','BMvLzhnszwzYzxnO','odeYotu4Dfvore1Y','z2v0qMvUy2HTyxjRCW','C291CMnL','y29UzMLN','Dw5RBM93BG','BgfZDfvWzgf0zwq','yxbWBgLJyxrPB24VANnVBG','Aw5MBW','x2DLDejLC3rnB2rLBezVCLrHC2S','nteYmZK4ofriD0TUBq'];a0_0x14a2=function(){return _0x4a9a85;};return a0_0x14a2();}class BenchmarkService{constructor(_0x13edf9,_0x10c357){const _0x2cf728=a0_0x3819;this['config']=_0x13edf9,this['logger']=_0x10c357,this['benchmarks']=null,this[_0x2cf728(0x123)]=null,this[_0x2cf728(0x103)]=![],this['azureBackendUrl']='https://autopilot-api.azurewebsites.net',this[_0x2cf728(0x11c)]=MODEL_ROUTER_CONFIG['BENCHMARK_REFRESH_INTERVAL'];}async['initialize'](){const _0x296c4f=a0_0x3819;try{await this['loadBenchmarks'](),this['_scheduleRefresh'](),this['logger']['info'](_0x296c4f(0x10c));}catch(_0x4319fc){this['logger'][_0x296c4f(0xfd)]('Failed\x20to\x20initialize\x20benchmark\x20service\x20-\x20NO\x20FALLBACK',{'error':_0x4319fc[_0x296c4f(0x10d)]}),this[_0x296c4f(0x110)]=null;}}['getBenchmarks'](){const _0x22ba2d=a0_0x3819;if(!this['benchmarks'])return this['logger'][_0x22ba2d(0xfd)]('No\x20benchmark\x20data\x20available\x20-\x20API\x20fetch\x20failed',{'message':'Benchmarks must be fetched from Azure backend','retryRecommended':!![]}),null;return this['benchmarks'];}async['loadBenchmarks'](){const _0x4df915=a0_0x3819;if(this[_0x4df915(0x103)]){this[_0x4df915(0x111)]['debug']('Benchmark\x20loading\x20already\x20in\x20progress');return;}this[_0x4df915(0x103)]=!![];try{const _0x525c02=await this['_fetchFromAzureBackend']();if(_0x525c02)this[_0x4df915(0x110)]=_0x525c02,this['lastUpdated']=new Date(),this['logger']['info']('Benchmarks loaded from Azure backend',{'modelCount':_0x525c02['models']?.[_0x4df915(0x106)]||0x0});else throw new Error('No benchmark data received from backend');}catch(_0x25e0c5){this['logger']['error']('Failed to fetch benchmarks from Azure backend - NO FALLBACK',{'error':_0x25e0c5[_0x4df915(0x10d)],'endpoint':url}),!this[_0x4df915(0x110)]&&(this[_0x4df915(0x110)]=null);}finally{this[_0x4df915(0x103)]=![];}}[a0_0x31312b(0xfb)](){const _0xc279e2=a0_0x31312b,_0x954ed1=this[_0xc279e2(0x11f)]();return{'lastUpdated':this[_0xc279e2(0x123)]?.[_0xc279e2(0xf8)]()||_0xc279e2(0x122),'models':_0x954ed1[_0xc279e2(0x104)]||[],'tasks':_0x954ed1[_0xc279e2(0xfa)]||{},'summary':this[_0xc279e2(0xfc)](_0x954ed1)};}['needsRefresh'](){const _0x1017df=a0_0x31312b;if(!this[_0x1017df(0x123)])return!![];const _0x312932=Date[_0x1017df(0x115)]()-this[_0x1017df(0x123)]['getTime']();return _0x312932>this['refreshInterval'];}async[a0_0x31312b(0x117)](){const _0x528fa3=a0_0x31312b,_0x1beb38=this['azureBackendUrl']+'/llm/model-benchmarks';let _0x37da7d=null;this['config']['apiKey']&&(_0x37da7d=this[_0x528fa3(0x121)]['apiKey']);const _0x325e9c={'method':'GET','headers':{'Content-Type':_0x528fa3(0x124),..._0x37da7d&&{'Authorization':'Bearer\x20'+_0x37da7d}},'timeout':0x2710};this[_0x528fa3(0x111)]['debug']('Fetching benchmarks from Azure backend',{'url':_0x1beb38});const _0x4243bd=await fetch(_0x1beb38,_0x325e9c);if(!_0x4243bd['ok'])throw new Error('HTTP\x20'+_0x4243bd[_0x528fa3(0xfe)]+':\x20'+_0x4243bd[_0x528fa3(0x101)]);const _0x3c59fe=await _0x4243bd[_0x528fa3(0xf7)]();return _0x3c59fe;}['_generateBenchmarkSummary'](_0x4e3a47){const _0x544988=a0_0x31312b,_0x192e5e=_0x4e3a47[_0x544988(0x104)]||[];return{'totalModels':_0x192e5e['length'],'taskCategories':Object['keys'](_0x4e3a47[_0x544988(0xfa)]||{}),'bestForCoding':this['_getBestModelForTask'](_0x192e5e,'coding'),'bestForAnalysis':this['_getBestModelForTask'](_0x192e5e,_0x544988(0x116)),'bestForQuickTasks':this[_0x544988(0x126)](_0x192e5e,_0x544988(0x100)),'bestForCreative':this['_getBestModelForTask'](_0x192e5e,'creative'),'fastestModel':this['_getFastestModel'](_0x192e5e),'mostCostEfficient':this[_0x544988(0xf9)](_0x192e5e)};}[a0_0x31312b(0x126)](_0x14f760,_0x54a37a){const _0x3233f9=a0_0x31312b;return _0x14f760['filter'](_0x5a30b3=>_0x5a30b3['tasks']&&_0x5a30b3['tasks'][_0x54a37a])[_0x3233f9(0x105)]((_0x2ddf10,_0x198471)=>(_0x198471[_0x3233f9(0xfa)][_0x54a37a]['score']||0x0)-(_0x2ddf10[_0x3233f9(0xfa)][_0x54a37a][_0x3233f9(0x102)]||0x0))[0x0]?.[_0x3233f9(0x10a)]||'unknown';}['_getFastestModel'](_0x34ed2b){const _0x296ec6=a0_0x31312b,_0x29169b={'very-fast':0x4,'fast':0x3,'medium':0x2,'slow':0x1};return _0x34ed2b['sort']((_0x199180,_0xd3f5d1)=>{const _0x2afdc4=a0_0x3819,_0x57e97f=Math[_0x2afdc4(0xf6)](...Object['values'](_0x199180['tasks']||{})[_0x2afdc4(0x114)](_0x4541a4=>_0x29169b[_0x4541a4[_0x2afdc4(0x11a)]]||0x0)),_0x514957=Math[_0x2afdc4(0xf6)](...Object['values'](_0xd3f5d1['tasks']||{})[_0x2afdc4(0x114)](_0x1a40ce=>_0x29169b[_0x1a40ce[_0x2afdc4(0x11a)]]||0x0));return _0x514957-_0x57e97f;})[0x0]?.[_0x296ec6(0x10a)]||_0x296ec6(0x122);}['_getMostCostEfficient'](_0x5e0cbe){const _0x40acbe=a0_0x31312b,_0x53ca6e={'very-low':0x4,'low':0x3,'medium':0x2,'high':0x1};return _0x5e0cbe[_0x40acbe(0x105)]((_0x2a2093,_0x3d89b4)=>{const _0x51bfb1=_0x40acbe,_0x3900d5=Math[_0x51bfb1(0xf6)](...Object[_0x51bfb1(0x10e)](_0x2a2093['tasks']||{})['map'](_0x2be7ec=>_0x53ca6e[_0x2be7ec[_0x51bfb1(0x113)]]||0x0)),_0x24e5c0=Math[_0x51bfb1(0xf6)](...Object[_0x51bfb1(0x10e)](_0x3d89b4[_0x51bfb1(0xfa)]||{})[_0x51bfb1(0x114)](_0x232df3=>_0x53ca6e[_0x232df3[_0x51bfb1(0x113)]]||0x0));return _0x24e5c0-_0x3900d5;})[0x0]?.['name']||'unknown';}[a0_0x31312b(0x10b)](){const _0x3bcc8a=a0_0x31312b;setInterval(async()=>{const _0x380e7a=a0_0x3819;this['needsRefresh']()&&(this[_0x380e7a(0x111)][_0x380e7a(0x119)](_0x380e7a(0x118)),await this['loadBenchmarks']());},this[_0x3bcc8a(0x11c)]);}async['forceRefresh'](){const _0x5e2cd0=a0_0x31312b;this['logger'][_0x5e2cd0(0x125)]('Force\x20refreshing\x20benchmark\x20data'),await this['loadBenchmarks']();}[a0_0x31312b(0x109)](){const _0x3daf73=a0_0x31312b;return{'initialized':!!this['benchmarks'],'lastUpdated':this[_0x3daf73(0x123)]?.[_0x3daf73(0xf8)]()||null,'source':this['benchmarks']?.[_0x3daf73(0x120)]||'unknown','modelCount':this['benchmarks']?.[_0x3daf73(0x104)]?.[_0x3daf73(0x106)]||0x0,'isLoading':this[_0x3daf73(0x103)],'needsRefresh':this[_0x3daf73(0x11d)]()};}}export default BenchmarkService;
@@ -1 +1 @@
1
- const a0_0x22cd97=a0_0x55f3;function a0_0x55f3(_0x212fe1,_0x2f7e12){_0x212fe1=_0x212fe1-0xad;const _0x429064=a0_0x4290();let _0x55f34f=_0x429064[_0x212fe1];if(a0_0x55f3['gCDOJv']===undefined){var _0x592415=function(_0x290148){const _0x5b70ab='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4a6b98='',_0x22beef='';for(let _0x23d121=0x0,_0xb78404,_0x197ce0,_0x3234d5=0x0;_0x197ce0=_0x290148['charAt'](_0x3234d5++);~_0x197ce0&&(_0xb78404=_0x23d121%0x4?_0xb78404*0x40+_0x197ce0:_0x197ce0,_0x23d121++%0x4)?_0x4a6b98+=String['fromCharCode'](0xff&_0xb78404>>(-0x2*_0x23d121&0x6)):0x0){_0x197ce0=_0x5b70ab['indexOf'](_0x197ce0);}for(let _0x1be215=0x0,_0x5b0084=_0x4a6b98['length'];_0x1be215<_0x5b0084;_0x1be215++){_0x22beef+='%'+('00'+_0x4a6b98['charCodeAt'](_0x1be215)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22beef);};a0_0x55f3['FhXcUX']=_0x592415,a0_0x55f3['vWutsq']={},a0_0x55f3['gCDOJv']=!![];}const _0x527072=_0x429064[0x0],_0x21cb58=_0x212fe1+_0x527072,_0x290063=a0_0x55f3['vWutsq'][_0x21cb58];return!_0x290063?(_0x55f34f=a0_0x55f3['FhXcUX'](_0x55f34f),a0_0x55f3['vWutsq'][_0x21cb58]=_0x55f34f):_0x55f34f=_0x290063,_0x55f34f;}(function(_0xd6ec94,_0x2ecd98){const _0x2c3b95=a0_0x55f3,_0x387ffe=_0xd6ec94();while(!![]){try{const _0x3bf71d=-parseInt(_0x2c3b95(0xcc))/0x1*(-parseInt(_0x2c3b95(0xfc))/0x2)+-parseInt(_0x2c3b95(0xce))/0x3+parseInt(_0x2c3b95(0xcb))/0x4*(-parseInt(_0x2c3b95(0xf2))/0x5)+-parseInt(_0x2c3b95(0xbc))/0x6+parseInt(_0x2c3b95(0xca))/0x7+parseInt(_0x2c3b95(0xcf))/0x8*(parseInt(_0x2c3b95(0xd8))/0x9)+-parseInt(_0x2c3b95(0xba))/0xa*(-parseInt(_0x2c3b95(0xd0))/0xb);if(_0x3bf71d===_0x2ecd98)break;else _0x387ffe['push'](_0x387ffe['shift']());}catch(_0x3ee2ee){_0x387ffe['push'](_0x387ffe['shift']());}}}(a0_0x4290,0x86a9b));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';export class BudgetService{constructor(_0x4a6b98,_0x22beef){const _0x9b8fed=a0_0x55f3;this['config']=_0x4a6b98||{},this[_0x9b8fed(0xbe)]=_0x22beef,this[_0x9b8fed(0xe9)]={'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[_0x9b8fed(0xf4)],'monthly':BUDGET_LIMITS['MONTHLY']},this[_0x9b8fed(0xe7)]={'enabled':!![],'thresholds':USAGE_ALERTS['THRESHOLDS'],'lastAlertTimes':new Map()},this[_0x9b8fed(0xc8)](),this['setupPeriodicSave']();}['trackUsage'](_0x23d121,_0xb78404,_0x197ce0){const _0x764120=a0_0x55f3;try{const _0x3234d5=this['calculateCost'](_0xb78404,_0x197ce0),_0x1be215=new Date(),_0x5b0084=this['getDayKey'](_0x1be215),_0x24f035=this[_0x764120(0xf9)](_0x1be215),_0x2940a0=this['getMonthKey'](_0x1be215);this['initializeUsageEntry'](this['usage']['daily'],_0x5b0084),this['initializeUsageEntry'](this['usage']['weekly'],_0x24f035),this['initializeUsageEntry'](this['usage'][_0x764120(0xec)],_0x2940a0);const _0x2562af={'agentId':_0x23d121,'modelId':_0xb78404,'tokens':_0x197ce0[_0x764120(0xb2)],'cost':_0x3234d5,'timestamp':_0x1be215[_0x764120(0xd5)]()};return this['updateUsageEntry'](this[_0x764120(0xe9)][_0x764120(0xbb)]['get'](_0x5b0084),_0x2562af),this[_0x764120(0xcd)](this['usage'][_0x764120(0xc9)][_0x764120(0xb7)](_0x24f035),_0x2562af),this['updateUsageEntry'](this[_0x764120(0xe9)][_0x764120(0xec)][_0x764120(0xb7)](_0x2940a0),_0x2562af),this[_0x764120(0xe9)]['total']['tokens']+=_0x197ce0['total_tokens'],this['usage']['total']['cost']+=_0x3234d5,this['usage']['total'][_0x764120(0xb5)]+=0x1,this[_0x764120(0xdb)](_0x5b0084,_0x24f035,_0x2940a0),this[_0x764120(0xbe)][_0x764120(0xf3)](_0x764120(0xe0),{'agentId':_0x23d121,'modelId':_0xb78404,'tokens':_0x197ce0['total_tokens'],'cost':_0x3234d5,'totalCost':this['usage'][_0x764120(0xc6)]['cost']}),{'cost':_0x3234d5,'totalCost':this['usage'][_0x764120(0xc6)]['cost'],'totalTokens':this['usage']['total'][_0x764120(0xe5)],'dailyUsage':this['usage'][_0x764120(0xbb)]['get'](_0x5b0084),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x412776){this['logger']['error']('Failed\x20to\x20track\x20usage',{'error':_0x412776['message'],'agentId':_0x23d121,'modelId':_0xb78404});throw _0x412776;}}[a0_0x22cd97(0xdc)](_0x5b65f7,_0x4ad4d7){const _0x4bf671=a0_0x22cd97,_0x323da3=COST_PER_TOKEN[_0x5b65f7];if(!_0x323da3)return this['logger'][_0x4bf671(0xff)](_0x4bf671(0x107),{'modelId':_0x5b65f7}),0x0;const _0x11d2a1=(_0x4ad4d7['prompt_tokens']||0x0)*_0x323da3['input'],_0x243098=(_0x4ad4d7[_0x4bf671(0xbd)]||0x0)*_0x323da3[_0x4bf671(0xf1)];return _0x11d2a1+_0x243098;}[a0_0x22cd97(0xb1)](_0x4c8b82='daily',_0x520102=new Date()){const _0x19f917=a0_0x22cd97;switch(_0x4c8b82){case'daily':return this['usage']['daily']['get'](this[_0x19f917(0xb9)](_0x520102))||this['createEmptyUsage']();case _0x19f917(0xc9):return this[_0x19f917(0xe9)][_0x19f917(0xc9)]['get'](this['getWeekKey'](_0x520102))||this['createEmptyUsage']();case'monthly':return this['usage'][_0x19f917(0xec)][_0x19f917(0xb7)](this[_0x19f917(0xb3)](_0x520102))||this['createEmptyUsage']();case _0x19f917(0xc6):return{...this['usage']['total']};default:throw new Error(_0x19f917(0xf8)+_0x4c8b82);}}[a0_0x22cd97(0xbf)](_0x57ed4f,_0x341763='daily'){const _0x3fefd1=a0_0x22cd97,_0x10f7c6=this[_0x3fefd1(0xb1)](_0x341763);return _0x10f7c6[_0x3fefd1(0xe6)]?.[_0x57ed4f]||this[_0x3fefd1(0xe8)]();}[a0_0x22cd97(0xd4)](_0x395fbf,_0x17e31b=a0_0x22cd97(0xbb)){const _0x414622=a0_0x22cd97,_0x34b9b3=this['getUsage'](_0x17e31b);return _0x34b9b3[_0x414622(0xb6)]?.[_0x395fbf]||this[_0x414622(0xe8)]();}['setBudgets'](_0x59a7ed){const _0x4a1143=a0_0x22cd97;if(_0x59a7ed['daily']!==undefined)this[_0x4a1143(0xc1)][_0x4a1143(0xbb)]=_0x59a7ed[_0x4a1143(0xbb)];if(_0x59a7ed['weekly']!==undefined)this[_0x4a1143(0xc1)]['weekly']=_0x59a7ed['weekly'];if(_0x59a7ed[_0x4a1143(0xec)]!==undefined)this[_0x4a1143(0xc1)][_0x4a1143(0xec)]=_0x59a7ed['monthly'];this['logger'][_0x4a1143(0xf3)]('Budget\x20limits\x20updated',this['budgets']),this['saveUsageData']();}[a0_0x22cd97(0xd2)](){const _0x1b6aa8=a0_0x22cd97,_0x4d1368=new Date(),_0x1dff7c=this['getUsage']('daily',_0x4d1368),_0x2f9772=this['getUsage']('weekly',_0x4d1368),_0xcd9657=this['getUsage'](_0x1b6aa8(0xec),_0x4d1368);return{'daily':Math['max'](0x0,this['budgets'][_0x1b6aa8(0xbb)]-_0x1dff7c['cost']),'weekly':Math['max'](0x0,this['budgets'][_0x1b6aa8(0xc9)]-_0x2f9772['cost']),'monthly':Math['max'](0x0,this['budgets']['monthly']-_0xcd9657['cost'])};}[a0_0x22cd97(0x101)](_0x16f5a1=a0_0x22cd97(0xbb)){const _0x5bcccf=a0_0x22cd97,_0x4cab1d=this['getUsage'](_0x16f5a1),_0x3079ec=this[_0x5bcccf(0xc1)][_0x16f5a1];return _0x4cab1d['cost']<=_0x3079ec;}['getUsageTrends'](_0x297463=0x1e){const _0x1aa8cd=a0_0x22cd97,_0x34b25b={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x58e448=new Date();let _0x5b64c6=0x0,_0x115559=0x0,_0x269cb2=0x0;const _0x47e211=new Map(),_0x8a88c=new Map();for(let _0x2ec8a5=0x0;_0x2ec8a5<_0x297463;_0x2ec8a5++){const _0x596235=new Date(_0x58e448);_0x596235['setDate'](_0x596235[_0x1aa8cd(0xdd)]()-_0x2ec8a5);const _0x57d47a=this['getDayKey'](_0x596235),_0x184b46=this['usage']['daily'][_0x1aa8cd(0xb7)](_0x57d47a);_0x184b46?(_0x5b64c6+=_0x184b46[_0x1aa8cd(0xc5)],_0x115559+=_0x184b46[_0x1aa8cd(0xe5)],_0x269cb2+=_0x184b46['requests'],_0x34b25b['costByDay'][_0x1aa8cd(0xeb)]({'date':_0x57d47a,'cost':_0x184b46['cost']}),_0x34b25b['tokensByDay']['unshift']({'date':_0x57d47a,'tokens':_0x184b46['tokens']}),Object[_0x1aa8cd(0xfb)](_0x184b46[_0x1aa8cd(0xe6)]||{})[_0x1aa8cd(0xe2)](([_0x4a346e,_0x68fb97])=>{const _0x15f57e=_0x1aa8cd;!_0x47e211['has'](_0x4a346e)&&_0x47e211['set'](_0x4a346e,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x346e04=_0x47e211['get'](_0x4a346e);_0x346e04['cost']+=_0x68fb97[_0x15f57e(0xc5)],_0x346e04[_0x15f57e(0xe5)]+=_0x68fb97['tokens'],_0x346e04['requests']+=_0x68fb97['requests'];}),Object['entries'](_0x184b46[_0x1aa8cd(0xb6)]||{})[_0x1aa8cd(0xe2)](([_0x2029cc,_0xfec49b])=>{const _0xa5ebfb=_0x1aa8cd;!_0x8a88c['has'](_0x2029cc)&&_0x8a88c['set'](_0x2029cc,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x2353c8=_0x8a88c[_0xa5ebfb(0xb7)](_0x2029cc);_0x2353c8['cost']+=_0xfec49b['cost'],_0x2353c8['tokens']+=_0xfec49b['tokens'],_0x2353c8['requests']+=_0xfec49b[_0xa5ebfb(0xb5)];})):(_0x34b25b['costByDay'][_0x1aa8cd(0xeb)]({'date':_0x57d47a,'cost':0x0}),_0x34b25b['tokensByDay'][_0x1aa8cd(0xeb)]({'date':_0x57d47a,'tokens':0x0}));}return _0x34b25b[_0x1aa8cd(0xad)]['cost']=_0x5b64c6/_0x297463,_0x34b25b['dailyAverages']['tokens']=_0x115559/_0x297463,_0x34b25b[_0x1aa8cd(0xad)]['requests']=_0x269cb2/_0x297463,_0x34b25b[_0x1aa8cd(0xf5)]=Array['from'](_0x47e211['entries']())[_0x1aa8cd(0x105)](([_0x106298,_0x15492d])=>({'id':_0x106298,..._0x15492d}))['sort']((_0x17035b,_0x3156d4)=>_0x3156d4[_0x1aa8cd(0xc5)]-_0x17035b['cost'])[_0x1aa8cd(0xd7)](0x0,0xa),_0x34b25b[_0x1aa8cd(0xd6)]=Array[_0x1aa8cd(0xf0)](_0x8a88c[_0x1aa8cd(0xfb)]())['map'](([_0x1d84fb,_0x1b8b2d])=>({'id':_0x1d84fb,..._0x1b8b2d}))['sort']((_0x194824,_0x348cda)=>_0x348cda[_0x1aa8cd(0xc5)]-_0x194824[_0x1aa8cd(0xc5)])['slice'](0x0,0xa),_0x34b25b;}[a0_0x22cd97(0xaf)](_0x281ef1=a0_0x22cd97(0xee),_0x3db1ae=null,_0x529a3d=null){const _0x199a3d=a0_0x22cd97,_0x4c1689={'budgets':this['budgets'],'total':this['usage']['total'],'daily':{},'weekly':{},'monthly':{}},_0x3e01af=(_0x2654e0,_0x54cfad)=>{const _0x75e6e=a0_0x55f3,_0x5adccf={};return _0x2654e0[_0x75e6e(0xe2)]((_0x32339a,_0x377b91)=>{const _0x2253ed=_0x54cfad(_0x377b91);(!_0x3db1ae||_0x2253ed>=_0x3db1ae)&&(!_0x529a3d||_0x2253ed<=_0x529a3d)&&(_0x5adccf[_0x377b91]=_0x32339a);}),_0x5adccf;};_0x3db1ae||_0x529a3d?(_0x4c1689[_0x199a3d(0xbb)]=_0x3e01af(this['usage'][_0x199a3d(0xbb)],_0x45148d=>new Date(_0x45148d)),_0x4c1689[_0x199a3d(0xc9)]=_0x3e01af(this['usage'][_0x199a3d(0xc9)],_0x32e39d=>new Date(_0x32e39d)),_0x4c1689['monthly']=_0x3e01af(this['usage'][_0x199a3d(0xec)],_0x5e1a4b=>new Date(_0x5e1a4b+_0x199a3d(0x102)))):(this['usage']['daily'][_0x199a3d(0xe2)]((_0x1769e6,_0x56be3b)=>_0x4c1689[_0x199a3d(0xbb)][_0x56be3b]=_0x1769e6),this['usage'][_0x199a3d(0xc9)][_0x199a3d(0xe2)]((_0x5e3335,_0x3e1d04)=>_0x4c1689['weekly'][_0x3e1d04]=_0x5e3335),this[_0x199a3d(0xe9)][_0x199a3d(0xec)][_0x199a3d(0xe2)]((_0x20cae3,_0x46a4f0)=>_0x4c1689[_0x199a3d(0xec)][_0x46a4f0]=_0x20cae3));if(_0x281ef1===_0x199a3d(0x100))return this[_0x199a3d(0xea)](_0x4c1689);return JSON[_0x199a3d(0x108)](_0x4c1689,null,0x2);}[a0_0x22cd97(0xc0)](_0x594e63,_0x1d8ba4){const _0x15a7b0=a0_0x22cd97;!_0x594e63[_0x15a7b0(0xfe)](_0x1d8ba4)&&_0x594e63[_0x15a7b0(0xd3)](_0x1d8ba4,this[_0x15a7b0(0xe8)]());}['createEmptyUsage'](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}[a0_0x22cd97(0xcd)](_0x73cba7,_0x3909c9){const _0x4a9f09=a0_0x22cd97;_0x73cba7['cost']+=_0x3909c9[_0x4a9f09(0xc5)],_0x73cba7['tokens']+=_0x3909c9['tokens'],_0x73cba7['requests']+=0x1,!_0x73cba7[_0x4a9f09(0xe6)][_0x3909c9['agentId']]&&(_0x73cba7[_0x4a9f09(0xe6)][_0x3909c9[_0x4a9f09(0xf7)]]=this[_0x4a9f09(0xe8)]()),_0x73cba7['byAgent'][_0x3909c9['agentId']]['cost']+=_0x3909c9['cost'],_0x73cba7['byAgent'][_0x3909c9['agentId']]['tokens']+=_0x3909c9['tokens'],_0x73cba7[_0x4a9f09(0xe6)][_0x3909c9['agentId']][_0x4a9f09(0xb5)]+=0x1,!_0x73cba7[_0x4a9f09(0xb6)][_0x3909c9['modelId']]&&(_0x73cba7[_0x4a9f09(0xb6)][_0x3909c9[_0x4a9f09(0xe4)]]=this[_0x4a9f09(0xe8)]()),_0x73cba7['byModel'][_0x3909c9[_0x4a9f09(0xe4)]][_0x4a9f09(0xc5)]+=_0x3909c9[_0x4a9f09(0xc5)],_0x73cba7[_0x4a9f09(0xb6)][_0x3909c9[_0x4a9f09(0xe4)]]['tokens']+=_0x3909c9['tokens'],_0x73cba7[_0x4a9f09(0xb6)][_0x3909c9[_0x4a9f09(0xe4)]]['requests']+=0x1;}['checkBudgetLimits'](_0x3a2253,_0x1a5aba,_0x2bdedf){const _0x2e759b=a0_0x22cd97,_0x3a8c37=this[_0x2e759b(0xe9)]['daily']['get'](_0x3a2253),_0x48d331=this['usage']['weekly']['get'](_0x1a5aba),_0x29303c=this['usage']['monthly']['get'](_0x2bdedf);_0x3a8c37[_0x2e759b(0xc5)]>this['budgets'][_0x2e759b(0xbb)]&&this['sendBudgetAlert'](_0x2e759b(0xbb),_0x3a8c37['cost'],this[_0x2e759b(0xc1)]['daily']),_0x48d331[_0x2e759b(0xc5)]>this[_0x2e759b(0xc1)]['weekly']&&this[_0x2e759b(0xf6)]('weekly',_0x48d331[_0x2e759b(0xc5)],this['budgets']['weekly']),_0x29303c[_0x2e759b(0xc5)]>this['budgets'][_0x2e759b(0xec)]&&this['sendBudgetAlert']('monthly',_0x29303c['cost'],this[_0x2e759b(0xc1)]['monthly']),this['checkThresholdAlerts'](_0x3a8c37,_0x48d331,_0x29303c);}[a0_0x22cd97(0xda)](_0x175975,_0x1f461e,_0x248440){const _0x28663b=a0_0x22cd97,_0x22d5c5=this['alerts']['thresholds'];this['checkThreshold'](_0x28663b(0xbb),_0x175975[_0x28663b(0xc5)],this[_0x28663b(0xc1)]['daily'],_0x22d5c5),this['checkThreshold']('weekly',_0x1f461e[_0x28663b(0xc5)],this[_0x28663b(0xc1)][_0x28663b(0xc9)],_0x22d5c5),this[_0x28663b(0xb0)]('monthly',_0x248440['cost'],this['budgets'][_0x28663b(0xec)],_0x22d5c5);}[a0_0x22cd97(0xb0)](_0x2cf638,_0x5aee11,_0x30ae71,_0x23a346){const _0xec4c29=a0_0x22cd97,_0x2586bb=_0x5aee11/_0x30ae71*0x64;for(const _0x2b2bfe of _0x23a346){if(_0x2586bb>=_0x2b2bfe){const _0x599061=_0x2cf638+'_'+_0x2b2bfe,_0x53188b=this[_0xec4c29(0xe7)]['lastAlertTimes']['get'](_0x599061),_0x384eb8=Date['now']();(!_0x53188b||_0x384eb8-_0x53188b>0x36ee80)&&(this['sendThresholdAlert'](_0x2cf638,_0x2586bb,_0x2b2bfe,_0x5aee11,_0x30ae71),this['alerts']['lastAlertTimes']['set'](_0x599061,_0x384eb8));break;}}}[a0_0x22cd97(0xf6)](_0x532b6d,_0x18eb9d,_0x398c92){const _0x25a559=a0_0x22cd97;this['logger'][_0x25a559(0xff)](_0x25a559(0xc7),{'period':_0x532b6d,'currentUsage':_0x18eb9d,'budgetLimit':_0x398c92,'excess':_0x18eb9d-_0x398c92}),typeof process!==_0x25a559(0xdf)&&process[_0x25a559(0x106)]&&process['emit'](_0x25a559(0xef),{'type':_0x25a559(0xc4),'period':_0x532b6d,'currentUsage':_0x18eb9d,'budgetLimit':_0x398c92,'excess':_0x18eb9d-_0x398c92});}['sendThresholdAlert'](_0x58fcf7,_0x49156e,_0x1135c0,_0xfe489b,_0x4c0060){const _0x2bff0c=a0_0x22cd97;this['logger']['warn'](_0x2bff0c(0xc2),{'period':_0x58fcf7,'percentage':Math['round'](_0x49156e),'threshold':_0x1135c0,'usage':_0xfe489b,'budget':_0x4c0060}),typeof process!=='undefined'&&process['emit']&&process['emit']('budgetAlert',{'type':'threshold_reached','period':_0x58fcf7,'percentage':Math[_0x2bff0c(0xed)](_0x49156e),'threshold':_0x1135c0,'usage':_0xfe489b,'budget':_0x4c0060});}['getDayKey'](_0x42c9f2){const _0xfaffca=a0_0x22cd97;return _0x42c9f2[_0xfaffca(0xd5)]()['split']('T')[0x0];}[a0_0x22cd97(0xf9)](_0x5b75e9){const _0x2caeed=a0_0x22cd97,_0x4111e1=_0x5b75e9[_0x2caeed(0xfa)](),_0x599e88=this[_0x2caeed(0xb8)](_0x5b75e9);return _0x4111e1+'-W'+_0x599e88[_0x2caeed(0x104)]()[_0x2caeed(0xd1)](0x2,'0');}['getMonthKey'](_0x2fc2ce){const _0x199adc=a0_0x22cd97,_0x1ca0ae=_0x2fc2ce[_0x199adc(0xfa)](),_0x155d85=_0x2fc2ce[_0x199adc(0x103)]()+0x1;return _0x1ca0ae+'-'+_0x155d85['toString']()['padStart'](0x2,'0');}['getWeekNumber'](_0x3db0b7){const _0x1f9d9e=a0_0x22cd97,_0x156440=new Date(_0x3db0b7[_0x1f9d9e(0xfa)](),0x0,0x1),_0x5385dc=(_0x3db0b7-_0x156440)/0x5265c00;return Math['ceil']((_0x5385dc+_0x156440['getDay']()+0x1)/0x7);}[a0_0x22cd97(0xea)](_0x30ba6b){const _0x1bb06e=a0_0x22cd97,_0x5c33b2=[];return _0x5c33b2['push'](['Period',_0x1bb06e(0xde),_0x1bb06e(0xe1),'Tokens','Requests','Agent','Model']),Object['entries'](_0x30ba6b[_0x1bb06e(0xbb)])['forEach'](([_0x480936,_0x1d5e0c])=>{const _0x40bd16=_0x1bb06e;_0x5c33b2[_0x40bd16(0xae)](['Daily',_0x480936,_0x1d5e0c[_0x40bd16(0xc5)],_0x1d5e0c[_0x40bd16(0xe5)],_0x1d5e0c['requests'],'','']),Object['entries'](_0x1d5e0c['byAgent']||{})[_0x40bd16(0xe2)](([_0x19cf01,_0x16e398])=>{const _0x48e859=_0x40bd16;_0x5c33b2[_0x48e859(0xae)](['Daily',_0x480936,_0x16e398[_0x48e859(0xc5)],_0x16e398[_0x48e859(0xe5)],_0x16e398['requests'],_0x19cf01,'']);});}),_0x5c33b2['map'](_0x50d1fe=>_0x50d1fe['join'](','))['join']('\x0a');}[a0_0x22cd97(0xc8)](){const _0x4da08d=a0_0x22cd97;try{this['logger'][_0x4da08d(0xf3)](_0x4da08d(0xd9));}catch(_0x471421){this[_0x4da08d(0xbe)][_0x4da08d(0xb4)]('Failed\x20to\x20load\x20usage\x20data',{'error':_0x471421[_0x4da08d(0xc3)]});}}[a0_0x22cd97(0xe3)](){const _0x5db651=a0_0x22cd97;try{this['logger']['debug']('Usage\x20data\x20saved');}catch(_0xe4e628){this[_0x5db651(0xbe)]['error']('Failed\x20to\x20save\x20usage\x20data',{'error':_0xe4e628[_0x5db651(0xc3)]});}}[a0_0x22cd97(0xfd)](){setInterval(()=>{const _0x16cd21=a0_0x55f3;this[_0x16cd21(0xe3)]();},0x493e0);}}function a0_0x4290(){const _0x1a1166=['BwvZC2fNzq','yNvKz2v0x2v4y2vLzgvK','y29ZDa','Dg90ywW','qNvKz2v0igXPBwL0igv4y2vLzgvK','Bg9HzfvZywDLrgf0yq','D2vLA2X5','ntiYnZe4wg55AeLH','otq5nMT3vgHzzG','mJm0mvPsqK5UCq','DxbKyxrLvxnHz2vfBNrYEq','mJm5mdu1nMffD1vmwq','ogn6u3DMza','oduZmJi3muDjuvfywG','CgfKu3rHCNq','z2v0uMvTywLUAw5NqNvKz2v0','C2v0','z2v0tw9KzwXvC2fNzq','Dg9ju09tDhjPBMC','Dg9Wtw9KzwXZ','C2XPy2u','mZe2odK4mxvOD1PRtW','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','y2HLy2TuAhjLC2HVBgrbBgvYDhm','y2HLy2TcDwrNzxrmAw1PDhm','y2fSy3vSyxrLq29ZDa','z2v0rgf0zq','rgf0zq','Dw5KzwzPBMvK','vxnHz2uGDhjHy2TLza','q29ZDa','zM9YrwfJAa','C2f2zvvZywDLrgf0yq','Bw9KzwXjza','Dg9Rzw5Z','yNLbz2vUDa','ywXLCNrZ','y3jLyxrLrw1WDhLvC2fNzq','DxnHz2u','y29UDMvYDfrVq1nw','Dw5ZAgLMDa','Bw9UDgHSEq','CM91BMq','ANnVBG','yNvKz2v0qwXLCNq','zNjVBq','B3v0Chv0','odyWCLfQrNrn','Aw5MBW','v0vfs0Xz','Dg9WqwDLBNrZ','C2vUzej1zgDLDefSzxj0','ywDLBNrjza','sw52ywXPzcbWzxjPB2q6ia','z2v0v2vLA0TLEq','z2v0rNvSBfLLyxi','zw50CMLLCW','ntiYC3bKD2fk','C2v0DxbqzxjPB2rPy1nHDMu','AgfZ','D2fYBG','y3n2','AxnxAxrOAw5cDwrNzxq','ltaX','z2v0tw9UDgG','Dg9tDhjPBMC','BwfW','zw1PDa','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','C3rYAw5NAwz5','zgfPBhLbDMvYywDLCW','ChvZAa','zxHWB3j0vxnHz2veyxrH','y2HLy2TuAhjLC2HVBgq','z2v0vxnHz2u','Dg90ywXFDg9Rzw5Z','z2v0tw9UDgHlzxK','zxjYB3i','CMvXDwvZDhm','yNLnB2rLBa','z2v0','z2v0v2vLA051BwjLCG','z2v0rgf5s2v5','mJbNtfDiwvu','zgfPBhK','ndK5nda4mLDctgH6wG','y29TCgXLDgLVBL90B2TLBNm','Bg9Nz2vY','z2v0qwDLBNrvC2fNzq','Aw5PDgLHBgL6zvvZywDLrw50CNK','yNvKz2v0CW','qNvKz2v0ihrOCMvZAg9SzcbYzwfJAgvK'];a0_0x4290=function(){return _0x1a1166;};return a0_0x4290();}export default BudgetService;
1
+ const a0_0x167936=a0_0x30d2;(function(_0x371c44,_0x1504b6){const _0x39132d=a0_0x30d2,_0x5d9456=_0x371c44();while(!![]){try{const _0x4bf983=-parseInt(_0x39132d(0x111))/0x1+-parseInt(_0x39132d(0x115))/0x2+-parseInt(_0x39132d(0x135))/0x3+-parseInt(_0x39132d(0x125))/0x4+parseInt(_0x39132d(0x11d))/0x5*(-parseInt(_0x39132d(0x117))/0x6)+-parseInt(_0x39132d(0x11c))/0x7*(-parseInt(_0x39132d(0x133))/0x8)+parseInt(_0x39132d(0x128))/0x9*(parseInt(_0x39132d(0x12a))/0xa);if(_0x4bf983===_0x1504b6)break;else _0x5d9456['push'](_0x5d9456['shift']());}catch(_0x207be0){_0x5d9456['push'](_0x5d9456['shift']());}}}(a0_0x5725,0x87488));import{BUDGET_LIMITS,COST_PER_TOKEN,USAGE_ALERTS}from'../utilities/constants.js';function a0_0x30d2(_0x514a18,_0x220df7){_0x514a18=_0x514a18-0x108;const _0x5725f1=a0_0x5725();let _0x30d209=_0x5725f1[_0x514a18];if(a0_0x30d2['uDRioC']===undefined){var _0x111dce=function(_0x85ccee){const _0x40b6c8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x9541e3='',_0x168ecd='';for(let _0x272b33=0x0,_0x3ccaa8,_0x5456fb,_0x3db74d=0x0;_0x5456fb=_0x85ccee['charAt'](_0x3db74d++);~_0x5456fb&&(_0x3ccaa8=_0x272b33%0x4?_0x3ccaa8*0x40+_0x5456fb:_0x5456fb,_0x272b33++%0x4)?_0x9541e3+=String['fromCharCode'](0xff&_0x3ccaa8>>(-0x2*_0x272b33&0x6)):0x0){_0x5456fb=_0x40b6c8['indexOf'](_0x5456fb);}for(let _0x37cc00=0x0,_0x1e3068=_0x9541e3['length'];_0x37cc00<_0x1e3068;_0x37cc00++){_0x168ecd+='%'+('00'+_0x9541e3['charCodeAt'](_0x37cc00)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x168ecd);};a0_0x30d2['PNJQpx']=_0x111dce,a0_0x30d2['EqjZnl']={},a0_0x30d2['uDRioC']=!![];}const _0x5c15fc=_0x5725f1[0x0],_0x26afd5=_0x514a18+_0x5c15fc,_0x3806b6=a0_0x30d2['EqjZnl'][_0x26afd5];return!_0x3806b6?(_0x30d209=a0_0x30d2['PNJQpx'](_0x30d209),a0_0x30d2['EqjZnl'][_0x26afd5]=_0x30d209):_0x30d209=_0x3806b6,_0x30d209;}export class BudgetService{constructor(_0x9541e3,_0x168ecd){const _0x17f6e5=a0_0x30d2;this[_0x17f6e5(0x168)]=_0x9541e3||{},this[_0x17f6e5(0x155)]=_0x168ecd,this['usage']={'daily':new Map(),'weekly':new Map(),'monthly':new Map(),'total':{'tokens':0x0,'cost':0x0,'requests':0x0}},this[_0x17f6e5(0x14f)]={'daily':BUDGET_LIMITS[_0x17f6e5(0x113)],'weekly':BUDGET_LIMITS['WEEKLY'],'monthly':BUDGET_LIMITS[_0x17f6e5(0x131)]},this['alerts']={'enabled':!![],'thresholds':USAGE_ALERTS[_0x17f6e5(0x149)],'lastAlertTimes':new Map()},this[_0x17f6e5(0x160)](),this['setupPeriodicSave']();}[a0_0x167936(0x122)](_0x272b33,_0x3ccaa8,_0x5456fb){const _0xd85ae1=a0_0x167936;try{const _0x3db74d=this[_0xd85ae1(0x14a)](_0x3ccaa8,_0x5456fb),_0x37cc00=new Date(),_0x1e3068=this[_0xd85ae1(0x110)](_0x37cc00),_0x170626=this[_0xd85ae1(0x163)](_0x37cc00),_0xe04a3f=this[_0xd85ae1(0x11f)](_0x37cc00);this[_0xd85ae1(0x13c)](this[_0xd85ae1(0x145)][_0xd85ae1(0x132)],_0x1e3068),this['initializeUsageEntry'](this['usage'][_0xd85ae1(0x14c)],_0x170626),this[_0xd85ae1(0x13c)](this['usage'][_0xd85ae1(0x112)],_0xe04a3f);const _0x40de57={'agentId':_0x272b33,'modelId':_0x3ccaa8,'tokens':_0x5456fb[_0xd85ae1(0x141)],'cost':_0x3db74d,'timestamp':_0x37cc00['toISOString']()};return this['updateUsageEntry'](this['usage'][_0xd85ae1(0x132)][_0xd85ae1(0x142)](_0x1e3068),_0x40de57),this['updateUsageEntry'](this['usage']['weekly'][_0xd85ae1(0x142)](_0x170626),_0x40de57),this['updateUsageEntry'](this[_0xd85ae1(0x145)]['monthly'][_0xd85ae1(0x142)](_0xe04a3f),_0x40de57),this[_0xd85ae1(0x145)]['total']['tokens']+=_0x5456fb['total_tokens'],this[_0xd85ae1(0x145)]['total']['cost']+=_0x3db74d,this['usage']['total'][_0xd85ae1(0x134)]+=0x1,this['checkBudgetLimits'](_0x1e3068,_0x170626,_0xe04a3f),this['logger']['info'](_0xd85ae1(0x158),{'agentId':_0x272b33,'modelId':_0x3ccaa8,'tokens':_0x5456fb['total_tokens'],'cost':_0x3db74d,'totalCost':this['usage']['total'][_0xd85ae1(0x118)]}),{'cost':_0x3db74d,'totalCost':this['usage']['total']['cost'],'totalTokens':this['usage'][_0xd85ae1(0x108)]['tokens'],'dailyUsage':this['usage'][_0xd85ae1(0x132)]['get'](_0x1e3068),'budgetRemaining':this['getRemainingBudget']()};}catch(_0x5a6123){this[_0xd85ae1(0x155)][_0xd85ae1(0x148)](_0xd85ae1(0x126),{'error':_0x5a6123['message'],'agentId':_0x272b33,'modelId':_0x3ccaa8});throw _0x5a6123;}}['calculateCost'](_0x253dfc,_0x2eda47){const _0x163757=a0_0x167936,_0x1f5a86=COST_PER_TOKEN[_0x253dfc];if(!_0x1f5a86)return this[_0x163757(0x155)][_0x163757(0x15b)](_0x163757(0x14d),{'modelId':_0x253dfc}),0x0;const _0x20e338=(_0x2eda47[_0x163757(0x10f)]||0x0)*_0x1f5a86['input'],_0x55d09f=(_0x2eda47['completion_tokens']||0x0)*_0x1f5a86[_0x163757(0x157)];return _0x20e338+_0x55d09f;}['getUsage'](_0x59ff7e='daily',_0x2b1162=new Date()){const _0xe632a8=a0_0x167936;switch(_0x59ff7e){case'daily':return this['usage']['daily']['get'](this[_0xe632a8(0x110)](_0x2b1162))||this['createEmptyUsage']();case'weekly':return this[_0xe632a8(0x145)]['weekly'][_0xe632a8(0x142)](this[_0xe632a8(0x163)](_0x2b1162))||this['createEmptyUsage']();case _0xe632a8(0x112):return this['usage']['monthly'][_0xe632a8(0x142)](this[_0xe632a8(0x11f)](_0x2b1162))||this[_0xe632a8(0x166)]();case'total':return{...this['usage'][_0xe632a8(0x108)]};default:throw new Error(_0xe632a8(0x123)+_0x59ff7e);}}['getAgentUsage'](_0x4eb8ca,_0x138421=a0_0x167936(0x132)){const _0xb531d=this['getUsage'](_0x138421);return _0xb531d['byAgent']?.[_0x4eb8ca]||this['createEmptyUsage']();}[a0_0x167936(0x137)](_0x5bc0d7,_0x165425='daily'){const _0x1d2a95=a0_0x167936,_0x4ba1fb=this[_0x1d2a95(0x11e)](_0x165425);return _0x4ba1fb[_0x1d2a95(0x156)]?.[_0x5bc0d7]||this[_0x1d2a95(0x166)]();}[a0_0x167936(0x120)](_0x32ea5b){const _0xe9882f=a0_0x167936;if(_0x32ea5b['daily']!==undefined)this[_0xe9882f(0x14f)][_0xe9882f(0x132)]=_0x32ea5b['daily'];if(_0x32ea5b[_0xe9882f(0x14c)]!==undefined)this['budgets'][_0xe9882f(0x14c)]=_0x32ea5b[_0xe9882f(0x14c)];if(_0x32ea5b['monthly']!==undefined)this[_0xe9882f(0x14f)]['monthly']=_0x32ea5b[_0xe9882f(0x112)];this['logger']['info']('Budget\x20limits\x20updated',this['budgets']),this[_0xe9882f(0x136)]();}['getRemainingBudget'](){const _0x331b15=a0_0x167936,_0x81f72=new Date(),_0x174f2e=this[_0x331b15(0x11e)](_0x331b15(0x132),_0x81f72),_0x6a5d27=this['getUsage']('weekly',_0x81f72),_0x1bfad6=this['getUsage'](_0x331b15(0x112),_0x81f72);return{'daily':Math[_0x331b15(0x151)](0x0,this[_0x331b15(0x14f)][_0x331b15(0x132)]-_0x174f2e[_0x331b15(0x118)]),'weekly':Math['max'](0x0,this[_0x331b15(0x14f)]['weekly']-_0x6a5d27['cost']),'monthly':Math[_0x331b15(0x151)](0x0,this[_0x331b15(0x14f)]['monthly']-_0x1bfad6[_0x331b15(0x118)])};}[a0_0x167936(0x114)](_0xfca345='daily'){const _0x15bb45=this['getUsage'](_0xfca345),_0x58d7d2=this['budgets'][_0xfca345];return _0x15bb45['cost']<=_0x58d7d2;}['getUsageTrends'](_0x36401f=0x1e){const _0x3ff1ae=a0_0x167936,_0x84684a={'dailyAverages':{'cost':0x0,'tokens':0x0,'requests':0x0},'topAgents':[],'topModels':[],'costByDay':[],'tokensByDay':[]},_0x157940=new Date();let _0x537e1c=0x0,_0x9c848f=0x0,_0x59e8f1=0x0;const _0x889db5=new Map(),_0x204878=new Map();for(let _0x4663eb=0x0;_0x4663eb<_0x36401f;_0x4663eb++){const _0x5d89a0=new Date(_0x157940);_0x5d89a0['setDate'](_0x5d89a0['getDate']()-_0x4663eb);const _0x2d2eca=this[_0x3ff1ae(0x110)](_0x5d89a0),_0x1bd3c5=this[_0x3ff1ae(0x145)][_0x3ff1ae(0x132)][_0x3ff1ae(0x142)](_0x2d2eca);_0x1bd3c5?(_0x537e1c+=_0x1bd3c5['cost'],_0x9c848f+=_0x1bd3c5[_0x3ff1ae(0x130)],_0x59e8f1+=_0x1bd3c5['requests'],_0x84684a['costByDay'][_0x3ff1ae(0x140)]({'date':_0x2d2eca,'cost':_0x1bd3c5['cost']}),_0x84684a[_0x3ff1ae(0x11a)]['unshift']({'date':_0x2d2eca,'tokens':_0x1bd3c5[_0x3ff1ae(0x130)]}),Object['entries'](_0x1bd3c5['byAgent']||{})[_0x3ff1ae(0x13a)](([_0xd9946c,_0x591ede])=>{const _0x3b60be=_0x3ff1ae;!_0x889db5[_0x3b60be(0x161)](_0xd9946c)&&_0x889db5['set'](_0xd9946c,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x3d8ee2=_0x889db5['get'](_0xd9946c);_0x3d8ee2['cost']+=_0x591ede[_0x3b60be(0x118)],_0x3d8ee2[_0x3b60be(0x130)]+=_0x591ede[_0x3b60be(0x130)],_0x3d8ee2['requests']+=_0x591ede[_0x3b60be(0x134)];}),Object['entries'](_0x1bd3c5['byModel']||{})['forEach'](([_0x2c67e2,_0x32ce0d])=>{const _0xf00126=_0x3ff1ae;!_0x204878[_0xf00126(0x161)](_0x2c67e2)&&_0x204878['set'](_0x2c67e2,{'cost':0x0,'tokens':0x0,'requests':0x0});const _0x4353d8=_0x204878['get'](_0x2c67e2);_0x4353d8['cost']+=_0x32ce0d['cost'],_0x4353d8['tokens']+=_0x32ce0d[_0xf00126(0x130)],_0x4353d8['requests']+=_0x32ce0d['requests'];})):(_0x84684a['costByDay'][_0x3ff1ae(0x140)]({'date':_0x2d2eca,'cost':0x0}),_0x84684a['tokensByDay'][_0x3ff1ae(0x140)]({'date':_0x2d2eca,'tokens':0x0}));}return _0x84684a[_0x3ff1ae(0x159)]['cost']=_0x537e1c/_0x36401f,_0x84684a['dailyAverages']['tokens']=_0x9c848f/_0x36401f,_0x84684a[_0x3ff1ae(0x159)]['requests']=_0x59e8f1/_0x36401f,_0x84684a[_0x3ff1ae(0x12f)]=Array['from'](_0x889db5[_0x3ff1ae(0x10a)]())[_0x3ff1ae(0x169)](([_0x39a2b5,_0x208b36])=>({'id':_0x39a2b5,..._0x208b36}))[_0x3ff1ae(0x12d)]((_0x4ba363,_0x52c74a)=>_0x52c74a[_0x3ff1ae(0x118)]-_0x4ba363[_0x3ff1ae(0x118)])['slice'](0x0,0xa),_0x84684a[_0x3ff1ae(0x124)]=Array[_0x3ff1ae(0x15f)](_0x204878['entries']())[_0x3ff1ae(0x169)](([_0x23794c,_0x2ee03e])=>({'id':_0x23794c,..._0x2ee03e}))[_0x3ff1ae(0x12d)]((_0x38a683,_0x155f6a)=>_0x155f6a[_0x3ff1ae(0x118)]-_0x38a683['cost'])[_0x3ff1ae(0x15c)](0x0,0xa),_0x84684a;}[a0_0x167936(0x10b)](_0x96331e='json',_0x1eab0b=null,_0x48d655=null){const _0x1abda9=a0_0x167936,_0x1d6f06={'budgets':this[_0x1abda9(0x14f)],'total':this[_0x1abda9(0x145)]['total'],'daily':{},'weekly':{},'monthly':{}},_0xb17006=(_0x35f91e,_0x2667ea)=>{const _0x298c36=_0x1abda9,_0x49837e={};return _0x35f91e[_0x298c36(0x13a)]((_0x525b16,_0x3e9a0f)=>{const _0x495082=_0x2667ea(_0x3e9a0f);(!_0x1eab0b||_0x495082>=_0x1eab0b)&&(!_0x48d655||_0x495082<=_0x48d655)&&(_0x49837e[_0x3e9a0f]=_0x525b16);}),_0x49837e;};_0x1eab0b||_0x48d655?(_0x1d6f06[_0x1abda9(0x132)]=_0xb17006(this[_0x1abda9(0x145)][_0x1abda9(0x132)],_0x2f6805=>new Date(_0x2f6805)),_0x1d6f06['weekly']=_0xb17006(this['usage']['weekly'],_0x596201=>new Date(_0x596201)),_0x1d6f06['monthly']=_0xb17006(this[_0x1abda9(0x145)]['monthly'],_0x420e69=>new Date(_0x420e69+_0x1abda9(0x146)))):(this[_0x1abda9(0x145)]['daily']['forEach']((_0x229476,_0x224562)=>_0x1d6f06['daily'][_0x224562]=_0x229476),this[_0x1abda9(0x145)][_0x1abda9(0x14c)][_0x1abda9(0x13a)]((_0x59819c,_0x23929d)=>_0x1d6f06[_0x1abda9(0x14c)][_0x23929d]=_0x59819c),this['usage']['monthly'][_0x1abda9(0x13a)]((_0x33ae32,_0x5aeb70)=>_0x1d6f06[_0x1abda9(0x112)][_0x5aeb70]=_0x33ae32));if(_0x96331e===_0x1abda9(0x119))return this[_0x1abda9(0x12c)](_0x1d6f06);return JSON['stringify'](_0x1d6f06,null,0x2);}[a0_0x167936(0x13c)](_0x206e3c,_0x3fdf4d){const _0x210ec8=a0_0x167936;!_0x206e3c[_0x210ec8(0x161)](_0x3fdf4d)&&_0x206e3c['set'](_0x3fdf4d,this['createEmptyUsage']());}[a0_0x167936(0x166)](){return{'cost':0x0,'tokens':0x0,'requests':0x0,'byAgent':{},'byModel':{}};}['updateUsageEntry'](_0x35b9bd,_0x4b6c78){const _0x94ed95=a0_0x167936;_0x35b9bd['cost']+=_0x4b6c78[_0x94ed95(0x118)],_0x35b9bd['tokens']+=_0x4b6c78[_0x94ed95(0x130)],_0x35b9bd['requests']+=0x1,!_0x35b9bd[_0x94ed95(0x14b)][_0x4b6c78[_0x94ed95(0x165)]]&&(_0x35b9bd['byAgent'][_0x4b6c78['agentId']]=this['createEmptyUsage']()),_0x35b9bd['byAgent'][_0x4b6c78[_0x94ed95(0x165)]][_0x94ed95(0x118)]+=_0x4b6c78['cost'],_0x35b9bd['byAgent'][_0x4b6c78[_0x94ed95(0x165)]][_0x94ed95(0x130)]+=_0x4b6c78[_0x94ed95(0x130)],_0x35b9bd['byAgent'][_0x4b6c78[_0x94ed95(0x165)]]['requests']+=0x1,!_0x35b9bd['byModel'][_0x4b6c78[_0x94ed95(0x138)]]&&(_0x35b9bd[_0x94ed95(0x156)][_0x4b6c78[_0x94ed95(0x138)]]=this[_0x94ed95(0x166)]()),_0x35b9bd[_0x94ed95(0x156)][_0x4b6c78['modelId']]['cost']+=_0x4b6c78[_0x94ed95(0x118)],_0x35b9bd['byModel'][_0x4b6c78['modelId']]['tokens']+=_0x4b6c78['tokens'],_0x35b9bd['byModel'][_0x4b6c78['modelId']]['requests']+=0x1;}['checkBudgetLimits'](_0x32e062,_0x5a2fce,_0x5556e9){const _0x56ec34=a0_0x167936,_0x3a8e1a=this[_0x56ec34(0x145)]['daily']['get'](_0x32e062),_0x2daa24=this[_0x56ec34(0x145)][_0x56ec34(0x14c)][_0x56ec34(0x142)](_0x5a2fce),_0x6785e1=this['usage']['monthly'][_0x56ec34(0x142)](_0x5556e9);_0x3a8e1a[_0x56ec34(0x118)]>this['budgets']['daily']&&this['sendBudgetAlert'](_0x56ec34(0x132),_0x3a8e1a['cost'],this[_0x56ec34(0x14f)][_0x56ec34(0x132)]),_0x2daa24[_0x56ec34(0x118)]>this[_0x56ec34(0x14f)][_0x56ec34(0x14c)]&&this['sendBudgetAlert']('weekly',_0x2daa24[_0x56ec34(0x118)],this[_0x56ec34(0x14f)]['weekly']),_0x6785e1['cost']>this[_0x56ec34(0x14f)]['monthly']&&this[_0x56ec34(0x12e)](_0x56ec34(0x112),_0x6785e1['cost'],this['budgets'][_0x56ec34(0x112)]),this[_0x56ec34(0x13d)](_0x3a8e1a,_0x2daa24,_0x6785e1);}['checkThresholdAlerts'](_0x2eacbb,_0x52ee3b,_0x1b1416){const _0x8c0967=a0_0x167936,_0x13abaa=this['alerts'][_0x8c0967(0x150)];this[_0x8c0967(0x15e)](_0x8c0967(0x132),_0x2eacbb[_0x8c0967(0x118)],this['budgets']['daily'],_0x13abaa),this['checkThreshold'](_0x8c0967(0x14c),_0x52ee3b[_0x8c0967(0x118)],this['budgets'][_0x8c0967(0x14c)],_0x13abaa),this['checkThreshold']('monthly',_0x1b1416['cost'],this['budgets'][_0x8c0967(0x112)],_0x13abaa);}['checkThreshold'](_0x5004a3,_0x57be5,_0x40bdbe,_0x523658){const _0x36cc98=a0_0x167936,_0x48bcf7=_0x57be5/_0x40bdbe*0x64;for(const _0x37dc92 of _0x523658){if(_0x48bcf7>=_0x37dc92){const _0x380abb=_0x5004a3+'_'+_0x37dc92,_0x60d6cd=this[_0x36cc98(0x15a)][_0x36cc98(0x116)]['get'](_0x380abb),_0x188fe9=Date[_0x36cc98(0x152)]();(!_0x60d6cd||_0x188fe9-_0x60d6cd>0x36ee80)&&(this[_0x36cc98(0x121)](_0x5004a3,_0x48bcf7,_0x37dc92,_0x57be5,_0x40bdbe),this['alerts']['lastAlertTimes'][_0x36cc98(0x144)](_0x380abb,_0x188fe9));break;}}}[a0_0x167936(0x12e)](_0x2bf5b4,_0x2c7a0d,_0x4bf88a){const _0x2071d6=a0_0x167936;this['logger']['warn'](_0x2071d6(0x11b),{'period':_0x2bf5b4,'currentUsage':_0x2c7a0d,'budgetLimit':_0x4bf88a,'excess':_0x2c7a0d-_0x4bf88a}),typeof process!=='undefined'&&process[_0x2071d6(0x162)]&&process[_0x2071d6(0x162)](_0x2071d6(0x10c),{'type':'budget_exceeded','period':_0x2bf5b4,'currentUsage':_0x2c7a0d,'budgetLimit':_0x4bf88a,'excess':_0x2c7a0d-_0x4bf88a});}[a0_0x167936(0x121)](_0x4c7685,_0x19b34f,_0x115194,_0x1092ce,_0x20aba8){const _0x526d06=a0_0x167936;this[_0x526d06(0x155)]['warn']('Budget\x20threshold\x20reached',{'period':_0x4c7685,'percentage':Math['round'](_0x19b34f),'threshold':_0x115194,'usage':_0x1092ce,'budget':_0x20aba8}),typeof process!=='undefined'&&process[_0x526d06(0x162)]&&process[_0x526d06(0x162)](_0x526d06(0x10c),{'type':_0x526d06(0x13f),'period':_0x4c7685,'percentage':Math[_0x526d06(0x167)](_0x19b34f),'threshold':_0x115194,'usage':_0x1092ce,'budget':_0x20aba8});}[a0_0x167936(0x110)](_0x5205c3){const _0x410659=a0_0x167936;return _0x5205c3['toISOString']()[_0x410659(0x15d)]('T')[0x0];}['getWeekKey'](_0x446dce){const _0x5cc177=a0_0x167936,_0x33fde0=_0x446dce['getFullYear'](),_0x480403=this['getWeekNumber'](_0x446dce);return _0x33fde0+'-W'+_0x480403[_0x5cc177(0x153)]()['padStart'](0x2,'0');}[a0_0x167936(0x11f)](_0x374008){const _0x1e7878=a0_0x167936,_0x23d453=_0x374008['getFullYear'](),_0x11d734=_0x374008['getMonth']()+0x1;return _0x23d453+'-'+_0x11d734[_0x1e7878(0x153)]()[_0x1e7878(0x154)](0x2,'0');}[a0_0x167936(0x13e)](_0x5cda69){const _0x284e6f=new Date(_0x5cda69['getFullYear'](),0x0,0x1),_0x412845=(_0x5cda69-_0x284e6f)/0x5265c00;return Math['ceil']((_0x412845+_0x284e6f['getDay']()+0x1)/0x7);}[a0_0x167936(0x12c)](_0x4df4f){const _0x1b083a=a0_0x167936,_0x31d96b=[];return _0x31d96b['push']([_0x1b083a(0x16a),_0x1b083a(0x10e),_0x1b083a(0x147),'Tokens',_0x1b083a(0x12b),'Agent',_0x1b083a(0x13b)]),Object['entries'](_0x4df4f['daily'])[_0x1b083a(0x13a)](([_0x50f39c,_0x1ba0ce])=>{const _0x4d2c7a=_0x1b083a;_0x31d96b[_0x4d2c7a(0x139)]([_0x4d2c7a(0x109),_0x50f39c,_0x1ba0ce['cost'],_0x1ba0ce[_0x4d2c7a(0x130)],_0x1ba0ce[_0x4d2c7a(0x134)],'','']),Object[_0x4d2c7a(0x10a)](_0x1ba0ce[_0x4d2c7a(0x14b)]||{})[_0x4d2c7a(0x13a)](([_0xe86e12,_0x3f7bfa])=>{const _0x530c2a=_0x4d2c7a;_0x31d96b['push']([_0x530c2a(0x109),_0x50f39c,_0x3f7bfa[_0x530c2a(0x118)],_0x3f7bfa[_0x530c2a(0x130)],_0x3f7bfa[_0x530c2a(0x134)],_0xe86e12,'']);});}),_0x31d96b[_0x1b083a(0x169)](_0x173610=>_0x173610[_0x1b083a(0x164)](','))['join']('\x0a');}[a0_0x167936(0x160)](){const _0x1f7458=a0_0x167936;try{this[_0x1f7458(0x155)][_0x1f7458(0x127)](_0x1f7458(0x10d));}catch(_0x1a02bc){this[_0x1f7458(0x155)][_0x1f7458(0x148)]('Failed\x20to\x20load\x20usage\x20data',{'error':_0x1a02bc['message']});}}[a0_0x167936(0x136)](){const _0x14c917=a0_0x167936;try{this[_0x14c917(0x155)][_0x14c917(0x14e)]('Usage\x20data\x20saved');}catch(_0x4f97c8){this[_0x14c917(0x155)][_0x14c917(0x148)](_0x14c917(0x129),{'error':_0x4f97c8['message']});}}[a0_0x167936(0x143)](){setInterval(()=>{this['saveUsageData']();},0x493e0);}}function a0_0x5725(){const _0xfba01=['Bg9Nz2vY','yNLnB2rLBa','B3v0Chv0','vxnHz2uGDhjHy2TLza','zgfPBhLbDMvYywDLCW','ywXLCNrZ','D2fYBG','C2XPy2u','C3bSAxq','y2HLy2TuAhjLC2HVBgq','zNjVBq','Bg9HzfvZywDLrgf0yq','AgfZ','zw1PDa','z2v0v2vLA0TLEq','AM9PBG','ywDLBNrjza','y3jLyxrLrw1WDhLvC2fNzq','CM91BMq','y29UzMLN','BwfW','ugvYAw9K','Dg90ywW','rgfPBhK','zw50CMLLCW','zxHWB3j0vxnHz2veyxrH','yNvKz2v0qwXLCNq','qNvKz2v0ihnLCNzPy2uGAw5PDgLHBgL6zwq','rgf0zq','ChjVBxb0x3rVA2vUCW','z2v0rgf5s2v5','ntu4otm2A0DIC1ry','Bw9UDgHSEq','refjtfK','AxnxAxrOAw5cDwrNzxq','mtG5mJG2uePdCwLO','BgfZDefSzxj0vgLTzxm','mJqWnM91zhHeBq','y29ZDa','y3n2','Dg9Rzw5ZqNLeyxK','qNvKz2v0igXPBwL0igv4y2vLzgvK','mZvKuuHMDvG','odiZmhrcEgj2yG','z2v0vxnHz2u','z2v0tw9UDgHlzxK','C2v0qNvKz2v0CW','C2vUzfrOCMvZAg9SzefSzxj0','DhjHy2TvC2fNzq','sw52ywXPzcbWzxjPB2q6ia','Dg9Wtw9KzwXZ','mZK0mtC1mNbRwNjiEa','rMfPBgvKihrVihrYywnRihvZywDL','Aw5MBW','mZq3ntHsB29XALG','rMfPBgvKihrVihnHDMuGDxnHz2uGzgf0yq','odCXmhjuqwfhrG','uMvXDwvZDhm','y29UDMvYDfrVq1nw','C29YDa','C2vUzej1zgDLDefSzxj0','Dg9WqwDLBNrZ','Dg9Rzw5Z','tu9oveHmwq','zgfPBhK','ndaZotyWEKXTA2DJ','CMvXDwvZDhm','mJi4oti4mKnnzMT3wq','C2f2zvvZywDLrgf0yq','z2v0tw9KzwXvC2fNzq','Bw9KzwXjza','ChvZAa','zM9YrwfJAa','tw9KzwW','Aw5PDgLHBgL6zvvZywDLrw50CNK','y2HLy2TuAhjLC2HVBgrbBgvYDhm','z2v0v2vLA051BwjLCG','DgHYzxnOB2XKx3jLywnOzwq','Dw5ZAgLMDa','Dg90ywXFDg9Rzw5Z','z2v0','C2v0DxbqzxjPB2rPy1nHDMu','C2v0','DxnHz2u','ltaX','q29ZDa','zxjYB3i','veHsrvnit0XeuW','y2fSy3vSyxrLq29ZDa','yNLbz2vUDa','D2vLA2X5','vw5RBM93BIbTB2rLBcbMB3iGy29ZDcbJywXJDwXHDgLVBG','zgvIDwC','yNvKz2v0CW','DgHYzxnOB2XKCW','Bwf4','BM93','Dg9tDhjPBMC','CgfKu3rHCNq'];a0_0x5725=function(){return _0xfba01;};return a0_0x5725();}export default BudgetService;
@@ -1 +1 @@
1
- const a0_0x6e198c=a0_0x486c;(function(_0x6f8150,_0x22d21f){const _0x1281f4=a0_0x486c,_0xfa8539=_0x6f8150();while(!![]){try{const _0x1fd309=-parseInt(_0x1281f4(0xb2))/0x1+-parseInt(_0x1281f4(0xb6))/0x2+parseInt(_0x1281f4(0xca))/0x3+parseInt(_0x1281f4(0xc0))/0x4+parseInt(_0x1281f4(0xc5))/0x5+-parseInt(_0x1281f4(0xc6))/0x6+parseInt(_0x1281f4(0xb8))/0x7;if(_0x1fd309===_0x22d21f)break;else _0xfa8539['push'](_0xfa8539['shift']());}catch(_0x46020c){_0xfa8539['push'](_0xfa8539['shift']());}}}(a0_0x2b9d,0xa1379));import a0_0x146b3a from'./fileAttachmentService.js';class ContextInjectionService{constructor(_0xe4446f={},_0x540c30=null){const _0x48a94c=a0_0x486c;this[_0x48a94c(0xa6)]=_0xe4446f,this['logger']=_0x540c30,this['attachmentService']=new a0_0x146b3a(_0xe4446f,_0x540c30);}async[a0_0x6e198c(0xbf)](){const _0x3e0c45=a0_0x6e198c;await this[_0x3e0c45(0xc2)]['initialize']();}async['buildDynamicContext'](_0x4f76ce){const _0x2b8dea=a0_0x6e198c;try{const _0x434ee1=await this['attachmentService'][_0x2b8dea(0xb5)](_0x4f76ce);if(_0x434ee1[_0x2b8dea(0xcc)]===0x0)return'';const _0x543437=_0x434ee1[_0x2b8dea(0xa4)](_0x14d7d6=>_0x14d7d6['mode']===_0x2b8dea(0xc8)),_0x219563=_0x434ee1['filter'](_0x102cbe=>_0x102cbe['mode']===_0x2b8dea(0xaf));let _0x59f095='';if(_0x543437['length']>0x0){_0x59f095+='\x0a<attached-files>\x0a';for(const _0x32993d of _0x543437){const _0x5b5891=await this[_0x2b8dea(0xc2)]['getAttachmentContent'](_0x32993d['fileId']);if(_0x5b5891){const _0x13d749=this['formatContentFile'](_0x32993d,_0x5b5891);_0x59f095+=_0x13d749+'\x0a';}}_0x59f095+=_0x2b8dea(0x9d);}if(_0x219563['length']>0x0){_0x59f095+=_0x2b8dea(0xb0);for(const _0x278fd4 of _0x219563){const _0x3b0f54=this[_0x2b8dea(0xbd)](_0x278fd4);_0x59f095+=_0x3b0f54+'\x0a';}_0x59f095+=_0x2b8dea(0xb7),_0x59f095+=_0x2b8dea(0xcd);}return _0x59f095;}catch(_0x2b9d6d){return this['logger']?.[_0x2b8dea(0xb1)]('Error\x20building\x20dynamic\x20context',{'agentId':_0x4f76ce,'error':_0x2b9d6d[_0x2b8dea(0x9e)]}),'';}}['formatContentFile'](_0x5decab,_0x17992b){const _0x9803f2=a0_0x6e198c,{fileName:_0x2de0a5,fileType:_0x14c507,size:_0x2b2b28,contentType:_0x477e34}=_0x5decab,_0xe5d0e3=(_0x2b2b28/0x400)['toFixed'](0x2);if(_0x477e34===_0x9803f2(0xaa))return this[_0x9803f2(0xa1)](_0x5decab,_0x17992b);else{if(_0x477e34===_0x9803f2(0xa2))return this['formatImageFile'](_0x5decab,_0x17992b);else{if(_0x477e34==='pdf')return this[_0x9803f2(0xba)](_0x5decab,_0x17992b);}}return'\x20\x20<file\x20name=\x22'+this[_0x9803f2(0xc4)](_0x2de0a5)+'\x22\x20type=\x22'+_0x14c507+'\x22\x20size=\x22'+_0xe5d0e3+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x17992b)+_0x9803f2(0xa3);}['formatTextFile'](_0x2ba00f,_0x238fca){const _0x4b1684=a0_0x6e198c,{fileName:_0xf890d,fileType:_0x445acc,size:_0x595331}=_0x2ba00f,_0x5c25a9=(_0x595331/0x400)[_0x4b1684(0x9f)](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x4b1684(0xc4)](_0xf890d)+'\x22\x20type=\x22'+_0x445acc+'\x22\x20size=\x22'+_0x5c25a9+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x4b1684(0xc4)](_0x238fca)+'\x0a\x20\x20</file>';}[a0_0x6e198c(0xc3)](_0x2428e7,_0x2d62e5){const _0x369924=a0_0x6e198c,{fileName:_0x18c164,fileType:_0x431e58,size:_0x4934a0}=_0x2428e7,_0x14205e=(_0x4934a0/0x400)['toFixed'](0x2);return _0x369924(0xc7)+this['escapeXml'](_0x18c164)+'\x22\x20type=\x22'+_0x431e58+_0x369924(0xae)+_0x14205e+_0x369924(0xb4)+_0x2d62e5+_0x369924(0xa3);}['formatPdfFile'](_0x2a1138,_0x5880fb){const _0x17e52d=a0_0x6e198c,{fileName:_0x480f64,fileType:_0x584ce4,size:_0x1016ac}=_0x2a1138,_0x16e34d=(_0x1016ac/0x400)[_0x17e52d(0x9f)](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x480f64)+'\x22\x20type=\x22'+_0x584ce4+_0x17e52d(0xae)+_0x16e34d+_0x17e52d(0xb4)+this[_0x17e52d(0xc4)](_0x5880fb)+'\x0a\x20\x20</file>';}[a0_0x6e198c(0xbd)](_0x353835){const _0x4ab581=a0_0x6e198c,{fileName:_0x1425bb,originalPath:_0x332419,size:_0x51ce4b,fileType:_0x36abec,lastModified:_0x1a84e6}=_0x353835,_0x109c85=this['formatBytes'](_0x51ce4b),_0x4f365a=new Date(_0x1a84e6)[_0x4ab581(0xac)]()['split']('T')[0x0];return'\x20\x20<file\x20name=\x22'+this[_0x4ab581(0xc4)](_0x1425bb)+'\x22\x20path=\x22'+this[_0x4ab581(0xc4)](_0x332419)+_0x4ab581(0xae)+_0x109c85+_0x4ab581(0xbb)+_0x36abec+'\x22\x20modified=\x22'+_0x4f365a+_0x4ab581(0xa5);}[a0_0x6e198c(0xc4)](_0x2f8933){const _0x507161=a0_0x6e198c;if(!_0x2f8933)return'';return _0x2f8933[_0x507161(0xad)](/&/g,_0x507161(0xa0))[_0x507161(0xad)](/</g,_0x507161(0xcb))['replace'](/>/g,'&gt;')[_0x507161(0xad)](/"/g,'&quot;')['replace'](/'/g,_0x507161(0xbe));}['formatBytes'](_0x147022){const _0x31a859=a0_0x6e198c;if(_0x147022===0x0)return'0\x20Bytes';const _0x5c63aa=0x400,_0x3587ac=['Bytes','KB','MB','GB'],_0x352b2f=Math['floor'](Math['log'](_0x147022)/Math['log'](_0x5c63aa));return parseFloat((_0x147022/Math[_0x31a859(0xbc)](_0x5c63aa,_0x352b2f))[_0x31a859(0x9f)](0x2))+_0x3587ac[_0x352b2f];}async[a0_0x6e198c(0xa7)](_0x28ab94){const _0x2c40e0=a0_0x6e198c;try{const _0x3172bb=await this[_0x2c40e0(0xc2)]['getActiveAttachments'](_0x28ab94);let _0x330a8a=0x0;for(const _0x2bdcc2 of _0x3172bb){_0x2bdcc2[_0x2c40e0(0xab)]==='content'?_0x330a8a+=_0x2bdcc2['tokenEstimate']||0x0:_0x330a8a+=0x14;}return _0x330a8a;}catch(_0x564174){return this['logger']?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x28ab94,'error':_0x564174[_0x2c40e0(0x9e)]}),0x0;}}async[a0_0x6e198c(0xb9)](_0x5cbced){const _0x3fa2a6=a0_0x6e198c;try{const _0x3d24fc=await this[_0x3fa2a6(0xc2)]['getActiveAttachments'](_0x5cbced),_0x52f70b={'totalActive':_0x3d24fc[_0x3fa2a6(0xcc)],'contentMode':_0x3d24fc[_0x3fa2a6(0xa4)](_0x28a3ed=>_0x28a3ed['mode']==='content')['length'],'referenceMode':_0x3d24fc[_0x3fa2a6(0xa4)](_0x539725=>_0x539725['mode']===_0x3fa2a6(0xaf))['length'],'estimatedTokens':0x0,'files':[]};for(const _0x57c485 of _0x3d24fc){_0x52f70b[_0x3fa2a6(0x9c)]+=_0x57c485['tokenEstimate']||0x0,_0x52f70b[_0x3fa2a6(0xa8)]['push']({'fileName':_0x57c485[_0x3fa2a6(0xc9)],'mode':_0x57c485['mode'],'size':this[_0x3fa2a6(0xa9)](_0x57c485['size']),'tokens':_0x57c485['tokenEstimate']||0x0});}return _0x52f70b;}catch(_0x5c8c2a){return this[_0x3fa2a6(0xb3)]?.[_0x3fa2a6(0xb1)](_0x3fa2a6(0xc1),{'agentId':_0x5cbced,'error':_0x5c8c2a['message']}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;function a0_0x486c(_0x2f539e,_0x2a6c97){_0x2f539e=_0x2f539e-0x9c;const _0x2b9de8=a0_0x2b9d();let _0x486c81=_0x2b9de8[_0x2f539e];if(a0_0x486c['svUmlp']===undefined){var _0x3e7f53=function(_0x584751){const _0x48b4f8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x146b3a='',_0xe4446f='';for(let _0x540c30=0x0,_0x4f76ce,_0x434ee1,_0x543437=0x0;_0x434ee1=_0x584751['charAt'](_0x543437++);~_0x434ee1&&(_0x4f76ce=_0x540c30%0x4?_0x4f76ce*0x40+_0x434ee1:_0x434ee1,_0x540c30++%0x4)?_0x146b3a+=String['fromCharCode'](0xff&_0x4f76ce>>(-0x2*_0x540c30&0x6)):0x0){_0x434ee1=_0x48b4f8['indexOf'](_0x434ee1);}for(let _0x219563=0x0,_0x59f095=_0x146b3a['length'];_0x219563<_0x59f095;_0x219563++){_0xe4446f+='%'+('00'+_0x146b3a['charCodeAt'](_0x219563)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xe4446f);};a0_0x486c['FpPuKT']=_0x3e7f53,a0_0x486c['gNhsLE']={},a0_0x486c['svUmlp']=!![];}const _0x3dae55=_0x2b9de8[0x0],_0x37b68e=_0x2f539e+_0x3dae55,_0x2d45a1=a0_0x486c['gNhsLE'][_0x37b68e];return!_0x2d45a1?(_0x486c81=a0_0x486c['FpPuKT'](_0x486c81),a0_0x486c['gNhsLE'][_0x37b68e]=_0x486c81):_0x486c81=_0x2d45a1,_0x486c81;}function a0_0x2b9d(){const _0x144040=['mJu1ntG5mgHOr2Hurq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','mta4nty5m25ysNHLuW','z2v0qxr0ywnOBwvUDfn1Bw1HCNK','zM9YBwf0ugrMrMLSzq','iIb0ExbLpsi','Cg93','zM9YBwf0uMvMzxjLBMnLrMLSzq','jMfWB3m7','Aw5PDgLHBgL6zq','ndC3oda1nKHcsuzIBq','rxjYB3iGz2v0DgLUzYbHDhrHy2HTzw50ihn1Bw1HCNK','yxr0ywnOBwvUDfnLCNzPy2u','zM9YBwf0sw1Hz2vgAwXL','zxnJyxbLwg1S','ntq1odq2mhvUt3DLEG','mZq2otq0mefUD1zYrW','ica8zMLSzsbUyw1Lpsi','y29UDgvUDa','zMLSzu5HBwu','oteXnty1DM53ENvf','jMX0oW','BgvUz3rO','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','zxn0Aw1HDgvKvg9Rzw5Z','pc9HDhrHy2HLzc1MAwXLCZ4k','BwvZC2fNzq','Dg9gAxHLza','jMfTCdS','zM9YBwf0vgv4DezPBgu','Aw1Hz2u','cIaGpc9MAwXLpG','zMLSDgvY','iIaVpG','y29UzMLN','zxn0Aw1HDgvuB3rHBfrVA2vUCW','zMLSzxm','zM9YBwf0qNL0zxm','Dgv4Da','Bw9Kzq','Dg9ju09tDhjPBMC','CMvWBgfJzq','iIbZAxPLpsi','CMvMzxjLBMnL','cJXMAwXLlxjLzMvYzw5Jzxm+cG','zxjYB3i','mJi4nJmWsLzJyKTk','Bg9Nz2vY','s0iIig1Vzgu9iMnVBNrLBNqIpGO','z2v0qwn0AxzLqxr0ywnOBwvUDhm'];a0_0x2b9d=function(){return _0x144040;};return a0_0x2b9d();}
1
+ const a0_0xdc88c5=a0_0x3027;(function(_0x44cdad,_0x2e7e39){const _0x35f7ca=a0_0x3027,_0x43c3bb=_0x44cdad();while(!![]){try{const _0x2397f3=-parseInt(_0x35f7ca(0x1dc))/0x1*(-parseInt(_0x35f7ca(0x207))/0x2)+parseInt(_0x35f7ca(0x203))/0x3*(parseInt(_0x35f7ca(0x1db))/0x4)+-parseInt(_0x35f7ca(0x1fe))/0x5*(-parseInt(_0x35f7ca(0x1e6))/0x6)+parseInt(_0x35f7ca(0x206))/0x7+parseInt(_0x35f7ca(0x1f3))/0x8+parseInt(_0x35f7ca(0x1e1))/0x9*(-parseInt(_0x35f7ca(0x205))/0xa)+-parseInt(_0x35f7ca(0x1dd))/0xb*(parseInt(_0x35f7ca(0x1f1))/0xc);if(_0x2397f3===_0x2e7e39)break;else _0x43c3bb['push'](_0x43c3bb['shift']());}catch(_0x2bf563){_0x43c3bb['push'](_0x43c3bb['shift']());}}}(a0_0x1e13,0xc5253));function a0_0x1e13(){const _0x174ed8=['Aw5PDgLHBgL6zq','jMfTCdS','mteWndu0vg1RBNDV','jNf1B3q7','yNvPBgreEw5HBwLJq29UDgv4Da','zxjYB3i','Dg9gAxHLza','jMX0oW','cJXMAwXLlxjLzMvYzw5Jzxm+cG','iIaVpG','z2v0qwn0AxzLqxr0ywnOBwvUDhm','Bg9Nz2vY','BwvZC2fNzq','nJqYmJuYodrbD3HkCNa','ica8zMLSzsbUyw1Lpsi','otmZntmXmMHksMjjza','Dg9Rzw5fC3rPBwf0zq','Bw9Kzq','pc9MAwXLlxjLzMvYzw5Jzxm+cG','zM9YBwf0qNL0zxm','Cg93','cIaGpc9MAwXLpG','CMvWBgfJzq','zMLSDgvY','yxr0ywnOBwvUDfnLCNzPy2u','zM9YBwf0q29UDgvUDezPBgu','ndm1CwHiq1HT','iIbZAxPLpsi','CMvMzxjLBMnL','Bg9N','rxjYB3iGyNvPBgrPBMCGzhLUyw1PyYbJB250zxH0','ow9mrejWvG','cK5VDgu6ifjLzMvYzw5JzwqGzMLSzxmGy2fUigjLigfJy2vZC2vKihvZAw5NihrOzsbMAwXLC3LZDgvTihrVB2WGAwyGBMvLzgvKlGO','nJaYmJGWvennBLjq','nZK4nJa1nxrfugvpqW','nteZmdKWuhrNvKL3','Dgv4Da','CgrM','z2v0qxr0ywnOBwvUDfn1Bw1HCNK','BgvUz3rO','zM9YBwf0sw1Hz2vgAwXL','zMLSzu5HBwu','mteWodu4ne9Zr2DPqq','nKHtu0HrsW','mtfyzvDZCMO','Aw1Hz2u','zM9YBwf0vgv4DezPBgu','zxnJyxbLwg1S','mtHKC3LpAw4','iIbWyxrOpsi','iIb0ExbLpsi'];a0_0x1e13=function(){return _0x174ed8;};return a0_0x1e13();}import a0_0xd9c09a from'./fileAttachmentService.js';function a0_0x3027(_0x4f30ac,_0x27f0b0){_0x4f30ac=_0x4f30ac-0x1d7;const _0x1e1329=a0_0x1e13();let _0x3027a1=_0x1e1329[_0x4f30ac];if(a0_0x3027['ZDLHzT']===undefined){var _0x123dda=function(_0x3017aa){const _0x331066='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xd9c09a='',_0x35daf4='';for(let _0x3275fd=0x0,_0x19b8e1,_0xd69f49,_0x208152=0x0;_0xd69f49=_0x3017aa['charAt'](_0x208152++);~_0xd69f49&&(_0x19b8e1=_0x3275fd%0x4?_0x19b8e1*0x40+_0xd69f49:_0xd69f49,_0x3275fd++%0x4)?_0xd9c09a+=String['fromCharCode'](0xff&_0x19b8e1>>(-0x2*_0x3275fd&0x6)):0x0){_0xd69f49=_0x331066['indexOf'](_0xd69f49);}for(let _0x515527=0x0,_0x172dc3=_0xd9c09a['length'];_0x515527<_0x172dc3;_0x515527++){_0x35daf4+='%'+('00'+_0xd9c09a['charCodeAt'](_0x515527)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x35daf4);};a0_0x3027['svjGIg']=_0x123dda,a0_0x3027['QDeoBE']={},a0_0x3027['ZDLHzT']=!![];}const _0x56d3a3=_0x1e1329[0x0],_0x2289d6=_0x4f30ac+_0x56d3a3,_0x2c271c=a0_0x3027['QDeoBE'][_0x2289d6];return!_0x2c271c?(_0x3027a1=a0_0x3027['svjGIg'](_0x3027a1),a0_0x3027['QDeoBE'][_0x2289d6]=_0x3027a1):_0x3027a1=_0x2c271c,_0x3027a1;}class ContextInjectionService{constructor(_0x35daf4={},_0x3275fd=null){const _0x43879c=a0_0x3027;this['config']=_0x35daf4,this['logger']=_0x3275fd,this[_0x43879c(0x1fc)]=new a0_0xd9c09a(_0x35daf4,_0x3275fd);}async['initialize'](){const _0x5a53f6=a0_0x3027;await this[_0x5a53f6(0x1fc)][_0x5a53f6(0x1e4)]();}async[a0_0xdc88c5(0x1e8)](_0x19b8e1){const _0x48d219=a0_0xdc88c5;try{const _0xd69f49=await this['attachmentService']['getActiveAttachments'](_0x19b8e1);if(_0xd69f49[_0x48d219(0x1d8)]===0x0)return'';const _0x208152=_0xd69f49[_0x48d219(0x1fb)](_0x4af04f=>_0x4af04f['mode']==='content'),_0x515527=_0xd69f49[_0x48d219(0x1fb)](_0x566fea=>_0x566fea['mode']===_0x48d219(0x200));let _0x172dc3='';if(_0x208152[_0x48d219(0x1d8)]>0x0){_0x172dc3+='\x0a<attached-files>\x0a';for(const _0xc2a188 of _0x208152){const _0x44a83e=await this[_0x48d219(0x1fc)]['getAttachmentContent'](_0xc2a188['fileId']);if(_0x44a83e){const _0x27466a=this['formatContentFile'](_0xc2a188,_0x44a83e);_0x172dc3+=_0x27466a+'\x0a';}}_0x172dc3+='</attached-files>\x0a';}if(_0x515527['length']>0x0){_0x172dc3+=_0x48d219(0x1ec);for(const _0x2bb297 of _0x515527){const _0x3f13d5=this['formatReferenceFile'](_0x2bb297);_0x172dc3+=_0x3f13d5+'\x0a';}_0x172dc3+=_0x48d219(0x1f6),_0x172dc3+=_0x48d219(0x204);}return _0x172dc3;}catch(_0x291cce){return this['logger']?.[_0x48d219(0x1e9)](_0x48d219(0x202),{'agentId':_0x19b8e1,'error':_0x291cce['message']}),'';}}[a0_0xdc88c5(0x1fd)](_0x36c69c,_0x60d65){const _0x2dc4ac=a0_0xdc88c5,{fileName:_0x185dca,fileType:_0x2fabf3,size:_0x58ea76,contentType:_0x7d87af}=_0x36c69c,_0x47eb9c=(_0x58ea76/0x400)['toFixed'](0x2);if(_0x7d87af===_0x2dc4ac(0x208))return this[_0x2dc4ac(0x1df)](_0x36c69c,_0x60d65);else{if(_0x7d87af===_0x2dc4ac(0x1de))return this[_0x2dc4ac(0x1d9)](_0x36c69c,_0x60d65);else{if(_0x7d87af===_0x2dc4ac(0x209))return this['formatPdfFile'](_0x36c69c,_0x60d65);}}return _0x2dc4ac(0x1f2)+this[_0x2dc4ac(0x1e0)](_0x185dca)+_0x2dc4ac(0x1e3)+_0x2fabf3+_0x2dc4ac(0x1ff)+_0x47eb9c+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x60d65)+'\x0a\x20\x20</file>';}[a0_0xdc88c5(0x1df)](_0x5800a3,_0x594ca8){const _0x45278b=a0_0xdc88c5,{fileName:_0x3c5fb9,fileType:_0x2135c1,size:_0xb69d53}=_0x5800a3,_0x5b45fc=(_0xb69d53/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this[_0x45278b(0x1e0)](_0x3c5fb9)+'\x22\x20type=\x22'+_0x2135c1+_0x45278b(0x1ff)+_0x5b45fc+'KB\x22\x20mode=\x22content\x22>\x0a'+this[_0x45278b(0x1e0)](_0x594ca8)+'\x0a\x20\x20</file>';}[a0_0xdc88c5(0x1d9)](_0x26f8a7,_0x59f0ec){const _0x150dfd=a0_0xdc88c5,{fileName:_0x269857,fileType:_0x19b9eb,size:_0x1af07e}=_0x26f8a7,_0x24accf=(_0x1af07e/0x400)['toFixed'](0x2);return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x269857)+_0x150dfd(0x1e3)+_0x19b9eb+_0x150dfd(0x1ff)+_0x24accf+'KB\x22\x20mode=\x22content\x22>\x0a'+_0x59f0ec+_0x150dfd(0x1f9);}['formatPdfFile'](_0xc2111b,_0x791326){const _0x168116=a0_0xdc88c5,{fileName:_0x432d71,fileType:_0x792bde,size:_0x589f69}=_0xc2111b,_0x33fe19=(_0x589f69/0x400)[_0x168116(0x1ea)](0x2);return _0x168116(0x1f2)+this['escapeXml'](_0x432d71)+'\x22\x20type=\x22'+_0x792bde+'\x22\x20size=\x22'+_0x33fe19+'KB\x22\x20mode=\x22content\x22>\x0a'+this['escapeXml'](_0x791326)+'\x0a\x20\x20</file>';}['formatReferenceFile'](_0x4a19dd){const _0x6bacc6=a0_0xdc88c5,{fileName:_0x20f5bd,originalPath:_0x2645e0,size:_0x1b3116,fileType:_0x493aab,lastModified:_0x2bba1b}=_0x4a19dd,_0x3a52fe=this[_0x6bacc6(0x1f7)](_0x1b3116),_0x329c8b=new Date(_0x2bba1b)['toISOString']()['split']('T')[0x0];return'\x20\x20<file\x20name=\x22'+this['escapeXml'](_0x20f5bd)+_0x6bacc6(0x1e2)+this[_0x6bacc6(0x1e0)](_0x2645e0)+'\x22\x20size=\x22'+_0x3a52fe+_0x6bacc6(0x1e3)+_0x493aab+'\x22\x20modified=\x22'+_0x329c8b+_0x6bacc6(0x1ed);}[a0_0xdc88c5(0x1e0)](_0xb6e7a){const _0x1ad7e7=a0_0xdc88c5;if(!_0xb6e7a)return'';return _0xb6e7a[_0x1ad7e7(0x1fa)](/&/g,_0x1ad7e7(0x1e5))[_0x1ad7e7(0x1fa)](/</g,_0x1ad7e7(0x1eb))[_0x1ad7e7(0x1fa)](/>/g,'&gt;')[_0x1ad7e7(0x1fa)](/"/g,_0x1ad7e7(0x1e7))['replace'](/'/g,'&apos;');}[a0_0xdc88c5(0x1f7)](_0x37cc06){const _0x21aecd=a0_0xdc88c5;if(_0x37cc06===0x0)return'0\x20Bytes';const _0x3d5f77=0x400,_0x1e7002=['Bytes','KB','MB','GB'],_0xb3e122=Math['floor'](Math[_0x21aecd(0x201)](_0x37cc06)/Math['log'](_0x3d5f77));return parseFloat((_0x37cc06/Math[_0x21aecd(0x1f8)](_0x3d5f77,_0xb3e122))['toFixed'](0x2))+_0x1e7002[_0xb3e122];}async['estimateTotalTokens'](_0x2b42ed){const _0x3b031a=a0_0xdc88c5;try{const _0x4cf4a9=await this['attachmentService']['getActiveAttachments'](_0x2b42ed);let _0xc316cf=0x0;for(const _0xe5d6e7 of _0x4cf4a9){_0xe5d6e7['mode']==='content'?_0xc316cf+=_0xe5d6e7[_0x3b031a(0x1f4)]||0x0:_0xc316cf+=0x14;}return _0xc316cf;}catch(_0x1c3da8){return this['logger']?.['error']('Error\x20estimating\x20total\x20tokens',{'agentId':_0x2b42ed,'error':_0x1c3da8['message']}),0x0;}}async[a0_0xdc88c5(0x1d7)](_0x4623f0){const _0x8dab11=a0_0xdc88c5;try{const _0x4208f6=await this['attachmentService'][_0x8dab11(0x1ee)](_0x4623f0),_0xa1ac71={'totalActive':_0x4208f6['length'],'contentMode':_0x4208f6[_0x8dab11(0x1fb)](_0x43401c=>_0x43401c[_0x8dab11(0x1f5)]==='content')[_0x8dab11(0x1d8)],'referenceMode':_0x4208f6['filter'](_0x288f9b=>_0x288f9b[_0x8dab11(0x1f5)]==='reference')[_0x8dab11(0x1d8)],'estimatedTokens':0x0,'files':[]};for(const _0x184018 of _0x4208f6){_0xa1ac71['estimatedTokens']+=_0x184018[_0x8dab11(0x1f4)]||0x0,_0xa1ac71['files']['push']({'fileName':_0x184018[_0x8dab11(0x1da)],'mode':_0x184018[_0x8dab11(0x1f5)],'size':this[_0x8dab11(0x1f7)](_0x184018['size']),'tokens':_0x184018['tokenEstimate']||0x0});}return _0xa1ac71;}catch(_0x531129){return this[_0x8dab11(0x1ef)]?.[_0x8dab11(0x1e9)]('Error\x20getting\x20attachment\x20summary',{'agentId':_0x4623f0,'error':_0x531129[_0x8dab11(0x1f0)]}),{'totalActive':0x0,'contentMode':0x0,'referenceMode':0x0,'estimatedTokens':0x0,'files':[]};}}}export default ContextInjectionService;